nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 alsa-lib,
5 appstream-glib,
6 cargo,
7 desktop-file-utils,
8 fetchFromGitHub,
9 glib,
10 gtk4,
11 libadwaita,
12 meson,
13 ninja,
14 nix-update-script,
15 pkg-config,
16 rustPlatform,
17 rustc,
18 wrapGAppsHook4,
19}:
20
21stdenv.mkDerivation (finalAttrs: {
22 pname = "exercise-timer";
23 version = "1.8.5";
24
25 src = fetchFromGitHub {
26 owner = "mfep";
27 repo = "exercise-timer";
28 tag = "v${finalAttrs.version}";
29 hash = "sha256-yparZ9XmHkjwvgpnERpi8hvRXdb8R+kAyFOFl+exXb4=";
30 fetchLFS = true;
31 };
32
33 cargoDeps = rustPlatform.fetchCargoVendor {
34 inherit (finalAttrs) pname version src;
35 hash = "sha256-JObzeiQHEGIDjOung3o8dpaXVcOoJS2v1hyrcS1fqcI=";
36 };
37
38 nativeBuildInputs = [
39 appstream-glib
40 cargo
41 desktop-file-utils
42 glib
43 gtk4
44 meson
45 ninja
46 pkg-config
47 rustPlatform.cargoSetupHook
48 rustc
49 wrapGAppsHook4
50 ];
51
52 buildInputs = [
53 alsa-lib
54 libadwaita
55 ];
56
57 doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
58
59 passthru = {
60 updateScript = nix-update-script { };
61 };
62
63 meta = {
64 description = "Timer app for high intensity interval training";
65 homepage = "https://apps.gnome.org/Hiit/";
66 changelog = "https://github.com/mfep/exercise-timer/blob/v${finalAttrs.version}/CHANGELOG.md";
67 license = lib.licenses.gpl3Only;
68 teams = [ lib.teams.gnome-circle ];
69 mainProgram = "hiit";
70 platforms = lib.platforms.linux;
71 };
72})