From ae7737333acbe580f01ce600f74b059e1f2f71db Mon Sep 17 00:00:00 2001 From: rewine Date: Tue, 16 May 2023 22:01:56 +0800 Subject: [PATCH 1/3] wpsoffice: don't need wrapGAppsHook nor wrapQtAppsHook --- .../applications/office/wpsoffice/default.nix | 44 +++++++++++-------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/pkgs/applications/office/wpsoffice/default.nix b/pkgs/applications/office/wpsoffice/default.nix index 53cd8d05ea69..14affb306d43 100644 --- a/pkgs/applications/office/wpsoffice/default.nix +++ b/pkgs/applications/office/wpsoffice/default.nix @@ -2,19 +2,22 @@ , stdenv , fetchurl , dpkg -, wrapGAppsHook -, wrapQtAppsHook , autoPatchelfHook , alsa-lib +, at-spi2-core , libtool +, libxkbcommon , nspr , mesa , libtiff -, cups +, libxslt , udev +, gtk3 +, gdk-pixbuf +, qtbase , xorg +, cups , pango -, makeWrapper , useChineseVersion ? false }: @@ -44,19 +47,34 @@ stdenv.mkDerivation rec { rm -r opt/kingsoft/wps-office/office6/addons/wppencoder/libwppencoder.so ''; - nativeBuildInputs = [ dpkg wrapGAppsHook wrapQtAppsHook makeWrapper autoPatchelfHook ]; + nativeBuildInputs = [ + dpkg + autoPatchelfHook + ]; buildInputs = [ alsa-lib - xorg.libXdamage - xorg.libXtst + at-spi2-core libtool + libxkbcommon nspr mesa libtiff + libxslt udev + gtk3 + gdk-pixbuf + qtbase + xorg.libXdamage + xorg.libXtst + xorg.libXrandr + xorg.libXcomposite + cups + pango ]; + dontWrapQtApps = true; + runtimeDependencies = map lib.getLib [ cups pango @@ -79,9 +97,6 @@ stdenv.mkDerivation rec { runHook postInstall ''; - dontWrapQtApps = true; - dontWrapGApps = true; - preFixup = '' # The following libraries need libtiff.so.5, but nixpkgs provides libtiff.so.6 patchelf --replace-needed libtiff.so.5 libtiff.so $out/opt/kingsoft/wps-office/office6/{libpdfmain.so,libqpdfpaint.so,qt/plugins/imageformats/libqtiff.so} @@ -89,15 +104,6 @@ stdenv.mkDerivation rec { patchelf --add-needed libudev.so.1 $out/opt/kingsoft/wps-office/office6/addons/cef/libcef.so ''; - postFixup = '' - for f in "$out"/bin/*; do - echo "Wrapping $f" - wrapProgram "$f" \ - "''${gappsWrapperArgs[@]}" \ - "''${qtWrapperArgs[@]}" - done - ''; - meta = with lib; { description = "Office suite, formerly Kingsoft Office"; homepage = "https://www.wps.com"; From d64d4bb38728661f5266043092183fd177e9abf1 Mon Sep 17 00:00:00 2001 From: rewine Date: Tue, 16 May 2023 23:07:41 +0800 Subject: [PATCH 2/3] wpsoffice: set autoPatchelfIgnoreMissingDeps rather than remove libraries --- .../applications/office/wpsoffice/default.nix | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/pkgs/applications/office/wpsoffice/default.nix b/pkgs/applications/office/wpsoffice/default.nix index 14affb306d43..1c2923c0d329 100644 --- a/pkgs/applications/office/wpsoffice/default.nix +++ b/pkgs/applications/office/wpsoffice/default.nix @@ -36,17 +36,6 @@ stdenv.mkDerivation rec { unpackCmd = "dpkg -x $src ."; sourceRoot = "."; - postUnpack = '' - # distribution is missing libkappessframework.so, so we should not let - # autoPatchelfHook fail on the following dead libraries - rm -r opt/kingsoft/wps-office/office6/addons/pdfbatchcompression - - # Remove the following libraries because they depend on qt4 - rm -r opt/kingsoft/wps-office/office6/{librpcetapi.so,librpcwpsapi.so,librpcwppapi.so,libavdevice.so.58.10.100,libmediacoder.so} - rm -r opt/kingsoft/wps-office/office6/addons/wppcapturer/libwppcapturer.so - rm -r opt/kingsoft/wps-office/office6/addons/wppencoder/libwppencoder.so - ''; - nativeBuildInputs = [ dpkg autoPatchelfHook @@ -69,6 +58,7 @@ stdenv.mkDerivation rec { xorg.libXtst xorg.libXrandr xorg.libXcomposite + xorg.libXv cups pango ]; @@ -80,6 +70,15 @@ stdenv.mkDerivation rec { pango ]; + autoPatchelfIgnoreMissingDeps = [ + # distribution is missing libkappessframework.so + "libkappessframework.so" + # qt4 support is deprecated + "libQtCore.so.4" + "libQtNetwork.so.4" + "libQtXml.so.4" + ]; + installPhase = '' runHook preInstall prefix=$out/opt/kingsoft/wps-office @@ -99,7 +98,7 @@ stdenv.mkDerivation rec { preFixup = '' # The following libraries need libtiff.so.5, but nixpkgs provides libtiff.so.6 - patchelf --replace-needed libtiff.so.5 libtiff.so $out/opt/kingsoft/wps-office/office6/{libpdfmain.so,libqpdfpaint.so,qt/plugins/imageformats/libqtiff.so} + patchelf --replace-needed libtiff.so.5 libtiff.so $out/opt/kingsoft/wps-office/office6/{libpdfmain.so,libqpdfpaint.so,qt/plugins/imageformats/libqtiff.so,addons/pdfbatchcompression/libpdfbatchcompressionapp.so} # dlopen dependency patchelf --add-needed libudev.so.1 $out/opt/kingsoft/wps-office/office6/addons/cef/libcef.so ''; From 34ebe70480280f09059fbdb75b4d88900e823bf3 Mon Sep 17 00:00:00 2001 From: rewine Date: Sat, 20 May 2023 16:05:14 +0800 Subject: [PATCH 3/3] wpsoffice: remove unnecessary build inputs --- pkgs/applications/office/wpsoffice/default.nix | 8 -------- 1 file changed, 8 deletions(-) diff --git a/pkgs/applications/office/wpsoffice/default.nix b/pkgs/applications/office/wpsoffice/default.nix index 1c2923c0d329..e1b0b94479d7 100644 --- a/pkgs/applications/office/wpsoffice/default.nix +++ b/pkgs/applications/office/wpsoffice/default.nix @@ -10,10 +10,8 @@ , nspr , mesa , libtiff -, libxslt , udev , gtk3 -, gdk-pixbuf , qtbase , xorg , cups @@ -49,18 +47,12 @@ stdenv.mkDerivation rec { nspr mesa libtiff - libxslt udev gtk3 - gdk-pixbuf qtbase xorg.libXdamage xorg.libXtst - xorg.libXrandr - xorg.libXcomposite xorg.libXv - cups - pango ]; dontWrapQtApps = true;