summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Rostovtsev <tetromino@gentoo.org>2011-11-05 08:19:52 +0000
committerAlexandre Rostovtsev <tetromino@gentoo.org>2011-11-05 08:19:52 +0000
commitf3d18d6392b7a3c2968d52a237a221e7d761c485 (patch)
treefcae4bdcb136eb8faaae90b3963e783abead3e84 /gnome-base/gdm
parentBump to 3.2.1 from the gnome overlay. Notable changes: built-in (and non-opti... (diff)
downloadgentoo-2-f3d18d6392b7a3c2968d52a237a221e7d761c485.tar.gz
gentoo-2-f3d18d6392b7a3c2968d52a237a221e7d761c485.tar.bz2
gentoo-2-f3d18d6392b7a3c2968d52a237a221e7d761c485.zip
Bump to 3.2.1.1 from the gnome overlay. Notable changes: new gnome-shell based greeter that uses opengl (emerge with USE=-gnome-shell if you want to use the boring, old-fashioned greeter); user information is now obtained from accountsservices; the way that gdm launches its greeter sessions was completely overhauled. There is also optional support for fingerprint and smartcard authentication which is basically UNTESTED due to lack of hardware. Enable fprint or smartcard USE flags if you want to experiment! Dropped alpha, ia64, sparc keywords due to new accountsservice and gnome-settings-daemon-3.2 dependencies. Keywording bug will be filed later for all of gnome-3.2.
(Portage version: 2.2.0_alpha72/cvs/Linux x86_64)
Diffstat (limited to 'gnome-base/gdm')
-rw-r--r--gnome-base/gdm/ChangeLog17
-rw-r--r--gnome-base/gdm/files/gdm-3.2.1.1-custom-session.patch51
-rw-r--r--gnome-base/gdm/files/gdm-3.2.1.1-disable-accessibility.patch65
-rw-r--r--gnome-base/gdm/gdm-3.2.1.1-r1.ebuild269
-rw-r--r--gnome-base/gdm/metadata.xml11
5 files changed, 410 insertions, 3 deletions
diff --git a/gnome-base/gdm/ChangeLog b/gnome-base/gdm/ChangeLog
index f49c56ce9b74..ce3bc8d6abc4 100644
--- a/gnome-base/gdm/ChangeLog
+++ b/gnome-base/gdm/ChangeLog
@@ -1,6 +1,21 @@
# ChangeLog for gnome-base/gdm
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-base/gdm/ChangeLog,v 1.347 2011/10/30 15:56:11 armin76 Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gdm/ChangeLog,v 1.348 2011/11/05 08:19:52 tetromino Exp $
+
+*gdm-3.2.1.1-r1 (05 Nov 2011)
+
+ 05 Nov 2011; Alexandre Rostovtsev <tetromino@gentoo.org>
+ +gdm-3.2.1.1-r1.ebuild, +files/gdm-3.2.1.1-custom-session.patch,
+ +files/gdm-3.2.1.1-disable-accessibility.patch:
+ Bump to 3.2.1.1 from the gnome overlay. Notable changes: new gnome-shell
+ based greeter that uses opengl (emerge with USE=-gnome-shell if you want to
+ use the boring, old-fashioned greeter); user information is now obtained
+ from accountsservices; the way that gdm launches its greeter sessions was
+ completely overhauled. There is also optional support for fingerprint and
+ smartcard authentication which is basically UNTESTED due to lack of hardware.
+ Enable fprint or smartcard USE flags if you want to experiment!
+ Dropped alpha, ia64, sparc keywords due to new accountsservice and
+ gnome-settings-daemon-3.2 dependencies.
30 Oct 2011; Raúl Porcel <armin76@gentoo.org> gdm-2.20.11-r1.ebuild:
alpha/ia64/sh/sparc stable wrt #385699
diff --git a/gnome-base/gdm/files/gdm-3.2.1.1-custom-session.patch b/gnome-base/gdm/files/gdm-3.2.1.1-custom-session.patch
new file mode 100644
index 000000000000..0642f7c014ba
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-3.2.1.1-custom-session.patch
@@ -0,0 +1,51 @@
+From b96c19976b6876648fd91949f78f06cf5d269b18 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Tue, 2 Nov 2010 23:19:07 +0100
+Subject: [PATCH] make custom session work
+
+Gentoo bug: #216984
+
+fix custom sessions not doing sourcing in the proper order.
+---
+ data/Xsession.in | 18 +++++++++---------
+ 1 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/data/Xsession.in b/data/Xsession.in
+index 118518c..201be92 100755
+--- a/data/Xsession.in
++++ b/data/Xsession.in
+@@ -155,15 +155,6 @@ fi
+
+ xhost +si:localuser:`id -un` || :
+
+-# run all system xinitrc shell scripts.
+-if [ -d /etc/X11/xinit/xinitrc.d ]; then
+- for i in /etc/X11/xinit/xinitrc.d/* ; do
+- if [ -x "$i" -a ! -d "$i" ]; then
+- . "$i"
+- fi
+- done
+-fi
+-
+ if [ "x$command" = "xcustom" ] ; then
+ if [ -x "$HOME/.xsession" ]; then
+ command="$HOME/.xsession"
+@@ -191,6 +182,15 @@ if [ "x$command" = "xdefault" ] ; then
+ fi
+ fi
+
++# run all system xinitrc shell scripts.
++if [ -d /etc/X11/xinit/xinitrc.d ]; then
++ for i in /etc/X11/xinit/xinitrc.d/* ; do
++ if [ -x "$i" -a ! -d "$i" ]; then
++ . "$i"
++ fi
++ done
++fi
++
+ # add ssh-agent if found
+ sshagent="`gdmwhich ssh-agent`"
+ if [ -n "$sshagent" ] && [ -x "$sshagent" ] && [ -z "$SSH_AUTH_SOCK" ]; then
+--
+1.7.7
+
diff --git a/gnome-base/gdm/files/gdm-3.2.1.1-disable-accessibility.patch b/gnome-base/gdm/files/gdm-3.2.1.1-disable-accessibility.patch
new file mode 100644
index 000000000000..ab8325f406d6
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-3.2.1.1-disable-accessibility.patch
@@ -0,0 +1,65 @@
+From 91bd106c72362e51fbfa6966bc71dd0bb12d479d Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gmail.com>
+Date: Wed, 14 Sep 2011 22:09:56 -0400
+Subject: [PATCH] Disable a11y in gconf and gsettings defaults
+
+---
+ data/00-upstream-settings | 6 +++---
+ data/session-setup.entries | 4 ++--
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/data/00-upstream-settings b/data/00-upstream-settings
+index 1511b7b..87410cb 100644
+--- a/data/00-upstream-settings
++++ b/data/00-upstream-settings
+@@ -7,7 +7,7 @@
+ #
+
+ [org/gnome/desktop/a11y/keyboard]
+-enable=true
++enable=false
+
+ [org/gnome/desktop/background]
+ show-desktop-icons=false
+@@ -16,7 +16,7 @@ show-desktop-icons=false
+ exec='/bin/true'
+
+ [org/gnome/desktop/interface]
+-toolkit-accessibility=true
++toolkit-accessibility=false
+
+ [org/gnome/desktop/lockdown]
+ disable-application-handlers=true
+@@ -35,7 +35,7 @@ session-name='gdm-shell'
+ event-sounds=true
+
+ [org/gnome/settings-daemon/plugins/a11y-keyboard]
+-active=true
++active=false
+
+ [org/gnome/settings-daemon/plugins/a11y-settings]
+ active=false
+diff --git a/data/session-setup.entries b/data/session-setup.entries
+index b84e16f..a47d761 100644
+--- a/data/session-setup.entries
++++ b/data/session-setup.entries
+@@ -406,14 +406,14 @@
+ <entry>
+ <key>/desktop/gnome/interface/accessibility</key>
+ <value>
+- <bool>true</bool>
++ <bool>false</bool>
+ </value>
+ </entry>
+
+ <entry>
+ <key>/desktop/gnome/accessibility/keyboard/enable</key>
+ <value>
+- <bool>true</bool>
++ <bool>false</bool>
+ </value>
+ </entry>
+
+--
+1.7.7
+
diff --git a/gnome-base/gdm/gdm-3.2.1.1-r1.ebuild b/gnome-base/gdm/gdm-3.2.1.1-r1.ebuild
new file mode 100644
index 000000000000..b5a6f8e3c8be
--- /dev/null
+++ b/gnome-base/gdm/gdm-3.2.1.1-r1.ebuild
@@ -0,0 +1,269 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gdm/gdm-3.2.1.1-r1.ebuild,v 1.1 2011/11/05 08:19:52 tetromino Exp $
+
+EAPI="4"
+GNOME2_LA_PUNT="yes"
+GCONF_DEBUG="yes"
+
+inherit autotools eutils gnome2 pam systemd
+
+DESCRIPTION="GNOME Display Manager"
+HOMEPAGE="http://www.gnome.org/projects/gdm/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~sh ~x86"
+
+IUSE_LIBC="elibc_glibc"
+IUSE="accessibility +consolekit fprint +gnome-shell ipv6 gnome-keyring +introspection selinux smartcard tcpd test xinerama +xklavier $IUSE_LIBC"
+
+# Name of the tarball with gentoo specific files
+GDM_EXTRA="${PN}-3.2.1.1-gentoo-files"
+
+SRC_URI="${SRC_URI}
+ http://dev.gentoo.org/~tetromino/distfiles/gdm/${GDM_EXTRA}.tar.xz"
+
+# 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
+COMMON_DEPEND="
+ >=dev-libs/dbus-glib-0.74
+ >=dev-libs/glib-2.29.3:2
+ >=x11-libs/gtk+-2.91.1:3
+ >=x11-libs/pango-1.3
+ dev-libs/nspr
+ >=dev-libs/nss-3.11.1
+ >=media-libs/fontconfig-2.5.0
+ >=media-libs/libcanberra-0.4[gtk3]
+ >=gnome-base/gconf-2.31.3
+ >=x11-misc/xdg-utils-1.0.2-r3
+ >=sys-power/upower-0.9
+ >=sys-apps/accountsservice-0.6.12
+
+ gnome-base/dconf
+ >=gnome-base/gnome-settings-daemon-3.1.4
+ gnome-base/gsettings-desktop-schemas
+ sys-apps/dbus
+
+ app-text/iso-codes
+
+ x11-base/xorg-server
+ x11-libs/libXi
+ x11-libs/libXau
+ x11-libs/libX11
+ x11-libs/libXdmcp
+ x11-libs/libXext
+ x11-libs/libXft
+ x11-libs/libXrandr
+ x11-apps/sessreg
+
+ virtual/pam
+ consolekit? ( sys-auth/consolekit )
+
+ accessibility? ( x11-libs/libXevie )
+ gnome-keyring? ( >=gnome-base/gnome-keyring-2.22[pam] )
+ introspection? ( >=dev-libs/gobject-introspection-0.9.12 )
+ selinux? ( sys-libs/libselinux )
+ tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
+ xinerama? ( x11-libs/libXinerama )
+ xklavier? ( >=x11-libs/libxklavier-4 )"
+DEPEND="${COMMON_DEPEND}
+ test? ( >=dev-libs/check-0.9.4 )
+ xinerama? ( x11-proto/xineramaproto )
+ app-text/docbook-xml-dtd:4.1.2
+ sys-devel/gettext
+ x11-proto/inputproto
+ x11-proto/randrproto
+ >=dev-util/intltool-0.40.0
+ >=dev-util/pkgconfig-0.19
+ >=app-text/scrollkeeper-0.1.4
+ >=app-text/gnome-doc-utils-0.3.2"
+# XXX: These deps are from session and desktop files in data/ directory
+# at-spi:1 is needed for at-spi-registryd (spawned by simple-chooser)
+# fprintd is used via dbus by gdm-fingerprint-extension
+RDEPEND="${COMMON_DEPEND}
+ >=gnome-base/gnome-session-2.91.92
+ x11-apps/xhost
+
+ accessibility? (
+ app-accessibility/gnome-mag
+ app-accessibility/gok
+ app-accessibility/orca
+ gnome-extra/at-spi:1 )
+ consolekit? ( gnome-extra/polkit-gnome )
+ fprint? (
+ sys-auth/fprintd
+ sys-auth/pam_fprint )
+ gnome-shell? ( >=gnome-base/gnome-shell-3.1.90 )
+ !gnome-shell? ( x11-wm/metacity )
+ smartcard? (
+ app-crypt/coolkey
+ sys-auth/pam_pkcs11 )
+
+ !gnome-extra/fast-user-switch-applet"
+
+pkg_setup() {
+ DOCS="AUTHORS ChangeLog NEWS README TODO"
+
+ # 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
+ G2CONF="${G2CONF}
+ --disable-schemas-install
+ --disable-static
+ --localstatedir=${EPREFIX}/var
+ --with-xdmcp=yes
+ --enable-authentication-scheme=pam
+ --with-pam-prefix=${EPREFIX}/etc
+ --with-at-spi-registryd-directory=${EPREFIX}/usr/libexec
+ $(use_with accessibility xevie)
+ $(use_enable ipv6)
+ $(use_enable xklavier libxklavier)
+ $(use_with consolekit console-kit)
+ $(use_with selinux)
+ $(use_with tcpd tcp-wrappers)
+ $(use_with xinerama)"
+
+ 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() {
+ gnome2_src_prepare
+
+ # remove unneeded linker directive for selinux, bug #41022
+ epatch "${FILESDIR}/${PN}-2.32.0-selinux-remove-attr.patch"
+
+ # daemonize so that the boot process can continue, bug #236701
+ epatch "${FILESDIR}/${PN}-2.32.0-fix-daemonize-regression.patch"
+
+ # GDM grabs VT2 instead of VT7, bug 261339, bug 284053, bug 288852
+ epatch "${FILESDIR}/${PN}-2.32.0-fix-vt-problems.patch"
+
+ # make custom session work, bug #216984
+ epatch "${FILESDIR}/${PN}-3.2.1.1-custom-session.patch"
+
+ # ssh-agent handling must be done at xinitrc.d, bug #220603
+ epatch "${FILESDIR}/${PN}-2.32.0-xinitrc-ssh-agent.patch"
+
+ # fix libxklavier automagic support
+ epatch "${FILESDIR}/${PN}-2.32.0-automagic-libxklavier-support.patch"
+
+ # don't load accessibility support at runtime when USE=-accessibility
+ use accessibility || epatch "${FILESDIR}/${PN}-3.2.1.1-disable-accessibility.patch"
+
+ # make gdm-fallback session the default if USE=-gnome-shell
+ if ! use gnome-shell; then
+ sed -e "s:'gdm-shell':'gdm-fallback':" \
+ -i data/00-upstream-settings || die "sed failed"
+ fi
+
+ mkdir -p "${S}"/m4
+ intltoolize --force --copy --automake || die "intltoolize failed"
+ eautoreconf
+}
+
+src_install() {
+ gnome2_src_install
+
+ local gentoodir="${WORKDIR}/${GDM_EXTRA}"
+
+ # Install the systemd unit file
+ systemd_dounit "${gentoodir}/gdm@.service"
+
+ # gdm-binary should be gdm to work with our init (#5598)
+ rm -f "${ED}/usr/sbin/gdm"
+ ln -sfn /usr/sbin/gdm-binary "${ED}/usr/sbin/gdm"
+ # our x11's scripts point to /usr/bin/gdm
+ ln -sfn /usr/sbin/gdm-binary "${ED}/usr/bin/gdm"
+
+ # log, etc.
+ keepdir /var/log/gdm
+
+ # add xinitrc.d scripts
+ exeinto /etc/X11/xinit/xinitrc.d
+ doexe "${FILESDIR}/49-keychain" || die "doexe 2 failed"
+ doexe "${FILESDIR}/50-ssh-agent" || die "doexe 3 failed"
+
+ # install XDG_DATA_DIRS gdm changes
+ echo 'XDG_DATA_DIRS="/usr/share/gdm"' > 99xdg-gdm
+ doenvd 99xdg-gdm || die "doenvd failed"
+
+ # install PAM files
+ use gnome-keyring && sed -i "s:#Keyring=::g" "${gentoodir}"/pam.d/*
+ dopamd "${gentoodir}"/pam.d/gdm{,-autologin,-password,-fingerprint,-smartcard,-welcome}
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+
+ dbus-launch dconf update || die "'dconf update' failed"
+
+ ewarn
+ ewarn "This is an EXPERIMENTAL release, please bear with its bugs and"
+ ewarn "visit us on #gentoo-desktop if you have problems."
+ ewarn
+
+ elog "To make GDM start at boot, edit /etc/conf.d/xdm"
+ elog "and then execute 'rc-update add xdm default'."
+ elog "If you already have GDM running, you will need to restart it."
+
+ elog
+ elog "GDM ignores most non-localization environment variables. If you"
+ elog "need GDM to launch gnome-session with a particular environment,"
+ elog "you need to use pam_env.so in /etc/pam.d/gdm-welcome; see"
+ elog "the pam_env man page for more information."
+ elog
+
+ if use gnome-keyring; then
+ elog "For autologin to unlock your keyring, you need to set an empty"
+ elog "password on your keyring. Use app-crypt/seahorse for that."
+ fi
+
+ if [ -f "/etc/X11/gdm/gdm.conf" ]; then
+ elog "You had /etc/X11/gdm/gdm.conf which is the old configuration"
+ elog "file. It has been moved to /etc/X11/gdm/gdm-pre-gnome-2.16"
+ mv /etc/X11/gdm/gdm.conf /etc/X11/gdm/gdm-pre-gnome-2.16
+ fi
+
+ # https://bugzilla.redhat.com/show_bug.cgi?id=513579
+ # Lennart says this problem is fixed, but users are still reporting problems
+ # XXX: Do we want this elog?
+# if has_version "media-libs/libcanberra[pulseaudio]" ; then
+# elog
+# elog "You have media-libs/libcanberra with the pulseaudio USE flag"
+# elog "enabled. GDM will start a pulseaudio process to play sounds. This"
+# elog "process should automatically terminate when a user logs into a"
+# elog "desktop session. If GDM's pulseaudio fails to terminate and"
+# elog "causes problems for users' audio, you can prevent GDM from"
+# elog "starting pulseaudio by editing /var/lib/gdm/.pulse/client.conf"
+# elog "so it contains the following two lines:"
+# elog
+# elog "autospawn = no"
+# elog "daemon-binary = /bin/true"
+# fi
+}
+
+pkg_postrm() {
+ gnome2_pkg_postrm
+
+ if rc-config list default | grep -q xdm; then
+ elog "To remove GDM from startup please execute"
+ elog "'rc-update del xdm default'"
+ fi
+}
diff --git a/gnome-base/gdm/metadata.xml b/gnome-base/gdm/metadata.xml
index 3ff57ea787b1..126b49076e55 100644
--- a/gnome-base/gdm/metadata.xml
+++ b/gnome-base/gdm/metadata.xml
@@ -3,10 +3,17 @@
<pkgmetadata>
<herd>gnome</herd>
<use>
- <flag name="dmx">Enables Distributed Multihead X (DMX) support</flag>
- <flag name="remote">Enables support for secure remote connections</flag>
<flag name="consolekit">Allow proper handling of removable media according
to who is actually present on the machine.</flag>
+ <flag name="dmx">Enables Distributed Multihead X (DMX) support</flag>
+ <flag name="fprint">Enables experimental fingerprint authentication using
+ <pkg>sys-auth/fprintd</pkg></flag>
+ <flag name="gnome-shell">Enables a greeter based on GNOME Shell (uses
+ OpenGL)</flag>
+ <flag name="introspection">Use <pkg>dev-libs/gobject-introspection</pkg>
+ for introspection</flag>
+ <flag name="remote">Enables support for secure remote connections</flag>
+ <flag name="smartcard">Enables experimental smartcard authentication</flag>
<flag name="xklavier">Use <pkg>x11-libs/libxklavier</pkg> for keyboard
management</flag>
</use>