[opensuse-factory] Different go versions in Tumbleweed
Hi, does it make sense to have 5 different go versions in Tumblweed while the really old 1.4 is the default which does not even support cross compilation? Running `update-alternatives` to use 1.9 is not enough becuase GOROOT still links to the 1.4 path so I manually have to change it. And to make it worse if I install just the package `go` all of these versions are pulled in. Maybe Go 1.4 is needed to bootstrap Go compilation but besides that do we really have to keep all the Go versions because of the First Factory Policy? As far as I know we do not keep other old packages (at least not the old version) around in Tumbleweed even though they are in SLES. Can't we do this for go or at least not pull in all the in between versions and change the default to the latest go package? Regards Tim
On 2018-02-22, Tim Hardeck
does it make sense to have 5 different go versions in Tumblweed while the really old 1.4 is the default which does not even support cross compilation?
Running `update-alternatives` to use 1.9 is not enough becuase GOROOT still links to the 1.4 path so I manually have to change it.
I have hit this as well (and I think I might have filed a bug on it as well). We've been having quite a few problems with update-alternatives (including when an old Go version is upgraded and then your "go" binary is now the older version). Any help with fixing this would be greatly appreciated, as I'm just not familiar enough with the "right way" of using update-alternatives. I'm not sure how we can handle the GOROOT issue though, aside from making "go" a shell script or something similarly dodgy...
And to make it worse if I install just the package `go` all of these versions are pulled in.
This shouldn't happen -- "go" is supposed to only include the latest go%{version} release (at least that was the intention when we changed "go" to be a metapackage). I haven't seen this -- but if it is reproducible please open a bug because that is broken.
Maybe Go 1.4 is needed to bootstrap Go compilation but besides that do we really have to keep all the Go versions because of the First Factory Policy? As far as I know we do not keep other old packages (at least not the old version) around in Tumbleweed even though they are in SLES. Can't we do this for go or at least not pull in all the in between versions and change the default to the latest go package?
We need more than one Go version for a variety of reasons. We have some older packages that are very picky about their compiler versions (docker-kubic or docker-runc-kubic for instance). In addition there are just a bunch of random packages that will break when you upgrade their BuildRequires go version -- despite what the Go backwards compatibility guidelines might tell you (the amount of build errors I've seen on a Go upgrade is insane -- but we cannot report them upstream because they only appear to happen inside OBS). So, at the very least we currently need go1.4 (for bootstrapping), go1.6 (for docker-kubic), and the latest which is go1.9 right now (I'm not sure if go1.7 is also required but I wouldn't be surprised). -- Aleksa Sarai Senior Software Engineer (Containers) SUSE Linux GmbH https://www.cyphar.com/
On Sat, 2018-02-24 at 23:14 +1100, Aleksa Sarai wrote:
So, at the very least we currently need go1.4 (for bootstrapping), go1.6 (for docker-kubic), and the latest which is go1.9 right now (I'm not sure if go1.7 is also required but I wouldn't be surprised).
dependson go1.4 go1.4 : dependson go1.6 go1.6 : dependson go1.7 go1.7 : docker-runc docker-runc-kubic runc
I did not list go1.9, as this is obviously a lot more. Cheers Dominique
On 2018-02-24, Dominique Leuenberger / DimStar
So, at the very least we currently need go1.4 (for bootstrapping), go1.6 (for docker-kubic), and the latest which is go1.9 right now (I'm not sure if go1.7 is also required but I wouldn't be surprised).
dependson go1.4 go1.4 : dependson go1.6 go1.6 : dependson go1.7 go1.7 : docker-runc docker-runc-kubic runc
Oh... I forgot that we have updated docker-kubic to v17.09.1 (removing the go1.6 requirement). Okay, in that case we should be able to drop some Go packages (though the question about what Go versions are required for SLE is a separate topic). The reason we still use go1.7 for runc is because (for some reason) go1.9 breaks runc -- I am planning to take a look at this when I get back from vacation. -- Aleksa Sarai Senior Software Engineer (Containers) SUSE Linux GmbH https://www.cyphar.com/
before this thread i had uninstalled go, deleting all version directories, then reinstalled. I now have ONLY go 1.9 installed with goroot set correctly. So i find it odd that it is stated that multiple versions exist since they are required (since zypper is not pulling them in)? PS according to google go cannot be upgraded, only removed and reinstalled. -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
On 24.02.2018 13:14, Aleksa Sarai wrote:
This shouldn't happen -- "go" is supposed to only include the latest go%{version} release (at least that was the intention when we changed "go" to be a metapackage). I haven't seen this -- but if it is reproducible please open a bug because that is broken. Duncan has created a bugzilla entry for this issue. https://bugzilla.suse.com/show_bug.cgi?id=1082409
On 24.02.2018 21:23, nicholas cunliffe wrote:
before this thread i had uninstalled go, deleting all version directories, then reinstalled. I now have ONLY go 1.9 installed with goroot set correctly. So i find it odd that it is stated that multiple versions exist since they are required (since zypper is not pulling them in)? PS according to google go cannot be upgraded, only removed and reinstalled. Maybe you do not have installation of recommended packages enabled.
NAME="openSUSE Tumbleweed" # VERSION="20180224" $ sudo zypper in go Loading repository data... Reading installed packages... Resolving package dependencies... The following 17 NEW packages are going to be installed: go go1.4 go1.4-doc go1.4-race go1.6 go1.6-doc go1.6-race go1.7 go1.7-doc go1.7-race go1.8 go1.8-doc go1.8-race go1.9 go1.9-doc go1.9-race go-race The following recommended package was automatically selected: go1.9-doc 17 new packages to install. Overall download size: 199,3 MiB. Already cached: 0 B. After the operation, additional 1,1 GiB will be used. Regards
On 02/26/2018 10:52 AM, Tim Hardeck wrote:
On 24.02.2018 13:14, Aleksa Sarai wrote:
This shouldn't happen -- "go" is supposed to only include the latest go%{version} release (at least that was the intention when we changed "go" to be a metapackage). I haven't seen this -- but if it is reproducible please open a bug because that is broken. Duncan has created a bugzilla entry for this issue. https://bugzilla.suse.com/show_bug.cgi?id=1082409
On 24.02.2018 21:23, nicholas cunliffe wrote:
before this thread i had uninstalled go, deleting all version directories, then reinstalled. I now have ONLY go 1.9 installed with goroot set correctly. So i find it odd that it is stated that multiple versions exist since they are required (since zypper is not pulling them in)? PS according to google go cannot be upgraded, only removed and reinstalled. Maybe you do not have installation of recommended packages enabled.
NAME="openSUSE Tumbleweed" # VERSION="20180224"
$ sudo zypper in go Loading repository data... Reading installed packages... Resolving package dependencies...
The following 17 NEW packages are going to be installed: go go1.4 go1.4-doc go1.4-race go1.6 go1.6-doc go1.6-race go1.7 go1.7-doc go1.7-race go1.8 go1.8-doc go1.8-race go1.9 go1.9-doc go1.9-race go-race
The following recommended package was automatically selected: go1.9-doc
17 new packages to install. Overall download size: 199,3 MiB. Already cached: 0 B. After the operation, additional 1,1 GiB will be used.
I hit the same problem. Due to space constraints on my hard disk I uninstalled all older go versions, but they get all pulled in again when I do a zypper dup to get the newest tumbleweed snapshot. Regards, Matthias
On Mon, 2018-02-26 at 11:26 +0100, Matthias Brugger wrote:
$ sudo zypper in go
Loading repository data... Reading installed packages... Resolving package dependencies...
The following 17 NEW packages are going to be installed: go go1.4 go1.4-doc go1.4-race go1.6 go1.6-doc go1.6-race go1.7 go1.7-doc go1.7-race go1.8 go1.8-doc go1.8-race go1.9 go1.9-doc go1.9-race go-race
The following recommended package was automatically selected: go1.9-doc
17 new packages to install. Overall download size: 199,3 MiB. Already cached: 0 B. After the operation, additional 1,1 GiB will be used.
I hit the same problem. Due to space constraints on my hard disk I uninstalled all older go versions, but they get all pulled in again when I do a zypper dup to get the newest tumbleweed snapshot.
That's a bug - and actually a pretty simple one in plus: from go1.4.spec: Supplements: go So, whenever 'go' is installed, go1.4 supplements it (which is a reverse recommends). Installing go obviously triggers this. Installing go1.9 directly still triggers it, as go1.9 requires go - which go1.4 then again supplements. If there is no bug report yet, plese file one so this can be fixed (the Supplements can simply be dropped - this is useless, as go requires go<version>; so go<versionX> needs not supplement it) Cheers Dominique
participants (5)
-
Aleksa Sarai
-
Dominique Leuenberger / DimStar
-
Matthias Brugger
-
nicholas cunliffe
-
Tim Hardeck