8ec9a7a3077c00ed9118aa0c1f2060bf5955eac0
[packages/jack-audio-connection-kit.git] / jack-audio-connection-kit.spec
1 #
2 # Conditional build:
3 %bcond_without  apidocs         # don't generate documentation with doxygen
4 %bcond_with     ffado           # don't build firewire (FFADO) driver
5 %bcond_without  freebob         # don't build freebob driver
6 %bcond_with     classic         # build also classic jackd server (see http://trac.jackaudio.org/wiki/JackDbusPackaging)
7
8 Summary:        The JACK Audio Connection Kit
9 Summary(pl.UTF-8):      JACK - zestaw do połączeń audio
10 Name:           jack-audio-connection-kit
11 Version:        1.9.12
12 Release:        1
13 License:        LGPL v2.1+ (libjack), GPL v2+ (the rest)
14 Group:          Daemons
15 #Source0Download: http://jackaudio.org/downloads/
16 Source0:        https://github.com/jackaudio/jack2/releases/download/v%{version}/jack2-%{version}.tar.gz
17 # Source0-md5:  6cb5dfea0586bcf009c733c4e4b04a03
18 Patch0:         jack-freebob.patch
19 URL:            http://jackaudio.org/
20 BuildRequires:  alsa-lib-devel >= 1.0.18
21 BuildRequires:  autoconf >= 2.50
22 BuildRequires:  automake
23 BuildRequires:  celt-devel >= 0.11.0
24 BuildRequires:  dbus-devel >= 1.0.0
25 %{?with_apidocs:BuildRequires:  doxygen}
26 BuildRequires:  expat-devel
27 %{?with_ffado:BuildRequires:    libffado-devel >= 1.999.17}
28 %{?with_freebob:BuildRequires:  libfreebob-devel >= 1.0.0}
29 BuildRequires:  libsamplerate-devel
30 BuildRequires:  libsndfile-devel >= 1.0.0
31 BuildRequires:  libstdc++-devel
32 BuildRequires:  libtool
33 BuildRequires:  pkgconfig
34 BuildRequires:  readline-devel
35 BuildRequires:  rpmbuild(macros) >= 1.98
36 # with opus_custom interface
37 BuildRequires:  opus-devel >= 1.0.3-2
38 %{?with_apidocs:BuildRequires:  texlive-pdftex}
39 Requires:       %{name}-libs = %{version}-%{release}
40 Requires:       alsa-lib >= 1.0.18
41 Obsoletes:      jack-audio-connection-kit-driver-alsa
42 Obsoletes:      jack-audio-connection-kit-driver-iec61883
43 Obsoletes:      jack-audio-connection-kit-static
44 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
45
46 %description
47 JACK is a low-latency audio server, written primarily for the Linux
48 operating system. It can connect a number of different applications to
49 an audio device, as well as allowing them to share audio between
50 themselves. Its clients can run in their own processes (ie. as a
51 normal application), or can they can run within a JACK server (ie. a
52 "plugin").
53
54 JACK is different from other audio server efforts in that it has been
55 designed from the ground up to be suitable for professional audio
56 work. This means that it focuses on two key areas: synchronous
57 execution of all clients, and low latency operation.
58
59 %description -l pl.UTF-8
60 JACK to serwer dźwięku o małych opóźnieniach, napisany głównie dla
61 systemu operacyjnego Linux. Może przyjąć połączenia od wielu różnych
62 aplikacji do urządzenia dźwiękowego, a także pozwolić im na dzielenie
63 dźwięku pomiędzy siebie. Programy klienckie działają jako własne
64 procesy (tzn. normalne aplikacje) lub mogą działać wewnątrz serwera
65 JACK (jako wtyczki).
66
67 JACK różni się od innych serwerów dźwięku tym, że został
68 zaprojektowany od początku z myślą o profesjonalnej obróbce dźwięku.
69 Oznacza to, że skupia się na dwóch rzeczach: synchronicznym
70 wykonywaniu wszystkich klientów i małych opóźnieniach działania.
71
72 %package libs
73 Summary:        JACK library
74 Summary(pl.UTF-8):      Biblioteka JACK-a
75 License:        LGPL v2.1+
76 Group:          Libraries
77 Requires:       celt >= 0.11.0
78 Requires:       dbus-libs >= 1.0.0
79 Requires:       opus >= 1.0.3-2
80 Conflicts:      jack-audio-connection-kit < 0.100.7
81
82 %description libs
83 Shared JACK library.
84
85 %description libs -l pl.UTF-8
86 Biblioteka współdzielona JACK-a.
87
88 %package devel
89 Summary:        Header files for JACK
90 Summary(pl.UTF-8):      JACK - pliki nagłówkowe
91 License:        LGPL v2.1+
92 Group:          Development/Libraries
93 Requires:       %{name}-libs = %{version}-%{release}
94
95 %description devel
96 Header files for the JACK Audio Connection Kit.
97
98 %description devel -l pl.UTF-8
99 Pliki nagłówkowe dla zestawu do połączeń audio JACK.
100
101 %package apidocs
102 Summary:        JACK Audio Connection Kit API documentation
103 Summary(pl.UTF-8):      Dokumentacja API JACK Audio Connection Kit
104 Group:          Documentation
105 Requires:       gtk-doc-common
106 %if "%{_rpmversion}" >= "5"
107 BuildArch:      noarch
108 %endif
109
110 %description apidocs
111 JACK Audio Connection Kit API documentation.
112
113 %description apidocs -l pl.UTF-8
114 Dokumentacja API JACK Audio Connection Kit.
115
116 %package driver-firewire
117 Summary:        FireWire (FFADO) sound driver for JACK
118 Summary(pl.UTF-8):      Sterownik dźwięku FireWire (FFADO) dla JACK-a
119 License:        GPL v2+
120 Group:          Libraries
121 Requires:       %{name} = %{version}-%{release}
122 Requires:       libffado >= 1.999.17
123
124 %description driver-firewire
125 FireWire (FFADO) sound driver for JACK.
126
127 %description driver-firewire -l pl.UTF-8
128 Sterownik dźwięku FireWire (FFADO) dla JACK-a.
129
130 %package driver-freebob
131 Summary:        FreeBoB sound driver for JACK
132 Summary(pl.UTF-8):      Sterownik dźwięku FreeBoB dla JACK-a
133 License:        GPL v2+
134 Group:          Libraries
135 Requires:       %{name} = %{version}-%{release}
136 Requires:       libfreebob >= 1.0.0
137
138 %description driver-freebob
139 FreeBoB (BeBoB platform) sound driver for JACK.
140
141 %description driver-freebob -l pl.UTF-8
142 Sterownik dźwięku FreeBoB (do platformy BeBoB) dla JACK-a.
143
144 %package example-clients
145 Summary:        Example clients that use JACK
146 Summary(pl.UTF-8):      Przykładowe programy klienckie używające JACK-a
147 License:        GPL v2+
148 Group:          Applications/Sound
149 Requires:       %{name} = %{version}-%{release}
150
151 %description example-clients
152 Small example clients that use the JACK Audio Connection Kit.
153
154 %description example-clients -l pl.UTF-8
155 Małe, przykładowe programy klienckie, które używają zestawu do
156 połączeń audio JACK.
157
158 %package example-jackrec
159 Summary:        Example JACK client: jackrec
160 Summary(pl.UTF-8):      Przykładowy klient zestawu JACK: jackrec
161 License:        GPL v2+
162 Group:          Applications/Sound
163 Requires:       %{name} = %{version}-%{release}
164
165 %description example-jackrec
166 Example JACK client: jackrec. It's separated because it uses
167 libsndfile library.
168
169 %description example-jackrec -l pl.UTF-8
170 Przykładowy klient zestawu JACK: jackrec. Jest wydzielony, ponieważ
171 wymaga biblioteki libsndfile.
172
173 %prep
174 %setup -q -n jack2-%{version}
175 %patch0 -p1
176
177 %build
178 export CFLAGS="%{rpmcflags} -I/usr/include/ncurses"
179 export CXXFLAGS="%{rpmcxxflags} -I/usr/include/ncurses"
180 export CPPFLAGS="%{rpmcxxflags} -I/usr/include/ncurses"
181 export LINKFLAGS="%{rpmldflags}"
182
183 ./waf configure -j1 \
184         -v \
185         %{?debug:--debug} \
186         --prefix=%{_prefix} \
187         --libdir=%{_libdir} \
188         --htmldir=%{_gtkdocdir}/%{name}/reference \
189         --alsa \
190         %{?with_classic:--classic} \
191         --dbus \
192         %{?with_apidocs:--doxygen} \
193         %{?with_ffado:--firewire} \
194         %{?with_freebob:--freebob}
195
196 ./waf build %{?_smp_mflags} -v
197
198 %install
199 rm -rf $RPM_BUILD_ROOT
200
201 ./waf install \
202         --destdir=$RPM_BUILD_ROOT
203
204 %{!?with_apidocs:rm -rf $RPM_BUILD_ROOT%{_gtkdocdir}}
205
206 # For compatibility with jack1
207 %{__mv} $RPM_BUILD_ROOT%{_bindir}/jack_rec $RPM_BUILD_ROOT%{_bindir}/jackrec
208
209 # not built or packaged
210 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/jack_impulse_grabber.1 \
211         %{!?with_classic:$RPM_BUILD_ROOT%{_mandir}/man1/jackd.1}
212
213 # fix perms (needed for autorequires/provides)
214 chmod a+x $RPM_BUILD_ROOT%{_libdir}/lib*.so*
215 chmod a+x $RPM_BUILD_ROOT%{_libdir}/jack/*.so
216
217 %clean
218 rm -rf $RPM_BUILD_ROOT
219
220 %post   libs -p /sbin/ldconfig
221 %postun libs -p /sbin/ldconfig
222
223 %verifyscript libs
224 if ! grep -q -s '^[^ ]* /dev/shm tmpfs ' /proc/mounts ; then
225         echo "/dev/shm is not mounted, but JACK requires it"
226 fi
227
228 %files
229 %defattr(644,root,root,755)
230 %doc ChangeLog README* TODO
231 %attr(755,root,root) %{_bindir}/jack_alias
232 %attr(755,root,root) %{_bindir}/jack_control
233 %attr(755,root,root) %{_bindir}/jack_cpu
234 %attr(755,root,root) %{_bindir}/jack_evmon
235 %attr(755,root,root) %{_bindir}/jack_iodelay
236 %attr(755,root,root) %{_bindir}/jack_load
237 %attr(755,root,root) %{_bindir}/jack_midi_dump
238 %attr(755,root,root) %{_bindir}/jack_net_master
239 %attr(755,root,root) %{_bindir}/jack_net_slave
240 %attr(755,root,root) %{_bindir}/jack_server_control
241 %attr(755,root,root) %{_bindir}/jack_session_notify
242 %attr(755,root,root) %{_bindir}/jack_simdtests
243 %attr(755,root,root) %{_bindir}/jack_test
244 %attr(755,root,root) %{_bindir}/jack_unload
245 %{?with_classic:%attr(755,root,root) %{_bindir}/jackd}
246 %attr(755,root,root) %{_bindir}/jackdbus
247 %dir %{_libdir}/jack
248 %attr(755,root,root) %{_libdir}/jack/audioadapter.so
249 %attr(755,root,root) %{_libdir}/jack/jack_alsa.so
250 %attr(755,root,root) %{_libdir}/jack/jack_alsarawmidi.so
251 %attr(755,root,root) %{_libdir}/jack/jack_dummy.so
252 %attr(755,root,root) %{_libdir}/jack/jack_loopback.so
253 %attr(755,root,root) %{_libdir}/jack/jack_netone.so
254 %attr(755,root,root) %{_libdir}/jack/jack_net.so
255 %attr(755,root,root) %{_libdir}/jack/jack_proxy.so
256 %attr(755,root,root) %{_libdir}/jack/netadapter.so
257 %attr(755,root,root) %{_libdir}/jack/netmanager.so
258 %attr(755,root,root) %{_libdir}/jack/profiler.so
259 %{_datadir}/dbus-1/services/org.jackaudio.service
260 %{?with_classic:%{_mandir}/man1/jackd.1*}
261 %{_mandir}/man1/jack_iodelay.1*
262 %{_mandir}/man1/jack_load.1*
263 %{_mandir}/man1/jack_unload.1*
264
265 %files libs
266 %defattr(644,root,root,755)
267 %attr(755,root,root) %{_libdir}/libjack.so.*.*.*
268 %attr(755,root,root) %ghost %{_libdir}/libjack.so.0
269 %attr(755,root,root) %{_libdir}/libjacknet.so.*.*.*
270 %attr(755,root,root) %ghost %{_libdir}/libjacknet.so.0
271 %attr(755,root,root) %{_libdir}/libjackserver.so.*.*.*
272 %attr(755,root,root) %ghost %{_libdir}/libjackserver.so.0
273
274 %files devel
275 %defattr(644,root,root,755)
276 %attr(755,root,root) %{_libdir}/libjack.so
277 %attr(755,root,root) %{_libdir}/libjacknet.so
278 %attr(755,root,root) %{_libdir}/libjackserver.so
279 %{_includedir}/jack
280 %{_pkgconfigdir}/jack.pc
281
282 %if %{with apidocs}
283 %files apidocs
284 %defattr(644,root,root,755)
285 %{_gtkdocdir}/%{name}
286 %endif
287
288 %if %{with ffado}
289 %files driver-firewire
290 %defattr(644,root,root,755)
291 %attr(755,root,root) %{_libdir}/jack/jack_firewire.so
292 %endif
293
294 %if %{with freebob}
295 %files driver-freebob
296 %defattr(644,root,root,755)
297 %attr(755,root,root) %{_libdir}/jack/jack_freebob.so
298 %endif
299
300 %files example-clients
301 %defattr(644,root,root,755)
302 %attr(755,root,root) %{_bindir}/alsa_in
303 %attr(755,root,root) %{_bindir}/alsa_out
304 %attr(755,root,root) %{_bindir}/jack_bufsize
305 %attr(755,root,root) %{_bindir}/jack_connect
306 %attr(755,root,root) %{_bindir}/jack_cpu_load
307 %attr(755,root,root) %{_bindir}/jack_disconnect
308 %attr(755,root,root) %{_bindir}/jack_freewheel
309 %attr(755,root,root) %{_bindir}/jack_latent_client
310 %attr(755,root,root) %{_bindir}/jack_lsp
311 %attr(755,root,root) %{_bindir}/jack_metro
312 %attr(755,root,root) %{_bindir}/jack_midi_latency_test
313 %attr(755,root,root) %{_bindir}/jack_midiseq
314 %attr(755,root,root) %{_bindir}/jack_midisine
315 %attr(755,root,root) %{_bindir}/jack_monitor_client
316 %attr(755,root,root) %{_bindir}/jack_multiple_metro
317 %attr(755,root,root) %{_bindir}/jack_netsource
318 %attr(755,root,root) %{_bindir}/jack_samplerate
319 %attr(755,root,root) %{_bindir}/jack_showtime
320 %attr(755,root,root) %{_bindir}/jack_simple_client
321 %attr(755,root,root) %{_bindir}/jack_simple_session_client
322 %attr(755,root,root) %{_bindir}/jack_thru
323 %attr(755,root,root) %{_bindir}/jack_transport
324 %attr(755,root,root) %{_bindir}/jack_wait
325 %attr(755,root,root) %{_bindir}/jack_zombie
326 %attr(755,root,root) %{_libdir}/jack/inprocess.so
327 %{_mandir}/man1/alsa_in.1*
328 %{_mandir}/man1/alsa_out.1*
329 %{_mandir}/man1/jack_bufsize.1*
330 %{_mandir}/man1/jack_connect.1*
331 %{_mandir}/man1/jack_disconnect.1*
332 %{_mandir}/man1/jack_freewheel.1*
333 %{_mandir}/man1/jack_lsp.1*
334 %{_mandir}/man1/jack_metro.1*
335 %{_mandir}/man1/jack_monitor_client.1*
336 %{_mandir}/man1/jack_netsource.1*
337 %{_mandir}/man1/jack_samplerate.1*
338 %{_mandir}/man1/jack_showtime.1*
339 %{_mandir}/man1/jack_simple_client.1*
340 %{_mandir}/man1/jack_transport.1*
341 %{_mandir}/man1/jack_wait.1*
342
343 %files example-jackrec
344 %defattr(644,root,root,755)
345 %attr(755,root,root) %{_bindir}/jackrec
346 %{_mandir}/man1/jackrec.1*