Use jdk11 instead of packaged java to fix printing

This commit is contained in:
Philipp Woelfel 2022-01-20 00:18:43 -07:00
parent c625aff4d1
commit a5b5ef0d37

View File

@ -1,11 +1,19 @@
{ stdenv, lib, fetchurl, dpkg, makeDesktopItem, copyDesktopItems
, autoPatchelfHook, makeWrapper, sane-backends, xorg, jdk11, gtk2, gtk3 }:
{ stdenv
, lib
, fetchurl
, dpkg
, makeDesktopItem
, copyDesktopItems
, autoPatchelfHook
, sane-backends
, jdk11
}:
let year = "2021";
in stdenv.mkDerivation rec {
pname = "pdfstudioviewer";
version = "${year}.1.2";
autoPatchelfIgnoreMissingDeps = true;
autoPatchelfIgnoreMissingDeps = false;
strictDeps = true;
src = fetchurl {
@ -15,15 +23,15 @@ in stdenv.mkDerivation rec {
sha256 = "128k3fm8m8zdykx4s30g5m2zl7cgmvs4qinf1w525zh84v56agz6";
};
buildInputs =
[ xorg.libXrandr xorg.libXtst sane-backends xorg.libXxf86vm gtk2 gtk3 ];
buildInputs = [
sane-backends
jdk11
];
nativeBuildInputs = [
autoPatchelfHook
dpkg
copyDesktopItems
jdk11 # for unpacking .jar.pack files
makeWrapper
];
desktopItems = [
@ -42,9 +50,12 @@ in stdenv.mkDerivation rec {
];
unpackPhase = "dpkg-deb -x $src .";
dontConfigure = true;
dontBuild = true;
postPatch = ''
substituteInPlace opt/${pname}${year}/${pname}${year} --replace "# INSTALL4J_JAVA_HOME_OVERRIDE=" "INSTALL4J_JAVA_HOME_OVERRIDE=${jdk11.out}"
'';
installPhase = ''
runHook preInstall
@ -52,15 +63,10 @@ in stdenv.mkDerivation rec {
mkdir -p $out/share
mkdir -p $out/share/pixmaps
cp -r opt/${pname}${year} $out/share/
rm -rf $out/share/${pname}${year}/jre
ln -s $out/share/${pname}${year}/.install4j/${pname}${year}.png $out/share/pixmaps/
ln -s $out/share/${pname}${year}/${pname}${year} $out/bin/${pname}
#Unpack jar files. Otherwise pdfstudio does this and fails due to read-only FS.
for pfile in $out/share/${pname}${year}/jre/lib/{,ext/}*.jar.pack; do
jar_file=`echo "$pfile" | awk '{ print substr($0,1,length($0)-5) }'`
unpack200 -r "$pfile" "$jar_file"
done
runHook postInstall
'';