summaryrefslogtreecommitdiff
path: root/bin/common-functions
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2017-11-23 00:14:30 +0100
committerErich Eckner <git@eckner.net>2017-11-23 00:14:30 +0100
commita9c806363fa6afd5a14bb41c72ef2991f9c3803c (patch)
tree13705e9c83c03ab9b1a69df79e75e4eebe8f8bbe /bin/common-functions
parentbfc69b2cd5b771b6483c6e9b95ea36f6f9d82cda (diff)
downloadbuilder-a9c806363fa6afd5a14bb41c72ef2991f9c3803c.tar.xz
add sub_pkgrel (starting from .0) to differentiate between multiple build attempts of otherwise identical packages (e.g. identical upstream source)
Diffstat (limited to 'bin/common-functions')
-rwxr-xr-xbin/common-functions63
1 files changed, 63 insertions, 0 deletions
diff --git a/bin/common-functions b/bin/common-functions
index b25335b..9b7fe03 100755
--- a/bin/common-functions
+++ b/bin/common-functions
@@ -1213,3 +1213,66 @@ receive_buglist() {
s/".*$//
'
}
+
+# next_sub_pkgrel $package $git_revision $mod_git_revision $repository
+# giv out the next sub-pkgrel of the given package
+
+next_sub_pkgrel() {
+ ( # new shell is intentional
+ package="$1"
+ git_revision="$2"
+ mod_git_revision="$3"
+ repository="$4"
+ git_repo=$(find_git_repository_to_package_repository "${repository}")
+
+ temp_dir=$(mktemp -d)
+
+ find_pkgbuilds "${package}" "${repository}" "${git_repo}" "${git_revision}" "${mod_git_revision}"
+ extract_source_directory "${git_repo}" "${git_revision}" "${mod_git_revision}" "${temp_dir}" '0'
+
+ version=$(
+ cd "${temp_dir}"
+ makepkg --printsrcinfo | \
+ sed -n '
+ /^\s*\(epoch\|pkg\(name\|ver\|rel\)\) = /{s|^\s\+||;p}
+ ' | \
+ sed '
+ /^pkgname = /{
+ s/^.*= //
+ w pkgnames
+ d
+ }
+ s|^epoch = \(.*\)$|1 \1:|
+ s|^pkgver = \(.*\)$|2 \1-|
+ s|^pkgrel = \([^.]*\)\(\..*\)\?$|3 \1|
+ ' | \
+ sort -k1n,1 | \
+ sed '
+ s|^[0-9] ||
+ :a
+ N
+ s|\n[0-9] \(\S\+\)$|\1|
+ ta
+ '
+ )
+ sub_pkgrel=$(
+ ls_master_mirror 'i686/*/' | \
+ sed -n "$(
+ sed '
+ s/$/-'"${version}"'/
+ s/\./\\./g
+ s/^/^/
+ s/$/\\(\\.\\([0-9]\\+\\)\\)\\?-[^-]\\+$/
+ s|^.*$|/\0/{ s/\0/\\2/; s/^$/0/; p; b; }|
+ ' "${temp_dir}/pkgnames"
+ )" | \
+ sort -n | \
+ tail -n1
+ )
+ if [ -z "${sub_pkgrel}" ]; then
+ echo '0'
+ else
+ echo "$((sub_pkgrel+1))"
+ fi
+ )
+}