[packages/xmms2] - up to 0.6DrMattDestruction; added -input-mp3 and -input-wavpack subpackages

qboosh qboosh at pld-linux.org
Thu Jun 22 22:31:25 CEST 2023


commit 0ebba67d7bf12999715e94b23a5e492110b6dd1d
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Thu Jun 22 22:26:47 2023 +0200

    - up to 0.6DrMattDestruction; added -input-mp3 and -input-wavpack subpackages

 xmms2-boost.patch                  |  85 +++++++++++++++++++++
 xmms2-ffmpeg.patch                 |  84 +++++++++++++--------
 xmms2-format.patch                 |  72 ++++++++++++++++++
 xmms2-mdns-launcher-conflict.patch |  10 ---
 xmms2-perl.patch                   |  15 ++++
 xmms2-ruby.patch                   | 146 +++++++++++++++++--------------------
 xmms2-waf.patch                    |  38 ++--------
 xmms2.spec                         |  78 ++++++++++++++++----
 8 files changed, 362 insertions(+), 166 deletions(-)
---
diff --git a/xmms2.spec b/xmms2.spec
index 8f39d54..e679022 100644
--- a/xmms2.spec
+++ b/xmms2.spec
@@ -2,7 +2,7 @@
 #
 # Conditional build:
 %bcond_with	efl	# ecore client library
-%bcond_with	sdl	# sdlvis client (no build system since 0.2DrJekyll)
+%bcond_without	sdl	# SDL clients
 %bcond_with	java	# Java/JNI module (removed in 0.2DrJekyll)
 %bcond_without	perl	# Perl module
 %bcond_with	python	# Python module (doesn't build with python 2.7)
@@ -12,26 +12,24 @@
 Summary:	Client/server based media player system
 Summary(pl.UTF-8):	System odtwarzania multimediów oparty na architekturze klient/serwer
 Name:		xmms2
-Version:	0.5DrLecter
+Version:	0.6DrMattDestruction
 Release:	0.1
 License:	LGPL v2.1
 Group:		Applications/Sound
 Source0:	https://downloads.sourceforge.net/xmms2/%{name}-%{version}.tar.bz2
-# Source0-md5:	9033ef15be9069ef43aeb4b6360a4d36
+# Source0-md5:	954fb9c76b5db5e324a105e81b273200
 Patch0:		%{name}-tabs.patch
 Patch1:		%{name}-openssl.patch
 Patch2:		%{name}-format.patch
 Patch3:		%{name}-modplug.patch
 Patch4:		%{name}-ffmpeg.patch
 Patch5:		%{name}-ruby.patch
-Patch6:		%{name}-mdns-launcher-conflict.patch
+Patch6:		%{name}-perl.patch
 Patch7:		%{name}-waf.patch
 Patch8:		%{name}-version.patch
+Patch9:		%{name}-boost.patch
+Patch10:	%{name}-link.patch
 URL:		http://xmms2.xmms.se/
-%if %{with sdl}
-BuildRequires:	SDL-devel
-BuildRequires:	SDL_ttf-devel
-%endif
 BuildRequires:	alsa-lib-devel
 BuildRequires:	avahi-devel
 BuildRequires:	avahi-compat-libdns_sd-devel
@@ -53,6 +51,7 @@ BuildRequires:	libmad-devel
 BuildRequires:	libmodplug-devel
 BuildRequires:	libmms-devel
 BuildRequires:	libmpcdec-devel
+BuildRequires:	libmpg123-devel >= 1.5.1
 BuildRequires:	libofa-devel
 BuildRequires:	libogg-devel
 BuildRequires:	libsamplerate-devel
@@ -77,6 +76,11 @@ BuildRequires:	sed >= 4.0
 BuildRequires:	speex-devel
 BuildRequires:	sqlite3-devel >= 3.2
 BuildRequires:	swig >= 1.3.25
+BuildRequires:	wavpack-devel
+%if %{with sdl}
+BuildRequires:	SDL-devel
+BuildRequires:	libvisual-devel
+%endif
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
@@ -297,6 +301,19 @@ This package enables MOD decoding through modplug decoding for xmms2.
 %description input-modplug -l pl.UTF-8
 Ten pakiet umożliwia dekodowanie MOD przez xmms2 poprzez modplug.
 
+%package input-mpg123
+Summary:	mpg123-based MP3 decoder
+Summary(pl.UTF-8):	Oparty na mpg123 dekoder MP3
+Group:		X11/Applications/Sound
+Requires:	%{name} = %{version}-%{release}
+Requires:	libmpg123 >= 1.5.1
+
+%description input-mpg123
+This package enables MP3 decoding for xmms2.
+
+%description input-mpg123 -l pl.UTF-8
+Ten pakiet umożliwia dekodowanie MP3 przez xmms2.
+
 %package input-musepack
 Summary:	MPC decoder
 Summary(pl.UTF-8):	Dekoder MPC
@@ -357,6 +374,18 @@ This package enables WAV decoding for xmms2.
 %description input-wav -l pl.UTF-8
 Ten pakiet umożliwia dekodowanie WAV przez xmms2.
 
+%package input-wavpack
+Summary:	Wavpack decoder
+Summary(pl.UTF-8):	Dekoder Wavpack
+Group:		X11/Applications/Sound
+Requires:	%{name} = %{version}-%{release}
+
+%description input-wavpack
+This package enables wavpack decoding for xmms2.
+
+%description input-wavpack -l pl.UTF-8
+Ten pakiet umożliwia dekodowanie wavpack przez xmms2.
+
 %package output-alsa
 Summary:	ALSA output
 Summary(pl.UTF-8):	Wyjście ALSA
@@ -515,6 +544,8 @@ xmms2.
 %patch6 -p1
 %patch7 -p1
 %patch8 -p1
+%patch9 -p1
+%patch10 -p1
 
 # sanitize version to avoid invalid format in .pc files
 %{__sed} -i -e '/^BASEVERSION=/ s/ \(Dr[^ ]*\)/\1/' wscript
@@ -575,15 +606,20 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_bindir}/xmms2-launcher
 %attr(755,root,root) %{_bindir}/xmms2d
 %attr(755,root,root) %{_libdir}/libxmmsclient.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxmmsclient.so.4
+%attr(755,root,root) %ghost %{_libdir}/libxmmsclient.so.5
+%attr(755,root,root) %{_libdir}/libxmmsclient++.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libxmmsclient++.so.3
 %dir %{_libdir}/%{name}
+%attr(755,root,root) %{_libdir}/%{name}/libxmms_apefile.so
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_asf.so
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_asx.so
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_cue.so
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_diskwrite.so
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_equalizer.so
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_file.so
+%attr(755,root,root) %{_libdir}/%{name}/libxmms_flv.so
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_gme.so
+%attr(755,root,root) %{_libdir}/%{name}/libxmms_html.so
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_icymetaint.so
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_id3v2.so
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_karaoke.so
@@ -594,6 +630,7 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_nulstripper.so
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_pls.so
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_replaygain.so
+%attr(755,root,root) %{_libdir}/%{name}/libxmms_tta.so
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_xml.so
 # XXX: requires libofa, but which kind of plugin is it? (fingerprint)
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_ofa.so
@@ -601,8 +638,6 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_rss.so
 # XXX: requires libxml2, playlist reader
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_xspf.so
-# disabled since 0.2DrEvil ("broken=True")
-#%attr(755,root,root) %{_libdir}/%{name}/libxmms_html.so
 %{_datadir}/%{name}
 %{_pixmapsdir}/xmms2*.png
 %{_pixmapsdir}/xmms2*.svg
@@ -615,12 +650,14 @@ rm -rf $RPM_BUILD_ROOT
 ### clients
 %files client-cli
 %defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/nyxmms2
 %attr(755,root,root) %{_bindir}/xmms2
 %attr(755,root,root) %{_bindir}/xmms2-et
 %attr(755,root,root) %{_bindir}/xmms2-find-avahi
 %attr(755,root,root) %{_bindir}/xmms2-mdns-avahi
 %attr(755,root,root) %{_bindir}/xmms2-mdns-dnssd
 %attr(755,root,root) %{_bindir}/xmms2-mlib-updater
+%{_mandir}/man1/nyxmms2.1*
 %{_mandir}/man1/xmms2.1*
 %{_mandir}/man1/xmms2-et.1*
 %{_mandir}/man1/xmms2-mdns-avahi.1*
@@ -628,7 +665,10 @@ rm -rf $RPM_BUILD_ROOT
 %if %{with sdl}
 %files client-sdlvis
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/sdl-vis
+%attr(755,root,root) %{_bindir}/vistest
+%attr(755,root,root) %{_bindir}/vistest-fft
+%attr(755,root,root) %{_bindir}/xmms2-libvisual
+%attr(755,root,root) %{_bindir}/xmms2-ripper
 %endif
 
 %if %{with efl}
@@ -719,6 +759,10 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_modplug.so
 
+%files input-mpg123
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/libxmms_mpg123.so
+
 %files input-musepack
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_musepack.so
@@ -739,6 +783,10 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_wave.so
 
+%files input-wavpack
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/libxmms_wavpack.so
+
 ### output
 %files output-alsa
 %defattr(644,root,root,755)
@@ -767,8 +815,6 @@ rm -rf $RPM_BUILD_ROOT
 %files transport-curl
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/%{name}/libxmms_curl.so
-%attr(755,root,root) %{_libdir}/%{name}/libxmms_lastfm.so
-%attr(755,root,root) %{_libdir}/%{name}/libxmms_lastfmeta.so
 
 %files transport-daap
 %defattr(644,root,root,755)
@@ -789,12 +835,12 @@ rm -rf $RPM_BUILD_ROOT
 %files devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/libxmmsclient.so
+%attr(755,root,root) %{_libdir}/libxmmsclient++.so
 %attr(755,root,root) %{_libdir}/libxmmsclient-glib.so
 %attr(755,root,root) %{_libdir}/libxmmsclient++-glib.so
 %{_includedir}/xmms2
 %{_pkgconfigdir}/xmms2-client.pc
-# requires old boost.signal
-#%{_pkgconfigdir}/xmms2-client-cpp.pc
+%{_pkgconfigdir}/xmms2-client-cpp.pc
 %{_pkgconfigdir}/xmms2-client-cpp-glib.pc
 %{_pkgconfigdir}/xmms2-client-glib.pc
 %{_pkgconfigdir}/xmms2-plugin.pc
diff --git a/xmms2-boost.patch b/xmms2-boost.patch
new file mode 100644
index 0000000..d892ade
--- /dev/null
+++ b/xmms2-boost.patch
@@ -0,0 +1,85 @@
+--- xmms2-0.6DrMattDestruction/src/include/xmmsclient/xmmsclient++/signal.h.orig	2009-04-21 19:51:11.000000000 +0200
++++ xmms2-0.6DrMattDestruction/src/include/xmmsclient/xmmsclient++/signal.h	2023-06-22 18:59:11.362344508 +0200
+@@ -18,7 +18,7 @@
+ #define XMMSCLIENTPP_SIGNAL_H
+ 
+ #include <xmmsclient/xmmsclient.h>
+-#include <boost/signal.hpp>
++#include <boost/signals2.hpp>
+ #include <string>
+ #include <list>
+ #include <iostream>
+@@ -33,7 +33,7 @@ namespace Xmms
+ 		class Coll;
+ 	}
+ 
+-	typedef boost::signal< bool( const std::string& ) > error_sig;
++	typedef boost::signals2::signal< bool( const std::string& ) > error_sig;
+ 
+ 	/** @class SignalInterface
+ 	 *  This is here only to unify all Signal classes so that they can be
+@@ -54,7 +54,7 @@ namespace Xmms
+ 	template< typename T >
+ 	struct Signal : public SignalInterface
+ 	{
+-		typedef boost::signal< bool( const T& ) > signal_t;
++		typedef boost::signals2::signal< bool( const T& ) > signal_t;
+ 
+ 		error_sig error_signal;
+ 		signal_t signal;
+@@ -67,7 +67,7 @@ namespace Xmms
+ 	template<>
+ 	struct Signal< void > : public SignalInterface
+ 	{
+-		typedef boost::signal< bool() > signal_t;
++		typedef boost::signals2::signal< bool() > signal_t;
+ 
+ 		error_sig error_signal;
+ 		signal_t signal;
+@@ -212,7 +212,7 @@ namespace Xmms
+ 	inline bool
+ 	callSignal( const Signal< void >* sig, xmmsv_t*& /* val */)
+ 	{
+-		return sig->signal();
++		return *sig->signal();
+ 	}
+ 
+ 	/** Called on the notifier udata when an xmmsc_result_t is freed.
+@@ -244,7 +244,7 @@ namespace Xmms
+ 
+ 			std::string error( buf );
+ 			if( !data->error_signal.empty() ) {
+-				ret = data->error_signal( error );
++				ret = *data->error_signal( error );
+ 			}
+ 
+ 		}
+@@ -257,7 +257,7 @@ namespace Xmms
+ 				catch( std::exception& e ) {
+ 
+ 					if( !data->error_signal.empty() ) {
+-						ret = data->error_signal( e.what() );
++						ret = *data->error_signal( e.what() );
+ 					}
+ 
+ 				}
+@@ -272,7 +272,7 @@ namespace Xmms
+ 		return ret;
+ 	}
+ 
+-	typedef boost::signal< void() > DisconnectCallback;
++	typedef boost::signals2::signal< void() > DisconnectCallback;
+ 
+ 	void disconnect_callback( void* userdata );
+ 	/** @endcond INTERNAL */
+--- xmms2-0.6DrMattDestruction/src/include/xmmsclient/xmmsclient++/helpers.h.orig	2009-04-21 19:51:11.000000000 +0200
++++ xmms2-0.6DrMattDestruction/src/include/xmmsclient/xmmsclient++/helpers.h	2023-06-22 18:21:32.241241299 +0200
+@@ -26,7 +26,7 @@
+ 
+ #include <boost/bind.hpp>
+ #include <boost/function.hpp>
+-#include <boost/signal.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/type_traits/remove_pointer.hpp>
+ 
+ #include <string>
diff --git a/xmms2-ffmpeg.patch b/xmms2-ffmpeg.patch
index f993445..50e9ccc 100644
--- a/xmms2-ffmpeg.patch
+++ b/xmms2-ffmpeg.patch
@@ -1,15 +1,6 @@
---- xmms2-0.2DrJekyll/src/plugins/avcodec/avcodec.c.orig	2007-05-20 17:55:40.000000000 +0200
-+++ xmms2-0.2DrJekyll/src/plugins/avcodec/avcodec.c	2023-05-18 18:38:52.423864232 +0200
-@@ -24,7 +24,7 @@
- #include <glib.h>
- 
- #undef ABS
--#include "avcodec.h"
-+#include <libavcodec/avcodec.h>
- 
- #define AVCODEC_BUFFER_SIZE 16384
- 
-@@ -134,7 +134,7 @@ xmms_avcodec_init (xmms_xform_t *xform)
+--- xmms2-0.6DrMattDestruction/src/plugins/avcodec/avcodec.c.orig	2009-04-21 19:51:11.000000000 +0200
++++ xmms2-0.6DrMattDestruction/src/plugins/avcodec/avcodec.c	2023-05-22 09:34:51.481410306 +0200
+@@ -160,7 +160,7 @@ xmms_avcodec_init (xmms_xform_t *xform)
  		goto err;
  	}
  
@@ -18,19 +9,16 @@
  		XMMS_DBG ("Codec '%s' found but its type is not audio", data->codec_id);
  		goto err;
  	}
-@@ -155,9 +155,9 @@ xmms_avcodec_init (xmms_xform_t *xform)
+@@ -219,7 +219,7 @@ xmms_avcodec_init (xmms_xform_t *xform)
+ 	data->codecctx->extradata = data->extradata;
  	data->codecctx->extradata_size = data->extradata_size;
  
- 	/* FIXME: this is for ALAC but can be a different value */
--	data->codecctx->bits_per_sample = 16;
-+	data->codecctx->bits_per_raw_sample = 16;
- 
 -	if (avcodec_open (data->codecctx, codec) < 0) {
 +	if (avcodec_open2 (data->codecctx, codec, NULL) < 0) {
  		XMMS_DBG ("Opening decoder '%s' failed", codec->name);
  		goto err;
  	} else {
-@@ -206,7 +206,6 @@ xmms_avcodec_read (xmms_xform_t *xform,
+@@ -270,7 +270,6 @@ xmms_avcodec_read (xmms_xform_t *xform,
                     xmms_error_t *error)
  {
  	xmms_avcodec_data_t *data;
@@ -38,7 +26,7 @@
  	gint outbufsize, bytes_read = 0;
  	guint size;
  
-@@ -215,6 +214,11 @@ xmms_avcodec_read (xmms_xform_t *xform,
+@@ -279,6 +278,11 @@ xmms_avcodec_read (xmms_xform_t *xform,
  
  	size = MIN (data->outbuf->len, len);
  	while (size == 0) {
@@ -48,15 +36,16 @@
 +		av_init_packet (&packet);
 +
  		if (data->buffer_length == 0) {
- 			bytes_read = xmms_xform_read (xform,
- 			                              (gchar *) data->buffer,
-@@ -232,11 +236,19 @@ xmms_avcodec_read (xmms_xform_t *xform,
- 			data->buffer_length += bytes_read;
+ 			gint read_total;
+ 
+@@ -332,12 +336,19 @@ xmms_avcodec_read (xmms_xform_t *xform,
+ 			data->buffer_length = read_total;
  		}
  
--		bytes_read = avcodec_decode_audio (data->codecctx, (short *) outbuf,
--		                                   &outbufsize, data->buffer,
--		                                   data->buffer_length);
+-		outbufsize = sizeof (outbuf);
+-		bytes_read = avcodec_decode_audio2 (data->codecctx, (short *) outbuf,
+-		                                    &outbufsize, data->buffer_pos,
+-		                                    data->buffer_length);
 +		packet.data = data->buffer;
 +		packet.size = data->buffer_length;
 +
@@ -68,13 +57,13 @@
 +
 +		bytes_read = avcodec_decode_audio4 (data->codecctx, frame, &got_frame, &packet);
  
- 		if (bytes_read < 0) {
+ 		if (bytes_read < 0 || bytes_read > data->buffer_length) {
 +			av_frame_free(&frame);
  			XMMS_DBG ("Error decoding data!");
  			return -1;
- 		} else if (bytes_read == 0) {
-@@ -246,9 +258,11 @@ xmms_avcodec_read (xmms_xform_t *xform,
- 
+ 		}
+@@ -345,9 +356,11 @@ xmms_avcodec_read (xmms_xform_t *xform,
+ 		data->buffer_pos += bytes_read;
  		data->buffer_length -= bytes_read;
  
 -		if (outbufsize > 0) {
@@ -87,3 +76,38 @@
  
  		size = MIN (data->outbuf->len, len);
  	}
+@@ -375,7 +375,6 @@ static gint64
+ xmms_avcodec_seek (xmms_xform_t *xform, gint64 samples, xmms_xform_seek_mode_t whence, xmms_error_t *err)
+ {
+ 	xmms_avcodec_data_t *data;
+-	char outbuf[AVCODEC_MAX_AUDIO_FRAME_SIZE];
+ 	gint outbufsize, bytes_read = 0;
+ 	gint64 ret = -1;
+ 
+@@ -395,10 +394,22 @@ xmms_avcodec_seek (xmms_xform_t *xform,
+ 	/* The buggy ape decoder doesn't flush buffers, so we need to finish decoding
+ 	 * the frame before seeking to avoid segfaults... this hack sucks */
+ 	while (data->buffer_length > 0) {
+-		outbufsize = sizeof (outbuf);
+-		bytes_read = avcodec_decode_audio2 (data->codecctx, (short *) outbuf,
+-		                                    &outbufsize, data->buffer,
+-		                                    data->buffer_length);
++		int got_frame = 0;
++		AVFrame *frame;
++		AVPacket packet;
++		av_init_packet (&packet);
++
++		packet.data = data->buffer;
++		packet.size = data->buffer_length;
++
++		frame = av_frame_alloc();
++		if (frame == NULL) {
++			XMMS_DBG ("AVFrame allocation failed");
++			return -1;
++		}
++
++		bytes_read = avcodec_decode_audio4 (data->codecctx, frame, &got_frame, &packet);
++		av_frame_free(&frame);
+ 
+ 		if (bytes_read < 0 || bytes_read > data->buffer_length) {
+ 			XMMS_DBG ("Error decoding data!");
diff --git a/xmms2-format.patch b/xmms2-format.patch
index 9ebfc65..4c0c95c 100644
--- a/xmms2-format.patch
+++ b/xmms2-format.patch
@@ -9,3 +9,75 @@
  		exit (EXIT_SUCCESS);
  #else
  		g_print ("Please use --help or -? for help\n");
+--- xmms2-0.6DrMattDestruction/src/clients/nycli/column_display.c.orig	2009-04-21 19:51:11.000000000 +0200
++++ xmms2-0.6DrMattDestruction/src/clients/nycli/column_display.c	2023-06-22 20:49:36.616801277 +0200
+@@ -178,11 +178,11 @@ print_fixed_width_string (gchar *value,
+                           column_def_align_t align, gchar padchar)
+ {
+ 	if (align == COLUMN_DEF_ALIGN_LEFT) {
+-		g_printf (value);
++		g_printf ("%s", value);
+ 		print_padding (width - realsize, padchar);
+ 	} else {
+ 		print_padding (width - realsize, padchar);
+-		g_printf (value);
++		g_printf ("%s", value);
+ 	}
+ }
+ 
+@@ -200,7 +200,7 @@ print_string_using_coldef (column_displa
+ 
+ 	case COLUMN_DEF_SIZE_AUTO:
+ 		/* Just print the string */
+-		g_printf (disp->buffer);
++		g_printf ("%s", disp->buffer);
+ 		break;
+ 	}
+ }
+@@ -360,7 +360,7 @@ column_display_print_header (column_disp
+ 	/* Display column headers */
+ 	for (i = 0; i < disp->cols->len; ++i) {
+ 		coldef = g_array_index (disp->cols, column_def_t *, i);
+-		realsize = g_snprintf (disp->buffer, coldef->size + 1, coldef->name);
++		realsize = g_snprintf (disp->buffer, coldef->size + 1, "%s", coldef->name);
+ 		print_fixed_width_string (disp->buffer, coldef->size, realsize,
+ 		                          coldef->align, ' ');
+ 	}
+@@ -524,7 +524,7 @@ column_display_render_text (column_displ
+ 	gint realsize;
+ 	const gchar *sep = coldef->name;
+ 
+-	realsize = g_printf (sep);
++	realsize = g_printf ("%s", sep);
+ 
+ 	return realsize;
+ }
+@@ -545,7 +545,7 @@ column_display_render_time (column_displ
+ 		break;
+ 	default:
+ 		/* Invalid type, don't render anything*/
+-		return;
++		return 0;
+ 	}
+ 
+ 	time = format_time (millisecs, FALSE);
+@@ -557,7 +557,7 @@ column_display_render_time (column_displ
+ 	 * alignment and overflow termwidth if strlen(time) > coldef->size,
+ 	 * but it's a temporary fix to avoid displaying a wrong time.
+ 	 */
+-	realsize = g_snprintf (disp->buffer, disp->termwidth + 1, time);
++	realsize = g_snprintf (disp->buffer, disp->termwidth + 1, "%s", time);
+ 	print_string_using_coldef (disp, coldef, realsize);
+ 
+ 	g_free (time);
+--- xmms2-0.6DrMattDestruction/src/clients/lib/ruby/rb_xmmsclient.c.orig	2023-06-22 20:50:00.663337673 +0200
++++ xmms2-0.6DrMattDestruction/src/clients/lib/ruby/rb_xmmsclient.c	2023-06-22 20:53:19.725592593 +0200
+@@ -166,7 +166,7 @@ c_connect (int argc, VALUE *argv, VALUE
+ 		snprintf (buf, sizeof (buf), "cannot connect to daemon (%s)\n",
+ 		          xmmsc_get_last_error (xmms->real));
+ 
+-		rb_raise (eClientError, buf);
++		rb_raise (eClientError, "%s", buf);
+ 	}
+ 
+ 	return self;
diff --git a/xmms2-mdns-launcher-conflict.patch b/xmms2-mdns-launcher-conflict.patch
deleted file mode 100644
index c2b8377..0000000
--- a/xmms2-mdns-launcher-conflict.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- xmms2-0.5DrLecter/src/clients/mdns/dns_sd/wscript.orig	2023-05-21 15:05:21.078719788 +0200
-+++ xmms2-0.5DrLecter/src/clients/mdns/dns_sd/wscript	2023-05-21 15:06:42.958276208 +0200
-@@ -17,7 +17,6 @@ def build(bld):
-   obj = bld.create_obj('subst')
-   obj.source = 'xmms2-mdns-launcher.sh.in'
-   obj.dict = {'PRG_PATH' : env['BINDIR']}
--  Common.install_files('SCRIPTDIR', None, 'xmms2-mdns-launcher.sh', chmod=0755)
- 
- def configure(conf):
-   conf.env['explicit_dnssd'] = True
diff --git a/xmms2-perl.patch b/xmms2-perl.patch
new file mode 100644
index 0000000..1ea0ee6
--- /dev/null
+++ b/xmms2-perl.patch
@@ -0,0 +1,15 @@
+--- xmms2-0.6DrMattDestruction/src/clients/lib/perl/wscript.orig	2009-04-21 19:51:11.000000000 +0200
++++ xmms2-0.6DrMattDestruction/src/clients/lib/perl/wscript	2023-06-22 21:52:44.209615459 +0200
+@@ -17,9 +17,9 @@ def build(bld):
+     obj.mac_bundle = True
+ 
+     bld.install_files('${INSTALLDIR_PERL_LIB}', 'pm/XMMSClient.pm')
+-    bld.install_files('${INSTALLDIR_PERL_LIB}', 'pm/XMMSClient/Sync.pm')
+-    bld.install_files('${INSTALLDIR_PERL_LIB}', 'pm/XMMSClient/Glib.pm')
+-    bld.install_files('${INSTALLDIR_PERL_LIB}', 'pm/XMMSClient/Collection.pm')
++    bld.install_files('${INSTALLDIR_PERL_LIB}/XMMSClient', 'pm/XMMSClient/Sync.pm')
++    bld.install_files('${INSTALLDIR_PERL_LIB}/XMMSClient', 'pm/XMMSClient/Glib.pm')
++    bld.install_files('${INSTALLDIR_PERL_LIB}/XMMSClient', 'pm/XMMSClient/Collection.pm')
+ 
+ def configure(conf):
+     conf.check_tool('perl')
diff --git a/xmms2-ruby.patch b/xmms2-ruby.patch
index e856036..8391182 100644
--- a/xmms2-ruby.patch
+++ b/xmms2-ruby.patch
@@ -1,82 +1,71 @@
---- xmms2-0.5DrLecter/src/clients/lib/ruby/wscript.orig	2023-05-21 14:20:34.466607748 +0200
-+++ xmms2-0.5DrLecter/src/clients/lib/ruby/wscript	2023-05-21 14:57:59.467778866 +0200
-@@ -56,25 +56,25 @@ def configure(conf):
-     conf.check_message('ruby version', '> 1.8', True, version_str)
- 
-     if version == [1, 8]: # Ruby 1.8
--        ruby_h = os.popen(ruby + " -rrbconfig -e 'puts File.exist?(Config::CONFIG[\"archdir\"] + \"/ruby.h\")'").read().strip()
-+        ruby_h = os.popen(ruby + " -rrbconfig -e 'puts File.exist?(RbConfig::CONFIG[\"archdir\"] + \"/ruby.h\")'").read().strip()
-     else: # Ruby 1.9
--        ruby_h = os.popen(ruby + " -rrbconfig -e 'puts File.exist?(Config::CONFIG[\"rubyhdrdir\"] + \"/ruby.h\")'").read().strip()
-+        ruby_h = os.popen(ruby + " -rrbconfig -e 'puts File.exist?(RbConfig::CONFIG[\"rubyhdrdir\"] + \"/ruby.h\")'").read().strip()
+--- xmms2-0.6DrMattDestruction/waftools/ruby.py.orig	2009-04-21 19:51:11.000000000 +0200
++++ xmms2-0.6DrMattDestruction/waftools/ruby.py	2023-05-22 09:39:14.409985899 +0200
+@@ -62,9 +62,9 @@ def check_ruby_ext_devel(conf):
+     version = conf.env['RUBY_VERSION']
+ 
+     if version >= (1, 9, 0):
+-        ruby_h = Utils.cmd_output(ruby + " -rrbconfig -e 'puts File.exist?(Config::CONFIG[\"rubyhdrdir\"] + \"/ruby.h\")'").strip()
++        ruby_h = Utils.cmd_output(ruby + " -rrbconfig -e 'puts File.exist?(RbConfig::CONFIG[\"rubyhdrdir\"] + \"/ruby.h\")'").strip()
+     elif version >= (1, 8, 0):
+-        ruby_h = Utils.cmd_output(ruby + " -rrbconfig -e 'puts File.exist?(Config::CONFIG[\"archdir\"] + \"/ruby.h\")'").strip()
++        ruby_h = Utils.cmd_output(ruby + " -rrbconfig -e 'puts File.exist?(RbConfig::CONFIG[\"archdir\"] + \"/ruby.h\")'").strip()
+ 
      if ruby_h != 'true':
          conf.check_message('ruby', 'header file', False)
-         return False
+@@ -72,18 +72,18 @@ def check_ruby_ext_devel(conf):
+ 
      conf.check_message('ruby', 'header file', True)
  
--    dir = os.popen(ruby + " -rrbconfig -e 'puts \"%s\" % [].fill(Config::CONFIG[\"archdir\"], 0..1)'").read().strip()
-+    dir = os.popen(ruby + " -rrbconfig -e 'puts \"%s\" % [].fill(RbConfig::CONFIG[\"archdir\"], 0..1)'").read().strip()
-     conf.env["CPPPATH_ruby"] = [dir]
-     conf.env["LINKFLAGS_ruby"] = '-L%s' % dir
- 
--    if version == [1, 9]: # Ruby 1.9
--        hdir = os.popen(ruby + " -rrbconfig -e 'puts Config::CONFIG[\"rubyhdrdir\"]'").read().strip()
-+    if version >= [1, 9]: # Ruby 1.9
-+        hdir = os.popen(ruby + " -rrbconfig -e 'puts RbConfig::CONFIG[\"rubyhdrdir\"]'").read().strip()
-         conf.env["CPPPATH_ruby"] += [hdir, os.path.join(hdir, "ruby")]
--        hdir = os.popen(ruby + " -rrbconfig -e 'puts File.join(Config::CONFIG[\"rubyhdrdir\"], Config::CONFIG[\"arch\"])'").read().strip()
-+        hdir = os.popen(ruby + " -rrbconfig -e 'puts File.join(RbConfig::CONFIG[\"rubyhdrdir\"], RbConfig::CONFIG[\"arch\"])'").read().strip()
-         conf.env["CPPPATH_ruby"] += [hdir]
- 
--    lib = os.popen(ruby + " -rrbconfig -e 'print Config::CONFIG[\"RUBY_SO_NAME\"]'").read().strip()
-+    lib = os.popen(ruby + " -rrbconfig -e 'print RbConfig::CONFIG[\"RUBY_SO_NAME\"]'").read().strip()
- 
-     # Check for rb_protect_inspect for our inspect methods.
-     test = conf.create(enumerator='function')
-@@ -86,7 +86,7 @@ def configure(conf):
-     if test.run():
-         conf.env['CCDEFINES_ruby'] = ['HAVE_PROTECT_INSPECT']
- 
--    ldflags = os.popen(ruby + " -rrbconfig -e 'print Config::CONFIG[\"LDSHARED\"]'").read().strip()
-+    ldflags = os.popen(ruby + " -rrbconfig -e 'print RbConfig::CONFIG[\"LDSHARED\"]'").read().strip()
+-    archdir = Utils.cmd_output(ruby + " -rrbconfig -e 'puts \"%s\" % [].fill(Config::CONFIG[\"archdir\"], 0..1)'").strip()
++    archdir = Utils.cmd_output(ruby + " -rrbconfig -e 'puts \"%s\" % [].fill(RbConfig::CONFIG[\"archdir\"], 0..1)'").strip()
+     conf.env["CPPPATH_ruby"] = [archdir]
+     conf.env["LINKFLAGS_ruby"] = '-L%s' % archdir
+ 
+     if version >= (1, 9, 0):
+-        incpaths = Utils.cmd_output(ruby + " -rrbconfig -e 'puts Config::CONFIG[\"rubyhdrdir\"]'").strip()
++        incpaths = Utils.cmd_output(ruby + " -rrbconfig -e 'puts RbConfig::CONFIG[\"rubyhdrdir\"]'").strip()
+         conf.env["CPPPATH_ruby"] += [incpaths]
+ 
+-        incpaths = Utils.cmd_output(ruby + " -rrbconfig -e 'puts File.join(Config::CONFIG[\"rubyhdrdir\"], Config::CONFIG[\"arch\"])'").strip()
++        incpaths = Utils.cmd_output(ruby + " -rrbconfig -e 'puts File.join(RbConfig::CONFIG[\"rubyhdrdir\"], RbConfig::CONFIG[\"arch\"])'").strip()
+         conf.env["CPPPATH_ruby"] += [incpaths]
+ 
+-    ldflags = Utils.cmd_output(ruby + " -rrbconfig -e 'print Config::CONFIG[\"LDSHARED\"]'").strip()
++    ldflags = Utils.cmd_output(ruby + " -rrbconfig -e 'print RbConfig::CONFIG[\"LDSHARED\"]'").strip()
+ 
      # ok this is really stupid, but the command and flags are combined.
      # so we try to find the first argument...
-     flags = ldflags.split()
-@@ -94,21 +94,21 @@ def configure(conf):
-         flags = flags[1:]
-     conf.env["LINKFLAGS_ruby"] += " "+" ".join(flags)
- 
--    ldflags = os.popen(ruby + " -rrbconfig -e 'print Config::CONFIG[\"LIBS\"]'").read().strip()
-+    ldflags = os.popen(ruby + " -rrbconfig -e 'print RbConfig::CONFIG[\"LIBS\"]'").read().strip()
-     conf.env["LINKFLAGS_ruby"] += " "+ldflags
--    ldflags = os.popen(ruby + " -rrbconfig -e 'print Config::CONFIG[\"LIBRUBYARG_SHARED\"]'").read().strip()
-+    ldflags = os.popen(ruby + " -rrbconfig -e 'print RbConfig::CONFIG[\"LIBRUBYARG_SHARED\"]'").read().strip()
-     conf.env["LINKFLAGS_ruby"] += " "+ldflags
- 
--    cflags = os.popen(ruby + " -rrbconfig -e 'print Config::CONFIG[\"CCDLFLAGS\"]'").read().strip()
-+    cflags = os.popen(ruby + " -rrbconfig -e 'print RbConfig::CONFIG[\"CCDLFLAGS\"]'").read().strip()
+@@ -97,25 +97,25 @@ def check_ruby_ext_devel(conf):
+ 
+     conf.env["LINKFLAGS_ruby"] += " " + " ".join(flags)
+ 
+-    ldflags = Utils.cmd_output(ruby + " -rrbconfig -e 'print Config::CONFIG[\"LIBS\"]'").strip()
++    ldflags = Utils.cmd_output(ruby + " -rrbconfig -e 'print RbConfig::CONFIG[\"LIBS\"]'").strip()
+     conf.env["LINKFLAGS_ruby"] += " " + ldflags
+-    ldflags = Utils.cmd_output(ruby + " -rrbconfig -e 'print Config::CONFIG[\"LIBRUBYARG_SHARED\"]'").strip()
++    ldflags = Utils.cmd_output(ruby + " -rrbconfig -e 'print RbConfig::CONFIG[\"LIBRUBYARG_SHARED\"]'").strip()
+     conf.env["LINKFLAGS_ruby"] += " " + ldflags
+ 
+-    cflags = Utils.cmd_output(ruby + " -rrbconfig -e 'print Config::CONFIG[\"CCDLFLAGS\"]'").strip()
++    cflags = Utils.cmd_output(ruby + " -rrbconfig -e 'print RbConfig::CONFIG[\"CCDLFLAGS\"]'").strip()
      conf.env["CCFLAGS_ruby"] = cflags
  
-     if not Params.g_options.rubyarchdir:
--        conf.env["ARCHDIR_ruby"] = os.popen(ruby + " -rrbconfig -e 'print Config::CONFIG[\"sitearchdir\"]'").read().strip()
-+        conf.env["ARCHDIR_ruby"] = os.popen(ruby + " -rrbconfig -e 'print RbConfig::CONFIG[\"sitearchdir\"]'").read().strip()
+     if Options.options.rubyarchdir:
+         conf.env["ARCHDIR_ruby"] = Options.options.rubyarchdir
      else:
-         conf.env["ARCHDIR_ruby"] = Params.g_options.rubyarchdir
+-        conf.env["ARCHDIR_ruby"] = Utils.cmd_output(ruby + " -rrbconfig -e 'print Config::CONFIG[\"sitearchdir\"]'").strip()
++        conf.env["ARCHDIR_ruby"] = Utils.cmd_output(ruby + " -rrbconfig -e 'print RbConfig::CONFIG[\"sitearchdir\"]'").strip()
  
-     if not Params.g_options.rubylibdir:
--        conf.env["LIBDIR_ruby"] = os.popen(ruby + " -rrbconfig -e 'print Config::CONFIG[\"sitelibdir\"]'").read().strip()
-+        conf.env["LIBDIR_ruby"] = os.popen(ruby + " -rrbconfig -e 'print RbConfig::CONFIG[\"sitelibdir\"]'").read().strip()
+     if Options.options.rubylibdir:
+         conf.env["LIBDIR_ruby"] = Options.options.rubylibdir
      else:
-         conf.env["LIBDIR_ruby"] = Params.g_options.rubylibdir
+-        conf.env["LIBDIR_ruby"] = Utils.cmd_output(ruby + " -rrbconfig -e 'print Config::CONFIG[\"sitelibdir\"]'").strip()
++        conf.env["LIBDIR_ruby"] = Utils.cmd_output(ruby + " -rrbconfig -e 'print RbConfig::CONFIG[\"sitelibdir\"]'").strip()
  
-@@ -123,7 +123,7 @@ def configure(conf):
-                 + 'ruby bindings to be installed to ' + conf.env['LIBDIR_ruby'])
+-    conf.env['rubyext_PATTERN'] = '%s.' + Utils.cmd_output(ruby + " -rrbconfig -e 'print Config::CONFIG[\"DLEXT\"]'").strip()
++    conf.env['rubyext_PATTERN'] = '%s.' + Utils.cmd_output(ruby + " -rrbconfig -e 'print RbConfig::CONFIG[\"DLEXT\"]'").strip()
  
-     conf.env["rubyext_PREFIX"] = ''
--    conf.env["rubyext_SUFFIX"] = '.' + os.popen(ruby + " -rrbconfig -e 'print Config::CONFIG[\"DLEXT\"]'").read().strip()
-+    conf.env["rubyext_SUFFIX"] = '.' + os.popen(ruby + " -rrbconfig -e 'print RbConfig::CONFIG[\"DLEXT\"]'").read().strip()
-     conf.env["rubyext_USELIB"] = "ruby"
-     conf.env["rubyext_obj_ext"] = conf.env["shlib_obj_ext"]
+     return True
  
 --- xmms2-0.2DrJekyll/src/clients/lib/ruby/rb_xmmsclient.c.orig	2023-05-14 19:24:29.670968613 +0200
 +++ xmms2-0.2DrJekyll/src/clients/lib/ruby/rb_xmmsclient.c	2023-05-14 19:29:16.606080819 +0200
@@ -94,22 +83,19 @@
  
  		ret[i] = NULL;
  	} else {
---- xmms2-0.2DrJekyll/src/clients/lib/ruby/rb_playlist.c.orig	2007-05-20 17:55:40.000000000 +0200
-+++ xmms2-0.2DrJekyll/src/clients/lib/ruby/rb_playlist.c	2023-05-18 20:59:44.461066374 +0200
-@@ -301,10 +301,10 @@ c_sort (VALUE self, VALUE props)
- 	if (!NIL_P (props = rb_check_array_type (props))) {
- 		ary = RARRAY (props);
- 
--		cprops = malloc (sizeof (char *) * (ary->len + 1));
-+		cprops = malloc (sizeof (char *) * (RARRAY_LEN(ary) + 1));
+@@ -1451,10 +1451,10 @@ parse_string_array2 (VALUE value)
+ 		struct RArray *ary = RARRAY (value);
+ 		int i;
  
--		for (i = 0; i < ary->len; i++)
--			cprops[i] = StringValuePtr (ary->ptr[i]);
-+		for (i = 0; i < RARRAY_LEN(ary); i++)
-+			cprops[i] = StringValuePtr (RARRAY_PTR(ary)[i]);
+-		for (i = 0; i < ary->len; i++) {
++		for (i = 0; i < RARRAY_LEN(ary); i++) {
+ 			xmmsv_t *elem;
  
- 		cprops[i] = NULL;
- 	} else if (!NIL_P (rb_check_string_type (props))) {
+-			elem = xmmsv_new_string (StringValuePtr (ary->ptr[i]));
++			elem = xmmsv_new_string (StringValuePtr (RARRAY_PTR(ary)[i]));
+ 			xmmsv_list_append (list, elem);
+ 			xmmsv_unref (elem);
+ 		}
 --- xmms2-0.5DrLecter/src/clients/lib/ruby/rb_collection.c.orig	2008-06-15 19:31:38.000000000 +0200
 +++ xmms2-0.5DrLecter/src/clients/lib/ruby/rb_collection.c	2023-05-21 15:05:06.452132360 +0200
 @@ -241,10 +241,10 @@ c_coll_idlist_set (VALUE self, VALUE ids
diff --git a/xmms2-waf.patch b/xmms2-waf.patch
index cd626a3..91c4257 100644
--- a/xmms2-waf.patch
+++ b/xmms2-waf.patch
@@ -1,17 +1,6 @@
---- xmms2-0.2DrJekyll/src/xmms/wscript.orig	2007-05-20 17:55:40.000000000 +0200
-+++ xmms2-0.2DrJekyll/src/xmms/wscript	2023-05-15 20:02:20.740596198 +0200
-@@ -70,7 +70,7 @@ def configure(conf):
- 
-     # Check for the sin function in the math lib
-     test = conf.create(enumerator='function')
--    test.function = 'sin'
-+    test.function = 'sinf'
-     test.headers = ['math.h']
-     test.libs = ['m']
-     test.mandatory = 1
---- xmms2-0.5DrLecter/wscript.orig	2023-05-21 15:07:01.128177773 +0200
-+++ xmms2-0.5DrLecter/wscript	2023-05-21 15:45:58.645514355 +0200
-@@ -261,8 +261,6 @@ def configure(conf):
+--- xmms2-0.6DrMattDestruction/wscript.orig	2009-04-21 19:51:11.000000000 +0200
++++ xmms2-0.6DrMattDestruction/wscript	2023-05-22 10:12:54.089044360 +0200
+@@ -278,8 +278,6 @@ def configure(conf):
          conf.check_message("uncommitted changes", "", bool(changed))
          conf.env["VERSION"] = BASEVERSION + " (git commit: %s%s)" % (nam, dirty)
  
@@ -20,26 +9,15 @@
      conf.env['XMMS_PKGCONF_FILES'] = []
      conf.env['XMMS_OUTPUT_PLUGINS'] = [(-1, "NONE")]
  
-@@ -282,7 +282,7 @@ def configure(conf):
-         conf.env['PKGCONFIGDIR'] = Params.g_options.pkgconfigdir
-         print conf.env['PKGCONFIGDIR']
+@@ -297,7 +295,7 @@ def configure(conf):
+         conf.env['PKGCONFIGDIR'] = Options.options.pkgconfigdir
+         print(conf.env['PKGCONFIGDIR'])
      else:
 -        conf.env['PKGCONFIGDIR'] = os.path.join(conf.env["PREFIX"], "lib", "pkgconfig")
 +        conf.env['PKGCONFIGDIR'] = os.path.join(conf.env["LIBDIR"], "pkgconfig")
  
-     if Params.g_options.config_prefix:
-         for dir in Params.g_options.config_prefix:
---- xmms2-0.5DrLecter/waftools/pkgconfig.py.orig	2023-05-21 15:46:27.778689861 +0200
-+++ xmms2-0.5DrLecter/waftools/pkgconfig.py	2023-05-21 16:20:48.307527018 +0200
-@@ -20,7 +20,7 @@ class pkgcobj(copyobj):
-             p = self.env["PREFIX"]
-             val["PREFIX"] = p
-             val["BINDIR"] = os.path.join("${prefix}", "bin")
--            val["LIBDIR"] = os.path.join("${prefix}", "lib")
-+            val["LIBDIR"] = self.env["LIBDIR"]
-             val["INCLUDEDIR"] = os.path.join("${prefix}", "include", "xmms2")
-             val["VERSION"] = self.env["VERSION"]
- 
+     if Options.options.config_prefix:
+         for dir in Options.options.config_prefix:
 --- xmms2-0.5DrLecter/src/include/xmms/wscript.orig	2023-05-21 15:46:27.778689861 +0200
 +++ xmms2-0.5DrLecter/src/include/xmms/wscript	2023-05-21 16:22:50.510198323 +0200
 @@ -12,8 +12,8 @@ def configure(conf):
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/xmms2.git/commitdiff/0ebba67d7bf12999715e94b23a5e492110b6dd1d



More information about the pld-cvs-commit mailing list