Thursday, 30 July 2015

Preparing for Go 1.5

Hi everyone,

Go 1.5 will be released soon (target is actually August 1 but that's
not going to be hit). I've been doing some testing to see what will
break when we upload it.

I have a PPA at
https://launchpad.net/~mwhudson/+archive/ubuntu/go1.5-rebuild-tests/+packages
which contains a Go 1.5 snapshot package and all things that
build-depend on golang-go.

As a bit of background, there is a hack in the Ubuntu packaging that
means that packages are magically built with gccgo on arm64, ppc64le
and powerpc ("gccgo platforms"). Go 1.5 actually supports arm64 and
ppc64le but I'm not testing that yet.

There are a few packages that fail to build on gccgo platforms but
build fine with Go 1.5: account-polld, ciborium, golang-goyaml,
golang-log4go. As the situation is not changed by uploading a Go 1.5
snapshot, this doesn't require action.

Some binaries have moved from golang-go.tools to golang-go in this
release (cover, vet). This means that the golang-go 1.5 package needs
to Breaks/Replaces with the older go tools and we should upload a new
go.tools at the same time as the golang-go package. There are two
packages that build depend on go.tools and so failed in my builds
(aptly and unity-scope-snappy); these pass with the updated go.tools
but as they only build depend on go.tools to get access to cover, the
build-dep can be dropped once 1.5 has been uploaded. The newer
go.tools package depends on a newer dh-golang -- I haven't done a full
rebuild test with the newer tools/dh-golang packages yet.

There are a few packages that ftbfs in the archive already:
golang-doozer, golang-github-glacjay-goini, golang-gocheck, and
ubuntu-push. Of these only golang-gocheck has non-trivial rdepends and
the fix for these is to move upstream to golang-check.v1 (I haven't
looked into pushing upstreams into doing this yet). ubuntu-push is
seeded so probably should be fixed ASAP by upstream
(https://bugs.launchpad.net/ubuntu-push/+bug/1478741) but that's not
directly relevant to the 1.5 transition.

There are two packages that have been fixed to work with Go 1.5
upstream but the fixes are not yet packaged in Debian:
golang-golang-x-net-dev and golang-x-text. We should wait for these to
be packaged before uploading Go 1.5. The upstream version of
golang-x-text works with Go 1.5 but not Go 1.4 (reported as
https://github.com/golang/go/issues/11927) so perhaps that should be
uploaded at the same time.

There are four packages that fail with Go 1.5 and have not been fixed
upstream: golang-github-jacobsa-ogletest, golang-protobuf-extensions,
ubuntu-push (over and above the failures with 1.4), and ubuntu-snappy.
I've filed bugs for all of these:

* https://github.com/jacobsa/ogletest/issues/28
* https://github.com/matttproud/golang_protobuf_extensions/issues/9
* https://bugs.launchpad.net/ubuntu-push/+bug/1478742
* https://bugs.launchpad.net/snappy/+bug/1478736

The first two have few rdeps and IMO can be left alone for now. The
latter two are seeded and we should wait for fixes before uploading
1.5.

One package has a failure on armhf that I don't understand:
golang-ginkgo (I think possibly it's just running out of RAM). As this
only has one rdep (leveldb) that builds fine, I'm proposing to leave
this alone.

Comments welcome!

Cheers,
mwh

--
ubuntu-devel mailing list
[email protected]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel