usage()
{
cat <<EOF
-Usage: id-pbuild-all.sh [OPTIONS]
+Usage: id-pbuild.sh [OPTIONS]
Options:
[--debian=distros]
[--ubuntu=distros]
[--upload]
[--concurrency=N]
+ [--product=X]
EOF
exit $1
}
esac
case $1 in
+ --debian=*)
+ DEBIAN_DIST=$optarg
+ ;;
--ubuntu=*)
UBUNTU_DIST=$optarg
;;
- --debian=*)
- DEBIAN_DIST=$optarg
+ --upload)
+ upload=true
;;
--concurrency=*)
concurrency=$optarg
;;
- --upload)
- upload=true
+ --product=*)
+ PRODUCT=$optarg
;;
-*)
do_help=yes
usage 1 1>&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
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"
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