Re: git: 0647dd427458 - main - Mk/Uses/go.mk: support v2 and higher proxy URLs

From: Adam Weinberger <adamw_at_adamw.org>
Date: Fri, 11 Apr 2025 04:19:15 UTC
On Thu, Apr 10, 2025 at 11:20 PM Adam Weinberger <adamw@adamw.org> wrote:

> On Thu, Apr 10, 2025 at 10:12 PM Enji Cooper <ngie@freebsd.org> wrote:
>
>> The branch main has been updated by ngie:
>>
>> URL:
>> https://cgit.FreeBSD.org/ports/commit/?id=0647dd427458993a2a4589467d8256998c0ee649
>>
>> commit 0647dd427458993a2a4589467d8256998c0ee649
>> Author:     Enji Cooper <ngie@FreeBSD.org>
>> AuthorDate: 2025-04-09 02:15:22 +0000
>> Commit:     Enji Cooper <ngie@FreeBSD.org>
>> CommitDate: 2025-04-11 02:12:05 +0000
>>
>>     Mk/Uses/go.mk: support v2 and higher proxy URLs
>>
>>     golang projects with versions greater than 2.x have different URLs
>>     presented for them via `${GOPROXY}` [1]. In particular, the major
>>     version is added to the URL and to the extracted GOPROXY provided
>>     DISTFILE(s).
>>
>>     This change adjusts `MASTER_SITES` and `WRKSRC` with `USES+= go` to
>>     support the "Major Version Suffixes" documented in the go module
>>     docs [1].
>>
>>     Reviewed by:    adamw, arrowd
>>     Approved by:    adamw (go)
>>     Differential Revision:  https://reviews.freebsd.org/D49723
>>
>>     1. https://go.dev/ref/mod#major-version-suffixes
>> ---
>>  Mk/Uses/go.mk | 12 +++++++++++-
>>  1 file changed, 11 insertions(+), 1 deletion(-)
>>
>> diff --git a/Mk/Uses/go.mk b/Mk/Uses/go.mk
>> index 421fd310847f..6e924e039ede 100644
>> --- a/Mk/Uses/go.mk
>> +++ b/Mk/Uses/go.mk
>> @@ -167,9 +167,19 @@ MASTER_SITES+=     ${GO_MOD_DIST}
>>  DISTFILES+=    go.mod
>>  # Fallback to default GO_PROXY
>>  .        else
>> +
>> +# `GOPROXY` presents sources via the proxy service and in the downloaded
>> +# `WRKSRC` differently as of v2.x versions of projects. Support this
>> different
>> +# directory/REST API scheme:
>> https://go.dev/ref/mod#major-version-suffixes .
>> +GO_MODVERSION_MAJOR=   ${GO_MODVERSION:C/^v//g:C/\..+//g}
>> +.if ${GO_MODVERSION_MAJOR} > 1
>> +WRKSRC=                ${WRKDIR}/${GO_MODNAME}/v${GO_MODVERSION_MAJOR}@
>> ${GO_MODVERSION}
>> +MASTER_SITES+=
>> ${GO_GOPROXY}/${GO_MODNAME:C/([A-Z])/!\1/g:tl}/v${GO_MODVERSION_MAJOR}/@v/
>> +.else
>> +WRKSRC=                ${WRKDIR}/${GO_MODNAME}@${GO_MODVERSION}
>>  MASTER_SITES+= ${GO_GOPROXY}/${GO_MODNAME:C/([A-Z])/!\1/g:tl}/@v/
>> +.endif
>>  DISTFILES+=    ${GO_MODFILE} ${GO_DISTFILE}
>> -WRKSRC=                ${WRKDIR}/${GO_MODNAME}@${GO_MODVERSION}
>>  .        endif
>>
>>  .      endif
>>
>
> Every go port is now failing to build for me:
> cd: /wrkdirs/usr/ports/devel/shfmt/work/mvdan.cc/sh/v3/v3@v3.11.0: No
> such file or directory
>
> The @ probably needs to be escaped.
>

Because all go ports were broken, I commented it out in 28a1c724e435.

I know that's stepping on your toes (and is thus against policy), but
there's a larger breakage in go ports that is being actively troubleshooted
(troubleshot?).


-- 
Adam Weinberger
adamw@adamw.org