x11-misc/sddm: Add pam_kwallet(5).so entries, EAPI=6
authorAndreas Sturmlechner <andreas.sturmlechner@gmail.com>
Sun, 21 Feb 2016 19:27:24 +0000 (20:27 +0100)
committerMichael Palimaka <kensington@gentoo.org>
Wed, 2 Mar 2016 19:23:18 +0000 (06:23 +1100)
Additional pam entries enable auto-unlock of respective kwallets if
kde-apps/kwalletd-pam:4 and/or kde-plasma/kwallet-pam:5 are installed.

Drop unused patch.

Package-Manager: portage-2.2.27

x11-misc/sddm/files/sddm-0.11.0-consolekit.patch
x11-misc/sddm/files/sddm-0.12.0-CVE-2015-0856.patch [deleted file]
x11-misc/sddm/files/sddm-0.12.0-respect-user-flags.patch
x11-misc/sddm/files/sddm-0.13.0-pam_kwallet.patch [new file with mode: 0644]
x11-misc/sddm/sddm-0.13.0-r2.ebuild [new file with mode: 0644]

index 4871bee0f06eca0343da3ed1c865464b73004620..0e2a7f8d7cb4fb54b993a8e5102c76e0cca094fd 100644 (file)
@@ -1,5 +1,5 @@
---- data/scripts/Xsession.old  2015-01-08 12:58:24.448241484 +0100
-+++ data/scripts/Xsession      2015-01-08 13:00:07.794244087 +0100
+--- a/data/scripts/Xsession    2015-01-08 12:58:24.448241484 +0100
++++ b/data/scripts/Xsession    2015-01-08 13:00:07.794244087 +0100
 @@ -93,7 +93,7 @@
      exec xterm -geometry 80x24-0-0
      ;;
diff --git a/x11-misc/sddm/files/sddm-0.12.0-CVE-2015-0856.patch b/x11-misc/sddm/files/sddm-0.12.0-CVE-2015-0856.patch
deleted file mode 100644 (file)
index 7ae6773..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-commit 4cfed6b0a625593fb43876f04badc4dd99799d86
-Author: David Edmundson <kde@davidedmundson.co.uk>
-Date:   Wed Oct 14 00:08:59 2015 +0100
-
-    Disable greeters from loading KDE's debug hander
-    
-    Some themes may use KDE components which will automatically load KDE's
-    crash handler.
-    
-    If the greeter were to then somehow crash, that would leave a crash
-    handler allowing other actions, albeit as the locked down SDDM user.
-    
-    Only SDDM users using the breeze theme from plasma-workspace are
-    affected. Safest and simplest fix is to handle this inside SDDM
-    disabling kcrash via an environment variable for all future themes that
-    may use these libraries.
-    
-    CVE-2015-0856
-
-diff --git a/src/daemon/Greeter.cpp b/src/daemon/Greeter.cpp
-index 68c4dc3..8c936b7 100644
---- a/src/daemon/Greeter.cpp
-+++ b/src/daemon/Greeter.cpp
-@@ -145,6 +145,10 @@ namespace SDDM {
-             env.insert(QStringLiteral("XDG_VTNR"), QString::number(m_display->terminalId()));
-             env.insert(QStringLiteral("XDG_SESSION_CLASS"), QStringLiteral("greeter"));
-             env.insert(QStringLiteral("XDG_SESSION_TYPE"), m_display->sessionType());
-+
-+            //some themes may use KDE components and that will automatically load KDE's crash handler which we don't want
-+            //counterintuitively setting this env disables that handler
-+            env.insert(QStringLiteral("KDE_DEBUG"), QStringLiteral("1"));
-             m_auth->insertEnvironment(env);
-             // log message
index 67a662186615d4c4dad4ca9bcd44e9a879cf582d..fc450169792daaa6b4de52891bd3c5bc5a1659f1 100644 (file)
@@ -1,6 +1,6 @@
 diff -u CMakeLists.txt CMakeLists.txt 
---- CMakeLists.txt      2015-09-05 22:40:50.000000000 +0200
-+++ CMakeLists.txt      2015-09-07 12:15:33.419530808 +0200
+--- a/CMakeLists.txt      2015-09-05 22:40:50.000000000 +0200
++++ b/CMakeLists.txt      2015-09-07 12:15:33.419530808 +0200
 @@ -35,22 +35,6 @@
  # Definitions
  add_definitions(-Wall -std=c++11 -DQT_NO_CAST_FROM_ASCII)
diff --git a/x11-misc/sddm/files/sddm-0.13.0-pam_kwallet.patch b/x11-misc/sddm/files/sddm-0.13.0-pam_kwallet.patch
new file mode 100644 (file)
index 0000000..ff1c4d2
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/services/sddm.pam        2015-08-17 18:06:19.000000000 +0200
++++ b/services/sddm.pam        2016-02-21 19:54:08.654091951 +0100
+@@ -4,3 +4,7 @@
+ account               include         system-login
+ password      include         system-login
+ session               include         system-login
++-auth         optional        pam_kwallet.so kdehome=.kde4
++-auth         optional        pam_kwallet5.so
++-session      optional        pam_kwallet.so
++-session      optional        pam_kwallet5.so auto_start
diff --git a/x11-misc/sddm/sddm-0.13.0-r2.ebuild b/x11-misc/sddm/sddm-0.13.0-r2.ebuild
new file mode 100644 (file)
index 0000000..26c16d6
--- /dev/null
@@ -0,0 +1,80 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+inherit cmake-utils user
+
+DESCRIPTION="Simple Desktop Display Manager"
+HOMEPAGE="https://github.com/sddm/sddm"
+SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz"
+KEYWORDS="~amd64 ~arm ~x86"
+
+LICENSE="GPL-2+ MIT CC-BY-3.0 CC-BY-SA-3.0 public-domain"
+SLOT="0"
+IUSE="consolekit +pam systemd"
+
+RDEPEND="dev-qt/qtcore:5
+       dev-qt/qtdbus:5
+       dev-qt/qtgui:5
+       dev-qt/qtdeclarative:5
+       dev-qt/qtnetwork:5
+       >=x11-base/xorg-server-1.15.1
+       x11-libs/libxcb[xkb(-)]
+       consolekit? ( >=sys-auth/consolekit-0.9.4 )
+       pam? ( sys-libs/pam )
+       systemd? ( sys-apps/systemd:= )
+       !systemd? ( || ( sys-power/upower sys-power/upower-pm-utils ) )"
+
+DEPEND="${RDEPEND}
+       dev-python/docutils
+       dev-qt/linguist-tools:5
+       dev-qt/qttest:5
+       virtual/pkgconfig"
+
+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
+}
+
+src_prepare() {
+       eapply "${FILESDIR}/${PN}-0.13.0-pam_kwallet.patch"
+       # fix for flags handling and bug 563108
+       eapply "${FILESDIR}/${PN}-0.12.0-respect-user-flags.patch"
+       use consolekit && eapply "${FILESDIR}/${PN}-0.11.0-consolekit.patch"
+
+       cmake-utils_src_prepare
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DENABLE_PAM=$(usex pam)
+               -DNO_SYSTEMD=$(usex systemd)
+               -DBUILD_MAN_PAGES=ON
+               -DDBUS_CONFIG_FILENAME="org.freedesktop.sddm.conf"
+               )
+
+       cmake-utils_src_configure
+}
+
+pkg_postinst() {
+       enewgroup ${PN}
+       enewuser ${PN} -1 -1 /var/lib/${PN} ${PN} video
+
+       if use consolekit && use pam && [[ -e "${ROOT}"/etc/pam.d/system-login ]]; then
+               local line=$(grep "pam_ck_connector.*nox11" "${ROOT}"/etc/pam.d/system-login)
+               if [[ -z ${line} ]]; then
+                       ewarn
+                       ewarn "Erroneous /etc/pam.d/system-login settings detected!"
+                       ewarn "Please restore 'nox11' option in the line containing pam_ck_connector:"
+                       ewarn
+                       ewarn "session      optional      pam_ck_connector.so nox11"
+                       ewarn
+                       ewarn "or 'emerge -1 sys-auth/pambase' and run etc-update."
+                       ewarn
+               fi
+       fi
+}