Add a patch to (optionally) use xcb instead of libX11 for xine's output, requiring...
authorDiego Elio Pettenò <flameeyes@gentoo.org>
Fri, 9 Feb 2007 04:47:59 +0000 (04:47 +0000)
committerDiego Elio Pettenò <flameeyes@gentoo.org>
Fri, 9 Feb 2007 04:47:59 +0000 (04:47 +0000)
Package-Manager: portage-2.1.2-r9

media-video/kaffeine/ChangeLog
media-video/kaffeine/Manifest
media-video/kaffeine/files/digest-kaffeine-0.8.3-r1 [new file with mode: 0644]
media-video/kaffeine/files/kaffeine-0.8.3-xcb.patch [new file with mode: 0644]
media-video/kaffeine/kaffeine-0.8.3-r1.ebuild [new file with mode: 0644]

index 8671eea69ee4a68efb71e31324e42638b16be93f..62e9db6f4c85d22050978ad1f4294d55be05d561 100644 (file)
@@ -1,6 +1,15 @@
 # ChangeLog for media-video/kaffeine
 # Copyright 2000-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/kaffeine/ChangeLog,v 1.68 2007/02/08 17:28:04 opfer Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/kaffeine/ChangeLog,v 1.69 2007/02/09 04:47:59 flameeyes Exp $
+
+*kaffeine-0.8.3-r1 (09 Feb 2007)
+
+  09 Feb 2007; Diego Pettenò <flameeyes@gentoo.org>
+  +files/kaffeine-0.8.3-xcb.patch, +kaffeine-0.8.3-r1.ebuild:
+  Add a patch to (optionally) use xcb instead of libX11 for xine's output,
+  requiring the 1.1.4-r1 patched xine, with xcb useflag enabled. Please note
+  that although this experimental ebuild has xcb as optional, next 0.8.4
+  release will only support XCB (unless upstream changes idea).
 
   08 Feb 2007; Christian Faulhammer <opfer@gentoo.org>
   kaffeine-0.8.3.ebuild:
index d90ebda7bce02540af5fda159a63a53c2be4c69d..382b87a4c6bf2c9ab3e081d5c5aaef6cbc2b1c79 100644 (file)
@@ -21,20 +21,28 @@ AUX kaffeine-0.8.3-build.patch 403 RMD160 b92e966050ddcad80184d8c04c38af46f5825e
 MD5 dd8a01b726090b995a8b6a1e3931ee67 files/kaffeine-0.8.3-build.patch 403
 RMD160 b92e966050ddcad80184d8c04c38af46f5825e42 files/kaffeine-0.8.3-build.patch 403
 SHA256 8d7d657ad61a1cc5206174e3e3b81bb39331626a60d29970ff0db9cc69bef2e7 files/kaffeine-0.8.3-build.patch 403
+AUX kaffeine-0.8.3-xcb.patch 9407 RMD160 20f2608080ec8e6f4b7b2a5acc9ff241fbcf9367 SHA1 8c7ec07ab58911d1221b1dc761829da63e0c0521 SHA256 6b883026a8e3a64916be75236672014902c0a9d21a247c1ad6ed1e758826d66e
+MD5 f2b146d8dd5535cd4d1f9d38114b0ec1 files/kaffeine-0.8.3-xcb.patch 9407
+RMD160 20f2608080ec8e6f4b7b2a5acc9ff241fbcf9367 files/kaffeine-0.8.3-xcb.patch 9407
+SHA256 6b883026a8e3a64916be75236672014902c0a9d21a247c1ad6ed1e758826d66e files/kaffeine-0.8.3-xcb.patch 9407
 DIST kaffeine-0.7.1.tar.bz2 2276747 RMD160 b609bc47dd7cc11753c016bf0da3214f54fa8df0 SHA1 ae91768ca9f2542ba9c287371109ef9095146270 SHA256 7e2611ba4fb4cc5b6a1802250a5c404b22cca434ce1d3bbe83088f6189bfa145
 DIST kaffeine-0.8.3.tar.bz2 2940941 RMD160 f22a971481e8fd1a96063fef66d156d119c1e596 SHA1 6198ffe59422124855007a42443e2a69f6451e66 SHA256 42719f4eab6a27a06ec247369424f5a9d796fca74672573c467d024983a861b2
 EBUILD kaffeine-0.7.1-r2.ebuild 1251 RMD160 bf83871489cf398fee05cf74cdaeb35860b97362 SHA1 210f905a2528e1636a6dffe6e7717ba62a73e2ef SHA256 156e2b1cbcdd7132b50d40d15f869276caf3642f331482f2d3e552636e7f7326
 MD5 2b86f7aa8a3234ebe8b9780f38469e81 kaffeine-0.7.1-r2.ebuild 1251
 RMD160 bf83871489cf398fee05cf74cdaeb35860b97362 kaffeine-0.7.1-r2.ebuild 1251
 SHA256 156e2b1cbcdd7132b50d40d15f869276caf3642f331482f2d3e552636e7f7326 kaffeine-0.7.1-r2.ebuild 1251
+EBUILD kaffeine-0.8.3-r1.ebuild 1834 RMD160 93161479875233ca5cf0561a9a5ab4eda0dd53a7 SHA1 cb6e7ca9e8bcb566eb99e6d3cd5b0a4cd3b3552c SHA256 1d0215f233af3657aada5d15d4d6838a210b242346b9d5e65c931bf12a8e2c75
+MD5 3549cda251f017e67125e0ddb494728e kaffeine-0.8.3-r1.ebuild 1834
+RMD160 93161479875233ca5cf0561a9a5ab4eda0dd53a7 kaffeine-0.8.3-r1.ebuild 1834
+SHA256 1d0215f233af3657aada5d15d4d6838a210b242346b9d5e65c931bf12a8e2c75 kaffeine-0.8.3-r1.ebuild 1834
 EBUILD kaffeine-0.8.3.ebuild 1310 RMD160 b9d5c6103f46e503dce424f5ee6dc90c278f470d SHA1 3a823f5eb54c1ecdf338922ea45c3f19e703f96b SHA256 cc38dd7a7b45d852e298afd20e7ade309886f579feaf3a6d51cdaadaab5a2950
 MD5 57f9b44506e9c26e43c94f2a8424595e kaffeine-0.8.3.ebuild 1310
 RMD160 b9d5c6103f46e503dce424f5ee6dc90c278f470d kaffeine-0.8.3.ebuild 1310
 SHA256 cc38dd7a7b45d852e298afd20e7ade309886f579feaf3a6d51cdaadaab5a2950 kaffeine-0.8.3.ebuild 1310
-MISC ChangeLog 10258 RMD160 b0aaf04cb1047b40f0867535c76d1d41bf1702c3 SHA1 6ad1633e639a2dde698a745ea51b4df61f646d4d SHA256 704be585cef330d6887dd9e39bc52e3dc48e42c0b98c5cc81598c91292e7cf50
-MD5 0df8e555f784624f9371892168bcaf92 ChangeLog 10258
-RMD160 b0aaf04cb1047b40f0867535c76d1d41bf1702c3 ChangeLog 10258
-SHA256 704be585cef330d6887dd9e39bc52e3dc48e42c0b98c5cc81598c91292e7cf50 ChangeLog 10258
+MISC ChangeLog 10701 RMD160 9e95d0fcf2651ea2f1fbb563cd1a8fc884b70d0b SHA1 d1c8442e74c1e77552dff26d6822d2cb67874056 SHA256 734c6f6fde6558afc5f1e6711df238e9729ee1cde25d8ed225b4c51fc302028e
+MD5 cebd989f594515d16211263e65fe5283 ChangeLog 10701
+RMD160 9e95d0fcf2651ea2f1fbb563cd1a8fc884b70d0b ChangeLog 10701
+SHA256 734c6f6fde6558afc5f1e6711df238e9729ee1cde25d8ed225b4c51fc302028e ChangeLog 10701
 MISC metadata.xml 301 RMD160 5424abb33cb1576f2742e6bbd75fa370c40214d1 SHA1 ce66e4b54d1cd620faddeacacceac59b5ede47ed SHA256 76010afeff62952f70b9b598778d4d198eabd1ec9e233902acd2c4019911745a
 MD5 80b81e0016b1f3cb6c95459a0e35fc87 metadata.xml 301
 RMD160 5424abb33cb1576f2742e6bbd75fa370c40214d1 metadata.xml 301
@@ -45,10 +53,13 @@ SHA256 be7cdc2892bb3974674212480a401b7a94746757df65e419657a4b117dc46676 files/di
 MD5 c9babd1fc7e4543b732e6b1ce64e50a5 files/digest-kaffeine-0.8.3 250
 RMD160 a82907e44a8880cae92c5c4ec5c66720e8df0521 files/digest-kaffeine-0.8.3 250
 SHA256 75a44f415295434b99fdcd723113cf61c8f7656b24574d1b4ae48987cba70879 files/digest-kaffeine-0.8.3 250
+MD5 c9babd1fc7e4543b732e6b1ce64e50a5 files/digest-kaffeine-0.8.3-r1 250
+RMD160 a82907e44a8880cae92c5c4ec5c66720e8df0521 files/digest-kaffeine-0.8.3-r1 250
+SHA256 75a44f415295434b99fdcd723113cf61c8f7656b24574d1b4ae48987cba70879 files/digest-kaffeine-0.8.3-r1 250
 -----BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.6 (GNU/Linux)
+Version: GnuPG v2.0.2 (GNU/Linux)
 
-iD8DBQFFy12DNQqtfCuFneMRAkrsAKCDUqlwl3TO2GBNZn+aVtwALsU/yACfVOE/
-h97clePW50I1/v251V3TbsY=
-=+Qow
+iD8DBQFFy/0GAiZjviIA2XgRAlgJAKDv+CViPfXui+Oa0L4KPFxtON67GwCg0wUB
+MWkSsUg0LVr8QW16OAoEdNo=
+=nxrn
 -----END PGP SIGNATURE-----
diff --git a/media-video/kaffeine/files/digest-kaffeine-0.8.3-r1 b/media-video/kaffeine/files/digest-kaffeine-0.8.3-r1
new file mode 100644 (file)
index 0000000..04b39d4
--- /dev/null
@@ -0,0 +1,3 @@
+MD5 667dd56cf02f1343b3a466a685afdf24 kaffeine-0.8.3.tar.bz2 2940941
+RMD160 f22a971481e8fd1a96063fef66d156d119c1e596 kaffeine-0.8.3.tar.bz2 2940941
+SHA256 42719f4eab6a27a06ec247369424f5a9d796fca74672573c467d024983a861b2 kaffeine-0.8.3.tar.bz2 2940941
diff --git a/media-video/kaffeine/files/kaffeine-0.8.3-xcb.patch b/media-video/kaffeine/files/kaffeine-0.8.3-xcb.patch
new file mode 100644 (file)
index 0000000..babe90b
--- /dev/null
@@ -0,0 +1,249 @@
+Index: kaffeine-0.8.3/kaffeine/src/main.cpp
+===================================================================
+--- kaffeine-0.8.3.orig/kaffeine/src/main.cpp
++++ kaffeine-0.8.3/kaffeine/src/main.cpp
+@@ -30,8 +30,6 @@
+ #include "kaffeine.h"
+ #include "version.h"
+-#include <X11/Xlib.h>
+-
+ class KaffeineApp : public KUniqueApplication
+ {
+ public:
+@@ -91,23 +89,6 @@ int main(int argc, char *argv[])
+       if (!KaffeineApp::start())
+               return 0;
+-      /*
+-       * XInitThreads() should the first call to xlib in multithreaded X programs -
+-       * but because of a bug in some xfree versions that can freeze at startup,
+-       * we also call XInitThreads() in kxinewidget.cpp
+-       *
+-       * kaffeinepart & konqueror: We call XInitThreads() in kxinewidget.cpp, so the part is
+-       * not stable with buggy X implementations.
+-       *
+-       * FIXME: deadline for this workaround is 2007-03-16 --pfister
+-       */
+-
+-#ifndef XINIT_WKRND /* configure flag --with-xinit-workaround not set */
+-      flush(kdDebug() << "if kaffeine hangs here run 'configure --with-xinit-workaround' and recompile / reinstall ...");
+-      XInitThreads();
+-      kdDebug() << " ok\n";
+-#endif
+-
+       KaffeineApp a;
+       return a.exec();
+ }
+Index: kaffeine-0.8.3/kaffeine/src/player-parts/xine-part/kxinewidget.cpp
+===================================================================
+--- kaffeine-0.8.3.orig/kaffeine/src/player-parts/xine-part/kxinewidget.cpp
++++ kaffeine-0.8.3/kaffeine/src/player-parts/xine-part/kxinewidget.cpp
+@@ -38,10 +38,6 @@
+ #include "kxinewidget.h"
+-#ifdef HAVE_XINERAMA
+-#include <X11/extensions/Xinerama.h>
+-#endif
+-
+ #ifndef USE_QT_ONLY
+ #include "kxinewidget.moc"
+ #include <klocale.h>
+@@ -68,7 +64,7 @@ KXineWidget::KXineWidget(QWidget* parent
+                          bool startManual, bool verbose)
+               : QWidget(parent,name), m_startXineManual(startManual), m_xineReady(false),
+               m_logoFile(pathToLogoFile), m_preferedAudio(audioDriver), m_preferedVideo(videoDriver), m_xineVerbose(verbose),
+-              m_xineEngine(NULL), m_audioDriver(NULL), m_videoDriver(NULL), m_xineStream(NULL), m_xineDisplay(NULL),
++              m_xineEngine(NULL), m_audioDriver(NULL), m_videoDriver(NULL), m_xineStream(NULL), connection(NULL),
+               m_eventQueue(NULL), m_osd(NULL), m_osdUnscaled(false), m_osdShow(false), m_osdSize(0), m_osdFont(NULL),
+               m_audioChoices(NULL), m_audioInfo(NULL), m_videoChoices(NULL), m_videoInfo(NULL), m_mixerInfo(NULL),
+               m_osdShowInfo(NULL),
+@@ -239,12 +235,12 @@ KXineWidget::~KXineWidget()
+               delete [] m_audioChoices;
+       }
+-      if (m_xineDisplay)
++      if (connection)
+       {
+               debugOut("Close xine display");
+-              XCloseDisplay(m_xineDisplay);  /* close xine display */
++              xcb_disconnect(connection);  /* close xine display */
+       }
+-      m_xineDisplay = NULL;
++      connection = NULL;
+       debugOut("xine closed");
+ }
+@@ -831,7 +827,7 @@ void KXineWidget::videoDriverChangedCall
+       xine_close_video_driver(vw->m_xineEngine, oldVideoDriver);
+       vw->m_videoDriver = xine_open_video_driver(vw->m_xineEngine,
+-                          entry->enum_values[entry->num_value], XINE_VISUAL_TYPE_X11,
++                          entry->enum_values[entry->num_value], XINE_VISUAL_TYPE_XCB,
+                           (void *) &(vw->m_x11Visual));
+       if (!vw->m_videoDriver)
+@@ -840,7 +836,7 @@ void KXineWidget::videoDriverChangedCall
+               QApplication::postEvent(vw, new QTimerEvent( TIMER_EVENT_NEW_XINE_ERROR));
+               playing = false;
+               vw->m_videoDriver = xine_open_video_driver(vw->m_xineEngine,
+-                                  vw->m_videoDriverName.ascii(), XINE_VISUAL_TYPE_X11,
++                                  vw->m_videoDriverName.ascii(), XINE_VISUAL_TYPE_XCB,
+                                   (void *) &(vw->m_x11Visual));
+       }
+       else
+@@ -1012,14 +1008,18 @@ void KXineWidget::fontForOSDMessagesChan
+  *      EVENT LOOP
+  *********************************************/
+-bool KXineWidget::x11Event(XEvent *event)
++void KXineWidget::paintEvent(QPaintEvent *event)
+ {
+-      if (isXineReady())
+-              if (event->type == Expose)
+-                      if (event->xexpose.count == 0)
+-                              xine_port_send_gui_data(m_videoDriver, XINE_GUI_SEND_EXPOSE_EVENT, event);
++      if (isXineReady()) {
++              xcb_expose_event_t xcb_event;
++              memset(&xcb_event, 0, sizeof(xcb_event));
+-      return false;
++              xcb_event.count = 0;
++
++              xine_port_send_gui_data(m_videoDriver, XINE_GUI_SEND_EXPOSE_EVENT, &xcb_event);
++      }
++
++      QWidget::paintEvent(event);
+ }
+ /**********************************************************
+@@ -1044,39 +1044,17 @@ bool KXineWidget::initXine()
+       /**** INIT XINE DISPLAY  ****/
+-      XInitThreads();
+-
+-      m_xineDisplay = XOpenDisplay( getenv("DISPLAY") );
++      connection = xcb_connect(NULL, NULL);
+-      if (!m_xineDisplay)
++      if (!connection)
+       {
+               emit signalXineFatal(i18n("Failed to connect to X-Server!"));
+               return false;
+       }
+-      int m_xineScreen = DefaultScreen(m_xineDisplay);
+-      Window m_xineWindow = winId();
++      int m_xineWindow = winId();
+-      /* determine display aspect ratio  */
+-      double resHor = ((double) DisplayWidth(m_xineDisplay, m_xineScreen)) / DisplayWidthMM(m_xineDisplay, m_xineScreen);
+-      double resVer = ((double) DisplayHeight(m_xineDisplay, m_xineScreen)) / DisplayHeightMM(m_xineDisplay, m_xineScreen);
+-
+-      m_displayRatio = resVer / resHor;
+-
+-#ifdef HAVE_XINERAMA
+-      int dummy_event, dummy_error;
+-
+-      if (XineramaQueryExtension(m_xineDisplay, &dummy_event, &dummy_error))
+-      {
+-              int count = 1;
+-              debugOut("Xinerama extension present");
+-              XineramaQueryScreens(m_xineDisplay, &count);
+-              debugOut(QString("%1 screens detected").arg(count));
+-              if (count > 1)
+-                      /* multihead -> assuming square pixels */
+-                      m_displayRatio = 1.0;
+-      }
+-#endif
++      m_displayRatio = 1.0;
+       debugOut(QString("Display aspect ratio (v/h): %1").arg(m_displayRatio));
+@@ -1188,15 +1166,15 @@ bool KXineWidget::initXine()
+       /* init video driver */
+       debugOut("Init video driver");
+-      m_x11Visual.display          = m_xineDisplay;
+-      m_x11Visual.screen           = m_xineScreen;
+-      m_x11Visual.d                = m_xineWindow;
++      m_x11Visual.connection       = connection;
++      m_x11Visual.screen           = xcb_setup_roots_iterator(xcb_get_setup(connection)).data;
++      m_x11Visual.window           = m_xineWindow;
+       m_x11Visual.dest_size_cb     = &KXineWidget::destSizeCallback;
+       m_x11Visual.frame_output_cb  = &KXineWidget::frameOutputCallback;
+       m_x11Visual.user_data        = (void*)this;
+       m_videoDriver = xine_open_video_driver(m_xineEngine,
+-                                             m_videoDriverName.ascii(),  XINE_VISUAL_TYPE_X11,
++                                             m_videoDriverName.ascii(),  XINE_VISUAL_TYPE_XCB,
+                                              (void *) &(m_x11Visual));
+       if (!m_videoDriver && m_videoDriverName != "auto")
+@@ -1204,7 +1182,7 @@ bool KXineWidget::initXine()
+               emit signalXineError(i18n("Can't init Video Driver '%1' - trying 'auto'...").arg(m_videoDriverName));
+               m_videoDriverName = "auto";
+               m_videoDriver = xine_open_video_driver(m_xineEngine,
+-                                                     m_videoDriverName.ascii(),  XINE_VISUAL_TYPE_X11,
++                                                     m_videoDriverName.ascii(), XINE_VISUAL_TYPE_XCB,
+                                                      (void *) &(m_x11Visual));
+       }
+Index: kaffeine-0.8.3/kaffeine/src/player-parts/xine-part/kxinewidget.h
+===================================================================
+--- kaffeine-0.8.3.orig/kaffeine/src/player-parts/xine-part/kxinewidget.h
++++ kaffeine-0.8.3/kaffeine/src/player-parts/xine-part/kxinewidget.h
+@@ -48,7 +48,6 @@ class QTime;
+ #include <qtimer.h>
+ #include <qptrlist.h>
+-#include <X11/Xlib.h>
+ #include <xine.h>
+ #ifndef USE_QT_ONLY
+@@ -57,6 +56,8 @@ class QTime;
+ typedef int PostFilter; /* dummy type */
+ #endif
++#include <xcb/xcb.h>
++
+ #define SUPPORTED_PROTOCOLS "file,http,mms,mmst,rtsp,rtp,tcp,pnm,cdda,vcd,vcdo,dvd,dvb,pvr,v4l,net,vdr,smb"
+ #define DEFAULT_TVTIME_CONFIG "tvtime:method=LinearBlend,enabled=1,pulldown=none,framerate_mode=half_top,judder_correction=0,use_progressive_frame_flag=1,chroma_filter=0,cheap_mode=1"
+@@ -308,7 +309,7 @@ protected:
+       void initOSD();
+ private:
+-      bool x11Event(XEvent *);
++      void paintEvent(QPaintEvent *);
+       /********* callbacks and threads ************/
+       static void destSizeCallback(void* p, int video_width, int video_height, double video_aspect,
+@@ -363,10 +364,10 @@ protected:
+       QStringList m_videoDriverList;
+       /*x11*/
+-      Display* m_xineDisplay;
++      xcb_connection_t* connection;
+       /*xine*/
+-      x11_visual_t m_x11Visual;
++      xcb_visual_t m_x11Visual;
+       xine_t* m_xineEngine;
+       xine_audio_port_t* m_audioDriver;
+       xine_video_port_t* m_videoDriver;
+Index: kaffeine-0.8.3/kaffeine/src/player-parts/xine-part/Makefile.am
+===================================================================
+--- kaffeine-0.8.3.orig/kaffeine/src/player-parts/xine-part/Makefile.am
++++ kaffeine-0.8.3/kaffeine/src/player-parts/xine-part/Makefile.am
+@@ -13,7 +13,7 @@ noinst_HEADERS =  xine_part_iface.h kxin
+ libxinepart_la_SOURCES = xine_part.cpp kxinewidget.cpp postfilter.cpp deinterlacequality.cpp \
+                              videosettings.cpp filterdialog.cpp screenshotpreview.cpp xineconfig.cpp positionslider.cpp \
+                              equalizer.cpp xine_part_iface.skel
+-libxinepart_la_LIBADD  = $(LIB_XINERAMA) $(LIB_XINE) ../kaffeine-part/libkaffeinepart.la
++libxinepart_la_LIBADD  = $(LIB_XINERAMA) $(LIB_XINE) ../kaffeine-part/libkaffeinepart.la -lxcb
+ libxinepart_la_LDFLAGS = -module $(KDE_PLUGIN) $(all_libraries) -avoid-version -no-undefined
diff --git a/media-video/kaffeine/kaffeine-0.8.3-r1.ebuild b/media-video/kaffeine/kaffeine-0.8.3-r1.ebuild
new file mode 100644 (file)
index 0000000..0493d4e
--- /dev/null
@@ -0,0 +1,69 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-video/kaffeine/kaffeine-0.8.3-r1.ebuild,v 1.1 2007/02/09 04:47:59 flameeyes Exp $
+
+inherit eutils kde flag-o-matic
+
+DESCRIPTION="Media player for KDE using xine and gstreamer backends."
+HOMEPAGE="http://kaffeine.sourceforge.net/"
+SRC_URI="mirror://sourceforge/kaffeine/${P}.tar.bz2"
+LICENSE="GPL-2"
+
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+IUSE="dvb gstreamer xinerama vorbis encode kdehiddenvisibility xcb"
+
+RDEPEND=">=media-libs/xine-lib-1
+       xcb? ( >=x11-libs/libxcb-1.0
+               >=media-libs/xine-lib-1.1.4-r1 )
+       gstreamer? ( =media-libs/gstreamer-0.8*
+               =media-libs/gst-plugins-0.8*
+               =media-plugins/gst-plugins-xvideo-0.8* )
+       media-sound/cdparanoia
+       encode? ( media-sound/lame )
+       vorbis? ( media-libs/libvorbis )
+       x11-libs/libXtst"
+
+DEPEND="${RDEPEND}
+       dvb? ( media-tv/linuxtv-dvb-headers )"
+
+PATCHES="${FILESDIR}/${P}-build.patch"
+
+need-kde 3.5.4
+
+pkg_setup() {
+       if use xcb && ! built_with_use --missing false media-libs/xine-lib xcb; then
+               eerror "To enable the xcb useflag on this package you need"
+               eerror "the useflag xcb enabled on media-libs/xine-lib."
+               eerror "Please emerge media-libs/xine-lib again with the xcb useflag"
+               eerror "enabled."
+               die "Missing xcb useflag on media-libs/xine-lib."
+       fi
+}
+
+src_unpack() {
+       kde_src_unpack
+
+       use xcb && epatch "${FILESDIR}/${P}-xcb.patch"
+}
+
+src_compile() {
+       # see bug #143168
+       replace-flags -O3 -O2
+
+       local myconf="${myconf}
+               $(use_with xinerama)
+               $(use_with dvb)
+               $(use_with gstreamer)
+               $(use_with vorbis oggvorbis)
+               $(use_with encode lame)"
+
+       kde_src_compile
+}
+
+src_install() {
+       kde_src_install
+
+       # Remove this, as kdelibs 3.5.4 provides it
+       rm -f "${D}/usr/share/mimelnk/application/x-mplayer2.desktop"
+}