File timidity.spec of Package timidity

#
# spec file for package timidity
#
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

# norootforbuild

%if 0%{?suse_version} < 1140
%define have_arts	1
%else
%define have_arts	0
%endif

Name:           timidity
Summary:        Software Synthesizer and MIDI Player
Version:        2.13.2
Release:        263
Group:          Productivity/Multimedia/Sound/Midi
AutoReqProv:    on
License:        GPLv2+
Url:            http://timidity.sourceforge.net/
%define package_version 2.13.2
%define _use_internal_dependency_generator 0
%define my_provides /tmp/my-provides
BuildRequires:  alsa-devel esound-devel libao-devel libjack-devel
BuildRequires:  gtk2-devel ncurses-devel openmotif-devel slang-devel tk-devel
BuildRequires:  libogg-devel libvorbis-devel update-desktop-files xaw3d
BuildRequires:  flac-devel speex-devel
Recommends:     fluid-soundfont-gm fluid-soundfont-gs
%if %{have_arts}
BuildRequires:  arts-devel
%endif
%if 0%{?suse_version} > 1020
BuildRequires:  fdupes xaw3d-devel
%endif
PreReq:         %insserv_prereq  %fillup_prereq
Source:         TiMidity++-%{package_version}.tar.bz2
# Source:       timidity-cvs20040227.tar.bz2
Source1:        timidity-patches.tar.bz2
Source2:        %name.desktop
Source3:        timidity.png
Source4:        timidity.cfg
Source5:        %{name}.init
Source6:        %{name}.sysconf
Source7:        README.SuSE
Patch:          timidity-el-path.dif
Patch1:         timidity-gcc4-fix.diff
Patch2:         timidity-array-range-fix.diff
Patch3:         timidity-tcl-wish-path-fix.diff
Patch4:         timidity-alsaseq-poll-fix.diff
Patch5:         timidity-fonts-fix.diff
Patch6:         timidity-tcl8.5-fix.diff
Patch7:         timidity-server-warning-fixes.diff

Patch8:         timidity-fix_implicit_declarations.patch
Patch9:         timidity-int_ptr_casts.patch
Patch10:        timidity-quote_m4_macros.patch
Patch11:        timidity-ac_help_string.patch
Patch12:        timidity-configure_cache_val_name.patch
Patch13:        timidity-flac_api_changes.patch
Patch14:        timidity-speex_configury.patch
Patch15:        timidity-new_decompressors.patch
Patch16:        timidity-codecleanup.patch
Patch17:        timidity-no_date.patch
Patch18:        timidity-add_fluid_cfgs.patch
Patch19:        timidity-fix-sndfont-list.diff
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
TiMidity plays MIDI files without external MIDI instruments and
converts MIDI files to WAV using GUS/patch and SoundFont for voice
data.



Authors:
--------
    Masanao Izumo <mo@goice.co.jp>

%prep
%setup -q -n TiMidity++-%{package_version} -a 1
%patch
%patch1
%patch2
%patch3
%patch4
%patch5
%patch6
%patch7 -p1
%patch8
%patch9
%patch10
%patch11
%patch12
%patch13
%patch14
%patch15
%patch16
%patch17
%patch18
%patch19 -p1
for f in ./utils/bitset.c ./utils/bitset.h ./utils/nkflib.c; do
	iconv -f EUC-JISX0213 -t UTF-8 $f > $f.utf8 && mv $f.utf8 $f
done

%build
echo >> autoconf/arts.m4
autoreconf --force --install
%configure \
	--enable-dynamic=ncurses,emacs,slang,vt100,xaw,xskin,gtk,motif,tcltk,alsaseq,server \
%if %{have_arts}
	--enable-audio=alsa,arts,oss,esd,vorbis,jack,ao,flac,speex \
%else
	--enable-audio=alsa,oss,esd,vorbis,jack,ao,flac,speex \
%endif
	--with-default-output=alsa \
	--enable-network \
	--enable-spectrogram \
	--enable-wrd \
	--with-module-dir=%{_libdir}/timidity \
	--with-default-path=/etc
make %{?jobs:-j %jobs} WISH=tclsh CFLAGS="$RPM_OPT_FLAGS"

%install
%makeinstall WISH=tclsh
mkdir -p $RPM_BUILD_ROOT%{_datadir}/X11/app-defaults/
cp TiMidity.ad $RPM_BUILD_ROOT/usr/share/X11/app-defaults/TiMidity
# for japanese locale
# UTF-8 version
mkdir -p $RPM_BUILD_ROOT%{_datadir}/X11/{ja,ja_JP.UTF-8,ja_JP.eucJP,ja_JP.ujis}/app-defaults
iconv -feuc-jp -tutf-8 TiMidity-uj.ad > $RPM_BUILD_ROOT%{_datadir}/X11/ja/app-defaults/TiMidity
ln -s ../../ja/app-defaults/TiMidity $RPM_BUILD_ROOT%{_datadir}/X11/ja_JP.UTF-8/app-defaults/TiMidity
# EUC-jp version
cp TiMidity-uj.ad $RPM_BUILD_ROOT%{_datadir}/X11/ja_JP.eucJP/app-defaults/TiMidity
ln -s ../../ja_JP.eucJP/app-defaults/TiMidity $RPM_BUILD_ROOT%{_datadir}/X11/ja_JP.ujis/app-defaults/TiMidity
# copy documents
mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}
cp AUTHORS COPYING ChangeLog* NEWS README TODO \
  $RPM_BUILD_ROOT%{_docdir}/%{name}
for i in *.ja; do
  iconv -f euc-jp -t utf8 $i > $RPM_BUILD_ROOT%{_docdir}/%{name}/$i
done
mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}/en
(cd doc/C
  for i in * ; do
    case $i in
    Makefile*|*.[1-9])
      ;;
    *)
      cp $i $RPM_BUILD_ROOT%{_docdir}/%{name}/en
      ;;
    esac
  done
)
mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}/ja_JP
(cd doc/ja_JP.eucJP
  for i in * ; do
    case $i in
    Makefile*|*.[1-9])
      ;;
    *)
      iconv -f euc-jp -t utf8 $i > $RPM_BUILD_ROOT%{_docdir}/%{name}/ja_JP/$i
      ;;
    esac
  done
)
# copy sample patches and config file
mkdir -p $RPM_BUILD_ROOT%{_datadir}/timidity
cp -a timidity-patches/* $RPM_BUILD_ROOT%{_datadir}/timidity
mkdir -p $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp
mkdir -p $RPM_BUILD_ROOT%{_datadir}/xemacs/site-lisp/lisp
cp interface/timidity.el $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp
cp interface/timidity.el $RPM_BUILD_ROOT%{_datadir}/xemacs/site-lisp/lisp
%suse_update_desktop_file -i -u %name AudioVideo Midi
mkdir -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
cp %{SOURCE3} $RPM_BUILD_ROOT%{_datadir}/pixmaps
mkdir -p $RPM_BUILD_ROOT/etc
install -c -m 644 %{SOURCE4} $RPM_BUILD_ROOT/etc

# boot scripts
#
%__install -D %{S:5} %{buildroot}/etc/init.d/%{name}
%__install -d %{buildroot}/usr/sbin
ln -s ../../etc/init.d/%{name} %{buildroot}/usr/sbin/rc%{name}
#
# fillup sysconfig.timidity
#
%__install -m 644 -D %{S:6} %{buildroot}/var/adm/fillup-templates/sysconfig.timidity

# exclude plugins from the provide-list
cat << EOF > %{my_provides}
grep -v $RPM_BUILD_ROOT%{_libdir}/timidity | %{__find_provides}
EOF
chmod 755 %{my_provides}
%define __find_provides %{my_provides}
%if 0%{?suse_version} > 1020
%fdupes -s $RPM_BUILD_ROOT
%endif

%clean
[ "$RPM_BUILD_ROOT" != "/" -a -d $RPM_BUILD_ROOT ] && rm -rf $RPM_BUILD_ROOT
rm -f %{my_provides}

%post
%fillup_only

%preun
%stop_on_removal timidity

%postun
%restart_on_update %name
%{insserv_cleanup}

%files
%defattr(-,root,root)
%{_libdir}/timidity
%{_datadir}/timidity
%config(noreplace) %{_datadir}/timidity/timidity.cfg
%{_bindir}/timidity
%{_datadir}/applications/*.desktop
%{_datadir}/pixmaps/*.png
%config /etc/timidity.cfg
%doc %{_mandir}/man*/*
%{_datadir}/X11/app-defaults/TiMidity
%{_datadir}/X11/ja*
%doc %{_docdir}/%{name}
%{_datadir}/emacs
%{_datadir}/xemacs
%{_sysconfdir}/init.d/timidity
%{_sbindir}/rctimidity
/var/adm/fillup-templates/sysconfig.timidity

%changelog
openSUSE Build Service is sponsored by