From a99ca09718be74907463690fd74b6dbfa3be4fbf Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Tue, 5 Nov 2013 10:04:25 -0600 Subject: [PATCH] phonon-4.7.0, Qt5 support --- .gitignore | 2 +- ...nd-changed-notification-once-per-app.patch | 63 -- ...-to-Q_FOREACH-to-prevent-compile-err.patch | 26 - ...patch-that-fixes-platform-plugin-loa.patch | 26 - ...-aliases-with-latest-one-from-apidox.patch | 70 -- ...rence-to-xine-and-update-apidox-sett.patch | 53 -- ...onon-backend-and-phonon-experimental.patch | 44 - 0007-remove-automoc4-dependency.patch | 57 -- ...us-is-really-a-proper-warning-not-a-.patch | 30 - 0009-fix-inverted-if.patch | 28 - ...ke_install_prefix-on-the-icon_instal.patch | 37 - 0011-remove-unnecessary-if-statement.patch | 29 - ...cripts-and-move-design-docs-into-pro.patch | 754 ------------------ phonon-4.6.0-rootDir.patch | 12 - phonon-4.6.0-rpath.patch | 18 - phonon-4.7.0-rpath.patch | 17 + phonon.spec | 168 ++-- sources | 2 +- 18 files changed, 96 insertions(+), 1340 deletions(-) delete mode 100644 0001-only-show-backend-changed-notification-once-per-app.patch delete mode 100644 0002-Change-a-foreach-to-Q_FOREACH-to-prevent-compile-err.patch delete mode 100644 0003-Upstream-fedora-patch-that-fixes-platform-plugin-loa.patch delete mode 100644 0004-doc-update-aliases-with-latest-one-from-apidox.patch delete mode 100644 0005-docs-remove-reference-to-xine-and-update-apidox-sett.patch delete mode 100644 0006-docs-exclude-phonon-backend-and-phonon-experimental.patch delete mode 100644 0007-remove-automoc4-dependency.patch delete mode 100644 0008-not-finding-qtdbus-is-really-a-proper-warning-not-a-.patch delete mode 100644 0009-fix-inverted-if.patch delete mode 100644 0010-manually-set-cmake_install_prefix-on-the-icon_instal.patch delete mode 100644 0011-remove-unnecessary-if-statement.patch delete mode 100644 0012-remove-testing-scripts-and-move-design-docs-into-pro.patch delete mode 100644 phonon-4.6.0-rootDir.patch delete mode 100644 phonon-4.6.0-rpath.patch create mode 100644 phonon-4.7.0-rpath.patch diff --git a/.gitignore b/.gitignore index 773ac94..61462b1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -/phonon-4.5.1.tar.xz /phonon-4.6.0.tar.xz +/phonon-4.7.0.tar.xz diff --git a/0001-only-show-backend-changed-notification-once-per-app.patch b/0001-only-show-backend-changed-notification-once-per-app.patch deleted file mode 100644 index d1c8643..0000000 --- a/0001-only-show-backend-changed-notification-once-per-app.patch +++ /dev/null @@ -1,63 +0,0 @@ -From aea95eeec5e75db4b0978ba77f44cb2a5861f1f2 Mon Sep 17 00:00:00 2001 -From: Harald Sitter -Date: Mon, 12 Dec 2011 13:44:20 +0100 -Subject: [PATCH 01/12] only show backend changed notification once per app - -doing it once for all apps is insanely tricky ... plus which one to use? ---- - phonon/factory.cpp | 18 +++++++++++------- - 1 file changed, 11 insertions(+), 7 deletions(-) - -diff --git a/phonon/factory.cpp b/phonon/factory.cpp -index 770c799..ab27798 100644 ---- a/phonon/factory.cpp -+++ b/phonon/factory.cpp -@@ -68,6 +68,9 @@ class FactoryPrivate : public Phonon::Factory::Sender - QList objects; - QList mediaNodePrivateList; - -+ /// Whether the 'backend changed, please restart' message was shown. -+ bool m_backendChangedNotified; -+ - private Q_SLOTS: - /** - * This is called via DBUS when the user changes the Phonon Backend. -@@ -215,10 +218,11 @@ bool FactoryPrivate::createBackend() - FactoryPrivate::FactoryPrivate() - : - #ifndef QT_NO_PHONON_PLATFORMPLUGIN -- m_platformPlugin(0), -- m_noPlatformPlugin(false), -+ m_platformPlugin(0), -+ m_noPlatformPlugin(false), - #endif //QT_NO_PHONON_PLATFORMPLUGIN -- m_backendObject(0) -+ m_backendObject(0), -+ m_backendChangedNotified(false) - { - // Add the post routine to make sure that all other global statics (especially the ones from Qt) - // are still available. If the FactoryPrivate dtor is called too late many bad things can happen -@@ -303,16 +307,16 @@ void Factory::deregisterFrontendObject(MediaNodePrivate *bp) - #ifndef PHONON_NO_DBUS - void FactoryPrivate::phononBackendChanged() - { --#ifdef __GNUC__ --#warning TODO hyperspeed: the message box only ought to be shown once and not for \ -- every backend switch --#endif -+ if (m_backendChangedNotified) -+ return; -+ - QMessageBox::information(qApp->activeWindow(), - tr("Restart Application"), - tr("You changed the backend of the Phonon multimedia system.\n\n" - "To apply this change you will need to" - " restart '%1'.").arg(qAppName())); - emit backendChanged(); -+ m_backendChangedNotified = true; - } - #endif //PHONON_NO_DBUS - --- -1.8.3.1 - diff --git a/0002-Change-a-foreach-to-Q_FOREACH-to-prevent-compile-err.patch b/0002-Change-a-foreach-to-Q_FOREACH-to-prevent-compile-err.patch deleted file mode 100644 index f590a65..0000000 --- a/0002-Change-a-foreach-to-Q_FOREACH-to-prevent-compile-err.patch +++ /dev/null @@ -1,26 +0,0 @@ -From c07c522992f1308c8bac9994b9e312728d513835 Mon Sep 17 00:00:00 2001 -From: Raymond Wooninck -Date: Mon, 19 Dec 2011 14:28:37 +0100 -Subject: [PATCH 02/12] Change a foreach to Q_FOREACH to prevent compile errors - with other packages. Discussed with apachelogger - ---- - phonon/objectdescription.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/phonon/objectdescription.h b/phonon/objectdescription.h -index ac13276..025ee60 100644 ---- a/phonon/objectdescription.h -+++ b/phonon/objectdescription.h -@@ -269,7 +269,7 @@ QDebug operator<<(QDebug dbg, const ObjectDescription &d) - { - dbg.nospace() << "\n{\n"; - dbg.nospace() << " index: " << d.index() << "\n"; -- foreach (const QByteArray &propertyName, d.propertyNames()) { -+ Q_FOREACH (const QByteArray &propertyName, d.propertyNames()) { - dbg.nospace() << " " << propertyName << ": " << - d.property(propertyName).toString() << "\n"; - } --- -1.8.3.1 - diff --git a/0003-Upstream-fedora-patch-that-fixes-platform-plugin-loa.patch b/0003-Upstream-fedora-patch-that-fixes-platform-plugin-loa.patch deleted file mode 100644 index d15ca2e..0000000 --- a/0003-Upstream-fedora-patch-that-fixes-platform-plugin-loa.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 0a5dd6c2269ec9075e6aa79a88d4377c96cf1d3d Mon Sep 17 00:00:00 2001 -From: Rex Dieter -Date: Fri, 6 Jan 2012 08:48:56 -0500 -Subject: [PATCH 03/12] Upstream fedora patch that fixes platform plugin - loading that is outside of a kde session - ---- - phonon/CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/phonon/CMakeLists.txt b/phonon/CMakeLists.txt -index 152163c..6a0ed56 100644 ---- a/phonon/CMakeLists.txt -+++ b/phonon/CMakeLists.txt -@@ -78,7 +78,7 @@ if (PHONON_NO_PLATFORMPLUGIN) - add_definitions(-DQT_NO_PHONON_PLATFORMPLUGIN) - endif (PHONON_NO_PLATFORMPLUGIN) - --add_definitions(-DPHONON_LIBRARY_PATH="${PLUGIN_INSTALL_DIR}/plugins") -+add_definitions(-DPHONON_LIBRARY_PATH="${CMAKE_INSTALL_PREFIX}/${PLUGIN_INSTALL_DIR}/plugins") - - automoc4_add_library(phonon SHARED ${phonon_LIB_SRCS}) - target_link_libraries(phonon ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY}) --- -1.8.3.1 - diff --git a/0004-doc-update-aliases-with-latest-one-from-apidox.patch b/0004-doc-update-aliases-with-latest-one-from-apidox.patch deleted file mode 100644 index fe91c0f..0000000 --- a/0004-doc-update-aliases-with-latest-one-from-apidox.patch +++ /dev/null @@ -1,70 +0,0 @@ -From f87d0af4ccd7af44c10c52bafa48050ea89af6e2 Mon Sep 17 00:00:00 2001 -From: Harald Sitter -Date: Wed, 12 Sep 2012 17:13:07 +0200 -Subject: [PATCH 04/12] doc: update aliases with latest one from apidox - ---- - doc/Doxyfile.cmake.in | 47 +++++++++++++++++++++++------------------------ - 1 file changed, 23 insertions(+), 24 deletions(-) - -diff --git a/doc/Doxyfile.cmake.in b/doc/Doxyfile.cmake.in -index e6c11f2..3d3788c 100644 ---- a/doc/Doxyfile.cmake.in -+++ b/doc/Doxyfile.cmake.in -@@ -202,30 +202,29 @@ TAB_SIZE = 8 - # will result in a user-defined paragraph with heading "Side Effects:". - # You can put \n's in the value part of an alias to insert newlines. - --ALIASES = \ -- "intern=\parInternal use only." \ -- "reimp=\parReimplemented from superclass." \ -- "obsolete=@deprecated" \ -- "feature=\xrefitem features \"Feature(s)\" \"Features\"" \ -- "maintainer=\xrefitem maintainers \"Maintainer(s)\" \"Maintainers\"" \ -- "unmaintained=\xrefitem unmaintained \"Unmaintained\" \"Unmaintained\"" \ -- "requirement=\xrefitem requirements \"Requirement(s)\" \"Requirements\"" \ -- "faq=\xrefitem FAQ \"F.A.Q.\" \"F.A.Q.\"" \ -- "authors=\xrefitem authors \"Author(s)\" \"Authors\"" \ -- "maintainers=\xrefitem maintainers \"Maintainer(s)\" \"Maintainers\"" \ -- "port4=\xrefitem port4 \"KDE 4 Porting Guide\" \"KDE 4 Porting Guide\"" \ -- "glossary=\xrefitem glossary \"KDE 4 Glossary\" \"KDE 4 Glossary\"" \ -- "acronym=\b "\ -- "licenses=\xrefitem licenses \"License(s)\" \"Licenses\"" \ -- "short=@brief "\ -- "FIXME=\xrefitem fixme \"Fixme\" \"Fixme\"" \ -- "bc=\xrefitem bc \"Binary Compatible\" \"Binary Compatible\"" \ -- "artistic=Artistic" \ -- "bsd=BSD" \ -- "x11=X11" \ -- "gpl=GPL" \ -- "lgpl=LGPL" \ -- "qpl=QPL" -+ALIASES = "intern=\parInternal use only." \ -+ "reimp=\parReimplemented from superclass." \ -+ "obsolete=@deprecated" \ -+ "feature=\xrefitem features \"Feature(s)\" \"Features\"" \ -+ "unmaintained=\xrefitem unmaintained \"Unmaintained\" \"Unmaintained\"" \ -+ "requirement=\xrefitem requirements \"Requirement(s)\" \"Requirements\"" \ -+ "faq=\xrefitem FAQ \"F.A.Q.\" \"F.A.Q.\"" \ -+ "authors=\xrefitem authors \"Author(s)\" \"Authors\"" \ -+ "maintainers=\xrefitem maintainers \"Maintainer(s)\" \"Maintainers\"" \ -+ "port4=\xrefitem port4 \"KDE 4 Porting Guide\" \"KDE 4 Porting Guide\"" \ -+ "glossary=\xrefitem glossary \"KDE 4 Glossary\" \"KDE 4 Glossary\"" \ -+ "acronym=\b " \ -+ "licenses=\xrefitem licenses \"License(s)\" \"Licenses\"" \ -+ "FIXME=\xrefitem fixme \"Fixme\" \"Fixme\"" \ -+ "bc=\xrefitem bc \"Binary Compatible\" \"Binary Compatible\"" \ -+ "threadsafe=\xrefitem threadsafe \"Threadsafe\" \"Threadsafe\"" \ -+ "artistic=Artistic" \ -+ "bsd=BSD" \ -+ "x11=X11" \ -+ "gpl=GPLv2" \ -+ "lgpl=LGPLv2" \ -+ "mit=MIT" \ -+ "qpl=QPL" - - # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C - # sources only. Doxygen will then generate output that is more tailored for C. --- -1.8.3.1 - diff --git a/0005-docs-remove-reference-to-xine-and-update-apidox-sett.patch b/0005-docs-remove-reference-to-xine-and-update-apidox-sett.patch deleted file mode 100644 index 2229911..0000000 --- a/0005-docs-remove-reference-to-xine-and-update-apidox-sett.patch +++ /dev/null @@ -1,53 +0,0 @@ -From a40746b5f381a8417dc0d9ea9c3f299e1da88631 Mon Sep 17 00:00:00 2001 -From: Harald Sitter -Date: Wed, 12 Sep 2012 17:20:52 +0200 -Subject: [PATCH 05/12] docs: remove reference to xine and update apidox - settings - ---- - Mainpage.dox | 14 ++++++-------- - 1 file changed, 6 insertions(+), 8 deletions(-) - -diff --git a/Mainpage.dox b/Mainpage.dox -index 82b96ad..a5df2f5 100644 ---- a/Mainpage.dox -+++ b/Mainpage.dox -@@ -16,8 +16,7 @@ almost certainly the right choice for you. It provides an API that any Qt - developer will be comfortable with, and uses the native multimedia frameworks - on Windows and MacOS. On UNIX systems, where there is no one standard - multimedia system, it offers GStreamer --and Xine backends, and more (such as --VLC) are available from third parties. -+and VLC backends. - - However, Phonon is not aimed at professional audio applications (in the style of - Audacity, say). For these applications, -@@ -35,7 +34,6 @@ Nokia Corporation and/or its subsidiary(-ies) - - @maintainers - Harald Sitter \ --Martin Sandsmark \ - - @licenses - Libraries: @lgpl
-@@ -66,12 +64,12 @@ If you want more immediate help, try the \#phonon IRC channel on Freenode. - - */ - --// DOXYGEN_VERSION=4.5.55 -+// DOXYGEN_VERSION=4.7.0 - // DOXYGEN_NAME=Phonon - // DOXYGEN_ENABLE=YES --// DOXYGEN_SET_INPUT = @topdir@/phonon/ @topdir@/phonon/Mainpage.dox --// DOXYGEN_SET_FILE_PATTERNS = *.h *.dox */phononnamespace.h.in --// ignore backend docs --// DOXYGEN_SET_EXCLUDE_PATTERNS = *interface.h */phonon/examples/* */tests/* *_p.h */experimental/videocapturedevice/* */phonon/backend* -+// DOXYGEN_SET_INPUT = @topdir@/phonon/ -+// DOXYGEN_SET_EXCLUDE = @topdir@/phonon/backend/ @topdir@/phonon/experimental/ -+// DOXYGEN_SET_FILE_PATTERNS = *.h *.dox -+// DOXYGEN_SET_EXCLUDE_PATTERNS = *interface.h *_p.h - - // vim:ts=4:sw=4:expandtab:filetype=doxygen --- -1.8.3.1 - diff --git a/0006-docs-exclude-phonon-backend-and-phonon-experimental.patch b/0006-docs-exclude-phonon-backend-and-phonon-experimental.patch deleted file mode 100644 index 38f7d6a..0000000 --- a/0006-docs-exclude-phonon-backend-and-phonon-experimental.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 2b0f5bd5a48936b9dbb3bf4679cf95a4841ac3c7 Mon Sep 17 00:00:00 2001 -From: Harald Sitter -Date: Wed, 12 Sep 2012 17:21:24 +0200 -Subject: [PATCH 06/12] docs: exclude phonon/backend and phonon/experimental - ---- - doc/CMakeLists.txt | 7 +++++++ - doc/Doxyfile.cmake.in | 2 +- - 2 files changed, 8 insertions(+), 1 deletion(-) - -diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt -index 24476d6..692442a 100644 ---- a/doc/CMakeLists.txt -+++ b/doc/CMakeLists.txt -@@ -10,6 +10,13 @@ set(PHONON_DOXYGEN_SOURCE_DIR - ) - string(REGEX REPLACE ";" " " PHONON_DOXYGEN_SOURCE_DIR "${PHONON_DOXYGEN_SOURCE_DIR}") - -+set(PHONON_DOXYGEN_EXCLUDE -+ ${PHONON_SOURCE_DIR}/phonon/backend -+ ${PHONON_SOURCE_DIR}/phonon/experimental -+) -+string(REGEX REPLACE ";" " " PHONON_DOXYGEN_EXCLUDE "${PHONON_DOXYGEN_EXCLUDE}") -+ -+ - configure_file(Doxyfile.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) - - add_custom_target("html" ALL -diff --git a/doc/Doxyfile.cmake.in b/doc/Doxyfile.cmake.in -index 3d3788c..faaa943 100644 ---- a/doc/Doxyfile.cmake.in -+++ b/doc/Doxyfile.cmake.in -@@ -702,7 +702,7 @@ RECURSIVE = YES - # excluded from the INPUT source files. This way you can easily exclude a - # subdirectory from a directory tree whose root is specified with the INPUT tag. - --EXCLUDE = -+EXCLUDE = @PHONON_DOXYGEN_EXCLUDE@ - - # The EXCLUDE_SYMLINKS tag can be used select whether or not files or - # directories that are symbolic links (a Unix file system feature) are excluded --- -1.8.3.1 - diff --git a/0007-remove-automoc4-dependency.patch b/0007-remove-automoc4-dependency.patch deleted file mode 100644 index 792341b..0000000 --- a/0007-remove-automoc4-dependency.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 18223bd2f2dcc354127dd9cffc5a80f5c4cdadeb Mon Sep 17 00:00:00 2001 -From: Harald Sitter -Date: Wed, 12 Sep 2012 18:10:13 +0200 -Subject: [PATCH 07/12] remove automoc4 dependency - -Starting with CMake 2.8.6 there is an automoc builtin. Whenever using -CMake >= 2.8.6 we therefore activate the builtin and provide a -compatibility macro for automoc4_add_library. When using < 2.8.6 we -continue to look for automoc4 and fail if unable to find it. - -This makes the automoc4 dep unnecessary when building with a sufficiently -new CMake version. Horray! ---- - cmake/FindPhononInternal.cmake | 27 +++++++++++++++++++-------- - 1 file changed, 19 insertions(+), 8 deletions(-) - -diff --git a/cmake/FindPhononInternal.cmake b/cmake/FindPhononInternal.cmake -index 2bad949..1e9edb0 100644 ---- a/cmake/FindPhononInternal.cmake -+++ b/cmake/FindPhononInternal.cmake -@@ -74,14 +74,25 @@ endif(NOT QT_QTDBUS_FOUND) - - # - Automoc - --find_package(Automoc4 REQUIRED) --if (NOT AUTOMOC4_VERSION) -- set(AUTOMOC4_VERSION "0.9.83") --endif (NOT AUTOMOC4_VERSION) --macro_ensure_version("0.9.86" "${AUTOMOC4_VERSION}" _automoc4_version_ok) --if (NOT _automoc4_version_ok) -- message(FATAL_ERROR "Your version of automoc4 is too old. You have ${AUTOMOC4_VERSION}, you need at least 0.9.86") --endif (NOT _automoc4_version_ok) -+# Starting with CMake 2.8.6 there is a builtin to replace automoc4, use that when possible. -+if(CMAKE_VERSION VERSION_GREATER 2.8.5) -+ message(STATUS "Using CMake automoc builtin") -+ set(CMAKE_AUTOMOC TRUE) -+ # Compatiblity Macro -+ macro(AUTOMOC4_ADD_LIBRARY _target_NAME _add_executable_param) -+ add_library(${_target_NAME} ${_add_executable_param} ${ARGN}) -+ endmacro(AUTOMOC4_ADD_LIBRARY) -+else(CMAKE_VERSION VERSION_GREATER 2.8.5) -+ message(STATUS "Can not use CMake automoc builtin, trying to find automoc4") -+ find_package(Automoc4 REQUIRED) -+ if (NOT AUTOMOC4_VERSION) -+ set(AUTOMOC4_VERSION "0.9.83") -+ endif (NOT AUTOMOC4_VERSION) -+ macro_ensure_version("0.9.86" "${AUTOMOC4_VERSION}" _automoc4_version_ok) -+ if (NOT _automoc4_version_ok) -+ message(FATAL_ERROR "Your version of automoc4 is too old. You have ${AUTOMOC4_VERSION}, you need at least 0.9.86") -+ endif (NOT _automoc4_version_ok) -+endif(CMAKE_VERSION VERSION_GREATER 2.8.5) - - # restore the original CMAKE_MODULE_PATH - set(CMAKE_MODULE_PATH ${_phonon_cmake_module_path_back}) --- -1.8.3.1 - diff --git a/0008-not-finding-qtdbus-is-really-a-proper-warning-not-a-.patch b/0008-not-finding-qtdbus-is-really-a-proper-warning-not-a-.patch deleted file mode 100644 index 8a8a4a3..0000000 --- a/0008-not-finding-qtdbus-is-really-a-proper-warning-not-a-.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 9f5336c4e5ad6175114ecf1495d60f63003b2216 Mon Sep 17 00:00:00 2001 -From: Harald Sitter -Date: Wed, 12 Sep 2012 18:10:28 +0200 -Subject: [PATCH 08/12] not finding qtdbus is really a proper warning, not a - status message - ---- - cmake/FindPhononInternal.cmake | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/cmake/FindPhononInternal.cmake b/cmake/FindPhononInternal.cmake -index 1e9edb0..de7f6ea 100644 ---- a/cmake/FindPhononInternal.cmake -+++ b/cmake/FindPhononInternal.cmake -@@ -68,9 +68,9 @@ endif (${QT_MIN_VERSION} VERSION_LESS "4.6.0") - find_package(Qt4 ${_REQ_STRING_KDE4}) - - # TODO: do we want this here? --if (NOT QT_QTDBUS_FOUND) -- message(STATUS "Warning: Building without DBus support as QtDBus was not found.") --endif(NOT QT_QTDBUS_FOUND) -+if (QT_QTDBUS_FOUND) -+ message(WARNING "Building without DBus support as QtDBus was not found.") -+endif(QT_QTDBUS_FOUND) - - # - Automoc - --- -1.8.3.1 - diff --git a/0009-fix-inverted-if.patch b/0009-fix-inverted-if.patch deleted file mode 100644 index 5641901..0000000 --- a/0009-fix-inverted-if.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 7d1008a5765b4c66e8a2e8c38aac8cb06eb09eb8 Mon Sep 17 00:00:00 2001 -From: Harald Sitter -Date: Wed, 12 Sep 2012 18:35:38 +0200 -Subject: [PATCH 09/12] fix inverted if - ---- - cmake/FindPhononInternal.cmake | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/cmake/FindPhononInternal.cmake b/cmake/FindPhononInternal.cmake -index de7f6ea..d629fb3 100644 ---- a/cmake/FindPhononInternal.cmake -+++ b/cmake/FindPhononInternal.cmake -@@ -68,9 +68,9 @@ endif (${QT_MIN_VERSION} VERSION_LESS "4.6.0") - find_package(Qt4 ${_REQ_STRING_KDE4}) - - # TODO: do we want this here? --if (QT_QTDBUS_FOUND) -+if (NOT QT_QTDBUS_FOUND) - message(WARNING "Building without DBus support as QtDBus was not found.") --endif(QT_QTDBUS_FOUND) -+endif(NOT QT_QTDBUS_FOUND) - - # - Automoc - --- -1.8.3.1 - diff --git a/0010-manually-set-cmake_install_prefix-on-the-icon_instal.patch b/0010-manually-set-cmake_install_prefix-on-the-icon_instal.patch deleted file mode 100644 index 8ce6024..0000000 --- a/0010-manually-set-cmake_install_prefix-on-the-icon_instal.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 7a4911590864f138550b63ff45dae65d92843bd6 Mon Sep 17 00:00:00 2001 -From: Harald Sitter -Date: Mon, 17 Sep 2012 11:48:08 +0200 -Subject: [PATCH 10/12] manually set cmake_install_prefix on the - icon_install_dir - -when doing a cache update we apparently need the full path, which may -be limited to this case, not quite sure. -at any rate our code is vastly different from kdelibs' so a resync is -out of the question for phonon4. - -would be good if one of the windows guys were to test this change. - -BUG: 294505 -FIXED-IN: 4.6.1 ---- - cmake/PhononMacros.cmake | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/cmake/PhononMacros.cmake b/cmake/PhononMacros.cmake -index fc10180..9870a2c 100644 ---- a/cmake/PhononMacros.cmake -+++ b/cmake/PhononMacros.cmake -@@ -96,8 +96,8 @@ macro (PHONON_UPDATE_ICONCACHE) - install(CODE " - set(DESTDIR_VALUE \"\$ENV{DESTDIR}\") - if (NOT DESTDIR_VALUE) -- file(WRITE \"${ICON_INSTALL_DIR}/hicolor/temp.txt\" \"update\") -- file(REMOVE \"${ICON_INSTALL_DIR}/hicolor/temp.txt\") -+ file(WRITE \"${CMAKE_INSTALL_PREFIX}/${ICON_INSTALL_DIR}/hicolor/temp.txt\" \"update\") -+ file(REMOVE \"${CMAKE_INSTALL_PREFIX}/${ICON_INSTALL_DIR}/hicolor/temp.txt\") - endif (NOT DESTDIR_VALUE) - ") - endmacro (PHONON_UPDATE_ICONCACHE) --- -1.8.3.1 - diff --git a/0011-remove-unnecessary-if-statement.patch b/0011-remove-unnecessary-if-statement.patch deleted file mode 100644 index b9955fa..0000000 --- a/0011-remove-unnecessary-if-statement.patch +++ /dev/null @@ -1,29 +0,0 @@ -From a8c431494d2a6f3785c132f14d00d38ea0e5b328 Mon Sep 17 00:00:00 2001 -From: Oswald Buddenhagen -Date: Sat, 27 Oct 2012 09:58:16 +0200 -Subject: [PATCH 11/12] remove unnecessary if() statement - -as it happens, this works around a qmake breakage relating to parsing if() - -BUG: 295037 -FIXED-IN: 4.6.1 ---- - qt_phonon.pri | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/qt_phonon.pri b/qt_phonon.pri -index 08de2e2..daf824f 100644 ---- a/qt_phonon.pri -+++ b/qt_phonon.pri -@@ -3,6 +3,6 @@ - # the next build of Qt. So pretend we're not there in this case. - # This file is loaded by qt_config.prf, before .qmake.cache has been loaded. - # Consequently, we have to do some stunts to get values out of the cache. --if(!exists($$_QMAKE_CACHE_)| \ -- !contains($$list($$fromfile($$_QMAKE_CACHE_, CONFIG)), QTDIR_build)): \ -+!exists($$_QMAKE_CACHE_)| \ -+ !contains($$list($$fromfile($$_QMAKE_CACHE_, CONFIG)), QTDIR_build): \ - QT_CONFIG += phonon --- -1.8.3.1 - diff --git a/0012-remove-testing-scripts-and-move-design-docs-into-pro.patch b/0012-remove-testing-scripts-and-move-design-docs-into-pro.patch deleted file mode 100644 index e61c8a0..0000000 --- a/0012-remove-testing-scripts-and-move-design-docs-into-pro.patch +++ /dev/null @@ -1,754 +0,0 @@ -From f88f1b13a5319ec80999de00095ef289a55d6fbb Mon Sep 17 00:00:00 2001 -From: Harald Sitter -Date: Sun, 27 Jan 2013 01:47:11 +0100 -Subject: [PATCH 12/12] remove testing scripts and move design docs into proper - folder - ---- - doc/DESIGN/stream-thoughts | 72 ++++++ - phonon/extractmethodcalls.rb | 527 ----------------------------------------- - phonon/preprocessandextract.sh | 39 --- - phonon/stream-thoughts | 72 ------ - 4 files changed, 72 insertions(+), 638 deletions(-) - create mode 100644 doc/DESIGN/stream-thoughts - delete mode 100755 phonon/extractmethodcalls.rb - delete mode 100755 phonon/preprocessandextract.sh - delete mode 100644 phonon/stream-thoughts - -diff --git a/doc/DESIGN/stream-thoughts b/doc/DESIGN/stream-thoughts -new file mode 100644 -index 0000000..5fb6711 ---- /dev/null -+++ b/doc/DESIGN/stream-thoughts -@@ -0,0 +1,72 @@ -+there are two different kind of streams: 1. media files 2. live radio/television -+ -+The difference cannot reliably be determined by the backend so the application has to tell the -+frontend. -+ -+This is the expected behaviour: -+1. media files -+============== -+function | prev. state | action | new state -+---------+-------------+----------------------------------------------------------------+---------- -+ctor | | | Loading -+---------+-------------+----------------------------------------------------------------+---------- -+setUrl | Loading | refill buffers | Loading -+ | Stopped | refill buffers | Loading -+---------+-------------+----------------------------------------------------------------+---------- -+play | Loading | continue buffering | Buffering -+ | Stopped | start playing | Playing -+ | Buffering | continue buffering | Buffering -+ | Playing | | Playing -+ | Paused | continue playback | Playing -+---------+-------------+----------------------------------------------------------------+---------- -+pause | Loading | | Loading -+ | Stopped | | Stopped -+ | Buffering | continue buffering | Paused -+ | Playing | pause output and fill buffers to the max | Paused -+ | Paused | | Paused -+---------+-------------+----------------------------------------------------------------+---------- -+stop | Loading | | Loading -+ | Stopped | | Stopped -+ | Buffering | restart buffering from the beginning of the file | Loading -+ | Playing | stop output and refill buffers from the beginning of the file | Loading -+ | Paused | restart buffering from the beginning of the file | Loading -+ -+events -+function | prev. state | event | new state -+---------+-------------+----------------------------------------------------------------+---------- -+ | Buffering | when the buffers are filled start playing | Playing -+ | Loading | when buffers are filled | Stopped -+ -+ -+ -+2. live stream -+============== -+function | prev. state | action | new state -+---------+-------------+----------------------------------------------------------------+---------- -+ctor | | | Loading -+---------+-------------+----------------------------------------------------------------+---------- -+setUrl | Loading | | Stopped -+ | Stopped | | Stopped -+---------+-------------+----------------------------------------------------------------+---------- -+play | Loading | | Error -+ | Stopped | start buffering | Buffering -+ | Buffering | continue buffering | Buffering -+ | Playing | | Playing -+ | Paused | continue playback | Playing -+---------+-------------+----------------------------------------------------------------+---------- -+pause | Loading | | Error -+ | Stopped | | Stopped -+ | Buffering | continue buffering | Paused -+ | Playing | pause output and fill (ring-)buffers to the max | Paused -+ | Paused | | Paused -+---------+-------------+----------------------------------------------------------------+---------- -+stop | Loading | | Error -+ | Stopped | | Stopped -+ | Buffering | clear buffers | Stopped -+ | Playing | stop output and clear buffers | Stopped -+ | Paused | clear buffers | Stopped -+ -+events -+function | prev. state | event | new state -+---------+-------------+----------------------------------------------------------------+---------- -+ | Buffering | when the buffers are filled start playing | Playing -diff --git a/phonon/extractmethodcalls.rb b/phonon/extractmethodcalls.rb -deleted file mode 100755 -index 9100489..0000000 ---- a/phonon/extractmethodcalls.rb -+++ /dev/null -@@ -1,527 +0,0 @@ --#!/usr/bin/ruby -- --class MethodDef -- def initialize(returnType, signature, optional) -- @returnType = returnType -- @signature = signature -- @optional = optional -- end -- -- attr_reader :returnType, :signature, :optional -- attr_writer :optional --end -- --class SignalDef -- def initialize(signature) -- @signature = signature -- end -- -- attr_reader :signature --end -- --class Parser -- def initialize(filename) -- @file = File.new filename, "r" -- @signatures = Hash.new -- parse -- end -- -- attr_reader :signatures -- -- private -- def addSignal(signature) -- unless @signatures.include? signature -- @signatures[signature] = SignalDef.new(signature) -- end -- end -- -- def addMethod(returnType, signature, optional) -- if @signatures.include? signature -- if returnType != '' -- if @signatures[signature].returnType == '' -- optional = false if @signatures[signature].optional == false -- @signatures[signature] = MethodDef.new(returnType, signature, optional) -- elsif @signatures[signature].returnType != returnType -- fail "same signature '#{signature}' but differing return types: #{returnType} and #{@signatures[signature].returnType}" -- end -- elsif not optional and @signatures[signature].optional -- @signatures[signature].optional = false -- end -- else -- @signatures[signature] = MethodDef.new(returnType, signature, optional) -- end -- end -- -- PARSER_RETURN_TYPE = 0 -- PARSER_RETURN_VAR = 1 -- PARSER_METHOD_NAME = 2 -- PARSER_ARGUMENT_TYPE = 3 -- PARSER_ARGUMENT_VAR = 4 -- -- PARSER2_CLASSNAME = 0 -- PARSER2_METHODPREFIX = 1 -- -- PARSER3_QMETAOBJECT = 0 -- PARSER3_SCOPEDELIMIT = 1 -- PARSER3_INVOKEMETHOD = 2 -- PARSER3_OPENPARENTH = 3 -- PARSER3_BACKENDOBJ = 4 -- PARSER3_METHODNAME = 5 -- PARSER3_CONNECTION = 6 -- PARSER3_RET_OR_ARG = 7 -- PARSER3_RET_OPEN = 8 -- PARSER3_RET_TYPE = 9 -- PARSER3_RET_NAME = 10 -- PARSER3_RET_CLOSE = 11 -- PARSER3_ARG = 12 -- PARSER3_ARG_OPEN = 13 -- PARSER3_ARG_TYPE = 14 -- PARSER3_ARG_NAME = 15 -- PARSER3_ARG_CLOSE = 16 -- PARSER3_CLOSE = 17 -- PARSER3_DONE = 18 -- -- PARSER4_OPENING_PAREN = 0 -- PARSER4_SENDER = 1 -- PARSER4_PRIVATE_SENDER = 2 -- PARSER4_COMMA_1 = 3 -- PARSER4_SIGNAL_MACRO = 4 -- PARSER4_SIGNAL_OPENING_PAREN = 5 -- PARSER4_SIGNAL_SIGNATURE = 6 -- PARSER4_SIGNAL_SIGNATURE_OPENING_PAREN = 7 -- PARSER4_SIGNAL_SIGNATURE_CONST = 8 -- PARSER4_SIGNAL_SIGNATURE_TYPE1 = 9 -- PARSER4_SIGNAL_SIGNATURE_TYPE2_1 = 10 -- PARSER4_SIGNAL_SIGNATURE_TYPE2_2 = 11 -- PARSER4_SIGNAL_CLOSING_PAREN = 12 -- -- def parse -- inbackendcall = false -- innamedescriptioncall = false -- ininvokemethodcall = false -- invokemethodcallOnBackendObject = false -- inconnect = false -- optionalmethod = false -- lasttoken = ';' -- thistoken = ';' -- returnType = String.new -- signature = String.new -- parserstate = PARSER_RETURN_TYPE -- depth = 0 -- tokenize do |token| -- #STDERR.puts token -- lasttoken = thistoken -- thistoken = token -- token = token[1..-1] if token[0,9] == "pBACKEND_" -- if token[0,8] == "BACKEND_" -- fail if innamedescriptioncall -- fail if inbackendcall -- fail if ininvokemethodcall -- fail if inconnect -- inbackendcall = true -- if token[8,3] != "GET" # skip return arg -- parserstate = PARSER_METHOD_NAME -- returnType = '' -- else -- parserstate = PARSER_RETURN_TYPE -- end -- elsif token == 'NAMEDESCRIPTIONFROMINDEX' -- fail if innamedescriptioncall -- fail if inbackendcall -- fail if ininvokemethodcall -- fail if inconnect -- innamedescriptioncall = true -- parserstate = PARSER2_CLASSNAME -- elsif token == 'QMetaObject' -- fail if innamedescriptioncall -- fail if inbackendcall -- fail if ininvokemethodcall -- fail if inconnect -- ininvokemethodcall = true -- parserstate = PARSER3_SCOPEDELIMIT -- optionalmethod = (lasttoken[-1,1] == '=' or lasttoken == '(' or lasttoken == '!') ? true : false -- elsif token == 'connect' -- fail if innamedescriptioncall -- fail if inbackendcall -- fail if ininvokemethodcall -- fail if inconnect -- inconnect = true -- parserstate = PARSER4_OPENING_PAREN -- elsif inconnect -- #puts "state = #{parserstate}, token = #{token}" -- lastparserstate = parserstate -- case parserstate -- when PARSER4_OPENING_PAREN -- parserstate = PARSER4_SENDER if token == '(' -- when PARSER4_SENDER -- # d->m_backendObject or only m_backendObject -- parserstate = PARSER4_COMMA_1 if token == 'm_backendObject' -- parserstate = PARSER4_PRIVATE_SENDER if token == 'd' -- when PARSER4_PRIVATE_SENDER -- parserstate = PARSER4_SENDER if token == '->' -- when PARSER4_COMMA_1 -- parserstate = PARSER4_SIGNAL_MACRO if token == ',' -- when PARSER4_SIGNAL_MACRO -- parserstate = PARSER4_SIGNAL_OPENING_PAREN if token == 'SIGNAL' -- when PARSER4_SIGNAL_OPENING_PAREN -- parserstate = PARSER4_SIGNAL_SIGNATURE if token == '(' -- when PARSER4_SIGNAL_SIGNATURE -- signature = token -- parserstate = PARSER4_SIGNAL_SIGNATURE_OPENING_PAREN -- when PARSER4_SIGNAL_SIGNATURE_OPENING_PAREN -- case token -- when '(' -- signature += '(' -- parserstate = PARSER4_SIGNAL_SIGNATURE_CONST -- when '()' -- signature += '()' -- parserstate = PARSER4_SIGNAL_CLOSING_PAREN -- end -- when PARSER4_SIGNAL_SIGNATURE_CONST -- case token -- when 'const' -- signature += 'const ' -- parserstate = PARSER4_SIGNAL_SIGNATURE_TYPE1 -- when ')' -- signature += ')' -- parserstate = PARSER4_SIGNAL_CLOSING_PAREN -- else -- signature += token -- parserstate = PARSER4_SIGNAL_SIGNATURE_TYPE2_1 -- end -- when PARSER4_SIGNAL_SIGNATURE_TYPE1 -- case token -- when 'const' -- when ')' -- else -- signature += token -- parserstate = PARSER4_SIGNAL_SIGNATURE_TYPE2_1 -- end -- when PARSER4_SIGNAL_SIGNATURE_TYPE2_1 -- case token -- when ',' -- signature += ', ' -- parserstate = PARSER4_SIGNAL_SIGNATURE_TYPE1 -- when ')' -- signature += ')' -- parserstate = PARSER4_SIGNAL_CLOSING_PAREN -- else -- signature += token -- parserstate = PARSER4_SIGNAL_SIGNATURE_TYPE2_2 -- end -- when PARSER4_SIGNAL_SIGNATURE_TYPE2_2 -- case token -- when ',' -- signature += ', ' -- parserstate = PARSER4_SIGNAL_SIGNATURE_TYPE1 -- when ')' -- signature += ')' -- parserstate = PARSER4_SIGNAL_CLOSING_PAREN -- else -- signature += token -- parserstate = PARSER4_SIGNAL_SIGNATURE_TYPE2_1 -- end -- when PARSER4_SIGNAL_CLOSING_PAREN -- addSignal(signature) if token == ')' -- end -- if parserstate == lastparserstate -- inconnect = false -- signature = String.new -- end -- elsif ininvokemethodcall -- case parserstate -- when PARSER3_BACKENDOBJ -- if token == ',' -- if invokemethodcallOnBackendObject -- parserstate += 1 -- else -- ininvokemethodcall = false -- end -- elsif token =~ /backendObject/ -- invokemethodcallOnBackendObject = true -- end -- when PARSER3_SCOPEDELIMIT -- if token == '::' -- parserstate += 1 -- else -- ininvokemethodcall = false -- end -- when PARSER3_INVOKEMETHOD -- if token == 'invokeMethod' -- parserstate += 1 -- else -- ininvokemethodcall = false -- end -- when PARSER3_OPENPARENTH -- fail if token != '(' -- parserstate += 1 -- invokemethodcallOnBackendObject = false -- when PARSER3_METHODNAME -- case token -- when ',' -- signature += '(' -- parserstate = PARSER3_CONNECTION -- else -- fail if signature.length > 0 -- signature = token[1..-2] -- end -- when PARSER3_CONNECTION -- case token -- when ',' -- parserstate = PARSER3_RET_OR_ARG -- when ')' -- parserstate = PARSER3_CLOSE --# the connection is optional -- when 'Q_RETURN_ARG' -- parserstate = PARSER3_RET_OPEN -- when 'Q_ARG' -- returnType = '' -- parserstate = PARSER3_ARG_OPEN -- end -- when PARSER3_RET_OR_ARG -- if token == 'Q_RETURN_ARG' -- parserstate = PARSER3_RET_OPEN -- elsif token == 'Q_ARG' -- returnType = '' -- parserstate = PARSER3_ARG_OPEN -- else -- fail "unexpected token '#{token}" -- end -- when PARSER3_RET_TYPE -- if token == ',' -- parserstate += 1 -- else -- if token == '*' or token == '&' or token == '<' or token == '>' or token == '::' or returnType.empty? or returnType[-1,1] == '<' or returnType[-2,2] == '::' -- returnType += token -- else -- returnType += ' ' + token -- end -- end -- when PARSER3_RET_NAME -- parserstate = PARSER3_RET_CLOSE if token == ')' -- when PARSER3_RET_CLOSE -- case token -- when ')' -- parserstate = PARSER3_CLOSE -- when ',' -- parserstate = PARSER3_ARG -- end -- when PARSER3_ARG -- if token == 'Q_ARG' -- parserstate = PARSER3_ARG_OPEN -- else -- fail "unexpected token '#{token}" -- end -- when PARSER3_ARG_TYPE -- if token == ',' -- parserstate += 1 -- else -- signature += ' ' if signature[-1,1] =~ /\w/ and token[0,1] =~ /\w/ -- signature += token -- end -- when PARSER3_ARG_NAME -- case token -- when '(' -- depth += 1 -- when ')' -- if depth == 0 -- parserstate = PARSER3_ARG_CLOSE -- else -- depth -= 1 -- end -- end -- when PARSER3_ARG_CLOSE -- case token -- when ',' -- signature += ',' -- parserstate = PARSER3_ARG -- when ')' -- parserstate = PARSER3_CLOSE -- else -- fail -- end -- when PARSER3_ARG_OPEN, PARSER3_RET_OPEN -- fail if token != '(' -- parserstate += 1 -- when PARSER3_CLOSE -- signature += ')' -- addMethod returnType, signature, optionalmethod -- ininvokemethodcall = false -- returnType = String.new -- signature = String.new -- end -- elsif innamedescriptioncall -- case parserstate -- when PARSER2_CLASSNAME -- parserstate = PARSER2_METHODPREFIX if token == ',' -- when PARSER2_METHODPREFIX -- addMethod 'QSet', token + 'Indexes()', false -- addMethod 'int', token + 'Name()', false -- addMethod 'int', token + 'Description()', false -- innamedescriptioncall = false -- end -- elsif inbackendcall -- next if token == '(' # skip ( -- if token == ';' -- if signature.length > 0 -- signature += ')' -- addMethod returnType, signature, false -- signature = String.new -- returnType = String.new -- end -- inbackendcall = false -- else -- if token == ',' -- if parserstate == PARSER_ARGUMENT_VAR -- signature += ',' -- parserstate = PARSER_ARGUMENT_TYPE -- else -- parserstate += 1 -- end -- next -- end -- case parserstate -- when PARSER_RETURN_TYPE -- returnType += token -- when PARSER_RETURN_VAR -- when PARSER_METHOD_NAME -- next if token == ')' -- fail if token[0,1] != '"' or token[-1,1] != '"' -- fail if signature.length > 0 -- signature = token[1..-2] + '(' -- when PARSER_ARGUMENT_TYPE -- signature += token -- end -- end -- end -- end -- end -- -- def tokenize -- incomment = false -- instring = false -- laststring = '' -- linenum = 0 -- @file.each_line do |line| -- linenum += 1 -- line.strip! -- next if line[0..1] == "//" -- next if line[0,1] == "#" # ignore preprocessor statements -- line.split(/(\b|\s+)/).each do |token| -- #STDERR.puts "string: #{instring} comment: #{incomment} token: '#{token}'" -- if instring -- indexOfEscapedQuote = token.index '\\"' -- if indexOfEscapedQuote != nil -- laststring += token -- next -- end -- indexOfQuote = token.index '"' -- if indexOfQuote and indexOfQuote > 0 -- fail if token[indexOfQuote-1,1] == '\\' -- laststring += token[0..indexOfQuote-1] -- token = token[indexOfQuote..-1] -- end -- if token[0,2] == '""' -- laststring += token[2..-1] -- next -- elsif token[0,1] == '"' -- if laststring[-1,1] == '\\' -- laststring[-1,1] = '"' -- laststring += token[1..-1] -- next -- end -- instring = false -- yield laststring + '"' -- token = token[1..-1] -- else -- laststring += token -- next -- end -- end -- token.strip! -- next if token.empty? -- if incomment -- incomment = false if token[0..1] == "*/" -- next -- else -- if token[0..1] == "/*" -- incomment = true -- next -- end -- break if token == "//" -- end -- doublequote = token.index '""' -- if doublequote != nil -- if doublequote > 0 -- yield token[0,doublequote] -- end -- yield '""' -- if token.length > doublequote+2 -- token = token[doublequote+2..-1] -- else -- next -- end -- end -- quote = token.index '"' -- if quote != nil -- laststring = token[quote..-1] -- instring = true -- if quote > 0 -- token = token[0,quote] -- else -- next -- end -- end -- semicolon = token.index ';' -- if not semicolon -- tokenize2(token) { |i| yield i } -- elsif semicolon > 0 -- tokenize2(token[0..semicolon-1]) { |i| yield i } -- yield ';' -- if token.length > semicolon + 1 -- tokenize2(token[semicolon+1..-1]) { |i| yield i } -- end -- elsif (semicolon == 0 and token.length > 1) -- yield ';' -- tokenize2(token[1..-1]) { |i| yield i } -- else -- yield token # a single ; -- end -- end -- end -- end -- -- def tokenize2(token) -- if token.length > 1 -- #STDERR.puts "long token: #{token}" -- while token[0,1] == '(' or token[0,1] == ')' or token[0,1] == "'" or token[0,1] == '&' -- yield token[0,1] -- token = token[1..-1] -- #STDERR.puts "less long token: #{token}" -- end -- return if token.empty? -- if token.length == 1 -- yield token -- return -- elsif token[-1,1] == ',' or token[-1,1] == "'" -- yield token[0..-2] -- yield token[-1,1] -- return -- end -- end -- yield token -- end --end -- --p = Parser.new ARGV[0] --p.signatures.each do |signature,method| -- if method.class == SignalDef -- puts "addSignal(\"#{signature}\");" -- else -- if method.optional -- puts "addMethod(\"#{method.returnType}\", \"#{signature}\", true);" -- else -- puts "addMethod(\"#{method.returnType}\", \"#{signature}\");" -- end -- end --end -diff --git a/phonon/preprocessandextract.sh b/phonon/preprocessandextract.sh -deleted file mode 100755 -index 13b1704..0000000 ---- a/phonon/preprocessandextract.sh -+++ /dev/null -@@ -1,39 +0,0 @@ --#!/bin/sh --EXTRACT="`dirname $0`/extractmethodcalls.rb" --IGNORE="^\(streameventqueue\|abstractmediastream2\|lockfreequeue\|path\|platform\|iodevicestream\|medianode\|streaminterface\|mediasource\|abstractmediastream\|audioplayer\|globalconfig\|objectdescriptionmodel\|audiooutputadaptor\|effectwidget\|videoplayer\|seekslider\|volumeslider\).cpp$" -- --if test -n "$1" -a -f "$1"; then -- echo "preprocessing $1" -- cpp $1 2>/dev/null > tmp -- echo "extracting backend calls from $1" -- $EXTRACT tmp > tests/methods/$1 -- rm tmp --else -- for i in *.cpp; do -- if echo $i | grep -q "$IGNORE"; then -- printf "%-30s ignored.\n" "$i:" -- elif echo $i | grep -q '_p\.cpp$'; then -- printf "%-30s postponed.\n" "$i:" -- else -- printf "%-30s preprocessing" "$i:" -- cpp $i 2>/dev/null > tmp -- echo -n ", extracting backend calls" -- $EXTRACT tmp > tests/methods/$i -- rm tmp -- echo "." -- fi -- done -- for i in *_p.cpp; do -- cpp=`echo $i | sed 's,_p\.cpp$,\.cpp,'` -- if echo $cpp | grep -q "$IGNORE"; then -- printf "%-30s ignored.\n" "$i:" -- elif test "$i" != "*_p.cpp"; then -- printf "%-30s preprocessing" "$i:" -- cpp $i 2>/dev/null > tmp -- echo -n ", extracting backend calls" -- $EXTRACT tmp >> tests/methods/$cpp -- rm tmp -- echo "." -- fi -- done --fi -diff --git a/phonon/stream-thoughts b/phonon/stream-thoughts -deleted file mode 100644 -index 5fb6711..0000000 ---- a/phonon/stream-thoughts -+++ /dev/null -@@ -1,72 +0,0 @@ --there are two different kind of streams: 1. media files 2. live radio/television -- --The difference cannot reliably be determined by the backend so the application has to tell the --frontend. -- --This is the expected behaviour: --1. media files --============== --function | prev. state | action | new state -----------+-------------+----------------------------------------------------------------+---------- --ctor | | | Loading -----------+-------------+----------------------------------------------------------------+---------- --setUrl | Loading | refill buffers | Loading -- | Stopped | refill buffers | Loading -----------+-------------+----------------------------------------------------------------+---------- --play | Loading | continue buffering | Buffering -- | Stopped | start playing | Playing -- | Buffering | continue buffering | Buffering -- | Playing | | Playing -- | Paused | continue playback | Playing -----------+-------------+----------------------------------------------------------------+---------- --pause | Loading | | Loading -- | Stopped | | Stopped -- | Buffering | continue buffering | Paused -- | Playing | pause output and fill buffers to the max | Paused -- | Paused | | Paused -----------+-------------+----------------------------------------------------------------+---------- --stop | Loading | | Loading -- | Stopped | | Stopped -- | Buffering | restart buffering from the beginning of the file | Loading -- | Playing | stop output and refill buffers from the beginning of the file | Loading -- | Paused | restart buffering from the beginning of the file | Loading -- --events --function | prev. state | event | new state -----------+-------------+----------------------------------------------------------------+---------- -- | Buffering | when the buffers are filled start playing | Playing -- | Loading | when buffers are filled | Stopped -- -- -- --2. live stream --============== --function | prev. state | action | new state -----------+-------------+----------------------------------------------------------------+---------- --ctor | | | Loading -----------+-------------+----------------------------------------------------------------+---------- --setUrl | Loading | | Stopped -- | Stopped | | Stopped -----------+-------------+----------------------------------------------------------------+---------- --play | Loading | | Error -- | Stopped | start buffering | Buffering -- | Buffering | continue buffering | Buffering -- | Playing | | Playing -- | Paused | continue playback | Playing -----------+-------------+----------------------------------------------------------------+---------- --pause | Loading | | Error -- | Stopped | | Stopped -- | Buffering | continue buffering | Paused -- | Playing | pause output and fill (ring-)buffers to the max | Paused -- | Paused | | Paused -----------+-------------+----------------------------------------------------------------+---------- --stop | Loading | | Error -- | Stopped | | Stopped -- | Buffering | clear buffers | Stopped -- | Playing | stop output and clear buffers | Stopped -- | Paused | clear buffers | Stopped -- --events --function | prev. state | event | new state -----------+-------------+----------------------------------------------------------------+---------- -- | Buffering | when the buffers are filled start playing | Playing --- -1.8.3.1 - diff --git a/phonon-4.6.0-rootDir.patch b/phonon-4.6.0-rootDir.patch deleted file mode 100644 index 1dc627c..0000000 --- a/phonon-4.6.0-rootDir.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up phonon-4.6.0/PhononConfig.cmake.in.rootDir phonon-4.6.0/PhononConfig.cmake.in ---- phonon-4.6.0/PhononConfig.cmake.in.rootDir 2011-12-19 14:30:45.000000000 -0600 -+++ phonon-4.6.0/PhononConfig.cmake.in 2013-10-30 13:59:06.518252188 -0500 -@@ -4,7 +4,7 @@ - set(PHONON_VERSION "@PHONON_LIB_MAJOR_VERSION@.@PHONON_LIB_MINOR_VERSION@.@PHONON_LIB_PATCH_VERSION@") - - get_filename_component(currentDir ${CMAKE_CURRENT_LIST_FILE} PATH) # get the directory where I myself am --get_filename_component(rootDir ${currentDir}/@relInstallDir@ ABSOLUTE) # get the chosen install prefix -+get_filename_component(rootDir @CMAKE_INSTALL_PREFIX@ ABSOLUTE) # get the chosen install prefix - - set(PHONON_PULSESUPPORT @PHONON_PULSESUPPORT@) - set(PHONON_FOUND_EXPERIMENTAL @PHONON_BUILD_EXPERIMENTAL@) diff --git a/phonon-4.6.0-rpath.patch b/phonon-4.6.0-rpath.patch deleted file mode 100644 index 49eaef2..0000000 --- a/phonon-4.6.0-rpath.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff -up phonon-4.6.0/cmake/FindPhononInternal.cmake.rpath phonon-4.6.0/cmake/FindPhononInternal.cmake ---- phonon-4.6.0/cmake/FindPhononInternal.cmake.rpath 2011-12-19 14:30:45.000000000 -0600 -+++ phonon-4.6.0/cmake/FindPhononInternal.cmake 2012-05-20 15:56:48.031739000 -0500 -@@ -122,8 +122,13 @@ endif(APPLE) - # These two options below make it set the RPATH of the installed targets to all - # RPATH directories outside the current CMAKE_BINARY_DIR and also the library - # install directory. Alex -+list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}" _isSystemPlatformLibDir) -+list(FIND CMAKE_C_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}" _isSystemCLibDir) -+list(FIND CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "%{CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}" _isSystemCxxLibDir) -+if("${_isSystemPlatformLibDir}" STREQUAL "-1" AND "${_isSystemCLibDir}" STREQUAL "-1" AND "${_isSystemCxxLibDir}" STREQUAL "-1") - set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) --set(CMAKE_INSTALL_RPATH "${LIB_INSTALL_DIR}") -+set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}") -+endif("${_isSystemPlatformLibDir}" STREQUAL "-1" AND "${_isSystemCLibDir}" STREQUAL "-1" AND "${_isSystemCxxLibDir}" STREQUAL "-1") - - - # Uninstall Target diff --git a/phonon-4.7.0-rpath.patch b/phonon-4.7.0-rpath.patch new file mode 100644 index 0000000..7ec92fe --- /dev/null +++ b/phonon-4.7.0-rpath.patch @@ -0,0 +1,17 @@ +diff -up phonon-4.7.0/cmake/FindPhononInternal.cmake.rpath phonon-4.7.0/cmake/FindPhononInternal.cmake +--- phonon-4.7.0/cmake/FindPhononInternal.cmake.rpath 2013-11-04 10:49:06.000000000 -0600 ++++ phonon-4.7.0/cmake/FindPhononInternal.cmake 2013-11-04 19:29:26.793926526 -0600 +@@ -217,10 +217,10 @@ endif(APPLE) + # RPATH directories outside the current CMAKE_BINARY_DIR and also the library + # install directory. Alex + set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) +-list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${LIB_INSTALL_DIR}" _isSystemPlatformLibDir) +-list(FIND CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "${LIB_INSTALL_DIR}" _isSystemCxxLibDir) ++list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}" _isSystemPlatformLibDir) ++list(FIND CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}" _isSystemCxxLibDir) + if("${_isSystemPlatformLibDir}" STREQUAL "-1" AND "${_isSystemCxxLibDir}" STREQUAL "-1") +- set(CMAKE_INSTALL_RPATH "${LIB_INSTALL_DIR}") ++ set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}") + endif("${_isSystemPlatformLibDir}" STREQUAL "-1" AND "${_isSystemCxxLibDir}" STREQUAL "-1") + + diff --git a/phonon.spec b/phonon.spec index a1b6d9f..9ecc4f9 100644 --- a/phonon.spec +++ b/phonon.spec @@ -1,54 +1,41 @@ -# enabling for the build sanity, the results -# aren't all that useful, yet. -%define phonon_build_tests -DPHONON_BUILD_TESTS:BOOL=ON +# When bootstrapping new releases/archs, set this initially to avoid +# unresolvable dependency on phonon-backend (and friends) +%define bootstrap 1 -## split -experimental subpkgs -#define experimental 1 +%if 0%{?fedora} +# enable zeitgeist support +%define zeitgeist 1 +%endif Summary: Multimedia framework api Name: phonon -Version: 4.6.0 -Release: 9%{?dist} -Group: System Environment/Libraries +Version: 4.7.0 +Release: 1%{?dist} License: LGPLv2+ URL: http://phonon.kde.org/ %if 0%{?snap} -Source0: phonon-%{version}-%{snap}.tar.bz2 +Source0: phonon-%{version}-%{snap}.tar.xz %else -Source0: ftp://ftp.kde.org/pub/kde/stable/phonon/%{version}/src/phonon-%{version}.tar.xz +Source0: http://download.kde.org/stable/phonon/%{version}/phonon-%{version}.tar.xz %endif -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ## upstreamable patches -# https://git.reviewboard.kde.org/r/103423 -Patch52: phonon-4.6.0-rpath.patch -# fix rootDir (set hard at install-time and not rely on fragile relInstallDir -Patch53: phonon-4.6.0-rootDir.patch - -## Upstream patches -Patch0001: 0001-only-show-backend-changed-notification-once-per-app.patch -Patch0002: 0002-Change-a-foreach-to-Q_FOREACH-to-prevent-compile-err.patch -Patch0003: 0003-Upstream-fedora-patch-that-fixes-platform-plugin-loa.patch -Patch0004: 0004-doc-update-aliases-with-latest-one-from-apidox.patch -Patch0005: 0005-docs-remove-reference-to-xine-and-update-apidox-sett.patch -Patch0006: 0006-docs-exclude-phonon-backend-and-phonon-experimental.patch -Patch0007: 0007-remove-automoc4-dependency.patch -Patch0008: 0008-not-finding-qtdbus-is-really-a-proper-warning-not-a-.patch -Patch0009: 0009-fix-inverted-if.patch -Patch0010: 0010-manually-set-cmake_install_prefix-on-the-icon_instal.patch -Patch0011: 0011-remove-unnecessary-if-statement.patch -Patch0012: 0012-remove-testing-scripts-and-move-design-docs-into-pro.patch +Patch50: phonon-4.7.0-rpath.patch BuildRequires: automoc4 >= 0.9.86 -BuildRequires: cmake >= 2.6.0 +BuildRequires: cmake >= 2.6.9 BuildRequires: kde-filesystem BuildRequires: pkgconfig BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(libpulse-mainloop-glib) > 0.9.15 BuildRequires: pkgconfig(libxml-2.0) -BuildRequires: pkgconfig(QtGui) >= 4.7.2 -%if 0%{?fedora} +# Qt4 +BuildRequires: pkgconfig(QtDBus) pkgconfig(QtDesigner) pkgconfig(QtOpenGL) pkgconfig(QtDeclarative) +# Qt5 +BuildRequires: pkgconfig(Qt5DBus) pkgconfig(Qt5Designer) pkgconfig(Qt5OpenGL) pkgconfig(Qt5Widgets) +BuildRequires: pkgconfig(Qt5Declarative) +%if 0%{?zeitgeist} BuildRequires: pkgconfig(QZeitgeist) %endif BuildRequires: pkgconfig(xcb) @@ -56,87 +43,73 @@ BuildRequires: pkgconfig(xcb) %global pulseaudio_version %((pkg-config --modversion libpulse 2>/dev/null || echo 0.9.15) | cut -d- -f1) Requires: kde-filesystem -## Beware bootstrapping, have -Requires/+Requires this for step 0, then build at least one backend -Requires: phonon-backend%{?_isa} => 4.4 -#Provides: phonon-backend%{?_isa} = 4.4 +%if 0%{?bootstrap} +Provides: phonon-backend%{?_isa} = 4.7 +%else +Requires: phonon-backend%{?_isa} => 4.7 +%endif Requires: pulseaudio-libs%{?_isa} >= %{pulseaudio_version} -Requires: qt4%{?_isa} >= %{_qt4_version} +%{?_qt4_version:Requires: qt4%{?_isa} >= %{_qt4_version}} -%if ! 0%{?experimental} -#Obsoletes: phonon-experimental < %{version}-%{release} Provides: phonon-experimental = %{version}-%{release} -%endif %description %{summary}. %package devel Summary: Developer files for %{name} -Group: Development/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: qt4-devel -Requires: pkgconfig -%if ! 0%{?experimental} -#Obsoletes: phonon-experimental-devel < %{version}-%{release} Provides: phonon-experimental-devel = %{version}-%{release} -%endif %description devel %{summary}. -%if 0%{?experimental} -%package experimental -Summary: Experimental interfaces for %{name} -Group: System Environment/Libraries -Requires: %{name}%{?_isa} = %{version}-%{release} -%description experimental +%package qt5 +Summary: phonon for Qt5 +%{?_qt5_version:Requires: qt5-qtbase%{?_isa} >= %{_qt5_version}} +%if 0%{?bootstrap} +Provides: %{name}-qt5-backend%{?_isa} = 4.7 +%else +Requires: %{name}-qt5-backend%{?_isa} => 4.7 +%endif +%description qt5 %{summary}. -%package experimental-devel -Summary: Developer files for %{name}-experimental -Group: System Environment/Libraries -Requires: %{name}-experimental%{?_isa} = %{version}-%{release} -Requires: %{name}-devel%{?_isa} = %{version}-%{release} -%description experimental-devel + +%package qt5-devel +Summary: Developer files for %{name}-qt5 +Requires: %{name}-qt5%{?_isa} = %{version}-%{release} +%description qt5-devel %{summary}. -Includes experimental and unstable apis. -%endif %prep %setup -q -%patch52 -p1 -b .rpath -%patch53 -p1 -b .rootDir - -%patch0001 -p1 -b .0001 -## hrm, seems already included skip -#patch0002 -p1 -b .0002 -%patch0003 -p1 -b .0003 -%patch0004 -p1 -b .0004 -%patch0005 -p1 -b .0005 -%patch0006 -p1 -b .0006 -%patch0007 -p1 -b .0007 -%patch0008 -p1 -b .0008 -%patch0009 -p1 -b .0009 -%patch0010 -p1 -b .0010 -%patch0011 -p1 -b .0011 -%patch0012 -p1 -b .0012 +%patch50 -p1 -b .rpath %build mkdir -p %{_target_platform} pushd %{_target_platform} %{cmake} \ - %{?phonon_build_tests} \ -DPHONON_INSTALL_QT_EXTENSIONS_INTO_SYSTEM_QT:BOOL=ON \ .. popd make %{?_smp_mflags} -C %{_target_platform} +mkdir -p %{_target_platform}-Qt5 +pushd %{_target_platform}-Qt5 +%{cmake} \ + -DPHONON_BUILD_PHONON4QT5:BOOL=ON \ + -DPHONON_INSTALL_QT_EXTENSIONS_INTO_SYSTEM_QT:BOOL=ON \ + .. +popd + +make %{?_smp_mflags} -C %{_target_platform}-Qt5 -%install -rm -rf %{buildroot} +%install +make install/fast DESTDIR=%{buildroot} -C %{_target_platform}-Qt5 make install/fast DESTDIR=%{buildroot} -C %{_target_platform} # symlink for qt/phonon compatibility @@ -150,21 +123,13 @@ mkdir -p %{buildroot}%{_kde4_datadir}/kde4/services/phononbackends/ %check export PKG_CONFIG_PATH=%{buildroot}%{_datadir}/pkgconfig:%{buildroot}%{_libdir}/pkgconfig test "$(pkg-config --modversion phonon)" = "%{version}" -%if 0%{?phonon_build_tests:1} -# many of these fail currently (4/10) -make test -C %{_target_platform} ||: -%endif - - -%clean -rm -rf %{buildroot} +test "$(pkg-config --modversion phonon4qt5)" = "%{version}" %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files -%defattr(-,root,root,-) %doc COPYING.LIB %{_libdir}/libphonon.so.4* %{_datadir}/dbus-1/interfaces/org.kde.Phonon.AudioOutput.xml @@ -178,12 +143,10 @@ rm -rf %{buildroot} %postun experimental -p /sbin/ldconfig %files experimental -%defattr(-,root,root,-) %endif %{_libdir}/libphononexperimental.so.4* %files devel -%defattr(-,root,root,-) %{_datadir}/phonon/buildsystem/ %dir %{_libdir}/cmake/ %{_libdir}/cmake/phonon/ @@ -198,14 +161,37 @@ rm -rf %{buildroot} %exclude %{_includedir}/KDE/Phonon/Experimental/ %exclude %{_includedir}/phonon/experimental/ %files experimental-devel -%defattr(-,root,root,-) -%endif %{_includedir}/KDE/Phonon/Experimental/ %{_includedir}/phonon/experimental/ +%endif %{_libdir}/libphononexperimental.so +%post qt5 -p /sbin/ldconfig +%postun qt5 -p /sbin/ldconfig + +%files qt5 +%doc COPYING.LIB +%dir %{_datadir}/phonon4qt5 +%{_libdir}/libphonon4qt5.so.4* +%{_libdir}/libphonon4qt5experimental.so.4* +%{_qt5_plugindir}/designer/libphononwidgets.so +%{_datadir}/dbus-1/interfaces/org.kde.Phonon4Qt5.AudioOutput.xml + +%files qt5-devel +%{_datadir}/phonon4qt5/buildsystem/ +%dir %{_libdir}/cmake/ +%{_libdir}/cmake/phonon4qt5/ +%{_includedir}/phonon4qt5/ +%{_libdir}/libphonon4qt5.so +%{_libdir}/libphonon4qt5experimental.so +%{_libdir}/pkgconfig/phonon4qt5.pc +%{_qt5_archdatadir}/mkspecs/modules/qt_phonon4qt5.pri + %changelog +* Tue Nov 05 2013 Rex Dieter 4.7.0-1 +- phonon-4.7.0, Qt5 support + * Wed Oct 30 2013 Rex Dieter - 4.6.0-9 - pull in upstream fixes - PhononConfig.cmake: fix/workaround regression'y cmake behavior diff --git a/sources b/sources index d77f38c..6136728 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -bbe0c1c62ed14c31479c4c1a6cf1e173 phonon-4.6.0.tar.xz +f5c1a847ac8ae73e67bf762199978278 phonon-4.7.0.tar.xz