Skip to content

Commit 24869eb

Browse files
committed
env/netbsd-*: update builder VMs to latest NetBSD-9
The packages are taken from the 2022Q2 branch. These are built for the 9.0 release, as is usual upstream, but all 9.x releases are binary compatible. There are a few other refactorings in this CL to make future maintenance simpler. Update golang/go#54773 Change-Id: I38a8eab1aabd9985771ac83da2e435e490b7e4b4 Reviewed-on: https://go-review.googlesource.com/c/build/+/428415 Reviewed-by: Dmitri Shuralyov <[email protected]> Run-TryBot: Benny Siegert <[email protected]> Reviewed-by: Carlos Amedee <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Bryan Mills <[email protected]>
1 parent 8006383 commit 24869eb

9 files changed

+58
-32
lines changed

env/netbsd-386/Makefile

+12-5
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,26 @@
22
# Use of this source code is governed by a BSD-style
33
# license that can be found in the LICENSE file.
44

5+
RELEASE=9.3
6+
ARCH=i386
7+
8+
VM_IMAGE_FILE=vm-image-netbsd-${ARCH}-${RELEASE}.tar.gz
9+
VM_IMAGE_NAME=netbsd-${ARCH}-$(subst .,-,$(RELEASE))
10+
11+
512
upload-staging:
613
go install golang.org/x/build/cmd/upload
7-
upload --verbose --file=netbsd-i386-9.0_2019Q4.tar.gz --public dev-go-builder-data/vm-image-netbsd-i386-9.0_2019Q4.tar.gz
14+
upload --verbose --file=${VM_IMAGE_FILE} --public dev-go-builder-data/${VM_IMAGE_FILE}
815

916
upload-prod:
1017
go install golang.org/x/build/cmd/upload
11-
upload --verbose --file=netbsd-i386-9.0_2019Q4.tar.gz --public go-builder-data/vm-image-netbsd-i386-9.0_2019Q4.tar.gz
18+
upload --verbose --file=${VM_IMAGE_FILE} --public go-builder-data/${VM_IMAGE_FILE}
1219

1320
create-image-staging:
14-
gcloud compute --project go-dashboard-dev images create netbsd-i386-9-0-2019q4 --source-uri gs://dev-go-builder-data/vm-image-netbsd-i386-9.0_2019Q4.tar.gz
21+
gcloud compute --project go-dashboard-dev images create ${VM_IMAGE_NAME} --source-uri gs://dev-go-builder-data/${VM_IMAGE_FILE}
1522

1623
create-image-prod:
17-
gcloud compute --project symbolic-datum-552 images create netbsd-i386-9-0-2019q4 --source-uri gs://go-builder-data/vm-image-netbsd-i386-9.0_2019Q4.tar.gz
24+
gcloud compute --project symbolic-datum-552 images create ${VM_IMAGE_NAME} --source-uri gs://go-builder-data/${VM_IMAGE_FILE}
1825

1926
clean:
20-
rm -rf netbsd-*.tar.gz work-NetBSD-* anita-*.tar.gz anita-*/
27+
rm -rf netbsd-*.tar.gz vm-image-netbsd-*.tar.gz work-NetBSD-* anita-*.tar.gz anita-*/

env/netbsd-386/anita-2.10.tar.gz.sha1

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../netbsd-amd64/anita-2.10.tar.gz.sha1

env/netbsd-386/anita-2.3.tar.gz.sha1

-1
This file was deleted.

env/netbsd-386/make.bash

+12-7
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,31 @@
55

66
# This script uses Anita (an automated NetBSD installer) for setting up
77
# the VM. It needs the following things on the build host:
8+
# - curl
89
# - qemu
910
# - cdrtools
1011
# - GNU tar (not BSD tar)
11-
# - Python 2.7
12+
# - Python 3
1213
# - python-pexpect
1314

1415
set -e -x
1516

16-
ANITA_VERSION=2.3
17+
ANITA_VERSION=2.10
1718
ARCH=i386
19+
RELEASE=9.3
1820
# The release that the packages have been built for.
19-
RELEASE=9.0_2019Q4
21+
PKG_RELEASE=9.0_2022Q2
2022

2123
# Must use GNU tar. On NetBSD, tar is BSD tar and gtar is GNU.
2224
TAR=tar
2325
if which gtar > /dev/null; then
2426
TAR=gtar
2527
fi
2628

29+
LATEST_BUILD=`curl -Ls -w '%{url_effective}' -o /dev/null https://nycdn.netbsd.org/pub/NetBSD-daily/netbsd-9/latest/ | xargs basename`
30+
2731
WORKDIR=work-NetBSD-${ARCH}
32+
VM_IMAGE=vm-image-netbsd-${ARCH}-${LATEST_BUILD}.tar.gz
2833

2934
# Remove WORKDIR unless -k (keep) is given.
3035
if [ "$1" != "-k" ]; then
@@ -39,11 +44,11 @@ fi
3944

4045
tar xfz anita-${ANITA_VERSION}.tar.gz
4146
cd anita-${ANITA_VERSION}
42-
python setup.py build
47+
python3 setup.py build
4348
cd ..
4449

45-
env PYTHONPATH=${PWD}/anita-${ANITA_VERSION} python ../netbsd-amd64/mkvm.py ${ARCH} ${RELEASE}
50+
env PYTHONPATH=${PWD}/anita-${ANITA_VERSION} python3 ../netbsd-amd64/mkvm.py ${ARCH} ${RELEASE} ${PKG_RELEASE}
4651

4752
echo "Archiving wd0.img (this may take a while)"
48-
${TAR} -Szcf netbsd-${ARCH}-${RELEASE}.tar.gz --transform s,${WORKDIR}/wd0.img,disk.raw, ${WORKDIR}/wd0.img
49-
echo "Done. GCE image is netbsd-${ARCH}-${RELEASE}.tar.gz."
53+
${TAR} -Szcf ${VM_IMAGE} --transform s,${WORKDIR}/wd0.img,disk.raw, ${WORKDIR}/wd0.img
54+
echo "Done. GCE image is ${VM_IMAGE}."

env/netbsd-amd64/Makefile

+12-5
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,26 @@
22
# Use of this source code is governed by a BSD-style
33
# license that can be found in the LICENSE file.
44

5+
RELEASE=9.3
6+
ARCH=amd64
7+
8+
VM_IMAGE_FILE=vm-image-netbsd-${ARCH}-${RELEASE}.tar.gz
9+
VM_IMAGE_NAME=netbsd-${ARCH}-$(subst .,-,$(RELEASE))
10+
11+
512
upload-staging:
613
go install golang.org/x/build/cmd/upload
7-
upload --verbose --file=netbsd-amd64-9.0_2019Q4.tar.gz --public dev-go-builder-data/vm-image-netbsd-amd64-9.0_2019Q4.tar.gz
14+
upload --verbose --file=${VM_IMAGE_FILE} --public dev-go-builder-data/${VM_IMAGE_FILE}
815

916
upload-prod:
1017
go install golang.org/x/build/cmd/upload
11-
upload --verbose --file=netbsd-amd64-9.0_2019Q4.tar.gz --public go-builder-data/vm-image-netbsd-amd64-9.0_2019Q4.tar.gz
18+
upload --verbose --file=${VM_IMAGE_FILE} --public go-builder-data/${VM_IMAGE_FILE}
1219

1320
create-image-staging:
14-
gcloud compute --project go-dashboard-dev images create netbsd-amd64-9-0-2019q4 --source-uri gs://dev-go-builder-data/vm-image-netbsd-amd64-9.0_2019Q4.tar.gz
21+
gcloud compute --project go-dashboard-dev images create ${VM_IMAGE_NAME} --source-uri gs://dev-go-builder-data/${VM_IMAGE_FILE}
1522

1623
create-image-prod:
17-
gcloud compute --project symbolic-datum-552 images create netbsd-amd64-9-0-2019q4 --source-uri gs://go-builder-data/vm-image-netbsd-amd64-9.0_2019Q4.tar.gz
24+
gcloud compute --project symbolic-datum-552 images create ${VM_IMAGE_NAME} --source-uri gs://go-builder-data/${VM_IMAGE_FILE}
1825

1926
clean:
20-
rm -rf netbsd-*.tar.gz work-NetBSD-* anita-*.tar.gz anita-*/
27+
rm -rf netbsd-*.tar.gz vm-image-netbsd-*.tar.gz work-NetBSD-* anita-*.tar.gz anita-*/
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
042deb4c820091bc5a55560ec65ec50c997b2bd3 anita-2.10.tar.gz

env/netbsd-amd64/anita-2.3.tar.gz.sha1

-1
This file was deleted.

env/netbsd-amd64/make.bash

+13-7
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,31 @@
55

66
# This script uses Anita (an automated NetBSD installer) for setting up
77
# the VM. It needs the following things on the build host:
8+
# - curl
89
# - qemu
910
# - cdrtools
1011
# - GNU tar (not BSD tar)
11-
# - Python 2.7
12+
# - Python 3
1213
# - python-pexpect
1314

1415
set -e -x
1516

16-
ANITA_VERSION=2.3
17+
ANITA_VERSION=2.10
1718
ARCH=amd64
19+
RELEASE=9.3
1820
# The release that the packages have been built for.
19-
RELEASE=9.0_2019Q4
21+
PKG_RELEASE=9.0_2022Q2
2022

2123
# Must use GNU tar. On NetBSD, tar is BSD tar and gtar is GNU.
2224
TAR=tar
2325
if which gtar > /dev/null; then
2426
TAR=gtar
2527
fi
2628

29+
LATEST_BUILD=`curl -Ls -w '%{url_effective}' -o /dev/null https://nycdn.netbsd.org/pub/NetBSD-daily/netbsd-9/latest/ | xargs basename`
30+
2731
WORKDIR=work-NetBSD-${ARCH}
32+
VM_IMAGE=vm-image-netbsd-${ARCH}-${LATEST_BUILD}.tar.gz
2833

2934
# Remove WORKDIR unless -k (keep) is given.
3035
if [ "$1" != "-k" ]; then
@@ -39,11 +44,12 @@ fi
3944

4045
tar xfz anita-${ANITA_VERSION}.tar.gz
4146
cd anita-${ANITA_VERSION}
42-
python setup.py build
47+
python3 setup.py build
4348
cd ..
4449

45-
env PYTHONPATH=${PWD}/anita-${ANITA_VERSION} python mkvm.py ${ARCH} ${RELEASE}
50+
env PYTHONPATH=${PWD}/anita-${ANITA_VERSION} python3 mkvm.py ${ARCH} ${RELEASE} ${PKG_RELEASE}
51+
4652

4753
echo "Archiving wd0.img (this may take a while)"
48-
${TAR} -Szcf netbsd-${ARCH}-${RELEASE}.tar.gz --transform s,${WORKDIR}/wd0.img,disk.raw, ${WORKDIR}/wd0.img
49-
echo "Done. GCE image is netbsd-${ARCH}-${RELEASE}.tar.gz."
54+
${TAR} -Szcf ${VM_IMAGE} --transform s,${WORKDIR}/wd0.img,disk.raw, ${WORKDIR}/wd0.img
55+
echo "Done. GCE image is ${VM_IMAGE}."

env/netbsd-amd64/mkvm.py

+7-6
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
arch = sys.argv[1]
1010
release = sys.argv[2]
11+
pkg_release = sys.argv[3]
1112

1213
commands = [
1314
"""cat >> /etc/rc.local <<EOF
@@ -35,13 +36,13 @@
3536
mtu 1460
3637
EOF""",
3738
"dhcpcd",
38-
"env PKG_PATH=http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/%s/%s/All/ pkg_add bash curl" % (arch, release),
39-
"env PKG_PATH=http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/%s/%s/All/ pkg_add git-base" % (arch, release),
40-
"env PKG_PATH=http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/%s/%s/All/ pkg_add mozilla-rootcerts mozilla-rootcerts-openssl go14" % (arch, release),
39+
"env PKG_PATH=http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/%s/%s/All/ pkg_add bash curl" % (arch, pkg_release),
40+
"env PKG_PATH=http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/%s/%s/All/ pkg_add git-base" % (arch, pkg_release),
41+
"env PKG_PATH=http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/%s/%s/All/ pkg_add mozilla-rootcerts mozilla-rootcerts-openssl go14" % (arch, pkg_release),
4142
# Interactive debugging tools for users using gomote ssh:
42-
"env PKG_PATH=http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/%s/%s/All/ pkg_add emacs25-nox11 vim screen" % (arch, release),
43+
"env PKG_PATH=http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/%s/%s/All/ pkg_add emacs25-nox11 vim screen" % (arch, pkg_release),
4344
# For https://golang.org/issue/24354
44-
"env PKG_PATH=http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/%s/%s/All/ pkg_add clang cmake" % (arch, release),
45+
"env PKG_PATH=http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/%s/%s/All/ pkg_add clang cmake" % (arch, pkg_release),
4546

4647
# Remove the /tmp entry, because it's mounted as tmpfs -s=ram%25 by default, which isn't enough disk space.
4748
"""ed /etc/fstab << EOF
@@ -57,7 +58,7 @@
5758
]
5859

5960
a = anita.Anita(
60-
anita.URL('https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.0/%s/' % arch),
61+
anita.URL('https://nycdn.netbsd.org/pub/NetBSD-daily/NetBSD-9/latest/%s/' % arch),
6162
workdir="work-NetBSD-%s" % arch,
6263
disk_size="16G",
6364
memory_size="2G",

0 commit comments

Comments
 (0)