]> git.pld-linux.org Git - packages/TiMidity++.git/blob - TiMidity++.spec
e2407419350664a8f44439f0559a3e2fc86c9661
[packages/TiMidity++.git] / TiMidity++.spec
1 #
2 # Conditional build:
3 %bcond_without  x       # without X based interfaces (implies libX11 deps)
4 %bcond_without  alsa    # without ALSA support
5 %bcond_with     arts    # enable ARTS support (implies also glib(2) deps)
6 %bcond_with     esd     # enable ESD support
7 %bcond_with     jack    # enable JACK support
8 %bcond_with     nas     # enable NAS support
9 %bcond_with     vorbis  # enable Ogg Vorbis support
10 #
11 Summary:        TiMidity++ - MIDI to WAV converter and player
12 Summary(pl.UTF-8):      TiMidity++ - konwerter do WAV oraz odtwarzacz plików MIDI
13 Summary(pt_BR.UTF-8):   Sintetizador MIDI por software
14 Summary(ru.UTF-8):      Проигрыватель MIDI файлов и конвертор их в WAV формат
15 Summary(uk.UTF-8):      Програвач MIDI-файлів та конвертор їх в WAV формат
16 Name:           TiMidity++
17 Version:        2.13.2
18 Release:        9
19 License:        GPL
20 Group:          Applications/Sound
21 Source0:        http://dl.sourceforge.net/timidity/%{name}-%{version}.tar.bz2
22 # Source0-md5:  a82ceeb2245e22f4de2b41da21eaee32
23 Source1:        http://archive.cs.umbc.edu/pub/midia/instruments.tar.gz
24 # Source1-md5:  4959787a78ee39d44a36185bd303cf20
25 Source2:        britepno.pat.bz2
26 # Source2-md5:  324e265362f812883024b58cf3470d1a
27 Source3:        pistol.pat.bz2
28 # Source3-md5:  f961325db679de6e0ea402ebe6a268f9
29 Source4:        timidity.cfg
30 Source5:        timidity.init
31 Source6:        timidity.sysconfig
32 Source7:        timidity-modules-load.conf
33 Source8:        timidity.service
34 Patch0:         %{name}-detach.patch
35 Patch1:         %{name}-gcc4.patch
36 Patch2:         %{name}-configure.patch
37 Patch3:         %{name}-stop_polling.patch
38 URL:            http://timidity.sourceforge.net/
39 %{?with_alsa:BuildRequires:     alsa-lib-devel}
40 %{?with_arts:BuildRequires:     arts-devel}
41 BuildRequires:  autoconf
42 %{?with_esd:BuildRequires:      esound-devel}
43 %{?with_x:BuildRequires:        gtk+-devel}
44 %{?with_jack:BuildRequires:     jack-audio-connection-kit-devel}
45 %{?with_vorbis:BuildRequires:   libvorbis-devel}
46 %{?with_x:BuildRequires:        motif-devel}
47 %{?with_nas:BuildRequires:      nas-devel}
48 BuildRequires:  ncurses-devel
49 BuildRequires:  rpmbuild(macros) >= 1.626
50 BuildRequires:  slang-devel >= 2.0.0
51 %{?with_x:BuildRequires:        tk-devel >= 8.3.2}
52 %{?with_x:Provides:     %{name}(X) = %{version}-%{release}}
53 Obsoletes:      timidity
54 Obsoletes:      timidity++
55 Obsoletes:      timidity++-X11
56 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
57
58 %description
59 TiMidity++ is a converter that converts some of MIDI files ( formats :
60 Standard MIDI file (MID), Recomposer files (RCP, R36, G18, G36) and
61 Module file (mod) ) into formatted audio file (ex. RIFF WAVE).
62 TiMidity uses Gravis Ultrasound-compatible patch files or Soundfonts
63 (sfx, sf2) to generate digital audio data from MIDI files. The digital
64 audio data generated by TiMidity can be stored in a file for
65 processing, or played in real time through an audio device. In real
66 time playing, TiMidity if able to show the lyric contained in KAR file
67 or WRD file.
68
69 %description -l pl.UTF-8
70 TiMidity++ jest konwerterem z niektórych plików MIDI (formaty:
71 Standard MIDI (MID), Recomposer (RCP, R36, G18, G36), Module (mod)) do
72 plików audio (np. RIFF WAVE). Do generowania danych z plików MIDI
73 TiMidity używa patchy takich jak Gravis Ultrasound albo Soundfontów
74 (sfx, sf2). Cyfrowe dane audio mogą być zapisane do pliku albo
75 odtwarzane w czasie rzeczywistym. Przy odtwarzaniu TiMidity może
76 pokazywać słowa zawarte w pliku KAR lub WRD.
77
78 %description -l pt_BR.UTF-8
79 O TiMidity++ é um sintetizador MIDI por software. Este pacote permite
80 ouvir arquivos do tipo MIDI com a mesma qualidade de som que as placas
81 que utilizam o recurso de "wavetable" via hardware (como a AWE32),
82 mesmo que esta não possua o recurso de "wavetable" (a SB16 por
83 exemplo).
84
85 %description -l ru.UTF-8
86 Проигрыватель MIDI файлов, не требующий поддержки инструментов MIDI
87 звуковой платой. Использует файлы инструментов в формате GUS/patch,
88 может также использовать данные в формате SoundFont. Обеспечивает
89 отличное качество звука MIDI за счет интенсивного использования
90 процессора.
91
92 %description -l uk.UTF-8
93 Програвач MIDI файлів, якому не потрібна підтримка інструментів MIDI
94 звуковою платою. Використовує файли інструментів у форматі GUS/patch,
95 розуміє також формат SoundFont. Забезпечує відмінну якість звуку MIDI
96 за рахунок інтенсивного використання процесора.
97
98 %package gspdir
99 Summary:        Directory for TiMidity++ instruments
100 Summary(pl.UTF-8):      Katalog na instrumenty TiMidity++
101 Group:          Applications/Sound
102
103 %description gspdir
104 Directory where TiMidity++ instruments should be placed in.
105
106 %description gspdir -l pl.UTF-8
107 Katalog, w którym powinny być instalowane instrumenty dla TiMidity++.
108
109 %package instruments
110 Summary:        Instruments for TiMidity++
111 Summary(pl.UTF-8):      Instrumenty dla TiMidity++
112 Summary(pt_BR.UTF-8):   Instrumentos básicos para o TiMidity++
113 Group:          Applications/Sound
114 Requires:       %{name}-gspdir = %{version}-%{release}
115 Obsoletes:      timidity-patches
116
117 %description instruments
118 Instruments for TiMidity++.
119
120 %description instruments -l pl.UTF-8
121 Instrumenty dla TiMidity++.
122
123 %description instruments -l pt_BR.UTF-8
124 Este pacote inclui um conjunto básico de instrumentos (chamados de
125 patches no meio musical) para o TiMidity++.
126
127 %package gtk
128 Summary:        GTK+ interface for TiMidity++
129 Summary(pl.UTF-8):      Interfejs TiMidity++ oparty o bibliotekę GTK+
130 Group:          Applications/Sound
131 Requires:       %{name}(X) = %{version}-%{release}
132
133 %description gtk
134 gtkmidi - GTK+ interface for TiMidity++.
135
136 %description gtk -l pl.UTF-8
137 gtkmidi - interfejs do TiMidity++ oparty o bibliotekę GTK+.
138
139 %package motif
140 Summary:        Motif interface for TiMidity++
141 Summary(pl.UTF-8):      Interfejs TiMidity++ oparty o Motif
142 Group:          Applications/Sound
143 Requires:       %{name}(X) = %{version}-%{release}
144
145 %description motif
146 xmmidi - Motif interface for TiMidity++.
147
148 %description motif -l pl.UTF-8
149 xmmidi - interfejs do TiMidity++ oparty o bibliotekę Motif.
150
151 %package slang
152 Summary:        Slang interface for TiMidity++
153 Summary(pl.UTF-8):      Interfejs TiMidity++ oparty o bibliotekę Slang
154 Group:          Applications/Sound
155 Requires:       %{name} = %{version}-%{release}
156
157 %description slang
158 Slang interface for TiMidity++.
159
160 %description slang -l pl.UTF-8
161 Interfejs do TiMidity++ oparty o bibliotekę Slang.
162
163 %package tcltk
164 Summary:        Tcl/Tk interface for TiMidity++
165 Summary(pl.UTF-8):      Interfejs TiMidity++ oparty o Tcl/Tk
166 Group:          Applications/Sound
167 Requires:       %{name}(X) = %{version}-%{release}
168
169 %description tcltk
170 tkmidi - Tcl/Tk interface for TiMidity++.
171
172 %description tcltk -l pl.UTF-8
173 tkmidi - interfejs do TiMidity++ oparty o Tcl/Tk.
174
175 %package vt100
176 Summary:        VT100 interface for TiMidity++
177 Summary(pl.UTF-8):      Interfejs TiMidity++ działający na terminalu VT100
178 Group:          Applications/Sound
179 Requires:       %{name} = %{version}-%{release}
180
181 %description vt100
182 VT100 interface for TiMidity++.
183
184 %description vt100 -l pl.UTF-8
185 Interfejs do TiMidity++ mogący działać na terminalu VT100.
186
187 %package xaw
188 Summary:        Athena interface for TiMidity++
189 Summary(pl.UTF-8):      Interfejs TiMidity++ oparty o Athena Widgets
190 Group:          Applications/Sound
191 Requires:       %{name}(X) = %{version}-%{release}
192
193 %description xaw
194 xawmidi - Athena interface for TiMidity++.
195
196 %description xaw -l pl.UTF-8
197 xawmidi - interfejs do TiMidity++ oparty o biblitekę widgetów Athena.
198
199 %package xskin
200 Summary:        "X Skin" interface for TiMidity++
201 Summary(pl.UTF-8):      Interfejs TiMidity++ "X Skin"
202 Group:          Applications/Sound
203 Requires:       %{name}(X) = %{version}-%{release}
204 Obsoletes:      TiMidity++ < 2.13.0-3
205
206 %description xskin
207 xskinmidi - "X Skin" interface for TiMidity++.
208
209 %description xskin -l pl.UTF-8
210 xskinmidi - interfejs do TiMidity++ "X Skin".
211
212 %package alsaseq
213 Summary:        TiMidity++ ALSA sequencer interface
214 Summary(pl.UTF-8):      TiMidity++ jako interfejs sekwencera ALSA
215 Group:          Applications/Sound
216 Requires(post,preun):   /sbin/chkconfig
217 Requires(post,preun,postun):    systemd-units >= 38
218 Requires:       %{name} = %{version}-%{release}
219 Requires:       rc-scripts
220 Requires:       systemd-units >= 38
221
222 %description alsaseq
223 The ALSA sequencer interface communicates between ALSA sequencer core
224 and timidity. The interface receives events from sequencer and plays
225 it in (quasi-)real-time. In this mode, TiMidity works purely as the
226 software real-time MIDI render, that is as a software MIDI synth
227 engine on ALSA.
228
229 %description alsaseq -l pl.UTF-8
230 Interfejs sekwencera ALSA komunikuje się między rdzeniem sekwencera
231 ALSA a timidity. Interfejs odbiera zdarzenia od sekwencera od odtwarza
232 je w czasie (prawie) rzeczywistym. W tym trybie TiMidity działa
233 wyłącznie jako programowy odtwarzacz MIDI czasu rzeczywistego, czyli
234 jako silnik syntezatora MIDI w architekturze ALSA.
235
236 %prep
237 %setup -q
238 %patch0 -p1
239 %patch1 -p1
240 %patch2 -p0
241 %patch3 -p1
242
243 for f in doc/ja_JP.eucJP/README*; do
244         mv -f $f ${f}.ja
245 done
246
247 %build
248 cp -f /usr/share/automake/config.sub autoconf
249 %{__autoconf}
250
251 AUDIO=oss%{?with_alsa:,alsa}%{?with_arts:,arts}%{?with_esd:,esd}\
252 %{?with_jack:,jack}%{?with_nas:,nas}%{?with_vorbis:,vorbis}
253
254 %configure \
255         %{?with_alsa:--enable-alsaseq} \
256         --enable-audio=$AUDIO \
257         --enable-dynamic \
258         %{?with_x:--enable-gtk=dynamic} \
259         --enable-emacs=dynamic \
260         %{?with_x:--enable-motif=dynamic} \
261         --enable-ncurses=dynamic \
262         --enable-network \
263         --enable-server \
264         --enable-slang=dynamic \
265         %{?with_x:--enable-spectrogram} \
266         %{?with_x:--enable-tcltk=dynamic} \
267         --enable-vt100=dynamic \
268         %{?with_x:--enable-xaw=dynamic} \
269         %{?with_x:--enable-xskin=dynamic} \
270         --with-default-path=%{_sysconfdir} \
271         --with-elf \
272         %{!?with_x:--without-x}
273
274 %{__make} \
275         SHLIB_DIR=%{_libdir}/timidity
276
277 %install
278 rm -rf $RPM_BUILD_ROOT
279 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_datadir}/GUSpatches,/etc/{rc.d/init.d,sysconfig}} \
280         $RPM_BUILD_ROOT{%{systemdunitdir},/etc/modules-load.d}
281
282 %{__make} install \
283         DESTDIR=$RPM_BUILD_ROOT \
284         SHLIB_DIR=%{_libdir}/timidity
285
286 ## based on timidity/timidity.c
287 ##ln -s timidity $RPM_BUILD_ROOT%{_bindir}/kmidi # does it work?
288 ln -sf timidity $RPM_BUILD_ROOT%{_bindir}/gtkmidi
289 ln -sf timidity $RPM_BUILD_ROOT%{_bindir}/tkmidi
290 ln -sf timidity $RPM_BUILD_ROOT%{_bindir}/xmmidi
291 ln -sf timidity $RPM_BUILD_ROOT%{_bindir}/xawmidi
292 ln -sf timidity $RPM_BUILD_ROOT%{_bindir}/xskinmidi
293
294 install -d $RPM_BUILD_ROOT%{_mandir}/ja/man{1,5}
295 install doc/ja_JP.eucJP/timidity.1 $RPM_BUILD_ROOT%{_mandir}/ja/man1
296 install doc/ja_JP.eucJP/timidity.cfg.5 $RPM_BUILD_ROOT%{_mandir}/ja/man5
297
298 install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}
299
300 cd $RPM_BUILD_ROOT%{_datadir}/GUSpatches
301 tar xzf %{SOURCE1}
302 mv -f instruments/* .
303 rmdir instruments
304 bzip2 -cd %{SOURCE2} > britepno.pat
305 bzip2 -cd %{SOURCE3} > pistol.pat
306
307 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/timidity
308 install %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/timidity
309
310 install %{SOURCE7} $RPM_BUILD_ROOT/etc/modules-load.d/timidity.conf
311 install %{SOURCE8} $RPM_BUILD_ROOT%{systemdunitdir}/timidity.service
312
313 %clean
314 rm -rf $RPM_BUILD_ROOT
315
316 %post alsaseq
317 /sbin/chkconfig --add timidity
318 %service timidity restart "TiMidity++ ALSA sequencer interface"
319 %systemd_post timidity.service
320
321 %preun alsaseq
322 if [ "$1" = "0" ]; then
323         %service timidity stop
324         /sbin/chkconfig --del timidity
325 fi
326 %systemd_preun timidity.service
327
328 %postun alsaseq
329 %systemd_reload
330
331 %triggerpostun alsaseq -- %{name}-alsaseq < 2.13.2-8
332 %systemd_trigger timidity.service
333
334 %files
335 %defattr(644,root,root,755)
336 %doc AUTHORS ChangeLog* NEWS README TODO doc/C/{CHANGES*,FAQ,README.[!tx]*}
337 %lang(ja) %doc README.ja doc/ja_JP.eucJP/README.[!tx]*.ja
338 %attr(755,root,root) %{_bindir}/timidity
339 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/timidity.cfg
340 %dir %{_libdir}/timidity
341 %attr(755,root,root) %{_libdir}/timidity/interface_e.so
342 %attr(755,root,root) %{_libdir}/timidity/interface_n.so
343 %{_libdir}/timidity/interface_e.txt
344 %{_libdir}/timidity/interface_n.txt
345 %if "%{_lib}" != "lib"
346 %dir %{_prefix}/lib/timidity
347 %endif
348 %{?with_x:%{_prefix}/lib/timidity/bitmaps}
349 %{_mandir}/man1/timidity.1*
350 %{_mandir}/man5/timidity.cfg.5*
351 %lang(ja) %{_mandir}/ja/man1/timidity.1*
352 %lang(ja) %{_mandir}/ja/man5/timidity.cfg.5*
353
354 %files gspdir
355 %defattr(644,root,root,755)
356 %dir %{_datadir}/GUSpatches
357
358 %files instruments
359 %defattr(644,root,root,755)
360 %{_datadir}/GUSpatches/*
361
362 %if %{with x}
363 %files gtk
364 %defattr(644,root,root,755)
365 %attr(755,root,root) %{_bindir}/gtkmidi
366 %attr(755,root,root) %{_libdir}/timidity/interface_g.so
367 %{_libdir}/timidity/interface_g.txt
368 %endif
369
370 %if %{with x}
371 %files motif
372 %defattr(644,root,root,755)
373 %attr(755,root,root) %{_bindir}/xmmidi
374 %attr(755,root,root) %{_libdir}/timidity/interface_m.so
375 %{_libdir}/timidity/interface_m.txt
376 %endif
377
378 %files slang
379 %defattr(644,root,root,755)
380 %attr(755,root,root) %{_libdir}/timidity/interface_s.so
381 %{_libdir}/timidity/interface_s.txt
382
383 %if %{with x}
384 %files tcltk
385 %defattr(644,root,root,755)
386 %doc doc/C/README.tk
387 %lang(ja) %doc doc/ja_JP.eucJP/README.tk.ja
388 %attr(755,root,root) %{_bindir}/tkmidi
389 %attr(755,root,root) %{_libdir}/timidity/interface_k.so
390 %{_libdir}/timidity/interface_k.txt
391 %{_prefix}/lib/timidity/tclIndex
392 %{_prefix}/lib/timidity/*.tcl
393 %endif
394
395 %files vt100
396 %defattr(644,root,root,755)
397 %attr(755,root,root) %{_libdir}/timidity/interface_T.so
398 %{_libdir}/timidity/interface_T.txt
399
400 %if %{with x}
401 %files xaw
402 %defattr(644,root,root,755)
403 %doc doc/C/README.xaw
404 %lang(ja) %doc doc/ja_JP.eucJP/README.xaw.ja
405 %attr(755,root,root) %{_bindir}/xawmidi
406 %attr(755,root,root) %{_libdir}/timidity/interface_a.so
407 %{_libdir}/timidity/interface_a.txt
408
409 %files xskin
410 %defattr(644,root,root,755)
411 %doc doc/C/README.xskin
412 %lang(ja) %doc doc/ja_JP.eucJP/README.xskin.ja
413 %attr(755,root,root) %{_bindir}/xskinmidi
414 %attr(755,root,root) %{_libdir}/timidity/interface_i.so
415 %{_libdir}/timidity/interface_i.txt
416 %endif
417
418 %if %{with alsa}
419 %files alsaseq
420 %defattr(644,root,root,755)
421 %attr(754,root,root) /etc/rc.d/init.d/timidity
422 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/timidity
423 %config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/timidity.conf
424 %{systemdunitdir}/timidity.service
425 %endif
This page took 0.076228 seconds and 2 git commands to generate.