diff options
author | Dmitry Kalinkin <dmitry.kalinkin@gmail.com> | 2020-04-14 02:11:36 -0400 |
---|---|---|
committer | Dmitry Kalinkin <dmitry.kalinkin@gmail.com> | 2020-04-15 13:52:49 -0400 |
commit | 593fd37ce6f8d0d2e2922b039c05a3f25545f88f (patch) | |
tree | c9d1fb04bcf52ff30df30d974a21cabe273d1963 /pkgs/applications | |
parent | f6e2834821e817bd2295f781e91bd53d85acbadf (diff) | |
download | nixlib-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.nix | 79 |
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 |