summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElan Ruusamäe2021-03-10 22:51:59 (GMT)
committerElan Ruusamäe2021-03-10 23:10:58 (GMT)
commit9ccc3554555a8af21644e6e316308fc89d6c4815 (patch)
treef6dcda51b1e1c3a38fe3aeb2e2a2bf3307395b3b
parent20a616bf5c1d2aefd468096219a46dee82f59317 (diff)
downloadcleanbuild-9ccc3554555a8af21644e6e316308fc89d6c4815.zip
cleanbuild-9ccc3554555a8af21644e6e316308fc89d6c4815.tar.gz
Add verbosity to build output what script is doing
-rwxr-xr-xbin/cleanbuild-docker.sh38
1 files changed, 25 insertions, 13 deletions
diff --git a/bin/cleanbuild-docker.sh b/bin/cleanbuild-docker.sh
index fffd8f9..eb6e6e7 100755
--- a/bin/cleanbuild-docker.sh
+++ b/bin/cleanbuild-docker.sh
@@ -17,9 +17,13 @@ image=registry.gitlab.com/pld-linux/cleanbuild
topdir=$dir/rpm
home=/home/builder
+notice() {
+ echo >&2 "[cleanbuild:notice]: $*"
+}
+
die() {
local rc=${2:-1}
- echo >&2 "$0: $1"
+ echo >&2 "[cleanbuild:error]: $1"
exit $rc
}
@@ -50,7 +54,7 @@ tmpfs() {
}
create_container() {
- # cleanup first
+ notice "Clean up old container: $name"
docker kill $name >/dev/null 2>&1 || :
docker rm $name >/dev/null 2>&1 || :
@@ -64,26 +68,33 @@ create_container() {
--label=cleanbuild=$PACKAGE_NAME \
cleanbuild
+ notice "Setup the homedir"
docker exec --user=root -w / $name usermod -d $home builder
- # these paths need to be accessible for builder
+ notice "Setup permissions"
docker exec --user=root -w / $name sh -c "cd $home && chown builder:builder rpm rpm/logs rpm/BUILD .ccache"
if [ ! -d $topdir/rpm-build-tools ]; then
+ notice "Initialize rpm-build-tools"
docker exec $name builder --init-rpm-dir
fi
}
package_prepare() {
- # fetch sources and install deps
+ notice "Fetch sources and install dependencies"
if [ -d $topdir/packages/$PACKAGE_NAME ]; then
# chown, as it might be different owner (root) modified outside container
+ notice "Fix ownership of existing package directory"
docker exec --user=root -w / $name chown -R builder:builder $home/rpm/packages/$PACKAGE_NAME
fi
+
+ notice "Fetch package sources"
docker exec $name builder -g $PACKAGE_NAME
- # prevent network access like pld builders do
- $NETWORKING || docker exec --user=root -w / $name setfacl -m u:builder:--- /etc/resolv.conf
+ if ! $NETWORKING; then
+ notice "Disable networking: Prevent network access for user builder like PLD Linux builders"
+ docker exec --user=root -w / $name setfacl -m u:builder:--- /etc/resolv.conf
+ fi
git_tag=$(GIT_DIR=$topdir/packages/$PACKAGE_NAME/.git git describe --tags --always)
buildlog=rpm/logs/${git_tag#auto/*/}.log
@@ -94,14 +105,14 @@ package_build() {
set -- -nn ${WITH:+--with "${WITH# }"} ${WITHOUT:+--without "${WITHOUT# }"} "$PACKAGE_NAME"
while true; do
- # install deps
+ notice "Install dependencies"
docker exec $name builder -g -R "$@"
- # remove .la dependencies
+ notice "Remove .la dependencies"
docker exec --user=root -w / $name $home/cleanbuild/bin/cleanup-la
- # reset findunusedbr state after deps install
+ notice "Reset findunusedbr state after deps install"
docker exec --user=root -w / $name $home/cleanbuild/bin/findunusedbr -c / $home/rpm/packages/$PACKAGE_NAME/$PACKAGE_NAME.spec
- # actual build
+ notice "Build package"
docker exec $name cleanbuild/bin/teeboth $buildlog builder -bb --define '__spec_clean_body %{nil}' "$@" && rc=$? || rc=$?
findbr=$PACKAGE_NAME.findbr.log
@@ -109,7 +120,7 @@ package_build() {
if [ -z "$builddir" ]; then
die "No build dir. Build failed?" 6
fi
- # need root to run poldek
+ notice "Execute findbr"
docker exec --user=root -w / $name sh -c "cd $home && cleanbuild/bin/findbr $builddir $buildlog" > $findbr
installed_something=false
@@ -122,10 +133,11 @@ package_build() {
# go for another try
$installed_something && continue
+ notice "Execute findunusedbr"
docker exec --user=root -w / $name $home/cleanbuild/bin/findunusedbr -c / $home/rpm/packages/$PACKAGE_NAME/$PACKAGE_NAME.spec
if [ $rc -eq 0 ] && ! $KEEP_CONTAINER; then
- # finished ok, cleanup
+ notice "Finished ok, cleanup container"
docker kill $name >/dev/null && docker rm $name >/dev/null || :
fi
@@ -177,7 +189,7 @@ parse_options() {
shift
done
- test "$#" -eq 1 || die "package not specified or excess arguments"
+ test "$#" -eq 1 || die "Package not specified or excess arguments"
PACKAGE_NAME="${1%.spec}"
}