]> TLD Linux GIT Repositories - packages/rpm-build-tools.git/blobdiff - builder.sh
- update .distbcond before processing
[packages/rpm-build-tools.git] / builder.sh
index 587d275c9ba413f0770529a01c0d846a1c6613c0..b022e1f062c7d1d98c133c620336f424647acae1 100755 (executable)
@@ -121,8 +121,11 @@ 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_URL="https://pkgrevs.tld-linux.org"
 PKGREVS_PREFIX="tld/"
 SETPKGREV="false"
 
@@ -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"
@@ -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 '(lib/(systemd|tmpfiles.d)|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