3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/pkgs/top-level
Orivej Desh fd97db43bc
pruneLibtoolFiles: init setup hook (#41819)
A .la file specifies linker flags to link with the library it describes. Its
"dependency_libs" field lists the libraries that this library depends upon.
This list often contains "-l" flags without corresponding "-L" flags. Many
packages in Nixpkgs deal with this in one of these ways:
- delete .la file [1]
- clear dependency_libs [2]
- add -L flags to dependency_libs [3]
- propagate dependencies [4]

Sometimes "dependency_libs" contain wrong "-L" flags pointing to the "dev"
output with headers rather than to the main output with libraries. They have to
be edited or deleted to reduce closure size [5].

Deleting .la files is often but not always safe [6].  Atomatically deleting as
many of them as possible is complex [7].  Deleting .la files that describe
shared rather than static libraries is probably safe; but clearing their
"dependency_libs" field achieves the same effect with less potential for
unintended consequences.  This is the approach that may be enabled for all
Nixpkgs.

[1] 2a79d296d3
[2] c83a530985
[3] 9e0dcf3bd9
[4] 01134e698f
[5] f6c73f1e37
[6] https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Handling_Libtool_Archives
[7] https://github.com/gentoo/gentoo/blob/fb1f2435/eclass/ltprune.eclass
2018-06-11 18:11:02 +00:00
..
aliases.nix adobe_flex_sdk: 4.0.0.14159 -> apache-flex-sdk: 4.16.1 (#41257) 2018-06-02 10:44:24 +02:00
all-packages.nix pruneLibtoolFiles: init setup hook (#41819) 2018-06-11 18:11:02 +00:00
beam-packages.nix
coq-packages.nix coqPackages.iris: init at 3.1.0 (#40909) 2018-05-22 19:26:32 +02:00
darwin-packages.nix darwin.iproute2mac: init at 1.2.1 2018-06-09 22:47:21 +02:00
default.nix
dotnet-packages.nix Merge pull request #40612 from symphorien/boogie_vim 2018-05-29 19:58:20 +02:00
emacs-packages.nix emacsPackages.emacs-libvterm: init at unstable-2017-11-24 2018-05-16 14:02:49 +08:00
emscripten-packages.nix
haskell-packages.nix ghc: add version 8.4.3 2018-05-30 03:46:16 +02:00
haxe-packages.nix
impure.nix impure.nix: stringify path from NIX_PATH 2018-05-04 13:12:09 +02:00
java-packages.nix
lua-packages.nix luaPackages.mpack: fix build after #28029 2018-05-29 15:06:38 +00:00
make-tarball.nix
metrics.nix
ocaml-packages.nix ocamlPackages.linenoise: init at 1.1.0 (#41489) 2018-06-05 20:29:00 +02:00
perl-packages.nix perlPackages.JSON: fix cross-compilation 2018-06-11 07:46:04 +00:00
php-packages.nix Merge pull request #41625 from etu/php-codesniffer-updates 2018-06-09 01:32:12 +02:00
pure-packages.nix
python-packages.nix pythonPackages.pdf2image: init at 0.1.13 (#41741) 2018-06-11 20:01:01 +02:00
release-cross.nix
release-lib.nix
release-python.nix
release-small.nix
release.nix release: remove nix-repl 2018-05-31 20:09:20 -04:00
splice.nix
stage.nix
unix-tools.nix unix-tools: add glibc 2018-06-11 11:19:31 -04:00
wine-packages.nix winePackages: move to pkgs/top-level/wine-packages.nix 2018-05-17 02:31:03 +03:00