diff --git a/sources b/sources index e69de29..f74f952 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +b615fd8396ea5469d618081c2dd802ff xmms2-0.5DrLecter-clean.tar.bz2 diff --git a/xmms2-0.5DrLecter-moresaneversioning.patch b/xmms2-0.5DrLecter-moresaneversioning.patch new file mode 100644 index 0000000..ea8a6e9 --- /dev/null +++ b/xmms2-0.5DrLecter-moresaneversioning.patch @@ -0,0 +1,36 @@ +diff -up xmms2-0.5DrLecter/wscript.versionsanity xmms2-0.5DrLecter/wscript +--- xmms2-0.5DrLecter/wscript.versionsanity 2008-12-10 15:22:56.000000000 -0500 ++++ xmms2-0.5DrLecter/wscript 2008-12-10 15:27:09.000000000 -0500 +@@ -23,7 +23,7 @@ import Object + import Utils + import Common + +-BASEVERSION="0.5 DrLecter" ++BASEVERSION="0.5" + APPNAME='xmms2' + + srcdir='.' +@@ -252,14 +252,15 @@ def configure(conf): + + nam,changed = gittools.get_info() + conf.check_message("git commit id", "", True, nam) +- if Params.g_options.customversion: +- conf.env["VERSION"] = BASEVERSION + " (%s + %s)" % (nam, Params.g_options.customversion) +- else: +- dirty="" +- if changed: +- dirty="-dirty" +- conf.check_message("uncommitted changes", "", bool(changed)) +- conf.env["VERSION"] = BASEVERSION + " (git commit: %s%s)" % (nam, dirty) ++ ## if Params.g_options.customversion: ++ ## conf.env["VERSION"] = BASEVERSION + " (%s + %s)" % (nam, Params.g_options.customversion) ++ ## else: ++ ## dirty="" ++ ## if changed: ++ ## dirty="-dirty" ++ ## conf.check_message("uncommitted changes", "", bool(changed)) ++ ## conf.env["VERSION"] = BASEVERSION + " (git commit: %s%s)" % (nam, dirty) ++ conf.env["VERSION"] = BASEVERSION + + ## conf.env["CCFLAGS"] = Utils.to_list(conf.env["CCFLAGS"]) + ['-g', '-O0'] + ## conf.env["CXXFLAGS"] = Utils.to_list(conf.env["CXXFLAGS"]) + ['-g', '-O0'] diff --git a/xmms2-0.5DrLecter-no-O0.patch b/xmms2-0.5DrLecter-no-O0.patch new file mode 100644 index 0000000..227776e --- /dev/null +++ b/xmms2-0.5DrLecter-no-O0.patch @@ -0,0 +1,14 @@ +diff -up xmms2-0.5DrLecter/wscript.BAD xmms2-0.5DrLecter/wscript +--- xmms2-0.5DrLecter/wscript.BAD 2008-12-10 15:04:53.000000000 -0500 ++++ xmms2-0.5DrLecter/wscript 2008-12-10 15:05:09.000000000 -0500 +@@ -261,8 +261,8 @@ def configure(conf): + conf.check_message("uncommitted changes", "", bool(changed)) + conf.env["VERSION"] = BASEVERSION + " (git commit: %s%s)" % (nam, dirty) + +- conf.env["CCFLAGS"] = Utils.to_list(conf.env["CCFLAGS"]) + ['-g', '-O0'] +- conf.env["CXXFLAGS"] = Utils.to_list(conf.env["CXXFLAGS"]) + ['-g', '-O0'] ++ ## conf.env["CCFLAGS"] = Utils.to_list(conf.env["CCFLAGS"]) + ['-g', '-O0'] ++ ## conf.env["CXXFLAGS"] = Utils.to_list(conf.env["CXXFLAGS"]) + ['-g', '-O0'] + conf.env['XMMS_PKGCONF_FILES'] = [] + conf.env['XMMS_OUTPUT_PLUGINS'] = [(-1, "NONE")] + diff --git a/xmms2-0.5DrLecter-pulse-output-default.patch b/xmms2-0.5DrLecter-pulse-output-default.patch new file mode 100644 index 0000000..3b1aebd --- /dev/null +++ b/xmms2-0.5DrLecter-pulse-output-default.patch @@ -0,0 +1,9 @@ +diff -up xmms2-0.5DrLecter/src/plugins/pulse/wscript.BAD xmms2-0.5DrLecter/src/plugins/pulse/wscript +--- xmms2-0.5DrLecter/src/plugins/pulse/wscript.BAD 2008-12-05 11:49:32.000000000 -0500 ++++ xmms2-0.5DrLecter/src/plugins/pulse/wscript 2008-12-05 11:49:50.000000000 -0500 +@@ -5,4 +5,4 @@ def plugin_configure(conf): + + configure, build = plugin('pulse', configure=plugin_configure, + source=['pulse.c', 'backend.c'], +- extra_libs=['libpulse'], output_prio=25) ++ extra_libs=['libpulse'], output_prio=45) diff --git a/xmms2-0.5DrLecter-use-libdir.patch b/xmms2-0.5DrLecter-use-libdir.patch new file mode 100644 index 0000000..fd16f99 --- /dev/null +++ b/xmms2-0.5DrLecter-use-libdir.patch @@ -0,0 +1,25 @@ +diff -up xmms2-0.5DrLecter/src/include/xmms/wscript.BAD xmms2-0.5DrLecter/src/include/xmms/wscript +--- xmms2-0.5DrLecter/src/include/xmms/wscript.BAD 2008-12-04 16:28:12.000000000 -0500 ++++ xmms2-0.5DrLecter/src/include/xmms/wscript 2008-12-04 16:28:44.000000000 -0500 +@@ -12,8 +12,7 @@ def configure(conf): + + defs = {} + +- defs['PKGLIBDIR'] = os.path.join(conf.env['PREFIX'], +- 'lib', 'xmms2') ++ defs['PKGLIBDIR'] = os.path.join(conf.env['LIBDIR'], 'xmms2') + defs['BINDIR'] = conf.env['BINDIR'] + defs['SHAREDDIR'] = os.path.join(conf.env['PREFIX'], + 'share', 'xmms2') +diff -up xmms2-0.5DrLecter/wafadmin/Tools/python.py.BAD xmms2-0.5DrLecter/wafadmin/Tools/python.py +--- xmms2-0.5DrLecter/wafadmin/Tools/python.py.BAD 2008-12-04 16:36:29.000000000 -0500 ++++ xmms2-0.5DrLecter/wafadmin/Tools/python.py 2008-12-04 16:36:41.000000000 -0500 +@@ -211,7 +211,7 @@ def check_python_version(conf, minver=No + else: + python_LIBDEST = None + if python_LIBDEST is None: +- python_LIBDEST = os.path.join(conf.env['PREFIX'], "lib", "python" + pyver) ++ python_LIBDEST = os.path.join(conf.env['LIBDIR'], "python" + pyver) + dir = os.path.join(python_LIBDEST, "site-packages") + + conf.add_define('PYTHONDIR', dir) diff --git a/xmms2-client-launcher.sh b/xmms2-client-launcher.sh new file mode 100644 index 0000000..ee93c56 --- /dev/null +++ b/xmms2-client-launcher.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Copyright 2008 Tom "spot" Callaway +# Permission to use, copy, modify, distribute, and sell this software and its +# documentation for any purpose is hereby granted without fee, provided that +# the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation. No representations are made about the suitability of this +# software for any purpose. It is provided "as is" without express or +# implied warranty. +# +# Ensure that xmms2d is running before the client. + +PIDFILE=/var/tmp/xmms2d +ARGS=1 + +if [ $# -ne "$ARGS" ]; then + echo "Usage: `basename $0` xmms2-client" + exit 65 +fi + +if [ -f $PIDFILE ]; then + # Okay, we found the pidfile + XMMS2PID=`cat $PIDFILE` + XMMS2DINPS=`ps $XMMS2PID |grep xmms2d` + if [ -z "$XMMS2DINPS" ]; then + xmms2-launcher -P $PIDFILE &> /dev/null + fi +else + # Okay, so the pid file isn't there. Launch xmms2d anyway. + xmms2-launcher -P $PIDFILE &> /dev/null +fi + +$1 diff --git a/xmms2-devel.git-054a12d54325820c8d31e482193007af0ed15be3.patch b/xmms2-devel.git-054a12d54325820c8d31e482193007af0ed15be3.patch new file mode 100644 index 0000000..cf0b191 --- /dev/null +++ b/xmms2-devel.git-054a12d54325820c8d31e482193007af0ed15be3.patch @@ -0,0 +1,23 @@ +From: Jonne Lehtinen +Date: Thu, 14 Aug 2008 11:00:30 +0000 (+0300) +Subject: BUG(2022): link speex plugin with libogg. +X-Git-Url: http://git.xmms.se/?p=xmms2-devel.git;a=commitdiff_plain;h=054a12d54325820c8d31e482193007af0ed15be3 + +BUG(2022): link speex plugin with libogg. +--- + +diff --git a/src/plugins/speex/wscript b/src/plugins/speex/wscript +index 1fa8821..5336a7d 100644 +--- a/src/plugins/speex/wscript ++++ b/src/plugins/speex/wscript +@@ -1,6 +1,8 @@ + from waftools.plugin import plugin + + def plugin_configure(conf): +- return conf.check_pkg('speex', destvar='speex') ++ return (conf.check_pkg('speex', destvar='speex') and ++ conf.check_pkg('ogg', destvar='ogg')) + +-configure, build = plugin('speex', needs_lib=True, configure=plugin_configure) ++configure, build = plugin('speex', needs_lib=True, configure=plugin_configure, ++ extra_libs=['ogg']) diff --git a/xmms2-devel.git-37578b59f5d7376213da74b3bf6b7c7f430d0bc9.patch b/xmms2-devel.git-37578b59f5d7376213da74b3bf6b7c7f430d0bc9.patch new file mode 100644 index 0000000..c054976 --- /dev/null +++ b/xmms2-devel.git-37578b59f5d7376213da74b3bf6b7c7f430d0bc9.patch @@ -0,0 +1,23 @@ +From: Daniel Chokola +Date: Tue, 22 Jul 2008 14:21:36 +0000 (-0400) +Subject: BUG(1998): use XMMS_PATH_MAX in helpers.h +X-Git-Url: http://git.xmms.se/?p=xmms2-devel.git;a=commitdiff_plain;h=37578b59f5d7376213da74b3bf6b7c7f430d0bc9 + +BUG(1998): use XMMS_PATH_MAX in helpers.h +--- + +diff --git a/src/include/xmmsclient/xmmsclient++/helpers.h b/src/include/xmmsclient/xmmsclient++/helpers.h +index b131575..f237231 100644 +--- a/src/include/xmmsclient/xmmsclient++/helpers.h ++++ b/src/include/xmmsclient/xmmsclient++/helpers.h +@@ -44,8 +44,8 @@ namespace Xmms + */ + inline std::string getUserConfDir() { + +- char buf[PATH_MAX] = { '\0' }; +- if( !xmmsc_userconfdir_get( buf, PATH_MAX ) ) { ++ char buf[XMMS_PATH_MAX] = { '\0' }; ++ if( !xmmsc_userconfdir_get( buf, XMMS_PATH_MAX ) ) { + throw Xmms::result_error( "Error occured when trying to get " + "user config directory." ); + } diff --git a/xmms2.spec b/xmms2.spec new file mode 100644 index 0000000..681a709 --- /dev/null +++ b/xmms2.spec @@ -0,0 +1,188 @@ +%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} +%{!?ruby_sitearch: %define ruby_sitearch %(ruby -rrbconfig -e 'puts Config::CONFIG["sitearchdir"] ')} + +%define codename DrLecter + +Name: xmms2 +Summary: A modular audio framework and plugin architecture +Version: 0.5 +Release: 2%{?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. +# http://downloads.sourceforge.net/xmms2/%{name}-%{version}%{codename}.tar.bz2 +# Cleaning it is simple, just rm -rf src/plugins/mp4 +Source0: %{name}-%{version}%{codename}-clean.tar.bz2 +Source1: xmms2-client-launcher.sh +# From upstream git (Compilation fixes) +Patch0: xmms2-devel.git-37578b59f5d7376213da74b3bf6b7c7f430d0bc9.patch +# Use libdir properly for Fedora multilib +Patch1: xmms2-0.5DrLecter-use-libdir.patch +# Set default output to pulse +Patch2: xmms2-0.5DrLecter-pulse-output-default.patch +# From upstream git (fix speex) +Patch3: xmms2-devel.git-054a12d54325820c8d31e482193007af0ed15be3.patch +# Don't add extra CFLAGS, we're smart enough, thanks. +Patch4: xmms2-0.5DrLecter-no-O0.patch +# More sane versioning +Patch5: xmms2-0.5DrLecter-moresaneversioning.patch +URL: http://wiki.xmms2.xmms.se/ +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: sqlite-devel, flac-devel, libofa-devel +BuildRequires: libcdio-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 +BuildRequires: perl-devel, boost-devel, pulseaudio-libs-devel, avahi-glib-devel +BuildRequires: libmodplug-devel, ecore-devel, gamin-devel +BuildRequires: avahi-compat-libdns_sd-devel, doxygen + +%description +XMMS2 is an audio framework, but it is not a general multimedia player - it +will not play videos. It has a modular framework and plugin architecture for +audio processing, visualisation and output, but this framework has not been +designed to support video. Also the client-server design of XMMS2 (and the +daemon being independent of any graphics output) practically prevents direct +video output being implemented. It has support for a wide range of audio +formats, which is expandable via plugins. It includes a basic CLI interface +to the XMMS2 framework, but most users will want to install a graphical XMMS2 +client (such as gxmms2 or esperanza). + +%package devel +Summary: Development libraries and headers for XMMS2 +Group: Development/Libraries +Requires: glib2-devel, qt-devel, boost-devel +Requires: pkgconfig +Requires: %{name} = %{version}-%{release} + +%description devel +Development libraries and headers for XMMS2. You probably need this to develop +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 python +Summary: Python support for XMMS2 +Group: Applications/Multimedia +Requires: %{name} = %{version}-%{release} + +%description python +Python bindings for XMMS2. + +%package perl +Summary: Perl support for XMMS2 +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 ruby +Summary: Ruby support for XMMS2 +Group: Applications/Multimedia +Requires: %{name} = %{version}-%{release} +Requires: ruby(abi) = 1.8 + +%description ruby +Ruby bindings for XMMS2. + +%prep +%setup -q -n %{name}-%{version}%{codename} +%patch0 -p1 -b .compilefix +%patch1 -p1 -b .plugins-use-libdir +%patch2 -p1 -b .default-output-pulse +%patch3 -p1 -b .fix-speex +%patch4 -p1 -b .noO0 +%patch5 -p1 -b .versionsanity + +# 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 + +%build +export CFLAGS="%{optflags}" +export CPPFLAGS="%{optflags}" +./waf configure --prefix=%{_prefix} --with-libdir=%{_libdir} --with-ruby-libdir=%{ruby_sitearch} --with-perl-archdir=%{perl_archlib} --with-pkgconfigdir=%{_libdir}/pkgconfig +./waf build -v %{?_smp_mflags} +# make the docs +doxygen + +%install +rm -rf %{buildroot} +./waf install --destdir=%{buildroot} --prefix=%{_prefix} --with-libdir=%{_libdir} --with-ruby-libdir=%{ruby_sitearch} --with-perl-archdir=%{perl_archlib} --with-pkgconfigdir=%{_libdir}/pkgconfig + +# exec flags for debuginfo +chmod +x %{buildroot}%{_libdir}/%{name}/* %{buildroot}%{_libdir}/libxmmsclient*.so* %{buildroot}%{python_sitearch}/xmmsclient/xmmsapi.so \ + %{buildroot}%{perl_archlib}/auto/Audio/XMMSClient/XMMSClient.so %{buildroot}%{ruby_sitearch}/xmmsclient_*.so + +# Convert to utf-8 +for i in %{buildroot}%{_mandir}/man1/*.gz; do + gunzip $i; +done +for i in %{buildroot}%{_mandir}/man1/*.1 ChangeLog; do + iconv -o $i.iso88591 -f iso88591 -t utf8 $i + mv $i.iso88591 $i +done + +install -m0755 %{SOURCE1} %{buildroot}%{_bindir} + +%clean +rm -rf %{buildroot} + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog COPYING COPYING.GPL COPYING.LGPL README TODO +%{_bindir}/%{name}* +%{_libdir}/libxmmsclient*.so.* +%{_libdir}/%{name} +%{_mandir}/man1/%{name}* +%{_datadir}/pixmaps/%{name}* +%{_datadir}/%{name} + +%files devel +%defattr(-,root,root,-) +%{_includedir}/%{name}/ +%{_libdir}/libxmmsclient*.so +%{_libdir}/pkgconfig/%{name}-*.pc + +%files docs +%defattr(-,root,root,-) +%doc doc/xmms2/html + +%files perl +%defattr(-,root,root,-) +%{perl_archlib}/Audio/ +%{perl_archlib}/auto/Audio/ + +%files python +%defattr(-,root,root,-) +%{python_sitearch}/xmmsclient/ + +%files ruby +%defattr(-,root,root,-) +%{ruby_sitearch}/xmmsclient* + +%changelog +* Wed Dec 10 2008 Tom "spot" Callaway 0.5-2 +- new docs subpackage +- many cleanups from package review + +* Thu Dec 4 2008 Tom "spot" Callaway 0.5-1 +- Initial package for Fedora