From e0568ac6b074ec72e6bdb4b0ab5fc5e0794ca6f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Andriot?= Date: Sat, 11 Oct 2014 12:01:56 +0200 Subject: [PATCH] RPM Packaging: update and cleanup tdemultimedia --- .../kdemultimedia-3.4.0-xdg.patch | 10 - .../tdemultimedia/kdemultimedia-3.5.12.spec | 396 ----- ...ultimedia-3.5.13-fix_autostart_again.patch | 31 - ...multimedia-3.5.13-fix_kmix_autostart.patch | 34 - ...ultimedia-3.5.13-fix_linear_alphabet.patch | 19 - ...emultimedia-3.5.13-fix_mmx_detection.patch | 12 - ...kdemultimedia-3.5.13-missing_ldflags.patch | 133 -- ...edia-3.5.13-remove_more_applications.patch | 49 - .../tdemultimedia/kdemultimedia-3.5.13.1.spec | 1185 ------------- ...ultimedia-3.5.13.2-fix_gstreamer_1.0.patch | 11 - .../tdemultimedia/kdemultimedia-3.5.13.spec | 1204 ------------- .../kdemultimedia-3.5.7-pthread.patch | 11 - .../tdemultimedia/tdemultimedia-14.0.0.spec | 7 +- ...imedia-3.5.13.2-fix_pulseaudio_mixer.patch | 26 - .../tdemultimedia-3.5.13.2-fix_xdg_menu.patch | 250 --- .../tdemultimedia-3.5.13.2-ftbfs.patch | 43 - ...emultimedia-3.5.13.2-kmix_pulseaudio.patch | 1519 ----------------- .../tdemultimedia/tdemultimedia-3.5.13.2.spec | 99 +- 18 files changed, 67 insertions(+), 4972 deletions(-) delete mode 100644 redhat/tdemultimedia/kdemultimedia-3.4.0-xdg.patch delete mode 100644 redhat/tdemultimedia/kdemultimedia-3.5.12.spec delete mode 100644 redhat/tdemultimedia/kdemultimedia-3.5.13-fix_autostart_again.patch delete mode 100644 redhat/tdemultimedia/kdemultimedia-3.5.13-fix_kmix_autostart.patch delete mode 100644 redhat/tdemultimedia/kdemultimedia-3.5.13-fix_linear_alphabet.patch delete mode 100644 redhat/tdemultimedia/kdemultimedia-3.5.13-fix_mmx_detection.patch delete mode 100644 redhat/tdemultimedia/kdemultimedia-3.5.13-missing_ldflags.patch delete mode 100644 redhat/tdemultimedia/kdemultimedia-3.5.13-remove_more_applications.patch delete mode 100644 redhat/tdemultimedia/kdemultimedia-3.5.13.1.spec delete mode 100644 redhat/tdemultimedia/kdemultimedia-3.5.13.2-fix_gstreamer_1.0.patch delete mode 100644 redhat/tdemultimedia/kdemultimedia-3.5.13.spec delete mode 100644 redhat/tdemultimedia/kdemultimedia-3.5.7-pthread.patch delete mode 100644 redhat/tdemultimedia/tdemultimedia-3.5.13.2-fix_pulseaudio_mixer.patch delete mode 100644 redhat/tdemultimedia/tdemultimedia-3.5.13.2-fix_xdg_menu.patch delete mode 100644 redhat/tdemultimedia/tdemultimedia-3.5.13.2-ftbfs.patch delete mode 100644 redhat/tdemultimedia/tdemultimedia-3.5.13.2-kmix_pulseaudio.patch diff --git a/redhat/tdemultimedia/kdemultimedia-3.4.0-xdg.patch b/redhat/tdemultimedia/kdemultimedia-3.4.0-xdg.patch deleted file mode 100644 index 445d88a40..000000000 --- a/redhat/tdemultimedia/kdemultimedia-3.4.0-xdg.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- kdemultimedia-3.4.0/kappfinder-data/kde-multimedia-music.menu.tn 2005-04-25 16:16:32.000000000 +0200 -+++ kdemultimedia-3.4.0/kappfinder-data/kde-multimedia-music.menu 2005-04-25 16:17:51.000000000 +0200 -@@ -2,6 +2,7 @@ - "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"> - - -+Applications - - Multimedia - diff --git a/redhat/tdemultimedia/kdemultimedia-3.5.12.spec b/redhat/tdemultimedia/kdemultimedia-3.5.12.spec deleted file mode 100644 index 28565c4a9..000000000 --- a/redhat/tdemultimedia/kdemultimedia-3.5.12.spec +++ /dev/null @@ -1,396 +0,0 @@ -# Default version for this component -%if "%{?version}" == "" -%define version 3.5.12 -%endif -%define release 2 - -# If TDE is built in a specific prefix (e.g. /opt/trinity), the release will be suffixed with ".opt". -%if "%{?_prefix}" != "/usr" -%define _variant .opt -%define _docdir %{_prefix}/share/doc -%endif - -# TDE 3.5.12 specific building variables -BuildRequires: autoconf automake libtool m4 -%define tde_docdir %{_docdir} -%define tde_includedir %{_includedir}/kde -%define tde_libdir %{_libdir}/kde3 - - -%define appdir %{_datadir}/applications/kde - -# former extras bits -#define _with_akode --with-akode -## not currently compatible with libtunepimp-0.5 (only libtunepimp-0.4) -#define _with_musicbrainz --with-musicbrainz -%define _with_taglib --with-taglib -%define _with_xine --with-xine - -Name: trinity-kdemultimedia -Summary: Multimedia applications for the K Desktop Environment (KDE) -Version: %{?version} -Release: %{?release}%{?dist}%{?_variant} - -License: GPLv2 -Group: Applications/Multimedia - -Vendor: Trinity Project -Packager: Francois Andriot -URL: http://www.trinitydesktop.org/ - -Prefix: %{_prefix} -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -Source0: kdemultimedia-%{version}.tar.gz - -Provides: kdemultimedia3 = %{version}-%{release} - -# RedHat Legacy patches (from Fedora 8) -Patch3: kdemultimedia-3.4.0-xdg.patch -Patch5: kdemultimedia-3.5.7-pthread.patch - -Provides: kdemultimedia3 = %{version}-%{release} - -Requires: %{name}-libs = %{version}-%{release} - -BuildRequires: zlib-devel -BuildRequires: trinity-kdelibs-devel -BuildRequires: libvorbis-devel -BuildRequires: audiofile-devel -BuildRequires: desktop-file-utils -BuildRequires: libtheora-devel -BuildRequires: flac-devel -BuildRequires: alsa-lib-devel -BuildRequires: cdparanoia-devel cdparanoia -BuildRequires: gstreamer-devel -BuildRequires: automake libtool -%{?_with_akode:BuildRequires: akode-devel} -%{?_with_musicbrainz:BuildRequires: libmusicbrainz-devel libtunepimp-devel} -%{?_with_taglib:BuildRequires: taglib-devel} -%{?_with_xine:BuildRequires: xine-lib-devel} -BuildRequires: libXxf86dga-devel -BuildRequires: libXxf86vm-devel - -%description -The K Desktop Environment (KDE) is a GUI desktop for the X Window -System. The %{name} package contains multimedia applications for -KDE, including: - kmid, a midi player - kmix, an audio mixer - arts, additional functionality for the aRts sound system - krec, a recording tool - kscd, an Audio-CD player - kaudiocreator, a graphical frontend for audio file creation - -%package devel -Summary: Development files for %{name}, aRts and noatun plugins -Group: Development/Libraries -Provides: kdemultimedia3-devel = %{version}-%{release} -Requires: %{name}-libs = %{version}-%{release} -# for noatun shlib(s) -Requires: %{name}-extras-libs = %{version}-%{release} -Requires: trinity-kdelibs-devel -%description devel -{summary}. -Install %{name}-devel if you wish to develop or compile any -applications using aRtsbuilder, aRtsmidi, aRtskde, aRts modules or -noatun plugins. - -%package extras -Summary: Extra applications from %{name} -Group: Applications/Multimedia -Requires: %{name}-extras-libs = %{version}-%{release} -%description extras -%{summary}, including: - * juk, a media player - * kaboodle, a media player - * noatun, a media player - -%package extras-libs -Summary: Extra %{name} runtime libraries -Group: System Environment/Libraries -Requires: %{name}-libs = %{version}-%{release} -%description extras-libs -%{summary}. - -%package libs -Summary: %{name} runtime libraries -Group: System Environment/Libraries -Requires: trinity-kdelibs -# include to be paranoid, installing libs-only is still mostly untested -- Rex -Requires: %{name} = %{version}-%{release} -%description libs -%{summary}. - - -%prep -%setup -q -n kdemultimedia -%patch3 -p1 -b .xdg -%patch5 -p1 -b .pthread - -%__cp "/usr/share/aclocal/libtool.m4" "admin/libtool.m4.in" -%__cp "/usr/share/libtool/config/ltmain.sh" "admin/ltmain.sh" -%__make -f "admin/Makefile.common" - - -%build -unset QTDIR || : ; . /etc/profile.d/qt.sh -export PATH="%{_bindir}:${PATH}" -export LDFLAGS="-L%{_libdir} -I%{_includedir}" - -%if 0%{?fedora} > 0 -export CXXFLAGS="${CXXFLAGS} -lDCOP" -%endif - -%configure \ - --enable-new-ldflags \ - --disable-dependency-tracking \ - --includedir=%{tde_includedir} \ - --with-cdparanoia \ - --with-flac \ - --with-theora \ - --with-vorbis \ - --with-alsa \ - --with-gstreamer \ - --without-lame \ - --disable-debug \ - --disable-warnings \ - --enable-final \ - --disable-rpath \ - %{?_with_akode} %{!?_with_akode:--without-akode} \ - %{?_with_musicbrainz} %{!?_with_musicbrainz:--without-musicbrainz} \ - %{?_with_taglib} %{!?_with_taglib:--without-taglib} \ - %{?_with_xine} %{!?_with_xine:--without-xine} \ - --with-extra-includes=%{_usr}/include/cdda:%{_includedir}/tqt \ - --enable-closure - -%__make %{?_smp_mflags} - - -%install -export PATH="%{_bindir}:${PATH}" -%__rm -rf %{?buildroot} - -%__make install DESTDIR=%{?buildroot} -%__make install DESTDIR=%{?buildroot} -C kaudiocreator - -## Remove/uninstall (conflicting) bits we don't want -%__rm -f $RPM_BUILD_ROOT%{_libdir}/mcop/akode*MPEGPlayObject.mcopclass - -# only show in KDE, really? -- Rex (FIXME) -for f in %{buildroot}%{appdir}/*.desktop ; do - if [ -f %{buildroot}%{appdir}/*.desktop ] ; then - echo "OnlyShowIn=KDE;" >> $f - fi -done - -# don't make these world-writeable -chmod go-w %{buildroot}%{_datadir}/apps/kscd/* - -# locale's -%find_lang %{name} || touch %{name}.lang -HTML_DIR=$(kde-config --expandvars --install html) -if [ -d %{buildroot}$HTML_DIR ]; then -for lang_dir in %{buildroot}$HTML_DIR/* ; do - if [ -d $lang_dir ]; then - lang=$(basename $lang_dir) - echo "%lang($lang) $HTML_DIR/$lang/*" >> %{name}.lang - # replace absolute symlinks with relative ones - pushd $lang_dir - for i in *; do - [ -d $i -a -L $i/common ] && ln -nsf ../common $i/common - done - popd - fi -done -fi - -# rpmdocs -for dir in k* ; do - for file in AUTHORS ChangeLog README TODO ; do - if test -s "$dir/$file" ; then - install -p -m644 -D "$dir/$file" "rpmdocs/$dir/$file" - # exclude kaboodle, juk, noatun - if [ $dir != kaboodle -a $dir != juk -a $dir != noatun ] ; then - echo "%doc rpmdocs/$dir/" >> %{name}.lang - fi - fi - done -done - - -%post -/sbin/ldconfig -for f in crystalsvg hicolor locolor ; do - touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : - -%postun -/sbin/ldconfig -for f in crystalsvg hicolor locolor ; do - touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : - -%post libs -/sbin/ldconfig - -%postun libs -/sbin/ldconfig - -%post extras-libs -/sbin/ldconfig - -%postun extras-libs -/sbin/ldconfig - -%post extras -/sbin/ldconfig -for f in crystalsvg hicolor ; do - touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : - -%postun extras -/sbin/ldconfig -for f in crystalsvg hicolor ; do - touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : - - -%clean -%__rm -rf %{buildroot} - - -%files extras -%defattr(-,root,root,-) - -# kaboodle -%doc rpmdocs/kaboodle/ -%doc %lang(en) %{_docdir}/HTML/en/kaboodle/ -%{_bindir}/kaboodle -%{tde_libdir}/libkaboodlepart.* -%{_datadir}/applications/kde/kaboodle.desktop -%{_datadir}/apps/kaboodle/ -%{_datadir}/icons/hicolor/*/apps/kaboodle.png -%{_datadir}/services/kaboodle* - -# noatun -%doc %lang(en) %{_docdir}/HTML/en/noatun/ -%{_bindir}/noatun -%{_libdir}/kconf_update_bin/noatun20update -%{tde_libdir}/noatun* -%{_libdir}/libartseffects.* -%{_libdir}/libwinskinvis.* -%{_libdir}/libkdeinit_noatun.* -%{_datadir}/applications/kde/noatun.desktop -%{_datadir}/apps/kconf_update/noatun.upd -%{_datadir}/apps/noatun/ -%{_datadir}/icons/hicolor/*/apps/noatun.png -%{_datadir}/mimelnk/interface/x-winamp-skin.desktop - -# juk -%doc %lang(en) %{_docdir}/HTML/en/juk/ -%{_bindir}/juk -%{_datadir}/applications/kde/juk.desktop -%{_datadir}/apps/juk/ -%{_datadir}/apps/konqueror/servicemenus/jukservicemenu.desktop -%{_datadir}/icons/crystalsvg/*/*/juk* -%{_datadir}/icons/hicolor/*/apps/juk.png - -%files extras-libs -%defattr(-,root,root,-) -%{_libdir}/libnoatun*.la -%{_libdir}/libnoatun*.so.* -%{_libdir}/libnoatunarts.so - -%files -f %{name}.lang -%defattr(-,root,root,-) -%doc COPYING - -# kaboodle -%exclude %{tde_docdir}/HTML/en/kaboodle/ -%exclude %{_bindir}/kaboodle -%exclude %{tde_libdir}/libkaboodlepart.* -%exclude %{_datadir}/applications/kde/kaboodle.desktop -%exclude %{_datadir}/apps/kaboodle/ -%exclude %{_datadir}/icons/hicolor/*/apps/kaboodle.png -%exclude %{_datadir}/services/kaboodle* - -# noatun -%exclude %{tde_docdir}/HTML/en/noatun/ -%exclude %{_bindir}/noatun -%exclude %{_libdir}/kconf_update_bin/noatun20update -%exclude %{tde_libdir}/noatun* -%exclude %{_libdir}/libartseffects.* -%exclude %{_libdir}/libkdeinit_noatun.* -%exclude %{_libdir}/libnoatunarts.* -%exclude %{_libdir}/libnoatuncontrols.* -%exclude %{_libdir}/libnoatun.* -%exclude %{_libdir}/libnoatuntags.* -%exclude %{_libdir}/libwinskinvis.* -%exclude %{_datadir}/applications/kde/noatun.desktop -%exclude %{_datadir}/apps/kconf_update/noatun.upd -%exclude %{_datadir}/apps/noatun/ -%exclude %{_datadir}/icons/hicolor/*/apps/noatun.png -%exclude %{_datadir}/mimelnk/interface/x-winamp-skin.desktop - -# juk -%exclude %{tde_docdir}/HTML/en/juk/ -%exclude %{_bindir}/juk -%exclude %{_datadir}/applications/kde/juk.desktop -%exclude %{_datadir}/apps/juk/ -%exclude %{_datadir}/apps/konqueror/servicemenus/jukservicemenu.desktop -%exclude %{_datadir}/icons/crystalsvg/*/*/juk* -%exclude %{_datadir}/icons/hicolor/*/apps/juk.png - -/etc/xdg/menus/applications-merged/* -%{_libdir}/mcop/* -%{_libdir}/libkdeinit_*.so -#%{_libdir}/liboggarts.so -%{tde_libdir}/* -%{_libdir}/kconf_update_bin/* -%{_bindir}/* -%{_datadir}/applications/kde/* -%{_datadir}/apps/* -%{_datadir}/autostart/* -%{_datadir}/config.kcfg/* -%{_datadir}/desktop-directories/* -%{_datadir}/icons/crystalsvg/*/*/* -%{_datadir}/icons/hicolor/*/*/* -%{_datadir}/icons/locolor/*/*/* -%{_datadir}/mimelnk/* -%{_datadir}/services/* -%{_datadir}/servicetypes/* - -%files libs -%defattr(-,root,root,-) -%exclude %{_libdir}/libnoatun*.* -%{_libdir}/lib*.so.* -%{_libdir}/lib*.la - - -%files devel -%defattr(-,root,root,-) -%{tde_includedir}/* -%{_libdir}/lib*.so -%exclude %{_libdir}/libkdeinit_*.so -%exclude %{_libdir}/libartseffects.so -%exclude %{_libdir}/libnoatunarts.* -#exclude %{_libdir}/liboggarts.so -%exclude %{_libdir}/libwinskinvis.so - - -%changelog -* Mon Sep 19 2011 Francois Andriot - 3.5.12-2 -- Add support for RHEL5 - -* Sat Sep 09 2011 Francois Andriot - 3.5.12-1 -- Initial release for RHEL 6 -- Spec file based on Fedora 8 "kdemultimedia-6:3.5.10-2" diff --git a/redhat/tdemultimedia/kdemultimedia-3.5.13-fix_autostart_again.patch b/redhat/tdemultimedia/kdemultimedia-3.5.13-fix_autostart_again.patch deleted file mode 100644 index 75fdf0610..000000000 --- a/redhat/tdemultimedia/kdemultimedia-3.5.13-fix_autostart_again.patch +++ /dev/null @@ -1,31 +0,0 @@ -commit 7eb7626c8a6d819c040cd9aba0b0bca3b484fde7 -Author: Darrell Anderson -Date: 1337622268 -0500 - - Reverse patch from GIT hash 2cc2e3a2. - -diff --git a/kmix/CMakeLists.txt b/kmix/CMakeLists.txt -index 237c95d..a8a419f 100644 ---- a/kmix/CMakeLists.txt -+++ b/kmix/CMakeLists.txt -@@ -26,7 +26,6 @@ link_directories( - ##### other data ################################ - - install( FILES kmix.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} ) --install( FILES kmix.desktop DESTINATION ${AUTOSTART_INSTALL_DIR} ) - install( FILES kmixui.rc DESTINATION ${DATA_INSTALL_DIR}/kmix ) - install( FILES restore_kmix_volumes.desktop DESTINATION ${AUTOSTART_INSTALL_DIR} ) - install( FILES kmixapplet.desktop DESTINATION ${DATA_INSTALL_DIR}/kicker/applets ) -diff --git a/kmix/Makefile.am b/kmix/Makefile.am -index d2da702..5051363 100644 ---- a/kmix/Makefile.am -+++ b/kmix/Makefile.am -@@ -49,7 +49,7 @@ xdg_apps_DATA = kmix.desktop - rcdir = $(kde_datadir)/kmix - rc_DATA = kmixui.rc - --autostart_DATA = kmix.desktop restore_kmix_volumes.desktop -+autostart_DATA = restore_kmix_volumes.desktop - autostartdir = $(datadir)/autostart - - lnkdir = $(kde_datadir)/kicker/applets diff --git a/redhat/tdemultimedia/kdemultimedia-3.5.13-fix_kmix_autostart.patch b/redhat/tdemultimedia/kdemultimedia-3.5.13-fix_kmix_autostart.patch deleted file mode 100644 index 93a4796a4..000000000 --- a/redhat/tdemultimedia/kdemultimedia-3.5.13-fix_kmix_autostart.patch +++ /dev/null @@ -1,34 +0,0 @@ -commit 7da06e558a75c035ea881347e9da69ef9ee57927 -Author: Timothy Pearson -Date: 1343199702 -0500 - - Fix kmix autostart - This resolves Bug 503, and re-applies commit 2cc2e3a2 as part of the fix - - -diff --git a/kmix/KMixApp.cpp b/kmix/KMixApp.cpp -index d1df895..10e7b6a 100644 ---- a/kmix/KMixApp.cpp -+++ b/kmix/KMixApp.cpp -@@ -28,6 +28,8 @@ - KMixApp::KMixApp() - : KUniqueApplication(), m_kmix( 0 ) - { -+ // We handle autostart via standard autostart-enabled .desktop file instead of the session manager -+ disableSessionManagement(); - } - - -diff --git a/kmix/Makefile.am b/kmix/Makefile.am -index 5051363..d2da702 100644 ---- a/kmix/Makefile.am -+++ b/kmix/Makefile.am -@@ -49,7 +49,7 @@ xdg_apps_DATA = kmix.desktop - rcdir = $(kde_datadir)/kmix - rc_DATA = kmixui.rc - --autostart_DATA = restore_kmix_volumes.desktop -+autostart_DATA = kmix.desktop restore_kmix_volumes.desktop - autostartdir = $(datadir)/autostart - - lnkdir = $(kde_datadir)/kicker/applets diff --git a/redhat/tdemultimedia/kdemultimedia-3.5.13-fix_linear_alphabet.patch b/redhat/tdemultimedia/kdemultimedia-3.5.13-fix_linear_alphabet.patch deleted file mode 100644 index 4bd48f89a..000000000 --- a/redhat/tdemultimedia/kdemultimedia-3.5.13-fix_linear_alphabet.patch +++ /dev/null @@ -1,19 +0,0 @@ -commit fd6afacf70587de329d9b2647b96469bae5e74da -Author: Timothy Pearson -Date: 1327530995 -0600 - - Fix linear alphabet string errors - -diff --git a/mpg123_artsplugin/mpg123/httpget.c b/mpg123_artsplugin/mpg123/httpget.c -index 12c6941..7175011 100644 ---- a/mpg123_artsplugin/mpg123/httpget.c -+++ b/mpg123_artsplugin/mpg123/httpget.c -@@ -83,7 +83,7 @@ void readstring (char *string, int maxlen, FILE *f) - void encode64 (char *source,char *destination) - { - static char *Base64Digits = -- "ABCDEFGHIJKLMNOPTQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; -+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - int n = 0; - int ssiz=strlen(source); - int i; diff --git a/redhat/tdemultimedia/kdemultimedia-3.5.13-fix_mmx_detection.patch b/redhat/tdemultimedia/kdemultimedia-3.5.13-fix_mmx_detection.patch deleted file mode 100644 index 785b9d150..000000000 --- a/redhat/tdemultimedia/kdemultimedia-3.5.13-fix_mmx_detection.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN tdemultimedia/configure.in.in tdemultimedia.new/configure.in.in ---- tdemultimedia/configure.in.in 2010-08-11 22:36:30.000000000 -0500 -+++ tdemultimedia.new/configure.in.in 2012-01-12 22:54:04.000000000 -0600 -@@ -35,7 +35,7 @@ - then - MMX_SUPPORT="no" - else -- as_ver=`echo $as_ver |sed -e "s/.*version //;s/ .*//"` -+ as_ver=`echo|as -v 2>&1 | grep ".*version.*" | awk '{print $NF}'` - as_major=`echo $as_ver |cut -d. -f1` - if test $as_major -gt 2 - then diff --git a/redhat/tdemultimedia/kdemultimedia-3.5.13-missing_ldflags.patch b/redhat/tdemultimedia/kdemultimedia-3.5.13-missing_ldflags.patch deleted file mode 100644 index 7ce3dfda7..000000000 --- a/redhat/tdemultimedia/kdemultimedia-3.5.13-missing_ldflags.patch +++ /dev/null @@ -1,133 +0,0 @@ ---- kdemultimedia/arts/runtime/Makefile.am.ORI 2012-07-31 13:56:06.508165053 +0200 -+++ kdemultimedia/arts/runtime/Makefile.am 2012-07-31 13:57:03.018059604 +0200 -@@ -11,7 +11,7 @@ - structurebuilder_impl.cc structures_impl.cc moduleinfo.cc \ - compatibility.cc localfactory_impl.cc artsbuilderloader_impl.cc - --libartsbuilder_la_LIBADD = -lmcop -lartsflow $(LIBDL) -+libartsbuilder_la_LIBADD = -lmcop -lartsflow $(LIBDL) -lartsflow_idl - libartsbuilder_la_COMPILE_FIRST = artsbuilder.h - libartsbuilder_la_LDFLAGS = $(all_libraries) -L$(arts_libraries) \ - -no-undefined ---- kdemultimedia/arts/gui/kde/Makefile.am.ORI 2012-07-31 14:06:50.128691312 +0200 -+++ kdemultimedia/arts/gui/kde/Makefile.am 2012-07-31 14:07:00.431493289 +0200 -@@ -15,7 +15,7 @@ - klevelmeter_normalbars.cpp klevelmeter_firebars.cpp \ - ktickmarks_impl.cpp kvolumefader_impl.cpp klabel_impl.cpp - --libartsgui_kde_la_LIBADD = $(LIB_KIO) -lkdecore -lkdeui \ -+libartsgui_kde_la_LIBADD = $(LIB_KIO) $(LIB_KDECORE) $(LIB_KDEUI) $(LIB_QT) -lkdefx \ - $(top_builddir)/arts/gui/common/libartsgui_idl.la - libartsgui_kde_la_LDFLAGS = $(all_libraries) -no-undefined - libartsgui_kde_la_COMPILE_FIRST = ../common/artsgui.h ---- kdemultimedia/arts/modules/synth/Makefile.am.ORI 2012-07-31 12:30:46.465821368 +0000 -+++ kdemultimedia/arts/modules/synth/Makefile.am 2012-07-31 12:32:09.287170210 +0000 -@@ -31,7 +31,7 @@ - libartsmodulessynth_la_LIBADD = \ - $(top_builddir)/arts/runtime/libartsbuilder.la \ - $(top_builddir)/arts/midi/libartsmidi_idl.la \ -- -lartsflow -lartsgsl -lartsflow_idl -lmcop -+ -lartsflow -lartsgsl -lartsflow_idl -lmcop -lglib-2.0 - - #libartsmodulessynth_la_LIBADD = $(top_builddir)/arts/gui/common/libartsgui_idl.la $(top_builddir)/arts/midi/libartsmidi_idl.la -lartsflow -lartsflow_idl -lmcop $(LIBDL) $(LIB_KDEUI) $(LIB_KDECORE) - libartsmodulessynth_la_LDFLAGS = $(all_libraries) -L$(arts_libraries) -lartsflow -lartsgsl -no-undefined ---- kdemultimedia/arts/modules/common/Makefile.am.ORI 2012-07-31 12:36:08.682126035 +0000 -+++ kdemultimedia/arts/modules/common/Makefile.am 2012-07-31 12:36:17.362939295 +0000 -@@ -25,7 +25,7 @@ - $(top_builddir)/arts/gui/common/libartsgui_idl.la \ - $(top_builddir)/arts/midi/libartsmidi_idl.la \ - $(top_builddir)/arts/modules/synth/libartsmodulessynth.la \ -- -lartsflow -lartsflow_idl -lmcop $(LIB_KDECORE) -+ -lartsflow -lartsflow_idl -lmcop $(LIB_KDECORE) $(LIB_QT) $(VORBISFILE_LIBS) -lgthread-2.0 - - libartsmodulescommon_la_LDFLAGS = $(all_libraries) -L$(arts_libraries) -no-undefined - ---- kdemultimedia/juk/Makefile.am.ORI 2012-07-31 14:39:39.222531330 +0200 -+++ kdemultimedia/juk/Makefile.am 2012-07-31 14:40:03.805986466 +0200 -@@ -85,7 +85,7 @@ - ################################################## - - juk_LDADD = -lm $(LDADD_GST) $(mblibs) $(LIB_KIO) $(taglib_libs) $(akode_libs) $(LIB_KHTML) $(LIB_ARTS) --juk_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LDFLAGS_GST) $(LIB_QT) -lDCOP $(LIB_KDECORE) $(LIB_KDEUI) -lkdefx $(LIB_KIO) -lktexteditor -lmcop -lartsflow_idl -lkmedia2_idl -lsoundserver_idl -+juk_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LDFLAGS_GST) $(LIB_QT) -lDCOP $(LIB_KDECORE) $(LIB_KDEUI) -lkdefx $(LIB_KIO) -lktexteditor -lmcop -lartsflow_idl -lkmedia2_idl -lsoundserver_idl $(akode_libs) - - KDE_CXXFLAGS = $(USE_EXCEPTIONS) - ---- kdemultimedia/kmid/Makefile.am.ORI 2012-07-31 14:42:26.666868929 +0200 -+++ kdemultimedia/kmid/Makefile.am 2012-07-31 14:43:01.345123193 +0200 -@@ -4,7 +4,7 @@ - lib_LTLIBRARIES = libkmidlib.la - - libkmidlib_la_LDFLAGS = $(all_libraries) --libkmidlib_la_LIBADD = $(LIB_KFILE) $(LIB_KPARTS) $(LIB_KIO) -lkmid -+libkmidlib_la_LIBADD = $(LIB_KFILE) $(LIB_KPARTS) $(LIB_KIO) -lkmid $(LIB_QT) $(LIB_KDEUI) -lDCOP $(LIB_KDECORE) - - libkmidpart_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module - libkmidpart_la_LIBADD = libkmidlib.la ---- kdemultimedia/kmix/Makefile.am.ORI 2012-07-31 14:45:49.958546243 +0200 -+++ kdemultimedia/kmix/Makefile.am 2012-07-31 14:47:51.780002978 +0200 -@@ -25,13 +25,13 @@ - volume.cpp kledbutton.cpp verticaltext.cpp mixerIface.skel \ - kmixtoolbox.cpp mixertoolbox.cpp dialogviewconfiguration.cpp KMixApp.cpp dialogselectmaster.cpp - --kmix_la_LIBADD = $(LIB_KDEUI) $(LIB_KUTILS) $(LIBALIB) $(LIBOSSAUDIO) $(LIBASOUND) -+kmix_la_LIBADD = $(LIB_KDEUI) $(LIB_KUTILS) $(LIBALIB) $(LIBOSSAUDIO) $(LIBASOUND) $(LIB_QT) $(LIB_KDECORE) -lDCOP - kmix_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) -avoid-version - - kmixctrl_la_SOURCES = kmixctrl.cpp mixer.cpp mixset.cpp mixdevice.cpp volume.cpp mixerIface.skel \ - mixertoolbox.cpp mixer_backend.cpp - --kmixctrl_la_LIBADD = $(LIB_KDECORE) $(LIBALIB) $(LIBOSSAUDIO) $(LIBASOUND) -+kmixctrl_la_LIBADD = $(LIB_KDECORE) $(LIBALIB) $(LIBOSSAUDIO) $(LIBASOUND) $(LIB_QT) -lDCOP - kmixctrl_la_LDFLAGS = $(all_libraries) -module -avoid-version - - kmix_panelapplet_la_SOURCES = kmixapplet.cpp \ ---- kdemultimedia/libkcddb/Makefile.am.ORI 2012-07-31 14:54:00.740438712 +0200 -+++ kdemultimedia/libkcddb/Makefile.am 2012-07-31 14:54:14.899151410 +0200 -@@ -14,7 +14,7 @@ - cdinfoencodingwidget.cpp cdinfoencodingwidgetbase.ui - - libkcddb_la_LDFLAGS = $(all_libraries) -version-info 1:0:0 --libkcddb_la_LIBADD = $(LIB_KDECORE) $(LIB_KIO) -+libkcddb_la_LIBADD = $(LIB_KDECORE) $(LIB_KIO) $(LIB_QT) $(LIB_KDEUI) - - METASOURCES = AUTO - ---- kdemultimedia/noatun/library/noatunarts/Makefile.am.ORI 2012-07-31 15:07:07.507909928 +0200 -+++ kdemultimedia/noatun/library/noatunarts/Makefile.am 2012-07-31 15:07:17.378685278 +0200 -@@ -7,7 +7,7 @@ - StereoVolumeControl_impl.cpp Session_impl.cpp - libnoatunarts_la_COMPILE_FIRST = noatunarts.h - libnoatunarts_la_LDFLAGS = $(all_libraries) -avoid-version -no-undefined --libnoatunarts_la_LIBADD = -lkmedia2_idl -lsoundserver_idl -lartsflow -+libnoatunarts_la_LIBADD = -lkmedia2_idl -lsoundserver_idl -lartsflow -lmcop -lartsflow_idl - libnoatunarts_la_METASOURCES = AUTO - - noatunarts.mcoptype: noatunarts.h ---- kdemultimedia/noatun/library/Makefile.am.ftbfs 2011-10-28 21:13:18.000000000 +0200 -+++ kdemultimedia/noatun/library/Makefile.am 2012-07-31 15:20:52.961371759 +0200 -@@ -30,11 +30,11 @@ - libnoatun_la_LIBADD = $(top_builddir)/arts/gui/common/libartsgui.la \ - $(top_builddir)/arts/gui/kde/libartsgui_kde.la $(top_builddir)/arts/modules/libartsmodules.la \ - -lkio -lqtmcop -lkmedia2_idl $(top_builddir)/noatun/library/noatunarts/libnoatunarts.la \ -- -lartsflow -lsoundserver_idl -lartskde $(LIBDL) -+ -lartsflow -lsoundserver_idl -lartskde $(LIBDL) $(LIB_QT) -lDCOP - - libnoatuncontrols_la_SOURCES = controls.cpp scrollinglabel.cpp - libnoatuncontrols_la_LDFLAGS = -version-info 3:0:2 $(KDE_RPATH) $(all_libraries) -no-undefined --libnoatuncontrols_la_LIBADD = $(LIBDL) $(LIB_KDEUI) -+libnoatuncontrols_la_LIBADD = $(LIBDL) $(LIB_KDEUI) $(LIB_QT) $(LIB_KDECORE) - - METASOURCES = AUTO - META_INCLUDES = $(srcdir)/noatun ---- kdemultimedia/noatun/modules/winskin/vis/Makefile.am.ORI 2012-07-31 15:26:20.619544165 +0200 -+++ kdemultimedia/noatun/modules/winskin/vis/Makefile.am 2012-07-31 15:26:33.802272534 +0200 -@@ -17,7 +17,7 @@ - libwinskinvis_la_LDFLAGS= $(all_libraries) -avoid-version \ - -no-undefined - --libwinskinvis_la_LIBADD = -lkmedia2_idl -lsoundserver_idl -lartsflow -+libwinskinvis_la_LIBADD = -lkmedia2_idl -lsoundserver_idl -lartsflow -lartsflow_idl -lmcop - libwinskinvis_la_COMPILE_FIRST = winskinvis.cc - libwinskinvis_la_METASOURCES = AUTO - diff --git a/redhat/tdemultimedia/kdemultimedia-3.5.13-remove_more_applications.patch b/redhat/tdemultimedia/kdemultimedia-3.5.13-remove_more_applications.patch deleted file mode 100644 index 213fd6410..000000000 --- a/redhat/tdemultimedia/kdemultimedia-3.5.13-remove_more_applications.patch +++ /dev/null @@ -1,49 +0,0 @@ -commit 31e44a7b933cb32eaf1c9e3d8bbbaae806963956 -Author: Darrell Anderson -Date: 1331690438 -0500 - - Remove "More Applications" from TDE menu. - This partially resolves bug report 653. - -diff --git a/arts/builder/artsbuilder.desktop b/arts/builder/artsbuilder.desktop -index 52a1b53..22e78e3 100644 ---- a/arts/builder/artsbuilder.desktop -+++ b/arts/builder/artsbuilder.desktop -@@ -119,5 +119,5 @@ MimeType=application/x-artsbuilder; - DocPath=artsbuilder/index.html - X-DCOP-ServiceType=Multi - OnlyShowIn=KDE; --Categories=Qt;KDE;AudioVideo;X-KDE-More; -+Categories=Qt;KDE;AudioVideo; - NoDisplay=true -diff --git a/arts/tools/artscontrol.desktop b/arts/tools/artscontrol.desktop -index d4bc38f..39a2640 100644 ---- a/arts/tools/artscontrol.desktop -+++ b/arts/tools/artscontrol.desktop -@@ -133,5 +133,5 @@ Terminal=false - X-DCOP-ServiceType=Multi - DocPath=artsbuilder/index.html - OnlyShowIn=KDE; --Categories=Qt;KDE;AudioVideo;X-KDE-More; -+Categories=Qt;KDE;AudioVideo; - NoDisplay=true -diff --git a/kaboodle/kaboodle.desktop b/kaboodle/kaboodle.desktop -index 2bddd99..f8f96e9 100644 ---- a/kaboodle/kaboodle.desktop -+++ b/kaboodle/kaboodle.desktop -@@ -80,4 +80,4 @@ GenericName[zu]=Umdlali Womculo - Terminal=false - InitialPreference=6 - X-DCOP-ServiceType=Multi --Categories=Qt;KDE;AudioVideo;X-KDE-More; -+Categories=Qt;KDE;AudioVideo; -diff --git a/kmid/kmid.desktop b/kmid/kmid.desktop -index 3920b85..f99bdda 100644 ---- a/kmid/kmid.desktop -+++ b/kmid/kmid.desktop -@@ -85,4 +85,4 @@ ServiceTypes=Browser/View - X-KDE-Library=libkmidpart - X-KDE-StartupNotify=true - X-DCOP-ServiceType=Multi --Categories=Qt;KDE;AudioVideo;X-KDE-More; -+Categories=Qt;KDE;AudioVideo; diff --git a/redhat/tdemultimedia/kdemultimedia-3.5.13.1.spec b/redhat/tdemultimedia/kdemultimedia-3.5.13.1.spec deleted file mode 100644 index 519d50aaa..000000000 --- a/redhat/tdemultimedia/kdemultimedia-3.5.13.1.spec +++ /dev/null @@ -1,1185 +0,0 @@ -# If TDE is built in a specific prefix (e.g. /opt/trinity), the release will be suffixed with ".opt". -%if "%{?tde_prefix}" != "/usr" -%define _variant .opt -%endif - -# TDE 3.5.13 specific building variables -%define tde_bindir %{tde_prefix}/bin -%define tde_datadir %{tde_prefix}/share -%define tde_docdir %{tde_datadir}/doc -%define tde_includedir %{tde_prefix}/include -%define tde_libdir %{tde_prefix}/%{_lib} - -%define tde_tdeappdir %{tde_datadir}/applications/kde -%define tde_tdedocdir %{tde_docdir}/tde -%define tde_tdeincludedir %{tde_includedir}/tde -%define tde_tdelibdir %{tde_libdir}/trinity - -%define _docdir %{tde_docdir} - -# former extras bits -%define _with_akode --with-akode -## not currently compatible with libtunepimp-0.5 (only libtunepimp-0.4) -#define _with_musicbrainz --with-musicbrainz -%define _with_taglib --with-taglib - -Name: trinity-tdemultimedia -Summary: Multimedia applications for the Trinity Desktop Environment (TDE) -Version: 3.5.13.1 -Release: 1%{?dist}%{?_variant} - -License: GPLv2 -Group: Applications/Multimedia - -Vendor: Trinity Project -Packager: Francois Andriot -URL: http://www.trinitydesktop.org/ - -Prefix: %{tde_prefix} -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -Source0: kdemultimedia-%{version}.tar.gz - - -# RedHat Legacy patches (from Fedora 8) -Patch3: kdemultimedia-3.4.0-xdg.patch -Patch5: kdemultimedia-3.5.7-pthread.patch - - -Obsoletes: trinity-kdemultimedia < %{version}-%{release} -Provides: trinity-kdemultimedia = %{version}-%{release} -Obsoletes: trinity-kdemultimedia-libs < %{version}-%{release} -Provides: trinity-kdemultimedia-libs = %{version}-%{release} -Obsoletes: trinity-kdemultimedia-extras < %{version}-%{release} -Provides: trinity-kdemultimedia-extras = %{version}-%{release} -Obsoletes: trinity-kdemultimedia-extras-libs < %{version}-%{release} -Provides: trinity-kdemultimedia-extras-libs = %{version}-%{release} - - -BuildRequires: autoconf automake libtool m4 -BuildRequires: qt3-devel -BuildRequires: trinity-tqtinterface-devel >= %{version} -BuildRequires: trinity-arts-devel >= %{version} -BuildRequires: trinity-tdelibs-devel >= %{version} -%{?_with_akode:BuildRequires: trinity-akode-devel} - -BuildRequires: desktop-file-utils -BuildRequires: zlib-devel - -# Audio libraries -BuildRequires: libvorbis-devel -BuildRequires: audiofile-devel -BuildRequires: libtheora-devel -BuildRequires: alsa-lib-devel -%{?_with_musicbrainz:BuildRequires: libmusicbrainz-devel libtunepimp-devel} -%{?_with_taglib:BuildRequires: taglib-devel} -BuildRequires: cdparanoia - -%if 0%{?mgaversion} || 0%{?mdkversion} -BuildRequires: %{_lib}gstreamer0.10-devel -BuildRequires: %{_lib}flac-devel -BuildRequires: libcdda-devel -%else -BuildRequires: gstreamer-devel -BuildRequires: flac-devel -BuildRequires: cdparanoia-devel -%endif - -# X11 Libraries -%if 0%{?mgaversion} || 0%{?mdkversion} -BuildRequires: %{_lib}xxf86dga-devel -BuildRequires: %{_lib}xxf86vm-devel -BuildRequires: %{_lib}xtst-devel -%endif -%if 0%{?rhel} == 4 -BuildRequires: xorg-x11-devel -%endif -%if 0%{?rhel} >= 5 || 0%{?fedora} || 0%{?suse_version} -BuildRequires: libXxf86dga-devel -BuildRequires: libXxf86vm-devel -BuildRequires: libXt-devel -%endif - -# XINE support -%if 0%{?fedora} || 0%{?rhel} >= 5 || 0%{?suse_version} || 0%{?mgaversion} || 0%{?mdkversion} -%define with_xine 1 -%if 0%{?mgaversion} || 0%{?mdkversion} -BuildRequires: %{_lib}xine-devel -%endif -%if 0%{?fedora} || 0%{?rhel} -BuildRequires: xine-lib-devel -%endif -%if 0%{?suse_version} >= 1220 -BuildRequires: libxine-devel -%endif -%endif - -Requires: trinity-artsbuilder = %{version}-%{release} -Requires: trinity-juk = %{version}-%{release} -Requires: trinity-kaboodle = %{version}-%{release} -Requires: trinity-kaudiocreator = %{version}-%{release} -Requires: %{name}-kfile-plugins = %{version}-%{release} -Requires: %{name}-kappfinder-data = %{version}-%{release} -Requires: %{name}-kio-plugins = %{version}-%{release} -Requires: trinity-kmid = %{version}-%{release} -Requires: trinity-kmix = %{version}-%{release} -Requires: trinity-krec = %{version}-%{release} -Requires: trinity-kscd = %{version}-%{release} -Requires: trinity-libarts-akode = %{version}-%{release} -Requires: trinity-libarts-audiofile = %{version}-%{release} -Requires: trinity-libarts-mpeglib = %{version}-%{release} -%{?with_xine:Requires: trinity-libarts-xine = %{version}-%{release}} -Requires: trinity-libkcddb = %{version}-%{release} -Requires: trinity-mpeglib = %{version}-%{release} -Requires: trinity-noatun = %{version}-%{release} - - -%description -The Trinity Desktop Environment (TDE) is a GUI desktop for the X Window -System. The %{name} package contains multimedia applications for -TDE, including: - artsbuilder, Synthesizer designer for aRts - juk, a media player - kmid, a midi player - kmix, an audio mixer - arts, additional functionality for the aRts sound system - krec, a recording tool - kscd, an Audio-CD player - kaudiocreator, a graphical frontend for audio file creation - kaboodle, a media player - noatun, a media player - -%files - -########## - -%package -n trinity-artsbuilder -Summary: Synthesizer designer for aRts -Group: Applications/Multimedia - -%description -n trinity-artsbuilder -This is the analog Realtime synthesizer's graphical design tool. - -%files -n trinity-artsbuilder -%defattr(-,root,root,-) -%{tde_bindir}/artsbuilder -%{tde_bindir}/artscontrol -%{tde_bindir}/midisend -%{tde_libdir}/libartsbuilder.la -%{tde_libdir}/libartsbuilder.so.* -%{tde_libdir}/libartscontrolapplet.la -%{tde_libdir}/libartscontrolapplet.so.* -%{tde_libdir}/libartscontrolsupport.la -%{tde_libdir}/libartscontrolsupport.so.* -%{tde_libdir}/libartsgui_idl.la -%{tde_libdir}/libartsgui_idl.so.* -%{tde_libdir}/libartsgui_kde.la -%{tde_libdir}/libartsgui_kde.so.* -%{tde_libdir}/libartsgui.la -%{tde_libdir}/libartsgui.so.* -%{tde_libdir}/libartsmidi_idl.la -%{tde_libdir}/libartsmidi_idl.so.* -%{tde_libdir}/libartsmidi.la -%{tde_libdir}/libartsmidi.so.* -%{tde_libdir}/libartsmodulescommon.la -%{tde_libdir}/libartsmodulescommon.so.* -%{tde_libdir}/libartsmoduleseffects.la -%{tde_libdir}/libartsmoduleseffects.so.* -%{tde_libdir}/libartsmodulesmixers.la -%{tde_libdir}/libartsmodulesmixers.so.* -%{tde_libdir}/libartsmodules.la -%{tde_libdir}/libartsmodules.so.* -%{tde_libdir}/libartsmodulessynth.la -%{tde_libdir}/libartsmodulessynth.so.* -%{tde_libdir}/mcop/Arts/ArtsBuilderLoader.mcopclass -%{tde_libdir}/mcop/artsbuilder.mcopclass -%{tde_libdir}/mcop/artsbuilder.mcoptype -%{tde_libdir}/mcop/Arts/Button.mcopclass -%{tde_libdir}/mcop/Arts/EffectRackGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/Effect_WAVECAPTURE.mcopclass -%{tde_libdir}/mcop/Arts/Environment/Container.mcopclass -%{tde_libdir}/mcop/Arts/Environment/EffectRackItem.mcopclass -%{tde_libdir}/mcop/Arts/Environment/InstrumentItemGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/Environment/InstrumentItem.mcopclass -%{tde_libdir}/mcop/Arts/Environment/MixerItem.mcopclass -%{tde_libdir}/mcop/Arts/Fader.mcopclass -%{tde_libdir}/mcop/Arts/FiveBandMonoComplexEQGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/FiveBandMonoComplexEQ.mcopclass -%{tde_libdir}/mcop/Arts/FreeverbGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/GenericGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/GraphLine.mcopclass -%{tde_libdir}/mcop/artsgui.mcopclass -%{tde_libdir}/mcop/artsgui.mcoptype -%{tde_libdir}/mcop/Arts/HBox.mcopclass -%{tde_libdir}/mcop/Arts/Label.mcopclass -%{tde_libdir}/mcop/Arts/LayoutBox.mcopclass -%{tde_libdir}/mcop/Arts/LevelMeter.mcopclass -%{tde_libdir}/mcop/Arts/LineEdit.mcopclass -%{tde_libdir}/mcop/Arts/LittleStereoMixerChannelGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/LittleStereoMixerChannel.mcopclass -%{tde_libdir}/mcop/Arts/LocalFactory.mcopclass -%{tde_libdir}/mcop/Arts/MidiManager.mcopclass -%{tde_libdir}/mcop/artsmidi.mcopclass -%{tde_libdir}/mcop/artsmidi.mcoptype -%{tde_libdir}/mcop/Arts/MixerGuiFactory.mcopclass -%{tde_libdir}/mcop/artsmodulescommon.mcopclass -%{tde_libdir}/mcop/artsmodulescommon.mcoptype -%{tde_libdir}/mcop/artsmoduleseffects.mcopclass -%{tde_libdir}/mcop/artsmoduleseffects.mcoptype -%{tde_libdir}/mcop/artsmodules.mcopclass -%{tde_libdir}/mcop/artsmodules.mcoptype -%{tde_libdir}/mcop/artsmodulesmixers.mcopclass -%{tde_libdir}/mcop/artsmodulesmixers.mcoptype -%{tde_libdir}/mcop/artsmodulessynth.mcopclass -%{tde_libdir}/mcop/artsmodulessynth.mcoptype -%{tde_libdir}/mcop/Arts/MonoSimpleMixerChannelGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/MonoSimpleMixerChannel.mcopclass -%{tde_libdir}/mcop/Arts/MonoToStereo.mcopclass -%{tde_libdir}/mcop/Arts/PopupBox.mcopclass -%{tde_libdir}/mcop/Arts/Poti.mcopclass -%{tde_libdir}/mcop/Arts/SimpleMixerChannelGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/SimpleMixerChannel.mcopclass -%{tde_libdir}/mcop/Arts/SpinBox.mcopclass -%{tde_libdir}/mcop/Arts/StereoBalanceGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/StereoBalance.mcopclass -%{tde_libdir}/mcop/Arts/StereoCompressorGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/StereoFirEqualizerGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/StereoToMono.mcopclass -%{tde_libdir}/mcop/Arts/StereoVolumeControlGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/StereoVolumeControlGui.mcopclass -%{tde_libdir}/mcop/Arts/StructureBuilder.mcopclass -%{tde_libdir}/mcop/Arts/StructureDesc.mcopclass -%{tde_libdir}/mcop/Arts/Synth_ATAN_SATURATE.mcopclass -%{tde_libdir}/mcop/Arts/Synth_AUTOPANNER.mcopclass -%{tde_libdir}/mcop/Arts/Synth_BRICKWALL_LIMITER.mcopclass -%{tde_libdir}/mcop/Arts/Synth_CAPTURE_WAV.mcopclass -%{tde_libdir}/mcop/Arts/Synth_CDELAY.mcopclass -%{tde_libdir}/mcop/Arts/Synth_COMPRESSOR.mcopclass -%{tde_libdir}/mcop/Arts/Synth_DATA.mcopclass -%{tde_libdir}/mcop/Arts/Synth_DEBUG.mcopclass -%{tde_libdir}/mcop/Arts/Synth_DELAY.mcopclass -%{tde_libdir}/mcop/Arts/Synth_DIV.mcopclass -%{tde_libdir}/mcop/Arts/Synth_ENVELOPE_ADSR.mcopclass -%{tde_libdir}/mcop/Arts/Synth_FM_SOURCE.mcopclass -%{tde_libdir}/mcop/Arts/Synth_FREEVERB.mcopclass -%{tde_libdir}/mcop/Arts/Synth_FX_CFLANGER.mcopclass -%{tde_libdir}/mcop/Arts/Synth_MIDI_DEBUG.mcopclass -%{tde_libdir}/mcop/Arts/Synth_MIDI_TEST.mcopclass -%{tde_libdir}/mcop/Arts/Synth_MOOG_VCF.mcopclass -%{tde_libdir}/mcop/Arts/Synth_NIL.mcopclass -%{tde_libdir}/mcop/Arts/Synth_NOISE.mcopclass -%{tde_libdir}/mcop/Arts/Synth_OSC.mcopclass -%{tde_libdir}/mcop/Arts/Synth_PITCH_SHIFT_FFT.mcopclass -%{tde_libdir}/mcop/Arts/Synth_PITCH_SHIFT.mcopclass -%{tde_libdir}/mcop/Arts/Synth_PLAY_PAT.mcopclass -%{tde_libdir}/mcop/Arts/Synth_PSCALE.mcopclass -%{tde_libdir}/mcop/Arts/Synth_RC.mcopclass -%{tde_libdir}/mcop/Arts/Synth_SEQUENCE_FREQ.mcopclass -%{tde_libdir}/mcop/Arts/Synth_SEQUENCE.mcopclass -%{tde_libdir}/mcop/Arts/Synth_SHELVE_CUTOFF.mcopclass -%{tde_libdir}/mcop/Arts/Synth_STD_EQUALIZER.mcopclass -%{tde_libdir}/mcop/Arts/Synth_STEREO_COMPRESSOR.mcopclass -%{tde_libdir}/mcop/Arts/Synth_STEREO_FIR_EQUALIZER.mcopclass -%{tde_libdir}/mcop/Arts/Synth_STEREO_PITCH_SHIFT_FFT.mcopclass -%{tde_libdir}/mcop/Arts/Synth_STEREO_PITCH_SHIFT.mcopclass -%{tde_libdir}/mcop/Arts/Synth_TREMOLO.mcopclass -%{tde_libdir}/mcop/Arts/Synth_VOICE_REMOVAL.mcopclass -%{tde_libdir}/mcop/Arts/Synth_WAVE_PULSE.mcopclass -%{tde_libdir}/mcop/Arts/Synth_WAVE_SOFTSAW.mcopclass -%{tde_libdir}/mcop/Arts/Synth_WAVE_SQUARE.mcopclass -%{tde_libdir}/mcop/Arts/Synth_WAVE_TRI.mcopclass -%{tde_libdir}/mcop/Arts/Synth_XFADE.mcopclass -%{tde_libdir}/mcop/Arts/VBox.mcopclass -%{tde_libdir}/mcop/Arts/VoiceRemovalGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/Widget.mcopclass -%{tde_tdeappdir}/artsbuilder.desktop -%{tde_tdeappdir}/artscontrol.desktop -%{tde_datadir}/apps/artsbuilder/ -%{tde_datadir}/apps/artscontrol/ -%{tde_datadir}/apps/kicker/applets/artscontrolapplet.desktop -%{tde_datadir}/icons/crystalsvg/*/actions/artsaudiomanager.png -%{tde_datadir}/icons/crystalsvg/*/actions/artsbuilderexecute.png -%{tde_datadir}/icons/crystalsvg/*/actions/artsenvironment.png -%{tde_datadir}/icons/crystalsvg/*/actions/artsfftscope.png -%{tde_datadir}/icons/crystalsvg/*/actions/artsmediatypes.png -%{tde_datadir}/icons/crystalsvg/*/actions/artsmidimanager.png -%{tde_datadir}/icons/crystalsvg/scalable/actions/artsaudiomanager.svgz -%{tde_datadir}/icons/crystalsvg/scalable/actions/artsenvironment.svgz -%{tde_datadir}/icons/crystalsvg/scalable/actions/artsfftscope.svgz -%{tde_datadir}/icons/crystalsvg/scalable/actions/artsmediatypes.svgz -%{tde_datadir}/icons/crystalsvg/scalable/actions/artsmidimanager.svgz -%{tde_datadir}/icons/hicolor/*/apps/artsbuilder.png -%{tde_datadir}/icons/hicolor/*/apps/artscontrol.png -%{tde_datadir}/icons/hicolor/scalable/apps/artsbuilder.svgz -%{tde_datadir}/icons/hicolor/scalable/apps/artscontrol.svgz -%{tde_datadir}/mimelnk/application/x-artsbuilder.desktop -%{tde_tdedocdir}/HTML/en/artsbuilder/ - -%post -n trinity-artsbuilder -/sbin/ldconfig -for f in crystalsvg hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-artsbuilder -/sbin/ldconfig -for f in crystalsvg hicolor locolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package -n trinity-juk -Summary: Music organizer and player for Trinity -Group: Applications/Multimedia - -%description -n trinity-juk -JuK (pronounced "jook") is a jukebox and music manager for the TDE -desktop similar to jukebox software on other platforms such as -iTunes or RealOne. - -Some of JuK's features include: -* Support for Ogg Vorbis and MP3 formats -* Tag editing support for both formats, including ID3v2 for MP3 files. - Multitagging or editing a selection of multiple files at once is also - supported -* Output to either the aRts, default KDE sound system, or GStreamer -* Management of your "collection" and multiple playlists -* Import and export to m3u playlists -* Binary caching of audio meta-data and playlist information for faster - load times (starting with the second time you run JuK) -* Integration into TDE that allows drag-and-drop and clipboard usage - with other TDE and X apps - -%files -n trinity-juk -%defattr(-,root,root,-) -%{tde_bindir}/juk -%{tde_tdeappdir}/juk.desktop -%{tde_datadir}/apps/juk/ -%{tde_datadir}/apps/konqueror/servicemenus/jukservicemenu.desktop -%{tde_datadir}/icons/crystalsvg/*/actions/juk_dock.png -%{tde_datadir}/icons/hicolor/*/apps/juk.png -%{tde_tdedocdir}/HTML/en/juk/ - -%post -n trinity-juk -for f in crystalsvg hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-juk -for f in crystalsvg hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package -n trinity-kaboodle -Summary: light, embedded media player for Trinity -Group: Applications/Multimedia - -%if 0%{?with_xine} -Requires: trinity-libarts-xine = %{version}-%{release} -%endif - -%description -n trinity-kaboodle -Kaboodle is a light, embedded media player, supporting both video and audio, -for TDE. It uses the aRts framework for playing media files. - -%files -n trinity-kaboodle -%defattr(-,root,root,-) -%{tde_bindir}/kaboodle -%{tde_tdelibdir}/libkaboodlepart.la -%{tde_tdelibdir}/libkaboodlepart.so -%{tde_tdeappdir}/kaboodle.desktop -%{tde_datadir}/apps/kaboodle/ -%{tde_datadir}/icons/hicolor/*/apps/kaboodle.png -%{tde_datadir}/services/kaboodle_component.desktop -%{tde_datadir}/services/kaboodleengine.desktop -%{tde_tdedocdir}/HTML/en/kaboodle/ - -%post -n trinity-kaboodle -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-kaboodle -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package -n trinity-kaudiocreator -Summary: CD ripper and audio encoder frontend for Trinity -Group: Applications/Multimedia - -Requires: %{name}-kio-plugins = %{version}-%{release} -Requires: vorbis-tools -Requires: flac - -%description -n trinity-kaudiocreator -KAudioCreator is a tool for audio extraction (ripping) and encoding. It can -keep your WAV files, or convert them to Ogg/Vorbis, MP3, or FLAC. It also -searches CDDB to retrieve the information of the disk. - -%files -n trinity-kaudiocreator -%defattr(-,root,root,-) -%{tde_bindir}/kaudiocreator -%{tde_tdeappdir}/kaudiocreator.desktop -%{tde_datadir}/apps/kaudiocreator/ -%{tde_datadir}/apps/kconf_update/kaudiocreator-libkcddb.upd -%{tde_datadir}/apps/kconf_update/kaudiocreator-meta.upd -%{tde_datadir}/apps/kconf_update/upgrade-kaudiocreator-metadata.sh -%{tde_datadir}/apps/konqueror/servicemenus/audiocd_extract.desktop -%{tde_datadir}/config.kcfg/kaudiocreator.kcfg -%{tde_datadir}/config.kcfg/kaudiocreator_encoders.kcfg -%{tde_datadir}/icons/hicolor/*/apps/kaudiocreator.png -%{tde_datadir}/icons/locolor/*/apps/kaudiocreator.png -%{tde_tdedocdir}/HTML/en/kaudiocreator/ - -%post -n trinity-kaudiocreator -for f in hicolor locolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-kaudiocreator -for f in hicolor locolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package kfile-plugins -Summary: au/avi/m3u/mp3/ogg/wav plugins for kfile -Group: Applications/Multimedia - -%description kfile-plugins -au/avi/m3u/mp3/ogg/wav file metainformation plugins for Trinity. - -%files kfile-plugins -%defattr(-,root,root,-) -%{tde_tdelibdir}/kfile_au.la -%{tde_tdelibdir}/kfile_au.so -%{tde_tdelibdir}/kfile_avi.la -%{tde_tdelibdir}/kfile_avi.so -%{tde_tdelibdir}/kfile_flac.la -%{tde_tdelibdir}/kfile_flac.so -%{tde_tdelibdir}/kfile_m3u.la -%{tde_tdelibdir}/kfile_m3u.so -%{tde_tdelibdir}/kfile_mp3.la -%{tde_tdelibdir}/kfile_mp3.so -%{tde_tdelibdir}/kfile_mpc.la -%{tde_tdelibdir}/kfile_mpc.so -%{tde_tdelibdir}/kfile_mpeg.la -%{tde_tdelibdir}/kfile_mpeg.so -%{tde_tdelibdir}/kfile_ogg.la -%{tde_tdelibdir}/kfile_ogg.so -%{tde_tdelibdir}/kfile_sid.la -%{tde_tdelibdir}/kfile_sid.so -%{tde_tdelibdir}/kfile_theora.la -%{tde_tdelibdir}/kfile_theora.so -%{tde_tdelibdir}/kfile_wav.la -%{tde_tdelibdir}/kfile_wav.so -%{tde_datadir}/services/kfile_au.desktop -%{tde_datadir}/services/kfile_avi.desktop -%{tde_datadir}/services/kfile_flac.desktop -%{tde_datadir}/services/kfile_m3u.desktop -%{tde_datadir}/services/kfile_mp3.desktop -%{tde_datadir}/services/kfile_mpc.desktop -%{tde_datadir}/services/kfile_mpeg.desktop -%{tde_datadir}/services/kfile_ogg.desktop -%{tde_datadir}/services/kfile_sid.desktop -%{tde_datadir}/services/kfile_theora.desktop -%{tde_datadir}/services/kfile_wav.desktop - -########## - -%package kappfinder-data -Summary: multimedia data for kappfinder-trinity -Group: Applications/Multimedia - -Requires: trinity-kappfinder - -%description kappfinder-data -This package provides data on multimedia applications for kappfinder. - -%files kappfinder-data -%defattr(-,root,root,-) -%{tde_datadir}/apps/kappfinder/* -%{tde_datadir}/desktop-directories/[kt]de-multimedia-music.directory -%{tde_prefix}/etc/xdg/menus/applications-merged/trinity-multimedia-music.menu - -########## - -%package kio-plugins -Summary: Enables the browsing of audio CDs under Konqueror -Group: Applications/Multimedia - -%description kio-plugins -This package allow audio CDs to be browsed like a file system using -Konqueror and the audiocd:/ URL. - -%files kio-plugins -%defattr(-,root,root,-) -%{tde_tdelibdir}/kcm_audiocd.la -%{tde_tdelibdir}/kcm_audiocd.so -%{tde_tdelibdir}/kio_audiocd.la -%{tde_tdelibdir}/kio_audiocd.so -%{tde_tdelibdir}/libaudiocd_encoder_flac.la -%{tde_tdelibdir}/libaudiocd_encoder_flac.so -%{tde_tdelibdir}/libaudiocd_encoder_lame.la -%{tde_tdelibdir}/libaudiocd_encoder_lame.so -%{tde_tdelibdir}/libaudiocd_encoder_vorbis.la -%{tde_tdelibdir}/libaudiocd_encoder_vorbis.so -%{tde_tdelibdir}/libaudiocd_encoder_wav.la -%{tde_tdelibdir}/libaudiocd_encoder_wav.so -%{tde_libdir}/libaudiocdplugins.so.* -%{tde_tdeappdir}/audiocd.desktop -%{tde_datadir}/apps/kconf_update/audiocd.upd -%{tde_datadir}/apps/kconf_update/upgrade-metadata.sh -%{tde_datadir}/config.kcfg/audiocd_lame_encoder.kcfg -%{tde_datadir}/config.kcfg/audiocd_vorbis_encoder.kcfg -%{tde_datadir}/services/audiocd.protocol -%{tde_tdedocdir}/HTML/en/kioslave/audiocd.docbook - -%post kio-plugins -/sbin/ldconfig -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun kio-plugins -/sbin/ldconfig -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package -n trinity-kmid -Summary: MIDI/karaoke player for Trinity -Group: Applications/Multimedia - -%description -n trinity-kmid -This package provides a MIDI and karaoke player for TDE. - -%files -n trinity-kmid -%defattr(-,root,root,-) -%{tde_bindir}/kmid -%{tde_tdelibdir}/libkmidpart.la -%{tde_tdelibdir}/libkmidpart.so -%{tde_libdir}/libkmidlib.so.* -%{tde_tdeappdir}/kmid.desktop -%{tde_datadir}/apps/kmid/ -%{tde_datadir}/icons/hicolor/*/apps/kmid.png -%{tde_datadir}/mimelnk/audio/x-karaoke.desktop -%{tde_datadir}/servicetypes/audiomidi.desktop -%{tde_tdedocdir}/HTML/en/kmid/ - -%post -n trinity-kmid -/sbin/ldconfig -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-kmid -/sbin/ldconfig -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package -n trinity-kmix -Summary: Sound mixer applet for Trinity -Group: Applications/Multimedia - -%description -n trinity-kmix -This package includes TDE's dockable sound mixer applet. - -%files -n trinity-kmix -%defattr(-,root,root,-) -%{tde_bindir}/kmix -%{tde_bindir}/kmixctrl -%{tde_tdelibdir}/kmix.la -%{tde_tdelibdir}/kmix.so -%{tde_tdelibdir}/kmix_panelapplet.la -%{tde_tdelibdir}/kmix_panelapplet.so -%{tde_tdelibdir}/kmixctrl.la -%{tde_tdelibdir}/kmixctrl.so -%{tde_libdir}/lib[kt]deinit_kmix.so -%{tde_libdir}/lib[kt]deinit_kmixctrl.so -%{tde_tdeappdir}/kmix.desktop -%{tde_datadir}/apps/kicker/applets/kmixapplet.desktop -%{tde_datadir}/apps/kmix/ -%{tde_datadir}/autostart/kmix.desktop -%{tde_datadir}/autostart/restore_kmix_volumes.desktop -%{tde_datadir}/icons/hicolor/*/apps/kmix.png -%{tde_datadir}/services/kmixctrl_restore.desktop -%{tde_tdedocdir}/HTML/en/kmix/ - -%post -n trinity-kmix -/sbin/ldconfig -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-kmix -/sbin/ldconfig -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package -n trinity-krec -Summary: Sound recorder utility for Trinity -Group: Applications/Multimedia - -%description -n trinity-krec -This is a sound recording utility for Trinity. - -%files -n trinity-krec -%defattr(-,root,root,-) -%{tde_bindir}/krec -%{tde_tdelibdir}/kcm_krec.la -%{tde_tdelibdir}/kcm_krec.so -%{tde_tdelibdir}/kcm_krec_files.la -%{tde_tdelibdir}/kcm_krec_files.so -%{tde_tdelibdir}/krec.la -%{tde_tdelibdir}/krec.so -%{tde_tdelibdir}/libkrecexport_ogg.la -%{tde_tdelibdir}/libkrecexport_ogg.so -%{tde_tdelibdir}/libkrecexport_wave.la -%{tde_tdelibdir}/libkrecexport_wave.so -%{tde_libdir}/lib[kt]deinit_krec.so -%{tde_tdeappdir}/krec.desktop -%{tde_datadir}/apps/krec/ -%{tde_datadir}/icons/hicolor/*/apps/krec.png -%{tde_datadir}/services/kcm_krec.desktop -%{tde_datadir}/services/kcm_krec_files.desktop -%{tde_datadir}/services/krec_exportogg.desktop -%{tde_datadir}/services/krec_exportwave.desktop -%{tde_datadir}/servicetypes/krec_exportitem.desktop -%{tde_tdedocdir}/HTML/en/krec/ - -%post -n trinity-krec -/sbin/ldconfig -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-krec -/sbin/ldconfig -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package -n trinity-kscd -Summary: Audio CD player for Trinity -Group: Applications/Multimedia - -%description -n trinity-kscd -This is Trinity's audio CD player. - -%files -n trinity-kscd -%defattr(-,root,root,-) -%{tde_bindir}/kscd -%{tde_bindir}/workman2cddb.pl -%{tde_tdeappdir}/kscd.desktop -%{tde_datadir}/apps/konqueror/servicemenus/audiocd_play.desktop -%{tde_datadir}/apps/kscd/ -%{tde_datadir}/apps/profiles/kscd.profile.xml -%{tde_datadir}/config.kcfg/kscd.kcfg -%{tde_datadir}/icons/hicolor/*/apps/kscd.png -%{tde_datadir}/mimelnk/text/xmcd.desktop -%{tde_tdedocdir}/HTML/en/kscd/ - -%post -n trinity-kscd -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-kscd -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package -n trinity-libarts-akode -Summary: Akode plugin for aRts -Group: Environment/Libraries - -%description -n trinity-libarts-akode -This package contains akode plugins for aRts. - -%files -n trinity-libarts-akode -%defattr(-,root,root,-) -%{tde_libdir}/libarts_akode.so.* -%{tde_libdir}/libarts_akode.la -%{tde_libdir}/mcop/akodearts.mcoptype -%{tde_libdir}/mcop/akodearts.mcopclass -%{tde_libdir}/mcop/akodeMPCPlayObject.mcopclass -%{tde_libdir}/mcop/akodePlayObject.mcopclass -%{tde_libdir}/mcop/akodeSpeexStreamPlayObject.mcopclass -%{tde_libdir}/mcop/akodeVorbisStreamPlayObject.mcopclass -%{tde_libdir}/mcop/akodeXiphPlayObject.mcopclass - -# -devel - -%post -n trinity-libarts-akode -/sbin/ldconfig - -%postun -n trinity-libarts-akode -/sbin/ldconfig - -########## - -%package -n trinity-libarts-audiofile -Summary: Audiofile plugin for aRts -Group: Environment/Libraries - -%description -n trinity-libarts-audiofile -This package contains audiofile plugins for aRts. - -%files -n trinity-libarts-audiofile -%defattr(-,root,root,-) -%{tde_libdir}/libarts_audiofile.so.* -%{tde_libdir}/libarts_audiofile.la -%{tde_libdir}/mcop/Arts/audiofilePlayObject.mcopclass -%{tde_libdir}/mcop/audiofilearts.mcopclass -%{tde_libdir}/mcop/audiofilearts.mcoptype - -%post -n trinity-libarts-audiofile -/sbin/ldconfig - -%postun -n trinity-libarts-audiofile -/sbin/ldconfig - -########## - -%package -n trinity-libarts-mpeglib -Summary: Mpeglib plugin for aRts, supporting mp3 and mpeg audio/video -Group: Environment/Libraries - -%description -n trinity-libarts-mpeglib -This package contains the mpeglib aRts plugin, supporting mp3 and mpeg -audio and video. - -This is the arts (TDE Sound daemon) plugin. - -%files -n trinity-libarts-mpeglib -%defattr(-,root,root,-) -%{tde_bindir}/mpeglibartsplay -%{tde_libdir}/libarts_mpeglib-0.3.0.so.* -%{tde_libdir}/libarts_mpeglib.la -%{tde_libdir}/libarts_splay.so.* -%{tde_libdir}/libarts_splay.la -%{tde_libdir}/mcop/CDDAPlayObject.mcopclass -%{tde_libdir}/mcop/MP3PlayObject.mcopclass -%{tde_libdir}/mcop/NULLPlayObject.mcopclass -%{tde_libdir}/mcop/OGGPlayObject.mcopclass -%{tde_libdir}/mcop/SplayPlayObject.mcopclass -%{tde_libdir}/mcop/WAVPlayObject.mcopclass - -%post -n trinity-libarts-mpeglib -/sbin/ldconfig - -%postun -n trinity-libarts-mpeglib -/sbin/ldconfig - -########## - -%if 0%{?with_xine} -%package -n trinity-libarts-xine -Summary: aRts plugin enabling xine support -Group: Environment/Libraries - -%description -n trinity-libarts-xine -This package contains aRts' xine plugin, allowing the use of the xine -multimedia engine though aRts. - -%files -n trinity-libarts-xine -%defattr(-,root,root,-) -%{tde_tdelibdir}/videothumbnail.la -%{tde_tdelibdir}/videothumbnail.so -%{tde_libdir}/libarts_xine.so.* -%{tde_libdir}/libarts_xine.la -%{tde_libdir}/mcop/xineAudioPlayObject.mcopclass -%{tde_libdir}/mcop/xineVideoPlayObject.mcopclass -%{tde_datadir}/apps/videothumbnail/sprocket-large.png -%{tde_datadir}/apps/videothumbnail/sprocket-medium.png -%{tde_datadir}/apps/videothumbnail/sprocket-small.png -%{tde_datadir}/services/videothumbnail.desktop - -%post -n trinity-libarts-xine -/sbin/ldconfig - -%postun -n trinity-libarts-xine -/sbin/ldconfig -%endif - -########## - -%package -n trinity-libkcddb -Summary: CDDB library for Trinity -Group: Environment/Libraries - -%description -n trinity-libkcddb -The Trinity native CDDB (CD Data Base) library, providing easy access to Audio -CD meta-information (track titles, artist information, etc.) from on-line -databases, for TDE applications. - -%files -n trinity-libkcddb -%defattr(-,root,root,-) -%{tde_tdelibdir}/kcm_cddb.la -%{tde_tdelibdir}/kcm_cddb.so -%{tde_libdir}/libkcddb.so.* -%{tde_tdeappdir}/libkcddb.desktop -%{tde_datadir}/apps/kconf_update/kcmcddb-emailsettings.upd -%{tde_datadir}/config.kcfg/libkcddb.kcfg - -%post -n trinity-libkcddb -/sbin/ldconfig -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-libkcddb -/sbin/ldconfig -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package -n trinity-mpeglib -Summary: MP3 and MPEG-1 audio and video library -Group: Environment/Libraries -Requires: trinity-libarts-mpeglib = %{version}-%{release} - -%description -n trinity-mpeglib -mpeglib is a MPEG-1 and MP3 audio and video library. It supports -MPEG-1 audio (layers 1, 2, 3), MPEG-1 video, MPEG-1 system layer, -and WAV playback - -%files -n trinity-mpeglib -%defattr(-,root,root,-) -%{tde_bindir}/yaf-cdda -%{tde_bindir}/yaf-mpgplay -%{tde_bindir}/yaf-splay -%{tde_bindir}/yaf-tplay -%{tde_bindir}/yaf-vorbis -%{tde_bindir}/yaf-yuv -%{tde_libdir}/libmpeg-0.3.0.so -%{tde_libdir}/libyafcore.so -%{tde_libdir}/libyafxplayer.so - -%post -n trinity-mpeglib -/sbin/ldconfig - -%postun -n trinity-mpeglib -/sbin/ldconfig - -########## - -%package -n trinity-noatun -Summary: Media player for Trinity -Group: Applications/Multimedia - -# 20120802: Hack to avoir dependency issue on MGA2 and MDV2011 -%if 0%{?mgaversion} || 0%{?mdkversion} -Provides: devel(libnoatunarts) -Provides: devel(libnoatunarts(64bit)) -%endif - -%description -n trinity-noatun -Noatun is an aRts-based audio and video player for Trinity. It supports all -formats supported by your installation of aRts (including aRts plugins). - -%files -n trinity-noatun -%defattr(-,root,root,-) -%{tde_bindir}/noatun -%{tde_libdir}/kconf_update_bin/noatun20update -%{tde_tdelibdir}/noatun.la -%{tde_tdelibdir}/noatun.so -%{tde_tdelibdir}/noatun_dcopiface.la -%{tde_tdelibdir}/noatun_dcopiface.so -%{tde_tdelibdir}/noatun_excellent.la -%{tde_tdelibdir}/noatun_excellent.so -%{tde_tdelibdir}/noatun_htmlexport.la -%{tde_tdelibdir}/noatun_htmlexport.so -%{tde_tdelibdir}/noatun_infrared.la -%{tde_tdelibdir}/noatun_infrared.so -%{tde_tdelibdir}/noatun_kaiman.la -%{tde_tdelibdir}/noatun_kaiman.so -%{tde_tdelibdir}/noatun_keyz.la -%{tde_tdelibdir}/noatun_keyz.so -%{tde_tdelibdir}/noatun_kjofol.la -%{tde_tdelibdir}/noatun_kjofol.so -%{tde_tdelibdir}/noatun_marquis.la -%{tde_tdelibdir}/noatun_marquis.so -%{tde_tdelibdir}/noatun_metatag.la -%{tde_tdelibdir}/noatun_metatag.so -%{tde_tdelibdir}/noatun_monoscope.la -%{tde_tdelibdir}/noatun_monoscope.so -%{tde_tdelibdir}/noatun_net.la -%{tde_tdelibdir}/noatun_net.so -%{tde_tdelibdir}/noatun_splitplaylist.la -%{tde_tdelibdir}/noatun_splitplaylist.so -%{tde_tdelibdir}/noatun_systray.la -%{tde_tdelibdir}/noatun_systray.so -%{tde_tdelibdir}/noatun_ui.la -%{tde_tdelibdir}/noatun_ui.so -%{tde_tdelibdir}/noatun_voiceprint.la -%{tde_tdelibdir}/noatun_voiceprint.so -%{tde_tdelibdir}/noatun_winskin.la -%{tde_tdelibdir}/noatun_winskin.so -%{tde_tdelibdir}/noatunsimple.la -%{tde_tdelibdir}/noatunsimple.so -%{tde_libdir}/libartseffects.la -%{tde_libdir}/libartseffects.so -%{tde_libdir}/lib[kt]deinit_noatun.so -%{tde_libdir}/libnoatun.so.* -%{tde_libdir}/libnoatunarts.la -%{tde_libdir}/libnoatunarts.so -%{tde_libdir}/libnoatuncontrols.so.* -%{tde_libdir}/libnoatuntags.so.* -%{tde_libdir}/libwinskinvis.la -%{tde_libdir}/libwinskinvis.so -%{tde_libdir}/mcop/ExtraStereo.mcopclass -%{tde_libdir}/mcop/ExtraStereoGuiFactory.mcopclass -%{tde_libdir}/mcop/Noatun/ -%{tde_libdir}/mcop/RawWriter.mcopclass -%{tde_libdir}/mcop/VoiceRemoval.mcopclass -%{tde_libdir}/mcop/artseffects.mcopclass -%{tde_libdir}/mcop/artseffects.mcoptype -%{tde_libdir}/mcop/noatunarts.mcopclass -%{tde_libdir}/mcop/noatunarts.mcoptype -%{tde_libdir}/mcop/winskinvis.mcopclass -%{tde_libdir}/mcop/winskinvis.mcoptype -%{tde_tdeappdir}/noatun.desktop -%{tde_datadir}/apps/kconf_update/noatun.upd -%{tde_datadir}/apps/noatun/ -%{tde_datadir}/icons/hicolor/*/apps/noatun.png -%{tde_datadir}/mimelnk/interface/x-winamp-skin.desktop -%{tde_tdedocdir}/HTML/en/noatun/ - -%post -n trinity-noatun -/sbin/ldconfig -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-noatun -/sbin/ldconfig -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package devel -Summary: Development files for %{name}, aRts and noatun plugins -Group: Development/Libraries -Requires: %{name} = %{version}-%{release} -Requires: trinity-tdelibs-devel >= 3.5.13 - -Obsoletes: trinity-kdemultimedia-devel < %{version}-%{release} -Provides: trinity-kdemultimedia-devel = %{version}-%{release} - -%description devel -{summary}. - -Install %{name}-devel if you wish to develop or compile any -applications using aRtsbuilder, aRtsmidi, aRtskde, aRts modules or -noatun plugins. - -%files devel -%defattr(-,root,root,-) -%{tde_includedir}/* -%{tde_libdir}/libarts_akode.so -%{tde_libdir}/libarts_audiofile.so -%{tde_libdir}/libarts_mpeglib.so -%{tde_libdir}/libarts_splay.so -%{?with_xine:%{tde_libdir}/libarts_xine.so} -%{tde_libdir}/libartsbuilder.so -%{tde_libdir}/libartscontrolapplet.so -%{tde_libdir}/libartscontrolsupport.so -%{tde_libdir}/libartsgui.so -%{tde_libdir}/libartsgui_idl.so -%{tde_libdir}/libartsgui_kde.so -%{tde_libdir}/libartsmidi.so -%{tde_libdir}/libartsmidi_idl.so -%{tde_libdir}/libartsmodules.so -%{tde_libdir}/libartsmodulescommon.so -%{tde_libdir}/libartsmoduleseffects.so -%{tde_libdir}/libartsmodulesmixers.so -%{tde_libdir}/libartsmodulessynth.so -%{tde_libdir}/libaudiocdplugins.la -%{tde_libdir}/libaudiocdplugins.so -%{tde_libdir}/libkcddb.la -%{tde_libdir}/libkcddb.so -%{tde_libdir}/lib[kt]deinit_kmix.la -%{tde_libdir}/lib[kt]deinit_kmixctrl.la -%{tde_libdir}/lib[kt]deinit_krec.la -%{tde_libdir}/lib[kt]deinit_noatun.la -%{tde_libdir}/libkmidlib.la -%{tde_libdir}/libkmidlib.so -%{tde_libdir}/libmpeg.la -%{tde_libdir}/libmpeg.so -%{tde_libdir}/libnoatun.la -%{tde_libdir}/libnoatun.so -%{tde_libdir}/libnoatuncontrols.la -%{tde_libdir}/libnoatuncontrols.so -%{tde_libdir}/libnoatuntags.la -%{tde_libdir}/libnoatuntags.so -%{tde_libdir}/libyafcore.la -%{tde_libdir}/libyafxplayer.la - -%post devel -/sbin/ldconfig - -%postun devel -/sbin/ldconfig - -########## - -%if 0%{?suse_version} || 0%{?pclinuxos} -%debug_package -%endif - -########## - - -%prep -%setup -q -n kdemultimedia-3.5.13.1 -%patch3 -p1 -b .xdg -%patch5 -p1 -b .pthread - - -# Ugly hack to modify TQT include directory inside autoconf files. -# If TQT detection fails, it fallbacks to TQT4 instead of TQT3 ! -%__sed -i "admin/acinclude.m4.in" \ - -e "s|/usr/include/tqt|%{tde_includedir}/tqt|g" \ - -e "s|kde_htmldir='.*'|kde_htmldir='%{tde_tdedocdir}/HTML'|g" - -%__cp "/usr/share/aclocal/libtool.m4" "admin/libtool.m4.in" -%__cp "/usr/share/libtool/config/ltmain.sh" "admin/ltmain.sh" || %__cp "/usr/share/libtool/ltmain.sh" "admin/ltmain.sh" -%__make -f "admin/Makefile.common" - - -%build -unset QTDIR || : ; . /etc/profile.d/qt3.sh -export PATH="%{tde_bindir}:${PATH}" -export LDFLAGS="-L%{tde_libdir} -I%{tde_includedir}" -export PKG_CONFIG_PATH="%{tde_libdir}/pkgconfig:${PKG_CONFIG_PATH}" - -# Required for some distro -export KDEDIRS=%{tde_prefix} - -# Specific path for RHEL4 -if [ -d /usr/X11R6 ]; then - export CXXFLAGS="${RPM_OPT_FLAGS} -I/usr/X11R6/include -L/usr/X11R6/%{_lib}" -fi - -%configure \ - --prefix=%{tde_prefix} \ - --exec-prefix=%{tde_prefix} \ - --bindir=%{tde_bindir} \ - --libdir=%{tde_libdir} \ - --includedir=%{tde_tdeincludedir} \ - --datadir=%{tde_datadir} \ - --enable-new-ldflags \ - --disable-dependency-tracking \ - --with-cdparanoia \ - --with-flac \ - --with-theora \ - --with-vorbis \ - --with-alsa \ - --with-gstreamer \ - --without-lame \ - --disable-debug \ - --disable-warnings \ - --enable-final \ - --disable-rpath \ - %{?_with_akode} %{!?_with_akode:--without-akode} \ - %{?_with_musicbrainz} %{!?_with_musicbrainz:--without-musicbrainz} \ - %{?_with_taglib} %{!?_with_taglib:--without-taglib} \ - %{?with_xine:--with-xine} %{!?with_xine:--without-xine} \ - --with-extra-includes="%{_includedir}/cdda:%{_includedir}/cddb:%{tde_includedir}/tqt:%{tde_tdeincludedir}/arts:%{tde_includedir}/artsc" \ - --enable-closure - -%__make %{?_smp_mflags} - - -%install -export PATH="%{tde_bindir}:${PATH}" -%__rm -rf %{?buildroot} -%__make install DESTDIR=%{buildroot} - -# don't make these world-writeable -chmod go-w %{buildroot}%{tde_datadir}/apps/kscd/* - -# locale's -HTML_DIR=$(kde-config --expandvars --install html) -if [ -d %{buildroot}$HTML_DIR ]; then -for lang_dir in %{buildroot}$HTML_DIR/* ; do - if [ -d $lang_dir ]; then - lang=$(basename $lang_dir) - echo "%lang($lang) $HTML_DIR/$lang/*" >> %{name}.lang - # replace absolute symlinks with relative ones - pushd $lang_dir - for i in *; do - [ -d $i -a -L $i/common ] && ln -nsf ../common $i/common - done - popd - fi -done -fi - -# Moves the XDG configuration files to TDE directory -%__install -p -D -m644 \ - "%{?buildroot}%{_sysconfdir}/xdg/menus/applications-merged/kde-multimedia-music.menu" \ - "%{?buildroot}%{tde_prefix}/etc/xdg/menus/applications-merged/trinity-multimedia-music.menu" -%__rm -rf "%{?buildroot}%{_sysconfdir}/xdg" - - -%clean -%__rm -rf %{buildroot} - - -%changelog -* Sat Sep 29 2012 Francois Andriot - 3.5.13.1-1 -- Initial release for TDE 3.5.13.1 diff --git a/redhat/tdemultimedia/kdemultimedia-3.5.13.2-fix_gstreamer_1.0.patch b/redhat/tdemultimedia/kdemultimedia-3.5.13.2-fix_gstreamer_1.0.patch deleted file mode 100644 index acaa24101..000000000 --- a/redhat/tdemultimedia/kdemultimedia-3.5.13.2-fix_gstreamer_1.0.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- trinity-tdemultimedia-3.5.13.2/juk/configure.in.in.ORI 2013-02-13 21:30:12.230539642 +0100 -+++ trinity-tdemultimedia-3.5.13.2/juk/configure.in.in 2013-02-13 22:00:07.584173123 +0100 -@@ -50,7 +50,7 @@ - PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 - export PKG_CONFIG_ALLOW_SYSTEM_LIBS - -- GST_MAJORMINOR=0.10 -+ GST_MAJORMINOR=1.0 - GST_REQ=0.10.0 - GST_VERSION=10 - diff --git a/redhat/tdemultimedia/kdemultimedia-3.5.13.spec b/redhat/tdemultimedia/kdemultimedia-3.5.13.spec deleted file mode 100644 index 388a81727..000000000 --- a/redhat/tdemultimedia/kdemultimedia-3.5.13.spec +++ /dev/null @@ -1,1204 +0,0 @@ -# If TDE is built in a specific prefix (e.g. /opt/trinity), the release will be suffixed with ".opt". -%if "%{?tde_prefix}" != "/usr" -%define _variant .opt -%endif - -# TDE 3.5.13 specific building variables -%define tde_bindir %{tde_prefix}/bin -%define tde_datadir %{tde_prefix}/share -%define tde_docdir %{tde_datadir}/doc -%define tde_includedir %{tde_prefix}/include -%define tde_libdir %{tde_prefix}/%{_lib} - -%define tde_tdeappdir %{tde_datadir}/applications/kde -%define tde_tdedocdir %{tde_docdir}/kde -%define tde_tdeincludedir %{tde_includedir}/kde -%define tde_tdelibdir %{tde_libdir}/trinity - -%define _docdir %{tde_docdir} - -# former extras bits -%define _with_akode --with-akode -## not currently compatible with libtunepimp-0.5 (only libtunepimp-0.4) -#define _with_musicbrainz --with-musicbrainz -%define _with_taglib --with-taglib - -#%if 0%{?fedora} -%define _with_xine --with-xine -#%endif - -Name: trinity-tdemultimedia -Summary: Multimedia applications for the Trinity Desktop Environment (TDE) -Version: 3.5.13 -Release: 9%{?dist}%{?_variant} - -License: GPLv2 -Group: Applications/Multimedia - -Vendor: Trinity Project -Packager: Francois Andriot -URL: http://www.trinitydesktop.org/ - -Prefix: %{tde_prefix} -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -Source0: kdemultimedia-%{version}.tar.gz - - -# RedHat Legacy patches (from Fedora 8) -Patch3: kdemultimedia-3.4.0-xdg.patch -Patch5: kdemultimedia-3.5.7-pthread.patch - -# Missing LDFLAGS on Mageia cause FTBFS -Patch1: kdemultimedia-3.5.13-missing_ldflags.patch - -# [kdemultimedia] Fix MMX detection [Bug #800] -Patch10: kdemultimedia-3.5.13-fix_mmx_detection.patch -# [tdemultimedia] Remove "More Applications" from TDE menu. [Commit #31e44a7b] -Patch21: kdemultimedia-3.5.13-remove_more_applications.patch -# [tdemultimedia] Fix linear alphabet string errors [Commit #fd6afacf] -Patch22: kdemultimedia-3.5.13-fix_linear_alphabet.patch -# [tdemultimedia] Fix kmix autostart. This resolves Bug 503, and re-applies commit 2cc2e3a2 as part of the fix. [Commit #7da06e55] -Patch23: kdemultimedia-3.5.13-fix_kmix_autostart.patch - - -Obsoletes: trinity-kdemultimedia < %{version}-%{release} -Provides: trinity-kdemultimedia = %{version}-%{release} -Obsoletes: trinity-kdemultimedia-libs < %{version}-%{release} -Provides: trinity-kdemultimedia-libs = %{version}-%{release} -Obsoletes: trinity-kdemultimedia-extras < %{version}-%{release} -Provides: trinity-kdemultimedia-extras = %{version}-%{release} -Obsoletes: trinity-kdemultimedia-extras-libs < %{version}-%{release} -Provides: trinity-kdemultimedia-extras-libs = %{version}-%{release} - - -BuildRequires: cmake >= 2.8 -BuildRequires: tqtinterface-devel -BuildRequires: trinity-arts-devel -BuildRequires: trinity-tdelibs-devel -BuildRequires: qt3-devel >= 3.3.8.d - -BuildRequires: zlib-devel -BuildRequires: libvorbis-devel -BuildRequires: audiofile-devel -BuildRequires: desktop-file-utils -BuildRequires: libtheora-devel -BuildRequires: alsa-lib-devel -BuildRequires: automake libtool -%{?_with_akode:BuildRequires: trinity-akode-devel} -%{?_with_musicbrainz:BuildRequires: libmusicbrainz-devel libtunepimp-devel} -%{?_with_taglib:BuildRequires: taglib-devel} -BuildRequires: cdparanoia -BuildRequires: trinity-akode-devel - -%if 0%{?mgaversion} || 0%{?mdkversion} -BuildRequires: %{_lib}gstreamer0.10-devel -BuildRequires: %{_lib}flac-devel -BuildRequires: libcdda-devel -%{?_with_xine:BuildRequires: %{_lib}xine-devel} -BuildRequires: %{_lib}xxf86dga-devel -BuildRequires: %{_lib}xxf86vm-devel -BuildRequires: %{_lib}xtst-devel -%else -BuildRequires: gstreamer-devel -BuildRequires: flac-devel -BuildRequires: cdparanoia-devel -%{?_with_xine:BuildRequires: xine-lib-devel} -BuildRequires: libXxf86dga-devel -BuildRequires: libXxf86vm-devel -BuildRequires: libXt-devel -%endif - -Requires: trinity-artsbuilder = %{version}-%{release} -Requires: trinity-juk = %{version}-%{release} -Requires: trinity-kaboodle = %{version}-%{release} -Requires: trinity-kaudiocreator = %{version}-%{release} -Requires: %{name}-kfile-plugins = %{version}-%{release} -Requires: %{name}-kappfinder-data = %{version}-%{release} -Requires: %{name}-kio-plugins = %{version}-%{release} -Requires: trinity-kmid = %{version}-%{release} -Requires: trinity-kmix = %{version}-%{release} -Requires: trinity-krec = %{version}-%{release} -Requires: trinity-kscd = %{version}-%{release} -Requires: trinity-libarts-akode = %{version}-%{release} -Requires: trinity-libarts-audiofile = %{version}-%{release} -Requires: trinity-libarts-mpeglib = %{version}-%{release} -Requires: trinity-libarts-xine = %{version}-%{release} -Requires: trinity-libkcddb = %{version}-%{release} -Requires: trinity-mpeglib = %{version}-%{release} -Requires: trinity-noatun = %{version}-%{release} - - -%description -The Trinity Desktop Environment (TDE) is a GUI desktop for the X Window -System. The %{name} package contains multimedia applications for -TDE, including: - artsbuilder, Synthesizer designer for aRts - juk, a media player - kmid, a midi player - kmix, an audio mixer - arts, additional functionality for the aRts sound system - krec, a recording tool - kscd, an Audio-CD player - kaudiocreator, a graphical frontend for audio file creation - kaboodle, a media player - noatun, a media player - -%files - -########## - -%package -n trinity-artsbuilder -Summary: Synthesizer designer for aRts -Group: Applications/Multimedia - -%description -n trinity-artsbuilder -This is the analog Realtime synthesizer's graphical design tool. - -%files -n trinity-artsbuilder -%defattr(-,root,root,-) -%{tde_bindir}/artsbuilder -%{tde_bindir}/artscontrol -%{tde_bindir}/midisend -%{tde_libdir}/libartsbuilder.la -%{tde_libdir}/libartsbuilder.so.* -%{tde_libdir}/libartscontrolapplet.la -%{tde_libdir}/libartscontrolapplet.so.* -%{tde_libdir}/libartscontrolsupport.la -%{tde_libdir}/libartscontrolsupport.so.* -%{tde_libdir}/libartsgui_idl.la -%{tde_libdir}/libartsgui_idl.so.* -%{tde_libdir}/libartsgui_kde.la -%{tde_libdir}/libartsgui_kde.so.* -%{tde_libdir}/libartsgui.la -%{tde_libdir}/libartsgui.so.* -%{tde_libdir}/libartsmidi_idl.la -%{tde_libdir}/libartsmidi_idl.so.* -%{tde_libdir}/libartsmidi.la -%{tde_libdir}/libartsmidi.so.* -%{tde_libdir}/libartsmodulescommon.la -%{tde_libdir}/libartsmodulescommon.so.* -%{tde_libdir}/libartsmoduleseffects.la -%{tde_libdir}/libartsmoduleseffects.so.* -%{tde_libdir}/libartsmodulesmixers.la -%{tde_libdir}/libartsmodulesmixers.so.* -%{tde_libdir}/libartsmodules.la -%{tde_libdir}/libartsmodules.so.* -%{tde_libdir}/libartsmodulessynth.la -%{tde_libdir}/libartsmodulessynth.so.* -%{tde_libdir}/mcop/Arts/ArtsBuilderLoader.mcopclass -%{tde_libdir}/mcop/artsbuilder.mcopclass -%{tde_libdir}/mcop/artsbuilder.mcoptype -%{tde_libdir}/mcop/Arts/Button.mcopclass -%{tde_libdir}/mcop/Arts/EffectRackGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/Effect_WAVECAPTURE.mcopclass -%{tde_libdir}/mcop/Arts/Environment/Container.mcopclass -%{tde_libdir}/mcop/Arts/Environment/EffectRackItem.mcopclass -%{tde_libdir}/mcop/Arts/Environment/InstrumentItemGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/Environment/InstrumentItem.mcopclass -%{tde_libdir}/mcop/Arts/Environment/MixerItem.mcopclass -%{tde_libdir}/mcop/Arts/Fader.mcopclass -%{tde_libdir}/mcop/Arts/FiveBandMonoComplexEQGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/FiveBandMonoComplexEQ.mcopclass -%{tde_libdir}/mcop/Arts/FreeverbGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/GenericGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/GraphLine.mcopclass -%{tde_libdir}/mcop/artsgui.mcopclass -%{tde_libdir}/mcop/artsgui.mcoptype -%{tde_libdir}/mcop/Arts/HBox.mcopclass -%{tde_libdir}/mcop/Arts/Label.mcopclass -%{tde_libdir}/mcop/Arts/LayoutBox.mcopclass -%{tde_libdir}/mcop/Arts/LevelMeter.mcopclass -%{tde_libdir}/mcop/Arts/LineEdit.mcopclass -%{tde_libdir}/mcop/Arts/LittleStereoMixerChannelGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/LittleStereoMixerChannel.mcopclass -%{tde_libdir}/mcop/Arts/LocalFactory.mcopclass -%{tde_libdir}/mcop/Arts/MidiManager.mcopclass -%{tde_libdir}/mcop/artsmidi.mcopclass -%{tde_libdir}/mcop/artsmidi.mcoptype -%{tde_libdir}/mcop/Arts/MixerGuiFactory.mcopclass -%{tde_libdir}/mcop/artsmodulescommon.mcopclass -%{tde_libdir}/mcop/artsmodulescommon.mcoptype -%{tde_libdir}/mcop/artsmoduleseffects.mcopclass -%{tde_libdir}/mcop/artsmoduleseffects.mcoptype -%{tde_libdir}/mcop/artsmodules.mcopclass -%{tde_libdir}/mcop/artsmodules.mcoptype -%{tde_libdir}/mcop/artsmodulesmixers.mcopclass -%{tde_libdir}/mcop/artsmodulesmixers.mcoptype -%{tde_libdir}/mcop/artsmodulessynth.mcopclass -%{tde_libdir}/mcop/artsmodulessynth.mcoptype -%{tde_libdir}/mcop/Arts/MonoSimpleMixerChannelGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/MonoSimpleMixerChannel.mcopclass -%{tde_libdir}/mcop/Arts/MonoToStereo.mcopclass -%{tde_libdir}/mcop/Arts/PopupBox.mcopclass -%{tde_libdir}/mcop/Arts/Poti.mcopclass -%{tde_libdir}/mcop/Arts/SimpleMixerChannelGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/SimpleMixerChannel.mcopclass -%{tde_libdir}/mcop/Arts/SpinBox.mcopclass -%{tde_libdir}/mcop/Arts/StereoBalanceGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/StereoBalance.mcopclass -%{tde_libdir}/mcop/Arts/StereoCompressorGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/StereoFirEqualizerGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/StereoToMono.mcopclass -%{tde_libdir}/mcop/Arts/StereoVolumeControlGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/StereoVolumeControlGui.mcopclass -%{tde_libdir}/mcop/Arts/StructureBuilder.mcopclass -%{tde_libdir}/mcop/Arts/StructureDesc.mcopclass -%{tde_libdir}/mcop/Arts/Synth_ATAN_SATURATE.mcopclass -%{tde_libdir}/mcop/Arts/Synth_AUTOPANNER.mcopclass -%{tde_libdir}/mcop/Arts/Synth_BRICKWALL_LIMITER.mcopclass -%{tde_libdir}/mcop/Arts/Synth_CAPTURE_WAV.mcopclass -%{tde_libdir}/mcop/Arts/Synth_CDELAY.mcopclass -%{tde_libdir}/mcop/Arts/Synth_COMPRESSOR.mcopclass -%{tde_libdir}/mcop/Arts/Synth_DATA.mcopclass -%{tde_libdir}/mcop/Arts/Synth_DEBUG.mcopclass -%{tde_libdir}/mcop/Arts/Synth_DELAY.mcopclass -%{tde_libdir}/mcop/Arts/Synth_DIV.mcopclass -%{tde_libdir}/mcop/Arts/Synth_ENVELOPE_ADSR.mcopclass -%{tde_libdir}/mcop/Arts/Synth_FM_SOURCE.mcopclass -%{tde_libdir}/mcop/Arts/Synth_FREEVERB.mcopclass -%{tde_libdir}/mcop/Arts/Synth_FX_CFLANGER.mcopclass -%{tde_libdir}/mcop/Arts/Synth_MIDI_DEBUG.mcopclass -%{tde_libdir}/mcop/Arts/Synth_MIDI_TEST.mcopclass -%{tde_libdir}/mcop/Arts/Synth_MOOG_VCF.mcopclass -%{tde_libdir}/mcop/Arts/Synth_NIL.mcopclass -%{tde_libdir}/mcop/Arts/Synth_NOISE.mcopclass -%{tde_libdir}/mcop/Arts/Synth_OSC.mcopclass -%{tde_libdir}/mcop/Arts/Synth_PITCH_SHIFT_FFT.mcopclass -%{tde_libdir}/mcop/Arts/Synth_PITCH_SHIFT.mcopclass -%{tde_libdir}/mcop/Arts/Synth_PLAY_PAT.mcopclass -%{tde_libdir}/mcop/Arts/Synth_PSCALE.mcopclass -%{tde_libdir}/mcop/Arts/Synth_RC.mcopclass -%{tde_libdir}/mcop/Arts/Synth_SEQUENCE_FREQ.mcopclass -%{tde_libdir}/mcop/Arts/Synth_SEQUENCE.mcopclass -%{tde_libdir}/mcop/Arts/Synth_SHELVE_CUTOFF.mcopclass -%{tde_libdir}/mcop/Arts/Synth_STD_EQUALIZER.mcopclass -%{tde_libdir}/mcop/Arts/Synth_STEREO_COMPRESSOR.mcopclass -%{tde_libdir}/mcop/Arts/Synth_STEREO_FIR_EQUALIZER.mcopclass -%{tde_libdir}/mcop/Arts/Synth_STEREO_PITCH_SHIFT_FFT.mcopclass -%{tde_libdir}/mcop/Arts/Synth_STEREO_PITCH_SHIFT.mcopclass -%{tde_libdir}/mcop/Arts/Synth_TREMOLO.mcopclass -%{tde_libdir}/mcop/Arts/Synth_VOICE_REMOVAL.mcopclass -%{tde_libdir}/mcop/Arts/Synth_WAVE_PULSE.mcopclass -%{tde_libdir}/mcop/Arts/Synth_WAVE_SOFTSAW.mcopclass -%{tde_libdir}/mcop/Arts/Synth_WAVE_SQUARE.mcopclass -%{tde_libdir}/mcop/Arts/Synth_WAVE_TRI.mcopclass -%{tde_libdir}/mcop/Arts/Synth_XFADE.mcopclass -%{tde_libdir}/mcop/Arts/VBox.mcopclass -%{tde_libdir}/mcop/Arts/VoiceRemovalGuiFactory.mcopclass -%{tde_libdir}/mcop/Arts/Widget.mcopclass -%{tde_tdeappdir}/artsbuilder.desktop -%{tde_tdeappdir}/artscontrol.desktop -%{tde_datadir}/apps/artsbuilder/ -%{tde_datadir}/apps/artscontrol/ -%{tde_datadir}/apps/kicker/applets/artscontrolapplet.desktop -%{tde_datadir}/icons/crystalsvg/*/actions/artsaudiomanager.png -%{tde_datadir}/icons/crystalsvg/*/actions/artsbuilderexecute.png -%{tde_datadir}/icons/crystalsvg/*/actions/artsenvironment.png -%{tde_datadir}/icons/crystalsvg/*/actions/artsfftscope.png -%{tde_datadir}/icons/crystalsvg/*/actions/artsmediatypes.png -%{tde_datadir}/icons/crystalsvg/*/actions/artsmidimanager.png -%{tde_datadir}/icons/crystalsvg/scalable/actions/artsaudiomanager.svgz -%{tde_datadir}/icons/crystalsvg/scalable/actions/artsenvironment.svgz -%{tde_datadir}/icons/crystalsvg/scalable/actions/artsfftscope.svgz -%{tde_datadir}/icons/crystalsvg/scalable/actions/artsmediatypes.svgz -%{tde_datadir}/icons/crystalsvg/scalable/actions/artsmidimanager.svgz -%{tde_datadir}/icons/hicolor/*/apps/artsbuilder.png -%{tde_datadir}/icons/hicolor/*/apps/artscontrol.png -%{tde_datadir}/icons/hicolor/scalable/apps/artsbuilder.svgz -%{tde_datadir}/icons/hicolor/scalable/apps/artscontrol.svgz -%{tde_datadir}/mimelnk/application/x-artsbuilder.desktop -%{tde_tdedocdir}/HTML/en/artsbuilder/ - -%post -n trinity-artsbuilder -/sbin/ldconfig -for f in crystalsvg hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-artsbuilder -/sbin/ldconfig -for f in crystalsvg hicolor locolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package -n trinity-juk -Summary: Music organizer and player for Trinity -Group: Applications/Multimedia - -%description -n trinity-juk -JuK (pronounced "jook") is a jukebox and music manager for the TDE -desktop similar to jukebox software on other platforms such as -iTunes or RealOne. - -Some of JuK's features include: -* Support for Ogg Vorbis and MP3 formats -* Tag editing support for both formats, including ID3v2 for MP3 files. - Multitagging or editing a selection of multiple files at once is also - supported -* Output to either the aRts, default KDE sound system, or GStreamer -* Management of your "collection" and multiple playlists -* Import and export to m3u playlists -* Binary caching of audio meta-data and playlist information for faster - load times (starting with the second time you run JuK) -* Integration into TDE that allows drag-and-drop and clipboard usage - with other TDE and X apps - -%files -n trinity-juk -%defattr(-,root,root,-) -%{tde_bindir}/juk -%{tde_tdeappdir}/juk.desktop -%{tde_datadir}/apps/juk/ -%{tde_datadir}/apps/konqueror/servicemenus/jukservicemenu.desktop -%{tde_datadir}/icons/crystalsvg/*/actions/juk_dock.png -%{tde_datadir}/icons/hicolor/*/apps/juk.png -%{tde_tdedocdir}/HTML/en/juk/ - -%post -n trinity-juk -for f in crystalsvg hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-juk -for f in crystalsvg hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package -n trinity-kaboodle -Summary: light, embedded media player for Trinity -Group: Applications/Multimedia - -Requires: trinity-libarts-xine = %{version}-%{release} - -%description -n trinity-kaboodle -Kaboodle is a light, embedded media player, supporting both video and audio, -for TDE. It uses the aRts framework for playing media files. - -%files -n trinity-kaboodle -%defattr(-,root,root,-) -%{tde_bindir}/kaboodle -%{tde_tdelibdir}/libkaboodlepart.la -%{tde_tdelibdir}/libkaboodlepart.so -%{tde_tdeappdir}/kaboodle.desktop -%{tde_datadir}/apps/kaboodle/ -%{tde_datadir}/icons/hicolor/*/apps/kaboodle.png -%{tde_datadir}/services/kaboodle_component.desktop -%{tde_datadir}/services/kaboodleengine.desktop -%{tde_tdedocdir}/HTML/en/kaboodle/ - -%post -n trinity-kaboodle -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-kaboodle -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package -n trinity-kaudiocreator -Summary: CD ripper and audio encoder frontend for Trinity -Group: Applications/Multimedia - -Requires: %{name}-kio-plugins = %{version}-%{release} -Requires: vorbis-tools -Requires: flac - -%description -n trinity-kaudiocreator -KAudioCreator is a tool for audio extraction (ripping) and encoding. It can -keep your WAV files, or convert them to Ogg/Vorbis, MP3, or FLAC. It also -searches CDDB to retrieve the information of the disk. - -%files -n trinity-kaudiocreator -%defattr(-,root,root,-) -%{tde_bindir}/kaudiocreator -%{tde_tdeappdir}/kaudiocreator.desktop -%{tde_datadir}/apps/kaudiocreator/ -%{tde_datadir}/apps/kconf_update/kaudiocreator-libkcddb.upd -%{tde_datadir}/apps/kconf_update/kaudiocreator-meta.upd -%{tde_datadir}/apps/kconf_update/upgrade-kaudiocreator-metadata.sh -%{tde_datadir}/apps/konqueror/servicemenus/audiocd_extract.desktop -%{tde_datadir}/config.kcfg/kaudiocreator.kcfg -%{tde_datadir}/config.kcfg/kaudiocreator_encoders.kcfg -%{tde_datadir}/icons/hicolor/*/apps/kaudiocreator.png -%{tde_datadir}/icons/locolor/*/apps/kaudiocreator.png -%{tde_tdedocdir}/HTML/en/kaudiocreator/ - -%post -n trinity-kaudiocreator -for f in hicolor locolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-kaudiocreator -for f in hicolor locolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package kfile-plugins -Summary: au/avi/m3u/mp3/ogg/wav plugins for kfile -Group: Applications/Multimedia - -%description kfile-plugins -au/avi/m3u/mp3/ogg/wav file metainformation plugins for Trinity. - -%files kfile-plugins -%defattr(-,root,root,-) -%{tde_tdelibdir}/kfile_au.la -%{tde_tdelibdir}/kfile_au.so -%{tde_tdelibdir}/kfile_avi.la -%{tde_tdelibdir}/kfile_avi.so -%{tde_tdelibdir}/kfile_flac.la -%{tde_tdelibdir}/kfile_flac.so -%{tde_tdelibdir}/kfile_m3u.la -%{tde_tdelibdir}/kfile_m3u.so -%{tde_tdelibdir}/kfile_mp3.la -%{tde_tdelibdir}/kfile_mp3.so -%{tde_tdelibdir}/kfile_mpc.la -%{tde_tdelibdir}/kfile_mpc.so -%{tde_tdelibdir}/kfile_mpeg.la -%{tde_tdelibdir}/kfile_mpeg.so -%{tde_tdelibdir}/kfile_ogg.la -%{tde_tdelibdir}/kfile_ogg.so -%{tde_tdelibdir}/kfile_sid.la -%{tde_tdelibdir}/kfile_sid.so -%{tde_tdelibdir}/kfile_theora.la -%{tde_tdelibdir}/kfile_theora.so -%{tde_tdelibdir}/kfile_wav.la -%{tde_tdelibdir}/kfile_wav.so -%{tde_datadir}/services/kfile_au.desktop -%{tde_datadir}/services/kfile_avi.desktop -%{tde_datadir}/services/kfile_flac.desktop -%{tde_datadir}/services/kfile_m3u.desktop -%{tde_datadir}/services/kfile_mp3.desktop -%{tde_datadir}/services/kfile_mpc.desktop -%{tde_datadir}/services/kfile_mpeg.desktop -%{tde_datadir}/services/kfile_ogg.desktop -%{tde_datadir}/services/kfile_sid.desktop -%{tde_datadir}/services/kfile_theora.desktop -%{tde_datadir}/services/kfile_wav.desktop - -########## - -%package kappfinder-data -Summary: multimedia data for kappfinder-trinity -Group: Applications/Multimedia - -Requires: trinity-kappfinder - -%description kappfinder-data -This package provides data on multimedia applications for kappfinder. - -%files kappfinder-data -%defattr(-,root,root,-) -%{tde_datadir}/apps/kappfinder/* -%{tde_datadir}/desktop-directories/[kt]de-multimedia-music.directory -%{tde_prefix}/etc/xdg/menus/applications-merged/trinity-multimedia-music.menu - -########## - -%package kio-plugins -Summary: Enables the browsing of audio CDs under Konqueror -Group: Applications/Multimedia - -%description kio-plugins -This package allow audio CDs to be browsed like a file system using -Konqueror and the audiocd:/ URL. - -%files kio-plugins -%defattr(-,root,root,-) -%{tde_tdelibdir}/kcm_audiocd.la -%{tde_tdelibdir}/kcm_audiocd.so -%{tde_tdelibdir}/kio_audiocd.la -%{tde_tdelibdir}/kio_audiocd.so -%{tde_tdelibdir}/libaudiocd_encoder_flac.la -%{tde_tdelibdir}/libaudiocd_encoder_flac.so -%{tde_tdelibdir}/libaudiocd_encoder_lame.la -%{tde_tdelibdir}/libaudiocd_encoder_lame.so -%{tde_tdelibdir}/libaudiocd_encoder_vorbis.la -%{tde_tdelibdir}/libaudiocd_encoder_vorbis.so -%{tde_tdelibdir}/libaudiocd_encoder_wav.la -%{tde_tdelibdir}/libaudiocd_encoder_wav.so -%{tde_libdir}/libaudiocdplugins.so.* -%{tde_tdeappdir}/audiocd.desktop -%{tde_datadir}/apps/kconf_update/audiocd.upd -%{tde_datadir}/apps/kconf_update/upgrade-metadata.sh -%{tde_datadir}/config.kcfg/audiocd_lame_encoder.kcfg -%{tde_datadir}/config.kcfg/audiocd_vorbis_encoder.kcfg -%{tde_datadir}/services/audiocd.protocol -%{tde_tdedocdir}/HTML/en/kioslave/audiocd.docbook - -%post kio-plugins -/sbin/ldconfig -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun kio-plugins -/sbin/ldconfig -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package -n trinity-kmid -Summary: MIDI/karaoke player for Trinity -Group: Applications/Multimedia - -%description -n trinity-kmid -This package provides a MIDI and karaoke player for TDE. - -%files -n trinity-kmid -%defattr(-,root,root,-) -%{tde_bindir}/kmid -%{tde_tdelibdir}/libkmidpart.la -%{tde_tdelibdir}/libkmidpart.so -%{tde_libdir}/libkmidlib.so.* -%{tde_tdeappdir}/kmid.desktop -%{tde_datadir}/apps/kmid/ -%{tde_datadir}/icons/hicolor/*/apps/kmid.png -%{tde_datadir}/mimelnk/audio/x-karaoke.desktop -%{tde_datadir}/servicetypes/audiomidi.desktop -%{tde_tdedocdir}/HTML/en/kmid/ - -%post -n trinity-kmid -/sbin/ldconfig -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-kmid -/sbin/ldconfig -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package -n trinity-kmix -Summary: Sound mixer applet for Trinity -Group: Applications/Multimedia - -%description -n trinity-kmix -This package includes TDE's dockable sound mixer applet. - -%files -n trinity-kmix -%defattr(-,root,root,-) -%{tde_bindir}/kmix -%{tde_bindir}/kmixctrl -%{tde_tdelibdir}/kmix.la -%{tde_tdelibdir}/kmix.so -%{tde_tdelibdir}/kmix_panelapplet.la -%{tde_tdelibdir}/kmix_panelapplet.so -%{tde_tdelibdir}/kmixctrl.la -%{tde_tdelibdir}/kmixctrl.so -%{tde_libdir}/lib[kt]deinit_kmix.so -%{tde_libdir}/lib[kt]deinit_kmixctrl.so -%{tde_tdeappdir}/kmix.desktop -%{tde_datadir}/apps/kicker/applets/kmixapplet.desktop -%{tde_datadir}/apps/kmix/ -%{tde_datadir}/autostart/kmix.desktop -%{tde_datadir}/autostart/restore_kmix_volumes.desktop -%{tde_datadir}/icons/hicolor/*/apps/kmix.png -%{tde_datadir}/services/kmixctrl_restore.desktop -%{tde_tdedocdir}/HTML/en/kmix/ - -%post -n trinity-kmix -/sbin/ldconfig -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-kmix -/sbin/ldconfig -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package -n trinity-krec -Summary: Sound recorder utility for Trinity -Group: Applications/Multimedia - -%description -n trinity-krec -This is a sound recording utility for Trinity. - -%files -n trinity-krec -%defattr(-,root,root,-) -%{tde_bindir}/krec -%{tde_tdelibdir}/kcm_krec.la -%{tde_tdelibdir}/kcm_krec.so -%{tde_tdelibdir}/kcm_krec_files.la -%{tde_tdelibdir}/kcm_krec_files.so -%{tde_tdelibdir}/krec.la -%{tde_tdelibdir}/krec.so -%{tde_tdelibdir}/libkrecexport_ogg.la -%{tde_tdelibdir}/libkrecexport_ogg.so -%{tde_tdelibdir}/libkrecexport_wave.la -%{tde_tdelibdir}/libkrecexport_wave.so -%{tde_libdir}/lib[kt]deinit_krec.so -%{tde_tdeappdir}/krec.desktop -%{tde_datadir}/apps/krec/ -%{tde_datadir}/icons/hicolor/*/apps/krec.png -%{tde_datadir}/services/kcm_krec.desktop -%{tde_datadir}/services/kcm_krec_files.desktop -%{tde_datadir}/services/krec_exportogg.desktop -%{tde_datadir}/services/krec_exportwave.desktop -%{tde_datadir}/servicetypes/krec_exportitem.desktop -%{tde_tdedocdir}/HTML/en/krec/ - -%post -n trinity-krec -/sbin/ldconfig -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-krec -/sbin/ldconfig -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package -n trinity-kscd -Summary: Audio CD player for Trinity -Group: Applications/Multimedia - -%description -n trinity-kscd -This is Trinity's audio CD player. - -%files -n trinity-kscd -%defattr(-,root,root,-) -%{tde_bindir}/kscd -%{tde_bindir}/workman2cddb.pl -%{tde_tdeappdir}/kscd.desktop -%{tde_datadir}/apps/konqueror/servicemenus/audiocd_play.desktop -%{tde_datadir}/apps/kscd/ -%{tde_datadir}/apps/profiles/kscd.profile.xml -%{tde_datadir}/config.kcfg/kscd.kcfg -%{tde_datadir}/icons/hicolor/*/apps/kscd.png -%{tde_datadir}/mimelnk/text/xmcd.desktop -%{tde_tdedocdir}/HTML/en/kscd/ - -%post -n trinity-kscd -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-kscd -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package -n trinity-libarts-akode -Summary: Akode plugin for aRts -Group: Environment/Libraries - -%description -n trinity-libarts-akode -This package contains akode plugins for aRts. - -%files -n trinity-libarts-akode -%defattr(-,root,root,-) -%{tde_libdir}/libarts_akode.so.* -%{tde_libdir}/libarts_akode.la -%{tde_libdir}/mcop/akodearts.mcoptype -%{tde_libdir}/mcop/akodearts.mcopclass -%{tde_libdir}/mcop/akodeMPCPlayObject.mcopclass -%{tde_libdir}/mcop/akodePlayObject.mcopclass -%{tde_libdir}/mcop/akodeSpeexStreamPlayObject.mcopclass -%{tde_libdir}/mcop/akodeVorbisStreamPlayObject.mcopclass -%{tde_libdir}/mcop/akodeXiphPlayObject.mcopclass - -# -devel - -%post -n trinity-libarts-akode -/sbin/ldconfig - -%postun -n trinity-libarts-akode -/sbin/ldconfig - -########## - -%package -n trinity-libarts-audiofile -Summary: Audiofile plugin for aRts -Group: Environment/Libraries - -%description -n trinity-libarts-audiofile -This package contains audiofile plugins for aRts. - -%files -n trinity-libarts-audiofile -%defattr(-,root,root,-) -%{tde_libdir}/libarts_audiofile.so.* -%{tde_libdir}/libarts_audiofile.la -%{tde_libdir}/mcop/Arts/audiofilePlayObject.mcopclass -%{tde_libdir}/mcop/audiofilearts.mcopclass -%{tde_libdir}/mcop/audiofilearts.mcoptype - -%post -n trinity-libarts-audiofile -/sbin/ldconfig - -%postun -n trinity-libarts-audiofile -/sbin/ldconfig - -########## - -%package -n trinity-libarts-mpeglib -Summary: Mpeglib plugin for aRts, supporting mp3 and mpeg audio/video -Group: Environment/Libraries - -%description -n trinity-libarts-mpeglib -This package contains the mpeglib aRts plugin, supporting mp3 and mpeg -audio and video. - -This is the arts (TDE Sound daemon) plugin. - -%files -n trinity-libarts-mpeglib -%defattr(-,root,root,-) -%{tde_bindir}/mpeglibartsplay -%{tde_libdir}/libarts_mpeglib-0.3.0.so.* -%{tde_libdir}/libarts_mpeglib.la -%{tde_libdir}/libarts_splay.so.* -%{tde_libdir}/libarts_splay.la -%{tde_libdir}/mcop/CDDAPlayObject.mcopclass -%{tde_libdir}/mcop/MP3PlayObject.mcopclass -%{tde_libdir}/mcop/NULLPlayObject.mcopclass -%{tde_libdir}/mcop/OGGPlayObject.mcopclass -%{tde_libdir}/mcop/SplayPlayObject.mcopclass -%{tde_libdir}/mcop/WAVPlayObject.mcopclass - -%post -n trinity-libarts-mpeglib -/sbin/ldconfig - -%postun -n trinity-libarts-mpeglib -/sbin/ldconfig - -########## - -%package -n trinity-libarts-xine -Summary: aRts plugin enabling xine support -Group: Environment/Libraries - -%description -n trinity-libarts-xine -This package contains aRts' xine plugin, allowing the use of the xine -multimedia engine though aRts. - -%files -n trinity-libarts-xine -%defattr(-,root,root,-) -%{tde_tdelibdir}/videothumbnail.la -%{tde_tdelibdir}/videothumbnail.so -%{tde_libdir}/libarts_xine.so.* -%{tde_libdir}/libarts_xine.la -%{tde_libdir}/mcop/xineAudioPlayObject.mcopclass -%{tde_libdir}/mcop/xineVideoPlayObject.mcopclass -%{tde_datadir}/apps/videothumbnail/sprocket-large.png -%{tde_datadir}/apps/videothumbnail/sprocket-medium.png -%{tde_datadir}/apps/videothumbnail/sprocket-small.png -%{tde_datadir}/services/videothumbnail.desktop - -%post -n trinity-libarts-xine -/sbin/ldconfig - -%postun -n trinity-libarts-xine -/sbin/ldconfig - -########## - -%package -n trinity-libkcddb -Summary: CDDB library for Trinity -Group: Environment/Libraries - -%description -n trinity-libkcddb -The Trinity native CDDB (CD Data Base) library, providing easy access to Audio -CD meta-information (track titles, artist information, etc.) from on-line -databases, for TDE applications. - -%files -n trinity-libkcddb -%defattr(-,root,root,-) -%{tde_tdelibdir}/kcm_cddb.la -%{tde_tdelibdir}/kcm_cddb.so -%{tde_libdir}/libkcddb.so.* -%{tde_tdeappdir}/libkcddb.desktop -%{tde_datadir}/apps/kconf_update/kcmcddb-emailsettings.upd -%{tde_datadir}/config.kcfg/libkcddb.kcfg - -%post -n trinity-libkcddb -/sbin/ldconfig -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-libkcddb -/sbin/ldconfig -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package -n trinity-mpeglib -Summary: MP3 and MPEG-1 audio and video library -Group: Environment/Libraries -Requires: trinity-libarts-mpeglib = %{version}-%{release} - -%description -n trinity-mpeglib -mpeglib is a MPEG-1 and MP3 audio and video library. It supports -MPEG-1 audio (layers 1, 2, 3), MPEG-1 video, MPEG-1 system layer, -and WAV playback - -%files -n trinity-mpeglib -%defattr(-,root,root,-) -%{tde_bindir}/yaf-cdda -%{tde_bindir}/yaf-mpgplay -%{tde_bindir}/yaf-splay -%{tde_bindir}/yaf-tplay -%{tde_bindir}/yaf-vorbis -%{tde_bindir}/yaf-yuv -%{tde_libdir}/libmpeg-0.3.0.so -%{tde_libdir}/libyafcore.so -%{tde_libdir}/libyafxplayer.so - -%post -n trinity-mpeglib -/sbin/ldconfig - -%postun -n trinity-mpeglib -/sbin/ldconfig - -########## - -%package -n trinity-noatun -Summary: Media player for Trinity -Group: Applications/Multimedia - -# 20120802: Hack to avoir dependency issue on MGA2 and MDV2011 -%if 0%{?mgaversion} || 0%{?mdkversion} -Provides: devel(libnoatunarts) -Provides: devel(libnoatunarts(64bit)) -%endif - -%description -n trinity-noatun -Noatun is an aRts-based audio and video player for Trinity. It supports all -formats supported by your installation of aRts (including aRts plugins). - -%files -n trinity-noatun -%defattr(-,root,root,-) -%{tde_bindir}/noatun -%{tde_libdir}/kconf_update_bin/noatun20update -%{tde_tdelibdir}/noatun.la -%{tde_tdelibdir}/noatun.so -%{tde_tdelibdir}/noatun_dcopiface.la -%{tde_tdelibdir}/noatun_dcopiface.so -%{tde_tdelibdir}/noatun_excellent.la -%{tde_tdelibdir}/noatun_excellent.so -%{tde_tdelibdir}/noatun_htmlexport.la -%{tde_tdelibdir}/noatun_htmlexport.so -%{tde_tdelibdir}/noatun_infrared.la -%{tde_tdelibdir}/noatun_infrared.so -%{tde_tdelibdir}/noatun_kaiman.la -%{tde_tdelibdir}/noatun_kaiman.so -%{tde_tdelibdir}/noatun_keyz.la -%{tde_tdelibdir}/noatun_keyz.so -%{tde_tdelibdir}/noatun_kjofol.la -%{tde_tdelibdir}/noatun_kjofol.so -%{tde_tdelibdir}/noatun_marquis.la -%{tde_tdelibdir}/noatun_marquis.so -%{tde_tdelibdir}/noatun_metatag.la -%{tde_tdelibdir}/noatun_metatag.so -%{tde_tdelibdir}/noatun_monoscope.la -%{tde_tdelibdir}/noatun_monoscope.so -%{tde_tdelibdir}/noatun_net.la -%{tde_tdelibdir}/noatun_net.so -%{tde_tdelibdir}/noatun_splitplaylist.la -%{tde_tdelibdir}/noatun_splitplaylist.so -%{tde_tdelibdir}/noatun_systray.la -%{tde_tdelibdir}/noatun_systray.so -%{tde_tdelibdir}/noatun_ui.la -%{tde_tdelibdir}/noatun_ui.so -%{tde_tdelibdir}/noatun_voiceprint.la -%{tde_tdelibdir}/noatun_voiceprint.so -%{tde_tdelibdir}/noatun_winskin.la -%{tde_tdelibdir}/noatun_winskin.so -%{tde_tdelibdir}/noatunsimple.la -%{tde_tdelibdir}/noatunsimple.so -%{tde_libdir}/libartseffects.la -%{tde_libdir}/libartseffects.so -%{tde_libdir}/lib[kt]deinit_noatun.so -%{tde_libdir}/libnoatun.so.* -%{tde_libdir}/libnoatunarts.la -%{tde_libdir}/libnoatunarts.so -%{tde_libdir}/libnoatuncontrols.so.* -%{tde_libdir}/libnoatuntags.so.* -%{tde_libdir}/libwinskinvis.la -%{tde_libdir}/libwinskinvis.so -%{tde_libdir}/mcop/ExtraStereo.mcopclass -%{tde_libdir}/mcop/ExtraStereoGuiFactory.mcopclass -%{tde_libdir}/mcop/Noatun/ -%{tde_libdir}/mcop/RawWriter.mcopclass -%{tde_libdir}/mcop/VoiceRemoval.mcopclass -%{tde_libdir}/mcop/artseffects.mcopclass -%{tde_libdir}/mcop/artseffects.mcoptype -%{tde_libdir}/mcop/noatunarts.mcopclass -%{tde_libdir}/mcop/noatunarts.mcoptype -%{tde_libdir}/mcop/winskinvis.mcopclass -%{tde_libdir}/mcop/winskinvis.mcoptype -%{tde_tdeappdir}/noatun.desktop -%{tde_datadir}/apps/kconf_update/noatun.upd -%{tde_datadir}/apps/noatun/ -%{tde_datadir}/icons/hicolor/*/apps/noatun.png -%{tde_datadir}/mimelnk/interface/x-winamp-skin.desktop -%{tde_tdedocdir}/HTML/en/noatun/ - -%post -n trinity-noatun -/sbin/ldconfig -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -%postun -n trinity-noatun -/sbin/ldconfig -for f in hicolor ; do - touch --no-create %{tde_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{tde_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{tde_datadir}/applications > /dev/null 2>&1 || : - -########## - -%package devel -Summary: Development files for %{name}, aRts and noatun plugins -Group: Development/Libraries -Requires: %{name} = %{version}-%{release} -Requires: trinity-tdelibs-devel >= 3.5.13 - -Obsoletes: trinity-kdemultimedia-devel < %{version}-%{release} -Provides: trinity-kdemultimedia-devel = %{version}-%{release} - -%description devel -{summary}. - -Install %{name}-devel if you wish to develop or compile any -applications using aRtsbuilder, aRtsmidi, aRtskde, aRts modules or -noatun plugins. - -%files devel -%defattr(-,root,root,-) -%{tde_includedir}/* -%{tde_libdir}/libarts_akode.so -%{tde_libdir}/libarts_audiofile.so -%{tde_libdir}/libarts_mpeglib.so -%{tde_libdir}/libarts_splay.so -%{tde_libdir}/libarts_xine.so -%{tde_libdir}/libartsbuilder.so -%{tde_libdir}/libartscontrolapplet.so -%{tde_libdir}/libartscontrolsupport.so -%{tde_libdir}/libartsgui.so -%{tde_libdir}/libartsgui_idl.so -%{tde_libdir}/libartsgui_kde.so -%{tde_libdir}/libartsmidi.so -%{tde_libdir}/libartsmidi_idl.so -%{tde_libdir}/libartsmodules.so -%{tde_libdir}/libartsmodulescommon.so -%{tde_libdir}/libartsmoduleseffects.so -%{tde_libdir}/libartsmodulesmixers.so -%{tde_libdir}/libartsmodulessynth.so -%{tde_libdir}/libaudiocdplugins.la -%{tde_libdir}/libaudiocdplugins.so -%{tde_libdir}/libkcddb.la -%{tde_libdir}/libkcddb.so -%{tde_libdir}/lib[kt]deinit_kmix.la -%{tde_libdir}/lib[kt]deinit_kmixctrl.la -%{tde_libdir}/lib[kt]deinit_krec.la -%{tde_libdir}/lib[kt]deinit_noatun.la -%{tde_libdir}/libkmidlib.la -%{tde_libdir}/libkmidlib.so -%{tde_libdir}/libmpeg.la -%{tde_libdir}/libmpeg.so -%{tde_libdir}/libnoatun.la -%{tde_libdir}/libnoatun.so -%{tde_libdir}/libnoatuncontrols.la -%{tde_libdir}/libnoatuncontrols.so -%{tde_libdir}/libnoatuntags.la -%{tde_libdir}/libnoatuntags.so -%{tde_libdir}/libyafcore.la -%{tde_libdir}/libyafxplayer.la - -%post devel -/sbin/ldconfig - -%postun devel -/sbin/ldconfig - -########## - - -%prep -%setup -q -n kdemultimedia -%patch1 -p1 -b .ftbfs -%patch3 -p1 -b .xdg -%patch5 -p1 -b .pthread -%patch10 -p1 -%patch21 -p1 -b .moreapplications -%patch22 -p1 -%patch23 -p1 -b .kmixautostart - - -# Ugly hack to modify TQT include directory inside autoconf files. -# If TQT detection fails, it fallbacks to TQT4 instead of TQT3 ! -%__sed -i "admin/acinclude.m4.in" \ - -e "s|/usr/include/tqt|%{tde_includedir}/tqt|g" \ - -e "s|kde_htmldir='.*'|kde_htmldir='%{tde_tdedocdir}/HTML'|g" - -%__cp "/usr/share/aclocal/libtool.m4" "admin/libtool.m4.in" -%__cp "/usr/share/libtool/config/ltmain.sh" "admin/ltmain.sh" || %__cp "/usr/share/libtool/ltmain.sh" "admin/ltmain.sh" -%__make -f "admin/Makefile.common" - - -%build -unset QTDIR || : ; . /etc/profile.d/qt.sh -export PATH="%{tde_bindir}:${PATH}" -export LDFLAGS="-L%{tde_libdir} -I%{tde_includedir}" -export PKG_CONFIG_PATH="%{tde_libdir}/pkgconfig:${PKG_CONFIG_PATH}" - -# Required for some distro -export KDEDIRS=%{tde_prefix} - -%configure \ - --exec-prefix=%{tde_prefix} \ - --bindir=%{tde_bindir} \ - --libdir=%{tde_libdir} \ - --includedir=%{tde_tdeincludedir} \ - --datadir=%{tde_datadir} \ - --enable-new-ldflags \ - --disable-dependency-tracking \ - --with-cdparanoia \ - --with-flac \ - --with-theora \ - --with-vorbis \ - --with-alsa \ - --with-gstreamer \ - --without-lame \ - --disable-debug \ - --disable-warnings \ - --enable-final \ - --disable-rpath \ - %{?_with_akode} %{!?_with_akode:--without-akode} \ - %{?_with_musicbrainz} %{!?_with_musicbrainz:--without-musicbrainz} \ - %{?_with_taglib} %{!?_with_taglib:--without-taglib} \ - %{?_with_xine} %{!?_with_xine:--without-xine} \ - --with-extra-includes="%{_includedir}/cdda:%{_includedir}/cddb:%{tde_includedir}/tqt:%{tde_tdeincludedir}/arts:%{tde_includedir}/artsc" \ - --enable-closure - -%__make %{?_smp_mflags} - - -%install -export PATH="%{tde_bindir}:${PATH}" -%__rm -rf %{?buildroot} -%__make install DESTDIR=%{buildroot} - -# don't make these world-writeable -chmod go-w %{buildroot}%{tde_datadir}/apps/kscd/* - -# locale's -HTML_DIR=$(kde-config --expandvars --install html) -if [ -d %{buildroot}$HTML_DIR ]; then -for lang_dir in %{buildroot}$HTML_DIR/* ; do - if [ -d $lang_dir ]; then - lang=$(basename $lang_dir) - echo "%lang($lang) $HTML_DIR/$lang/*" >> %{name}.lang - # replace absolute symlinks with relative ones - pushd $lang_dir - for i in *; do - [ -d $i -a -L $i/common ] && ln -nsf ../common $i/common - done - popd - fi -done -fi - -# Moves the XDG configuration files to TDE directory -%__install -p -D -m644 \ - "%{?buildroot}%{_sysconfdir}/xdg/menus/applications-merged/kde-multimedia-music.menu" \ - "%{?buildroot}%{tde_prefix}/etc/xdg/menus/applications-merged/trinity-multimedia-music.menu" -%__rm -rf "%{?buildroot}%{_sysconfdir}/xdg" - - -%clean -%__rm -rf %{buildroot} - - -%changelog -* Sat Aug 18 2012 Francois Andriot - 3.5.13-9 -- Rebuild for tdelibs-3.5.13-12 -- Fix kmix autostart. This resolves Bug 503, and re-applies commit 2cc2e3a2 as part of the fix. [Commit #7da06e55] - -* Sun Jul 01 2012 Francois Andriot - 3.5.13-8 -- Split in several packages -- Enables Xine support on RHEL/CentOS -- Removes previous patch. [Bug #503] - -* Wed May 09 2012 Francois Andriot - 3.5.13-7 -- Fix kmix not autostarting in the user's session. [Bug #503] - -* Tue May 01 2012 Francois Andriot - 3.5.13-6 -- Updates BuildRequires -- Remove "More Applications" from TDE menu. [Commit #31e44a7b] -- Fix linear alphabet string errors [Commit #fd6afacf] - -* Mon Jan 16 2012 Francois Andriot - 3.5.13-5 -- Enables 'akode' support -- Fix MMX support [Bug #800] - -* Fri Nov 25 2011 Francois Andriot - 3.5.13-4 -- Fix HTML directory location - -* Sat Nov 12 2011 Francois Andriot - 3.5.13-3 -- Moves XDG files in TDE prefix to avoid conflict with distro-provided KDE - -* Fri Nov 04 2011 Francois Andriot - 3.5.13-2 -- Updates BuildRequires - -* Sun Oct 30 2011 Francois Andriot - 3.5.13-1 -- Initial release for RHEL 6, RHEL 5 and Fedora 15 - -* Sat Sep 09 2011 Francois Andriot - 3.5.13-0 -- Import to GIT -- Spec file based on Fedora 8 "kdemultimedia-6:3.5.10-2" - diff --git a/redhat/tdemultimedia/kdemultimedia-3.5.7-pthread.patch b/redhat/tdemultimedia/kdemultimedia-3.5.7-pthread.patch deleted file mode 100644 index 70e2fe9c8..000000000 --- a/redhat/tdemultimedia/kdemultimedia-3.5.7-pthread.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- kdemultimedia-3.5.7-patched/xine_artsplugin/Makefile.am.pthread 2006-07-22 03:10:54.000000000 -0500 -+++ kdemultimedia-3.5.7-patched/xine_artsplugin/Makefile.am 2007-06-28 06:50:53.000000000 -0500 -@@ -8,7 +8,7 @@ - xinePlayObject_impl.cpp \ - audio_fifo_out.c - libarts_xine_la_LDFLAGS = $(all_libraries) -module -no-undefined -pthread --libarts_xine_la_LIBADD = $(XINE_LIBS) $(LIB_X11) $(LIB_XEXT) \ -+libarts_xine_la_LIBADD = $(XINE_LIBS) $(LIBPTHREAD) $(LIB_X11) $(LIB_XEXT) \ - -lkmedia2_idl -lsoundserver_idl -lartsflow - - libarts_xine_la_METASOURCES = AUTO diff --git a/redhat/tdemultimedia/tdemultimedia-14.0.0.spec b/redhat/tdemultimedia/tdemultimedia-14.0.0.spec index b8f25cd91..9936c4ce6 100644 --- a/redhat/tdemultimedia/tdemultimedia-14.0.0.spec +++ b/redhat/tdemultimedia/tdemultimedia-14.0.0.spec @@ -1,5 +1,5 @@ # -# spec file for package tdemultimedia +# spec file for package tdemultimedia (version R14.0.0) # # Copyright (c) 2014 Trinity Desktop Environment # @@ -1228,13 +1228,10 @@ export PATH="%{tde_bindir}:${PATH}" %__rm -rf %{?buildroot} %__make install DESTDIR=%{buildroot} -# don't make these world-writeable -chmod go-w %{buildroot}%{tde_datadir}/apps/kscd/* - # Updates applications categories for openSUSE %if 0%{?suse_version} %suse_update_desktop_file krec AudioVideo Recorder -%suse_update_desktop_file tdemid AudioVideo Midi +%suse_update_desktop_file tdemid AudioVideo Midi %suse_update_desktop_file artsbuilder AudioVideo AudioVideoEditing %suse_update_desktop_file artscontrol AudioVideo AudioVideoEditing %suse_update_desktop_file kmix AudioVideo Mixer diff --git a/redhat/tdemultimedia/tdemultimedia-3.5.13.2-fix_pulseaudio_mixer.patch b/redhat/tdemultimedia/tdemultimedia-3.5.13.2-fix_pulseaudio_mixer.patch deleted file mode 100644 index 66a796a03..000000000 --- a/redhat/tdemultimedia/tdemultimedia-3.5.13.2-fix_pulseaudio_mixer.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- trinity-tdemultimedia-3.5.13.2~pre21+6e6307c6/kmix/kmixdockwidget.cpp.ORI 2013-05-21 23:07:46.511834317 +0200 -+++ trinity-tdemultimedia-3.5.13.2~pre21+6e6307c6/kmix/kmixdockwidget.cpp 2013-05-21 23:07:04.202716141 +0200 -@@ -109,6 +109,7 @@ - _oldToolTipValue = -1; - _oldPixmapType = '-'; - -+/* - if (m_mixer == 0) { - // In case that there is no mixer installed, there will be no newVolumeLevels() signal's - // Thus we prepare the dock areas manually -@@ -116,6 +117,7 @@ - updatePixmap(false); - return; - } -+*/ - // create devices - - _dockAreaPopup = new ViewDockAreaPopup(0, "dockArea", m_mixer, 0, this); -@@ -376,7 +378,6 @@ - if ( md != 0 ) { - md->setMuted( !md->isMuted() ); - m_mixer->commitVolumeChange( md ); -- updatePixmap(false); - } - } - } diff --git a/redhat/tdemultimedia/tdemultimedia-3.5.13.2-fix_xdg_menu.patch b/redhat/tdemultimedia/tdemultimedia-3.5.13.2-fix_xdg_menu.patch deleted file mode 100644 index c8a4e4d96..000000000 --- a/redhat/tdemultimedia/tdemultimedia-3.5.13.2-fix_xdg_menu.patch +++ /dev/null @@ -1,250 +0,0 @@ -diff -Nuar trinity-tdemultimedia-3.5.13.2/kappfinder-data.ORI/kde-multimedia-music.directory trinity-tdemultimedia-3.5.13.2/kappfinder-data/kde-multimedia-music.directory ---- trinity-tdemultimedia-3.5.13.2/kappfinder-data.ORI/kde-multimedia-music.directory 2013-07-28 16:37:31.827222470 +0200 -+++ trinity-tdemultimedia-3.5.13.2/kappfinder-data/kde-multimedia-music.directory 1970-01-01 01:00:00.000000000 +0100 -@@ -1,89 +0,0 @@ --[Desktop Entry] --Encoding=UTF-8 --Name=Music --Name[br]=Sonerezh --Name[bs]=Muzika --Name[ca]=Música --Name[da]=Musik --Name[el]=Μουσική --Name[eo]=Muziko --Name[es]=Musica --Name[et]=Muusika --Name[eu]=Musika --Name[fa]=موسیقی --Name[fi]=Musiikki --Name[fr]=Musique --Name[ga]=Ceol --Name[gl]=Música --Name[he]=מוזיקה --Name[hu]=Zene --Name[is]=Tónlist --Name[it]=Musica --Name[ja]=音楽 --Name[km]=តន្ត្រី --Name[lt]=Muzika --Name[nb]=Musikk --Name[ne]=सङ्गित --Name[nl]=Muziek --Name[nn]=Musikk --Name[pa]=ਸੰਗੀਤ --Name[pl]=Muzyka --Name[pt]=Música --Name[pt_BR]=Música --Name[sk]=Hudba --Name[sl]=Glasba --Name[sr]=Музика --Name[sr@Latn]=Muzika --Name[sv]=Musik --Name[tr]=Müzik --Name[uk]=Музика --Name[zh_CN]=音乐 --Name[zh_HK]=音樂 --GenericName=Professional Audio --GenericName[bg]=Професионално аудио --GenericName[bs]=Profesionalni audio --GenericName[ca]=Àudio professional --GenericName[cs]=Profesionální zvuk --GenericName[da]=Professionel lyd --GenericName[el]=Επαγγελματικός ήχος --GenericName[es]=Audio profesional --GenericName[et]=Professionaalne audio --GenericName[eu]=Audio profesionala --GenericName[fa]=صوتی حرفه‌ای --GenericName[fi]=Ammattilaisääni --GenericName[fr]=Audio professionnel --GenericName[ga]=Fuaim Phroifisiúnta --GenericName[gl]=Son Profesional --GenericName[he]=שמע מקצועי --GenericName[hu]=Professzinonális minőségű hanganyag --GenericName[is]=Atvinnumannahljóð --GenericName[it]=Audio professionale --GenericName[ja]=プロフェッショナルオーディオ --GenericName[kk]=Кәсіпқой Аудио --GenericName[km]=អូឌីយ៉ូ​ឯកទេស --GenericName[ko]=전문가 오디오 --GenericName[lt]=Profesionalus audio --GenericName[mk]=Професионално аудио --GenericName[nb]=Profesjonell lyd --GenericName[nds]=Profeschonell Klang --GenericName[ne]=पेशागत अडियो --GenericName[nl]=Professionele audio --GenericName[nn]=Profesjonell lydhandsaming --GenericName[pa]=ਵਪਾਰਕ ਆਡੀਓ --GenericName[pl]=Profesjonalne audio --GenericName[pt]=Áudio Profissional --GenericName[pt_BR]=Áudio Profissional --GenericName[ru]=Профессиональное аудио --GenericName[sk]=Profesionálne audio --GenericName[sl]=Profesionalni zvok --GenericName[sr]=Професионални звук --GenericName[sr@Latn]=Profesionalni zvuk --GenericName[sv]=Professionellt ljud --GenericName[th]=โปรแกรมจัดการเสียงสำหรับมืออาชีพ --GenericName[tr]=Profesyonel Ses --GenericName[uk]=Професійне аудіо --GenericName[zh_CN]=专业音频 --GenericName[zh_HK]=專業音效 --GenericName[zh_TW]=專業音效 --Icon=package -- -diff -Nuar trinity-tdemultimedia-3.5.13.2/kappfinder-data.ORI/kde-multimedia-music.menu trinity-tdemultimedia-3.5.13.2/kappfinder-data/kde-multimedia-music.menu ---- trinity-tdemultimedia-3.5.13.2/kappfinder-data.ORI/kde-multimedia-music.menu 2013-07-28 16:37:31.827222470 +0200 -+++ trinity-tdemultimedia-3.5.13.2/kappfinder-data/kde-multimedia-music.menu 1970-01-01 01:00:00.000000000 +0100 -@@ -1,21 +0,0 @@ -- -- -- --Applications -- -- Multimedia -- -- Music -- -- -- Jack and More -- kde-multimedia-music.directory -- -- -- Music -- -- -- -- -- -diff -Nuar trinity-tdemultimedia-3.5.13.2/kappfinder-data.ORI/Makefile.am trinity-tdemultimedia-3.5.13.2/kappfinder-data/Makefile.am ---- trinity-tdemultimedia-3.5.13.2/kappfinder-data.ORI/Makefile.am 2013-07-28 16:37:31.827222470 +0200 -+++ trinity-tdemultimedia-3.5.13.2/kappfinder-data/Makefile.am 2013-07-28 16:38:07.202464444 +0200 -@@ -22,8 +22,8 @@ - - EXTRA_DIST = $(kappfinder_multimedia_data_DATA) - --xdg_directory_DATA = kde-multimedia-music.directory -+xdg_directory_DATA = tde-multimedia-music.directory - --xdg_mergedmenu_DATA = kde-multimedia-music.menu -+xdg_mergedmenu_DATA = tde-multimedia-music.menu - xdg_mergedmenudir = $(xdg_menudir)/applications-merged - -diff -Nuar trinity-tdemultimedia-3.5.13.2/kappfinder-data.ORI/tde-multimedia-music.directory trinity-tdemultimedia-3.5.13.2/kappfinder-data/tde-multimedia-music.directory ---- trinity-tdemultimedia-3.5.13.2/kappfinder-data.ORI/tde-multimedia-music.directory 1970-01-01 01:00:00.000000000 +0100 -+++ trinity-tdemultimedia-3.5.13.2/kappfinder-data/tde-multimedia-music.directory 2013-06-07 19:26:15.000000000 +0200 -@@ -0,0 +1,89 @@ -+[Desktop Entry] -+Encoding=UTF-8 -+Name=Music -+Name[br]=Sonerezh -+Name[bs]=Muzika -+Name[ca]=Música -+Name[da]=Musik -+Name[el]=Μουσική -+Name[eo]=Muziko -+Name[es]=Musica -+Name[et]=Muusika -+Name[eu]=Musika -+Name[fa]=موسیقی -+Name[fi]=Musiikki -+Name[fr]=Musique -+Name[ga]=Ceol -+Name[gl]=Música -+Name[he]=מוזיקה -+Name[hu]=Zene -+Name[is]=Tónlist -+Name[it]=Musica -+Name[ja]=音楽 -+Name[km]=តន្ត្រី -+Name[lt]=Muzika -+Name[nb]=Musikk -+Name[ne]=सङ्गित -+Name[nl]=Muziek -+Name[nn]=Musikk -+Name[pa]=ਸੰਗੀਤ -+Name[pl]=Muzyka -+Name[pt]=Música -+Name[pt_BR]=Música -+Name[sk]=Hudba -+Name[sl]=Glasba -+Name[sr]=Музика -+Name[sr@Latn]=Muzika -+Name[sv]=Musik -+Name[tr]=Müzik -+Name[uk]=Музика -+Name[zh_CN]=音乐 -+Name[zh_HK]=音樂 -+GenericName=Professional Audio -+GenericName[bg]=Професионално аудио -+GenericName[bs]=Profesionalni audio -+GenericName[ca]=Àudio professional -+GenericName[cs]=Profesionální zvuk -+GenericName[da]=Professionel lyd -+GenericName[el]=Επαγγελματικός ήχος -+GenericName[es]=Audio profesional -+GenericName[et]=Professionaalne audio -+GenericName[eu]=Audio profesionala -+GenericName[fa]=صوتی حرفه‌ای -+GenericName[fi]=Ammattilaisääni -+GenericName[fr]=Audio professionnel -+GenericName[ga]=Fuaim Phroifisiúnta -+GenericName[gl]=Son Profesional -+GenericName[he]=שמע מקצועי -+GenericName[hu]=Professzinonális minőségű hanganyag -+GenericName[is]=Atvinnumannahljóð -+GenericName[it]=Audio professionale -+GenericName[ja]=プロフェッショナルオーディオ -+GenericName[kk]=Кәсіпқой Аудио -+GenericName[km]=អូឌីយ៉ូ​ឯកទេស -+GenericName[ko]=전문가 오디오 -+GenericName[lt]=Profesionalus audio -+GenericName[mk]=Професионално аудио -+GenericName[nb]=Profesjonell lyd -+GenericName[nds]=Profeschonell Klang -+GenericName[ne]=पेशागत अडियो -+GenericName[nl]=Professionele audio -+GenericName[nn]=Profesjonell lydhandsaming -+GenericName[pa]=ਵਪਾਰਕ ਆਡੀਓ -+GenericName[pl]=Profesjonalne audio -+GenericName[pt]=Áudio Profissional -+GenericName[pt_BR]=Áudio Profissional -+GenericName[ru]=Профессиональное аудио -+GenericName[sk]=Profesionálne audio -+GenericName[sl]=Profesionalni zvok -+GenericName[sr]=Професионални звук -+GenericName[sr@Latn]=Profesionalni zvuk -+GenericName[sv]=Professionellt ljud -+GenericName[th]=โปรแกรมจัดการเสียงสำหรับมืออาชีพ -+GenericName[tr]=Profesyonel Ses -+GenericName[uk]=Професійне аудіо -+GenericName[zh_CN]=专业音频 -+GenericName[zh_HK]=專業音效 -+GenericName[zh_TW]=專業音效 -+Icon=package -+ -diff -Nuar trinity-tdemultimedia-3.5.13.2/kappfinder-data.ORI/tde-multimedia-music.menu trinity-tdemultimedia-3.5.13.2/kappfinder-data/tde-multimedia-music.menu ---- trinity-tdemultimedia-3.5.13.2/kappfinder-data.ORI/tde-multimedia-music.menu 1970-01-01 01:00:00.000000000 +0100 -+++ trinity-tdemultimedia-3.5.13.2/kappfinder-data/tde-multimedia-music.menu 2013-07-28 16:38:14.396310283 +0200 -@@ -0,0 +1,21 @@ -+ -+ -+ -+Applications -+ -+ Multimedia -+ -+ Music -+ -+ -+ Jack and More -+ tde-multimedia-music.directory -+ -+ -+ Music -+ -+ -+ -+ -+ diff --git a/redhat/tdemultimedia/tdemultimedia-3.5.13.2-ftbfs.patch b/redhat/tdemultimedia/tdemultimedia-3.5.13.2-ftbfs.patch deleted file mode 100644 index 719313722..000000000 --- a/redhat/tdemultimedia/tdemultimedia-3.5.13.2-ftbfs.patch +++ /dev/null @@ -1,43 +0,0 @@ ---- trinity-tdemultimedia-3.5.13.2~pre17+a4c1404c/arts/modules/common/Makefile.am.ORI 2013-05-09 10:51:39.994294437 +0200 -+++ trinity-tdemultimedia-3.5.13.2~pre17+a4c1404c/arts/modules/common/Makefile.am 2013-05-09 10:52:23.837409361 +0200 -@@ -25,7 +25,7 @@ - $(top_builddir)/arts/gui/common/libartsgui_idl.la \ - $(top_builddir)/arts/midi/libartsmidi_idl.la \ - $(top_builddir)/arts/modules/synth/libartsmodulessynth.la \ -- -lartsflow -lartsflow_idl -lmcop $(LIB_KDECORE) $(LIB_QT) $(VORBISFILE_LIBS) -lgthread-2.0 -+ -lartsflow -lartsflow_idl -lmcop $(LIB_KDECORE) $(LIB_QT) -lgthread-2.0 $(ARTS_LIBS) - - libartsmodulescommon_la_LDFLAGS = $(all_libraries) -L$(arts_libraries) -no-undefined - ---- trinity-tdemultimedia-14.0.0~pre178+601a5c5f/arts/modules/synth/Makefile.am.ORI 2013-08-04 19:15:24.030530158 +0200 -+++ trinity-tdemultimedia-14.0.0~pre178+601a5c5f/arts/modules/synth/Makefile.am 2013-08-04 19:15:32.878625492 +0200 -@@ -31,7 +31,7 @@ - libartsmodulessynth_la_LIBADD = \ - $(top_builddir)/arts/runtime/libartsbuilder.la \ - $(top_builddir)/arts/midi/libartsmidi_idl.la \ -- -lartsflow -lartsgsl -lartsflow_idl -lmcop -lglib-2.0 -+ -lartsflow -lartsgsl -lartsflow_idl -lmcop -lglib-2.0 $(ARTS_LIBS) - - #libartsmodulessynth_la_LIBADD = $(top_builddir)/arts/gui/common/libartsgui_idl.la $(top_builddir)/arts/midi/libartsmidi_idl.la -lartsflow -lartsflow_idl -lmcop $(LIBDL) $(LIB_KDEUI) $(LIB_KDECORE) - libartsmodulessynth_la_LDFLAGS = $(all_libraries) -L$(arts_libraries) -lartsflow -lartsgsl -no-undefined ---- trinity-tdemultimedia-14.0.0~pre183+1859432c/configure.in.in.ORI 2013-09-08 17:50:11.453897325 +0200 -+++ trinity-tdemultimedia-14.0.0~pre183+1859432c/configure.in.in 2013-09-08 17:54:24.503460785 +0200 -@@ -544,15 +544,18 @@ - LIB_ARTS="-lartskde" - ARTS_PREFIX=[`$ARTSCCONFIG --arts-prefix`] - ARTS_CFLAGS="-I$ARTS_PREFIX/include/arts" -+ ARTS_LIBS=[`$PKG_CONFIG --libs-only-l arts`] - AC_DEFINE(HAVE_ARTS, 1, [have arts support in juk]) - else - build_arts="no" - LIB_ARTS="" - ARTS_CFLAGS="" -+ ARTS_LIBS="" - AC_DEFINE(HAVE_ARTS, 0, [no arts support in juk]) - fi - - AC_SUBST(LIB_ARTS) - AC_SUBST(ARTS_CFLAGS) -+AC_SUBST(ARTS_LIBS) - - KDE_CHECK_MPEGLIB_ARTS diff --git a/redhat/tdemultimedia/tdemultimedia-3.5.13.2-kmix_pulseaudio.patch b/redhat/tdemultimedia/tdemultimedia-3.5.13.2-kmix_pulseaudio.patch deleted file mode 100644 index 0759d6ebb..000000000 --- a/redhat/tdemultimedia/tdemultimedia-3.5.13.2-kmix_pulseaudio.patch +++ /dev/null @@ -1,1519 +0,0 @@ -diff -Nuar ./kmix-tde-ori/kmix-platforms.cpp ./kmix/kmix-platforms.cpp ---- ./kmix-tde-ori/kmix-platforms.cpp 2013-05-09 17:10:41.010638051 +0200 -+++ ./kmix/kmix-platforms.cpp 2013-05-09 17:18:23.202075902 +0200 -@@ -46,8 +46,10 @@ - #define ALSA_MIXER - #endif - -+#define PULSE_MIXER -+ - #define OSS_MIXER --#endif -+#endif // __linux__ - - #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(_UNIXWARE) || defined(__DragonFly__) - #define OSS_MIXER -@@ -79,6 +81,10 @@ - #include "mixer_alsa9.cpp" - #endif - -+#if defined(PULSE_MIXER) -+#include "mixer_pulse.cpp" -+#endif -+ - #if defined(OSS_MIXER) - #include "mixer_oss.cpp" - -@@ -91,7 +97,7 @@ - #define OSS4_MIXER - #endif - --#endif -+#endif // OSS_MIXER - - #if defined(OSS4_MIXER) - #include "mixer_oss4.cpp" -@@ -137,6 +143,10 @@ - { ALSA_getMixer, ALSA_getDriverName, ALSA_getDevIterator }, - #endif - -+#if defined(PULSE_MIXER) -+ { PULSE_getMixer, PULSE_getDriverName, NULL }, -+#endif -+ - #if defined(OSS4_MIXER) - { OSS4_getMixer, OSS4_getDriverName, NULL }, - #endif -diff -Nuar ./kmix-tde-ori/Makefile.am ./kmix/Makefile.am ---- ./kmix-tde-ori/Makefile.am 2013-05-09 17:10:41.010638051 +0200 -+++ ./kmix/Makefile.am 2013-05-21 23:47:47.607546135 +0200 -@@ -41,7 +41,7 @@ - verticaltext.cpp mixerIface.skel colorwidget.ui dialogviewconfiguration.cpp \ - kmixtoolbox.cpp mixertoolbox.cpp dialogselectmaster.cpp - --kmix_panelapplet_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module -+kmix_panelapplet_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -I/usr/include/glib-2.0 -module - kmix_panelapplet_la_LIBADD = $(LIB_KDEUI) $(LIB_KUTILS) $(LIBALIB) $(LIBOSSAUDIO) $(LIBASOUND) - - xdg_apps_DATA = kmix.desktop -diff -Nuar ./kmix-tde-ori/mixer_pulse.cpp ./kmix/mixer_pulse.cpp ---- ./kmix-tde-ori/mixer_pulse.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ ./kmix/mixer_pulse.cpp 2013-05-21 23:37:43.565178347 +0200 -@@ -0,0 +1,1368 @@ -+/* -+ * KMix -- KDE's full featured mini mixer -+ * -+ * -+ * Copyright (C) 2008 Helio Chissini de Castro -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Library General Public -+ * License as published by the Free Software Foundation; either -+ * version 2 of the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Library General Public License for more details. -+ * -+ * You should have received a copy of the GNU Library General Public -+ * License along with this program; if not, write to the Free -+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -+ */ -+ -+#include "mixer_pulse.h" -+ -+#include -+//#include -+#include -+ -+#include -+ -+#include "mixer.h" -+//#include "core/ControlManager.h" -+//#include "core/GlobalConfig.h" -+ -+#include -+#include -+#if defined(HAVE_CANBERRA) -+# include -+#endif -+ -+// PA_VOLUME_UI_MAX landed in pulseaudio-0.9.23, so this can be removed when/if -+// minimum requirement is ever bumped up (from 0.9.12 currently) -+#ifndef PA_VOLUME_UI_MAX -+#define PA_VOLUME_UI_MAX (pa_sw_volume_from_dB(+11.0)) -+#endif -+ -+#define HAVE_SOURCE_OUTPUT_VOLUMES PA_CHECK_VERSION(1,0,0) -+ -+#define KMIXPA_PLAYBACK 0 -+#define KMIXPA_CAPTURE 1 -+#define KMIXPA_APP_PLAYBACK 2 -+#define KMIXPA_APP_CAPTURE 3 -+#define KMIXPA_WIDGET_MAX KMIXPA_APP_CAPTURE -+ -+#define KMIXPA_EVENT_KEY "sink-input-by-media-role:event" -+ -+static unsigned int refcount = 0; -+static pa_glib_mainloop *s_mainloop = NULL; -+static pa_context *s_context = NULL; -+static enum { UNKNOWN, ACTIVE, INACTIVE } s_pulseActive = UNKNOWN; -+static int s_outstandingRequests = 0; -+ -+#if defined(HAVE_CANBERRA) -+static ca_context *s_ccontext = NULL; -+#endif -+ -+TQMap s_mixers; -+ -+typedef TQMap devmap; -+static devmap outputDevices; -+static devmap captureDevices; -+static TQMap clients; -+static devmap outputStreams; -+static devmap captureStreams; -+static devmap outputRoles; -+ -+typedef struct { -+ pa_channel_map channel_map; -+ pa_cvolume volume; -+ bool mute; -+ TQString device; -+} restoreRule; -+static TQMap s_RestoreRules; -+ -+static void dec_outstanding(pa_context *c) { -+ if (s_outstandingRequests <= 0) -+ return; -+ -+ if (--s_outstandingRequests == 0) -+ { -+ s_pulseActive = ACTIVE; -+ -+ // If this is our probe phase, exit our context immediately -+ if (s_context != c) { -+ pa_context_disconnect(c); -+ } else -+ kDebug(67100) << "Reconnected to PulseAudio"; -+ } -+} -+ -+static void translateMasksAndMaps(devinfo& dev) -+{ -+ dev.chanMask = Volume::MNONE; -+ dev.chanIDs.clear(); -+ -+ if (dev.channel_map.channels != dev.volume.channels) { -+ kError() << "Hiddeous Channel mixup map says " << dev.channel_map.channels << ", volume says: " << dev.volume.channels; -+ return; -+ } -+ if (1 == dev.channel_map.channels && PA_CHANNEL_POSITION_MONO == dev.channel_map.map[0]) { -+ // We just use the left channel to represent this. -+ dev.chanMask = (Volume::ChannelMask)( dev.chanMask | Volume::MLEFT); -+ dev.chanIDs[0] = Volume::LEFT; -+ } else { -+ for (uint8_t i = 0; i < dev.channel_map.channels; ++i) { -+ switch (dev.channel_map.map[i]) { -+ case PA_CHANNEL_POSITION_MONO: -+ kWarning(67100) << "Channel Map contains a MONO element but has >1 channel - we can't handle this."; -+ return; -+ -+ case PA_CHANNEL_POSITION_FRONT_LEFT: -+ dev.chanMask = (Volume::ChannelMask)( dev.chanMask | Volume::MLEFT); -+ dev.chanIDs[i] = Volume::LEFT; -+ break; -+ case PA_CHANNEL_POSITION_FRONT_RIGHT: -+ dev.chanMask = (Volume::ChannelMask)( dev.chanMask | Volume::MRIGHT); -+ dev.chanIDs[i] = Volume::RIGHT; -+ break; -+ case PA_CHANNEL_POSITION_FRONT_CENTER: -+ dev.chanMask = (Volume::ChannelMask)( dev.chanMask | Volume::MCENTER); -+ dev.chanIDs[i] = Volume::CENTER; -+ break; -+ case PA_CHANNEL_POSITION_REAR_CENTER: -+ dev.chanMask = (Volume::ChannelMask)( dev.chanMask | Volume::MREARCENTER); -+ dev.chanIDs[i] = Volume::REARCENTER; -+ break; -+ case PA_CHANNEL_POSITION_REAR_LEFT: -+ dev.chanMask = (Volume::ChannelMask)( dev.chanMask | Volume::MSURROUNDLEFT); -+ dev.chanIDs[i] = Volume::SURROUNDLEFT; -+ break; -+ case PA_CHANNEL_POSITION_REAR_RIGHT: -+ dev.chanMask = (Volume::ChannelMask)( dev.chanMask | Volume::MSURROUNDRIGHT); -+ dev.chanIDs[i] = Volume::SURROUNDRIGHT; -+ break; -+ case PA_CHANNEL_POSITION_LFE: -+ dev.chanMask = (Volume::ChannelMask)( dev.chanMask | Volume::MWOOFER); -+ dev.chanIDs[i] = Volume::WOOFER; -+ break; -+ case PA_CHANNEL_POSITION_SIDE_LEFT: -+ dev.chanMask = (Volume::ChannelMask)( dev.chanMask | Volume::MREARSIDELEFT); -+ dev.chanIDs[i] = Volume::REARSIDELEFT; -+ break; -+ case PA_CHANNEL_POSITION_SIDE_RIGHT: -+ dev.chanMask = (Volume::ChannelMask)( dev.chanMask | Volume::MREARSIDERIGHT); -+ dev.chanIDs[i] = Volume::REARSIDERIGHT; -+ break; -+ default: -+ kWarning(67100) << "Channel Map contains a pa_channel_position we cannot handle " << dev.channel_map.map[i]; -+ break; -+ } -+ } -+ } -+} -+ -+static TQString getIconNameFromProplist(pa_proplist *l) { -+ const char *t; -+ -+ if ((t = pa_proplist_gets(l, PA_PROP_MEDIA_ICON_NAME))) -+ return TQString::fromUtf8(t); -+ -+ if ((t = pa_proplist_gets(l, PA_PROP_WINDOW_ICON_NAME))) -+ return TQString::fromUtf8(t); -+ -+ if ((t = pa_proplist_gets(l, PA_PROP_APPLICATION_ICON_NAME))) -+ return TQString::fromUtf8(t); -+ -+ if ((t = pa_proplist_gets(l, PA_PROP_MEDIA_ROLE))) { -+ -+ if (strcmp(t, "video") == 0 || strcmp(t, "phone") == 0) -+ return TQString::fromUtf8(t); -+ -+ if (strcmp(t, "music") == 0) -+ return "audio"; -+ -+ if (strcmp(t, "game") == 0) -+ return "applications-games"; -+ -+ if (strcmp(t, "event") == 0) -+ return "dialog-information"; -+ } -+ -+ return ""; -+} -+ -+static void sink_cb(pa_context *c, const pa_sink_info *i, int eol, void *) { -+ -+ if (eol < 0) { -+ if (pa_context_errno(c) == PA_ERR_NOENTITY) -+ return; -+ -+ kWarning(67100) << "Sink callback failure"; -+ return; -+ } -+ -+ if (eol > 0) { -+ dec_outstanding(c); -+ if (s_mixers.contains(KMIXPA_PLAYBACK)) -+ s_mixers[KMIXPA_PLAYBACK]->triggerUpdate(); -+ return; -+ } -+ -+ devinfo s; -+ s.index = s.device_index = i->index; -+ s.name = TQString::fromUtf8(i->name).replace(' ', '_'); -+ s.description = TQString::fromUtf8(i->description); -+ s.icon_name = TQString::fromUtf8(pa_proplist_gets(i->proplist, PA_PROP_DEVICE_ICON_NAME)); -+ s.volume = i->volume; -+ s.channel_map = i->channel_map; -+ s.mute = !!i->mute; -+ s.stream_restore_rule = ""; -+ -+ translateMasksAndMaps(s); -+ -+ bool is_new = !outputDevices.contains(s.index); -+ outputDevices[s.index] = s; -+// kDebug(67100) << "Got some info about sink: " << s.description; -+ -+ if (s_mixers.contains(KMIXPA_PLAYBACK)) { -+ if (is_new) -+ s_mixers[KMIXPA_PLAYBACK]->addWidget(s.index); -+ else { -+ int mid = s_mixers[KMIXPA_PLAYBACK]->id2num(s.name); -+ if (mid >= 0) { -+ MixSet *ms = s_mixers[KMIXPA_PLAYBACK]->getMixSet(); -+ (*ms)[mid]->setReadableName(s.description); -+ } -+ } -+ } -+} -+ -+static void source_cb(pa_context *c, const pa_source_info *i, int eol, void *) { -+ -+ if (eol < 0) { -+ if (pa_context_errno(c) == PA_ERR_NOENTITY) -+ return; -+ -+ kWarning(67100) << "Source callback failure"; -+ return; -+ } -+ -+ if (eol > 0) { -+ dec_outstanding(c); -+ if (s_mixers.contains(KMIXPA_CAPTURE)) -+ s_mixers[KMIXPA_CAPTURE]->triggerUpdate(); -+ return; -+ } -+ -+ // Do something.... -+ if (PA_INVALID_INDEX != i->monitor_of_sink) -+ { -+ kDebug(67100) << "Ignoring Monitor Source: " << i->description; -+ return; -+ } -+ -+ devinfo s; -+ s.index = s.device_index = i->index; -+ s.name = TQString::fromUtf8(i->name).replace(' ', '_'); -+ s.description = TQString::fromUtf8(i->description); -+ s.icon_name = TQString::fromUtf8(pa_proplist_gets(i->proplist, PA_PROP_DEVICE_ICON_NAME)); -+ s.volume = i->volume; -+ s.channel_map = i->channel_map; -+ s.mute = !!i->mute; -+ s.stream_restore_rule = ""; -+ -+ translateMasksAndMaps(s); -+ -+ bool is_new = !captureDevices.contains(s.index); -+ captureDevices[s.index] = s; -+// kDebug(67100) << "Got some info about source: " << s.description; -+ -+ if (s_mixers.contains(KMIXPA_CAPTURE)) { -+ if (is_new) -+ s_mixers[KMIXPA_CAPTURE]->addWidget(s.index); -+ else { -+ int mid = s_mixers[KMIXPA_CAPTURE]->id2num(s.name); -+ if (mid >= 0) { -+ MixSet *ms = s_mixers[KMIXPA_CAPTURE]->getMixSet(); -+ (*ms)[mid]->setReadableName(s.description); -+ } -+ } -+ } -+} -+ -+static void client_cb(pa_context *c, const pa_client_info *i, int eol, void *) { -+ -+ if (eol < 0) { -+ if (pa_context_errno(c) == PA_ERR_NOENTITY) -+ return; -+ -+ kWarning(67100) << "Client callback failure"; -+ return; -+ } -+ -+ if (eol > 0) { -+ dec_outstanding(c); -+ return; -+ } -+ -+ clients[i->index] = TQString::fromUtf8(i->name); -+ //kDebug(67100) << "Got some info about client: " << clients[i->index]; -+} -+ -+static void sink_input_cb(pa_context *c, const pa_sink_input_info *i, int eol, void *) { -+ -+ if (eol < 0) { -+ if (pa_context_errno(c) == PA_ERR_NOENTITY) -+ return; -+ -+ kWarning(67100) << "Sink Input callback failure"; -+ return; -+ } -+ -+ if (eol > 0) { -+ dec_outstanding(c); -+ if (s_mixers.contains(KMIXPA_APP_PLAYBACK)) -+ s_mixers[KMIXPA_APP_PLAYBACK]->triggerUpdate(); -+ return; -+ } -+ -+ const char *t; -+ if ((t = pa_proplist_gets(i->proplist, "module-stream-restore.id"))) { -+ if (strcmp(t, KMIXPA_EVENT_KEY) == 0) { -+ kWarning(67100) << "Ignoring sink-input due to it being designated as an event and thus handled by the Event slider"; -+ return; -+ } -+ } -+ -+ TQString appname = i18n("Unknown Application"); -+ if (clients.contains(i->client)) -+ appname = clients[i->client]; -+ -+ TQString prefix = TQString("%1: ").arg(appname); -+ -+ devinfo s; -+ s.index = i->index; -+ s.device_index = i->sink; -+ s.description = prefix + TQString::fromUtf8(i->name); -+ s.name = TQString("stream:") + TQString::number(i->index); //appname.replace(' ', '_').toLower(); -+ s.icon_name = getIconNameFromProplist(i->proplist); -+ s.channel_map = i->channel_map; -+ s.volume = i->volume; -+ s.mute = !!i->mute; -+ s.stream_restore_rule = TQString::fromUtf8(t); -+ -+ translateMasksAndMaps(s); -+ -+ bool is_new = !outputStreams.contains(s.index); -+ outputStreams[s.index] = s; -+// kDebug(67100) << "Got some info about sink input (playback stream): " << s.description; -+ -+ if (s_mixers.contains(KMIXPA_APP_PLAYBACK)) { -+ if (is_new) -+ s_mixers[KMIXPA_APP_PLAYBACK]->addWidget(s.index, true); -+ else { -+ int mid = s_mixers[KMIXPA_APP_PLAYBACK]->id2num(s.name); -+ if (mid >= 0) { -+ MixSet *ms = s_mixers[KMIXPA_APP_PLAYBACK]->getMixSet(); -+ (*ms)[mid]->setReadableName(s.description); -+ } -+ } -+ } -+} -+ -+static void source_output_cb(pa_context *c, const pa_source_output_info *i, int eol, void *) { -+ -+ if (eol < 0) { -+ if (pa_context_errno(c) == PA_ERR_NOENTITY) -+ return; -+ -+ kWarning(67100) << "Source Output callback failure"; -+ return; -+ } -+ -+ if (eol > 0) { -+ dec_outstanding(c); -+ if (s_mixers.contains(KMIXPA_APP_CAPTURE)) -+ s_mixers[KMIXPA_APP_CAPTURE]->triggerUpdate(); -+ return; -+ } -+ -+ /* NB Until Source Outputs support volumes, we just use the volume of the source itself */ -+ if (!captureDevices.contains(i->source)) { -+ kDebug(67100) << "Source Output refers to a Source we don't have any info for (probably just a peak meter or similar)"; -+ return; -+ } -+ -+ TQString appname = i18n("Unknown Application"); -+ if (clients.contains(i->client)) -+ appname = clients[i->client]; -+ -+ TQString prefix = TQString("%1: ").arg(appname); -+ -+ devinfo s; -+ s.index = i->index; -+ s.device_index = i->source; -+ s.description = prefix + TQString::fromUtf8(i->name); -+ s.name = TQString("stream:") + TQString::number(i->index); //appname.replace(' ', '_').toLower(); -+ s.icon_name = getIconNameFromProplist(i->proplist); -+ s.channel_map = i->channel_map; -+#if HAVE_SOURCE_OUTPUT_VOLUMES -+ s.volume = i->volume; -+ s.mute = !!i->mute; -+#else -+ s.volume = captureDevices[i->source].volume; -+ s.mute = captureDevices[i->source].mute; -+#endif -+ s.stream_restore_rule = TQString::fromUtf8(pa_proplist_gets(i->proplist, "module-stream-restore.id")); -+ -+ translateMasksAndMaps(s); -+ -+ bool is_new = !captureStreams.contains(s.index); -+ captureStreams[s.index] = s; -+// kDebug(67100) << "Got some info about source output (capture stream): " << s.description; -+ -+ if (s_mixers.contains(KMIXPA_APP_CAPTURE)) { -+ if (is_new) -+ s_mixers[KMIXPA_APP_CAPTURE]->addWidget(s.index, true); -+ else { -+ int mid = s_mixers[KMIXPA_APP_CAPTURE]->id2num(s.name); -+ if (mid >= 0) { -+ MixSet *ms = s_mixers[KMIXPA_APP_CAPTURE]->getMixSet(); -+ (*ms)[mid]->setReadableName(s.description); -+ } -+ } -+ } -+} -+ -+ -+static devinfo create_role_devinfo(TQString name) { -+ -+ TQ_ASSERT(s_RestoreRules.contains(name)); -+ -+ devinfo s; -+ s.index = s.device_index = PA_INVALID_INDEX; -+ s.description = i18n("Event Sounds"); -+ s.name = TQString("restore:") + name; -+ s.icon_name = "dialog-information"; -+ s.channel_map = s_RestoreRules[name].channel_map; -+ s.volume = s_RestoreRules[name].volume; -+ s.mute = s_RestoreRules[name].mute; -+ s.stream_restore_rule = name; -+ -+ translateMasksAndMaps(s); -+ return s; -+} -+ -+ -+void ext_stream_restore_read_cb(pa_context *c, const pa_ext_stream_restore_info *i, int eol, void *) { -+ -+ if (eol < 0) { -+ dec_outstanding(c); -+ kWarning(67100) << "Failed to initialize stream_restore extension: " << pa_strerror(pa_context_errno(s_context)); -+ return; -+ } -+ -+ if (eol > 0) { -+ dec_outstanding(c); -+ -+ // Special case: ensure that our media events exists. -+ // On first login by a new users, this wont be in our database so we should create it. -+ if (!s_RestoreRules.contains(KMIXPA_EVENT_KEY)) { -+ // Create a fake rule -+ restoreRule rule; -+ rule.channel_map.channels = 1; -+ rule.channel_map.map[0] = PA_CHANNEL_POSITION_MONO; -+ rule.volume.channels = 1; -+ rule.volume.values[0] = PA_VOLUME_NORM; -+ rule.mute = false; -+ rule.device = ""; -+ s_RestoreRules[KMIXPA_EVENT_KEY] = rule; -+ kDebug(67100) << "Initialising restore rule for new user: " << i18n("Event Sounds"); -+ } -+ -+ if (s_mixers.contains(KMIXPA_APP_PLAYBACK)) { -+ // If we have rules, it will be created below... but if no rules -+ // then we add it here. -+ if (!outputRoles.contains(PA_INVALID_INDEX)) { -+ devinfo s = create_role_devinfo(KMIXPA_EVENT_KEY); -+ outputRoles[s.index] = s; -+ -+ s_mixers[KMIXPA_APP_PLAYBACK]->addWidget(s.index); -+ } -+ -+ s_mixers[KMIXPA_APP_PLAYBACK]->triggerUpdate(); -+ } -+ -+ return; -+ } -+ -+ -+ TQString name = TQString::fromUtf8(i->name); -+// kDebug(67100) << TQString("Got some info about restore rule: '%1' (Device: %2)").arg(name).arg(i->device ? i->device : "None"); -+ restoreRule rule; -+ rule.channel_map = i->channel_map; -+ rule.volume = i->volume; -+ rule.mute = !!i->mute; -+ rule.device = i->device; -+ -+ if (rule.channel_map.channels < 1 && name == KMIXPA_EVENT_KEY) { -+ // Stream restore rules may not have valid volumes/channel maps (as these are optional) -+ // but we need a valid volume+channelmap for our events sounds so fix it up. -+ rule.channel_map.channels = 1; -+ rule.channel_map.map[0] = PA_CHANNEL_POSITION_MONO; -+ rule.volume.channels = 1; -+ rule.volume.values[0] = PA_VOLUME_NORM; -+ } -+ -+ s_RestoreRules[name] = rule; -+ -+ if (s_mixers.contains(KMIXPA_APP_PLAYBACK)) { -+ // We only want to know about Sound Events for now... -+ if (name == KMIXPA_EVENT_KEY) { -+ devinfo s = create_role_devinfo(name); -+ bool is_new = !outputRoles.contains(s.index); -+ outputRoles[s.index] = s; -+ -+ if (is_new) -+ s_mixers[KMIXPA_APP_PLAYBACK]->addWidget(s.index, true); -+ } -+ } -+} -+ -+static void ext_stream_restore_subscribe_cb(pa_context *c, void *) { -+ -+ TQ_ASSERT(c == s_context); -+ -+ pa_operation *o; -+ if (!(o = pa_ext_stream_restore_read(c, ext_stream_restore_read_cb, NULL))) { -+ kWarning(67100) << "pa_ext_stream_restore_read() failed"; -+ return; -+ } -+ -+ pa_operation_unref(o); -+} -+ -+ -+static void subscribe_cb(pa_context *c, pa_subscription_event_type_t t, uint32_t index, void *) { -+ -+ TQ_ASSERT(c == s_context); -+ -+ switch (t & PA_SUBSCRIPTION_EVENT_FACILITY_MASK) { -+ case PA_SUBSCRIPTION_EVENT_SINK: -+ if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { -+ if (s_mixers.contains(KMIXPA_PLAYBACK)) -+ s_mixers[KMIXPA_PLAYBACK]->removeWidget(index); -+ } else { -+ pa_operation *o; -+ if (!(o = pa_context_get_sink_info_by_index(c, index, sink_cb, NULL))) { -+ kWarning(67100) << "pa_context_get_sink_info_by_index() failed"; -+ return; -+ } -+ pa_operation_unref(o); -+ } -+ break; -+ -+ case PA_SUBSCRIPTION_EVENT_SOURCE: -+ if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { -+ if (s_mixers.contains(KMIXPA_CAPTURE)) -+ s_mixers[KMIXPA_CAPTURE]->removeWidget(index); -+ } else { -+ pa_operation *o; -+ if (!(o = pa_context_get_source_info_by_index(c, index, source_cb, NULL))) { -+ kWarning(67100) << "pa_context_get_source_info_by_index() failed"; -+ return; -+ } -+ pa_operation_unref(o); -+ } -+ break; -+ -+ case PA_SUBSCRIPTION_EVENT_SINK_INPUT: -+ if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { -+ if (s_mixers.contains(KMIXPA_APP_PLAYBACK)) -+ s_mixers[KMIXPA_APP_PLAYBACK]->removeWidget(index); -+ } else { -+ pa_operation *o; -+ if (!(o = pa_context_get_sink_input_info(c, index, sink_input_cb, NULL))) { -+ kWarning(67100) << "pa_context_get_sink_input_info() failed"; -+ return; -+ } -+ pa_operation_unref(o); -+ } -+ break; -+ -+ case PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT: -+ if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { -+ if (s_mixers.contains(KMIXPA_APP_CAPTURE)) -+ s_mixers[KMIXPA_APP_CAPTURE]->removeWidget(index); -+ } else { -+ pa_operation *o; -+ if (!(o = pa_context_get_source_output_info(c, index, source_output_cb, NULL))) { -+ kWarning(67100) << "pa_context_get_sink_input_info() failed"; -+ return; -+ } -+ pa_operation_unref(o); -+ } -+ break; -+ -+ case PA_SUBSCRIPTION_EVENT_CLIENT: -+ if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { -+ clients.remove(index); -+ } else { -+ pa_operation *o; -+ if (!(o = pa_context_get_client_info(c, index, client_cb, NULL))) { -+ kWarning(67100) << "pa_context_get_client_info() failed"; -+ return; -+ } -+ pa_operation_unref(o); -+ } -+ break; -+ -+ } -+} -+ -+ -+static void context_state_callback(pa_context *c, void *) -+{ -+ pa_context_state_t state = pa_context_get_state(c); -+ if (state == PA_CONTEXT_READY) { -+ // Attempt to load things up -+ pa_operation *o; -+ -+ // 1. Register for the stream changes (except during probe) -+ if (s_context == c) { -+ pa_context_set_subscribe_callback(c, subscribe_cb, NULL); -+ -+ if (!(o = pa_context_subscribe(c, (pa_subscription_mask_t) -+ (PA_SUBSCRIPTION_MASK_SINK| -+ PA_SUBSCRIPTION_MASK_SOURCE| -+ PA_SUBSCRIPTION_MASK_CLIENT| -+ PA_SUBSCRIPTION_MASK_SINK_INPUT| -+ PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT), NULL, NULL))) { -+ kWarning(67100) << "pa_context_subscribe() failed"; -+ return; -+ } -+ pa_operation_unref(o); -+ } -+ -+ if (!(o = pa_context_get_sink_info_list(c, sink_cb, NULL))) { -+ kWarning(67100) << "pa_context_get_sink_info_list() failed"; -+ return; -+ } -+ pa_operation_unref(o); -+ s_outstandingRequests++; -+ -+ if (!(o = pa_context_get_source_info_list(c, source_cb, NULL))) { -+ kWarning(67100) << "pa_context_get_source_info_list() failed"; -+ return; -+ } -+ pa_operation_unref(o); -+ s_outstandingRequests++; -+ -+ -+ if (!(o = pa_context_get_client_info_list(c, client_cb, NULL))) { -+ kWarning(67100) << "pa_context_client_info_list() failed"; -+ return; -+ } -+ pa_operation_unref(o); -+ s_outstandingRequests++; -+ -+ if (!(o = pa_context_get_sink_input_info_list(c, sink_input_cb, NULL))) { -+ kWarning(67100) << "pa_context_get_sink_input_info_list() failed"; -+ return; -+ } -+ pa_operation_unref(o); -+ s_outstandingRequests++; -+ -+ if (!(o = pa_context_get_source_output_info_list(c, source_output_cb, NULL))) { -+ kWarning(67100) << "pa_context_get_source_output_info_list() failed"; -+ return; -+ } -+ pa_operation_unref(o); -+ s_outstandingRequests++; -+ -+ /* These calls are not always supported */ -+ if ((o = pa_ext_stream_restore_read(c, ext_stream_restore_read_cb, NULL))) { -+ pa_operation_unref(o); -+ s_outstandingRequests++; -+ -+ pa_ext_stream_restore_set_subscribe_cb(c, ext_stream_restore_subscribe_cb, NULL); -+ -+ if ((o = pa_ext_stream_restore_subscribe(c, 1, NULL, NULL))) -+ pa_operation_unref(o); -+ } else { -+ kWarning(67100) << "Failed to initialize stream_restore extension: " << pa_strerror(pa_context_errno(s_context)); -+ } -+ } else if (!PA_CONTEXT_IS_GOOD(state)) { -+ // If this is our probe phase, exit our context immediately -+ if (s_context != c) { -+ pa_context_disconnect(c); -+ } else { -+ // If we're not probing, it means we've been disconnected from our -+ // glib context -+ pa_context_unref(s_context); -+ s_context = NULL; -+ -+ // Remove all GUI elements -+ TQMap::iterator it; -+ for (it = s_mixers.begin(); it != s_mixers.end(); ++it) { -+ (*it)->removeAllWidgets(); -+ } -+ // This one is not handled above. -+ clients.clear(); -+ -+ if (s_mixers.contains(KMIXPA_PLAYBACK)) { -+ kWarning(67100) << "Connection to PulseAudio daemon closed. Attempting reconnection."; -+ s_pulseActive = UNKNOWN; -+ TQTimer::singleShot(50, s_mixers[KMIXPA_PLAYBACK], SLOT(reinit())); -+ } -+ } -+ } -+} -+ -+static void setVolumeFromPulse(Volume& volume, const devinfo& dev) -+{ -+ chanIDMap::const_iterator iter; -+ for (iter = dev.chanIDs.begin(); iter != dev.chanIDs.end(); ++iter) -+ { -+ //kDebug(67100) << "Setting volume for channel " << iter.value() << " to " << (long)dev.volume.values[iter.key()] << " (" << ((100*(long)dev.volume.values[iter.key()]) / PA_VOLUME_NORM) << "%)"; -+ volume.setVolume(iter.value(), (long)dev.volume.values[iter.key()]); -+ } -+} -+ -+static pa_cvolume genVolumeForPulse(const devinfo& dev, Volume& volume) -+{ -+ pa_cvolume cvol = dev.volume; -+ -+ chanIDMap::const_iterator iter; -+ for (iter = dev.chanIDs.begin(); iter != dev.chanIDs.end(); ++iter) -+ { -+ cvol.values[iter.key()] = (uint32_t)volume.getVolume(iter.value()); -+ //kDebug(67100) << "Setting volume for channel " << iter.value() << " to " << cvol.values[iter.key()] << " (" << ((100*cvol.values[iter.key()]) / PA_VOLUME_NORM) << "%)"; -+ } -+ return cvol; -+} -+ -+static devmap* get_widget_map(int type, TQString id = "") -+{ -+ TQ_ASSERT(type >= 0 && type <= KMIXPA_WIDGET_MAX); -+ -+ if (KMIXPA_PLAYBACK == type) -+ return &outputDevices; -+ else if (KMIXPA_CAPTURE == type) -+ return &captureDevices; -+ else if (KMIXPA_APP_PLAYBACK == type) { -+ if (id.startsWith("restore:")) -+ return &outputRoles; -+ return &outputStreams; -+ } else if (KMIXPA_APP_CAPTURE == type) -+ return &captureStreams; -+ -+ TQ_ASSERT(0); -+ return NULL; -+} -+static devmap* get_widget_map(int type, int index) -+{ -+ if (PA_INVALID_INDEX == (uint32_t)index) -+ return get_widget_map(type, "restore:"); -+ return get_widget_map(type); -+} -+ -+void Mixer_PULSE::emitControlsReconfigured() -+{ -+ ControlManager::instance().announce(_mixer->id(), ControlChangeType::ControlList, getDriverName()); -+} -+ -+void Mixer_PULSE::addWidget(int index, bool isAppStream) -+{ -+ devmap* map = get_widget_map(m_devnum, index); -+ -+ if (!map->contains(index)) { -+ kWarning(67100) << "New " << m_devnum << " widget notified for index " << index << " but I cannot find it in my list :s"; -+ return; -+ } -+ addDevice((*map)[index], isAppStream); -+ emitControlsReconfigured(); -+} -+ -+void Mixer_PULSE::removeWidget(int index) -+{ -+ devmap* map = get_widget_map(m_devnum); -+ -+ if (!map->contains(index)) { -+ //kWarning(67100) << "Removing " << m_devnum << " widget notified for index " << index << " but I cannot find it in my list :s"; -+ // Sometimes we ignore things (e.g. event sounds) so don't be too noisy here. -+ return; -+ } -+ -+ TQString id = (*map)[index].name; -+ map->remove(index); -+ -+ // We need to find the MixDevice that goes with this widget and remove it. -+ MixSet::iterator iter; -+ for (iter = m_mixDevices.begin(); iter != m_mixDevices.end(); ++iter) -+ { -+ if ((*iter)->id() == id) -+ { -+ shared_ptr md = m_mixDevices.get(id); -+ kDebug() << "MixDevice 1 useCount=" << md.use_count(); -+ md->close(); -+ kDebug() << "MixDevice 2 useCount=" << md.use_count(); -+ -+ m_mixDevices.erase(iter); -+ kDebug() << "MixDevice 3 useCount=" << md.use_count(); -+ emitControlsReconfigured(); -+ kDebug() << "MixDevice 4 useCount=" << md.use_count(); -+ return; -+ } -+ } -+} -+ -+void Mixer_PULSE::removeAllWidgets() -+{ -+ devmap* map = get_widget_map(m_devnum); -+ map->clear(); -+ -+ // Special case -+ if (KMIXPA_APP_PLAYBACK == m_devnum) -+ outputRoles.clear(); -+ -+ freeMixDevices(); -+ emitControlsReconfigured(); -+} -+ -+void Mixer_PULSE::addDevice(devinfo& dev, bool isAppStream) -+{ -+ if (dev.chanMask != Volume::MNONE) { -+ MixSet *ms = 0; -+ if (m_devnum == KMIXPA_APP_PLAYBACK && s_mixers.contains(KMIXPA_PLAYBACK)) -+ ms = s_mixers[KMIXPA_PLAYBACK]->getMixSet(); -+ else if (m_devnum == KMIXPA_APP_CAPTURE && s_mixers.contains(KMIXPA_CAPTURE)) -+ ms = s_mixers[KMIXPA_CAPTURE]->getMixSet(); -+ -+ int maxVol = GlobalConfig::instance().volumeOverdrive ? PA_VOLUME_UI_MAX : PA_VOLUME_NORM; -+ Volume v(maxVol, PA_VOLUME_MUTED, true, false); -+ v.addVolumeChannels(dev.chanMask); -+ setVolumeFromPulse(v, dev); -+ MixDevice* md = new MixDevice( _mixer, dev.name, dev.description, dev.icon_name, ms); -+ if (isAppStream) -+ md->setApplicationStream(true); -+ -+ kDebug() << "Adding Pulse volume " << dev.name << ", isCapture= " << (m_devnum == KMIXPA_CAPTURE || m_devnum == KMIXPA_APP_CAPTURE) << ", isAppStream= " << isAppStream << "=" << md->isApplicationStream() << ", devnum=" << m_devnum; -+ md->addPlaybackVolume(v); -+ md->setMuted(dev.mute); -+ m_mixDevices.append(md->addToPool()); -+ } -+} -+ -+Mixer_Backend* PULSE_getMixer( Mixer *mixer, int devnum ) -+{ -+ Mixer_Backend *l_mixer; -+ l_mixer = new Mixer_PULSE( mixer, devnum ); -+ return l_mixer; -+} -+ -+bool Mixer_PULSE::connectToDaemon() -+{ -+ TQ_ASSERT(NULL == s_context); -+ -+ kDebug(67100) << "Attempting connection to PulseAudio sound daemon"; -+ pa_mainloop_api *api = pa_glib_mainloop_get_api(s_mainloop); -+ TQ_ASSERT(api); -+ -+ s_context = pa_context_new(api, "KMix"); -+ TQ_ASSERT(s_context); -+ -+ if (pa_context_connect(s_context, NULL, PA_CONTEXT_NOFAIL, 0) < 0) { -+ pa_context_unref(s_context); -+ s_context = NULL; -+ return false; -+ } -+ pa_context_set_state_callback(s_context, &context_state_callback, NULL); -+ return true; -+} -+ -+ -+Mixer_PULSE::Mixer_PULSE(Mixer *mixer, int devnum) : Mixer_Backend(mixer, devnum) -+{ -+ if ( devnum == -1 ) -+ m_devnum = 0; -+ -+ TQString pulseenv = qgetenv("KMIX_PULSEAUDIO_DISABLE"); -+ if (pulseenv.toInt()) -+ s_pulseActive = INACTIVE; -+ -+ // We require a glib event loop -+ if (!QByteArray(QAbstractEventDispatcher::instance()->metaObject()->className()).contains("EventDispatcherGlib")) { -+ kDebug(67100) << "Disabling PulseAudio integration for lack of GLib event loop"; -+ s_pulseActive = INACTIVE; -+ } -+ -+ -+ ++refcount; -+ if (INACTIVE != s_pulseActive && 1 == refcount) -+ { -+ // First of all conenct to PA via simple/blocking means and if that succeeds, -+ // use a fully async integrated mainloop method to connect and get proper support. -+ pa_mainloop *p_test_mainloop; -+ if (!(p_test_mainloop = pa_mainloop_new())) { -+ kDebug(67100) << "PulseAudio support disabled: Unable to create mainloop"; -+ s_pulseActive = INACTIVE; -+ goto endconstruct; -+ } -+ -+ pa_context *p_test_context; -+ if (!(p_test_context = pa_context_new(pa_mainloop_get_api(p_test_mainloop), "kmix-probe"))) { -+ kDebug(67100) << "PulseAudio support disabled: Unable to create context"; -+ pa_mainloop_free(p_test_mainloop); -+ s_pulseActive = INACTIVE; -+ goto endconstruct; -+ } -+ -+ kDebug(67100) << "Probing for PulseAudio..."; -+ // (cg) Convert to PA_CONTEXT_NOFLAGS when PulseAudio 0.9.19 is required -+ if (pa_context_connect(p_test_context, NULL, static_cast(0), NULL) < 0) { -+ kDebug(67100) << TQString("PulseAudio support disabled: %1").arg(pa_strerror(pa_context_errno(p_test_context))); -+ pa_context_disconnect(p_test_context); -+ pa_context_unref(p_test_context); -+ pa_mainloop_free(p_test_mainloop); -+ s_pulseActive = INACTIVE; -+ goto endconstruct; -+ } -+ -+ // Assume we are inactive, it will be set to active if appropriate -+ s_pulseActive = INACTIVE; -+ pa_context_set_state_callback(p_test_context, &context_state_callback, NULL); -+ for (;;) { -+ pa_mainloop_iterate(p_test_mainloop, 1, NULL); -+ -+ if (!PA_CONTEXT_IS_GOOD(pa_context_get_state(p_test_context))) { -+ kDebug(67100) << "PulseAudio probe complete."; -+ break; -+ } -+ } -+ pa_context_disconnect(p_test_context); -+ pa_context_unref(p_test_context); -+ pa_mainloop_free(p_test_mainloop); -+ -+ -+ if (INACTIVE != s_pulseActive) -+ { -+ // Reconnect via integrated mainloop -+ s_mainloop = pa_glib_mainloop_new(NULL); -+ TQ_ASSERT(s_mainloop); -+ -+ connectToDaemon(); -+ -+#if defined(HAVE_CANBERRA) -+ int ret = ca_context_create(&s_ccontext); -+ if (ret < 0) { -+ kDebug(67100) << "Disabling Sound Feedback. Canberra context failed."; -+ s_ccontext = NULL; -+ } else -+ ca_context_set_driver(s_ccontext, "pulse"); -+#endif -+ } -+ -+ kDebug(67100) << "PulseAudio status: " << (s_pulseActive==UNKNOWN ? "Unknown (bug)" : (s_pulseActive==ACTIVE ? "Active" : "Inactive")); -+ } -+ -+endconstruct: -+ s_mixers[m_devnum] = this; -+} -+ -+Mixer_PULSE::~Mixer_PULSE() -+{ -+ s_mixers.remove(m_devnum); -+ -+ if (refcount > 0) -+ { -+ --refcount; -+ if (0 == refcount) -+ { -+#if defined(HAVE_CANBERRA) -+ if (s_ccontext) { -+ ca_context_destroy(s_ccontext); -+ s_ccontext = NULL; -+ } -+#endif -+ -+ if (s_context) { -+ pa_context_unref(s_context); -+ s_context = NULL; -+ } -+ -+ if (s_mainloop) { -+ pa_glib_mainloop_free(s_mainloop); -+ s_mainloop = NULL; -+ } -+ } -+ } -+ -+ closeCommon(); -+} -+ -+int Mixer_PULSE::open() -+{ -+ //kDebug(67100) << "Trying Pulse sink"; -+ -+ if (ACTIVE == s_pulseActive && m_devnum <= KMIXPA_APP_CAPTURE) -+ { -+ // Make sure the GUI layers know we are dynamic so as to always paint us -+ _mixer->setDynamic(); -+ -+ devmap::iterator iter; -+ if (KMIXPA_PLAYBACK == m_devnum) -+ { -+ _id = "Playback Devices"; -+ m_mixerName = i18n("Playback Devices"); -+ for (iter = outputDevices.begin(); iter != outputDevices.end(); ++iter) -+ addDevice(*iter); -+ } -+ else if (KMIXPA_CAPTURE == m_devnum) -+ { -+ _id = "Capture Devices"; -+ m_mixerName = i18n("Capture Devices"); -+ for (iter = captureDevices.begin(); iter != captureDevices.end(); ++iter) -+ addDevice(*iter); -+ } -+ else if (KMIXPA_APP_PLAYBACK == m_devnum) -+ { -+ _id = "Playback Streams"; -+ m_mixerName = i18n("Playback Streams"); -+ for (iter = outputRoles.begin(); iter != outputRoles.end(); ++iter) -+ addDevice(*iter, true); -+ for (iter = outputStreams.begin(); iter != outputStreams.end(); ++iter) -+ addDevice(*iter, true); -+ } -+ else if (KMIXPA_APP_CAPTURE == m_devnum) -+ { -+ _id = "Capture Streams"; -+ m_mixerName = i18n("Capture Streams"); -+ for (iter = captureStreams.begin(); iter != captureStreams.end(); ++iter) -+ addDevice(*iter); -+ } -+ -+ kDebug(67100) << "Using PulseAudio for mixer: " << m_mixerName; -+ m_isOpen = true; -+ } -+ -+ return 0; -+} -+ -+int Mixer_PULSE::close() -+{ -+ closeCommon(); -+ return 1; -+} -+ -+int Mixer_PULSE::id2num(const TQString& id) { -+ //kDebug(67100) << "id2num() id=" << id; -+ int num = -1; -+ // todo: Store this in a hash or similar -+ int i; -+ for (i = 0; i < m_mixDevices.size(); ++i) { -+ if (m_mixDevices[i]->id() == id) { -+ num = i; -+ break; -+ } -+ } -+ //kDebug(67100) << "id2num() num=" << num; -+ return num; -+} -+ -+int Mixer_PULSE::readVolumeFromHW( const TQString& id, shared_ptr md ) -+{ -+ devmap *map = get_widget_map(m_devnum, id); -+ -+ devmap::iterator iter; -+ for (iter = map->begin(); iter != map->end(); ++iter) -+ { -+ if (iter->name == id) -+ { -+ setVolumeFromPulse(md->playbackVolume(), *iter); -+ md->setMuted(iter->mute); -+ break; -+ } -+ } -+ -+ return 0; -+} -+ -+int Mixer_PULSE::writeVolumeToHW( const TQString& id, shared_ptr md ) -+{ -+ devmap::iterator iter; -+ if (KMIXPA_PLAYBACK == m_devnum) -+ { -+ for (iter = outputDevices.begin(); iter != outputDevices.end(); ++iter) -+ { -+ if (iter->name == id) -+ { -+ pa_operation *o; -+ -+ pa_cvolume volume = genVolumeForPulse(*iter, md->playbackVolume()); -+ if (!(o = pa_context_set_sink_volume_by_index(s_context, iter->index, &volume, NULL, NULL))) { -+ kWarning(67100) << "pa_context_set_sink_volume_by_index() failed"; -+ return Mixer::ERR_READ; -+ } -+ pa_operation_unref(o); -+ -+ if (!(o = pa_context_set_sink_mute_by_index(s_context, iter->index, (md->isMuted() ? 1 : 0), NULL, NULL))) { -+ kWarning(67100) << "pa_context_set_sink_mute_by_index() failed"; -+ return Mixer::ERR_READ; -+ } -+ pa_operation_unref(o); -+ -+#if defined(HAVE_CANBERRA) -+ if (s_ccontext && Mixer::getBeepOnVolumeChange() ) { -+ int playing = 0; -+ int cindex = 2; // Note "2" is simply the index we've picked. It's somewhat irrelevant. -+ -+ -+ ca_context_playing(s_ccontext, cindex, &playing); -+ -+ // NB Depending on how this is desired to work, we may want to simply -+ // skip playing, or cancel the currently playing sound and play our -+ // new one... for now, let's do the latter. -+ if (playing) { -+ ca_context_cancel(s_ccontext, cindex); -+ playing = 0; -+ } -+ -+ if (!playing) { -+ char dev[64]; -+ -+ snprintf(dev, sizeof(dev), "%lu", (unsigned long) iter->index); -+ ca_context_change_device(s_ccontext, dev); -+ -+ // Ideally we'd use something like ca_gtk_play_for_widget()... -+ ca_context_play( -+ s_ccontext, -+ cindex, -+ CA_PROP_EVENT_DESCRIPTION, i18n("Volume Control Feedback Sound").toUtf8().constData(), -+ CA_PROP_EVENT_ID, "audio-volume-change", -+ CA_PROP_CANBERRA_CACHE_CONTROL, "permanent", -+ CA_PROP_CANBERRA_ENABLE, "1", -+ NULL -+ ); -+ -+ ca_context_change_device(s_ccontext, NULL); -+ } -+ } -+#endif -+ -+ return 0; -+ } -+ } -+ } -+ else if (KMIXPA_CAPTURE == m_devnum) -+ { -+ for (iter = captureDevices.begin(); iter != captureDevices.end(); ++iter) -+ { -+ if (iter->name == id) -+ { -+ pa_operation *o; -+ -+ pa_cvolume volume = genVolumeForPulse(*iter, md->playbackVolume()); -+ if (!(o = pa_context_set_source_volume_by_index(s_context, iter->index, &volume, NULL, NULL))) { -+ kWarning(67100) << "pa_context_set_source_volume_by_index() failed"; -+ return Mixer::ERR_READ; -+ } -+ pa_operation_unref(o); -+ -+ if (!(o = pa_context_set_source_mute_by_index(s_context, iter->index, (md->isMuted() ? 1 : 0), NULL, NULL))) { -+ kWarning(67100) << "pa_context_set_source_mute_by_index() failed"; -+ return Mixer::ERR_READ; -+ } -+ pa_operation_unref(o); -+ -+ return 0; -+ } -+ } -+ } -+ else if (KMIXPA_APP_PLAYBACK == m_devnum) -+ { -+ if (id.startsWith("stream:")) -+ { -+ for (iter = outputStreams.begin(); iter != outputStreams.end(); ++iter) -+ { -+ if (iter->name == id) -+ { -+ pa_operation *o; -+ -+ pa_cvolume volume = genVolumeForPulse(*iter, md->playbackVolume()); -+ if (!(o = pa_context_set_sink_input_volume(s_context, iter->index, &volume, NULL, NULL))) { -+ kWarning(67100) << "pa_context_set_sink_input_volume() failed"; -+ return Mixer::ERR_READ; -+ } -+ pa_operation_unref(o); -+ -+ if (!(o = pa_context_set_sink_input_mute(s_context, iter->index, (md->isMuted() ? 1 : 0), NULL, NULL))) { -+ kWarning(67100) << "pa_context_set_sink_input_mute() failed"; -+ return Mixer::ERR_READ; -+ } -+ pa_operation_unref(o); -+ -+ return 0; -+ } -+ } -+ } -+ else if (id.startsWith("restore:")) -+ { -+ for (iter = outputRoles.begin(); iter != outputRoles.end(); ++iter) -+ { -+ if (iter->name == id) -+ { -+ restoreRule &rule = s_RestoreRules[iter->stream_restore_rule]; -+ pa_ext_stream_restore_info info; -+ info.name = iter->stream_restore_rule.toUtf8().constData(); -+ info.channel_map = rule.channel_map; -+ info.volume = genVolumeForPulse(*iter, md->playbackVolume()); -+ info.device = rule.device.isEmpty() ? NULL : rule.device.toUtf8().constData(); -+ info.mute = (md->isMuted() ? 1 : 0); -+ -+ pa_operation* o; -+ if (!(o = pa_ext_stream_restore_write(s_context, PA_UPDATE_REPLACE, &info, 1, true, NULL, NULL))) { -+ kWarning(67100) << "pa_ext_stream_restore_write() failed" << info.channel_map.channels << info.volume.channels << info.name; -+ return Mixer::ERR_READ; -+ } -+ pa_operation_unref(o); -+ -+ return 0; -+ } -+ } -+ } -+ } -+ else if (KMIXPA_APP_CAPTURE == m_devnum) -+ { -+ for (iter = captureStreams.begin(); iter != captureStreams.end(); ++iter) -+ { -+ if (iter->name == id) -+ { -+ pa_operation *o; -+ -+#if HAVE_SOURCE_OUTPUT_VOLUMES -+ pa_cvolume volume = genVolumeForPulse(*iter, md->playbackVolume()); -+ if (!(o = pa_context_set_source_output_volume(s_context, iter->index, &volume, NULL, NULL))) { -+ kWarning(67100) << "pa_context_set_source_output_volume_by_index() failed"; -+ return Mixer::ERR_READ; -+ } -+ pa_operation_unref(o); -+ -+ if (!(o = pa_context_set_source_output_mute(s_context, iter->index, (md->isMuted() ? 1 : 0), NULL, NULL))) { -+ kWarning(67100) << "pa_context_set_source_output_mute_by_index() failed"; -+ return Mixer::ERR_READ; -+ } -+ pa_operation_unref(o); -+#else -+ // NB Note that this is different from APP_PLAYBACK in that we set the volume on the source itself. -+ pa_cvolume volume = genVolumeForPulse(*iter, md->playbackVolume()); -+ if (!(o = pa_context_set_source_volume_by_index(s_context, iter->device_index, &volume, NULL, NULL))) { -+ kWarning(67100) << "pa_context_set_source_volume_by_index() failed"; -+ return Mixer::ERR_READ; -+ } -+ pa_operation_unref(o); -+ -+ if (!(o = pa_context_set_source_mute_by_index(s_context, iter->device_index, (md->isMuted() ? 1 : 0), NULL, NULL))) { -+ kWarning(67100) << "pa_context_set_source_mute_by_index() failed"; -+ return Mixer::ERR_READ; -+ } -+ pa_operation_unref(o); -+#endif -+ -+ return 0; -+ } -+ } -+ } -+ -+ return 0; -+} -+ -+/** -+* Move the stream to a new destination -+*/ -+bool Mixer_PULSE::moveStream( const TQString& id, const TQString& destId ) { -+ TQ_ASSERT(KMIXPA_APP_PLAYBACK == m_devnum || KMIXPA_APP_CAPTURE == m_devnum); -+ -+ kDebug(67100) << "Mixer_PULSE::moveStream(): Move Stream Requested - Stream: " << id << ", Destination: " << destId; -+ -+ // Lookup the stream index. -+ uint32_t stream_index = PA_INVALID_INDEX; -+ TQString stream_restore_rule = ""; -+ devmap::iterator iter; -+ devmap *map = get_widget_map(m_devnum); -+ for (iter = map->begin(); iter != map->end(); ++iter) { -+ if (iter->name == id) { -+ stream_index = iter->index; -+ stream_restore_rule = iter->stream_restore_rule; -+ break; -+ } -+ } -+ -+ if (PA_INVALID_INDEX == stream_index) { -+ kError(67100) << "Mixer_PULSE::moveStream(): Cannot find stream index"; -+ return false; -+ } -+ -+ if (destId.isEmpty()) { -+ // We want to remove any specific device in the stream restore rule. -+ if (stream_restore_rule.isEmpty() || !s_RestoreRules.contains(stream_restore_rule)) { -+ kWarning(67100) << "Mixer_PULSE::moveStream(): Trying to set Automatic on a stream with no rule"; -+ } else { -+ restoreRule &rule = s_RestoreRules[stream_restore_rule]; -+ pa_ext_stream_restore_info info; -+ info.name = stream_restore_rule.toUtf8().constData(); -+ info.channel_map = rule.channel_map; -+ info.volume = rule.volume; -+ info.device = NULL; -+ info.mute = rule.mute ? 1 : 0; -+ -+ pa_operation* o; -+ if (!(o = pa_ext_stream_restore_write(s_context, PA_UPDATE_REPLACE, &info, 1, true, NULL, NULL))) { -+ kWarning(67100) << "pa_ext_stream_restore_write() failed" << info.channel_map.channels << info.volume.channels << info.name; -+ return Mixer::ERR_READ; -+ } -+ pa_operation_unref(o); -+ } -+ } else { -+ pa_operation* o; -+ if (KMIXPA_APP_PLAYBACK == m_devnum) { -+ if (!(o = pa_context_move_sink_input_by_name(s_context, stream_index, destId.toUtf8().constData(), NULL, NULL))) { -+ kWarning(67100) << "pa_context_move_sink_input_by_name() failed"; -+ return false; -+ } -+ } else { -+ if (!(o = pa_context_move_source_output_by_name(s_context, stream_index, destId.toUtf8().constData(), NULL, NULL))) { -+ kWarning(67100) << "pa_context_move_source_output_by_name() failed"; -+ return false; -+ } -+ } -+ pa_operation_unref(o); -+ } -+ -+ return true; -+} -+ -+void Mixer_PULSE::reinit() -+{ -+ // We only support reinit on our primary mixer. -+ TQ_ASSERT(KMIXPA_PLAYBACK == m_devnum); -+ connectToDaemon(); -+} -+ -+void Mixer_PULSE::triggerUpdate() -+{ -+ readSetFromHWforceUpdate(); -+ readSetFromHW(); -+} -+ -+// Please see KMixWindow::initActionsAfterInitMixer(), it uses the driverName -+ -+TQString PULSE_getDriverName() { -+ return "PulseAudio"; -+} -+ -+TQString Mixer_PULSE::getDriverName() -+{ -+ return "PulseAudio"; -+} -+ -diff -Nuar ./kmix-tde-ori/mixer_pulse.h ./kmix/mixer_pulse.h ---- ./kmix-tde-ori/mixer_pulse.h 1970-01-01 01:00:00.000000000 +0100 -+++ ./kmix/mixer_pulse.h 2013-05-21 23:27:28.960083350 +0200 -@@ -0,0 +1,85 @@ -+/* -+ * KMix -- KDE's full featured mini mixer -+ * -+ * -+ * Copyright (C) 2008 Helio Chissini de Castro -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Library General Public -+ * License as published by the Free Software Foundation; either -+ * version 2 of the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Library General Public License for more details. -+ * -+ * You should have received a copy of the GNU Library General Public -+ * License along with this program; if not, write to the Free -+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -+ */ -+ -+#ifndef MIXER_PULSE_H -+#define MIXER_PULSE_H -+ -+#include -+ -+#include "mixer_backend.h" -+#include -+ -+typedef TQMap chanIDMap; -+typedef struct { -+ int index; -+ int device_index; -+ TQString name; -+ TQString description; -+ TQString icon_name; -+ pa_cvolume volume; -+ pa_channel_map channel_map; -+ bool mute; -+ TQString stream_restore_rule; -+ -+ Volume::ChannelMask chanMask; -+ chanIDMap chanIDs; -+} devinfo; -+ -+class Mixer_PULSE : public Mixer_Backend -+{ -+ public: -+ Mixer_PULSE(Mixer *mixer, int devnum); -+ virtual ~Mixer_PULSE(); -+ -+ virtual int readVolumeFromHW( const TQString& id, shared_ptr ); -+ virtual int writeVolumeToHW ( const TQString& id, shared_ptr ); -+ -+ virtual bool moveStream( const TQString& id, const TQString& destId ); -+ -+ virtual TQString getDriverName(); -+ virtual TQString getId() const { return _id; }; -+ -+ virtual bool needsPolling() { return false; } -+ -+ void triggerUpdate(); -+ void addWidget(int index, bool = false); -+ void removeWidget(int index); -+ void removeAllWidgets(); -+ MixSet *getMixSet() { return &m_mixDevices; } -+ int id2num(const TQString& id); -+ -+ protected: -+ virtual int open(); -+ virtual int close(); -+ -+ int fd; -+ TQString _id; -+ -+ private: -+ void addDevice(devinfo& dev, bool = false); -+ bool connectToDaemon(); -+ void emitControlsReconfigured(); -+public: -+ void reinit(); -+ -+}; -+ -+#endif diff --git a/redhat/tdemultimedia/tdemultimedia-3.5.13.2.spec b/redhat/tdemultimedia/tdemultimedia-3.5.13.2.spec index 9451923d3..201466d84 100644 --- a/redhat/tdemultimedia/tdemultimedia-3.5.13.2.spec +++ b/redhat/tdemultimedia/tdemultimedia-3.5.13.2.spec @@ -1,48 +1,63 @@ -# If TDE is built in a specific prefix (e.g. /opt/trinity), the release will be suffixed with ".opt". -%if "%{?tde_prefix}" != "/usr" -%define _variant .opt -%endif - +# +# spec file for package tdemultimedia (version 3.5.13.2) +# +# Copyright (c) 2014 Trinity Desktop Environment +# +# 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:/www.trinitydesktop.org/ +# + +# BUILD WARNING: +# Remove qt-devel and qt3-devel and any kde*-devel on your system ! +# Having KDE libraries may cause FTBFS here ! + +# TDE variables %define tde_version 3.5.13.2 - -# TDE specific building variables +%define tde_prefix /opt/trinity %define tde_bindir %{tde_prefix}/bin %define tde_datadir %{tde_prefix}/share %define tde_docdir %{tde_datadir}/doc %define tde_includedir %{tde_prefix}/include %define tde_libdir %{tde_prefix}/%{_lib} - %define tde_tdeappdir %{tde_datadir}/applications/kde %define tde_tdedocdir %{tde_docdir}/tde %define tde_tdeincludedir %{tde_includedir}/tde %define tde_tdelibdir %{tde_libdir}/trinity -%define _docdir %{tde_docdir} +# If TDE is built in a specific prefix (e.g. /opt/trinity), the release will be suffixed with ".opt". +%if "%{?tde_prefix}" != "/usr" +%define _variant .opt +%endif -# former extras bits -%define _with_akode --with-akode -## not currently compatible with libtunepimp-0.5 (only libtunepimp-0.4) -#define _with_musicbrainz --with-musicbrainz -%define _with_taglib --with-taglib Name: trinity-tdemultimedia Summary: Multimedia applications for the Trinity Desktop Environment (TDE) Version: %{tde_version} Release: %{?!preversion:5}%{?preversion:4_%{preversion}}%{?dist}%{?_variant} - -License: GPLv2 Group: Applications/Multimedia - -Vendor: Trinity Project -Packager: Francois Andriot URL: http://www.trinitydesktop.org/ +%if 0%{?suse_version} +License: GPL-2.0+ +%else +License: GPLv2+ +%endif + +#Vendor: Trinity Project +#Packager: Francois Andriot + Prefix: %{tde_prefix} BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Source0: %{name}-%{version}%{?preversion:~%{preversion}}.tar.gz -Patch0: tdemultimedia-3.5.13.2-ftbfs.patch -Patch1: tdemultimedia-3.5.13.2-fix_xdg_menu.patch Obsoletes: trinity-kdemultimedia < %{version}-%{release} Provides: trinity-kdemultimedia = %{version}-%{release} @@ -54,27 +69,33 @@ Obsoletes: trinity-kdemultimedia-extras-libs < %{version}-%{release} Provides: trinity-kdemultimedia-extras-libs = %{version}-%{release} -BuildRequires: autoconf automake libtool m4 -BuildRequires: qt3-devel >= 3.3.8.d -BuildRequires: trinity-tqtinterface-devel >= %{tde_version} BuildRequires: trinity-arts-devel >= 1:1.5.10 BuildRequires: trinity-tdelibs-devel >= %{tde_version} -%if "%{?_with_akode}" != "" +BuildRequires: autoconf automake libtool m4 + +# TAGLIB support +%define _with_taglib --with-taglib +BuildRequires: taglib-devel + +# AKODE support +%define _with_akode --with-akode BuildRequires: trinity-akode-devel BuildRequires: trinity-akode-libmad -%endif BuildRequires: desktop-file-utils BuildRequires: zlib-devel +# MUSICBRAINZ support +## not currently compatible with libtunepimp-0.5 (only libtunepimp-0.4) +#define _with_musicbrainz --with-musicbrainz +#BuildRequires: libmusicbrainz-devel libtunepimp-devel + # Audio libraries BuildRequires: libvorbis-devel BuildRequires: audiofile-devel BuildRequires: libtheora-devel BuildRequires: alsa-lib-devel -%{?_with_musicbrainz:BuildRequires: libmusicbrainz-devel libtunepimp-devel} -%{?_with_taglib:BuildRequires: taglib-devel} BuildRequires: cdparanoia # CDDA support @@ -132,7 +153,7 @@ BuildRequires: libXt-devel %endif # XINE support -%if 0%{?fedora} || 0%{?rhel} == 4 || 0%{?rhel} == 5 || 0%{?rhel} == 6 || 0%{?suse_version} || 0%{?mgaversion} || 0%{?mdkversion} +%if 0%{?fedora} || 0%{?rhel} >= 4 || 0%{?suse_version} || 0%{?mgaversion} || 0%{?mdkversion} %define with_xine 1 %if 0%{?mgaversion} || 0%{?mdkversion} %if 0%{?pclinuxos} @@ -1141,7 +1162,7 @@ noatun plugins. ########## -%if 0%{?suse_version} || 0%{?pclinuxos} +%if 0%{?pclinuxos} %debug_package %endif @@ -1156,8 +1177,6 @@ noatun plugins. %prep %setup -q -n %{name}-%{version}%{?preversion:~%{preversion}} -%patch0 -p1 -b .ftbfs -%patch1 -p1 -b .xdgmenu %__cp "/usr/share/aclocal/libtool.m4" "admin/libtool.m4.in" %__cp "/usr/share/libtool/config/ltmain.sh" "admin/ltmain.sh" || %__cp "/usr/share/libtool/ltmain.sh" "admin/ltmain.sh" @@ -1215,8 +1234,20 @@ export PATH="%{tde_bindir}:${PATH}" %__rm -rf %{?buildroot} %__make install DESTDIR=%{buildroot} -# don't make these world-writeable -chmod go-w %{buildroot}%{tde_datadir}/apps/kscd/* +# Updates applications categories for openSUSE +%if 0%{?suse_version} +%suse_update_desktop_file krec AudioVideo Recorder +%suse_update_desktop_file tdemid AudioVideo Midi +%suse_update_desktop_file artsbuilder AudioVideo AudioVideoEditing +%suse_update_desktop_file artscontrol AudioVideo AudioVideoEditing +%suse_update_desktop_file kmix AudioVideo Mixer +%suse_update_desktop_file kaboodle AudioVideo Player +%suse_update_desktop_file kaudiocreator AudioVideo CD +%suse_update_desktop_file kscd AudioVideo Player CD +%suse_update_desktop_file noatun AudioVideo Player Video +%suse_update_desktop_file juk AudioVideo Player Jukebox +%suse_update_desktop_file audiocd +%endif %clean