X-Git-Url: https://git.tld-linux.org/?a=blobdiff_plain;f=builder.sh;h=b022e1f062c7d1d98c133c620336f424647acae1;hb=HEAD;hp=a5b8edc233598c0ddd26de77c09cb6baa916ba6e;hpb=58190efb023a02475ced88a938bcc9fe0eb3a313;p=packages%2Frpm-build-tools.git diff --git a/builder.sh b/builder.sh index a5b8edc..b022e1f 100755 --- a/builder.sh +++ b/builder.sh @@ -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 '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