public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: x11-misc/sddm/files/, x11-misc/sddm/
@ 2015-09-09 20:39 Jauhien Piatlicki
  0 siblings, 0 replies; 14+ messages in thread
From: Jauhien Piatlicki @ 2015-09-09 20:39 UTC (permalink / raw
  To: gentoo-commits

commit:     8bde24f11ce42a9a481ae1f8905f6044a6b5bd73
Author:     Lorenzo Porta <vindex17 <AT> outlook <DOT> it>
AuthorDate: Mon Sep  7 14:32:06 2015 +0000
Commit:     Jauhien Piatlicki <jauhien <AT> gentoo <DOT> org>
CommitDate: Tue Sep  8 08:26:21 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8bde24f1

x11-misc/sddm: version bump

 x11-misc/sddm/Manifest                             |  1 +
 .../files/sddm-0.12.0-respect-user-flags.patch     | 26 +++++++++
 x11-misc/sddm/sddm-0.12.0.ebuild                   | 64 ++++++++++++++++++++++
 3 files changed, 91 insertions(+)

diff --git a/x11-misc/sddm/Manifest b/x11-misc/sddm/Manifest
index ffdf15a..7fa0ac1 100644
--- a/x11-misc/sddm/Manifest
+++ b/x11-misc/sddm/Manifest
@@ -1 +1,2 @@
 DIST sddm-0.11.0.tar.gz 4735807 SHA256 80d53f075c275f744bd547523d6d640baccfacb4e463a71ec0facb8231b832ce SHA512 9dd2b80788e3cfdb353e64f709db451e04828991976b8b0f74c0e97dbf467fa2744702c73e5e50137eec10dac92df7dacd83fb458f75dd595556fc95fb1759f7 WHIRLPOOL 079c5093374710c2a3247a3e27dd26f3d10962c7cb8f260b80a4ba17a72e63676012d4b8e50f8f4bffc43124efdf05c7e14aefe86253b391345c7fa98a2d4c2f
+DIST sddm-0.12.0.tar.xz 3866620 SHA256 7d7504bf8a717a9131a2f32be852d7631365d21a468ca2649c8245f24ff29ae0 SHA512 d1d9f60634cb2a71096d92321a7a8b33efb8879a766979ca7c1d31ac5f1dbde8253384070338eef80f777db1cd78eef540e9111151f7f9e7d8e648d557e58047 WHIRLPOOL 58d21ead822b85bf3f0f6375cfadee6225dd9bf696e786fe68f283def43b4107d11e14b357d60b0278266270f9ddcb6a9b86285bc3b1a19644583f6ebebc4990

diff --git a/x11-misc/sddm/files/sddm-0.12.0-respect-user-flags.patch b/x11-misc/sddm/files/sddm-0.12.0-respect-user-flags.patch
new file mode 100644
index 0000000..67a6621
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.12.0-respect-user-flags.patch
@@ -0,0 +1,26 @@
+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
+@@ -35,22 +35,6 @@
+ # Definitions
+ add_definitions(-Wall -std=c++11 -DQT_NO_CAST_FROM_ASCII)
+ 
+-# Default build type
+-if(NOT CMAKE_BUILD_TYPE)
+-    set(CMAKE_BUILD_TYPE Release)
+-endif()
+-
+-# Handle build type
+-if(CMAKE_BUILD_TYPE MATCHES [Dd]ebug)
+-    message(STATUS "Debug build")
+-    add_definitions(-DDEBUG)
+-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0")
+-else()
+-    message(STATUS "Release build")
+-    add_definitions(-DNDEBUG)
+-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
+-endif()
+-
+ # Default absolute paths
+ if(NOT DEFINED CMAKE_INSTALL_SYSCONFDIR)
+     set(CMAKE_INSTALL_SYSCONFDIR "/etc")

diff --git a/x11-misc/sddm/sddm-0.12.0.ebuild b/x11-misc/sddm/sddm-0.12.0.ebuild
new file mode 100644
index 0000000..bb96032
--- /dev/null
+++ b/x11-misc/sddm/sddm-0.12.0.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit cmake-utils user
+
+DESCRIPTION="Simple Desktop Display Manager"
+HOMEPAGE="https://github.com/${PN}/${PN}"
+SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz"
+KEYWORDS="~amd64 ~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
+	dev-qt/linguist-tools:5
+	dev-qt/qttest: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
+	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() {
+	cmake-utils_src_prepare
+
+	epatch "${FILESDIR}/${P}-respect-user-flags.patch"
+	use consolekit && epatch "${FILESDIR}/${PN}-0.11.0-consolekit.patch"
+}
+
+src_configure() {
+	local mycmakeargs=(
+		$(cmake-utils_use_no pam PAM)
+		$(cmake-utils_use_no systemd 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
+}


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-misc/sddm/files/, x11-misc/sddm/
@ 2015-10-16 20:08 Jauhien Piatlicki
  0 siblings, 0 replies; 14+ messages in thread
From: Jauhien Piatlicki @ 2015-10-16 20:08 UTC (permalink / raw
  To: gentoo-commits

commit:     b10b19ab1f8fb85673011d7f37f6cf1a6ab4bb2e
Author:     Jauhien Piatlicki <jauhien <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 16 20:11:57 2015 +0000
Commit:     Jauhien Piatlicki <jauhien <AT> gentoo <DOT> org>
CommitDate: Fri Oct 16 20:14:19 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b10b19ab

x11-misc/sddm: fix CVE-2015-0856

x11-misc/sddm does not prevent access to the KDE crash handler

Gentoo-Bug: 563108

Package-Manager: portage-2.2.20.1

 .../sddm/files/sddm-0.12.0-CVE-2015-0856.patch     | 34 ++++++++++++++++++++++
 x11-misc/sddm/sddm-0.11.0-r3.ebuild                |  4 +--
 x11-misc/sddm/sddm-0.12.0.ebuild                   |  3 +-
 3 files changed, 38 insertions(+), 3 deletions(-)

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
new file mode 100644
index 0000000..7ae6773
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.12.0-CVE-2015-0856.patch
@@ -0,0 +1,34 @@
+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

diff --git a/x11-misc/sddm/sddm-0.11.0-r3.ebuild b/x11-misc/sddm/sddm-0.11.0-r3.ebuild
index 32fd737..6c5dac9 100644
--- a/x11-misc/sddm/sddm-0.11.0-r3.ebuild
+++ b/x11-misc/sddm/sddm-0.11.0-r3.ebuild
@@ -38,8 +38,8 @@ pkg_pretend() {
 src_prepare() {
 	use consolekit && epatch "${FILESDIR}/${P}-consolekit.patch"
 	use !systemd && epatch "${FILESDIR}/${PN}-0.10.0-upower.patch"
-	# fix bug 552318
-	epatch "${FILESDIR}/${P}-dbus-config.patch"
+	# fix bug 552318 and bug 563108
+	epatch "${FILESDIR}/${P}-dbus-config.patch" "${FILESDIR}/${PN}-0.12.0-CVE-2015-0856.patch"
 
 	# respect user's cflags
 	sed -e 's|-Wall -march=native||' \

diff --git a/x11-misc/sddm/sddm-0.12.0.ebuild b/x11-misc/sddm/sddm-0.12.0.ebuild
index 14af057..0acdabc 100644
--- a/x11-misc/sddm/sddm-0.12.0.ebuild
+++ b/x11-misc/sddm/sddm-0.12.0.ebuild
@@ -43,7 +43,8 @@ pkg_pretend() {
 src_prepare() {
 	cmake-utils_src_prepare
 
-	epatch "${FILESDIR}/${P}-respect-user-flags.patch"
+	# fix for flags handling and bug 563108
+	epatch "${FILESDIR}/${P}-respect-user-flags.patch" "${FILESDIR}/${P}-CVE-2015-0856.patch"
 	use consolekit && epatch "${FILESDIR}/${PN}-0.11.0-consolekit.patch"
 }
 


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-misc/sddm/files/, x11-misc/sddm/
@ 2015-10-17 10:08 Jauhien Piatlicki
  0 siblings, 0 replies; 14+ messages in thread
From: Jauhien Piatlicki @ 2015-10-17 10:08 UTC (permalink / raw
  To: gentoo-commits

commit:     e496c6a3a3ea5b91f27bf95fbd3e23e37ae1de66
Author:     Jauhien Piatlicki <jauhien <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 17 09:57:48 2015 +0000
Commit:     Jauhien Piatlicki <jauhien <AT> gentoo <DOT> org>
CommitDate: Sat Oct 17 10:13:38 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e496c6a3

x11-misc/sddm: fix CVE-2015-0856 patch for version 0.11.0

Package-Manager: portage-2.2.23

 x11-misc/sddm/files/sddm-0.11.0-CVE-2015-0856.patch | 15 +++++++++++++++
 x11-misc/sddm/sddm-0.11.0-r4.ebuild                 |  2 +-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/x11-misc/sddm/files/sddm-0.11.0-CVE-2015-0856.patch b/x11-misc/sddm/files/sddm-0.11.0-CVE-2015-0856.patch
new file mode 100644
index 0000000..37c1b97
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.11.0-CVE-2015-0856.patch
@@ -0,0 +1,15 @@
+Fix for CVE-2015-0856 (bug 563108) backported from the version 0.12.0.
+--- src/daemon/Greeter.cpp
++++ src/daemon/Greeter.cpp
+@@ -135,6 +135,11 @@
+             env.insert("XDG_VTNR", QString::number(m_display->terminalId()));
+             env.insert("XDG_SESSION_CLASS", "greeter");
+             env.insert("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("KDE_DEBUG", "1");
++
+             m_auth->insertEnvironment(env);
+ 
+             // log message

diff --git a/x11-misc/sddm/sddm-0.11.0-r4.ebuild b/x11-misc/sddm/sddm-0.11.0-r4.ebuild
index 6c5dac9..50cbf07 100644
--- a/x11-misc/sddm/sddm-0.11.0-r4.ebuild
+++ b/x11-misc/sddm/sddm-0.11.0-r4.ebuild
@@ -39,7 +39,7 @@ src_prepare() {
 	use consolekit && epatch "${FILESDIR}/${P}-consolekit.patch"
 	use !systemd && epatch "${FILESDIR}/${PN}-0.10.0-upower.patch"
 	# fix bug 552318 and bug 563108
-	epatch "${FILESDIR}/${P}-dbus-config.patch" "${FILESDIR}/${PN}-0.12.0-CVE-2015-0856.patch"
+	epatch "${FILESDIR}/${P}-dbus-config.patch" "${FILESDIR}/${P}-CVE-2015-0856.patch"
 
 	# respect user's cflags
 	sed -e 's|-Wall -march=native||' \


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-misc/sddm/files/, x11-misc/sddm/
@ 2016-03-02 19:23 Michael Palimaka
  0 siblings, 0 replies; 14+ messages in thread
From: Michael Palimaka @ 2016-03-02 19:23 UTC (permalink / raw
  To: gentoo-commits

commit:     55608644a523b1d94f414298e0aba3cb8749ca3a
Author:     Andreas Sturmlechner <andreas.sturmlechner <AT> gmail <DOT> com>
AuthorDate: Sun Feb 21 19:27:24 2016 +0000
Commit:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
CommitDate: Wed Mar  2 19:23:18 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=55608644

x11-misc/sddm: Add pam_kwallet(5).so entries, EAPI=6

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   |  4 +-
 .../sddm/files/sddm-0.12.0-CVE-2015-0856.patch     | 34 ---------
 .../files/sddm-0.12.0-respect-user-flags.patch     |  4 +-
 x11-misc/sddm/files/sddm-0.13.0-pam_kwallet.patch  | 10 +++
 x11-misc/sddm/sddm-0.13.0-r2.ebuild                | 80 ++++++++++++++++++++++
 5 files changed, 94 insertions(+), 38 deletions(-)

diff --git a/x11-misc/sddm/files/sddm-0.11.0-consolekit.patch b/x11-misc/sddm/files/sddm-0.11.0-consolekit.patch
index 4871bee..0e2a7f8 100644
--- a/x11-misc/sddm/files/sddm-0.11.0-consolekit.patch
+++ b/x11-misc/sddm/files/sddm-0.11.0-consolekit.patch
@@ -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
index 7ae6773..0000000
--- a/x11-misc/sddm/files/sddm-0.12.0-CVE-2015-0856.patch
+++ /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

diff --git a/x11-misc/sddm/files/sddm-0.12.0-respect-user-flags.patch b/x11-misc/sddm/files/sddm-0.12.0-respect-user-flags.patch
index 67a6621..fc45016 100644
--- a/x11-misc/sddm/files/sddm-0.12.0-respect-user-flags.patch
+++ b/x11-misc/sddm/files/sddm-0.12.0-respect-user-flags.patch
@@ -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
index 0000000..ff1c4d2
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.13.0-pam_kwallet.patch
@@ -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
index 0000000..26c16d6
--- /dev/null
+++ b/x11-misc/sddm/sddm-0.13.0-r2.ebuild
@@ -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
+}


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-misc/sddm/files/, x11-misc/sddm/
@ 2016-05-05 17:07 Michael Palimaka
  0 siblings, 0 replies; 14+ messages in thread
From: Michael Palimaka @ 2016-05-05 17:07 UTC (permalink / raw
  To: gentoo-commits

commit:     e57438123e4153bcae1a1b05bdc0831a75812c35
Author:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
AuthorDate: Thu May  5 17:07:05 2016 +0000
Commit:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
CommitDate: Thu May  5 17:07:42 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e5743812

x11-misc/sddm: backport patch from upstream to ensure that the password field has focus

Gentoo-bug: 566082

Package-Manager: portage-2.2.28

 .../sddm/files/sddm-0.13.0-password-focus.patch    | 109 +++++++++++++++++++++
 x11-misc/sddm/sddm-0.13.0-r4.ebuild                |  81 +++++++++++++++
 2 files changed, 190 insertions(+)

diff --git a/x11-misc/sddm/files/sddm-0.13.0-password-focus.patch b/x11-misc/sddm/files/sddm-0.13.0-password-focus.patch
new file mode 100644
index 0000000..cc27669
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.13.0-password-focus.patch
@@ -0,0 +1,109 @@
+From 6d5b36b28907b16280ff78995fef764bb0c573db Mon Sep 17 00:00:00 2001
+From: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
+Date: Sat, 16 Jan 2016 19:52:09 +0100
+Subject: [PATCH] Activate window for the primary screen
+
+Request activation for the view on the primary screen
+otherwise text fields won't get focus.
+
+Closes #501
+
+[ChangeLog][Greeter] Fix text field focus (issue #501)
+---
+ src/greeter/GreeterApp.cpp | 31 ++++++++++++++++++++++++++++++-
+ src/greeter/GreeterApp.h   |  4 +++-
+ 2 files changed, 33 insertions(+), 2 deletions(-)
+
+diff --git a/src/greeter/GreeterApp.cpp b/src/greeter/GreeterApp.cpp
+index 06d13c5..8201a4e 100644
+--- a/src/greeter/GreeterApp.cpp
++++ b/src/greeter/GreeterApp.cpp
+@@ -1,5 +1,5 @@
+ /***************************************************************************
+-* Copyright (c) 2015 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
++* Copyright (c) 2015-2016 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
+ * Copyright (c) 2013 Abdurrahman AVCI <abdurrahmanavci@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+@@ -36,6 +36,7 @@
+ #include <QQmlContext>
+ #include <QQmlEngine>
+ #include <QDebug>
++#include <QTimer>
+ #include <QTranslator>
+ 
+ #include <iostream>
+@@ -135,6 +136,11 @@ namespace SDDM {
+ 
+         // handle screens
+         connect(this, &GreeterApp::screenAdded, this, &GreeterApp::addViewForScreen);
++#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)
++        connect(this, &GreeterApp::primaryScreenChanged, this, [this](QScreen *) {
++            activatePrimary();
++        });
++#endif
+     }
+ 
+     void GreeterApp::addViewForScreen(QScreen *screen) {
+@@ -144,6 +150,7 @@ namespace SDDM {
+         view->setResizeMode(QQuickView::SizeRootObjectToView);
+         //view->setGeometry(QRect(QPoint(0, 0), screen->geometry().size()));
+         view->setGeometry(screen->geometry());
++        m_views.append(view);
+ 
+         // remove the view when the screen is removed, but we
+         // need to be careful here since Qt will move the view to
+@@ -201,11 +208,33 @@ namespace SDDM {
+         // show
+         qDebug() << "Adding view for" << screen->name() << screen->geometry();
+         view->show();
++
++        // activate windows for the primary screen to give focus to text fields
++        if (QGuiApplication::primaryScreen() == screen)
++            view->requestActivate();
+     }
+ 
+     void GreeterApp::removeViewForScreen(QQuickView *view) {
++        // screen is gone, remove the window
+         m_views.removeOne(view);
+         view->deleteLater();
++
++#if QT_VERSION < QT_VERSION_CHECK(5, 6, 0)
++        // starting from Qt 5.6 we are notified when the primary screen is changed
++        // and we request activation for the view when we get the signal, with
++        // older version we iterate the views and request activation
++        activatePrimary();
++#endif
++    }
++
++    void GreeterApp::activatePrimary() {
++        // activate and give focus to the window assigned to the primary screen
++        Q_FOREACH (QQuickView *view, m_views) {
++            if (view->screen() == QGuiApplication::primaryScreen()) {
++                view->requestActivate();
++                break;
++            }
++        }
+     }
+ }
+ 
+diff --git a/src/greeter/GreeterApp.h b/src/greeter/GreeterApp.h
+index 91fc1a9..1ebd981 100644
+--- a/src/greeter/GreeterApp.h
++++ b/src/greeter/GreeterApp.h
+@@ -1,5 +1,5 @@
+ /***************************************************************************
+-* Copyright (c) 2015 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
++* Copyright (c) 2015-2016 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
+ * Copyright (c) 2013 Nikita Mikhaylov <nslqqq@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+@@ -65,6 +65,8 @@ namespace SDDM {
+         UserModel *m_userModel { nullptr };
+         GreeterProxy *m_proxy { nullptr };
+         KeyboardModel *m_keyboard { nullptr };
++
++        void activatePrimary();
+     };
+ }
+ 

diff --git a/x11-misc/sddm/sddm-0.13.0-r4.ebuild b/x11-misc/sddm/sddm-0.13.0-r4.ebuild
new file mode 100644
index 0000000..b3f70b3
--- /dev/null
+++ b/x11-misc/sddm/sddm-0.13.0-r4.ebuild
@@ -0,0 +1,81 @@
+# 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"
+	eapply "${FILESDIR}/${P}-password-focus.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
+}


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-misc/sddm/files/, x11-misc/sddm/
@ 2016-08-28 12:58 Manuel Rüger
  0 siblings, 0 replies; 14+ messages in thread
From: Manuel Rüger @ 2016-08-28 12:58 UTC (permalink / raw
  To: gentoo-commits

commit:     3bded4743d8aef17d6f260cd9d156c315f27666c
Author:     Manuel Rüger <mrueg <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 28 12:58:01 2016 +0000
Commit:     Manuel Rüger <mrueg <AT> gentoo <DOT> org>
CommitDate: Sun Aug 28 12:58:01 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3bded474

x11-misc/sddm: Version bump to 0.14.0

Package-Manager: portage-2.3.0

 x11-misc/sddm/Manifest                           |  1 +
 x11-misc/sddm/files/sddm-0.14.0-consolekit.patch |  9 +++
 x11-misc/sddm/sddm-0.14.0.ebuild                 | 82 ++++++++++++++++++++++++
 3 files changed, 92 insertions(+)

diff --git a/x11-misc/sddm/Manifest b/x11-misc/sddm/Manifest
index 6c3d570..812706d 100644
--- a/x11-misc/sddm/Manifest
+++ b/x11-misc/sddm/Manifest
@@ -1 +1,2 @@
 DIST sddm-0.13.0.tar.xz 3869452 SHA256 dd868caaccf7783ead799f3b79e442d5adcb46251b78c8dbf3e9da0016dd347d SHA512 292a584945e74ea987088f975d5973b45a5b4fc07fa90b487fb9ece2de7ecca352344354474dfa8d103c8242367c19ad926e62a553e5b567d8d88a3f2c73c171 WHIRLPOOL e3961ecd5e22e8d565c16d86b6043ba7f3d6c1c296047d196577ab25af4e50216d67d53e9690b4df262c5ae4486bf36f88d345110a54bada9d75c4ff0dfc5ff3
+DIST sddm-0.14.0.tar.xz 3298360 SHA256 7e348258618b20f777767a98f9e377b48824b5cb5aad3a3f10f8482c1eb27778 SHA512 ae6f02e168dbb4ef1d5d360e6b26a2c45a9891fba9d53b73d41a5cc14906f3fcca3bde6d16d7bb109132d23e3e0e768c5976934fd2f59c23d919cc9f81fbd366 WHIRLPOOL d7d80c5d1e8eb5016fa6f5909026bb477293b4356b9caff92d741c936534504e35fdfe81feea8cb2312cdb53ed0e7cc5bda3af5fc4226d5a797baea97e431ecb

diff --git a/x11-misc/sddm/files/sddm-0.14.0-consolekit.patch b/x11-misc/sddm/files/sddm-0.14.0-consolekit.patch
new file mode 100644
index 00000000..64ea064
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.14.0-consolekit.patch
@@ -0,0 +1,9 @@
+--- a/data/scripts/Xsession	2016-08-28 14:52:04.910181422 +0200
++++ b/data/scripts/Xsession	2016-08-28 14:53:07.157184480 +0200
+@@ -91,5 +91,5 @@
+ if [ -z "$@" ]; then
+     exec xmessage -center -buttons OK:0 -default OK "Sorry, $DESKTOP_SESSION is no valid session."
+ else
+-    exec $@
++    exec ck-launch-session $@
+ fi

diff --git a/x11-misc/sddm/sddm-0.14.0.ebuild b/x11-misc/sddm/sddm-0.14.0.ebuild
new file mode 100644
index 00000000..eb423b0
--- /dev/null
+++ b/x11-misc/sddm/sddm-0.14.0.ebuild
@@ -0,0 +1,82 @@
+# 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"
+
+QT_MINIMAL="5.6"
+
+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}/${P}-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
+}


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-misc/sddm/files/, x11-misc/sddm/
@ 2016-12-23 16:42 Johannes Huber
  0 siblings, 0 replies; 14+ messages in thread
From: Johannes Huber @ 2016-12-23 16:42 UTC (permalink / raw
  To: gentoo-commits

commit:     caa941ea733d283d6c175a171de7e5987b3ba139
Author:     Johannes Huber <johu <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 23 16:24:02 2016 +0000
Commit:     Johannes Huber <johu <AT> gentoo <DOT> org>
CommitDate: Fri Dec 23 16:40:20 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=caa941ea

x11-misc/sddm: Fix display user avatars

Revision bump backports upstream patch to fix displaying user avatars.

Acked-by: Michael Palimaka <kensington <AT> gentoo.org>

Package-Manager: Portage-2.3.3, Repoman-2.3.1

 x11-misc/sddm/files/sddm-0.14.0-avatars.patch | 33 +++++++++++
 x11-misc/sddm/sddm-0.14.0-r2.ebuild           | 85 +++++++++++++++++++++++++++
 2 files changed, 118 insertions(+)

diff --git a/x11-misc/sddm/files/sddm-0.14.0-avatars.patch b/x11-misc/sddm/files/sddm-0.14.0-avatars.patch
new file mode 100644
index 00000000..d40f68c
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.14.0-avatars.patch
@@ -0,0 +1,33 @@
+From ecb903e48822bd90650bdd64fe80754e3e9664cb Mon Sep 17 00:00:00 2001
+From: Bastian Beischer <bastian.beischer@gmail.com>
+Date: Fri, 2 Sep 2016 13:05:18 +0200
+Subject: [PATCH] Fix display of user avatars. (#684)
+
+QFile::exists("...") does not understand file:// URLs, at least in Qt
+5.7.0 and Qt 4.8.7.
+---
+ src/greeter/UserModel.cpp | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/greeter/UserModel.cpp b/src/greeter/UserModel.cpp
+index 41a9f10..94c492d 100644
+--- a/src/greeter/UserModel.cpp
++++ b/src/greeter/UserModel.cpp
+@@ -107,13 +107,13 @@ namespace SDDM {
+                 d->lastIndex = i;
+ 
+             if (avatarsEnabled) {
+-                const QString userFace = QStringLiteral("file://%1/.face.icon").arg(user->homeDir);
+-                const QString systemFace = QStringLiteral("file://%1/%2.face.icon").arg(facesDir).arg(user->name);
++                const QString userFace = QStringLiteral("%1/.face.icon").arg(user->homeDir);
++                const QString systemFace = QStringLiteral("%1/%2.face.icon").arg(facesDir).arg(user->name);
+ 
+                 if (QFile::exists(userFace))
+-                    user->icon = userFace;
++                    user->icon = QStringLiteral("file://%1").arg(userFace);
+                 else if (QFile::exists(systemFace))
+-                    user->icon = systemFace;
++                    user->icon = QStringLiteral("file://%1").arg(systemFace);
+             }
+         }
+     }

diff --git a/x11-misc/sddm/sddm-0.14.0-r2.ebuild b/x11-misc/sddm/sddm-0.14.0-r2.ebuild
new file mode 100644
index 00000000..8081ae6
--- /dev/null
+++ b/x11-misc/sddm/sddm-0.14.0-r2.ebuild
@@ -0,0 +1,85 @@
+# 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.6:5
+	>=dev-qt/qtdbus-5.6:5
+	>=dev-qt/qtgui-5.6:5
+	>=dev-qt/qtdeclarative-5.6:5
+	>=dev-qt/qtnetwork-5.6: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.6:5
+	>=dev-qt/qttest-5.6:5
+	kde-frameworks/extra-cmake-modules
+	virtual/pkgconfig"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-0.13.0-pam_kwallet.patch"
+	# fix for flags handling and bug 563108
+	"${FILESDIR}/${PN}-0.12.0-respect-user-flags.patch"
+	"${FILESDIR}/${P}-avatars.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
+}
+
+src_prepare() {
+	use consolekit && eapply "${FILESDIR}/${P}-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
+}


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-misc/sddm/files/, x11-misc/sddm/
@ 2017-03-25  2:49 Michael Palimaka
  0 siblings, 0 replies; 14+ messages in thread
From: Michael Palimaka @ 2017-03-25  2:49 UTC (permalink / raw
  To: gentoo-commits

commit:     d19f8d9400c010a9878a88e888fd5163042ff348
Author:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 25 02:48:44 2017 +0000
Commit:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
CommitDate: Sat Mar 25 02:49:26 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d19f8d94

x11-misc/sddm: introduce elogind support

Gentoo-bug: 599506
Package-Manager: Portage-2.3.5, Repoman-2.3.2

 x11-misc/sddm/files/sddm-enable-elogind.patch | 56 +++++++++++++++++
 x11-misc/sddm/metadata.xml                    |  1 +
 x11-misc/sddm/sddm-0.14.0-r3.ebuild           | 89 +++++++++++++++++++++++++++
 3 files changed, 146 insertions(+)

diff --git a/x11-misc/sddm/files/sddm-enable-elogind.patch b/x11-misc/sddm/files/sddm-enable-elogind.patch
new file mode 100644
index 00000000000..d1277e9554f
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-enable-elogind.patch
@@ -0,0 +1,56 @@
+--- a/CMakeLists.txt	2016-11-10 09:27:03.866358608 +0100
++++ b/CMakeLists.txt	2016-11-10 10:28:25.384374766 +0100
+@@ -93,7 +93,7 @@
+ endif()
+ 
+ # systemd
+-if(NOT NO_SYSTEMD)
++if(NOT NO_SYSTEMD AND NOT USE_ELOGIND)
+     pkg_check_modules(SYSTEMD "systemd")
+ endif()
+ 
+@@ -127,12 +127,34 @@
+     set(REBOOT_COMMAND "/usr/bin/systemctl reboot")
+ else()
+     set(SYSTEMD_FOUND 0)
++endif()
++add_feature_info("systemd" SYSTEMD_FOUND "systemd support")
++add_feature_info("journald" JOURNALD_FOUND "journald support")
++
++# elogind
++if(NO_SYSTEMD AND USE_ELOGIND)
++    pkg_check_modules(ELOGIND "libelogind")
++endif()
++
++if(ELOGIND_FOUND)
++    add_definitions(-DHAVE_ELOGIND)
++    set(CMAKE_AUTOMOC_MOC_OPTIONS -DHAVE_ELOGIND)
++
++    set(MINIMUM_VT 7)
++    set(HALT_COMMAND "/usr/bin/loginctl poweroff")
++    set(REBOOT_COMMAND "/usr/bin/loginctl reboot")
++else()
++    set(ELOGIND_FOUND 0)
++endif()
++add_feature_info("elogind" ELOGIND_FOUND "elogind support")
++
++# Default behaviour if neither systemd nor elogind is used
++if (NOT ELOGIND_FOUND AND NOT SYSTEMD_FOUND)
+     set(MINIMUM_VT 7)
+     set(HALT_COMMAND "/sbin/shutdown -h -P now")
+     set(REBOOT_COMMAND "/sbin/shutdown -r now")
+ endif()
+-add_feature_info("systemd" SYSTEMD_FOUND "systemd support")
+-add_feature_info("journald" JOURNALD_FOUND "journald support")
++
+ 
+ # Set constants
+ set(DATA_INSTALL_DIR            "${CMAKE_INSTALL_FULL_DATADIR}/sddm"                CACHE PATH      "System application data install directory")
+--- a/services/sddm-greeter.pam	2016-06-19 12:24:42.000000000 +0200
++++ b/services/sddm-greeter.pam	2016-11-02 09:48:18.990032363 +0100
+@@ -14,4 +14,5 @@
+ 
+ # Setup session
+ session		required pam_unix.so
+ session		optional pam_systemd.so
++session		optional pam_elogind.so

diff --git a/x11-misc/sddm/metadata.xml b/x11-misc/sddm/metadata.xml
index de6129ca503..91b3d8054a2 100644
--- a/x11-misc/sddm/metadata.xml
+++ b/x11-misc/sddm/metadata.xml
@@ -7,6 +7,7 @@
   </maintainer>
   <use>
     <flag name="consolekit">Use ck-launch-session from sys-auth/consolekit by default in Xsession (no native support)</flag>
+    <flag name="elogind">Use <pkg>sys-auth/elogind</pkg> for session tracking.</flag>
   </use>
   <longdescription lang="en">
     SDDM is a modern display manager for X11 aiming to be fast, simple

diff --git a/x11-misc/sddm/sddm-0.14.0-r3.ebuild b/x11-misc/sddm/sddm-0.14.0-r3.ebuild
new file mode 100644
index 00000000000..59547118f16
--- /dev/null
+++ b/x11-misc/sddm/sddm-0.14.0-r3.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+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 elogind +pam systemd"
+
+REQUIRED_USE="?? ( elogind systemd )"
+
+RDEPEND=">=dev-qt/qtcore-5.6:5
+	>=dev-qt/qtdbus-5.6:5
+	>=dev-qt/qtgui-5.6:5
+	>=dev-qt/qtdeclarative-5.6:5
+	>=dev-qt/qtnetwork-5.6:5
+	>=x11-base/xorg-server-1.15.1
+	x11-libs/libxcb[xkb(-)]
+	consolekit? ( >=sys-auth/consolekit-0.9.4 )
+	elogind? ( sys-auth/elogind )
+	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.6:5
+	>=dev-qt/qttest-5.6:5
+	kde-frameworks/extra-cmake-modules
+	virtual/pkgconfig"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-0.13.0-pam_kwallet.patch"
+	# fix for flags handling and bug 563108
+	"${FILESDIR}/${PN}-0.12.0-respect-user-flags.patch"
+	"${FILESDIR}/${P}-avatars.patch"
+	"${FILESDIR}/${PN}-enable-elogind.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
+}
+
+src_prepare() {
+	use consolekit && eapply "${FILESDIR}/${P}-consolekit.patch"
+
+	cmake-utils_src_prepare
+}
+
+src_configure() {
+	local mycmakeargs=(
+		-DENABLE_PAM=$(usex pam)
+		-DNO_SYSTEMD=$(usex '!systemd')
+		-DUSE_ELOGIND=$(usex 'elogind')
+		-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
+}


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-misc/sddm/files/, x11-misc/sddm/
@ 2018-07-22 11:21 Andreas Sturmlechner
  0 siblings, 0 replies; 14+ messages in thread
From: Andreas Sturmlechner @ 2018-07-22 11:21 UTC (permalink / raw
  To: gentoo-commits

commit:     ae159450bf401ffa9651ce243e8c12ca088e127b
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 21 21:07:45 2018 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Jul 22 11:21:17 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ae159450

x11-misc/sddm: 0.18.0 version bump

Bug: https://bugs.gentoo.org/661510
Package-Manager: Portage-2.3.43, Repoman-2.3.10

 x11-misc/sddm/Manifest                            |  1 +
 x11-misc/sddm/files/sddm-0.18.0-Xsession.patch    | 24 ++++++
 x11-misc/sddm/files/sddm-0.18.0-sddmconfdir.patch | 32 ++++++++
 x11-misc/sddm/sddm-0.18.0.ebuild                  | 96 +++++++++++++++++++++++
 4 files changed, 153 insertions(+)

diff --git a/x11-misc/sddm/Manifest b/x11-misc/sddm/Manifest
index 0c663f33667..ddeba3e7838 100644
--- a/x11-misc/sddm/Manifest
+++ b/x11-misc/sddm/Manifest
@@ -1,2 +1,3 @@
 DIST sddm-0.15.0.tar.gz 3520188 BLAKE2B b29a994a0ea2fbbda3f5eaf16885fdfa513a759e5db4d879eed2a7cae1472b90124d2ca65404edae8727a047a9d761b72382dc9ddb206f8dc35b5101856cf377 SHA512 4440acfc6f98ab8efe8e3a441e8dc9ee98615c3544f8adc899bc4f0334e4f1b0d37c1ef823b32cc466adc8fac942cd188b33eb49795e0468a136a959c65c7566
 DIST sddm-0.17.0.tar.gz 3527180 BLAKE2B b11ea779f772f4c0638e3c8712d03ecb12d26f432f34b2756c0a1a90b3db2136525ff0c4b2733b14e2605ba656b76d69c8fdb465864017bd19b58b14982d3492 SHA512 81d6fc8731a3f4a49018c5bde07d21e26647e0066382cfb8dc4570ac906844ee58bc79efc4b0b2753d6c831cb33e1fa8d512335d2f76a66c493527ea68c5a101
+DIST sddm-0.18.0.tar.gz 3526688 BLAKE2B 96db3f7b4745b7b5686c3c5e4353c99f175f28c99d329df3bc49cf41788257eaf823c6998b165de90e2150e34470e65ca69731375194072aae7583c8e8dfa811 SHA512 474be3fc159ca31cae409ef5263c47376d41f500d8b495fc7ef896ad0f1a599a5fea9a58d7df2874493dfd9230d0121cdd836ec6171774df2ce1639e8e4c652f

diff --git a/x11-misc/sddm/files/sddm-0.18.0-Xsession.patch b/x11-misc/sddm/files/sddm-0.18.0-Xsession.patch
new file mode 100644
index 00000000000..41c813a0664
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.18.0-Xsession.patch
@@ -0,0 +1,24 @@
+--- a/data/scripts/Xsession	2016-08-28 14:52:04.910181422 +0200
++++ b/data/scripts/Xsession	2017-10-21 15:25:47.668886596 +0200
+@@ -50,6 +50,10 @@
+     ;;
+ esac
+ 
++# Make D-Bus and ConsoleKit start properly, see:
++# /etc/X11/xinit/xinitrc.d/{80-dbus,90-consolekit}
++command="$@"
++
+ [ -f /etc/xprofile ] && . /etc/xprofile
+ [ -f $HOME/.xprofile ] && . $HOME/.xprofile
+ 
+@@ -94,8 +98,8 @@
+   . "$USERXSESSION"
+ fi
+ 
+-if [ -z "$*" ]; then
++if [ -z "$command" ]; then
+     exec xmessage -center -buttons OK:0 -default OK "Sorry, $DESKTOP_SESSION is no valid session."
+ else
+-    exec $@
++    exec $command
+ fi

diff --git a/x11-misc/sddm/files/sddm-0.18.0-sddmconfdir.patch b/x11-misc/sddm/files/sddm-0.18.0-sddmconfdir.patch
new file mode 100644
index 00000000000..9d8f2b545a1
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.18.0-sddmconfdir.patch
@@ -0,0 +1,32 @@
+From 300078995ae82495cf09a0646a07e0214f0ae030 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <andreas.sturmlechner@gmail.com>
+Date: Sat, 21 Jul 2018 22:41:29 +0200
+Subject: [PATCH] Change location of sddm.conf.d to DATAROOTDIR
+
+/usr/lib is not a location that should be hardcoded - depending on
+distribution and architecture this can be different. So far, SDDM
+does not use this path unless the above conditions happen to make
+it coincide with the install location of its Qml modules.
+
+DATAROOTDIR is defined as: Read-only architecture-independent data.
+This seems to be a better fit for a system SDDM default config dir.
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8500c65..5150b7d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -184,7 +184,7 @@ set(WAYLAND_SESSION_COMMAND     "${DATA_INSTALL_DIR}/scripts/wayland-session"
+ 
+ set(CONFIG_FILE                 "${CMAKE_INSTALL_FULL_SYSCONFDIR}/sddm.conf"        CACHE PATH      "Path of the sddm config file")
+ set(CONFIG_DIR                  "${CMAKE_INSTALL_FULL_SYSCONFDIR}/sddm.conf.d"      CACHE PATH      "Path of the sddm config directory")
+-set(SYSTEM_CONFIG_DIR           "${CMAKE_INSTALL_PREFIX}/lib/sddm/sddm.conf.d"      CACHE PATH      "Path of the system sddm config directory")
++set(SYSTEM_CONFIG_DIR           "${CMAKE_INSTALL_FULL_DATAROOTDIR}/sddm/sddm.conf.d" CACHE PATH      "Path of the system sddm config directory")
+ set(LOG_FILE                    "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/log/sddm.log"  CACHE PATH      "Path of the sddm log file")
+ set(DBUS_CONFIG_FILENAME        "org.freedesktop.DisplayManager.conf"               CACHE STRING    "Name of the sddm config file")
+ set(COMPONENTS_TRANSLATION_DIR  "${DATA_INSTALL_DIR}/translations"                  CACHE PATH      "Components translations directory")
+-- 
+2.18.0
+

diff --git a/x11-misc/sddm/sddm-0.18.0.ebuild b/x11-misc/sddm/sddm-0.18.0.ebuild
new file mode 100644
index 00000000000..71b170a41f8
--- /dev/null
+++ b/x11-misc/sddm/sddm-0.18.0.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PLOCALES="ar bn ca cs da de es et fi fr hi_IN hu is it ja kk ko lt lv nb nl nn pl pt_BR pt_PT ro ru sk sr sr@ijekavian sr@ijekavianlatin sr@latin sv tr uk zh_CN zh_TW"
+inherit cmake-utils l10n systemd 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.gz"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+LICENSE="GPL-2+ MIT CC-BY-3.0 CC-BY-SA-3.0 public-domain"
+SLOT="0"
+IUSE="consolekit elogind +pam systemd test"
+
+REQUIRED_USE="?? ( elogind systemd )"
+
+RDEPEND="
+	>=dev-qt/qtcore-5.9.4:5
+	>=dev-qt/qtdbus-5.9.4:5
+	>=dev-qt/qtdeclarative-5.9.4:5
+	>=dev-qt/qtgui-5.9.4:5
+	>=dev-qt/qtnetwork-5.9.4:5
+	>=x11-base/xorg-server-1.15.1
+	x11-libs/libxcb[xkb]
+	consolekit? ( >=sys-auth/consolekit-0.9.4 )
+	elogind? ( sys-auth/elogind )
+	pam? ( sys-libs/pam )
+	systemd? ( sys-apps/systemd:= )
+	!systemd? ( sys-power/upower )"
+
+DEPEND="${RDEPEND}
+	dev-python/docutils
+	>=dev-qt/linguist-tools-5.9.4:5
+	kde-frameworks/extra-cmake-modules
+	virtual/pkgconfig
+	test? ( >=dev-qt/qttest-5.9.4:5 )"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-0.12.0-respect-user-flags.patch" # fix for flags handling and bug 563108
+	"${FILESDIR}/${P}-Xsession.patch" # bug 611210
+	"${FILESDIR}/${P}-sddmconfdir.patch"
+	# TODO: fix properly
+	"${FILESDIR}/${PN}-0.16.0-ck2-revert.patch" # bug 633920
+)
+
+src_prepare() {
+	cmake-utils_src_prepare
+
+	disable_locale() {
+		sed -e "/${1}\.ts/d" -i data/translations/CMakeLists.txt || die
+	}
+	l10n_find_plocales_changes "data/translations" "" ".ts"
+	l10n_for_each_disabled_locale_do disable_locale
+
+	if ! use test; then
+		sed -e "/^find_package/s/ Test//" -i CMakeLists.txt || die
+		cmake_comment_add_subdirectory test
+	fi
+}
+
+src_configure() {
+	local mycmakeargs=(
+		-DENABLE_PAM=$(usex pam)
+		-DNO_SYSTEMD=$(usex '!systemd')
+		-DUSE_ELOGIND=$(usex 'elogind')
+		-DBUILD_MAN_PAGES=ON
+		-DDBUS_CONFIG_FILENAME="org.freedesktop.sddm.conf"
+	)
+	cmake-utils_src_configure
+}
+
+src_install() {
+	cmake-utils_src_install
+
+	# Create a default.conf as upstream dropped /etc/sddm.conf w/o replacement
+	local confd="/usr/share/sddm/sddm.conf.d"
+	dodir ${confd}
+	"${D}"/usr/bin/sddm --example-config > "${D}/${confd}"/00default.conf \
+		|| die "Failed to create 00default.conf"
+	sed -e "/^InputMethod/s/qtvirtualkeyboard//" \
+		-i "${D}/${confd}"/00default.conf || die
+}
+
+pkg_postinst() {
+	einfo "Starting with 0.18.0, SDDM no longer installs /etc/sddm.conf"
+	einfo "Use it to override specific options. SDDM defaults are now"
+	einfo "found in: /usr/share/sddm/sddm.conf.d/00default.conf"
+
+	enewgroup ${PN}
+	enewuser ${PN} -1 -1 /var/lib/${PN} ${PN},video
+
+	systemd_reenable sddm.service
+}


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-misc/sddm/files/, x11-misc/sddm/
@ 2018-11-13 21:30 Andreas Sturmlechner
  0 siblings, 0 replies; 14+ messages in thread
From: Andreas Sturmlechner @ 2018-11-13 21:30 UTC (permalink / raw
  To: gentoo-commits

commit:     5e996d8c5d2e1f27ad0eceed39173e46039c8a5b
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 13 15:29:54 2018 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Tue Nov 13 21:30:42 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5e996d8c

x11-misc/sddm: Drop vulnerable 0.17.0-r4

Bug: https://bugs.gentoo.org/661510
Package-Manager: Portage-2.3.51, Repoman-2.3.12
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 x11-misc/sddm/Manifest                             |  1 -
 x11-misc/sddm/files/sddm-0.16.0-Xsession.patch     | 24 -------
 x11-misc/sddm/files/sddm-0.17.0-consolekit.patch   | 22 ------
 x11-misc/sddm/files/sddm-0.17.0-logind-race.patch  | 26 -------
 .../files/sddm-0.17.0-switchtogreeter-r1.patch     | 54 --------------
 x11-misc/sddm/sddm-0.17.0-r4.ebuild                | 84 ----------------------
 6 files changed, 211 deletions(-)

diff --git a/x11-misc/sddm/Manifest b/x11-misc/sddm/Manifest
index ddeba3e7838..33ffd8431a8 100644
--- a/x11-misc/sddm/Manifest
+++ b/x11-misc/sddm/Manifest
@@ -1,3 +1,2 @@
 DIST sddm-0.15.0.tar.gz 3520188 BLAKE2B b29a994a0ea2fbbda3f5eaf16885fdfa513a759e5db4d879eed2a7cae1472b90124d2ca65404edae8727a047a9d761b72382dc9ddb206f8dc35b5101856cf377 SHA512 4440acfc6f98ab8efe8e3a441e8dc9ee98615c3544f8adc899bc4f0334e4f1b0d37c1ef823b32cc466adc8fac942cd188b33eb49795e0468a136a959c65c7566
-DIST sddm-0.17.0.tar.gz 3527180 BLAKE2B b11ea779f772f4c0638e3c8712d03ecb12d26f432f34b2756c0a1a90b3db2136525ff0c4b2733b14e2605ba656b76d69c8fdb465864017bd19b58b14982d3492 SHA512 81d6fc8731a3f4a49018c5bde07d21e26647e0066382cfb8dc4570ac906844ee58bc79efc4b0b2753d6c831cb33e1fa8d512335d2f76a66c493527ea68c5a101
 DIST sddm-0.18.0.tar.gz 3526688 BLAKE2B 96db3f7b4745b7b5686c3c5e4353c99f175f28c99d329df3bc49cf41788257eaf823c6998b165de90e2150e34470e65ca69731375194072aae7583c8e8dfa811 SHA512 474be3fc159ca31cae409ef5263c47376d41f500d8b495fc7ef896ad0f1a599a5fea9a58d7df2874493dfd9230d0121cdd836ec6171774df2ce1639e8e4c652f

diff --git a/x11-misc/sddm/files/sddm-0.16.0-Xsession.patch b/x11-misc/sddm/files/sddm-0.16.0-Xsession.patch
deleted file mode 100644
index f341e1863f7..00000000000
--- a/x11-misc/sddm/files/sddm-0.16.0-Xsession.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/data/scripts/Xsession	2016-08-28 14:52:04.910181422 +0200
-+++ b/data/scripts/Xsession	2017-10-21 15:25:47.668886596 +0200
-@@ -50,6 +50,10 @@
-     ;;
- esac
- 
-+# Make D-Bus and ConsoleKit start properly, see:
-+# /etc/X11/xinit/xinitrc.d/{80-dbus,90-consolekit}
-+command="$@"
-+
- [ -f /etc/xprofile ] && . /etc/xprofile
- [ -f $HOME/.xprofile ] && . $HOME/.xprofile
- 
-@@ -94,8 +98,8 @@
-   . "$USERXSESSION"
- fi
- 
--if [ -z "$@" ]; then
-+if [ -z "$command" ]; then
-     exec xmessage -center -buttons OK:0 -default OK "Sorry, $DESKTOP_SESSION is no valid session."
- else
--    exec $@
-+    exec $command
- fi

diff --git a/x11-misc/sddm/files/sddm-0.17.0-consolekit.patch b/x11-misc/sddm/files/sddm-0.17.0-consolekit.patch
deleted file mode 100644
index ca265d13145..00000000000
--- a/x11-misc/sddm/files/sddm-0.17.0-consolekit.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 7bd9f322182d840f3cfaee9a49f5cbd5f426aa1b Mon Sep 17 00:00:00 2001
-From: Erik Ridderby <tech@rby.nu>
-Date: Sat, 12 May 2018 08:04:26 +0200
-Subject: [PATCH] Fixed typo that prevents ConsoleKit to be detected (#1027)
-
----
- src/daemon/LogindDBusTypes.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/daemon/LogindDBusTypes.cpp b/src/daemon/LogindDBusTypes.cpp
-index 79c70312..011bb7f5 100644
---- a/src/daemon/LogindDBusTypes.cpp
-+++ b/src/daemon/LogindDBusTypes.cpp
-@@ -63,7 +63,7 @@ LogindPathInternal::LogindPathInternal()
-         available = true;
-         serviceName = QStringLiteral("org.freedesktop.ConsoleKit");
-         managerPath = QStringLiteral("/org/freedesktop/ConsoleKit/Manager");
--        managerIfaceName = QStringLiteral("/org.freedesktop.ConsoleKit.Manager"); //note this doesn't match logind
-+        managerIfaceName = QStringLiteral("org.freedesktop.ConsoleKit.Manager"); //note this doesn't match logind
-         seatIfaceName = QStringLiteral("org.freedesktop.ConsoleKit.Seat");
-         sessionIfaceName = QStringLiteral("org.freedesktop.ConsoleKit.Session");
-         userIfaceName = QStringLiteral("org.freedesktop.ConsoleKit.User");

diff --git a/x11-misc/sddm/files/sddm-0.17.0-logind-race.patch b/x11-misc/sddm/files/sddm-0.17.0-logind-race.patch
deleted file mode 100644
index a55702061c9..00000000000
--- a/x11-misc/sddm/files/sddm-0.17.0-logind-race.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From fca8c808b7fa4a947a0c60157f0eb5227b3ccfff Mon Sep 17 00:00:00 2001
-From: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
-Date: Mon, 26 Feb 2018 09:03:05 +0100
-Subject: [PATCH] Fix race between sddm and logind
-
-Make sure sddm is run after logind.
-An explicit dependency will make sddm run after logind every time.
-
-Closes: #978
----
- services/sddm.service.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/services/sddm.service.in b/services/sddm.service.in
-index df03d92a..9d7618c6 100644
---- a/services/sddm.service.in
-+++ b/services/sddm.service.in
-@@ -2,7 +2,7 @@
- Description=Simple Desktop Display Manager
- Documentation=man:sddm(1) man:sddm.conf(5)
- Conflicts=getty@tty1.service
--After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service
-+After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service systemd-logind.service
- 
- [Service]
- ExecStart=@CMAKE_INSTALL_FULL_BINDIR@/sddm

diff --git a/x11-misc/sddm/files/sddm-0.17.0-switchtogreeter-r1.patch b/x11-misc/sddm/files/sddm-0.17.0-switchtogreeter-r1.patch
deleted file mode 100644
index 35982bceda2..00000000000
--- a/x11-misc/sddm/files/sddm-0.17.0-switchtogreeter-r1.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-Subject: [PATCH] Fix switchToGreeter not available without logind
-From: Alexander Miller <alex.miller@gmx.de>
-
-Seats can't be created until SeatManager's signals are
-connected to the DisplayManager, or the latter won't see
-them and switchToGreeter doesn't work. So split SeatManager
-initialization from its constructor and call initialize it
-only after all connections have been set up in DaemonApp's
-constructor.
-
-With logind there may have been enough delay before seats
-got actually added so things would work, but it's still
-cleaner to fix the order.
-
-Fixes: https://bugs.gentoo.org/644718
-Fixes: https://github.com/sddm/sddm/issues/824
-
---- a/src/daemon/SeatManager.h
-+++ b/src/daemon/SeatManager.h
-@@ -31,8 +31,9 @@ namespace SDDM {
-     class SeatManager : public QObject {
-         Q_OBJECT
-     public:
--        explicit SeatManager(QObject *parent = 0);
-+        explicit SeatManager(QObject *parent = 0) : QObject(parent) {}
- 
-+        void initialize();
-         void createSeat(const QString &name);
-         void removeSeat(const QString &name);
-         void switchToGreeter(const QString &seat);
---- a/src/daemon/SeatManager.cpp
-+++ b/src/daemon/SeatManager.cpp
-@@ -93,8 +93,7 @@ namespace SDDM {
-         }
-     }
- 
--    SeatManager::SeatManager(QObject *parent) : QObject(parent) {
--
-+    void SeatManager::initialize() {
-         if (DaemonApp::instance()->testing() || !Logind::isAvailable()) {
-             //if we don't have logind/CK2, just create a single seat immediately and don't do any other connections
-             createSeat(QStringLiteral("seat0"));
---- a/src/daemon/DaemonApp.cpp
-+++ b/src/daemon/DaemonApp.cpp
-@@ -75,6 +75,9 @@ namespace SDDM {
- 
-         // log message
-         qDebug() << "Starting...";
-+
-+        // initialize seats only after signals are connected
-+        m_seatManager->initialize();
-     }
- 
-     bool DaemonApp::testing() const {

diff --git a/x11-misc/sddm/sddm-0.17.0-r4.ebuild b/x11-misc/sddm/sddm-0.17.0-r4.ebuild
deleted file mode 100644
index ba166f9c67f..00000000000
--- a/x11-misc/sddm/sddm-0.17.0-r4.ebuild
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PLOCALES="ar ca cs da de es et fi fr hi_IN hu it ja kk ko lt lv nb nl nn pl pt_BR pt_PT ro ru sk sr sr@ijekavian sr@ijekavianlatin sr@latin sv tr uk zh_CN zh_TW"
-inherit cmake-utils l10n systemd 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.gz"
-KEYWORDS="amd64 ~arm ~arm64 x86"
-
-LICENSE="GPL-2+ MIT CC-BY-3.0 CC-BY-SA-3.0 public-domain"
-SLOT="0"
-IUSE="consolekit elogind +pam systemd test"
-
-REQUIRED_USE="?? ( elogind systemd )"
-
-RDEPEND="
-	>=dev-qt/qtcore-5.6:5
-	>=dev-qt/qtdbus-5.6:5
-	>=dev-qt/qtdeclarative-5.6:5
-	>=dev-qt/qtgui-5.6:5
-	>=dev-qt/qtnetwork-5.6:5
-	>=x11-base/xorg-server-1.15.1
-	x11-libs/libxcb[xkb]
-	consolekit? ( >=sys-auth/consolekit-0.9.4 )
-	elogind? ( sys-auth/elogind )
-	pam? ( sys-libs/pam )
-	systemd? ( sys-apps/systemd:= )
-	!systemd? ( sys-power/upower )"
-
-DEPEND="${RDEPEND}
-	dev-python/docutils
-	>=dev-qt/linguist-tools-5.6:5
-	kde-frameworks/extra-cmake-modules
-	virtual/pkgconfig
-	test? ( >=dev-qt/qttest-5.6:5 )"
-
-PATCHES=(
-	"${FILESDIR}/${PN}-0.12.0-respect-user-flags.patch" # fix for flags handling and bug 563108
-	"${FILESDIR}/${PN}-0.16.0-Xsession.patch" # bug 611210
-	"${FILESDIR}/${PN}-0.16.0-ck2-revert.patch" # bug 633920
-	"${FILESDIR}/${P}-consolekit.patch" # bug 647254
-	"${FILESDIR}/${P}-logind-race.patch" # bug 656286
-	# TODO: pending upstream
-	"${FILESDIR}/${P}-switchtogreeter-r1.patch" # bugs 644718, 649888, 655912
-)
-
-src_prepare() {
-	cmake-utils_src_prepare
-
-	disable_locale() {
-		sed -e "/${1}\.ts/d" -i data/translations/CMakeLists.txt || die
-	}
-	l10n_find_plocales_changes "data/translations" "" ".ts"
-	l10n_for_each_disabled_locale_do disable_locale
-
-	use test || cmake_comment_add_subdirectory test
-}
-
-src_configure() {
-	local mycmakeargs=(
-		-DENABLE_PAM=$(usex pam)
-		-DNO_SYSTEMD=$(usex '!systemd')
-		-DUSE_ELOGIND=$(usex 'elogind')
-		-DBUILD_MAN_PAGES=ON
-		-DDBUS_CONFIG_FILENAME="org.freedesktop.sddm.conf"
-	)
-	cmake-utils_src_configure
-}
-
-src_install() {
-	cmake-utils_src_install
-	sed -i -e "/^InputMethod/s/qtvirtualkeyboard//" "${D}"/etc/sddm.conf || die
-}
-
-pkg_postinst() {
-	enewgroup ${PN}
-	enewuser ${PN} -1 -1 /var/lib/${PN} ${PN},video
-
-	systemd_reenable sddm.service
-}


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-misc/sddm/files/, x11-misc/sddm/
@ 2019-06-23 14:55 Andreas Sturmlechner
  0 siblings, 0 replies; 14+ messages in thread
From: Andreas Sturmlechner @ 2019-06-23 14:55 UTC (permalink / raw
  To: gentoo-commits

commit:     e54d537de46adc04d15f8279e5e96821f420609b
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 22 20:45:51 2019 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Jun 23 14:55:35 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e54d537d

x11-misc/sddm: EAPI-7 bump, PAM groups, reuse sessions, HiDPI default

Package-Manager: Portage-2.3.67, Repoman-2.3.15
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 ...m-0.18.1-honor-PAM-supplemental-groups-v2.patch | 182 +++++++++++++++++++++
 .../sddm-0.18.1-only-reuse-online-sessions.patch   |  27 +++
 ...18.1-revert-honor-PAM-supplemental-groups.patch |  87 ++++++++++
 x11-misc/sddm/sddm-0.18.1-r1.ebuild                | 107 ++++++++++++
 4 files changed, 403 insertions(+)

diff --git a/x11-misc/sddm/files/sddm-0.18.1-honor-PAM-supplemental-groups-v2.patch b/x11-misc/sddm/files/sddm-0.18.1-honor-PAM-supplemental-groups-v2.patch
new file mode 100644
index 00000000000..f4ce7ae7ad7
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.18.1-honor-PAM-supplemental-groups-v2.patch
@@ -0,0 +1,182 @@
+From 75e6e00d9e1ecf25e3a9c8332530a1e40d737cdb Mon Sep 17 00:00:00 2001
+From: "J. Konrad Tegtmeier-Rottach" <jktr@0x16.de>
+Date: Thu, 9 May 2019 03:06:48 +0200
+Subject: [PATCH] Honor PAM's supplemental groups (v2) (#834, #1159)
+
+This moves the supplemental group initialization step from
+UserSession.cpp to the Backend system, so that the Pam Backend can
+inject additional supplemental groups via modules like pam_group.so.
+
+pam_setcred(3) assumes that it operates on an already initialized
+supplemental group list. However, PamBackend calls
+pam_setcred(PAM_ESTABLISH_CRED) earlier, at the start
+PamBackend::openSession, so a pam_setcred(PAM_REINITIALIZE_CRED) call
+must be issued to repeat the injection of PAM's supplemental groups.
+---
+ src/helper/Backend.cpp            |  5 +++++
+ src/helper/Backend.h              |  3 +++
+ src/helper/HelperApp.cpp          |  4 ++++
+ src/helper/HelperApp.h            |  1 +
+ src/helper/UserSession.cpp        | 13 ++++++++-----
+ src/helper/backend/PamBackend.cpp | 18 ++++++++++++++++++
+ src/helper/backend/PamBackend.h   |  2 ++
+ 7 files changed, 41 insertions(+), 5 deletions(-)
+
+diff --git a/src/helper/Backend.cpp b/src/helper/Backend.cpp
+index d6bb4d0a..35ae2bdf 100644
+--- a/src/helper/Backend.cpp
++++ b/src/helper/Backend.cpp
+@@ -29,6 +29,7 @@
+ #include <QtCore/QProcessEnvironment>
+ 
+ #include <pwd.h>
++#include <grp.h>
+ 
+ namespace SDDM {
+     Backend::Backend(HelperApp* parent)
+@@ -79,4 +80,8 @@ namespace SDDM {
+     bool Backend::closeSession() {
+         return true;
+     }
++
++    bool Backend::setupSupplementalGroups(struct passwd *pw) {
++        return !initgroups(pw->pw_name, pw->pw_gid);
++    }
+ }
+diff --git a/src/helper/Backend.h b/src/helper/Backend.h
+index b790e001..3caf1592 100644
+--- a/src/helper/Backend.h
++++ b/src/helper/Backend.h
+@@ -22,6 +22,7 @@
+ #define BACKEND_H
+ 
+ #include <QtCore/QObject>
++#include <pwd.h>
+ 
+ namespace SDDM {
+     class HelperApp;
+@@ -38,6 +39,8 @@ namespace SDDM {
+         void setAutologin(bool on = true);
+         void setGreeter(bool on = true);
+ 
++        virtual bool setupSupplementalGroups(struct passwd *pw);
++
+     public slots:
+         virtual bool start(const QString &user = QString()) = 0;
+         virtual bool authenticate() = 0;
+diff --git a/src/helper/HelperApp.cpp b/src/helper/HelperApp.cpp
+index cad93bd8..d0891d75 100644
+--- a/src/helper/HelperApp.cpp
++++ b/src/helper/HelperApp.cpp
+@@ -253,6 +253,10 @@ namespace SDDM {
+         return m_session;
+     }
+ 
++    Backend *HelperApp::backend() {
++        return m_backend;
++    }
++
+     const QString& HelperApp::user() const {
+         return m_user;
+     }
+diff --git a/src/helper/HelperApp.h b/src/helper/HelperApp.h
+index 3742df12..cb5959a7 100644
+--- a/src/helper/HelperApp.h
++++ b/src/helper/HelperApp.h
+@@ -39,6 +39,7 @@ namespace SDDM {
+         virtual ~HelperApp();
+ 
+         UserSession *session();
++        Backend *backend();
+         const QString &user() const;
+         const QString &cookie() const;
+ 
+diff --git a/src/helper/UserSession.cpp b/src/helper/UserSession.cpp
+index f71fd358..62fd4d70 100644
+--- a/src/helper/UserSession.cpp
++++ b/src/helper/UserSession.cpp
+@@ -19,6 +19,7 @@
+  *
+  */
+ 
++#include "Backend.h"
+ #include "Configuration.h"
+ #include "UserSession.h"
+ #include "HelperApp.h"
+@@ -129,7 +130,8 @@ namespace SDDM {
+ #endif
+ 
+         // switch user
+-        const QByteArray username = qobject_cast<HelperApp*>(parent())->user().toLocal8Bit();
++        HelperApp* app = qobject_cast<HelperApp*>(parent());
++        const QByteArray username = app->user().toLocal8Bit();
+         struct passwd pw;
+         struct passwd *rpw;
+         long bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);
+@@ -146,12 +148,13 @@ namespace SDDM {
+                 qCritical() << "getpwnam_r(" << username << ") failed with error: " << strerror(err);
+             exit(Auth::HELPER_OTHER_ERROR);
+         }
+-        if (setgid(pw.pw_gid) != 0) {
+-            qCritical() << "setgid(" << pw.pw_gid << ") failed for user: " << username;
++
++        if (!app->backend()->setupSupplementalGroups(&pw)) {
++            qCritical() << "failed to set up supplemental groups for user: " << username;
+             exit(Auth::HELPER_OTHER_ERROR);
+         }
+-        if (initgroups(pw.pw_name, pw.pw_gid) != 0) {
+-            qCritical() << "initgroups(" << pw.pw_name << ", " << pw.pw_gid << ") failed for user: " << username;
++        if (setgid(pw.pw_gid) != 0) {
++            qCritical() << "setgid(" << pw.pw_gid << ") failed for user: " << username;
+             exit(Auth::HELPER_OTHER_ERROR);
+         }
+         if (setuid(pw.pw_uid) != 0) {
+diff --git a/src/helper/backend/PamBackend.cpp b/src/helper/backend/PamBackend.cpp
+index f86d77d6..cccfa258 100644
+--- a/src/helper/backend/PamBackend.cpp
++++ b/src/helper/backend/PamBackend.cpp
+@@ -289,6 +289,24 @@ namespace SDDM {
+         return QString::fromLocal8Bit((const char*) m_pam->getItem(PAM_USER));
+     }
+ 
++    bool PamBackend::setupSupplementalGroups(struct passwd *pw) {
++        if (!Backend::setupSupplementalGroups(pw))
++            return false;
++
++        // pam_setcred(3) may inject additional groups into the user's
++        // list of supplemental groups, and assumes that the user's
++        // supplemental groups have already been initialized before
++        // its invocation. Since pam_setcred was already called at the
++        // start of openSession, we need to repeat this step here as
++        // the user's groups have only just now been initialized.
++
++        if (!m_pam->setCred(PAM_REINITIALIZE_CRED)) {
++            m_app->error(m_pam->errorString(), Auth::ERROR_AUTHENTICATION);
++            return false;
++        }
++        return true;
++    }
++
+     int PamBackend::converse(int n, const struct pam_message **msg, struct pam_response **resp) {
+         qDebug() << "[PAM] Conversation with" << n << "messages";
+ 
+diff --git a/src/helper/backend/PamBackend.h b/src/helper/backend/PamBackend.h
+index 4c8b4b35..5b079099 100644
+--- a/src/helper/backend/PamBackend.h
++++ b/src/helper/backend/PamBackend.h
+@@ -28,6 +28,7 @@
+ #include <QtCore/QObject>
+ 
+ #include <security/pam_appl.h>
++#include <pwd.h>
+ 
+ namespace SDDM {
+     class PamHandle;
+@@ -61,6 +62,7 @@ namespace SDDM {
+         explicit PamBackend(HelperApp *parent);
+         virtual ~PamBackend();
+         int converse(int n, const struct pam_message **msg, struct pam_response **resp);
++        virtual bool setupSupplementalGroups(struct passwd *pw);
+ 
+     public slots:
+         virtual bool start(const QString &user = QString());

diff --git a/x11-misc/sddm/files/sddm-0.18.1-only-reuse-online-sessions.patch b/x11-misc/sddm/files/sddm-0.18.1-only-reuse-online-sessions.patch
new file mode 100644
index 00000000000..b3ea90ff768
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.18.1-only-reuse-online-sessions.patch
@@ -0,0 +1,27 @@
+From f131270ff3ae6e6b4e2dc965cd05b46e194b48c1 Mon Sep 17 00:00:00 2001
+From: Fabian Vogt <fabian@ritter-vogt.de>
+Date: Tue, 31 Jul 2018 16:51:13 +0200
+Subject: [PATCH] Session reuse: Only consider "online" sessions
+
+Otherwise it might switch to already dead sessions ("closing" or "lingering").
+---
+ src/daemon/Display.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/daemon/Display.cpp b/src/daemon/Display.cpp
+index 86e597e..ec442b0 100644
+--- a/src/daemon/Display.cpp
++++ b/src/daemon/Display.cpp
+@@ -290,8 +290,8 @@ namespace SDDM {
+             foreach(const SessionInfo &s, reply.value()) {
+                 if (s.userName == user) {
+                     OrgFreedesktopLogin1SessionInterface session(Logind::serviceName(), s.sessionPath.path(), QDBusConnection::systemBus());
+-                    if (session.service() == QLatin1String("sddm")) {
+-                        m_reuseSessionId =  s.sessionId;
++                    if (session.service() == QLatin1String("sddm") && session.state() == QLatin1String("online")) {
++                        m_reuseSessionId = s.sessionId;
+                         break;
+                     }
+                 }
+-- 
+2.18.0

diff --git a/x11-misc/sddm/files/sddm-0.18.1-revert-honor-PAM-supplemental-groups.patch b/x11-misc/sddm/files/sddm-0.18.1-revert-honor-PAM-supplemental-groups.patch
new file mode 100644
index 00000000000..f14ff7670c8
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.18.1-revert-honor-PAM-supplemental-groups.patch
@@ -0,0 +1,87 @@
+From d3953e88a94ec25a87d3c5136517b3d1009cb1fd Mon Sep 17 00:00:00 2001
+From: "J. Konrad Tegtmeier-Rottach" <jktr@0x16.de>
+Date: Wed, 8 May 2019 18:58:53 +0200
+Subject: [PATCH] Revert "Honor PAM's ambient supplemental groups. (#834)"
+
+This reverts commit 1bc813d08b8130e458a6550ec47fb2bfbe6de080, which
+misuses PAM and leads to pulling in all of root's supplemental groups
+during session initialization instead of only adding PAM's extra
+groups. The problem was masked due to the root user not having any
+supplemental groups in some common contexts, like running sddm from a
+systemd unit.
+---
+ src/helper/UserSession.cpp | 57 --------------------------------------
+ 1 file changed, 57 deletions(-)
+
+diff --git a/src/helper/UserSession.cpp b/src/helper/UserSession.cpp
+index b3aec356..f71fd358 100644
+--- a/src/helper/UserSession.cpp
++++ b/src/helper/UserSession.cpp
+@@ -150,67 +150,10 @@ namespace SDDM {
+             qCritical() << "setgid(" << pw.pw_gid << ") failed for user: " << username;
+             exit(Auth::HELPER_OTHER_ERROR);
+         }
+-
+-#ifdef USE_PAM
+-
+-        // fetch ambient groups from PAM's environment;
+-        // these are set by modules such as pam_groups.so
+-        int n_pam_groups = getgroups(0, NULL);
+-        gid_t *pam_groups = NULL;
+-        if (n_pam_groups > 0) {
+-            pam_groups = new gid_t[n_pam_groups];
+-            if ((n_pam_groups = getgroups(n_pam_groups, pam_groups)) == -1) {
+-                qCritical() << "getgroups() failed to fetch supplemental"
+-                            << "PAM groups for user:" << username;
+-                exit(Auth::HELPER_OTHER_ERROR);
+-            }
+-        } else {
+-            n_pam_groups = 0;
+-        }
+-
+-        // fetch session's user's groups
+-        int n_user_groups = 0;
+-        gid_t *user_groups = NULL;
+-        if (-1 == getgrouplist(username.constData(), pw.pw_gid,
+-                               NULL, &n_user_groups)) {
+-            user_groups = new gid_t[n_user_groups];
+-            if ((n_user_groups = getgrouplist(username.constData(),
+-                                              pw.pw_gid, user_groups,
+-                                              &n_user_groups)) == -1 ) {
+-                qCritical() << "getgrouplist(" << username << ", " << pw.pw_gid
+-                            << ") failed";
+-                exit(Auth::HELPER_OTHER_ERROR);
+-            }
+-        }
+-
+-        // set groups to concatenation of PAM's ambient
+-        // groups and the session's user's groups
+-        int n_groups = n_pam_groups + n_user_groups;
+-        if (n_groups > 0) {
+-            gid_t *groups = new gid_t[n_groups];
+-            memcpy(groups, pam_groups, (n_pam_groups * sizeof(gid_t)));
+-            memcpy((groups + n_pam_groups), user_groups,
+-                   (n_user_groups * sizeof(gid_t)));
+-
+-            // setgroups(2) handles duplicate groups
+-            if (setgroups(n_groups, groups) != 0) {
+-                qCritical() << "setgroups() failed for user: " << username;
+-                exit (Auth::HELPER_OTHER_ERROR);
+-            }
+-            delete[] groups;
+-        }
+-        delete[] pam_groups;
+-        delete[] user_groups;
+-
+-#else
+-
+         if (initgroups(pw.pw_name, pw.pw_gid) != 0) {
+             qCritical() << "initgroups(" << pw.pw_name << ", " << pw.pw_gid << ") failed for user: " << username;
+             exit(Auth::HELPER_OTHER_ERROR);
+         }
+-
+-#endif /* USE_PAM */
+-
+         if (setuid(pw.pw_uid) != 0) {
+             qCritical() << "setuid(" << pw.pw_uid << ") failed for user: " << username;
+             exit(Auth::HELPER_OTHER_ERROR);

diff --git a/x11-misc/sddm/sddm-0.18.1-r1.ebuild b/x11-misc/sddm/sddm-0.18.1-r1.ebuild
new file mode 100644
index 00000000000..f0955a4b7f7
--- /dev/null
+++ b/x11-misc/sddm/sddm-0.18.1-r1.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PLOCALES="ar bn ca cs da de es et fi fr hi_IN hu is it ja kk ko lt lv nb nl nn pl pt_BR pt_PT ro ru sk sr sr@ijekavian sr@ijekavianlatin sr@latin sv tr uk zh_CN zh_TW"
+inherit cmake-utils l10n systemd 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"
+
+LICENSE="GPL-2+ MIT CC-BY-3.0 CC-BY-SA-3.0 public-domain"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="consolekit elogind +pam systemd test"
+
+REQUIRED_USE="?? ( elogind systemd )"
+
+BDEPEND="
+	dev-python/docutils
+	>=dev-qt/linguist-tools-5.9.4:5
+	kde-frameworks/extra-cmake-modules:5
+	virtual/pkgconfig
+"
+RDEPEND="
+	>=dev-qt/qtcore-5.9.4:5
+	>=dev-qt/qtdbus-5.9.4:5
+	>=dev-qt/qtdeclarative-5.9.4:5
+	>=dev-qt/qtgui-5.9.4:5
+	>=dev-qt/qtnetwork-5.9.4:5
+	>=x11-base/xorg-server-1.15.1
+	x11-libs/libxcb[xkb]
+	consolekit? ( >=sys-auth/consolekit-0.9.4 )
+	elogind? ( sys-auth/elogind )
+	pam? ( sys-libs/pam )
+	systemd? ( sys-apps/systemd:= )
+	!systemd? ( sys-power/upower )
+"
+DEPEND="${RDEPEND}
+	test? ( >=dev-qt/qttest-5.9.4:5 )
+"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-0.12.0-respect-user-flags.patch"
+	"${FILESDIR}/${PN}-0.18.0-Xsession.patch" # bug 611210
+	"${FILESDIR}/${PN}-0.18.0-sddmconfdir.patch"
+	# fix for groups: https://github.com/sddm/sddm/issues/1159
+	"${FILESDIR}/${P}-revert-honor-PAM-supplemental-groups.patch"
+	"${FILESDIR}/${P}-honor-PAM-supplemental-groups-v2.patch"
+	# fix for ReuseSession=true
+	"${FILESDIR}/${P}-only-reuse-online-sessions.patch"
+	# TODO: fix properly
+	"${FILESDIR}/${PN}-0.16.0-ck2-revert.patch" # bug 633920
+)
+
+src_prepare() {
+	cmake-utils_src_prepare
+
+	disable_locale() {
+		sed -e "/${1}\.ts/d" -i data/translations/CMakeLists.txt || die
+	}
+	l10n_find_plocales_changes "data/translations" "" ".ts"
+	l10n_for_each_disabled_locale_do disable_locale
+
+	if ! use test; then
+		sed -e "/^find_package/s/ Test//" -i CMakeLists.txt || die
+		cmake_comment_add_subdirectory test
+	fi
+}
+
+src_configure() {
+	local mycmakeargs=(
+		-DENABLE_PAM=$(usex pam)
+		-DNO_SYSTEMD=$(usex '!systemd')
+		-DUSE_ELOGIND=$(usex 'elogind')
+		-DBUILD_MAN_PAGES=ON
+		-DDBUS_CONFIG_FILENAME="org.freedesktop.sddm.conf"
+	)
+	cmake-utils_src_configure
+}
+
+src_install() {
+	cmake-utils_src_install
+
+	# Create a default.conf as upstream dropped /etc/sddm.conf w/o replacement
+	local confd="/usr/share/sddm/sddm.conf.d"
+	dodir ${confd}
+	"${D}"/usr/bin/sddm --example-config > "${D}/${confd}"/00default.conf \
+		|| die "Failed to create 00default.conf"
+
+	sed -e "/^InputMethod/s/qtvirtualkeyboard//" \
+		-e "/^ReuseSession/s/false/true/" \
+		-e "/^EnableHiDPI/s/false/true/" \
+		-i "${D}/${confd}"/00default.conf || die
+}
+
+pkg_postinst() {
+	elog "Starting with 0.18.0, SDDM no longer installs /etc/sddm.conf"
+	elog "Use it to override specific options. SDDM defaults are now"
+	elog "found in: /usr/share/sddm/sddm.conf.d/00default.conf"
+
+	enewgroup ${PN}
+	enewuser ${PN} -1 -1 /var/lib/${PN} ${PN},video
+
+	systemd_reenable sddm.service
+}


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-misc/sddm/files/, x11-misc/sddm/
@ 2021-08-25 14:36 Andreas Sturmlechner
  0 siblings, 0 replies; 14+ messages in thread
From: Andreas Sturmlechner @ 2021-08-25 14:36 UTC (permalink / raw
  To: gentoo-commits

commit:     e5812e3f2bf160145b0dbbe8fd18d9eafda72ce0
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 25 14:12:03 2021 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Aug 25 14:35:53 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e5812e3f

x11-misc/sddm: Fix build with Qt 5.15.2++

Upstream commit e93bf95c54ad8c2a1604f8d7be05339164b19308

Package-Manager: Portage-3.0.22, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 x11-misc/sddm/files/sddm-0.18.1-qt-5.15.2.patch | 23 +++++++++++++++++++++++
 x11-misc/sddm/sddm-0.18.1-r5.ebuild             |  2 ++
 2 files changed, 25 insertions(+)

diff --git a/x11-misc/sddm/files/sddm-0.18.1-qt-5.15.2.patch b/x11-misc/sddm/files/sddm-0.18.1-qt-5.15.2.patch
new file mode 100644
index 00000000000..7179d14e4c1
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.18.1-qt-5.15.2.patch
@@ -0,0 +1,23 @@
+From e93bf95c54ad8c2a1604f8d7be05339164b19308 Mon Sep 17 00:00:00 2001
+From: "aacid@kde.org" <aacid@kde.org>
+Date: Thu, 12 Nov 2020 23:42:48 +0100
+Subject: [PATCH] Fix compilation once QTBUG-88431 gets fixed
+
+And also comes closes to Qt6 compatibility
+---
+ src/daemon/XorgDisplayServer.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp
+index 5f93a1b3..d5f29a94 100644
+--- a/src/daemon/XorgDisplayServer.cpp
++++ b/src/daemon/XorgDisplayServer.cpp
+@@ -65,7 +65,7 @@ namespace SDDM {
+         // create a random hexadecimal number
+         const char *digits = "0123456789abcdef";
+         for (int i = 0; i < 32; ++i)
+-            m_cookie[i] = digits[dis(gen)];
++            m_cookie[i] = QLatin1Char(digits[dis(gen)]);
+     }
+ 
+     XorgDisplayServer::~XorgDisplayServer() {

diff --git a/x11-misc/sddm/sddm-0.18.1-r5.ebuild b/x11-misc/sddm/sddm-0.18.1-r5.ebuild
index 8f888089fe3..20b12756299 100644
--- a/x11-misc/sddm/sddm-0.18.1-r5.ebuild
+++ b/x11-misc/sddm/sddm-0.18.1-r5.ebuild
@@ -54,6 +54,8 @@ PATCHES=(
 	# TODO: fix properly
 	"${FILESDIR}/${PN}-0.16.0-ck2-revert.patch" # bug 633920
 	"${FILESDIR}/pam-1.4-substack.patch"
+	# upstream git develop branch:
+	"${FILESDIR}/${P}-qt-5.15.2.patch"
 )
 
 src_prepare() {


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-misc/sddm/files/, x11-misc/sddm/
@ 2023-06-18 18:53 Andreas Sturmlechner
  0 siblings, 0 replies; 14+ messages in thread
From: Andreas Sturmlechner @ 2023-06-18 18:53 UTC (permalink / raw
  To: gentoo-commits

commit:     6005bae9a3c36693a31521851a53fcd0aa2b443f
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 18 18:30:04 2023 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Jun 18 18:51:40 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6005bae9

x11-misc/sddm: Add 0.19.0_p20230608 snapshot w/o KEYWORDS

Short summary of changes:
- Drop IUSE pam, require elogind or systemd
- Drop obsolete default settings (now upstream defaults)
- Change RUNTIME_DIR path to "/run/sddm"
- Use upstream sddm-tmpfiles.conf
- Update dependencies
- Drop x11-base/xorg-server RDEPEND (only ensured xdm init script in past)
- Switch SDDM configuration to /etc/sddm.conf.d/
- Don't look for pam_systemd.so by default

Bug: https://bugs.gentoo.org/669980
Bug: https://bugs.gentoo.org/728550
Bug: https://bugs.gentoo.org/790713
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 x11-misc/sddm/Manifest                             |   1 +
 .../sddm-0.20.0-disable-etc-debian-check.patch     |  26 ++++
 ...sddm-0.20.0-no-default-pam_systemd-module.patch |  43 +++++++
 .../files/sddm-0.20.0-respect-user-flags.patch     |  11 ++
 .../files/sddm-0.20.0-sddm.pam-use-substack.patch  |  37 ++++++
 x11-misc/sddm/sddm-0.19.0_p20230608.ebuild         | 137 +++++++++++++++++++++
 6 files changed, 255 insertions(+)

diff --git a/x11-misc/sddm/Manifest b/x11-misc/sddm/Manifest
index d1006dba1575..4145f4344c73 100644
--- a/x11-misc/sddm/Manifest
+++ b/x11-misc/sddm/Manifest
@@ -1 +1,2 @@
 DIST sddm-0.18.1.tar.xz 3402972 BLAKE2B 99ab43d374e9a3d318f692a6d496d8a6d68927af3c8e8fc2208d7355ec90649a14758b39f5733dd32f942ed569de88085576d4f5f8666f4f97079e0fb6dcb99e SHA512 ff0637600cda2f4da1f643f047f8ee822bd9651ae4ccbb614b9804175c97360ada7af93e07a7b63832f014ef6e7d1b5380ab2b8959f8024ea520fa5ff17efd60
+DIST sddm-0.19.0_p20230608.tar.gz 3553104 BLAKE2B 41622866f28f9a2aee3b1f6f02f66271d8fe762da71d2215bb6b4b87418504ce321db81625a6cfab099bdaa395da1bf4153a65e795612e745546c2a42e97f270 SHA512 76a591a41d3f171c6c3ec5d57837d3061f3dd094ec1e08003f0bacd90c061613505c899ce0b86c7bd4c5f8c346f7bb15f9cd574377dcece123a756329a805562

diff --git a/x11-misc/sddm/files/sddm-0.20.0-disable-etc-debian-check.patch b/x11-misc/sddm/files/sddm-0.20.0-disable-etc-debian-check.patch
new file mode 100644
index 000000000000..b851c852cc9b
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.20.0-disable-etc-debian-check.patch
@@ -0,0 +1,26 @@
+From 20adb0eb3462e79ec76f93f2a622b99956145424 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Tue, 13 Oct 2020 01:04:44 +0200
+Subject: [PATCH] Disable /etc/debian_version check
+
+Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
+---
+ services/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/services/CMakeLists.txt b/services/CMakeLists.txt
+index 5032f33..afa5fd5 100644
+--- a/services/CMakeLists.txt
++++ b/services/CMakeLists.txt
+@@ -11,7 +11,7 @@ else()
+ endif()
+ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/sddm-greeter.pam.in" "${CMAKE_CURRENT_BINARY_DIR}/sddm-greeter.pam")
+ 
+-if(EXISTS "/etc/debian_version")
++if(0)
+     install(FILES debian.sddm-autologin.pam DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/pam.d RENAME sddm-autologin)
+     install(FILES debian.sddm-greeter.pam DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/pam.d RENAME sddm-greeter)
+     install(FILES debian.sddm.pam DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/pam.d RENAME sddm)
+-- 
+2.39.1
+

diff --git a/x11-misc/sddm/files/sddm-0.20.0-no-default-pam_systemd-module.patch b/x11-misc/sddm/files/sddm-0.20.0-no-default-pam_systemd-module.patch
new file mode 100644
index 000000000000..2ad739a86761
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.20.0-no-default-pam_systemd-module.patch
@@ -0,0 +1,43 @@
+From 02a13d11dac72699e7580c538c152a7b5e0eb056 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Tue, 13 Oct 2020 01:10:00 +0200
+Subject: Don't add pam_systemd.so to pam.d/sddm-greeter in case of NO_SYSTEMD
+
+---
+ services/CMakeLists.txt      | 7 +++++--
+ services/sddm-greeter.pam.in | 2 +-
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/services/CMakeLists.txt b/services/CMakeLists.txt
+index 3d12eec..2ff13a8 100644
+--- a/services/CMakeLists.txt
++++ b/services/CMakeLists.txt
+@@ -4,10 +4,13 @@ if(SYSTEMD_FOUND)
+     install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sddm.service" DESTINATION "${SYSTEMD_SYSTEM_UNIT_DIR}")
+ endif()
+ 
++set(LOGIND_PAM_MODULE "session		optional")
+ if(USE_ELOGIND)
+-    set(LOGIND_PAM_MODULE "pam_elogind.so")
++    set(LOGIND_PAM_MODULE "${LOGIND_PAM_MODULE}	pam_elogind.so")
++elseif(NOT NO_SYSTEMD)
++    set(LOGIND_PAM_MODULE "${LOGIND_PAM_MODULE}	pam_systemd.so")
+ else()
+-    set(LOGIND_PAM_MODULE "pam_systemd.so")
++    set(LOGIND_PAM_MODULE "")
+ endif()
+ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/sddm-greeter.pam.in" "${CMAKE_CURRENT_BINARY_DIR}/sddm-greeter.pam")
+ 
+diff --git a/services/sddm-greeter.pam.in b/services/sddm-greeter.pam.in
+index d41792d..35dcfd5 100644
+--- a/services/sddm-greeter.pam.in
++++ b/services/sddm-greeter.pam.in
+@@ -14,4 +14,4 @@ password	required pam_deny.so
+ 
+ # Setup session
+ session		required pam_unix.so
+-session		optional @LOGIND_PAM_MODULE@
++@LOGIND_PAM_MODULE@
+-- 
+2.35.1
+

diff --git a/x11-misc/sddm/files/sddm-0.20.0-respect-user-flags.patch b/x11-misc/sddm/files/sddm-0.20.0-respect-user-flags.patch
new file mode 100644
index 000000000000..daaf9f52dbcf
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.20.0-respect-user-flags.patch
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -51,7 +51,7 @@
+     message(STATUS "Debug build")
+     add_definitions(-DDEBUG)
+     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0")
+-else()
++elseif(CMAKE_BUILD_TYPE MATCHES Release)
+     message(STATUS "Release build")
+     add_definitions(-DNDEBUG)
+     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")

diff --git a/x11-misc/sddm/files/sddm-0.20.0-sddm.pam-use-substack.patch b/x11-misc/sddm/files/sddm-0.20.0-sddm.pam-use-substack.patch
new file mode 100644
index 000000000000..6267adc7dda8
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.20.0-sddm.pam-use-substack.patch
@@ -0,0 +1,37 @@
+From 9cbeb07664f4bd4273c2b62a522a864f6d4f27ae Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Sat, 4 Feb 2023 13:31:36 +0100
+Subject: [PATCH] sddm.pam: Change to substack for system-login
+
+Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
+---
+ services/sddm.pam | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/services/sddm.pam b/services/sddm.pam
+index df11003..0a073f4 100644
+--- a/services/sddm.pam
++++ b/services/sddm.pam
+@@ -1,15 +1,15 @@
+ #%PAM-1.0
+ 
+-auth        include     system-login
++auth        substack    system-login
+ -auth       optional    pam_gnome_keyring.so
+ -auth       optional    pam_kwallet5.so
+ 
+-account     include     system-login
++account     substack    system-login
+ 
+-password    include     system-login
++password    substack    system-login
+ -password   optional    pam_gnome_keyring.so    use_authtok
+ 
+ session     optional    pam_keyinit.so          force revoke
+-session     include     system-login
++session     substack    system-login
+ -session    optional    pam_gnome_keyring.so    auto_start
+ -session    optional    pam_kwallet5.so         auto_start
+-- 
+2.39.1
+

diff --git a/x11-misc/sddm/sddm-0.19.0_p20230608.ebuild b/x11-misc/sddm/sddm-0.19.0_p20230608.ebuild
new file mode 100644
index 000000000000..40d21b378104
--- /dev/null
+++ b/x11-misc/sddm/sddm-0.19.0_p20230608.ebuild
@@ -0,0 +1,137 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+COMMIT=40250a647291ea0cf587631c79f61903ced075e3
+if [[ ${PV} == *9999* ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/${PN}/${PN}.git"
+else
+	SRC_URI="https://github.com/${PN}/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+	S="${WORKDIR}/${PN}-${COMMIT}"
+	KEYWORDS=""
+fi
+
+QTMIN=5.15.2
+inherit cmake linux-info optfeature systemd tmpfiles
+
+DESCRIPTION="Simple Desktop Display Manager"
+HOMEPAGE="https://github.com/sddm/sddm"
+
+LICENSE="GPL-2+ MIT CC-BY-3.0 CC-BY-SA-3.0 public-domain"
+SLOT="0"
+IUSE="+elogind systemd test"
+
+REQUIRED_USE="^^ ( elogind systemd )"
+RESTRICT="!test? ( test )"
+
+COMMON_DEPEND="
+	acct-group/sddm
+	acct-user/sddm
+	>=dev-qt/qtcore-${QTMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	sys-libs/pam
+	x11-libs/libXau
+	x11-libs/libxcb:=
+	elogind? ( sys-auth/elogind[pam] )
+	systemd? ( sys-apps/systemd:=[pam] )
+	!systemd? ( sys-power/upower )
+"
+DEPEND="${COMMON_DEPEND}
+	test? ( >=dev-qt/qttest-${QTMIN}:5 )
+"
+RDEPEND="${COMMON_DEPEND}
+	!systemd? ( gui-libs/display-manager-init )
+"
+BDEPEND="
+	dev-python/docutils
+	>=dev-qt/linguist-tools-${QTMIN}:5
+	kde-frameworks/extra-cmake-modules:5
+	virtual/pkgconfig
+"
+
+PATCHES=(
+	# Downstream patches
+	"${FILESDIR}/${PN}-0.20.0-respect-user-flags.patch"
+	"${FILESDIR}/${PN}-0.18.1-Xsession.patch" # bug 611210
+	"${FILESDIR}/${PN}-0.20.0-sddm.pam-use-substack.patch" # bug 728550
+	"${FILESDIR}/${PN}-0.20.0-disable-etc-debian-check.patch"
+	"${FILESDIR}/${PN}-0.20.0-no-default-pam_systemd-module.patch" # bug 669980
+)
+
+pkg_setup() {
+	local CONFIG_CHECK="~DRM"
+	use kernel_linux && linux-info_pkg_setup
+}
+
+src_prepare() {
+	touch 01gentoo.conf || die
+
+cat <<-EOF >> 01gentoo.conf
+[General]
+# Remove qtvirtualkeyboard as InputMethod default
+InputMethod=
+EOF
+
+	cmake_src_prepare
+
+	if ! use test; then
+		sed -e "/^find_package/s/ Test//" -i CMakeLists.txt || die
+		cmake_comment_add_subdirectory test
+	fi
+}
+
+src_configure() {
+	local mycmakeargs=(
+		-DBUILD_MAN_PAGES=ON
+		-DDBUS_CONFIG_FILENAME="org.freedesktop.sddm.conf"
+		-DRUNTIME_DIR=/run/sddm
+		-DSYSTEMD_TMPFILES_DIR="/usr/lib/tmpfiles.d"
+		-DNO_SYSTEMD=$(usex !systemd)
+		-DUSE_ELOGIND=$(usex elogind)
+	)
+	cmake_src_configure
+}
+
+src_install() {
+	cmake_src_install
+
+	insinto /etc/sddm.conf.d/
+	doins "${S}"/01gentoo.conf
+}
+
+pkg_postinst() {
+	tmpfiles_process "${PN}.conf"
+
+	elog "NOTE: If SDDM startup appears to hang then entropy pool is too low."
+	elog "This can be fixed by configuring one of the following:"
+	elog "  - Enable CONFIG_RANDOM_TRUST_CPU in linux kernel"
+	elog "  - # emerge sys-apps/haveged && rc-update add haveged boot"
+	elog "  - # emerge sys-apps/rng-tools && rc-update add rngd boot"
+	elog
+	elog "SDDM example config can be shown with:"
+	elog "  ${EROOT}/usr/bin/sddm --example-config"
+	elog "Use ${EROOT}/etc/sddm.conf.d/ directory to override specific options."
+	elog
+	elog "For more information on how to configure SDDM, please visit the wiki:"
+	elog "  https://wiki.gentoo.org/wiki/SDDM"
+	if has_version x11-drivers/nvidia-drivers; then
+		elog
+		elog "  Nvidia GPU owners in particular should pay attention"
+		elog "  to the troubleshooting section."
+	fi
+
+	optfeature "X11 DisplayServer support" x11-base/xorg-server
+	optfeature "Weston DisplayServer support (EXPERIMENTAL)" dev-libs/weston
+	optfeature "KWin DisplayServer support (EXPERIMENTAL)" kde-plasma/kwin
+
+	if has_version x11-base/xorg-server; then
+		ewarn "SDDM version no longer pulls in x11-base/xorg-server via USE=X."
+	fi
+
+	systemd_reenable sddm.service
+}


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-misc/sddm/files/, x11-misc/sddm/
@ 2024-03-09  0:16 Andreas Sturmlechner
  0 siblings, 0 replies; 14+ messages in thread
From: Andreas Sturmlechner @ 2024-03-09  0:16 UTC (permalink / raw
  To: gentoo-commits

commit:     34ed989923e6cf1c509d2f2fc113ce23e9c2e314
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Fri Mar  8 23:57:41 2024 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Mar  9 00:03:06 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=34ed9899

x11-misc/sddm: move 0.18.1 patches into patchset tarball

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 x11-misc/sddm/Manifest                             |   3 +-
 x11-misc/sddm/files/pam-1.4-substack.patch         |  31 ----
 x11-misc/sddm/files/sddm-0.18.0-sddmconfdir.patch  |  32 ----
 .../sddm/files/sddm-0.18.1-cve-2020-28049.patch    |  94 -----------
 .../files/sddm-0.18.1-drop-wayland-suffix.patch    |  28 ----
 .../sddm/files/sddm-0.18.1-fix-qt-5.15.7.patch     |  33 ----
 ...m-0.18.1-honor-PAM-supplemental-groups-v2.patch | 182 ---------------------
 .../sddm-0.18.1-nvidia-glitches-vt-switch.patch    |  46 ------
 .../sddm-0.18.1-only-reuse-online-sessions.patch   |  27 ---
 x11-misc/sddm/files/sddm-0.18.1-qt-5.15.2.patch    |  23 ---
 .../files/sddm-0.18.1-respect-user-flags.patch     |  25 ---
 ...18.1-revert-honor-PAM-supplemental-groups.patch |  87 ----------
 x11-misc/sddm/files/sddm.tmpfiles                  |   1 -
 x11-misc/sddm/sddm-0.18.1-r8.ebuild                |  32 ++--
 14 files changed, 19 insertions(+), 625 deletions(-)

diff --git a/x11-misc/sddm/Manifest b/x11-misc/sddm/Manifest
index 57ed50b91404..1a53a302692c 100644
--- a/x11-misc/sddm/Manifest
+++ b/x11-misc/sddm/Manifest
@@ -1,4 +1,5 @@
+DIST sddm-0.18.1-patchset.tar.xz 7860 BLAKE2B b79738c58f19ebac24dd790ba7613d85ae78bc0c5161d35249e13ddbac3acefff2753b8d92fa47a73a607b3105310ea5d05e1a5a170068030fe28420ffee88b1 SHA512 30ca961f065188d570b1498f9eea5aeafb31ab53b7e9ce41e98e26cba12f8c16a245fffb25ea4d84c6fb9037a24523cd41acc9a8b140a1420282435c9497d9b4
 DIST sddm-0.18.1.tar.xz 3402972 BLAKE2B 99ab43d374e9a3d318f692a6d496d8a6d68927af3c8e8fc2208d7355ec90649a14758b39f5733dd32f942ed569de88085576d4f5f8666f4f97079e0fb6dcb99e SHA512 ff0637600cda2f4da1f643f047f8ee822bd9651ae4ccbb614b9804175c97360ada7af93e07a7b63832f014ef6e7d1b5380ab2b8959f8024ea520fa5ff17efd60
 DIST sddm-0.20.0.tar.gz 3552722 BLAKE2B 8086c9555d5ce1598db3279353de077d51adbcc5222a929750e8558a1bcdad395a411f90608bffdc6e1ca7e7ac2b8325e25cf04cbf8476698d787ce7e60c2105 SHA512 0f64b405f1451873a01a2210530feb6f4cbbdea17be9d039c105088963a48322968db7b60c0d20ac5d97c8ec2a19e5130f0a74c0f9de58c61453d8ce8bb6272a
-DIST sddm-0.21.0.tar.gz 3557266 BLAKE2B 849cb8b06b9510e5366ea28ef322c242db7d5a77d94c0a5a727f468209880a717055ad8b0c2f5a857852202a4d6bc1f68281fe0e0ab3c6a32327b5a4219af3a0 SHA512 2e8e460e7f318f20a406dcbb1a9fa1dc78b6a5b8d888bfbbaae22b9c642dbc49cf2ac682b4ea9ed847bbafa9bdc361ba08795e59cad970088b370caaaa70f458
 DIST sddm-0.21.0-pam.tar.xz 676 BLAKE2B 06a79f74a5833eca9877df4be8639311382d13061b21aa3627e6c4b07725878ded62221fca943440bacc143f6be2a23b2e0a2124012ff2c9fac82e1eded11144 SHA512 6d91eef2434346f7707122454522cf19f104994ac95d562417f6060a92b4e6c9792bebcccabac8290479200b4ba02fc4d92c6098c435c7ceda796d619d8913c2
+DIST sddm-0.21.0.tar.gz 3557266 BLAKE2B 849cb8b06b9510e5366ea28ef322c242db7d5a77d94c0a5a727f468209880a717055ad8b0c2f5a857852202a4d6bc1f68281fe0e0ab3c6a32327b5a4219af3a0 SHA512 2e8e460e7f318f20a406dcbb1a9fa1dc78b6a5b8d888bfbbaae22b9c642dbc49cf2ac682b4ea9ed847bbafa9bdc361ba08795e59cad970088b370caaaa70f458

diff --git a/x11-misc/sddm/files/pam-1.4-substack.patch b/x11-misc/sddm/files/pam-1.4-substack.patch
deleted file mode 100644
index b0467b268228..000000000000
--- a/x11-misc/sddm/files/pam-1.4-substack.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- sddm-0.18.1/services/sddm-autologin.pam.bak	2020-06-19 22:27:57.305580696 +0200
-+++ sddm-0.18.1/services/sddm-autologin.pam	2020-06-19 22:30:50.513583973 +0200
-@@ -1,6 +1,5 @@
- #%PAM-1.0
- auth        required    pam_env.so
--auth        required    pam_tally.so file=/var/log/faillog onerr=succeed
- auth        required    pam_shells.so
- auth        required    pam_nologin.so
- auth        required    pam_permit.so
---- sddm-0.18.1/services/sddm.pam.bak	2020-06-19 22:27:26.721580117 +0200
-+++ sddm-0.18.1/services/sddm.pam	2020-06-19 22:27:48.729580533 +0200
-@@ -1,15 +1,15 @@
- #%PAM-1.0
- 
--auth		include		system-login
-+auth		substack		system-login
- -auth		optional	pam_gnome_keyring.so
- -auth   optional  pam_kwallet5.so
- 
--account		include		system-login
-+account		substack		system-login
- 
--password	include		system-login
-+password	substack		system-login
- -password	optional	pam_gnome_keyring.so use_authtok
- 
- session		optional	pam_keyinit.so force revoke
--session		include		system-login
-+session		substack		system-login
- -session		optional	pam_gnome_keyring.so auto_start
- -session  optional  pam_kwallet5.so auto_start
\ No newline at end of file

diff --git a/x11-misc/sddm/files/sddm-0.18.0-sddmconfdir.patch b/x11-misc/sddm/files/sddm-0.18.0-sddmconfdir.patch
deleted file mode 100644
index 9d8f2b545a1e..000000000000
--- a/x11-misc/sddm/files/sddm-0.18.0-sddmconfdir.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 300078995ae82495cf09a0646a07e0214f0ae030 Mon Sep 17 00:00:00 2001
-From: Andreas Sturmlechner <andreas.sturmlechner@gmail.com>
-Date: Sat, 21 Jul 2018 22:41:29 +0200
-Subject: [PATCH] Change location of sddm.conf.d to DATAROOTDIR
-
-/usr/lib is not a location that should be hardcoded - depending on
-distribution and architecture this can be different. So far, SDDM
-does not use this path unless the above conditions happen to make
-it coincide with the install location of its Qml modules.
-
-DATAROOTDIR is defined as: Read-only architecture-independent data.
-This seems to be a better fit for a system SDDM default config dir.
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 8500c65..5150b7d 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -184,7 +184,7 @@ set(WAYLAND_SESSION_COMMAND     "${DATA_INSTALL_DIR}/scripts/wayland-session"
- 
- set(CONFIG_FILE                 "${CMAKE_INSTALL_FULL_SYSCONFDIR}/sddm.conf"        CACHE PATH      "Path of the sddm config file")
- set(CONFIG_DIR                  "${CMAKE_INSTALL_FULL_SYSCONFDIR}/sddm.conf.d"      CACHE PATH      "Path of the sddm config directory")
--set(SYSTEM_CONFIG_DIR           "${CMAKE_INSTALL_PREFIX}/lib/sddm/sddm.conf.d"      CACHE PATH      "Path of the system sddm config directory")
-+set(SYSTEM_CONFIG_DIR           "${CMAKE_INSTALL_FULL_DATAROOTDIR}/sddm/sddm.conf.d" CACHE PATH      "Path of the system sddm config directory")
- set(LOG_FILE                    "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/log/sddm.log"  CACHE PATH      "Path of the sddm log file")
- set(DBUS_CONFIG_FILENAME        "org.freedesktop.DisplayManager.conf"               CACHE STRING    "Name of the sddm config file")
- set(COMPONENTS_TRANSLATION_DIR  "${DATA_INSTALL_DIR}/translations"                  CACHE PATH      "Components translations directory")
--- 
-2.18.0
-

diff --git a/x11-misc/sddm/files/sddm-0.18.1-cve-2020-28049.patch b/x11-misc/sddm/files/sddm-0.18.1-cve-2020-28049.patch
deleted file mode 100644
index 8209c0739dc6..000000000000
--- a/x11-misc/sddm/files/sddm-0.18.1-cve-2020-28049.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From be202f533ab98a684c6a007e8d5b4357846bc222 Mon Sep 17 00:00:00 2001
-From: Fabian Vogt <fabian@ritter-vogt.de>
-Date: Tue, 6 Oct 2020 21:21:38 +0200
-Subject: [PATCH] Fix X not having access control on startup
-
-If the auth file is empty, X allows any local application (= any user on the
-system) to connect. This is currently the case until X wrote the display
-number to sddm and sddm used that to write the entry into the file.
-To work around this chicken-and-egg problem, make use of the fact that X
-doesn't actually look at the display number in the passed auth file and just
-use :0 unconditionally. Also make sure that writing the entry was actually
-successful.
-
-CVE-2020-28049
----
- src/daemon/XorgDisplayServer.cpp | 25 ++++++++++++++++++++-----
- src/daemon/XorgDisplayServer.h   |  2 +-
- 2 files changed, 21 insertions(+), 6 deletions(-)
-
-diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp
-index d04f6344..df685b2d 100644
---- a/src/daemon/XorgDisplayServer.cpp
-+++ b/src/daemon/XorgDisplayServer.cpp
-@@ -88,7 +88,7 @@ namespace SDDM {
-         return m_cookie;
-     }
- 
--    void XorgDisplayServer::addCookie(const QString &file) {
-+    bool XorgDisplayServer::addCookie(const QString &file) {
-         // log message
-         qDebug() << "Adding cookie to" << file;
- 
-@@ -104,13 +104,13 @@ namespace SDDM {
- 
-         // check file
-         if (!fp)
--            return;
-+            return false;
-         fprintf(fp, "remove %s\n", qPrintable(m_display));
-         fprintf(fp, "add %s . %s\n", qPrintable(m_display), qPrintable(m_cookie));
-         fprintf(fp, "exit\n");
- 
-         // close pipe
--        pclose(fp);
-+        return pclose(fp) == 0;
-     }
- 
-     bool XorgDisplayServer::start() {
-@@ -127,6 +127,15 @@ namespace SDDM {
-         // log message
-         qDebug() << "Display server starting...";
- 
-+        // generate auth file.
-+        // For the X server's copy, the display number doesn't matter.
-+        // An empty file would result in no access control!
-+        m_display = QStringLiteral(":0");
-+        if(!addCookie(m_authPath)) {
-+            qCritical() << "Failed to write xauth file";
-+            return false;
-+        }
-+
-         if (daemonApp->testing()) {
-             QStringList args;
-             QDir x11socketDir(QStringLiteral("/tmp/.X11-unix"));
-@@ -217,8 +226,14 @@ namespace SDDM {
-             emit started();
-         }
- 
--        // generate auth file
--        addCookie(m_authPath);
-+        // The file is also used by the greeter, which does care about the
-+        // display number. Write the proper entry, if it's different.
-+        if(m_display != QStringLiteral(":0")) {
-+            if(!addCookie(m_authPath)) {
-+                qCritical() << "Failed to write xauth file";
-+                return false;
-+            }
-+        }
-         changeOwner(m_authPath);
- 
-         // set flag
-diff --git a/src/daemon/XorgDisplayServer.h b/src/daemon/XorgDisplayServer.h
-index d2bdf6d4..e97a0b53 100644
---- a/src/daemon/XorgDisplayServer.h
-+++ b/src/daemon/XorgDisplayServer.h
-@@ -40,7 +40,7 @@ namespace SDDM {
- 
-         const QString &cookie() const;
- 
--        void addCookie(const QString &file);
-+        bool addCookie(const QString &file);
- 
-     public slots:
-         bool start();

diff --git a/x11-misc/sddm/files/sddm-0.18.1-drop-wayland-suffix.patch b/x11-misc/sddm/files/sddm-0.18.1-drop-wayland-suffix.patch
deleted file mode 100644
index 70efa284803f..000000000000
--- a/x11-misc/sddm/files/sddm-0.18.1-drop-wayland-suffix.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 9a440ba5917ff93c6a78726380c6267d91c13f19 Mon Sep 17 00:00:00 2001
-From: Alex <alex.shaw.as@gmail.com>
-Date: Mon, 30 Sep 2019 16:50:16 -0400
-Subject: [PATCH] Prevent duplicate session name.
-
-Several desktop sessions (e.g. KDE Plasma) already include the string " (Wayland)" in the session name. When this happens, the session name displayed to the user is "Plasma (Wayland) (Wayland)". This change makes it so that only "Plasma (Wayland)" will be displayed.
-
-(cherry picked from commit f9a0648ff3f841b68a07c139c3540b9e75bfd279)
----
- src/common/Session.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/common/Session.cpp b/src/common/Session.cpp
-index aa4dad3..923ecd4 100644
---- a/src/common/Session.cpp
-+++ b/src/common/Session.cpp
-@@ -169,7 +169,7 @@ namespace SDDM {
- 
-             if (line.startsWith(QLatin1String("Name="))) {
-                 if (type == WaylandSession)
--                    m_displayName = QObject::tr("%1 (Wayland)").arg(line.mid(5));
-+                    m_displayName = QObject::tr("%1").arg(line.mid(5));
-                 else
-                     m_displayName = line.mid(5);
-             }
--- 
-2.38.1
-

diff --git a/x11-misc/sddm/files/sddm-0.18.1-fix-qt-5.15.7.patch b/x11-misc/sddm/files/sddm-0.18.1-fix-qt-5.15.7.patch
deleted file mode 100644
index 65e9b8573356..000000000000
--- a/x11-misc/sddm/files/sddm-0.18.1-fix-qt-5.15.7.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 5fe712d0e73c6263647bf306f40fbac94a52f4a6 Mon Sep 17 00:00:00 2001
-From: Harald Sitter <sitter@kde.org>
-Date: Mon, 24 Oct 2022 13:15:48 +0200
-Subject: disable automatic portal launching
-
-in Qt6 (and the KDE patch collection for Qt 5) genericunixservices will
-internally attempt to probe the portal tech early on in the app life
-cycle. this causes the protal system to launch app and then crash
-because we aren't actually providing a fully functional session. instead
-opt out of this altogether
-
-(cherry picked from commit fc24321541f6f65b7d1aac89cd82336ffd53e1a0)
----
- src/greeter/GreeterApp.cpp | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/greeter/GreeterApp.cpp b/src/greeter/GreeterApp.cpp
-index 4e117a7..a491f4d 100644
---- a/src/greeter/GreeterApp.cpp
-+++ b/src/greeter/GreeterApp.cpp
-@@ -318,6 +318,9 @@ int main(int argc, char **argv)
-         QSurfaceFormat::setDefaultFormat(format);
-     }
- 
-+    // Qt internally may load the xdg portal system early on, prevent this, we do not have a functional session running.
-+    qputenv("QT_NO_XDG_DESKTOP_PORTAL", "1");
-+
-     QGuiApplication app(argc, argv);
- 
-     QCommandLineParser parser;
--- 
-2.38.1
-

diff --git a/x11-misc/sddm/files/sddm-0.18.1-honor-PAM-supplemental-groups-v2.patch b/x11-misc/sddm/files/sddm-0.18.1-honor-PAM-supplemental-groups-v2.patch
deleted file mode 100644
index f4ce7ae7ad73..000000000000
--- a/x11-misc/sddm/files/sddm-0.18.1-honor-PAM-supplemental-groups-v2.patch
+++ /dev/null
@@ -1,182 +0,0 @@
-From 75e6e00d9e1ecf25e3a9c8332530a1e40d737cdb Mon Sep 17 00:00:00 2001
-From: "J. Konrad Tegtmeier-Rottach" <jktr@0x16.de>
-Date: Thu, 9 May 2019 03:06:48 +0200
-Subject: [PATCH] Honor PAM's supplemental groups (v2) (#834, #1159)
-
-This moves the supplemental group initialization step from
-UserSession.cpp to the Backend system, so that the Pam Backend can
-inject additional supplemental groups via modules like pam_group.so.
-
-pam_setcred(3) assumes that it operates on an already initialized
-supplemental group list. However, PamBackend calls
-pam_setcred(PAM_ESTABLISH_CRED) earlier, at the start
-PamBackend::openSession, so a pam_setcred(PAM_REINITIALIZE_CRED) call
-must be issued to repeat the injection of PAM's supplemental groups.
----
- src/helper/Backend.cpp            |  5 +++++
- src/helper/Backend.h              |  3 +++
- src/helper/HelperApp.cpp          |  4 ++++
- src/helper/HelperApp.h            |  1 +
- src/helper/UserSession.cpp        | 13 ++++++++-----
- src/helper/backend/PamBackend.cpp | 18 ++++++++++++++++++
- src/helper/backend/PamBackend.h   |  2 ++
- 7 files changed, 41 insertions(+), 5 deletions(-)
-
-diff --git a/src/helper/Backend.cpp b/src/helper/Backend.cpp
-index d6bb4d0a..35ae2bdf 100644
---- a/src/helper/Backend.cpp
-+++ b/src/helper/Backend.cpp
-@@ -29,6 +29,7 @@
- #include <QtCore/QProcessEnvironment>
- 
- #include <pwd.h>
-+#include <grp.h>
- 
- namespace SDDM {
-     Backend::Backend(HelperApp* parent)
-@@ -79,4 +80,8 @@ namespace SDDM {
-     bool Backend::closeSession() {
-         return true;
-     }
-+
-+    bool Backend::setupSupplementalGroups(struct passwd *pw) {
-+        return !initgroups(pw->pw_name, pw->pw_gid);
-+    }
- }
-diff --git a/src/helper/Backend.h b/src/helper/Backend.h
-index b790e001..3caf1592 100644
---- a/src/helper/Backend.h
-+++ b/src/helper/Backend.h
-@@ -22,6 +22,7 @@
- #define BACKEND_H
- 
- #include <QtCore/QObject>
-+#include <pwd.h>
- 
- namespace SDDM {
-     class HelperApp;
-@@ -38,6 +39,8 @@ namespace SDDM {
-         void setAutologin(bool on = true);
-         void setGreeter(bool on = true);
- 
-+        virtual bool setupSupplementalGroups(struct passwd *pw);
-+
-     public slots:
-         virtual bool start(const QString &user = QString()) = 0;
-         virtual bool authenticate() = 0;
-diff --git a/src/helper/HelperApp.cpp b/src/helper/HelperApp.cpp
-index cad93bd8..d0891d75 100644
---- a/src/helper/HelperApp.cpp
-+++ b/src/helper/HelperApp.cpp
-@@ -253,6 +253,10 @@ namespace SDDM {
-         return m_session;
-     }
- 
-+    Backend *HelperApp::backend() {
-+        return m_backend;
-+    }
-+
-     const QString& HelperApp::user() const {
-         return m_user;
-     }
-diff --git a/src/helper/HelperApp.h b/src/helper/HelperApp.h
-index 3742df12..cb5959a7 100644
---- a/src/helper/HelperApp.h
-+++ b/src/helper/HelperApp.h
-@@ -39,6 +39,7 @@ namespace SDDM {
-         virtual ~HelperApp();
- 
-         UserSession *session();
-+        Backend *backend();
-         const QString &user() const;
-         const QString &cookie() const;
- 
-diff --git a/src/helper/UserSession.cpp b/src/helper/UserSession.cpp
-index f71fd358..62fd4d70 100644
---- a/src/helper/UserSession.cpp
-+++ b/src/helper/UserSession.cpp
-@@ -19,6 +19,7 @@
-  *
-  */
- 
-+#include "Backend.h"
- #include "Configuration.h"
- #include "UserSession.h"
- #include "HelperApp.h"
-@@ -129,7 +130,8 @@ namespace SDDM {
- #endif
- 
-         // switch user
--        const QByteArray username = qobject_cast<HelperApp*>(parent())->user().toLocal8Bit();
-+        HelperApp* app = qobject_cast<HelperApp*>(parent());
-+        const QByteArray username = app->user().toLocal8Bit();
-         struct passwd pw;
-         struct passwd *rpw;
-         long bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);
-@@ -146,12 +148,13 @@ namespace SDDM {
-                 qCritical() << "getpwnam_r(" << username << ") failed with error: " << strerror(err);
-             exit(Auth::HELPER_OTHER_ERROR);
-         }
--        if (setgid(pw.pw_gid) != 0) {
--            qCritical() << "setgid(" << pw.pw_gid << ") failed for user: " << username;
-+
-+        if (!app->backend()->setupSupplementalGroups(&pw)) {
-+            qCritical() << "failed to set up supplemental groups for user: " << username;
-             exit(Auth::HELPER_OTHER_ERROR);
-         }
--        if (initgroups(pw.pw_name, pw.pw_gid) != 0) {
--            qCritical() << "initgroups(" << pw.pw_name << ", " << pw.pw_gid << ") failed for user: " << username;
-+        if (setgid(pw.pw_gid) != 0) {
-+            qCritical() << "setgid(" << pw.pw_gid << ") failed for user: " << username;
-             exit(Auth::HELPER_OTHER_ERROR);
-         }
-         if (setuid(pw.pw_uid) != 0) {
-diff --git a/src/helper/backend/PamBackend.cpp b/src/helper/backend/PamBackend.cpp
-index f86d77d6..cccfa258 100644
---- a/src/helper/backend/PamBackend.cpp
-+++ b/src/helper/backend/PamBackend.cpp
-@@ -289,6 +289,24 @@ namespace SDDM {
-         return QString::fromLocal8Bit((const char*) m_pam->getItem(PAM_USER));
-     }
- 
-+    bool PamBackend::setupSupplementalGroups(struct passwd *pw) {
-+        if (!Backend::setupSupplementalGroups(pw))
-+            return false;
-+
-+        // pam_setcred(3) may inject additional groups into the user's
-+        // list of supplemental groups, and assumes that the user's
-+        // supplemental groups have already been initialized before
-+        // its invocation. Since pam_setcred was already called at the
-+        // start of openSession, we need to repeat this step here as
-+        // the user's groups have only just now been initialized.
-+
-+        if (!m_pam->setCred(PAM_REINITIALIZE_CRED)) {
-+            m_app->error(m_pam->errorString(), Auth::ERROR_AUTHENTICATION);
-+            return false;
-+        }
-+        return true;
-+    }
-+
-     int PamBackend::converse(int n, const struct pam_message **msg, struct pam_response **resp) {
-         qDebug() << "[PAM] Conversation with" << n << "messages";
- 
-diff --git a/src/helper/backend/PamBackend.h b/src/helper/backend/PamBackend.h
-index 4c8b4b35..5b079099 100644
---- a/src/helper/backend/PamBackend.h
-+++ b/src/helper/backend/PamBackend.h
-@@ -28,6 +28,7 @@
- #include <QtCore/QObject>
- 
- #include <security/pam_appl.h>
-+#include <pwd.h>
- 
- namespace SDDM {
-     class PamHandle;
-@@ -61,6 +62,7 @@ namespace SDDM {
-         explicit PamBackend(HelperApp *parent);
-         virtual ~PamBackend();
-         int converse(int n, const struct pam_message **msg, struct pam_response **resp);
-+        virtual bool setupSupplementalGroups(struct passwd *pw);
- 
-     public slots:
-         virtual bool start(const QString &user = QString());

diff --git a/x11-misc/sddm/files/sddm-0.18.1-nvidia-glitches-vt-switch.patch b/x11-misc/sddm/files/sddm-0.18.1-nvidia-glitches-vt-switch.patch
deleted file mode 100644
index ab2fc18cbcbf..000000000000
--- a/x11-misc/sddm/files/sddm-0.18.1-nvidia-glitches-vt-switch.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 76c11653522453efcf86f6f2f53bca1a497ea350 Mon Sep 17 00:00:00 2001
-From: David Edmundson <kde@davidedmundson.co.uk>
-Date: Thu, 28 Mar 2019 11:43:37 +0000
-Subject: Enable QSurfaceFormat::ResetNotification on new Qt
-
-This fixes graphical glitches on nvidia after VT switching.
-
-It's opt-in as it requires code paths to handle glGetError differently.
-The version comparison is because my early implementations missed a code
-path. This was fixed in 5.12.2, but we may as well play safe
-
-(cherry picked from commit cd4e1fa21e1ab7178fa5d2ef858f3271575fd315)
----
- src/greeter/GreeterApp.cpp | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/src/greeter/GreeterApp.cpp b/src/greeter/GreeterApp.cpp
-index d47998e..4e117a7 100644
---- a/src/greeter/GreeterApp.cpp
-+++ b/src/greeter/GreeterApp.cpp
-@@ -40,6 +40,9 @@
- #include <QDebug>
- #include <QTimer>
- #include <QTranslator>
-+#include <QLibraryInfo>
-+#include <QVersionNumber>
-+#include <QSurfaceFormat>
- 
- #include <iostream>
- 
-@@ -309,6 +312,12 @@ int main(int argc, char **argv)
-         qDebug() << "High-DPI autoscaling not Enabled";
-     }
- 
-+    if (QLibraryInfo::version() >= QVersionNumber(5, 13, 0)) {
-+        auto format(QSurfaceFormat::defaultFormat());
-+        format.setOption(QSurfaceFormat::ResetNotification);
-+        QSurfaceFormat::setDefaultFormat(format);
-+    }
-+
-     QGuiApplication app(argc, argv);
- 
-     QCommandLineParser parser;
--- 
-2.38.1
-

diff --git a/x11-misc/sddm/files/sddm-0.18.1-only-reuse-online-sessions.patch b/x11-misc/sddm/files/sddm-0.18.1-only-reuse-online-sessions.patch
deleted file mode 100644
index b3ea90ff768c..000000000000
--- a/x11-misc/sddm/files/sddm-0.18.1-only-reuse-online-sessions.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From f131270ff3ae6e6b4e2dc965cd05b46e194b48c1 Mon Sep 17 00:00:00 2001
-From: Fabian Vogt <fabian@ritter-vogt.de>
-Date: Tue, 31 Jul 2018 16:51:13 +0200
-Subject: [PATCH] Session reuse: Only consider "online" sessions
-
-Otherwise it might switch to already dead sessions ("closing" or "lingering").
----
- src/daemon/Display.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/daemon/Display.cpp b/src/daemon/Display.cpp
-index 86e597e..ec442b0 100644
---- a/src/daemon/Display.cpp
-+++ b/src/daemon/Display.cpp
-@@ -290,8 +290,8 @@ namespace SDDM {
-             foreach(const SessionInfo &s, reply.value()) {
-                 if (s.userName == user) {
-                     OrgFreedesktopLogin1SessionInterface session(Logind::serviceName(), s.sessionPath.path(), QDBusConnection::systemBus());
--                    if (session.service() == QLatin1String("sddm")) {
--                        m_reuseSessionId =  s.sessionId;
-+                    if (session.service() == QLatin1String("sddm") && session.state() == QLatin1String("online")) {
-+                        m_reuseSessionId = s.sessionId;
-                         break;
-                     }
-                 }
--- 
-2.18.0

diff --git a/x11-misc/sddm/files/sddm-0.18.1-qt-5.15.2.patch b/x11-misc/sddm/files/sddm-0.18.1-qt-5.15.2.patch
deleted file mode 100644
index 7179d14e4c1e..000000000000
--- a/x11-misc/sddm/files/sddm-0.18.1-qt-5.15.2.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From e93bf95c54ad8c2a1604f8d7be05339164b19308 Mon Sep 17 00:00:00 2001
-From: "aacid@kde.org" <aacid@kde.org>
-Date: Thu, 12 Nov 2020 23:42:48 +0100
-Subject: [PATCH] Fix compilation once QTBUG-88431 gets fixed
-
-And also comes closes to Qt6 compatibility
----
- src/daemon/XorgDisplayServer.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp
-index 5f93a1b3..d5f29a94 100644
---- a/src/daemon/XorgDisplayServer.cpp
-+++ b/src/daemon/XorgDisplayServer.cpp
-@@ -65,7 +65,7 @@ namespace SDDM {
-         // create a random hexadecimal number
-         const char *digits = "0123456789abcdef";
-         for (int i = 0; i < 32; ++i)
--            m_cookie[i] = digits[dis(gen)];
-+            m_cookie[i] = QLatin1Char(digits[dis(gen)]);
-     }
- 
-     XorgDisplayServer::~XorgDisplayServer() {

diff --git a/x11-misc/sddm/files/sddm-0.18.1-respect-user-flags.patch b/x11-misc/sddm/files/sddm-0.18.1-respect-user-flags.patch
deleted file mode 100644
index 6801fa799ead..000000000000
--- a/x11-misc/sddm/files/sddm-0.18.1-respect-user-flags.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- a/CMakeLists.txt	2020-10-12 13:03:39.000000000 +0200
-+++ b/CMakeLists.txt	2020-10-12 23:40:04.480687143 +0200
-@@ -41,22 +41,6 @@
- # Definitions
- add_definitions(-Wall -std=c++11 -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_FOREACH)
- 
--# Default build type
--if(NOT CMAKE_BUILD_TYPE)
--    set(CMAKE_BUILD_TYPE Release)
--endif()
--
--# Handle build type
--if(CMAKE_BUILD_TYPE MATCHES [Dd]ebug)
--    message(STATUS "Debug build")
--    add_definitions(-DDEBUG)
--    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0")
--else()
--    message(STATUS "Release build")
--    add_definitions(-DNDEBUG)
--    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
--endif()
--
- # Default absolute paths
- if(NOT DEFINED CMAKE_INSTALL_SYSCONFDIR)
-     set(CMAKE_INSTALL_SYSCONFDIR "/etc")

diff --git a/x11-misc/sddm/files/sddm-0.18.1-revert-honor-PAM-supplemental-groups.patch b/x11-misc/sddm/files/sddm-0.18.1-revert-honor-PAM-supplemental-groups.patch
deleted file mode 100644
index f14ff7670c88..000000000000
--- a/x11-misc/sddm/files/sddm-0.18.1-revert-honor-PAM-supplemental-groups.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From d3953e88a94ec25a87d3c5136517b3d1009cb1fd Mon Sep 17 00:00:00 2001
-From: "J. Konrad Tegtmeier-Rottach" <jktr@0x16.de>
-Date: Wed, 8 May 2019 18:58:53 +0200
-Subject: [PATCH] Revert "Honor PAM's ambient supplemental groups. (#834)"
-
-This reverts commit 1bc813d08b8130e458a6550ec47fb2bfbe6de080, which
-misuses PAM and leads to pulling in all of root's supplemental groups
-during session initialization instead of only adding PAM's extra
-groups. The problem was masked due to the root user not having any
-supplemental groups in some common contexts, like running sddm from a
-systemd unit.
----
- src/helper/UserSession.cpp | 57 --------------------------------------
- 1 file changed, 57 deletions(-)
-
-diff --git a/src/helper/UserSession.cpp b/src/helper/UserSession.cpp
-index b3aec356..f71fd358 100644
---- a/src/helper/UserSession.cpp
-+++ b/src/helper/UserSession.cpp
-@@ -150,67 +150,10 @@ namespace SDDM {
-             qCritical() << "setgid(" << pw.pw_gid << ") failed for user: " << username;
-             exit(Auth::HELPER_OTHER_ERROR);
-         }
--
--#ifdef USE_PAM
--
--        // fetch ambient groups from PAM's environment;
--        // these are set by modules such as pam_groups.so
--        int n_pam_groups = getgroups(0, NULL);
--        gid_t *pam_groups = NULL;
--        if (n_pam_groups > 0) {
--            pam_groups = new gid_t[n_pam_groups];
--            if ((n_pam_groups = getgroups(n_pam_groups, pam_groups)) == -1) {
--                qCritical() << "getgroups() failed to fetch supplemental"
--                            << "PAM groups for user:" << username;
--                exit(Auth::HELPER_OTHER_ERROR);
--            }
--        } else {
--            n_pam_groups = 0;
--        }
--
--        // fetch session's user's groups
--        int n_user_groups = 0;
--        gid_t *user_groups = NULL;
--        if (-1 == getgrouplist(username.constData(), pw.pw_gid,
--                               NULL, &n_user_groups)) {
--            user_groups = new gid_t[n_user_groups];
--            if ((n_user_groups = getgrouplist(username.constData(),
--                                              pw.pw_gid, user_groups,
--                                              &n_user_groups)) == -1 ) {
--                qCritical() << "getgrouplist(" << username << ", " << pw.pw_gid
--                            << ") failed";
--                exit(Auth::HELPER_OTHER_ERROR);
--            }
--        }
--
--        // set groups to concatenation of PAM's ambient
--        // groups and the session's user's groups
--        int n_groups = n_pam_groups + n_user_groups;
--        if (n_groups > 0) {
--            gid_t *groups = new gid_t[n_groups];
--            memcpy(groups, pam_groups, (n_pam_groups * sizeof(gid_t)));
--            memcpy((groups + n_pam_groups), user_groups,
--                   (n_user_groups * sizeof(gid_t)));
--
--            // setgroups(2) handles duplicate groups
--            if (setgroups(n_groups, groups) != 0) {
--                qCritical() << "setgroups() failed for user: " << username;
--                exit (Auth::HELPER_OTHER_ERROR);
--            }
--            delete[] groups;
--        }
--        delete[] pam_groups;
--        delete[] user_groups;
--
--#else
--
-         if (initgroups(pw.pw_name, pw.pw_gid) != 0) {
-             qCritical() << "initgroups(" << pw.pw_name << ", " << pw.pw_gid << ") failed for user: " << username;
-             exit(Auth::HELPER_OTHER_ERROR);
-         }
--
--#endif /* USE_PAM */
--
-         if (setuid(pw.pw_uid) != 0) {
-             qCritical() << "setuid(" << pw.pw_uid << ") failed for user: " << username;
-             exit(Auth::HELPER_OTHER_ERROR);

diff --git a/x11-misc/sddm/files/sddm.tmpfiles b/x11-misc/sddm/files/sddm.tmpfiles
deleted file mode 100644
index 300d646138c1..000000000000
--- a/x11-misc/sddm/files/sddm.tmpfiles
+++ /dev/null
@@ -1 +0,0 @@
-d /var/lib/sddm 0755 sddm sddm

diff --git a/x11-misc/sddm/sddm-0.18.1-r8.ebuild b/x11-misc/sddm/sddm-0.18.1-r8.ebuild
index 6464035cf707..0f35ab30d4eb 100644
--- a/x11-misc/sddm/sddm-0.18.1-r8.ebuild
+++ b/x11-misc/sddm/sddm-0.18.1-r8.ebuild
@@ -1,13 +1,15 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
 
+PATCHSET="${P}-patchset"
 inherit cmake linux-info systemd tmpfiles
 
 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"
+SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz
+	https://dev.gentoo.org/~asturm/distfiles/${PATCHSET}.tar.xz"
 
 LICENSE="GPL-2+ MIT CC-BY-3.0 CC-BY-SA-3.0 public-domain"
 SLOT="0"
@@ -47,22 +49,22 @@ BDEPEND="
 "
 
 PATCHES=(
-	"${FILESDIR}/${P}-respect-user-flags.patch"
-	"${FILESDIR}/${P}-Xsession.patch" # bug 611210
-	"${FILESDIR}/${PN}-0.18.0-sddmconfdir.patch"
+	"${WORKDIR}/${PATCHSET}/${P}-respect-user-flags.patch"
+	"${WORKDIR}/${PATCHSET}/${P}-Xsession.patch" # bug 611210
+	"${WORKDIR}/${PATCHSET}/${PN}-0.18.0-sddmconfdir.patch"
 	# fix for groups: https://github.com/sddm/sddm/issues/1159
-	"${FILESDIR}/${P}-revert-honor-PAM-supplemental-groups.patch"
-	"${FILESDIR}/${P}-honor-PAM-supplemental-groups-v2.patch"
+	"${WORKDIR}/${PATCHSET}/${P}-revert-honor-PAM-supplemental-groups.patch"
+	"${WORKDIR}/${PATCHSET}/${P}-honor-PAM-supplemental-groups-v2.patch"
 	# fix for ReuseSession=true
-	"${FILESDIR}/${P}-only-reuse-online-sessions.patch"
+	"${WORKDIR}/${PATCHSET}/${P}-only-reuse-online-sessions.patch"
 	# TODO: fix properly
-	"${FILESDIR}/pam-1.4-substack.patch"
+	"${WORKDIR}/${PATCHSET}/pam-1.4-substack.patch"
 	# upstream git develop branch:
-	"${FILESDIR}/${P}-qt-5.15.2.patch"
-	"${FILESDIR}/${P}-cve-2020-28049.patch" # bug 753104
-	"${FILESDIR}/${P}-nvidia-glitches-vt-switch.patch"
-	"${FILESDIR}/${P}-drop-wayland-suffix.patch"
-	"${FILESDIR}/${P}-fix-qt-5.15.7.patch" # KDE-bug 458865
+	"${WORKDIR}/${PATCHSET}/${P}-qt-5.15.2.patch"
+	"${WORKDIR}/${PATCHSET}/${P}-cve-2020-28049.patch" # bug 753104
+	"${WORKDIR}/${PATCHSET}/${P}-nvidia-glitches-vt-switch.patch"
+	"${WORKDIR}/${PATCHSET}/${P}-drop-wayland-suffix.patch"
+	"${WORKDIR}/${PATCHSET}/${P}-fix-qt-5.15.7.patch" # KDE-bug 458865
 )
 
 pkg_setup() {
@@ -93,7 +95,7 @@ src_configure() {
 src_install() {
 	cmake_src_install
 
-	newtmpfiles "${FILESDIR}/${PN}.tmpfiles" "${PN}.conf"
+	newtmpfiles "${WORKDIR}/${PATCHSET}/${PN}.tmpfiles" "${PN}.conf"
 
 	# Create a default.conf as upstream dropped /etc/sddm.conf w/o replacement
 	local confd="/usr/share/sddm/sddm.conf.d"


^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2024-03-09  0:16 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-16 20:08 [gentoo-commits] repo/gentoo:master commit in: x11-misc/sddm/files/, x11-misc/sddm/ Jauhien Piatlicki
  -- strict thread matches above, loose matches on Subject: below --
2024-03-09  0:16 Andreas Sturmlechner
2023-06-18 18:53 Andreas Sturmlechner
2021-08-25 14:36 Andreas Sturmlechner
2019-06-23 14:55 Andreas Sturmlechner
2018-11-13 21:30 Andreas Sturmlechner
2018-07-22 11:21 Andreas Sturmlechner
2017-03-25  2:49 Michael Palimaka
2016-12-23 16:42 Johannes Huber
2016-08-28 12:58 Manuel Rüger
2016-05-05 17:07 Michael Palimaka
2016-03-02 19:23 Michael Palimaka
2015-10-17 10:08 Jauhien Piatlicki
2015-09-09 20:39 Jauhien Piatlicki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox