svn commit: r527627 - head/lang/go

Dmitri Goutnik dmgk at FreeBSD.org
Mon Mar 2 12:34:25 UTC 2020


Author: dmgk
Date: Mon Mar  2 12:34:25 2020
New Revision: 527627
URL: https://svnweb.freebsd.org/changeset/ports/527627

Log:
  lang/go: Switch to the new bootstrap, add aarch64 support
  
  PR:		244494
  Reviewed by:	tobik, mikael
  Approved by:	jlaffaye (maintainer timeout, >1 month)
  Exp-run by:	antoine
  Differential Revision:	https://reviews.freebsd.org/D23151

Deleted:
  head/lang/go/pkg-plist
Modified:
  head/lang/go/Makefile
  head/lang/go/distinfo

Modified: head/lang/go/Makefile
==============================================================================
--- head/lang/go/Makefile	Mon Mar  2 12:19:53 2020	(r527626)
+++ head/lang/go/Makefile	Mon Mar  2 12:34:25 2020	(r527627)
@@ -3,90 +3,126 @@
 
 PORTNAME=	go
 PORTVERSION=	1.14
+PORTREVISION=	1
 PORTEPOCH=	1
 CATEGORIES=	lang
-MASTER_SITES=	https://golang.org/dl/
-DISTNAME=	go${PORTVERSION}.src
+MASTER_SITES=	https://golang.org/dl/ \
+		https://github.com/dmgk/go-bootstrap/releases/download/${BOOTSTRAP_TAG}/:bootstrap \
+		LOCAL/dmgk:bootstrap
+DISTFILES=	go${PORTVERSION}.src.tar.gz \
+		go-${OPSYS:tl}-${GOARCH_${ARCH}}${GOARM_${ARCH}}-${BOOTSTRAP_TAG}.tar.xz:bootstrap
 
 MAINTAINER=	jlaffaye at FreeBSD.org
 COMMENT=	Go programming language
 
 LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
 
-BUILD_DEPENDS=	go14>=1.4:lang/go14
+.ifdef QEMU_EMULATING
+IGNORE=		fails to build with qemu-user-static
+.endif
 
+ONLY_FOR_ARCHS=	aarch64 amd64 armv6 armv7 i386
+
+RUN_DEPENDS=	${RUN_DEPENDS_${ARCH}}
+# ld.bfd from devel/binutils is needed for working cgo on aarch64
+RUN_DEPENDS_aarch64=	binutils>0:devel/binutils
+
+TEST_DEPENDS=	${TEST_DEPENDS_${ARCH}}
+TEST_DEPENDS_aarch64=	binutils>0:devel/binutils
+
 USES=		shebangfix
-SHEBANG_LANG=	sh perl
+
 SHEBANG_FILES=	misc/wasm/go_js_wasm_exec \
 		src/net/http/cgi/testdata/test.cgi
 SHEBANG_GLOB=	*.bash *.pl *.sh
-
 sh_OLD_CMD=	/bin/bash "/usr/bin/env bash"
 sh_CMD=		${SH}
 
-WRKSRC=		${WRKDIR}/go
-ONLY_FOR_ARCHS=	i386 amd64 armv6 armv7
-
 CONFLICTS_INSTALL=	go-devel
 
+# Upstream archive contains files with UTF-8 names
+EXTRACT_CMD=	${SETENV} LC_ALL=en_US.UTF-8 ${TAR}
+
+WRKSRC=		${WRKDIR}/go
+
 OPTIONS_DEFINE_i386=	GO387
+
 GO387_DESC=	Do not generate code with SSE2 (for old x86 CPU)
 
-.include <bsd.port.pre.mk>
+GO387_VARS=	GO386=387
 
-.if ${ARCH} == i386
-GOARCH=386
-.elif ${ARCH} == "amd64"
-GOARCH=amd64
-.elif ${ARCH} == armv6 || ${ARCH} == armv7
-GOARCH=arm
-GOARM=${ARCH:C/armv//}
-.else
-IGNORE=		unknown arch ${ARCH}
-.endif
+BINARIES=	go gofmt
+BOOTSTRAP_TAG=	go1.14beta1
 
-.ifdef QEMU_EMULATING
-IGNORE=		fails to build with qemu-user-static
-.endif
+GOARCH_aarch64=	arm64
+GOARCH_amd64=	amd64
+GOARCH_armv6=	arm
+GOARCH_armv7=	arm
+GOARCH_i386=	386
 
-.if ${PORT_OPTIONS:MGO387}
-GO386=387
-.endif
+GOARM_armv6=	6
+GOARM_armv7=	7
 
-PLIST_SUB+=	opsys_ARCH=${OPSYS:tl}_${GOARCH}
+.include <bsd.port.pre.mk>
 
+.if ${ARCH} == aarch64 && ${OSVERSION} < 1200000
+IGNORE=	aarch64 support requires FreeBSD 12.0 or newer
+.endif
+
 post-patch:
-	@cd ${WRKSRC} && ${FIND} . -name '*.orig' -delete
 	@${REINPLACE_CMD} -e 's|^if ulimit -T|false \&\& &|' ${WRKSRC}/src/run.bash
 
+pre-build:
+	# Check that the running kernel has COMPAT_FREEBSD11 required by lang/go{,-devel} post-ino64
+	@${SETENV} CC="${CC}" OPSYS="${OPSYS}" OSVERSION="${OSVERSION}" WRKDIR="${WRKDIR}" \
+		${SH} ${SCRIPTSDIR}/rust-compat11-canary.sh
+
 do-build:
-	cd ${WRKSRC}/src && \
-		GOROOT=${WRKSRC} GOROOT_FINAL=${PREFIX}/go \
-		GOROOT_BOOTSTRAP=${LOCALBASE}/go14 \
-		GOBIN= GOARCH=${GOARCH} GOOS=${OPSYS:tl} \
-		GO386=${GO386} GOARM=${GOARM} CGO_ENABLED=1 \
+	cd ${WRKSRC}/src ; ${SETENV} \
+		XDG_CACHE_HOME=${WRKDIR} \
+		GOROOT_BOOTSTRAP=${WRKDIR}/go-${OPSYS:tl}-${GOARCH_${ARCH}}${GOARM_${ARCH}}-bootstrap \
+		GOROOT=${WRKSRC} \
+		GOROOT_FINAL=${PREFIX}/go \
+		GOBIN= \
+		GOOS=${OPSYS:tl} \
+		GOARCH=${GOARCH_${ARCH}} \
+		GO386=${GO386} \
+		GOARM=${GOARM_${ARCH}} \
 		${SH} make.bash -v
-	${RM} -r ${WRKSRC}/pkg/obj \
-	    ${WRKSRC}/pkg/bootstrap \
-	    ${WRKSRC}/pkg/${OPSYS:tl}_${GOARCH}/cmd
 
 do-install:
-	@${CP} -a ${WRKSRC} ${STAGEDIR}${PREFIX}
-.for f in go gofmt
-	@${LN} -sf ../go/bin/${f} ${STAGEDIR}${PREFIX}/bin/${f}
+	@cd ${WRKSRC} ; \
+		${RM} -r .gitattributes .gitignore .github favicon.ico robots.txt \
+		pkg/obj pkg/bootstrap pkg/${OPSYS:tl}_${GOARCH_${ARCH}}/cmd
+	@${MKDIR} ${STAGEDIR}${PREFIX}/go
+	@${CP} -a ${WRKSRC}/* ${STAGEDIR}${PREFIX}/go
+.for file in ${BINARIES}
+	@${LN} -sf ../go/bin/${file} ${STAGEDIR}${PREFIX}/bin/${file}
+	@${ECHO_CMD} bin/${file} >> ${TMPPLIST}
 .endfor
+	@cd ${STAGEDIR}${PREFIX} && ${FIND} go -type f >> ${TMPPLIST}
 
 do-test:
-	cd ${WRKSRC}/src && GOROOT=${WRKSRC} PATH=${WRKSRC}/bin:${PATH} ${SH} run.bash -no-rebuild -banner ""
+	cd ${WRKSRC}/src && ${SETENV} \
+		GOROOT=${WRKSRC} \
+		PATH=${WRKSRC}/bin:${PATH} \
+		GOOS=${OPSYS:tl} \
+		GOARCH=${GOARCH_${ARCH}} \
+		GO386=${GO386} \
+		GOARM=${GOARM_${ARCH}} \
+		${SH} run.bash -no-rebuild
 
-pkg-plist: stage
-	${RM} ${WRKDIR}/pkg-plist
-.for command in go gofmt
-	${ECHO_CMD} bin/${command} >> ${WRKDIR}/pkg-plist
+.if !defined(_GO_MAKESUM_GUARD)
+makesum:
+	${MAKE} -D_GO_MAKESUM_GUARD makesum ARCH=${ONLY_FOR_ARCHS:O:[1]} DISTINFO_FILE=${DISTINFO_FILE}.tmp
+.for arch in ${ONLY_FOR_ARCHS:O:[2..-1]}
+	${MAKE} -D_GO_MAKESUM_GUARD makesum ARCH=${arch} DISTINFO_FILE=${DISTINFO_FILE}.${arch}
+	${SED} 1d ${DISTINFO_FILE}.${arch} >> ${DISTINFO_FILE}.tmp
+	${RM} ${DISTINFO_FILE}.${arch}
 .endfor
-	cd ${WRKDIR} && ${FIND} go -type f | \
-		${SED} -e "s/\/${OPSYS:tl}_${GOARCH}\//\/%%opsys_ARCH%%\//g" | \
-		${SORT} >> ${WRKDIR}/pkg-plist
-	${CP} ${WRKDIR}/pkg-plist ${.CURDIR}/pkg-plist
+	${AWK} '!seen[$$0]++' ${DISTINFO_FILE}.tmp > ${DISTINFO_FILE}
+	${RM} ${DISTINFO_FILE}.tmp
+.endif
 
 .include <bsd.port.post.mk>

Modified: head/lang/go/distinfo
==============================================================================
--- head/lang/go/distinfo	Mon Mar  2 12:19:53 2020	(r527626)
+++ head/lang/go/distinfo	Mon Mar  2 12:34:25 2020	(r527627)
@@ -1,3 +1,13 @@
-TIMESTAMP = 1582668988
+TIMESTAMP = 1582719020
 SHA256 (go1.14.src.tar.gz) = 6d643e46ad565058c7a39dac01144172ef9bd476521f42148be59249e4b74389
 SIZE (go1.14.src.tar.gz) = 22377333
+SHA256 (go-freebsd-arm64-go1.14beta1.tar.xz) = 89104218da76ca4b0f2ede6523ff579db0a2a15695c77041896cb213d0f8dfa2
+SIZE (go-freebsd-arm64-go1.14beta1.tar.xz) = 33577440
+SHA256 (go-freebsd-amd64-go1.14beta1.tar.xz) = 41412e4f87110fa9dd1702899e7f292267f8c62e16641a21fc780308c772a24a
+SIZE (go-freebsd-amd64-go1.14beta1.tar.xz) = 35668144
+SHA256 (go-freebsd-arm6-go1.14beta1.tar.xz) = 4076a0c5b337564b10f75c33e3a4f9369d66a44edc94fec038a4ae4dd2aac4e0
+SIZE (go-freebsd-arm6-go1.14beta1.tar.xz) = 33928624
+SHA256 (go-freebsd-arm7-go1.14beta1.tar.xz) = bd35b8db5eb756cbaede8b3b1219ad55d5e9fa3b6917856c2824b8dc0805f0f3
+SIZE (go-freebsd-arm7-go1.14beta1.tar.xz) = 33800908
+SHA256 (go-freebsd-386-go1.14beta1.tar.xz) = ff706ec4ca7a730e62ce58be31993cc129b2b0ab3e7c7a2e109da60e99fb2f61
+SIZE (go-freebsd-386-go1.14beta1.tar.xz) = 35961496


More information about the svn-ports-head mailing list