On Tue, Aug 08, 2023 at 01:02:53PM +0200, Marc Espie wrote: > Actually, as far as bsd.port.mk, it doesn't need to > move too much stuff around thanks to make's lazyness. > > Note that having a list of defined MASTER_SITES variables simplifies > the check. > > I've also added a check for the right MASTER_SITES to be defined, > since currently we do not error out until actually using it, which > means that fiddling around with MASTER_SITES before committing may > often go unnoticed. > > (That final part is meant to go in sooner rather than later)
this simplifies things overall a little (because var.c does more of the heavy lifting now). checked this on limited scale with `make show=_ALL_MASTER_SITES` working as expected. The DISTFILE assignment to non-`:[0-9]` MASTER_SITESx needs a little more work, to fully function, but this is a step in that direction. ok thfr@ for this. > Index: bsd.port.mk > =================================================================== > RCS file: /cvs/ports/infrastructure/mk/bsd.port.mk,v > retrieving revision 1.1592 > diff -u -p -r1.1592 bsd.port.mk > --- bsd.port.mk 13 Jun 2023 10:28:40 -0000 1.1592 > +++ bsd.port.mk 8 Aug 2023 10:59:38 -0000 > @@ -118,9 +118,8 @@ _ALL_VARIABLES_PER_ARCH = > # consumers of (dump-vars) include sqlports generation and dpb > # dpb doesn't need everything, those are speed optimizations > .if ${DPB:L:Mfetch} || ${DPB:L:Mall} > -_ALL_VARIABLES += DISTFILES PATCHFILES SUPDISTFILES DIST_SUBDIR MASTER_SITES > \ > - MASTER_SITES0 MASTER_SITES1 MASTER_SITES2 MASTER_SITES3 MASTER_SITES4 \ > - MASTER_SITES5 MASTER_SITES6 MASTER_SITES7 MASTER_SITES8 MASTER_SITES9 \ > +_ALL_VARIABLES += DISTFILES PATCHFILES SUPDISTFILES DIST_SUBDIR \ > + ${_ALL_MASTER_SITES} \ > CHECKSUM_FILE FETCH_MANUALLY MISSING_FILES PERMIT_DISTFILES > .endif > .if ${DPB:L:Mtest} || ${DPB:L:Mall} > @@ -1280,19 +1280,15 @@ MASTER_SITES ?= > # sites for distfiles, add them to MASTER_SITE_BACKUP > > _warn_checksum = : > -.if !empty(MASTER_SITES:M*[^/]) > -_warn_checksum += ;echo ">>> MASTER_SITES not ending in /: > ${MASTER_SITES:M*[^/]}" > -.endif > > -.for _I in 0 1 2 3 4 5 6 7 8 9 > -. if defined(MASTER_SITES${_I}) > -. if !empty(MASTER_SITES${_I}:M*[^/]) > -_warn_checksum += ;echo ">>> MASTER_SITES${_I} not ending in /: > ${MASTER_SITES${_I}:M*[^/]}" > -. endif > +_ALL_MASTER_SITES = ${.VARIABLES:MMASTER_SITES*:NMASTER_SITES_*} > + > +.for _S in ${_ALL_MASTER_SITES} > +. if !empty(${_S}:M*[^/]) > +_warn_checksum += ;echo ">>> ${_S} not ending in /: ${${_S}:M*[^/]}" > . endif > .endfor > > - > EXTRACT_SUFX ?= .tar.gz > > .if !empty(GH_COMMIT) > @@ -1322,6 +1318,9 @@ _FILES= > . if !empty($v) > . for e in ${$v} > . for f m u in ${e:C/:[0-9]$//:C/^(.*)\{.*\}(.*)$/\1\2/} > MASTER_SITES${e:M*\:[0-9]:C/^.*:([0-9])$/\1/} > ${e:C/:[0-9]$//:C/^.*\{(.*)\}(.*)$/\1\2/} > +. if !defined($m) > +ERRORS += "Fatal: $m is not defined but referenced by $e in $v" > +. endif > . if empty(_FILES:M$f) > _FILES += $f > . if empty(DIST_SUBDIR)