[Docker-maint] Bug#818415: [pkg-golang-devel] Bug#818415: Bug#818415: golang: move to per-Go-major version coinstallable packages

Michael Hudson-Doyle michael.hudson at canonical.com
Sun May 1 10:59:16 UTC 2016


Tianon and I made a few changes so I redid my tests. They still pass.

I also attempted to test the golabg-any stuff by building a
golang-defaults package that did not consider amd64 to be a golang
architecture. This was less successful (golang-*-dev packages should
not Depend: on golang-go!, also I found a dh-golang bug I introduced)
but the golang-any package itself works fine AFAICT.

Cheers,
mwh

On 28 April 2016 at 12:36, Michael Hudson-Doyle
<michael.hudson at canonical.com> wrote:
> On 19 March 2016 at 10:52, Tianon Gravi <tianon at debian.org> wrote:
>> On 16 March 2016 at 15:13, Michael Hudson-Doyle
>> <michael.hudson at canonical.com> wrote:
>>> To make maintenance of Go easier in the future, it would be good to allow major
>>> versions of Go to be co-installed (like gcc-4.9, gcc-5, etc). The plan goes
>>> something like this:
>>>
>>>  1) convert existing golang source package to golang-1.6 source package,
>>>     removing version independent things like the man pages and management of
>>>     /usr/bin/go, changed to install to version dependent paths (/usr/lib/go-1.6
>>>     etc)
>>>
>>>  2) create a golang-defaults package that contains this version independent
>>>     stuff and links /usr/bin/go to the appropriate version
>>>
>>>  3) update gccgo-5 and gccgo-6 packages to stop providing an alternative for
>>>     'go'.
>>>
>>> The motivation for this is to allow us to upload pre-release versions of Go
>>> without making them the default, to be more compatible with an externl
>>> (possibly Google-hosted) archive that provides newer versions of Go and, if
>>> necessary, to allow us to make newer versions of Go available to stable
>>> releases without having to conflict with the version of Go in that release.
>>>
>>> I have prepared packages for Ubuntu that implement this which can be found at
>>>
>>> https://git.launchpad.net/~mwhudson/ubuntu/+source/golang/+git/xenial/log/?h=ubuntu-xenial-coinstallability-2
>>>
>>> and
>>>
>>> https://git.launchpad.net/~mwhudson/+git/golang-defaults
>>>
>>> They're mostly appropriate for Debian, although not entirely. The changes
>>> required are simple.
>>
>> You've done a lot of great work here, Michael! :D
>>
>> We've discussed this a bit here and there, but I'd like to formally
>> say I've been swayed to be +1 on this -- the maintenance burden will
>> be slightly higher, but it allows us to do other interesting things
>> like put "Go tip" into a repo without breaking other unrelated things,
>> or have backports of newer Go versions without causing as many
>> potential rebuild oddities.
>>
>> I agree that where you've got those packages sitting now looks pretty
>> good, and that moving forward makes sense!  Thanks for raising the
>> discussion and moving it forward.
>
> I've done a bunch of testing of my packages.
>
> To prepare for the testing, I build the golang-defaults and golang-1.6
> packages from the branches on alioth and put the resulting debs in a
> directory, along with a passwordless gpg key. Then I ran
> apt-ftparchive to make Packages and Releases files, signed the
> Releases file with the gpg key. When I wanted to use this directory in
> a container or chroot I copied the directory to /godebs, added the gpg
> with apt-key add and ran
>
>     echo 'deb file:///godebs ./' > /etc/apt/sources.list.d/local-repo.list
>
> The tests I did were:
>
> 1) make a sid schroot for sbuild, run the above steps, use sbuild to
>    build the following list of packages both with the specially
>    prepared sid schroot and a vanilla one:
>
>     golang-github-aws-aws-sdk-go
>     docker-swarm
>     influxdb
>     golang-github-unknwon-com
>     cadvisor
>     golang-github-revel-revel
>     runc
>
>    The only non-trivial differences in the built debs and build logs
>    appear to be the different versions of the go-related packages in
>    Built-Using and the build environment.
>
> 2) Make a sid container, install golang, do the /godebs setup as
>    above, run apt update/apt upgrade and read the output to check that
>    there were no errors.
>
> 3) Make a jessie container, isntall all the golang packages, do the
>    /godebs setup, edit /etc/apt/sources.list to s/jessie/testing/ and
>    then ran apt update/apt dist-upgrade and read the output to look
>    for errors.
>
> All these tests succeeded as far as I can tell. So can someone either
> upload the new packages or tell me what else to test please? :)
>
> Cheers,
> mwh
>
> _______________________________________________
> pkg-golang-devel mailing list
> pkg-golang-devel at lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-golang-devel




More information about the Docker-maint mailing list