[pkg-golang-devel] Bug#818415: 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 pkg-golang-devel
mailing list