Tue May 14 23:01:13 2024 UTC (33d)
go: do not unpack go modules by default

Before this change, they were unpacked into ${WRKDIR}, but the actual build
process started from the zip archives again, leading to two copies of the
files on disk; even worse, you could assume the extracted sources were
used and could be patched.

Now, only the main tar.gz will be extracted into ${WRKDIR} and other
files need to be added to GO_MODULE_EXTRACT to be extracted.

Adapt the couple packages that already patch go sources, or need other
files extracted.

With help from bsiegert, thanks!


(wiz)
diff -r1.57 -r1.58 pkgsrc/databases/influxdb/Makefile
diff -r1.14 -r1.15 pkgsrc/databases/sqlc/Makefile
diff -r1.15 -r1.16 pkgsrc/lang/go/go-module.mk
diff -r1.43 -r1.44 pkgsrc/security/authelia/Makefile
diff -r1.1 -r1.2 pkgsrc/sysutils/superfile/Makefile

cvs diff -r1.57 -r1.58 pkgsrc/databases/influxdb/Makefile (expand / switch to unified diff)

--- pkgsrc/databases/influxdb/Makefile 2024/04/05 19:13:55 1.57
+++ pkgsrc/databases/influxdb/Makefile 2024/05/14 23:01:12 1.58
@@ -1,30 +1,33 @@ @@ -1,30 +1,33 @@
1# $NetBSD: Makefile,v 1.57 2024/04/05 19:13:55 bsiegert Exp $ 1# $NetBSD: Makefile,v 1.58 2024/05/14 23:01:12 wiz Exp $
2 2
3DISTNAME= influxdb-1.8.4 3DISTNAME= influxdb-1.8.4
4MASTER_SITES= ${MASTER_SITE_GITHUB:=influxdata/} 4MASTER_SITES= ${MASTER_SITE_GITHUB:=influxdata/}
5PKGREVISION= 34 5PKGREVISION= 34
6CATEGORIES= databases 6CATEGORIES= databases
7GITHUB_PROJECT= influxdb 7GITHUB_PROJECT= influxdb
8GITHUB_TAG= v${PKGVERSION_NOREV} 8GITHUB_TAG= v${PKGVERSION_NOREV}
9 9
10MAINTAINER= pkgsrc-users@NetBSD.org 10MAINTAINER= pkgsrc-users@NetBSD.org
11HOMEPAGE= https://github.com/influxdata/influxdb 11HOMEPAGE= https://github.com/influxdata/influxdb
12COMMENT= Scalable datastore for metrics, events, and real-time analytics 12COMMENT= Scalable datastore for metrics, events, and real-time analytics
13LICENSE= mit 13LICENSE= mit
14 14
15TOOL_DEPENDS+= asciidoc-[0-9]*:../../textproc/asciidoc 15TOOL_DEPENDS+= asciidoc-[0-9]*:../../textproc/asciidoc
16TOOL_DEPENDS+= xmlto-[0-9]*:../../textproc/xmlto 16TOOL_DEPENDS+= xmlto-[0-9]*:../../textproc/xmlto
17 17
 18GO_MODULE_EXTRACT+= github.com_influxdata_flux_@v_v0.65.1.zip
 19GO_MODULE_EXTRACT+= github.com_influxdata_flux_@v_v0.65.1.mod
 20
18USE_TOOLS+= gmake 21USE_TOOLS+= gmake
19 22
20DATADIR= ${VARBASE}/lib/influxdb 23DATADIR= ${VARBASE}/lib/influxdb
21LOGDIR= ${VARBASE}/log/influxdb 24LOGDIR= ${VARBASE}/log/influxdb
22 25
23BUILD_DEFS+= INFLUXDB_USER INFLUXDB_GROUP VARBASE 26BUILD_DEFS+= INFLUXDB_USER INFLUXDB_GROUP VARBASE
24FILES_SUBST+= INFLUXDB_USER=${INFLUXDB_USER:Q} 27FILES_SUBST+= INFLUXDB_USER=${INFLUXDB_USER:Q}
25FILES_SUBST+= INFLUXDB_GROUP=${INFLUXDB_GROUP:Q} 28FILES_SUBST+= INFLUXDB_GROUP=${INFLUXDB_GROUP:Q}
26FILES_SUBST+= DATADIR=${DATADIR:Q} 29FILES_SUBST+= DATADIR=${DATADIR:Q}
27FILES_SUBST+= LOGDIR=${LOGDIR:Q} 30FILES_SUBST+= LOGDIR=${LOGDIR:Q}
28 31
29INFLUXDB_USER?= influxdb 32INFLUXDB_USER?= influxdb
30INFLUXDB_GROUP?= influxdb 33INFLUXDB_GROUP?= influxdb

cvs diff -r1.14 -r1.15 pkgsrc/databases/sqlc/Makefile (expand / switch to unified diff)

--- pkgsrc/databases/sqlc/Makefile 2024/04/05 19:13:55 1.14
+++ pkgsrc/databases/sqlc/Makefile 2024/05/14 23:01:12 1.15
@@ -1,26 +1,29 @@ @@ -1,26 +1,29 @@
1# $NetBSD: Makefile,v 1.14 2024/04/05 19:13:55 bsiegert Exp $ 1# $NetBSD: Makefile,v 1.15 2024/05/14 23:01:12 wiz Exp $
2 2
3DISTNAME= sqlc-1.16.0 3DISTNAME= sqlc-1.16.0
4GITHUB_TAG= v${PKGVERSION_NOREV} 4GITHUB_TAG= v${PKGVERSION_NOREV}
5PKGREVISION= 13 5PKGREVISION= 13
6CATEGORIES= databases 6CATEGORIES= databases
7MASTER_SITES= ${MASTER_SITE_GITHUB:=kyleconroy/} 7MASTER_SITES= ${MASTER_SITE_GITHUB:=kyleconroy/}
8 8
9MAINTAINER= bsiegert@NetBSD.org 9MAINTAINER= bsiegert@NetBSD.org
10HOMEPAGE= https://sqlc.dev/ 10HOMEPAGE= https://sqlc.dev/
11COMMENT= Generate type-safe code from SQL 11COMMENT= Generate type-safe code from SQL
12LICENSE= mit 12LICENSE= mit
13 13
14USE_LANGUAGES= c # go 14USE_LANGUAGES= c # go
 15
 16GO_MODULE_EXTRACT+= github.com_pganalyze_pg_query_go_v2_@v_v2.2.0.zip
 17
15GO_BUILD_PATTERN= ./cmd/sqlc 18GO_BUILD_PATTERN= ./cmd/sqlc
16 19
17.include "go-modules.mk" 20.include "go-modules.mk"
18 21
19#INSTALLATION_DIRS= bin 22#INSTALLATION_DIRS= bin
20 23
21#do-install: 24#do-install:
22# ${INSTALL_PROGRAM} ${WRKDIR}/.gopath/bin/sqlc \ 25# ${INSTALL_PROGRAM} ${WRKDIR}/.gopath/bin/sqlc \
23# ${DESTDIR}${PREFIX}/bin/sqlc 26# ${DESTDIR}${PREFIX}/bin/sqlc
24 27
25.include "../../lang/go/go-module.mk" 28.include "../../lang/go/go-module.mk"
26.include "../../mk/bsd.pkg.mk" 29.include "../../mk/bsd.pkg.mk"

cvs diff -r1.15 -r1.16 pkgsrc/lang/go/go-module.mk (expand / switch to unified diff)

--- pkgsrc/lang/go/go-module.mk 2024/05/12 19:45:56 1.15
+++ pkgsrc/lang/go/go-module.mk 2024/05/14 23:01:13 1.16
@@ -1,36 +1,41 @@ @@ -1,36 +1,41 @@
1# $NetBSD: go-module.mk,v 1.15 2024/05/12 19:45:56 wiz Exp $ 1# $NetBSD: go-module.mk,v 1.16 2024/05/14 23:01:13 wiz Exp $
2# 2#
3# This file implements common logic for compiling Go programs in pkgsrc. 3# This file implements common logic for compiling Go programs in pkgsrc.
4# 4#
5# === Package-settable variables === 5# === Package-settable variables ===
6# 6#
7# GO_BUILD_PATTERN (optional) 7# GO_BUILD_PATTERN (optional)
8# Argument used for 'go install'. 8# Argument used for 'go install'.
9# In most cases, the default is fine. 9# In most cases, the default is fine.
10# 10#
11# Default: 11# Default:
12# "./...", which means all files below the top-level directory. 12# "./...", which means all files below the top-level directory.
13# 13#
14# GO_MODULE_FILES (optional) 14# GO_MODULE_FILES (optional)
15# List of dependency files to be downloaded from the Go module proxy. 15# List of dependency files to be downloaded from the Go module proxy.
16# Can be filled out from the output of "make show-go-modules" or 16# Can be filled out from the output of "make show-go-modules" or
17# "make print-go-modules". 17# "make print-go-modules".
18# 18#
19# GO_EXTRA_MOD_DIRS (optional) 19# GO_EXTRA_MOD_DIRS (optional)
20# 20#
21# List of additional directories in which to look for go.mod files for 21# List of additional directories in which to look for go.mod files for
22# the show-go-modules target. 22# the show-go-modules target.
23# 23#
 24# GO_MODULE_EXTRACT (optional)
 25#
 26# List of modules that should be extracted. By default, modules are not
 27# extracted separately. This is needed if you want to patch them.
 28#
24# Keywords: go golang 29# Keywords: go golang
25# 30#
26 31
27# Implementation notes 32# Implementation notes
28# 33#
29# All packages build-depend on the default Go release. Go packages should be 34# All packages build-depend on the default Go release. Go packages should be
30# revbumped when that package is updated. 35# revbumped when that package is updated.
31# 36#
32 37
33.include "../../lang/go/version.mk" 38.include "../../lang/go/version.mk"
34 39
35GO_BUILD_PATTERN?= ./... 40GO_BUILD_PATTERN?= ./...
36GO_EXTRA_MOD_DIRS?= 41GO_EXTRA_MOD_DIRS?=
@@ -61,26 +66,27 @@ do-install: @@ -61,26 +66,27 @@ do-install:
61 ${RUN} cd ${WRKDIR}/.gopath && [ ! -d bin ] || ${PAX} -rw bin ${DESTDIR}${PREFIX} 66 ${RUN} cd ${WRKDIR}/.gopath && [ ! -d bin ] || ${PAX} -rw bin ${DESTDIR}${PREFIX}
62.endif 67.endif
63 68
64.PHONY: print-go-modules show-go-modules 69.PHONY: print-go-modules show-go-modules
65print-go-modules show-go-modules: ${WRKDIR}/.extract_done 70print-go-modules show-go-modules: ${WRKDIR}/.extract_done
66 ${RUN} cd ${WRKSRC} && ${PKGSRC_SETENV} ${MAKE_ENV} https_proxy= GOPROXY= ${GO} mod download -x 71 ${RUN} cd ${WRKSRC} && ${PKGSRC_SETENV} ${MAKE_ENV} https_proxy= GOPROXY= ${GO} mod download -x
67.for dir in ${GO_EXTRA_MOD_DIRS} 72.for dir in ${GO_EXTRA_MOD_DIRS}
68 ${RUN} cd ${dir} && ${PKGSRC_SETENV} ${MAKE_ENV} https_proxy= GOPROXY= ${GO} mod download -x 73 ${RUN} cd ${dir} && ${PKGSRC_SETENV} ${MAKE_ENV} https_proxy= GOPROXY= ${GO} mod download -x
69.endfor 74.endfor
70 ${RUN} ${PRINTF} '# $$%s$$\n\n' NetBSD 75 ${RUN} ${PRINTF} '# $$%s$$\n\n' NetBSD
71 ${RUN} cd ${WRKDIR}/.gopath/pkg/mod/cache/download && ${FIND} . -type f -a \( -name "*.mod" -o -name "*.zip" \) | ${SED} -e 's/\.\//GO_MODULE_FILES+= /' | ${SORT} 76 ${RUN} cd ${WRKDIR}/.gopath/pkg/mod/cache/download && ${FIND} . -type f -a \( -name "*.mod" -o -name "*.zip" \) | ${SED} -e 's/\.\//GO_MODULE_FILES+= /' | ${SORT}
72 77
73DISTFILES?= ${DEFAULT_DISTFILES} 78DISTFILES?= ${DEFAULT_DISTFILES}
 79EXTRACT_ONLY?= ${DEFAULT_DISTFILES} ${GO_MODULES_EXTRACT}
74.for i in ${GO_MODULE_FILES} 80.for i in ${GO_MODULE_FILES}
75DISTFILES+= ${i:C/[\/!]/_/g} 81DISTFILES+= ${i:C/[\/!]/_/g}
76SITES.${i:C/[\/!]/_/g}= -https://proxy.golang.org/${i} 82SITES.${i:C/[\/!]/_/g}= -https://proxy.golang.org/${i}
77.endfor 83.endfor
78 84
79.PHONY: post-extract-go 85.PHONY: post-extract-go
80post-extract: post-extract-go 86post-extract: post-extract-go
81post-extract-go: 87post-extract-go:
82.for i in ${GO_MODULE_FILES} 88.for i in ${GO_MODULE_FILES}
83 @${MKDIR} ${WRKDIR}/.goproxy/${i:H} 89 @${MKDIR} ${WRKDIR}/.goproxy/${i:H}
84 @cp ${DISTDIR}/${DIST_SUBDIR}/${i:C/[\/!]/_/g} ${WRKDIR}/.goproxy/${i} 90 @cp ${DISTDIR}/${DIST_SUBDIR}/${i:C/[\/!]/_/g} ${WRKDIR}/.goproxy/${i}
85.endfor 91.endfor
86 92

cvs diff -r1.43 -r1.44 pkgsrc/security/authelia/Makefile (expand / switch to unified diff)

--- pkgsrc/security/authelia/Makefile 2024/04/05 19:14:07 1.43
+++ pkgsrc/security/authelia/Makefile 2024/05/14 23:01:13 1.44
@@ -1,38 +1,40 @@ @@ -1,38 +1,40 @@
1# $NetBSD: Makefile,v 1.43 2024/04/05 19:14:07 bsiegert Exp $ 1# $NetBSD: Makefile,v 1.44 2024/05/14 23:01:13 wiz Exp $
2 2
3DISTNAME= authelia-4.26.1 3DISTNAME= authelia-4.26.1
4PKGREVISION= 37 4PKGREVISION= 37
5CATEGORIES= security 5CATEGORIES= security
6MASTER_SITES= ${MASTER_SITE_GITHUB:=authelia/} 6MASTER_SITES= ${MASTER_SITE_GITHUB:=authelia/}
7GITHUB_TAG= v${PKGVERSION_NOREV} 7GITHUB_TAG= v${PKGVERSION_NOREV}
8 8
9DISTFILES= ${DEFAULT_DISTFILES} 9DISTFILES= ${DEFAULT_DISTFILES}
10FE_DISTNAME= ${DISTNAME}.public_html.tar.gz 10FE_DISTNAME= ${DISTNAME}.public_html.tar.gz
11DISTFILES+= ${FE_DISTNAME} 11DISTFILES+= ${FE_DISTNAME}
12SITES.${FE_DISTNAME}= \ 12SITES.${FE_DISTNAME}= \
13 -${MASTER_SITE_GITHUB:=authelia/}authelia/releases/download/${GITHUB_TAG}/authelia-public_html.tar.gz 13 -${MASTER_SITE_GITHUB:=authelia/}authelia/releases/download/${GITHUB_TAG}/authelia-public_html.tar.gz
14EXTRACT_DIR.${FE_DISTNAME}= ${WRKSRC} 14EXTRACT_DIR.${FE_DISTNAME}= ${WRKSRC}
15BR_DISTNAME= broccoli-1.0.3.tar.gz 15BR_DISTNAME= broccoli-1.0.3.tar.gz
16DISTFILES+= ${BR_DISTNAME} 16DISTFILES+= ${BR_DISTNAME}
17SITES.${BR_DISTNAME}= \ 17SITES.${BR_DISTNAME}= \
18 -${MASTER_SITE_GITHUB:=thealetheia/}broccoli/archive/v1.0.3.tar.gz 18 -${MASTER_SITE_GITHUB:=thealetheia/}broccoli/archive/v1.0.3.tar.gz
19EXTRACT_DIR.${BR_DISTNAME}= ${WRKDIR} 19EXTRACT_DIR.${BR_DISTNAME}= ${WRKDIR}
20 20
21MAINTAINER= pkgsrc-users@NetBSD.org 21MAINTAINER= pkgsrc-users@NetBSD.org
22HOMEPAGE= https://www.authelia.com/ 22HOMEPAGE= https://www.authelia.com/
23COMMENT= Single Sign-On Multi-Factor portal for web apps 23COMMENT= Single Sign-On Multi-Factor portal for web apps
24LICENSE= apache-2.0 24LICENSE= apache-2.0
25 25
 26GO_MODULE_EXTRACT+= broccoli-1.0.3.tar.gz authelia-4.26.1.public_html.tar.gz
 27
26CHECK_PORTABILITY_SKIP+= entrypoint.sh 28CHECK_PORTABILITY_SKIP+= entrypoint.sh
27 29
28.include "go-modules.mk" 30.include "go-modules.mk"
29 31
30# additional go modules needed to build broccoli 32# additional go modules needed to build broccoli
31GO_MODULE_FILES+= aletheia.icu/broccoli/fs/@v/v0.0.0-20200420162907-e7ff440cf358.mod 33GO_MODULE_FILES+= aletheia.icu/broccoli/fs/@v/v0.0.0-20200420162907-e7ff440cf358.mod
32GO_MODULE_FILES+= aletheia.icu/broccoli/fs/@v/v0.0.0-20200420162907-e7ff440cf358.zip 34GO_MODULE_FILES+= aletheia.icu/broccoli/fs/@v/v0.0.0-20200420162907-e7ff440cf358.zip
33GO_MODULE_FILES+= github.com/sabhiram/go-gitignore/@v/v0.0.0-20180611051255-d3107576ba94.mod 35GO_MODULE_FILES+= github.com/sabhiram/go-gitignore/@v/v0.0.0-20180611051255-d3107576ba94.mod
34GO_MODULE_FILES+= github.com/sabhiram/go-gitignore/@v/v0.0.0-20180611051255-d3107576ba94.zip 36GO_MODULE_FILES+= github.com/sabhiram/go-gitignore/@v/v0.0.0-20180611051255-d3107576ba94.zip
35 37
36GO_BUILD_PATTERN= ./cmd/authelia/... 38GO_BUILD_PATTERN= ./cmd/authelia/...
37 39
38AUTHELIA_USER?= authelia 40AUTHELIA_USER?= authelia

cvs diff -r1.1 -r1.2 pkgsrc/sysutils/superfile/Makefile (expand / switch to unified diff)

--- pkgsrc/sysutils/superfile/Makefile 2024/05/11 10:14:14 1.1
+++ pkgsrc/sysutils/superfile/Makefile 2024/05/14 23:01:13 1.2
@@ -1,19 +1,21 @@ @@ -1,19 +1,21 @@
1# $NetBSD: Makefile,v 1.1 2024/05/11 10:14:14 wiz Exp $ 1# $NetBSD: Makefile,v 1.2 2024/05/14 23:01:13 wiz Exp $
2 2
3DISTNAME= superfile-1.1.2 3DISTNAME= superfile-1.1.2
4CATEGORIES= sysutils 4CATEGORIES= sysutils
5MASTER_SITES= ${MASTER_SITE_GITHUB:=MHNightCat/} 5MASTER_SITES= ${MASTER_SITE_GITHUB:=MHNightCat/}
6GITHUB_TAG= v${PKGVERSION_NOREV} 6GITHUB_TAG= v${PKGVERSION_NOREV}
7 7
8MAINTAINER= pkgsrc-users@NetBSD.org 8MAINTAINER= pkgsrc-users@NetBSD.org
9HOMEPAGE= https://github.com/MHNightCat/superfile/ 9HOMEPAGE= https://github.com/MHNightCat/superfile/
10COMMENT= Pretty fancy and modern terminal file manager 10COMMENT= Pretty fancy and modern terminal file manager
11LICENSE= mit 11LICENSE= mit
12 12
13USE_LANGUAGES= c 13USE_LANGUAGES= c
14 14
15WRKSRC= ${WRKDIR}/${DISTNAME}/src 15WRKSRC= ${WRKDIR}/${DISTNAME}/src
16 16
 17GO_MODULES_EXTRACT+= github.com_barasher_go-exiftool_@v_v1.10.0.zip
 18
17.include "go-modules.mk" 19.include "go-modules.mk"
18.include "../../lang/go/go-module.mk" 20.include "../../lang/go/go-module.mk"
19.include "../../mk/bsd.pkg.mk" 21.include "../../mk/bsd.pkg.mk"