nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchurl,
5 appstream,
6 blueprint-compiler,
7 desktop-file-utils,
8 gjs,
9 gst_all_1,
10 libadwaita,
11 meson,
12 ninja,
13 pkg-config,
14 typescript,
15 wrapGAppsHook4,
16 gnome,
17}:
18stdenv.mkDerivation (finalAttrs: {
19 pname = "decibels";
20 version = "49.0";
21
22 src = fetchurl {
23 url = "mirror://gnome/sources/decibels/${lib.versions.major finalAttrs.version}/decibels-${finalAttrs.version}.tar.xz";
24 hash = "sha256-KbebouKWfmkUHjnwrSxnfjj+P/ufug+lx1MflNP2c8o=";
25 };
26
27 nativeBuildInputs = [
28 appstream
29 blueprint-compiler
30 desktop-file-utils
31 meson
32 ninja
33 pkg-config
34 typescript
35 wrapGAppsHook4
36 ];
37
38 buildInputs = [
39 gjs
40 gst_all_1.gstreamer
41 gst_all_1.gst-plugins-base # for GstVideo
42 gst_all_1.gst-plugins-bad # for GstPlay
43 gst_all_1.gst-plugins-good # for scaletempo
44 gst_all_1.gst-libav
45 libadwaita
46 ];
47
48 # NOTE: this is applied after install to ensure `tsc` doesn't
49 # mess with us
50 #
51 # gjs uses the invocation name to add gresource files
52 # to get around this, we set the entry point name manually
53 preFixup = ''
54 sed -i "1 a imports.package._findEffectiveEntryPointName = () => 'org.gnome.Decibels';" $out/bin/org.gnome.Decibels
55 '';
56
57 passthru = {
58 updateScript = gnome.updateScript {
59 packageName = "decibels";
60 };
61 };
62
63 meta = {
64 description = "Play audio files";
65 homepage = "https://gitlab.gnome.org/GNOME/decibels";
66 changelog = "https://gitlab.gnome.org/GNOME/decibels/-/blob/${finalAttrs.version}/NEWS?ref_type=tags";
67 license = lib.licenses.gpl3Only;
68 teams = [
69 lib.teams.gnome
70 lib.teams.gnome-circle
71 ];
72 mainProgram = "org.gnome.Decibels";
73 platforms = lib.platforms.linux;
74 };
75})