Go packaging
Vincent Batts
vbatts at redhat.com
Mon Sep 29 19:49:14 UTC 2014
(Resending as i got a bounce from the list)
On 29/09/14 11:04 -0700, Richard Henderson wrote:
>I'm working on enabling Go on systems without golang support, but for which the
>gccgo compiler works.
>
>But in order for this to work, there needs to be some amount of coordination
>with the regular golang package, the spec files of binaries written in go, and
>the golang-*-devel packages.
>
>(0) I start with a "go" driver program that is built with, and defaults to
>building with, the gccgo compiler. I.e. -compiler gccgo is the default. I've
>called this package "go-gccgo", for lack of a better name.
cool. DO you have this published somewhere?
>(1) I was disappointed to discover that all of the -devel packages depend on
>golang. That meant that when I wanted to uninstall golang on my test system
>and install my go-gccgo package, all of the development libraries were
>uninstalled too. This seems silly, because the -devel packages don't *really*
>depend on golang, any more than glib2-devel depends on having gcc installed.
This discussion has gone around a bit. Some of the rpms have
BuildRequires of 'golang' because they run `go test` in their %check
But otherwise, the -devel that is landing source code only, does not
require golang. Perhaps we could make this a meta for go API
>I think that removing this unnecessary dependency can happen independent of any
>other change we can make.
>
>(2) We need some rpm token to coordinate the version of the Go language that
>the installed compiler. Currently the packages check "golang >= version", but...
Right, so for go api this is where we should mimic the rpm spec of
packages like python or ruby. They need _a_ compiler that can do '>=
1.2' or similar. Make sense?
>(3) The golang and go-gccgo packages probably ought to conflict, since both
>contain a /usr/bin/go. I don't see using alternates as terribly useful here,
>and anyway there may well be a Go language version conflict from (2) between
>the two compilers. Certainly for f21, golang is v1.3.1, but gcc 4.9 supports
>go v1.2.
do that have to conflict? I wouldn't think that is a requirement.
>(4) For packages that build binaries written in go, like docker, we need an rpm
>macro to say whether we expect to build with gccgo or gc. The command line
>options for the two compilers are not compatible, and so the %build section of
>the spec file needs to be adjusted (sometimes trivially, sometimes not).
is there precedent of macros like this or is this something we'd need to
craft up ourselves?
>I'm currently defining %use_gccgo in the /usr/lib/rpm/macros.d/macros.golang
>file installed with my go-gccgo package.
>
>(5) There's currently a %go_arches macro that specifies those arches to which
>golang is ported. If go-gccgo exists, is this macro actually useful anymore?
I think so, but it may need to be adjusted for the gccgo vs gc macro
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.fedoraproject.org/pipermail/devel/attachments/20140929/8193a133/attachment-0001.sig>
More information about the devel
mailing list