nixpkgs/pkgs/applications/graphics/swingsane/default.nix
Profpatsch 4a7f99d55d treewide: with stdenv.lib; in meta -> with lib;
Part of: https://github.com/NixOS/nixpkgs/issues/108938

meta = with stdenv.lib;

is a widely used pattern. We want to slowly remove
the `stdenv.lib` indirection and encourage people
to use `lib` directly. Thus let’s start with the meta
field.

This used a rewriting script to mostly automatically
replace all occurances of this pattern, and add the
`lib` argument to the package header if it doesn’t
exist yet.

The script in its current form is available at
https://cs.tvl.fyi/depot@2f807d7f141068d2d60676a89213eaa5353ca6e0/-/blob/users/Profpatsch/nixpkgs-rewriter/default.nix
2021-01-11 10:38:22 +01:00

62 lines
1.9 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 ];
phases = [ "unpackPhase" "installPhase" ];
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/";
license = licenses.asl20;
platforms = platforms.all;
};
}