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