nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 meson,
6 ninja,
7 vala,
8 gtk3,
9 beets,
10 libgee,
11 glib,
12 libxml2,
13 unstableGitUpdater,
14 pkg-config,
15 cmake,
16}:
17
18stdenv.mkDerivation (finalAttrs: {
19 pname = "supergee";
20 version = "0-unstable-2023-11-21";
21
22 src = fetchFromGitHub {
23 owner = "DannyGB";
24 repo = "SuperGee";
25 rev = "c1232f6a8a9d4161644d728df793ffd3cb5cc4af";
26 hash = "sha256-lv7C4ku3MdiHxg1LfmnzT5Sx3DTtvP9g3XPOQlNBDkg=";
27 };
28
29 nativeBuildInputs = [
30 meson
31 ninja
32 libxml2.bin
33 vala
34 pkg-config
35 cmake
36 glib.bin
37 ];
38
39 buildInputs = [
40 gtk3
41 libgee
42 glib
43 ];
44
45 postPatch = ''
46 substituteInPlace BeetService.vala \
47 --replace-fail '"beet"' '"${lib.getExe beets}"'
48 '';
49
50 preConfigure = ''
51 pushd ..
52 find -exec chmod +w {} \;
53 mkdir build
54 cd build
55 mkdir SuperG@exe
56 glib-compile-resources --sourcedir ../resources --generate-source --target SuperG@exe/resources.c ../resources/superg.gresource.xml
57 popd
58 '';
59
60 installPhase = ''
61 runHook preInstall
62
63 install -Dm755 SuperG $out/bin/SuperG
64
65 runHook postInstall
66 '';
67
68 sourceRoot = "${finalAttrs.src.name}/src";
69
70 dontUseCmakeConfigure = true;
71
72 passthru = {
73 updateScript = unstableGitUpdater { hardcodeZeroVersion = true; };
74 };
75
76 meta = {
77 description = "Vala based UI for beets";
78 homepage = "https://github.com/DannyGB/SuperGee";
79 license = lib.licenses.gpl3Only;
80 platforms = lib.platforms.linux;
81 mainProgram = "SuperG";
82 maintainers = with lib.maintainers; [ bot-wxt1221 ];
83 };
84})