On 2019/06/04 12:14, Klemens Nanni wrote:
> On Tue, Jun 04, 2019 at 10:42:44AM +0100, Stuart Henderson wrote:
> > Any OKs to import this?
> The MODGO_* handling is duplicate effort, see attached Makefile for a
> much simpler and cleaner version.
Ah thanks, that's much tidier.
> Regardless of this, there is another issue since the port writes outside
> of ${WRKDIR} as noticed on my machine where /tmp/ is mounted `noexec':
There's no restriction on writing to /tmp during builds, all sorts of
things will break if that is blocked.
Seems go does this as standard, so it's probably a good idea to figure
out how to tell it to place the go-build directory inside WRKDIR (maybe
it's possible to use WRKBUILD) but that said, it shouldn't block an
individual port when pretty much all the go ports in-tree already do
this.
exec is less common but it is something that is likely to be done at times.
I've definitely seen it in tests (I used to mount /tmp noexec but stopped
doing so after wasting too long chasing a bogus failure), and it wouldn't
surprise me at all if other things in tree need that during build.
> ===> dnscontrol-2.9 depends on: go-=1.12.5 -> go-1.12.5
> ===> Verifying specs: c pthread
> ===> found c.95.1 pthread.26.1
> ===> Checking files for dnscontrol-2.9
> `/tmp/distfiles/dnscontrol-2.9.tar.gz' is up to date.
> >> (SHA256) dnscontrol-2.9.tar.gz: OK
> ===> Extracting for dnscontrol-2.9
> ===> Patching for dnscontrol-2.9
> ===> Compiler link: clang -> /usr/bin/clang
> ===> Compiler link: clang++ -> /usr/bin/clang++
> ===> Compiler link: cc -> /usr/bin/cc
> ===> Compiler link: c++ -> /usr/bin/c++
> ===> Generating configure for dnscontrol-2.9
> ===> Configuring for dnscontrol-2.9
> ===> Building for dnscontrol-2.9
> fork/exec /tmp/go-build041594962/b001/exe/generate: permission denied
> main.go:14: running "go": exit status 1
> *** Error 1 in . (Makefile:24 'do-build': cd
> /usr/ports/pobj/dnscontrol-2.9/go/src/github.com/StackExchange/dnscontrol &&
> /usr/bin/env -i GO...)
> *** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2811
> '/usr/ports/pobj/dnscontrol-2.9/build-amd64/.build_done')
> *** Error 1 in /usr/ports/mystuff/net/dnscontrol
> (/usr/ports/infrastructure/mk/bsd.port.mk:2481 'build')
>
>
> Also, SEPARATE_BUILD is set, but WRKBUILD is not used at all. I think
> you should either disable it or make use of it.
> # $OpenBSD$
>
> COMMENT = manage DNS configuration across any number of DNS hosts
>
> GH_ACCOUNT = StackExchange
> GH_PROJECT = dnscontrol
> GH_TAGNAME = v2.9
>
> CATEGORIES = net
>
> HOMEPAGE = https://stackexchange.github.io/dnscontrol/
>
> # MIT
> PERMIT_PACKAGE_CDROM = Yes
>
> WANTLIB = c pthread
>
> MODULES = lang/go
>
> MODGO_FLAGS += -tags nosystemd
> MODGO_TEST_FLAGS += -provider BIND
>
> do-build:
> cd ${WRKSRC} && ${MODGO_CMD} generate
> cd ${WRKSRC} && ${MODGO_CMD} build
> cd ${WRKSRC}/cmd/convertzone && ${MODGO_CMD} build
>
> do-install:
> ${MODGO_INSTALL_TARGET}
>
> do-test:
> cd ${WRKSRC}/integrationTest && ${MODGO_TEST_CMD}
>
> .include <bsd.port.mk>