diff --git a/.gitignore b/.gitignore index b1ee736..8ab4456 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ 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 e2df1ea..3f8e255 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (xmms2-0.8DrO_o-clean.tar.bz2) = ab14d08baa7625e69f316e53ca9673ec8fec0a7f3cecd5656f74c317351ef033ce865acc7f3884caac22e2296bfa8f2eda866ef89a28d91ab5b4a62614879198 SHA512 (unreal_dm-free.music.and.free.beer.ogg) = 436389158cad78a95f62a1e4de2e9add243d9fb027dec57022d9b1791ccb203539a9562bb5ffaba5918533fec79a5e2b32415eac0bc467fc8441f4906bff1225 +SHA512 (xmms2-0.9.5-clean.tar.xz) = 325dd15182a5f5fd436e74fe624c9f30c1335394650208cfc6c9e4ac2efb657618ea0b1b88592922ae840cadfefae7cb4d0f75e3cb7121a4b068468fbc6f76cc diff --git a/xmms2-0.8DrO_o-libmodplug-pkgconfig-change.patch b/xmms2-0.8DrO_o-libmodplug-pkgconfig-change.patch deleted file mode 100644 index 66964e7..0000000 --- a/xmms2-0.8DrO_o-libmodplug-pkgconfig-change.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- xmms2-0.8DrO_o/src/plugins/modplug/modplug.c.header 2011-10-21 04:26:08.000000000 +0900 -+++ xmms2-0.8DrO_o/src/plugins/modplug/modplug.c 2014-05-07 14:31:14.830068685 +0900 -@@ -9,7 +9,7 @@ - #include "xmms/xmms_sample.h" - #include "xmms/xmms_medialib.h" - #include "xmms/xmms_log.h" --#include -+#include - - #include - #include diff --git a/xmms2-0.8DrO_o-moresaneversioning.patch b/xmms2-0.8DrO_o-moresaneversioning.patch deleted file mode 100644 index 3ded289..0000000 --- a/xmms2-0.8DrO_o-moresaneversioning.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -up xmms2-0.8DrO_o/wscript.versionsanity xmms2-0.8DrO_o/wscript ---- xmms2-0.8DrO_o/wscript.versionsanity 2011-12-05 15:19:56.000000000 -0500 -+++ xmms2-0.8DrO_o/wscript 2011-12-05 15:22:01.885508715 -0500 -@@ -19,7 +19,7 @@ from waflib import Configure, Options, U - from waftools.compiler_flags import compiler_flags - from waftools import gittools - --BASEVERSION="0.8 DrO_o" -+BASEVERSION="0.8" - APPNAME='xmms2' - - top = '.' -@@ -288,12 +288,13 @@ def configure(conf): - - nam,changed = gittools.get_info() - conf.msg("git commit id", nam) -- if conf.options.customversion: -- conf.env.VERSION = "%s (%s + %s)" % (BASEVERSION, nam, conf.options.customversion) -- else: -- dirty = changed and "-dirty" or "" -- conf.msg("uncommited changed", changed and "yes" or "no") -- conf.env.VERSION = "%s (git commit: %s%s)" % (BASEVERSION, nam, dirty) -+ ## if conf.options.customversion: -+ ## conf.env.VERSION = "%s (%s + %s)" % (BASEVERSION, nam, conf.options.customversion) -+ ## else: -+ ## dirty = changed and "-dirty" or "" -+ ## conf.msg("uncommited changed", changed and "yes" or "no") -+ ## conf.env.VERSION = "%s (git commit: %s%s)" % (BASEVERSION, nam, dirty) -+ conf.env.VERSION = "%s" % (BASEVERSION) - - ## conf.env.append_unique('CFLAGS', ['-g', '-O0']) - ## conf.env.append_unique('CXXFLAGS', ['-g', '-O0']) diff --git a/xmms2-0.8DrO_o-no-O0.patch b/xmms2-0.8DrO_o-no-O0.patch deleted file mode 100644 index 79c41e9..0000000 --- a/xmms2-0.8DrO_o-no-O0.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up xmms2-0.8DrO_o/wscript.noO0 xmms2-0.8DrO_o/wscript ---- xmms2-0.8DrO_o/wscript.noO0 2011-10-20 15:26:08.000000000 -0400 -+++ xmms2-0.8DrO_o/wscript 2011-12-05 15:19:15.962065486 -0500 -@@ -295,8 +295,8 @@ def configure(conf): - conf.msg("uncommited changed", changed and "yes" or "no") - conf.env.VERSION = "%s (git commit: %s%s)" % (BASEVERSION, nam, dirty) - -- conf.env.append_unique('CFLAGS', ['-g', '-O0']) -- conf.env.append_unique('CXXFLAGS', ['-g', '-O0']) -+ ## conf.env.append_unique('CFLAGS', ['-g', '-O0']) -+ ## conf.env.append_unique('CXXFLAGS', ['-g', '-O0']) - - if conf.options.with_profiling: - conf.env.with_profiling = True diff --git a/xmms2-0.8DrO_o-openssl-1.1.patch b/xmms2-0.8DrO_o-openssl-1.1.patch deleted file mode 100644 index e2157b2..0000000 --- a/xmms2-0.8DrO_o-openssl-1.1.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff -up xmms2-0.8DrO_o/src/plugins/airplay/raop_client.c.openssl11 xmms2-0.8DrO_o/src/plugins/airplay/raop_client.c ---- xmms2-0.8DrO_o/src/plugins/airplay/raop_client.c.openssl11 2016-10-18 12:11:20.170416850 -0400 -+++ xmms2-0.8DrO_o/src/plugins/airplay/raop_client.c 2016-10-18 12:18:19.315015550 -0400 -@@ -31,6 +31,15 @@ - #define RAOP_RTSP_CONNECTED 0x40 - #define RAOP_RTSP_DONE 0x80 - -+/* Openssl 1.1.0 broke compatibility. We could depend on openssl 1.1.0, but -+ * it may take some time before distributions are able to upgrade to the new -+ * openssl version. To insulate ourselves from such transition problems, let's -+ * add a compatibility macro. -+ */ -+#if OPENSSL_VERSION_NUMBER < 0x10100000L -+#define RSA_set0_key(r, n_, e_, d) (r->n = n_, r->e = e_, 1) -+#endif -+ - typedef enum audio_jack_status { - AUDIO_JACK_CONNECTED, - AUDIO_JACK_DISCONNECTED -@@ -110,6 +119,8 @@ static gint - raop_rsa_encrypt (guchar *text, gint len, guchar *res) - { - RSA *rsa; -+ BIGNUM *n_bn; -+ BIGNUM *e_bn; - size_t size; - static const guchar mod[] = { - 0xe7,0xd7,0x44,0xf2,0xa2,0xe2,0x78,0x8b,0x6c,0x1f,0x55,0xa0, -@@ -137,8 +148,10 @@ raop_rsa_encrypt (guchar *text, gint len - static const guchar exp[] = {0x01, 0x00, 0x01}; - - rsa = RSA_new (); -- rsa->n = BN_bin2bn (mod, 256, NULL); -- rsa->e = BN_bin2bn (exp, 3, NULL); -+ n_bn = BN_bin2bn (mod, 256, NULL); -+ e_bn = BN_bin2bn (exp, 3, NULL); -+ /* TODO: Catch error here? */ -+ RSA_set0_key(rsa, n_bn, e_bn, NULL); - - size = RSA_public_encrypt (len, text, res, rsa, RSA_PKCS1_OAEP_PADDING); - diff --git a/xmms2-0.8DrO_o-pulse-output-default.patch b/xmms2-0.8DrO_o-pulse-output-default.patch deleted file mode 100644 index 70c35a4..0000000 --- a/xmms2-0.8DrO_o-pulse-output-default.patch +++ /dev/null @@ -1,10 +0,0 @@ -diff -up xmms2-0.8DrO_o/src/plugins/pulse/wscript.default-output-pulse xmms2-0.8DrO_o/src/plugins/pulse/wscript ---- xmms2-0.8DrO_o/src/plugins/pulse/wscript.default-output-pulse 2011-10-20 15:26:08.000000000 -0400 -+++ xmms2-0.8DrO_o/src/plugins/pulse/wscript 2011-12-05 14:59:38.466393458 -0500 -@@ -3,5 +3,5 @@ from waftools.plugin import plugin - def plugin_configure(conf): - conf.check_cfg(package="libpulse", args="--cflags --libs", uselib_store="pulse") - --configure, build = plugin("pulse", configure=plugin_configure, output_prio=25, -+configure, build = plugin("pulse", configure=plugin_configure, output_prio=45, - libs=["pulse"]) diff --git a/xmms2-0.8DrO_o-ruby22-remove-deprecated-usage.patch b/xmms2-0.8DrO_o-ruby22-remove-deprecated-usage.patch deleted file mode 100644 index 611a22e..0000000 --- a/xmms2-0.8DrO_o-ruby22-remove-deprecated-usage.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- xmms2-0.8DrO_o/.waf-1.6.7-b271784c448ab906d5606267fb7f92c0/waflib/Tools/ruby.py.rbconfig 2015-01-16 17:04:41.900715116 +0900 -+++ xmms2-0.8DrO_o/.waf-1.6.7-b271784c448ab906d5606267fb7f92c0/waflib/Tools/ruby.py 2015-01-16 17:18:02.144349327 +0900 -@@ -45,7 +45,7 @@ - def read_out(cmd): - return Utils.to_list(self.cmd_and_log([self.env.RUBY,'-rrbconfig','-e',cmd])) - def read_config(key): -- return read_out('puts Config::CONFIG[%r]'%key) -+ return read_out('puts RbConfig::CONFIG[%r]'%key) - ruby=self.env['RUBY'] - archdir=read_config('archdir') - cpppath=archdir diff --git a/xmms2-0.8DrO_o-use-libdir.patch b/xmms2-0.8DrO_o-use-libdir.patch deleted file mode 100644 index a4e6623..0000000 --- a/xmms2-0.8DrO_o-use-libdir.patch +++ /dev/null @@ -1,10 +0,0 @@ -diff -up xmms2-0.8DrO_o/waftools/tool.py.plugins-use-libdir xmms2-0.8DrO_o/waftools/tool.py ---- xmms2-0.8DrO_o/waftools/tool.py.plugins-use-libdir 2011-10-20 15:26:08.000000000 -0400 -+++ xmms2-0.8DrO_o/waftools/tool.py 2011-12-05 14:56:47.867995794 -0500 -@@ -6,5 +6,5 @@ def add_install_flag(bld, obj): - - if env['explicit_install_name']: - libname = obj.env["cshlib_PATTERN"] % obj.target -- insname = os.path.join(obj.env["PREFIX"], 'lib', libname) -+ insname = os.path.join(obj.env["LIBDIR"], libname) - obj.env.append_unique("LINKFLAGS", ["-install_name", insname]) diff --git a/xmms2-0.8DrO_o-vorbis-pkgconfig-libs.patch b/xmms2-0.8DrO_o-vorbis-pkgconfig-libs.patch deleted file mode 100644 index c8243ba..0000000 --- a/xmms2-0.8DrO_o-vorbis-pkgconfig-libs.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- xmms2-0.8DrO_o/src/clients/vistest/wscript.vorbis 2011-10-21 04:26:08.000000000 +0900 -+++ xmms2-0.8DrO_o/src/clients/vistest/wscript 2014-05-07 15:33:45.670355972 +0900 -@@ -23,12 +23,12 @@ - t.install_path = None - - -- if bld.env.LIB_vorbisenc: -+ if bld.env.LIB_vorbisenc and bld.env.LIB_vorbis: - t = bld(features = 'c cprogram', - target = 'xmms2-ripper', - source = 'ripper.c', - includes = '. ../../.. ../../include', -- uselib = 'vorbisenc', -+ uselib = 'vorbisenc vorbis ogg', - use = 'xmmsclient' - ) - if not bld.env.INSTALL_VIS_REFERENCE_CLIENTS: -@@ -56,6 +56,12 @@ - conf.check_cfg(package='vorbisenc', uselib_store='vorbisenc', - args='--cflags --libs', mandatory=False) - -+ conf.check_cfg(package='vorbis', uselib_store='vorbis', -+ args='--cflags --libs', mandatory=False) -+ -+ conf.check_cfg(package='ogg', uselib_store='ogg', -+ args='--cflags --libs', mandatory=False) -+ - if conf.check_cfg(package='libvisual-0.4', uselib_store='visual', - args='--cflags --libs', mandatory=False): - conf.check_cfg(package='sdl', uselib_store='sdl', diff --git a/xmms2-0.8DrO_o-xsubpp-fix.patch b/xmms2-0.8DrO_o-xsubpp-fix.patch deleted file mode 100644 index 2a05f15..0000000 --- a/xmms2-0.8DrO_o-xsubpp-fix.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up .waf-1.6.7-b271784c448ab906d5606267fb7f92c0/waflib/Tools/perl.py.fixme .waf-1.6.7-b271784c448ab906d5606267fb7f92c0/waflib/Tools/perl.py ---- .waf-1.6.7-b271784c448ab906d5606267fb7f92c0/waflib/Tools/perl.py.fixme 2013-08-11 16:41:03.730842318 -0400 -+++ .waf-1.6.7-b271784c448ab906d5606267fb7f92c0/waflib/Tools/perl.py 2013-08-11 16:41:18.575842955 -0400 -@@ -60,7 +60,7 @@ def check_perl_ext_devel(self): - env['LINKFLAGS_PERLEXT']=read_out(" -MConfig -e'print $Config{lddlflags}'") - env['INCLUDES_PERLEXT']=read_out(" -MConfig -e'print \"$Config{archlib}/CORE\"'") - env['CFLAGS_PERLEXT']=read_out(" -MConfig -e'print \"$Config{ccflags} $Config{cccdlflags}\"'") -- env['XSUBPP']=read_out(" -MConfig -e'print \"$Config{privlib}/ExtUtils/xsubpp$Config{exe_ext}\"'") -+ env['XSUBPP']="/usr/bin/xsubpp" - env['EXTUTILS_TYPEMAP']=read_out(" -MConfig -e'print \"$Config{privlib}/ExtUtils/typemap\"'") - if not getattr(Options.options,'perlarchdir',None): - env['ARCHDIR_PERL']=self.cmd_and_log(perl+" -MConfig -e'print $Config{sitearch}'") 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-0.9.3-no-mind-in-a-box.patch b/xmms2-0.9.3-no-mind-in-a-box.patch new file mode 100644 index 0000000..43f5986 --- /dev/null +++ b/xmms2-0.9.3-no-mind-in-a-box.patch @@ -0,0 +1,40 @@ +diff -up xmms2-0.9.3/AUTHORS.nomind xmms2-0.9.3/AUTHORS +--- xmms2-0.9.3/AUTHORS.nomind 2023-05-12 04:19:00.000000000 -0400 ++++ xmms2-0.9.3/AUTHORS 2023-09-12 10:08:14.652340349 -0400 +@@ -272,12 +272,6 @@ N: Łukasz Michalik + E: lmi@ift.uni.wroc.pl + D: Bugfixes. + +-N: Mind.In.A.Box / Stefan Poiss and Markus Hadwiger +-W: http://www.mindinabox.com/ +-D: Supplied us with a great "intro" clip. +-D: Lament for Lost Dreams clip by mind.in.a.box +-D: Copyright (c) by Stefan Poiss and Markus Hadwiger +- + N: Dave Moore + E: wrex006@gmail.com + D: missing method in C++ bindings. +diff -up xmms2-0.9.3/checksums.nomind xmms2-0.9.3/checksums +--- xmms2-0.9.3/checksums.nomind 2023-05-12 04:19:00.000000000 -0400 ++++ xmms2-0.9.3/checksums 2023-09-12 10:08:14.652340349 -0400 +@@ -66,7 +66,6 @@ + 100644 blob 1c9606c6d58527d72f4354646f9c135da24da970 doc/tutorial/vala/xmms2-client-glib.deps + 100644 blob 5beabceeda7ae335cf8633a03d0febe2f51198f0 doc/tutorial/vala/xmms2-client-glib.vapi + 100644 blob e3677f8c3b4ccbb044a3f6f4f7e4bf6c5ddf6385 doc/tutorial/vala/xmms2-client.vapi +-100644 blob 7dea2b304cdacc745218cd4187d9ab644842c798 mind.in.a.box-lament_snipplet.ogg + 100644 blob 503aea3af178fd7ba02665706151f303703c3c95 pixmaps/wscript + 100644 blob 66e6d6c205e0824d18692b40169d95a4593c9bf8 pixmaps/xmms2-128.png + 100644 blob 0e2b17d6267581a9a49d7930af3c8a4f792ec0b3 pixmaps/xmms2-16.png +diff -up xmms2-0.9.3/src/xmms/medialib.c.nomind xmms2-0.9.3/src/xmms/medialib.c +diff -up xmms2-0.9.3/wscript.nomind xmms2-0.9.3/wscript +--- xmms2-0.9.3/wscript.nomind 2023-05-12 04:19:00.000000000 -0400 ++++ xmms2-0.9.3/wscript 2023-09-12 10:08:14.653340363 -0400 +@@ -139,7 +139,7 @@ def build(bld): + VERSION = bld.env.VERSION + ) + +- bld.install_files('${SHAREDDIR}', "mind.in.a.box-lament_snipplet.ogg") ++ bld.install_files('${SHAREDDIR}', "unreal_dm-free.music.and.free.beer.ogg") + + bld.add_post_fun(shutdown) + diff --git a/xmms2.spec b/xmms2.spec index 5f6fc32..b3157ab 100644 --- a/xmms2.spec +++ b/xmms2.spec @@ -1,57 +1,92 @@ -%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} - -%global codename DrO_o - Name: xmms2 Summary: A modular audio framework and plugin architecture -Version: 0.8 -Release: 49%{?dist} -License: LGPLv2+ and GPLv2+ and BSD -Group: Applications/Multimedia +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. -# http://downloads.sourceforge.net/xmms2/%{name}-%{version}%{codename}.tar.bz2 +# https://github.com/xmms2/xmms2-devel/releases/download/%%{version}/xmms2-%%{version}.tar.xz # Cleaning it is simple, just rm -rf src/plugins/mp4 mind.in.a.box-lament_snipplet.ogg -Source0: %{name}-%{version}%{codename}-clean.tar.bz2 +Source0: %{name}-%{version}-clean.tar.xz 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 -# Use libdir properly for Fedora multilib -Patch1: xmms2-0.8DrO_o-use-libdir.patch -# Set default output to pulse -Patch2: xmms2-0.8DrO_o-pulse-output-default.patch -# Don't add extra CFLAGS, we're smart enough, thanks. -Patch4: xmms2-0.8DrO_o-no-O0.patch -# More sane versioning -Patch5: xmms2-0.8DrO_o-moresaneversioning.patch -# Fix xsubpp location -Patch6: xmms2-0.8DrO_o-xsubpp-fix.patch -# libmodplug 0.8.8.5 changed pkgconfig includedir output -Patch7: xmms2-0.8DrO_o-libmodplug-pkgconfig-change.patch -# libvorbis 1.3.4 changed pkgconfig libs output -Patch8: xmms2-0.8DrO_o-vorbis-pkgconfig-libs.patch -# Remove deprecated usage on ruby 22 -Patch9: xmms2-0.8DrO_o-ruby22-remove-deprecated-usage.patch -# Add support for OpenSSL 1.1 -Patch10: xmms2-0.8DrO_o-openssl-1.1.patch +# 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.8DrO_o-no-mind.in.a.box.patch +Patch11: xmms2-0.9.3-no-mind-in-a-box.patch URL: http://wiki.xmms2.xmms.se/ -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: sqlite-devel, flac-devel, libofa-devel -BuildRequires: libcdio-paranoia-devel, libdiscid-devel, libsmbclient-devel -BuildRequires: libmpcdec-devel, gnome-vfs2-devel, jack-audio-connection-kit-devel -BuildRequires: fftw-devel, libsamplerate-devel, libxml2-devel, alsa-lib-devel -BuildRequires: libao-devel, libshout-devel, Pyrex, ruby-devel, ruby ruby(rubygems) -BuildRequires: perl-devel, perl-generators, boost-devel, pulseaudio-libs-devel -BuildRequires: libmodplug-devel, ecore-devel, gamin-devel, mpg123-devel -BuildRequires: doxygen, perl-Pod-Parser -BuildRequires: pkgconfig(avahi-client), pkgconfig(avahi-glib), pkgconfig(avahi-compat-libdns_sd) -BuildRequires: libvisual-devel, wavpack-devel, SDL-devel -BuildRequires: glib2-devel, readline-devel, ncurses-devel +BuildRequires: git +BuildRequires: python3-devel +BuildRequires: python3-cython +BuildRequires: python-unversioned-command +BuildRequires: sqlite-devel +BuildRequires: flac-devel +BuildRequires: libofa-devel +BuildRequires: libcdio-paranoia-devel +BuildRequires: libdiscid-devel +BuildRequires: libsmbclient-devel +BuildRequires: libmpcdec-devel +BuildRequires: gnome-vfs2-devel +BuildRequires: pkgconfig(jack) +BuildRequires: fftw-devel +BuildRequires: libsamplerate-devel +BuildRequires: libxml2-devel +BuildRequires: alsa-lib-devel +BuildRequires: libao-devel +BuildRequires: libshout-devel +BuildRequires: ruby-devel +BuildRequires: ruby +BuildRequires: ruby(rubygems) +BuildRequires: perl-devel +BuildRequires: perl-generators +BuildRequires: boost-devel +BuildRequires: pulseaudio-libs-devel +BuildRequires: libmodplug-devel +BuildRequires: ecore-devel +BuildRequires: mpg123-devel +BuildRequires: libmad-devel +BuildRequires: doxygen +BuildRequires: perl-Pod-Parser +BuildRequires: pkgconfig(avahi-client) +BuildRequires: pkgconfig(avahi-glib) +BuildRequires: pkgconfig(avahi-compat-libdns_sd) +BuildRequires: libvisual-devel +BuildRequires: wavpack-devel +BuildRequires: SDL-devel +BuildRequires: glib2-devel +BuildRequires: readline-devel +BuildRequires: ncurses-devel +BuildRequires: mac-devel +BuildRequires: fluidsynth-devel +BuildRequires: opusfile-devel +BuildRequires: libmms-devel +BuildRequires: libcurl-devel +BuildRequires: flex +BuildRequires: bison # For /usr/share/perl5/ExtUtils/xsubpp 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} + +Obsoletes: xmms2-mac < 0.8-24 +Provides: xmms2-mac = %{version}-%{release} + +Obsoletes: xmms2-mms < 0.8-39 +Provides: xmms2-mms = %{version}-%{release} + +Obsoletes: xmms2-nyxmms2 < 0.8-89 +Provides: xmms2-nyxmms2 = %{version}-%{release} %description XMMS2 is an audio framework, but it is not a general multimedia player - it @@ -66,7 +101,6 @@ client (such as gxmms2 or esperanza). %package devel Summary: Development libraries and headers for XMMS2 -Group: Development/Libraries Requires: glib2-devel, boost-devel Requires: pkgconfig Requires: %{name}%{?_isa} = %{version}-%{release} @@ -77,131 +111,87 @@ or build new plugins for XMMS2. %package docs Summary: Development documentation for XMMS2 -Group: Documentation Requires: %{name} = %{version}-%{release} %description docs API documentation for the XMMS2 modular audio framework architecture. -%package -n python2-xmms2 -%{?python_provide:%python_provide python2-xmms2} -# Remove before F30 -Provides: %{name}-python = %{version}-%{release} -Provides: %{name}-python%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-python < %{version}-%{release} -Summary: Python support for XMMS2 -Group: Applications/Multimedia -Requires: %{name} = %{version}-%{release} - -%description -n python2-xmms2 -Python bindings for XMMS2. - %package perl Summary: Perl support for XMMS2 -License: GPL+ or Artistic -Group: Applications/Multimedia +License: GPL-1.0-or-later OR Artistic-1.0-Perl Requires: %{name} = %{version}-%{release} -Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) %description perl Perl bindings for XMMS2. +%package python3 +Summary: Python3 support for XMMS2 +Requires: %{name} = %{version}-%{release} + +%description python3 +Python3 bindings for XMMS2. + %package ruby Summary: Ruby support for XMMS2 -Group: Applications/Multimedia Requires: %{name} = %{version}-%{release} Requires: ruby(release) %description ruby Ruby bindings for XMMS2. -%package -n nyxmms2 -Summary: Commandline client for XMMS2 -Group: Applications/Multimedia -Requires: %{name} = %{version}-%{release} - -%description -n nyxmms2 -nyxmms2 is the new official commandline client for XMMS2. It can be run in -either shell-mode (if started without arguments), or in inline-mode where -it executes the command passed as argument directly. - %prep -%setup -q -n %{name}-%{version}%{codename} -%patch1 -p1 -b .plugins-use-libdir -%patch2 -p1 -b .default-output-pulse -%patch4 -p1 -b .noO0 -%patch5 -p1 -b .versionsanity -%patch7 -p1 -b .modplug_header -%patch8 -p1 -b .vorbis_libs -%patch10 -p1 -b .openssl11 -%patch11 -p1 -b .nomind +%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} . # This header doesn't need to be executable chmod -x src/include/xmmsclient/xmmsclient++/dict.h -# Clean up paths in wafadmin -# WAFADMIN_FILES=`find wafadmin/ -type f` -# for i in $WAFADMIN_FILES; do -# sed -i 's|/usr/lib|%{_libdir}|g' $i -# done -# sed -i 's|"lib"|"%{_lib}"|g' wscript - %build -export CFLAGS="%{optflags}" +export CFLAGS="%{optflags} -DHAVE_G_FILE_QUERY_FILE_TYPE" export CPPFLAGS="%{optflags}" export LIBDIR="%{_libdir}" -export PYTHONDIR="%{python_sitearch}" export XSUBPP="%{_bindir}/xsubpp" -# Now with ruby22, the following waf fails until applying PATCH9 -# Really want to know how to patch against waf beforehand... + ./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 || true -( - cd .waf-1.* - cat %PATCH9 | patch -p2 -) -# Hacky, hacky, hacky. -patch -p0 < %{_sourcedir}/xmms2-0.8DrO_o-xsubpp-fix.patch -./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 +--with-perl-archdir=%{perl_archlib} --with-pkgconfigdir=%{_libdir}/pkgconfig -j1 ./waf build -v %{?_smp_mflags} + # make the docs doxygen %install -rm -rf %{buildroot} export LIBDIR="%{_libdir}" -export python_LIBDEST="%{python_sitearch}" ./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 -chmod +x %{buildroot}%{_libdir}/%{name}/* %{buildroot}%{_libdir}/libxmmsclient*.so* %{buildroot}%{python_sitearch}/xmmsclient/xmmsapi.so \ +chmod +x %{buildroot}%{_libdir}/%{name}/* %{buildroot}%{_libdir}/libxmmsclient*.so* \ %{buildroot}%{perl_archlib}/auto/Audio/XMMSClient/XMMSClient.so %{buildroot}%{ruby_vendorarchdir}/xmmsclient_*.so # Convert to utf-8 for i in %{buildroot}%{_mandir}/man1/*.gz; do gunzip $i; done -for i in %{buildroot}%{_mandir}/man1/*.1 xmms2-0.8DrO_o.ChangeLog; do +for i in %{buildroot}%{_mandir}/man1/*.1 xmms2-%{version}.ChangeLog; do iconv -o $i.iso88591 -f iso88591 -t utf8 $i mv $i.iso88591 $i done install -m0755 %{SOURCE1} %{buildroot}%{_bindir} -%clean -rm -rf %{buildroot} - -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig +%ldconfig_scriptlets %files %license COPYING COPYING.GPL COPYING.LGPL -%doc AUTHORS xmms2-0.8DrO_o.ChangeLog README TODO +%doc AUTHORS xmms2-%{version}.ChangeLog README.mdown %{_bindir}/%{name}* +%{_bindir}/_xmms2-migrate-collections-v0 +%{_bindir}/s4 +%{_bindir}/sqlite2s4 %{_libdir}/libxmmsclient*.so.* %{_libdir}/%{name} %{_mandir}/man1/%{name}* @@ -220,8 +210,8 @@ rm -rf %{buildroot} %{perl_archlib}/Audio/ %{perl_archlib}/auto/Audio/ -%files -n python2-xmms2 -%{python_sitearch}/xmmsclient/ +%files python3 +%{python3_sitearch}/xmmsclient/ %files ruby %{ruby_vendorlibdir}/xmmsclient.rb @@ -230,10 +220,187 @@ rm -rf %{buildroot} %{ruby_vendorarchdir}/xmmsclient_ext.so %{ruby_vendorarchdir}/xmmsclient_glib.so -%files -n nyxmms2 -%{_bindir}/nyxmms2 - %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 + +* Wed Jan 03 2024 Mamoru TASAKA - 0.9.3-3 +- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.3 + +* Sun Nov 19 2023 Leigh Scott - 0.9.3-2 +- provides/obsoletes xmms2-mms (from rpmfusion) + +* Tue Sep 12 2023 Tom Callaway - 0.9.3-1 +- update to 0.9.3 +- add BR: mac-devel +- provides/obsoletes xmms2-mac (from rpmfusion) +- provides/obsoletes xmms2-nyxmms2 (upstream dropped that naming) + +* Sat Jul 22 2023 Fedora Release Engineering - 0.8-88 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jul 11 2023 Jitka Plesnikova - 0.8-87 +- Perl 5.38 rebuild + +* Fri Mar 17 2023 Yaakov Selkowitz - 0.8-86 +- Rebuilt for libmpcdec 1.3.0 + +* Sat Jan 21 2023 Fedora Release Engineering - 0.8-85 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Jan 04 2023 Mamoru TASAKA - 0.8-84 +- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.2 + +* Thu Sep 15 2022 Mamoru TASAKA - 0.8-83 +- Rebuild for new flac + +* Sat Jul 23 2022 Fedora Release Engineering - 0.8-82 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon May 30 2022 Jitka Plesnikova - 0.8-81 +- Perl 5.36 rebuild + +* Wed Jan 26 2022 Mamoru TASAKA - 0.8-80 +- F-36: rebuild against ruby31 + +* Sat Jan 22 2022 Fedora Release Engineering - 0.8-79 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Sep 14 2021 Sahana Prasad - 0.8-78 +- Rebuilt with OpenSSL 3.0.0 + +* Fri Jul 23 2021 Fedora Release Engineering - 0.8-77 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri May 21 2021 Jitka Plesnikova - 0.8-76 +- Perl 5.34 rebuild + +* Wed Feb 03 2021 Kalev Lember - 0.8-75 +- Drop unused gamin-devel build dep + +* Thu Jan 28 2021 Fedora Release Engineering - 0.8-74 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jan 06 2021 Mamoru TASAKA - 0.8-73 +- F-34: rebuild against ruby 3.0 + +* Sat Aug 01 2020 Fedora Release Engineering - 0.8-72 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 0.8-71 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jun 22 2020 Jitka Plesnikova - 0.8-70 +- Perl 5.32 rebuild + +* Tue Mar 31 2020 Adrian Reber - 0.8-69 +- Rebuilt for libcdio-2.1.0 + +* Fri Feb 28 2020 Tom Callaway - 0.8-68 +- abandon all hope ye who enter here + +* Fri Jan 31 2020 Fedora Release Engineering - 0.8-67 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Sat Jan 18 2020 Mamoru TASAKA - 0.8-66 +- Remove python2 related files explicitly for F-32 for now + +* Sat Jul 27 2019 Fedora Release Engineering - 0.8-65 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue Jun 04 2019 Jitka Plesnikova - 0.8-64 +- Perl 5.30 re-rebuild updated packages + +* Mon Jun 03 2019 Xavier Bachelot - 0.8-63 +- Obsoletes xmms2-mad for proper upgrade path. + +* Thu May 30 2019 Jitka Plesnikova - 0.8-62 +- Perl 5.30 rebuild + +* Tue May 28 2019 Petr Pisar - 0.8-61 +- Build-require python2 because waf uses it (bug #1711261) +* Mon Apr 15 2019 Xavier Bachelot - 0.8-60 +- Add BuildRequires: libmad-devel for mad plugin. + +* Sun Mar 17 2019 Miro Hrončok - 0.8-59 +- Subpackage python2-xmms2 has been removed + See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal + +* Mon Feb 18 2019 Mamoru TASAKA - 0.8-58 +- Yet more python2 explicit usage +- Remove redundant BuildRequires + +* Sun Feb 17 2019 Igor Gnatenko - 0.8-58 +- Rebuild for readline 8.0 + +* Sun Feb 03 2019 Fedora Release Engineering - 0.8-57 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Jul 23 2018 Tom Callaway - 0.8-56 +- add BuildRequires: gcc, gcc-c++ +- fix build to use python2 explicitly + +* Sat Jul 14 2018 Fedora Release Engineering - 0.8-55 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Jun 27 2018 Jitka Plesnikova - 0.8-54 +- Perl 5.28 rebuild + +* Fri Feb 09 2018 Fedora Release Engineering - 0.8-53 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Jan 25 2018 Adrian Reber - 0.8-52 +- Rebuilt for libcdio-2.0.0 + +* Sat Jan 20 2018 Björn Esser - 0.8-51 +- Rebuilt for switch to libxcrypt + +* Fri Jan 05 2018 Mamoru TASAKA - 0.8-50 +- F-28: rebuild for ruby25 + * Mon Nov 20 2017 Tom Callaway - 0.8-49 - remove non-free ogg sample