From 8d3d7cabdad3b873722064632968f3ce916b3e99 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Thu, 1 Feb 2018 11:51:58 +0100 Subject: add many mysql-TODOs --- bin/build-packages | 2 ++ 1 file changed, 2 insertions(+) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index 81afa7f..94292c7 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -10,6 +10,8 @@ # TODO: report back in regular intervals, so the build master can # abort if the package is outdated and/or someone else finished it. +# TODO: build other "architectures", too (pentium4, i486) + # shellcheck disable=SC2016 usage() { >&2 echo '' -- cgit v1.2.3-70-g09d2 From 804f05c76120d3e12dcf11858ec4f70e59a3d194 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Thu, 1 Feb 2018 12:16:43 +0100 Subject: bin/build-packages: fix comment to not break php script --- bin/build-packages | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index 94292c7..7f009c3 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -10,7 +10,7 @@ # TODO: report back in regular intervals, so the build master can # abort if the package is outdated and/or someone else finished it. -# TODO: build other "architectures", too (pentium4, i486) +# TODO: build other 'architectures', too (pentium4, i486) # shellcheck disable=SC2016 usage() { -- cgit v1.2.3-70-g09d2 From a4cc68010b9174feef5854fe667079be3d5785dc Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Fri, 16 Feb 2018 15:27:19 +0100 Subject: bin/build-packages: make list of provided libraries --- bin/build-packages | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index 7f009c3..b399163 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -392,12 +392,25 @@ while [ "${count}" -ne 0 ]; do >&2 printf ' failed. Next ...\n' done done + >&2 printf 'searching for provided libraries\n' + find "${tar_content_dir}" -maxdepth 1 \ + -name '*.pkg.tar.xz' \ + -printf '%p\n' | \ + while read -r pkgfile; do + pacman -Qqlp "${pkgfile}" | \ + sed -n ' + s,^.*/,, + /\.so\(\..\+\)\?$/p + ' > \ + "${pkgfile}.so.provides" + done + # TODO: search for required libraries, too + >&2 printf 'running namcap ...' if [ "${repository}" = 'multilib' ]; then x86_64_build_command='multilib-build' else x86_64_build_command='extra-x86_64-build' fi - >&2 printf 'running namcap ...' # this is a little hack: makepkg receives '--version', but namcap is run nevertheless # (and it only works with devtools32, because they are running namcap on *.pkg.tar.xz in the base directory, too) sudo "${x86_64_build_command}" -- -- --version > /dev/null 2>&1 || \ @@ -429,9 +442,16 @@ while [ "${count}" -ne 0 ]; do done >&2 printf ' ok.\n' if ${upload_to_build_master}; then - find "${tar_content_dir}/" -maxdepth 1 -name '*.pkg.tar.xz-namcap.log' -execdir gzip '{}' \; + find "${tar_content_dir}/" -maxdepth 1 \ + \( \ + -name '*.pkg.tar.xz-namcap.log' -o \ + -name '*.pkg.tar.xz.so.provides' \ + \) \ + -execdir gzip '{}' \; else - find "${tar_content_dir}/" -maxdepth 1 -name '*.pkg.tar.xz-namcap.log' -execdir grep -HF '' '{}' \; + find "${tar_content_dir}/" -maxdepth 1 \ + -name '*.pkg.tar.xz-namcap.log' \ + -execdir grep -HF '' '{}' \; fi # shellcheck disable=SC2046 tar -cf 'package.tar' -C "${tar_content_dir}" -- $( -- cgit v1.2.3-70-g09d2 From ba935ea9e7709c284bfe714db156f17eea75819a Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Sat, 17 Feb 2018 21:21:32 +0100 Subject: bin/build-packages: put *.so.provides.gz into tar, too --- bin/build-packages | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index b399163..97d74d1 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -455,7 +455,14 @@ while [ "${count}" -ne 0 ]; do fi # shellcheck disable=SC2046 tar -cf 'package.tar' -C "${tar_content_dir}" -- $( - find "${tar_content_dir}/" -maxdepth 1 \( -name '*.pkg.tar.xz' -o -name '*.pkg.tar.xz.sig' -o -name '*.pkg.tar.xz-namcap.log.gz' \) -printf '%f\n' + find "${tar_content_dir}/" -maxdepth 1 \ + \( \ + -name '*.pkg.tar.xz' -o \ + -name '*.pkg.tar.xz.sig' -o \ + -name '*.pkg.tar.xz-namcap.log.gz' \ + -name '*.pkg.tar.xz.so.provides.gz' \ + \) \ + -printf '%f\n' ) while ${upload_to_build_master}; do err=0 -- cgit v1.2.3-70-g09d2 From b8b37df3177987401574462fe17c3be9a9ed94f7 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Sun, 18 Feb 2018 14:25:04 +0100 Subject: bin/build-packages: fix typo --- bin/build-packages | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index 97d74d1..b6c4a7a 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -459,7 +459,7 @@ while [ "${count}" -ne 0 ]; do \( \ -name '*.pkg.tar.xz' -o \ -name '*.pkg.tar.xz.sig' -o \ - -name '*.pkg.tar.xz-namcap.log.gz' \ + -name '*.pkg.tar.xz-namcap.log.gz' -o \ -name '*.pkg.tar.xz.so.provides.gz' \ \) \ -printf '%f\n' -- cgit v1.2.3-70-g09d2 From 426210589120997b4bf991636ea5a16acbb964ae Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Mon, 19 Feb 2018 08:58:35 +0100 Subject: bin/build-packages: remove old, residual tmpdirs --- bin/build-packages | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index b6c4a7a..b99036f 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -222,6 +222,11 @@ while [ "${count}" -ne 0 ]; do if [ "${mod_git_revision}" = 'work-tree' ]; then mod_git_revision=$( # we can't just create an empty index-file with mktemp, because git doesn't like it + find . \ + -mindepth 1 \ + -maxdepth 1 \ + -name 'tmp.build-packages.git.*' \ + -exec rm -rf --one-file-system {} \; tmp_subdir=$(mktemp -d 'tmp.build-packages.git.XXXXXXXXXX' --tmpdir) trap 'rm -rf --one-file-system "${tmp_subdir}"' EXIT export GIT_INDEX_FILE="${tmp_subdir}/index.new" @@ -255,6 +260,11 @@ while [ "${count}" -ne 0 ]; do recursively_umount_and_rm "${tmp_dir}" exit "${err}" } + find . \ + -mindepth 1 \ + -maxdepth 1 \ + -name 'tmp.build-packages.??????' \ + -exec rm -rf --one-file-system {} \; tmp_dir=$(mktemp -d "${work_dir}/tmp.build-packages.XXXXXX") trap bail_out EXIT -- cgit v1.2.3-70-g09d2 From a4cb656d8fd5f7ca3358cc629ee2e8118f242089 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Thu, 22 Feb 2018 06:51:46 +0100 Subject: bin/build-packages: add TODO --- bin/build-packages | 1 + 1 file changed, 1 insertion(+) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index b99036f..0e734dd 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -307,6 +307,7 @@ while [ "${count}" -ne 0 ]; do # we can't improve anything continue fi + # TODO: the below command also overwrites files which are intentionally overwritten by us (e.g. "config" in "core/linux" or "extra/linux-zen") tar -xz --overwrite -f "${source_name}" --exclude PKGBUILD --strip-components=1 || true fi -- cgit v1.2.3-70-g09d2 From ff4a1f4cdb66d930fc781222a093b322f157e3f8 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Fri, 23 Feb 2018 10:30:46 +0100 Subject: bin/build-packages: do not overwrite our files by upstream ones if source package is extracted --- bin/build-packages | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index 0e734dd..f15c99e 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -307,8 +307,19 @@ while [ "${count}" -ne 0 ]; do # we can't improve anything continue fi - # TODO: the below command also overwrites files which are intentionally overwritten by us (e.g. "config" in "core/linux" or "extra/linux-zen") - tar -xz --overwrite -f "${source_name}" --exclude PKGBUILD --strip-components=1 || true + # shellcheck disable=SC2046 + tar -xz --overwrite \ + -f "${source_name}" \ + --exclude PKGBUILD \ + $( + if [ -n "${PKGBUILD_mod}" ]; then + git -C "${repo_paths__archlinux32}/${PKGBUILD_mod%/*}" archive "${mod_git_revision}" -- . | \ + tar -t | \ + sed 's/^/--exclude /' + fi + ) \ + --strip-components=1 \ + || true fi if echo "${straw}" | \ -- cgit v1.2.3-70-g09d2 From 9e612bcdf9fd521cde2873ea8c5368e05c1dbb46 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Fri, 23 Feb 2018 12:31:34 +0100 Subject: bin/build-packages: save list of required libraries --- bin/build-packages | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index f15c99e..70a0c3a 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -426,7 +426,21 @@ while [ "${count}" -ne 0 ]; do ' > \ "${pkgfile}.so.provides" done - # TODO: search for required libraries, too + >&2 printf 'searching for required libraries\n' + package_content_dir=$(mktemp -d "${tmp_dir}/package-content.XXXXXX") + find "${tar_content_dir}" -maxdepth 1 \ + -name '*.pkg.tar.xz' | \ + while read -r pkgfile; do + mkdir "${package_content_dir}/${pkgfile##*/}" + tar -C "${package_content_dir}/${pkgfile##*/}" -xJf "${pkgfile}" 2>/dev/null + find "${package_content_dir}/${pkgfile##*/}" -type f \ + -exec objdump -x '{}' \; 2>/dev/null | \ + grep -w 'NEEDED' | \ + awk '{print $2}' | \ + sort -u > \ + "${pkgfile}.so.needs" + rm -rf --one-file-system "${package_content_dir:?}/${pkgfile##*/}" + done >&2 printf 'running namcap ...' if [ "${repository}" = 'multilib' ]; then x86_64_build_command='multilib-build' @@ -467,6 +481,7 @@ while [ "${count}" -ne 0 ]; do find "${tar_content_dir}/" -maxdepth 1 \ \( \ -name '*.pkg.tar.xz-namcap.log' -o \ + -name '*.pkg.tar.xz.so.needs' -o \ -name '*.pkg.tar.xz.so.provides' \ \) \ -execdir gzip '{}' \; @@ -482,6 +497,7 @@ while [ "${count}" -ne 0 ]; do -name '*.pkg.tar.xz' -o \ -name '*.pkg.tar.xz.sig' -o \ -name '*.pkg.tar.xz-namcap.log.gz' -o \ + -name '*.pkg.tar.xz.so.needs.gz' -o \ -name '*.pkg.tar.xz.so.provides.gz' \ \) \ -printf '%f\n' -- cgit v1.2.3-70-g09d2 From dff5bf22329ba030c70600fb0fa59087990f09a9 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Mon, 5 Mar 2018 11:25:57 +0100 Subject: bin/build-packages: straw ":with_/dev/fuse:" new to pass "-d /dev/fuse" --- bin/build-packages | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index 70a0c3a..0f0c841 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -345,14 +345,23 @@ while [ "${count}" -ne 0 ]; do if echo "${straw}" | \ grep -qF ':clean_chroot:'; then - parameters='-c' + outerParameters='-c' else - parameters='' + outerParameters='' fi if echo "${straw}" | \ grep -qF ':without_check:'; then - parameters="${parameters} -- -- --nocheck" + innerParameters='--nocheck' + else + innerParameters='' + fi + + if echo "${straw}" | \ + grep -qF ':with_/dev/fuse:'; then + middleParameters='-d /dev/fuse' + else + middleParameters='' fi find . -maxdepth 1 -type f \( -name '*.pkg.tar.xz' -o -name '*.pkg.tar.xz.sig' \) -exec \ @@ -368,7 +377,7 @@ while [ "${count}" -ne 0 ]; do # by piping the log, we don't see anything in the terminal, # but all ways to duplicate the logs seem pretty elaborate # shellcheck disable=SC2024,SC2086 - if sudo "${build_command}" ${parameters} > \ + if sudo "${build_command}" ${outerParameters} -- ${middleParameters} -- ${innerParameters} > \ "$( date -u --iso-8601=seconds | \ cut -d+ -f1 -- cgit v1.2.3-70-g09d2 From 5a5ef4ff52a57d60fed6f0f13e939f1c0103cf34 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Mon, 5 Mar 2018 11:31:38 +0100 Subject: bin/build-packages: pass "--holdver" to makepkg, so cvs sources won't receive an update breaking our sub_pkgrel --- bin/build-packages | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index 0f0c841..24c5453 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -352,9 +352,9 @@ while [ "${count}" -ne 0 ]; do if echo "${straw}" | \ grep -qF ':without_check:'; then - innerParameters='--nocheck' + innerParameters='--nocheck --holdver' else - innerParameters='' + innerParameters='--holdver' fi if echo "${straw}" | \ -- cgit v1.2.3-70-g09d2 From 148d6bbbdee8316cf1ea642ce8615e7c534f6019 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Mon, 5 Mar 2018 11:49:50 +0100 Subject: lib/common-functions: PKGBUILD is r/o, so pkgver() won't change the version :-/ --- bin/build-packages | 4 ++-- lib/common-functions | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index 24c5453..0f0c841 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -352,9 +352,9 @@ while [ "${count}" -ne 0 ]; do if echo "${straw}" | \ grep -qF ':without_check:'; then - innerParameters='--nocheck --holdver' + innerParameters='--nocheck' else - innerParameters='--holdver' + innerParameters='' fi if echo "${straw}" | \ diff --git a/lib/common-functions b/lib/common-functions index ba434ad..0779203 100755 --- a/lib/common-functions +++ b/lib/common-functions @@ -934,6 +934,10 @@ extract_source_directory() { # shellcheck disable=SC2016 sed -i '/^\$Id\$$/d' "${output}/PKGBUILD" + # we don't want write permissions on the PKGBUILD - otherwise pkgver() + # will change the version! (**HACK**) + chmod -w "${output}/PKGBUILD" + } # find_dependencies_on_build_list $package $git_revision $mod_git_revision $repository -- cgit v1.2.3-70-g09d2 From 578d17ab21ced3db7f145ea208c52cf97a6a4a91 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Mon, 12 Mar 2018 21:05:42 +0100 Subject: bin/build-packages: set permissions to 777 before deleting old build-tmp-dir --- bin/build-packages | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index 0f0c841..ea346bc 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -264,7 +264,11 @@ while [ "${count}" -ne 0 ]; do -mindepth 1 \ -maxdepth 1 \ -name 'tmp.build-packages.??????' \ - -exec rm -rf --one-file-system {} \; + -printf '%p\n' | \ + while read -r old_tmp_dir; do + find "${old_tmp_dir}" -xdev -exec chmod 777 {} \; + rm -rf --one-file-system "${old_tmp_dir}" + done tmp_dir=$(mktemp -d "${work_dir}/tmp.build-packages.XXXXXX") trap bail_out EXIT -- cgit v1.2.3-70-g09d2 From 470615922a8f76eca77b87902a02498a223c51bf Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Mon, 12 Mar 2018 21:36:23 +0100 Subject: bin/build-packages: chmod 777 also during library search --- bin/build-packages | 1 + 1 file changed, 1 insertion(+) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index ea346bc..1bc1206 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -452,6 +452,7 @@ while [ "${count}" -ne 0 ]; do awk '{print $2}' | \ sort -u > \ "${pkgfile}.so.needs" + find "${package_content_dir:?}/${pkgfile##*/}" -xdev -exec chmod 777 {} \; rm -rf --one-file-system "${package_content_dir:?}/${pkgfile##*/}" done >&2 printf 'running namcap ...' -- cgit v1.2.3-70-g09d2 From 142f167138609950fb9cf1a282ad8f970a62c99a Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Tue, 13 Mar 2018 11:42:46 +0100 Subject: bin/build-packages: 4262105 tries to remove the wrong directories --- bin/build-packages | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index 1bc1206..1ac8dc3 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -260,7 +260,7 @@ while [ "${count}" -ne 0 ]; do recursively_umount_and_rm "${tmp_dir}" exit "${err}" } - find . \ + find "${work_dir}" \ -mindepth 1 \ -maxdepth 1 \ -name 'tmp.build-packages.??????' \ -- cgit v1.2.3-70-g09d2 From 288aa9fb981e71a58f1df9d0a0257e6968422d06 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Wed, 14 Mar 2018 13:36:52 +0100 Subject: bin/build-packages: ignore "opt" for libraries, but also check symlinks --- bin/build-packages | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index 1ac8dc3..edfa913 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -446,7 +446,8 @@ while [ "${count}" -ne 0 ]; do while read -r pkgfile; do mkdir "${package_content_dir}/${pkgfile##*/}" tar -C "${package_content_dir}/${pkgfile##*/}" -xJf "${pkgfile}" 2>/dev/null - find "${package_content_dir}/${pkgfile##*/}" -type f \ + find "${package_content_dir}/${pkgfile##*/}" \ + -name 'opt' -prune , \ -exec objdump -x '{}' \; 2>/dev/null | \ grep -w 'NEEDED' | \ awk '{print $2}' | \ -- cgit v1.2.3-70-g09d2 From 8a1585389b3fa07fa94b4820d1cb99c1e2b0e98e Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Wed, 14 Mar 2018 14:48:21 +0100 Subject: bin/build-packages: *.c32 is not a shared library that is needed --- bin/build-packages | 1 + 1 file changed, 1 insertion(+) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index edfa913..501917f 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -451,6 +451,7 @@ while [ "${count}" -ne 0 ]; do -exec objdump -x '{}' \; 2>/dev/null | \ grep -w 'NEEDED' | \ awk '{print $2}' | \ + grep -v '\.c32$' | \ sort -u > \ "${pkgfile}.so.needs" find "${package_content_dir:?}/${pkgfile##*/}" -xdev -exec chmod 777 {} \; -- cgit v1.2.3-70-g09d2 From c31b7cc1dd5bd9ccce5b9cd22b68c5514ba40455 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Thu, 15 Mar 2018 10:39:42 +0100 Subject: bin/build-packages: do not check "any" packages for linked libraries --- bin/build-packages | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index 501917f..1a73409 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -444,18 +444,23 @@ while [ "${count}" -ne 0 ]; do find "${tar_content_dir}" -maxdepth 1 \ -name '*.pkg.tar.xz' | \ while read -r pkgfile; do - mkdir "${package_content_dir}/${pkgfile##*/}" - tar -C "${package_content_dir}/${pkgfile##*/}" -xJf "${pkgfile}" 2>/dev/null - find "${package_content_dir}/${pkgfile##*/}" \ - -name 'opt' -prune , \ - -exec objdump -x '{}' \; 2>/dev/null | \ - grep -w 'NEEDED' | \ - awk '{print $2}' | \ - grep -v '\.c32$' | \ + if printf '%s\n' "${pkgfile}" | \ + grep -vq '-any\.pkg\.tar\.xz$'; then + # we do not check "any" packages for linked libraries + # (why do they have them in the first place?) + mkdir "${package_content_dir}/${pkgfile##*/}" + tar -C "${package_content_dir}/${pkgfile##*/}" -xJf "${pkgfile}" 2>/dev/null + find "${package_content_dir}/${pkgfile##*/}" \ + -name 'opt' -prune , \ + -exec objdump -x '{}' \; 2>/dev/null | \ + grep -w 'NEEDED' | \ + awk '{print $2}' | \ + grep -v '\.c32$' + find "${package_content_dir:?}/${pkgfile##*/}" -xdev -exec chmod 777 '{}' \; + rm -rf --one-file-system "${package_content_dir:?}/${pkgfile##*/}" + fi | \ sort -u > \ "${pkgfile}.so.needs" - find "${package_content_dir:?}/${pkgfile##*/}" -xdev -exec chmod 777 {} \; - rm -rf --one-file-system "${package_content_dir:?}/${pkgfile##*/}" done >&2 printf 'running namcap ...' if [ "${repository}" = 'multilib' ]; then -- cgit v1.2.3-70-g09d2 From a0ebdbe495c23d2cbbea2bc0e0f85815be5e364f Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Thu, 15 Mar 2018 10:50:36 +0100 Subject: bin/build-packages: remove paths from required libraries --- bin/build-packages | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index 1a73409..a1a0475 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -455,7 +455,10 @@ while [ "${count}" -ne 0 ]; do -exec objdump -x '{}' \; 2>/dev/null | \ grep -w 'NEEDED' | \ awk '{print $2}' | \ - grep -v '\.c32$' + sed ' + /\.c32$/d + s,^.*/,, + ' find "${package_content_dir:?}/${pkgfile##*/}" -xdev -exec chmod 777 '{}' \; rm -rf --one-file-system "${package_content_dir:?}/${pkgfile##*/}" fi | \ -- cgit v1.2.3-70-g09d2 From 6641f49081fe9b8d59953c2a96fff25ae4403f48 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Thu, 15 Mar 2018 15:09:47 +0100 Subject: bin/build-packages: bugfix --- bin/build-packages | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index a1a0475..c7b5f85 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -445,7 +445,7 @@ while [ "${count}" -ne 0 ]; do -name '*.pkg.tar.xz' | \ while read -r pkgfile; do if printf '%s\n' "${pkgfile}" | \ - grep -vq '-any\.pkg\.tar\.xz$'; then + grep -vq -- '-any\.pkg\.tar\.xz$'; then # we do not check "any" packages for linked libraries # (why do they have them in the first place?) mkdir "${package_content_dir}/${pkgfile##*/}" -- cgit v1.2.3-70-g09d2 From 47eb9a4ee2a93630dd9d8712b4ea7b3386029cf6 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Wed, 21 Mar 2018 12:25:20 +0100 Subject: bin/ping-from-slave new to send pings to buildmaster in regular intervals during a build --- bin/build-packages | 16 ++++++++++++++++ bin/ping-to-master | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100755 bin/ping-to-master (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index c7b5f85..aa3de6d 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -258,6 +258,7 @@ while [ "${count}" -ne 0 ]; do fi cd "${base_dir}" recursively_umount_and_rm "${tmp_dir}" + flock -u 9 || true exit "${err}" } find "${work_dir}" \ @@ -371,6 +372,17 @@ while [ "${count}" -ne 0 ]; do find . -maxdepth 1 -type f \( -name '*.pkg.tar.xz' -o -name '*.pkg.tar.xz.sig' \) -exec \ rm {} \; + echo 'building' > "${tmp_dir}/.ping-build-master" + if [ -z "${forced_package}" ]; then + # we get a lock on "${work_dir}/ping-build-master.lock", + # if we release that lock, ping-to-master should stop _immediately_ + exec 9> "${work_dir}/ping-build-master.lock" + if ! flock -n 9; then + >&2 echo 'ERROR: Cannot lock ping-to-master - this should not happen.' + exit 2 + fi + "${base_dir}/bin/ping-to-master" "$$" "${tmp_dir}" & + fi >&2 printf '%s: building package "%s" (revisions %s %s, repository %s, straw %s) ...' \ "$(date +'%Y-%m-%d %T')" \ "${package}" \ @@ -390,6 +402,7 @@ while [ "${count}" -ne 0 ]; do >&2 printf ' ok.\n' tar_content_dir=$(mktemp -d "${tmp_dir}/tar-content.XXXXXX") find . -maxdepth 1 -type f -name '*-debug-*.pkg.tar.xz*' -delete + echo 'post-build' > "${tmp_dir}/.ping-build-master" >&2 printf 'signing package(s)\n' find . -maxdepth 1 -type f -name '*.pkg.tar.xz' \ -execdir gpg --local-user="${package_key}" --detach-sign '{}' \; \ @@ -501,6 +514,7 @@ while [ "${count}" -ne 0 ]; do fi done >&2 printf ' ok.\n' + echo 'uploading' > "${tmp_dir}/.ping-build-master" if ${upload_to_build_master}; then find "${tar_content_dir}/" -maxdepth 1 \ \( \ @@ -565,6 +579,7 @@ while [ "${count}" -ne 0 ]; do success=true break fi + echo 'failure' > "${tmp_dir}/.ping-build-master" >&2 printf ' failed.\n' done @@ -619,6 +634,7 @@ while [ "${count}" -ne 0 ]; do # clean up tmp_dir cd "${base_dir}" recursively_umount_and_rm "${tmp_dir}" + flock -u 9 || true trap - EXIT continue diff --git a/bin/ping-to-master b/bin/ping-to-master new file mode 100755 index 0000000..15c9120 --- /dev/null +++ b/bin/ping-to-master @@ -0,0 +1,39 @@ +#!/bin/sh + +# periodically connects to the buildmaster to call ping-from slave to: +# - report any update on the build process +# - show that the build is still running +# - get notified by the build master if the build is not necessary anymore + +# shellcheck source=conf/default.conf +. "${0%/*}/../conf/default.conf" + +# TODO: abort build if requested to + +parent_pid="$1" +parent_tmp_dir="$2" + +exec 9> "${work_dir}/ping-build-master.lock" + +while kill -0 "${parent_pid}" && \ + [ -f "${parent_tmp_dir}/.ping-build-master" ]; do + + # shellcheck disable=SC2029 + find "${parent_tmp_dir}" \ + -xdev \ + -type f \ + -name '*.build-log' \ + -exec wc -l {} \; | \ + sed 's, .*/, ,' | \ + ssh \ + -i "${master_build_server_identity}" \ + -p "${master_build_server_port}" \ + "${master_build_server_user}@${master_build_server}" \ + 'ping-from-slave' "$(cat "${parent_tmp_dir}/.ping-build-master")" + + # we wait upto 60 seconds to get the lock - if we get it, the parent + # must have released it and we're finished + if flock -w 60 9; then + break + fi +done -- cgit v1.2.3-70-g09d2 From e808f93c3f9af51fa32764d3195bbba33b73d026 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Thu, 22 Mar 2018 15:12:37 +0100 Subject: bin/build-packages: remove done TODO --- bin/build-packages | 3 --- 1 file changed, 3 deletions(-) (limited to 'bin/build-packages') diff --git a/bin/build-packages b/bin/build-packages index aa3de6d..02334e9 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -7,9 +7,6 @@ # shellcheck source=conf/default.conf . "${0%/*}/../conf/default.conf" -# TODO: report back in regular intervals, so the build master can -# abort if the package is outdated and/or someone else finished it. - # TODO: build other 'architectures', too (pentium4, i486) # shellcheck disable=SC2016 -- cgit v1.2.3-70-g09d2