This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch master in repository buildscripts. from dcb25dd bin/build-rpm-package: variable ${file} is already a full-pathed file there, do not prepend ${TMP_MOCK_CFG_DIR}. new 9742e79 bin/build-rpm-package: fix default RPM_BUILD_FOR assignment. new 9e0e928 bin/build-rpm-package: misc changes: new 82283aa bin/build-deb-package: misc changes: new 6bc245d bin/build-deb-package: add cleanup function to not leave random temporary directories around. new 95090fd bin/build-deb-package: do not use a subshell for splitting up ${DEB_BUILD_FOR}. new d018249 bin/build-rpm-package: add comments for some functions. new 4dc4759 bin/build-rpm-package: change ${RPM_BUILD_FOR} splitting to a bash-only solution in more places. new 69d4443 bin/build-rpm-package: change bash array name to lowercase. new a03cc98 bin/build-deb-package: change ${TEMP_CLEANUP} to lower-case variant and a bash array. new 5d0ce79 bin/build-deb-package: check items of ${temp_cleanup} array for being not null. new 775d09b bin/build-deb-package: pass end of options argument when calling to rm. new 7b64a61 bin/build-deb-package: remove ${TEMP_DIR} removal on success -- handled by the new cleanup() function. new 4d5b678 bin/build-rpm-package: merge ${temp_cleanup} changes from bin/build-deb-package. new 761a201 bin/build-rpm-package: remove ${TEMP_DIR} cleanup now handled by the cleanup() function. The 14 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: bin/build-deb-package | 351 ++++++++++++++++++++++------------------ bin/build-rpm-package | 429 ++++++++++++++++++++++++++----------------------- 2 files changed, 426 insertions(+), 354 deletions(-) -- Alioth's /srv/git/code.x2go.org/buildscripts.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/buildscripts.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository buildscripts. commit 9742e7944acf306b617892a20e590066f481fbf0 Author: Mihai Moldovan <ionic@ionic.de> Date: Fri Apr 3 00:34:24 2015 +0200 bin/build-rpm-package: fix default RPM_BUILD_FOR assignment. --- bin/build-rpm-package | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/build-rpm-package b/bin/build-rpm-package index 800b4d0..3e9f476 100755 --- a/bin/build-rpm-package +++ b/bin/build-rpm-package @@ -55,7 +55,7 @@ test -f ~/.buildscripts/$PREFIX.conf && . ~/.buildscripts/$PREFIX.conf || { echo NO_DELAY=${NO_DELAY:-"no"} FORCE_BUILD=${FORCE_BUILD:-"no"} -RPM_BUILD_FOR=${RPM_BUILD_FOR:-"fedora:$FEDORA_DISTROS epel:$EPEL_DISTROSi opensuse:$OPENSUSE_DISTROS" sle:$SLE_DISTROS} +RPM_BUILD_FOR=${RPM_BUILD_FOR:-"fedora:$FEDORA_DISTROS epel:$EPEL_DISTROS opensuse:$OPENSUSE_DISTROS sle:$SLE_DISTROS"} # These parts are not user-serviceable. TMP_MOCK_CFG_DIR="" -- Alioth's /srv/git/code.x2go.org/buildscripts.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/buildscripts.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository buildscripts. commit 9e0e928132544427b61aaa9ee08455ec39bc7d41 Author: Mihai Moldovan <ionic@ionic.de> Date: Fri Apr 3 02:18:40 2015 +0200 bin/build-rpm-package: misc changes: - Use more curly braces and quotes. - Do not use echo and cat when not needed. - Change egrep to grep -E. - Use -q and -s flags for grep if it makes sense. - Terminate options with -- for "simple" GNU commands like mv, cp and others. - Typo fixes in comments. - Replace ls with find. --- bin/build-rpm-package | 393 +++++++++++++++++++++++++------------------------ 1 file changed, 197 insertions(+), 196 deletions(-) diff --git a/bin/build-rpm-package b/bin/build-rpm-package index 3e9f476..093368d 100755 --- a/bin/build-rpm-package +++ b/bin/build-rpm-package @@ -18,7 +18,7 @@ # Free Software Foundation, Inc., # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. -export PATH=~/bin:$PATH +export PATH="${HOME}/bin:${PATH}" GIT_USER="gituser" GIT_HOSTNAME="git.mydomain.org" @@ -31,7 +31,7 @@ FEDORA_DISTROS="18,19,20,21,rawhide" EPEL_DISTROS="6,7" OPENSUSE_DISTROS="12.2,12.3,13.1,13.2" SLE_DISTROS="11.2,11.3,12.0" -RPM_REPOS_BASE=/var/www/ +RPM_REPOS_BASE="/var/www/" RPM_WANT_EXTRA_REPOS="0" RPM_MOCK_CONFIG_DIR="/etc/mock" RPM_EXTRA_REPO_MOCK_CONFIG_BASE="" @@ -43,19 +43,19 @@ COMPONENT_NIGHTLY="nightly" COMPONENT_BUNDLES="bundle-release1 bundle-release2" REPOS_SERVER="packages.mydomain.org" PACKAGES_WITHOUT_OTHERMIRROR="keyring" -GNUPGHOME=$HOME/.gnupg +GNUPGHOME="${HOME}/.gnupg" OPENSUSE_DOWNLOAD_URL="http://download.opensuse.org/distribution/#VERSION#/repo/oss/suse/" SLE_DOWNLOAD_URL="/srv/mirrors/non-public/sle/#VERSION#/rpms/" -test -z $1 && { echo "usage: $(basename $0) [<subpath>/]<git-project> {main,main/<codename>,nightly,nightly/<codename>} [<git-checkout>]"; exit 1; } +test -z "${1}" && { echo "usage: $(basename "${0}") [<subpath>/]<git-project> {main,main/<codename>,nightly,nightly/<codename>} [<git-checkout>]"; exit 1; } -PREFIX=$(echo `basename $0` | cut -d"-" -f1) -test -f ~/.buildscripts/$PREFIX.conf && . ~/.buildscripts/$PREFIX.conf || { echo "$0 has no valid context prefix..."; exit 1; } +PREFIX="$(cut -d"-" -f1 <<< "$(basename "${0}")")" +test -f "${HOME}/.buildscripts/${PREFIX}.conf" && . "${HOME}/.buildscripts/${PREFIX.conf}" || { echo "${0} has no valid context prefix..." >&2; exit 1; } -NO_DELAY=${NO_DELAY:-"no"} -FORCE_BUILD=${FORCE_BUILD:-"no"} -RPM_BUILD_FOR=${RPM_BUILD_FOR:-"fedora:$FEDORA_DISTROS epel:$EPEL_DISTROS opensuse:$OPENSUSE_DISTROS sle:$SLE_DISTROS"} +: ${NO_DELAY:="no"} +: ${FORCE_BUILD:="no"} +: ${RPM_BUILD_FOR:="fedora:${FEDORA_DISTROS} epel:${EPEL_DISTROS} opensuse:${OPENSUSE_DISTROS} sle:${SLE_DISTROS}"} # These parts are not user-serviceable. TMP_MOCK_CFG_DIR="" @@ -84,14 +84,14 @@ cleanup () { echo "Warning: mock temporary config file ${file} is not a regular file. Not unlinking." >&2 else # Remove and ignore errors. - rm "${file}" || : + rm -- "${file}" || : fi done # And only later of the directory itself. if [ -e "${TMP_MOCK_CFG_DIR}" ]; then if [ -d "${TMP_MOCK_CFG_DIR}" ]; then - rmdir "${TMP_MOCK_CFG_DIR}" || echo "Warning: unable to remove mock temporary config directory ${TMP_MOCK_CFG_DIR}. Is it non-empty?" >&2 + rmdir -- "${TMP_MOCK_CFG_DIR}" || echo "Warning: unable to remove mock temporary config directory ${TMP_MOCK_CFG_DIR}. Is it non-empty?" >&2 else echo "Warning: mock temporary config directory ${TMP_MOCK_CFG_DIR} is not actually a directory. Not unlinking." >&2 fi @@ -123,47 +123,47 @@ function make_boolean () { } set_vars() { - mkdir -p "${TEMP_BASE}" + mkdir -p -- "${TEMP_BASE}" chmod 2770 "${TEMP_BASE}" # first argv is the name of the Git project - PROJECT_PATH="$1" - PROJECT_PATH=${PROJECT_PATH/%.git/} - PROJECT="$(basename $PROJECT_PATH)" + PROJECT_PATH="${1}" + PROJECT_PATH="${PROJECT_PATH/%.git/}" + PROJECT="$(basename "${PROJECT_PATH}")" # grab repository component area from command line (2nd argv) or guess it - ARGV2_COMPONENT="$(echo "$2/" | cut -d"/" -f1)" - ARGV2_CODENAME="$(echo "$2/" | cut -d"/" -f2)" + ARGV2_COMPONENT="$(cut -d"/" -f1 <<< "${2}/")" + ARGV2_CODENAME="$(cut -d"/" -f2 <<< "${2}/")" COMPONENT="${ARGV2_COMPONENT:-${COMPONENT:-$COMPONENT_NIGHTLY}}" CODENAMES="${ARGV2_CODENAME:-${CODENAMES}}" - [ -n "$ARGV2_CODENAME" ] && FORCE_BUILD="yes" || true + [ -n "${ARGV2_CODENAME}" ] && FORCE_BUILD="yes" || true DATE="${DATE:-$(date +%Y%m%d)}" - if [ "x$COMPONENT" = "x$COMPONENT_MAIN" ]; then + if [ "x${COMPONENT}" = "x${COMPONENT_MAIN}" ]; then CHECKOUT="${3:-build-main}" - elif [ "x$COMPONENT" = "x${COMPONENT_MAIN}-test" ]; then + elif [ "x${COMPONENT}" = "x${COMPONENT_MAIN}-test" ]; then CHECKOUT="${3:-build-main-test}" COMPONENT="maintest" - elif echo "$COMPONENT_RELEASES" | grep "$COMPONENT" >/dev/null; then + elif grep -qs "${COMPONENT}" <<< "${COMPONENT_RELEASES}"; then CHECKOUT="${3:-build-$COMPONENT}" - elif [ "x$COMPONENT" = "x$COMPONENT_NIGHTLY" ]; then + elif [ "x${COMPONENT}" = "x$COMPONENT_NIGHTLY" ]; then CHECKOUT="${3:-master}" else echo "error: no such package component area for this Git project. Aborting..." exit 1 fi # the DATE might be given as ,,today'' from the command line - [ "x$DATE" = "xtoday" ] && DATE="$(date +%Y%m%d)" + [ "x${DATE}" = "xtoday" ] && DATE="$(date +%Y%m%d)" # setting paths - PROJECT_DIR="$HOME/build/$COMPONENT/$PROJECT" - PKGDIST="$HOME/pkg-dist/$COMPONENT/$PROJECT" + PROJECT_DIR="${HOME}/build/${COMPONENT}/${PROJECT}" + PKGDIST="${HOME}/pkg-dist/${COMPONENT}/${PROJECT}" # lock file - LOCK_FILE=$PROJECT_DIR/../.$PROJECT.lock + LOCK_FILE="${PROJECT_DIR}/../.${PROJECT}.lock" # creating paths - mkdir -p "$PROJECT_DIR" - mkdir -p "$PKGDIST" + mkdir -p -- "${PROJECT_DIR}" + mkdir -p -- "${PKGDIST}" return 0 } @@ -502,33 +502,33 @@ get_extra_repository () { prepare_workspace() { # make sure our local working copy is up to date... - if [ -d "$PROJECT_DIR/.git" ]; then - cd "$PROJECT_DIR" && git reset --hard - git checkout --force $CHECKOUT || git checkout --force -b $CHECKOUT - git pull origin $CHECKOUT + if [ -d "${PROJECT_DIR}/.git" ]; then + cd "${PROJECT_DIR}" && git reset --hard + git checkout --force "${CHECKOUT}" || git checkout --force -b "${CHECKOUT}" + git pull origin "${CHECKOUT}" git fetch origin upstream:upstream || true git fetch origin pristine-tar:pristine-tar || true - # and again, get the $CHECKOUT refspec in pure state + # and again, get the ${CHECKOUT} refspec in pure state git reset --hard git clean -df else - cd "$(dirname $PROJECT_DIR)" - git clone git://$GIT_HOSTNAME/$PROJECT_PATH.git - cd "$PROJECT" - git checkout --force $CHECKOUT || git checkout --force -b $CHECKOUT; + cd "$(dirname "${PROJECT_DIR}")" + git clone "git://${GIT_HOSTNAME}/${PROJECT_PATH}.git" + cd "${PROJECT}" + git checkout --force "${CHECKOUT}" || git checkout --force -b "${CHECKOUT}" git fetch origin upstream:upstream git fetch origin pristine-tar:pristine-tar || true git clean -df fi - GIT_OBJECT_ID=`git show-ref -s heads/master` - cd "$PROJECT_DIR" + GIT_OBJECT_ID="$(git show-ref -s heads/master)" + cd "${PROJECT_DIR}" - if [ "x$ARGV2_CODENAME" != "x" ]; then - if echo "$FEDORA_DISTROS" | grep $ARGV2_CODENAME >/dev/null; then - RPM_BUILD_FOR="fedora:$ARGV2_CODENAME" - elif echo "$EPEL_DISTROS" | grep $ARGV2_CODENAME >/dev/null; then - RPM_BUILD_FOR="epel:$ARGV2_CODENAME" + if [ "x${ARGV2_CODENAME}" != "x" ]; then + if grep -qs "${ARGV2_CODENAME}" <<< "${FEDORA_DISTROS}"; then + RPM_BUILD_FOR="fedora:${ARGV2_CODENAME}" + elif grep -qs "${ARGV2_CODENAME}" <<< "${EPEL_DISTROS}"; then + RPM_BUILD_FOR="epel:${ARGV2_CODENAME}" fi fi return 0 @@ -536,21 +536,21 @@ prepare_workspace() { clear_pkgdist() { # pkgdist directory cleanup - echo "$RPM_BUILD_FOR" | sed -e 's/ /\n/g' | while read line; do - l_DIST="$(echo ${line/: /:} | cut -d":" -f1 | tr [:upper:] [:lower:])" - l_CODENAMES="${CODENAMES:-$(echo ${line/: /:} | cut -d":" -f2- | sed -e 's/,/ /g' | tr [:upper:] [:lower:])}" - echo "$RPM_DISTS_SUPPORTED" | grep $l_DIST >/dev/null && { - for l_CODENAME in $l_CODENAMES; do + echo "${RPM_BUILD_FOR}" | sed -e 's/ /\n/g' | while read line; do + l_DIST="$(cut -d":" -f1 <<< "${line/: /:}" | tr [:upper:] [:lower:])" + l_CODENAMES="${CODENAMES:-$(cut -d":" -f2- <<< "${line/: /:}" | sed -e 's/,/ /g' | tr [:upper:] [:lower:])}" + grep -qs "${l_DIST}" <<< "${RPM_DISTS_SUPPORTED}" && { + for l_CODENAME in ${l_CODENAMES}; do - test -z $CODENAMES || echo $line | grep $CODENAMES || break + test -z "${CODENAMES}" || grep "${CODENAMES}" <<< "${line}" || break # Yes, "SRPM" is technically not an architecture. for l_ARCH in x86_64 i386 SRPM; do - if [ "x$SKIP_ARCH" != "x$l_ARCH" ]; then - mkdir -p "$PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH" - rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/rpmbuild/SOURCES/"* - rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/rpmbuild/SRPMS/$PROJECT-"*.src.rpm - rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/"*.rpm + if [ "x${SKIP_ARCH}" != "x${l_ARCH}" ]; then + mkdir -p -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}" + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/rpmbuild/SOURCES/"* + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/rpmbuild/SRPMS/${PROJECT}-"*.src.rpm + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/"*.rpm fi done done @@ -569,104 +569,106 @@ build_packages() { IFS="${OLDIFS}" for line in "${RPM_BUILD_FOR_ARR[@]}"; do - l_DIST="$(echo ${line/: /:} | cut -d":" -f1 | tr [:upper:] [:lower:])" - l_CODENAMES="${CODENAMES:-$(echo ${line/: /:} | cut -d":" -f2- | sed -e 's/,/ /g' | tr [:upper:] [:lower:])}" - echo "$RPM_DISTS_SUPPORTED" | grep $l_DIST >/dev/null && { - for l_CODENAME in $l_CODENAMES; do + l_DIST="$(cut -d":" -f1 <<< "${line/: /:}" | tr [:upper:] [:lower:])" + l_CODENAMES="${CODENAMES:-$(cut -d":" -f2- <<< "${line/: /:}" | sed -e 's/,/ /g' | tr [:upper:] [:lower:])}" + grep -qs "${l_DIST}" <<< "${RPM_DISTS_SUPPORTED}" && { + for l_CODENAME in ${l_CODENAMES}; do - test -z $CODENAMES || echo $line | grep $CODENAMES || break + test -z "${CODENAMES}" || grep "${CODENAMES}" <<< "${line}" || break # create rpmbuild subdirectories - mkdir -p $PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/rpmbuild/SOURCES + mkdir -p -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/rpmbuild/SOURCES" # tar upstream sources from our Git clone - TEMP_DIR="$(mktemp -d --tmpdir=$TEMP_BASE)" - mkdir -p "$TEMP_DIR/$PROJECT" - chmod 2770 "$TEMP_DIR" -Rf + TEMP_DIR="$(mktemp -d --tmpdir="${TEMP_BASE}")" + mkdir -p -- "${TEMP_DIR}/${PROJECT}" + chmod -Rf -- 2770 "${TEMP_DIR}" cd "$PROJECT_DIR" - git clone "$PROJECT_DIR" "$TEMP_DIR/$PROJECT/" - cd $TEMP_DIR - GITREV=$(cd $PROJECT && gitrevno && cd - 1>/dev/null) + git clone "${PROJECT_DIR}" "${TEMP_DIR}/${PROJECT}/" + cd "${TEMP_DIR}" + GITREV="$(cd "${PROJECT}" && gitrevno && cd - 1>/dev/null)" # create git changelog immediately prior to building the SRPM package - cd $PROJECT && git --no-pager log --since "2 years ago" --format="%ai %aN (%h) %n%n%x09*%w(68,0,10) %s%d%n" > ChangeLog.gitlog && cd - 1>/dev/null + pushd "${PROJECT}" >/dev/null 2>&1 && \ + git --no-pager log --since "2 years ago" --format="%ai %aN (%h) %n%n%x09*%w(68,0,10) %s%d%n" > ChangeLog.gitlog && \ + popd >/dev/null 2>&1 - rm -Rf "$PROJECT/.git" - mv $PROJECT/$PROJECT.spec . + rm -Rf -- "${PROJECT}/.git" + mv -- "${PROJECT}/${PROJECT}.spec" . - UPSTREAM_VERSION=$(cat $PROJECT.spec | egrep "^Version:.*" | awk '{ print $2 }') - PKG_RELEASE=$(cat $PROJECT.spec | egrep "^Release:.*" | awk '{ print $2 }') - PKG_SRCRELEASE=$(echo $PKG_RELEASE | sed -e 's/%{?dist}//') + UPSTREAM_VERSION="$(grep -E -- "^Version:.*" "${PROJECT}.spec" | awk '{ print $2 }')" + PKG_RELEASE="$(grep -E -- "^Release:.*" "${PROJECT}.spec" | awk '{ print $2 }')" + PKG_SRCRELEASE="$(sed -e 's/%{?dist}//' <<< "${PKG_RELEASE}")" - IS_NOARCH=$(cat $PROJECT.spec | egrep "^BuildArch:.*noarch\$" 1>/dev/null 2>/dev/null && echo yes || echo no) + IS_NOARCH="$(grep -qsE -- "^BuildArch:.*noarch\$" "${PROJECT}.spec" && echo "yes" || echo "no")" - if [ "$COMPONENT" = "$COMPONENT_NIGHTLY" ]; then + if [ "${COMPONENT}" = "${COMPONENT_NIGHTLY}" ]; then IS_RELEASE="0" else IS_RELEASE="1" fi - sed -i $PROJECT.spec -e "s/%{?dist}/.$IS_RELEASE.git$DATE.$GITREV.$COMPONENT%{?dist}/" + sed -i "${PROJECT}.spec" -e "s/%{?dist}/.${IS_RELEASE}.git${DATE}.${GITREV}.${COMPONENT}%{?dist}/" - # apply patches from debian/patches/* so that they end up in the tarbal + # apply patches from debian/patches/* so that they end up in the tarball # ... esp. relevant for NX (redistributed) - if [ -f $PROJECT/debian/patches/series ]; then - ( cd $PROJECT && QUILT_PATCHES=debian/patches quilt push -a && rm .pc/ -Rf; ) + if [ -f "${PROJECT}/debian/patches/series" ]; then + ( cd "${PROJECT}" && QUILT_PATCHES=debian/patches quilt push -a && rm -Rf -- .pc/; ) fi - cat $PROJECT.spec | egrep "^Source[1-9]+:.*" | sed "s/%{name}/$PROJECT/" | awk '{ print $2 }' | while read source_file; do - find $PROJECT/rpm/$source_file -maxdepth 0 1> /dev/null && cp $PROJECT/rpm/$source_file $PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/rpmbuild/SOURCES/ && continue - find $PROJECT/$source_file -maxdepth 0 1> /dev/null && cp $PROJECT/$source_file $PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/rpmbuild/SOURCES/ + grep -E "^Source[1-9]+:.*" "${PROJECT}.spec" | sed "s/%{name}/${PROJECT}/" | awk '{ print $2 }' | while read source_file; do + find "${PROJECT}/rpm/${source_file}" -maxdepth 0 1> /dev/null && cp -- "${PROJECT}/rpm/${source_file}" "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/rpmbuild/SOURCES/" && continue + find "${PROJECT}/${source_file}" -maxdepth 0 1> /dev/null && cp -- "${PROJECT}/${source_file}" "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/rpmbuild/SOURCES/" done - mv $TEMP_DIR/$PROJECT $TEMP_DIR/$PROJECT-$UPSTREAM_VERSION - tar -czf $PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/rpmbuild/SOURCES/$PROJECT-$UPSTREAM_VERSION.tar.gz $PROJECT-$UPSTREAM_VERSION + mv -- "${TEMP_DIR}/${PROJECT}" "${TEMP_DIR}/${PROJECT}-${UPSTREAM_VERSION}" + tar -czf "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/rpmbuild/SOURCES/${PROJECT}-${UPSTREAM_VERSION}.tar.gz" "${PROJECT}-${UPSTREAM_VERSION}" - cp $PROJECT.spec $PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/rpmbuild/SOURCES + cp -- "${PROJECT}.spec" "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/rpmbuild/SOURCES" - if [ "x$l_DIST" = "xfedora" ] || [ "x$l_DIST" = "xepel" ]; then - while [ -d ~mock/${l_DIST}-${l_CODENAME}-x86_64 ]; do + if [ "x${l_DIST}" = "xfedora" ] || [ "x${l_DIST}" = "xepel" ]; then + while [ -d ~mock/"${l_DIST}-${l_CODENAME}-x86_64" ]; do echo "Waiting for some other build to finish..." sleep 30 done - rm -f $PKGDIST/$l_DIST/$l_CODENAME/x86_64/build.log + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/x86_64/build.log" # Obtain packages from our RPM repository. get_extra_repository "redhat" "${l_DIST}" "${l_CODENAME}" "${COMPONENT}" "${PROJECT}" "x86_64" "${RPM_WANT_EXTRA_REPOS}" if mock --buildsrpm \ ${MOCK_CHROOT_CONFIG} \ - --resultdir="$PKGDIST/$l_DIST/$l_CODENAME/rpmbuild/SRPMS" \ - --spec "$PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/rpmbuild/SOURCES/$PROJECT.spec" \ - --sources "$PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/rpmbuild/SOURCES/"; then - cat "$PKGDIST/$l_DIST/$l_CODENAME/rpmbuild/SRPMS/build.log" - rm -Rf "$PKGDIST/$l_DIST/$l_CODENAME/rpmbuild/SRPMS/build.log" + --resultdir="${PKGDIST}/${l_DIST}/${l_CODENAME}/rpmbuild/SRPMS" \ + --spec "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/rpmbuild/SOURCES/${PROJECT}.spec" \ + --sources "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/rpmbuild/SOURCES/"; then + cat "${PKGDIST}/${l_DIST}/${l_CODENAME}/rpmbuild/SRPMS/build.log" + rm -Rf -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/rpmbuild/SRPMS/build.log" else - cat $PKGDIST/$l_DIST/$l_CODENAME/rpmbuild/SRPMS/build.log - rm -Rf "$TEMP_DIR" + cat "${PKGDIST}/${l_DIST}/${l_CODENAME}/rpmbuild/SRPMS/build.log" + rm -Rf -- "$TEMP_DIR" exit 1 fi fi # clean up the Git clone from the temp folder - cd && rm $TEMP_DIR/$PROJECT -Rf + cd && rm -Rf -- "${TEMP_DIR}/${PROJECT}" # modify changelog for this build ### TODO: add changelog entry for this automatic build - mkdir -p $PKGDIST/$l_DIST/$l_CODENAME/{x86_64,i386,SRPM} - - if [ "x$SKIP_ARCH" != "xx86_64" ] || [ "$IS_NOARCH" = "yes" ]; then - if [ "x$l_DIST" = "xopensuse" ] || [ "x$l_DIST" = "xsle" ]; then - BUILD_RESULT=/home/abuild/rpmbuild/ - if [ "x$l_DIST" = "xopensuse" ]; then - DOWNLOAD_URL=$(echo "$OPENSUSE_DOWNLOAD_URL" | sed "s/#VERSION#/$l_CODENAME/") - elif [ "x$l_DIST" = "xsle" ]; then - DOWNLOAD_URL=$(echo "$SLE_DOWNLOAD_URL" | sed "s/#VERSION#/$l_CODENAME/") - if [ "$l_CODENAME" = "11.2" ] || [ "$l_CODENAME" = "11.3" ]; then - BUILD_RESULT=/usr/src/packages + mkdir -p -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/"{x86_64,i386,SRPM} + + if [ "x${SKIP_ARCH}" != "xx86_64" ] || [ "${IS_NOARCH}" = "yes" ]; then + if [ "x${l_DIST}" = "xopensuse" ] || [ "x${l_DIST}" = "xsle" ]; then + BUILD_RESULT="/home/abuild/rpmbuild/" + if [ "x${l_DIST}" = "xopensuse" ]; then + DOWNLOAD_URL="$(sed "s/#VERSION#/${l_CODENAME}/" <<< "${OPENSUSE_DOWNLOAD_URL}")" + elif [ "x${l_DIST}" = "xsle" ]; then + DOWNLOAD_URL="$(sed "s/#VERSION#/${l_CODENAME}/" <<< "${SLE_DOWNLOAD_URL}")" + if [ "${l_CODENAME}" = "11.2" ] || [ "${l_CODENAME}" = "11.3" ]; then + BUILD_RESULT="/usr/src/packages" fi fi - while ps ax | grep -E "build.*/var/cache/obs-build/$l_DIST/$l_CODENAME/x86_64/" | grep "sudo obs"; do + while ps ax | grep -E "build.*/var/cache/obs-build/${l_DIST}/${l_CODENAME}/x86_64/" | grep "sudo obs"; do echo "Waiting for some other build to finish..." sleep 30 done @@ -676,74 +678,74 @@ build_packages() { if sudo obs-build \ --nosignature \ ${OTHERMIRROR} \ - --repo "$DOWNLOAD_URL" \ - --root "/var/cache/obs-build/$l_DIST/$l_CODENAME/x86_64/" \ + --repo "${DOWNLOAD_URL}" \ + --root "/var/cache/obs-build/${l_DIST}/${l_CODENAME}/x86_64/" \ --clean \ - $PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/rpmbuild/SOURCES/$PROJECT.spec; then - mkdir -p "$PKGDIST/$l_DIST/$l_CODENAME/x86_64/" - find "/var/cache/obs-build/$l_DIST/$l_CODENAME/x86_64/$BUILD_RESULT/RPMS/" -type f | egrep '.*\.rpm$' | egrep -v '.*\.src\.rpm$' | while read rpmfile; do - cp "$rpmfile" "$PKGDIST/$l_DIST/$l_CODENAME/x86_64/" + "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/rpmbuild/SOURCES/${PROJECT}.spec"; then + mkdir -p -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/x86_64/" + find "/var/cache/obs-build/${l_DIST}/${l_CODENAME}/x86_64/${BUILD_RESULT}/RPMS/" -type f | grep -E '.*\.rpm$' | grep -Ev '.*\.src\.rpm$' | while read rpmfile; do + cp "${rpmfile}" "${PKGDIST}/${l_DIST}/${l_CODENAME}/x86_64/" done - rpmsign-unattended -D "%_gpg_name debian@x2go.org" --addsign "$PKGDIST/$l_DIST/$l_CODENAME/x86_64/"*.rpm + rpmsign-unattended -D "%_gpg_name debian@x2go.org" --addsign "${PKGDIST}/${l_DIST}/${l_CODENAME}/x86_64/"*.rpm # also copy and sign source RPM's - find "/var/cache/obs-build/$l_DIST/$l_CODENAME/x86_64/$BUILD_RESULT/SRPMS/" -type f | egrep '.*\.rpm$' | while read rpmfile; do - cp "$rpmfile" "$PKGDIST/$l_DIST/$l_CODENAME/SRPM/" + find "/var/cache/obs-build/${l_DIST}/${l_CODENAME}/x86_64/${BUILD_RESULT}/SRPMS/" -type f | grep -E '.*\.rpm$' | while read rpmfile; do + cp "${rpmfile}" "$PKGDIST/${l_DIST}/${l_CODENAME}/SRPM/" done - rpmsign-unattended -D "%_gpg_name debian@x2go.org" --addsign "$PKGDIST/$l_DIST/$l_CODENAME/SRPM/"*.rpm + rpmsign-unattended -D "%_gpg_name debian@x2go.org" --addsign "${PKGDIST}/${l_DIST}/${l_CODENAME}/SRPM/"*.rpm else - rm -Rf "$TEMP_DIR" + rm -Rf -- "${TEMP_DIR}" exit 1 fi else - rm -f $PKGDIST/$l_DIST/$l_CODENAME/x86_64/build.log - while [ -d ~mock/${l_DIST}-${l_CODENAME}-x86_64 ]; do + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/x86_64/build.log" + while [ -d ~mock/"${l_DIST}-${l_CODENAME}-x86_64" ]; do echo "Waiting for some other build to finish..." sleep 30 done # Obtain packages from our RPM repository. get_extra_repository "redhat" "${l_DIST}" "${l_CODENAME}" "${COMPONENT}" "${PROJECT}" "x86_64" "${RPM_WANT_EXTRA_REPOS}" - ls $PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/rpmbuild/SRPMS/$PROJECT-$UPSTREAM_VERSION-$PKG_SRCRELEASE.$IS_RELEASE.git$DATE.$GITREV.$COMPONENT.*.src.rpm | while read srpm; do - if mock ${MOCK_CHROOT_CONFIG} --resultdir="$PKGDIST/$l_DIST/$l_CODENAME/x86_64" "$srpm"; then + find "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/rpmbuild/SRPMS/${PROJECT}-${UPSTREAM_VERSION}-${PKG_SRCRELEASE}.${IS_RELEASE}.git${DATE}.${GITREV}.${COMPONENT}".*.src.rpm | while read srpm; do + if mock ${MOCK_CHROOT_CONFIG} --resultdir="${PKGDIST}/${l_DIST}/${l_CODENAME}/x86_64" "${srpm}"; then # copy and later sign source RPM - cp "$srpm" "$PKGDIST/$l_DIST/$l_CODENAME/SRPM/" + cp "${srpm}" "${PKGDIST}/${l_DIST}/${l_CODENAME}/SRPM/" # Clean up source RPM files. We copy them manually. - find "${PKGDIST}/${l_DIST}/${l_CODENAME}/x86_64" -type 'f' -iname '*.src.rpm' -exec rm -f '{}' \; + find "${PKGDIST}/${l_DIST}/${l_CODENAME}/x86_64" -type 'f' -iname '*.src.rpm' -exec rm -f -- '{}' \; - if [ "$l_DIST" = "epel" ] && [ "$l_CODENAME" = "5" ]; then + if [ "${l_DIST}" = "epel" ] && [ "${l_CODENAME}" = "5" ]; then # References: # /usr/lib/rpm/macros # http://adminotes.blogspot.fr/2011/12/centos-6-rpm-sign-problem-v4-signatures... RPMMACRO_V3SIGN="%__gpg_sign_cmd %{__gpg} /usr/bin/gpg --force-v3-sigs --digest-algo=sha1 --batch --no-verbose --no-armor --passphrase-fd 3 --no-secmem-warning -u \"%{_gpg_name}\" -sbo %{__signature_filename} %{__plaintext_filename}" - rpmsign-unattended -D "%_gpg_name debian@x2go.org" -D "$RPMMACRO_V3SIGN" --addsign $PKGDIST/$l_DIST/$l_CODENAME/x86_64/*.rpm - rpmsign-unattended -D "%_gpg_name debian@x2go.org" -D "$RPMMACRO_V3SIGN" --addsign $PKGDIST/$l_DIST/$l_CODENAME/SRPM/*.rpm + rpmsign-unattended -D "%_gpg_name debian@x2go.org" -D "${RPMMACRO_V3SIGN}" --addsign "${PKGDIST}/${l_DIST}/${l_CODENAME}/x86_64/"*.rpm + rpmsign-unattended -D "%_gpg_name debian@x2go.org" -D "${RPMMACRO_V3SIGN}" --addsign "${PKGDIST}/${l_DIST}/${l_CODENAME}/SRPM/"*.rpm else - rpmsign-unattended -D "%_gpg_name debian@x2go.org" --addsign $PKGDIST/$l_DIST/$l_CODENAME/x86_64/*.rpm - rpmsign-unattended -D "%_gpg_name debian@x2go.org" --addsign $PKGDIST/$l_DIST/$l_CODENAME/SRPM/*.rpm + rpmsign-unattended -D "%_gpg_name debian@x2go.org" --addsign "${PKGDIST}/${l_DIST}/${l_CODENAME}/x86_64/"*.rpm + rpmsign-unattended -D "%_gpg_name debian@x2go.org" --addsign "${PKGDIST}/${l_DIST}/${l_CODENAME}/SRPM/"*.rpm fi - cat $PKGDIST/$l_DIST/$l_CODENAME/x86_64/build.log + cat "${PKGDIST}/${l_DIST}/${l_CODENAME}/x86_64/build.log" else - cat $PKGDIST/$l_DIST/$l_CODENAME/x86_64/build.log - rm -Rf "$TEMP_DIR" + cat "${PKGDIST}/${l_DIST}/${l_CODENAME}/x86_64/build.log" + rm -Rf -- "${TEMP_DIR}" exit 1 fi done fi fi - if [ "x$SKIP_ARCH" != "xi386" ] && [ "$IS_NOARCH" != "yes" ]; then - if [ "x$l_DIST" = "xopensuse" ] || [ "x$l_DIST" = "xsle" ]; then - BUILD_RESULT=/home/abuild/rpmbuild/ + if [ "x${SKIP_ARCH}" != "xi386" ] && [ "${IS_NOARCH}" != "yes" ]; then + if [ "x${l_DIST}" = "xopensuse" ] || [ "x${l_DIST}" = "xsle" ]; then + BUILD_RESULT="/home/abuild/rpmbuild/" if [ "x$l_DIST" = "xopensuse" ]; then - DOWNLOAD_URL=$(echo "$OPENSUSE_DOWNLOAD_URL" | sed "s/#VERSION#/$l_CODENAME/") + DOWNLOAD_URL="$(sed "s/#VERSION#/${l_CODENAME}/" <<< "${OPENSUSE_DOWNLOAD_URL}")" elif [ "x$l_DIST" = "xsle" ]; then - DOWNLOAD_URL=$(echo "$SLE_DOWNLOAD_URL" | sed "s/#VERSION#/$l_CODENAME/") - if [ "$l_CODENAME" = "11.2" ] || [ "$l_CODENAME" = "11.3" ]; then - BUILD_RESULT=/usr/src/packages + DOWNLOAD_URL="$(sed "s/#VERSION#/${l_CODENAME}/" <<< "${SLE_DOWNLOAD_URL}")" + if [ "${l_CODENAME}" = "11.2" ] || [ "${l_CODENAME}" = "11.3" ]; then + BUILD_RESULT="/usr/src/packages" fi fi - while ps ax | grep -E "build.*/var/cache/obs-build/$l_DIST/$l_CODENAME/i386/" | grep "sudo obs"; do + while ps ax | grep -E "build.*/var/cache/obs-build/${l_DIST}/${l_CODENAME}/i386/" | grep "sudo obs"; do echo "Waiting for some other build to finish..." sleep 30 done @@ -753,61 +755,61 @@ build_packages() { if linux32 sudo obs-build \ --nosignature \ ${OTHERMIRROR} \ - --repo "$DOWNLOAD_URL" \ - --root "/var/cache/obs-build/$l_DIST/$l_CODENAME/i386/" \ + --repo "${DOWNLOAD_URL}" \ + --root "/var/cache/obs-build/${l_DIST}/${l_CODENAME}/i386/" \ --clean \ - $PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/rpmbuild/SOURCES/$PROJECT.spec; then - mkdir -p "$PKGDIST/$l_DIST/$l_CODENAME/i386/" - find "/var/cache/obs-build/$l_DIST/$l_CODENAME/i386/$BUILD_RESULT/RPMS/" -type f | egrep '.*\.rpm$' | egrep -v '.*\.src\.rpm$' | while read rpmfile; do - cp "$rpmfile" "$PKGDIST/$l_DIST/$l_CODENAME/i386/" + "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/rpmbuild/SOURCES/${PROJECT}.spec"; then + mkdir -p -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/i386/" + find "/var/cache/obs-build/${l_DIST}/${l_CODENAME}/i386/${BUILD_RESULT}/RPMS/" -type f | grep -E '.*\.rpm$' | grep -Ev '.*\.src\.rpm$' | while read rpmfile; do + cp "${rpmfile}" "${PKGDIST}/${l_DIST}/${l_CODENAME}/i386/" done - rpmsign-unattended -D "%_gpg_name debian@x2go.org" --addsign "$PKGDIST/$l_DIST/$l_CODENAME/i386/"*.rpm + rpmsign-unattended -D "%_gpg_name debian@x2go.org" --addsign "${PKGDIST}/${l_DIST}/${l_CODENAME}/i386/"*.rpm # copy and later sign source RPM's, if needed (that is, not already generated by x86_64/noarch code above) - SEARCH_SRPM="$(find "$PKGDIST/$l_DIST/$l_CODENAME/SRPM" -type 'f' -name "*.src.rpm" -print)" - if [ -z "$SEARCH_SRPM" ]; then - find "/var/cache/obs-build/$l_DIST/$l_CODENAME/i386/$BUILD_RESULT/SRPMS/" -type 'f' | egrep '.*\.src\.rpm$' | while read rpmfile; do - cp "$rpmfile" "$PKGDIST/$l_DIST/$l_CODENAME/SRPM/" + SEARCH_SRPM="$(find "${PKGDIST}/${l_DIST}/${l_CODENAME}/SRPM" -type 'f' -name "*.src.rpm" -print)" + if [ -z "${SEARCH_SRPM}" ]; then + find "/var/cache/obs-build/${l_DIST}/${l_CODENAME}/i386/${BUILD_RESULT}/SRPMS/" -type 'f' | grep -E '.*\.src\.rpm$' | while read rpmfile; do + cp "${rpmfile}" "${PKGDIST}/${l_DIST}/${l_CODENAME}/SRPM/" done - rpmsign-unattended -D "%_gpg_name debian@x2go.org" --addsign "$PKGDIST/$l_DIST/$l_CODENAME/SRPM/"*.rpm + rpmsign-unattended -D "%_gpg_name debian@x2go.org" --addsign "${PKGDIST}/${l_DIST}/${l_CODENAME}/SRPM/"*.rpm fi else - rm -Rf "$TEMP_DIR" + rm -Rf -- "${TEMP_DIR}" exit 1 fi else - while [ -d ~mock/${l_DIST}-${l_CODENAME}-i386 ]; do + while [ -d ~mock/"${l_DIST}-${l_CODENAME}-i386" ]; do echo "Waiting for some other build to finish..." sleep 30 done - rm -f $PKGDIST/$l_DIST/$l_CODENAME/i386/build.log + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/i386/build.log" # Obtain packages from our RPM repository. get_extra_repository "redhat" "${l_DIST}" "${l_CODENAME}" "${COMPONENT}" "${PROJECT}" "i386" "${RPM_WANT_EXTRA_REPOS}" - ls $PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/rpmbuild/SRPMS/$PROJECT-$UPSTREAM_VERSION-$PKG_SRCRELEASE.$IS_RELEASE.git$DATE.$GITREV.$COMPONENT.*.src.rpm | while read srpm; do - if nice mock ${MOCK_CHROOT_CONFIG} --resultdir="$PKGDIST/$l_DIST/$l_CODENAME/i386" "$srpm"; then + find "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/rpmbuild/SRPMS/${PROJECT}-${UPSTREAM_VERSION}-${PKG_SRCRELEASE}.${IS_RELEASE}.git${DATE}.${GITREV}.${COMPONENT}".*.src.rpm | while read srpm; do + if nice mock ${MOCK_CHROOT_CONFIG} --resultdir="${PKGDIST}/${l_DIST}/${l_CODENAME}/i386" "${srpm}"; then # only copy and sign source RPM if necessary - SIGN_SRPM=0 - if [ ! -e "$PKGDIST/$l_DIST/$l_CODENAME/SRPM/$(basename "$srpm")" ]; then - cp "$srpm" "$PKGDIST/$l_DIST/$l_CODENAME/SRPM/" - SIGN_SRPM=1 + SIGN_SRPM="0" + if [ ! -e "${PKGDIST}/${l_DIST}/${l_CODENAME}/SRPM/$(basename "${srpm}")" ]; then + cp "${srpm}" "${PKGDIST}/${l_DIST}/${l_CODENAME}/SRPM/" + SIGN_SRPM="1" fi # Clean up source RPM files. We copy them manually. - find "${PKGDIST}/${l_DIST}/${l_CODENAME}/i386" -type 'f' -iname '*.src.rpm' -exec rm -f '{}' \; + find "${PKGDIST}/${l_DIST}/${l_CODENAME}/i386" -type 'f' -iname '*.src.rpm' -exec rm -f -- '{}' \; - if [ "$l_DIST" = "epel" ] && [ "$l_CODENAME" = "5" ]; then + if [ "${l_DIST}" = "epel" ] && [ "${l_CODENAME}" = "5" ]; then RPMMACRO_V3SIGN="%__gpg_sign_cmd /usr/bin/gpg --force-v3-sigs --digest-algo=sha1 --batch --no-verbose --no-armor --passphrase-fd 3 --no-secmem-warning -u \"%_gpg_name\" -sbo %{__signature_filename} %{__plaintext_filename}" - rpmsign-unattended -D "%_gpg_name debian@x2go.org" -D "$RPMMACRO_V3SIGN" --addsign $PKGDIST/$l_DIST/$l_CODENAME/i386/*.rpm - [ "x$SIGN_SRPM" = "x1" ] && rpmsign-unattended -D "%_gpg_name debian@x2go.org" -D "$RPMMACRO_V3SIGN" --addsign $PKGDIST/$l_DIST/$l_CODENAME/SRPM/*.rpm + rpmsign-unattended -D "%_gpg_name debian@x2go.org" -D "${RPMMACRO_V3SIGN}" --addsign "${PKGDIST}/${l_DIST}/${l_CODENAME}/i386/"*.rpm + [ "x${SIGN_SRPM}" = "x1" ] && rpmsign-unattended -D "%_gpg_name debian@x2go.org" -D "${RPMMACRO_V3SIGN}" --addsign "${PKGDIST}/${l_DIST}/${l_CODENAME}/SRPM/"*.rpm else - rpmsign-unattended -D "%_gpg_name debian@x2go.org" --addsign $PKGDIST/$l_DIST/$l_CODENAME/i386/*.rpm - [ "x$SIGN_SRPM" = "x1" ] && rpmsign-unattended -D "%_gpg_name debian@x2go.org" --addsign $PKGDIST/$l_DIST/$l_CODENAME/i386/*.rpm + rpmsign-unattended -D "%_gpg_name debian@x2go.org" --addsign "${PKGDIST}/${l_DIST}/${l_CODENAME}/i386/"*.rpm + [ "x$SIGN_SRPM" = "x1" ] && rpmsign-unattended -D "%_gpg_name debian@x2go.org" --addsign "${PKGDIST}/${l_DIST}/${l_CODENAME}/i386/"*.rpm fi - cat $PKGDIST/$l_DIST/$l_CODENAME/i386/build.log + cat "${PKGDIST}/${l_DIST}/${l_CODENAME}/i386/build.log" else - cat $PKGDIST/$l_DIST/$l_CODENAME/i386/build.log - rm -Rf "$TEMP_DIR" + cat "${PKGDIST}/${l_DIST}/${l_CODENAME}/i386/build.log" + rm -Rf -- "${TEMP_DIR}" exit 1 fi done @@ -816,44 +818,42 @@ build_packages() { done } done - rm -Rf "${TEMP_DIR}" + rm -Rf -- "${TEMP_DIR}" return 0 } upload_packages() { # dupload the new packages to the reprepro repository - echo "$RPM_BUILD_FOR" | sed -e 's/ /\n/g' | while read line; do - l_DIST="$(echo ${line/: /:} | cut -d":" -f1 | tr [:upper:] [:lower:])" - l_CODENAMES="${CODENAMES:-$(echo ${line/: /:} | cut -d":" -f2- | sed -e 's/,/ /g' | tr [:upper:] [:lower:])}" - for l_CODENAME in $l_CODENAMES; do + echo "${RPM_BUILD_FOR}" | sed -e 's/ /\n/g' | while read line; do + l_DIST="$(cut -d":" -f1 <<< "${line/: /:}" | tr [:upper:] [:lower:])" + l_CODENAMES="${CODENAMES:-$(cut -d":" -f2- <<< "${line/: /:}" | sed -e 's/,/ /g' | tr [:upper:] [:lower:])}" + for l_CODENAME in ${l_CODENAMES}; do - test -z $CODENAMES || echo $line | grep $CODENAMES || break + test -z "${CODENAMES}" || grep "${CODENAMES}" <<< "${line}" || break # Yes, "SRPM" is technically not an architecture. for l_ARCH in x86_64 i386 SRPM; do - if [ "x$SKIP_ARCH" != "x$l_ARCH" ]; then - + if [ "x${SKIP_ARCH}" != "x${l_ARCH}" ]; then # create remote directories in archive - 0</dev/null ssh $REPOS_SERVER mkdir -p $RPM_REPOS_BASE/$l_DIST/$l_CODENAME/$COMPONENT/$l_ARCH/rpms/$PROJECT - 0</dev/null ssh $REPOS_SERVER mkdir -p $RPM_REPOS_BASE/$l_DIST/$l_CODENAME/$COMPONENT/$l_ARCH/repodata + 0</dev/null ssh "${REPOS_SERVER}" "mkdir -p -- ${RPM_REPOS_BASE}/${l_DIST}/${l_CODENAME}/${COMPONENT}/${l_ARCH}/rpms/${PROJECT}" + 0</dev/null ssh "${REPOS_SERVER}" "mkdir -p -- ${RPM_REPOS_BASE}/${l_DIST}/${l_CODENAME}/${COMPONENT}/${l_ARCH}/repodata" # remove rpm packages of the same name (pattern) - 0</dev/null ssh $REPOS_SERVER rm -f $RPM_REPOS_BASE/$l_DIST/$l_CODENAME/$COMPONENT/$l_ARCH/rpms/$PROJECT/*.rpm + 0</dev/null ssh "${REPOS_SERVER}" "rm -f -- ${RPM_REPOS_BASE}/${l_DIST}/${l_CODENAME}/${COMPONENT}/${l_ARCH}/rpms/${PROJECT}/*.rpm" # copy (s)rpms into repo - cd "$PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH" - scp *.rpm $REPOS_SERVER:$RPM_REPOS_BASE/$l_DIST/$l_CODENAME/$COMPONENT/$l_ARCH/rpms/$PROJECT/ || true + cd "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}" + scp *.rpm "${REPOS_SERVER}:${RPM_REPOS_BASE}/${l_DIST}/${l_CODENAME}/${COMPONENT}/${l_ARCH}/rpms/${PROJECT}/" || true CREATEREPO_OPTS="" - if [ "$l_DIST" = "epel" ] && [ "$l_CODENAME" = "5" ]; then + if [ "${l_DIST}" = "epel" ] && [ "${l_CODENAME}" = "5" ]; then CREATEREPO_OPTS="-s sha" fi - 0</dev/null ssh $REPOS_SERVER "cd $RPM_REPOS_BASE/$l_DIST/$l_CODENAME/$COMPONENT/$l_ARCH/ && createrepo ${CREATEREPO_OPTS} ." - - 0</dev/null ssh $REPOS_SERVER "cd $RPM_REPOS_BASE/$l_DIST/$l_CODENAME/$COMPONENT/$l_ARCH/repodata && rm -f repomd.xml.asc && gpg -a -u ${GPG_KEY} --detach-sign repomd.xml" 1>/dev/null 2>/dev/null - 0</dev/null ssh $REPOS_SERVER "cd $RPM_REPOS_BASE/$l_DIST/$l_CODENAME/$COMPONENT/$l_ARCH/repodata && test -e repomd.xml.key || gpg -a --output repomd.xml.key --export ${GPG_KEY} " + 0</dev/null ssh "${REPOS_SERVER}" "cd ${RPM_REPOS_BASE}/${l_DIST}/${l_CODENAME}/${COMPONENT}/${l_ARCH}/ && createrepo ${CREATEREPO_OPTS} ." + 0</dev/null ssh "${REPOS_SERVER}" "cd ${RPM_REPOS_BASE}/${l_DIST}/${l_CODENAME}/${COMPONENT}/${l_ARCH}/repodata && rm -f -- repomd.xml.asc && gpg -a -u ${GPG_KEY} --detach-sign repomd.xml" 1>/dev/null 2>/dev/null + 0</dev/null ssh "${REPOS_SERVER}" "cd ${RPM_REPOS_BASE}/${l_DIST}/${l_CODENAME}/${COMPONENT}/${l_ARCH}/repodata && test -e repomd.xml.key || gpg -a --output repomd.xml.key --export ${GPG_KEY}" fi done done @@ -862,9 +862,10 @@ upload_packages() { } wait_for_lock() { - while [ -f $LOCK_FILE ]; do - pid=$(head -n1 $LOCK_FILE) - if ! ps $pid 1>/dev/null; then rm -f $LOCK_FILE + while [ -f "${LOCK_FILE}" ]; do + pid="$(head -n1 "${LOCK_FILE}")" + if ! ps "${pid}" 1>/dev/null; then + rm -f -- "${LOCK_FILE}" else echo "PROJECT directory is locked, sleeping for 10 seconds..." sleep 10 @@ -874,11 +875,11 @@ wait_for_lock() { lock_workspace() { wait_for_lock - echo $$ > $LOCK_FILE + echo "${$}" > "${LOCK_FILE}" } unlock_workspace() { - rm -f $LOCK_FILE + rm -f -- "${LOCK_FILE}" } delay_build() { @@ -888,7 +889,7 @@ delay_build() { ### MAIN ### set_vars "$@" && { - if [ "x$(basename $0)" = "x${PREFIX}-build-rpm-package" ] || [ "x$(basename $0)" = "x${PREFIX}-build+upload-rpm-package" ]; then + if [ "x$(basename "${0}")" = "x${PREFIX}-build-rpm-package" ] || [ "x$(basename "${0}")" = "x${PREFIX}-build+upload-rpm-package" ]; then FORCE_BUILD="$(make_boolean "${FORCE_BUILD}")" NO_DELAY="$(make_boolean "${NO_DELAY}")" @@ -909,7 +910,7 @@ set_vars "$@" && { unlock_workspace } fi - if [ "x$(basename $0)" = "x${PREFIX}-upload-rpm-package" ] || [ "x$(basename $0)" = "x${PREFIX}-build+upload-rpm-package" ]; then + if [ "x$(basename "${0}")" = "x${PREFIX}-upload-rpm-package" ] || [ "x$(basename "${0}")" = "x${PREFIX}-build+upload-rpm-package" ]; then upload_packages fi } -- Alioth's /srv/git/code.x2go.org/buildscripts.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/buildscripts.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository buildscripts. commit 82283aa70233927e563b44dc2c7a73bd545cd4bf Author: Mihai Moldovan <ionic@ionic.de> Date: Fri Apr 3 02:27:15 2015 +0200 bin/build-deb-package: misc changes: - Use more curly braces and quotes. - Do not use echo and cat when not needed. - Change egrep to grep -E. - Use -q and -s flags for grep if it makes sense. - Terminate options with -- for "simple" GNU commands like mv, cp and others. - Typo fixes in comments. - Replace ls with find. - Whitespace fixes. - Remove redundant lines. - Clean stray semicolons. --- bin/build-deb-package | 303 ++++++++++++++++++++++++------------------------- 1 file changed, 150 insertions(+), 153 deletions(-) diff --git a/bin/build-deb-package b/bin/build-deb-package index 997c403..b5f63ff 100755 --- a/bin/build-deb-package +++ b/bin/build-deb-package @@ -17,14 +17,14 @@ # Free Software Foundation, Inc., # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. -export PATH=~/bin:$PATH +export PATH="${HOME}/bin:${PATH}" GIT_USER="gituser" GIT_HOSTNAME="git.mydomain.org" DEBEMAIL="firstname.lastname@mydomain.org" DEBFULLNAME="Firstname Lastname" -GPG_KEY= +GPG_KEY="" DEB_DISTS_SUPPORTED="debian ubuntu" DEBIAN_DISTROS="lenny,squeeze,wheezy,jessie,sid" UBUNTU_DISTROS="lucid,precise" @@ -34,68 +34,67 @@ COMPONENT_NIGHTLY="nightly" COMPONENT_BUNDLES="bundle-release1 bundle-release2" REPOS_SERVER="packages.mydomain.org" PACKAGES_WITHOUT_OTHERMIRROR="keyring" -GNUPGHOME=$HOME/.gnupg +GNUPGHOME="${HOME}/.gnupg" -test -z $1 && { echo "usage: $(basename $0) [<subpath>/]<git-project> {main,main/<codename>,nightly,nightly/<codename>} [<git-checkout>]"; exit 1; } +test -z "${1}" && { echo "usage: $(basename "${0}") [<subpath>/]<git-project> {main,main/<codename>,nightly,nightly/<codename>} [<git-checkout>]"; exit 1; } -PREFIX=$(echo `basename $0` | cut -d"-" -f1) -test -f ~/.buildscripts/$PREFIX.conf && . ~/.buildscripts/$PREFIX.conf || { echo "$0 has no valid context prefix..."; exit 1; } +PREFIX="$(cut -d"-" -f1 <<< "$(basename "${0}")")" +test -f "${HOME}/.buildscripts/${PREFIX}.conf" && . "${HOME}/.buildscripts/${PREFIX}.conf" || { echo "${0} has no valid context prefix..." >&2; exit 1; } -NO_DELAY=${NO_DELAY:-"no"} -FORCE_BUILD=${FORCE_BUILD:-"no"} -DEB_BUILD_FOR=${DEB_BUILD_FOR:-"debian:$DEBIAN_DISTROS ubuntu:$UBUNTU_DISTROS"} +: ${NO_DELAY:="no"} +: ${FORCE_BUILD:="no"} +: ${DEB_BUILD_FOR:="debian:${DEBIAN_DISTROS} ubuntu:${UBUNTU_DISTROS}"} set -ex set_vars() { USE_SUDO="yes" PDEBUILD="pdebuild --pbuilder qemubuilder" - TEMP_BASE="$HOME/tmp/" - mkdir -p "$TEMP_BASE" - chmod 2770 "$TEMP_BASE" + TEMP_BASE="${HOME}/tmp/" + mkdir -p -- "${TEMP_BASE}" + chmod 2770 "${TEMP_BASE}" # first argv is the name of the Git project - PROJECT_PATH="$1" - PROJECT_PATH=${PROJECT_PATH/%.git/} - PROJECT="$(basename $PROJECT_PATH)" + PROJECT_PATH="${1}" + PROJECT_PATH="${PROJECT_PATH/%.git/}" + PROJECT="$(basename "${PROJECT_PATH}")" # grab repository component area from command line (2nd argv) or guess it - ARGV2_COMPONENT="$(echo "$2/" | cut -d"/" -f1)" - ARGV2_CODENAME="$(echo "$2/" | cut -d"/" -f2)" + ARGV2_COMPONENT="$(cut -d"/" -f1 <<< "${2}/")" + ARGV2_CODENAME="$(cut -d"/" -f2 <<< "${2}/")" COMPONENT="${ARGV2_COMPONENT:-${COMPONENT:-$COMPONENT_NIGHTLY}}" CODENAMES="${ARGV2_CODENAME:-${CODENAMES}}" - [ -n "$ARGV2_CODENAME" ] && FORCE_BUILD="yes" || true + [ -n "${ARGV2_CODENAME}" ] && FORCE_BUILD="yes" || true DATE="${DATE:-$(date +%Y%m%d)}" - if [ "x$COMPONENT" = "x$COMPONENT_MAIN" ]; then + if [ "x${COMPONENT}" = "x${COMPONENT_MAIN}" ]; then CHECKOUT="${3:-build-main}" - elif [ "x$COMPONENT" = "x${COMPONENT_MAIN}-test" ]; then + elif [ "x${COMPONENT}" = "x${COMPONENT_MAIN}-test" ]; then CHECKOUT="${3:-build-main-test}" - elif echo "$COMPONENT_RELEASES" | grep "$COMPONENT" >/dev/null; then + elif grep -qs "$COMPONENT" <<< "${COMPONENT_RELEASES}"; then CHECKOUT="${3:-build-$COMPONENT}" - elif [ "x$COMPONENT" = "x$COMPONENT_NIGHTLY" ]; then + elif [ "x${COMPONENT}" = "x${COMPONENT_NIGHTLY}" ]; then CHECKOUT="${3:-master}" else echo "error: no such package component area for this Git project. Aborting..." exit 1 fi # the DATE might be given as ,,today'' from the command line - [ "x$DATE" = "xtoday" ] && DATE="$(date +%Y%m%d)" + [ "x${DATE}" = "xtoday" ] && DATE="$(date +%Y%m%d)" # setting paths - PROJECT_DIR="$HOME/build/$COMPONENT/$PROJECT" - PKGDIST="$HOME/pkg-dist/$COMPONENT/$PROJECT" + PROJECT_DIR="${HOME}/build/${COMPONENT}/${PROJECT}" + PKGDIST="${HOME}/pkg-dist/${COMPONENT}/${PROJECT}" # build for other architectures than amd64/i386 - EXTRA_ARCHS="${EXTRA_ARCHS:-}" - EXTRA_ARCHS_ONLY="${EXTRA_ARCHS_ONLY:-}" + : ${EXTRA_ARCHS:=""} + : ${EXTRA_ARCHS_ONLY:=""} # lock file - LOCK_FILE=$PROJECT_DIR/../.$PROJECT.lock + LOCK_FILE="${PROJECT_DIR}/../.${PROJECT}.lock" # creating paths - mkdir -p "$TEMP_BASE" - mkdir -p "$PROJECT_DIR" - mkdir -p "$PKGDIST" + mkdir -p -- "${PROJECT_DIR}" + mkdir -p -- "${PKGDIST}" return 0 } @@ -103,34 +102,34 @@ set_vars() { prepare_workspace() { # make sure our local working copy is up to date... - if [ -d "$PROJECT_DIR/.git" ]; then + if [ -d "${PROJECT_DIR}/.git" ]; then cd "$PROJECT_DIR" && git reset --hard - git checkout --force $CHECKOUT || git checkout --force -b $CHECKOUT - git pull origin $CHECKOUT + git checkout --force "${CHECKOUT}" || git checkout --force -b "${CHECKOUT}" + git pull origin "${CHECKOUT}" git fetch origin upstream:upstream || true git fetch origin pristine-tar:pristine-tar || true - # and again, get the $CHECKOUT refspec in pure state + # and again, get the ${CHECKOUT} refspec in pure state git reset --hard git clean -df else - cd "$(dirname $PROJECT_DIR)" - git clone git://$GIT_HOSTNAME/$PROJECT_PATH.git - cd "$PROJECT" - git checkout --force $CHECKOUT || git checkout --force -b $CHECKOUT; + cd "$(dirname "${PROJECT_DIR}")" + git clone "git://${GIT_HOSTNAME}/${PROJECT_PATH}.git" + cd "${PROJECT}" + git checkout --force "${CHECKOUT}" || git checkout --force -b "${CHECKOUT}" git fetch origin upstream:upstream git fetch origin pristine-tar:pristine-tar || true git clean -df fi - GIT_OBJECT_ID=`git show-ref -s heads/master` - cd "$PROJECT_DIR" + GIT_OBJECT_ID="$(git show-ref -s heads/master)" + cd "${PROJECT_DIR}" # by default we build for all current debian versions - if [ "x$ARGV2_CODENAME" != "x" ]; then - if echo "$DEBIAN_DISTROS" | grep $ARGV2_CODENAME >/dev/null; then - DEB_BUILD_FOR="debian:$ARGV2_CODENAME" - elif echo "$UBUNTU_DISTROS" | grep $ARGV2_CODENAME >/dev/null; then - DEB_BUILD_FOR="ubuntu:$ARGV2_CODENAME" + if [ "x${ARGV2_CODENAME}" != "x" ]; then + if grep -qs "${ARGV2_CODENAME}" <<< "${DEBIAN_DISTROS}"; then + DEB_BUILD_FOR="debian:${ARGV2_CODENAME}" + elif grep -qs "${ARGV2_CODENAME}" <<< "${UBUNTU_DISTROS}"; then + DEB_BUILD_FOR="ubuntu:${ARGV2_CODENAME}" fi fi return 0 @@ -138,39 +137,39 @@ prepare_workspace() { clear_pkgdist() { # pkgdist directory cleanup - echo "$DEB_BUILD_FOR" | sed -e 's/ /\n/g' | while read line; do - l_DIST="$(echo ${line/: /:} | cut -d":" -f1 | tr [:upper:] [:lower:])" - l_CODENAMES="${CODENAMES:-$(echo ${line/: /:} | cut -d":" -f2- | sed -e 's/,/ /g' | tr [:upper:] [:lower:])}" - echo "$DEB_DISTS_SUPPORTED" | grep $l_DIST >/dev/null && { - for l_CODENAME in $l_CODENAMES; do + echo "${DEB_BUILD_FOR}" | sed -e 's/ /\n/g' | while read line; do + l_DIST="$(cut -d":" -f1 <<< "${line/: /:}" | tr [:upper:] [:lower:])" + l_CODENAMES="${CODENAMES:-$(cut -d":" -f2- <<< "${line/: /:}" | sed -e 's/,/ /g' | tr [:upper:] [:lower:])}" + grep -qs "${l_DIST}" <<< "${DEB_DISTS_SUPPORTED}" && { + for l_CODENAME in ${l_CODENAMES}; do # in case we build a special CODENAME (squeeze, wheezy, lucid, ...) do skip # the wrong distribution here... - test -z $CODENAMES || echo $line | grep $CODENAMES || break + test -z "${CODENAMES}" || grep "${CODENAMES}" <<< "${line}" || break - if [ "x$EXTRA_ARCHS_ONLY" = "x" ]; then + if [ "x${EXTRA_ARCHS_ONLY}" = "x" ]; then for l_ARCH in amd64 i386; do - [ "x$SKIP_ARCH" != "x$l_ARCH" ] && { - mkdir -p "$PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH" - rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/dupload.conf" - rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/$PROJECT_"*.changes - rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/$PROJECT_"*.upload - rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/$PROJECT_"*.build - rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/$PROJECT_"*.dsc - rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/$PROJECT_"*.tar.gz - rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH/"*.deb + [ "x${SKIP_ARCH}" != "x${l_ARCH}" ] && { + mkdir -p -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}" + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/dupload.conf" + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/${PROJECT}_"*.changes + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/${PROJECT}_"*.upload + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/${PROJECT}_"*.build + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/${PROJECT}_"*.dsc + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/${PROJECT}_"*.tar.gz + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}/"*.deb } done fi - for l_EXTRA_ARCH in $EXTRA_ARCHS; do - mkdir -p "$PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH" - rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH/dupload.conf" - rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH/$PROJECT_"*.changes - rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH/$PROJECT_"*.upload - rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH/$PROJECT_"*.build - rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH/$PROJECT_"*.dsc - rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH/$PROJECT_"*.tar.gz - rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH/"*.deb + for l_EXTRA_ARCH in ${EXTRA_ARCHS}; do + mkdir -p -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_EXTRA_ARCH}" + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_EXTRA_ARCH}/dupload.conf" + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_EXTRA_ARCH}/${PROJECT}_"*.changes + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_EXTRA_ARCH}/${PROJECT}_"*.upload + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_EXTRA_ARCH}/${PROJECT}_"*.build + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_EXTRA_ARCH}/${PROJECT}_"*.dsc + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_EXTRA_ARCH}/${PROJECT}_"*.tar.gz + rm -f -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_EXTRA_ARCH}/"*.deb done done } @@ -180,109 +179,106 @@ clear_pkgdist() { build_packages() { # use pbuilder for building all variants of this package - echo "$DEB_BUILD_FOR" | sed -e 's/ /\n/g' | while read line; do - l_DIST="$(echo ${line/: /:} | cut -d":" -f1 | tr [:upper:] [:lower:])" - l_CODENAMES="${CODENAMES:-$(echo ${line/: /:} | cut -d":" -f2- | sed -e 's/,/ /g' | tr [:upper:] [:lower:])}" - echo "$DEB_DISTS_SUPPORTED" | grep $l_DIST >/dev/null && { - for l_CODENAME in $l_CODENAMES; do + echo "${DEB_BUILD_FOR}" | sed -e 's/ /\n/g' | while read line; do + l_DIST="$(cut -d":" -f1 <<< "${line/: /:}" | tr [:upper:] [:lower:])" + l_CODENAMES="${CODENAMES:-$(cut -d":" -f2- <<< "${line/: /:}" | sed -e 's/,/ /g' | tr [:upper:] [:lower:])}" + grep -qs "${l_DIST}" <<< "${DEB_DISTS_SUPPORTED}" && { + for l_CODENAME in ${l_CODENAMES}; do # in case we build a special CODENAME (squeeze, wheezy, lucid, ...) do skip # the wrong distribution here... - test -z $CODENAMES || echo $line | grep $CODENAMES || break + test -z "${CODENAMES}" || grep "${CODENAMES}" <<< "${line}" || break - TEMP_DIR="$(mktemp -d --tmpdir=$TEMP_BASE)" - mkdir -p "$TEMP_DIR/$PROJECT" - chmod 2770 "$TEMP_DIR" -Rf + TEMP_DIR="$(mktemp -d --tmpdir=${TEMP_BASE})" + mkdir -p -- "${TEMP_DIR}/${PROJECT}" + chmod 2770 -Rf -- "${TEMP_DIR}" - cd "$PROJECT_DIR" - git clone "$PROJECT_DIR" "$TEMP_DIR/$PROJECT/" - cd "$TEMP_DIR/$PROJECT" - git checkout $CHECKOUT || git checkout master - find $PROJECT_DIR/../ -type f -maxdepth 0 -mindepth 0 | grep $PROJECT_*.orig.tar.gz &>/dev/null && cp $PROJECT_DIR/../$PROJECT_*.orig.tar.gz .. - GITREV=$(gitrevno) + cd "${PROJECT_DIR}" + git clone "${PROJECT_DIR}" "${TEMP_DIR}/${PROJECT}/" + cd "${TEMP_DIR}/${PROJECT}" + git checkout "${CHECKOUT}" || git checkout master + find "${PROJECT_DIR}/../" -type f -maxdepth 0 -mindepth 0 | grep -qs "${PROJECT}_"*.orig.tar.gz && cp -- "${PROJECT_DIR}/../${PROJECT}_"*.orig.tar.gz .. + GITREV="$(gitrevno)" # we always build native packages for our repos SA_OPTION="" - - # we always build native packages for our repos - SA_OPTION="" - test -f debian/source/format && cat debian/source/format | egrep '^3.0.*\(quilt\)$' >/dev/null && { + test -f "debian/source/format" && grep -Eqs '^3.0.*\(quilt\)$' "debian/source/format" && { git fetch origin upstream:upstream - UPSTREAM_VERSION=$(dpkg-parsechangelog | grep Version: | cut -d " " -f2 | sed -e 's/-.*//' -e 's/^.*://') - REVISION=$(dpkg-parsechangelog | grep Version: | cut -d " " -f2 | sed -e 's/.*-//') - git archive --prefix=${PROJECT}-${UPSTREAM_VERSION}/ -o ../${PROJECT}_${UPSTREAM_VERSION}.orig.tar.gz upstream/${UPSTREAM_VERSION} && { + UPSTREAM_VERSION="$(dpkg-parsechangelog | grep "Version:" | cut -d " " -f2 | sed -e 's/-.*//' -e 's/^.*://')" + REVISION="$(dpkg-parsechangelog | grep "Version:" | cut -d " " -f2 | sed -e 's/.*-//')" + git archive --prefix="${PROJECT}-${UPSTREAM_VERSION}/" -o "../${PROJECT}_${UPSTREAM_VERSION}.orig.tar.gz" "upstream/${UPSTREAM_VERSION}" && { SA_OPTION="--debbuildopts=-sa" - } || echo "1.0" > debian/source/format + } || echo "1.0" > "debian/source/format" } # for Ubuntu version is the codename of the distribution release - VERSION=$l_CODENAME + VERSION="${l_CODENAME}" # translate the version name for Debian releases - [ "x$l_CODENAME" = "xsid" ] && VERSION=unstable + [ "x${l_CODENAME}" = "xsid" ] && VERSION="unstable" #[ "x$l_CODENAME" = "xjessie" ] && VERSION=testing #[ "x$l_CODENAME" = "xwheezy" ] && VERSION=stable #[ "x$l_CODENAME" = "xoldstable" ] && VERSION=oldstable # modify the section for non-main package builds - [ "x$COMPONENT" != "xmain" ] && { - mv debian/control debian/control.tmp - cat debian/control.tmp | sed "s#Section:[\ ]*\(.*\)#Section: $COMPONENT/\1#g" > debian/control + [ "x${COMPONENT}" != "xmain" ] && { + mv -- "debian/control" "debian/control.tmp" + sed "s,Section:[\ ]*\(.*\),Section: ${COMPONENT}/\1,g" debian/control.tmp > debian/control } # modify changelog for this build - if [ "$COMPONENT" != "$COMPONENT_NIGHTLY" ]; then - dch --distribution $VERSION --force-distribution -l "+git$DATE.$GITREV+$l_CODENAME.$COMPONENT." "Auto-built $l_DIST $l_CODENAME package for $REPOS_SERVER repository (Git commit: $GIT_OBJECT_ID)." + if [ "${COMPONENT}" != "${COMPONENT_NIGHTLY}" ]; then + dch --distribution "${VERSION}" --force-distribution -l "+git${DATE}.${GITREV}+${l_CODENAME}.${COMPONENT}." "Auto-built ${l_DIST} ${l_CODENAME} package for ${REPOS_SERVER} repository (Git commit: ${GIT_OBJECT_ID})." else - dch --distribution $VERSION --force-distribution -l "~git$DATE.$GITREV+$l_CODENAME.$COMPONENT." "Development-Snapshot!!! Auto-built $l_DIST $l_CODENAME package for $REPOS_SERVER repository (Git commit: $GIT_OBJECT_ID)." + dch --distribution "${VERSION}" --force-distribution -l "~git${DATE}.${GITREV}+${l_CODENAME}.${COMPONENT}." "Development-Snapshot!!! Auto-built ${l_DIST} ${l_CODENAME} package for ${REPOS_SERVER} repository (Git commit: ${GIT_OBJECT_ID})." fi - mkdir -p $PKGDIST/$l_DIST/$l_CODENAME/{amd64,i386} + mkdir -p -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/"{amd64,i386} OTHERMIRROR="" - if [ "x$COMPONENT" = "x$COMPONENT_NIGHTLY" ]; then - echo $PACKAGE_WITHOUT_OTHERMIRROR | grep $PROJECT >/dev/null || OTHERMIRROR="deb http://$REPOS_SERVER/$l_DIST $l_CODENAME $COMPONENT_MAIN $COMPONENT" + if [ "x${COMPONENT}" = "x${COMPONENT_NIGHTLY}" ]; then + grep -qs "${PROJECT}" <<< "${PACKAGE_WITHOUT_OTHERMIRROR}" || OTHERMIRROR="deb http://${REPOS_SERVER}/${l_DIST} ${l_CODENAME} ${COMPONENT_MAIN} ${COMPONENT}" else - echo $PACKAGE_WITHOUT_OTHERMIRROR | grep $PROJECT >/dev/null || OTHERMIRROR="deb http://$REPOS_SERVER/$l_DIST $l_CODENAME $COMPONENT" + grep "${PROJECT}" <<< "${PACKAGE_WITHOUT_OTHERMIRROR}" || OTHERMIRROR="deb http://${REPOS_SERVER}/${l_DIST} ${l_CODENAME} ${COMPONENT}" fi - if [ $PROJECT = "x2gomatebindings" ] && [ $l_CODENAME = "wheezy" ]; then - OTHERMIRROR="deb http://packages.mate-desktop.org/repo/debian $l_CODENAME main" + if [ "${PROJECT}" = "x2gomatebindings" ] && [ "${l_CODENAME}" = "wheezy" ]; then + OTHERMIRROR="deb http://packages.mate-desktop.org/repo/debian ${l_CODENAME} main" fi # create git changelog immediately prior to building the package git --no-pager log --since "2 years ago" --format="%ai %aN (%h) %n%n%x09*%w(68,0,10) %s%d%n" > ChangeLog.gitlog - [ "x$USE_SUDO" != "xyes" ] && { - [ "x$EXTRA_ARCHS_ONLY" = "x" ] && { - [ "x$SKIP_ARCH" != "xamd64" ] && cat debian/control | egrep 'Architecture.*(all|any|amd64)' >/dev/null && { - DIST=$l_DIST CODENAME=$l_CODENAME ARCH=amd64 nice $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult "$PKGDIST/$l_DIST/$l_CODENAME/amd64" -- --allow-untrusted $SA_OPTION 0<&- + [ "x${USE_SUDO}" != "xyes" ] && { + [ "x${EXTRA_ARCHS_ONLY}" = "x" ] && { + [ "x${SKIP_ARCH}" != "xamd64" ] && grep -Eqs 'Architecture.*(all|any|amd64)' "debian/control" && { + DIST="${l_DIST}" CODENAME="${l_CODENAME}" ARCH="amd64" nice ${PDEBUILD} --auto-debsign --debsign-k "${GPG_KEY}" --buildresult "${PKGDIST}/${l_DIST}/${l_CODENAME}/amd64" -- --allow-untrusted ${SA_OPTION} 0<&- } - [ "x$SKIP_ARCH" != "xi386" ] && cat debian/control | egrep 'Architecture.*(any|i386)' >/dev/null && { - DIST=$l_DIST CODENAME=$l_CODENAME ARCH=i386 nice $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult "$PKGDIST/$l_DIST/$l_CODENAME/i386" -- --binary-arch --allow-untrusted $SA_OPTION 0<&- + [ "x${SKIP_ARCH}" != "xi386" ] && grep -Eqs 'Architecture.*(any|i386)' "debian/control" && { + DIST="${l_DIST}" CODENAME="${l_CODENAME}" ARCH="i386" nice ${PDEBUILD} --auto-debsign --debsign-k "${GPG_KEY}" --buildresult "${PKGDIST}/${l_DIST}/${l_CODENAME}/i386" -- --binary-arch --allow-untrusted ${SA_OPTION} 0<&- } } - for extra_arch in $EXTRA_ARCHS; do - mkdir -p "$PKGDIST/$l_DIST/$l_CODENAME/$extra_arch" - cat debian/control | egrep "Architecture.*(any|$extra_arch)" >/dev/null && { - DIST=$l_DIST CODENAME=$l_CODENAME ARCH=$extra_arch $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult "$PKGDIST/$l_DIST/$l_CODENAME/$extra_arch" -- --binary-arch --allow-untrusted $SA_OPTION 0<&- + for extra_arch in ${EXTRA_ARCHS}; do + mkdir -p -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${extra_arch}" + grep -Eqs "Architecture.*(any|$extra_arch)" "debian/control" && { + DIST="${l_DIST}" CODENAME="${l_CODENAME}" ARCH="${extra_arch}" ${PDEBUILD} --auto-debsign --debsign-k "${GPG_KEY}" --buildresult "${PKGDIST}/${l_DIST}/${l_CODENAME}/${extra_arch}" -- --binary-arch --allow-untrusted ${SA_OPTION} 0<&- } done } - [ "x$USE_SUDO" = "xyes" ] && { - [ "x$EXTRA_ARCHS_ONLY" = "x" ] && { - [ "x$SKIP_ARCH" != "xamd64" ] && cat debian/control | egrep 'Architecture.*(all|any|amd64)' >/dev/null && { - nice sudo GNUPGHOME=$GNUPGHOME DIST=$l_DIST CODENAME=$l_CODENAME ARCH=amd64 OTHERMIRROR="$OTHERMIRROR" $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult $PKGDIST/$l_DIST/$l_CODENAME/amd64 -- --allow-untrusted $SA_OPTION 0<&- + [ "x${USE_SUDO}" = "xyes" ] && { + [ "x${EXTRA_ARCHS_ONLY}" = "x" ] && { + [ "x${SKIP_ARCH}" != "xamd64" ] && grep -Eqs 'Architecture.*(all|any|amd64)' "debian/control" && { + nice sudo GNUPGHOME="${GNUPGHOME}" DIST="${l_DIST}" CODENAME="${l_CODENAME}" ARCH="amd64" OTHERMIRROR="${OTHERMIRROR}" ${PDEBUILD} --auto-debsign --debsign-k "${GPG_KEY}" --buildresult "${PKGDIST}/${l_DIST}/${l_CODENAME}/amd64" -- --allow-untrusted ${SA_OPTION} 0<&- } - [ "x$SKIP_ARCH" != "xi386" ] && cat debian/control | egrep 'Architecture.*(any|i386)' >/dev/null && { - nice sudo GNUPGHOME=$GNUPGHOME DIST=$l_DIST CODENAME=$l_CODENAME ARCH=i386 OTHERMIRROR="$OTHERMIRROR" $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult $PKGDIST/$l_DIST/$l_CODENAME/i386 -- --binary-arch --allow-untrusted $SA_OPTION 0<&- + [ "x${SKIP_ARCH}" != "xi386" ] && grep -Eqs 'Architecture.*(any|i386)' "debian/control" && { + nice sudo GNUPGHOME="${GNUPGHOME}" DIST="${l_DIST}" CODENAME="${l_CODENAME}" ARCH="i386" OTHERMIRROR="${OTHERMIRROR}" ${PDEBUILD} --auto-debsign --debsign-k "${GPG_KEY}" --buildresult "${PKGDIST}/${l_DIST}/${l_CODENAME}/i386" -- --binary-arch --allow-untrusted ${SA_OPTION} 0<&- } } - for extra_arch in $EXTRA_ARCHS; do - mkdir -p "$PKGDIST/$l_DIST/$l_CODENAME/$extra_arch" - cat debian/control | egrep "Architecture.*(any|$extra_arch)" >/dev/null && { - nice sudo GNUPGHOME=$GNUPGHOME DIST=$l_DIST CODENAME=$l_CODENAME ARCH=$extra_arch OTHERMIRROR="$OTHERMIRROR" $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult "$PKGDIST/$l_DIST/$l_CODENAME/$extra_arch" -- --binary-arch --allow-untrusted $SA_OPTION 0<&- + for extra_arch in ${EXTRA_ARCHS}; do + mkdir -p -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/${extra_arch}" + grep -Eqs "Architecture.*(any|$extra_arch)" "debian/control" && { + nice sudo GNUPGHOME="${GNUPGHOME}" DIST="${l_DIST}" CODENAME="${l_CODENAME}" ARCH="${extra_arch}" OTHERMIRROR="${OTHERMIRROR}" ${PDEBUILD} --auto-debsign --debsign-k "${GPG_KEY}" --buildresult "${PKGDIST}/${l_DIST}/${l_CODENAME}/${extra_arch}" -- --binary-arch --allow-untrusted ${SA_OPTION} 0<&- } done } - rm -Rf "$TEMP_DIR" + rm -Rf -- "${TEMP_DIR}" done } done @@ -291,28 +287,28 @@ build_packages() { upload_packages() { # dupload the new packages to the reprepro repository - echo "$DEB_BUILD_FOR" | sed -e 's/ /\n/g' | while read line; do - l_DIST="$(echo ${line/: /:} | cut -d":" -f1 | tr [:upper:] [:lower:])" - l_CODENAMES="${CODENAMES:-$(echo ${line/: /:} | cut -d":" -f2- | sed -e 's/,/ /g' | tr [:upper:] [:lower:])}" - for l_CODENAME in $l_CODENAMES; do + echo "${DEB_BUILD_FOR}" | sed -e 's/ /\n/g' | while read line; do + l_DIST="$(cut -d":" -f1 <<< "${line/: /:}" | tr [:upper:] [:lower:])" + l_CODENAMES="${CODENAMES:-$(cut -d":" -f2- <<< "${line/: /:}" | sed -e 's/,/ /g' | tr [:upper:] [:lower:])}" + for l_CODENAME in ${l_CODENAMES}; do # in case we build a special CODENAME (squeeze, wheezy, lucid, ...) do skip # the wrong distribution here... - test -z $CODENAMES || echo $line | grep $CODENAMES || break + test -z "${CODENAMES}" || grep "${CODENAMES}" <<< "${line}" || break - if [ "x$EXTRA_ARCHS_ONLY" = "x" ]; then + if [ "x${EXTRA_ARCHS_ONLY}" = "x" ]; then for l_ARCH in amd64 i386; do - [ "x$SKIP_ARCH" != "x$l_ARCH" ] && { - cd "$PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH" - test -f ./dupload.conf || ln -s ~/.dupload.conf.$PREFIX ./dupload.conf - ls $PROJECT_*.changes &>/dev/null && dupload -c --to $PREFIX-$l_DIST-$l_CODENAME $PROJECT_*.changes 0<&- + [ "x${SKIP_ARCH}" != "x${l_ARCH}" ] && { + cd "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_ARCH}" + test -f "./dupload.conf" || ln -s -- "${HOME}/.dupload.conf.${PREFIX}" "./dupload.conf" + ls -- "${PROJECT}_"*.changes >/dev/null 2>&1 && dupload -c --to "${PREFIX}-${l_DIST}-${l_CODENAME}" "${PROJECT}_"*.changes 0<&- } done fi - for l_EXTRA_ARCH in $EXTRA_ARCHS; do - cd "$PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH" - test -f ./dupload.conf || ln -s ~/.dupload.conf.$PREFIX ./dupload.conf - ls $PROJECT_*.changes &>/dev/null && dupload -c --to $PREFIX-$l_DIST-$l_CODENAME $PROJECT_*.changes 0<&- + for l_EXTRA_ARCH in ${EXTRA_ARCHS}; do + cd "${PKGDIST}/${l_DIST}/${l_CODENAME}/${l_EXTRA_ARCH}" + test -f "./dupload.conf" || ln -s -- "${HOME}/.dupload.conf.${PREFIX}" "./dupload.conf" + ls -- "${PROJECT}_"*.changes >/dev/null 2>&1 && dupload -c --to "${PREFIX}-${l_DIST}-${l_CODENAME}" "${PROJECT}_"*.changes 0<&- done done done @@ -320,9 +316,10 @@ upload_packages() { } wait_for_lock() { - while [ -f $LOCK_FILE ]; do - pid=$(head -n1 $LOCK_FILE) - if ! ps $pid 1>/dev/null; then rm -f $LOCK_FILE + while [ -f "${LOCK_FILE}" ]; do + pid="$(head -n1 "${LOCK_FILE}")" + if ! ps "${pid}" 1>/dev/null; then + rm -f -- "${LOCK_FILE}" else echo "PROJECT directory is locked, sleeping for 10 seconds..." sleep 10 @@ -333,11 +330,11 @@ wait_for_lock() { lock_workspace() { wait_for_lock - echo $$ > $LOCK_FILE + echo "${$}" > "${LOCK_FILE}" } unlock_workspace() { - rm -f $LOCK_FILE + rm -f -- "${LOCK_FILE}" } delay_build() { @@ -346,10 +343,10 @@ delay_build() { ### MAIN ### set_vars "$@" && { - if [ "x$(basename $0)" = "x$PREFIX-build-deb-package" ] || [ "x$(basename $0)" = "x$PREFIX-build+upload-deb-package" ]; then - # Treat any value other than "no" and "0" as true. - cd $PROJECT_DIR && pkgneedsbuild $CHECKOUT || ( [ "x$FORCE_BUILD" != "xno" ] && [ "x$FORCE_BUILD" != "x0" ] ) && { - if [ "x$FORCE_BUILD" != "xno" ] && [ "x$FORCE_BUILD" != "x0" ] && ( [ "x$NO_DELAY" = "xno" ] || [ "x$NO_DELAY" = "x0" ] ); then + if [ "x$(basename "${0}")" = "x${PREFIX}-build-deb-package" ] || [ "x$(basename "${0}")" = "x${PREFIX}-build+upload-deb-package" ]; then + # Treat any value other than "no" and "0" as true. + cd "${PROJECT_DIR}" && pkgneedsbuild "${CHECKOUT}" || ( [ "x${FORCE_BUILD}" != "xno" ] && [ "x${FORCE_BUILD}" != "x0" ] ) && { + if [ "x${FORCE_BUILD}" != "xno" ] && [ "x${FORCE_BUILD}" != "x0" ] && ( [ "x${NO_DELAY}" = "xno" ] || [ "x${NO_DELAY}" = "x0" ] ); then delay_build fi lock_workspace @@ -361,7 +358,7 @@ set_vars "$@" && { unlock_workspace } fi - if [ "x$(basename $0)" = "x$PREFIX-upload-deb-package" ] || [ "x$(basename $0)" = "x$PREFIX-build+upload-deb-package" ]; then + if [ "x$(basename "${0}")" = "x${PREFIX}-upload-deb-package" ] || [ "x$(basename "${0}")" = "x${PREFIX}-build+upload-deb-package" ]; then upload_packages fi } -- Alioth's /srv/git/code.x2go.org/buildscripts.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/buildscripts.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository buildscripts. commit 6bc245d846cd4c50609c1439121f202fc037365d Author: Mihai Moldovan <ionic@ionic.de> Date: Fri Apr 3 02:32:25 2015 +0200 bin/build-deb-package: add cleanup function to not leave random temporary directories around. --- bin/build-deb-package | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/bin/build-deb-package b/bin/build-deb-package index b5f63ff..6f25293 100755 --- a/bin/build-deb-package +++ b/bin/build-deb-package @@ -45,8 +45,32 @@ test -f "${HOME}/.buildscripts/${PREFIX}.conf" && . "${HOME}/.buildscripts/${PRE : ${FORCE_BUILD:="no"} : ${DEB_BUILD_FOR:="debian:${DEBIAN_DISTROS} ubuntu:${UBUNTU_DISTROS}"} +# These parts are not user-serviceable. +TEMP_CLEANUP="" +# End of non-user-serviceable part. + set -ex +# Cleans up temporary directories and files. +# RFC SHOULD be called by trap handlers. +cleanup () { + typeset -a temp_cleanup_arr + typeset OLDIFS="${IFS}" + IFS=":" + read -a temp_cleanup_arr <<< "${TEMP_CLEANUP}" + IFS="${OLDIFS}" + + typeset temp_dir="" + for temp_dir in "${temp_cleanup_arr[@]}"; do + if [ -d "${temp_dir}" ]; then + rm -Rf "${temp_dir}" + fi + done +} + +# Run cleanup() automatically. +trap cleanup ERR EXIT SIGTERM SIGINT SIGHUP SIGPIPE SIGALRM SIGUSR1 SIGUSR2 + set_vars() { USE_SUDO="yes" PDEBUILD="pdebuild --pbuilder qemubuilder" @@ -190,6 +214,7 @@ build_packages() { test -z "${CODENAMES}" || grep "${CODENAMES}" <<< "${line}" || break TEMP_DIR="$(mktemp -d --tmpdir=${TEMP_BASE})" + TEMP_CLEANUP="${TEMP_CLEANUP}:${TEMP_DIR}" mkdir -p -- "${TEMP_DIR}/${PROJECT}" chmod 2770 -Rf -- "${TEMP_DIR}" -- Alioth's /srv/git/code.x2go.org/buildscripts.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/buildscripts.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository buildscripts. commit 95090fd6c77113ed17354034d93af145fedc1736 Author: Mihai Moldovan <ionic@ionic.de> Date: Fri Apr 3 02:41:24 2015 +0200 bin/build-deb-package: do not use a subshell for splitting up ${DEB_BUILD_FOR}. Switch to word splitting and bash arrays. --- bin/build-deb-package | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/bin/build-deb-package b/bin/build-deb-package index 6f25293..ae9e095 100755 --- a/bin/build-deb-package +++ b/bin/build-deb-package @@ -161,7 +161,17 @@ prepare_workspace() { clear_pkgdist() { # pkgdist directory cleanup - echo "${DEB_BUILD_FOR}" | sed -e 's/ /\n/g' | while read line; do + + # Do NOT spawn a subshell here. + # Allow changing global variables in the main process. + typeset -a deb_build_for_arr + typeset OLDIFS="${IFS}" + IFS=" " + read -a deb_build_for_arr <<< "${DEB_BUILD_FOR}" + IFS="${OLDIFS}" + + typeset line="" + for line in "${deb_build_for_arr[@]}"; do l_DIST="$(cut -d":" -f1 <<< "${line/: /:}" | tr [:upper:] [:lower:])" l_CODENAMES="${CODENAMES:-$(cut -d":" -f2- <<< "${line/: /:}" | sed -e 's/,/ /g' | tr [:upper:] [:lower:])}" grep -qs "${l_DIST}" <<< "${DEB_DISTS_SUPPORTED}" && { @@ -203,7 +213,17 @@ clear_pkgdist() { build_packages() { # use pbuilder for building all variants of this package - echo "${DEB_BUILD_FOR}" | sed -e 's/ /\n/g' | while read line; do + + # Do NOT spawn a subshell here. + # Allow changing global variables in the main process. + typeset -a deb_build_for_arr + typeset OLDIFS="${IFS}" + IFS=" " + read -a deb_build_for_arr <<< "${DEB_BUILD_FOR}" + IFS="${OLDIFS}" + + typeset line="" + for line in "${deb_build_for_arr[@]}"; do l_DIST="$(cut -d":" -f1 <<< "${line/: /:}" | tr [:upper:] [:lower:])" l_CODENAMES="${CODENAMES:-$(cut -d":" -f2- <<< "${line/: /:}" | sed -e 's/,/ /g' | tr [:upper:] [:lower:])}" grep -qs "${l_DIST}" <<< "${DEB_DISTS_SUPPORTED}" && { @@ -312,7 +332,17 @@ build_packages() { upload_packages() { # dupload the new packages to the reprepro repository - echo "${DEB_BUILD_FOR}" | sed -e 's/ /\n/g' | while read line; do + + # Do NOT spawn a subshell here. + # Allow changing global variables in the main process. + typeset -a deb_build_for_arr + typeset OLDIFS="${IFS}" + IFS=" " + read -a deb_build_for_arr <<< "${DEB_BUILD_FOR}" + IFS="${OLDIFS}" + + typeset line="" + for line in "${deb_build_for_arr[@]}"; do l_DIST="$(cut -d":" -f1 <<< "${line/: /:}" | tr [:upper:] [:lower:])" l_CODENAMES="${CODENAMES:-$(cut -d":" -f2- <<< "${line/: /:}" | sed -e 's/,/ /g' | tr [:upper:] [:lower:])}" for l_CODENAME in ${l_CODENAMES}; do -- Alioth's /srv/git/code.x2go.org/buildscripts.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/buildscripts.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository buildscripts. commit d0182496e6070323209e13a86e65405a2ac29e58 Author: Mihai Moldovan <ionic@ionic.de> Date: Fri Apr 3 02:43:30 2015 +0200 bin/build-rpm-package: add comments for some functions. --- bin/build-rpm-package | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bin/build-rpm-package b/bin/build-rpm-package index 093368d..4cf2652 100755 --- a/bin/build-rpm-package +++ b/bin/build-rpm-package @@ -534,6 +534,9 @@ prepare_workspace() { return 0 } +# Cleans up the pkgdist directory used for building packages. +# Does not take parameters. +# Does not "return" anything. clear_pkgdist() { # pkgdist directory cleanup echo "${RPM_BUILD_FOR}" | sed -e 's/ /\n/g' | while read line; do @@ -822,6 +825,9 @@ build_packages() { return 0 } +# Uploads the build packages. +# Has no parameters. +# Does not "return" any value. upload_packages() { # dupload the new packages to the reprepro repository -- Alioth's /srv/git/code.x2go.org/buildscripts.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/buildscripts.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository buildscripts. commit 4dc4759fa371810413dc6ff1c1dc381bc8b952f2 Author: Mihai Moldovan <ionic@ionic.de> Date: Fri Apr 3 02:44:09 2015 +0200 bin/build-rpm-package: change ${RPM_BUILD_FOR} splitting to a bash-only solution in more places. --- bin/build-rpm-package | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/bin/build-rpm-package b/bin/build-rpm-package index 4cf2652..af4eacd 100755 --- a/bin/build-rpm-package +++ b/bin/build-rpm-package @@ -538,8 +538,16 @@ prepare_workspace() { # Does not take parameters. # Does not "return" anything. clear_pkgdist() { - # pkgdist directory cleanup - echo "${RPM_BUILD_FOR}" | sed -e 's/ /\n/g' | while read line; do + # Do NOT spawn a subshell here. Functions like get_extra_repository() need to + # change global variables in the main process. + typeset -a rpm_build_for_arr + typeset OLDIFS="${IFS}" + IFS=" " + read -a rpm_build_for_arr <<< "${RPM_BUILD_FOR}" + IFS="${OLDIFS}" + + typeset line="" + for line in "${rpm_build_for_arr[@]}"; do l_DIST="$(cut -d":" -f1 <<< "${line/: /:}" | tr [:upper:] [:lower:])" l_CODENAMES="${CODENAMES:-$(cut -d":" -f2- <<< "${line/: /:}" | sed -e 's/,/ /g' | tr [:upper:] [:lower:])}" grep -qs "${l_DIST}" <<< "${RPM_DISTS_SUPPORTED}" && { @@ -829,9 +837,16 @@ build_packages() { # Has no parameters. # Does not "return" any value. upload_packages() { - # dupload the new packages to the reprepro repository + # Do NOT spawn a subshell here. Functions like get_extra_repository() need to + # change global variables in the main process. + typeset -a rpm_build_for_arr + typeset OLDIFS="${IFS}" + IFS=" " + read -a rpm_build_for_arr <<< "${RPM_BUILD_FOR}" + IFS="${OLDIFS}" - echo "${RPM_BUILD_FOR}" | sed -e 's/ /\n/g' | while read line; do + typeset line="" + for line in "${rpm_build_for_arr[@]}"; do l_DIST="$(cut -d":" -f1 <<< "${line/: /:}" | tr [:upper:] [:lower:])" l_CODENAMES="${CODENAMES:-$(cut -d":" -f2- <<< "${line/: /:}" | sed -e 's/,/ /g' | tr [:upper:] [:lower:])}" for l_CODENAME in ${l_CODENAMES}; do -- Alioth's /srv/git/code.x2go.org/buildscripts.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/buildscripts.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository buildscripts. commit 69d4443031fa9cdc34811265738d4dcd47a4eb21 Author: Mihai Moldovan <ionic@ionic.de> Date: Fri Apr 3 02:45:00 2015 +0200 bin/build-rpm-package: change bash array name to lowercase. --- bin/build-rpm-package | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/bin/build-rpm-package b/bin/build-rpm-package index af4eacd..6b30126 100755 --- a/bin/build-rpm-package +++ b/bin/build-rpm-package @@ -573,13 +573,14 @@ clear_pkgdist() { build_packages() { # Do NOT spawn a subshell here. Functions like get_extra_repository() need to # change global variables in the main process. - typeset -a RPM_BUILD_FOR_ARR + typeset -a rpm_build_for_arr typeset OLDIFS="${IFS}" IFS=" " - read -a RPM_BUILD_FOR_ARR <<< "${RPM_BUILD_FOR}" + read -a rpm_build_for_arr <<< "${RPM_BUILD_FOR}" IFS="${OLDIFS}" - for line in "${RPM_BUILD_FOR_ARR[@]}"; do + typeset line="" + for line in "${rpm_build_for_arr[@]}"; do l_DIST="$(cut -d":" -f1 <<< "${line/: /:}" | tr [:upper:] [:lower:])" l_CODENAMES="${CODENAMES:-$(cut -d":" -f2- <<< "${line/: /:}" | sed -e 's/,/ /g' | tr [:upper:] [:lower:])}" grep -qs "${l_DIST}" <<< "${RPM_DISTS_SUPPORTED}" && { -- Alioth's /srv/git/code.x2go.org/buildscripts.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/buildscripts.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository buildscripts. commit a03cc980a44958ad24a2c588ba651f1d994673e2 Author: Mihai Moldovan <ionic@ionic.de> Date: Fri Apr 3 03:02:18 2015 +0200 bin/build-deb-package: change ${TEMP_CLEANUP} to lower-case variant and a bash array. --- bin/build-deb-package | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/bin/build-deb-package b/bin/build-deb-package index ae9e095..3480e90 100755 --- a/bin/build-deb-package +++ b/bin/build-deb-package @@ -46,7 +46,7 @@ test -f "${HOME}/.buildscripts/${PREFIX}.conf" && . "${HOME}/.buildscripts/${PRE : ${DEB_BUILD_FOR:="debian:${DEBIAN_DISTROS} ubuntu:${UBUNTU_DISTROS}"} # These parts are not user-serviceable. -TEMP_CLEANUP="" +typeset -ag temp_cleanup="" # End of non-user-serviceable part. set -ex @@ -54,14 +54,8 @@ set -ex # Cleans up temporary directories and files. # RFC SHOULD be called by trap handlers. cleanup () { - typeset -a temp_cleanup_arr - typeset OLDIFS="${IFS}" - IFS=":" - read -a temp_cleanup_arr <<< "${TEMP_CLEANUP}" - IFS="${OLDIFS}" - typeset temp_dir="" - for temp_dir in "${temp_cleanup_arr[@]}"; do + for temp_dir in "${temp_cleanup[@]}"; do if [ -d "${temp_dir}" ]; then rm -Rf "${temp_dir}" fi @@ -234,7 +228,7 @@ build_packages() { test -z "${CODENAMES}" || grep "${CODENAMES}" <<< "${line}" || break TEMP_DIR="$(mktemp -d --tmpdir=${TEMP_BASE})" - TEMP_CLEANUP="${TEMP_CLEANUP}:${TEMP_DIR}" + temp_cleanup+=("${TEMP_DIR}") mkdir -p -- "${TEMP_DIR}/${PROJECT}" chmod 2770 -Rf -- "${TEMP_DIR}" -- Alioth's /srv/git/code.x2go.org/buildscripts.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/buildscripts.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository buildscripts. commit 5d0ce798faecef51fca8707ad4cc19ad127a90bf Author: Mihai Moldovan <ionic@ionic.de> Date: Fri Apr 3 03:03:27 2015 +0200 bin/build-deb-package: check items of ${temp_cleanup} array for being not null. --- bin/build-deb-package | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/build-deb-package b/bin/build-deb-package index 3480e90..ec6fbc9 100755 --- a/bin/build-deb-package +++ b/bin/build-deb-package @@ -56,7 +56,7 @@ set -ex cleanup () { typeset temp_dir="" for temp_dir in "${temp_cleanup[@]}"; do - if [ -d "${temp_dir}" ]; then + if [ -n "${temp_dir}" ] && [ -d "${temp_dir}" ]; then rm -Rf "${temp_dir}" fi done -- Alioth's /srv/git/code.x2go.org/buildscripts.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/buildscripts.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository buildscripts. commit 775d09bdcf18666bfd90cffa6cdd23e63f4ba4c1 Author: Mihai Moldovan <ionic@ionic.de> Date: Fri Apr 3 03:04:56 2015 +0200 bin/build-deb-package: pass end of options argument when calling to rm. --- bin/build-deb-package | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/build-deb-package b/bin/build-deb-package index ec6fbc9..c5265a1 100755 --- a/bin/build-deb-package +++ b/bin/build-deb-package @@ -57,7 +57,7 @@ cleanup () { typeset temp_dir="" for temp_dir in "${temp_cleanup[@]}"; do if [ -n "${temp_dir}" ] && [ -d "${temp_dir}" ]; then - rm -Rf "${temp_dir}" + rm -Rf -- "${temp_dir}" fi done } -- Alioth's /srv/git/code.x2go.org/buildscripts.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/buildscripts.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository buildscripts. commit 7b64a61a4fb5918191094c03a7932eb2a1d316ac Author: Mihai Moldovan <ionic@ionic.de> Date: Fri Apr 3 03:05:27 2015 +0200 bin/build-deb-package: remove ${TEMP_DIR} removal on success -- handled by the new cleanup() function. --- bin/build-deb-package | 1 - 1 file changed, 1 deletion(-) diff --git a/bin/build-deb-package b/bin/build-deb-package index c5265a1..30e0609 100755 --- a/bin/build-deb-package +++ b/bin/build-deb-package @@ -317,7 +317,6 @@ build_packages() { } done } - rm -Rf -- "${TEMP_DIR}" done } done -- Alioth's /srv/git/code.x2go.org/buildscripts.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/buildscripts.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository buildscripts. commit 4d5b678512f675f3bfb00e08c3378d4658cf71e9 Author: Mihai Moldovan <ionic@ionic.de> Date: Fri Apr 3 03:06:32 2015 +0200 bin/build-rpm-package: merge ${temp_cleanup} changes from bin/build-deb-package. --- bin/build-rpm-package | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/bin/build-rpm-package b/bin/build-rpm-package index 6b30126..eccfd7e 100755 --- a/bin/build-rpm-package +++ b/bin/build-rpm-package @@ -61,6 +61,7 @@ test -f "${HOME}/.buildscripts/${PREFIX}.conf" && . "${HOME}/.buildscripts/${PRE TMP_MOCK_CFG_DIR="" TMP_MOCK_CFG_FILE="" TEMP_BASE="${HOME}/tmp/" +typeset -ag temp_cleanup # End of non-user-serviceable part. set -ex @@ -103,6 +104,14 @@ cleanup () { else echo "Warning: mock temporary config directory not defined. Skipping cleanup." >&2 fi + + # Cleanup the other temporary dirs afterwards. + typeset temp_dir="" + for temp_dir in "${temp_cleanup[@]}"; do + if [ -n "${temp_dir}" ] && [ -d "${temp_dir}" ]; then + rm -Rf -- "${temp_dir}" + fi + done } # Run cleanup() automatically. @@ -593,6 +602,7 @@ build_packages() { # tar upstream sources from our Git clone TEMP_DIR="$(mktemp -d --tmpdir="${TEMP_BASE}")" + temp_cleanup+=("${TEMP_DIR}") mkdir -p -- "${TEMP_DIR}/${PROJECT}" chmod -Rf -- 2770 "${TEMP_DIR}" -- Alioth's /srv/git/code.x2go.org/buildscripts.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/buildscripts.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository buildscripts. commit 761a20155b9cddbd87821e18444534772613e9cd Author: Mihai Moldovan <ionic@ionic.de> Date: Fri Apr 3 03:07:09 2015 +0200 bin/build-rpm-package: remove ${TEMP_DIR} cleanup now handled by the cleanup() function. --- bin/build-rpm-package | 6 ------ 1 file changed, 6 deletions(-) diff --git a/bin/build-rpm-package b/bin/build-rpm-package index eccfd7e..fe83537 100755 --- a/bin/build-rpm-package +++ b/bin/build-rpm-package @@ -666,7 +666,6 @@ build_packages() { rm -Rf -- "${PKGDIST}/${l_DIST}/${l_CODENAME}/rpmbuild/SRPMS/build.log" else cat "${PKGDIST}/${l_DIST}/${l_CODENAME}/rpmbuild/SRPMS/build.log" - rm -Rf -- "$TEMP_DIR" exit 1 fi fi @@ -716,7 +715,6 @@ build_packages() { done rpmsign-unattended -D "%_gpg_name debian@x2go.org" --addsign "${PKGDIST}/${l_DIST}/${l_CODENAME}/SRPM/"*.rpm else - rm -Rf -- "${TEMP_DIR}" exit 1 fi else @@ -750,7 +748,6 @@ build_packages() { cat "${PKGDIST}/${l_DIST}/${l_CODENAME}/x86_64/build.log" else cat "${PKGDIST}/${l_DIST}/${l_CODENAME}/x86_64/build.log" - rm -Rf -- "${TEMP_DIR}" exit 1 fi done @@ -796,7 +793,6 @@ build_packages() { rpmsign-unattended -D "%_gpg_name debian@x2go.org" --addsign "${PKGDIST}/${l_DIST}/${l_CODENAME}/SRPM/"*.rpm fi else - rm -Rf -- "${TEMP_DIR}" exit 1 fi else @@ -831,7 +827,6 @@ build_packages() { cat "${PKGDIST}/${l_DIST}/${l_CODENAME}/i386/build.log" else cat "${PKGDIST}/${l_DIST}/${l_CODENAME}/i386/build.log" - rm -Rf -- "${TEMP_DIR}" exit 1 fi done @@ -840,7 +835,6 @@ build_packages() { done } done - rm -Rf -- "${TEMP_DIR}" return 0 } -- Alioth's /srv/git/code.x2go.org/buildscripts.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/buildscripts.git