nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 nix-update-script,
6 cargo,
7 meson,
8 ninja,
9 pkg-config,
10 rustPlatform,
11 rustc,
12 wrapGAppsHook4,
13 cairo,
14 dbus,
15 gdk-pixbuf,
16 glib,
17 gtk4,
18 libadwaita,
19 openssl,
20 pango,
21 pipewire,
22 sqlite,
23 desktop-file-utils,
24 libxml2,
25 libsecret,
26}:
27
28stdenv.mkDerivation (finalAttrs: {
29 pname = "euphonica";
30 version = "0.98.1-beta.1";
31
32 src = fetchFromGitHub {
33 owner = "htkhiem";
34 repo = "euphonica";
35 tag = "v${finalAttrs.version}";
36 hash = "sha256-QFwkHFE+6CcZWwSKIUyf1RVQwHMkVqc4P6NacNgXnH0=";
37 fetchSubmodules = true;
38 };
39
40 passthru.updateScript = nix-update-script {
41 # to be dropped once there are stable releases
42 extraArgs = [
43 "--version=unstable"
44 ];
45 };
46
47 cargoDeps = rustPlatform.fetchCargoVendor {
48 inherit (finalAttrs) pname version src;
49 hash = "sha256-qbbmi6qRrrzhMl/JJcnaTlV0gzasM5ssZRX3+exGh0o=";
50 };
51
52 mesonBuildType = "release";
53
54 nativeBuildInputs = [
55 cargo
56 meson
57 ninja
58 pkg-config
59 rustPlatform.bindgenHook
60 rustPlatform.cargoSetupHook
61 rustc
62 wrapGAppsHook4
63 desktop-file-utils
64 ];
65
66 buildInputs = [
67 cairo
68 dbus
69 gdk-pixbuf
70 glib
71 gtk4
72 libadwaita
73 openssl
74 pango
75 pipewire
76 sqlite
77 libxml2
78 libsecret
79 ];
80
81 meta = {
82 description = "MPD client with delusions of grandeur, made with Rust, GTK and Libadwaita";
83 homepage = "https://github.com/htkhiem/euphonica";
84 license = lib.licenses.gpl3Plus;
85 maintainers = with lib.maintainers; [
86 paperdigits
87 aaravrav
88 ];
89 mainProgram = "euphonica";
90 platforms = with lib.platforms; linux;
91 };
92})