diff options
author | Luke Shumaker <LukeShu@sbcglobal.net> | 2013-09-26 16:23:32 -0400 |
---|---|---|
committer | Luke Shumaker <LukeShu@sbcglobal.net> | 2013-09-26 16:23:32 -0400 |
commit | 67bcecbbe42c727936d825363fbd1e2173bab574 (patch) | |
tree | 4443427102b172f3963f98a6e32c76e7b1da4b1a | |
parent | 46e8d5b656945179d7dc79c6d5c93034f1495367 (diff) | |
parent | 9c85d116f0425817b4a631e7a693dc5c948e2470 (diff) | |
download | devtools-67bcecbbe42c727936d825363fbd1e2173bab574.tar.xz |
Merge branch 'devtools' (early part)
Conflicts:
arch-nspawn.in
This effectively reverts my machine_name patch; I took a simpler route to
dealing with a working_dir with funny characters in it, using a different
scheme for the machine_name. This fixes the problems devtools' original
scheme had, so I'm going back to that.
-rw-r--r-- | arch-nspawn.in | 28 | ||||
-rw-r--r-- | checkpkg.in | 32 | ||||
-rw-r--r-- | commitpkg.in | 2 |
3 files changed, 30 insertions, 32 deletions
diff --git a/arch-nspawn.in b/arch-nspawn.in index ec9b2d3..bde77b6 100644 --- a/arch-nspawn.in +++ b/arch-nspawn.in @@ -40,15 +40,15 @@ shift $(($OPTIND - 1)) (( $EUID != 0 )) && die 'This script must be run as root.' (( $# < 1 )) && die 'You must specify a directory.' -working_dir="$(readlink -f $1)" +working_dir=$(readlink -f "$1") shift 1 [[ -z $working_dir ]] && die 'Please specify a working directory.' if [[ -z $cache_dir ]]; then - cache_dirs=($(pacman -v $cache_conf 2>&1 | grep '^Cache Dirs:' | sed 's/Cache Dirs:\s*//g')) + cache_dirs=($(pacman -v 2>&1 | grep '^Cache Dirs:' | sed 's/Cache Dirs:\s*//g')) else - cache_dirs=(${cache_dir}) + cache_dirs=("$cache_dir") fi host_mirror=$(pacman -Sddp extra/devtools 2>/dev/null | sed -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#') @@ -56,31 +56,27 @@ host_mirror=$(pacman -Sddp extra/devtools 2>/dev/null | sed -r 's#(.*/)extra/os/ # {{{ functions build_mount_args() { - local p declare -g mount_args=() if [[ -n $host_mirror_path ]]; then - printf -v p '%q' "$host_mirror_path" - mount_args+=(--bind-ro="$p") + mount_args+=(--bind-ro="$host_mirror_path") fi - printf -v p '%q' "${cache_dirs[0]}" - mount_args+=(--bind="$p") + mount_args+=(--bind="${cache_dirs[0]}") for cache_dir in ${cache_dirs[@]:1}; do - printf -v p '%q' "$cache_dir" - mount_args+=(--bind-ro="$p") + mount_args+=(--bind-ro="$cache_dir") done } copy_hostconf () { cp -a /etc/pacman.d/gnupg "$working_dir/etc/pacman.d" - echo "Server = $host_mirror" > $working_dir/etc/pacman.d/mirrorlist + echo "Server = $host_mirror" >"$working_dir/etc/pacman.d/mirrorlist" - [[ -n $pac_conf ]] && cp $pac_conf $working_dir/etc/pacman.conf - [[ -n $makepkg_conf ]] && cp $makepkg_conf $working_dir/etc/makepkg.conf + [[ -n $pac_conf ]] && cp $pac_conf "$working_dir/etc/pacman.conf" + [[ -n $makepkg_conf ]] && cp $makepkg_conf "$working_dir/etc/makepkg.conf" - sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n ${cache_dirs[@]})|g" -i $working_dir/etc/pacman.conf + sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n ${cache_dirs[@]})|g" -i "$working_dir/etc/pacman.conf" } # }}} @@ -98,8 +94,8 @@ copy_hostconf eval $(grep '^CARCH=' "$working_dir/etc/makepkg.conf") -machine_name="${working_dir##*/}" -machine_name="${machine_name//\./-}" +machine_name="${working_dir//[![:alnum:]_-]/-}" +machine_name="${machine_name#-}" exec ${CARCH:+setarch "$CARCH"} systemd-nspawn \ -D "$working_dir" \ diff --git a/checkpkg.in b/checkpkg.in index 2cceafa..eb95745 100644 --- a/checkpkg.in +++ b/checkpkg.in @@ -1,5 +1,7 @@ #!/bin/bash +shopt -s extglob + m4_include(lib/common.sh) # Source makepkg.conf; fail if it is not found @@ -18,22 +20,24 @@ if [[ ! -f PKGBUILD ]]; then die 'This must be run in the directory of a built package.' fi -. PKGBUILD +. ./PKGBUILD if [[ $arch == 'any' ]]; then CARCH='any' fi STARTDIR=$(pwd) TEMPDIR=$(mktemp -d --tmpdir checkpkg-script.XXXX) -cd "$TEMPDIR" for _pkgname in "${pkgname[@]}"; do - pkgfile=${_pkgname}-$(get_full_version $_pkgname)-${CARCH}${PKGEXT} + pkgfile=(${_pkgname}-$(get_full_version $_pkgname)-${CARCH}.pkg.tar?(.?z)) + if (( ${#pkgfile[*]} != 1 )); then + die 'Ambiguous package name: %s\n' "${pkgfile[*]}" + fi if [[ -f "$STARTDIR/$pkgfile" ]]; then - ln -s "$STARTDIR/$pkgfile" "$pkgfile" + ln -s "$STARTDIR/$pkgfile" "$TEMPDIR/$pkgfile" elif [[ -f "$PKGDEST/$pkgfile" ]]; then - ln -s "$PKGDEST/$pkgfile" "$pkgfile" + ln -s "$PKGDEST/$pkgfile" "$TEMPDIR/$pkgfile" else die "File \"%s\" doesn't exist" "$pkgfile" fi @@ -58,23 +62,21 @@ for _pkgname in "${pkgname[@]}"; do elif [[ -f "$STARTDIR/$oldpkg" ]]; then ln -s "$STARTDIR/$oldpkg" "$oldpkg" else - curl -fsLC - --retry 3 --retry-delay 3 -o "$oldpkg" "$pkgurl" + curl -fsLC - --retry 3 --retry-delay 3 -o "$oldpkg" "$pkgurl" fi fi - bsdtar tf "$oldpkg" | sort > "filelist-$_pkgname-old" - bsdtar tf "$pkgfile" | sort > "filelist-$_pkgname" + bsdtar tf "$oldpkg" | sort > "$TEMPDIR/filelist-$_pkgname-old" + bsdtar tf "$pkgfile" | sort > "$TEMPDIR/filelist-$_pkgname" - sdiff -s "filelist-$_pkgname-old" "filelist-$_pkgname" + sdiff -s "$TEMPDIR/filelist-$_pkgname-old" "$TEMPDIR/filelist-$_pkgname" - if diff "filelist-$_pkgname-old" "filelist-$_pkgname" | grep '\.so' > /dev/null 2>&1; then - mkdir -p pkg - cd pkg - bsdtar xf ../"$pkgfile" > /dev/null - diff "../filelist-$_pkgname-old" "../filelist-$_pkgname" | awk '/>.*\.so/{$1 = ""; print $0}' | while read i; do + if diff "$TEMPDIR/filelist-$_pkgname"{-old,} | grep '\.so' &>/dev/null; then + mkdir -p "$TEMPDIR/pkg" + bsdtar -C "$TEMPDIR" xf ../"$pkgfile" #> /dev/null + diff "$TEMPDIR/filelist-$_pkgname-old" "$TEMPDIR/filelist-$_pkgname" | awk '/>.*\.so/{$1 = ""; print $0}' | while read i; do echo "${i}: " "$(objdump -p "$i" | grep SONAME)" done - cd .. else msg "No soname differences for %s." "$_pkgname" fi diff --git a/commitpkg.in b/commitpkg.in index ad1005b..fe9348b 100644 --- a/commitpkg.in +++ b/commitpkg.in @@ -36,7 +36,7 @@ if [[ ! -f PKGBUILD ]]; then die 'No PKGBUILD file' fi -. PKGBUILD +. ./PKGBUILD pkgbase=${pkgbase:-$pkgname} case "$cmd" in |