1 |
On 07/04/2015 01:24 PM, William Hubbs wrote: |
2 |
> On Sat, Jul 04, 2015 at 12:43:37PM -0700, Zac Medico wrote: |
3 |
>> On 07/04/2015 12:32 PM, William Hubbs wrote: |
4 |
>>> On Sat, Jul 04, 2015 at 12:19:28PM -0700, Zac Medico wrote: |
5 |
>>>> On 06/30/2015 03:08 PM, William Hubbs wrote: |
6 |
>>>>> The source code is where the compatibility between versions of Go is, |
7 |
>>>>> not the static objects, so what if, for third-party go packages, we |
8 |
>>>>> skip installing the static objects? |
9 |
>>>>> |
10 |
>>>>> The only down side of this would be that there might be longer rebuilds |
11 |
>>>>> if the packages have multiple consumers, but it gets rid of the static |
12 |
>>>>> objects. |
13 |
>>>>> |
14 |
>>>>> What do you think? |
15 |
>>>> |
16 |
>>>> I'll give real example involving go-tools. The go-tools build requires |
17 |
>>>> go-net, which in turn requires go-text. If the go-net *.a files are |
18 |
>>>> installed, then it is possible to build go-tools against go-net without |
19 |
>>>> having go-text installed. If the go-net *.a files are not installed, |
20 |
>>>> then you will have to install go-text before you can build go-tools. It |
21 |
>>>> introduces an indirect build-time dependency between go-tools and go-text. |
22 |
>>> |
23 |
>>> Sure, but what I'm proposing is that we do not install any *.a files |
24 |
>>> for Go software that is not part of dev-lang/go. |
25 |
>> |
26 |
>> Exactly the same type of situation can arise for packages that are not |
27 |
>> part of dev-lang/go. For example, if consul's static api.a library is |
28 |
>> not installed, then it will introduce indirect build-time dependencies |
29 |
>> for the consul-template package. |
30 |
> |
31 |
> Hmm, I haven't looked at either consul or consul-template yet, but I'm |
32 |
> thinking that if you use golang-build.eclass to install everything and |
33 |
> make sure GOPATH is set correctly, consul-template will pick up |
34 |
> everything it needs. |
35 |
> |
36 |
> What am I missing? |
37 |
|
38 |
You need to recognize that "build-time for package A" is not the same as |
39 |
"build-time for package B". When you build go-tools, you can't rely on |
40 |
the build-time dependencies of go-net being present. Likewise, you can't |
41 |
rely on the build-time dependencies of consul being present when |
42 |
consul-template is built. |
43 |
-- |
44 |
Thanks, |
45 |
Zac |