This was prompted by a discussion to kn@
I'm not sure the use case is that frequent to warrant
the patch, plus it will obviously trigger if we
change mirrors project-wide.

but it's just a warning, so probably not a big issue.

(we no longer have user-side changes to MASTER_SITES* ever
since it ended up in sqlports as well)


What do you guys think ?

Index: bsd.port.mk
===================================================================
RCS file: /cvs/ports/infrastructure/mk/bsd.port.mk,v
retrieving revision 1.1583
diff -u -p -r1.1583 bsd.port.mk
--- bsd.port.mk 18 Jan 2023 15:14:52 -0000      1.1583
+++ bsd.port.mk 3 Feb 2023 09:37:22 -0000
@@ -1277,14 +1277,27 @@ _warn_checksum = :
 _warn_checksum += ;echo ">>> MASTER_SITES not ending in /: 
${MASTER_SITES:M*[^/]}"
 .endif
 
+_echo_sites = echo "MASTER_SITES=${MASTER_SITES}"
+
+_check_sites = \
+       if ! fgrep -q 2>/dev/null MASTER_SITES ${CHECKSUM_FILE}; then exit 0; 
fi; \
+       if ! fgrep -q 2>/dev/null "MASTER_SITES=${MASTER_SITES}" 
${CHECKSUM_FILE}; then \
+               echo ">>> MASTER_SITES changed!"; \
+       fi
+
 .for _I in 0 1 2 3 4 5 6 7 8 9
 .  if defined(MASTER_SITES${_I})
+_echo_sites += ; echo "MASTER_SITES${_I}=${MASTER_SITES${_I}}"
+_check_sites += ; if !fgrep -q 2>/dev/null 
"MASTER_SITES${_I}=${MASTER_SITES${_I}}" ${CHECKSUM_FILE}; then \
+               echo ">>> MASTER_SITES${_I} changed!"; \
+       fi
 .    if !empty(MASTER_SITES${_I}:M*[^/])
 _warn_checksum += ;echo ">>> MASTER_SITES${_I} not ending in /: 
${MASTER_SITES${_I}:M*[^/]}"
 .    endif
 .  endif
 .endfor
 
+_check_sites += ;if ! $$okay; then echo 1>&2 ">> Warning: some MASTER_SITES 
changed"; fi
 
 EXTRACT_SUFX ?= .tar.gz
 
@@ -2245,6 +2258,7 @@ makesum:
        for file in ${MAKESUMFILES}; do \
                ${_size_fragment} $$file $$file >> $$ck; \
        done; \
+       { ${_echo_sites}; } >>$$ck; \
        sort -u -o $$ck $$ck; \
        diff -Lold -Lnew -u ${CHECKSUM_FILE} $$ck 2>/dev/null|| true; \
        mv -f $$ck ${CHECKSUM_FILE}
@@ -2478,6 +2492,7 @@ _internal-fetch:
 
 _internal-checksum: _internal-fetch
        @${_warn_checksum}
+       @${_check_sites}
        @fgrep 2>/dev/null SIZE ${CHECKSUM_FILE} | \
        sed -e '/SIZE (\(.*\)).*/s//\1/'|\
        while read i; do \

Reply via email to