From 233aae94a38213c31a701b0a20853778759aa469f624f14293f75adeeb0ff93e Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Fri, 20 Sep 2024 12:37:33 +0000 Subject: [PATCH] Use a constant profile dir for reproducible builds (boo#1062303) It got embedded into .debug files and the hash of those was embedded into the main binary OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/libsamplerate?expand=0&rev=44 --- .gitattributes | 23 +++ .gitignore | 1 + baselibs.conf | 4 + libsamplerate-0.2.1-reproducible.patch | 12 ++ libsamplerate-0.2.2.tar.xz | 3 + libsamplerate.changes | 236 +++++++++++++++++++++++++ libsamplerate.spec | 113 ++++++++++++ 7 files changed, 392 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 baselibs.conf create mode 100644 libsamplerate-0.2.1-reproducible.patch create mode 100644 libsamplerate-0.2.2.tar.xz create mode 100644 libsamplerate.changes create mode 100644 libsamplerate.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..8d58909 --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,4 @@ +libsamplerate0 + obsoletes "libsamplerate- < " + provides "libsamplerate- = " + diff --git a/libsamplerate-0.2.1-reproducible.patch b/libsamplerate-0.2.1-reproducible.patch new file mode 100644 index 0000000..0cbafe8 --- /dev/null +++ b/libsamplerate-0.2.1-reproducible.patch @@ -0,0 +1,12 @@ +Index: libsamplerate-0.2.1/Makefile.am +=================================================================== +--- libsamplerate-0.2.1.orig/Makefile.am ++++ libsamplerate-0.2.1/Makefile.am +@@ -91,7 +91,6 @@ TESTS = \ + tests/simple_test \ + tests/snr_bw_test \ + tests/termination_test \ +- tests/throughput_test \ + tests/varispeed_test + + check_PROGRAMS = \ diff --git a/libsamplerate-0.2.2.tar.xz b/libsamplerate-0.2.2.tar.xz new file mode 100644 index 0000000..41b4372 --- /dev/null +++ b/libsamplerate-0.2.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3258da280511d24b49d6b08615bbe824d0cacc9842b0e4caf11c52cf2b043893 +size 3319468 diff --git a/libsamplerate.changes b/libsamplerate.changes new file mode 100644 index 0000000..ad5c7dc --- /dev/null +++ b/libsamplerate.changes @@ -0,0 +1,236 @@ +------------------------------------------------------------------- +Fri Sep 20 11:28:33 UTC 2024 - Bernhard Wiedemann + +- Use a constant profile dir for reproducible builds (boo#1062303) + +------------------------------------------------------------------- +Fri Mar 1 09:25:05 UTC 2024 - pgajdos@suse.com + +- Use %autosetup macro. Allows to eliminate the usage of deprecated + %patchN + +------------------------------------------------------------------- +Sat Oct 16 10:14:55 UTC 2021 - Dirk Müller + +- update to 0.2.2: + * Fix CMake overlinking for examples (#146) + * Switch to GCC's visibility for hiding more implementation details + * Check GNU ld instead of gcc for exported symbols control logic in configure.ac + * Disable static builds using Autotools by default. + * ABI version incompatibility between Autotools and CMake build on Apple platforms. + * Fixes and improvements for CMake build system. + * Fixes and improvements for Autotools build system. + * Switch to .xz over .bz2 for release tarballs. + * Minor bug fixes and updates. + +------------------------------------------------------------------- +Sun Jan 24 16:32:14 UTC 2021 - Dirk Müller + +- update to 0.2.1: + * Add src_clone() function to clone a SRC_STATE* handle + * Cleanup Autotools build system. + * Require C99 compiler + * Add missing src_get_channels() export to windows def file + * Fix macOS compile errors and modernize audio api on that platform + * Add Octave scripts to generate filter coefficients + * Fix two potential undefined behaviours + * Fix a buffer out-of-bounds read error in src/src_sinc.c + * Improve multichan_throughput_test + * Replace buggy implementation of Duffs device by regular loop + * Fix CMake generated shared library ABI compliance with Autotools build + * Move site to new URL: http://libsndfile.github.io/libsamplerate/ + * Convert documentation pages from HTML to Markdown + * Move sndfile-resample to sndfile-tools package + -> drop progs subpackage +- drop libsamplerate-0.1.9-reproducible.patch +- add libsamplerate-0.2.1-reproducible.patch + +------------------------------------------------------------------- +Tue Jan 9 12:10:42 UTC 2018 - bwiedemann@suse.com + +- Add libsamplerate-0.1.9-reproducible.patch to disable throughput + test to make builds reproducible in spite of Profile Guided Optimizations + +------------------------------------------------------------------- +Sat Sep 30 23:47:42 UTC 2017 - jengelh@inai.de + +- Rectify RPM groups. + +------------------------------------------------------------------- +Mon Apr 24 10:35:03 CEST 2017 - tiwai@suse.de + +- Add missing provides/obsoletes for the old libsamplerate package + +------------------------------------------------------------------- +Tue Oct 25 19:12:46 UTC 2016 - tom.mbrt@googlemail.com + +- update to version 0.1.9 (2016-09-23) + * Relicense under 2 clause BSD license. + * Minor bug fixes and upates. +- remove 0001-src-src_sinc.c-Fix-a-read-beyond-end-of-coefficent-a.patch + since it was fixed upstream + +------------------------------------------------------------------- +Mon Feb 23 14:17:04 UTC 2015 - rguenther@suse.com + +- Avoid running configure twice and using -fprofile-generate or + -fprofile-use for compiling configure tests when profiling. + +------------------------------------------------------------------- +Tue Aug 26 12:14:15 UTC 2014 - fcrozat@suse.com + +- Add obsoletes/provides to baselibs.conf. + +------------------------------------------------------------------- +Sat May 18 07:22:28 UTC 2013 - dmueller@suse.com + +- disable profiling also on aarch64 + +------------------------------------------------------------------- +Tue Apr 16 02:37:15 UTC 2013 - crrodriguez@opensuse.org + +- 0001-src-src_sinc.c-Fix-a-read-beyond-end-of-coefficent-a.patch + from upstream, fix off-by-one bug found by gcc 4.8 address sanitizer. + +------------------------------------------------------------------- +Wed Aug 1 06:54:11 UTC 2012 - adrian@suse.de + +- disable profiling on arm + +------------------------------------------------------------------- +Sat May 5 14:58:55 UTC 2012 - crrodriguez@opensuse.org + +- build with profiling rnabled + +------------------------------------------------------------------- +Tue Mar 6 11:17:23 UTC 2012 - saschpe@suse.de + +- Adhere to shared library packaging policy + +------------------------------------------------------------------- +Sun Mar 4 23:14:45 UTC 2012 - reddwarf@opensuse.org + +- update to version 0.1.8 + * Minor bug fixes and updates. +- drop all patches, not needed in new upstream version +- run spec-cleaner + +------------------------------------------------------------------- +Tue Nov 22 10:19:16 UTC 2011 - coolo@suse.com + +- add libtool as buildrequire to avoid implicit dependency + +------------------------------------------------------------------- +Sat Aug 6 17:47:41 CEST 2011 - meissner@suse.de + +- disable quilt usage, as it extends the build chain quite some + +------------------------------------------------------------------- +Wed Dec 8 16:23:18 UTC 2010 - cristian.rodriguez@opensuse.org + +- Import debian fixes, this fix: +* The test suite so we can run make check +* src_simple() causes a crash with certain inputs + +------------------------------------------------------------------- +Sun Jun 6 16:54:13 UTC 2010 - cristian.rodriguez@opensuse.org + +- update to version 0.1.7 + * Fix a segfault which occurs when memcpy is passed a bad length parameter. + * Minor bug fix in test suite (account for rounding error on x86_64). + * Optimisation resulting dramatic throughput improvements. + +------------------------------------------------------------------- +Fri Dec 18 13:17:46 CET 2009 - jengelh@medozas.de + +- add baselibs.conf as a source + +------------------------------------------------------------------- +Tue Nov 3 19:09:28 UTC 2009 - coolo@novell.com + +- updated patches to apply with fuzz=0 + +------------------------------------------------------------------- +Thu Apr 23 17:17:27 CEST 2009 - tiwai@suse.de + +- added progs sub-packabe (bnc#443543) + +------------------------------------------------------------------- +Wed Nov 12 12:43:22 CET 2008 - tiwai@suse.de + +- fixed misc build errors: remove unnecessary Makefiles in doc and + fixed package summary + +------------------------------------------------------------------- +Tue Nov 11 19:51:00 CET 2008 - dominique-rpm@leuenberger.net + +- Update to version 0.1.4: + * Fix buffer overrrun bug at extreme low conversion ratios. + Thanks to Russell O'Connor for the report. + (bnc# 443794 / CVE-2008-5008 ) + +------------------------------------------------------------------- +Wed Jun 18 16:53:55 CEST 2008 - tiwai@suse.de + +- updated to version 0.1.3: + * Huge quality improvements to two best SINC based converters +- fix post and postun scripts + +------------------------------------------------------------------- +Thu Jun 5 01:31:44 CEST 2008 - ro@suse.de + +- added baselibs.conf (for alsa-plugins-samplerate) + +------------------------------------------------------------------- +Mon Apr 16 14:58:54 CEST 2007 - tiwai@suse.de + +- follow library package policy + * move docs to devel package + * remove static library + +------------------------------------------------------------------- +Mon Apr 16 11:22:12 CEST 2007 - schwab@suse.de + +- Fix quoting in autoconf macros. + +------------------------------------------------------------------- +Wed Jan 25 21:37:43 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Fri Jan 21 16:43:42 CET 2005 - tiwai@suse.de + +- updated to version 0.1.2. + +------------------------------------------------------------------- +Thu Aug 5 12:15:16 CEST 2004 - tiwai@suse.de + +- updated to version 0.1.1. + +------------------------------------------------------------------- +Tue Jan 13 20:21:27 CET 2004 - tiwai@suse.de + +- build as non-root. + +------------------------------------------------------------------- +Fri Jun 6 15:17:40 CEST 2003 - tiwai@suse.de + +- updated to version 0.0.15. +- fixed the file list. + +------------------------------------------------------------------- +Thu Mar 27 15:47:04 CET 2003 - tiwai@suse.de + +- added the missing src_set_ratio in version list. + +------------------------------------------------------------------- +Fri Jan 17 16:01:42 CET 2003 - tiwai@suse.de + +- added %run_ldconfig to %post. + +------------------------------------------------------------------- +Thu Jan 16 13:14:09 CET 2003 - tiwai@suse.de + +- initial version: 0.0.14. + diff --git a/libsamplerate.spec b/libsamplerate.spec new file mode 100644 index 0000000..08fc2b5 --- /dev/null +++ b/libsamplerate.spec @@ -0,0 +1,113 @@ +# +# spec file for package libsamplerate +# +# Copyright (c) 2021 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: libsamplerate +Version: 0.2.2 +Release: 0 +Summary: A Sample Rate Converter Library +License: BSD-2-Clause +Group: Development/Libraries/C and C++ +URL: https://libsndfile.github.io/libsamplerate/ +Source0: https://github.com/libsndfile/libsamplerate/releases/download/%{version}/libsamplerate-%{version}.tar.xz +Source1: baselibs.conf +# PATCH-FEATURE-OPENSUSE -- Make build reproducible +Patch0: libsamplerate-0.2.1-reproducible.patch +BuildRequires: automake +BuildRequires: fftw3-devel +BuildRequires: libsndfile-devel +BuildRequires: libtool +BuildRequires: pkgconfig + +%description +Secret Rabbit Code (aka libsamplerate) is a Sample Rate Converter for +audio. One example of where such a thing would be useful is in +converting audio from the CD sample rate of 44.1kHz to the 48kHz sample +rate used by DAT players. + +SRC is capable of arbitrary and time varying conversions; from +downsampling by a factor of 12 to upsampling by the same factor. The +conversion ratio can also vary with time for speeding up and slowing +down effects. + +%package -n libsamplerate0 +Summary: A Sample Rate Converter Library +Group: System/Libraries +Provides: %{name} = %{version} +Obsoletes: %{name} < %{version} +Obsoletes: libsamplerate-progs < %{version} + +%description -n libsamplerate0 +Secret Rabbit Code (aka libsamplerate) is a Sample Rate Converter for +audio. One example of where such a thing would be useful is in +converting audio from the CD sample rate of 44.1kHz to the 48kHz sample +rate used by DAT players. + +SRC is capable of arbitrary and time varying conversions; from +downsampling by a factor of 12 to upsampling by the same factor. The +conversion ratio can also vary with time for speeding up and slowing +down effects. + +%package devel +Summary: Include Files and Libraries mandatory for Development +Group: Development/Libraries/C and C++ +Requires: glibc-devel +Requires: libsamplerate0 = %{version} + +%description devel +This package contains all necessary include files and libraries needed +to develop applications that require these. + +%prep +%autosetup -p1 + +%build +autoreconf -fvi +%configure +profiledir=.tmp.libsamplerateprofile + +%make_build CFLAGS="%{optflags} %{cflags_profile_generate}=$profiledir" +%make_build check +%make_build clean +%make_build CFLAGS="%{optflags} %{cflags_profile_feedback}=$profiledir" + +%check +%make_build check + +%install +%make_install +install -d %{buildroot}%{_defaultdocdir}/ +mv %{buildroot}/usr/share/doc/libsamplerate %{buildroot}%{_defaultdocdir}/libsamplerate +# remove unneeded files +find %{buildroot} -type f -name "*.la" -delete -print + +%post -n libsamplerate0 -p /sbin/ldconfig +%postun -n libsamplerate0 -p /sbin/ldconfig + +%files -n libsamplerate0 +%license COPYING +%doc AUTHORS +%{_libdir}/libsamplerate.so.0* + +%files devel +%doc ChangeLog +%{_defaultdocdir}/libsamplerate +%{_libdir}/libsamplerate.so +%{_includedir}/samplerate.h +%{_libdir}/pkgconfig/samplerate.pc + +%changelog