1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 autoreconfHook,
6 gtk-doc,
7 intltool,
8 itstool,
9 libtool,
10 pkg-config,
11 wrapGAppsHook3,
12 yelp-tools,
13 clutter-gtk,
14 gst_all_1,
15 glib,
16 gtk2,
17 libgsf,
18 libxml2,
19 fluidsynth,
20 orc,
21}:
22
23stdenv.mkDerivation {
24 pname = "buzztrax";
25 version = "unstable-2022-01-26";
26
27 src = fetchFromGitHub {
28 owner = "Buzztrax";
29 repo = "buzztrax";
30 rev = "833287c6a06bddc922cd346d6f0fcec7a882aee5";
31 hash = "sha256-iI6m+zBWDDBjmeuU9Nm4aIbEKfaPe36APPktdjznQpU=";
32 };
33
34 postPatch = ''
35 touch AUTHORS
36 '';
37
38 nativeBuildInputs = [
39 autoreconfHook
40 gtk-doc
41 intltool
42 itstool
43 libtool
44 pkg-config
45 wrapGAppsHook3
46 yelp-tools
47 ];
48
49 buildInputs = [
50 clutter-gtk
51 gst_all_1.gstreamer
52 gst_all_1.gst-plugins-base
53 gst_all_1.gst-plugins-good
54 glib
55 gtk2
56 libgsf
57 libxml2
58 # optional packages
59 fluidsynth
60 gst_all_1.gst-plugins-bad
61 gst_all_1.gst-plugins-ugly
62 orc
63 ];
64
65 # 'g_memdup' is deprecated: Use 'g_memdup2' instead
66 env.NIX_CFLAGS_COMPILE =
67 "-Wno-error=deprecated-declarations"
68 # Suppress incompatible function pointer error in clang due to libxml2 2.12 const changes
69 + lib.optionalString stdenv.cc.isClang " -Wno-error=incompatible-function-pointer-types";
70
71 meta = with lib; {
72 description = "Buzztrax is a modular music composer for Linux";
73 homepage = "https://www.buzztrax.org/";
74 license = licenses.lgpl21Plus;
75 maintainers = [ maintainers.bendlas ];
76 platforms = platforms.unix;
77 };
78}