summary refs log tree commit diff
path: root/pkgs/applications/office
diff options
context:
space:
mode:
authorBobby Rong <rjl931189261@126.com>2022-08-26 22:52:41 +0800
committerGitHub <noreply@github.com>2022-08-26 22:52:41 +0800
commit2fc3f8af09e5d3f7d24f10287267dcd0ae798929 (patch)
tree322386b2af14ad6b5bdbb1e016884b4646f913d3 /pkgs/applications/office
parentcf793de1b0c6758a7b9ed0bec7563ed8123d412d (diff)
parent6fc3f6e38145e03b27d093fd289bce45a04bdfba (diff)
downloadnixpkgs-2fc3f8af09e5d3f7d24f10287267dcd0ae798929.tar
nixpkgs-2fc3f8af09e5d3f7d24f10287267dcd0ae798929.tar.gz
nixpkgs-2fc3f8af09e5d3f7d24f10287267dcd0ae798929.tar.bz2
nixpkgs-2fc3f8af09e5d3f7d24f10287267dcd0ae798929.tar.lz
nixpkgs-2fc3f8af09e5d3f7d24f10287267dcd0ae798929.tar.xz
nixpkgs-2fc3f8af09e5d3f7d24f10287267dcd0ae798929.tar.zst
nixpkgs-2fc3f8af09e5d3f7d24f10287267dcd0ae798929.zip
Merge pull request #178289 from wineee/wps
wpsoffice: 11.1.0.9615 -> 11.1.0.11664
Diffstat (limited to 'pkgs/applications/office')
-rw-r--r--pkgs/applications/office/wpsoffice/default.nix165
1 files changed, 43 insertions, 122 deletions
diff --git a/pkgs/applications/office/wpsoffice/default.nix b/pkgs/applications/office/wpsoffice/default.nix
index d909b26526a..d19a4a88fe7 100644
--- a/pkgs/applications/office/wpsoffice/default.nix
+++ b/pkgs/applications/office/wpsoffice/default.nix
@@ -1,157 +1,68 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , mkDerivation
 , fetchurl
 , dpkg
 , wrapGAppsHook
 , wrapQtAppsHook
+, autoPatchelfHook
 , alsa-lib
-, atk
-, bzip2
-, cairo
-, cups
-, dbus
-, expat
-, ffmpeg
-, fontconfig
-, freetype
-, gdk-pixbuf
-, glib
-, gperftools
-, gtk2-x11
-, libpng12
 , libtool
-, libuuid
-, libxml2
-, xz
 , nspr
-, nss
-, openssl
-, pango
-, qt4
-, qtbase
-, sqlite
-, unixODBC
+, mesa
+, libtiff
+, cups
 , xorg
-, zlib
-, steam
+, steam-run
 , makeWrapper
+, useChineseVersion ? false
 }:
 
 stdenv.mkDerivation rec {
   pname = "wpsoffice";
-  version = "11.1.0.9615";
+  version = "11.1.0.11664";
 
-  src = fetchurl {
-    url = "http://wdl1.pcfg.cache.wpscdn.com/wpsdl/wpsoffice/download/linux/9615/wps-office_11.1.0.9615.XA_amd64.deb";
-    sha256 = "0dpd4njpizclllps3qagipycfws935rhj9k5gmdhjfgsk0ns188w";
+  src = if useChineseVersion then fetchurl {
+    url = "https://wps-linux-personal.wpscdn.cn/wps/download/ep/Linux2019/${lib.last (lib.splitString "." version)}/wps-office_${version}_amd64.deb";
+    sha256 = "sha256-D2LhxBMHmQjVExa/63DHdws0V+EmOSlJzGq91jbuJHs=";
+  } else fetchurl {
+    url = "http://wdl1.pcfg.cache.wpscdn.com/wpsdl/wpsoffice/download/linux/${lib.last (lib.splitString "." version)}/wps-office_${version}.XA_amd64.deb";
+    sha256 = "sha256-9qZGqs4nsB9mWCJTi2x+vWmMF0sEoUYgEzLI//hijfU=";
   };
+
   unpackCmd = "dpkg -x $src .";
   sourceRoot = ".";
 
-  postUnpack = lib.optionalString (version == "11.1.0.9505") ''
-    # distribution is missing libjsapiservice.so, so we should not let
+  postUnpack = ''
+    # distribution is missing libkappessframework.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}
-  '';
+    rm -r opt/kingsoft/wps-office/office6/addons/pdfbatchcompression
 
-  nativeBuildInputs = [ dpkg wrapGAppsHook wrapQtAppsHook makeWrapper ];
+    # 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
+  '';
 
-  meta = with lib; {
-    description = "Office suite, formerly Kingsoft Office";
-    homepage = "https://www.wps.com/";
-    platforms = [ "x86_64-linux" ];
-    hydraPlatforms = [];
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    license = licenses.unfreeRedistributable;
-    maintainers = with maintainers; [ mlatus th0rgal ];
-  };
+  nativeBuildInputs = [ dpkg wrapGAppsHook wrapQtAppsHook makeWrapper autoPatchelfHook ];
 
-  buildInputs = with xorg; [
+  buildInputs = [
     alsa-lib
-    atk
-    bzip2
-    cairo
-    dbus.lib
-    expat
-    ffmpeg
-    fontconfig
-    freetype
-    gdk-pixbuf
-    glib
-    gperftools
-    gtk2-x11
-    libICE
-    libSM
-    libX11
-    libX11
-    libXScrnSaver
-    libXcomposite
-    libXcursor
-    libXdamage
-    libXext
-    libXfixes
-    libXi
-    libXrandr
-    libXrender
-    libXtst
-    libpng12
+    xorg.libXdamage
+    xorg.libXtst
     libtool
-    libuuid
-    libxcb
-    libxml2
-    xz
     nspr
-    nss
-    openssl
-    pango
-    qt4
-    qtbase
-    sqlite
-    unixODBC
-    zlib
+    mesa
+    libtiff
     cups.lib
   ];
 
-  dontPatchELF = true;
-
-  # wpsoffice uses `/build` in its own build system making nix things there
-  # 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 = let
-    steam-run = (steam.override {
-      extraPkgs = p: buildInputs;
-    }).run;
-  in ''
+  installPhase = ''
+    runHook preInstall
     prefix=$out/opt/kingsoft/wps-office
     mkdir -p $out
     cp -r opt $out
     cp -r usr/* $out
-    for lib in $unvendoredLibraries; do
-      rm -v "$prefix/office6/lib$lib"*.so{,.*}
-    done
     for i in wps wpp et wpspdf; do
       substituteInPlace $out/bin/$i \
         --replace /opt/kingsoft/wps-office $prefix
@@ -160,17 +71,18 @@ stdenv.mkDerivation rec {
       substituteInPlace $i \
         --replace /usr/bin $out/bin
     done
-
     for i in wps wpp et wpspdf; do
       mv $out/bin/$i $out/bin/.$i-orig
       makeWrapper ${steam-run}/bin/steam-run $out/bin/$i \
         --add-flags $out/bin/.$i-orig \
         --argv0 $i
     done
+    runHook postInstall
   '';
 
   dontWrapQtApps = true;
   dontWrapGApps = true;
+
   postFixup = ''
     for f in "$out"/bin/*; do
       echo "Wrapping $f"
@@ -179,4 +91,13 @@ stdenv.mkDerivation rec {
         "''${qtWrapperArgs[@]}"
     done
   '';
+
+  meta = with lib; {
+    description = "Office suite, formerly Kingsoft Office";
+    homepage = "https://www.wps.com";
+    platforms = [ "x86_64-linux" ];
+    hydraPlatforms = [ ];
+    license = licenses.unfreeRedistributable;
+    maintainers = with maintainers; [ mlatus th0rgal rewine ];
+  };
 }