X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=id-deb-build%2Fid-pbuild.sh;h=e72f05260992df4620195f3aa8ea59ee436d2331;hb=f23a522439343470ed9e0df49d4d1efe222b3e44;hp=478d816fb36fa76955c3f6abe63e7cb5b7cec904;hpb=aba11018ef5f1167c469695a4a628f48d873e343;p=git-tools-moved-to-github.git diff --git a/id-deb-build/id-pbuild.sh b/id-deb-build/id-pbuild.sh index 478d816..e72f052 100755 --- a/id-deb-build/id-pbuild.sh +++ b/id-deb-build/id-pbuild.sh @@ -7,15 +7,19 @@ Options: [--debian=distros] [--ubuntu=distros] [--centos=distros] + [--concurrency=level] + [--update=true|false] [--upload] EOF exit $1 } D0=`dirname $0` ID_DEB_BUILD=`cd $D0; pwd` - +update=true do_help=false upload=false +concurrency=8 +ARCHS="i386 amd64" while test $# -gt 0; do case "$1" in -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; @@ -31,9 +35,15 @@ while test $# -gt 0; do --centos=*) CENTOS_DIST_A=$optarg ;; + --concurrency=*) + concurrency=$optarg + ;; --upload) upload=true ;; + --update=*) + update=$optarg + ;; -*) do_help=yes ;; @@ -104,7 +114,7 @@ if $upload; then UPLOAD_URI=${UPLOAD_HOST}:${UPLOAD_PATH}/${PRODUCT} echo "Uploading to ${UPLOAD_URI}" if $centos; then - pkg_names=`rpm -q --specfile ${PRODUCT}.spec --queryformat "%{NAME}-%{VERSION}-%{RELEASE}\n"` + pkg_names=`sudo lxc-attach -n mockbuild -- rpm -q --specfile ~/rpmbuild/SPECS/${PRODUCT}.spec --queryformat "%{NAME}-%{VERSION}-%{RELEASE}\n"` for dist in ${CENTOS_DIST}; do case $dist in centos5) @@ -221,33 +231,30 @@ if $debian; then if grep "Architecture: all" $DSC >/dev/null; then USE_ARCHS=i386 else - USE_ARCHS="i386 amd64" + USE_ARCHS=$ARCHS fi + rm -f ~/.pbuilderrc + i=0 + cat ${ID_DEB_BUILD}/pbuilderrc > ~/.pbuilderrc for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do for arch in ${USE_ARCHS}; do - echo -n "dist=$dist arch=$arch" - rm -f ~/.pbuilderrc - echo "DIST=$dist" > ~/.pbuilderrc - echo "ARCH=$arch" >> ~/.pbuilderrc - cat ${ID_DEB_BUILD}/pbuilderrc >> ~/.pbuilderrc - echo -n " update" - if ! sudo lxc-attach -n pbuilder -- pbuilder --update --override-config >update-${dist}-${arch}.log 2>&1; then - echo -n " create" - if ! sudo lxc-attach -n pbuilder -- pbuilder --create >create-${dist}-${arch}.log 2>&1; then - echo " failed. Inspect deb-src/create-${dist}-${arch}.log" - exit 1 - fi - echo -n " update" - if ! sudo lxc-attach -n pbuilder -- pbuilder --update --override-config >update-${dist}-${arch}.log 2>&1; then - echo " failed. Inspect deb-src/update-${dist}-${arch}.log" + sudo ${ID_DEB_BUILD}/id-pbuild-root.sh --update=$update --dsc=$DSC --arch=$arch --dist=$dist & + i=`expr $i + 1` + if test $i -ge $concurrency; then + i=0 + wait + if ! test -f ${dist}-${arch}/*.dsc; then + echo "FAILED: No .dsc file for ${dist}-${arch}" exit 1 - fi + fi fi - echo -n " build" - if sudo lxc-attach -n pbuilder -- pbuilder --build $DSC >build-${dist}-${arch}.log 2>&1; then - echo " done" - else - echo " failed. Inspect deb-src/build-${dist}-${arch}.log" + done + done + wait + for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do + for arch in ${USE_ARCHS}; do + if ! test -f ${dist}-${arch}/*.dsc; then + echo "FAILED: No .dsc file for ${dist}-${arch}" exit 1 fi done