1{
2 lib,
3 appstream,
4 blueprint-compiler,
5 desktop-file-utils,
6 fetchFromGitHub,
7 glib,
8 gobject-introspection,
9 gtk4,
10 libadwaita,
11 meson,
12 ninja,
13 nix-update-script,
14 pkg-config,
15 python3Packages,
16 wrapGAppsHook4,
17}:
18
19python3Packages.buildPythonApplication rec {
20 pname = "binary";
21 version = "5.3";
22 pyproject = false;
23
24 src = fetchFromGitHub {
25 owner = "fizzyizzy05";
26 repo = "binary";
27 tag = version;
28 hash = "sha256-kJLEDE/jHKc/VDGa0lcm4eM7nEMam0fbEW8YJVfc7OY=";
29 };
30
31 strictDeps = true;
32
33 nativeBuildInputs = [
34 appstream
35 blueprint-compiler
36 desktop-file-utils # for `desktop-file-validate`
37 glib # for `glib-compile-schemas`
38 gobject-introspection
39 gtk4 # for `gtk-update-icon-cache`
40 meson
41 ninja
42 pkg-config
43 wrapGAppsHook4
44 ];
45
46 buildInputs = [ libadwaita ];
47
48 dependencies = with python3Packages; [ pygobject3 ];
49
50 dontWrapGApps = true;
51 makeWrapperArgs = [ "\${gappsWrapperArgs[@]}" ];
52
53 # NOTE: `postCheck` is intentionally not used here, as the entire checkPhase
54 # is skipped by `buildPythonApplication`
55 # https://github.com/NixOS/nixpkgs/blob/9d4343b7b27a3e6f08fc22ead568233ff24bbbde/pkgs/development/interpreters/python/mk-python-derivation.nix#L296
56 postInstallCheck = ''
57 mesonCheckPhase
58 '';
59
60 passthru = {
61 updateScript = nix-update-script { };
62 };
63
64 meta = {
65 description = "Small and simple app to convert numbers to a different base";
66 homepage = "https://github.com/fizzyizzy05/binary";
67 changelog = "https://github.com/fizzyizzy05/binary/releases/tag/${version}";
68 license = lib.licenses.gpl3Plus;
69 teams = [ lib.teams.gnome-circle ];
70 mainProgram = "binary";
71 platforms = lib.platforms.linux;
72 };
73}