Compare commits

..

No commits in common. "rawhide" and "f25" have entirely different histories.

16 changed files with 287 additions and 381 deletions

3
.gitignore vendored
View file

@ -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

View file

@ -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

View file

@ -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 <modplug.h>
+#include <libmodplug/modplug.h>
#include <glib.h>
#include <string.h>

View file

@ -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'])

View file

@ -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

View file

@ -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);

View file

@ -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"])

View file

@ -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

View file

@ -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])

View file

@ -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',

View file

@ -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}'")

View file

@ -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;

View file

@ -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.

View file

@ -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

View file

@ -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)

View file

@ -1,92 +1,57 @@
%{!?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.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: 49%{?dist}
License: LGPLv2+ and GPLv2+ and BSD
Group: Applications/Multimedia
# 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: 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
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
# 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
@ -101,6 +66,7 @@ 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}
@ -111,87 +77,131 @@ 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-1.0-or-later OR Artistic-1.0-Perl
License: GPL+ or Artistic
Group: Applications/Multimedia
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}
%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
%build
export CFLAGS="%{optflags} -DHAVE_G_FILE_QUERY_FILE_TYPE"
export CFLAGS="%{optflags}"
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
--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}"
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* \
chmod +x %{buildroot}%{_libdir}/%{name}/* %{buildroot}%{_libdir}/libxmmsclient*.so* %{buildroot}%{python_sitearch}/xmmsclient/xmmsapi.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-%{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
install -m0755 %{SOURCE1} %{buildroot}%{_bindir}
%ldconfig_scriptlets
%clean
rm -rf %{buildroot}
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%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,8 +220,8 @@ install -m0755 %{SOURCE1} %{buildroot}%{_bindir}
%{perl_archlib}/Audio/
%{perl_archlib}/auto/Audio/
%files python3
%{python3_sitearch}/xmmsclient/
%files -n python2-xmms2
%{python_sitearch}/xmmsclient/
%files ruby
%{ruby_vendorlibdir}/xmmsclient.rb
@ -220,187 +230,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 <mtasaka@fedoraproject.org> - 0.9.5-8
- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_4.0
* Fri Sep 19 2025 Python Maint <python-maint@redhat.com> - 0.9.5-7
- Rebuilt for Python 3.14.0rc3 bytecode
* Fri Aug 15 2025 Python Maint <python-maint@redhat.com> - 0.9.5-6
- Rebuilt for Python 3.14.0rc2 bytecode
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.5-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Tue Jul 08 2025 Jitka Plesnikova <jplesnik@redhat.com> - 0.9.5-4
- Perl 5.42 rebuild
* Tue Jun 03 2025 Python Maint <python-maint@redhat.com> - 0.9.5-3
- Rebuilt for Python 3.14
* Tue May 27 2025 Jitka Plesnikova <jplesnik@redhat.com> - 0.9.5-2
- Rebuilt for flac 1.5.0
* Mon Mar 10 2025 Tom Callaway <spot@fedoraproject.org> - 0.9.5-1
- update to 0.9.5
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Wed Jan 08 2025 Mamoru TASAKA <mtasaka@fedoraproject.org> - 0.9.4-2
- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.4
* Tue Oct 22 2024 Tom Callaway <spot@fedoraproject.org> - 0.9.4-1
- update to 0.9.4
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.3-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Wed Jun 12 2024 Jitka Plesnikova <jplesnik@redhat.com> - 0.9.3-6
- Perl 5.40 rebuild
* Sat Jun 08 2024 Python Maint <python-maint@redhat.com> - 0.9.3-5
- Rebuilt for Python 3.13
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Jan 03 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 0.9.3-3
- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.3
* Sun Nov 19 2023 Leigh Scott <leigh123linux@gmail.com> - 0.9.3-2
- provides/obsoletes xmms2-mms (from rpmfusion)
* Tue Sep 12 2023 Tom Callaway <spot@fedoraproject.org> - 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 <releng@fedoraproject.org> - 0.8-88
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jul 11 2023 Jitka Plesnikova <jplesnik@redhat.com> - 0.8-87
- Perl 5.38 rebuild
* Fri Mar 17 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 0.8-86
- Rebuilt for libmpcdec 1.3.0
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-85
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Wed Jan 04 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 0.8-84
- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.2
* Thu Sep 15 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 0.8-83
- Rebuild for new flac
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-82
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon May 30 2022 Jitka Plesnikova <jplesnik@redhat.com> - 0.8-81
- Perl 5.36 rebuild
* Wed Jan 26 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 0.8-80
- F-36: rebuild against ruby31
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-79
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Tue Sep 14 2021 Sahana Prasad <sahana@redhat.com> - 0.8-78
- Rebuilt with OpenSSL 3.0.0
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-77
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri May 21 2021 Jitka Plesnikova <jplesnik@redhat.com> - 0.8-76
- Perl 5.34 rebuild
* Wed Feb 03 2021 Kalev Lember <klember@redhat.com> - 0.8-75
- Drop unused gamin-devel build dep
* Thu Jan 28 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-74
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jan 06 2021 Mamoru TASAKA <mtasaka@fedoraproject.org> - 0.8-73
- F-34: rebuild against ruby 3.0
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-72
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-71
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jun 22 2020 Jitka Plesnikova <jplesnik@redhat.com> - 0.8-70
- Perl 5.32 rebuild
* Tue Mar 31 2020 Adrian Reber <adrian@lisas.de> - 0.8-69
- Rebuilt for libcdio-2.1.0
* Fri Feb 28 2020 Tom Callaway <spot@fedoraproject.org> - 0.8-68
- abandon all hope ye who enter here
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-67
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sat Jan 18 2020 Mamoru TASAKA <mtasaka@fedoraproject.org> - 0.8-66
- Remove python2 related files explicitly for F-32 for now
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-65
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Tue Jun 04 2019 Jitka Plesnikova <jplesnik@redhat.com> - 0.8-64
- Perl 5.30 re-rebuild updated packages
* Mon Jun 03 2019 Xavier Bachelot <xavier@bachelot.org> - 0.8-63
- Obsoletes xmms2-mad for proper upgrade path.
* Thu May 30 2019 Jitka Plesnikova <jplesnik@redhat.com> - 0.8-62
- Perl 5.30 rebuild
* Tue May 28 2019 Petr Pisar <ppisar@redhat.com> - 0.8-61
- Build-require python2 because waf uses it (bug #1711261)
* Mon Apr 15 2019 Xavier Bachelot <xavier@bachelot.org> - 0.8-60
- Add BuildRequires: libmad-devel for mad plugin.
* Sun Mar 17 2019 Miro Hrončok <mhroncok@redhat.com> - 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 <mtasaka@fedoraproject.org> - 0.8-58
- Yet more python2 explicit usage
- Remove redundant BuildRequires
* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.8-58
- Rebuild for readline 8.0
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-57
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Mon Jul 23 2018 Tom Callaway <spot@fedoraproject.org> - 0.8-56
- add BuildRequires: gcc, gcc-c++
- fix build to use python2 explicitly
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-55
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Wed Jun 27 2018 Jitka Plesnikova <jplesnik@redhat.com> - 0.8-54
- Perl 5.28 rebuild
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-53
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Jan 25 2018 Adrian Reber <adrian@lisas.de> - 0.8-52
- Rebuilt for libcdio-2.0.0
* Sat Jan 20 2018 Björn Esser <besser82@fedoraproject.org> - 0.8-51
- Rebuilt for switch to libxcrypt
* Fri Jan 05 2018 Mamoru TASAKA <mtasaka@fedoraproject.org> - 0.8-50
- F-28: rebuild for ruby25
* Mon Nov 20 2017 Tom Callaway <spot@fedoraproject.org> - 0.8-49
- remove non-free ogg sample