X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=id-deb-build%2Fid-pbuild.sh;h=501eb6cfea85b6eb4d68c8edaba8b4d5ea7b346a;hb=327a998e2b3be2c7f0574c2862e18eadd5070947;hp=c2a09008e76079c8a9ee160222f047d3866a32c9;hpb=b2e774942097790f0f97cf07878ff04e01661798;p=git-tools-moved-to-github.git diff --git a/id-deb-build/id-pbuild.sh b/id-deb-build/id-pbuild.sh index c2a0900..501eb6c 100755 --- a/id-deb-build/id-pbuild.sh +++ b/id-deb-build/id-pbuild.sh @@ -6,12 +6,13 @@ usage() { cat <&2 fi +PBUILDROOT=`dirname $0`/id-pbuild-root.sh +if test ! -x $PBUILDROOT; then + echo "$PBUILDROOT not found" + exit 1 +fi + +MKDEBSRC=`dirname $0`/id-mk-deb-src.sh +if test ! -x $MKDEBSRC; then + echo "$MKDEBSRC not found" + exit 1 +fi + if test -d deb-src; then cd deb-src +else + $MKDEBSRC fi + +if test -d deb-src; then + cd deb-src +fi + for f in *.dsc; do if test -f "$f"; then PKG=$f @@ -70,9 +93,15 @@ if test ! -e "$PKG"; then echo "${PKG} does not exist" exit 1 fi -PBUILDER=/usr/sbin/pbuilder -PRODUCT=`echo *.dsc|sed 's/_.*//g'` +if test -z "$PRODUCT"; then + PRODUCT=`echo *.dsc|sed 's/_.*//g'` +fi ARCHS="i386 amd64" +if grep "Architecture: all" $PKG >/dev/null; then + USE_ARCHS=i386 +else + USE_ARCHS=$ARCHS +fi echo "Dsc $PKG . Product $PRODUCT" echo "Ubuntu distros: $UBUNTU_DIST" echo "Debian distros: $DEBIAN_DIST" @@ -83,36 +112,49 @@ if $upload; then for dist in ${DEBIAN_DIST}; do scp ${dist}-*/* ftp.indexdata.dk:/home/ftp/pub/${PRODUCT}/debian/${dist} done - echo "Remember to update APT on ftp.indexdata.dk" - echo "cd git-tools/update-archive" + echo "" + echo "====================================================" + echo "Remember to update APT on ftp.indexdata.dk !!!" + echo "" + echo "ssh ftp.indexdata.dk" + echo "cd ~/proj/git-tools/update-archive" echo "sudo su" echo "./update-archive.sh" + echo "====================================================" exit 0 fi +rm -f *.log + +# call our privileged wrapper to clean the directories, no --dsc option +for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do + for arch in ${USE_ARCHS}; do + sudo -n $PBUILDROOT --dist=$dist --arch=$arch + done +done + +# call our privileged wrapper to do the real work, with --dsc option i=0 date for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do - for arch in ${ARCHS}; do - rm -fr ${dist}-${arch} - ( - if test ! -f /var/cache/pbuilder/${dist}-${arch}-base.tgz; then - DIST=$dist ARCH=$arch $PBUILDER create - fi - for f in `find /var/cache/pbuilder/${dist}-${arch}-base.tgz -ctime +7`; do - DIST=$dist ARCH=$arch $PBUILDER update --override-config - done - DIST=$dist ARCH=$arch $PBUILDER --build $PKG - ) >${dist}-${arch}.log 2>&1 & + for arch in ${USE_ARCHS}; do + sudo -n $PBUILDROOT \ + --dist=$dist --arch=$arch --dsc=$PKG >${dist}-${arch}.log 2>&1 & i=`expr $i + 1` if test $i -eq $concurrency; then i=0 wait + if test -f ${dist}-${arch}/*.dsc; then + : + else + echo "No .dsc file for ${dist}-${arch}" + exit 1 + fi fi done done wait for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do - for arch in ${ARCHS}; do + for arch in ${USE_ARCHS}; do if test -f ${dist}-${arch}/*.dsc; then : else