[arch-dev-public] cleaning up unneeded static libraries?
Our packages in our repos by default don't need static libraries (random .a files all around). I think they are a waste of disc space and abuse bandwidth when uploading/mirroring packages. Most users will never need them. I suggest to drop all static libs by creating a ToDo list and install a rule to not ship static libraries anymore, maybe with some exceptions. Whenever users require static libs we should point to abs. Opinions? [andyrtr@workstation64 ~]$ pkgfile -v -g /usr/lib/\*.a | sort | wc -l 3417 There are probably more in other directories. -Andy
On 02/03/13 19:16, Andreas Radke wrote:
Our packages in our repos by default don't need static libraries (random .a files all around). I think they are a waste of disc space and abuse bandwidth when uploading/mirroring packages. Most users will never need them.
I suggest to drop all static libs by creating a ToDo list and install a rule to not ship static libraries anymore, maybe with some exceptions. Whenever users require static libs we should point to abs.
Opinions?
[andyrtr@workstation64 ~]$ pkgfile -v -g /usr/lib/\*.a | sort | wc -l 3417
There are probably more in other directories.
Just add *.a to PURGE_TARGETS in makepkg.conf rather than manually removing them. Anyone who needs them can disable that. (I will keep them in glibc/gcc/binutils...) Allan
Am Sat, 02 Mar 2013 19:29:13 +1000 schrieb Allan McRae <allan@archlinux.org>:
Just add *.a to PURGE_TARGETS in makepkg.conf rather than manually removing them. Anyone who needs them can disable that.
(I will keep them in glibc/gcc/binutils...)
Allan
Nice solution. We should add *.a to the default PURGE_TARGETS in the next pacman release. Static libs will die out then pretty quick. Maybe after some time a ToDo list could clean the older packages then. -Andy
Hi, Note that one of the two most popular Go compilers relies on static compilation and .a files: pacman -Ql go | grep \.a$ | wc -l 261 Go was created by some of the same people that created Plan9, so I assume the choice of using static compilation is inspired by that: http://www.plan9.bell-labs.com/wiki/plan9/why_static/ -- Sincerely, Alexander Rødseth xyproto / TU
as long as there is a simple way to turn off purging static libs, thiz sounds good Note that haskell also uses static libs
On 02/03/13 12:10, Thomas Dziedzic wrote:
as long as there is a simple way to turn off purging static libs, thiz sounds good
Note that haskell also uses static libs
Can't we add a rule to namcap, which warns packagers about static libs? Then the packager can decide whether they should included or removed.
[2013-03-02 15:17:02 +0100] Jelle van der Waa:
Can't we add a rule to namcap, which warns packagers about static libs? Then the packager can decide whether they should included or removed.
Most packagers would not notice or care enough to remove static libs from the many packages where they are a complete waste of resources. In contrast, adding *.a to PURGE_TARGETS will definitely solve that problem in the long term without requiring anything from packagers - only those specific packages relying on static libs will need to add '!purge' to their options array. This seems the best solution to me. -- Gaetan
On Sun, Mar 3, 2013 at 2:17 AM, Gaetan Bisson <bisson@archlinux.org> wrote:
[2013-03-02 15:17:02 +0100] Jelle van der Waa:
Can't we add a rule to namcap, which warns packagers about static libs? Then the packager can decide whether they should included or removed.
Most packagers would not notice or care enough to remove static libs from the many packages where they are a complete waste of resources.
In contrast, adding *.a to PURGE_TARGETS will definitely solve that problem in the long term without requiring anything from packagers - only those specific packages relying on static libs will need to add '!purge' to their options array. This seems the best solution to me.
What's about adding a new option? We already have libtool to clean libraries unwanted stuff. We can add a static or archive options which take care of this files. I can provide a patch for pacman. -- Sébastien "Seblu" Luttringer https://www.seblu.net GPG: 0x2072D77A
Le 2013-03-02 05:14, Andreas Radke a écrit :
Am Sat, 02 Mar 2013 19:29:13 +1000 schrieb Allan McRae <allan@archlinux.org>:
Just add *.a to PURGE_TARGETS in makepkg.conf rather than manually removing them. Anyone who needs them can disable that.
(I will keep them in glibc/gcc/binutils...)
Allan
Nice solution. We should add *.a to the default PURGE_TARGETS in the next pacman release. Static libs will die out then pretty quick.
Maybe after some time a ToDo list could clean the older packages then.
-Andy
I agree to remove unneeded static libraries. However, we need to take care because the default building system of some packages, eg suitesparse, only provide static libs. I suggest to send patches/bug reports upstream for these packages. For suitesparse, I sent a patch upstream a few months ago. Cheers, Stéphane
On Sat, Mar 2, 2013 at 10:16 AM, Andreas Radke <andyrtr@archlinux.org> wrote:
Our packages in our repos by default don't need static libraries (random .a files all around). I think they are a waste of disc space and abuse bandwidth when uploading/mirroring packages. Most users will never need them.
I suggest to drop all static libs by creating a ToDo list and install a rule to not ship static libraries anymore, maybe with some exceptions. Whenever users require static libs we should point to abs.
Could you tell me if removing all statics libs will avoid us to easily build static binaries using those binaries? Cheers, -- Sébastien "Seblu" Luttringer https://www.seblu.net GPG: 0x2072D77A
On Sat, Mar 2, 2013 at 7:04 PM, Sébastien Luttringer <seblu@seblu.net> wrote:
On Sat, Mar 2, 2013 at 10:16 AM, Andreas Radke <andyrtr@archlinux.org> wrote:
Our packages in our repos by default don't need static libraries (random .a files all around). I think they are a waste of disc space and abuse bandwidth when uploading/mirroring packages. Most users will never need them.
I suggest to drop all static libs by creating a ToDo list and install a rule to not ship static libraries anymore, maybe with some exceptions. Whenever users require static libs we should point to abs.
Could you tell me if removing all statics libs will avoid us to easily build static binaries using those binaries?
After private talk with Andy, I understood we loose the ability of building static binaries with this move. Not a big deal for me. Just everyone knows. -- Sébastien "Seblu" Luttringer https://www.seblu.net GPG: 0x2072D77A
participants (8)
-
Alexander Rødseth
-
Allan McRae
-
Andreas Radke
-
Gaetan Bisson
-
Jelle van der Waa
-
Stéphane Gaudreault
-
Sébastien Luttringer
-
Thomas Dziedzic