Commit Graph

1 Commits

Author SHA1 Message Date
Maximilian Bosch
408ece7d3d
libreoffice-fresh: strip away BUILDCONFIG, reduce runtime closure size by ~20%
In v7.5.x a change was introduced that writes the BUILDCONFIG into
`$out/lib/libreoffice/program/libsofficeapp.so` including the
`PKG_CONFIG_PATH` containing references to all `dev` outputs of library
dependencies:

    $ strings $(nix-build -A libreoffice-fresh)/lib/libreoffice/program/libsofficeapp.so|grep PKG_CONFIG_PATH
    [...], "BuildConfig": "[...] 'PKG_CONFIG_PATH=[...]'"

This isn't really needed because this information can also be obtained
by `nix derivation show`. Also, this causes a 20% larger runtime-closure
because of all the dev dependencies being referenced by the output and
thus downloaded whenever libreoffice is substituted somewhere. The
actual numbers look like this:

    $ nix path-info -Sh ./result-old
    /nix/store/3mzrqh4gg7v27vdrrap9dj3x8myysmyf-libreoffice-7.5.4.1-wrapped	  2.0G
    $ nix path-info -Sh ./result
    /nix/store/g5y60s0a2q2v6r58xcayv62z7fjfi816-libreoffice-7.5.4.1-wrapped	  1.6G

Only `libreoffice-fresh` is affected, `pkgs.libreoffice` isn't because
it still points to 7.4 whereas the problematic change was introduced in
7.5.

To make sure this doesn't get reintroduced by accident, the derivation
also prohibits now to reference any dev output from a build input.

[1] https://gerrit.libreoffice.org/c/core/+/141197
2023-07-25 18:05:49 +02:00