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