diff options
author | Levente Polyak <anthraxx@archlinux.org> | 2019-09-11 23:10:04 +0200 |
---|---|---|
committer | Levente Polyak <anthraxx@archlinux.org> | 2019-09-28 00:15:33 +0200 |
commit | 144f8966608211f85fb492a4cce3c159989dd2eb (patch) | |
tree | 3fce3ce1a64507eb23edb8e2069586949eeb7720 | |
parent | bbcff883d59e2fce4b26d241892bf83c70e9b704 (diff) | |
download | devtools-144f8966608211f85fb492a4cce3c159989dd2eb.tar.gz devtools-144f8966608211f85fb492a4cce3c159989dd2eb.tar.xz |
makechrootpkg: run checkpkg automatically after build
Cache previous versions required for checkpkg via pacman to avoid
multiple downloads when running multiple times.
In case we can't download the packages, like while building out of repo
packages, print a warning instead of running checkpkg
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
-rw-r--r-- | archbuild.in | 2 | ||||
-rw-r--r-- | makechrootpkg.in | 20 |
2 files changed, 20 insertions, 2 deletions
diff --git a/archbuild.in b/archbuild.in index 69bb029..9e32292 100644 --- a/archbuild.in +++ b/archbuild.in @@ -5,7 +5,7 @@ m4_include(lib/common.sh) m4_include(lib/archroot.sh) base_packages=(base-devel) -makechrootpkg_args=(-c -n) +makechrootpkg_args=(-c -n -C) cmd="${0##*/}" if [[ "${cmd%%-*}" == 'multilib' ]]; then diff --git a/makechrootpkg.in b/makechrootpkg.in index 2407115..90a812d 100644 --- a/makechrootpkg.in +++ b/makechrootpkg.in @@ -28,6 +28,7 @@ keepbuilddir=0 update_first=0 clean_first=0 run_namcap=0 +run_checkpkg=0 temp_chroot=0 bindmounts_ro=() @@ -72,6 +73,7 @@ usage() { echo ' Useful for maintaining multiple copies' echo " Default: $copy" echo '-n Run namcap on the package' + echo '-C Run checkpkg on the package' echo '-T Build in a temporary directory' echo '-U Run makepkg as a specified user' exit 1 @@ -289,7 +291,7 @@ move_products() { } # }}} -while getopts 'hcur:I:l:nTD:d:U:' arg; do +while getopts 'hcur:I:l:nCTD:d:U:' arg; do case "$arg" in c) clean_first=1 ;; D) bindmounts_ro+=("--bind-ro=$OPTARG") ;; @@ -299,6 +301,7 @@ while getopts 'hcur:I:l:nTD:d:U:' arg; do I) install_pkgs+=("$OPTARG") ;; l) copy="$OPTARG" ;; n) run_namcap=1; makepkg_args+=(--install) ;; + C) run_checkpkg=1 ;; T) temp_chroot=1; copy+="-$$" ;; U) makepkg_user="$OPTARG" ;; h|*) usage ;; @@ -385,6 +388,11 @@ if arch-nspawn "$copydir" \ "${bindmounts_ro[@]}" "${bindmounts_rw[@]}" \ /chrootbuild "${makepkg_args[@]}" then + pkgnames=() + for pkgfile in "$copydir"/pkgdest/*; do + pkgfile=${pkgfile##*/}; + pkgnames+=("${pkgfile%-*-*-*}"); + done move_products else (( ret += 1 )) @@ -399,5 +407,15 @@ if (( ret != 0 )); then die "Build failed, check %s/build" "$copydir" fi else + if (( run_checkpkg )); then + msg "Running checkpkg" + msg2 "Downloading current versions" + if pacman --noconfirm -Swdd --logfile /dev/null "${pkgnames[@]}"; then + msg2 "Checking packages" + sudo -u "$makepkg_user" checkpkg + else + warning "Skipped checkpkg due to missing packages" + fi + fi true fi |