# We used to define this dynamically, but the Fedora buildsystem chokes on # using this for the versioned Requires on tcl(abi), so we hardcode it. # This sucks, but there is no other clean way around it, because tcl # (and tclsh) aren't in the default buildroot. %{!?tcl_version: %define tcl_version 8.5} %{!?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: 4%{?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) = %{tcl_version} 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 * Thu Sep 18 2008 Tom "spot" Callaway 2.2.10-4 - *sigh* hardcoding the tcl version is the only way to get it through the buildsystem * Wed Sep 17 2008 Tom "spot" Callaway 2.2.10-3 - don't hardcode tcl abi version * Mon Aug 4 2008 Tom "spot" Callaway 2.2.10-2 - add BR: python * Wed Jun 11 2008 Tom "spot" Callaway 2.2.10-1 - Initial package for Fedora