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 =

Reply via email to