158ac15143
When we bump the version in pmaports.cfg and the min. required pmaports version in the pmbootstrap code, then forks of pmaports.git must be rebased on pmaports.git master. Otherwise "pmbootstrap init" fails, and because we have it set to quiet (so the output does not distract from the interesting output if everything goes fine), there was no meaningful error message yet. Wrap the "pmbootstrap init" call and display a helpful message that tells the user to rebase.
49 lines
1.6 KiB
Bash
Executable file
49 lines
1.6 KiB
Bash
Executable file
#!/bin/sh -e
|
|
# Copyright 2019 Oliver Smith
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
# usage: install_pmbootstrap.sh [ADDITIONAL_PACKAGE, ...]
|
|
|
|
# Config: pmbootstrap tag (or branch)
|
|
tag="master"
|
|
|
|
# Get download URL and pmaports path
|
|
url="https://gitlab.com/postmarketOS/pmbootstrap/-/archive/$tag/pmbootstrap-$tag.tar.bz2"
|
|
pmaports="$(cd $(dirname $0)/..; pwd -P)"
|
|
|
|
# Set up depends and binfmt_misc
|
|
depends="coreutils openssl python3 sudo $@"
|
|
echo "Installing dependencies: $depends"
|
|
apk -q add $depends
|
|
mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
|
|
|
|
# Create pmos user
|
|
echo "Creating pmos user"
|
|
adduser -D pmos
|
|
chown -R pmos:pmos .
|
|
echo 'pmos ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
|
|
|
# Download pmbootstrap (to /tmp/pmbootstrap)
|
|
echo "Downloading pmbootstrap ($tag): $url"
|
|
cd /tmp
|
|
wget -q -O "pmb.tar.bz2" "$url"
|
|
tar -xf "pmb.tar.bz2"
|
|
mv pmbootstrap-* pmbootstrap
|
|
|
|
# Install to $PATH and init
|
|
ln -s /tmp/pmbootstrap/pmbootstrap.py /usr/local/bin/pmbootstrap
|
|
echo "Initializing pmbootstrap"
|
|
if ! su pmos -c "yes '' | pmbootstrap -q --aports '$pmaports' init"; then
|
|
echo "ERROR: pmbootstrap init failed!"
|
|
echo
|
|
echo "Most likely, this means that pmbootstrap requires a newer"
|
|
echo "pmaports version. Please rebase on the official pmaports.git"
|
|
echo "master branch and try again."
|
|
echo
|
|
echo "Let us know in the chat or issues if you have trouble with that"
|
|
echo "and we will be happy to help. Sorry for the inconvenience."
|
|
echo
|
|
echo "(If that does not help, click on 'Browse' in the 'Job artifacts'"
|
|
echo "next to this log output, and have a look at log.txt.)"
|
|
exit 1
|
|
fi
|
|
echo ""
|