[OE-core] [PATCH 1/1] qmmp: update to 0.6.6 and fix

Paul Eggleton paul.eggleton at linux.intel.com
Tue Feb 5 17:09:58 UTC 2013


* Update to 0.6.6
* Fix compilation failure due to call to QApplication::commitData()
* Disable /usr/local host paths to avoid compilation warnings
* Force use of the cmake configure instead of qmake as the latter is not
  dynamic with Qmmp and doesn't let you disable certain dependencies
  (e.g. enca)
* Add libsndfile1 and libsamplerate0 to DEPENDS since their use will be
  non-deterministic otherwise
* Explicitly disable library-requiring options that we don't have
  available in OE-Core so that they don't get used if they happen to be
  in the sysroot
* Update LIC_FILES_CHKSUM since there were cosmetic changes to the
  license file (mostly reformatting and change of references to LGPL
  from "Library" to "Lesser".)

Fixes [YOCTO #3882].

Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
---
 meta/recipes-qt/qt-apps/qmmp/no-host-paths.patch   |   25 +++++++++++++
 .../qt-apps/qmmp/no-sessionmanager.patch           |   21 +++++++++++
 .../qt-apps/{qmmp_0.6.1.bb => qmmp_0.6.6.bb}       |   39 ++++++++++++++++----
 3 files changed, 77 insertions(+), 8 deletions(-)
 create mode 100644 meta/recipes-qt/qt-apps/qmmp/no-host-paths.patch
 create mode 100644 meta/recipes-qt/qt-apps/qmmp/no-sessionmanager.patch
 rename meta/recipes-qt/qt-apps/{qmmp_0.6.1.bb => qmmp_0.6.6.bb} (56%)

diff --git a/meta/recipes-qt/qt-apps/qmmp/no-host-paths.patch b/meta/recipes-qt/qt-apps/qmmp/no-host-paths.patch
new file mode 100644
index 0000000..de17b4e
--- /dev/null
+++ b/meta/recipes-qt/qt-apps/qmmp/no-host-paths.patch
@@ -0,0 +1,25 @@
+Do not include /usr/include host paths
+
+These were added upstream apparently for freebsd support, but trigger
+compiler warnings during the build and could be dangerous, so remove
+them.
+
+Upstream-Status: Inappropriate [cross]
+
+Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,12 +1,5 @@
+ cmake_minimum_required(VERSION 2.6.0)
+ 
+-#freebsd support
+-include_directories(SYSTEM /usr/local/include)
+-link_directories(/usr/local/lib)
+-link_directories(/usr/local/lib32)
+-link_directories(/usr/local/lib64)
+-SET(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} /usr/local/include)
+-
+ #extract version from qmmp.h
+ FILE(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/src/qmmp/qmmp.h"
+      QMMP_VERSION_DATA REGEX "^#define[ \t]+QMMP_VERSION_[A-Z]+[ \t]+[0-9]+.*$")
diff --git a/meta/recipes-qt/qt-apps/qmmp/no-sessionmanager.patch b/meta/recipes-qt/qt-apps/qmmp/no-sessionmanager.patch
new file mode 100644
index 0000000..5e2978b
--- /dev/null
+++ b/meta/recipes-qt/qt-apps/qmmp/no-sessionmanager.patch
@@ -0,0 +1,21 @@
+Don't call session manager function if not enabled
+
+If session management has been disabled we will get a compilation
+failure if we try to call QApplication::commitData() so don't do so if
+it is disabled.
+
+Upstream-Status: Pending
+
+Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
+
+--- a/src/app/qmmpapplication.cpp
++++ b/src/app/qmmpapplication.cpp
+@@ -29,6 +29,8 @@ void QmmpApplication::commitData(QSessionManager &manager)
+ {
+     if(UiHelper::instance())
+         UiHelper::instance()->exit();
++#ifndef QT_NO_SESSIONMANAGER
+     else
+         QApplication::commitData(manager);
++#endif
+ }
diff --git a/meta/recipes-qt/qt-apps/qmmp_0.6.1.bb b/meta/recipes-qt/qt-apps/qmmp_0.6.6.bb
similarity index 56%
rename from meta/recipes-qt/qt-apps/qmmp_0.6.1.bb
rename to meta/recipes-qt/qt-apps/qmmp_0.6.6.bb
index ed096e9..2f5e0d5 100644
--- a/meta/recipes-qt/qt-apps/qmmp_0.6.1.bb
+++ b/meta/recipes-qt/qt-apps/qmmp_0.6.6.bb
@@ -2,20 +2,37 @@ DESCRIPTION = "Qmmp (Qt-based Multimedia Player) is an audio-player, written wit
 HOMEPAGE = "http://qmmp.ylsoftware.com"
 LICENSE = "GPLv2"
 LICENSE_FLAGS = "commercial"
-LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 SECTION = "multimedia"
 
-PR = "r1"
+DEPENDS = "taglib libmad libvorbis libogg alsa-lib libsndfile1 libsamplerate0 curl"
 
-DEPENDS = "taglib libmad libvorbis libogg alsa-lib"
+SRC_URI = "http://qmmp.ylsoftware.com/files/${BPN}-${PV}.tar.bz2 \
+           file://no-host-paths.patch \
+           file://no-sessionmanager.patch"
 
-SRC_URI = "http://qmmp.ylsoftware.com/files/${BPN}-${PV}.tar.bz2"
-
-SRC_URI[md5sum] = "23a1a3aa924da901ebc8327ea76135d4"
-SRC_URI[sha256sum] = "b48be8c0e3882088919a77ce7b619cfc99d32af29cc688ba8749a58cbb25fb6f"
+SRC_URI[md5sum] = "0131a9bf7b98737c1a6fd6e1a897e2b2"
+SRC_URI[sha256sum] = "dfa973cca80c020a85a11bb66701a3804f9fde326440abb179559c98bf3b5b99"
 
 inherit cmake qt4x11
 
+QMMP_PLUGIN_OPTIONS ??= "\
+                        -DUSE_MMS:BOOL=FALSE \
+                        -DUSE_MPC:BOOL=FALSE \
+                        -DUSE_MODPLUG:BOOL=FALSE \
+                        -DUSE_WAVPACK:BOOL=FALSE \
+                        -DUSE_FFMPEG:BOOL=FALSE \
+                        -DUSE_AAC:BOOL=FALSE \
+                        -DUSE_CDA:BOOL=FALSE \
+                        -DUSE_MIDI:BOOL=FALSE \
+                        -DUSE_GME:BOOL=FALSE \
+                        -DUSE_OSS4:BOOL=FALSE \
+                        -DUSE_JACK:BOOL=FALSE \
+                        -DUSE_BS2B:BOOL=FALSE \
+                        -DUSE_PROJECTM:BOOL=FALSE \
+                        -DUSE_ENCA:BOOL=FALSE \
+                        "
+
 export EXTRA_OECMAKE = "-DQT_QMAKE_EXECUTABLE=${OE_QMAKE_QMAKE} \
                         -DQT_LRELEASE_EXECUTABLE=${OE_QMAKE_LRELEASE} \
                         -DQT_MOC_EXECUTABLE=${OE_QMAKE_MOC} \
@@ -24,9 +41,15 @@ export EXTRA_OECMAKE = "-DQT_QMAKE_EXECUTABLE=${OE_QMAKE_QMAKE} \
                         -DQT_LIBRARY_DIR=${OE_QMAKE_LIBDIR_QT} \
                         -DQT_HEADERS_DIR=${OE_QMAKE_INCDIR_QT} \
                         -DQT_QTCORE_INCLUDE_DIR=${OE_QMAKE_INCDIR_QT}/QtCore \
+                        ${QMMP_PLUGIN_OPTIONS} \
                         "
-PACKAGES_DYNAMIC += "^qmmp-plugin-.* "
 
+do_configure() {
+	# Ensure we get the cmake configure and not qmake
+	cmake_do_configure
+}
+
+PACKAGES_DYNAMIC += "^qmmp-plugin-.* "
 
 python populate_packages_prepend () {
     qmmp_libdir = d.expand('${libdir}/qmmp')
-- 
1.7.10.4





More information about the Openembedded-core mailing list