anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / misc / cobang / default.nix
blobe20bf9b818adc3d93187f3fb2d1251a7063744e7
1 { lib
2 , buildPythonApplication
3 , fetchFromGitHub
4 , brotlicffi
5 , gst-python
6 , kiss-headers
7 , logbook
8 , pillow
9 , pygobject3
10 , python-zbar
11 , requests
12 , single-version
13 , gobject-introspection
14 , gst-plugins-good
15 , gtk3
16 , libhandy
17 , librsvg
18 , networkmanager
19 , setuptools
20 , python
21 , pytestCheckHook
22 , wrapGAppsHook3
25 buildPythonApplication rec {
26   pname = "cobang";
27   version = "0.14.1";
28   pyproject = true;
30   src = fetchFromGitHub {
31     owner = "hongquan";
32     repo = "CoBang";
33     rev = "refs/tags/v${version}";
34     hash = "sha256-/8JtDoXFQGlM7tlwKd+WRIKpnKCD6OnMmbvElg7LbzU=";
35   };
37   postPatch = ''
38     # Fixes "Multiple top-level packages discovered in a flat-layout"
39     sed -i '$ a\[tool.setuptools]' pyproject.toml
40     sed -i '$ a\packages = ["cobang"]' pyproject.toml
41   '';
43   nativeBuildInputs = [
44     # Needed to recognize gobject namespaces
45     gobject-introspection
46     wrapGAppsHook3
47     setuptools
48   ];
50   buildInputs = [
51     # Requires v4l2src
52     gst-plugins-good
53     # For gobject namespaces
54     libhandy
55     networkmanager
56   ];
58   propagatedBuildInputs = [
59     brotlicffi
60     kiss-headers
61     logbook
62     pillow
63     requests
64     single-version
65     # Unlisted dependencies
66     pygobject3
67     python-zbar
68     # Needed as a gobject namespace and to fix 'Caps' object is not subscriptable
69     gst-python
70   ];
72   nativeCheckInputs = [
73     pytestCheckHook
74   ];
76   # Wrapping this manually for SVG recognition
77   dontWrapGApps = true;
79   postInstall = ''
80     # Needed by the application
81     cp -R data $out/${python.sitePackages}/
83     # Icons and applications
84     install -Dm 644 $out/${python.sitePackages}/data/vn.hoabinh.quan.CoBang.svg -t $out/share/pixmaps/
85     install -Dm 644 $out/${python.sitePackages}/data/vn.hoabinh.quan.CoBang.desktop.in -t $out/share/applications/
86     mv $out/${python.sitePackages}/data/vn.hoabinh.quan.CoBang.desktop{.in,}
87   '';
89   preFixup = ''
90     wrapProgram $out/bin/cobang \
91       ''${gappsWrapperArgs[@]} \
92       --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
93       --set GDK_PIXBUF_MODULE_FILE "${librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"
94   '';
96   meta = with lib; {
97     description = "QR code scanner desktop app for Linux";
98     homepage = "https://github.com/hongquan/CoBang";
99     license = licenses.gpl3Only;
100     maintainers = with maintainers; [ aleksana dvaerum ];
101     mainProgram = "cobang";
102     platforms = lib.platforms.linux;
103   };