diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0bc8a13 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/gsm-1.0.13.tar.gz diff --git a/.gsm.metadata b/.gsm.metadata new file mode 100644 index 0000000..f59cbfe --- /dev/null +++ b/.gsm.metadata @@ -0,0 +1 @@ +668b0a180039a50d379b3d5a22e78da4b1d90afc SOURCES/gsm-1.0.13.tar.gz diff --git a/SOURCES/gsm-64bit.patch b/SOURCES/gsm-64bit.patch new file mode 100644 index 0000000..195ed31 --- /dev/null +++ b/SOURCES/gsm-64bit.patch @@ -0,0 +1,15 @@ +--- gsm-1.0-pl12/inc/private.h.64bit 2006-04-26 21:17:01.000000000 +0200 ++++ gsm-1.0-pl12/inc/private.h 2007-05-11 00:25:23.000000000 +0200 +@@ -10,10 +10,10 @@ + #define PRIVATE_H + + typedef short word; /* 16 bit signed int */ +-typedef long longword; /* 32 bit signed int */ ++typedef int longword; /* 32 bit signed int */ + + typedef unsigned short uword; /* unsigned word */ +-typedef unsigned long ulongword; /* unsigned longword */ ++typedef unsigned int ulongword; /* unsigned longword */ + + struct gsm_state { + diff --git a/SOURCES/gsm-makefile.patch b/SOURCES/gsm-makefile.patch new file mode 100644 index 0000000..cf3e99b --- /dev/null +++ b/SOURCES/gsm-makefile.patch @@ -0,0 +1,115 @@ +--- gsm-1.0-pl12/Makefile.mk 2006-04-26 21:14:26.000000000 +0200 ++++ gsm-1.0-pl12/Makefile 2007-05-13 13:03:32.000000000 +0200 +@@ -30,6 +30,10 @@ + ######### define this, and read about the GSM_OPT_WAV49 option in the + ######### manual page on gsm_option(3). + ++PG = ++#PG = -g -pg ++######### Profiling flags. If you don't know what that means, leave it blank ++ + # Choose a compiler. The code works both with ANSI and K&R-C. + # Use -DNeedFunctionPrototypes to compile with, -UNeedFunctionPrototypes to + # compile without, function prototypes in the header files. +@@ -44,7 +48,7 @@ + # CCFLAGS = -c -O + + CC = gcc -ansi -pedantic +-CCFLAGS = -c -O2 -DNeedFunctionPrototypes=1 ++CCFLAGS = -c $(RPM_OPT_FLAGS) -D_REENTRANT -DNeedFunctionPrototypes=1 + + LD = $(CC) + +@@ -81,7 +85,7 @@ + GSM_INSTALL_ROOT = $(INSTALL_ROOT) + GSM_INSTALL_LIB = $(GSM_INSTALL_ROOT)/lib + GSM_INSTALL_INC = $(GSM_INSTALL_ROOT)/inc +-GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/man/man3 ++GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/share/man/man3 + + + # Where do you want to install the toast binaries and their manpage? +@@ -91,16 +95,16 @@ + + TOAST_INSTALL_ROOT = $(INSTALL_ROOT) + TOAST_INSTALL_BIN = $(TOAST_INSTALL_ROOT)/bin +-TOAST_INSTALL_MAN = $(TOAST_INSTALL_ROOT)/man/man1 ++TOAST_INSTALL_MAN = $(TOAST_INSTALL_ROOT)/share/man/man1 + + # Other tools + + SHELL = /bin/sh +-LN = ln ++LN = ln -s + BASENAME = basename + AR = ar + ARFLAGS = cr +-RMFLAGS = ++RMFLAGS = -f + FIND = find + COMPRESS = compress + COMPRESSFLAGS = +@@ -129,17 +133,18 @@ + # DEBUG = -DNDEBUG + ######### Remove -DNDEBUG to enable assertions. + +-CFLAGS = $(CCFLAGS) $(SASR) $(DEBUG) $(MULHACK) $(FAST) $(LTP_CUT) \ ++CFLAGS = $(PG) $(CCFLAGS) $(SASR) $(DEBUG) $(MULHACK) $(FAST) $(LTP_CUT) \ + $(WAV49) $(CCINC) -I$(INC) + ######### It's $(CC) $(CFLAGS) + +-LFLAGS = $(LDFLAGS) $(LDINC) ++LFLAGS = $(PG) $(LDFLAGS) $(LDINC) + ######### It's $(LD) $(LFLAGS) + + + # Targets + + LIBGSM = $(LIB)/libgsm.a ++LIBGSMSO = $(LIB)/libgsm.so + + TOAST = $(BIN)/toast + UNTOAST = $(BIN)/untoast +@@ -279,7 +284,7 @@ + + # Target rules + +-all: $(LIBGSM) $(TOAST) $(TCAT) $(UNTOAST) ++all: $(LIBGSM) $(LIBGSMSO) $(TOAST) $(TCAT) $(UNTOAST) + @-echo $(ROOT): Done. + + tst: $(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/test-result +@@ -299,24 +304,28 @@ + + # The basic API: libgsm + ++$(LIBGSMSO): $(LIB) $(GSM_OBJECTS) ++ $(LD) -o $@.1.0.12 -shared -Xlinker -soname -Xlinker libgsm.so.1 $(GSM_OBJECTS) -lc ++ ln -fs libgsm.so.1.0.12 lib/libgsm.so.1 ++ ln -fs libgsm.so.1.0.12 lib/libgsm.so ++ + $(LIBGSM): $(LIB) $(GSM_OBJECTS) + -rm $(RMFLAGS) $(LIBGSM) + $(AR) $(ARFLAGS) $(LIBGSM) $(GSM_OBJECTS) + $(RANLIB) $(LIBGSM) + +- + # Toast, Untoast and Tcat -- the compress-like frontends to gsm. + +-$(TOAST): $(BIN) $(TOAST_OBJECTS) $(LIBGSM) +- $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSM) $(LDLIB) ++$(TOAST): $(BIN) $(TOAST_OBJECTS) $(LIBGSM) $(LIBGSMSO) ++ $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSMSO) $(LDLIB) + + $(UNTOAST): $(BIN) $(TOAST) + -rm $(RMFLAGS) $(UNTOAST) +- $(LN) $(TOAST) $(UNTOAST) ++ $(LN) toast $(UNTOAST) + + $(TCAT): $(BIN) $(TOAST) + -rm $(RMFLAGS) $(TCAT) +- $(LN) $(TOAST) $(TCAT) ++ $(LN) toast $(TCAT) + + + # The local bin and lib directories diff --git a/SOURCES/gsm-warnings.patch b/SOURCES/gsm-warnings.patch new file mode 100644 index 0000000..663e8ed --- /dev/null +++ b/SOURCES/gsm-warnings.patch @@ -0,0 +1,49 @@ +diff --git a/add-test/add_test.c b/add-test/add_test.c +index 8e832df..6405178 100644 +--- a/add-test/add_test.c ++++ b/add-test/add_test.c +@@ -9,6 +9,7 @@ + #include + #include + #include ++#include + + #include "gsm.h" + +@@ -29,7 +30,7 @@ word M_gsm_abs P((word op1)); + longword M_gsm_L_mult P((word op1, word op2)); + longword M_gsm_L_add P((longword op1, longword op2)); + +-help() ++void help(void) + { + puts( " add a b sub a b mult a b div a b" ); + puts( "L_add A B L_sub A B L_mult A B mult_r a b" ); +diff --git a/src/code.c b/src/code.c +index 65dd0a3..402f614 100644 +--- a/src/code.c ++++ b/src/code.c +@@ -9,8 +9,8 @@ + #include "config.h" + + +-#ifdef HAS_STDLIB_H +-#include ++#ifdef HAS_STRING_H ++#include + #else + # include "proto.h" + extern char * memcpy P((char *, char *, int)); +diff --git a/src/toast.c b/src/toast.c +index 9823642..6d4166b 100644 +--- a/src/toast.c ++++ b/src/toast.c +@@ -6,6 +6,8 @@ + + /* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/toast.c,v 1.8 1996/07/02 10:41:04 jutta Exp $ */ + ++#include ++#include + #include "toast.h" + + /* toast -- lossy sound compression using the gsm library. diff --git a/SPECS/gsm.spec b/SPECS/gsm.spec new file mode 100644 index 0000000..398628b --- /dev/null +++ b/SPECS/gsm.spec @@ -0,0 +1,242 @@ +Name: gsm +Version: 1.0.13 +Release: 11%{?dist} +Summary: Shared libraries for GSM speech compressor + +Group: System Environment/Libraries +License: MIT +URL: http://www.quut.com/gsm/ +Source: http://www.quut.com/gsm/%{name}-%{version}.tar.gz +Patch0: %{name}-makefile.patch +Patch1: %{name}-warnings.patch +Patch2: %{name}-64bit.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +%global srcver 1.0-pl13 +%global soname 1.0.12 + +%description +Contains runtime shared libraries for libgsm, an implementation of +the European GSM 06.10 provisional standard for full-rate speech +transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse +excitation/long term prediction) coding at 13 kbit/s. + +GSM 06.10 compresses frames of 162 13-bit samples (8 kHz sampling +rate, i.e. a frame rate of 50 Hz) into 260 bits; for compatibility +with typical UNIX applications, our implementation turns frames of 160 +16-bit linear samples into 33-byte frames (1650 Bytes/s). +The quality of the algorithm is good enough for reliable speaker +recognition; even music often survives transcoding in recognizable +form (given the bandwidth limitations of 8 kHz sampling rate). + +The interfaces offered are a front end modelled after compress(1), and +a library API. Compression and decompression run faster than realtime +on most SPARCstations. The implementation has been verified against the +ETSI standard test patterns. + +%package tools +Summary: GSM speech compressor tools +Group: Applications/Multimedia + +%description tools +Contains command line utilities for libgsm, an implementation of +the European GSM 06.10 provisional standard for full-rate speech +transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse +excitation/long term prediction) coding at 13 kbit/s. + +%package devel +Summary: Header files and development libraries for libgsm +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description devel +Contains header files and development libraries for libgsm, an +implementation of the European GSM 06.10 provisional standard for +full-rate speech transcoding, prI-ETS 300 036, which uses RPE/LTP +(residual pulse excitation/long term prediction) coding at 13 kbit/s. + +%prep +%setup -n gsm-%{srcver} -q +%patch0 -p1 -b .mk +%patch1 -p1 -b .warn +%patch2 -p1 -b .64bit + +%build +export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fPIC"; +make %{?_smp_mflags} all + +%install +rm -rf $RPM_BUILD_ROOT + +mkdir -p $RPM_BUILD_ROOT%{_bindir} +mkdir -p $RPM_BUILD_ROOT%{_includedir}/gsm +mkdir -p $RPM_BUILD_ROOT%{_libdir} +mkdir -p $RPM_BUILD_ROOT%{_mandir}/{man1,man3} + +make install \ + INSTALL_ROOT=$RPM_BUILD_ROOT%{_prefix} \ + GSM_INSTALL_INC=$RPM_BUILD_ROOT%{_includedir}/gsm \ + GSM_INSTALL_LIB=$RPM_BUILD_ROOT%{_libdir} + +cp -p $RPM_BUILD_DIR/gsm-%{srcver}/lib/libgsm.so.%{soname} $RPM_BUILD_ROOT%{_libdir} +ln -s libgsm.so.%{soname} $RPM_BUILD_ROOT%{_libdir}/libgsm.so.1 +ln -s libgsm.so.%{soname} $RPM_BUILD_ROOT%{_libdir}/libgsm.so + +# some apps look for this in /usr/include +ln -s gsm/gsm.h $RPM_BUILD_ROOT%{_includedir} + +rm -f $RPM_BUILD_ROOT%{_libdir}/lib*.a + + +%check +# This is to ensure that the patch creates the proper library version. +[ -f $RPM_BUILD_ROOT%{_libdir}/libgsm.so.%{soname} ] +make addtst + + +%clean +rm -rf $RPM_BUILD_ROOT + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root,-) +%doc ChangeLog COPYRIGHT MACHINES README +%{_libdir}/libgsm.so.* + +%files tools +%{_bindir}/tcat +%{_bindir}/toast +%{_bindir}/untoast +%{_mandir}/man1/toast.1* + +%files devel +%defattr(-,root,root,-) +%dir %{_includedir}/gsm +%{_includedir}/gsm/gsm.h +%{_includedir}/gsm.h +%{_libdir}/libgsm.so +%{_mandir}/man3/* + +%changelog +* Fri Jan 24 2014 Daniel Mach - 1.0.13-11 +- Mass rebuild 2014-01-24 + +* Fri Dec 27 2013 Daniel Mach - 1.0.13-10 +- Mass rebuild 2013-12-27 + +* Thu Feb 14 2013 Fedora Release Engineering - 1.0.13-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Tue Nov 20 2012 Jaroslav Škarvada - 1.0.13-8 +- Defines changed to globals + +* Thu Jul 19 2012 Fedora Release Engineering - 1.0.13-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jan 13 2012 Fedora Release Engineering - 1.0.13-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Nov 30 2011 Jaroslav Škarvada - 1.0.13-5 +- Fixed build failure, defuzzified gsm-warnings patch + Resolves: rhbz#757136 + +* Wed Feb 09 2011 Fedora Release Engineering - 1.0.13-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Sat Jan 16 2010 Dominik Mierzejewski 1.0.13-3 +- update homepage and source URLs + +* Wed Jul 29 2009 Jeffrey C. Ollie - 1.0.13-2 +- Fix dangling symlinks for shared lib, thanks to Lucian Langa for pointing out the issue. + +* Tue Jul 28 2009 Jeffrey C. Ollie - 1.0.13-1.1 +- Upload sources + +* Tue Jul 28 2009 Jeffrey C. Ollie - 1.0.13-1 +- Update to 1.0.13 + +* Fri Jul 24 2009 Fedora Release Engineering - 1.0.12-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Tue Feb 24 2009 Fedora Release Engineering - 1.0.12-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Feb 11 2008 Jeffrey C. Ollie - 1.0.12-6 +- Rebuild for GCC 4.3 + +* Sun Aug 26 2007 Dominik Mierzejewski 1.0.12-5 +- install symlinks instead of binaries in -devel + +* Sat Aug 25 2007 Dominik Mierzejewski 1.0.12-4 +- rebuild for BuildID +- specfile cleanups + +* Sun May 13 2007 Dominik Mierzejewski 1.0.12-3 +- fix parallel make + +* Fri May 11 2007 Dominik Mierzejewski 1.0.12-2 +- fix some warnings +- fix 64bit testsuite issue as described at gsm homepage +- add compatibility header symlink +- split off binaries into a separate package + +* Sun Apr 15 2007 Michael Schwendt 1.0.12-1 +- Update to Release 1.0 Patchlevel 12. +- Build with -fPIC not just for non-ix86. +- Add check section to ensure proper library version. +- Remove static library. + +* Fri Oct 06 2006 Thorsten Leemhuis 1.0.10-12 +- rebuilt for unwind info generation, broken in gcc-4.1.1-21 + +* Tue Sep 26 2006 Thomas Vander Stichele +- 1.0.10-11 +- rebuild for FC6 + +* Thu Mar 09 2006 Andreas Bierfert +- switch to new release field + +* Tue Feb 28 2006 Andreas Bierfert +- add dist + +* Mon Jun 27 2005 David Woodhouse +- 1.0.10-0.lvn.10: Clean up installation + +* Sat Jun 25 2005 Thorsten Leemhuis +- 1.0.10-0.lvn.9: mv libgsm.a only when needed + +* Fri Dec 31 2004 Thorsten Leemhuis +- 1.0.10-0.lvn.8: Use -fPIC on non ix86 + +* Tue Mar 02 2004 Thomas Vander Stichele +- 1.0.10-0.lvn.7: moved to rpm.livna.org + +* Tue Mar 02 2004 Thomas Vander Stichele +- 1.0.10-0.fdr.7: applied patch from Ville, remove epoch since it's allowed + +* Sat Sep 13 2003 Thomas Vander Stichele +- 0:1.0.10-0.fdr.6: remove second makeinstall + +* Sun Sep 07 2003 Thomas Vander Stichele +- 0:1.0.10-0.fdr.5 +- added back epochs, I surrender +- fix RPM_OPT_FLAGS hackery + +* Fri Jul 18 2003 Thomas Vander Stichele +- 1.0.10-0.fdr.4: remove epoch mentions + +* Sat Jul 05 2003 Thomas Vander Stichele +- 1.0.10-0.fdr.3 +- pull in RPM_OPT_FLAGS in patch instead of using perl to wedge it in +- fix group +- -p'ize ldconfig + +* Tue Jun 10 2003 Thomas Vander Stichele +- 1.0.10-0.fdr.2 +- Fix libgsm.so.* being files instead of symlinks + +* Thu May 29 2003 Thomas Vander Stichele +- 0:1.0.10-0.fdr.1: initial RPM release