Merge pull request #155 from flatcar-linux/krnowak/trap-fixes

Fix the traps to align with bash 5.1 upgrade
This commit is contained in:
Sayan Chowdhury 2021-10-01 21:49:27 +05:30 committed by GitHub
commit ccdc52cc15
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 31 additions and 12 deletions

View File

@ -29,7 +29,7 @@ pkg_use_enabled() {
# Prints: some-pkg/name-1.2.3 # Prints: some-pkg/name-1.2.3
# Note: returns 0 even if the package was not found. # Note: returns 0 even if the package was not found.
pkg_version() { pkg_version() {
portageq-"${BOARD}" best_visible "${BOARD_ROOT}" "$1" "$2" portageq-"${BOARD}" best_visible "${BOARD_ROOT}" "$1" "$2" || :
} }
# Usage: pkg_provides [installed|binary] some-pkg/name-1.2.3 # Usage: pkg_provides [installed|binary] some-pkg/name-1.2.3

View File

@ -124,13 +124,16 @@ sign_and_upload_files() {
local suffix="$3" local suffix="$3"
shift 3 shift 3
# run a subshell to possibly clean the temporary directory with
# signatures without clobbering the global EXIT trap
(
# Create simple GPG detached signature for all uploads. # Create simple GPG detached signature for all uploads.
local sigs=() local sigs=()
if [[ -n "${FLAGS_sign}" ]]; then if [[ -n "${FLAGS_sign}" ]]; then
local file local file
local sigfile local sigfile
local sigdir=$(mktemp --directory) local sigdir=$(mktemp --directory)
trap "rm -rf ${sigdir}" RETURN trap "rm -rf ${sigdir}" EXIT
for file in "$@"; do for file in "$@"; do
if [[ "${file}" =~ \.(asc|gpg|sig)$ ]]; then if [[ "${file}" =~ \.(asc|gpg|sig)$ ]]; then
continue continue
@ -150,6 +153,7 @@ sign_and_upload_files() {
fi fi
upload_files "${msg}" "${path}" "${suffix}" "$@" "${sigs[@]}" upload_files "${msg}" "${path}" "${suffix}" "$@" "${sigs[@]}"
)
} }
upload_packages() { upload_packages() {

View File

@ -108,19 +108,22 @@ function torcx_package() {
local version=${pkg:${#name}+1} local version=${pkg:${#name}+1}
local manifest_path="${2}" local manifest_path="${2}"
local type="${3}" local type="${3}"
local deppkg digest file rpath sha512sum source_pkg rdepends tmproot tmppkgroot update_default local deppkg digest file rpath sha512sum source_pkg rdepends tmproot tmppkgroot update_default tmpfile
local pkg_cas_file pkg_cas_root local pkg_cas_file pkg_cas_root
local pkg_locations=() local pkg_locations=()
local name=${name##*/} local name=${name##*/}
local version=${version%%-r*} local version=${version%%-r*}
# Run in a subshell to clean tmproot and tmppkgroot up without
# clobbering this shell's EXIT trap.
(
# Set up the base package layout to dump everything into /bin and /lib. # Set up the base package layout to dump everything into /bin and /lib.
# tmproot is what the packages are installed into. # tmproot is what the packages are installed into.
# A subset of the files from tmproot are then moved into tmppkgroot, # A subset of the files from tmproot are then moved into tmppkgroot,
# which is then archived and uploaded. # which is then archived and uploaded.
tmproot=$(sudo mktemp --tmpdir="${BUILD_DIR}" -d) tmproot=$(sudo mktemp --tmpdir="${BUILD_DIR}" -d)
tmppkgroot=$(sudo mktemp --tmpdir="${BUILD_DIR}" -d) tmppkgroot=$(sudo mktemp --tmpdir="${BUILD_DIR}" -d)
trap "sudo rm -rf '${tmproot}' '${tmppkgroot}'" EXIT RETURN trap "sudo rm -rf '${tmproot}' '${tmppkgroot}'" EXIT
sudo chmod 0755 "${tmproot}" "${tmppkgroot}" sudo chmod 0755 "${tmproot}" "${tmppkgroot}"
sudo mkdir -p "${tmproot}"/{.torcx,bin,lib,usr} sudo mkdir -p "${tmproot}"/{.torcx,bin,lib,usr}
sudo ln -fns ../bin "${tmproot}/usr/bin" sudo ln -fns ../bin "${tmproot}/usr/bin"
@ -175,10 +178,11 @@ function torcx_package() {
find -H "${tmproot}"/{bin,lib} -type f | find -H "${tmproot}"/{bin,lib} -type f |
while read file while read file
do do
(
rpath=$(sudo patchelf --print-rpath "${file}" 2>/dev/null) && rpath=$(sudo patchelf --print-rpath "${file}" 2>/dev/null) &&
test "${rpath#/ORIGIN/}" != "${rpath}" && test "${rpath#/ORIGIN/}" != "${rpath}" &&
sudo patchelf --set-rpath "${rpath/#?/\$}" "${file}" sudo patchelf --set-rpath "${rpath/#?/\$}" "${file}"
: # Set $? to 0 or the pipeline fails and -e quits. ) || : # Set $? to 0 or the pipeline fails and -e quits.
done done
# Move anything we plan to package to its root. # Move anything we plan to package to its root.
@ -228,8 +232,7 @@ function torcx_package() {
"${source_pkg}" \ "${source_pkg}" \
"${update_default}" \ "${update_default}" \
"${pkg_locations[@]}" "${pkg_locations[@]}"
)
trap - EXIT
} }
# This list defines every torcx image that goes into the vendor store for the # This list defines every torcx image that goes into the vendor store for the

View File

@ -979,8 +979,8 @@ fixup_liblto_softlinks() {
local link local link
local target local target
# check both native (/usr/CHOST/) as well as cross compile (/usr/CHOST/CTARGET) paths # check both native (/usr/CHOST/) as well as cross compile (/usr/CHOST/CTARGET) paths
{ ls -l "${root}/"usr/*/binutils-bin/lib/bfd-plugins/liblto_plugin.so 2>/dev/null; { ls -l "${root}/"usr/*/binutils-bin/lib/bfd-plugins/liblto_plugin.so 2>/dev/null || :;
ls -l "${root}/"usr/*/*/binutils-bin/lib/bfd-plugins/liblto_plugin.so 2>/dev/null; } \ ls -l "${root}/"usr/*/*/binutils-bin/lib/bfd-plugins/liblto_plugin.so 2>/dev/null || :; } \
| sed 's:.* \([^[:space:]]\+\) -> \([^[:space:]]\+\):\1 \2:' \ | sed 's:.* \([^[:space:]]\+\) -> \([^[:space:]]\+\):\1 \2:' \
| while read link target; do | while read link target; do
local newtarget=$(echo "$target" | sed "s:${root}:/:") local newtarget=$(echo "$target" | sed "s:${root}:/:")

View File

@ -43,7 +43,10 @@ sudo rm -rf chroot/build src/build torcx
enter() { enter() {
local verify_key= local verify_key=
trap 'sudo rm -f chroot/etc/portage/gangue.*' RETURN # Run in a subshell to clean some gangue files on exit without
# possibly clobbering the global EXIT trap.
(
trap 'sudo rm -f chroot/etc/portage/gangue.*' EXIT
[ -s verify.asc ] && [ -s verify.asc ] &&
sudo ln -f verify.asc chroot/etc/portage/gangue.asc && sudo ln -f verify.asc chroot/etc/portage/gangue.asc &&
verify_key=--verify-key=/etc/portage/gangue.asc verify_key=--verify-key=/etc/portage/gangue.asc
@ -55,6 +58,7 @@ enter() {
--json-key=/etc/portage/gangue.json $verify_key \ --json-key=/etc/portage/gangue.json $verify_key \
"'"${URI}" "${DISTDIR}/${FILE}"' \ "'"${URI}" "${DISTDIR}/${FILE}"' \
"$@" "$@"
)
} }
script() { script() {

View File

@ -47,7 +47,10 @@ bin/cork update \
enter() { enter() {
local verify_key= local verify_key=
trap 'sudo rm -f chroot/etc/portage/gangue.*' RETURN # Run in a subshell to clean some gangue files on exit without
# possibly clobbering the global EXIT trap.
(
trap 'sudo rm -f chroot/etc/portage/gangue.*' EXIT
[ -s verify.asc ] && [ -s verify.asc ] &&
sudo ln -f verify.asc chroot/etc/portage/gangue.asc && sudo ln -f verify.asc chroot/etc/portage/gangue.asc &&
verify_key=--verify-key=/etc/portage/gangue.asc verify_key=--verify-key=/etc/portage/gangue.asc
@ -60,6 +63,7 @@ enter() {
--json-key=/etc/portage/gangue.json $verify_key \ --json-key=/etc/portage/gangue.json $verify_key \
"'"${URI}" "${DISTDIR}/${FILE}"' \ "'"${URI}" "${DISTDIR}/${FILE}"' \
"$@" "$@"
)
} }
script() { script() {

View File

@ -43,7 +43,10 @@ sudo rm -rf chroot/build tmp
enter() { enter() {
local verify_key= local verify_key=
trap 'sudo rm -f chroot/etc/portage/gangue.*' RETURN # Run in a subshell to clean some gangue files on exit without
# possibly clobbering the global EXIT trap.
(
trap 'sudo rm -f chroot/etc/portage/gangue.*' EXIT
[ -s verify.asc ] && [ -s verify.asc ] &&
sudo ln -f verify.asc chroot/etc/portage/gangue.asc && sudo ln -f verify.asc chroot/etc/portage/gangue.asc &&
verify_key=--verify-key=/etc/portage/gangue.asc verify_key=--verify-key=/etc/portage/gangue.asc
@ -55,6 +58,7 @@ enter() {
--json-key=/etc/portage/gangue.json $verify_key \ --json-key=/etc/portage/gangue.json $verify_key \
"'"${URI}" "${DISTDIR}/${FILE}"' \ "'"${URI}" "${DISTDIR}/${FILE}"' \
"$@" "$@"
)
} }
script() { script() {