125 lines
4.4 KiB
Nix
125 lines
4.4 KiB
Nix
{ stdenv, requireFile, runCommand, fetchurl, libsForQt5, p7zip, openssl, libsecret, glib
|
|
, qt5, dbus, fontconfig, freetype, xorg, libGL }:
|
|
let
|
|
license = fetchurl {
|
|
url = "https://www.foxitsoftware.com/products/pdf-reader/eula.html";
|
|
sha256 = "0513x9i503h3yxf69j6d0k461pyr7pyvffdbxx364z9lanw4hb1z";
|
|
};
|
|
|
|
version = "2.4.4.0911";
|
|
|
|
unpacked = stdenv.mkDerivation {
|
|
pname = "foxit-reader-files";
|
|
inherit version;
|
|
|
|
src = if stdenv.system == "x86_64-linux" then
|
|
# /nix/store/l6xwnm2h3jy25yq3sinwikqw8sjx2rw4-FoxitReader-2.4.4.0911.x64
|
|
requireFile {
|
|
url = "http://foxitsoftware.com";
|
|
#name = "FoxitReader.2.4.4.0911.x64.tar.gz";
|
|
#sha256 = "0if5wn6jw2jz9jrdmxfnwkbggk2y0mn25x0ny7kqmlkk6snfwqkg";
|
|
name = "FoxitReader.enu.setup.2.4.4.0911.x64.run.tar.gz";
|
|
sha256 = "144v4jyclhi4qjpxdc1ip22m02ys272qd6001bkzg1nzxka9nmvb";
|
|
} else fetchurl {
|
|
url = "http://cdn09.foxitsoftware.com/pub/foxit/reader/desktop/linux/2.x/2.4/en_us/FoxitReader2.4.0.14978_Server_x86_enu_Setup.run.tar.gz";
|
|
sha256 = "1x3j76faflh84mnl119prgqskg4a90adry8mp0bc82q9dg6vy10q";
|
|
};
|
|
|
|
nativeBuildInputs = [ p7zip ];
|
|
|
|
phases = [ "installPhase" ];
|
|
|
|
positions = [
|
|
27055774 # fxplugins
|
|
30563301 # imageformats
|
|
30673930 # images
|
|
30727824 # lang
|
|
#30866319 # lib (actual content, replaced with nixpkgs libs)
|
|
63397954 # platforminputcontexts
|
|
63490947 # platforms (inputmethods)
|
|
63965424 # platformthemes (gtk adapter)
|
|
63991419 # printsupport
|
|
64284448 # resource (again, icons)
|
|
64299491 # rmssdk (some logging framework)
|
|
64836796 # sensors (fingerprint?!)
|
|
64854050 # sqldrivers (cloud, I guess)
|
|
65195808 # stamps (clipart)
|
|
66470077 # welcome
|
|
66585904 # Wrappers
|
|
# 66636680 # top-level (binary), handled separately
|
|
];
|
|
top_level_pos = 66636680; # keep updated with positions!
|
|
|
|
installPhase = ''
|
|
mkdir -p $out
|
|
tar xf $src
|
|
src=$(ls *.run)
|
|
for pos in ''${positions[@]}; do
|
|
tail -c +$pos $src > tmp$pos.7z
|
|
7z x -o$out tmp$pos.7z
|
|
rm tmp$pos.7z
|
|
done
|
|
|
|
pos=$top_level_pos
|
|
tail -c +$pos $src >tmp$pos.7z
|
|
7z x -o$out tmp$pos.7z FoxitReader FoxitReader.desktop
|
|
rm tmp$pos.7z
|
|
'';
|
|
};
|
|
|
|
openssl-so-wrapper = with stdenv.lib; runCommand "openssl-so-10" {} ''
|
|
mkdir -p $out/lib
|
|
ln -s ${getLib openssl}/lib/libssl.so $out/lib/libssl.so.10
|
|
ln -s ${getLib openssl}/lib/libcrypto.so $out/lib/libcrypto.so.10
|
|
'';
|
|
|
|
in
|
|
stdenv.mkDerivation rec {
|
|
pname = "foxit-reader";
|
|
inherit version;
|
|
|
|
src = unpacked;
|
|
|
|
buildInputs = [ qt5.wrapQtAppsHook ];
|
|
|
|
libPath = with qt5; with xorg; stdenv.lib.makeLibraryPath
|
|
[ stdenv.cc.cc stdenv.cc.cc.lib
|
|
glib libsecret openssl-so-wrapper libX11 libxcb libGL
|
|
dbus fontconfig freetype
|
|
qtwebkit qtbase qtxmlpatterns ];
|
|
|
|
phases = "unpackPhase installPhase fixupPhase";
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/{bin,lib,share/{pixmaps,applications,licenses}}
|
|
|
|
cp -r * $out/lib
|
|
|
|
#rm -rf $out/lib/lib
|
|
mv $out/lib/FoxitReader.desktop $out/share/applications
|
|
echo 'Exec=FoxitReader %U' >> $out/share/applications/FoxitReader.desktop
|
|
mv $out/lib/images/FoxitReader.png $out/share/pixmaps
|
|
ln -s $out/lib/FoxitReader $out/bin/FoxitReader
|
|
ln -s ${license} $out/share/licenses/eula.html
|
|
|
|
find $out/lib -type d -name .svn -exec rm -rf {} +
|
|
find $out/lib -type f -name .directory -exec rm -rf {} +
|
|
|
|
for f in $out/lib/fxplugins $out/lib/platforminputcontexts $out/lib/platformthemes $out/lib/printsupport $out/lib/rmssdk $out/lib/sensors $out/lib/sqldrivers ; do
|
|
find $f -type f -executable -exec patchelf --set-rpath $libPath:$out/lib/fxplugins {} \;
|
|
done
|
|
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath $libPath $out/lib/FoxitReader
|
|
'';
|
|
|
|
dontStrip = true;
|
|
dontPatchELF = true;
|
|
|
|
meta = {
|
|
description = "A versatile PDF reader application";
|
|
homepage = http://www.foxitsoftware.com;
|
|
license = stdenv.lib.licenses.unfree // { fullName = "Foxit EULA"; };
|
|
maintainer = [ stdenv.lib.maintainers.spacefrogg ];
|
|
platforms = [ "i686-linux" "x86_64-linux" ];
|
|
};
|
|
}
|