[Bug 1536882] Re: upload golang1.6 package for trusty
Michael Hudson-Doyle
michael.hudson+lp at canonical.com
Wed Mar 23 07:01:44 UTC 2016
One last time, hopefully for sure. This is what I did:
1) Created two ppas:
https://launchpad.net/~mwhudson/+archive/ubuntu/go16-trusty-3
https://launchpad.net/~mwhudson/+archive/ubuntu/go16-trusty-2-dep
2) Had both PPAs devirted and enabled for all trusty architectures.
3) Set go16-trusty-2-dep as a dependency for the go16-trusty-3 PPA
4) Copied with binaries golang-1.6 to trusty in the the go16-trusty-2-dep PPA:
./copy-package --from=ubuntu --from-suite=xenial
--to=~mwhudson/ubuntu/go16-trusty-2-dep -b --to-suite=trusty golang-1.6
5) (Waited for publication, and) uploaded a golang-1.6 package to the
go16-trusty-2 PPA with the following debdiff:
http://people.canonical.com/~mwh/golang-1.6_1.6-0ubuntu1_1.6-0ubuntu1~14.04~stage1.diff
which resulted in the following builds:
https://launchpad.net/~mwhudson/+archive/ubuntu/go16-trusty-3/+sourcepub/6226205
/+listing-archive-extra
6) Removed go16-trusty-2-dep as a dependency for the go16-trusty-3 PPA
7) (Waited for publication, and) uploaded a final golang-1.6 package to the go16-trusty-3 PPA with the following debdiff:
http://people.canonical.com/~mwh/golang-1.6_1.6-0ubuntu1~14.04~stage1_1.6-0ubuntu1~14.04.diff
which resulted in the following builds:
https://launchpad.net/~mwhudson/+archive/ubuntu/go16-trusty-3/+sourcepub/6226283
/+listing-archive-extra
8) Checked the build logs of the latter packages to make sure they built
with the ~stage1 package.
And this final package, is, finally, ready for copying to trusty.
(I have verified that the golang-1.6 debs and the golang debs currently
in trusty do not try to install any of the same paths, so there is no
need for Conflicts or anything like that)
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to golang in Ubuntu.
https://bugs.launchpad.net/bugs/1536882
Title:
upload golang1.6 package for trusty
Status in golang package in Ubuntu:
In Progress
Bug description:
There is a need to provide a version of Go 1.6 in trusty-updates. We
can't upgrade the golang package itself in trusty because that will
cause other packages to ftbfs so the best place seems to be providing
a golang1.6 package that juju and other consumers can build depend
upon.
There is an expectation that new versions of juju will be made
available in trusty-updates. trusty was released with version 1.2 of
Go, which is almost indescribably ancient in Go terms. The Go team
maintains at most two versions of Go, so 1.4 and 1.5 at the time of
writing but this will be 1.5 and 1.6 in a few weeks, which means that
trusty will soon be 3 versions behind a supported version.
In particular, authors of third-party packages that juju depends upon
are mostly no longer supporting go 1.2. Specific examples of packages
this affects:
* lxd client code requires Go 1.3+ (currently not built on trusty)
the new Azure provider requires Go 1.3+ (needed for centos and windows
workloads in azure)
* vmware provider requires Go 1.3+ (currently vendored and hacked to work
with 1.2)
* the systemd go bindings require Go 1.3+ (currently vendored and hacked
to work with 1.2)
In addition, Go 1.6 is available for all supported architectures in
trusty, which means the Juju developers and release managers do not
have to worry about bugs and different behaviours in gccgo (such as
the rather alarming https://bugs.launchpad.net/bugs/1517611 ) as well
as the gc compiler.
[Test Case]
None as such. Just that the golang1.6-go package is installable (and
properly conflicts with golang-go).
[Regression Potential]
This is to be a new package, so none.
[Building the packages]
A wrinkle is that Go 1.5+ require Go 1.4 to bootstrap, which is not
available in trusty. Also there is no version of the 1.4 gc compiler
for arm64 or ppc64le, which means that the only option is to build
with gccgo 5. While it presumably would be possible to create
temporary gccgo 5 packages for trusty that could be used to build the
package, this is an almighty lot of work compared to building the
package once in xenial, binary copying this to trusty and then
rebuilding it with the copied package there.
I have built packages for Go 1.5 here
http://people.canonical.com/~mwh/go15trusty/ -- the plan would be to
upload 1.5.3-0ubuntu1~bootstrap to xenial in a devirted all arch PPA,
binary copy the result to trusty, upload 1.5.3-0ubuntu1 to trusty in
the ppa and then binary copy this to the archive.
I have done these steps in a ppa:
https://launchpad.net/~mwhudson/+archive/ubuntu/go15-trusty/+packages
but unfortunately made some stupid mistakes which means the version
numbers are not quite what I'd want.
There is some more thinking about this on
https://wiki.ubuntu.com/MichaelHudsonDoyle/Go15InTrusty
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/golang/+bug/1536882/+subscriptions
More information about the foundations-bugs
mailing list