about summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
authorDmitry Kalinkin <dmitry.kalinkin@gmail.com>2020-04-14 02:11:36 -0400
committerDmitry Kalinkin <dmitry.kalinkin@gmail.com>2020-04-15 13:52:49 -0400
commit593fd37ce6f8d0d2e2922b039c05a3f25545f88f (patch)
treec9d1fb04bcf52ff30df30d974a21cabe273d1963 /pkgs/applications
parentf6e2834821e817bd2295f781e91bd53d85acbadf (diff)
downloadnixlib-593fd37ce6f8d0d2e2922b039c05a3f25545f88f.tar
nixlib-593fd37ce6f8d0d2e2922b039c05a3f25545f88f.tar.gz
nixlib-593fd37ce6f8d0d2e2922b039c05a3f25545f88f.tar.bz2
nixlib-593fd37ce6f8d0d2e2922b039c05a3f25545f88f.tar.lz
nixlib-593fd37ce6f8d0d2e2922b039c05a3f25545f88f.tar.xz
nixlib-593fd37ce6f8d0d2e2922b039c05a3f25545f88f.tar.zst
nixlib-593fd37ce6f8d0d2e2922b039c05a3f25545f88f.zip
wpsoffice: switch to autoPatchelfHook, update dependencies
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/office/wpsoffice/default.nix79
1 files changed, 61 insertions, 18 deletions
diff --git a/pkgs/applications/office/wpsoffice/default.nix b/pkgs/applications/office/wpsoffice/default.nix
index c6955016f894..497897a9a022 100644
--- a/pkgs/applications/office/wpsoffice/default.nix
+++ b/pkgs/applications/office/wpsoffice/default.nix
@@ -1,29 +1,38 @@
 { stdenv
+, mkDerivation
 , fetchurl
+, autoPatchelfHook
+, dpkg
+, wrapQtAppsHook
 , alsaLib
 , atk
+, bzip2
 , cairo
 , cups
 , dbus
-, dpkg
 , expat
+, ffmpeg_3
 , fontconfig
 , freetype
 , gdk-pixbuf
 , glib
+, gperftools
 , gtk2-x11
-, libICE
-, libX11
-, libXrender
 , libpng12
+, libtool
 , libuuid
+, libxml2
 , lzma
+, nspr
+, nss
+, openssl
 , pango
-, qt5
+, qt4
+, qtbase
 , sqlite
+, unixODBC
 , xorg
 , zlib
-, zotero
 }:
 
 stdenv.mkDerivation rec{
@@ -37,7 +46,13 @@ stdenv.mkDerivation rec{
   unpackCmd = "dpkg -x $src .";
   sourceRoot = ".";
 
-  nativeBuildInputs = [ qt5.wrapQtAppsHook dpkg ];
+  postUnpack = stdenv.lib.optionalString (version == "11.1.0.9505") ''
+    # distribution is missing libjsapiservice.so, so we should not let
+    # autoPatchelfHook fail on the following dead libraries
+    rm opt/kingsoft/wps-office/office6/{libjsetapi.so,libjswppapi.so,libjswpsapi.so}
+  '';
+
+  nativeBuildInputs = [ autoPatchelfHook dpkg wrapQtAppsHook ];
 
   meta = {
     description = "Office program originally named Kingsoft Office";
@@ -48,22 +63,24 @@ stdenv.mkDerivation rec{
     maintainers = [ stdenv.lib.maintainers.mlatus ];
   };
 
-  libPath = with xorg; stdenv.lib.makeLibraryPath [
+  buildInputs = with xorg; [
     alsaLib
     atk
+    bzip2
     cairo
-    cups
-    dbus.daemon.lib
+    dbus.lib
     expat
-    fontconfig
+    ffmpeg_3.out
     fontconfig.lib
     freetype
     gdk-pixbuf
     glib
+    gperftools
     gtk2-x11
     libICE
     libSM
     libX11
+    libX11
     libXScrnSaver
     libXcomposite
     libXcursor
@@ -75,13 +92,20 @@ stdenv.mkDerivation rec{
     libXrender
     libXtst
     libpng12
+    libtool.lib
     libuuid
     libxcb
+    libxml2
     lzma
+    nspr
+    nss
+    openssl
     pango
+    qt4
+    qtbase
     sqlite
+    unixODBC
     zlib
-    zotero
   ];
 
   dontPatchELF = true;
@@ -90,18 +114,37 @@ stdenv.mkDerivation rec{
   # references to nix own build directory
   noAuditTmpdir = true;
 
+  unvendoredLibraries = [
+    # Have to use parts of the vendored qt4
+    #"Qt"
+    "SDL2"
+    "bz2"
+    "avcodec"
+    "avdevice"
+    "avformat"
+    "avutil"
+    "swresample"
+    "swscale"
+    "jpeg"
+    "png"
+    # File saving breaks unless we are using vendored llvmPackages_8.libcxx
+    #"c++"
+    "ssl" "crypto"
+    "nspr"
+    "nss"
+    "odbc"
+    "tcmalloc" # gperftools
+  ];
+
   installPhase = ''
     prefix=$out/opt/kingsoft/wps-office
     mkdir -p $out
     cp -r opt $out
     cp -r usr/* $out
-    # Avoid forbidden reference error due use of patchelf
-    rm -r *
+    for lib in $unvendoredLibraries; do
+      rm -v "$prefix/office6/lib$lib"*.so{,.*}
+    done
     for i in wps wpp et wpspdf; do
-      patchelf \
-        --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-        --force-rpath --set-rpath "$(patchelf --print-rpath $prefix/office6/$i):${stdenv.cc.cc.lib}/lib64:${libPath}" \
-        $prefix/office6/$i
       substituteInPlace $out/bin/$i \
         --replace /opt/kingsoft/wps-office $prefix
     done