1{
2 lib,
3 stdenv,
4 fetchurl,
5 fetchpatch,
6 meson,
7 ninja,
8 pkg-config,
9 gettext,
10 itstool,
11 python3,
12 wrapGAppsHook4,
13 cairo,
14 gdk-pixbuf,
15 colord,
16 glib,
17 libadwaita,
18 gtk4,
19 gusb,
20 packagekit,
21 libwebp,
22 libxml2,
23 sane-backends,
24 vala,
25 gnome,
26 gobject-introspection,
27}:
28
29stdenv.mkDerivation rec {
30 pname = "simple-scan";
31 version = "46.0";
32
33 src = fetchurl {
34 url = "mirror://gnome/sources/simple-scan/${lib.versions.major version}/simple-scan-${version}.tar.xz";
35 hash = "sha256-wW5lkBQv5WO+UUMSKzu7U/awCn2p2VL2HEf6Jve08Kk=";
36 };
37
38 patches = [
39 # simple-scan: Use RDNN app ID
40 # https://gitlab.gnome.org/GNOME/simple-scan/-/issues/390
41 (fetchpatch {
42 url = "https://gitlab.gnome.org/GNOME/simple-scan/-/commit/c09a6def153e52494072a36233c7e7b3307b67bf.patch";
43 hash = "sha256-deyssrsVwPAfT5ru6c0LFwR2pEFnZ0v8wMqoi96tw8s=";
44 })
45 ];
46
47 nativeBuildInputs = [
48 meson
49 ninja
50 gettext
51 itstool
52 pkg-config
53 python3
54 wrapGAppsHook4
55 libxml2
56 gobject-introspection # For setup hook
57 vala
58 ];
59
60 buildInputs = [
61 cairo
62 gdk-pixbuf
63 colord
64 glib
65 gusb
66 libadwaita
67 gtk4
68 libwebp
69 packagekit
70 sane-backends
71 ];
72
73 postPatch = ''
74 patchShebangs data/meson_compile_gschema.py
75 '';
76
77 doCheck = true;
78
79 passthru = {
80 updateScript = gnome.updateScript {
81 packageName = "simple-scan";
82 };
83 };
84
85 meta = {
86 description = "Simple scanning utility";
87 mainProgram = "simple-scan";
88 longDescription = ''
89 A really easy way to scan both documents and photos. You can crop out the
90 bad parts of a photo and rotate it if it is the wrong way round. You can
91 print your scans, export them to pdf, or save them in a range of image
92 formats. Basically a frontend for SANE - which is the same backend as
93 XSANE uses. This means that all existing scanners will work and the
94 interface is well tested.
95 '';
96 homepage = "https://gitlab.gnome.org/GNOME/simple-scan";
97 changelog = "https://gitlab.gnome.org/GNOME/simple-scan/-/blob/${version}/NEWS?ref_type=tags";
98 license = lib.licenses.gpl3Plus;
99 teams = [ lib.teams.gnome ];
100 platforms = lib.platforms.linux;
101 };
102}