about summary refs log tree commit diff
path: root/pkgs/applications/office
diff options
context:
space:
mode:
authorgnidorah <gnidorah@users.noreply.github.com>2017-06-04 14:47:27 +0300
committergnidorah <gnidorah@users.noreply.github.com>2017-06-04 14:47:27 +0300
commit4def9b8f42b96af86f50317df74d58ded6317848 (patch)
treeddd807829d0be25dcb77ec2d27e01f61ef6243f7 /pkgs/applications/office
parentad7bee4eb406b88c77cb53edbe9d4de44e7e692d (diff)
wpsoffice: cleanup and i686 version
Diffstat (limited to 'pkgs/applications/office')
-rw-r--r--pkgs/applications/office/wpsoffice/default.nix69
1 files changed, 46 insertions, 23 deletions
diff --git a/pkgs/applications/office/wpsoffice/default.nix b/pkgs/applications/office/wpsoffice/default.nix
index d6640b6c5bb68..41dd8595c30d9 100644
--- a/pkgs/applications/office/wpsoffice/default.nix
+++ b/pkgs/applications/office/wpsoffice/default.nix
@@ -1,32 +1,38 @@
-{stdenv, fetchurl, unzip, libX11, libcxxabi, glib, xorg, qt4, fontconfig, phonon, freetype, zlib, libpng12, libICE, libXrender, cups, lib}:
+{ stdenv, fetchurl, fetchFromGitHub
+, libX11, glib, xorg, fontconfig, freetype
+, zlib, libpng12, libICE, libXrender, cups }:
+
+let
+  bits = if stdenv.system == "x86_64-linux" then "x86_64"
+         else "x86";
 
-stdenv.mkDerivation rec{
-  name = "wpsoffice-${version}";
   version = "10.1.0.5672";
+in stdenv.mkDerivation rec{
+  name = "wpsoffice-${version}";
 
   src = fetchurl {
-    name = "${name}.tar.gz";
-    url = "http://kdl.cc.ksosoft.com/wps-community/download/a21/wps-office_10.1.0.5672~a21_x86_64.tar.xz";
-    sha1 = "7e9b17572ed5cea50af24f01457f726fc558a515";
+    name = "${name}.tar.xz";
+    url = "http://kdl.cc.ksosoft.com/wps-community/download/a21/wps-office_${version}~a21_${bits}.tar.xz";
+    sha256 = if bits == "x86_64" then
+      "0mi3n9kplf82gd0g2m0np957agy53p4g1qh81pbban49r4n0ajcz" else
+      "1dk400ap5qwdhjvn8lnk602f5akayr391fkljxdkrpn5xac01m97";
   };
   
   meta = {
     description = "Office program originally named Kingsoft Office";
     homepage = http://wps-community.org/;
-    platforms = [ "x86_64-linux" ];
-    # Binary for i686 is also available if someone can package it
-    license = lib.licenses.unfreeRedistributable;
+    platforms = [ "i686-linux" "x86_64-linux" ];
+    hydraPlatforms = [];
+    license = stdenv.lib.licenses.unfreeRedistributable;
   };
 
   libPath = stdenv.lib.makeLibraryPath [
     libX11
-    libcxxabi
     libpng12
     glib
     xorg.libSM
     xorg.libXext
     fontconfig
-    phonon
     zlib
     freetype
     libICE
@@ -34,19 +40,36 @@ stdenv.mkDerivation rec{
     libXrender
   ];
 
-  phases = [ "unpackPhase" "installPhase" ];
+  dontPatchELF = true;
 
   installPhase = ''
-    cp -r . "$out"
-    chmod +x "$out/office6/wpp"
-    patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) --force-rpath --set-rpath "$out/office6:$libPath" "$out/office6/wpp"
-    chmod +x "$out/office6/wps"
-    patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) --force-rpath --set-rpath "$out/office6:$libPath" "$out/office6/wps"
-    chmod +x "$out/office6/et"
-    patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) --force-rpath --set-rpath "$out/office6:$libPath" "$out/office6/et"
-    mkdir -p "$out/bin/"
-    ln -s "$out/office6/wpp" "$out/bin/wpspresentation"
-    ln -s "$out/office6/wps" "$out/bin/wpswriter"
-    ln -s "$out/office6/et" "$out/bin/wpsspreadsheets"
+    prefix=$out/opt/kingsoft/wps-office
+    mkdir -p $prefix
+    cp -r . $prefix
+
+    # Avoid forbidden reference error due use of patchelf
+    rm -r $PWD
+
+    mkdir $out/bin
+    for i in wps wpp et; do
+      patchelf \
+        --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+        --force-rpath --set-rpath "$prefix/office6:$libPath" \
+        $prefix/office6/$i
+
+      substitute $prefix/$i $out/bin/$i \
+        --replace /opt/kingsoft/wps-office $prefix
+      chmod +x $out/bin/$i
+
+      substituteInPlace $prefix/resource/applications/wps-office-$i.desktop \
+        --replace /usr/bin $out/bin
+    done
+
+    # China fonts
+    mkdir -p $prefix/resource/fonts/wps-office $out/etc/fonts/conf.d
+    ln -s $prefix/fonts/* $prefix/resource/fonts/wps-office
+    ln -s $prefix/fontconfig/*.conf $out/etc/fonts/conf.d
+
+    ln -s $prefix/resource $out/share
   '';
 }