Blob Blame History Raw
%{!?tcl_version: %define tcl_version %(echo 'puts $tcl_version' | tclsh)}
%{!?tcl_sitearch: %define tcl_sitearch %{_libdir}/tcl%{tcl_version}}
%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%define realname snack

Name:		tcl-%{realname}
Version:	2.2.10
Release:	2%{?dist}
Summary:	Sound toolkit
Group:		System Environment/Libraries
License:	GPLv2+
URL:		http://www.speech.kth.se/snack/
# The upstream source has two files which implement MP3 decoding.
# ./generic/jkFormatMP3.c and ./generic/jkFormatMP3.h
# Due to patent concerns, we cannot ship that code, thus, the modified tarball.
# Those files are not present in the tarball, all other related removals is done 
# with a patch.
# Upstream source can be found here: http://www.speech.kth.se/snack/dist/snack2.2.10.tar.gz
Source0:	%{realname}%{version}-nomp3.tar.gz
Patch0:		snack2.2.10-nomp3.patch
Patch1:		snack2.2.10-extracflags.patch
Patch2:		snack2.2.10-shared-stubs.patch
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires:	tcl-devel, tk-devel, alsa-lib-devel, libogg-devel, libvorbis-devel
BuildRequires:	python-devel
Requires:	tcl(abi) = 8.5
Provides:	%{realname} = %{version}-%{release}

%description
The Snack Sound Toolkit is designed to be used with a scripting language such 
as Tcl/Tk or Python. Using Snack you can create powerful multi-platform audio 
applications with just a few lines of code. Snack has commands for basic sound 
handling, such as playback, recording, file and socket I/O. Snack also provides 
primitives for sound visualization, e.g. waveforms and spectrograms. It was 
developed mainly to handle digital recordings of speech, but is just as useful 
for general audio. Snack has also successfully been applied to other 
one-dimensional signals. The combination of Snack and a scripting language 
makes it possible to create sound tools and applications with a minimum of 
effort. This is due to the rapid development nature of scripting languages. As 
a bonus you get an application that is cross-platform from start. It is also 
easy to integrate Snack based applications with existing sound analysis 
software.

%package -n python-%{realname}
Summary:	Python bindings for Snack Sound Toolkit
Group:		System Environment/Libraries
Requires:	%{name} = %{version}-%{release}

%description -n python-%{realname}
This package contains python bindings for the Snack Sound Toolkit. Tcl, Tk, and
Tkinter are also required to use Snack.

%prep
%setup -q -n %{realname}%{version}
%patch0 -p1 -b .nomp3
%patch1 -p1 -b .extracflags
%patch2 -p1 -b .shared-stubs
chmod -x generic/*.c generic/*.h unix/*.c COPYING README demos/python/*
iconv -f iso-8859-1 -t utf-8 -o README{.utf8,}
mv README{.utf8,}
sed -i -e 's|\r||g' demos/python/*.txt

%build
cd unix/
%configure --disable-static --enable-alsa --with-tcl=%{_libdir} --with-tk=%{_libdir} --with-ogg-include=%{_includedir} --with-ogg-lib=%{_libdir}
make %{?_smp_mflags} EXTRACFLAGS="%{optflags}"
cd ../python
%{__python} setup.py build

%install
rm -rf %{buildroot}
cd unix/
make install DESTDIR=%{buildroot}
find %{buildroot} -name '*.la' -exec rm -f {} ';'
cd ../python
%{__python} setup.py install --skip-build --root %{buildroot}
install -d %{buildroot}%{tcl_sitearch}
mv %{buildroot}%{_libdir}/%{realname}2.2 %{buildroot}%{tcl_sitearch}/%{realname}2.2
chmod -x %{buildroot}%{tcl_sitearch}/%{realname}2.2/snack.tcl

%clean
rm -rf %{buildroot}

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%files
%defattr(-,root,root,-)
%doc COPYING README
%{_libdir}/libsnackstub2.2.so
%{tcl_sitearch}/%{realname}2.2/

%files -n python-%{realname}
%defattr(-,root,root,-)
%doc doc/python-man.html demos/python/
%{python_sitelib}/tkSnack*

%changelog
* Mon Aug  4 2008 Tom "spot" Callaway <tcallawa@redhat.com> 2.2.10-2
- add BR: python

* Wed Jun 11 2008 Tom "spot" Callaway <tcallawa@redhat.com> 2.2.10-1
- Initial package for Fedora