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 \