From 8137c100ad1e4bf2295db2181f1bbd6bd63cb927 Mon Sep 17 00:00:00 2001 From: 7c6f434c <7c6f434c@mail.ru> Date: Tue, 18 Mar 2025 00:11:14 +0100 Subject: [PATCH] libreoffice-*: nixfmt the default.nix to avoid CI issues --- .../office/libreoffice/default.nix | 959 ++++++++++-------- 1 file changed, 521 insertions(+), 438 deletions(-) diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix index 33370e9815e7..cc47eaf2b780 100644 --- a/pkgs/applications/office/libreoffice/default.nix +++ b/pkgs/applications/office/libreoffice/default.nix @@ -1,164 +1,202 @@ -{ stdenv -, fetchurl -, fetchgit -, fetchpatch2 -, lib -, pam -, python311 -, libxslt -, perl -, perlPackages -, box2d -, gettext -, zlib -, libjpeg -, liblangtag -, expat -, freetype -, libwpd -, libxml2 -, db -, curl -, fontconfig -, libsndfile -, neon -, bison -, flex -, zip -, unzip -, gtk3 -, libmspack -, getopt -, file -, cairo -, which -, icu -, boost -, jdk21 -, ant -, cups -, xorg -, fontforge -, jre21_minimal -, openssl -, gperf -, cppunit -, poppler -, util-linux -, librsvg -, libGLU -, libGL -, bsh -, coinmp -, libwps -, libabw -, libargon2 -, libmysqlclient -, autoconf -, automake -, openldap -, bash -, hunspell -, librdf_rasqal -, librdf_redland -, nss -, nspr -, libwpg -, dbus-glib -, clucene_core_2 -, libcdr -, lcms2 -, unixODBC -, mdds -, sane-backends -, mythes -, libexttextcat -, libvisio -, pkg-config -, bluez5 -, libtool -, libatomic_ops -, graphite2 -, harfbuzz -, libodfgen -, libzmf -, librevenge -, libe-book -, libmwaw -, glm -, gst_all_1 -, gdb -, adwaita-icon-theme -, glib -, ncurses -, libepoxy -, gpgme -, libwebp -, abseil-cpp -, libepubgen -, libetonyek -, liborcus -, libpng -, langs ? [ "ar" "ca" "cs" "da" "de" "en-GB" "en-US" "eo" "es" "fi" "fr" "hu" "it" "ja" "ko" "nl" "pl" "pt" "pt-BR" "ro" "ru" "sk" "sl" "tr" "uk" "zh-CN" "zh-TW" ] -, withFonts ? false -, withHelp ? true -, kdeIntegration ? false -, qtbase ? null -, qtx11extras ? null -, qtwayland ? null -, ki18n ? null -, kconfig ? null -, kcoreaddons ? null -, kio ? null -, kwindowsystem ? null -, variant ? "fresh" -, symlinkJoin -, libpq -, makeFontsConf -, amiri -, caladea -, carlito -, culmus -, dejavu_fonts -, rubik -, liberation-sans-narrow -, liberation_ttf_v2 -, libertine -, libertine-g -, noto-fonts -, noto-fonts-cjk-sans -, rhino -, lp_solve -, xmlsec -, libcmis -# The rest are used only in passthru, for the wrapper -, kauth ? null -, kcompletion ? null -, kconfigwidgets ? null -, kglobalaccel ? null -, kitemviews ? null -, knotifications ? null -, ktextwidgets ? null -, kwidgetsaddons ? null -, kxmlgui ? null -, phonon ? null -, qtdeclarative ? null -, qtmultimedia ? null -, qtquickcontrols ? null -, qtsvg ? null -, qttools ? null -, solid ? null -, sonnet ? null +{ + stdenv, + fetchurl, + fetchgit, + fetchpatch2, + lib, + pam, + python311, + libxslt, + perl, + perlPackages, + box2d, + gettext, + zlib, + libjpeg, + liblangtag, + expat, + freetype, + libwpd, + libxml2, + db, + curl, + fontconfig, + libsndfile, + neon, + bison, + flex, + zip, + unzip, + gtk3, + libmspack, + getopt, + file, + cairo, + which, + icu, + boost, + jdk21, + ant, + cups, + xorg, + fontforge, + jre21_minimal, + openssl, + gperf, + cppunit, + poppler, + util-linux, + librsvg, + libGLU, + libGL, + bsh, + coinmp, + libwps, + libabw, + libargon2, + libmysqlclient, + autoconf, + automake, + openldap, + bash, + hunspell, + librdf_rasqal, + librdf_redland, + nss, + nspr, + libwpg, + dbus-glib, + clucene_core_2, + libcdr, + lcms2, + unixODBC, + mdds, + sane-backends, + mythes, + libexttextcat, + libvisio, + pkg-config, + bluez5, + libtool, + libatomic_ops, + graphite2, + harfbuzz, + libodfgen, + libzmf, + librevenge, + libe-book, + libmwaw, + glm, + gst_all_1, + gdb, + adwaita-icon-theme, + glib, + ncurses, + libepoxy, + gpgme, + libwebp, + abseil-cpp, + libepubgen, + libetonyek, + liborcus, + libpng, + langs ? [ + "ar" + "ca" + "cs" + "da" + "de" + "en-GB" + "en-US" + "eo" + "es" + "fi" + "fr" + "hu" + "it" + "ja" + "ko" + "nl" + "pl" + "pt" + "pt-BR" + "ro" + "ru" + "sk" + "sl" + "tr" + "uk" + "zh-CN" + "zh-TW" + ], + withFonts ? false, + withHelp ? true, + kdeIntegration ? false, + qtbase ? null, + qtx11extras ? null, + qtwayland ? null, + ki18n ? null, + kconfig ? null, + kcoreaddons ? null, + kio ? null, + kwindowsystem ? null, + variant ? "fresh", + symlinkJoin, + libpq, + makeFontsConf, + amiri, + caladea, + carlito, + culmus, + dejavu_fonts, + rubik, + liberation-sans-narrow, + liberation_ttf_v2, + libertine, + libertine-g, + noto-fonts, + noto-fonts-cjk-sans, + rhino, + lp_solve, + xmlsec, + libcmis, + # The rest are used only in passthru, for the wrapper + kauth ? null, + kcompletion ? null, + kconfigwidgets ? null, + kglobalaccel ? null, + kitemviews ? null, + knotifications ? null, + ktextwidgets ? null, + kwidgetsaddons ? null, + kxmlgui ? null, + phonon ? null, + qtdeclarative ? null, + qtmultimedia ? null, + qtquickcontrols ? null, + qtsvg ? null, + qttools ? null, + solid ? null, + sonnet ? null, }: -assert builtins.elem variant [ "fresh" "still" "collabora" ]; +assert builtins.elem variant [ + "fresh" + "still" + "collabora" +]; let inherit (lib) - flatten flip - concatMapStrings concatStringsSep - getDev getLib - optionals optionalString; + flatten + flip + concatMapStrings + concatStringsSep + getDev + getLib + optionals + optionalString + ; fontsConf = makeFontsConf { fontDirectories = [ @@ -178,7 +216,12 @@ let }; jre' = jre21_minimal.override { - modules = [ "java.base" "java.desktop" "java.logging" "java.sql" ]; + modules = [ + "java.base" + "java.desktop" + "java.logging" + "java.sql" + ]; }; importVariant = f: import (./. + "/src-${variant}/${f}"); @@ -201,12 +244,15 @@ let ]; }; srcs = { - third_party = map (x: + third_party = map ( + x: (fetchurl { inherit (x) url sha256 name; - }) // { + }) + // { inherit (x) md5name md5; - }) srcsAttributes.deps; + } + ) srcsAttributes.deps; translations = srcsAttributes.translations { inherit fetchurl fetchgit; }; help = srcsAttributes.help { inherit fetchurl fetchgit; }; }; @@ -216,66 +262,84 @@ let # See `postPatch` for details kdeDeps = symlinkJoin { name = "libreoffice-kde-dependencies-${version}"; - paths = flatten (map (e: [ (getDev e) (getLib e) ]) [ - qtbase - qtmultimedia - qtx11extras - kconfig - kcoreaddons - ki18n - kio - kwindowsystem - ]); + paths = flatten ( + map + (e: [ + (getDev e) + (getLib e) + ]) + [ + qtbase + qtmultimedia + qtx11extras + kconfig + kcoreaddons + ki18n + kio + kwindowsystem + ] + ); }; tarballPath = "external/tarballs"; -in stdenv.mkDerivation (finalAttrs: { +in +stdenv.mkDerivation (finalAttrs: { pname = "libreoffice"; inherit version; src = srcsAttributes.main { inherit fetchurl fetchgit; }; - postUnpack = '' - mkdir -v $sourceRoot/${tarballPath} + postUnpack = + '' + mkdir -v $sourceRoot/${tarballPath} - ${flip concatMapStrings srcs.third_party (f: '' - ln -sfv ${f} $sourceRoot/${tarballPath}/${f.md5name} - ln -sfv ${f} $sourceRoot/${tarballPath}/${f.name} - '')} + ${flip concatMapStrings srcs.third_party (f: '' + ln -sfv ${f} $sourceRoot/${tarballPath}/${f.md5name} + ln -sfv ${f} $sourceRoot/${tarballPath}/${f.name} + '')} - '' + (if (variant != "collabora") then '' - ln -sv ${srcs.help} $sourceRoot/${tarballPath}/${srcs.help.name} - ln -svf ${srcs.translations} $sourceRoot/${tarballPath}/${srcs.translations.name} + '' + + ( + if (variant != "collabora") then + '' + ln -sv ${srcs.help} $sourceRoot/${tarballPath}/${srcs.help.name} + ln -svf ${srcs.translations} $sourceRoot/${tarballPath}/${srcs.translations.name} - tar -xf ${srcs.help} - tar -xf ${srcs.translations} - '' else '' - cp -r --no-preserve=mode ${srcs.help}/. $sourceRoot/helpcontent2/ - cp -r --no-preserve=mode ${srcs.translations}/. $sourceRoot/translations/ - ''); + tar -xf ${srcs.help} + tar -xf ${srcs.translations} + '' + else + '' + cp -r --no-preserve=mode ${srcs.help}/. $sourceRoot/helpcontent2/ + cp -r --no-preserve=mode ${srcs.translations}/. $sourceRoot/translations/ + '' + ); - patches = [ - # Skip some broken tests: - # - tdf160386 does not fall back to a CJK font properly for some reason - # - the remaining tests have notes in the patches - # FIXME: get rid of this ASAP - ./skip-broken-tests.patch - (./skip-broken-tests- + variant + ".patch") + patches = + [ + # Skip some broken tests: + # - tdf160386 does not fall back to a CJK font properly for some reason + # - the remaining tests have notes in the patches + # FIXME: get rid of this ASAP + ./skip-broken-tests.patch + (./skip-broken-tests- + variant + ".patch") - # Don't detect Qt paths from qmake, so our patched-in onese are used - ./dont-detect-qt-paths-from-qmake.patch + # Don't detect Qt paths from qmake, so our patched-in onese are used + ./dont-detect-qt-paths-from-qmake.patch - # Revert part of https://github.com/LibreOffice/core/commit/6f60670877208612b5ea320b3677480ef6508abb that broke zlib linking - ./readd-explicit-zlib-link.patch - ] ++ lib.optionals (lib.versionOlder version "24.8") [ - (fetchpatch2 { - name = "icu74-compat.patch"; - url = "https://gitlab.archlinux.org/archlinux/packaging/packages/libreoffice-fresh/-/raw/main/libreoffice-7.5.8.2-icu-74-compatibility.patch?ref_type=heads.patch"; - hash = "sha256-OGBPIVQj8JTYlkKywt4QpH7ULAzKmet5jTLztGpIS0Y="; - }) - ] ++ lib.optionals (variant == "collabora") [ - ./fix-unpack-collabora.patch - ]; + # Revert part of https://github.com/LibreOffice/core/commit/6f60670877208612b5ea320b3677480ef6508abb that broke zlib linking + ./readd-explicit-zlib-link.patch + ] + ++ lib.optionals (lib.versionOlder version "24.8") [ + (fetchpatch2 { + name = "icu74-compat.patch"; + url = "https://gitlab.archlinux.org/archlinux/packaging/packages/libreoffice-fresh/-/raw/main/libreoffice-7.5.8.2-icu-74-compatibility.patch?ref_type=heads.patch"; + hash = "sha256-OGBPIVQj8JTYlkKywt4QpH7ULAzKmet5jTLztGpIS0Y="; + }) + ] + ++ lib.optionals (variant == "collabora") [ + ./fix-unpack-collabora.patch + ]; postPatch = '' # configure checks for header 'gpgme++/gpgmepp_version.h', @@ -303,238 +367,251 @@ in stdenv.mkDerivation (finalAttrs: { pkg-config ]; - buildInputs = finalAttrs.passthru.gst_packages ++ [ - # Make libpng not handle APNG images, so LibreOffice's own handler kicks in - # This should be ordered first, so it gets picked up before any other - # propagated libpng - # See: https://www.mail-archive.com/libreoffice@lists.freedesktop.org/msg334080.html - (libpng.override { apngSupport = false; }) - perlPackages.ArchiveZip - coinmp - perlPackages.IOCompress - abseil-cpp - ant - bluez5 - boost - box2d - cairo - clucene_core_2 - cppunit - cups - curl - db - dbus-glib - expat - file - flex - fontconfig - freetype - getopt - gettext - glib - glm - adwaita-icon-theme - gperf - gpgme - graphite2 - gtk3 - (harfbuzz.override { withIcu = true; }) - hunspell - icu - jre' - lcms2 - libGL - libGLU - xorg.libX11 - xorg.libXaw - xorg.libXdmcp - xorg.libXext - xorg.libXi - xorg.libXinerama - xorg.libXtst - libabw - libargon2 - libatomic_ops - libcdr - libcmis - libe-book - libepoxy - libepubgen - libetonyek - libexttextcat - libjpeg - liblangtag - libmspack - libmwaw - libmysqlclient - libodfgen - liborcus - xorg.libpthreadstubs - librdf_redland - librevenge - librsvg - libsndfile - libvisio - libwpd - libwpg - libwps - libxml2 - xorg.libxshmfence - libxslt - libzmf - libwebp - lp_solve - mdds - mythes - ncurses - neon - nspr - nss - openldap - openssl - pam - perl - poppler - libpq - python311 - sane-backends - unixODBC - unzip - util-linux - which - xmlsec - zip - zlib - ] ++ optionals kdeIntegration [ - qtbase - qtx11extras - kcoreaddons - kio - ]; + buildInputs = + finalAttrs.passthru.gst_packages + ++ [ + # Make libpng not handle APNG images, so LibreOffice's own handler kicks in + # This should be ordered first, so it gets picked up before any other + # propagated libpng + # See: https://www.mail-archive.com/libreoffice@lists.freedesktop.org/msg334080.html + (libpng.override { apngSupport = false; }) + perlPackages.ArchiveZip + coinmp + perlPackages.IOCompress + abseil-cpp + ant + bluez5 + boost + box2d + cairo + clucene_core_2 + cppunit + cups + curl + db + dbus-glib + expat + file + flex + fontconfig + freetype + getopt + gettext + glib + glm + adwaita-icon-theme + gperf + gpgme + graphite2 + gtk3 + (harfbuzz.override { withIcu = true; }) + hunspell + icu + jre' + lcms2 + libGL + libGLU + xorg.libX11 + xorg.libXaw + xorg.libXdmcp + xorg.libXext + xorg.libXi + xorg.libXinerama + xorg.libXtst + libabw + libargon2 + libatomic_ops + libcdr + libcmis + libe-book + libepoxy + libepubgen + libetonyek + libexttextcat + libjpeg + liblangtag + libmspack + libmwaw + libmysqlclient + libodfgen + liborcus + xorg.libpthreadstubs + librdf_redland + librevenge + librsvg + libsndfile + libvisio + libwpd + libwpg + libwps + libxml2 + xorg.libxshmfence + libxslt + libzmf + libwebp + lp_solve + mdds + mythes + ncurses + neon + nspr + nss + openldap + openssl + pam + perl + poppler + libpq + python311 + sane-backends + unixODBC + unzip + util-linux + which + xmlsec + zip + zlib + ] + ++ optionals kdeIntegration [ + qtbase + qtx11extras + kcoreaddons + kio + ]; - preConfigure = '' - configureFlagsArray=( - "--with-parallelism=$NIX_BUILD_CORES" - # here because we need to be very specific about spaces - "--with-lang=${concatStringsSep " " langs}" + preConfigure = + '' + configureFlagsArray=( + "--with-parallelism=$NIX_BUILD_CORES" + # here because we need to be very specific about spaces + "--with-lang=${concatStringsSep " " langs}" + ); + + patchShebangs . + + NOCONFIGURE=1 ./autogen.sh + '' + + optionalString kdeIntegration '' + # configure.ac assumes that the first directory that contains headers and + # libraries during its checks contains *all* the relevant headers/libs which + # obviously doesn't work for us, so we have 2 options: + # + # 1. patch configure.ac in order to specify the direct paths to various Qt/KDE + # dependencies which is ugly and brittle, or + # + # 2. use symlinkJoin to pull in the relevant dependencies and just patch in + # that path which is *also* ugly, but far less likely to break + # + # The 2nd option is not very Nix'y, but I'll take robust over nice any day. + # Additionally, it's much easier to fix if LO breaks on the next upgrade (just + # add the missing dependencies to it). + export QT${qtMajor}INC=${kdeDeps}/include + export QT${qtMajor}LIB=${kdeDeps}/lib + export KF${qtMajor}INC="${kdeDeps}/include ${kdeDeps}/include/KF${qtMajor}" + export KF${qtMajor}LIB=${kdeDeps}/lib + ''; + + configureFlags = + [ + # Explicitly passing in --host even on non-cross, because + # LibreOffice will attempt to detect WSL and cross-compile + # itself to Windows automatically, and we don't want it + # doing that. + "--host=${stdenv.hostPlatform.config}" + "--without-buildconfig-recorded" + + (lib.withFeature withHelp "help") + "--with-boost=${getDev boost}" + "--with-boost-libdir=${getLib boost}/lib" + "--with-beanshell-jar=${bsh}" + "--with-vendor=NixOS" + "--disable-report-builder" + "--disable-online-update" + "--enable-python=system" + "--enable-dbus" + "--enable-release-build" + "--enable-epm" + "--with-ant-home=${ant.home}" + + # Without these, configure does not finish + "--without-junit" + + # Schema files for validation are not included in the source tarball + "--without-export-validation" + + # We do tarball prefetching ourselves + "--disable-fetch-external" + "--enable-build-opensymbol" + + # I imagine this helps. Copied from go-oo. + # Modified on every upgrade, though + "--disable-odk" + "--disable-firebird-sdbc" + (lib.withFeature withFonts "fonts") + "--without-doxygen" + + "--with-system-beanshell" + "--with-system-cairo" + "--with-system-coinmp" + "--with-system-headers" + "--with-system-libabw" + "--with-system-libcmis" + "--with-system-libepubgen" + "--with-system-libetonyek" + "--with-system-liblangtag" + "--with-system-libs" + "--with-system-libwps" + "--with-system-lpsolve" + "--with-system-mdds" + "--with-system-openldap" + "--with-system-openssl" + "--with-system-orcus" + "--with-system-postgresql" + "--with-system-xmlsec" + + # TODO: package these as system libraries + "--without-system-altlinuxhyph" + "--without-system-frozen" + "--without-system-libfreehand" + "--without-system-libmspub" + "--without-system-libnumbertext" + "--without-system-libpagemaker" + "--without-system-libstaroffice" + "--without-system-libqxp" + "--without-system-dragonbox" + "--without-system-libfixmath" + + # requires an oddly specific, old version + "--without-system-hsqldb" + + # searches hardcoded paths that are wrong + "--without-system-zxing" + + # is packaged but headers can't be found because there is no pkg-config file + "--without-system-zxcvbn" + ] + ++ optionals kdeIntegration [ + "--enable-kf${qtMajor}" + "--enable-qt${qtMajor}" + ] + ++ optionals (kdeIntegration && qtMajor == "5") [ + "--enable-gtk3-kde5" + ] + ++ ( + if variant == "fresh" then + [ + "--with-system-rhino" + "--with-rhino-jar=${rhino}/share/java/js.jar" + + "--without-system-java-websocket" + ] + else + [ + # our Rhino is too new for older versions + "--without-system-rhino" + ] ); - patchShebangs . - - NOCONFIGURE=1 ./autogen.sh - '' + optionalString kdeIntegration '' - # configure.ac assumes that the first directory that contains headers and - # libraries during its checks contains *all* the relevant headers/libs which - # obviously doesn't work for us, so we have 2 options: - # - # 1. patch configure.ac in order to specify the direct paths to various Qt/KDE - # dependencies which is ugly and brittle, or - # - # 2. use symlinkJoin to pull in the relevant dependencies and just patch in - # that path which is *also* ugly, but far less likely to break - # - # The 2nd option is not very Nix'y, but I'll take robust over nice any day. - # Additionally, it's much easier to fix if LO breaks on the next upgrade (just - # add the missing dependencies to it). - export QT${qtMajor}INC=${kdeDeps}/include - export QT${qtMajor}LIB=${kdeDeps}/lib - export KF${qtMajor}INC="${kdeDeps}/include ${kdeDeps}/include/KF${qtMajor}" - export KF${qtMajor}LIB=${kdeDeps}/lib - ''; - - configureFlags = [ - # Explicitly passing in --host even on non-cross, because - # LibreOffice will attempt to detect WSL and cross-compile - # itself to Windows automatically, and we don't want it - # doing that. - "--host=${stdenv.hostPlatform.config}" - "--without-buildconfig-recorded" - - (lib.withFeature withHelp "help") - "--with-boost=${getDev boost}" - "--with-boost-libdir=${getLib boost}/lib" - "--with-beanshell-jar=${bsh}" - "--with-vendor=NixOS" - "--disable-report-builder" - "--disable-online-update" - "--enable-python=system" - "--enable-dbus" - "--enable-release-build" - "--enable-epm" - "--with-ant-home=${ant.home}" - - # Without these, configure does not finish - "--without-junit" - - # Schema files for validation are not included in the source tarball - "--without-export-validation" - - # We do tarball prefetching ourselves - "--disable-fetch-external" - "--enable-build-opensymbol" - - # I imagine this helps. Copied from go-oo. - # Modified on every upgrade, though - "--disable-odk" - "--disable-firebird-sdbc" - (lib.withFeature withFonts "fonts") - "--without-doxygen" - - "--with-system-beanshell" - "--with-system-cairo" - "--with-system-coinmp" - "--with-system-headers" - "--with-system-libabw" - "--with-system-libcmis" - "--with-system-libepubgen" - "--with-system-libetonyek" - "--with-system-liblangtag" - "--with-system-libs" - "--with-system-libwps" - "--with-system-lpsolve" - "--with-system-mdds" - "--with-system-openldap" - "--with-system-openssl" - "--with-system-orcus" - "--with-system-postgresql" - "--with-system-xmlsec" - - # TODO: package these as system libraries - "--without-system-altlinuxhyph" - "--without-system-frozen" - "--without-system-libfreehand" - "--without-system-libmspub" - "--without-system-libnumbertext" - "--without-system-libpagemaker" - "--without-system-libstaroffice" - "--without-system-libqxp" - "--without-system-dragonbox" - "--without-system-libfixmath" - - # requires an oddly specific, old version - "--without-system-hsqldb" - - # searches hardcoded paths that are wrong - "--without-system-zxing" - - # is packaged but headers can't be found because there is no pkg-config file - "--without-system-zxcvbn" - ] ++ optionals kdeIntegration [ - "--enable-kf${qtMajor}" - "--enable-qt${qtMajor}" - ] ++ optionals (kdeIntegration && qtMajor == "5") [ - "--enable-gtk3-kde5" - ] ++ (if variant == "fresh" then [ - "--with-system-rhino" - "--with-rhino-jar=${rhino}/share/java/js.jar" - - "--without-system-java-websocket" - ] else [ - # our Rhino is too new for older versions - "--without-system-rhino" - ]); - - env = { # FIXME: this is a hack, because the right cflags are not being picked up # from rasqal's .pc file. Needs more investigation. @@ -561,7 +638,7 @@ in stdenv.mkDerivation (finalAttrs: { checkTarget = concatStringsSep " " [ "unitcheck" "slowcheck" - "--keep-going" # easier to debug test failures + "--keep-going" # easier to debug test failures ]; postInstall = optionalString (variant != "collabora") '' @@ -654,7 +731,9 @@ in stdenv.mkDerivation (finalAttrs: { # (see above), make sure these don't leak again by accident. # FIXME: disabled for kdeIntegration builds because the weird symlinkJoin setup # leaks all the -dev dependencies :( - disallowedRequisites = lib.optionals (!kdeIntegration) (lib.concatMap (x: lib.optional (x?dev) x.dev) finalAttrs.buildInputs); + disallowedRequisites = lib.optionals (!kdeIntegration) ( + lib.concatMap (x: lib.optional (x ? dev) x.dev) finalAttrs.buildInputs + ); requiredSystemFeatures = [ "big-parallel" ]; @@ -664,7 +743,11 @@ in stdenv.mkDerivation (finalAttrs: { homepage = "https://libreoffice.org/"; # at least one jar in dependencies sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; - license = with lib.licenses; [ mpl20 lgpl3Plus asl20 ]; + license = with lib.licenses; [ + mpl20 + lgpl3Plus + asl20 + ]; maintainers = with lib.maintainers; [ raskin ]; platforms = lib.platforms.linux; mainProgram = "libreoffice";