nixpkgs/pkgs/applications/graphics/swingsane/default.nix
2024-02-11 03:19:15 +01:00

64 lines
2.0 KiB
Nix

{ lib, stdenv, fetchurl, makeDesktopItem, unzip, jre, runtimeShell }:
stdenv.mkDerivation rec {
pname = "swingsane";
version = "0.2";
src = fetchurl {
sha256 = "15pgqgyw46yd2i367ax9940pfyvinyw2m8apmwhrn0ix5nywa7ni";
url = "mirror://sourceforge/swingsane/swingsane-${version}-bin.zip";
};
nativeBuildInputs = [ unzip ];
dontConfigure = true;
installPhase = let
execWrapper = ''
#!${runtimeShell}
exec ${jre}/bin/java -jar $out/share/java/swingsane/swingsane-${version}.jar "$@"
'';
desktopItem = makeDesktopItem {
name = "swingsane";
exec = "swingsane";
icon = "swingsane";
desktopName = "SwingSane";
genericName = "Scan from local or remote SANE servers";
comment = meta.description;
categories = [ "Office" ];
};
in ''
install -v -m 755 -d $out/share/java/swingsane/
install -v -m 644 *.jar $out/share/java/swingsane/
echo "${execWrapper}" > swingsane
install -v -D -m 755 swingsane $out/bin/swingsane
unzip -j swingsane-${version}.jar "com/swingsane/images/*.png"
install -v -D -m 644 swingsane_512x512.png $out/share/pixmaps/swingsane.png
cp -v -r ${desktopItem}/share/applications $out/share
'';
meta = with lib; {
description = "Java GUI for SANE scanner servers (saned)";
longDescription = ''
SwingSane is a powerful, cross platform, open source Java front-end for
using both local and remote Scanner Access Now Easy (SANE) servers.
The most powerful feature is its ability to query back-ends for scanner
specific options which can be set by the user as a scanner profile.
It also has support for authentication, mutlicast DNS discovery,
simultaneous scan jobs, image transformation jobs (deskew, binarize,
crop, etc), PDF and PNG output.
'';
homepage = "http://swingsane.com/";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.asl20;
platforms = platforms.all;
mainProgram = "swingsane";
};
}