diff options
-rwxr-xr-x | archco | 9 | ||||
-rwxr-xr-x | archrelease | 31 | ||||
-rwxr-xr-x | archrm | 7 | ||||
-rwxr-xr-x | checkpkg | 125 | ||||
-rwxr-xr-x | commitpkg | 119 | ||||
-rwxr-xr-x | communityco | 9 | ||||
-rwxr-xr-x | finddeps | 57 | ||||
-rwxr-xr-x | lddd | 46 | ||||
-rwxr-xr-x | makechrootpkg | 273 | ||||
-rwxr-xr-x | mkarchroot | 258 | ||||
-rwxr-xr-x | rebuildpkgs | 111 |
11 files changed, 531 insertions, 514 deletions
@@ -1,10 +1,13 @@ #!/bin/bash -if [ "$1" = "" ]; then - echo "Usage: archco <package name> [<package name>]" +if [ "$1" = '' ]; then + echo 'Usage: archco <package name> [<package name>]' exit 1 fi for i in "$@"; do - svn co svn+ssh://gerolde.archlinux.org/srv/svn-packages/$i + svn co svn+ssh://gerolde.archlinux.org/srv/svn-packages/$i done + +# vim: set noexpandtab tabstop=8 shiftwidth=8 wrap:textwidth=132 autoindent +# kate: indent-mode normal; indent-width 8; tab-indents on; tab-width 8; word-wrap on; word-wrap-column 132 diff --git a/archrelease b/archrelease index e92a76f..f1fbb26 100755 --- a/archrelease +++ b/archrelease @@ -1,33 +1,36 @@ #!/bin/bash -if [ "$1" = "" ]; then - echo "Usage: archrelease <repo>" - exit 1 +if [ "$1" = '' ]; then + echo 'Usage: archrelease <repo>' + exit 1 fi if [ ! -f PKGBUILD ]; then - echo "archrelease: PKGBUILD not found" - exit 1 + echo 'archrelease: PKGBUILD not found' + exit 1 fi -if [ "$(basename $(readlink -f .))" != "trunk" ]; then - echo "archrelease: Not in a package trunk dir" - exit 1 +if [ "$(basename $(readlink -f .))" != 'trunk' ]; then + echo 'archrelease: Not in a package trunk dir' + exit 1 fi -if [ "$(svn diff)" != "" ]; then - echo "archrelease: You have not committed your changes yet!" - echo " Please run 'upgpkg' or 'svn commit' first" - exit 1 +if [ "$(svn diff)" != '' ]; then + echo 'archrelease: You have not committed your changes yet!' + echo ' Please run "svn commit" first' + exit 1 fi echo -n 'releasing package...' pushd .. >/dev/null if [ -d repos/$1 ]; then - svn rm --force -q repos/$1 - svn commit -q -m "archrelease: remove $1" + svn rm --force -q repos/$1 + svn commit -q -m "archrelease: remove $1" fi svn copy -q -r HEAD trunk repos/$1 svn commit -q -m "archrelease: copy trunk to $1" popd >/dev/null echo 'done' + +# vim: set noexpandtab tabstop=8 shiftwidth=8 wrap:textwidth=132 autoindent +# kate: indent-mode normal; indent-width 8; tab-indents on; tab-width 8; word-wrap on; word-wrap-column 132 @@ -1,7 +1,7 @@ #!/bin/bash -if [ "$1" = "" ]; then - echo "Usage: archrm <path to checkout>" +if [ "$1" = '' ]; then + echo 'Usage: archrm <path to checkout>' exit 1 fi @@ -11,3 +11,6 @@ fi #popd rm -rf $1 + +# vim: set noexpandtab tabstop=8 shiftwidth=8 wrap:textwidth=132 autoindent +# kate: indent-mode normal; indent-width 8; tab-indents on; tab-width 8; word-wrap on; word-wrap-column 132 @@ -1,11 +1,11 @@ #!/bin/bash # Source makepkg.conf; fail if it is not found -if [ -r "/etc/makepkg.conf" ]; then - source "/etc/makepkg.conf" +if [ -r '/etc/makepkg.conf' ]; then + source '/etc/makepkg.conf' else - echo "/etc/makepkg.conf not found!" - exit 1 + echo '/etc/makepkg.conf not found!' + exit 1 fi # Source user-specific makepkg.conf overrides @@ -18,77 +18,78 @@ strip_url() { } if [ ! -f PKGBUILD ]; then - echo "This must be run in the directory of a built package." + echo 'This must be run in the directory of a built package.' exit 1 fi -source PKGBUILD -if [ "$arch" == "any" ]; then - CARCH="any" +. PKGBUILD +if [ "$arch" == 'any' ]; then + CARCH='any' fi for _pkgname in ${pkgname[@]}; do - pkgfile=${_pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT} - oldstylepkgfile=${_pkgname}-${pkgver}-${pkgrel}${PKGEXT} - - if [ -f "$(pwd)/$pkgfile" ]; then - pkgfile=$(pwd)/$pkgfile - elif [ -f "$PKGDEST/$pkgfile" ]; then - pkgfile=$PKGDEST/$pkgfile - elif [ -f "$(pwd)/$oldstylepkgfile" ]; then - pkgfile=$(pwd)/$oldstylepkgfile - elif [ -f "$PKGDEST/$oldstylepkgfile" ]; then - pkgfile=$PKGDEST/$oldstylepkgfile - else - echo "File \"$pkgfile\" doesn't exist" - exit 1 - fi + pkgfile=${_pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT} + oldstylepkgfile=${_pkgname}-${pkgver}-${pkgrel}${PKGEXT} + + if [ -f "$(pwd)/$pkgfile" ]; then + pkgfile=$(pwd)/$pkgfile + elif [ -f "$PKGDEST/$pkgfile" ]; then + pkgfile=$PKGDEST/$pkgfile + elif [ -f "$(pwd)/$oldstylepkgfile" ]; then + pkgfile=$(pwd)/$oldstylepkgfile + elif [ -f "$PKGDEST/$oldstylepkgfile" ]; then + pkgfile=$PKGDEST/$oldstylepkgfile + else + echo "File \"$pkgfile\" doesn't exist" + exit 1 + fi - tmp=`pacman -Spd --noconfirm $_pkgname` + tmp=`pacman -Spd --noconfirm $_pkgname` - if [ $? -ne 0 ]; then - echo "Couldn't download previous package for $_pkgname." - exit 1 - fi + if [ $? -ne 0 ]; then + echo "Couldn't download previous package for $_pkgname." + exit 1 + fi - pkgurl=`echo $tmp | rev | cut -d ' ' -f 1 | rev` + pkgurl=`echo $tmp | rev | cut -d ' ' -f 1 | rev` - oldpkg=`strip_url $pkgurl` + oldpkg=`strip_url $pkgurl` - if [ "$(basename $oldpkg)" = "$(basename $pkgfile)" ]; then - echo "The built package ($_pkgname) is the one in the repo right now!" - exit 1 - fi + if [ "$(basename $oldpkg)" = "$(basename $pkgfile)" ]; then + echo "The built package ($_pkgname) is the one in the repo right now!" + exit 1 + fi + + if [ ! -f $oldpkg ]; then + if echo $pkgurl | grep '^file:///' > /dev/null 2>&1; then + cp `echo $pkgurl | sed 's#^file://##'` . + elif [ -f $PKGDEST/$oldpkg ]; then + cp $PKGDEST/$oldpkg . + else + wget --quiet $pkgurl + fi + fi + + bsdtar tf $oldpkg > filelist-$_pkgname-old + bsdtar tf "$pkgfile" > filelist-$_pkgname + + sort -o filelist-$_pkgname filelist-$_pkgname + sort -o filelist-$_pkgname-old filelist-$_pkgname-old + + diff filelist-$_pkgname-old filelist-$_pkgname - if [ ! -f $oldpkg ]; then - if echo $pkgurl | grep "^file:///" > /dev/null 2>&1; then - cp `echo $pkgurl | sed 's#^file://##'` . - elif [ -f $PKGDEST/$oldpkg ]; then - cp $PKGDEST/$oldpkg . + if diff filelist-$_pkgname-old filelist-$_pkgname | grep '\.so\.' > /dev/null 2>&1; then + mkdir -p pkg + cd pkg + bsdtar xf "$pkgfile" > /dev/null + for i in `diff ../filelist-$_pkgname-old ../filelist-$_pkgname | grep \> | grep \.so\. | awk '{print $2}'`; do + echo -n "${i}: " + objdump -p $i | grep SONAME + done else - wget --quiet $pkgurl + echo "No filename differences for $_pkgname." fi - fi - - bsdtar tf $oldpkg > filelist-$_pkgname-old - bsdtar tf "$pkgfile" > filelist-$_pkgname - - sort -o filelist-$_pkgname filelist-$_pkgname - sort -o filelist-$_pkgname-old filelist-$_pkgname-old - - diff filelist-$_pkgname-old 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 - for i in `diff ../filelist-$_pkgname-old ../filelist-$_pkgname | grep \> | grep \.so\. | awk '{print $2}'`; do - echo -n "${i}: " - objdump -p $i | grep SONAME - done - else - echo "No filename differences for $_pkgname." - fi done -# vim:ft=sh:ts=4:sw=4:et: +# vim: set noexpandtab tabstop=8 shiftwidth=8 wrap:textwidth=132 autoindent +# kate: indent-mode normal; indent-width 8; tab-indents on; tab-width 8; word-wrap on; word-wrap-column 132 @@ -1,104 +1,105 @@ #!/bin/bash abort() { - echo ${1:-"Cancelled"} - exit 1 + echo ${1:-'Cancelled'} + exit 1 } # Source makepkg.conf; fail if it is not found -if [ -r "/etc/makepkg.conf" ]; then - source "/etc/makepkg.conf" +if [ -r '/etc/makepkg.conf' ]; then + source '/etc/makepkg.conf' else - abort "/etc/makepkg.conf not found!" + abort '/etc/makepkg.conf not found!' fi # Source user-specific makepkg.conf overrides if [ -r ~/.makepkg.conf ]; then - source ~/.makepkg.conf + . ~/.makepkg.conf fi cmd=$(basename "$0") if [ ! -f PKGBUILD ]; then - abort "No PKGBUILD file" + abort 'No PKGBUILD file' fi -source PKGBUILD +. PKGBUILD pkgbase=${pkgbase:-$pkgname} # set up repo-specific opts depending on how we were called -server="gerolde.archlinux.org" -if [ "$cmd" == "extrapkg" ]; then - repo="extra" -elif [ "$cmd" == "corepkg" ]; then - repo="core" -elif [ "$cmd" == "testingpkg" ]; then - repo="testing" -elif [ "$cmd" == "communitypkg" ]; then - repo="community" - server="aur.archlinux.org" -elif [ "$cmd" == "community-testingpkg" ]; then - repo="community-testing" - server="aur.archlinux.org" +server='gerolde.archlinux.org' +if [ "$cmd" == 'extrapkg' ]; then + repo='extra' +elif [ "$cmd" == 'corepkg' ]; then + repo='core' +elif [ "$cmd" == 'testingpkg' ]; then + repo='testing' +elif [ "$cmd" == 'communitypkg' ]; then + repo='community' + server='aur.archlinux.org' +elif [ "$cmd" == 'community-testingpkg' ]; then + repo='community-testing' + server='aur.archlinux.org' else - if [ $# -eq 0 ]; then - abort "usage: commitpkg <reponame> [-l limit] [commit message]" - fi - repo="$1" - shift + if [ $# -eq 0 ]; then + abort 'usage: commitpkg <reponame> [-l limit] [commit message]' + fi + repo="$1" + shift fi # check if all local source files are under version control (for s in ${source[@]} $install; do - echo $s | grep -vq '://' && \ - svn status $s | grep -q '?' && \ - abort "$s is not under version control" + echo $s | grep -vq '://' && \ + svn status $s | grep -q '?' && \ + abort "$s is not under version control" done) || true # see if any limit options were passed, we'll send them to rsync unset rsyncopts -if [ "$1" = "-l" ]; then - rsyncopts="--bwlimit=$2" - shift 2 +if [ "$1" = '-l' ]; then + rsyncopts="--bwlimit=$2" + shift 2 fi echo -n 'committing changes to trunk...' if [ -n "$1" ]; then - svn commit -q -m "upgpkg: $pkgbase $pkgver-$pkgrel + svn commit -q -m "upgpkg: $pkgbase $pkgver-$pkgrel $1" || abort else - svn commit -q || abort + svn commit -q || abort fi echo 'done' for _arch in ${arch[@]}; do - for _pkgname in ${pkgname[@]}; do - pkgfile=$_pkgname-$pkgver-$pkgrel-${_arch}$PKGEXT - - if [ ! -f $pkgfile -a -f "$PKGDEST/$pkgfile" ]; then - pkgfile="$PKGDEST/$pkgfile" - elif [ ! -f $pkgfile ]; then - echo "skipping ${_arch}" - continue 2 - fi - - echo -n 'uploading ' - rsync -c -h --progress $rsyncopts "${pkgfile}" -e ssh $server:staging/$repo || abort - done - archrelease $repo-${_arch} || abort + for _pkgname in ${pkgname[@]}; do + pkgfile=$_pkgname-$pkgver-$pkgrel-${_arch}$PKGEXT + + if [ ! -f $pkgfile -a -f "$PKGDEST/$pkgfile" ]; then + pkgfile="$PKGDEST/$pkgfile" + elif [ ! -f $pkgfile ]; then + echo "skipping ${_arch}" + continue 2 + fi + + echo -n 'uploading ' + rsync -c -h --progress $rsyncopts "${pkgfile}" -e ssh $server:staging/$repo || abort + done + archrelease $repo-${_arch} || abort done -if [ "${arch[*]}" == "any" ]; then - if [ -d ../repos/$repo-i686 -a -d ../repos/$repo-x86_64 ]; then - pushd ../repos/ >/dev/null - echo -n "removing $repo-i686 and $repo-x86_64..." - svn rm $repo-i686 - svn rm $repo-x86_64 - svn commit -q -m "removed $repo-i686 and $repo-x86_64 for $pkgname" - echo 'done' - popd >/dev/null - fi +if [ "${arch[*]}" == 'any' ]; then + if [ -d ../repos/$repo-i686 -a -d ../repos/$repo-x86_64 ]; then + pushd ../repos/ >/dev/null + echo -n "removing $repo-i686 and $repo-x86_64..." + svn rm $repo-i686 + svn rm $repo-x86_64 + svn commit -q -m "removed $repo-i686 and $repo-x86_64 for $pkgname" + echo 'done' + popd >/dev/null + fi fi -# vim:ft=sh:ts=4:sw=4:et: +# vim: set noexpandtab tabstop=8 shiftwidth=8 wrap:textwidth=132 autoindent +# kate: indent-mode normal; indent-width 8; tab-indents on; tab-width 8; word-wrap on; word-wrap-column 132 diff --git a/communityco b/communityco index 83e5aae..f4f3e97 100755 --- a/communityco +++ b/communityco @@ -1,10 +1,13 @@ #!/bin/bash -if [ "$1" = "" ]; then - echo "Usage: communityco <package name> [<package name>]" +if [ "$1" = '' ]; then + echo 'Usage: communityco <package name> [<package name>]' exit 1 fi for i in "$@"; do - svn co svn+ssh://aur.archlinux.org/srv/svn-packages/$i + svn co svn+ssh://aur.archlinux.org/srv/svn-packages/$i done + +# vim: set noexpandtab tabstop=8 shiftwidth=8 wrap:textwidth=132 autoindent +# kate: indent-mode normal; indent-width 8; tab-indents on; tab-width 8; word-wrap on; word-wrap-column 132 @@ -3,39 +3,40 @@ # finddeps - find packages that depend on a given depname # -if [ "$1" = "" ]; then - echo "usage: finddeps <depname>" - echo "" - echo "Find packages that depend on a given depname." - echo "Run this script from the top-level directory of your ABS tree." - echo "" - exit 0 +if [ "$1" = '' ]; then + echo 'usage: finddeps <depname>' + echo '' + echo 'Find packages that depend on a given depname.' + echo 'Run this script from the top-level directory of your ABS tree.' + echo '' + exit 0 fi match=$1 tld=$(pwd) for d in $(find . -type d); do - cd $d - if [ -f PKGBUILD ]; then - unset pkgname depends makedepends - . PKGBUILD - for dep in "${depends[@]}"; do - # lose the version comaparator, if any - depname=${dep%%[<>=]*} - if [ "$depname" = "$match" ]; then - echo "$d (depends)" - fi - done - for dep in "${makedepends[@]}"; do - # lose the version comaparator, if any - depname=${dep%%[<>=]*} - if [ "$depname" = "$match" ]; then - echo "$d (makedepends)" - fi - done - fi - cd $tld + cd $d + if [ -f PKGBUILD ]; then + unset pkgname depends makedepends + . PKGBUILD + for dep in "${depends[@]}"; do + # lose the version comaparator, if any + depname=${dep%%[<>=]*} + if [ "$depname" = "$match" ]; then + echo "$d (depends)" + fi + done + for dep in "${makedepends[@]}"; do + # lose the version comaparator, if any + depname=${dep%%[<>=]*} + if [ "$depname" = "$match" ]; then + echo "$d (makedepends)" + fi + done + fi + cd $tld done -# vim:ft=sh:ts=4:sw=4:et: +# vim: set noexpandtab tabstop=8 shiftwidth=8 wrap:textwidth=132 autoindent +# kate: indent-mode normal; indent-width 8; tab-indents on; tab-width 8; word-wrap on; word-wrap-column 132 @@ -6,42 +6,46 @@ ifs=$IFS IFS=':' -libdirs="/lib:/usr/lib:/opt/qt/lib:/opt/kde/lib:/usr/lib/libfakeroot:/opt/NX/lib" +libdirs='/lib:/usr/lib:/opt/qt/lib:/opt/kde/lib:/usr/lib/libfakeroot:/opt/NX/lib' extras= TEMPDIR=$(mktemp /tmp/lddd-script.XXXX) rm $TEMPDIR mkdir -p $TEMPDIR -echo " Go out and drink some tea, this will take a while :) ..." +echo 'Go out and drink some tea, this will take a while :) ...' # Check ELF binaries in the PATH and specified dir trees. -for tree in $PATH $libdirs $extras -do - echo DIR $tree +for tree in $PATH $libdirs $extras; do + echo DIR $tree - # Get list of files in tree. - files=$(find $tree -type f ! -name '*.a' ! -name '*.la' ! -name '*.py*' ! -name '*.txt' ! -name '*.h' ! -name '*.ttf' ! -name '*.rb' ! -name '*.ko' ! -name '*.pc' ! -name '*.enc' ! -name '*.cf' ! -name '*.def' ! -name '*.rules' ! -name '*.cmi' ! -name '*.mli' ! -name '*.ml' ! -name '*.cma' ! -name '*.cmx' ! -name '*.cmxa' ! -name '*.pod' ! -name '*.pm' ! -name '*.pl' ! -name '*.al' ! -name '*.tcl' ! -name '*.bs' ! -name '*.o' ! -name '*.png' ! -name '*.gif' ! -name '*.cmo' ! -name '*.cgi' ! -name '*.defs' ! -name '*.conf' ! -name '*_LOCALE' ! -name 'Compose' ! -name '*_OBJS' ! -name '*.msg' ! -name '*.mcopclass' ! -name '*.mcoptype') - IFS=$ifs - for i in $files - do - if [ `file $i | grep -c 'ELF'` -ne 0 ]; then - # Is an ELF binary. - if [ `ldd $i 2>/dev/null | grep -c 'not found'` -ne 0 ]; then - # Missing lib. - echo "$i:" >> $TEMPDIR/raw.txt - ldd $i 2>/dev/null | grep 'not found' >> $TEMPDIR/raw.txt - fi - fi - done + # Get list of files in tree. + files=$(find $tree -type f ! -name '*.a' ! -name '*.la' ! -name '*.py*' ! -name '*.txt' ! -name '*.h' ! -name '*.ttf' ! + -name '*.rb' ! -name '*.ko' ! -name '*.pc' ! -name '*.enc' ! -name '*.cf' ! -name '*.def' ! -name '*.rules' ! -name + '*.cmi' ! -name '*.mli' ! -name '*.ml' ! -name '*.cma' ! -name '*.cmx' ! -name '*.cmxa' ! -name '*.pod' ! -name '*.pm' + ! -name '*.pl' ! -name '*.al' ! -name '*.tcl' ! -name '*.bs' ! -name '*.o' ! -name '*.png' ! -name '*.gif' ! -name '*.cmo' + ! -name '*.cgi' ! -name '*.defs' ! -name '*.conf' ! -name '*_LOCALE' ! -name 'Compose' ! -name '*_OBJS' ! -name + '*.msg' ! -name '*.mcopclass' ! -name '*.mcoptype') + IFS=$ifs + for i in $files; do + if [ `file $i | grep -c 'ELF'` -ne 0 ]; then + # Is an ELF binary. + if [ `ldd $i 2>/dev/null | grep -c 'not found'` -ne 0 ]; then + # Missing lib. + echo "$i:" >> $TEMPDIR/raw.txt + ldd $i 2>/dev/null | grep 'not found' >> $TEMPDIR/raw.txt + fi + fi + done done grep '^/' $TEMPDIR/raw.txt | sed -e 's/://g' >> $TEMPDIR/affected-files.txt # invoke pacman for i in $(cat $TEMPDIR/affected-files.txt); do - pacman -Qo $i | awk '{print $4,$5}' >> $TEMPDIR/pacman.txt + pacman -Qo $i | awk '{print $4,$5}' >> $TEMPDIR/pacman.txt done # clean list sort -u $TEMPDIR/pacman.txt >> $TEMPDIR/possible-rebuilds.txt echo "Files saved to $TEMPDIR" -# vim:ft=sh:ts=4:sw=4:et: +# vim: set noexpandtab tabstop=8 shiftwidth=8 wrap:textwidth=132 autoindent +# kate: indent-mode normal; indent-width 8; tab-indents on; tab-width 8; word-wrap on; word-wrap-column 132 diff --git a/makechrootpkg b/makechrootpkg index 8ddbe36..0446c46 100755 --- a/makechrootpkg +++ b/makechrootpkg @@ -8,64 +8,63 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -FORCE="n" -RUN="" -MAKEPKG_ARGS="-sr" -REPACK="" -COPY="copy" +FORCE='n' +RUN='' +MAKEPKG_ARGS='-sr' +REPACK='' +COPY='copy' WORKDIR=$PWD -update_first="0" -clean_first="0" -install_pkg="" +update_first='0' +clean_first='0' +install_pkg='' add_to_db=0 -chrootdir="" +chrootdir='' APPNAME=$(basename "${0}") -usage () -{ - echo "usage ${APPNAME} [options] -r <chrootdir> [--] [makepkg args]" - echo " Run this script in a PKGBUILD dir to build a package inside a" - echo " clean chroot. All unrecognized arguments passed to this script" - echo " will be passed to makepkg." - echo "" - echo " The chroot dir consists of the following directories:" - echo " <chrootdir>/{root, copy} but only 'root' is required" - echo " by default. The working copy will be created as needed" - echo "" - echo "The chroot 'root' directory must be created via the following" - echo "command:" - echo " mkarchroot <chrootdir>/root base base-devel sudo" - echo "" - echo "Default makepkg args: $MAKEPKG_ARGS" - echo "" - echo "Flags:" - echo "-h This help" - echo "-c Clean the chroot before building" - echo "-u Update the working copy of the chroot before building" - echo " This is useful for rebuilds without dirtying the pristine" - echo " chroot" - echo "-d Add the package to a local db at /repo after building" - echo "-r <dir> The chroot dir to use" - echo "-I <pkg> Install a package into the working copy of the chroot" - echo "-l <copy> The directory to use as the working copy of the chroot" - echo " Useful for maintain multiple copies Default: copy" - exit 1 +usage() { + echo "usage ${APPNAME} [options] -r <chrootdir> [--] [makepkg args]" + echo ' Run this script in a PKGBUILD dir to build a package inside a' + echo ' clean chroot. All unrecognized arguments passed to this script' + echo ' will be passed to makepkg.' + echo '' + echo ' The chroot dir consists of the following directories:' + echo ' <chrootdir>/{root, copy} but only "root" is required' + echo ' by default. The working copy will be created as needed' + echo '' + echo 'The chroot "root" directory must be created via the following' + echo 'command:' + echo ' mkarchroot <chrootdir>/root base base-devel sudo' + echo '' + echo "Default makepkg args: $MAKEPKG_ARGS" + echo '' + echo 'Flags:' + echo '-h This help' + echo '-c Clean the chroot before building' + echo '-u Update the working copy of the chroot before building' + echo ' This is useful for rebuilds without dirtying the pristine' + echo ' chroot' + echo '-d Add the package to a local db at /repo after building' + echo '-r <dir> The chroot dir to use' + echo '-I <pkg> Install a package into the working copy of the chroot' + echo '-l <copy> The directory to use as the working copy of the chroot' + echo ' Useful for maintain multiple copies Default: copy' + exit 1 } while getopts 'hcudr:I:l:' arg; do - case "${arg}" in - h) usage ;; - c) clean_first=1 ;; - u) update_first=1 ;; - d) add_to_db=1 ;; - r) chrootdir="$OPTARG" ;; - I) install_pkg="$OPTARG" ;; - l) COPY="$OPTARG" ;; - *) MAKEPKG_ARGS="$MAKEPKG_ARGS -$arg $OPTARG" ;; - esac + case "${arg}" in + h) usage ;; + c) clean_first=1 ;; + u) update_first=1 ;; + d) add_to_db=1 ;; + r) chrootdir="$OPTARG" ;; + I) install_pkg="$OPTARG" ;; + l) COPY="$OPTARG" ;; + *) MAKEPKG_ARGS="$MAKEPKG_ARGS -$arg $OPTARG" ;; + esac done #Get rid of trailing / in chrootdir @@ -77,61 +76,61 @@ MAKEPKG_ARGS="$MAKEPKG_ARGS ${*:$OPTIND}" # See if -R was passed to makepkg for arg in ${*:$OPTIND}; do - if [ "$arg" = "-R" ]; then - REPACK=1 - break; - fi + if [ "$arg" = '-R' ]; then + REPACK=1 + break; + fi done -if [ "$EUID" != "0" ]; then - echo "This script must be run as root." - exit 1 +if [ "$EUID" != '0' ]; then + echo 'This script must be run as root.' + exit 1 fi if [ ! -f PKGBUILD ]; then - echo "This must be run in a directory containing a PKGBUILD." - exit 1 + echo 'This must be run in a directory containing a PKGBUILD.' + exit 1 fi source PKGBUILD if [ ! -d "$chrootdir" ]; then - echo "No chroot dir defined, or invalid path '$chrootdir'" - exit 1 + echo "No chroot dir defined, or invalid path '$chrootdir'" + exit 1 fi if [ ! -d "$chrootdir/root" ]; then - echo "Missing chroot dir root directory." - echo "Try using: mkarchroot $chrootdir/root base base-devel sudo" - usage + echo 'Missing chroot dir root directory.' + echo "Try using: mkarchroot $chrootdir/root base base-devel sudo" + usage fi umask 0022 if [ ! -d "$copydir" -o "$clean_first" -eq "1" ]; then - echo -n 'creating clean working copy...' - mkdir -p "$copydir" - rsync -a --delete -q -W -x "$chrootdir/root/" "$copydir" - echo 'done' + echo -n 'creating clean working copy...' + mkdir -p "$copydir" + rsync -a --delete -q -W -x "$chrootdir/root/" "$copydir" + echo 'done' fi if [ -n "$install_pkg" ]; then - pkgname="$(basename "$install_pkg")" - cp "$install_pkg" "$copydir/$pkgname" - mkarchroot -r "pacman -U /$pkgname" "$copydir" - ret=$? - rm "$copydir/$pkgname" - #exit early, we've done all we need to - exit $ret + pkgname="$(basename "$install_pkg")" + cp "$install_pkg" "$copydir/$pkgname" + mkarchroot -r "pacman -U /$pkgname" "$copydir" + ret=$? + rm "$copydir/$pkgname" + #exit early, we've done all we need to + exit $ret fi if [ $update_first -eq 1 ]; then - mkarchroot -r "pacman -Syu --noconfirm" "$copydir" + mkarchroot -r 'pacman -Syu --noconfirm' "$copydir" fi [ -d "$copydir/build" ] || mkdir "$copydir/build" if [ "$REPACK" != "1" ]; then - #Remove anything in there UNLESS -R (repack) was passed to makepkg - rm -rf "$copydir/build/"* + #Remove anything in there UNLESS -R (repack) was passed to makepkg + rm -rf "$copydir/build/"* fi # Get SRC/PKGDEST from makepkg.conf @@ -139,43 +138,43 @@ SRCDEST=$(grep '^SRCDEST=' /etc/makepkg.conf | cut -d= -f2) PKGDEST=$(grep '^PKGDEST=' /etc/makepkg.conf | cut -d= -f2) [ -d "$copydir/pkgdest" ] || mkdir "$copydir/pkgdest" -if ! grep "PKGDEST=/pkgdest" "$copydir/etc/makepkg.conf" >/dev/null 2>&1; then - echo "PKGDEST=/pkgdest" >> "$copydir/etc/makepkg.conf" +if ! grep 'PKGDEST=/pkgdest' "$copydir/etc/makepkg.conf" >/dev/null 2>&1; then + echo 'PKGDEST=/pkgdest' >> "$copydir/etc/makepkg.conf" fi [ -d "$copydir/srcdest" ] || mkdir "$copydir/srcdest" -if ! grep "SRCDEST=/srcdest" "$copydir/etc/makepkg.conf" >/dev/null 2>&1; then - echo "SRCDEST=/srcdest" >> "$copydir/etc/makepkg.conf" +if ! grep 'SRCDEST=/srcdest' "$copydir/etc/makepkg.conf" >/dev/null 2>&1; then + echo 'SRCDEST=/srcdest' >> "$copydir/etc/makepkg.conf" fi # Copy PKGBUILD and sources source PKGBUILD cp PKGBUILD "$copydir/build/" for f in ${source[@]}; do - basef=$(echo $f | sed 's|::.*||' | sed 's|^.*://.*/||g') - if [ -f "$basef" ]; then - cp "$basef" "$copydir/srcdest/" - elif [ -f "$SRCDEST/$basef" ]; then - cp "$SRCDEST/$basef" "$copydir/srcdest/" - fi + basef=$(echo $f | sed 's|::.*||' | sed 's|^.*://.*/||g') + if [ -f "$basef" ]; then + cp "$basef" "$copydir/srcdest/" + elif [ -f "$SRCDEST/$basef" ]; then + cp "$SRCDEST/$basef" "$copydir/srcdest/" + fi done -install_files=$(grep "install=" PKGBUILD) +install_files=$(grep 'install=' PKGBUILD) for pkg in ${pkgname[@]}; do - install_files+=' ' - install_files+=$(echo $install_files |sed "s/\$pkgname/$pkg/"|sed "s/\${pkgname}/$pkg/") - install_files=$(eval echo $install_files |tr '[:blank:]' '\n'|sort |uniq) + install_files+=' ' + install_files+=$(echo $install_files |sed "s/\$pkgname/$pkg/"|sed "s/\${pkgname}/$pkg/") + install_files=$(eval echo $install_files |tr '[:blank:]' '\n'|sort |uniq) done for f in $install_files;do - install="${f#"install="}" - if [ "$install" != "" -a -f "$install" ]; then - cp "$install" "$copydir/build/" - fi + install="${f#"install="}" + if [ "$install" != "" -a -f "$install" ]; then + cp "$install" "$copydir/build/" + fi done -if [ -f "ChangeLog" ]; then - cp ChangeLog "$copydir/build/" +if [ -f 'ChangeLog' ]; then + cp ChangeLog "$copydir/build/" fi chown -R nobody "$copydir/build" @@ -183,9 +182,9 @@ chown -R nobody "$copydir/srcdest" chown -R nobody "$copydir/pkgdest" if ! grep "^nobody" "$copydir/etc/sudoers" >/dev/null 2>&1; then - touch "$copydir/etc/sudoers" - echo "nobody ALL=(ALL) NOPASSWD: ALL" >> "$copydir/etc/sudoers" - chmod 440 "$copydir/etc/sudoers" + touch "$copydir/etc/sudoers" + echo 'nobody ALL=(ALL) NOPASSWD: ALL' >> "$copydir/etc/sudoers" + chmod 440 "$copydir/etc/sudoers" fi #This is a little gross, but this way the script is recreated every time in the @@ -204,47 +203,47 @@ EOF chmod +x "$copydir/chrootbuild" if mkarchroot -r "/chrootbuild" "$copydir"; then - for pkgfile in "${copydir}"/pkgdest/*${PKGEXT}; do - [ -e "$pkgfile" ] || continue - _pkgname=$(basename "$pkgfile") - if [ "$add_to_db" -eq "1" ]; then - [ -d "${copydir}/repo" ] || mkdir -p "${copydir}/repo" - pushd "${copydir}/repo" >/dev/null - cp "$pkgfile" . - repo-add repo.db.tar.gz "$_pkgname" - popd >/dev/null - fi - - if [ -d "$PKGDEST" ]; then - mv "$pkgfile" "${PKGDEST}" - else - mv "$pkgfile" "${WORKDIR}" - fi - done - - for f in "${copydir}"/srcdest/*; do - [ -e "$f" ] || continue - if [ -d "$SRCDEST" ]; then - mv "$f" "${SRCDEST}" - else - mv "$f" "${WORKDIR}" - fi - done - - for l in "${copydir}"/build/*-{build,package}.log; do - [ -f "$l" ] && mv "$l" "${WORKDIR}" - done + for pkgfile in "${copydir}"/pkgdest/*${PKGEXT}; do + [ -e "$pkgfile" ] || continue + _pkgname=$(basename "$pkgfile") + if [ "$add_to_db" -eq "1" ]; then + [ -d "${copydir}/repo" ] || mkdir -p "${copydir}/repo" + pushd "${copydir}/repo" >/dev/null + cp "$pkgfile" . + repo-add repo.db.tar.gz "$_pkgname" + popd >/dev/null + fi + + if [ -d "$PKGDEST" ]; then + mv "$pkgfile" "${PKGDEST}" + else + mv "$pkgfile" "${WORKDIR}" + fi + done + + for f in "${copydir}"/srcdest/*; do + [ -e "$f" ] || continue + if [ -d "$SRCDEST" ]; then + mv "$f" "${SRCDEST}" + else + mv "$f" "${WORKDIR}" + fi + done + + for l in "${copydir}"/build/*-{build,package}.log; do + [ -f "$l" ] && mv "$l" "${WORKDIR}" + done else - #just in case. We returned 1, make sure we fail - touch "${copydir}/build/BUILD_FAILED" + #just in case. We returned 1, make sure we fail + touch "${copydir}/build/BUILD_FAILED" fi if [ -e "${copydir}/build/BUILD_FAILED" ]; then - echo "Build failed, check $copydir/build" - rm "${copydir}/build/BUILD_FAILED" + echo "Build failed, check $copydir/build" + rm "${copydir}/build/BUILD_FAILED" else - rm -rf "${copydir}"/build/* -fi - + rm -rf "${copydir}"/build/* +fi -# vim:ft=sh:ts=4:sw=4:et: +# vim: set noexpandtab tabstop=8 shiftwidth=8 wrap:textwidth=132 autoindent +# kate: indent-mode normal; indent-width 8; tab-indents on; tab-width 8; word-wrap on; word-wrap-column 132 @@ -8,175 +8,171 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -FORCE="n" -RUN="" -NOCOPY="n" +FORCE='n' +RUN='' +NOCOPY='n' -working_dir="" +working_dir='' APPNAME=$(basename "${0}") # usage: usage <exitvalue> -usage () -{ - echo "usage ${APPNAME} [options] working-dir [package-list | app]" - echo " options:" - echo " -r <app> Run 'app' within the context of the chroot" - echo " -u Update the chroot via pacman" - echo " -f Force overwrite of files in the working-dir" - echo " -C <file> Location of a pacman config file" - echo " -M <file> Location of a makepkg config file" - echo " -n Do not copy config files into the chroot" - echo " -c <dir> Set pacman cache. Default: ${cache_dir}" - echo " -h This message" - exit $1 +usage() { + echo "usage ${APPNAME} [options] working-dir [package-list | app]" + echo ' options:' + echo ' -r <app> Run "app" within the context of the chroot' + echo ' -u Update the chroot via pacman' + echo ' -f Force overwrite of files in the working-dir' + echo ' -C <file> Location of a pacman config file' + echo ' -M <file> Location of a makepkg config file' + echo ' -n Do not copy config files into the chroot' + echo " -c <dir> Set pacman cache. Default: ${cache_dir}" + echo ' -h This message' + exit $1 } while getopts 'r:ufnhC:M:c:' arg; do - case "${arg}" in - r) RUN="$OPTARG" ;; - u) RUN="pacman -Syu" ;; - f) FORCE="y" ;; - C) pac_conf="$OPTARG" ;; - M) makepkg_conf="$OPTARG" ;; - n) NOCOPY="y" ;; - c) cache_dir="$OPTARG" ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac + case "${arg}" in + r) RUN="$OPTARG" ;; + u) RUN='pacman -Syu' ;; + f) FORCE='y' ;; + C) pac_conf="$OPTARG" ;; + M) makepkg_conf="$OPTARG" ;; + n) NOCOPY='y' ;; + c) cache_dir="$OPTARG" ;; + h|?) usage 0 ;; + *) echo "invalid argument '${arg}'"; usage 1 ;; + esac done -if [ "$EUID" != "0" ]; then - echo "error: this script must be run as root." - exit 1 +if [ "$EUID" != '0' ]; then + echo 'error: this script must be run as root.' + exit 1 fi shift $(($OPTIND - 1)) -if [ "$RUN" = "" -a $# -lt 2 ]; then - echo "you must specify a directory and one or more packages" - usage 1 +if [ "$RUN" = '' -a $# -lt 2 ]; then + echo 'you must specify a directory and one or more packages' + usage 1 elif [ $# -lt 1 ]; then - echo "you must specify a directory" - usage 1 + echo 'you must specify a directory' + usage 1 fi working_dir="$(readlink -f ${1})" shift 1 -[ "${working_dir}" = "" ] && echo "error: please specify a working directory" && usage 1 +[ "${working_dir}" = '' ] && echo 'error: please specify a working directory' && usage 1 if [ -z "$cache_dir" ]; then - cache_conf=${working_dir}/etc/pacman.conf - [ ! -f $cache_conf ] && cache_conf=${pac_conf:-/etc/pacman.conf} - cache_dir=$((grep -m 1 '^CacheDir' $cache_conf || echo 'CacheDir = /var/cache/pacman/pkg') | sed 's/CacheDir\s*=\s*//') - unset cache_conf + cache_conf=${working_dir}/etc/pacman.conf + [ ! -f $cache_conf ] && cache_conf=${pac_conf:-/etc/pacman.conf} + cache_dir=$((grep -m 1 '^CacheDir' $cache_conf || echo 'CacheDir = /var/cache/pacman/pkg') | sed 's/CacheDir\s*=\s*//') + unset cache_conf fi # {{{ functions -chroot_mount () -{ - [ -e "${working_dir}/sys" ] || mkdir "${working_dir}/sys" - mount -t sysfs sysfs "${working_dir}/sys" +chroot_mount() { + [ -e "${working_dir}/sys" ] || mkdir "${working_dir}/sys" + mount -t sysfs sysfs "${working_dir}/sys" - [ -e "${working_dir}/proc" ] || mkdir "${working_dir}/proc" - mount -t proc proc "${working_dir}/proc" + [ -e "${working_dir}/proc" ] || mkdir "${working_dir}/proc" + mount -t proc proc "${working_dir}/proc" - [ -e "${working_dir}/dev" ] || mkdir "${working_dir}/dev" - mount -o bind /dev "${working_dir}/dev" + [ -e "${working_dir}/dev" ] || mkdir "${working_dir}/dev" + mount -o bind /dev "${working_dir}/dev" - [ -e "${cache_dir}" ] || mkdir -p "${cache_dir}" - [ -e "${working_dir}/${cache_dir}" ] || mkdir -p "${working_dir}/${cache_dir}" - mount -o bind "${cache_dir}" "${working_dir}/${cache_dir}" + [ -e "${cache_dir}" ] || mkdir -p "${cache_dir}" + [ -e "${working_dir}/${cache_dir}" ] || mkdir -p "${working_dir}/${cache_dir}" + mount -o bind "${cache_dir}" "${working_dir}/${cache_dir}" - trap 'chroot_umount' 0 1 2 15 + trap 'chroot_umount' 0 1 2 15 } -copy_hostconf () -{ - cp /etc/mtab "${working_dir}/etc/mtab" - cp /etc/resolv.conf "${working_dir}/etc/resolv.conf" - +copy_hostconf () { + cp /etc/mtab "${working_dir}/etc/mtab" + cp /etc/resolv.conf "${working_dir}/etc/resolv.conf" } -chroot_umount () -{ - umount "${working_dir}/proc" - umount "${working_dir}/sys" - umount "${working_dir}/dev" - umount "${working_dir}/${cache_dir}" +chroot_umount () { + umount "${working_dir}/proc" + umount "${working_dir}/sys" + umount "${working_dir}/dev" + umount "${working_dir}/${cache_dir}" } # }}} umask 0022 if [ "$RUN" != "" ]; then - # run chroot {{{ - #Sanity check - if [ ! -f "${working_dir}/.arch-chroot" ]; then - echo "error: '${working_dir}' does not appear to be a Arch chroot" - echo " please build the image using mkarchroot" - exit 1 - fi - - chroot_mount - copy_hostconf - - chroot "${working_dir}" ${RUN} - - # }}} -else - # {{{ build chroot - if [ -e "${working_dir}" -a "${FORCE}" = "n" ]; then - echo "error: working dir '${working_dir}' already exists - try using -f" - exit 1 - fi - - mkdir -p "${working_dir}/var/lib/pacman/" - mkdir -p "${working_dir}/etc/" - - chroot_mount - - pacargs="--noconfirm -v " #--noprogressbar -v - pacargs="$pacargs --root=${working_dir}" - # pacman takes these as relative to the given root - pacargs="$pacargs --cachedir=${cache_dir}" - if [ "$pac_conf" != "" ]; then - pacargs="$pacargs --config=${pac_conf}" - fi - - if [ $# -ne 0 ]; then - op="-Sy" - if [ "$FORCE" = "y" ]; then - op="${op}f" - fi - if ! pacman ${op} ${pacargs} $@; then - echo "error: failed to install all packages" - exit 1 - fi - fi - - if [ -d "${working_dir}/lib/modules" ]; then - ldconfig -r "${working_dir}" - fi - - if [ "$pac_conf" != "" -a "$NOCOPY" = "n" ]; then - cp ${pac_conf} ${working_dir}/etc/pacman.conf - fi - - if [ "$makepkg_conf" != "" -a "$NOCOPY" = "n" ]; then - cp ${makepkg_conf} ${working_dir}/etc/makepkg.conf - fi - - if [ -e "${working_dir}/etc/locale.gen" ]; then - cp /etc/locale.gen "${working_dir}/etc/locale.gen" - chroot "${working_dir}" locale-gen - fi - - if [ ! -e "${working_dir}/.arch-chroot" ]; then - date +%s > "${working_dir}/.arch-chroot" - fi - # }}} + # run chroot {{{ + #Sanity check + if [ ! -f "${working_dir}/.arch-chroot" ]; then + echo "error: '${working_dir}' does not appear to be a Arch chroot" + echo ' please build the image using mkarchroot' + exit 1 + fi + + chroot_mount + copy_hostconf + + chroot "${working_dir}" ${RUN} + + # }}} + else + # {{{ build chroot + if [ -e "${working_dir}" -a "${FORCE}" = "n" ]; then + echo "error: working dir '${working_dir}' already exists - try using -f" + exit 1 + fi + + mkdir -p "${working_dir}/var/lib/pacman/" + mkdir -p "${working_dir}/etc/" + + chroot_mount + + pacargs='--noconfirm -v ' #--noprogressbar -v + pacargs="$pacargs --root=${working_dir}" + # pacman takes these as relative to the given root + pacargs="$pacargs --cachedir=${cache_dir}" + if [ "$pac_conf" != "" ]; then + pacargs="$pacargs --config=${pac_conf}" + fi + + if [ $# -ne 0 ]; then + op='-Sy' + if [ "$FORCE" = "y" ]; then + op="${op}f" + fi + if ! pacman ${op} ${pacargs} $@; then + echo 'error: failed to install all packages' + exit 1 + fi + fi + + if [ -d "${working_dir}/lib/modules" ]; then + ldconfig -r "${working_dir}" + fi + + if [ "$pac_conf" != "" -a "$NOCOPY" = "n" ]; then + cp ${pac_conf} ${working_dir}/etc/pacman.conf + fi + + if [ "$makepkg_conf" != "" -a "$NOCOPY" = "n" ]; then + cp ${makepkg_conf} ${working_dir}/etc/makepkg.conf + fi + + if [ -e "${working_dir}/etc/locale.gen" ]; then + cp /etc/locale.gen "${working_dir}/etc/locale.gen" + chroot "${working_dir}" locale-gen + fi + + if [ ! -e "${working_dir}/.arch-chroot" ]; then + date +%s > "${working_dir}/.arch-chroot" + fi + # }}} fi -# vim:ft=sh:ts=4:sw=4:et: +# vim: set noexpandtab tabstop=8 shiftwidth=8 wrap:textwidth=132 autoindent +# kate: indent-mode normal; indent-width 8; tab-indents on; tab-width 8; word-wrap on; word-wrap-column 132 diff --git a/rebuildpkgs b/rebuildpkgs index f2db8ff..3be5d47 100755 --- a/rebuildpkgs +++ b/rebuildpkgs @@ -10,48 +10,48 @@ # TODO make this work for community too if [ $# -le 1 ]; then - echo "usage: $(basename $0) <chrootdir> <packages to rebuild>" - echo " example: $(basename $0) ~/chroot readline bash foo bar baz" - exit 1 + echo "usage: $(basename $0) <chrootdir> <packages to rebuild>" + echo " example: $(basename $0) ~/chroot readline bash foo bar baz" + exit 1 fi # Source makepkg.conf; fail if it is not found -if [ -r "/etc/makepkg.conf" ]; then - source "/etc/makepkg.conf" +if [ -r '/etc/makepkg.conf' ]; then + source '/etc/makepkg.conf' else - echo "/etc/makepkg.conf not found!" - exit 1 + echo '/etc/makepkg.conf not found!' + exit 1 fi die () { - echo $@ >&2 - exit 1 + echo $@ >&2 + exit 1 } -bump_pkgrel () { - # Get the current pkgrel from SVN and update the working copy with it - # This prevents us from incrementing out of control :) - pbuild=".svn/text-base/PKGBUILD.svn-base" - oldrel=$(grep "pkgrel=" $pbuild | cut -d= -f2) +bump_pkgrel() { + # Get the current pkgrel from SVN and update the working copy with it + # This prevents us from incrementing out of control :) + pbuild='.svn/text-base/PKGBUILD.svn-base' + oldrel=$(grep 'pkgrel=' $pbuild | cut -d= -f2) - #remove decimals - rel=$(echo $oldrel | cut -d. -f1) - - newrel=$(($rel + 1)) + #remove decimals + rel=$(echo $oldrel | cut -d. -f1) - sed -i "s/pkgrel=$oldrel/pkgrel=$newrel/" PKGBUILD + newrel=$(($rel + 1)) + + sed -i "s/pkgrel=$oldrel/pkgrel=$newrel/" PKGBUILD } -pkg_from_pkgbuild () { - # we want the sourcing to be done in a subshell so we don't pollute our current namespace - export CARCH PKGEXT - (. PKGBUILD; echo "$pkgname-$pkgver-$pkgrel-$CARCH$PKGEXT") +pkg_from_pkgbuild() { + # we want the sourcing to be done in a subshell so we don't pollute our current namespace + export CARCH PKGEXT + (source PKGBUILD; echo "$pkgname-$pkgver-$pkgrel-$CARCH$PKGEXT") } chrootdir="$1"; shift pkgs="$@" -SVNPATH="svn+ssh://gerolde.archlinux.org/srv/svn-packages" +SVNPATH='svn+ssh://gerolde.archlinux.org/srv/svn-packages' echo ":: Work will be done in $(pwd)/rebuilds" @@ -63,39 +63,42 @@ cd "$REBUILD_ROOT" FAILED="" for pkg in $pkgs; do - cd "$REBUILD_ROOT/svn-packages" - - echo ":: Building '$pkg'" - /usr/bin/svn update "$pkg" - if [ ! -d "$pkg/trunk" ]; then - FAILED="$FAILED $pkg" - echo ":: $pkg does not exist in SVN" - continue - fi - cd "$pkg/trunk/" - - bump_pkgrel - - if ! sudo makechrootpkg -u -d -r "$chrootdir" -- --noconfirm; then - FAILED="$FAILED $pkg" - echo ":: $pkg Failed!" - else - pkgfile=$(pkg_from_pkgbuild) - if [ -e "$pkgfile" ]; then - echo ":: $pkg Complete" - else - FAILED="$FAILED $pkg" - echo ":: $pkg Failed, no package built!" - fi - fi + cd "$REBUILD_ROOT/svn-packages" + + echo ":: Building '$pkg'" + /usr/bin/svn update "$pkg" + if [ ! -d "$pkg/trunk" ]; then + FAILED="$FAILED $pkg" + echo ":: $pkg does not exist in SVN" + continue + fi + cd "$pkg/trunk/" + + bump_pkgrel + + if ! sudo makechrootpkg -u -d -r "$chrootdir" -- --noconfirm; then + FAILED="$FAILED $pkg" + echo ":: $pkg Failed!" + else + pkgfile=$(pkg_from_pkgbuild) + if [ -e "$pkgfile" ]; then + echo ":: $pkg Complete" + else + FAILED="$FAILED $pkg" + echo ":: $pkg Failed, no package built!" + fi + fi done cd "$REBUILD_ROOT" if [ "$FAILED" != "" ]; then - echo "Packages failed:" - for pkg in $FAILED; do - echo -e "\t$pkg" - done + echo 'Packages failed:' + for pkg in $FAILED; do + echo -e "\t$pkg" + done fi -echo "SVN pkgbumps in svn-packages/ - commit when ready" +echo 'SVN pkgbumps in svn-packages/ - commit when ready' + +# vim: set noexpandtab tabstop=8 shiftwidth=8 wrap:textwidth=132 autoindent +# kate: indent-mode normal; indent-width 8; tab-indents on; tab-width 8; word-wrap on; word-wrap-column 132 |