nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 buildDotnetModule,
5 dotnetCorePackages,
6 fetchFromGitHub,
7 wrapGAppsHook3,
8 gtk3,
9 gdk-pixbuf,
10 glib,
11 sane-backends,
12 libnotify,
13}:
14
15buildDotnetModule rec {
16 pname = "naps2";
17 version = "8.2.1";
18
19 src = fetchFromGitHub {
20 owner = "cyanfish";
21 repo = "naps2";
22 tag = "v${version}";
23 hash = "sha256-1OPFWmy9eDRnMJjYdzYubgfde7MNix8ZsSuN2ZHsvco=";
24 };
25
26 patches = [
27 ./01-donate-button.patch
28 ./02-button-dpi.patch
29 ];
30
31 projectFile = "NAPS2.App.Gtk/NAPS2.App.Gtk.csproj";
32 nugetDeps = ./deps.json;
33
34 dotnetFlags = [
35 "-p:TargetFrameworks=net9"
36 ];
37
38 executables = [ "naps2" ];
39
40 dotnet-sdk = dotnetCorePackages.sdk_9_0;
41 dotnet-runtime = dotnetCorePackages.runtime_9_0;
42
43 nativeBuildInputs = [ wrapGAppsHook3 ];
44
45 selfContainedBuild = true;
46 runtimeDeps = [
47 gtk3
48 gdk-pixbuf
49 glib
50 sane-backends
51 libnotify
52 ];
53
54 postInstall = ''
55 install -D NAPS2.Setup/config/linux/com.naps2.Naps2.desktop $out/share/applications/com.naps2.Naps2.desktop
56 install -D NAPS2.Lib/Icons/scanner-16-rev0.png $out/share/icons/hicolor/16x16/apps/com.naps2.Naps2.png
57 install -D NAPS2.Lib/Icons/scanner-32-rev2.png $out/share/icons/hicolor/32x32/apps/com.naps2.Naps2.png
58 install -D NAPS2.Lib/Icons/scanner-48-rev2.png $out/share/icons/hicolor/48x48/apps/com.naps2.Naps2.png
59 install -D NAPS2.Lib/Icons/scanner-64-rev2.png $out/share/icons/hicolor/64x64/apps/com.naps2.Naps2.png
60 install -D NAPS2.Lib/Icons/scanner-72-rev1.png $out/share/icons/hicolor/72x72/apps/com.naps2.Naps2.png
61 install -D NAPS2.Lib/Icons/scanner-128.png $out/share/icons/hicolor/128x128/apps/com.naps2.Naps2.png
62 case "${stdenv.hostPlatform.system}" in
63 x86_64-linux)
64 chmod a+x $out/lib/naps2/_linux/tesseract
65 ;;
66 aarch64-linux)
67 chmod a+x $out/lib/naps2/_linuxarm/tesseract
68 ;;
69 esac
70 '';
71
72 meta = {
73 description = "Scan documents to PDF and more, as simply as possible";
74 homepage = "https://www.naps2.com";
75 changelog = "https://github.com/cyanfish/naps2/blob/master/CHANGELOG.md";
76 license = lib.licenses.gpl2Plus;
77 maintainers = with lib.maintainers; [ eliandoran ];
78 platforms = lib.platforms.linux;
79 mainProgram = "naps2";
80 };
81
82}