From 9ccc3554555a8af21644e6e316308fc89d6c4815 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Elan=20Ruusam=C3=A4e?= Date: Thu, 11 Mar 2021 00:51:59 +0200 Subject: [PATCH] Add verbosity to build output what script is doing --- bin/cleanbuild-docker.sh | 38 +++++++++++++++++++++++++------------- 1 file 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}" } -- 2.44.0