index : devtools32 | |
Archlinux32 fork of devtools | gitolite user |
summaryrefslogtreecommitdiff |
author | Eli Schwartz <eschwartz@archlinux.org> | 2019-12-16 19:27:27 -0500 |
---|---|---|
committer | Levente Polyak <anthraxx@archlinux.org> | 2020-02-27 14:50:19 +0100 |
commit | e963b6da9e2c0aa82a0b80a5b6bfe7294561734f (patch) | |
tree | bc15039413ea7f2a0cd7ff4b8bddf737da2d3b46 | |
parent | b2cbb8628eba3f64207c6d60f8b57ce023599000 (diff) |
-rw-r--r-- | makechrootpkg.in | 32 |
diff --git a/makechrootpkg.in b/makechrootpkg.in index dfea18c..bfa69be 100644 --- a/makechrootpkg.in +++ b/makechrootpkg.in @@ -366,11 +366,7 @@ if arch-nspawn "$copydir" \ "${bindmounts_ro[@]}" "${bindmounts_rw[@]}" \ /chrootbuild "${makepkg_args[@]}" then - pkgnames=() - for pkgfile in "$copydir"/pkgdest/*; do - pkgfile=${pkgfile##*/}; - pkgnames+=("${pkgfile%-*-*-*}"); - done + mapfile -t pkgnames < <(sudo -u "$makepkg_user" bash -c 'source PKGBUILD; printf "%s\n" "${pkgname[@]}"') move_products else (( ret += 1 )) @@ -388,29 +384,29 @@ else if (( run_checkpkg )); then msg "Running checkpkg" - # sync off-site databases for up-to-date queries - trap 'rm -rf $dbpath; cleanup' EXIT INT TERM QUIT - dbpath=$(mktemp -d --tmpdir makechrootpkg-database.XXXXXXXXXX) - mkdir -p "$dbpath" - pacman -Sy --dbpath "$dbpath" --logfile /dev/null + mapfile -t remotepkgs < <(pacman --config "$copydir"/etc/pacman.conf \ + --dbpath "$copydir"/var/lib/pacman \ + -Sddp "${pkgnames[@]}") - # query current package locations - remotepkgs=($(pacman -Sddp --dbpath "$dbpath" --logfile /dev/null "${pkgnames[@]}")) - if (( $? )); then + if ! wait $!; then warning "Skipped checkpkg due to missing repo packages" exit 0 fi # download package files if any non-local location exists for remotepkg in "${remotepkgs[@]}"; do - [[ $remotepkg == file://* ]] && continue - msg2 "Downloading current versions" - pacman --noconfirm -Swdd --dbpath "$dbpath" --logfile /dev/null "${pkgnames[@]}" - break + if [[ $remotepkg != file://* ]]; then + msg2 "Downloading current versions" + arch-nspawn "$copydir" pacman --noconfirm -Swdd "${pkgnames[@]}" + mapfile -t remotepkgs < <(pacman --config "$copydir"/etc/pacman.conf \ + --dbpath "$copydir"/var/lib/pacman \ + -Sddp "${pkgnames[@]}") + break + fi done msg2 "Checking packages" - sudo -u "$makepkg_user" checkpkg --rmdir --warn + sudo -u "$makepkg_user" checkpkg --rmdir --warn "${remotepkgs[@]/#file:\/\//}" fi true fi |