commit f3a20c8c53a2d376ebe34c505c8669932eca2878 Author: Toshaan Bharvani Date: Mon May 23 03:08:32 2022 +0200 initial package creation Signed-off-by: Toshaan Bharvani diff --git a/SOURCES/gsm-makefile.patch b/SOURCES/gsm-makefile.patch new file mode 100644 index 0000000..0874898 --- /dev/null +++ b/SOURCES/gsm-makefile.patch @@ -0,0 +1,185 @@ +diff -up gsm-1.0-pl17/Makefile.mk gsm-1.0-pl17/Makefile +--- gsm-1.0-pl17/Makefile.mk 2017-06-28 02:24:24.000000000 +0200 ++++ gsm-1.0-pl17/Makefile 2017-06-29 13:18:44.138719902 +0200 +@@ -44,13 +44,17 @@ WAV49 = -DWAV49 + # CCFLAGS = -c -O + + CC = gcc -ansi -pedantic +-CCFLAGS = -c -O2 -DNeedFunctionPrototypes=1 -Wall -Wno-comment ++CCFLAGS = -c $(RPM_OPT_FLAGS) -DNeedFunctionPrototypes=1 -Wall -Wno-comment -D_XOPEN_SOURCE=700 -D_REENTRANT -fPIC + + LD = $(CC) + + # LD = gcc + # LDFLAGS = + ++SO_MAJOR = 1 ++SO_MINOR = 0 ++SO_PATCH = 18 ++SO_VER = $(SO_MAJOR).$(SO_MINOR).$(SO_PATCH) + + # If your compiler needs additional flags/libraries, regardless of + # the source compiled, configure them here. +@@ -81,7 +85,7 @@ INSTALL_ROOT = + 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 @@ GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/ma + + 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 = gzip + COMPRESSFLAGS = +@@ -140,6 +144,7 @@ LFLAGS = $(LDFLAGS) $(LDINC) + # Targets + + LIBGSM = $(LIB)/libgsm.a ++LIBGSMSO = $(LIB)/libgsm.so + + TOAST = $(BIN)/toast + UNTOAST = $(BIN)/untoast +@@ -257,7 +262,9 @@ STUFF = ChangeLog \ + # Install targets + + GSM_INSTALL_TARGETS = \ +- $(GSM_INSTALL_LIB)/libgsm.a \ ++ $(GSM_INSTALL_LIB)/libgsm.so.$(SO_VER) \ ++ $(GSM_INSTALL_LIB)/libgsm.so.$(SO_MAJOR)\ ++ $(GSM_INSTALL_LIB)/libgsm.so \ + $(GSM_INSTALL_INC)/gsm.h \ + $(GSM_INSTALL_MAN)/gsm.3 \ + $(GSM_INSTALL_MAN)/gsm_explode.3 \ +@@ -279,7 +286,7 @@ TOAST_INSTALL_TARGETS = \ + + # Target rules + +-all: $(LIBGSM) $(TOAST) $(TCAT) $(UNTOAST) ++all: $(LIBGSMSO) $(TOAST) $(TCAT) $(UNTOAST) + @-echo $(ROOT): Done. + + tst: $(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/test-result +@@ -299,24 +306,32 @@ install: toastinstall gsminstall + + # The basic API: libgsm + ++$(LIBGSMSO).$(SO_VER): $(LIB) $(GSM_OBJECTS) ++ $(LD) $(LFLAGS) -o $@ -shared -Xlinker -soname -Xlinker libgsm.so.$(SO_MAJOR) $(GSM_OBJECTS) -lc ++ ++$(LIBGSMSO).$(SO_MAJOR): $(LIBGSMSO).$(SO_VER) ++ ln -fs libgsm.so.$(SO_VER) lib/libgsm.so.$(SO_MAJOR) ++ ++$(LIBGSMSO): $(LIBGSMSO).$(SO_VER) ++ ln -fs libgsm.so.$(SO_VER) 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) $(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 +@@ -352,8 +367,7 @@ toastuninstall: + + $(TOAST_INSTALL_BIN)/toast: $(TOAST) + -rm $@ +- cp $(TOAST) $@ +- chmod 755 $@ ++ install -pm755 $(TOAST) $@ + + $(TOAST_INSTALL_BIN)/untoast: $(TOAST_INSTALL_BIN)/toast + -rm $@ +@@ -365,39 +379,43 @@ $(TOAST_INSTALL_BIN)/tcat: $(TOAST_INSTA + + $(TOAST_INSTALL_MAN)/toast.1: $(MAN)/toast.1 + -rm $@ +- cp $? $@ +- chmod 444 $@ ++ install -pm644 $? $@ + + $(GSM_INSTALL_MAN)/gsm.3: $(MAN)/gsm.3 + -rm $@ +- cp $? $@ +- chmod 444 $@ ++ install -pm644 $? $@ + + $(GSM_INSTALL_MAN)/gsm_option.3: $(MAN)/gsm_option.3 + -rm $@ +- cp $? $@ +- chmod 444 $@ ++ install -pm644 $? $@ + + $(GSM_INSTALL_MAN)/gsm_explode.3: $(MAN)/gsm_explode.3 + -rm $@ +- cp $? $@ +- chmod 444 $@ ++ install -pm644 $? $@ + + $(GSM_INSTALL_MAN)/gsm_print.3: $(MAN)/gsm_print.3 + -rm $@ +- cp $? $@ +- chmod 444 $@ ++ install -pm644 $? $@ + + $(GSM_INSTALL_INC)/gsm.h: $(INC)/gsm.h + -rm $@ +- cp $? $@ +- chmod 444 $@ ++ install -pm644 $? $@ + + $(GSM_INSTALL_LIB)/libgsm.a: $(LIBGSM) + -rm $@ +- cp $? $@ +- chmod 444 $@ ++ install -pm644 $? $@ + ++$(GSM_INSTALL_LIB)/libgsm.so.$(SO_VER): $(LIBGSMSO).$(SO_VER) ++ -rm $@ ++ install -pm755 $? $@ ++ ++$(GSM_INSTALL_LIB)/libgsm.so.$(SO_MAJOR): $(LIBGSMSO).$(SO_MAJOR) ++ -rm $@ ++ ln -s libgsm.so.$(SO_VER) $@ ++ ++$(GSM_INSTALL_LIB)/libgsm.so: $(LIBGSMSO) ++ -rm $@ ++ ln -s libgsm.so.$(SO_VER) $@ + + # Distribution + diff --git a/SOURCES/gsm-warnings.patch b/SOURCES/gsm-warnings.patch new file mode 100644 index 0000000..6399279 --- /dev/null +++ b/SOURCES/gsm-warnings.patch @@ -0,0 +1,13 @@ +diff -up gsm-1.0-pl17/src/toast.c.warn gsm-1.0-pl17/src/toast.c +--- gsm-1.0-pl17/src/toast.c.warn 2017-06-28 02:09:38.000000000 +0200 ++++ gsm-1.0-pl17/src/toast.c 2017-06-29 11:44:43.979453734 +0200 +@@ -6,6 +6,9 @@ + + /* $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 + #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..77949ed --- /dev/null +++ b/SPECS/gsm.spec @@ -0,0 +1,309 @@ +%global ver_major 1 +%global ver_minor 0 +%global ver_patch 19 + +Name: gsm +Version: %{ver_major}.%{ver_minor}.%{ver_patch} +Release: 6%{?dist} +Summary: Shared libraries for GSM speech compressor + +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 +BuildRequires: gcc +BuildRequires: make + +%global srcver %{ver_major}.%{ver_minor}-pl%{ver_patch} + +%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 + +%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 +Requires: %{name}%{_isa} = %{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 + +%build +export LDFLAGS="%{?__global_ldflags}" +%make_build all SO_MAJOR=%{ver_major} SO_MINOR=%{ver_minor} SO_PATCH=%{ver_patch} + +%install +export LDFLAGS="%{?__global_ldflags}" +mkdir -p %{buildroot}{%{_bindir},%{_includedir}/gsm,%{_libdir},%{_mandir}/{man1,man3}} + +%make_install \ + INSTALL_ROOT=%{buildroot}%{_prefix} \ + GSM_INSTALL_INC=%{buildroot}%{_includedir}/gsm \ + GSM_INSTALL_LIB=%{buildroot}%{_libdir} \ + SO_MAJOR=%{ver_major} SO_MINOR=%{ver_minor} SO_PATCH=%{ver_patch} + +# some apps look for this in /usr/include +ln -s gsm/gsm.h %{buildroot}%{_includedir} + +echo ".so toast.1" > %{buildroot}%{_mandir}/man1/tcat.1 +echo ".so toast.1" > %{buildroot}%{_mandir}/man1/untoast.1 + +%check +# This is to ensure that the patch creates the proper library version. +[ -f %{buildroot}%{_libdir}/libgsm.so.%{version} ] +export LDFLAGS="%{?__global_ldflags}" +%{__make} addtst + +%ldconfig_scriptlets + +%files +%license COPYRIGHT +%doc ChangeLog MACHINES README +%{_libdir}/libgsm.so.* + +%files tools +%{_bindir}/tcat +%{_bindir}/toast +%{_bindir}/untoast +%{_mandir}/man1/tcat.1* +%{_mandir}/man1/toast.1* +%{_mandir}/man1/untoast.1* + +%files devel +%dir %{_includedir}/gsm +%{_includedir}/gsm/gsm.h +%{_includedir}/gsm.h +%{_libdir}/libgsm.so +%{_mandir}/man3/gsm.3* +%{_mandir}/man3/gsm_explode.3* +%{_mandir}/man3/gsm_option.3* +%{_mandir}/man3/gsm_print.3* + +%changelog +* Mon Aug 09 2021 Mohan Boddu - 1.0.19-6 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Fri Apr 16 2021 Mohan Boddu - 1.0.19-5 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Tue Jan 26 2021 Fedora Release Engineering - 1.0.19-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 1.0.19-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 13 2020 Tom Stellard - 1.0.19-2 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + +* Wed Apr 1 2020 Jaroslav Škarvada - 1.0.19-1 +- New version + Resolves: rhbz#1818181 + +* Wed Jan 29 2020 Fedora Release Engineering - 1.0.18-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 1.0.18-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 1.0.18-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Jul 14 2018 Itamar Reis Peixoto - 1.0.18-3 +- include gcc into buildrequires + +* Fri Jul 13 2018 Fedora Release Engineering - 1.0.18-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon May 21 2018 Dominik Mierzejewski 1.0.18-1 +- update to 1.0.18 (#1575372) + +* Wed Mar 07 2018 Dominik Mierzejewski 1.0.17-5 +- ensure binaries are linked with Fedora LDFLAGS (#1548532) +- use ldconfig_scriptlets macro +- add proper man links for tcat and untoast + +* Wed Feb 07 2018 Fedora Release Engineering - 1.0.17-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Aug 02 2017 Fedora Release Engineering - 1.0.17-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1.0.17-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Jun 29 2017 Dominik Mierzejewski 1.0.17-1 +- update to 1.0.17 (#1465878) +- ease future updates by better macro use +- drop obsolete patch hunks +- fix missing prototype for fchown warning + +* Fri Feb 10 2017 Fedora Release Engineering - 1.0.16-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Nov 24 2016 Dominik Mierzejewski 1.0.16-1 +- update to 1.0.16 (#1397242) +- use license macro +- drop obsolete stuff and simplify + +* Wed Feb 03 2016 Fedora Release Engineering - 1.0.13-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 1.0.13-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat Aug 16 2014 Fedora Release Engineering - 1.0.13-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 1.0.13-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sat Aug 03 2013 Fedora Release Engineering - 1.0.13-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* 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