mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
x11-misc/sddm: merge remote-tracking branch 'a17r/sddm'
Add upstream patch for consolekit2 support Gentoo-Bug: 511484
This commit is contained in:
@@ -58,6 +58,10 @@ sys-devel/dragonegg
|
||||
=sys-devel/llvm-3.7.0*
|
||||
=sys-devel/clang-3.7.0*
|
||||
|
||||
# Andreas Sturmlechner <andreas.sturmlechner@gmail.com> (24 Aug 2015)
|
||||
# Masked until >=sys-auth/consolekit-0.9.2 gets unmasked
|
||||
=x11-misc/sddm-0.11.0-r2
|
||||
|
||||
# Matt Turner <mattst88@gentoo.org> (22 Aug 2015)
|
||||
# nouveau has been in the kernel since 2.6.33
|
||||
# Masked for removal in 30 days.
|
||||
|
||||
91
x11-misc/sddm/files/sddm-0.11.0-consolekit2.patch
Normal file
91
x11-misc/sddm/files/sddm-0.11.0-consolekit2.patch
Normal file
@@ -0,0 +1,91 @@
|
||||
From 7a8024639ee3ae7e128a9dc3efce90a07b4d316c Mon Sep 17 00:00:00 2001
|
||||
From: Eric Koegel <eric.koegel@gmail.com>
|
||||
Date: Mon, 6 Jul 2015 11:16:38 +0300
|
||||
Subject: [PATCH] ConsoleKit2 support for system actions
|
||||
|
||||
This adds support for calling ConsoleKit2's DBUS API for shutdown,
|
||||
reboot, suspend, and hibernate. It does so by using the exact same
|
||||
interface as login1, making it a shared seat manager backend.
|
||||
---
|
||||
INSTALL | 4 ++--
|
||||
src/daemon/PowerManager.cpp | 26 +++++++++++++++++---------
|
||||
2 files changed, 19 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/INSTALL b/INSTALL
|
||||
index 77b6a8b..5d16710 100644
|
||||
--- a/INSTALL
|
||||
+++ b/INSTALL
|
||||
@@ -30,8 +30,8 @@ its home set to `/var/lib/sddm` by default.
|
||||
SDDM depends on PAM for authorization and XCB to communicate with the X server.
|
||||
Apart from other things, it also depends on Qt for the user interface and event
|
||||
loop management.
|
||||
-SDDM can optionally make use of logind (the systemd login manager API) or
|
||||
-upower to enable support for suspend, hibernate etc.
|
||||
+SDDM can optionally make use of logind (the systemd login manager API), or
|
||||
+ConsoleKit2, or upower to enable support for suspend, hibernate etc.
|
||||
In order to build the man pages, you will need `rst2man` installed. It is
|
||||
provided by the python `docutils` package
|
||||
|
||||
diff --git a/src/daemon/PowerManager.cpp b/src/daemon/PowerManager.cpp
|
||||
index 3a4d25d..6329032 100644
|
||||
--- a/src/daemon/PowerManager.cpp
|
||||
+++ b/src/daemon/PowerManager.cpp
|
||||
@@ -59,8 +59,8 @@ namespace SDDM {
|
||||
|
||||
class UPowerBackend : public PowerManagerBackend {
|
||||
public:
|
||||
- UPowerBackend() {
|
||||
- m_interface = new QDBusInterface(UPOWER_SERVICE, UPOWER_PATH, UPOWER_OBJECT, QDBusConnection::systemBus());
|
||||
+ UPowerBackend(const QString & service, const QString & path, const QString & interface) {
|
||||
+ m_interface = new QDBusInterface(service, path, interface, QDBusConnection::systemBus());
|
||||
}
|
||||
|
||||
~UPowerBackend() {
|
||||
@@ -110,20 +110,24 @@ namespace SDDM {
|
||||
};
|
||||
|
||||
/**********************************************/
|
||||
- /* LOGIN1 BACKEND */
|
||||
+ /* LOGIN1 && ConsoleKit2 BACKEND */
|
||||
/**********************************************/
|
||||
|
||||
#define LOGIN1_SERVICE QStringLiteral("org.freedesktop.login1")
|
||||
#define LOGIN1_PATH QStringLiteral("/org/freedesktop/login1")
|
||||
#define LOGIN1_OBJECT QStringLiteral("org.freedesktop.login1.Manager")
|
||||
|
||||
- class Login1Backend : public PowerManagerBackend {
|
||||
+#define CK2_SERVICE QStringLiteral("org.freedesktop.ConsoleKit")
|
||||
+#define CK2_PATH QStringLiteral("/org/freedesktop/ConsoleKit/Manager")
|
||||
+#define CK2_OBJECT QStringLiteral("org.freedesktop.ConsoleKit.Manager")
|
||||
+
|
||||
+ class SeatManagerBackend : public PowerManagerBackend {
|
||||
public:
|
||||
- Login1Backend() {
|
||||
- m_interface = new QDBusInterface(LOGIN1_SERVICE, LOGIN1_PATH, LOGIN1_OBJECT, QDBusConnection::systemBus());
|
||||
+ SeatManagerBackend(const QString & service, const QString & path, const QString & interface) {
|
||||
+ m_interface = new QDBusInterface(service, path, interface, QDBusConnection::systemBus());
|
||||
}
|
||||
|
||||
- ~Login1Backend() {
|
||||
+ ~SeatManagerBackend() {
|
||||
delete m_interface;
|
||||
}
|
||||
|
||||
@@ -194,11 +198,15 @@ namespace SDDM {
|
||||
|
||||
// check if login1 interface exists
|
||||
if (interface->isServiceRegistered(LOGIN1_SERVICE))
|
||||
- m_backends << new Login1Backend();
|
||||
+ m_backends << new SeatManagerBackend(LOGIN1_SERVICE, LOGIN1_PATH, LOGIN1_OBJECT);
|
||||
+
|
||||
+ // check if ConsoleKit2 interface exists
|
||||
+ if (interface->isServiceRegistered(CK2_SERVICE))
|
||||
+ m_backends << new SeatManagerBackend(CK2_SERVICE, CK2_PATH, CK2_OBJECT);
|
||||
|
||||
// check if upower interface exists
|
||||
if (interface->isServiceRegistered(UPOWER_SERVICE))
|
||||
- m_backends << new UPowerBackend();
|
||||
+ m_backends << new UPowerBackend(UPOWER_SERVICE, UPOWER_PATH, UPOWER_OBJECT);
|
||||
}
|
||||
|
||||
PowerManager::~PowerManager() {
|
||||
11
x11-misc/sddm/files/sddm-0.11.0-upower.patch
Normal file
11
x11-misc/sddm/files/sddm-0.11.0-upower.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- a/src/daemon/PowerManager.cpp 2015-08-17 00:52:12.786176023 +0200
|
||||
+++ b/src/daemon/PowerManager.cpp 2015-08-17 00:53:30.259207476 +0200
|
||||
@@ -209,7 +209,7 @@
|
||||
#endif // HAVE_CONSOLEKIT2
|
||||
|
||||
// check if upower interface exists
|
||||
- if (interface->isServiceRegistered(UPOWER_SERVICE))
|
||||
+// if (interface->isServiceRegistered(UPOWER_SERVICE))
|
||||
m_backends << new UPowerBackend(UPOWER_SERVICE, UPOWER_PATH, UPOWER_OBJECT);
|
||||
}
|
||||
|
||||
76
x11-misc/sddm/sddm-0.11.0-r2.ebuild
Normal file
76
x11-misc/sddm/sddm-0.11.0-r2.ebuild
Normal file
@@ -0,0 +1,76 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Id$
|
||||
|
||||
EAPI=5
|
||||
inherit cmake-utils toolchain-funcs user
|
||||
|
||||
DESCRIPTION="Simple Desktop Display Manager"
|
||||
HOMEPAGE="https://github.com/sddm/sddm"
|
||||
SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~arm ~x86"
|
||||
|
||||
LICENSE="GPL-2+ MIT CC-BY-3.0 public-domain"
|
||||
SLOT="0"
|
||||
IUSE="consolekit systemd +upower"
|
||||
REQUIRED_USE="?? ( upower systemd )"
|
||||
|
||||
RDEPEND="
|
||||
dev-qt/qtcore:5
|
||||
dev-qt/qtdbus:5
|
||||
dev-qt/qtdeclarative:5
|
||||
dev-qt/linguist-tools:5
|
||||
dev-qt/qttest:5
|
||||
sys-libs/pam
|
||||
>=x11-base/xorg-server-1.15.1
|
||||
x11-libs/libxcb[xkb(-)]
|
||||
consolekit? ( >=sys-auth/consolekit-0.9.4 )
|
||||
systemd? ( sys-apps/systemd:= )
|
||||
upower? ( || ( sys-power/upower sys-power/upower-pm-utils ) )"
|
||||
DEPEND="${RDEPEND}
|
||||
>=sys-devel/gcc-4.7.0
|
||||
virtual/pkgconfig"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${P}-consolekit2.patch"
|
||||
"${FILESDIR}/${P}-dbus-config.patch"
|
||||
)
|
||||
|
||||
pkg_pretend() {
|
||||
if [[ ${MERGE_TYPE} != binary && $(tc-getCC) == *gcc* ]]; then
|
||||
if [[ $(gcc-major-version) -lt 4 || $(gcc-major-version) == 4 && $(gcc-minor-version) -lt 7 ]] ; then
|
||||
die 'The active compiler needs to be gcc 4.7 (or newer)'
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
enewgroup ${PN}
|
||||
enewuser ${PN} -1 -1 /var/lib/sddm ${PN}
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
cmake-utils_src_prepare
|
||||
|
||||
use consolekit && epatch "${FILESDIR}/${PN}-0.10.0-consolekit.patch"
|
||||
use upower && epatch "${FILESDIR}/${P}-upower.patch"
|
||||
|
||||
# respect user's cflags
|
||||
sed -e 's|-Wall -march=native||' \
|
||||
-e 's|-O2||' \
|
||||
-i CMakeLists.txt || die 'sed failed'
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
$(cmake-utils_use_no systemd SYSTEMD)
|
||||
-DDBUS_CONFIG_FILENAME:STRING="org.freedesktop.sddm.conf"
|
||||
)
|
||||
cmake-utils_src_configure
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
ewarn "Add the sddm user manually to the video group"
|
||||
ewarn "if you experience flickering or other rendering issues of sddm-greeter"
|
||||
ewarn "see https://github.com/gentoo/qt/pull/52"
|
||||
}
|
||||
Reference in New Issue
Block a user