xmms2/xmms2.spec
2024-08-27 21:59:43 +02:00

354 lines
11 KiB
RPMSpec

#
# spec file for package xmms2
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
%{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
# these macros are not defined under < 11.4, which ruby is 1.8-
%{!?rb_sitelibdir: %global rb_sitelibdir %(ruby -rrbconfig -e 'puts Config::CONFIG["sitelibdir"]')}
%{!?rb_sitearchdir: %global rb_sitearchdir %(ruby -rrbconfig -e 'puts Config::CONFIG["sitearchdir"]')}
Name: xmms2
Version: 0.9.3+g52.xa9cd41b
Release: 0
Summary: A modular audio framework and plugin architecture
License: LGPL-2.1+ and GPL-2.0+ and BSD-3-Clause
Group: Productivity/Multimedia/Sound/Players
URL: https://github.com/xmms2
Source: %name-%version.tar.xz
Source1: xmms2-client-launcher.sh
Source2: README.SUSE
Source3: %name-ripper.1
Patch4: %name-0.8-rpath.patch
Patch6: %name-0.8-spelling-error.patch
Patch9: %name-0.8-linker-flags.patch
Patch10: %name-0.8-fix-cast-error.patch
Patch13: xmms2-pkgconfig.patch
Patch14: %name-0.8-fixwarnings.patch
BuildRequires: c++_compiler
BuildRequires: doxygen
BuildRequires: flex
BuildRequires: lcov
BuildRequires: libmpcdec-devel
BuildRequires: make
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(ao)
BuildRequires: pkgconfig(avahi-client)
BuildRequires: pkgconfig(avahi-glib)
BuildRequires: pkgconfig(fftw3)
BuildRequires: pkgconfig(flac)
BuildRequires: pkgconfig(fluidsynth)
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(jack)
BuildRequires: ffmpeg-6-libavcodec-devel
BuildRequires: pkgconfig(libcdio_cdda)
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(libdiscid)
BuildRequires: pkgconfig(libgme)
BuildRequires: pkgconfig(libmms)
BuildRequires: pkgconfig(libmodplug)
BuildRequires: pkgconfig(libmpg123)
BuildRequires: pkgconfig(libofa)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libvisual-0.4)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(mad)
BuildRequires: pkgconfig(ogg)
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(opus)
BuildRequires: pkgconfig(opusfile)
BuildRequires: pkgconfig(samplerate)
BuildRequires: pkgconfig(sdl)
BuildRequires: pkgconfig(shout)
BuildRequires: pkgconfig(smbclient)
BuildRequires: pkgconfig(sndfile)
BuildRequires: pkgconfig(speex)
BuildRequires: pkgconfig(vorbis)
BuildRequires: pkgconfig(vorbisenc)
BuildRequires: pkgconfig(vorbisfile)
BuildRequires: pkgconfig(wavpack)
BuildRequires: python3-base
BuildRequires: sqlite3
Requires: %name-plugin-base
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64
BuildRequires: valgrind-devel
%endif
%if %{with restricted}
BuildRequires: libfaad-devel
%endif
%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 -n libxmmsclient++-glib1
Summary: Glib C++ client library for %name
License: LGPL-2.1+ and GPL-2.0+ and BSD-3-Clause
Group: Productivity/Multimedia/Sound/Players
%description -n libxmmsclient++-glib1
A simple glib c++ client library for XMMS2.
%package -n libxmmsclient-glib1
Summary: Glib Client library for %name
License: LGPL-2.1+ and GPL-2.0+ and BSD-3-Clause
Group: Productivity/Multimedia/Sound/Players
%description -n libxmmsclient-glib1
A simple Glib client library for XMMS2.
%package -n libxmmsclient6
Summary: Client library for %name
License: LGPL-2.1+ and GPL-2.0+ and BSD-3-Clause
Group: Productivity/Multimedia/Sound/Players
%description -n libxmmsclient6
A simple client library for XMMS2.
%package devel
Summary: Development libraries and headers for XMMS2
License: LGPL-2.1+ and GPL-2.0+ and BSD-3-Clause
Group: Development/Libraries/C and C++
Requires: %name = %version
%if 0%{?suse_version} > 1325
Requires: libboost_headers-devel
%else
Requires: boost-devel
%endif
Requires: libxmmsclient++-glib1
Requires: libxmmsclient-glib1
Requires: libxmmsclient6
Requires: pkgconfig
Requires: pkgconfig(glib-2.0)
%description devel
Development libraries and headers for XMMS2. You probably need this to develop
or build new plugins for XMMS2.
%package doc
Summary: Development documentation for XMMS2
License: LGPL-2.1+ and GPL-2.0+ and BSD-3-Clause
Group: Documentation/HTML
BuildArch: noarch
%description doc
API documentation for the XMMS2 modular audio framework architecture.
%package -n python-xmms2
Summary: Python support for XMMS2
License: LGPL-2.1+ and GPL-2.0+ and BSD-3-Clause
Group: Development/Languages/Python
Requires: %name = %version
Requires: python
%description -n python-xmms2
Python bindings for XMMS2.
%package perl
Summary: Perl support for XMMS2
License: GPL-1.0-or-later or Artistic-1.0
Group: Development/Languages/Perl
Requires: %name = %version
Requires: perl-base
%description perl
Perl bindings for XMMS2.
%package ruby
Summary: Ruby support for XMMS2
License: GPL-1.0-or-later or Artistic-1.0
Group: Development/Languages/Ruby
Requires: %name = %version
Requires: ruby >= 1.8
%description ruby
Ruby bindings for XMMS2.
%package plugin-base
Summary: Base plugins for %name
License: GPL-1.0-or-later or Artistic-1.0
Group: Productivity/Multimedia/Sound/Players
Requires: %name = %version
%description plugin-base
Contains some basic plugins for XMMS2.
%package plugin-extended
Summary: All plugins for %name
License: GPL-1.0-or-later or Artistic-1.0
Group: Productivity/Multimedia/Sound/Players
Requires: %name-plugin-base = %version
%description plugin-extended
Installs every plugin.
%prep
%autosetup -p1
%build
cp %SOURCE2 .
export CFLAGS="%optflags -fno-strict-aliasing"
export CXXFLAGS="%optflags -fno-strict-aliasing"
python3 waf configure \
--prefix="%_prefix" \
--libdir="%_libdir" \
--with-perl-archdir="%perl_archlib" \
--with-ruby-archdir="%rb_sitearchdir" \
--with-ruby-libdir="%rb_sitelibdir" \
--with-pkgconfigdir="%_libdir/pkgconfig"
python3 waf build -v %{?_smp_mflags}
doxygen
%install
python3 waf install \
--destdir="%buildroot" \
--prefix="%_prefix" \
--libdir="%_libdir" \
--with-ruby-archdir="%rb_sitearchdir" \
--with-ruby-libdir="%rb_sitelibdir" \
--with-perl-archdir="%perl_archlib" \
--with-pkgconfigdir="%_libdir/pkgconfig"
# Convert to utf-8
#for i in %buildroot%_mandir/man1/*.gz; do
# gunzip $i;
#done
#for i in %buildroot%_mandir/man1/*.1; do
# iconv -o $i.iso88591 -f iso88591 -t utf8 $i
# mv $i.iso88591 $i
#done
#install -m0755 %SOURCE1 %buildroot%_bindir
#the libraries are built as 64bit, they are just installed in the wrong dir
#%if "%_lib" == "lib64"
#mv %buildroot%_libexecdir/* %buildroot/%_libdir/
#mv %buildroot/%_libdir/perl* %buildroot%_libexecdir/
#%endif
#
#cp %SOURCE3 %buildroot/%_mandir/man1/
#%fdupes %buildroot
%ldconfig_scriptlets -n libxmmsclient++-glib1
%ldconfig_scriptlets -n libxmmsclient-glib1
%ldconfig_scriptlets -n libxmmsclient6
%files
%_bindir/*xmms*
%_mandir/man1/*.1*
%_datadir/pixmaps/*
%_datadir/%name/
%dir %_libdir/%name/
%_libdir/xmms2/libxmms_ao.so
%_libdir/xmms2/libxmms_apefile.so
%_libdir/xmms2/libxmms_asf.so
%_libdir/xmms2/libxmms_asx.so
%_libdir/xmms2/libxmms_cue.so
%_libdir/xmms2/libxmms_diskwrite.so
%_libdir/xmms2/libxmms_file.so
%_libdir/xmms2/libxmms_flv.so
%_libdir/xmms2/libxmms_html.so
%_libdir/xmms2/libxmms_icymetaint.so
%_libdir/xmms2/libxmms_id3v2.so
%_libdir/xmms2/libxmms_karaoke.so
%_libdir/xmms2/libxmms_m3u.so
%_libdir/xmms2/libxmms_mp4.so
%_libdir/xmms2/libxmms_normalize.so
%_libdir/xmms2/libxmms_null.so
%_libdir/xmms2/libxmms_nulstripper.so
%_libdir/xmms2/libxmms_oss.so
%_libdir/xmms2/libxmms_pls.so
%_libdir/xmms2/libxmms_tta.so
%_libdir/xmms2/libxmms_wave.so
%license COPYING COPYING.GPL COPYING.LGPL
%doc README.mdown README.SUSE
%files -n libxmmsclient++-glib1
%_libdir/libxmmsclient++-glib.so.1*
%files -n libxmmsclient-glib1
%_libdir/libxmmsclient-glib.so.1*
%files -n libxmmsclient6
%_libdir/libxmmsclient.so.6*
%files devel
%_includedir/%name/
%_libdir/libxmmsclient*.so
%_libdir/pkgconfig/*.pc
%files doc
%doc doc/xmms2/html
%if 0
#%files perl
#%perl_archlib/Audio/
#%perl_archlib/auto/Audio/
#
#%files -n python-xmms2
#%dir %python_sitearch/xmmsclient/
#%python_sitearch/xmmsclient/*
#
#%files ruby
#%rb_sitearchdir/*.so
#%rb_sitelibdir/xmmsclient
#%rb_sitelibdir/xmmsclient.rb
%endif
%files plugin-base
%_libdir/xmms2/libxmms_alsa.so
%_libdir/xmms2/libxmms_avcodec.so
%_libdir/xmms2/libxmms_curl.so
%_libdir/xmms2/libxmms_flac.so
%_libdir/xmms2/libxmms_gvfs.so
%_libdir/xmms2/libxmms_modplug.so
%_libdir/xmms2/libxmms_mpg123.so
%_libdir/xmms2/libxmms_opus.so
%_libdir/xmms2/libxmms_pulse.so
%_libdir/xmms2/libxmms_speex.so
%_libdir/xmms2/libxmms_vorbis.so
%files plugin-extended
%_libdir/xmms2/libxmms_airplay.so
%_libdir/xmms2/libxmms_cdda.so
%_libdir/xmms2/libxmms_daap.so
%_libdir/xmms2/libxmms_fluidsynth.so
%_libdir/xmms2/libxmms_gme.so
%_libdir/xmms2/libxmms_ices.so
%_libdir/xmms2/libxmms_jack.so
%_libdir/xmms2/libxmms_mad.so
%_libdir/xmms2/libxmms_mid1.so
%_libdir/xmms2/libxmms_midsquash.so
%_libdir/xmms2/libxmms_mms.so
%_libdir/xmms2/libxmms_musepack.so
%_libdir/xmms2/libxmms_ofa.so
%_libdir/xmms2/libxmms_rss.so
%_libdir/xmms2/libxmms_samba.so
%_libdir/xmms2/libxmms_sndfile.so
%_libdir/xmms2/libxmms_vocoder.so
%_libdir/xmms2/libxmms_wavpack.so
%_libdir/xmms2/libxmms_xml.so
%_libdir/xmms2/libxmms_xspf.so
%changelog