On Wed, 11 Dec 2019 at 15:30:43 +0000, Stuart Henderson wrote: > The go.port.mk part of this breaks some existing ports e.g. net/dnscontrol, > net/wireguard-go. >
Here is a version of go.port.mk that fixes the GH_* ALL_TARGET stuff. # $OpenBSD: go.port.mk,v 1.27 2019/11/19 09:17:06 sthen Exp $ ONLY_FOR_ARCHS ?= ${GO_ARCHS} MODGO_BUILDDEP ?= Yes MODGO_DIST_SUBDIR ?= go_modules MASTER_SITE_ATHENS = https://proxy.golang.org/ MODGO_MASTER_SITESN = 9 MASTER_SITES${MODGO_MASTER_SITESN} ?= ${MASTER_SITE_ATHENS} MODGO_RUN_DEPENDS = lang/go MODGO_BUILD_DEPENDS = lang/go .if ${NO_BUILD:L} == "no" && ${MODGO_BUILDDEP:L} == "yes" BUILD_DEPENDS += ${MODGO_BUILD_DEPENDS} .endif .if ${MACHINE_ARCH} == "amd64" _GOARCH = amd64 .elif ${MACHINE_ARCH} == "arm" _GOARCH = arm .elif ${MACHINE_ARCH} == "aarch64" _GOARCH = arm64 .elif ${MACHINE_ARCH} == "i386" _GOARCH = 386 .endif MODGO_PACKAGE_PATH = ${PREFIX}/go-pkg MODGO_PACKAGES = go-pkg/pkg/openbsd_${_GOARCH} MODGO_SOURCES = go-pkg/src MODGO_TOOLS = go-pkg/tool/openbsd_${_GOARCH} SUBST_VARS += MODGO_TOOLS MODGO_PACKAGES MODGO_SOURCES MODGO_SUBDIR ?= ${WRKDIST} MODGO_TYPE ?= bin MODGO_WORKSPACE ?= ${WRKDIR}/go MODGO_GOCACHE ?= ${WRKDIR}/go-cache MODGO_GOPATH ?= ${MODGO_WORKSPACE}:${MODGO_PACKAGE_PATH} # We cannot assume that the maching running the built code will have SSE, # even though the machine building the package has SSE. As such, we need # to explicitly disable SSE on i386 builds. MAKE_ENV += GO386=387 MAKE_ENV += GOCACHE="${MODGO_GOCACHE}" MODGO_CMD ?= ${SETENV} ${MAKE_ENV} go MODGO_BUILD_CMD = ${MODGO_CMD} install ${MODGO_FLAGS} MODGO_TEST_CMD = ${MODGO_CMD} test ${MODGO_FLAGS} ${MODGO_TEST_FLAGS} MODGO_BINDIR ?= bin .if ! empty(MODGO_LDFLAGS) MODGO_BUILD_CMD += -ldflags="${MODGO_LDFLAGS}" MODGO_TEST_CMD += -ldflags="${MODGO_LDFLAGS}" .endif .if defined(MODGO_MODNAME) EXTRACT_SUFX ?= .zip PKGNAME ?= ${DISTNAME:S/-v/-/} ALL_TARGET ?= ${MODGO_MODNAME} DISTFILES = ${DISTNAME}${EXTRACT_SUFX}{${MODGO_VERSION}${EXTRACT_SUFX}} MASTER_SITES ?= ${MASTER_SITE_ATHENS}${MODGO_MODNAME}/@v/ . for _modname _modver in ${MODGO_MODULES} SUPDISTFILES += ${MODGO_DIST_SUBDIR}/${_modname}/@v/${_modver}.zip{${_modname}/@v/${_modver}.zip}:${MODGO_MASTER_SITESN} . endfor . for _modname _modver in ${MODGO_MODFILES} SUPDISTFILES += ${MODGO_DIST_SUBDIR}/${_modname}/@v/${_modver}.mod{${_modname}/@v/${_modver}.mod}:${MODGO_MASTER_SITESN} . endfor MAKE_ENV += GOPROXY=file://${DISTDIR}/${MODGO_DIST_SUBDIR} MAKE_ENV += GO111MODULE=on GOPATH="${MODGO_GOPATH}" .else # ports are not allowed to fetch from the network at build time; point # GOPROXY at an unreachable host so that failures are also visible to # developers who don't have PORTS_PRIVSEP and a "deny .. _pbuild" PF rule. MAKE_ENV += GOPROXY=invalid://ports.should.not.fetch.at.buildtime/ MAKE_ENV += GO111MODULE=off GOPATH="${MODGO_GOPATH}" . if defined(GH_ACCOUNT) && defined(GH_PROJECT) ALL_TARGET ?= github.com/${GH_ACCOUNT}/${GH_PROJECT} . endif .endif MODGO_TEST_TARGET ?= cd ${WRKSRC} && ${MODGO_CMD} test ${ALL_TARGET} SEPARATE_BUILD ?= Yes CATEGORIES += lang/go MODGO_BUILD_TARGET = ${MODGO_BUILD_CMD} MODGO_FLAGS += -v -p ${MAKE_JOBS} .if empty(DEBUG) # by default omit symbol table, debug information and DWARF symbol table MODGO_LDFLAGS += -s -w .else MODGO_FLAGS += -x .endif .if empty(MODGO_MODNAME) WRKSRC ?= ${MODGO_WORKSPACE}/src/${ALL_TARGET} 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} .endif INSTALL_STRIP = .if ${MODGO_TYPE:L:Mbin} MODGO_INSTALL_TARGET = ${INSTALL_PROGRAM_DIR} ${PREFIX}/${MODGO_BINDIR} && \ ${INSTALL_PROGRAM} ${MODGO_WORKSPACE}/bin/* \ ${PREFIX}/${MODGO_BINDIR}; .endif # Go source files serve the purpose of libraries, so sources should be included # with library ports. .if ${MODGO_TYPE:L:Mlib} MODGO_INSTALL_TARGET += ${INSTALL_DATA_DIR} ${MODGO_PACKAGE_PATH} && \ cd ${MODGO_WORKSPACE} && \ find src pkg -type d -exec ${INSTALL_DATA_DIR} \ ${MODGO_PACKAGE_PATH}/{} \; \ -o -type f -exec ${INSTALL_DATA} -p \ ${MODGO_WORKSPACE}/{} \ ${MODGO_PACKAGE_PATH}/{} \; # This is required to force rebuilding of go libraries upon changes in # toolchain. RUN_DEPENDS += ${MODGO_RUN_DEPENDS} .endif .if empty(CONFIGURE_STYLE) MODGO_pre-configure += ${MODGO_SETUP_WORKSPACE} . if !target(do-build) do-build: cd ${WRKSRC} && \ ${MODGO_BUILD_TARGET} . endif . if !target(do-install) do-install: ${MODGO_INSTALL_TARGET} . endif . if !target(do-test) do-test: ${MODGO_TEST_TARGET} . endif .endif -- PGP: 0x1F81112D62A9ADCE / 3586 3350 BFEA C101 DB1A 4AF0 1F81 112D 62A9 ADCE