[X2Go-Commits] [buildscripts] 16/26: bin/sbuild-deb-package: backport from bin/build-deb-package: rewrite main function, drop TIMESTAMP, backport NO_DELAY and locking feature.

git-admin at x2go.org git-admin at x2go.org
Sun Nov 13 20:35:47 CET 2016


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository buildscripts.

commit 86edbfc61756bee1db4c00828ca4d26da785f190
Author: Mihai Moldovan <ionic at ionic.de>
Date:   Sun Nov 13 19:55:48 2016 +0100

    bin/sbuild-deb-package: backport from bin/build-deb-package: rewrite main function, drop TIMESTAMP, backport NO_DELAY and locking feature.
---
 bin/sbuild-deb-package |   44 ++++++++++++++++++++++++++------------------
 1 file changed, 26 insertions(+), 18 deletions(-)

diff --git a/bin/sbuild-deb-package b/bin/sbuild-deb-package
index 7905648..6eb3731 100755
--- a/bin/sbuild-deb-package
+++ b/bin/sbuild-deb-package
@@ -37,8 +37,6 @@ REPOS_SERVER="packages.mydomain.org"
 PACKAGES_WITHOUT_OTHERMIRROR="keyring"
 GNUPGHOME="${HOME}/.gnupg"
 
-TIMESTAMP=$(date +%s%N)
-
 test -z "${1}" && {
 	exec >&2
 	echo "usage: $(basename "${0}") [<subpath>/]<git-project> {main,main/<codename>,nightly,nightly/<codename>} [<git-checkout>]"
@@ -52,6 +50,7 @@ test -f "${HOME}/.buildscripts/${PREFIX}.conf" && . "${HOME}/.buildscripts/${PRE
 	exit 1;
 }
 
+: ${NO_DELAY:="no"}
 : ${FORCE_BUILD:="no"}
 : ${DEB_BUILD_FOR:="debian:${DEBIAN_DISTROS} ubuntu:${UBUNTU_DISTROS}"}
 
@@ -106,12 +105,12 @@ set_vars() {
 	[ "x${DATE}" = "xtoday" ] && DATE="$(date +%Y%m%d)"
 
 	# setting paths
-	PROJECT_DIR="${HOME}/build/${COMPONENT}/${TIMESTAMP}/${PROJECT}"
-	temp_cleanup+=("${PROJECT_DIR}")
-	temp_cleanup+=("$(dirname ${PROJECT_DIR})")
-
+	PROJECT_DIR="${HOME}/build/${COMPONENT}/${PROJECT}"
 	PKGDIST="${HOME}/pkg-dist/${COMPONENT}/${PROJECT}"
 
+	# lock file
+	LOCK_FILE="${PROJECT_DIR}/../.${PROJECT}.lock"
+
 	# creating paths
 	mkdir -p -- "${PROJECT_DIR}"
 	mkdir -p -- "${PKGDIST}"
@@ -212,16 +211,12 @@ build_packages() {
 		grep -qs "${l_DIST}" <<< "${DEB_DISTS_SUPPORTED}" && {
 			for l_CODENAME in ${l_CODENAMES}; do
 
-				# prepare workspace
-				prepare_workspace "${l_DIST}" "${l_CODENAME}"
-
 				# in case we build a special CODENAME (squeeze, wheezy, lucid, ...) do skip
 				# the wrong distribution here...
 				test -z "${CODENAMES}" || grep "${CODENAMES}" <<< "${line}" || break
 
-				TEMP_DIR="$(mktemp -d --tmpdir=${TEMP_BASE})"
+				TEMP_DIR="$(mktemp -d --tmpdir="${TEMP_BASE}" "tmp.$(repeat_str "X" "24")")"
 				temp_cleanup+=("${TEMP_DIR}")
-
 				mkdir -p -- "${TEMP_DIR}/${PROJECT}"
 				chmod 2770 -Rf -- "${TEMP_DIR}"
 
@@ -378,16 +373,29 @@ upload_packages() {
 	return 0
 }
 
+
 ### 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" ] ) && {
-			clear_pkgdist
-			build_packages
+set_vars "${@}" && {
+	if [ "x$(basename "${0}")" = "x${PREFIX}-sbuild-deb-package" ] || [ "x$(basename "${0}")" = "x${PREFIX}-sbuild+upload-deb-package" ]; then
+		FORCE_BUILD="$(make_boolean "${FORCE_BUILD}")"
+		NO_DELAY="$(make_boolean "${NO_DELAY}")"
+
+		cd "${PROJECT_DIR}" && {
+			pkgneedsbuild "${CHECKOUT}" || [ "${FORCE_BUILD}" -eq "1" ]
+		} && {
+			if [ "${FORCE_BUILD}" -eq "1" ] && [ "${NO_DELAY}" -eq "0" ]; then
+				delay_build
+			fi
+			lock_workspace "${LOCK_FILE}"
+			prepare_workspace && {
+				unlock_workspace "${LOCK_FILE}"
+				clear_pkgdist
+				build_packages
+			}
+			unlock_workspace "${LOCK_FILE}"
 		}
 	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}-sbuild+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


More information about the x2go-commits mailing list