From fb5d41ca65a3f980732c9121fa2a88a78d83db28 Mon Sep 17 00:00:00 2001
From: David Fifield <david@bamsoftware.com>
Date: Sun, 10 Apr 2016 08:32:54 +0000
Subject: [PATCH 1/2] Upgrade Go to 1.6.3.

This commit is a combination of two commits from master:
778fd2d0 Bug 18333: Upgrade go to 1.6.2.
1aa712a5 Bug 19703: Upgrade Go to 1.6.3.
---
 .../linux/gitian-pluggable-transports.yml          | 12 ++++++++++
 .../mac/gitian-pluggable-transports.yml            | 27 ++++++++++++++++-----
 .../windows/gitian-pluggable-transports.yml        | 28 +++++++++++++++++-----
 gitian/fetch-inputs.sh                             |  5 ++--
 gitian/verify-tags.sh                              |  2 +-
 gitian/versions                                    |  9 +++++--
 gitian/versions.alpha                              |  9 +++++--
 gitian/versions.beta                               |  9 +++++--
 gitian/versions.nightly                            |  9 +++++--
 9 files changed, 87 insertions(+), 23 deletions(-)

diff --git a/gitian/descriptors/linux/gitian-pluggable-transports.yml b/gitian/descriptors/linux/gitian-pluggable-transports.yml
index 38ae561..a1cdc48 100644
--- a/gitian/descriptors/linux/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/linux/gitian-pluggable-transports.yml
@@ -46,6 +46,7 @@ files:
 - "zope.interface.zip"
 - "twisted.tar.bz2"
 - "parsley.tar.gz"
+- "go14.tar.gz"
 - "go.tar.gz"
 - "dzip.sh"
 - "gmp-linux32-utils.zip"
@@ -74,6 +75,17 @@ script: |
   # FTE only needs libgmp.so.10 and no libgmpxx anymore.
   cp $INSTDIR/gmp/lib/libgmp.so.10 $INSTDIR/Tor
 
+  # Building go 1.4.x
+  # This is needed to bootstrap the go that we actually use
+  # https://golang.org/doc/install/source#go14
+  tar xvf go14.tar.gz --transform='s,^go\>,go1.4,'
+  cd go1.4/src
+  # Disable cgo to avoid conflicts with newer GCC. cgo is not needed for the bootstrap go.
+  # https://github.com/golang/go/issues/13114#issuecomment-186922245
+  CGO_ENABLED=0 ./make.bash
+  cd ../..
+  export GOROOT_BOOTSTRAP="$PWD/go1.4"
+
   # Building go
   # http://golang.org/doc/install/source#environment
   export GOPATH="$HOME/go"
diff --git a/gitian/descriptors/mac/gitian-pluggable-transports.yml b/gitian/descriptors/mac/gitian-pluggable-transports.yml
index fbf38c2..33b134e 100644
--- a/gitian/descriptors/mac/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/mac/gitian-pluggable-transports.yml
@@ -45,6 +45,7 @@ files:
 - "zope.interface.zip"
 - "twisted.tar.bz2"
 - "parsley.tar.gz"
+- "go14.tar.gz"
 - "go.tar.gz"
 - "apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb"
 - "multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz"
@@ -103,19 +104,33 @@ script: |
   export CXXFLAGS="-m64 -I/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/include/ -I/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/ -I.  -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -F/usr/lib/apple/SDKs/MacOSX10.6.sdk/System/Library/Frameworks -mmacosx-version-min=10.5 -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/i686-apple-darwin10/4.2.1$FTE_EXTRA_CFLAGS"
   export LDFLAGS="-L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -F/usr/lib/apple/SDKs/MacOSX10.6.sdk/System/Library/Frameworks -mmacosx-version-min=10.5"
 
+  # Building go 1.4.x
+  # This is needed to bootstrap the go that we actually use
+  # https://golang.org/doc/install/source#go14
+  tar xvf go14.tar.gz --transform='s,^go\>,go1.4,'
+  cd go1.4/src
+  # Disable cgo to avoid conflicts with newer GCC. cgo is not needed for the bootstrap go.
+  # https://github.com/golang/go/issues/13114#issuecomment-186922245
+  # Disable CC etc. that are set up for cross builds.
+  CGO_ENABLED=0 CC= CFLAGS= LDFLAGS= ./make.bash
+  cd ../..
+  export GOROOT_BOOTSTRAP="$PWD/go1.4"
+
   # Building go
+  # Create a cc-for-target script that closes over CC, CFLAGS, and LDFLAGS.
+  # Go's CC_FOR_TARGET only allows a command name, not a command with arguments.
+  # https://github.com/golang/go/issues/15457
+  CC_FOR_TARGET="$(pwd)/cc-for-target"
+  echo "#!/bin/sh" > "$CC_FOR_TARGET"
+  echo "exec $CC $CFLAGS $LDFLAGS \"\$@\"" >> "$CC_FOR_TARGET"
+  chmod +x "$CC_FOR_TARGET"
   # http://golang.org/doc/install/source#environment
   export GOPATH="$HOME/go"
   export GOOS=darwin
   export GOARCH=386
   tar xvf go.tar.gz
   cd go/src
-  # http://golang.org/cmd/cgo/:
-  # "To enable cgo during cross compiling builds, set the CGO_ENABLED
-  # environment variable to 1 when building the Go tools with make.bash. Also,
-  # set CC_FOR_TARGET to the C cross compiler for the target. CC will be used
-  # for compiling for the host."
-  CGO_ENABLED=1 CC_FOR_TARGET="$CC $CFLAGS $LDFLAGS" CC= CFLAGS= LDFLAGS= ./make.bash
+  CGO_ENABLED=1 CC_FOR_TARGET="$CC_FOR_TARGET" CC= CFLAGS= LDFLAGS= ./make.bash
   cd ../..
   export PATH="$PATH:$PWD/go/bin"
 
diff --git a/gitian/descriptors/windows/gitian-pluggable-transports.yml b/gitian/descriptors/windows/gitian-pluggable-transports.yml
index f073fd1..7e8a349 100644
--- a/gitian/descriptors/windows/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/windows/gitian-pluggable-transports.yml
@@ -47,6 +47,7 @@ files:
 - "wine-wrappers"
 - "python.msi"
 - "py2exe.exe"
+- "go14.tar.gz"
 - "go.tar.gz"
 - "dzip.sh"
 - "pyc-timestamp.sh"
@@ -139,19 +140,34 @@ script: |
   cp -a dist/gcc.exe dist/g++.exe dist/dllwrap.exe $WINEROOT/windows/
   cd ..
 
+  # Building go 1.4.x
+  # This is needed to bootstrap the go that we actually use
+  # https://golang.org/doc/install/source#go14
+  tar xvf go14.tar.gz --transform='s,^go\>,go1.4,'
+  cd go1.4/src
+  # Disable cgo to avoid conflicts with newer GCC. cgo is not needed for the bootstrap go.
+  # https://github.com/golang/go/issues/13114#issuecomment-186922245
+  # Disable CC etc. that are set up for cross builds.
+  CGO_ENABLED=0 CC= CFLAGS= LDFLAGS= ./make.bash
+  cd ../..
+  export GOROOT_BOOTSTRAP="$PWD/go1.4"
+
   # Building go
+  CC=i686-w64-mingw32-gcc
+  # Create a cc-for-target script that closes over CC, CFLAGS, and LDFLAGS.
+  # Go's CC_FOR_TARGET only allows a command name, not a command with arguments.
+  # https://github.com/golang/go/issues/15457
+  CC_FOR_TARGET="$(pwd)/cc-for-target"
+  echo "#!/bin/sh" > "$CC_FOR_TARGET"
+  echo "exec $CC $CFLAGS $LDFLAGS \"\$@\"" >> "$CC_FOR_TARGET"
+  chmod +x "$CC_FOR_TARGET"
   # http://golang.org/doc/install/source#environment
   export GOPATH="$HOME/go"
   export GOOS=windows
   export GOARCH=386
   tar xvf go.tar.gz
   cd go/src
-  # http://golang.org/cmd/cgo/:
-  # "To enable cgo during cross compiling builds, set the CGO_ENABLED
-  # environment variable to 1 when building the Go tools with make.bash. Also,
-  # set CC_FOR_TARGET to the C cross compiler for the target. CC will be used
-  # for compiling for the host."
-  CGO_ENABLED=1 CC_FOR_TARGET="i686-w64-mingw32-gcc" CC= CFLAGS= LDFLAGS= ./make.bash
+  CGO_ENABLED=1 CC_FOR_TARGET="$CC_FOR_TARGET" CC= CFLAGS= LDFLAGS= ./make.bash
   cd ../..
   export PATH="$PATH:$PWD/go/bin"
 
diff --git a/gitian/fetch-inputs.sh b/gitian/fetch-inputs.sh
index b5adfc2..50daec0 100755
--- a/gitian/fetch-inputs.sh
+++ b/gitian/fetch-inputs.sh
@@ -162,7 +162,7 @@ do
   get "${!PACKAGE}" "${MIRROR_URL_ASN}${!PACKAGE}"
 done
 
-for i in ZOPEINTERFACE TWISTED PY2EXE SETUPTOOLS PARSLEY GO STIXMATHFONT NOTOEMOJIFONT NOTOJPFONT NOTOKRFONT NOTOSCFONT NOTOTCFONT NSIS NSIS_DEBIAN PYCRYPTO
+for i in ZOPEINTERFACE TWISTED PY2EXE SETUPTOOLS PARSLEY GO14 GO STIXMATHFONT NOTOEMOJIFONT NOTOJPFONT NOTOKRFONT NOTOSCFONT NOTOTCFONT NSIS NSIS_DEBIAN PYCRYPTO
 do
   URL="${i}_URL"
   PACKAGE="${i}_PACKAGE"
@@ -174,7 +174,7 @@ wget -U "" -N ${NOSCRIPT_URL}
 
 # Verify packages with weak or no signatures via direct sha256 check
 # (OpenSSL is signed with MD5, and OSXSDK + OSXSDK_OLD are not signed at all)
-for i in OSXSDK OSXSDK_OLD TOOLCHAIN4_OLD CCTOOLS NOSCRIPT MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED SETUPTOOLS OPENSSL GMP PARSLEY GO GCC STIXMATHFONT NOTOEMOJIFONT NOTOJPFONT NOTOKRFONT NOTOSCFONT NOTOTCFONT NSIS NSIS_DEBIAN
+for i in OSXSDK OSXSDK_OLD TOOLCHAIN4_OLD CCTOOLS NOSCRIPT MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED SETUPTOOLS OPENSSL GMP PARSLEY GO14 GO GCC STIXMATHFONT NOTOEMOJIFONT NOTOJPFONT NOTOKRFONT NOTOSCFONT NOTOTCFONT NSIS NSIS_DEBIAN
 do
    PACKAGE="${i}_PACKAGE"
    HASH="${i}_HASH"
@@ -243,6 +243,7 @@ ln -sf "$PY2EXE_PACKAGE" py2exe.exe
 ln -sf "$SETUPTOOLS_PACKAGE" setuptools.tar.gz
 ln -sf "$GMP_PACKAGE" gmp.tar.bz2
 ln -sf "$PARSLEY_PACKAGE" parsley.tar.gz
+ln -sf "$GO14_PACKAGE" go14.tar.gz
 ln -sf "$GO_PACKAGE" go.tar.gz
 ln -sf "$NSIS_PACKAGE" nsis.tar.bz2
 ln -sf "$NSIS_DEBIAN_PACKAGE" nsis-debian.tar.xz
diff --git a/gitian/verify-tags.sh b/gitian/verify-tags.sh
index 33b54a4..d95b0e0 100755
--- a/gitian/verify-tags.sh
+++ b/gitian/verify-tags.sh
@@ -144,7 +144,7 @@ done
 
 # Verify packages with weak or no signatures via direct sha256 check
 # (OpenSSL is signed with MD5, and OSXSDK + OSXSDK_OLD are not signed at all)
-for i in OSXSDK OSXSDK_OLD TOOLCHAIN4_OLD CCTOOLS NOSCRIPT MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED SETUPTOOLS OPENSSL GMP PARSLEY GO GCC STIXMATHFONT NOTOEMOJIFONT NOTOJPFONT NOTOKRFONT NOTOSCFONT NOTOTCFONT NSIS NSIS_DEBIAN
+for i in OSXSDK OSXSDK_OLD TOOLCHAIN4_OLD CCTOOLS NOSCRIPT MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED SETUPTOOLS OPENSSL GMP PARSLEY GO14 GO GCC STIXMATHFONT NOTOEMOJIFONT NOTOJPFONT NOTOKRFONT NOTOSCFONT NOTOTCFONT NSIS NSIS_DEBIAN
 do
    PACKAGE="${i}_PACKAGE"
    HASH="${i}_HASH"
diff --git a/gitian/versions b/gitian/versions
index 85b2a7a..dfcd675 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -60,7 +60,9 @@ TWISTED_VER=13.2.0
 PY2EXE_VER=0.6.9
 SETUPTOOLS_VER=1.4
 PARSLEY_VER=1.2
-GO_VER=1.4.3
+# We need a Go 1.4 to bootstrap later versions; see https://golang.org/doc/install/source#go14
+GO14_VER=1.4.3
+GO_VER=1.6.3
 NSIS_VER=2.51
 
 ## File names for the source packages
@@ -83,6 +85,7 @@ TWISTED_PACKAGE=Twisted-${TWISTED_VER}.tar.bz2
 PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe
 SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz
 PARSLEY_PACKAGE=Parsley-${PARSLEY_VER}.tar.gz
+GO14_PACKAGE=go${GO14_VER}.src.tar.gz
 GO_PACKAGE=go${GO_VER}.src.tar.gz
 NSIS_PACKAGE=nsis-${NSIS_VER}-src.tar.bz2
 NSIS_DEBIAN_PACKAGE=nsis_${NSIS_VER}-1.debian.tar.xz
@@ -110,7 +113,8 @@ TWISTED_HASH=095175638c019ac7c0604f4c291724a16ff1acd062e181b01293bf4dcbc62cf3
 PY2EXE_HASH=610a8800de3d973ed5ed4ac505ab42ad058add18a68609ac09e6cf3598ef056c
 SETUPTOOLS_HASH=75d288687066ed124311d6ca5f40ffa92a0e81adcd7fff318c6e84082713cf39
 PARSLEY_HASH=50d30cee70770fd44db7cea421cb2fb75af247c3a1cd54885c06b30a7c85dd23
-GO_HASH=9947fc705b0b841b5938c48b22dc33e9647ec0752bae66e50278df4f23f64959
+GO14_HASH=9947fc705b0b841b5938c48b22dc33e9647ec0752bae66e50278df4f23f64959
+GO_HASH=6326aeed5f86cf18f16d6dc831405614f855e2d416a91fd3fdc334f772345b00
 NSIS_HASH=43d4c9209847e35eb6e2c7cd5a7586e1445374c056c2c7899e40a080e17a1be7
 NSIS_DEBIAN_HASH=1dee6957b4a4b8dfe69bcf28bc7f301a13b96b3fa5a394e36c8926ae781e774a
 GCC_HASH=b7dafdf89cbb0e20333dbf5b5349319ae06e3d1a30bf3515b5488f7e89dca5ad
@@ -140,6 +144,7 @@ TWISTED_URL=https://pypi.python.org/packages/source/T/Twisted/${TWISTED_PACKAGE}
 PY2EXE_URL=http://downloads.sourceforge.net/py2exe/${PY2EXE_VER}/${PY2EXE_PACKAGE}
 SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/${SETUPTOOLS_PACKAGE}
 PARSLEY_URL=https://pypi.python.org/packages/source/P/Parsley/${PARSLEY_PACKAGE}
+GO14_URL=https://golang.org/dl/${GO14_PACKAGE}
 GO_URL=https://golang.org/dl/${GO_PACKAGE}
 NSIS_URL=http://downloads.sourceforge.net/nsis/${NSIS_PACKAGE}
 NSIS_DEBIAN_URL=http://http.debian.net/debian/pool/main/n/nsis/${NSIS_DEBIAN_PACKAGE}
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index 97cf78f..e60e314 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -60,7 +60,9 @@ TWISTED_VER=13.2.0
 PY2EXE_VER=0.6.9
 SETUPTOOLS_VER=1.4
 PARSLEY_VER=1.2
-GO_VER=1.4.2
+# We need a Go 1.4 to bootstrap later versions; see https://golang.org/doc/install/source#go14
+GO14_VER=1.4.3
+GO_VER=1.6.3
 NSIS_VER=2.51
 
 ## File names for the source packages
@@ -83,6 +85,7 @@ TWISTED_PACKAGE=Twisted-${TWISTED_VER}.tar.bz2
 PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe
 SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz
 PARSLEY_PACKAGE=Parsley-${PARSLEY_VER}.tar.gz
+GO14_PACKAGE=go${GO14_VER}.src.tar.gz
 GO_PACKAGE=go${GO_VER}.src.tar.gz
 NSIS_PACKAGE=nsis-${NSIS_VER}-src.tar.bz2
 NSIS_DEBIAN_PACKAGE=nsis_${NSIS_VER}-1.debian.tar.xz
@@ -110,7 +113,8 @@ TWISTED_HASH=095175638c019ac7c0604f4c291724a16ff1acd062e181b01293bf4dcbc62cf3
 PY2EXE_HASH=610a8800de3d973ed5ed4ac505ab42ad058add18a68609ac09e6cf3598ef056c
 SETUPTOOLS_HASH=75d288687066ed124311d6ca5f40ffa92a0e81adcd7fff318c6e84082713cf39
 PARSLEY_HASH=50d30cee70770fd44db7cea421cb2fb75af247c3a1cd54885c06b30a7c85dd23
-GO_HASH=299a6fd8f8adfdce15bc06bde926e7b252ae8e24dd5b16b7d8791ed79e7b5e9b
+GO14_HASH=9947fc705b0b841b5938c48b22dc33e9647ec0752bae66e50278df4f23f64959
+GO_HASH=6326aeed5f86cf18f16d6dc831405614f855e2d416a91fd3fdc334f772345b00
 NSIS_HASH=43d4c9209847e35eb6e2c7cd5a7586e1445374c056c2c7899e40a080e17a1be7
 NSIS_DEBIAN_HASH=1dee6957b4a4b8dfe69bcf28bc7f301a13b96b3fa5a394e36c8926ae781e774a
 GCC_HASH=b7dafdf89cbb0e20333dbf5b5349319ae06e3d1a30bf3515b5488f7e89dca5ad
@@ -140,6 +144,7 @@ TWISTED_URL=https://pypi.python.org/packages/source/T/Twisted/${TWISTED_PACKAGE}
 PY2EXE_URL=http://downloads.sourceforge.net/py2exe/${PY2EXE_VER}/${PY2EXE_PACKAGE}
 SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/${SETUPTOOLS_PACKAGE}
 PARSLEY_URL=https://pypi.python.org/packages/source/P/Parsley/${PARSLEY_PACKAGE}
+GO14_URL=https://golang.org/dl/${GO14_PACKAGE}
 GO_URL=https://golang.org/dl/${GO_PACKAGE}
 NSIS_URL=http://downloads.sourceforge.net/nsis/${NSIS_PACKAGE}
 NSIS_DEBIAN_URL=http://http.debian.net/debian/pool/main/n/nsis/${NSIS_DEBIAN_PACKAGE}
diff --git a/gitian/versions.beta b/gitian/versions.beta
index 8452954..c985e30 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -47,7 +47,9 @@ TWISTED_VER=13.2.0
 PY2EXE_VER=0.6.9
 SETUPTOOLS_VER=1.4
 PARSLEY_VER=1.2
-GO_VER=1.4.2
+# We need a Go 1.4 to bootstrap later versions; see https://golang.org/doc/install/source#go14
+GO14_VER=1.4.3
+GO_VER=1.6.3
 
 ## File names for the source packages
 OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
@@ -68,6 +70,7 @@ TWISTED_PACKAGE=Twisted-${TWISTED_VER}.tar.bz2
 PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe
 SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz
 PARSLEY_PACKAGE=Parsley-${PARSLEY_VER}.tar.gz
+GO14_PACKAGE=go${GO14_VER}.src.tar.gz
 GO_PACKAGE=go${GO_VER}.src.tar.gz
 STIXMATHFONT_PACKAGE=STIXv1.1.1-latex.zip
 NOTOEMOJIFONT_PACKAGE=NotoEmoji-Regular.ttf
@@ -92,7 +95,8 @@ TWISTED_HASH=095175638c019ac7c0604f4c291724a16ff1acd062e181b01293bf4dcbc62cf3
 PY2EXE_HASH=610a8800de3d973ed5ed4ac505ab42ad058add18a68609ac09e6cf3598ef056c
 SETUPTOOLS_HASH=75d288687066ed124311d6ca5f40ffa92a0e81adcd7fff318c6e84082713cf39
 PARSLEY_HASH=50d30cee70770fd44db7cea421cb2fb75af247c3a1cd54885c06b30a7c85dd23
-GO_HASH=299a6fd8f8adfdce15bc06bde926e7b252ae8e24dd5b16b7d8791ed79e7b5e9b
+GO14_HASH=9947fc705b0b841b5938c48b22dc33e9647ec0752bae66e50278df4f23f64959
+GO_HASH=6326aeed5f86cf18f16d6dc831405614f855e2d416a91fd3fdc334f772345b00
 STIXMATHFONT_HASH=e3b0f712e2644438eee2d0dcd2b10b2d54f1b972039de95b2f8e800bae1adbd8
 NOTOEMOJIFONT_HASH=415dc6290378574135b64c808dc640c1df7531973290c4970c51fdeb849cb0c5
 NOTOJPFONT_HASH=3e8146c4ce0945f255cb9dbc12b392380af80bd117e0a60eae555c99c7e618da
@@ -118,6 +122,7 @@ TWISTED_URL=https://pypi.python.org/packages/source/T/Twisted/${TWISTED_PACKAGE}
 PY2EXE_URL=http://downloads.sourceforge.net/py2exe/${PY2EXE_VER}/${PY2EXE_PACKAGE}
 SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/${SETUPTOOLS_PACKAGE}
 PARSLEY_URL=https://pypi.python.org/packages/source/P/Parsley/${PARSLEY_PACKAGE}
+GO14_URL=https://golang.org/dl/${GO14_PACKAGE}
 GO_URL=https://golang.org/dl/${GO_PACKAGE}
 STIXMATHFONT_URL=http://iweb.dl.sourceforge.net/project/stixfonts/Current%20Release/${STIXMATHFONT_PACKAGE}
 NOTOEMOJIFONT_URL=https://github.com/googlei18n/noto-emoji/raw/2f1ffdd6fbbd05d6f382138a3d3adcd89c5ce800/fonts/${NOTOEMOJIFONT_PACKAGE}
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index 22e9742..0c489c9 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -67,7 +67,9 @@ TWISTED_VER=13.2.0
 PY2EXE_VER=0.6.9
 SETUPTOOLS_VER=1.4
 PARSLEY_VER=1.2
-GO_VER=1.4.2
+# We need a Go 1.4 to bootstrap later versions; see https://golang.org/doc/install/source#go14
+GO14_VER=1.4.3
+GO_VER=1.6.3
 NSIS_VER=2.51
 
 ## File names for the source packages
@@ -90,6 +92,7 @@ TWISTED_PACKAGE=Twisted-${TWISTED_VER}.tar.bz2
 PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe
 SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz
 PARSLEY_PACKAGE=Parsley-${PARSLEY_VER}.tar.gz
+GO14_PACKAGE=go${GO14_VER}.src.tar.gz
 GO_PACKAGE=go${GO_VER}.src.tar.gz
 NSIS_PACKAGE=nsis-${NSIS_VER}-src.tar.bz2
 NSIS_DEBIAN_PACKAGE=nsis_${NSIS_VER}-1.debian.tar.xz
@@ -117,7 +120,8 @@ TWISTED_HASH=095175638c019ac7c0604f4c291724a16ff1acd062e181b01293bf4dcbc62cf3
 PY2EXE_HASH=610a8800de3d973ed5ed4ac505ab42ad058add18a68609ac09e6cf3598ef056c
 SETUPTOOLS_HASH=75d288687066ed124311d6ca5f40ffa92a0e81adcd7fff318c6e84082713cf39
 PARSLEY_HASH=50d30cee70770fd44db7cea421cb2fb75af247c3a1cd54885c06b30a7c85dd23
-GO_HASH=299a6fd8f8adfdce15bc06bde926e7b252ae8e24dd5b16b7d8791ed79e7b5e9b
+GO14_HASH=9947fc705b0b841b5938c48b22dc33e9647ec0752bae66e50278df4f23f64959
+GO_HASH=6326aeed5f86cf18f16d6dc831405614f855e2d416a91fd3fdc334f772345b00
 NSIS_HASH=43d4c9209847e35eb6e2c7cd5a7586e1445374c056c2c7899e40a080e17a1be7
 NSIS_DEBIAN_HASH=1dee6957b4a4b8dfe69bcf28bc7f301a13b96b3fa5a394e36c8926ae781e774a
 GCC_HASH=b7dafdf89cbb0e20333dbf5b5349319ae06e3d1a30bf3515b5488f7e89dca5ad
@@ -147,6 +151,7 @@ TWISTED_URL=https://pypi.python.org/packages/source/T/Twisted/${TWISTED_PACKAGE}
 PY2EXE_URL=http://downloads.sourceforge.net/py2exe/${PY2EXE_VER}/${PY2EXE_PACKAGE}
 SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/${SETUPTOOLS_PACKAGE}
 PARSLEY_URL=https://pypi.python.org/packages/source/P/Parsley/${PARSLEY_PACKAGE}
+GO14_URL=https://golang.org/dl/${GO14_PACKAGE}
 GO_URL=https://golang.org/dl/${GO_PACKAGE}
 NSIS_URL=http://downloads.sourceforge.net/nsis/${NSIS_PACKAGE}
 NSIS_DEBIAN_URL=http://http.debian.net/debian/pool/main/n/nsis/${NSIS_DEBIAN_PACKAGE}
-- 
2.9.3

