mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-05 12:38:09 -07:00
kde-plasma/plasma-pa: Don't depend on gconf anymore.
Done through backported upstream patch. Bug: https://bugs.gentoo.org/658660 Package-Manager: Portage-2.3.43, Repoman-2.3.10
This commit is contained in:
280
kde-plasma/plasma-pa/files/plasma-pa-5.13.3-optional_gconf.patch
Normal file
280
kde-plasma/plasma-pa/files/plasma-pa-5.13.3-optional_gconf.patch
Normal file
@@ -0,0 +1,280 @@
|
||||
From c9fae1fb3f8e8a820fd480ce227d7fabf87bd045 Mon Sep 17 00:00:00 2001
|
||||
From: David Rosca <nowrep@gmail.com>
|
||||
Date: Tue, 26 Jun 2018 10:56:04 +0200
|
||||
Subject: [PATCH] Make GConf optional dependency
|
||||
|
||||
When building without GConf, Advanded Output Configuration will be hidden in KCM.
|
||||
|
||||
BUG: 386665
|
||||
FIXED-IN: 5.13.4
|
||||
|
||||
Differential Revision: https://phabricator.kde.org/D13734
|
||||
---
|
||||
CMakeLists.txt | 9 ++++--
|
||||
config.h.cmake | 3 ++
|
||||
src/CMakeLists.txt | 18 ++++++++----
|
||||
src/kcm/package/contents/ui/Advanced.qml | 5 +++-
|
||||
src/modulemanager.cpp | 47 ++++++++++++++++++++++++++------
|
||||
src/modulemanager.h | 3 ++
|
||||
6 files changed, 68 insertions(+), 17 deletions(-)
|
||||
create mode 100644 config.h.cmake
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index e494ced..2505696 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -19,8 +19,11 @@ include(KDECompilerSettings NO_POLICY_SCOPE)
|
||||
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(PulseAudio 5.0.0 REQUIRED)
|
||||
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)
|
||||
diff --git a/config.h.cmake b/config.h.cmake
|
||||
new file mode 100644
|
||||
index 0000000..1643e50
|
||||
--- /dev/null
|
||||
+++ b/config.h.cmake
|
||||
@@ -0,0 +1,3 @@
|
||||
+/* config.h. Generated by cmake from config.h.cmake */
|
||||
+
|
||||
+#cmakedefine01 HAVE_GCONF
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index e6cddfc..09d108c 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/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 @@ set(cpp_SRCS
|
||||
sink.cpp
|
||||
sinkinput.cpp
|
||||
modulemanager.cpp
|
||||
- gconfitem.cpp
|
||||
source.cpp
|
||||
sourceoutput.cpp
|
||||
stream.cpp
|
||||
@@ -38,6 +36,11 @@ set(qml_SRCS
|
||||
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 @@ target_link_libraries(plasma-volume-declarative
|
||||
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})
|
||||
diff --git a/src/kcm/package/contents/ui/Advanced.qml b/src/kcm/package/contents/ui/Advanced.qml
|
||||
index b305cf1..0cd9eb9 100644
|
||||
--- a/src/kcm/package/contents/ui/Advanced.qml
|
||||
+++ b/src/kcm/package/contents/ui/Advanced.qml
|
||||
@@ -56,6 +56,7 @@ ScrollView {
|
||||
Header {
|
||||
Layout.fillWidth: true
|
||||
text: i18n("Advanced Output Configuration")
|
||||
+ visible: moduleManager.settingsSupported
|
||||
}
|
||||
|
||||
ModuleManager {
|
||||
@@ -71,6 +72,7 @@ ScrollView {
|
||||
checked: moduleManager.combineSinks
|
||||
onCheckedChanged: moduleManager.combineSinks = checked;
|
||||
enabled: moduleManager.loadedModules.indexOf("module-gconf") != -1
|
||||
+ visible: moduleManager.settingsSupported
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
@@ -81,6 +83,7 @@ ScrollView {
|
||||
checked: moduleManager.switchOnConnect
|
||||
onCheckedChanged: moduleManager.switchOnConnect = checked;
|
||||
enabled: moduleManager.loadedModules.indexOf("module-gconf") != -1
|
||||
+ visible: moduleManager.settingsSupported
|
||||
}
|
||||
|
||||
Label {
|
||||
@@ -88,7 +91,7 @@ ScrollView {
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
diff --git a/src/modulemanager.cpp b/src/modulemanager.cpp
|
||||
index 635adc8..5245ac5 100644
|
||||
--- a/src/modulemanager.cpp
|
||||
+++ b/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 @@ void GConfModule::setEnabled(bool enabled, const QVariant &args)
|
||||
}
|
||||
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 @@ ModuleManager::~ModuleManager()
|
||||
{
|
||||
};
|
||||
|
||||
+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 @@ bool ModuleManager::switchOnConnect() const
|
||||
//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 @@ void ModuleManager::updateLoadedModules()
|
||||
}
|
||||
|
||||
}
|
||||
-
|
||||
-#include "modulemanager.moc"
|
||||
diff --git a/src/modulemanager.h b/src/modulemanager.h
|
||||
index b8fcd0b..8108fe0 100644
|
||||
--- a/src/modulemanager.h
|
||||
+++ b/src/modulemanager.h
|
||||
@@ -38,12 +38,15 @@ class GConfModule;
|
||||
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;
|
||||
32
kde-plasma/plasma-pa/plasma-pa-5.13.3-r1.ebuild
Normal file
32
kde-plasma/plasma-pa/plasma-pa-5.13.3-r1.ebuild
Normal file
@@ -0,0 +1,32 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
KDE_HANDBOOK="forceoptional"
|
||||
inherit kde5
|
||||
|
||||
DESCRIPTION="Plasma applet for audio volume management using PulseAudio"
|
||||
KEYWORDS="~amd64 ~arm ~x86"
|
||||
IUSE=""
|
||||
|
||||
DEPEND="
|
||||
$(add_frameworks_dep kcoreaddons)
|
||||
$(add_frameworks_dep kdeclarative)
|
||||
$(add_frameworks_dep kglobalaccel)
|
||||
$(add_frameworks_dep ki18n)
|
||||
$(add_frameworks_dep plasma)
|
||||
$(add_qt_dep qtdbus)
|
||||
$(add_qt_dep qtdeclarative)
|
||||
$(add_qt_dep qtgui)
|
||||
$(add_qt_dep qtwidgets)
|
||||
media-libs/libcanberra
|
||||
media-sound/pulseaudio
|
||||
"
|
||||
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${P}-wrong-port-avail.patch"
|
||||
"${FILESDIR}/${P}-optional_gconf.patch"
|
||||
)
|
||||
Reference in New Issue
Block a user