author | Antonio Rojas
<arojas@archlinux.org> 2018-06-26 13:47:35 UTC |
committer | Antonio Rojas
<arojas@archlinux.org> 2018-06-26 13:47:35 UTC |
parent | a6dd6f18e85d6974b39e4ff0c0f64e72f52e27c4 |
PKGBUILD | +11 | -6 |
plasma-pa-no-gconf.patch | +258 | -0 |
diff --git a/PKGBUILD b/PKGBUILD index 600b632..7303947 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,18 +1,20 @@ # Maintainer:Antonio Rojas <arojas@archlinux.org> pkgname=plasma-pa -pkgver=5.13.1 -pkgrel=3 +pkgver=5.13.2 +pkgrel=1 pkgdesc='Plasma applet for audio volume management using PulseAudio' arch=(x86_64) url='https://www.kde.org/workspaces/plasmadesktop/' license=(LGPL) -depends=(plasma-workspace gconf libcanberra-pulse pulseaudio) +depends=(plasma-workspace libcanberra-pulse pulseaudio) makedepends=(extra-cmake-modules kdoctools) groups=(plasma) -source=("https://download.kde.org/stable/plasma/$pkgver/$pkgname-$pkgver.tar.xz"{,.sig}) -sha256sums=('871f02eff33389851581fa29e9ad94de3764356ecfc755a1bc471f2c60eeb362' - 'SKIP') +source=("https://download.kde.org/stable/plasma/$pkgver/$pkgname-$pkgver.tar.xz"{,.sig} + plasma-pa-no-gconf.patch) +sha256sums=('09efe416a0271dc1bc653d496b3ddfe6a6b6931e209a1e48ede7afc1874bc56a' + 'SKIP' + 'b649972ba07f887b1a2a473be16e582b75dc0815211e212c0a912626891b684a') validpgpkeys=('2D1D5B0588357787DE9EE225EC94D18F7F05997E' # Jonathan Riddell '0AAC775BB6437A8D9AF7A3ACFE0784117FBCE11D' # Bhushan Shah <bshah@kde.org> 'D07BD8662C56CB291B316EB2F5675605C74E02CF' # David Edmundson @@ -20,6 +22,9 @@ validpgpkeys=('2D1D5B0588357787DE9EE225EC94D18F7F05997E' # Jonathan Riddell prepare() { mkdir -p build + + cd $pkgname-$pkgver + patch -p0 -i ../plasma-pa-no-gconf.patch # Remove gconf dependency } build() { diff --git a/plasma-pa-no-gconf.patch b/plasma-pa-no-gconf.patch new file mode 100644 index 0000000..a6f9082 --- /dev/null +++ b/plasma-pa-no-gconf.patch @@ -0,0 +1,258 @@ +Index: CMakeLists.txt +=================================================================== +--- CMakeLists.txt ++++ CMakeLists.txt +@@ -19,8 +19,11 @@ + include(ECMOptionalAddSubdirectory) + + include(FindPkgConfig) +-pkg_check_modules(GCONF REQUIRED gconf-2.0) +-pkg_check_modules(GOBJECT REQUIRED gobject-2.0) ++pkg_check_modules(GCONF gconf-2.0) ++pkg_check_modules(GOBJECT gobject-2.0) ++if (GCONF_FOUND AND GOBJECT_FOUND) ++ set(HAVE_GCONF TRUE) ++endif() + + find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS + Core +@@ -41,6 +44,8 @@ + find_package(Canberra REQUIRED) + find_package(GLIB2 REQUIRED) + ++configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h) ++ + add_subdirectory(applet) + add_subdirectory(src) + add_subdirectory(data) +Index: config.h.cmake +=================================================================== +--- /dev/null ++++ config.h.cmake +@@ -0,0 +1,3 @@ ++/* config.h. Generated by cmake from config.h.cmake */ ++ ++#cmakedefine01 HAVE_GCONF +Index: src/CMakeLists.txt +=================================================================== +--- src/CMakeLists.txt ++++ src/CMakeLists.txt +@@ -1,5 +1,4 @@ +-include_directories(${PULSEAUDIO_INCLUDE_DIR} ${GLIB2_INCLUDE_DIR} ${GCONF_INCLUDE_DIRS} +- ${GOBJECT_INCLUDE_DIRS}) ++include_directories(${PULSEAUDIO_INCLUDE_DIR} ${GLIB2_INCLUDE_DIR}) + + set(cpp_SRCS + card.cpp +@@ -15,7 +14,6 @@ + sink.cpp + sinkinput.cpp + modulemanager.cpp +- gconfitem.cpp + source.cpp + sourceoutput.cpp + stream.cpp +@@ -38,6 +36,11 @@ + set_property(SOURCE qml/dbus/osdService.xml APPEND PROPERTY CLASSNAME OsdServiceInterface) + qt5_add_dbus_interface(dbus_SRCS qml/dbus/osdService.xml osdservice) + ++if (HAVE_GCONF) ++ include_directories(${GCONF_INCLUDE_DIRS} ${GOBJECT_INCLUDE_DIRS}) ++ set(cpp_SRCS ${cpp_SRCS} gconfitem.cpp) ++endif() ++ + add_library(plasma-volume-declarative SHARED ${dbus_SRCS} ${cpp_SRCS} ${qml_SRCS}) + target_link_libraries(plasma-volume-declarative + Qt5::Core +@@ -47,11 +50,16 @@ + KF5::GlobalAccel + ${PULSEAUDIO_LIBRARY} + ${PULSEAUDIO_MAINLOOP_LIBRARY} +- ${GCONF_LDFLAGS} +- ${GOBJECT_LDFLAGS} + ${CANBERRA_LIBRARIES} + ) + ++if (HAVE_GCONF) ++ target_link_libraries(plasma-volume-declarative ++ ${GCONF_LDFLAGS} ++ ${GOBJECT_LDFLAGS} ++ ) ++endif() ++ + set(PRIVATE_QML_INSTALL_DIR ${QML_INSTALL_DIR}/org/kde/plasma/private/volume) + install(TARGETS plasma-volume-declarative DESTINATION ${PRIVATE_QML_INSTALL_DIR}) + install(FILES ${qml_SRCS} DESTINATION ${PRIVATE_QML_INSTALL_DIR}) +Index: src/kcm/package/contents/ui/Advanced.qml +=================================================================== +--- src/kcm/package/contents/ui/Advanced.qml ++++ src/kcm/package/contents/ui/Advanced.qml +@@ -56,6 +56,7 @@ + Header { + Layout.fillWidth: true + text: i18n("Advanced Output Configuration") ++ visible: moduleManager.settingsSupported + } + + ModuleManager { +@@ -71,6 +72,7 @@ + checked: moduleManager.combineSinks + onCheckedChanged: moduleManager.combineSinks = checked; + enabled: moduleManager.loadedModules.indexOf("module-gconf") != -1 ++ visible: moduleManager.settingsSupported + } + + CheckBox { +@@ -81,14 +83,15 @@ + checked: moduleManager.switchOnConnect + onCheckedChanged: moduleManager.switchOnConnect = checked; + enabled: moduleManager.loadedModules.indexOf("module-gconf") != -1 ++ visible: moduleManager.settingsSupported + } + + Label { + Layout.alignment: Qt.AlignHCenter + enabled: false + font.italic: true + text: i18n("Requires 'module-gconf' PulseAudio module") +- visible: moduleManager.loadedModules.indexOf("module-gconf") == -1 ++ visible: moduleManager.settingsSupported && moduleManager.loadedModules.indexOf("module-gconf") == -1 + } + } + } +Index: src/modulemanager.h +=================================================================== +--- src/modulemanager.h ++++ src/modulemanager.h +@@ -38,12 +38,15 @@ + class ModuleManager : public QObject + { + Q_OBJECT ++ Q_PROPERTY(bool settingsSupported READ settingsSupported CONSTANT) + Q_PROPERTY(bool combineSinks READ combineSinks WRITE setCombineSinks NOTIFY combineSinksChanged) + Q_PROPERTY(bool switchOnConnect READ switchOnConnect WRITE setSwitchOnConnect NOTIFY switchOnConnectChanged) + Q_PROPERTY(QStringList loadedModules READ loadedModules NOTIFY loadedModulesChanged) + public: + ModuleManager(QObject *parent = nullptr); + ~ModuleManager(); ++ ++ bool settingsSupported() const; + bool combineSinks() const; + void setCombineSinks(bool combineSinks); + bool switchOnConnect() const; +Index: src/modulemanager.cpp +=================================================================== +--- src/modulemanager.cpp ++++ src/modulemanager.cpp +@@ -21,20 +21,22 @@ + + #include "modulemanager.h" + #include "module.h" ++#include "../config.h" + ++#if HAVE_GCONF ++#include "gconfitem.h" + #define PA_GCONF_ROOT "/system/pulseaudio" + #define PA_GCONF_PATH_MODULES PA_GCONF_ROOT"/modules" +- +-#include "gconfitem.h" ++#endif + + #include <QTimer> + + namespace QPulseAudio + { + ++#if HAVE_GCONF + class GConfModule : public GConfItem + { +- Q_OBJECT + public: + GConfModule(const QString &configName, const QString &moduleName, QObject *parent); + bool isEnabled() const; +@@ -67,17 +69,21 @@ + } + set(QStringLiteral("locked"), false); + } ++#endif + + + ModuleManager::ModuleManager(QObject *parent) : +- QObject(parent), +- m_combineSinks(new GConfModule(QStringLiteral("combine"), QStringLiteral("module-combine"), this)), +- m_switchOnConnect(new GConfModule(QStringLiteral("switch-on-connect"), QStringLiteral("module-switch-on-connect"), this)), +- m_deviceManager(new GConfModule(QStringLiteral("device-manager"), QStringLiteral("module-device-manager"), this)) ++ QObject(parent) + { ++#if HAVE_GCONF ++ m_combineSinks = new GConfModule(QStringLiteral("combine"), QStringLiteral("module-combine"), this); ++ m_switchOnConnect = new GConfModule(QStringLiteral("switch-on-connect"), QStringLiteral("module-switch-on-connect"), this); ++ m_deviceManager = new GConfModule(QStringLiteral("device-manager"), QStringLiteral("module-device-manager"), this); ++ + connect(m_combineSinks, &GConfItem::subtreeChanged, this, &ModuleManager::combineSinksChanged); + connect(m_switchOnConnect, &GConfItem::subtreeChanged, this, &ModuleManager::switchOnConnectChanged); + connect(m_deviceManager, &GConfItem::subtreeChanged, this, &ModuleManager::switchOnConnectChanged); ++#endif + + QTimer *updateModulesTimer = new QTimer(this); + updateModulesTimer->setInterval(500); +@@ -92,14 +98,31 @@ + { + }; + ++bool ModuleManager::settingsSupported() const ++{ ++#if HAVE_GCONF ++ return true; ++#else ++ return false; ++#endif ++} ++ + bool ModuleManager::combineSinks() const + { ++#if HAVE_GCONF + return m_combineSinks->isEnabled(); ++#else ++ return false; ++#endif + } + + void ModuleManager::setCombineSinks(bool combineSinks) + { ++#if HAVE_GCONF + m_combineSinks->setEnabled(combineSinks); ++#else ++ Q_UNUSED(combineSinks) ++#endif + } + + bool ModuleManager::switchOnConnect() const +@@ -109,13 +132,21 @@ + //Note on the first run m_deviceManager will appear to be disabled even though it's actually running + //because there is no gconf entry, however m_switchOnConnect will only exist if set by Plasma PA + //hence only check this entry ++#if HAVE_GCONF + return m_switchOnConnect->isEnabled() ; ++#else ++ return false; ++#endif + } + + void ModuleManager::setSwitchOnConnect(bool switchOnConnect) + { ++#if HAVE_GCONF + m_deviceManager->setEnabled(!switchOnConnect); + m_switchOnConnect->setEnabled(switchOnConnect); ++#else ++ Q_UNUSED(switchOnConnect) ++#endif + } + + QStringList ModuleManager::loadedModules() const +@@ -134,5 +165,3 @@ + } + + } +- +-#include "modulemanager.moc"