diff --git a/.gitignore b/.gitignore index 24cd549..8ab4456 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ xmms2-0.7DrNo-clean.tar.bz2 /xmms2-0.8DrO_o-clean.tar.bz2 /unreal_dm-free.music.and.free.beer.ogg /xmms2-0.9.3-clean.tar.xz +/xmms2-0.9.4-clean.tar.xz +/xmms2-0.9.5-clean.tar.xz diff --git a/sources b/sources index 7671a35..3f8e255 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (unreal_dm-free.music.and.free.beer.ogg) = 436389158cad78a95f62a1e4de2e9add243d9fb027dec57022d9b1791ccb203539a9562bb5ffaba5918533fec79a5e2b32415eac0bc467fc8441f4906bff1225 -SHA512 (xmms2-0.9.3-clean.tar.xz) = 06dfe5aef11f57fe2049e28b370f2ecb9dabdf9c6f8b18132730d0c45f9a6548d9c2ba97fdee7e03e3f64e95a128edde266ce670d3f1f7bcb1badab714154351 +SHA512 (xmms2-0.9.5-clean.tar.xz) = 325dd15182a5f5fd436e74fe624c9f30c1335394650208cfc6c9e4ac2efb657618ea0b1b88592922ae840cadfefae7cb4d0f75e3cb7121a4b068468fbc6f76cc diff --git a/xmms2-0.9.3-curl-buffer-overrun-fix.patch b/xmms2-0.9.3-curl-buffer-overrun-fix.patch new file mode 100644 index 0000000..b069306 --- /dev/null +++ b/xmms2-0.9.3-curl-buffer-overrun-fix.patch @@ -0,0 +1,29 @@ +diff -up xmms2-0.9.3/src/plugins/curl/curl_http.c.underrunfix xmms2-0.9.3/src/plugins/curl/curl_http.c +--- xmms2-0.9.3/src/plugins/curl/curl_http.c.underrunfix 2023-09-15 10:00:07.480047876 -0400 ++++ xmms2-0.9.3/src/plugins/curl/curl_http.c 2023-09-15 10:00:49.812658794 -0400 +@@ -31,6 +31,7 @@ + /* + * Type definitions + */ ++#define XMMS2_CURL_BUFFER_SIZE 0x200000 + + typedef struct { + CURL *curl_easy; +@@ -212,7 +213,7 @@ xmms_curl_init (xmms_xform_t *xform) + g_snprintf (proxyuserpass, sizeof (proxyuserpass), "%s:%s", proxyuser, + proxypass); + +- data->buffer = g_malloc (CURL_MAX_WRITE_SIZE); ++ data->buffer = g_malloc (XMMS2_CURL_BUFFER_SIZE); + data->url = g_strdup (url); + + /* check for broken version of curl here */ +@@ -463,7 +464,7 @@ xmms_curl_callback_write (void *ptr, siz + + len = size * nmemb; + +- g_return_val_if_fail ((data->bufferlen + len) <= CURL_MAX_WRITE_SIZE, 0); ++ g_return_val_if_fail ((data->bufferlen + len) <= XMMS2_CURL_BUFFER_SIZE, 0); + + memcpy (data->buffer + data->bufferlen, ptr, len); + data->bufferlen = data->bufferlen + len; diff --git a/xmms2-0.9.3-gentoo-cpp-client.patch b/xmms2-0.9.3-gentoo-cpp-client.patch new file mode 100644 index 0000000..1416a2a --- /dev/null +++ b/xmms2-0.9.3-gentoo-cpp-client.patch @@ -0,0 +1,12 @@ +diff -up xmms2-0.9.3/src/include/xmmsclient/xmmsclient++/mainloop.h.gentoo xmms2-0.9.3/src/include/xmmsclient/xmmsclient++/mainloop.h +--- xmms2-0.9.3/src/include/xmmsclient/xmmsclient++/mainloop.h.gentoo 2023-09-15 09:51:09.760321870 -0400 ++++ xmms2-0.9.3/src/include/xmmsclient/xmmsclient++/mainloop.h 2023-09-15 09:53:49.565612336 -0400 +@@ -41,7 +41,7 @@ namespace Xmms + * @note The constructor should only initialize the + * mainloop, not start it! + */ +- MainloopInterface( xmmsc_connection_t* conn ) : ++ MainloopInterface( xmmsc_connection_t*& conn ) : + running_( false ), conn_( conn ) { } + + /** Destructor. Should also stop the loop. diff --git a/xmms2-0.9.3-gentoo-faad.patch b/xmms2-0.9.3-gentoo-faad.patch new file mode 100644 index 0000000..5c18a29 --- /dev/null +++ b/xmms2-0.9.3-gentoo-faad.patch @@ -0,0 +1,14 @@ +diff -up xmms2-0.9.3/src/plugins/faad/faad.c.gentoo xmms2-0.9.3/src/plugins/faad/faad.c +--- xmms2-0.9.3/src/plugins/faad/faad.c.gentoo 2023-09-15 09:56:23.452817978 -0400 ++++ xmms2-0.9.3/src/plugins/faad/faad.c 2023-09-15 09:56:55.255273805 -0400 +@@ -242,7 +242,9 @@ xmms_faad_init (xmms_xform_t *xform) + * and durations calculations... So we cheat and tell libfaad2 we're feeding + * it frame 1. + */ +- NeAACDecPostSeekReset (data->decoder, 1); ++ // This line has stopped working since security fixes in the faad 2.9.0 ++ // release. ++ // NeAACDecPostSeekReset (data->decoder, 1); + + /* FIXME: Because for HE AAC files some versions of libfaad return the wrong + * samplerate in init, we have to do one read and let it decide the real diff --git a/xmms2.spec b/xmms2.spec index 59c46ab..b3157ab 100644 --- a/xmms2.spec +++ b/xmms2.spec @@ -1,7 +1,7 @@ Name: xmms2 Summary: A modular audio framework and plugin architecture -Version: 0.9.3 -Release: 4%{?dist} +Version: 0.9.5 +Release: 8%{?dist} License: LGPL-2.1-or-later AND GPL-2.0-or-later AND BSD-3-Clause # We can't use the upstream source tarball as-is, because it includes an mp4 decoder. # Also, the ogg sample included is not under a FOSS license. @@ -12,12 +12,19 @@ Source1: xmms2-client-launcher.sh # CC-BY # taken from http://ccmixter.org/files/unreal_dm/38156 Source2: unreal_dm-free.music.and.free.beer.ogg +# Apply c++ client fix from gentoo +Patch2: xmms2-0.9.3-gentoo-cpp-client.patch +# Apply fix to faad plugin from gentoo +Patch3: xmms2-0.9.3-gentoo-faad.patch +# Apply fix for curl buffer overrun +Patch4: xmms2-0.9.3-curl-buffer-overrun-fix.patch # Swap mind.in.a.box for free.music.and.free.beer Patch11: xmms2-0.9.3-no-mind-in-a-box.patch URL: http://wiki.xmms2.xmms.se/ BuildRequires: git BuildRequires: python3-devel BuildRequires: python3-cython +BuildRequires: python-unversioned-command BuildRequires: sqlite-devel BuildRequires: flac-devel BuildRequires: libofa-devel @@ -67,6 +74,7 @@ BuildRequires: perl-ExtUtils-ParseXS BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: waf +BuildRequires: openssl-devel-engine, openssl-devel Obsoletes: xmms2-mad < 0.8-26 Provides: xmms2-mad = %{version}-%{release} @@ -133,6 +141,9 @@ Ruby bindings for XMMS2. %prep %setup -q -n %{name}-%{version} +%patch -P2 -p1 -b .cpp-client +%patch -P3 -p1 -b .faad +%patch -P4 -p1 -b .overrun %patch -P11 -p1 -b .nomind cp %{SOURCE2} . @@ -145,16 +156,16 @@ export CPPFLAGS="%{optflags}" export LIBDIR="%{_libdir}" export XSUBPP="%{_bindir}/xsubpp" -waf configure --prefix=%{_prefix} --libdir=%{_libdir} --with-ruby-libdir=%{ruby_vendorlibdir} --with-ruby-archdir=%{ruby_vendorarchdir} \ +./waf configure --prefix=%{_prefix} --libdir=%{_libdir} --with-ruby-libdir=%{ruby_vendorlibdir} --with-ruby-archdir=%{ruby_vendorarchdir} \ --with-perl-archdir=%{perl_archlib} --with-pkgconfigdir=%{_libdir}/pkgconfig -j1 -waf build -v %{?_smp_mflags} +./waf build -v %{?_smp_mflags} # make the docs doxygen %install export LIBDIR="%{_libdir}" -waf install --destdir=%{buildroot} --prefix=%{_prefix} --libdir=%{_libdir} --with-ruby-libdir=%{ruby_vendorlibdir} --with-ruby-archdir=%{ruby_vendorarchdir} \ +./waf install --destdir=%{buildroot} --prefix=%{_prefix} --libdir=%{_libdir} --with-ruby-libdir=%{ruby_vendorlibdir} --with-ruby-archdir=%{ruby_vendorarchdir} \ --with-perl-archdir=%{perl_archlib} --with-pkgconfigdir=%{_libdir}/pkgconfig # exec flags for debuginfo @@ -210,6 +221,48 @@ install -m0755 %{SOURCE1} %{buildroot}%{_bindir} %{ruby_vendorarchdir}/xmmsclient_glib.so %changelog +* Thu Jan 08 2026 Mamoru TASAKA - 0.9.5-8 +- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_4.0 + +* Fri Sep 19 2025 Python Maint - 0.9.5-7 +- Rebuilt for Python 3.14.0rc3 bytecode + +* Fri Aug 15 2025 Python Maint - 0.9.5-6 +- Rebuilt for Python 3.14.0rc2 bytecode + +* Fri Jul 25 2025 Fedora Release Engineering - 0.9.5-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Jul 08 2025 Jitka Plesnikova - 0.9.5-4 +- Perl 5.42 rebuild + +* Tue Jun 03 2025 Python Maint - 0.9.5-3 +- Rebuilt for Python 3.14 + +* Tue May 27 2025 Jitka Plesnikova - 0.9.5-2 +- Rebuilt for flac 1.5.0 + +* Mon Mar 10 2025 Tom Callaway - 0.9.5-1 +- update to 0.9.5 + +* Sun Jan 19 2025 Fedora Release Engineering - 0.9.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Jan 08 2025 Mamoru TASAKA - 0.9.4-2 +- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.4 + +* Tue Oct 22 2024 Tom Callaway - 0.9.4-1 +- update to 0.9.4 + +* Sat Jul 20 2024 Fedora Release Engineering - 0.9.3-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Jun 12 2024 Jitka Plesnikova - 0.9.3-6 +- Perl 5.40 rebuild + +* Sat Jun 08 2024 Python Maint - 0.9.3-5 +- Rebuilt for Python 3.13 + * Sat Jan 27 2024 Fedora Release Engineering - 0.9.3-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild