d46a735b97
Fixes #435448 .
120 lines
3.2 KiB
Nix
120 lines
3.2 KiB
Nix
{
|
|
lib,
|
|
maven,
|
|
makeDesktopItem,
|
|
fetchFromGitHub,
|
|
temurin-jre-bin-21,
|
|
temurin-bin-21,
|
|
glib,
|
|
libxxf86vm,
|
|
libxtst,
|
|
gtk3,
|
|
libGL,
|
|
|
|
# native
|
|
copyDesktopItems,
|
|
wrapGAppsHook3,
|
|
gettext,
|
|
}:
|
|
|
|
let
|
|
mavenOurJdk = maven.override {
|
|
jdk_headless = temurin-jre-bin-21;
|
|
};
|
|
in
|
|
mavenOurJdk.buildMavenPackage rec {
|
|
pname = "pdfsam-basic";
|
|
version = "5.4.1";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "torakiki";
|
|
repo = "pdfsam";
|
|
rev = "v${version}";
|
|
hash = "sha256-9IzYnWYE0OD1b4xybl3NdaBvVSw6C4+1ORUnrotqSuc=";
|
|
};
|
|
|
|
mvnParameters = "-Drelease -Dmaven.test.skip";
|
|
mvnHash = "sha256-Y/wz/XuzDpT7qnk/pRBkv6PeI0GmqKXh54gqb7cWHHw=";
|
|
|
|
buildInputs = [
|
|
glib
|
|
libxxf86vm
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
# Used as the main java implementation. Also the build relies upon jlink
|
|
# which is included in this package.
|
|
temurin-bin-21
|
|
gettext
|
|
wrapGAppsHook3
|
|
copyDesktopItems
|
|
];
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
install -Dm0644 pdfsam-basic/src/deb/icon.svg $out/share/icons/pdfsam-basic.svg
|
|
mkdir $out/lib
|
|
tar -xf pdfsam-basic/target/pdfsam-basic-${version}-linux-x64.tar.gz -C $out/lib
|
|
mv $out/lib/pdfsam-basic-${version}-linux-x64 $out/lib/pdfsam-basic
|
|
# Based upon upstream's default $out/lib/pdfsam-basic/bin/pdfsam.sh file,
|
|
# but with Nix specific dynamically loaded libraries
|
|
makeWrapper ${temurin-jre-bin-21}/bin/java $out/bin/pdfsam-basic \
|
|
"''${gappsWrapperArgs[@]}" \
|
|
--prefix LD_LIBRARY_PATH : "${
|
|
lib.makeLibraryPath [
|
|
libxxf86vm
|
|
libxtst
|
|
gtk3
|
|
libGL
|
|
]
|
|
}" \
|
|
--argv0 pdfsam-basic \
|
|
--add-flags --enable-preview \
|
|
--add-flags "--module-path $out/lib/pdfsam-basic/lib" \
|
|
--add-flags "--module org.pdfsam.basic/org.pdfsam.basic.App" \
|
|
--add-flags "-Xmx512M" \
|
|
--add-flags "-Dprism.lcdtext=false" \
|
|
--add-flags "-splash:$out/lib/pdfsam-basic/splash.png" \
|
|
--add-flags "-Dapp.name=pdfsam-basic" \
|
|
--add-flags "-Dapp.home=$out/lib/pdfsam-basic" \
|
|
--add-flags "-Dbasedir=$out/lib/pdfsam-basic"
|
|
# Remove bundled executables, shared objects etc, that are not needed on
|
|
# Nix (we just need the jar files).
|
|
rm -r $out/lib/pdfsam-basic/{doc,bin,runtime}
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
# Based on upstream's desktop file:
|
|
# https://github.com/torakiki/pdfsam/blob/master/pdfsam-basic/src/deb/pdfsam-basic.desktop
|
|
desktopItems = [
|
|
(makeDesktopItem {
|
|
name = "PDFsam Basic";
|
|
exec = "pdfsam-basic";
|
|
icon = "pdfsam-basic";
|
|
comment = meta.description;
|
|
desktopName = "PDFsam Basic";
|
|
genericName = "PDF Split and Merge";
|
|
mimeTypes = [ "application/pdf" ];
|
|
categories = [ "Office" ];
|
|
})
|
|
];
|
|
|
|
meta = {
|
|
homepage = "https://github.com/torakiki/pdfsam";
|
|
description = "Multi-platform software designed to extract pages, split, merge, mix and rotate PDF files";
|
|
mainProgram = "pdfsam-basic";
|
|
sourceProvenance = with lib.sourceTypes; [
|
|
binaryBytecode
|
|
binaryNativeCode
|
|
];
|
|
license = lib.licenses.agpl3Plus;
|
|
platforms = [ "x86_64-linux" ];
|
|
maintainers = with lib.maintainers; [
|
|
doronbehar
|
|
_1000101
|
|
];
|
|
};
|
|
}
|