packages: tcl-snack/snack-extracflags.patch (NEW), tcl-snack/snack-newALSA....

glen glen at pld-linux.org
Thu Feb 25 23:13:54 CET 2010


Author: glen                         Date: Thu Feb 25 22:13:54 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- new, based on fc

---- Files affected:
packages/tcl-snack:
   snack-extracflags.patch (NONE -> 1.1)  (NEW), snack-newALSA.patch (NONE -> 1.1)  (NEW), snack-shared-stubs.patch (NONE -> 1.1)  (NEW), tcl-snack.spec (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/tcl-snack/snack-extracflags.patch
diff -u /dev/null packages/tcl-snack/snack-extracflags.patch:1.1
--- /dev/null	Thu Feb 25 23:13:54 2010
+++ packages/tcl-snack/snack-extracflags.patch	Thu Feb 25 23:13:49 2010
@@ -0,0 +1,14 @@
+diff -up snack2.2.10/unix/Makefile.in.BAD snack2.2.10/unix/Makefile.in
+--- snack2.2.10/unix/Makefile.in.BAD	2008-06-11 15:26:32.000000000 -0400
++++ snack2.2.10/unix/Makefile.in	2008-06-11 15:26:55.000000000 -0400
+@@ -31,7 +31,9 @@ CC        = @CC@
+ 
+ INCLUDES  = ${XINCLUDES} @TCL_INCLUDE_SPEC@ -I${TCL_INCPATH} -I${TK_INCPATH} @AINC@ @NISTINC@
+ 
+-CFLAGS    = -O @CFLAGS@ @AFLAG@ ${INCLUDES} @TCLAPI@ -I${GENERIC_DIR} @DEFS@
++EXTRACFLAGS =
++
++CFLAGS    = -O @CFLAGS@ @AFLAG@ ${INCLUDES} ${EXTRACFLAGS} @TCLAPI@ -I${GENERIC_DIR} @DEFS@
+ 
+ LIBSO     = -lc @ALIB@ @TCL_LIB_SPEC@
+ 

================================================================
Index: packages/tcl-snack/snack-newALSA.patch
diff -u /dev/null packages/tcl-snack/snack-newALSA.patch:1.1
--- /dev/null	Thu Feb 25 23:13:54 2010
+++ packages/tcl-snack/snack-newALSA.patch	Thu Feb 25 23:13:49 2010
@@ -0,0 +1,50 @@
+diff -up snack2.2.10/unix/jkAudIO_alsa.c.newALSA snack2.2.10/unix/jkAudIO_alsa.c
+--- snack2.2.10/unix/jkAudIO_alsa.c.newALSA	2008-09-22 14:19:55.000000000 -0400
++++ snack2.2.10/unix/jkAudIO_alsa.c	2008-09-22 14:21:44.000000000 -0400
+@@ -49,6 +49,8 @@ static int littleEndian = 0;
+ 
+ static int minNumChan = 1;
+ 
++static snd_pcm_uframes_t hw_bufsize = 0; 
++
+ int
+ SnackAudioOpen(ADesc *A, Tcl_Interp *interp, char *device, int mode, int freq,
+ 	       int nchannels, int encoding)
+@@ -135,6 +137,9 @@ SnackAudioOpen(ADesc *A, Tcl_Interp *int
+     Tcl_AppendResult(interp, "Failed setting HW params.", NULL);
+     return TCL_ERROR;
+   }
++
++  snd_pcm_hw_params_get_buffer_size (hw_params, &hw_bufsize); 
++
+   snd_pcm_hw_params_free(hw_params);
+   snd_pcm_prepare(A->handle);
+   if (A->mode == RECORD) {
+@@ -202,6 +207,8 @@ SnackAudioPost(ADesc *A)
+   int i;
+   static char buf[64];
+ 
++  return;
++
+   if (A->debug > 1) Snack_WriteLog("  Enter SnackAudioPost\n");
+ 
+   for (i = 0; i < 1000; i++) {
+@@ -267,12 +274,14 @@ SnackAudioWriteable(ADesc *A)
+ long
+ SnackAudioPlayed(ADesc *A)
+ {
+-  long avail = _snd_pcm_mmap_hw_ptr(A->handle);
++  // FIX Here, _snd_pcm_mmap_hw_ptr is deprecated in new alsalib
++  long played = A->nWritten - (hw_bufsize - SnackAudioWriteable(A));
++  // long avail = _snd_pcm_mmap_hw_ptr(A->handle); 
+   
+-  if (avail < 0)
+-    avail = 0;
++  if (played < 0)
++    return 0;
+ 
+-  return (avail+A->nPlayed);
++  return (played);
+ }
+ 
+ void

================================================================
Index: packages/tcl-snack/snack-shared-stubs.patch
diff -u /dev/null packages/tcl-snack/snack-shared-stubs.patch:1.1
--- /dev/null	Thu Feb 25 23:13:54 2010
+++ packages/tcl-snack/snack-shared-stubs.patch	Thu Feb 25 23:13:49 2010
@@ -0,0 +1,36 @@
+diff -up snack2.2.10/unix/configure.shared-stubs snack2.2.10/unix/configure
+--- snack2.2.10/unix/configure.shared-stubs	2008-06-11 16:33:05.000000000 -0400
++++ snack2.2.10/unix/configure	2008-06-11 16:33:33.000000000 -0400
+@@ -1663,7 +1663,7 @@ echo "${ECHO_T}will use stubs (normal)" 
+     TCL_LIB_SPEC="${TCL_STUB_LIB_SPEC}"
+     TK_LIB_SPEC="${TK_STUB_LIB_SPEC}"
+     STUBINITOBJ="snackStubInit.o"
+-    DOSTUBLIB="stublib"
++    DOSTUBLIB="libsnackstub$SNACK_VERSION${SHLIB_SUFFIX}"
+     SNACK_STUB_LIB_FLAG="-lsnackstub$SNACK_VERSION"
+     if test "$TCLVER" = "8.0"; then
+         { echo "$as_me:$LINENO: WARNING: \"You probably forgot to specify --disable-stubs\"" >&5
+diff -up snack2.2.10/unix/Makefile.in.shared-stubs snack2.2.10/unix/Makefile.in
+--- snack2.2.10/unix/Makefile.in.shared-stubs	2008-06-11 16:29:57.000000000 -0400
++++ snack2.2.10/unix/Makefile.in	2008-06-11 16:32:36.000000000 -0400
+@@ -164,8 +164,9 @@ libsnack${SHLIB_SUFFIX}: ${OBJSN}
+ 	${SHLIB_LD} ${OBJSN} ${LIBSN} -o libsnack${SHLIB_SUFFIX} 
+ 	sed s/.dll/${SHLIB_SUFFIX}/ < $(UNIX_DIR)/pkgIndex.tcl.dll > pkgIndex.tcl
+ 
+-stublib: ${OBJSNST}
+-	ar cr libsnackstub${VERSION}.a ${OBJSNST}
++libsnackstub${VERSION}${SHLIB_SUFFIX}: ${OBJSNST}
++	${SHLIB_LD} ${OBJSNST} -o libsnackstub${VERSION}${SHLIB_SUFFIX}
++#	ar cr libsnackstub${VERSION}.a ${OBJSNST}
+ 
+ editversion: ${OBJSN}
+ 	if test "$(TCL_VERSION)" != "8.4"; then\
+@@ -310,7 +311,7 @@ install:
+         fi;
+ 	cp -f libsound${SHLIB_SUFFIX} ${DESTDIR}${SNACK_INSTALL_PATH}/snack${VERSION}/
+ 	cp -f libsnack${SHLIB_SUFFIX} ${DESTDIR}${SNACK_INSTALL_PATH}/snack${VERSION}/
+-	if test -f libsnackstub${VERSION}.a; then cp -f libsnackstub${VERSION}.a ${DESTDIR}${SNACK_INSTALL_PATH}/; fi
++	if test -f libsnackstub${VERSION}${SHLIB_SUFFIX}; then cp -f libsnackstub${VERSION}${SHLIB_SUFFIX} ${DESTDIR}${SNACK_INSTALL_PATH}/; fi
+ 	if test -f libsnacksphere${SHLIB_SUFFIX}; then cp -f libsnacksphere${SHLIB_SUFFIX} ${DESTDIR}${SNACK_INSTALL_PATH}/snack${VERSION}/; fi
+ 	if test -f libsnackogg${SHLIB_SUFFIX}; then cp -f libsnackogg${SHLIB_SUFFIX} ${DESTDIR}${SNACK_INSTALL_PATH}/snack${VERSION}/; fi
+ 	cp -f $(UNIX_DIR)/snack.tcl ${DESTDIR}${SNACK_INSTALL_PATH}/snack${VERSION}/

================================================================
Index: packages/tcl-snack/tcl-snack.spec
diff -u /dev/null packages/tcl-snack/tcl-snack.spec:1.1
--- /dev/null	Thu Feb 25 23:13:55 2010
+++ packages/tcl-snack/tcl-snack.spec	Thu Feb 25 23:13:49 2010
@@ -0,0 +1,132 @@
+# $Revision$, $Date$
+%define realname snack
+Summary:	Sound toolkit
+Name:		tcl-%{realname}
+Version:	2.2.10
+Release:	0.1
+License:	GPL v2+
+Group:		Libraries
+URL:		http://www.speech.kth.se/snack/
+Source0:	http://www.speech.kth.se/snack/dist/snack%{version}.tar.gz
+# Source0-md5:	98da0dc73599b3a039cba1b7ff169399
+Patch1:		snack-extracflags.patch
+Patch2:		snack-shared-stubs.patch
+Patch3:		snack-newALSA.patch
+BuildRequires:	alsa-lib-devel
+BuildRequires:	libogg-devel
+BuildRequires:	libvorbis-devel
+BuildRequires:	python-devel
+BuildRequires:	tcl-devel
+BuildRequires:	tk-devel
+BuildRequires:	xorg-lib-libXft-devel
+Requires:	tcl(abi) = %{tcl_version}
+Provides:	%{realname} = %{version}-%{release}
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%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 devel
+Summary:	Development files for Snack Sound Toolkit
+Group:		Development/Libraries
+Requires:	%{name} = %{version}-%{release}
+
+%description devel
+This package contains development files for the Snack Sound Toolkit.
+
+%package -n python-%{realname}
+Summary:	Python bindings for Snack Sound Toolkit
+Group:		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}
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+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 \
+	--with-tcl=%{_libdir} \
+	--with-tk=%{_libdir} \
+	--with-ogg-include=%{_includedir} \
+	--with-ogg-lib=%{_libdir} \
+	--enable-alsa \
+
+%{__make} EXTRACFLAGS="%{optflags}"
+cd ../python
+%{__python} setup.py build
+
+%install
+rm -rf $RPM_BUILD_ROOT
+cd unix
+%{__make} install DESTDIR=$RPM_BUILD_ROOT
+find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
+cd -
+
+cd python
+%{__python} setup.py install --skip-build --root $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT%{tcl_sitearch}
+mv $RPM_BUILD_ROOT%{_libdir}/%{realname}2.2 $RPM_BUILD_ROOT%{tcl_sitearch}/%{realname}2.2
+chmod -x $RPM_BUILD_ROOT%{tcl_sitearch}/%{realname}2.2/snack.tcl
+cd -
+
+# Devel bits
+install -d $RPM_BUILD_ROOT%{_includedir}
+install -p generic/*.h $RPM_BUILD_ROOT%{_includedir}
+install -p unix/snackConfig.sh $RPM_BUILD_ROOT%{_libdir}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post	-p /sbin/ldconfig
+%postun	-p /sbin/ldconfig
+
+%files
+%defattr(644,root,root,755)
+%doc COPYING README
+%{_libdir}/libsnackstub2.2.so
+%{tcl_sitearch}/%{realname}2.2/
+
+%files devel
+%defattr(644,root,root,755)
+%{_includedir}/*.h
+%{_libdir}/snackConfig.sh
+
+%files -n python-%{realname}
+%defattr(644,root,root,755)
+%doc doc/python-man.html demos/python/
+%{py_sitedir}/tkSnack*
+
+%define date	%(echo `LC_ALL="C" date +"%a %b %d %Y"`)
+%changelog
+* %{date} PLD Team <feedback at pld-linux.org>
+All persons listed below can be reached at <cvs_login>@pld-linux.org
+
+$Log$
+Revision 1.1  2010/02/25 22:13:49  glen
+- new, based on fc
+
================================================================


More information about the pld-cvs-commit mailing list