]> TLD Linux GIT Repositories - packages/rpm-build-tools.git/blobdiff - builder.sh
- update .distbcond before processing
[packages/rpm-build-tools.git] / builder.sh
index 7be3210438c98709d8827a9c7f06a1ea79ff4aeb..b022e1f062c7d1d98c133c620336f424647acae1 100755 (executable)
@@ -121,9 +121,12 @@ PARALLEL_DOWNLOADS=10
 
 WGET_RETRIES=${MAX_WGET_RETRIES:-0}
 
+# .distbcond URL
+DISTBCOND_URL="https://src.tld-linux.org/.distbcond"
+
 # rsync repository with git refs of packages
-PKGREVS_URL="http://pkgrevs.tld-linux.org"
-PKGREVS_PREFIX="auto/ti/"
+PKGREVS_URL="https://pkgrevs.tld-linux.org"
+PKGREVS_PREFIX="tld/"
 SETPKGREV="false"
 
 # TLD git/df config
@@ -891,9 +894,9 @@ Exit_error() {
                        remove_build_requires
                        echo >&2 "Error: couldn't get out package name/version/release from spec file."
                        exit 6 ;;
-               "err_tag_exists" )
+               "err_pkgrev_exists" )
                        remove_build_requires
-                       echo >&2 "Tag ${2} already exists"
+                       echo >&2 "Error: package revision ${2} already exists"
                        exit 9 ;;
                "err_fract_rel" )
                        remove_build_requires
@@ -920,6 +923,9 @@ Exit_error() {
                "err_pkgrev_get" )
                        echo >&2 "Error: failed to get package revision for tag ${2}"
                        exit 16 ;;
+               "err_distbcond_update" )
+                       echo >&2 "Error: failed to update .distbcond"
+                       exit 17 ;;
                "err_not_implemented" )
                        remove_build_requires
                        echo >&2 "Error: functionality not yet imlemented"
@@ -1505,7 +1511,7 @@ set_pkgrev() {
        rm $_tmp 2>/dev/null
        [ "$(get_pkgrev "$_tag")" = "$CVSTAG" ] && return 0
        echo "$result" | grep -q -E "^OK$" && return 0
-       echo "$result" | grep -q -E "^EXISTS$" && Exit_error err_tag_exists "$_tag"
+       echo "$result" | grep -q -E "^EXISTS$" && Exit_error err_pkgrev_exists "$_tag"
        Exit_error err_pkgrev_set
 }
 
@@ -1688,7 +1694,7 @@ build_package() {
        local specdir=$(insert_gitlog $SPECFILE)
        ulimit -c unlimited
        # If required exclude directories with systemd related files from package contents
-       if grep -q -E 'systemd(unitdir|userunitdir|tmpfilesdir)' $specdir/$SPECFILE; then
+       if grep -q -E '(lib/(systemd|binfmt.d|sysctl.d|sysusers.d|tmpfiles.d)|systemd(unitdir|userunitdir|tmpfilesdir))' $specdir/$SPECFILE; then
                sed -i -e '/^%exclude_systemd_files/d; /^%files/s/$/\n%exclude_systemd_files/g;' $specdir/$SPECFILE
        fi
        # Enable/disable distro wide bconds based on ~/.distbcond
@@ -1807,17 +1813,23 @@ process_distbcond() {
        # w32codec-installer license_agreement
        # php +mysqli
        # ---
-       if [ -f $HOME/.distbcond ] || ([ -n $HOME_ETC ] && [ -f $HOME_ETC/.distbcond ]); then
-               :
-       else
-               return
+
+       local distbcond=$HOME/.distbcond
+
+       echo "Updating .distbcond"
+       wget -q --no-check-certificate $DISTBCOND_URL -O "$distbcond"
+       if [ $? -ne 0 ]; then
+               Exit_error err_distbcond_update
+       fi
+       DISTBCOND_MD5=$(grep -E "^# MD5 " "$distbcond" | cut -d ' ' -f 3)
+       DISTBCOND_MD5_LOCAL=$(grep -v -E "^#" "$distbcond" | md5sum | cut -d ' ' -f 1)
+       if [ "$DISTBCOND_MD5" != "$DISTBCOND_MD5_LOCAL" ]; then
+               rm -f "$distbcond"
+               Exit_error err_distbcond_update
        fi
 
        SN=${SPECFILE%%\.spec}
 
-       local distbcond=$HOME/.distbcond
-       [ -n $HOME_ETC ] && [ -f $HOME_ETC/.distbcond ] && distbcond=$HOME_ETC/.distbcond
-
        local bcond_avail=$(find_spec_bcond $SPECFILE)
 
        while read pkg flags; do