Gentoo Archives: gentoo-dev

From: Francesco Riosa <vivo75@×××××.com>
To: gentoo development <gentoo-dev@l.g.o>
Subject: Re: [gentoo-dev] Proliferation of IUSE=static-libs in Gentoo
Date: Thu, 08 Mar 2018 23:12:33
Message-Id: CAD6zcDyFVNK=9mAn+1aD1doc9zuKHSOnk7n165fWC=60zZs8Jg@mail.gmail.com
In Reply to: [gentoo-dev] Proliferation of IUSE=static-libs in Gentoo by "Michał Górny"
1 2018-03-08 16:40 GMT+01:00 Michał Górny <mgorny@g.o>:
2
3 > Hello, developers.
4 >
5 > I would like to bring to your attention an alarming trend in Gentoo
6 > ebuilds -- the proliferation of IUSE=static-libs, that is a flag
7 > allowing our users to build static libraries.
8 >
9 > I should like to remind you that static linking is almost always a bad
10 > idea. It has serious security implications, it is poorly supported on
11 > *nix systems (example: library dependencies are provided via hacks, we
12 > don't have proper rebuild capabilities) and should be basically
13 > considered a great evil. Partially relevant doc: [1].
14 >
15 > This is why Gentoo does not generally support statically linking stuff,
16 > and we force dynamic linking whenever possible (sometimes even going too
17 > far with that but that's another story). We only allow static linking
18 > for special cases where shared linking can't be used for one reason
19 > or another.
20 >
21 > As part of that we also shouldn't deliver static libraries unless
22 > absolutely necessary to satisfy the dependencies of applications which
23 > we support built statically. Back in the day, Gentoo developers were
24 > pushing against packages that built static libraries unconditionally.
25 > However, it seems that at some point this front changed from 'fighting
26 > unconditionally built static libraries' to 'proliferating USE=static-
27 > libs everywhere'. Which is bad.
28 >
29 > So, developers, please *stop adding USE=static-libs* to random libraries
30 > that have no reason whatever to be statically linked to. And by that I
31 > mean a good reason, not creeping featurism, not 'user asked for it', not
32 > 'this broken package hardcodes libfoo.a'.
33 >
34
35 this would make impossible to use qemu static with binfmt alas
36 https://wiki.debian.org/QemuUserEmulation
37 Also looking for which packages are eligible for static libraries or not is
38 more work, not less, because it's a whole different layer of dependancies
39 (when doing the qemu stuff I just decided to build static for everything
40 rather than manage use flags per package)