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
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 формат
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
31 Source5: timidity.init
32 Source6: timidity.sysconfig
33 Source7: timidity-modules-load.conf
34 Source8: timidity.service
35 Patch0: %{name}-detach.patch
36 Patch2: %{name}-configure.patch
37 URL: http://timidity.sourceforge.net/
38 %{?with_alsa:BuildRequires: alsa-lib-devel}
39 %{?with_arts:BuildRequires: arts-devel}
40 BuildRequires: autoconf
41 %{?with_esd:BuildRequires: esound-devel}
42 %{?with_x:BuildRequires: gtk+-devel}
43 %{?with_jack:BuildRequires: jack-audio-connection-kit-devel}
44 %{?with_ao:BuildRequires: libao-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 < 2.10.4
54 Obsoletes: timidity++ < 2.10.4
55 Obsoletes: timidity++-X11 < 2.10.4
56 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
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
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.
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
85 %description -l ru.UTF-8
86 Проигрыватель MIDI файлов, не требующий поддержки инструментов MIDI
87 звуковой платой. Использует файлы инструментов в формате GUS/patch,
88 может также использовать данные в формате SoundFont. Обеспечивает
89 отличное качество звука MIDI за счет интенсивного использования
92 %description -l uk.UTF-8
93 Програвач MIDI файлів, якому не потрібна підтримка інструментів MIDI
94 звуковою платою. Використовує файли інструментів у форматі GUS/patch,
95 розуміє також формат SoundFont. Забезпечує відмінну якість звуку MIDI
96 за рахунок інтенсивного використання процесора.
99 Summary: Directory for TiMidity++ instruments
100 Summary(pl.UTF-8): Katalog na instrumenty TiMidity++
101 Group: Applications/Sound
104 Directory where TiMidity++ instruments should be placed in.
106 %description gspdir -l pl.UTF-8
107 Katalog, w którym powinny być instalowane instrumenty dla TiMidity++.
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 < 2.10.4
117 %description instruments
118 Instruments for TiMidity++.
120 %description instruments -l pl.UTF-8
121 Instrumenty dla TiMidity++.
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++.
128 Summary: Emacs interface for TiMidity++
129 Summary(pl.UTF-8): Interfejs TiMidity++ oparty o Emacsa
130 Group: Applications/Sound
131 Requires: %{name} = %{version}-%{release}
135 Emacs interface for TiMidity++.
137 %description emacs -l pl.UTF-8
138 Interfejs TiMidity++ oparty o Emacsa.
141 Summary: GTK+ interface for TiMidity++
142 Summary(pl.UTF-8): Interfejs TiMidity++ oparty o bibliotekę GTK+
143 Group: Applications/Sound
144 Requires: %{name}(X) = %{version}-%{release}
147 gtkmidi - GTK+ interface for TiMidity++.
149 %description gtk -l pl.UTF-8
150 gtkmidi - interfejs do TiMidity++ oparty o bibliotekę GTK+.
153 Summary: Motif interface for TiMidity++
154 Summary(pl.UTF-8): Interfejs TiMidity++ oparty o Motif
155 Group: Applications/Sound
156 Requires: %{name}(X) = %{version}-%{release}
159 xmmidi - Motif interface for TiMidity++.
161 %description motif -l pl.UTF-8
162 xmmidi - interfejs do TiMidity++ oparty o bibliotekę Motif.
165 Summary: Slang interface for TiMidity++
166 Summary(pl.UTF-8): Interfejs TiMidity++ oparty o bibliotekę Slang
167 Group: Applications/Sound
168 Requires: %{name} = %{version}-%{release}
171 Slang interface for TiMidity++.
173 %description slang -l pl.UTF-8
174 Interfejs do TiMidity++ oparty o bibliotekę Slang.
177 Summary: Tcl/Tk interface for TiMidity++
178 Summary(pl.UTF-8): Interfejs TiMidity++ oparty o Tcl/Tk
179 Group: Applications/Sound
180 Requires: %{name}(X) = %{version}-%{release}
183 tkmidi - Tcl/Tk interface for TiMidity++.
185 %description tcltk -l pl.UTF-8
186 tkmidi - interfejs do TiMidity++ oparty o Tcl/Tk.
189 Summary: VT100 interface for TiMidity++
190 Summary(pl.UTF-8): Interfejs TiMidity++ działający na terminalu VT100
191 Group: Applications/Sound
192 Requires: %{name} = %{version}-%{release}
195 VT100 interface for TiMidity++.
197 %description vt100 -l pl.UTF-8
198 Interfejs do TiMidity++ mogący działać na terminalu VT100.
201 Summary: Athena interface for TiMidity++
202 Summary(pl.UTF-8): Interfejs TiMidity++ oparty o Athena Widgets
203 Group: Applications/Sound
204 Requires: %{name}(X) = %{version}-%{release}
207 xawmidi - Athena interface for TiMidity++.
209 %description xaw -l pl.UTF-8
210 xawmidi - interfejs do TiMidity++ oparty o biblitekę widgetów Athena.
213 Summary: "X Skin" interface for TiMidity++
214 Summary(pl.UTF-8): Interfejs TiMidity++ "X Skin"
215 Group: Applications/Sound
216 Requires: %{name}(X) = %{version}-%{release}
219 xskinmidi - "X Skin" interface for TiMidity++.
221 %description xskin -l pl.UTF-8
222 xskinmidi - interfejs do TiMidity++ "X Skin".
225 Summary: TiMidity++ ALSA sequencer interface
226 Summary(pl.UTF-8): TiMidity++ jako interfejs sekwencera ALSA
227 Group: Applications/Sound
228 Requires(post,preun): /sbin/chkconfig
229 Requires(post,preun,postun): systemd-units >= 38
230 Requires: %{name} = %{version}-%{release}
232 Requires: systemd-units >= 38
235 The ALSA sequencer interface communicates between ALSA sequencer core
236 and timidity. The interface receives events from sequencer and plays
237 it in (quasi-)real-time. In this mode, TiMidity works purely as the
238 software real-time MIDI render, that is as a software MIDI synth
241 %description alsaseq -l pl.UTF-8
242 Interfejs sekwencera ALSA komunikuje się między rdzeniem sekwencera
243 ALSA a timidity. Interfejs odbiera zdarzenia od sekwencera od odtwarza
244 je w czasie (prawie) rzeczywistym. W tym trybie TiMidity działa
245 wyłącznie jako programowy odtwarzacz MIDI czasu rzeczywistego, czyli
246 jako silnik syntezatora MIDI w architekturze ALSA.
253 for f in doc/ja_JP.eucJP/README*; do
258 cp -f /usr/share/automake/config.sub autoconf
261 AUDIO=oss%{?with_alsa:,alsa}%{?with_arts:,arts}%{?with_esd:,esd}\
262 %{?with_jack:,jack}%{?with_nas:,nas}%{?with_vorbis:,vorbis}%{?with_ao:,ao}
265 CPPFLAGS="-DUSE_INTERP_RESULT %{rpmcppflags}" \
266 %{?with_alsa:--enable-alsaseq} \
267 --enable-audio=$AUDIO \
269 --enable-emacs=dynamic \
270 %{?with_x:--enable-gtk=dynamic} \
271 %{?with_x:--enable-motif=dynamic} \
272 --enable-ncurses=dynamic \
275 --enable-slang=dynamic \
276 %{?with_x:--enable-spectrogram} \
277 %{?with_x:--enable-tcltk=dynamic} \
278 --enable-vt100=dynamic \
279 %{?with_x:--enable-xaw=dynamic} \
280 %{?with_x:--enable-xskin=dynamic} \
281 --with-default-path=%{_sysconfdir} \
283 %{!?with_x:--without-x}
286 SHLIB_DIR=%{_libdir}/timidity
289 rm -rf $RPM_BUILD_ROOT
290 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_datadir}/GUSpatches,/etc/{rc.d/init.d,sysconfig}} \
291 $RPM_BUILD_ROOT{%{systemdunitdir},/etc/modules-load.d}
294 DESTDIR=$RPM_BUILD_ROOT \
295 ELISP_DIR=%{_datadir}/emacs/site-lisp \
296 SHLIB_DIR=%{_libdir}/timidity
298 # missing in install_tk targets
299 %{__make} -C interface install.bitmaps \
300 DESTDIR=$RPM_BUILD_ROOT
302 ## based on timidity/timidity.c
303 ##ln -s timidity $RPM_BUILD_ROOT%{_bindir}/kmidi # does it work?
304 ln -sf timidity $RPM_BUILD_ROOT%{_bindir}/gtkmidi
305 ln -sf timidity $RPM_BUILD_ROOT%{_bindir}/tkmidi
306 ln -sf timidity $RPM_BUILD_ROOT%{_bindir}/xmmidi
307 ln -sf timidity $RPM_BUILD_ROOT%{_bindir}/xawmidi
308 ln -sf timidity $RPM_BUILD_ROOT%{_bindir}/xskinmidi
310 install -d $RPM_BUILD_ROOT%{_mandir}/ja/man{1,5}
311 install doc/ja_JP.eucJP/timidity.1 $RPM_BUILD_ROOT%{_mandir}/ja/man1
312 install doc/ja_JP.eucJP/timidity.cfg.5 $RPM_BUILD_ROOT%{_mandir}/ja/man5
314 install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}
316 cd $RPM_BUILD_ROOT%{_datadir}/GUSpatches
318 %{__mv} instruments/* .
320 bzip2 -cd %{SOURCE2} > britepno.pat
321 bzip2 -cd %{SOURCE3} > pistol.pat
323 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/timidity
324 install %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/timidity
326 install %{SOURCE7} $RPM_BUILD_ROOT/etc/modules-load.d/timidity.conf
327 install %{SOURCE8} $RPM_BUILD_ROOT%{systemdunitdir}/timidity.service
330 rm -rf $RPM_BUILD_ROOT
333 /sbin/chkconfig --add timidity
334 %service timidity restart "TiMidity++ ALSA sequencer interface"
335 %systemd_post timidity.service
338 if [ "$1" = "0" ]; then
339 %service timidity stop
340 /sbin/chkconfig --del timidity
342 %systemd_preun timidity.service
347 %triggerpostun alsaseq -- %{name}-alsaseq < 2.13.2-8
348 %systemd_trigger timidity.service
351 %defattr(644,root,root,755)
352 %doc AUTHORS ChangeLog* NEWS README TODO doc/C/{CHANGES*,FAQ,README.[!tx]*}
353 %lang(ja) %doc README.ja doc/ja_JP.eucJP/README.[!tx]*.ja
354 %attr(755,root,root) %{_bindir}/timidity
355 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/timidity.cfg
356 %dir %{_libdir}/timidity
357 %attr(755,root,root) %{_libdir}/timidity/if_ncurses.so
358 %{_mandir}/man1/timidity.1*
359 %{_mandir}/man5/timidity.cfg.5*
360 %lang(ja) %{_mandir}/ja/man1/timidity.1*
361 %lang(ja) %{_mandir}/ja/man5/timidity.cfg.5*
364 %defattr(644,root,root,755)
365 %dir %{_datadir}/GUSpatches
368 %defattr(644,root,root,755)
369 %{_datadir}/GUSpatches/*
372 %defattr(644,root,root,755)
373 %attr(755,root,root) %{_libdir}/timidity/if_emacs.so
374 %{_datadir}/emacs/site-lisp/timidity.el
378 %defattr(644,root,root,755)
379 %attr(755,root,root) %{_bindir}/gtkmidi
380 %attr(755,root,root) %{_libdir}/timidity/if_gtk.so
385 %defattr(644,root,root,755)
386 %attr(755,root,root) %{_bindir}/xmmidi
387 %attr(755,root,root) %{_libdir}/timidity/if_motif.so
391 %defattr(644,root,root,755)
392 %attr(755,root,root) %{_libdir}/timidity/if_slang.so
396 %defattr(644,root,root,755)
398 %lang(ja) %doc doc/ja_JP.eucJP/README.tk.ja
399 %attr(755,root,root) %{_bindir}/tkmidi
400 %attr(755,root,root) %{_libdir}/timidity/if_tcltk.so
401 %if "%{_lib}" != "lib"
402 %dir %{_prefix}/lib/timidity
404 %{_prefix}/lib/timidity/tclIndex
405 %{_prefix}/lib/timidity/*.tcl
406 %{_prefix}/lib/timidity/bitmaps
410 %defattr(644,root,root,755)
411 %attr(755,root,root) %{_libdir}/timidity/if_vt100.so
415 %defattr(644,root,root,755)
416 %doc doc/C/README.xaw
417 %lang(ja) %doc doc/ja_JP.eucJP/README.xaw.ja
418 %attr(755,root,root) %{_bindir}/xawmidi
419 %attr(755,root,root) %{_libdir}/timidity/if_xaw.so
422 %defattr(644,root,root,755)
423 %doc doc/C/README.xskin
424 %lang(ja) %doc doc/ja_JP.eucJP/README.xskin.ja
425 %attr(755,root,root) %{_bindir}/xskinmidi
426 %attr(755,root,root) %{_libdir}/timidity/if_xskin.so
431 %defattr(644,root,root,755)
432 %attr(754,root,root) /etc/rc.d/init.d/timidity
433 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/timidity
434 %config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/timidity.conf
435 %{systemdunitdir}/timidity.service