commit:     63dc5de0f0108967ade6a8339b917f19c5e1e882
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 13 17:36:00 2018 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Tue Nov 13 17:38:11 2018 +0000
URL:        https://gitweb.gentoo.org/proj/qt.git/commit/?id=63dc5de0

x11-misc/sddm: Sync with 0.18.0 from Gentoo ebuild repository

Add USE elogind support
Use l10n and systemd eclass
Raise to Qt 5.9.4 minimum
Switch to https
Update maintainers

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

 ....patch => sddm-0.12.0-respect-user-flags.patch} |   0
 x11-misc/sddm/files/sddm-0.16.0-ck2-revert.patch   |  20 ++++
 x11-misc/sddm/files/sddm-0.18.0-Xsession.patch     |  24 +++++
 x11-misc/sddm/files/sddm-9999-consolekit.patch     |  11 ---
 x11-misc/sddm/metadata.xml                         |  14 ++-
 x11-misc/sddm/sddm-9999.ebuild                     | 104 +++++++++++++--------
 6 files changed, 116 insertions(+), 57 deletions(-)

diff --git a/x11-misc/sddm/files/sddm-9999-respect-user-flags.patch 
b/x11-misc/sddm/files/sddm-0.12.0-respect-user-flags.patch
similarity index 100%
rename from x11-misc/sddm/files/sddm-9999-respect-user-flags.patch
rename to x11-misc/sddm/files/sddm-0.12.0-respect-user-flags.patch

diff --git a/x11-misc/sddm/files/sddm-0.16.0-ck2-revert.patch 
b/x11-misc/sddm/files/sddm-0.16.0-ck2-revert.patch
new file mode 100644
index 00000000..bbe2a272
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.16.0-ck2-revert.patch
@@ -0,0 +1,20 @@
+SDDM 0.16.0 fails to start with consolekit2 because it assumes consolekit2
+has the same interface names as logind.
+
+This patch forces sddm to use legacy behaviour when consolekit2 is detected.
+
+Bug: https://bugs.gentoo.org/633920
+Bug: https://github.com/sddm/sddm/issues/903
+Bug: https://github.com/ConsoleKit2/ConsoleKit2/issues/99
+
+--- a/src/daemon/LogindDBusTypes.cpp
++++ b/src/daemon/LogindDBusTypes.cpp
+@@ -60,7 +60,7 @@
+ 
+     if 
(QDBusConnection::systemBus().interface()->isServiceRegistered(QStringLiteral("org.freedesktop.ConsoleKit")))
 {
+         qDebug() << "Console kit interface found";
+-        available = true;
++        available = false;
+         serviceName = QStringLiteral("org.freedesktop.ConsoleKit");
+         managerPath = QStringLiteral("/org/freedesktop/ConsoleKit/Manager");
+         managerIfaceName = 
QStringLiteral("/org.freedesktop.ConsoleKit.Manager"); //note this doesn't 
match logind

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 00000000..41c813a0
--- /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-9999-consolekit.patch 
b/x11-misc/sddm/files/sddm-9999-consolekit.patch
deleted file mode 100644
index 692ee174..00000000
--- a/x11-misc/sddm/files/sddm-9999-consolekit.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/data/scripts/Xsession b/data/scripts/Xsession
-index 0c923a8..eae4f28 100755
---- a/data/scripts/Xsession
-+++ b/data/scripts/Xsession
-@@ -91,5 +91,5 @@ fi
- 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/metadata.xml b/x11-misc/sddm/metadata.xml
index 292acc2a..43cf40aa 100644
--- a/x11-misc/sddm/metadata.xml
+++ b/x11-misc/sddm/metadata.xml
@@ -1,16 +1,17 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
 <pkgmetadata>
-       <maintainer type="person">
-               <email>[email protected]</email>
-               <name>Jauhien Piatlicki</name>
-       </maintainer>
        <maintainer type="project">
                <email>[email protected]</email>
                <name>LXQt</name>
        </maintainer>
+       <maintainer type="project">
+               <email>[email protected]</email>
+               <name>Gentoo KDE Project</name>
+       </maintainer>
        <use>
-               <flag name="consolekit">Use ck-launch-session from 
sys-auth/consolekit by default in Xsession (no native support)</flag>
+               <flag name="consolekit">Use ck-launch-session from 
sys-auth/consolekit (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
@@ -18,4 +19,7 @@
                turn gives the designer the ability to create smooth, animated
                user interfaces.
        </longdescription>
+       <upstream>
+               <remote-id type="github">sddm/sddm</remote-id>
+       </upstream>
 </pkgmetadata>

diff --git a/x11-misc/sddm/sddm-9999.ebuild b/x11-misc/sddm/sddm-9999.ebuild
index 62e892d9..ab2baac2 100644
--- a/x11-misc/sddm/sddm-9999.ebuild
+++ b/x11-misc/sddm/sddm-9999.ebuild
@@ -1,79 +1,101 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
-inherit cmake-utils git-r3 user
+
+if [[ ${PV} == *9999* ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/${PN}/${PN}.git";
+else
+       
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.gz";
+       KEYWORDS="amd64 ~arm ~arm64 x86"
+fi
+
+PLOCALES="ar bn ca cs da de es et fi fr hi_IN hu ie 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";
-EGIT_REPO_URI="git://github.com/${PN}/${PN}.git"
-KEYWORDS=""
 
 LICENSE="GPL-2+ MIT CC-BY-3.0 CC-BY-SA-3.0 public-domain"
 SLOT="0"
-IUSE="consolekit +pam systemd"
+IUSE="consolekit elogind +pam systemd test"
 
-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
+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(-)]
+       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 ) )"
+       !systemd? ( sys-power/upower )"
 
 DEPEND="${RDEPEND}
        dev-python/docutils
-       >=dev-qt/linguist-tools-5.6:5
-       >=dev-qt/qttest-5.6:5
+       >=dev-qt/linguist-tools-5.9.4:5
        kde-frameworks/extra-cmake-modules
-       virtual/pkgconfig"
+       virtual/pkgconfig
+       test? ( >=dev-qt/qttest-5.9.4:5 )"
 
-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
-}
+PATCHES=(
+       "${FILESDIR}/${PN}-0.12.0-respect-user-flags.patch" # fix for flags 
handling and bug 563108
+       "${FILESDIR}/${PN}-0.18.0-Xsession.patch" # bug 611210
+       # TODO: fix properly
+       "${FILESDIR}/${PN}-0.16.0-ck2-revert.patch" # bug 633920
+)
 
 src_prepare() {
-       # fix for flags handling and bug 563108
-       eapply "${FILESDIR}/${P}-respect-user-flags.patch"
-       use consolekit && eapply "${FILESDIR}/${P}-consolekit.patch"
-
        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/lib/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() {
+       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/lib/sddm/sddm.conf.d/00default.conf"
+
        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
+       systemd_reenable sddm.service
 }

Reply via email to