On 2021/10/30 19:53, Marc Espie wrote:
> Actually, my "yep" was just we should do things that way, the patch
> is broken.
>
> But go does things backwards by assembling DISTFILES with modern syntax
> and then parsing it back in MODGO_SETUP_WORKSPACE
>
> here's a (somewhat) saner way to do things
>
> Index: go.port.mk
> ===================================================================
> RCS file: /cvs/ports/lang/go/go.port.mk,v
> retrieving revision 1.45
> diff -u -p -r1.45 go.port.mk
> --- go.port.mk 30 Oct 2021 17:15:11 -0000 1.45
> +++ go.port.mk 30 Oct 2021 17:51:13 -0000
> @@ -76,11 +76,16 @@ DISTFILES += ${DISTNAME_ESC}${EXTRACT_S
> EXTRACT_ONLY = ${DISTNAME_ESC}${EXTRACT_SUFX}
> MASTER_SITES ?= ${MASTER_SITE_ATHENS}${MODGO_MODNAME_ESC}/@v/
> . for _modpath _modver in ${MODGO_MODULES}
> -DISTFILES +=
> ${MODGO_DIST_SUBDIR}/{}${_modpath}/@v/${_modver}.zip:${MODGO_MASTER_SITESN}
> -DISTFILES +=
> ${MODGO_DIST_SUBDIR}/{}${_modpath}/@v/${_modver}.mod:${MODGO_MASTER_SITESN}
> +. for _s in .zip .mod
> +DISTFILES +=
> ${MODGO_DIST_SUBDIR}/{}${_modpath}/@v/${_modver}${_s}:${MODGO_MASTER_SITESN}
> +_MODGO_SETUP += ${MODGO_DIST_SUBDIR}/${_modpath}/@v/${_modver}${_s}
> +. endfor
> . endfor
the inner loop can be dropped, just do the .zip files above, and add
${MODGO_MODULES} to the .for below:
> . for _modpath _modver in ${MODGO_MODFILES}
> -DISTFILES +=
> ${MODGO_DIST_SUBDIR}/{}${_modpath}/@v/${_modver}.mod:${MODGO_MASTER_SITESN}
> +. for _s in .mod
> +DISTFILES +=
> ${MODGO_DIST_SUBDIR}/{}${_modpath}/@v/${_modver}${_s}:${MODGO_MASTER_SITESN}
> +_MODGO_SETUP += ${MODGO_DIST_SUBDIR}/${_modpath}/@v/${_modver}${_s}
> +. endfor
> . endfor
> MAKE_ENV += GOPROXY=file://${WRKDIR}/go_modules
> MAKE_ENV += GO111MODULE=on GOPATH="${MODGO_GOPATH}"
> @@ -116,10 +121,10 @@ WRKSRC ?= ${MODGO_WORKSPACE}/src/${ALL_
> MODGO_SETUP_WORKSPACE = mkdir -p ${WRKSRC:H}; mv ${MODGO_SUBDIR}
> ${WRKSRC};
> .else
> WRKSRC ?= ${WRKDIR}/${MODGO_MODNAME}@${MODGO_VERSION}
> -MODGO_SETUP_WORKSPACE = ln -sf ${WRKSRC} ${WRKDIR}/${MODGO_MODNAME};
> -. for _MODGO_m in ${DISTFILES:Mgo_modules/*:C/{.*//}
> -MODGO_SETUP_WORKSPACE += ${INSTALL} -D ${DISTDIR}/${_MODGO_m}
> ${WRKDIR}/${_MODGO_m};
> -. endfor
> +MODGO_SETUP_WORKSPACE = ln -sf ${WRKSRC} ${WRKDIR}/${MODGO_MODNAME}; \
cd ${DISTDIR}; here allow getting rid of the repeated dirs in the install line
> + for m in ${_MODGO_SETUP}; do \
> + ${INSTALL} -D ${DISTDIR}/$$m ${WRKDIR}/$$m; \
${INSTALL} -D {,${WRKDIR}/$$m; \
> + done
> .endif
>
> INSTALL_STRIP =