X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=id-deb-build%2Fid-pbuild.sh;h=c04e2d76d33fbf3174a91fd721c422f1105bc2eb;hb=d9a352a0da41b7e7e249c315bc60f6e3ffc08cc9;hp=501eb6cfea85b6eb4d68c8edaba8b4d5ea7b346a;hpb=327a998e2b3be2c7f0574c2862e18eadd5070947;p=git-tools-moved-to-github.git diff --git a/id-deb-build/id-pbuild.sh b/id-deb-build/id-pbuild.sh index 501eb6c..c04e2d7 100755 --- a/id-deb-build/id-pbuild.sh +++ b/id-deb-build/id-pbuild.sh @@ -58,25 +58,37 @@ if test "$do_help" = "yes"; then usage 1 1>&2 fi -PBUILDROOT=`dirname $0`/id-pbuild-root.sh +D0=`dirname $0` +ID_DEB_BUILD=`cd $D0; pwd` +PBUILDROOT=${ID_DEB_BUILD}/id-pbuild-root.sh if test ! -x $PBUILDROOT; then echo "$PBUILDROOT not found" exit 1 fi -MKDEBSRC=`dirname $0`/id-mk-deb-src.sh +MKDEBSRC=${ID_DEB_BUILD}/id-mk-deb-src.sh if test ! -x $MKDEBSRC; then echo "$MKDEBSRC not found" exit 1 fi -if test -d deb-src; then +if $upload; then cd deb-src else - $MKDEBSRC -fi - -if test -d deb-src; then + if test "${SUDO_USER}"; then + if test ! -d deb-src; then + $MKDEBSRC + fi + else + if test -d deb-src; then + rm -rf deb-src + if test $? -ne 0; then + echo "deb-src could not be removed. Remove deb-src manually" + exit 1 + fi + fi + $MKDEBSRC + fi cd deb-src fi @@ -105,6 +117,20 @@ fi echo "Dsc $PKG . Product $PRODUCT" echo "Ubuntu distros: $UBUNTU_DIST" echo "Debian distros: $DEBIAN_DIST" +if test "${SUDO_USER}"; then + echo "Running as sudo." + echo "Tip: You can avoid it by adding the following in /etc/sudoers" + echo "${SUDO_USER} ALL=NOPASSWD: ${ID_DEB_BUILD}/id-pbuild-root.sh" + HOME_EXPORT=/home/${SUDO_USER} +else + sudo -k + HOME_EXPORT=$HOME +fi +if test ! -f ${HOME_EXPORT}/.pbuilderrc; then + echo "${HOME_EXPORT}/.pbuilderrc missing" + exit 1 +fi + if $upload; then for dist in ${UBUNTU_DIST}; do scp ${dist}-*/* ftp.indexdata.dk:/home/ftp/pub/${PRODUCT}/ubuntu/${dist} @@ -128,7 +154,13 @@ 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 + sudo -n $PBUILDROOT --home=${HOME_EXPORT} --dist=$dist --arch=$arch + if test $? -ne 0; then + echo "FAILED" + echo "Run id-pbuild.sh using sudo or add yourself to /etc/sudoers:" + echo "${USER} ALL=NOPASSWD: ${ID_DEB_BUILD}/id-pbuild-root.sh" + exit 1 + fi done done @@ -137,7 +169,7 @@ i=0 date for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do for arch in ${USE_ARCHS}; do - sudo -n $PBUILDROOT \ + sudo -n $PBUILDROOT --home=${HOME_EXPORT} \ --dist=$dist --arch=$arch --dsc=$PKG >${dist}-${arch}.log 2>&1 & i=`expr $i + 1` if test $i -eq $concurrency; then @@ -146,7 +178,7 @@ for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do if test -f ${dist}-${arch}/*.dsc; then : else - echo "No .dsc file for ${dist}-${arch}" + echo "FAILED: No .dsc file for ${dist}-${arch}" exit 1 fi fi @@ -158,7 +190,7 @@ for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do if test -f ${dist}-${arch}/*.dsc; then : else - echo "No .dsc file for ${dist}-${arch}" + echo "FAILED: No .dsc file for ${dist}-${arch}" exit 1 fi done