[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