+#
+# Conditional build:
+%bcond_without alsa # ALSA support
+%bcond_with nas # NAS support
+%bcond_with arts # aRts support (i.e. actually build this package)
+%bcond_without esd # EsounD support
+%bcond_without hidden_visibility # '--fvisibility=hidden' & '--fvisibility-inlines-hidden' g++ opts
+
+%define _state stable
+%define _kdever 3.5.10
+
Summary: aRts sound server
-Summary(pl): Serwer d¼wiêku
-Summary(pt_BR): Servidor de sons usado pelo KDE
+Summary(pl.UTF-8): Serwer dźwięku
+Summary(pt_BR.UTF-8): Servidor de sons usado pelo KDE
Name: arts
-%define _kdever 3.0.3
-Version: 1.0.3
-Release: 2
-Epoch: 10
+Version: 1.5.10
+Release: 15
+Epoch: 13
License: LGPL
-Vendor: The KDE Team
Group: Libraries
-Source0: ftp://ftp.kde.org/pub/kde/stable/%{_kdever}/src/%{name}-%{version}.tar.bz2
-%ifnarch sparc sparcv9 sparc64
-BuildRequires: alsa-lib-devel
-%endif
+Source0: ftp://ftp.kde.org/pub/kde/%{_state}/%{_kdever}/src/%{name}-%{version}.tar.bz2
+# Source0-md5: 6da172aab2a4a44929b5fdfc30fa3efc
+#Patch100: %{name}-branch.diff
+Patch0: %{name}-libs.patch
+Patch1: kde-ac260-lt.patch
+Patch2: %{name}-extension_loader.patch
+Patch3: %{name}-gcc43.patch
+Patch4: %{name}-fortify.patch
+Patch5: kde-am.patch
+Patch6: %{name}-ac.patch
+URL: http://www.arts-project.org/
+%{?with_alsa:BuildRequires: alsa-lib-devel}
BuildRequires: audiofile-devel
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: boost-devel >= 1.35.0
+%{?with_esd:BuildRequires: esound-devel}
+%{?with_hidden_visibility:BuildRequires: gcc-c++ >= 5:4.1.0-0.20051206r108118.1}
BuildRequires: glib2-devel >= 2.0.0
-BuildRequires: libjpeg-devel
-BuildRequires: libpng-devel
-# not needed, only ./configure check for this
-#BuildRequires: libvorbis-devel
-#BuildRequires: mad-devel
+BuildRequires: jack-audio-connection-kit-devel
+%if "%{pld_release}" == "th"
+%{!?with_arts:BuildRequires: die, not meant for th}
+%endif
+BuildRequires: libmad-devel
+BuildRequires: libtool >= 2:1.5-2
+BuildRequires: libuuid-devel
+BuildRequires: libvorbis-devel
+%{?with_nas:BuildRequires: nas-devel}
BuildRequires: pkgconfig
-BuildRequires: qt-devel >= 3.0.5
-Requires: qt >= 3.0.5
-URL: http://www.kde.org/
+%{!?with_hidden_visibility:BuildRequires: qt-devel >= 6:3.2.1-4}
+%{?with_hidden_visibility:BuildRequires: qt-devel >= 6:3.3.5.051113-1}
+Obsoletes: arts-glib
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _prefix /usr/X11R6
-%define _htmldir /usr/share/doc/kde/HTML
-
%description
-aRts sound server.
-
-%description -l pl
-Serwer d¼wiêku aRts.
-
-%description -l pt_BR
-O aRts é um sintetizador analógico em tempo real que é completamente
-modular. Você pode criar sons e músicas (síntese em tempo real de
-midi) usando pequenos módulos como oscilador para criar waveforms,
-vários filtros, mixers, faders, etc. Você pode configurar tudo através
-de uma interface no KDE. O Servidor aRts é controlado via CORBA. Este
-design foi escolhido para permitir que outras aplicações usem o aRts
+The Analog Real-Time Synthesizer, or aRts, is a modular system for
+synthesizing sound and music on a digital computer. Using small
+building blocks called modules, the user can easily build complex
+audio processing tools. Modules typically provide functions such as
+sound waveform generators, filters, audio effects, mixing, and
+playback of digital audio in different file formats. The artsd sound
+server mixes audio from several sources in real time, allowing
+multiple sound applications to transparently share access to sound
+hardware.
+
+%description -l pl.UTF-8
+Analog Real-Time Synthesizer (w skrócie aRts) to modularny system do
+obsługi dźwięku i muzyki na komputerze. Za pomocą modułów użytkownik
+może z powodzeniem budować kompleksowe narzędzia przetwarzania
+dźwięku. Moduły umożliwiają generację kształtu fali, filtrowanie,
+efekty audio, miksowanie oraz odtwarzanie dźwięku cyfrowego w różnych
+formatach. Serwer dźwięku artsd umożliwia również jednoczesne
+odtwarzanie dźwięku z wielu źródeł.
+
+%description -l pt_BR.UTF-8
+O aRts é um sintetizador analógico em tempo real que é completamente
+modular. Você pode criar sons e músicas (síntese em tempo real de
+midi) usando pequenos módulos como oscilador para criar waveforms,
+vários filtros, mixers, faders, etc. Você pode configurar tudo através
+de uma interface no KDE. O Servidor aRts é controlado via CORBA. Este
+design foi escolhido para permitir que outras aplicações usem o aRts
como um sintetizador (ou fornecedor de filtros). Usado pelo KDE, entre
outros.
+%package devel
+Summary: Sound server - header files
+Summary(pl.UTF-8): Serwer dźwięku - pliki nagłówkowe
+Summary(pt_BR.UTF-8): Arquivos para desenvolvimento com o o aRts
+Group: Development/Libraries
+Requires: %{name} = %{epoch}:%{version}-%{release}
+# not necessary for all libs (e.g. mcop), but propagated by artsflow
+%{?with_alsa:Requires: alsa-lib-devel}
+Requires: audiofile-devel
+Requires: esound-devel
+Requires: glib2-devel >= 2.0.0
+Requires: jack-audio-connection-kit-devel
+Requires: libmad-devel
+Requires: libvorbis-devel
+%{?with_nas:Requires: nas-devel}
+
+%description devel
+Header files required to compile programs using arts.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe niezbędne do budowania aplikacji korzystających z
+arts.
+
+%description devel -l pt_BR.UTF-8
+Arquivos para desenvolvimento com o o aRts.
+
+# separate from arts-devel because they are mostly independent and have very
+# different deps
+# there is no artsc base - it would be small and would require arts - so
+# there is no reason to separate
+%package -n artsc-devel
+Summary: Development files for artsc libraries
+Summary(pl.UTF-8): Pliki programistyczne bibliotek artsc
+Group: Development/Libraries
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: glib2-devel >= 2.0.0
+Conflicts: arts-devel < 12:1.2.0.031126-2
+
+%description -n artsc-devel
+Development files for artsc libraries (C interface to aRts sound
+system).
+
+%description -n artsc-devel -l pl.UTF-8
+Pliki programistyczne bibliotek artsc (interfejsu w C do systemu
+dźwięku aRts).
+
%package X11
Summary: X11 dependent part of aRts
-Summary(pl): Czê¶æ aRts wymagaj±ca X11
+Summary(pl.UTF-8): Część aRts wymagająca X11
Group: X11/Libraries
+Requires: %{name} = %{epoch}:%{version}-%{release}
%description X11
-X11 dependent part of aRts.
+X11 dependent part of aRts (x11globalcomm module).
-%description X11 -l pl
-Czê¶æ aRts wymagaj±ca X11.
+%description X11 -l pl.UTF-8
+Część aRts wymagająca X11 (moduł x11globalcomm).
%package qt
-Summary: QT dependend part of aRts
-Summary(pl): Czê¶æ aRts wymagaj±ca QT
+Summary: Qt dependend part of aRts
+Summary(pl.UTF-8): Część aRts wymagająca Qt
Group: X11/Libraries
-Requires: %{name} >= %{version}
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: qt >= 6:3.2.1-4
%description qt
-QT dependend part of aRts.
-
-%description qt -l pl
-Czê¶æ aRts wymagaj±ca QT.
-
-%package devel
-Summary: Sound server - header files
-Summary(pl): Serwer d¼wiêku - pliki nag³ówkowe
-Summary(pt_BR): Arquivos para desenvolvimento com o o aRts
-Group: Development/Libraries
-Requires: qt-devel >= 3.0.3
-Requires: %{name} >= %{version}
-
-%description devel
-Header files required to compile programs using arts.
-
-%description devel -l pl
-Pliki nag³ówkowe niezbêdne do budowania aplikacji korzystaj±cych z
-arts.
+Qt dependend part of aRts (qtmcop library).
-%description devel -l pt_BR
-Arquivos para desenvolvimento com o o aRts.
+%description qt -l pl.UTF-8
+Część aRts wymagająca Qt (biblioteka qtmcop).
-%package glib
-Summary: GLib dependend part of aRts
-Summary(pl): Czê¶æ aRts wymagaj±ca GLib
-Group: X11/Libraries
+%package qt-devel
+Summary: Development files for qtmcop library
+Summary(pl.UTF-8): Pliki programistyczne dla biblioteki qtmcop
+Group: X11/Development/Libraries
+Requires: %{name}-devel = %{epoch}:%{version}-%{release}
+Requires: %{name}-qt = %{epoch}:%{version}-%{release}
+Requires: qt-devel >= 6:3.2.1-4
-%description glib
-GLib dependend part of aRts.
+%description qt-devel
+Development files for qtmcop library.
-%description glib -l pl
-Czê¶æ aRts wymagaj±ca GLib.
+%description qt-devel -l pl.UTF-8
+Pliki programistyczne dla biblioteki qtmcop.
%prep
%setup -q
+#%patch100 -p1
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+
+find . -type f -name '*.mcopclass' | xargs %{__sed} -i -e 's:\.la::'
%build
-kde_htmldir="%{_htmldir}"; export kde_htmldir
-kde_icondir="%{_pixmapsdir}"; export kde_icondir
+cp -f /usr/share/automake/config.sub admin
-#%{__make} -f Makefile.cvs
+%{__make} -f admin/Makefile.common cvs
%configure \
- --%{?debug:en}%{!?debug:dis}able-debug \
- --enable-final \
- --with-xinerama \
- --with-alsa
+ %{!?with_nas:ac_cv_header_audio_audiolib_h=no} \
+%if "%{_lib}" == "lib64"
+ --enable-libsuffix=64 \
+%endif
+ --%{?debug:en}%{!?debug:dis}able-debug%{?debug:=full} \
+ %{!?debug:--disable-rpath} \
+ --disable-final \
+ %{?with_hidden_visibility:--enable-gcc-hidden-visibility} \
+ --with-qt-libraries=%{_libdir} \
+ --with%{!?with_alsa:out}-alsa
-%{__make}
+%{__make} \
+ CXXLD=%{_host_cpu}-%{_vendor}-%{_os}-g++ \
+ CCLD=%{_host_cpu}-%{_vendor}-%{_os}-gcc
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install DESTDIR=$RPM_BUILD_ROOT
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
+
+# it seems to be only (lt_)dlopened, nothing links with it - so not needed
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libx11globalcomm.{la,so}
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+# remove unwanted boost deps from .la
+sed -i 's:-lboost_filesystem -lboost_regex::' $RPM_BUILD_ROOT%{_libdir}/*.la
%clean
rm -rf $RPM_BUILD_ROOT
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
+
+%post X11 -p /sbin/ldconfig
+%postun X11 -p /sbin/ldconfig
+
+%post qt -p /sbin/ldconfig
+%postun qt -p /sbin/ldconfig
+
%files
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/artscat
%attr(755,root,root) %{_bindir}/artsrec
%attr(755,root,root) %{_bindir}/artsshell
%attr(755,root,root) %{_bindir}/artswrapper
-%attr(755,root,root) %{_libdir}/lib[am]*.so.*.*
-%attr(755,root,root) %{_libdir}/libs[!h]*.so.*.*
-%attr(755,root,root) %{_libdir}/lib[ams]*.la
-%attr(755,root,root) %{_libdir}/libkmedia*.so.*.*
-%attr(755,root,root) %{_libdir}/libkmedia*.la
+# shared libraries
+%attr(755,root,root) %{_libdir}/libartsc.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libartsc.so.0
+%attr(755,root,root) %{_libdir}/libartsflow.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libartsflow.so.1
+%attr(755,root,root) %{_libdir}/libartsflow_idl.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libartsflow_idl.so.1
+%attr(755,root,root) %{_libdir}/libgmcop.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgmcop.so.1
+%attr(755,root,root) %{_libdir}/libkmedia2.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libkmedia2.so.1
+%attr(755,root,root) %{_libdir}/libkmedia2_idl.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libkmedia2_idl.so.1
+%attr(755,root,root) %{_libdir}/libmcop.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmcop.so.1
+%attr(755,root,root) %{_libdir}/libmcop_mt.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmcop_mt.so.1
+%attr(755,root,root) %{_libdir}/libsoundserver_idl.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libsoundserver_idl.so.1
+%attr(755,root,root) %{_libdir}/libartscbackend.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libartscbackend.so.0
+%attr(755,root,root) %{_libdir}/libartsdsp.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libartsdsp.so.0
+%attr(755,root,root) %{_libdir}/libartsdsp_st.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libartsdsp_st.so.0
+%attr(755,root,root) %{_libdir}/libartsgslplayobject.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libartsgslplayobject.so.0
+%attr(755,root,root) %{_libdir}/libartswavplayobject.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libartswavplayobject.so.0
+#
%{_libdir}/mcop
+#%{_mandir}/man1/artscat.1*
+#%{_mandir}/man1/artsd.1*
+#%{_mandir}/man1/artsdsp.1*
+#%{_mandir}/man1/artsplay.1*
+#%{_mandir}/man1/artsrec.1*
+#%{_mandir}/man1/artsshell.1*
+#%{_mandir}/man1/artswrapper.1*
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/mcopidl
+%{_includedir}/arts
+%exclude %{_includedir}/arts/qiomanager.h
+%{_libdir}/libartsflow.la
+%attr(755,root,root) %{_libdir}/libartsflow.so
+%{_libdir}/libartsflow_idl.la
+%attr(755,root,root) %{_libdir}/libartsflow_idl.so
+%{_libdir}/libartsgslplayobject.la
+%attr(755,root,root) %{_libdir}/libartsgslplayobject.so
+%{_libdir}/libartswavplayobject.la
+%attr(755,root,root) %{_libdir}/libartswavplayobject.so
+%{_libdir}/libgmcop.la
+%attr(755,root,root) %{_libdir}/libgmcop.so
+%{_libdir}/libkmedia2.la
+%attr(755,root,root) %{_libdir}/libkmedia2.so
+%{_libdir}/libkmedia2_idl.la
+%attr(755,root,root) %{_libdir}/libkmedia2_idl.so
+%{_libdir}/libmcop.la
+%attr(755,root,root) %{_libdir}/libmcop.so
+%{_libdir}/libmcop_mt.la
+%attr(755,root,root) %{_libdir}/libmcop_mt.so
+%{_libdir}/libsoundserver_idl.la
+%attr(755,root,root) %{_libdir}/libsoundserver_idl.so
+#%{_mandir}/man1/mcopidl.1*
+
+%files -n artsc-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/artsc-config
+%{_includedir}/artsc
+%{_libdir}/libartsc.la
+%attr(755,root,root) %{_libdir}/libartsc.so
+%{_libdir}/libartscbackend.la
+%attr(755,root,root) %{_libdir}/libartscbackend.so
+%{_libdir}/libartsdsp.la
+%attr(755,root,root) %{_libdir}/libartsdsp.so
+%{_libdir}/libartsdsp_st.la
+%attr(755,root,root) %{_libdir}/libartsdsp_st.so
+#%{_mandir}/man1/artsc-config.1*
%files X11
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libx11globalcomm.so.*.*.*
-%attr(755,root,root) %{_libdir}/libx11globalcomm.la
+%attr(755,root,root) %ghost %{_libdir}/libx11globalcomm.so.1
%files qt
%defattr(644,root,root,755)
+# shared library
%attr(755,root,root) %{_libdir}/libqtmcop.so.*.*.*
-%attr(755,root,root) %{_libdir}/libqtmcop.la
-
-%files glib
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libgmcop.so.*.*.*
-%attr(755,root,root) %{_libdir}/libgmcop.la
+%attr(755,root,root) %ghost %{_libdir}/libqtmcop.so.1
-%files devel
+%files qt-devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/artsc-config
-%attr(755,root,root) %{_bindir}/mcopidl
-%{_libdir}/lib[mqsxg]*.so
-%{_libdir}/libarts[!k]*.so
-%{_libdir}/libkmedia*.so
-%{_includedir}/arts
-%{_includedir}/artsc
+%{_includedir}/arts/qiomanager.h
+%{_libdir}/libqtmcop.la
+%attr(755,root,root) %{_libdir}/libqtmcop.so