Description
A decision seems to have been made to no longer provide version controlled 1.4.x source code for doing a clean Go bootstrap on macOS. Is this true? You need a special tarball? How should the the current state of affairs for source code bootstrapping be characterized?
I think the comment that kinda shook me was:
@ianlancetaylor
I suppose I am mildly in favor of doing a 1.4.4 release for better Darwin support going forward.
Currently to get close to a clean bootstrap you have to download a special tarball. A doc change was made to fix the bootstrap issue. But on my system that special version of 1.4.3 builds but doesn't pass tests. It will build 10.2 however.
What really gets me in the craw is the atavistic reversion to a tarball instead of using git and version control.
Yes, I know I could have used my existing Go 10.1 to compile 10.2. Is that what everyone else does now?
Perhaps the pain level of maintaining the 1.4 bootstrap has been reached? Maybe it is time to retire the 1.4 bootstrap and just use archived binaries of previous versions of Go? I think there is some risk and complexity with that approach too, but it's a valid approach, and I could live with it. Whatever the decision is, it should be an explicit decision, not something the team slumps into because no one wants to maintain the bootstrap anymore.
tl;dr version below.
I recently got a new MacBook Pro. Previously I was running macOS 10.10 on my beloved MBP 17" but the new laptop came with High Sierra, macOS 10.13.5 and the Go team had just issued 10.2. Time to update. I am a build from source kinda guy so I did the git pull
and all.bash
.
Building Go cmd/dist using /Volumes/std/usr/leb/go1.4.
failed MSpanList_Insert 0x783000 0xffd30d60dd0 0x0
fatal error: MSpanList_Insert
Check to see if there is a newer bootstrap version. There is a 1.4.3. Get that. Build it. Same thing.
Look around, it's a High Sierra issue and Go issue 16352 seems to have the answers.
So now I need to download a tarball to bootstrap? That's what the doc says. Oh, they fixed it with a tarball and a doc change.
To build a bootstrap toolchain from source, use either the git branch release-branch.go1.4 or
go1.4-bootstrap-20171003.tar.gz, which contains the Go 1.4 source code plus accumulated fixes to keep
the tools running on newer operating systems.
Download the tarball. Have some kind of issue but I update Xcode and all is OK. At least it builds this time but now it fails with a timezone issue.
ok text/template/parse 0.015s
--- FAIL: TestParseInLocation-11 (0.00s)
format_test.go:202: ParseInLocation(Feb 01 2013 AST, Baghdad) = 2013-02-01 00:00:00 +0000 AST, want 2013-02-01 00:00:00 +0300 +03
Check that error out. It's a known issue because the timezone data changed and the test isn't fixed in the tarball.
I replace the `TestParseInLocation in the tarball with the one from 10.2 and it works.
Wow this was painful and when building 10.2 I still get an error on my machine.
--- FAIL: TestRespectSetgidDir (0.00s)
build_test.go:225:
moveOrCopyFile("/var/folders/95/zwjzrdwc8xj7yg001s6slck80000gn/T/SetGroupID592840517/setgid",
"/var/folders/95/zwjzrdwc8xj7yg001s6slck80000gn/T/pkgfile074436576"): want "cp
/var/folders/95/zwjzrdwc8xj7yg001s6slck80000gn/T/pkgfile074436576
/var/folders/95/zwjzrdwc8xj7yg001s6slck80000gn/T/SetGroupID592840517/setgid", got "mv
/var/folders/95/zwjzrdwc8xj7yg001s6slck80000gn/T/pkgfile074436576
/var/folders/95/zwjzrdwc8xj7yg001s6slck80000gn/T/SetGroupID592840517/setgid"
FAIL
FAIL cmd/go/internal/work 0.025s
which is also supposedly fixed but has been failing on my previous laptop even with 10.10. I will try to figure out what is going on with that. Maybe something to do with being a member of multiple groups? IDK. That's a different issue and I get the feeling it may be specific to my setup.