biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / audio / tenacity / default.nix
blobc2879d4123249450fb2ae4a5ded93c6c8658673e
1 { stdenv
2 , lib
3 , fetchFromGitea
4 , fetchpatch
5 , cmake
6 , wxGTK32
7 , gtk3
8 , pkg-config
9 , python3
10 , gettext
11 , glib
12 , file
13 , lame
14 , libvorbis
15 , libmad
16 , libjack2
17 , lv2
18 , lilv
19 , makeWrapper
20 , serd
21 , sord
22 , sqlite
23 , sratom
24 , suil
25 , alsa-lib
26 , libsndfile
27 , soxr
28 , flac
29 , twolame
30 , expat
31 , libid3tag
32 , libopus
33 , ffmpeg_5
34 , soundtouch
35 , pcre
36 , portaudio
37 , linuxHeaders
38 , at-spi2-core
39 , dbus
40 , libepoxy
41 , libXdmcp
42 , libXtst
43 , libpthreadstubs
44 , libselinux
45 , libsepol
46 , libxkbcommon
47 , util-linux
50 stdenv.mkDerivation rec {
51   pname = "tenacity";
52   version = "1.3.3";
54   src = fetchFromGitea {
55     domain = "codeberg.org";
56     owner = "tenacityteam";
57     repo = pname;
58     fetchSubmodules = true;
59     rev = "v${version}";
60     hash = "sha256-UU3iKfab6en4IyGlpNLUhOil3snzaZ2nI6JMqoL6DUs=";
61   };
63   postPatch = ''
64     mkdir -p build/src/private
65     touch build/src/private/RevisionIdent.h
67     substituteInPlace libraries/lib-files/FileNames.cpp \
68          --replace /usr/include/linux/magic.h \
69                    ${linuxHeaders}/include/linux/magic.h
70   '';
72   postFixup = ''
73     rm $out/tenacity
74     wrapProgram "$out/bin/tenacity" \
75       --suffix AUDACITY_PATH : "$out/share/tenacity" \
76       --suffix AUDACITY_MODULES_PATH : "$out/lib/tenacity/modules" \
77       --prefix LD_LIBRARY_PATH : "$out/lib/tenacity" \
78       --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH"
79   '';
81   env.NIX_CFLAGS_COMPILE = "-D GIT_DESCRIBE=\"\"";
83   # tenacity only looks for ffmpeg at runtime, so we need to link it in manually
84   NIX_LDFLAGS = toString [
85     "-lavcodec"
86     "-lavdevice"
87     "-lavfilter"
88     "-lavformat"
89     "-lavutil"
90     "-lpostproc"
91     "-lswresample"
92     "-lswscale"
93   ];
95   nativeBuildInputs = [
96     cmake
97     gettext
98     makeWrapper
99     pkg-config
100     python3
101   ] ++ lib.optionals stdenv.isLinux [
102     linuxHeaders
103   ];
105   buildInputs = [
106     alsa-lib
107     expat
108     ffmpeg_5
109     file
110     flac
111     glib
112     lame
113     libid3tag
114     libjack2
115     libmad
116     libopus
117     libsndfile
118     libvorbis
119     lilv
120     lv2
121     pcre
122     portaudio
123     serd
124     sord
125     soundtouch
126     soxr
127     sqlite
128     sratom
129     suil
130     twolame
131     wxGTK32
132     gtk3
133   ] ++ lib.optionals stdenv.isLinux [
134     at-spi2-core
135     dbus
136     libepoxy
137     libXdmcp
138     libXtst
139     libpthreadstubs
140     libxkbcommon
141     libselinux
142     libsepol
143     util-linux
144   ];
146   cmakeFlags = [
147     # RPATH of binary /nix/store/.../bin/... contains a forbidden reference to /build/
148     "-DCMAKE_SKIP_BUILD_RPATH=ON"
149   ];
151   meta = with lib; {
152     description = "Sound editor with graphical UI";
153     mainProgram = "tenacity";
154     homepage = "https://tenacityaudio.org/";
155     license = licenses.gpl2Plus;
156     maintainers = with maintainers; [ irenes lheckemann ];
157     platforms = platforms.linux;
158   };