+#
+# Conditional build:
+# _without_alsa - without ALSA support
+#
+
+%define _ver 2.12.0
+%define _pre pre1
+
Summary: TiMidity++ - MIDI to WAV converter and player
+Summary(pl): TiMidity++ - konwerter do WAV oraz odtwarzacz plików MIDI
+Summary(pt_BR): Sintetizador MIDI por software
+Summary(ru): ðÒÏÉÇÒÙ×ÁÔÅÌØ MIDI ÆÁÊÌÏ× É ËÏÎ×ÅÒÔÏÒ ÉÈ × WAV ÆÏÒÍÁÔ
+Summary(uk): ðÒÏÇÒÁ×ÁÞ MIDI-ÆÁÊÌ¦× ÔÁ ËÏÎ×ÅÒÔÏÒ §È × WAV ÆÏÒÍÁÔ
Name: TiMidity++
-Version: 2.9.0
+Version: %{_ver}%{_pre}
Release: 1
-Group: Applications/Sound
-Group(pl): Aplikacje/D¼wiêk
License: GPL
Vendor: Masanao Izumo <mo@goice.co.jp>
-Source0: http://www.goice.co.jp/member/mo/timidity/dist/%{name}-%{version}.tar.bz2
-Patch0: TiMidity++-config.patch
+Group: Applications/Sound
+#Source0: http://www.goice.co.jp/member/mo/timidity/dist/%{name}-%{version}.tar.bz2
+Source0: http://www.goice.co.jp/member/mo/timidity/dist/%{name}-%{_ver}-%{_pre}.tar.bz2
+# Source0-md5: 6a878bc9341812d6a0b9a7a7d38c368c
+Source1: http://archive.cs.umbc.edu/pub/midia/instruments.tar.gz
+# Source1-md5: 4959787a78ee39d44a36185bd303cf20
+Source2: britepno.pat.bz2
+Source3: pistol.pat.bz2
+Source4: timidity.cfg
+Patch0: %{name}-config.patch
URL: http://www.goice.co.jp/member/mo/timidity/
-BuildRequires: alsa
+%ifnarch sparc sparc64
+%{!?_without_alsa:BuildRequires: alsa-lib-devel}
+%endif
+BuildRequires: autoconf
+BuildRequires: gtk+-devel
+BuildRequires: motif-devel
+BuildRequires: ncurses-devel
+BuildRequires: slang-devel
+BuildRequires: tk-devel >= 8.3.2
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+Obsoletes: timidity
+Obsoletes: timidity++
+Obsoletes: timidity++-X11
%description
TiMidity++ is a converter that converts some of MIDI files ( formats :
-Standard MIDI file (*.MID), Recomposer files (*.RCP, *.R36, *.G18,
-*.G36) and Module file (*.mod) ) into formatted audio file (ex. RIFF
-WAVE). TiMidity uses Gravis Ultrasound-compatible patch files or
-Soundfonts (*.sfx, *.sf2) to generate digital audio data from MIDI
-files. The digital audio data generated by TiMidity can be stored in a
-file for processing, or played in real time through an audio device.
-In real time playing, TiMidity if able to show the lylic contained in
-KAR file or WRD file.
+Standard MIDI file (MID), Recomposer files (RCP, R36, G18, G36) and
+Module file (mod) ) into formatted audio file (ex. RIFF WAVE).
+TiMidity uses Gravis Ultrasound-compatible patch files or Soundfonts
+(sfx, sf2) to generate digital audio data from MIDI files. The digital
+audio data generated by TiMidity can be stored in a file for
+processing, or played in real time through an audio device. In real
+time playing, TiMidity if able to show the lyric contained in KAR file
+or WRD file.
-%package slang
-Summary: Slang interface for TiMidity++.
+%description -l pl
+TiMidity++ jest konwerterem z niektórych plików MIDI (formaty:
+Standard MIDI (MID), Recomposer (RCP, R36, G18, G36), Module (mod)) do
+plików audio (np. RIFF WAVE). Do generowania danych z plików MIDI
+TiMidity u¿ywa patchy takich jak Gravis Ultrasound albo Soundfontów
+(sfx, sf2). Cyfrowe dane audio mog± byæ zapisane do pliku albo
+odtwarzane w czasie rzeczywistym. Przy odtwarzaniu TiMidity mo¿e
+pokazywaæ s³owa zawarte w pliku KAR lub WRD.
+
+%description -l pt_BR
+O TiMidity++ é um sintetizador MIDI por software. Este pacote permite
+ouvir arquivos do tipo MIDI com a mesma qualidade de som que as placas
+que utilizam o recurso de "wavetable" via hardware (como a AWE32),
+mesmo que esta não possua o recurso de "wavetable" (a SB16 por
+exemplo).
+
+%description -l ru
+ðÒÏÉÇÒÙ×ÁÔÅÌØ MIDI ÆÁÊÌÏ×, ÎÅ ÔÒÅÂÕÀÝÉÊ ÐÏÄÄÅÒÖËÉ ÉÎÓÔÒÕÍÅÎÔÏ× MIDI
+Ú×ÕËÏ×ÏÊ ÐÌÁÔÏÊ. éÓÐÏÌØÚÕÅÔ ÆÁÊÌÙ ÉÎÓÔÒÕÍÅÎÔÏ× × ÆÏÒÍÁÔÅ GUS/patch,
+ÍÏÖÅÔ ÔÁËÖÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÄÁÎÎÙÅ × ÆÏÒÍÁÔÅ SoundFont.
+ïÂÅÓÐÅÞÉ×ÁÅÔ ÏÔÌÉÞÎÏÅ ËÁÞÅÓÔ×Ï Ú×ÕËÁ MIDI ÚÁ ÓÞÅÔ ÉÎÔÅÎÓÉ×ÎÏÇÏ
+ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÐÒÏÃÅÓÓÏÒÁ.
+
+%description -l uk
+ðÒÏÇÒÁ×ÁÞ MIDI ÆÁÊ̦×, ÑËÏÍÕ ÎÅ ÐÏÔÒ¦ÂÎÁ ЦÄÔÒÉÍËÁ ¦ÎÓÔÒÕÍÅÎÔ¦× MIDI
+Ú×ÕËÏ×ÏÀ ÐÌÁÔÏÀ. ÷ÉËÏÒÉÓÔÏ×Õ¤ ÆÁÊÌÉ ¦ÎÓÔÒÕÍÅÎÔ¦× Õ ÆÏÒÍÁÔ¦ GUS/patch,
+ÒÏÚÕͦ¤ ÔÁËÏÖ ÆÏÒÍÁÔ SoundFont.
+úÁÂÅÚÐÅÞÕ¤ צÄͦÎÎÕ Ñ˦ÓÔØ Ú×ÕËÕ MIDI ÚÁ ÒÁÈÕÎÏË ¦ÎÔÅÎÓÉ×ÎÏÇÏ
+×ÉËÏÒÉÓÔÁÎÎÑ ÐÒÏÃÅÓÏÒÁ.
+
+%package gspdir
+Summary: Directory for TiMidity++ instruments
+Summary(pl): Katalog na instrumenty TiMidity++
Group: Applications/Sound
-Group(pl): Aplikacje/D¼wiêk
-Requires: %{name} = %{version}
-%description slang
-Slang interface for TiMidity++.
+%description gspdir
+Directory where TiMidity++ instruments should be placed in.
-%package motif
-Summary: Motif interface for TiMidity++.
+%description gspdir -l pl
+Katalog, w którym powinny byæ instalowane instrumenty dla TiMidity++.
+
+%package gtk
+Summary: GTK+ interface for TiMidity++
+Summary(pl): Interfejs TiMidity++ oparty o bibliotekê gtk+
Group: Applications/Sound
-Group(pl): Aplikacje/D¼wiêk
Requires: %{name} = %{version}
-%description motif
-Motif interface for TiMidity++.
+%description gtk
+gtkmidi - GTK+ interface for TiMidity++.
-%package tcltk
-Summary: Tcl/Tk interface for TiMidity++.
+%description gtk -l pl
+gtkmidi - interfejs do TiMidity++ oparty o bibliotekê gtk+.
+
+%package instruments
+Summary: Instruments for TiMidity++
+Summary(pl): Instrumenty dla TiMidity++
+Summary(pt_BR): Instrumentos básicos para o TiMidity++
+Group: Applications/Sound
+Requires: %{name}-gspdir
+Obsoletes: timidity-patches
+
+%description instruments
+Instruments for TiMidity++.
+
+%description instruments -l pl
+Instrumenty dla TiMidity++.
+
+%description instruments -l pt_BR
+Este pacote inclui um conjunto básico de instrumentos (chamados de
+patches no meio musical) para o TiMidity++.
+
+%package motif
+Summary: Motif interface for TiMidity++
+Summary(pl): Interfejs TiMidity++ oparty o Motif
Group: Applications/Sound
-Group(pl): Aplikacje/D¼wiêk
Requires: %{name} = %{version}
-%description tcltk
-Tcl/Tk interface for TiMidity++.
+%description motif
+xmmidi - Motif interface for TiMidity++.
-%package xaw
-Summary: Athena interface for TiMidity++.
+%description motif -l pl
+xmmidi - interfejs do TiMidity++ oparty o bibliotekê Motif.
+
+%package slang
+Summary: Slang interface for TiMidity++
+Summary(pl): Interfejs TiMidity++ oparty o bibliotekê Slang
Group: Applications/Sound
-Group(pl): Aplikacje/D¼wiêk
Requires: %{name} = %{version}
-%description xaw
-Athena interface for TiMidity++.
+%description slang
+Slang interface for TiMidity++.
-%package gtk
-Summary: GTK+ interface for TiMidity++.
+%description slang -l pl
+Interfejs do TiMidity++ oparty o bibliotekê Slang.
+
+%package tcltk
+Summary: Tcl/Tk interface for TiMidity++
+Summary(pl): Interfejs TiMidity++ oparty o Tcl/Tk
Group: Applications/Sound
-Group(pl): Aplikacje/D¼wiêk
Requires: %{name} = %{version}
-%description gtk
-GTK+ interface for TiMidity++.
+%description tcltk
+tkmidi - Tcl/Tk interface for TiMidity++.
+
+%description tcltk -l pl
+tkmidi - interfejs do TiMidity++ oparty o Tcl/Tk.
%package vt100
-Summary: VT100 interface for TiMidity++.
+Summary: VT100 interface for TiMidity++
+Summary(pl): Interfejs TiMidity++ dzia³aj±cy na terminalu VT100
Group: Applications/Sound
-Group(pl): Aplikacje/D¼wiêk
Requires: %{name} = %{version}
%description vt100
VT100 interface for TiMidity++.
+%description vt100 -l pl
+Interfejs do TiMidity++ mog±cy dzia³aæ na terminalu VT100.
+
+%package xaw
+Summary: Athena interface for TiMidity++
+Summary(pl): Interfejs TiMidity++ oparty o Athena Widgets
+Group: Applications/Sound
+Requires: %{name} = %{version}
+
+%description xaw
+xawmidi - Athena interface for TiMidity++.
+
+%description xaw -l pl
+xawmidi - interfejs do TiMidity++ oparty o biblitekê widgetów Athena.
+
%prep
-%setup -q
+%setup -q -n %{name}-%{_ver}-%{_pre}
%patch0 -p1
%build
-aclocal
-autoheader
-autoconf
-automake
+%{__autoconf}
%configure \
--with-elf \
- --enable-alsa \
--enable-dynamic \
--enable-ncurses=dynamic \
--enable-slang=dynamic \
--enable-vt100=dynamic \
--enable-network \
--enable-server \
- --enable-spectrogram
-make
+ --enable-spectrogram \
+%ifnarch sparc sparc64
+ --enable-audio=default,oss,%{!?_without_alsa:alsa,}esd \
+ %{!?_without_alsa:--enable-alsaseq} \
+%else
+ --enable-audio=default,oss,esd \
+%endif
+ --enable-default-output=default
+
+%{__make}
%install
rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_datadir}/GUSpatches}
-make install DESTDIR=$RPM_BUILD_ROOT
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_datadir}/GUSpatches}
-install timidity.cfg $RPM_BUILD_ROOT%{_sysconfdir}
+## based on timidity/timidity.c
+##ln -s timidity $RPM_BUILD_ROOT%{_bindir}/kmidi # does it work?
+ln -sf timidity $RPM_BUILD_ROOT%{_bindir}/gtkmidi
+ln -sf timidity $RPM_BUILD_ROOT%{_bindir}/tkmidi
+ln -sf timidity $RPM_BUILD_ROOT%{_bindir}/xmmidi
+ln -sf timidity $RPM_BUILD_ROOT%{_bindir}/xawmidi
+ln -sf timidity $RPM_BUILD_ROOT%{_bindir}/xskinmidi
-strip --strip-unneeded $RPM_BUILD_ROOT%{_bindir}/* \
- $RPM_BUILD_ROOT%{_libdir}/timidity/*.so || :
+install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}
-gzip -9nf $RPM_BUILD_ROOT%{_mandir}/man*/* \
- AUTHORS README* ChangeLog* NEWS doc/C/{CHANGES*,FAQ,README*}
+cd $RPM_BUILD_ROOT%{_datadir}/GUSpatches
+tar xzf %{SOURCE1}
+mv -f instruments/* .
+rmdir instruments
+bzip2 -cd %{SOURCE2} > britepno.pat
+bzip2 -cd %{SOURCE3} > pistol.pat
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc {AUTHORS,README*,ChangeLog*,NEWS,doc/C/{CHANGES*,FAQ,README.{dl,sf,xskin}*}}.gz
+%doc A* Ch* N* R* TO* doc/C/{C*,F*,README.[!tx]*,README.xs*}
+%config(noreplace) %{_sysconfdir}/timidity.cfg
%attr(755,root,root) %{_bindir}/timidity
+%dir %{_libdir}/timidity
%attr(755,root,root) %{_libdir}/timidity/interface_n.so
%attr(755,root,root) %{_libdir}/timidity/interface_e.so
%attr(755,root,root) %{_libdir}/timidity/interface_i.so
%{_libdir}/timidity/bitmaps
%{_mandir}/man*/*
-%config %{_sysconfdir}/timidity.cfg
+
+%files gspdir
+%defattr(644,root,root,755)
%ghost %dir %{_datadir}/GUSpatches
-%files slang
+%files gtk
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/timidity/interface_s.so
+%attr(755,root,root) %{_libdir}/timidity/interface_g.so
+%attr(755,root,root) %{_bindir}/gtkmidi
+
+%files instruments
+%defattr(644,root,root,755)
+%{_datadir}/GUSpatches/*
%files motif
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/timidity/interface_m.so
+%attr(755,root,root) %{_bindir}/xmmidi
+
+%files slang
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/timidity/interface_s.so
%files tcltk
%defattr(644,root,root,755)
-%doc doc/C/README.tk.gz
+%doc doc/C/README.tk
%attr(755,root,root) %{_libdir}/timidity/interface_k.so
+%{_libdir}/timidity/tclIndex
%{_libdir}/timidity/*.tcl
+%attr(755,root,root) %{_bindir}/tkmidi
-%files xaw
-%defattr(644,root,root,755)
-%doc doc/C/README.xaw.gz
-%attr(755,root,root) %{_libdir}/timidity/interface_a.so
-
-%files gtk
+%files vt100
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/timidity/interface_g.so
+%attr(755,root,root) %{_libdir}/timidity/interface_T.so
-%files vt100
+%files xaw
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/timidity/interface_v.so
+%doc doc/C/README.xaw
+%attr(755,root,root) %{_libdir}/timidity/interface_a.so
+%attr(755,root,root) %{_bindir}/xawmidi