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.
gnome-base/gdm: install pam_gdm.so in correct location, bug #599714
Package-Manager: portage-2.3.2
- Loading branch information
1 parent
dcd3f17
commit 718d926
Showing
2 changed files
with
272 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 |
---|---|---|
@@ -0,0 +1,52 @@ | ||
From 4fc9023bb86689f1391651fa744d9e63ee1d7bbc Mon Sep 17 00:00:00 2001 | ||
From: =?UTF-8?q?R=C3=A9mi=20Cardona?= <[email protected]> | ||
Date: Mon, 21 Nov 2016 08:18:32 +0100 | ||
Subject: [PATCH] pam_gdm: allow setting pam module dir at configure time | ||
|
||
Code taken almost verbatim from gnome-keyring. | ||
--- | ||
configure.ac | 10 +++++++++- | ||
pam_gdm/Makefile.am | 2 +- | ||
2 files changed, 10 insertions(+), 2 deletions(-) | ||
|
||
diff --git a/configure.ac b/configure.ac | ||
index dd98992..e0074dd 100644 | ||
--- a/configure.ac | ||
+++ b/configure.ac | ||
@@ -476,7 +476,7 @@ dnl --------------------------------------------------------------------------- | ||
dnl - Check for PAM stuff | ||
dnl --------------------------------------------------------------------------- | ||
|
||
-dnl PAM prefix | ||
+dnl PAM prefix (configuration files) | ||
withval="" | ||
AC_ARG_WITH(pam-prefix, | ||
AS_HELP_STRING([--with-pam-prefix=<prefix>], | ||
@@ -492,6 +492,14 @@ else | ||
fi | ||
AC_SUBST(PAM_PREFIX) | ||
|
||
+dnl PAM dir (dynamic modules) | ||
+AC_ARG_WITH([pam-dir], | ||
+ [AC_HELP_STRING([--with-pam-dir=DIR], | ||
+ [directory to install pam modules in])], | ||
+ [], [with_pam_dir='${libdir}/security']) | ||
+PAM_DEST_DIR="$with_pam_dir" | ||
+AC_SUBST(PAM_DEST_DIR) | ||
+ | ||
have_pam=no | ||
AC_CHECK_LIB(pam, pam_start, have_pam=yes) | ||
|
||
diff --git a/pam_gdm/Makefile.am b/pam_gdm/Makefile.am | ||
index 61d672b..980b31c 100644 | ||
--- a/pam_gdm/Makefile.am | ||
+++ b/pam_gdm/Makefile.am | ||
@@ -36,4 +36,4 @@ pam_gdm_LTLIBRARIES = \ | ||
pam_gdm.la \ | ||
$(END_OF_LIST) | ||
|
||
-pam_gdmdir = $(libdir)/security | ||
+pam_gdmdir = $(PAM_DEST_DIR) | ||
-- | ||
2.10.2 | ||
|
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,220 @@ | ||
# Copyright 1999-2016 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
# $Id$ | ||
|
||
EAPI=6 | ||
GNOME2_LA_PUNT="yes" | ||
|
||
inherit autotools eutils gnome2 pam readme.gentoo-r1 systemd user versionator | ||
|
||
DESCRIPTION="GNOME Display Manager for managing graphical display servers and user logins" | ||
HOMEPAGE="https://wiki.gnome.org/Projects/GDM" | ||
|
||
SRC_URI="${SRC_URI} | ||
branding? ( http://www.mail-archive.com/[email protected]/msg00043/tango-gentoo-v1.1.tar.gz ) | ||
" | ||
|
||
LICENSE=" | ||
GPL-2+ | ||
branding? ( CC-Sampling-Plus-1.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 ~sparc ~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.36:2[dbus] | ||
>=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.12 | ||
x11-apps/sessreg | ||
x11-base/xorg-server | ||
x11-libs/libXi | ||
x11-libs/libXau | ||
x11-libs/libX11 | ||
x11-libs/libXdmcp | ||
x11-libs/libXext | ||
x11-libs/libXft | ||
>=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/intltool-0.40.0 | ||
dev-util/itstool | ||
virtual/pkgconfig | ||
x11-proto/inputproto | ||
x11-proto/randrproto | ||
test? ( >=dev-libs/check-0.9.4 ) | ||
xinerama? ( x11-proto/xineramaproto ) | ||
" | ||
|
||
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.8.4-logo.patch" | ||
|
||
# allow setting pam module dir, bug #599714 | ||
eapply "${FILESDIR}/${PN}-3.22.1-pam-module-dir.patch" | ||
|
||
eautoreconf | ||
gnome2_src_prepare | ||
} | ||
|
||
src_configure() { | ||
local myconf | ||
# 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 | ||
! use plymouth && myconf="${myconf} --with-initial-vt=7" | ||
|
||
gnome2_src_configure \ | ||
--enable-gdm-xsession \ | ||
--with-run-dir=/run/gdm \ | ||
--localstatedir="${EPREFIX}"/var \ | ||
--disable-static \ | ||
--with-xdmcp=yes \ | ||
--enable-authentication-scheme=pam \ | ||
--with-default-pam-config=exherbo \ | ||
--with-pam-dir=$(getpam_mod_dir) \ | ||
--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) \ | ||
${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 | ||
|
||
# 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() { | ||
local d ret | ||
|
||
gnome2_pkg_postinst | ||
|
||
# bug #436456; gdm crashes if /var/lib/gdm subdirs are not owned by gdm:gdm | ||
ret=0 | ||
ebegin "Fixing "${EROOT}"var/lib/gdm ownership" | ||
chown gdm:gdm "${EROOT}var/lib/gdm" || ret=1 | ||
for d in "${EROOT}var/lib/gdm/"{.cache,.config,.local}; do | ||
[[ ! -e "${d}" ]] || chown -R gdm:gdm "${d}" || ret=1 | ||
done | ||
eend ${ret} | ||
|
||
readme.gentoo_print_elog | ||
|
||
if ! version_is_at_least 3.16.0 ${REPLACING_VERSIONS}; then | ||
ewarn "GDM will now use a new TTY per logged user as explained at:" | ||
ewarn "https://wiki.gentoo.org/wiki/Project:GNOME/GNOME3-Troubleshooting#GDM_.3E.3D_3.16_opens_one_graphical_session_per_user" | ||
fi | ||
} |