commit:     1fd761de928d583a300453d80527e50616ea271a
Author:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 26 23:37:23 2019 +0000
Commit:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Wed Feb 27 00:02:09 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1fd761de

gnome-base/gdm: bump to 3.30.3 - now always runs on VT1

GDM 3.30 has support for killing the login screen when not in use
and the login screen (gdm used gnome-shell) is running with wayland.
This will save a lot of memory when effective, as gnome-shell and
I believe also gnome-settings-daemon and its plugins don't need to
keep running anymore after having logged in. Memory wins between
100-300MB are to be expected.
However if wayland isn't used or gnome-shell crashes with wayland
(probably quite likely with gnome-shell-3.26 or older), then the
only win is not having an agetty opened on VT1, which saves some
~600kB RAM.

All this new code assumes the default VT1 is used for gdm. If we
keep passing VT7 for initial VT, gdm just never shows a login screen
until user manually switches to VT7 with Alt+F7. Instead of making
that work, just always use VT1 for now like a good modern distro.
We will see later how this works out for non-systemd, but currently
the package still hard requires systemd anyways.

Also drops obsolete sessreg dependency - it was used in the PostSession
and co script in the past, but doesn't seem to have been for a long
long time. If someone still configures it to be called in their
local session scripts, they'll have to install it themselves, as we
don't need it imposed on everyone when it's not used out of the box.

Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>

 gnome-base/gdm/Manifest                    |   1 +
 gnome-base/gdm/files/gdm-3.30.3-logo.patch |  26 ++++
 gnome-base/gdm/gdm-3.30.3.ebuild           | 201 +++++++++++++++++++++++++++++
 3 files changed, 228 insertions(+)

diff --git a/gnome-base/gdm/Manifest b/gnome-base/gdm/Manifest
index a88429ce191..be50dd83945 100644
--- a/gnome-base/gdm/Manifest
+++ b/gnome-base/gdm/Manifest
@@ -1,3 +1,4 @@
 DIST gdm-3.24.3.tar.xz 1113992 BLAKE2B 
79ae5ccf0477779bdb05cea4f0e8b2766caee0552efe8fe044da655037bfd603f1e4ab89a4eb0687f786bf44e9fd1c27e07bc498a769c8f88f0cc22b2dd1c9b1
 SHA512 
d8edffb582545f452ec071990fd7d07d6cb755458bc77a9e1b807816f8202f70fc8177e4bb345125075347942c6760c5a5460e3570dc32ee2570ecc15e5f3345
 DIST gdm-3.26.2.1.tar.xz 1119568 BLAKE2B 
42ccd3d30a5b22124777792ea3e0bb003771df1d3c5a729d29ff14efe5c6365a82126e6b204301b22dd51e4aaffcef4e018b8fdda45eb52e3b76bd921aca9312
 SHA512 
4a0009935f2f86803a4dd6cdc01c80c9ee89fb8a71f82ffa6fadb16322e4c7f51d82e0e887c30aa09d1b242c3cc82a1ec0d83463e5d8942719a747f6945cbec9
+DIST gdm-3.30.3.tar.xz 1261224 BLAKE2B 
338f946a24d2a7e4b3cf34ac6accff01f8e7ce5032ee4ce79a96b1a755693e09788c6225e45de9a91ae4afea595a0562511104a467e561ec179c3ad61810468f
 SHA512 
17aed5bf7d27b07553703873cda28a711d6135497d36e4c241bcf1ab3552b31007cc241dab394dccf8a4f1daccf7d55ba39edf91f4b22bdea5c2aa1ea17404b8
 DIST tango-gentoo-v1.1.tar.gz 29322 BLAKE2B 
83fa2bf37727e60851dd679054fe1b153ebfea58c9a9a40f891f7d68d3b047b02e8effa1d1b4e08d64500a2072ce7200f159c92a352da7124de27e1b05bb6027
 SHA512 
87d47ddab68361db6d99866c51705dcb3e198f8345a1096859acf2c6cca5099dd23c7fb30d124f52c4933ea38fd45fadffbbe6ecbdfa84f5b60938a4824f9045

diff --git a/gnome-base/gdm/files/gdm-3.30.3-logo.patch 
b/gnome-base/gdm/files/gdm-3.30.3-logo.patch
new file mode 100644
index 00000000000..8d82b2ed7a6
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-3.30.3-logo.patch
@@ -0,0 +1,26 @@
+From bcc651df77a429a6bf9b13892f71fedb1b87a069 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <e...@gentoo.org>
+Date: Wed, 11 Dec 2013 22:46:58 +0100
+Subject: [PATCH 4/4] Apply Gentoo branding
+
+Leio: updated to apply after conversion away from intltool
+---
+ data/org.gnome.login-screen.gschema.xml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/org.gnome.login-screen.gschema.xml 
b/data/org.gnome.login-screen.gschema.xml
+index 03da374..5e81bc0 100644
+--- a/data/org.gnome.login-screen.gschema.xml
++++ b/data/org.gnome.login-screen.gschema.xml
+@@ -31,7 +31,7 @@
+       </description>
+     </key>
+     <key name="logo" type="s">
+-      <default>''</default>
++      <default>'/usr/share/pixmaps/gentoo-gdm.svg'</default>
+       <summary>
+         Path to small image at top of user list
+       </summary>
+-- 
+1.8.5.1
+

diff --git a/gnome-base/gdm/gdm-3.30.3.ebuild b/gnome-base/gdm/gdm-3.30.3.ebuild
new file mode 100644
index 00000000000..1b23de4ad55
--- /dev/null
+++ b/gnome-base/gdm/gdm-3.30.3.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+GNOME2_LA_PUNT="yes"
+
+inherit eutils gnome2 pam readme.gentoo-r1 systemd udev user
+
+DESCRIPTION="GNOME Display Manager for managing graphical display servers and 
user logins"
+HOMEPAGE="https://wiki.gnome.org/Projects/GDM";
+
+SRC_URI="${SRC_URI}
+       branding? ( 
https://www.mail-archive.com/tango-artists@lists.freedesktop.org/msg00043/tango-gentoo-v1.1.tar.gz
 )
+"
+
+LICENSE="
+       GPL-2+
+       branding? ( CC-BY-SA-4.0 )
+"
+
+SLOT="0"
+
+IUSE="accessibility audit branding fprint +introspection ipv6 plymouth selinux 
smartcard tcpd test wayland xinerama"
+
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sh ~x86"
+
+# NOTE: x11-base/xorg-server dep is for X_SERVER_PATH etc, bug #295686
+# nspr used by smartcard extension
+# dconf, dbus and g-s-d are needed at install time for dconf update
+# We need either systemd or >=openrc-0.12 to restart gdm properly, bug #463784
+COMMON_DEPEND="
+       app-text/iso-codes
+       >=dev-libs/glib-2.44:2
+       >=x11-libs/gtk+-2.91.1:3
+       >=gnome-base/dconf-0.20
+       >=gnome-base/gnome-settings-daemon-3.1.4
+       gnome-base/gsettings-desktop-schemas
+       >=media-libs/fontconfig-2.5.0:1.0
+       >=media-libs/libcanberra-0.4[gtk3]
+       sys-apps/dbus
+       >=sys-apps/accountsservice-0.6.35
+
+       x11-base/xorg-server
+       x11-libs/libXau
+       x11-libs/libX11
+       x11-libs/libXdmcp
+       x11-libs/libXext
+       x11-libs/libxcb
+       >=x11-misc/xdg-utils-1.0.2-r3
+
+       virtual/pam
+       >=sys-apps/systemd-186:0=[pam]
+
+       sys-auth/pambase[systemd]
+
+       audit? ( sys-process/audit )
+       introspection? ( >=dev-libs/gobject-introspection-0.9.12:= )
+       plymouth? ( sys-boot/plymouth )
+       selinux? ( sys-libs/libselinux )
+       tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
+       xinerama? ( x11-libs/libXinerama )
+"
+# XXX: These deps are from session and desktop files in data/ directory
+# fprintd is used via dbus by gdm-fingerprint-extension
+# gnome-session-3.6 needed to avoid freezing with orca
+RDEPEND="${COMMON_DEPEND}
+       >=gnome-base/gnome-session-3.6
+       >=gnome-base/gnome-shell-3.1.90
+       x11-apps/xhost
+
+       accessibility? (
+               >=app-accessibility/orca-3.10
+               gnome-extra/mousetweaks )
+       fprint? (
+               sys-auth/fprintd
+               sys-auth/pam_fprint )
+
+       !gnome-extra/fast-user-switch-applet
+"
+DEPEND="${COMMON_DEPEND}
+       app-text/docbook-xml-dtd:4.1.2
+       dev-util/gdbus-codegen
+       dev-util/glib-utils
+       dev-util/itstool
+       >=sys-devel/gettext-0.19.8
+       virtual/pkgconfig
+       x11-base/xorg-proto
+       test? ( >=dev-libs/check-0.9.4 )
+"
+
+DOC_CONTENTS="
+       To make GDM start at boot, run:\n
+       # systemctl enable gdm.service\n
+       \n
+       For passwordless login to unlock your keyring, you need to install
+       sys-auth/pambase with USE=gnome-keyring and set an empty password
+       on your keyring. Use app-crypt/seahorse for that.\n
+       \n
+       You may need to install app-crypt/coolkey and sys-auth/pam_pkcs11
+       for smartcard support
+"
+
+pkg_setup() {
+       enewgroup gdm
+       enewgroup video # Just in case it hasn't been created yet
+       enewuser gdm -1 -1 /var/lib/gdm gdm,video
+
+       # For compatibility with certain versions of nvidia-drivers, etc., need 
to
+       # ensure that gdm user is in the video group
+       if ! egetent group video | grep -q gdm; then
+               # FIXME XXX: is this at all portable, ldap-safe, etc.?
+               # XXX: egetent does not have a 1-argument form, so we can't use 
it to
+               # get the list of gdm's groups
+               local g=$(groups gdm)
+               elog "Adding user gdm to video group"
+               usermod -G video,${g// /,} gdm || die "Adding user gdm to video 
group failed"
+       fi
+}
+
+src_prepare() {
+       # ssh-agent handling must be done at xinitrc.d, bug #220603
+       eapply "${FILESDIR}/${PN}-2.32.0-xinitrc-ssh-agent.patch"
+
+       # Gentoo does not have a fingerprint-auth pam stack
+       eapply "${FILESDIR}/${PN}-3.8.4-fingerprint-auth.patch"
+
+       # Show logo when branding is enabled
+       use branding && eapply "${FILESDIR}/${PN}-3.30.3-logo.patch"
+
+       gnome2_src_prepare
+}
+
+src_configure() {
+       # PAM is the only auth scheme supported
+       # even though configure lists shadow and crypt
+       # they don't have any corresponding code.
+       # --with-at-spi-registryd-directory= needs to be passed explicitly 
because
+       # of https://bugzilla.gnome.org/show_bug.cgi?id=607643#c4
+       # Xevie is obsolete, bug #482304
+
+       # --with-initial-vt=7 conflicts with plymouth, bug #453392
+       # gdm-3.30 now reaps (stops) the login screen when the login VT isn't 
active, which
+       # saves on memory. However this means if we don't start on VT1, gdm 
doesn't start up
+       # before user manually goes to VT7. Thus as-is we can not keep gdm away 
from VT1,
+       # so lets try always having it in VT1 and see if that is an issue for 
people before
+       # hacking up workarounds for the initial start case.
+       # ! use plymouth && myconf="${myconf} --with-initial-vt=7"
+
+       gnome2_src_configure \
+               --enable-gdm-xsession \
+               --enable-user-display-server \
+               --with-run-dir=/run/gdm \
+               --localstatedir="${EPREFIX}"/var \
+               --disable-static \
+               --with-xdmcp=yes \
+               --enable-authentication-scheme=pam \
+               --with-default-pam-config=exherbo \
+               --with-pam-mod-dir=$(getpam_mod_dir) \
+               --with-udevdir=$(get_udevdir) \
+               --with-at-spi-registryd-directory="${EPREFIX}"/usr/libexec \
+               --without-xevie \
+               --enable-systemd-journal \
+               --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
+               $(use_with audit libaudit) \
+               $(use_enable ipv6) \
+               $(use_with plymouth) \
+               $(use_with selinux) \
+               $(use_with tcpd tcp-wrappers) \
+               $(use_enable wayland wayland-support) \
+               $(use_with xinerama)
+}
+
+src_install() {
+       gnome2_src_install
+
+       if ! use accessibility ; then
+               rm 
"${ED}"/usr/share/gdm/greeter/autostart/orca-autostart.desktop || die
+       fi
+
+       exeinto /etc/X11/xinit/xinitrc.d
+       newexe "${FILESDIR}/49-keychain-r1" 49-keychain
+       newexe "${FILESDIR}/50-ssh-agent-r1" 50-ssh-agent
+
+       # gdm user's home directory
+       keepdir /var/lib/gdm
+       fowners gdm:gdm /var/lib/gdm
+
+       # install XDG_DATA_DIRS gdm changes
+       echo 'XDG_DATA_DIRS="/usr/share/gdm"' > 99xdg-gdm
+       doenvd 99xdg-gdm
+
+       use branding && newicon 
"${WORKDIR}/tango-gentoo-v1.1/scalable/gentoo.svg" gentoo-gdm.svg
+
+       readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+       gnome2_pkg_postinst
+       systemd_reenable gdm.service
+       readme.gentoo_print_elog
+}

Reply via email to