[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openbsd-ports
Subject:    Re: TMPDIR for building go ports ?
From:       Matthieu Herrb <matthieu () openbsd ! org>
Date:       2020-10-30 8:53:43
Message-ID: 20201030085343.GA32635 () herrb ! net
[Download RAW message or body]

On Wed, Oct 28, 2020 at 11:01:54PM +0100, Matthieu Herrb wrote:
> On Wed, Oct 28, 2020 at 08:59:14PM +0000, Stuart Henderson wrote:
> > On 2020/10/28 21:34, Matthieu Herrb wrote:
> > > Hi,
> > > 
> > > On one of my machines where I'm building ports, I have a /tmp
> > > partition that is a  too small (300MB) for building many of the go
> > > ports (gitea, facette,...)
> > > 
> > > Those ports seem to unconditionnaly use /tmp as intermediate storage.
> > > 
> > > I've plenty of space under /usr/ports. Is there a knob somehere to
> > > tell ports build (via dpb) to write to, let's say /usr/ports/tmp
> > > instead.
> > > 
> > > (I've tried seting the TMPDIR environment variable without success...)
> > > 
> > > Thanks.
> > > -- 
> > > Matthieu Herrb
> > > 
> > 
> > This might be one way to do it..
> 
> That works. Thanks a lot.
> 

Hi,

I don't know if there is some interest in having this
committed. During my last bulk build I discovered that it's not fully
ok though. I had to add some additionnal manual creation of go-tmp to
several ports. I don't really understand why the SETUP_WORKSAPCE hook
in go.ports.mk doesn't work for them. Here is the full diff I have:

diff --git databases/influxdb/Makefile databases/influxdb/Makefile
index 347954d2d9c..c9ee16f3863 100644
--- databases/influxdb/Makefile
+++ databases/influxdb/Makefile
@@ -42,6 +42,9 @@ NO_TEST =	Yes
 
 MODGO_LDFLAGS +=        -X main.version=$V
 
+pre-configure: 
+	mkdir -p ${WRKDIR}/go-tmp
+
 do-build:
 	cd ${WRKSRC} && ${MODGO_BUILD_CMD} ./...
 	cd ${WRKSRC}/man && ${MAKE_PROGRAM}
diff --git lang/go/go.port.mk lang/go/go.port.mk
index fafa318b562..121d9f85e17 100644
--- lang/go/go.port.mk
+++ lang/go/go.port.mk
@@ -45,6 +45,7 @@ MODGO_GOPATH ?=		${MODGO_WORKSPACE}:${MODGO_PACKAGE_PATH}
 # to explicitly disable SSE on i386 builds.
 MAKE_ENV +=		GO386=387
 MAKE_ENV +=		GOCACHE="${MODGO_GOCACHE}"
+MAKE_ENV +=		GOTMPDIR="${WRKDIR}/go-tmp"
 
 MODGO_CMD ?=		${SETENV} ${MAKE_ENV} go
 MODGO_BUILD_CMD =	${MODGO_CMD} install ${MODGO_FLAGS}
@@ -108,6 +109,8 @@ WRKSRC ?=		${WRKDIR}/${MODGO_MODNAME}@${MODGO_VERSION}
 MODGO_SETUP_WORKSPACE =	ln -sf ${WRKSRC} ${WRKDIR}/${MODGO_MODNAME}
 .endif
 
+MODGO_SETUP_WORKSPACE += mkdir -p ${WRKDIR}/go-tmp;
+
 INSTALL_STRIP =
 .if ${MODGO_TYPE:L:Mbin}
 MODGO_INSTALL_TARGET =	${INSTALL_PROGRAM_DIR} ${PREFIX}/${MODGO_BINDIR} && \
diff --git net/gomuks/Makefile net/gomuks/Makefile
index 8ff935d63ac..c01912c95e2 100644
--- net/gomuks/Makefile
+++ net/gomuks/Makefile
@@ -25,6 +25,9 @@ MAKE_ENV +=		CGO_CFLAGS=-I${LOCALBASE}/include \
 
 MODULES =		lang/go
 
+pre-configure:
+	mkdir -p ${WRKDIR}/go-tmp
+
 MODGO_MODULES =	\
 	github.com/!puerkito!bio/goquery		 v1.5.1 \
 	github.com/alecthomas/assert			 v0.0.0-20170929043011-405dbfeb8e38 \
diff --git net/miniflux/Makefile net/miniflux/Makefile
index c0ae8829aac..af9e991fb3d 100644
--- net/miniflux/Makefile
+++ net/miniflux/Makefile
@@ -22,6 +22,9 @@ ALL_TARGET =		${MODGO_MODNAME}/...
 SUBST_VARS =		VARBASE \
 			SYSCONFDIR
 
+pre-configure:
+	mkdir -p ${WRKDIR}/go-tmp
+
 do-install:
 	${INSTALL_PROGRAM} ${MODGO_WORKSPACE}/bin/miniflux.app \
 		${PREFIX}/bin/miniflux
diff --git net/termshark/Makefile net/termshark/Makefile
index e5f6c51a3b1..cb4b9c4e744 100644
--- net/termshark/Makefile
+++ net/termshark/Makefile
@@ -25,6 +25,9 @@ WANTLIB += c pthread
 MODULES =	lang/go
 RUN_DEPENDS =	net/wireshark,-text
 
+pre-configure:
+	mkdir -p ${WRKDIR}/go-tmp
+
 MODGO_MODULES =	github.com/!burnt!sushi/toml				 v0.3.1 \
 		github.com/!d!a!t!a-!d!o!g/go-sqlmock			 v1.3.3 \
 		github.com/alecthomas/template				 v0.0.0-20160405071501-a0175ee3bccc \
diff --git security/age/Makefile security/age/Makefile
index 99799b49319..64dd2a16073 100644
--- security/age/Makefile
+++ security/age/Makefile
@@ -44,4 +44,7 @@ MODGO_MODULES =	\
 	gopkg.in/check.v1		 v1.0.0-20190902080502-41f04d3bba15 \
 	gopkg.in/yaml.v2		 v2.2.4
 
+pre-configure:
+	mkdir -p ${WRKDIR}/go-tmp
+
 .include <bsd.port.mk>
diff --git security/ogvt/Makefile security/ogvt/Makefile
index f166b5d8c73..b5d7de34d6d 100644
--- security/ogvt/Makefile
+++ security/ogvt/Makefile
@@ -21,6 +21,9 @@ WANTLIB += c pthread
 
 MODULES =	lang/go
 
+pre-configure:
+	mkdir -p ${WRKDIR}/go-tmp
+
 do-install:
 	${INSTALL_PROGRAM_DIR} ${PREFIX}/${MODGO_BINDIR} && \
 		${INSTALL_PROGRAM} ${MODGO_WORKSPACE}/bin/* \
diff --git sysutils/beats/packetbeat/Makefile sysutils/beats/packetbeat/Makefile
index b7f2829933e..cc6e763a47d 100644
--- sysutils/beats/packetbeat/Makefile
+++ sysutils/beats/packetbeat/Makefile
@@ -9,6 +9,7 @@ CONFIGS =	${BEAT}.{reference.yml,yml}
 WANTLIB +=	pcap
 
 pre-build:
+	mkdir -p ${WRKDIR}/go-tmp
 	cd ${WRKSRC}/${BEAT}/cmd && ${MODGO_CMD} get ${MODGO_FLAGS} -d -v ./...
 	chmod u+w \
 		${MODGO_WORKSPACE}/pkg/mod/github.com/tsg/gopacket@v0.0.0-20200626092518-2ab8e397a786/pcap/pcap_poll_common.go
                
diff --git sysutils/duf/Makefile sysutils/duf/Makefile
index db43f7a1e60..111f3306565 100644
--- sysutils/duf/Makefile
+++ sysutils/duf/Makefile
@@ -17,6 +17,10 @@ PERMIT_PACKAGE =	Yes
 
 MODULES =		lang/go
 
+pre-configure:
+	mkdir -p ${WRKDIR}/go-tmp
+
+
 MODGO_MODULES =	\
 	github.com/davecgh/go-spew		 v1.1.1 \
 	github.com/jedib0t/go-pretty/v6		 v6.0.5 \
diff --git sysutils/envconsul/Makefile sysutils/envconsul/Makefile
index 06d332cff3f..f850ec85dd2 100644
--- sysutils/envconsul/Makefile
+++ sysutils/envconsul/Makefile
@@ -17,6 +17,9 @@ WANTLIB += c pthread
 
 MODULES=	lang/go
 
+pre-configure:
+	mkdir -p ${WRKDIR}/go-tmp
+
 # go/src/github.com/hashicorp/envconsul/Makefile
 MODGO_LDFLAGS +=	-X github.com/hashicorp/envconsul/version.Name=envconsul
 MODGO_LDFLAGS +=	-X \
                github.com/hashicorp/envconsul/version.GitCommit=${MODGO_VERSION}
diff --git sysutils/prometheus/Makefile sysutils/prometheus/Makefile
index adc7eb3e85b..553c06cd27a 100644
--- sysutils/prometheus/Makefile
+++ sysutils/prometheus/Makefile
@@ -24,6 +24,9 @@ USE_GMAKE =		Yes
 MODULES=		lang/go
 MODGO_GOPATH=		${MODGO_WORKSPACE}
 
+pre-configure:
+	mkdir -p ${WRKDIR}/go-tmp
+
 # promu doesn't like the default PREFIX
 do-build:
 	cd ${WRKSRC} && ${MAKE_ENV} GOMAXPROCS=${MAKE_JOBS} PREFIX=. ${MAKE_PROGRAM} \
diff --git sysutils/snmp_exporter/Makefile sysutils/snmp_exporter/Makefile
index f96bed49635..cb085e4bbac 100644
--- sysutils/snmp_exporter/Makefile
+++ sysutils/snmp_exporter/Makefile
@@ -38,8 +38,10 @@ MODGO_GOPATH=		${MODGO_WORKSPACE}
 .if $V == $M
 post-extract:
 	mv ${WRKDIR}/mibs ${WRKDIST}/generator/
+	mkdir -p ${WRKDIR}/go-tmp
 .endif
 
+
 # promu doesn't like the default PREFIX
 do-build:
 	cd ${WRKSRC} && ${MAKE_ENV} GOMAXPROCS=${MAKE_JOBS} PREFIX=. ${MAKE_PROGRAM} \
diff --git sysutils/terragrunt/Makefile sysutils/terragrunt/Makefile
index 0106529be76..cc13f7a397a 100644
--- sysutils/terragrunt/Makefile
+++ sysutils/terragrunt/Makefile
@@ -21,6 +21,9 @@ MODGO_LDFLAGS=	-X main.VERSION=${MODGO_VERSION}
 
 RUN_DEPENDS=	sysutils/terraform
 
+pre-configure:
+	mkdir -p ${WRKDIR}/go-tmp
+
 MODGO_MODULES =	\
 	cloud.google.com/go						 v0.53.0 \
 	cloud.google.com/go/bigquery					 v1.4.0 \
diff --git www/hugo/Makefile www/hugo/Makefile
index 96fa6653d21..b576735e7c5 100644
--- www/hugo/Makefile
+++ www/hugo/Makefile
@@ -37,6 +37,9 @@ WANTLIB +=	sass
 MAKE_ENV +=	CGO_CPPFLAGS='-I${LOCALBASE}/include -DUSE_LIBSASS_SRC' \
                CGO_LDFLAGS='-L${LOCALBASE}/lib -lsass'
 .endif
 
+pre-configure:
+	mkdir -p ${WRKDIR}/go-tmp
+
 post-build:
 	cd ${MODGO_WORKSPACE}/bin/ && ./hugo gen man
 

-- 
Matthieu Herrb


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic