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)