diff --git a/.gitignore b/.gitignore index 8ab4456..b1ee736 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,3 @@ 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 3f8e255..e2df1ea 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 new file mode 100644 index 0000000..66964e7 --- /dev/null +++ b/xmms2-0.8DrO_o-libmodplug-pkgconfig-change.patch @@ -0,0 +1,11 @@ +--- 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 new file mode 100644 index 0000000..3ded289 --- /dev/null +++ b/xmms2-0.8DrO_o-moresaneversioning.patch @@ -0,0 +1,32 @@ +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 new file mode 100644 index 0000000..79c41e9 --- /dev/null +++ b/xmms2-0.8DrO_o-no-O0.patch @@ -0,0 +1,14 @@ +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 new file mode 100644 index 0000000..e2157b2 --- /dev/null +++ b/xmms2-0.8DrO_o-openssl-1.1.patch @@ -0,0 +1,41 @@ +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 new file mode 100644 index 0000000..70c35a4 --- /dev/null +++ b/xmms2-0.8DrO_o-pulse-output-default.patch @@ -0,0 +1,10 @@ +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 new file mode 100644 index 0000000..611a22e --- /dev/null +++ b/xmms2-0.8DrO_o-ruby22-remove-deprecated-usage.patch @@ -0,0 +1,11 @@ +--- 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 new file mode 100644 index 0000000..a4e6623 --- /dev/null +++ b/xmms2-0.8DrO_o-use-libdir.patch @@ -0,0 +1,10 @@ +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 new file mode 100644 index 0000000..c8243ba --- /dev/null +++ b/xmms2-0.8DrO_o-vorbis-pkgconfig-libs.patch @@ -0,0 +1,30 @@ +--- 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 new file mode 100644 index 0000000..2a05f15 --- /dev/null +++ b/xmms2-0.8DrO_o-xsubpp-fix.patch @@ -0,0 +1,12 @@ +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 deleted file mode 100644 index b069306..0000000 --- a/xmms2-0.9.3-curl-buffer-overrun-fix.patch +++ /dev/null @@ -1,29 +0,0 @@ -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 deleted file mode 100644 index 1416a2a..0000000 --- a/xmms2-0.9.3-gentoo-cpp-client.patch +++ /dev/null @@ -1,12 +0,0 @@ -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 deleted file mode 100644 index 5c18a29..0000000 --- a/xmms2-0.9.3-gentoo-faad.patch +++ /dev/null @@ -1,14 +0,0 @@ -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 deleted file mode 100644 index 43f5986..0000000 --- a/xmms2-0.9.3-no-mind-in-a-box.patch +++ /dev/null @@ -1,40 +0,0 @@ -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 b3157ab..a65b05b 100644 --- a/xmms2.spec +++ b/xmms2.spec @@ -1,30 +1,42 @@ + +%global codename DrO_o + Name: xmms2 Summary: A modular audio framework and plugin architecture -Version: 0.9.5 -Release: 8%{?dist} -License: LGPL-2.1-or-later AND GPL-2.0-or-later AND BSD-3-Clause +Version: 0.8 +Release: 63%{?dist} +License: LGPLv2+ and GPLv2+ and BSD # 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. -# https://github.com/xmms2/xmms2-devel/releases/download/%%{version}/xmms2-%%{version}.tar.xz +# http://downloads.sourceforge.net/xmms2/%%{name}-%%{version}%%{codename}.tar.bz2 # Cleaning it is simple, just rm -rf src/plugins/mp4 mind.in.a.box-lament_snipplet.ogg -Source0: %{name}-%{version}-clean.tar.xz +Source0: %{name}-%{version}%{codename}-clean.tar.bz2 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 +# 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 # Swap mind.in.a.box for free.music.and.free.beer -Patch11: xmms2-0.9.3-no-mind-in-a-box.patch +Patch11: xmms2-0.8DrO_o-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: python2 BuildRequires: sqlite-devel BuildRequires: flac-devel BuildRequires: libofa-devel @@ -33,7 +45,7 @@ BuildRequires: libdiscid-devel BuildRequires: libsmbclient-devel BuildRequires: libmpcdec-devel BuildRequires: gnome-vfs2-devel -BuildRequires: pkgconfig(jack) +BuildRequires: jack-audio-connection-kit-devel BuildRequires: fftw-devel BuildRequires: libsamplerate-devel BuildRequires: libxml2-devel @@ -49,6 +61,7 @@ BuildRequires: boost-devel BuildRequires: pulseaudio-libs-devel BuildRequires: libmodplug-devel BuildRequires: ecore-devel +BuildRequires: gamin-devel BuildRequires: mpg123-devel BuildRequires: libmad-devel BuildRequires: doxygen @@ -62,31 +75,14 @@ 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 @@ -118,19 +114,13 @@ API documentation for the XMMS2 modular audio framework architecture. %package perl Summary: Perl support for XMMS2 -License: GPL-1.0-or-later OR Artistic-1.0-Perl +License: GPL+ or Artistic 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 Requires: %{name} = %{version}-%{release} @@ -139,31 +129,63 @@ Requires: ruby(release) %description ruby Ruby bindings for XMMS2. +%package -n nyxmms2 +Summary: Commandline client for XMMS2 +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} -%patch -P2 -p1 -b .cpp-client -%patch -P3 -p1 -b .faad -%patch -P4 -p1 -b .overrun -%patch -P11 -p1 -b .nomind +%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 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 +for i in doc/tutorial/python/tut1.py doc/tutorial/python/tut2.py doc/tutorial/python/tut3.py doc/tutorial/python/tut4.py doc/tutorial/python/tut5.py doc/tutorial/python/tut6.py utils/gen-tree-hashes.py utils/gen-wiki-release-bugs.py utils/gen-tarball.py utils/gen-wiki-release-authors.py waf waftools/podselect.py waftools/genipc.py waftools/genipc_server.py waftools/cython.py; do + sed -i 's|#!/usr/bin/env python|#!/usr/bin/python2|g' $i +done + %build -export CFLAGS="%{optflags} -DHAVE_G_FILE_QUERY_FILE_TYPE" +export CFLAGS="%{optflags}" export CPPFLAGS="%{optflags}" export LIBDIR="%{_libdir}" 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 + --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 ./waf build -v %{?_smp_mflags} - # make the docs doxygen %install +rm -rf %{buildroot} export LIBDIR="%{_libdir}" ./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 @@ -176,7 +198,7 @@ chmod +x %{buildroot}%{_libdir}/%{name}/* %{buildroot}%{_libdir}/libxmmsclient*. for i in %{buildroot}%{_mandir}/man1/*.gz; do gunzip $i; done -for i in %{buildroot}%{_mandir}/man1/*.1 xmms2-%{version}.ChangeLog; do +for i in %{buildroot}%{_mandir}/man1/*.1 xmms2-0.8DrO_o.ChangeLog; do iconv -o $i.iso88591 -f iso88591 -t utf8 $i mv $i.iso88591 $i done @@ -187,11 +209,8 @@ install -m0755 %{SOURCE1} %{buildroot}%{_bindir} %files %license COPYING COPYING.GPL COPYING.LGPL -%doc AUTHORS xmms2-%{version}.ChangeLog README.mdown +%doc AUTHORS xmms2-0.8DrO_o.ChangeLog README TODO %{_bindir}/%{name}* -%{_bindir}/_xmms2-migrate-collections-v0 -%{_bindir}/s4 -%{_bindir}/sqlite2s4 %{_libdir}/libxmmsclient*.so.* %{_libdir}/%{name} %{_mandir}/man1/%{name}* @@ -210,9 +229,6 @@ install -m0755 %{SOURCE1} %{buildroot}%{_bindir} %{perl_archlib}/Audio/ %{perl_archlib}/auto/Audio/ -%files python3 -%{python3_sitearch}/xmmsclient/ - %files ruby %{ruby_vendorlibdir}/xmmsclient.rb %{ruby_vendorlibdir}/xmmsclient/ @@ -220,140 +236,10 @@ install -m0755 %{SOURCE1} %{buildroot}%{_bindir} %{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.