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