Gentoo Archives: gentoo-dev

From: Mart Raudsepp <leio@g.o>
To: gentoo devs <gentoo-dev@l.g.o>
Subject: [gentoo-dev] RFC: Installation of static libraries, USE=static-libs proposal
Date: Tue, 01 Jul 2008 02:06:29
Message-Id: 1214877951.29224.54.camel@localhost
1 Hello again,
2
3
4 Over a year or two ago, it was communicated that it supposedly a policy
5 that USE=static should only control if a package installs static
6 libraries INSTEAD of shared libraries, and never to be used to control
7 if static libraries are installed in _addition_ to shared ones or not.
8
9 Packages were coerced to stop using USE=static for controlling that, and
10 most of them ended up unconditionally installing both static and shared
11 libraries. What's worse - they were told that if a package can provide
12 both shared libraries and static libraries at once, it just MUST (or
13 SHOULD) install them both instead of choosing to not ship the static
14 libraries.
15 End result that affects me: GNOME does not fit on LiveCD installation
16 media anymore.
17
18
19 So I'm proposing a USE=static-libs or similar to get out of this
20 problem, and a lifting of the supposed (I wasn't around as a dev that
21 long ago to know for sure) policy of having to install both instead of
22 choosing to never install static libraries.
23
24 I am quite sure that absolutely nothing whatsoever uses about 97% of the
25 static GNOME libraries we are now installing as an end result. How can I
26 be sure? Because everything worked just fine when static libraries
27 weren't installed in the past thanks to that not happening from
28 USE=static missing on most systems for years, and you'd have to be quite
29 crazy if you required static version of desktop libraries with well
30 established and followed ABI guarantees.
31
32 Those that aren't absolutely sure that there is no use case for static
33 libraries, could then use a USE=static-libs or similar to not
34 unnecessarily install static libraries that are not going to ever be
35 used. And LiveCD media could avoid all these static libraries, that it
36 currently has to ship just because the packages by default install that
37 cruft for no real technical reason (and it has to follow that due to
38 GRPs).
39 I would use USE=static-libs on packages like gtkmm, that have good
40 reasons to provide a static version - it allows Gentoo users that would
41 like to do commercial or universal C++ based development against Gentoo
42 system packages, as it avoids feared libstdc++ ABI breaks (there's even
43 a request for it in bugzilla).
44
45
46
47 There are packages in the tree that are required to install static
48 libraries, or something else in the system breaks. So INSTALL_MASK=*.a
49 is not a solution in my eyes.
50
51
52 Useful comments, thoughts, agreements?
53
54
55
56 I have had some additional ideas for handling static libraries better at
57 a package manager level, but those still need to be fleshed out and put
58 into writing.
59 Things like possibility to rebuild all packages that link to a static
60 library that was now upgraded, so the higher level package could use a
61 relinking to benefit from the bug fixes from the new library; optional
62 ability to install only the type of library currently needed - shared or
63 static, etc. Much of it goes to blue-sky ideas though with minimal
64 benefit for normal desktop/server systems and potentially high
65 maintenance effort, so I haven't put much effort into putting it into
66 writing. But maybe someone interested wants to chat on IRC on the topic.
67
68
69 --
70 Mart Raudsepp
71 Gentoo Developer
72 Mail: leio@g.o
73 Weblog: http://planet.gentoo.org/developers/leio

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies