X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=id-deb-build%2Fid-pbuild.sh;h=03e48f0d05b319553f7234ea985dabfb34b526d9;hb=6e96cd8fd282e4334cff1829619a219d31419a44;hp=cde1dc5720384ecea5c09365ec36cc51c5cd460a;hpb=3695c369af793871ee5e0c8e4fc56df3fd32c8d5;p=git-tools-moved-to-github.git diff --git a/id-deb-build/id-pbuild.sh b/id-deb-build/id-pbuild.sh index cde1dc5..03e48f0 100755 --- a/id-deb-build/id-pbuild.sh +++ b/id-deb-build/id-pbuild.sh @@ -1,12 +1,7 @@ #!/bin/sh # This script builds Debian packages for one or more distributions # in i386/amd64 architectures. It uses pbuilder. pbuilder requires root -# privilege and is invoked with sudo. -# -# In order to avoid having to type-in the password for it, you might -# use something like this in sudoers -# user ALL=NOPASSWD,SETENV: /usr/sbin/pbuilder -# where user is your username. +# privilege and so this script should be invoked with sudo. usage() { @@ -48,6 +43,9 @@ while test $# -gt 0; do --upload) upload=true ;; + --remote=*) + REMOTE=$optarg + ;; -*) do_help=yes ;; @@ -59,6 +57,24 @@ if test "$do_help" = "yes"; then usage 1 1>&2 fi +if test "$REMOTE"; then + if test ! -d deb-src; then + echo "deb-src not in current directory" + exit 1 + fi + cd deb-src + PRODUCT=`echo *.dsc|sed 's/_.*//g'` + cd .. + ssh $REMOTE "mkdir -p $PRODUCT/deb-src" + scp IDMETA $REMOTE:$PRODUCT + scp deb-src/*.gz deb-src/*.dsc $REMOTE:$PRODUCT/deb-src + if $upload; then + ssh $REMOTE "cd $PRODUCT; \$HOME/proj/git-tools/id-deb-build/id-pbuild.sh --upload" + else + ssh $REMOTE "cd $PRODUCT; sudo \$HOME/proj/git-tools/id-deb-build/id-pbuild.sh" + fi + exit 0 +fi if test -d deb-src; then cd deb-src fi @@ -78,6 +94,11 @@ fi PBUILDER=/usr/sbin/pbuilder PRODUCT=`echo *.dsc|sed 's/_.*//g'` 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" @@ -94,19 +115,26 @@ if $upload; then echo "./update-archive.sh" exit 0 fi +# remove existing package directories +for f in [a-z]*; do + if test -d $f; then + rm -fr $f + fi +done +rm -f *.log + i=0 date + for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do - for arch in ${ARCHS}; do + for arch in ${USE_ARCHS}; do rm -fr ${dist}-${arch} ( if test ! -f /var/cache/pbuilder/${dist}-${arch}-base.tgz; then - sudo DIST=$dist ARCH=$arch $PBUILDER create + DIST=$dist ARCH=$arch $PBUILDER create fi - for f in `find /var/cache/pbuilder/${dist}-${arch}-base.tgz -ctime +7`; do - sudo DIST=$dist ARCH=$arch $PBUILDER update --override-config - done - sudo DIST=$dist ARCH=$arch $PBUILDER --build $PKG + DIST=$dist ARCH=$arch $PBUILDER update --override-config + DIST=$dist ARCH=$arch $PBUILDER --build $PKG ) >${dist}-${arch}.log 2>&1 & i=`expr $i + 1` if test $i -eq $concurrency; then @@ -117,7 +145,7 @@ for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do 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