diff options
author | Maximilian Bosch <maximilian@mbosch.me> | 2021-11-23 19:15:24 +0100 |
---|---|---|
committer | Maximilian Bosch <maximilian@mbosch.me> | 2021-11-23 19:23:30 +0100 |
commit | 2f9426ad8312101f4e84bcc4e28860695d28005f (patch) | |
tree | 2ca726a486e3b0433ab3de1eb2e72d3b3056d025 /pkgs/applications/office | |
parent | c70341a4096f5ef5afb9277a06ba1e588a8606a4 (diff) | |
download | nixpkgs-2f9426ad8312101f4e84bcc4e28860695d28005f.tar nixpkgs-2f9426ad8312101f4e84bcc4e28860695d28005f.tar.gz nixpkgs-2f9426ad8312101f4e84bcc4e28860695d28005f.tar.bz2 nixpkgs-2f9426ad8312101f4e84bcc4e28860695d28005f.tar.lz nixpkgs-2f9426ad8312101f4e84bcc4e28860695d28005f.tar.xz nixpkgs-2f9426ad8312101f4e84bcc4e28860695d28005f.tar.zst nixpkgs-2f9426ad8312101f4e84bcc4e28860695d28005f.zip |
libreoffice: replace `openjdk` runtime-input with minimal JRE
Previously, `pkgs.libreoffice` had a total closure-size of 2.4GB where `pkgs.openjdk` was a significant part: $ nix path-info ./result -Sh /nix/store/7xyfklmiz2azcnrfa8n9cz12dyyqc85r-libreoffice-7.1.7.2 2.4G $ nix path-info ./result -shr | grep openjdk /nix/store/qcn7ihaak9g8ayyj4995ila2z0pkm37i-openjdk-17.0.1+12 643.6M However we need exactly two components: * a `javac` from `pkgs.openjdk` * a minimal runtime (i.e. a JRE) for `libofficebean.so` where `libjawt.so` is also available. I moved `jdk` to the `nativeBuildInputs` to ensure that `javac` is still available in the build-environment and created a minimal JRE that seems sufficient. Now, the total closure-size is reduced by ~29.1% (basically the 600M from `pkgs.openjdk`): $ nix path-info ./result -Sh /nix/store/zv34xijv64k7sz7rv50g3v6y59qg7p8k-libreoffice-7.1.7.2 1.7G
Diffstat (limited to 'pkgs/applications/office')
-rw-r--r-- | pkgs/applications/office/libreoffice/default.nix | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix index 2ed4750b30d..8572ff15c1d 100644 --- a/pkgs/applications/office/libreoffice/default.nix +++ b/pkgs/applications/office/libreoffice/default.nix @@ -2,7 +2,7 @@ , IOCompress, zlib, libjpeg, expat, freetype, libwpd , libxml2, db, curl, fontconfig, libsndfile, neon , bison, flex, zip, unzip, gtk3, libmspack, getopt, file, cairo, which -, icu, boost, jdk, ant, cups, xorg, fontforge +, icu, boost, jdk, ant, cups, xorg, fontforge, jre_minimal , openssl, gperf, cppunit, poppler, util-linux , librsvg, libGLU, libGL, bsh, CoinMP, libwps, libabw, libmysqlclient , autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr @@ -24,6 +24,10 @@ assert builtins.elem variant [ "fresh" "still" ]; let + jre' = jre_minimal.override { + modules = [ "java.base" "java.desktop" ]; + }; + importVariant = f: import (./. + "/src-${variant}/${f}"); primary-src = importVariant "primary.nix" { inherit fetchurl; }; @@ -318,7 +322,6 @@ in (mkDrv rec { "--enable-dbus" "--enable-release-build" "--enable-epm" - "--with-jdk-home=${jdk.home}" "--with-ant-home=${ant}/lib/ant" "--with-system-cairo" "--with-system-libs" @@ -379,7 +382,7 @@ in (mkDrv rec { ''; nativeBuildInputs = [ - gdb fontforge autoconf automake bison pkg-config libtool + gdb fontforge autoconf automake bison pkg-config libtool jdk ] ++ lib.optional (!kdeIntegration) wrapGAppsHook ++ lib.optional kdeIntegration wrapQtAppsHook; @@ -387,7 +390,7 @@ in (mkDrv rec { [ ant ArchiveZip boost box2d cairo clucene_core IOCompress cppunit cups curl db dbus-glib expat file flex fontconfig freetype getopt gperf gtk3 - hunspell icu jdk lcms libcdr libexttextcat unixODBC libjpeg + hunspell icu jre' lcms libcdr libexttextcat unixODBC libjpeg libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11 libXaw libXext libXi libXinerama libxml2 libxslt libXtst libXdmcp libpthreadstubs libGLU libGL mythes @@ -407,7 +410,8 @@ in (mkDrv rec { ++ lib.optional kdeIntegration [ qtbase qtx11extras kcoreaddons kio ]; passthru = { - inherit srcs jdk; + inherit srcs; + jdk = jre'; }; requiredSystemFeatures = [ "big-parallel" ]; |