# Conditional build:
%bcond_without x # without X based interfaces (implies libX11 deps)
%bcond_without alsa # without ALSA support
+%bcond_without ao # enable ao support
%bcond_with arts # enable ARTS support (implies also glib(2) deps)
%bcond_with esd # enable ESD support
%bcond_with jack # enable JACK support
Summary(ru.UTF-8): Проигрыватель MIDI файлов и конвертор их в WAV формат
Summary(uk.UTF-8): Програвач MIDI-файлів та конвертор їх в WAV формат
Name: TiMidity++
-Version: 2.13.2
-Release: 5
+Version: 2.15.0
+Release: 1
License: GPL
Group: Applications/Sound
-Source0: http://dl.sourceforge.net/timidity/%{name}-%{version}.tar.bz2
-# Source0-md5: a82ceeb2245e22f4de2b41da21eaee32
+Source0: http://downloads.sourceforge.net/timidity/%{name}-%{version}.tar.xz
+# Source0-md5: d85077febda2c85ffe9f9628023c2667
Source1: http://archive.cs.umbc.edu/pub/midia/instruments.tar.gz
# Source1-md5: 4959787a78ee39d44a36185bd303cf20
Source2: britepno.pat.bz2
Source4: timidity.cfg
Source5: timidity.init
Source6: timidity.sysconfig
+Source7: timidity-modules-load.conf
+Source8: timidity.service
Patch0: %{name}-detach.patch
-Patch1: %{name}-gcc4.patch
Patch2: %{name}-configure.patch
URL: http://timidity.sourceforge.net/
%{?with_alsa:BuildRequires: alsa-lib-devel}
%{?with_esd:BuildRequires: esound-devel}
%{?with_x:BuildRequires: gtk+-devel}
%{?with_jack:BuildRequires: jack-audio-connection-kit-devel}
+%{?with_ao:BuildRequires: libao-devel}
%{?with_vorbis:BuildRequires: libvorbis-devel}
%{?with_x:BuildRequires: motif-devel}
%{?with_nas:BuildRequires: nas-devel}
BuildRequires: ncurses-devel
-BuildRequires: rpmbuild(macros) >= 1.268
+BuildRequires: rpmbuild(macros) >= 1.626
BuildRequires: slang-devel >= 2.0.0
%{?with_x:BuildRequires: tk-devel >= 8.3.2}
%{?with_x:Provides: %{name}(X) = %{version}-%{release}}
-Obsoletes: timidity
-Obsoletes: timidity++
-Obsoletes: timidity++-X11
+Obsoletes: timidity < 2.10.4
+Obsoletes: timidity++ < 2.10.4
+Obsoletes: timidity++-X11 < 2.10.4
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
Summary(pt_BR.UTF-8): Instrumentos básicos para o TiMidity++
Group: Applications/Sound
Requires: %{name}-gspdir = %{version}-%{release}
-Obsoletes: timidity-patches
+Obsoletes: timidity-patches < 2.10.4
%description instruments
Instruments for TiMidity++.
Este pacote inclui um conjunto básico de instrumentos (chamados de
patches no meio musical) para o TiMidity++.
+%package emacs
+Summary: Emacs interface for TiMidity++
+Summary(pl.UTF-8): Interfejs TiMidity++ oparty o Emacsa
+Group: Applications/Sound
+Requires: %{name} = %{version}-%{release}
+Requires: emacs
+
+%description emacs
+Emacs interface for TiMidity++.
+
+%description emacs -l pl.UTF-8
+Interfejs TiMidity++ oparty o Emacsa.
+
%package gtk
Summary: GTK+ interface for TiMidity++
Summary(pl.UTF-8): Interfejs TiMidity++ oparty o bibliotekę GTK+
Summary(pl.UTF-8): Interfejs TiMidity++ "X Skin"
Group: Applications/Sound
Requires: %{name}(X) = %{version}-%{release}
-Obsoletes: TiMidity++ < 2.13.0-3
%description xskin
xskinmidi - "X Skin" interface for TiMidity++.
Summary(pl.UTF-8): TiMidity++ jako interfejs sekwencera ALSA
Group: Applications/Sound
Requires(post,preun): /sbin/chkconfig
+Requires(post,preun,postun): systemd-units >= 38
Requires: %{name} = %{version}-%{release}
Requires: rc-scripts
+Requires: systemd-units >= 38
%description alsaseq
The ALSA sequencer interface communicates between ALSA sequencer core
%prep
%setup -q
%patch0 -p1
-%patch1 -p1
-%patch2 -p0
+%patch2 -p1
for f in doc/ja_JP.eucJP/README*; do
- mv -f $f ${f}.ja
+ %{__mv} $f ${f}.ja
done
%build
%{__autoconf}
AUDIO=oss%{?with_alsa:,alsa}%{?with_arts:,arts}%{?with_esd:,esd}\
-%{?with_jack:,jack}%{?with_nas:,nas}%{?with_vorbis:,vorbis}
+%{?with_jack:,jack}%{?with_nas:,nas}%{?with_vorbis:,vorbis}%{?with_ao:,ao}
%configure \
+ CPPFLAGS="-DUSE_INTERP_RESULT %{rpmcppflags}" \
%{?with_alsa:--enable-alsaseq} \
--enable-audio=$AUDIO \
--enable-dynamic \
- %{?with_x:--enable-gtk=dynamic} \
--enable-emacs=dynamic \
+ %{?with_x:--enable-gtk=dynamic} \
%{?with_x:--enable-motif=dynamic} \
--enable-ncurses=dynamic \
--enable-network \
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_datadir}/GUSpatches,/etc/{rc.d/init.d,sysconfig}}
+install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_datadir}/GUSpatches,/etc/{rc.d/init.d,sysconfig}} \
+ $RPM_BUILD_ROOT{%{systemdunitdir},/etc/modules-load.d}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT \
+ ELISP_DIR=%{_datadir}/emacs/site-lisp \
SHLIB_DIR=%{_libdir}/timidity
+# missing in install_tk targets
+%{__make} -C interface install.bitmaps \
+ DESTDIR=$RPM_BUILD_ROOT
+
## based on timidity/timidity.c
##ln -s timidity $RPM_BUILD_ROOT%{_bindir}/kmidi # does it work?
ln -sf timidity $RPM_BUILD_ROOT%{_bindir}/gtkmidi
cd $RPM_BUILD_ROOT%{_datadir}/GUSpatches
tar xzf %{SOURCE1}
-mv -f instruments/* .
+%{__mv} instruments/* .
rmdir instruments
bzip2 -cd %{SOURCE2} > britepno.pat
bzip2 -cd %{SOURCE3} > pistol.pat
install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/timidity
install %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/timidity
+install %{SOURCE7} $RPM_BUILD_ROOT/etc/modules-load.d/timidity.conf
+install %{SOURCE8} $RPM_BUILD_ROOT%{systemdunitdir}/timidity.service
+
%clean
rm -rf $RPM_BUILD_ROOT
%post alsaseq
/sbin/chkconfig --add timidity
%service timidity restart "TiMidity++ ALSA sequencer interface"
+%systemd_post timidity.service
%preun alsaseq
if [ "$1" = "0" ]; then
%service timidity stop
/sbin/chkconfig --del timidity
fi
+%systemd_preun timidity.service
+
+%postun alsaseq
+%systemd_reload
+
+%triggerpostun alsaseq -- %{name}-alsaseq < 2.13.2-8
+%systemd_trigger timidity.service
%files
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/timidity
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/timidity.cfg
%dir %{_libdir}/timidity
-%attr(755,root,root) %{_libdir}/timidity/interface_e.so
-%attr(755,root,root) %{_libdir}/timidity/interface_n.so
-%{_libdir}/timidity/interface_e.txt
-%{_libdir}/timidity/interface_n.txt
-%if "%{_lib}" != "lib"
-%dir %{_prefix}/lib/timidity
-%endif
-%{?with_x:%{_prefix}/lib/timidity/bitmaps}
+%attr(755,root,root) %{_libdir}/timidity/if_ncurses.so
%{_mandir}/man1/timidity.1*
%{_mandir}/man5/timidity.cfg.5*
%lang(ja) %{_mandir}/ja/man1/timidity.1*
%defattr(644,root,root,755)
%{_datadir}/GUSpatches/*
+%files emacs
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/timidity/if_emacs.so
+%{_datadir}/emacs/site-lisp/timidity.el
+
%if %{with x}
%files gtk
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/gtkmidi
-%attr(755,root,root) %{_libdir}/timidity/interface_g.so
-%{_libdir}/timidity/interface_g.txt
+%attr(755,root,root) %{_libdir}/timidity/if_gtk.so
%endif
%if %{with x}
%files motif
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/xmmidi
-%attr(755,root,root) %{_libdir}/timidity/interface_m.so
-%{_libdir}/timidity/interface_m.txt
+%attr(755,root,root) %{_libdir}/timidity/if_motif.so
%endif
%files slang
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/timidity/interface_s.so
-%{_libdir}/timidity/interface_s.txt
+%attr(755,root,root) %{_libdir}/timidity/if_slang.so
%if %{with x}
%files tcltk
%doc doc/C/README.tk
%lang(ja) %doc doc/ja_JP.eucJP/README.tk.ja
%attr(755,root,root) %{_bindir}/tkmidi
-%attr(755,root,root) %{_libdir}/timidity/interface_k.so
-%{_libdir}/timidity/interface_k.txt
+%attr(755,root,root) %{_libdir}/timidity/if_tcltk.so
+%if "%{_lib}" != "lib"
+%dir %{_prefix}/lib/timidity
+%endif
%{_prefix}/lib/timidity/tclIndex
%{_prefix}/lib/timidity/*.tcl
+%{_prefix}/lib/timidity/bitmaps
%endif
%files vt100
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/timidity/interface_T.so
-%{_libdir}/timidity/interface_T.txt
+%attr(755,root,root) %{_libdir}/timidity/if_vt100.so
%if %{with x}
%files xaw
%doc doc/C/README.xaw
%lang(ja) %doc doc/ja_JP.eucJP/README.xaw.ja
%attr(755,root,root) %{_bindir}/xawmidi
-%attr(755,root,root) %{_libdir}/timidity/interface_a.so
-%{_libdir}/timidity/interface_a.txt
+%attr(755,root,root) %{_libdir}/timidity/if_xaw.so
%files xskin
%defattr(644,root,root,755)
%doc doc/C/README.xskin
%lang(ja) %doc doc/ja_JP.eucJP/README.xskin.ja
%attr(755,root,root) %{_bindir}/xskinmidi
-%attr(755,root,root) %{_libdir}/timidity/interface_i.so
-%{_libdir}/timidity/interface_i.txt
+%attr(755,root,root) %{_libdir}/timidity/if_xskin.so
%endif
%if %{with alsa}
%defattr(644,root,root,755)
%attr(754,root,root) /etc/rc.d/init.d/timidity
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/timidity
+%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/timidity.conf
+%{systemdunitdir}/timidity.service
%endif