From a9c806363fa6afd5a14bb41c72ef2991f9c3803c Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Thu, 23 Nov 2017 00:14:30 +0100 Subject: add sub_pkgrel (starting from .0) to differentiate between multiple build attempts of otherwise identical packages (e.g. identical upstream source) --- bin/common-functions | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) (limited to 'bin/common-functions') 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 + ) +} -- cgit v1.2.3-70-g09d2