forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Package-Manager: Portage-2.3.69, Repoman-2.3.12 Signed-off-by: Mart Raudsepp <[email protected]>
- Loading branch information
Showing
2 changed files
with
245 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
DIST gdm-3.30.3.tar.xz 1261224 BLAKE2B 338f946a24d2a7e4b3cf34ac6accff01f8e7ce5032ee4ce79a96b1a755693e09788c6225e45de9a91ae4afea595a0562511104a467e561ec179c3ad61810468f SHA512 17aed5bf7d27b07553703873cda28a711d6135497d36e4c241bcf1ab3552b31007cc241dab394dccf8a4f1daccf7d55ba39edf91f4b22bdea5c2aa1ea17404b8 | ||
DIST gdm-3.32.0.tar.xz 1262344 BLAKE2B bbc580f788fe2ce8783f044eb8109ce0086b1bb078bafaeb6efd833689848ef6570bb0fd0e6e260a388e7c1a6d3cdccb36264a640151e9b6e5d81ca9c35f3be3 SHA512 88016d0f800030a561e0360c63fdcb8499a605126f99a5a9f89606e086d7a934afc091843b2acd9091c1c643e7468ee31ae9a5b6264ae38064618ad577ef7ac0 | ||
DIST tango-gentoo-v1.1.tar.gz 29322 BLAKE2B 83fa2bf37727e60851dd679054fe1b153ebfea58c9a9a40f891f7d68d3b047b02e8effa1d1b4e08d64500a2072ce7200f159c92a352da7124de27e1b05bb6027 SHA512 87d47ddab68361db6d99866c51705dcb3e198f8345a1096859acf2c6cca5099dd23c7fb30d124f52c4933ea38fd45fadffbbe6ecbdfa84f5b60938a4824f9045 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,244 @@ | ||
# Copyright 1999-2019 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=6 | ||
GNOME2_LA_PUNT="yes" | ||
GNOME2_EAUTORECONF="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/[email protected]/msg00043/tango-gentoo-v1.1.tar.gz ) | ||
" | ||
|
||
LICENSE=" | ||
GPL-2+ | ||
branding? ( CC-BY-SA-4.0 ) | ||
" | ||
|
||
SLOT="0" | ||
|
||
IUSE="accessibility audit bluetooth-sound branding elogind fprint +introspection ipv6 plymouth selinux smartcard systemd tcpd test wayland xinerama" | ||
REQUIRED_USE="^^ ( elogind systemd )" | ||
|
||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~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 | ||
dev-libs/libgudev | ||
>=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 | ||
sys-libs/pam | ||
elogind? ( >=sys-auth/elogind-239.3[pam] ) | ||
systemd? ( >=sys-apps/systemd-186:0=[pam] ) | ||
sys-auth/pambase[elogind?,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 ) | ||
app-text/yelp-tools | ||
" # yelp-tools needed for eautoreconf to not lose help docs (m4_ifdeffed YELP_HELP_INIT call and setup) | ||
|
||
DOC_CONTENTS=" | ||
To make GDM start at boot with systemd, run:\n | ||
# systemctl enable gdm.service\n | ||
\n | ||
To make GDM start at boot with OpenRC, edit /etc/conf.d to have | ||
DISPLAYMANAGER=\"gdm\" and enable the xdm service:\n | ||
# rc-update add xdm | ||
\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" | ||
|
||
# Support pam_elogind.so in gdm-launch-environment.pam | ||
eapply "${FILESDIR}/pam-elogind.patch" | ||
|
||
# Wait 10 seconds for a DRM master with systemd. Workaround for gdm not waiting for CanGraphical=yes property on the seat. Bug #613222 | ||
eapply "${FILESDIR}/gdm-CanGraphical-wait.patch" # needs eautoreconf | ||
|
||
# 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" | ||
local myconf=( | ||
--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 | ||
$(use_enable systemd 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) | ||
) | ||
|
||
if use elogind; then | ||
myconf+=( | ||
--with-initial-vt=7 # TODO: Revisit together with startDM.sh and other xinit talks; also ignores plymouth possibility | ||
SYSTEMD_CFLAGS=`pkg-config --cflags "libelogind" 2>/dev/null` | ||
SYSTEMD_LIBS=`pkg-config --libs "libelogind" 2>/dev/null` | ||
) | ||
fi | ||
|
||
gnome2_src_configure "${myconf[@]}" | ||
} | ||
|
||
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 | ||
|
||
if ! use bluetooth-sound ; then | ||
# Workaround https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/10 | ||
# bug #679526 | ||
insinto /var/lib/gdm/.config/pulse | ||
doins "${FILESDIR}"/default.pa | ||
fi | ||
|
||
# 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 | ||
local d ret | ||
|
||
# bug #669146; gdm may crash if /var/lib/gdm subdirs are not owned by gdm:gdm | ||
ret=0 | ||
ebegin "Fixing "${EROOT}"var/lib/gdm ownership" | ||
chown --no-dereference gdm:gdm "${EROOT}var/lib/gdm" || ret=1 | ||
for d in "${EROOT}var/lib/gdm/"{.cache,.color,.config,.dbus,.local}; do | ||
[[ ! -e "${d}" ]] || chown --no-dereference -R gdm:gdm "${d}" || ret=1 | ||
done | ||
eend ${ret} | ||
|
||
systemd_reenable gdm.service | ||
readme.gentoo_print_elog | ||
} |