* [gentoo-commits] proj/gnome:master commit in: gnome-base/gdm/, gnome-base/gdm/files/
@ 2011-02-26 11:41 Nirbheek Chauhan
0 siblings, 0 replies; 14+ messages in thread
From: Nirbheek Chauhan @ 2011-02-26 11:41 UTC (permalink / raw
To: gentoo-commits
commit: 8d0db99c4173dbec27eed5537fc93237f1a631dc
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 26 11:17:34 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Sat Feb 26 11:17:34 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=8d0db99c
Add gnome-base/gdm-2.91.91, seems to work without the vt patch
---
gnome-base/gdm/files/49-keychain | 9 +
gnome-base/gdm/files/50-ssh-agent | 10 +
.../gdm-2.32.0-automagic-libxklavier-support.patch | 60 ++++++
.../gdm/files/gdm-2.32.0-custom-session.patch | 51 +++++
.../gdm-2.32.0-fix-daemonize-regression.patch | 126 ++++++++++++
.../gdm/files/gdm-2.32.0-selinux-remove-attr.patch | 27 +++
.../gdm/files/gdm-2.32.0-xinitrc-ssh-agent.patch | 32 +++
gnome-base/gdm/gdm-2.91.91.ebuild | 202 ++++++++++++++++++++
8 files changed, 517 insertions(+), 0 deletions(-)
diff --git a/gnome-base/gdm/files/49-keychain b/gnome-base/gdm/files/49-keychain
new file mode 100644
index 0000000..77310b2
--- /dev/null
+++ b/gnome-base/gdm/files/49-keychain
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# source keychain variables
+
+keychain="`which keychain`"
+if [ -n "$keychain" ] && [ -x "$keychain" ] && [ -f "$HOME/.bash_profile" ]
+then
+ . "${HOME}/.bash_profile"
+fi
diff --git a/gnome-base/gdm/files/50-ssh-agent b/gnome-base/gdm/files/50-ssh-agent
new file mode 100644
index 0000000..28af267
--- /dev/null
+++ b/gnome-base/gdm/files/50-ssh-agent
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+# add ssh-agent if found
+
+sshagent="`which ssh-agent`"
+if [ -n "$sshagent" ] && [ -x "$sshagent" ] && [ -z "$SSH_AUTH_SOCK" ]; then
+ command="$sshagent -- $command"
+elif [ -z "$sshagent" ] ; then
+ echo "$0: ssh-agent not found!"
+fi
diff --git a/gnome-base/gdm/files/gdm-2.32.0-automagic-libxklavier-support.patch b/gnome-base/gdm/files/gdm-2.32.0-automagic-libxklavier-support.patch
new file mode 100644
index 0000000..90c1cef
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-2.32.0-automagic-libxklavier-support.patch
@@ -0,0 +1,60 @@
+From 481fe43b653b443ecfa8d4f3aa88d734d17cccd5 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Tue, 2 Nov 2010 23:21:27 +0100
+Subject: [PATCH 6/6] fix libxklavier automagic support
+
+libxklavier support is optional, make that fact explicit.
+---
+ configure.ac | 28 +++++++++++++++++++---------
+ 1 files changed, 19 insertions(+), 9 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 71d0247..10dbb72 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -129,17 +129,26 @@ SIMPLE_GREETER_LIBS="$SIMPLE_GREETER_LIBS -lm"
+ AC_SUBST(SIMPLE_GREETER_CFLAGS)
+ AC_SUBST(SIMPLE_GREETER_LIBS)
+
+-PKG_CHECK_MODULES(LIBXKLAVIER,
+- libxklavier >= $LIBXKLAVIER_REQUIRED_VERSION,
+- have_libxklavier=yes,
+- have_libxklavier=no)
+-if test "x$have_libxklavier" = "xyes" ; then
+- AC_DEFINE(HAVE_LIBXKLAVIER, [], [Define if we have libxklavier])
++AC_ARG_ENABLE([libxklavier],
++ AS_HELP_STRING([--enable-libxklavier],
++ [Enable libxklavier support @<:@default=yes@:>@]),
++ enable_libxklavier=$enableval,
++ enable_libxklavier=yes)
++have_libxklavier=no
++if test "x$enable_libxklavier" = "xyes"; then
++ PKG_CHECK_MODULES(LIBXKLAVIER,
++ libxklavier >= $LIBXKLAVIER_REQUIRED_VERSION,
++ have_libxklavier=yes,
++ have_libxklavier=no)
++ if test "x$have_libxklavier" = "xyes" ; then
++ AC_DEFINE(HAVE_LIBXKLAVIER, [], [Define if we have libxklavier])
++ fi
++ AC_SUBST(HAVE_LIBXKLAVIER)
++ AC_SUBST(LIBXKLAVIER_CFLAGS)
++ AC_SUBST(LIBXKLAVIER_LIBS)
+ fi
++
+ AM_CONDITIONAL(HAVE_LIBXKLAVIER, test x$have_libxklavier = xyes)
+-AC_SUBST(HAVE_LIBXKLAVIER)
+-AC_SUBST(LIBXKLAVIER_CFLAGS)
+-AC_SUBST(LIBXKLAVIER_LIBS)
+
+ PKG_CHECK_MODULES(SIMPLE_CHOOSER,
+ dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION
+@@ -1467,5 +1476,6 @@ echo \
+ SELinux support: ${with_selinux}
+ ConsoleKit support: ${use_console_kit}
+ UPower support: ${have_upower}
++ Libxklavier support: ${have_libxklavier}
+ Build with RBAC: ${msg_rbac_shutdown}
+ "
+--
+1.7.3.1
+
diff --git a/gnome-base/gdm/files/gdm-2.32.0-custom-session.patch b/gnome-base/gdm/files/gdm-2.32.0-custom-session.patch
new file mode 100644
index 0000000..c48cb07
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-2.32.0-custom-session.patch
@@ -0,0 +1,51 @@
+From 2dc0d268c7cc5d6133a9594adcd67dc543288b8f Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Tue, 2 Nov 2010 23:19:07 +0100
+Subject: [PATCH 4/6] 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 b2d98f2..0da187d 100755
+--- a/data/Xsession.in
++++ b/data/Xsession.in
+@@ -153,15 +153,6 @@ if [ -n "$GDM_LANG" ]; then
+ export LANG
+ 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
+-
+ if [ "x$command" = "xcustom" ] ; then
+ if [ -x "$HOME/.xsession" ]; then
+ command="$HOME/.xsession"
+@@ -189,6 +180,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" ]; 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.3.1
+
diff --git a/gnome-base/gdm/files/gdm-2.32.0-fix-daemonize-regression.patch b/gnome-base/gdm/files/gdm-2.32.0-fix-daemonize-regression.patch
new file mode 100644
index 0000000..2ae7f61
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-2.32.0-fix-daemonize-regression.patch
@@ -0,0 +1,126 @@
+From 7f5104b242e6b36e6143183b14582d362763ff2a Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Tue, 2 Nov 2010 23:16:51 +0100
+Subject: [PATCH 2/6] daemonize so that the boot process can continue
+
+Gentoo bug: #236701
+
+Originally from: Dan Nicholson <dbn.lists@gmail.com>
+
+Fork gdm-binary, except when -nodaemon is used
+
+gdm-binary now forks and the parent terminates, except when the
+-nodaemon or --nodaemon options are used. This provides compatibility
+with xdm. Fixes bug #550170.
+
+---
+ daemon/main.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 64 insertions(+), 0 deletions(-)
+
+diff --git a/daemon/main.c b/daemon/main.c
+index 5b8d66b..191b6e3 100644
+--- a/daemon/main.c
++++ b/daemon/main.c
+@@ -513,6 +513,56 @@ is_debug_set (void)
+ return debug;
+ }
+
++static void
++dup_dev_null (int fd, int flags)
++{
++ int nullfd;
++ int dupfd;
++
++ VE_IGNORE_EINTR (nullfd = open ("/dev/null", flags));
++ if (G_UNLIKELY (nullfd < 0)) {
++ gdm_fail (_("Cannot open /dev/null: %s!"),
++ strerror (errno));
++ exit (EXIT_FAILURE);
++ }
++
++ VE_IGNORE_EINTR (dupfd = dup2 (nullfd, fd));
++ if (G_UNLIKELY (dupfd < 0)) {
++ gdm_fail (_("Cannot duplicate /dev/null: %s!"),
++ strerror (errno));
++ exit (EXIT_FAILURE);
++ }
++
++ VE_IGNORE_EINTR (close (nullfd));
++}
++
++static void
++daemonify (void)
++{
++ pid_t pid;
++
++ pid = fork ();
++
++ /* terminate the parent */
++ if (pid > 0)
++ exit (EXIT_SUCCESS);
++
++ if (G_UNLIKELY (pid < 0)) {
++ gdm_fail (_("fork () failed: %s!"), strerror (errno));
++ exit (EXIT_FAILURE);
++ }
++
++ if (G_UNLIKELY (setsid () < 0)) {
++ gdm_fail (_("setsid () failed: %s!"), strerror (errno));
++ exit (EXIT_FAILURE);
++ }
++
++ /* reopen stdin, stdout, stderr with /dev/null */
++ dup_dev_null (STDIN_FILENO, O_RDONLY);
++ dup_dev_null (STDOUT_FILENO, O_RDWR);
++ dup_dev_null (STDERR_FILENO, O_RDWR);
++}
++
+ int
+ main (int argc,
+ char **argv)
+@@ -523,14 +573,17 @@ main (int argc,
+ DBusGConnection *connection;
+ GError *error;
+ int ret;
++ int i;
+ gboolean res;
+ gboolean xdmcp_enabled;
+ GdmSignalHandler *signal_handler;
+ static gboolean do_timed_exit = FALSE;
+ static gboolean print_version = FALSE;
+ static gboolean fatal_warnings = FALSE;
++ static gboolean no_daemon = FALSE;
+ static GOptionEntry entries [] = {
+ { "fatal-warnings", 0, 0, G_OPTION_ARG_NONE, &fatal_warnings, N_("Make all warnings fatal"), NULL },
++ { "nodaemon", 0, 0, G_OPTION_ARG_NONE, &no_daemon, N_("Do not fork into the background"), NULL },
+ { "timed-exit", 0, 0, G_OPTION_ARG_NONE, &do_timed_exit, N_("Exit after a time (for debugging)"), NULL },
+ { "version", 0, 0, G_OPTION_ARG_NONE, &print_version, N_("Print GDM version"), NULL },
+
+@@ -547,6 +600,14 @@ main (int argc,
+
+ g_type_init ();
+
++ /* preprocess the arguments to support the xdm style
++ * -nodaemon option
++ */
++ for (i = 0; i < argc; i++) {
++ if (strcmp (argv[i], "-nodaemon") == 0)
++ argv[i] = "--nodaemon";
++ }
++
+ context = g_option_context_new (_("GNOME Display Manager"));
+ g_option_context_add_main_entries (context, entries, NULL);
+ g_option_context_set_ignore_unknown_options (context, TRUE);
+@@ -617,6 +678,9 @@ main (int argc,
+ exit (-1);
+ }
+
++ if (no_daemon == FALSE)
++ daemonify ();
++
+ /* pid file */
+ delete_pid ();
+ write_pid ();
+--
+1.7.3.1
+
diff --git a/gnome-base/gdm/files/gdm-2.32.0-selinux-remove-attr.patch b/gnome-base/gdm/files/gdm-2.32.0-selinux-remove-attr.patch
new file mode 100644
index 0000000..e563aa4
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-2.32.0-selinux-remove-attr.patch
@@ -0,0 +1,27 @@
+From 41badd6d2ca652a875fec3eea420ae876023076d Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Tue, 2 Nov 2010 23:15:54 +0100
+Subject: [PATCH 1/6] remove unneeded linker directive for selinux
+
+Gentoo bug: #41022
+
+---
+ configure.ac | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index ed07dce..71d0247 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -873,7 +873,7 @@ if test "x$with_selinux" = "xyes" ; then
+ AC_CHECK_LIB(selinux,setexeccon,/bin/true)
+ AC_CHECK_LIB(selinux,is_selinux_enabled,/bin/true)
+ AC_DEFINE(HAVE_SELINUX, 1, [Define if have selinux])
+- EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux -lattr"
++ EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux"
+ fi
+
+ dnl ---------------------------------------------------------------------------
+--
+1.7.3.1
+
diff --git a/gnome-base/gdm/files/gdm-2.32.0-xinitrc-ssh-agent.patch b/gnome-base/gdm/files/gdm-2.32.0-xinitrc-ssh-agent.patch
new file mode 100644
index 0000000..b1cddf1
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-2.32.0-xinitrc-ssh-agent.patch
@@ -0,0 +1,32 @@
+From 1cb1841da3a8fedc1671637e2828d5e361af21fa Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Tue, 2 Nov 2010 23:19:31 +0100
+Subject: [PATCH 5/6] ssh-agent handling must be done at xinitrc.d
+
+Gentoo bug: #220603
+---
+ data/Xsession.in | 8 --------
+ 1 files changed, 0 insertions(+), 8 deletions(-)
+
+diff --git a/data/Xsession.in b/data/Xsession.in
+index 0da187d..aa49b90 100755
+--- a/data/Xsession.in
++++ b/data/Xsession.in
+@@ -189,14 +189,6 @@ if [ -d /etc/X11/xinit/xinitrc.d ]; then
+ done
+ fi
+
+-# add ssh-agent if found
+-sshagent="`gdmwhich ssh-agent`"
+-if [ -n "$sshagent" ] && [ -x "$sshagent" ] && [ -z "$SSH_AUTH_SOCK" ]; then
+- command="$sshagent -- $command"
+-elif [ -z "$sshagent" ] ; then
+- echo "$0: ssh-agent not found!"
+-fi
+-
+ echo "$0: Setup done, will execute: $command"
+
+ eval exec $command
+--
+1.7.3.1
+
diff --git a/gnome-base/gdm/gdm-2.91.91.ebuild b/gnome-base/gdm/gdm-2.91.91.ebuild
new file mode 100644
index 0000000..5846551
--- /dev/null
+++ b/gnome-base/gdm/gdm-2.91.91.ebuild
@@ -0,0 +1,202 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gdm/gdm-2.32.0.ebuild,v 1.2 2010/11/11 11:48:55 ssuominen Exp $
+
+EAPI="3"
+GCONF_DEBUG="yes"
+
+inherit autotools eutils gnome2 pam
+
+DESCRIPTION="GNOME Display Manager"
+HOMEPAGE="http://www.gnome.org/projects/gdm/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~sh ~sparc ~x86"
+
+IUSE_LIBC="elibc_glibc"
+IUSE="accessibility +consolekit ipv6 gnome-keyring selinux tcpd test xinerama +xklavier $IUSE_LIBC"
+
+# Name of the tarball with gentoo specific files
+GDM_EXTRA="${PN}-2.20.9-gentoo-files-r1"
+
+SRC_URI="${SRC_URI}
+ mirror://gentoo/${GDM_EXTRA}.tar.bz2"
+
+# NOTE: x11-base/xorg-server dep is for X_SERVER_PATH etc, bug #295686
+RDEPEND="
+ >=dev-libs/dbus-glib-0.74
+ >=dev-libs/glib-2.27.4:2
+ >=x11-libs/gtk+-2.91.1:3
+ >=x11-libs/pango-1.3
+ >=media-libs/fontconfig-2.5.0
+ >=media-libs/libcanberra-0.4[gtk3]
+ >=gnome-base/gconf-2.31.3
+ >=gnome-base/gnome-session-2.28
+ >=x11-misc/xdg-utils-1.0.2-r3
+ >=sys-power/upower-0.9
+ >=sys-apps/accountsservice-0.6.3
+
+ 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-apps/sessreg
+
+ virtual/pam
+ consolekit? ( sys-auth/consolekit )
+
+ accessibility? ( x11-libs/libXevie )
+ gnome-keyring? ( >=gnome-base/gnome-keyring-2.22[pam] )
+ selinux? ( sys-libs/libselinux )
+ tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
+ xinerama? ( x11-libs/libXinerama )
+ xklavier? ( >=x11-libs/libxklavier-4 )
+
+ !gnome-extra/fast-user-switch-applet"
+DEPEND="${RDEPEND}
+ 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
+ >=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"
+
+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
+ G2CONF="${G2CONF}
+ --disable-schemas-install
+ --localstatedir=/var
+ --with-xdmcp=yes
+ --enable-authentication-scheme=pam
+ --with-pam-prefix=/etc
+ SOUND_PROGRAM=/usr/bin/gdmplay
+ $(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
+ enewuser gdm -1 -1 /var/lib/gdm gdm
+}
+
+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"
+
+ # fix VT grab problem causing GDM to grab VT2 instead of 7, bug #261339
+ #epatch "${FILESDIR}/${PN}-2.32.0-broken-VT-detection.patch"
+
+ # make custom session work, bug #216984
+ epatch "${FILESDIR}/${PN}-2.32.0-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"
+
+ mkdir "${S}"/m4
+ intltoolize --force --copy --automake || die "intltoolize failed"
+ eautoreconf
+}
+
+src_install() {
+ gnome2_src_install
+
+ local gentoodir="${WORKDIR}/${GDM_EXTRA}"
+
+ # gdm-binary should be gdm to work with our init (#5598)
+ rm -f "${D}/usr/sbin/gdm"
+ dosym /usr/sbin/gdm-binary /usr/sbin/gdm
+
+ # our x11's scripts point to /usr/bin/gdm
+ dosym /usr/sbin/gdm-binary /usr/bin/gdm
+
+ # log, etc.
+ keepdir /var/log/gdm
+ keepdir /var/gdm
+
+ fowners root:gdm /var/gdm
+ fperms 1770 /var/gdm
+
+ # add a custom xsession .desktop by default (#44537)
+ exeinto /etc/X11/dm/Sessions
+ doexe "${gentoodir}/custom.desktop" || die "doexe 1 failed"
+
+ # 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"
+
+ # add a custom sound playing script (#248253)
+ dobin "${gentoodir}/gdmplay"
+
+ # avoid file collision, bug #213118
+ rm -f "${D}/usr/share/xsessions/gnome.desktop"
+
+ # We replace the pam stuff by our own
+ rm -rf "${D}/etc/pam.d"
+
+ use gnome-keyring && sed -i "s:#Keyring=::g" "${gentoodir}"/pam.d/*
+
+ dopamd "${gentoodir}"/pam.d/*
+ dopamsecurity console.apps "${gentoodir}/security/console.apps/gdmsetup"
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+
+ 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."
+
+ 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
+}
+
+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
+}
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gdm/, gnome-base/gdm/files/
@ 2011-04-02 13:54 Nirbheek Chauhan
0 siblings, 0 replies; 14+ messages in thread
From: Nirbheek Chauhan @ 2011-04-02 13:54 UTC (permalink / raw
To: gentoo-commits
commit: 05332aeddbd7e526110730595ed0cdb3cbf54036
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 2 13:43:14 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Sat Apr 2 13:43:14 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=05332aed
gnome-base/gdm: fix crasher with gtk+-3.0.7
---
.../gdm/files/gdm-2.91.94-fix-gtk+-crasher.patch | 104 ++++++++++++++++++++
.../{gdm-2.91.94.ebuild => gdm-2.91.94-r1.ebuild} | 3 +
2 files changed, 107 insertions(+), 0 deletions(-)
diff --git a/gnome-base/gdm/files/gdm-2.91.94-fix-gtk+-crasher.patch b/gnome-base/gdm/files/gdm-2.91.94-fix-gtk+-crasher.patch
new file mode 100644
index 0000000..3b8379e
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-2.91.94-fix-gtk+-crasher.patch
@@ -0,0 +1,104 @@
+From 045c319f2655fc45c24951479eb9cd1e59792cef Mon Sep 17 00:00:00 2001
+From: Benjamin Otte <otte@redhat.com>
+Date: Sat, 2 Apr 2011 04:10:09 +0200
+Subject: [PATCH] simple-greeter: Don't request an invalid size
+
+GTK widgets must at all times report a size they can handle. So it is
+not allowed to return 0 when not realized, because then size allocations
+break when GTK uses this size for its widget.
+In this case, GTK uses the pre-realize size to determine the size it
+should request when creating the greeter window - chicken and egg so to
+say.
+
+This patch just uses the default monitor (I guess the root window's
+monitor is the default monitor?) for determining the login window size.
+
+One thing this patch doesn't do is add a call to gtk_widget_queue_resize()
+from the realize callback or from monitor-changing signals, though
+that's probably technically necessary.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=646498
+---
+ gui/simple-greeter/gdm-greeter-login-window.c | 28 +++++++++----------------
+ 1 files changed, 10 insertions(+), 18 deletions(-)
+
+diff --git a/gui/simple-greeter/gdm-greeter-login-window.c b/gui/simple-greeter/gdm-greeter-login-window.c
+index abd6707..3ec9a09 100644
+--- a/gui/simple-greeter/gdm-greeter-login-window.c
++++ b/gui/simple-greeter/gdm-greeter-login-window.c
+@@ -1413,25 +1413,22 @@ gdm_greeter_login_window_get_preferred_width (GtkWidget *widget,
+ {
+ int monitor;
+ GdkScreen *screen;
++ GdkWindow *window;
+ GdkRectangle area;
+ GtkAllocation widget_allocation;
+ int min_size;
+ int nat_size;
+
+- min_size = 0;
+- nat_size = 0;
+-
+- if (!gtk_widget_get_realized (widget)) {
+- goto out;
+- }
+-
+ gtk_widget_get_preferred_width (gtk_bin_get_child (GTK_BIN (widget)),
+ &min_size,
+ &nat_size);
+
+ /* Make width be at least 33% screen width */
+ screen = gtk_widget_get_screen (widget);
+- monitor = gdk_screen_get_monitor_at_window (screen, gtk_widget_get_window (widget));
++ window = gtk_widget_get_window (widget);
++ if (window == NULL)
++ window = gdk_screen_get_root_window (screen);
++ monitor = gdk_screen_get_monitor_at_window (screen, window);
+ gdk_screen_get_monitor_geometry (screen, monitor, &area);
+ min_size = MAX (min_size, .33 * area.width);
+ nat_size = MAX (nat_size, .33 * area.width);
+@@ -1442,7 +1439,6 @@ gdm_greeter_login_window_get_preferred_width (GtkWidget *widget,
+ min_size = MAX (min_size, widget_allocation.width);
+ nat_size = MAX (nat_size, widget_allocation.width);
+
+- out:
+ if (minimum_size)
+ *minimum_size = min_size;
+ if (natural_size)
+@@ -1456,29 +1452,25 @@ gdm_greeter_login_window_get_preferred_height (GtkWidget *widget,
+ {
+ int monitor;
+ GdkScreen *screen;
++ GdkWindow *window;
+ GdkRectangle area;
+ int min_size;
+ int nat_size;
+
+- min_size = 0;
+- nat_size = 0;
+-
+- if (!gtk_widget_get_realized (widget)) {
+- goto out;
+- }
+-
+ gtk_widget_get_preferred_height (gtk_bin_get_child (GTK_BIN (widget)),
+ &min_size,
+ &nat_size);
+
+ /* Make height be at most 80% of screen height */
+ screen = gtk_widget_get_screen (widget);
+- monitor = gdk_screen_get_monitor_at_window (screen, gtk_widget_get_window (widget));
++ window = gtk_widget_get_window (widget);
++ if (window == NULL)
++ window = gdk_screen_get_root_window (screen);
++ monitor = gdk_screen_get_monitor_at_window (screen, window);
+ gdk_screen_get_monitor_geometry (screen, monitor, &area);
+ min_size = MIN (min_size, .8 * area.height);
+ nat_size = MIN (nat_size, .8 * area.height);
+
+- out:
+ if (minimum_size)
+ *minimum_size = min_size;
+ if (natural_size)
+--
+1.7.4
\ No newline at end of file
diff --git a/gnome-base/gdm/gdm-2.91.94.ebuild b/gnome-base/gdm/gdm-2.91.94-r1.ebuild
similarity index 98%
rename from gnome-base/gdm/gdm-2.91.94.ebuild
rename to gnome-base/gdm/gdm-2.91.94-r1.ebuild
index 1a5e95e..971c67a 100644
--- a/gnome-base/gdm/gdm-2.91.94.ebuild
+++ b/gnome-base/gdm/gdm-2.91.94-r1.ebuild
@@ -118,6 +118,9 @@ src_prepare() {
# fix libxklavier automagic support
epatch "${FILESDIR}/${PN}-2.32.0-automagic-libxklavier-support.patch"
+ # Fix crasher with gtk+-3.0.7, bug 361679
+ epatch "${FILESDIR}/${P}-fix-gtk+-crasher.patch"
+
mkdir "${S}"/m4
intltoolize --force --copy --automake || die "intltoolize failed"
eautoreconf
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gdm/, gnome-base/gdm/files/
@ 2011-04-05 0:57 Nirbheek Chauhan
0 siblings, 0 replies; 14+ messages in thread
From: Nirbheek Chauhan @ 2011-04-05 0:57 UTC (permalink / raw
To: gentoo-commits
commit: 0e581ba965791577ca2eab8f459143aad40f87e2
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Mon Apr 4 20:02:28 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Mon Apr 4 21:20:34 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=0e581ba9
gnome-base/gdm: 2.91.94-r1 → 3.0.0
* Translation updates
* Remove gtk+ hack patch, gtk+ 3.0.8 was released
---
.../gdm/files/gdm-2.91.94-fix-gtk+-crasher.patch | 104 --------------------
.../{gdm-2.91.94-r1.ebuild => gdm-3.0.0.ebuild} | 3 -
2 files changed, 0 insertions(+), 107 deletions(-)
diff --git a/gnome-base/gdm/files/gdm-2.91.94-fix-gtk+-crasher.patch b/gnome-base/gdm/files/gdm-2.91.94-fix-gtk+-crasher.patch
deleted file mode 100644
index 3b8379e..0000000
--- a/gnome-base/gdm/files/gdm-2.91.94-fix-gtk+-crasher.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From 045c319f2655fc45c24951479eb9cd1e59792cef Mon Sep 17 00:00:00 2001
-From: Benjamin Otte <otte@redhat.com>
-Date: Sat, 2 Apr 2011 04:10:09 +0200
-Subject: [PATCH] simple-greeter: Don't request an invalid size
-
-GTK widgets must at all times report a size they can handle. So it is
-not allowed to return 0 when not realized, because then size allocations
-break when GTK uses this size for its widget.
-In this case, GTK uses the pre-realize size to determine the size it
-should request when creating the greeter window - chicken and egg so to
-say.
-
-This patch just uses the default monitor (I guess the root window's
-monitor is the default monitor?) for determining the login window size.
-
-One thing this patch doesn't do is add a call to gtk_widget_queue_resize()
-from the realize callback or from monitor-changing signals, though
-that's probably technically necessary.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=646498
----
- gui/simple-greeter/gdm-greeter-login-window.c | 28 +++++++++----------------
- 1 files changed, 10 insertions(+), 18 deletions(-)
-
-diff --git a/gui/simple-greeter/gdm-greeter-login-window.c b/gui/simple-greeter/gdm-greeter-login-window.c
-index abd6707..3ec9a09 100644
---- a/gui/simple-greeter/gdm-greeter-login-window.c
-+++ b/gui/simple-greeter/gdm-greeter-login-window.c
-@@ -1413,25 +1413,22 @@ gdm_greeter_login_window_get_preferred_width (GtkWidget *widget,
- {
- int monitor;
- GdkScreen *screen;
-+ GdkWindow *window;
- GdkRectangle area;
- GtkAllocation widget_allocation;
- int min_size;
- int nat_size;
-
-- min_size = 0;
-- nat_size = 0;
--
-- if (!gtk_widget_get_realized (widget)) {
-- goto out;
-- }
--
- gtk_widget_get_preferred_width (gtk_bin_get_child (GTK_BIN (widget)),
- &min_size,
- &nat_size);
-
- /* Make width be at least 33% screen width */
- screen = gtk_widget_get_screen (widget);
-- monitor = gdk_screen_get_monitor_at_window (screen, gtk_widget_get_window (widget));
-+ window = gtk_widget_get_window (widget);
-+ if (window == NULL)
-+ window = gdk_screen_get_root_window (screen);
-+ monitor = gdk_screen_get_monitor_at_window (screen, window);
- gdk_screen_get_monitor_geometry (screen, monitor, &area);
- min_size = MAX (min_size, .33 * area.width);
- nat_size = MAX (nat_size, .33 * area.width);
-@@ -1442,7 +1439,6 @@ gdm_greeter_login_window_get_preferred_width (GtkWidget *widget,
- min_size = MAX (min_size, widget_allocation.width);
- nat_size = MAX (nat_size, widget_allocation.width);
-
-- out:
- if (minimum_size)
- *minimum_size = min_size;
- if (natural_size)
-@@ -1456,29 +1452,25 @@ gdm_greeter_login_window_get_preferred_height (GtkWidget *widget,
- {
- int monitor;
- GdkScreen *screen;
-+ GdkWindow *window;
- GdkRectangle area;
- int min_size;
- int nat_size;
-
-- min_size = 0;
-- nat_size = 0;
--
-- if (!gtk_widget_get_realized (widget)) {
-- goto out;
-- }
--
- gtk_widget_get_preferred_height (gtk_bin_get_child (GTK_BIN (widget)),
- &min_size,
- &nat_size);
-
- /* Make height be at most 80% of screen height */
- screen = gtk_widget_get_screen (widget);
-- monitor = gdk_screen_get_monitor_at_window (screen, gtk_widget_get_window (widget));
-+ window = gtk_widget_get_window (widget);
-+ if (window == NULL)
-+ window = gdk_screen_get_root_window (screen);
-+ monitor = gdk_screen_get_monitor_at_window (screen, window);
- gdk_screen_get_monitor_geometry (screen, monitor, &area);
- min_size = MIN (min_size, .8 * area.height);
- nat_size = MIN (nat_size, .8 * area.height);
-
-- out:
- if (minimum_size)
- *minimum_size = min_size;
- if (natural_size)
---
-1.7.4
\ No newline at end of file
diff --git a/gnome-base/gdm/gdm-2.91.94-r1.ebuild b/gnome-base/gdm/gdm-3.0.0.ebuild
similarity index 98%
rename from gnome-base/gdm/gdm-2.91.94-r1.ebuild
rename to gnome-base/gdm/gdm-3.0.0.ebuild
index 971c67a..1a5e95e 100644
--- a/gnome-base/gdm/gdm-2.91.94-r1.ebuild
+++ b/gnome-base/gdm/gdm-3.0.0.ebuild
@@ -118,9 +118,6 @@ src_prepare() {
# fix libxklavier automagic support
epatch "${FILESDIR}/${PN}-2.32.0-automagic-libxklavier-support.patch"
- # Fix crasher with gtk+-3.0.7, bug 361679
- epatch "${FILESDIR}/${P}-fix-gtk+-crasher.patch"
-
mkdir "${S}"/m4
intltoolize --force --copy --automake || die "intltoolize failed"
eautoreconf
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gdm/, gnome-base/gdm/files/
@ 2011-04-15 19:36 Nirbheek Chauhan
0 siblings, 0 replies; 14+ messages in thread
From: Nirbheek Chauhan @ 2011-04-15 19:36 UTC (permalink / raw
To: gentoo-commits
commit: c0ded3e0fe2576cf70a224394ee08d18b6fcfd98
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 15 19:31:06 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Fri Apr 15 19:35:43 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=c0ded3e0
gnome-base/gdm: fix bug 261339, bug 288852, bug 284053, remove old cruft
* VT detection should finally be fixed. See patch for details.
---
.../gdm/files/gdm-3.0.0-fix-vt-problems.patch | 195 ++++++++++++++++++++
.../gdm/{gdm-3.0.0.ebuild => gdm-3.0.0-r1.ebuild} | 33 +---
2 files changed, 202 insertions(+), 26 deletions(-)
diff --git a/gnome-base/gdm/files/gdm-3.0.0-fix-vt-problems.patch b/gnome-base/gdm/files/gdm-3.0.0-fix-vt-problems.patch
new file mode 100644
index 0000000..b7ceb49
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-3.0.0-fix-vt-problems.patch
@@ -0,0 +1,195 @@
+From 64002e623fea54ab10040206d164c5fdee4a43d2 Mon Sep 17 00:00:00 2001
+From: Nirbheek Chauhan <nirbheek@gentoo.org>
+Date: Fri, 15 Apr 2011 22:13:44 +0530
+Subject: [PATCH] Fix VT grab race with getty causing X to grab the wrong VT
+
+On bootup, if X is spawned without any args, it'll take up the first unused VT.
+If GDM starts up before gettys are spawned, X takes up VT1 or VT2 depending on
+the init system and bootsplash.
+
+This is problematic because afterwards getty will come up underneath X, and
+cause keyboard problems and eventually crash X.
+
+So we read /etc/inittab, check for open VTs, compare the two values, and take
+the conservative one.
+---
+ configure.ac | 4 ++
+ daemon/Makefile.am | 1 +
+ daemon/gdm-server.c | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++-
+ 3 files changed, 110 insertions(+), 1 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index ca0f8bb..b9e7462 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -302,6 +302,10 @@ AC_CHECK_TYPE(socklen_t,,
+ AC_CHECK_HEADERS(sys/sockio.h)
+ AC_CHECK_FUNCS([setresuid setenv unsetenv clearenv])
+
++dnl Needed for querying the kernel for free VTs
++AC_CHECK_HEADERS(sys/vt.h)
++AC_CHECK_HEADERS(sys/ioctl.h)
++
+ dnl checks needed for Darwin compatibility to linux **environ.
+ AC_CHECK_HEADERS(crt_externs.h)
+ AC_CHECK_FUNCS(_NSGetEnviron)
+diff --git a/daemon/Makefile.am b/daemon/Makefile.am
+index da18835..c1b6bda 100644
+--- a/daemon/Makefile.am
++++ b/daemon/Makefile.am
+@@ -14,6 +14,7 @@ AM_CPPFLAGS = \
+ -DLIBEXECDIR=\"$(libexecdir)\" \
+ -DLOGDIR=\"$(logdir)\" \
+ -DSBINDIR=\"$(sbindir)\" \
++ -DSYSCONFDIR=\""$(sysconfdir)"\" \
+ -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \
+ -DGDM_XAUTH_DIR=\"$(GDM_XAUTH_DIR)\" \
+ -DGDM_SCREENSHOT_DIR=\"$(GDM_SCREENSHOT_DIR)\" \
+diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c
+index 339f3cc..29d16dc 100644
+--- a/daemon/gdm-server.c
++++ b/daemon/gdm-server.c
+@@ -26,6 +26,8 @@
+ #include <unistd.h>
+ #include <string.h>
+ #include <sys/types.h>
++#include <sys/ioctl.h>
++#include <sys/vt.h>
+ #include <sys/wait.h>
+ #include <errno.h>
+ #include <ctype.h>
+@@ -42,6 +44,7 @@
+ #include <glib/gi18n.h>
+ #include <glib/gstdio.h>
+ #include <glib-object.h>
++#include <gio/gio.h>
+
+ #include <X11/Xlib.h> /* for Display */
+
+@@ -54,6 +57,8 @@ extern char **environ;
+
+ #define GDM_SERVER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_SERVER, GdmServerPrivate))
+
++#define INITTAB SYSCONFDIR"/inittab"
++
+ /* These are the servstat values, also used as server
+ * process exit codes */
+ #define SERVER_TIMEOUT 2 /* Server didn't start */
+@@ -674,6 +679,105 @@ gdm_server_spawn (GdmServer *server,
+ }
+
+ /**
++ * Parse the inittab file used by getty to spawn VTs to find unused ttys
++ */
++int
++get_free_vt_from_inittab ()
++{
++ GFile *gfile;
++ GFileInputStream *contents;
++ GDataInputStream *dstream;
++ GRegex *getty;
++ GMatchInfo *tty_match = NULL;
++ GSList *tty_list = NULL;
++ GError *error = NULL;
++ gchar *temp = NULL;
++ int vtno = 0;
++
++ gfile = g_file_new_for_path (INITTAB);
++ contents = g_file_read (gfile, NULL, &error);
++ g_object_unref (gfile);
++ if (!contents) {
++ if (error) {
++ g_debug ("Unable to open file %s", INITTAB);
++ g_error_free (error);
++ }
++ goto out;
++ }
++
++ dstream = g_data_input_stream_new (G_INPUT_STREAM (contents));
++ getty = g_regex_new ("^c[0-9]+:.+getty.+tty([0-9]+)", 0, 0, NULL);
++ g_object_unref (contents);
++
++ while (1) {
++ temp = g_data_input_stream_read_line (dstream, NULL, NULL, &error);
++ if (!temp)
++ break;
++ if (!g_regex_match (getty, temp, 0, &tty_match))
++ continue;
++ g_free (temp);
++ temp = g_match_info_fetch (tty_match, 1);
++ if (!temp)
++ continue;
++ tty_list = g_slist_insert_sorted (tty_list, temp, (GCompareFunc)g_strcmp0);
++ g_match_info_free (tty_match);
++ }
++
++ if (error) {
++ g_debug ("Unable to read line from %s", INITTAB);
++ g_error_free (error);
++ goto free;
++ }
++
++ /* Ignore holes in vt allocation, just take the last one */
++ temp = g_slist_last (tty_list)->data;
++ if (temp)
++ vtno = (int) g_ascii_strtoull (temp, NULL, 10) + 1;
++
++free:
++ g_object_unref (dstream);
++ g_regex_unref (getty);
++ g_slist_free_full (tty_list, g_free);
++ g_free (error);
++out:
++ return vtno;
++}
++
++/**
++ * Query the VT_* kernel ioctls to find an empty tty
++ */
++int
++get_free_vt_from_kernel()
++{
++ int fd, vtno = 0;
++
++ fd = open ("/dev/tty0", O_WRONLY, 0);
++ if ((ioctl(fd, VT_OPENQRY, &vtno) < 0) || (vtno == -1)) {
++ vtno = 0;
++ g_debug ("Unable to find a free vt, falling back to Xorg autodetect");
++ }
++ return vtno;
++}
++
++gchar*
++get_free_vt ()
++{
++ int inittab_vtno, kernel_vtno;
++ gchar* vt = NULL;
++
++ inittab_vtno = get_free_vt_from_inittab();
++ if (inittab_vtno > 0)
++ g_debug ("Inittab says vt%i is free\n", inittab_vtno);
++ kernel_vtno = get_free_vt_from_kernel();
++ if (kernel_vtno > 0)
++ g_debug ("Kernel says vt%i is free\n", kernel_vtno);
++ /* Select the greater of the two because getty will use the others */
++ if (kernel_vtno != 0 && inittab_vtno != 0)
++ vt = g_strdup_printf ("vt%i", kernel_vtno > inittab_vtno ? kernel_vtno : inittab_vtno);
++ return vt;
++}
++
++/**
+ * gdm_server_start:
+ * @disp: Pointer to a GdmDisplay structure
+ *
+@@ -686,7 +790,7 @@ gdm_server_start (GdmServer *server)
+ gboolean res;
+
+ /* fork X server process */
+- res = gdm_server_spawn (server, NULL);
++ res = gdm_server_spawn (server, get_free_vt());
+
+ return res;
+ }
+--
+1.7.3.4
+
diff --git a/gnome-base/gdm/gdm-3.0.0.ebuild b/gnome-base/gdm/gdm-3.0.0-r1.ebuild
similarity index 84%
rename from gnome-base/gdm/gdm-3.0.0.ebuild
rename to gnome-base/gdm/gdm-3.0.0-r1.ebuild
index 6b964ab..0e43a55 100644
--- a/gnome-base/gdm/gdm-3.0.0.ebuild
+++ b/gnome-base/gdm/gdm-3.0.0-r1.ebuild
@@ -1,6 +1,6 @@
-# Copyright 1999-2010 Gentoo Foundation
+# 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-2.32.0.ebuild,v 1.2 2010/11/11 11:48:55 ssuominen Exp $
+# $Header: $
EAPI="3"
GCONF_DEBUG="yes"
@@ -90,7 +90,6 @@ pkg_setup() {
--with-xdmcp=yes
--enable-authentication-scheme=pam
--with-pam-prefix=/etc
- SOUND_PROGRAM=/usr/bin/gdmplay
$(use_with accessibility xevie)
$(use_enable ipv6)
$(use_enable xklavier libxklavier)
@@ -112,9 +111,8 @@ src_prepare() {
# daemonize so that the boot process can continue, bug #236701
epatch "${FILESDIR}/${PN}-2.32.0-fix-daemonize-regression.patch"
- # fix VT grab problem causing GDM to grab VT2 instead of 7, bug #261339
- # FIXME FIXME FIXME: this is due to a race b/w getty and gdm
- #epatch "${FILESDIR}/${PN}-2.32.0-broken-VT-detection.patch"
+ # GDM grabs VT2 instead of VT7, bug 261339, bug 284053, bug 288852
+ epatch "${FILESDIR}/${PN}-3.0.0-fix-vt-problems.patch"
# make custom session work, bug #216984
epatch "${FILESDIR}/${PN}-2.32.0-custom-session.patch"
@@ -125,7 +123,7 @@ src_prepare() {
# fix libxklavier automagic support
epatch "${FILESDIR}/${PN}-2.32.0-automagic-libxklavier-support.patch"
- mkdir "${S}"/m4
+ mkdir -p "${S}"/m4
intltoolize --force --copy --automake || die "intltoolize failed"
eautoreconf
}
@@ -135,6 +133,7 @@ src_install() {
local gentoodir="${WORKDIR}/${GDM_EXTRA}"
+ # FIXME: Remove dosym usage, gone in EAPI 4
# gdm-binary should be gdm to work with our init (#5598)
rm -f "${D}/usr/sbin/gdm"
dosym /usr/sbin/gdm-binary /usr/sbin/gdm
@@ -144,14 +143,6 @@ src_install() {
# log, etc.
keepdir /var/log/gdm
- keepdir /var/gdm
-
- fowners root:gdm /var/gdm
- fperms 1770 /var/gdm
-
- # add a custom xsession .desktop by default (#44537)
- exeinto /etc/X11/dm/Sessions
- doexe "${gentoodir}/custom.desktop" || die "doexe 1 failed"
# add xinitrc.d scripts
exeinto /etc/X11/xinit/xinitrc.d
@@ -162,19 +153,9 @@ src_install() {
echo 'XDG_DATA_DIRS="/usr/share/gdm"' > 99xdg-gdm
doenvd 99xdg-gdm || die "doenvd failed"
- # add a custom sound playing script (#248253)
- dobin "${gentoodir}/gdmplay"
-
- # avoid file collision, bug #213118
- rm -f "${D}/usr/share/xsessions/gnome.desktop"
-
- # We replace the pam stuff by our own
- rm -rf "${D}/etc/pam.d"
-
use gnome-keyring && sed -i "s:#Keyring=::g" "${gentoodir}"/pam.d/*
- dopamd "${gentoodir}"/pam.d/*
- dopamsecurity console.apps "${gentoodir}/security/console.apps/gdmsetup"
+ dopamd "${gentoodir}"/pam.d/gdm{,-autologin}
}
pkg_postinst() {
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gdm/, gnome-base/gdm/files/
@ 2011-05-03 10:52 Nirbheek Chauhan
0 siblings, 0 replies; 14+ messages in thread
From: Nirbheek Chauhan @ 2011-05-03 10:52 UTC (permalink / raw
To: gentoo-commits
commit: f3b52d95a03e918e1b382bbe1ee9ed01ed2fae0e
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Tue May 3 10:51:49 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Tue May 3 10:51:49 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=f3b52d95
gnome-base/gdm: rename patch
---
...lems.patch => gdm-2.32.0-fix-vt-problems.patch} | 0
gnome-base/gdm/gdm-3.0.0-r1.ebuild | 2 +-
2 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/gnome-base/gdm/files/gdm-3.0.0-fix-vt-problems.patch b/gnome-base/gdm/files/gdm-2.32.0-fix-vt-problems.patch
similarity index 100%
rename from gnome-base/gdm/files/gdm-3.0.0-fix-vt-problems.patch
rename to gnome-base/gdm/files/gdm-2.32.0-fix-vt-problems.patch
diff --git a/gnome-base/gdm/gdm-3.0.0-r1.ebuild b/gnome-base/gdm/gdm-3.0.0-r1.ebuild
index 0e43a55..70cbe3e 100644
--- a/gnome-base/gdm/gdm-3.0.0-r1.ebuild
+++ b/gnome-base/gdm/gdm-3.0.0-r1.ebuild
@@ -112,7 +112,7 @@ src_prepare() {
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}-3.0.0-fix-vt-problems.patch"
+ epatch "${FILESDIR}/${PN}-2.32.0-fix-vt-problems.patch"
# make custom session work, bug #216984
epatch "${FILESDIR}/${PN}-2.32.0-custom-session.patch"
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gdm/, gnome-base/gdm/files/
@ 2011-06-26 6:22 Nirbheek Chauhan
0 siblings, 0 replies; 14+ messages in thread
From: Nirbheek Chauhan @ 2011-06-26 6:22 UTC (permalink / raw
To: gentoo-commits
commit: 1ec5de286fd5263128fe03e3c3d3533542c9df28
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 26 06:22:34 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Sun Jun 26 06:22:34 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=1ec5de28
gnome-base/gdm: install systemd unit file, bump to EAPI 4, don't use dosym
---
gnome-base/gdm/files/gdm@.service | 11 +++++++++++
.../gdm/{gdm-3.0.4.ebuild => gdm-3.0.4-r1.ebuild} | 14 ++++++++------
2 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/gnome-base/gdm/files/gdm@.service b/gnome-base/gdm/files/gdm@.service
new file mode 100644
index 0000000..aa5f406
--- /dev/null
+++ b/gnome-base/gdm/files/gdm@.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Gnome Display Manager on %I
+Requires=dev-%i.device
+After=dev-%i.device
+
+[Service]
+ExecStart=/usr/bin/gdm -nodaemon
+ExecStop=/usr/sbin/gdm-stop
+
+[Install]
+Alias=graphical.target.wants/gdm@tty7.service
diff --git a/gnome-base/gdm/gdm-3.0.4.ebuild b/gnome-base/gdm/gdm-3.0.4-r1.ebuild
similarity index 95%
rename from gnome-base/gdm/gdm-3.0.4.ebuild
rename to gnome-base/gdm/gdm-3.0.4-r1.ebuild
index 7386973..736fd65 100644
--- a/gnome-base/gdm/gdm-3.0.4.ebuild
+++ b/gnome-base/gdm/gdm-3.0.4-r1.ebuild
@@ -2,10 +2,10 @@
# Distributed under the terms of the GNU General Public License v2
# $Header: $
-EAPI="3"
+EAPI="4"
GCONF_DEBUG="yes"
-inherit autotools eutils gnome2 pam
+inherit autotools eutils gnome2 pam systemd
DESCRIPTION="GNOME Display Manager"
HOMEPAGE="http://www.gnome.org/projects/gdm/"
@@ -133,13 +133,15 @@ src_install() {
local gentoodir="${WORKDIR}/${GDM_EXTRA}"
+ # Install the systemd unit file
+ systemd_dounit "${FILESDIR}/gdm@.service"
+
# FIXME: Remove dosym usage, gone in EAPI 4
# gdm-binary should be gdm to work with our init (#5598)
- rm -f "${D}/usr/sbin/gdm"
- dosym /usr/sbin/gdm-binary /usr/sbin/gdm
-
+ 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
- dosym /usr/sbin/gdm-binary /usr/bin/gdm
+ ln -sfn /usr/sbin/gdm-binary "${ED}/usr/bin/gdm"
# log, etc.
keepdir /var/log/gdm
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gdm/, gnome-base/gdm/files/
@ 2011-08-13 6:08 Alexandre Restovtsev
0 siblings, 0 replies; 14+ messages in thread
From: Alexandre Restovtsev @ 2011-08-13 6:08 UTC (permalink / raw
To: gentoo-commits
commit: 09e6158c7f2664db4dc22b42b68b6ce9c2018fae
Author: Alexandre Rostovtsev <tetromino <AT> gmail <DOT> com>
AuthorDate: Sat Aug 13 05:58:46 2011 +0000
Commit: Alexandre Restovtsev <tetromino <AT> gmail <DOT> com>
CommitDate: Sat Aug 13 05:58:46 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=09e6158c
gnome-base/gdm: 3.0.4-r1 → 3.0.4-r2, a11y and env variable fixes
Explicitly use --with-at-spi-registryd-directory configure argument
to correctly set the path in at-spi-registryd-wrapper.desktop; see
https://bugzilla.gnome.org/show_bug.cgi?id=607643#c4
Add at-spi to runtime dependencies when USE=accessibility (it's loaded
at runtime).
Patch gdm's gconf defaults if USE=-accessibility to prevent it from
loading accessibility functionality at runtime.
Patch gdm to not ignore all environment variables when launching
gnome-session; see https://bugzilla.gnome.org/show_bug.cgi?id=656094
---
gnome-base/gdm/files/gdm-3.0.4-disable-a11y.patch | 21 +++
...dm-3.0.4-hardcoded-gnome-session-path-env.patch | 132 ++++++++++++++++++++
.../{gdm-3.0.4-r1.ebuild => gdm-3.0.4-r2.ebuild} | 15 ++-
3 files changed, 166 insertions(+), 2 deletions(-)
diff --git a/gnome-base/gdm/files/gdm-3.0.4-disable-a11y.patch b/gnome-base/gdm/files/gdm-3.0.4-disable-a11y.patch
new file mode 100644
index 0000000..94d83af
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-3.0.4-disable-a11y.patch
@@ -0,0 +1,21 @@
+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>
+
diff --git a/gnome-base/gdm/files/gdm-3.0.4-hardcoded-gnome-session-path-env.patch b/gnome-base/gdm/files/gdm-3.0.4-hardcoded-gnome-session-path-env.patch
new file mode 100644
index 0000000..50564de
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-3.0.4-hardcoded-gnome-session-path-env.patch
@@ -0,0 +1,132 @@
+From ece7e78e3ef5278382acbf8258950c8607a5d7df Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gmail.com>
+Date: Sun, 7 Aug 2011 02:15:11 -0400
+Subject: [PATCH] Don't hardcode gnome-session path, don't drop harmless env
+ variables
+
+Don't hardcode the location of the gnome-session executable to /usr/bin.
+The system administrator may want have installed a custom wrapper in
+/usr/local that he wants gdm to use instead.
+
+Also, change the logic for how environment variables in spawned session
+processes are set. Instead of inheriting i18n variables from the current
+process and then setting the needed ones, we now:
+1. set needed environment variables;
+2. inherit env variables that had not been set in step 1 from the
+ current process;
+3. drop specific variables that may cause problems.
+
+This allows a system administrator to force gdm to spawn sessions with a
+particular custom environment variable set to e.g. work around hardware
+driver bugs.
+
+Addresses https://bugzilla.gnome.org/show_bug.cgi?id=656094
+---
+ daemon/gdm-greeter-session.c | 2 +-
+ daemon/gdm-welcome-session.c | 43 ++++++++++++++++++++++++++---------------
+ 2 files changed, 28 insertions(+), 17 deletions(-)
+
+diff --git a/daemon/gdm-greeter-session.c b/daemon/gdm-greeter-session.c
+index a401508..7429314 100644
+--- a/daemon/gdm-greeter-session.c
++++ b/daemon/gdm-greeter-session.c
+@@ -148,7 +148,7 @@ gdm_greeter_session_new (const char *display_name,
+ GObject *object;
+
+ object = g_object_new (GDM_TYPE_GREETER_SESSION,
+- "command", BINDIR "/gnome-session --session gdm --autostart="DATADIR"/gdm/autostart/LoginWindow/",
++ "command", "gnome-session --session gdm --autostart="DATADIR"/gdm/autostart/LoginWindow/",
+ "server-dbus-path", GDM_GREETER_SERVER_DBUS_PATH,
+ "server-dbus-interface", GDM_GREETER_SERVER_DBUS_INTERFACE,
+ "server-env-var-name", "GDM_GREETER_DBUS_ADDRESS",
+diff --git a/daemon/gdm-welcome-session.c b/daemon/gdm-welcome-session.c
+index b8ec8d7..d0e6030 100644
+--- a/daemon/gdm-welcome-session.c
++++ b/daemon/gdm-welcome-session.c
+@@ -350,32 +350,28 @@ get_welcome_environment (GdmWelcomeSession *welcome_session,
+ GPtrArray *env;
+ GHashTable *hash;
+ struct passwd *pwent;
+- static const char * const optional_environment[] = {
++ static const char * const lang_environment[] = {
+ "LANG", "LANGUAGE", "LC_CTYPE", "LC_NUMERIC", "LC_TIME",
+ "LC_COLLATE", "LC_MONETARY", "LC_MESSAGES", "LC_PAPER",
+ "LC_NAME", "LC_ADDRESS", "LC_TELEPHONE", "LC_MEASUREMENT",
+ "LC_IDENTIFICATION", "LC_ALL",
+ NULL
+ };
++ static const char * const drop_environment[] = {
++ "MAIL", NULL
++ };
++ char **curr_environment;
+ int i;
+
+ load_lang_config_file (LANG_CONFIG_FILE,
+- (const char **) optional_environment);
++ (const char **) lang_environment);
++ curr_environment = g_listenv ();
+ env = g_ptr_array_new ();
+
+- /* create a hash table of current environment, then update keys has necessary */
++ /* Create a hash table for environment variables.
++ * First, insert keys we need to set. */
+ hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+
+- for (i = 0; optional_environment[i] != NULL; i++) {
+- if (g_getenv (optional_environment[i]) == NULL) {
+- continue;
+- }
+-
+- g_hash_table_insert (hash,
+- g_strdup (optional_environment[i]),
+- g_strdup (g_getenv (optional_environment[i])));
+- }
+-
+ if (welcome_session->priv->dbus_bus_address != NULL) {
+ g_hash_table_insert (hash,
+ g_strdup ("DBUS_SESSION_BUS_ADDRESS"),
+@@ -409,7 +405,6 @@ get_welcome_environment (GdmWelcomeSession *welcome_session,
+ g_hash_table_insert (hash, g_strdup ("USERNAME"), g_strdup (welcome_session->priv->user_name));
+
+ g_hash_table_insert (hash, g_strdup ("GDM_VERSION"), g_strdup (VERSION));
+- g_hash_table_remove (hash, "MAIL");
+
+ g_hash_table_insert (hash, g_strdup ("HOME"), g_strdup ("/"));
+ g_hash_table_insert (hash, g_strdup ("PWD"), g_strdup ("/"));
+@@ -435,15 +430,31 @@ get_welcome_environment (GdmWelcomeSession *welcome_session,
+ g_hash_table_insert (hash, g_strdup ("GDM_SEAT_ID"), g_strdup (seat_id));
+ }
+
+- g_hash_table_insert (hash, g_strdup ("PATH"), g_strdup (g_getenv ("PATH")));
+- g_hash_table_insert (hash, g_strdup ("WINDOWPATH"), g_strdup (g_getenv ("WINDOWPATH")));
+ g_hash_table_insert (hash, g_strdup ("RUNNING_UNDER_GDM"), g_strdup ("true"));
+ g_hash_table_insert (hash, g_strdup ("GVFS_DISABLE_FUSE"), g_strdup ("1"));
+ g_hash_table_insert (hash, g_strdup ("DCONF_PROFILE"), g_strdup ("gdm"));
+
++ /* Second, insert environment variables from current process that haven't been set in the hash yet. */
++ for (i = 0; curr_environment[i] != NULL; i++) {
++ if (g_hash_table_lookup (hash, curr_environment[i]) != NULL ||
++ g_getenv (curr_environment[i]) == NULL) {
++ continue;
++ }
++
++ g_hash_table_insert (hash,
++ g_strdup (curr_environment[i]),
++ g_strdup (g_getenv (curr_environment[i])));
++ }
++
++ /* Third, remove undesirable environment variables. */
++ for (i = 0; drop_environment[i] != NULL; i++)
++ g_hash_table_remove (hash, drop_environment[i]);
++
+ g_hash_table_foreach (hash, (GHFunc)listify_hash, env);
+ g_hash_table_destroy (hash);
+
++ g_strfreev (curr_environment);
++
+ g_ptr_array_add (env, NULL);
+
+ return env;
+--
+1.7.6
+
diff --git a/gnome-base/gdm/gdm-3.0.4-r1.ebuild b/gnome-base/gdm/gdm-3.0.4-r2.ebuild
similarity index 90%
rename from gnome-base/gdm/gdm-3.0.4-r1.ebuild
rename to gnome-base/gdm/gdm-3.0.4-r2.ebuild
index 736fd65..3a8b8a7 100644
--- a/gnome-base/gdm/gdm-3.0.4-r1.ebuild
+++ b/gnome-base/gdm/gdm-3.0.4-r2.ebuild
@@ -69,11 +69,13 @@ DEPEND="${COMMON_DEPEND}
>=app-text/scrollkeeper-0.1.4
>=app-text/gnome-doc-utils-0.3.2"
# XXX: These deps are from the gnome-session gdm.session file
+# at-spi is needed for at-spi-registryd-wrapper.desktop
RDEPEND="${COMMON_DEPEND}
>=gnome-base/gnome-session-2.91.92
>=gnome-base/gnome-settings-daemon-2.91
x11-wm/metacity
+ accessibility? ( gnome-extra/at-spi:1 )
consolekit? ( gnome-extra/polkit-gnome )
!gnome-extra/fast-user-switch-applet"
@@ -84,12 +86,15 @@ pkg_setup() {
# 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
- --localstatedir=/var
+ --localstatedir=${EROOT}var
--with-xdmcp=yes
--enable-authentication-scheme=pam
- --with-pam-prefix=/etc
+ --with-pam-prefix=${EROOT}etc
+ --with-at-spi-registryd-directory=${EROOT}usr/libexec
$(use_with accessibility xevie)
$(use_enable ipv6)
$(use_enable xklavier libxklavier)
@@ -123,6 +128,12 @@ src_prepare() {
# fix libxklavier automagic support
epatch "${FILESDIR}/${PN}-2.32.0-automagic-libxklavier-support.patch"
+ # don't ignore all non-i18n environment variables, gnome bug 656094
+ epatch "${FILESDIR}/${PN}-3.0.4-hardcoded-gnome-session-path-env.patch"
+
+ # don't load accessibility support at runtime when USE=-accessibility
+ use accessibility || epatch "${FILESDIR}/${PN}-3.0.4-disable-a11y.patch"
+
mkdir -p "${S}"/m4
intltoolize --force --copy --automake || die "intltoolize failed"
eautoreconf
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gdm/, gnome-base/gdm/files/
@ 2011-10-23 8:41 Alexandre Restovtsev
0 siblings, 0 replies; 14+ messages in thread
From: Alexandre Restovtsev @ 2011-10-23 8:41 UTC (permalink / raw
To: gentoo-commits
commit: 110e267c48f5629a139700722bc6ceee1f59eea7
Author: Alexandre Rostovtsev <tetromino <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 23 07:07:12 2011 +0000
Commit: Alexandre Restovtsev <tetromino <AT> gmail <DOT> com>
CommitDate: Sun Oct 23 08:32:23 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=110e267c
gnome-base/gdm: 3.2.0-r1 → 3.2.1.1
Bump, now uses a different way of setting gsettings defaults, and the
gdm Xsession script now explicitly calls "xhost +si:localuser:`id -un`"
(which should not make a difference on Gentoo, since we were doing it
anyway in /etc/xinit/xinitrc.d/00-xhost).
Also, drop .la files; they are entirely unnecessary.
---
.../files/gdm-3.1.91-disable-accessibility.patch | 60 ------------------
.../gdm/files/gdm-3.2.1.1-custom-session.patch | 51 +++++++++++++++
.../files/gdm-3.2.1.1-disable-accessibility.patch | 65 ++++++++++++++++++++
.../{gdm-3.2.0-r1.ebuild => gdm-3.2.1.1.ebuild} | 18 +++---
4 files changed, 124 insertions(+), 70 deletions(-)
diff --git a/gnome-base/gdm/files/gdm-3.1.91-disable-accessibility.patch b/gnome-base/gdm/files/gdm-3.1.91-disable-accessibility.patch
deleted file mode 100644
index 54bc4a7..0000000
--- a/gnome-base/gdm/files/gdm-3.1.91-disable-accessibility.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 947f39a9de41495eadd58f92a84d350d4e6e6580 Mon Sep 17 00:00:00 2001
-From: Alexandre Rostovtsev <tetromino@gmail.com>
-Date: Wed, 14 Sep 2011 22:09:56 -0400
-Subject: [PATCH 2/2] Disable a11y in gconf and gsettings defaults
-
----
- data/make-dconf-override-db.sh | 6 +++---
- data/session-setup.entries | 4 ++--
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/data/make-dconf-override-db.sh b/data/make-dconf-override-db.sh
-index 638fe1d..af8fa9c 100755
---- a/data/make-dconf-override-db.sh
-+++ b/data/make-dconf-override-db.sh
-@@ -13,10 +13,10 @@ trap 'rm -rf $TMPDIR; kill $DBUS_SESSION_BUS_PID' ERR
-
- gsettings set org.gnome.power-manager show-actions false || :
-
--gsettings set org.gnome.desktop.a11y.keyboard enable true
-+gsettings set org.gnome.desktop.a11y.keyboard enable false
- gsettings set org.gnome.desktop.background show-desktop-icons false
- gsettings set org.gnome.desktop.default-applications.terminal exec '"/bin/true"'
--gsettings set org.gnome.desktop.interface toolkit-accessibility true
-+gsettings set org.gnome.desktop.interface toolkit-accessibility false
-
- gsettings set org.gnome.desktop.lockdown disable-application-handlers true
- gsettings set org.gnome.desktop.lockdown disable-command-line true
-@@ -48,7 +48,7 @@ gsettings list-schemas | egrep '^org\.gnome\.settings-daemon\.plugins\.' | while
- gsettings set $schema active false
- done
-
--gsettings set org.gnome.settings-daemon.plugins.a11y-keyboard active true
-+gsettings set org.gnome.settings-daemon.plugins.a11y-keyboard active false
- gsettings set org.gnome.settings-daemon.plugins.background active true
- gsettings set org.gnome.settings-daemon.plugins.cursor active true
- gsettings set org.gnome.settings-daemon.plugins.media-keys active true
-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.6.1
-
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 0000000..0642f7c
--- /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 0000000..ab8325f
--- /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.0-r1.ebuild b/gnome-base/gdm/gdm-3.2.1.1.ebuild
similarity index 94%
rename from gnome-base/gdm/gdm-3.2.0-r1.ebuild
rename to gnome-base/gdm/gdm-3.2.1.1.ebuild
index fc6e066..3bb548a 100644
--- a/gnome-base/gdm/gdm-3.2.0-r1.ebuild
+++ b/gnome-base/gdm/gdm-3.2.1.1.ebuild
@@ -3,6 +3,7 @@
# $Header: $
EAPI="4"
+GNOME2_LA_PUNT="yes"
GCONF_DEBUG="yes"
inherit autotools eutils gnome2 pam systemd
@@ -25,7 +26,7 @@ SRC_URI="${SRC_URI}
# 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 build time for make-dconf-override-db.sh
+# 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
@@ -155,7 +156,7 @@ src_prepare() {
epatch "${FILESDIR}/${PN}-2.32.0-fix-vt-problems.patch"
# make custom session work, bug #216984
- epatch "${FILESDIR}/${PN}-2.32.0-custom-session.patch"
+ 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"
@@ -167,17 +168,12 @@ src_prepare() {
epatch "${FILESDIR}/${PN}-3.1.91-hardcoded-gnome-session-path-env.patch"
# don't load accessibility support at runtime when USE=-accessibility
- if ! use accessibility; then
- epatch "${FILESDIR}/${PN}-3.1.91-disable-accessibility.patch"
- # force gsettings override db to be regenerated
- rm -f data/dconf-override-db
- fi
+ 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/make-dconf-override-db.sh || die "sed failed"
- rm -f data/dconf-override-db
+ sed -e "s:'gdm-shell':'gdm-fallback':" \
+ -i data/00-upstream-settings || die "sed failed"
fi
mkdir -p "${S}"/m4
@@ -224,6 +220,8 @@ src_install() {
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."
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gdm/, gnome-base/gdm/files/
@ 2012-08-18 14:07 Priit Laes
0 siblings, 0 replies; 14+ messages in thread
From: Priit Laes @ 2012-08-18 14:07 UTC (permalink / raw
To: gentoo-commits
commit: 01fcfc0e56c49b029af9278a0a4a8044cf3a4f30
Author: Priit Laes <plaes <AT> plaes <DOT> org>
AuthorDate: Sat Aug 18 14:04:38 2012 +0000
Commit: Priit Laes <plaes <AT> plaes <DOT> org>
CommitDate: Sat Aug 18 14:04:38 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=01fcfc0e
gnome-base/gdm: Revbump to counter dconf-0.13 breakage
---
.../gdm/files/gdm-3.4.1-dconf-compatibility.patch | 19 ++
gnome-base/gdm/files/gdm-3.4.1-plymouth.patch | 338 ++++++++++++++++++++
.../gdm/files/gdm-3.4.1-save-root-window.patch | 141 ++++++++
gnome-base/gdm/gdm-3.4.1-r1.ebuild | 274 ++++++++++++++++
4 files changed, 772 insertions(+), 0 deletions(-)
diff --git a/gnome-base/gdm/files/gdm-3.4.1-dconf-compatibility.patch b/gnome-base/gdm/files/gdm-3.4.1-dconf-compatibility.patch
new file mode 100644
index 0000000..3106bec
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-3.4.1-dconf-compatibility.patch
@@ -0,0 +1,19 @@
+commit c0ad2d5b85b063bd7cb5dd2153f0755f4ebe3efb
+Author: Matthias Clasen <mclasen@redhat.com>
+Date: Thu Jul 19 08:23:29 2012 -0400
+
+ Update the syntax of the dconf profile file
+
+ We were using a deprecated syntax which stopped working in
+ dconf 0.13.4 - without warning :-(. See
+ http://live.gnome.org/dconf/SystemAdministrators
+
+diff --git a/data/dconf-profile b/data/dconf-profile
+index d5a90e5..68deb5a 100644
+--- a/data/dconf-profile
++++ b/data/dconf-profile
+@@ -1,2 +1,2 @@
+-user
+-gdm
++user-db:user
++system-db:gdm
diff --git a/gnome-base/gdm/files/gdm-3.4.1-plymouth.patch b/gnome-base/gdm/files/gdm-3.4.1-plymouth.patch
new file mode 100644
index 0000000..edd6220
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-3.4.1-plymouth.patch
@@ -0,0 +1,338 @@
+From c56fbb65277e8a17db5e0939f0b02e41c4ec784c Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode@redhat.com>
+Date: Fri, 27 Nov 2009 18:52:54 -0500
+Subject: [PATCH] daemon: enable smooth transition between plymouth and X
+
+This commit adds optional support for interacting with plymouth
+from gdm. This feature can be enabled by passing --with-plymouth
+to configure.
+
+Hopefully, this will enable the various distributions that use
+plymouth to drop a patch.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=572173
+---
+ configure.ac | 32 +++++++++++++
+ daemon/gdm-server.c | 60 +++++++++++++++++++++++++
+ daemon/gdm-server.h | 3 +
+ daemon/gdm-simple-slave.c | 106 ++++++++++++++++++++++++++++++++++++++++++++-
+ 4 files changed, 200 insertions(+), 1 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 35e6e04..81ea23e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -264,6 +264,10 @@ AC_ARG_WITH(systemd,
+ AS_HELP_STRING([--with-systemd],
+ [Add systemd support @<:@default=auto@:>@]),
+ [with_systemd=$withval], [with_systemd=auto])
++AC_ARG_WITH(plymouth,
++ AS_HELP_STRING([--with-plymouth],
++ [Add plymouth support @<:@default=auto@:>@]),
++ [with_plymouth=$withval], [with_plymouth=auto])
+
+ AC_ARG_WITH(at-spi-registryd-directory,
+ AS_HELP_STRING([--with-at-spi-registryd-directory],
+@@ -952,6 +956,33 @@ AC_SUBST(SYSTEMD_X_SERVER)
+ AC_DEFINE_UNQUOTED(SYSTEMD_X_SERVER,"$SYSTEMD_X_SERVER",[Path to systemd X server wrapper])
+
+ dnl ---------------------------------------------------------------------------
++dnl - Check for plymouth support
++dnl ---------------------------------------------------------------------------
++PKG_CHECK_MODULES(PLYMOUTH,
++ [ply-boot-client],
++ [have_plymouth=yes], [have_plymouth=no])
++
++if test "x$with_plymouth" = "xauto" ; then
++ if test x$have_plymouth = xno ; then
++ use_plymouth=no
++ else
++ use_plymouth=yes
++ fi
++else
++ use_plymouth="$with_plymouth"
++fi
++
++if test "x$use_plymouth" != "xno" ; then
++ if test "x$have_plymouth" = "xno"; then
++ AC_MSG_ERROR([Plymouth support explicitly required, but plymouth not found])
++ fi
++
++ AC_DEFINE(WITH_PLYMOUTH, 1, [Define to enable plymouth support])
++fi
++AC_SUBST(PLYMOUTH_CFLAGS)
++AC_SUBST(PLYMOUTH_LIBS)
++
++dnl ---------------------------------------------------------------------------
+ dnl - Check for D-Bus
+ dnl ---------------------------------------------------------------------------
+
+@@ -1537,6 +1568,7 @@ echo \
+ SELinux support: ${with_selinux}
+ ConsoleKit support: ${use_console_kit}
+ systemd support: ${use_systemd}
++ plymouth support: ${use_plymouth}
+ UPower support: ${have_upower}
+ Build with RBAC: ${msg_rbac_shutdown}
+ "
+diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c
+index d0d8ff9..6f2a939 100644
+--- a/daemon/gdm-server.c
++++ b/daemon/gdm-server.c
+@@ -32,6 +32,7 @@
+ #include <pwd.h>
+ #include <grp.h>
+ #include <signal.h>
++#include <sys/ioctl.h>
+ #include <sys/resource.h>
+
+ #ifdef HAVE_SYS_PRCTL_H
+@@ -42,6 +43,10 @@
+ #include <systemd/sd-daemon.h>
+ #endif
+
++#ifdef WITH_PLYMOUTH
++#include <linux/vt.h>
++#endif
++
+ #include <glib.h>
+ #include <glib/gi18n.h>
+ #include <glib/gstdio.h>
+@@ -751,6 +756,61 @@ gdm_server_spawn (GdmServer *server,
+ return ret;
+ }
+
++#ifdef WITH_PLYMOUTH
++static int
++get_active_vt (void)
++{
++ int console_fd;
++ struct vt_stat console_state = { 0 };
++
++ console_fd = open ("/dev/tty0", O_RDONLY | O_NOCTTY);
++
++ if (console_fd < 0) {
++ goto out;
++ }
++
++ if (ioctl (console_fd, VT_GETSTATE, &console_state) < 0) {
++ goto out;
++ }
++
++out:
++ if (console_fd >= 0) {
++ close (console_fd);
++ }
++
++ return console_state.v_active;
++}
++
++static char *
++get_active_vt_as_string (void)
++{
++ int vt;
++
++ vt = get_active_vt ();
++
++ if (vt <= 0) {
++ return NULL;
++ }
++
++ return g_strdup_printf ("vt%d", vt);
++}
++
++gboolean
++gdm_server_start_on_active_vt (GdmServer *server)
++{
++ gboolean res;
++ char *vt;
++
++ g_free (server->priv->command);
++ server->priv->command = g_strdup (X_SERVER " -background none -logverbose 7");
++ vt = get_active_vt_as_string ();
++ res = gdm_server_spawn (server, vt);
++ g_free (vt);
++
++ return res;
++}
++#endif
++
+ /**
+ * gdm_server_start:
+ * @disp: Pointer to a GdmDisplay structure
+diff --git a/daemon/gdm-server.h b/daemon/gdm-server.h
+index b53d68e..827f7fa 100644
+--- a/daemon/gdm-server.h
++++ b/daemon/gdm-server.h
+@@ -57,6 +57,9 @@ GdmServer * gdm_server_new (const char *display_id,
+ const char *seat_id,
+ const char *auth_file);
+ gboolean gdm_server_start (GdmServer *server);
++#ifdef HAVE_PLYMOUTH
++gboolean gdm_server_start_on_active_vt (GdmServer *server);
++#endif
+ gboolean gdm_server_stop (GdmServer *server);
+ char * gdm_server_get_display_device (GdmServer *server);
+
+diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c
+index fc8649c..7c709a6 100644
+--- a/daemon/gdm-simple-slave.c
++++ b/daemon/gdm-simple-slave.c
+@@ -93,6 +93,9 @@ struct GdmSimpleSlavePrivate
+ #ifdef HAVE_LOGINDEVPERM
+ gboolean use_logindevperm;
+ #endif
++#ifdef WITH_PLYMOUTH
++ guint plymouth_is_running : 1;
++#endif
+ };
+
+ enum {
+@@ -1204,6 +1207,74 @@ on_start_session_later (GdmGreeterServer *session,
+ slave->priv->start_session_when_ready = FALSE;
+ }
+
++#ifdef WITH_PLYMOUTH
++static gboolean
++plymouth_is_running (void)
++{
++ int status;
++ gboolean res;
++ GError *error;
++
++ error = NULL;
++ res = g_spawn_command_line_sync ("/bin/plymouth --ping",
++ NULL, NULL, &status, &error);
++ if (! res) {
++ g_debug ("Could not ping plymouth: %s", error->message);
++ g_error_free (error);
++ return FALSE;
++ }
++
++ return WIFEXITED (status) && WEXITSTATUS (status) == 0;
++}
++
++static void
++plymouth_prepare_for_transition (GdmSimpleSlave *slave)
++{
++ gboolean res;
++ GError *error;
++
++ error = NULL;
++ res = g_spawn_command_line_sync ("/bin/plymouth deactivate",
++ NULL, NULL, NULL, &error);
++ if (! res) {
++ g_warning ("Could not deactivate plymouth: %s", error->message);
++ g_error_free (error);
++ }
++}
++
++static void
++plymouth_quit_with_transition (GdmSimpleSlave *slave)
++{
++ gboolean res;
++ GError *error;
++
++ error = NULL;
++ res = g_spawn_command_line_sync ("/bin/plymouth quit --retain-splash",
++ NULL, NULL, NULL, &error);
++ if (! res) {
++ g_warning ("Could not quit plymouth: %s", error->message);
++ g_error_free (error);
++ }
++ slave->priv->plymouth_is_running = FALSE;
++}
++
++static void
++plymouth_quit_without_transition (GdmSimpleSlave *slave)
++{
++ gboolean res;
++ GError *error;
++
++ error = NULL;
++ res = g_spawn_command_line_sync ("/bin/plymouth quit",
++ NULL, NULL, NULL, &error);
++ if (! res) {
++ g_warning ("Could not quit plymouth: %s", error->message);
++ g_error_free (error);
++ }
++ slave->priv->plymouth_is_running = FALSE;
++}
++#endif
++
+ static void
+ setup_server (GdmSimpleSlave *slave)
+ {
+@@ -1223,6 +1294,12 @@ setup_server (GdmSimpleSlave *slave)
+ */
+ gdm_slave_save_root_windows (GDM_SLAVE (slave));
+
++#ifdef WITH_PLYMOUTH
++ /* Plymouth is waiting for the go-ahead to exit */
++ if (slave->priv->plymouth_is_running) {
++ plymouth_quit_with_transition (slave);
++ }
++#endif
+ }
+
+ static void
+@@ -1426,6 +1503,12 @@ on_server_exited (GdmServer *server,
+ g_debug ("GdmSimpleSlave: server exited with code %d\n", exit_code);
+
+ gdm_slave_stopped (GDM_SLAVE (slave));
++
++#ifdef WITH_PLYMOUTH
++ if (slave->priv->plymouth_is_running) {
++ plymouth_quit_without_transition (slave);
++ }
++#endif
+ }
+
+ static void
+@@ -1438,6 +1521,12 @@ on_server_died (GdmServer *server,
+ g_strsignal (signal_number));
+
+ gdm_slave_stopped (GDM_SLAVE (slave));
++
++#ifdef WITH_PLYMOUTH
++ if (slave->priv->plymouth_is_running) {
++ plymouth_quit_without_transition (slave);
++ }
++#endif
+ }
+
+ static gboolean
+@@ -1484,7 +1573,17 @@ gdm_simple_slave_run (GdmSimpleSlave *slave)
+ G_CALLBACK (on_server_ready),
+ slave);
+
+- res = gdm_server_start (slave->priv->server);
++#ifdef WITH_PLYMOUTH
++ slave->priv->plymouth_is_running = plymouth_is_running ();
++
++ if (slave->priv->plymouth_is_running) {
++ plymouth_prepare_for_transition (slave);
++ res = gdm_server_start_on_active_vt (slave->priv->server);
++ } else
++#endif
++ {
++ res = gdm_server_start (slave->priv->server);
++ }
+ if (! res) {
+ g_warning (_("Could not start the X "
+ "server (your graphical environment) "
+@@ -1494,6 +1593,11 @@ gdm_simple_slave_run (GdmSimpleSlave *slave)
+ "In the meantime this display will be "
+ "disabled. Please restart GDM when "
+ "the problem is corrected."));
++#ifdef WITH_PLYMOUTH
++ if (slave->priv->plymouth_is_running) {
++ plymouth_quit_without_transition (slave);
++ }
++#endif
+ exit (1);
+ }
+
+--
+1.7.8.6
+
diff --git a/gnome-base/gdm/files/gdm-3.4.1-save-root-window.patch b/gnome-base/gdm/files/gdm-3.4.1-save-root-window.patch
new file mode 100644
index 0000000..2d9c314
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-3.4.1-save-root-window.patch
@@ -0,0 +1,141 @@
+From c93d98b646a9a4fce3052260a1f08808d62d7155 Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode@redhat.com>
+Date: Fri, 27 Nov 2009 18:27:53 -0500
+Subject: [PATCH] daemon: save root window to pixmap at _XROOTPMAP_ID
+
+This combined with starting the X server with
+-background none will give distros using plymouth
+(or potentially other boot splashes) a a nice fade
+transition when g-s-d starts.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=572173
+---
+ daemon/gdm-simple-slave.c | 8 +++++
+ daemon/gdm-slave.c | 72 +++++++++++++++++++++++++++++++++++++++++++++
+ daemon/gdm-slave.h | 1 +
+ 3 files changed, 81 insertions(+), 0 deletions(-)
+
+diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c
+index 9d1347a..fc8649c 100644
+--- a/daemon/gdm-simple-slave.c
++++ b/daemon/gdm-simple-slave.c
+@@ -1215,6 +1215,14 @@ setup_server (GdmSimpleSlave *slave)
+
+ /* Set the initial keyboard layout to something reasonable */
+ gdm_slave_set_initial_keyboard_layout (GDM_SLAVE (slave));
++ /* The root window has a background that may be useful
++ * to cross fade or transition from when setting the
++ * login screen background. We read it here, and stuff
++ * it into the standard _XROOTPMAP_ID root window property,
++ * so gnome-settings-daemon can get at it.
++ */
++ gdm_slave_save_root_windows (GDM_SLAVE (slave));
++
+ }
+
+ static void
+diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c
+index a5ce62f..53633c0 100644
+--- a/daemon/gdm-slave.c
++++ b/daemon/gdm-slave.c
+@@ -43,6 +43,7 @@
+ #include <dbus/dbus-glib-lowlevel.h>
+
+ #include <X11/Xlib.h> /* for Display */
++#include <X11/Xatom.h> /* for XA_PIXMAP */
+ #include <X11/cursorfont.h> /* for watch cursor */
+ #include <X11/extensions/Xrandr.h>
+ #include <X11/Xatom.h>
+@@ -364,6 +365,77 @@ gdm_slave_run_script (GdmSlave *slave,
+ return ret;
+ }
+
++static void
++gdm_slave_save_root_window_of_screen (GdmSlave *slave,
++ Atom id_atom,
++ int screen_number)
++{
++ Window root_window;
++ GC gc;
++ XGCValues values;
++ Pixmap pixmap;
++ int width, height, depth;
++
++ root_window = RootWindow (slave->priv->server_display,
++ screen_number);
++
++ width = DisplayWidth (slave->priv->server_display, screen_number);
++ height = DisplayHeight (slave->priv->server_display, screen_number);
++ depth = DefaultDepth (slave->priv->server_display, screen_number);
++ pixmap = XCreatePixmap (slave->priv->server_display,
++ root_window,
++ width, height, depth);
++
++ values.function = GXcopy;
++ values.plane_mask = AllPlanes;
++ values.fill_style = FillSolid;
++ values.subwindow_mode = IncludeInferiors;
++
++ gc = XCreateGC (slave->priv->server_display,
++ root_window,
++ GCFunction | GCPlaneMask | GCFillStyle | GCSubwindowMode,
++ &values);
++
++ if (XCopyArea (slave->priv->server_display,
++ root_window, pixmap, gc, 0, 0,
++ width, height, 0, 0)) {
++
++ long pixmap_as_long;
++
++ pixmap_as_long = (long) pixmap;
++
++ XChangeProperty (slave->priv->server_display,
++ root_window, id_atom, XA_PIXMAP,
++ 32, PropModeReplace, (guchar *) &pixmap_as_long,
++ 1);
++
++ }
++
++ XFreeGC (slave->priv->server_display, gc);
++}
++
++void
++gdm_slave_save_root_windows (GdmSlave *slave)
++{
++ int i, number_of_screens;
++ Atom atom;
++
++ number_of_screens = ScreenCount (slave->priv->server_display);
++
++ atom = XInternAtom (slave->priv->server_display,
++ "_XROOTPMAP_ID", False);
++
++ if (atom == 0) {
++ return;
++ }
++
++ for (i = 0; i < number_of_screens; i++) {
++ gdm_slave_save_root_window_of_screen (slave, atom, i);
++ }
++
++ XSync (slave->priv->server_display, False);
++}
++
+ void
+ gdm_slave_set_initial_keyboard_layout (GdmSlave *slave)
+ {
+diff --git a/daemon/gdm-slave.h b/daemon/gdm-slave.h
+index 7af20ed..aaaa8f2 100644
+--- a/daemon/gdm-slave.h
++++ b/daemon/gdm-slave.h
+@@ -78,6 +78,7 @@ void gdm_slave_set_initial_keyboard_layout (GdmSlave *slave);
+ void gdm_slave_set_initial_cursor_position (GdmSlave *slave);
+
+ void gdm_slave_set_busy_cursor (GdmSlave *slave);
++void gdm_slave_save_root_windows (GdmSlave *slave);
+ gboolean gdm_slave_run_script (GdmSlave *slave,
+ const char *dir,
+ const char *username);
+--
+1.7.8.6
+
diff --git a/gnome-base/gdm/gdm-3.4.1-r1.ebuild b/gnome-base/gdm/gdm-3.4.1-r1.ebuild
new file mode 100644
index 0000000..cd43728
--- /dev/null
+++ b/gnome-base/gdm/gdm-3.4.1-r1.ebuild
@@ -0,0 +1,274 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gdm/gdm-3.4.1.ebuild,v 1.2 2012/06/07 22:18:53 zmedico Exp $
+
+EAPI="4"
+GNOME2_LA_PUNT="yes"
+
+inherit autotools eutils gnome2 pam systemd user
+
+DESCRIPTION="GNOME Display Manager"
+HOMEPAGE="http://www.gnome.org/projects/gdm/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~sh ~x86"
+
+IUSE="accessibility +consolekit +fallback fprint +gnome-shell ipv6 gnome-keyring +introspection plymouth selinux smartcard systemd tcpd test xinerama +xklavier"
+
+# 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]
+ >=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 )
+ plymouth? ( sys-boot/plymouth )
+ selinux? ( sys-libs/libselinux )
+ systemd? ( >=sys-apps/systemd-39 )
+ 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
+ >=app-text/scrollkeeper-0.1.4
+ >=app-text/gnome-doc-utils-0.3.2
+ virtual/pkgconfig"
+# 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
+ x11-themes/gnome-icon-theme-symbolic
+
+ accessibility? (
+ app-accessibility/gnome-mag
+ app-accessibility/gok
+ app-accessibility/orca
+ gnome-extra/at-spi:1 )
+ consolekit? ( gnome-extra/polkit-gnome )
+ fallback? ( x11-wm/metacity )
+ 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 plymouth)
+ $(use_with selinux)
+ $(use_with systemd)
+ $(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() {
+ # 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"
+
+ # plymouth support (in next release)
+ epatch "${FILESDIR}/${P}-save-root-window.patch"
+ epatch "${FILESDIR}/${P}-plymouth.patch"
+
+ # Starting of dconf-0.13.4 things don't work anymore :)
+ epatch "${FILESDIR}/${P}-dconf-compatibility.patch"
+
+ # don't load accessibility support at runtime when USE=-accessibility
+ use accessibility || epatch "${FILESDIR}/${PN}-3.3.92.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
+
+ gnome2_src_prepare
+}
+
+src_install() {
+ gnome2_src_install
+
+ # Install the systemd unit file
+ systemd_dounit "${FILESDIR}/3.2.1.1/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"
+ doexe "${FILESDIR}/50-ssh-agent"
+
+ # install XDG_DATA_DIRS gdm changes
+ echo 'XDG_DATA_DIRS="/usr/share/gdm"' > 99xdg-gdm
+ doenvd 99xdg-gdm
+
+ # install PAM files
+ mkdir "${T}/pam.d" || die "mkdir failed"
+ cp "${FILESDIR}/3.2.1.1"/gdm{,-autologin,-password,-fingerprint,-smartcard,-welcome} \
+ "${T}/pam.d" || die "cp failed"
+ use gnome-keyring && sed -i "s:#Keyring=::g" "${T}/pam.d"/*
+ dopamd "${T}/pam.d"/*
+}
+
+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
+}
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gdm/, gnome-base/gdm/files/
@ 2012-09-09 0:39 Nirbheek Chauhan
0 siblings, 0 replies; 14+ messages in thread
From: Nirbheek Chauhan @ 2012-09-09 0:39 UTC (permalink / raw
To: gentoo-commits
commit: 1b3bc414cc8c7ec8735dc00349d58999517d28d1
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 8 22:58:18 2012 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Sat Sep 8 22:58:18 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=1b3bc414
Add gnome-base/gdm-3.5.91
---
.../gdm-3.5.91-fix-daemonize-regression.patch | 125 ++++++++++++++++++++
.../gdm/{gdm-9999.ebuild => gdm-3.5.91.ebuild} | 32 ++---
gnome-base/gdm/gdm-9999.ebuild | 32 ++---
3 files changed, 149 insertions(+), 40 deletions(-)
diff --git a/gnome-base/gdm/files/gdm-3.5.91-fix-daemonize-regression.patch b/gnome-base/gdm/files/gdm-3.5.91-fix-daemonize-regression.patch
new file mode 100644
index 0000000..60aea72
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-3.5.91-fix-daemonize-regression.patch
@@ -0,0 +1,125 @@
+From 7f5104b242e6b36e6143183b14582d362763ff2a Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Tue, 2 Nov 2010 23:16:51 +0100
+Subject: [PATCH 2/6] daemonize so that the boot process can continue
+
+Gentoo bug: #236701
+
+Originally from: Dan Nicholson <dbn.lists@gmail.com>
+
+Fork gdm-binary, except when -nodaemon is used
+
+gdm-binary now forks and the parent terminates, except when the
+-nodaemon or --nodaemon options are used. This provides compatibility
+with xdm. Fixes bug #550170.
+
+---
+ daemon/main.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 64 insertions(+), 0 deletions(-)
+
+diff --git a/daemon/main.c b/daemon/main.c
+index 5b8d66b..191b6e3 100644
+--- a/daemon/main.c
++++ b/daemon/main.c
+@@ -513,6 +513,56 @@ is_debug_set (void)
+ return debug;
+ }
+
++static void
++dup_dev_null (int fd, int flags)
++{
++ int nullfd;
++ int dupfd;
++
++ VE_IGNORE_EINTR (nullfd = open ("/dev/null", flags));
++ if (G_UNLIKELY (nullfd < 0)) {
++ gdm_fail (_("Cannot open /dev/null: %s!"),
++ strerror (errno));
++ exit (EXIT_FAILURE);
++ }
++
++ VE_IGNORE_EINTR (dupfd = dup2 (nullfd, fd));
++ if (G_UNLIKELY (dupfd < 0)) {
++ gdm_fail (_("Cannot duplicate /dev/null: %s!"),
++ strerror (errno));
++ exit (EXIT_FAILURE);
++ }
++
++ VE_IGNORE_EINTR (close (nullfd));
++}
++
++static void
++daemonify (void)
++{
++ pid_t pid;
++
++ pid = fork ();
++
++ /* terminate the parent */
++ if (pid > 0)
++ exit (EXIT_SUCCESS);
++
++ if (G_UNLIKELY (pid < 0)) {
++ gdm_fail (_("fork () failed: %s!"), strerror (errno));
++ exit (EXIT_FAILURE);
++ }
++
++ if (G_UNLIKELY (setsid () < 0)) {
++ gdm_fail (_("setsid () failed: %s!"), strerror (errno));
++ exit (EXIT_FAILURE);
++ }
++
++ /* reopen stdin, stdout, stderr with /dev/null */
++ dup_dev_null (STDIN_FILENO, O_RDONLY);
++ dup_dev_null (STDOUT_FILENO, O_RDWR);
++ dup_dev_null (STDERR_FILENO, O_RDWR);
++}
++
+ int
+ main (int argc,
+ char **argv)
+@@ -523,13 +573,16 @@ main (int argc,
+ DBusGConnection *connection;
+ GError *error;
+ int ret;
++ int i;
+ gboolean res;
+ GdmSignalHandler *signal_handler;
+ static gboolean do_timed_exit = FALSE;
+ static gboolean print_version = FALSE;
+ static gboolean fatal_warnings = FALSE;
++ static gboolean no_daemon = FALSE;
+ static GOptionEntry entries [] = {
+ { "fatal-warnings", 0, 0, G_OPTION_ARG_NONE, &fatal_warnings, N_("Make all warnings fatal"), NULL },
++ { "nodaemon", 0, 0, G_OPTION_ARG_NONE, &no_daemon, N_("Do not fork into the background"), NULL },
+ { "timed-exit", 0, 0, G_OPTION_ARG_NONE, &do_timed_exit, N_("Exit after a time (for debugging)"), NULL },
+ { "version", 0, 0, G_OPTION_ARG_NONE, &print_version, N_("Print GDM version"), NULL },
+
+@@ -547,6 +600,14 @@ main (int argc,
+
+ g_type_init ();
+
++ /* preprocess the arguments to support the xdm style
++ * -nodaemon option
++ */
++ for (i = 0; i < argc; i++) {
++ if (strcmp (argv[i], "-nodaemon") == 0)
++ argv[i] = "--nodaemon";
++ }
++
+ context = g_option_context_new (_("GNOME Display Manager"));
+ g_option_context_add_main_entries (context, entries, NULL);
+ g_option_context_set_ignore_unknown_options (context, TRUE);
+@@ -617,6 +678,9 @@ main (int argc,
+ exit (-1);
+ }
+
++ if (no_daemon == FALSE)
++ daemonify ();
++
+ /* pid file */
+ delete_pid ();
+ write_pid ();
+--
+1.7.3.1
+
diff --git a/gnome-base/gdm/gdm-9999.ebuild b/gnome-base/gdm/gdm-3.5.91.ebuild
similarity index 91%
copy from gnome-base/gdm/gdm-9999.ebuild
copy to gnome-base/gdm/gdm-3.5.91.ebuild
index 6438794..0a34787 100644
--- a/gnome-base/gdm/gdm-9999.ebuild
+++ b/gnome-base/gdm/gdm-3.5.91.ebuild
@@ -1,11 +1,11 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: $
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gdm/gdm-3.4.1.ebuild,v 1.2 2012/06/07 22:18:53 zmedico Exp $
EAPI="4"
GNOME2_LA_PUNT="yes"
-inherit autotools eutils gnome2 pam systemd
+inherit autotools eutils gnome2 pam systemd user
if [[ ${PV} = 9999 ]]; then
inherit gnome2-live
fi
@@ -15,20 +15,19 @@ HOMEPAGE="http://www.gnome.org/projects/gdm/"
LICENSE="GPL-2"
SLOT="0"
+IUSE="accessibility +consolekit +fallback fprint +gnome-shell ipv6 gnome-keyring +introspection plymouth smartcard systemd tcpd test xinerama +xklavier"
if [[ ${PV} = 9999 ]]; then
KEYWORDS=""
else
KEYWORDS="~amd64 ~sh ~x86"
fi
-IUSE="accessibility +consolekit +fallback fprint +gnome-shell ipv6 gnome-keyring +introspection plymouth selinux smartcard systemd tcpd test xinerama +xklavier"
-
# 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
+# selinux support is now automagic. Not sure if that really matters.
COMMON_DEPEND="
- >=dev-libs/dbus-glib-0.74
- >=dev-libs/glib-2.29.3:2
+ >=dev-libs/glib-2.33.2:2
>=x11-libs/gtk+-2.91.1:3
>=x11-libs/pango-1.3
dev-libs/nspr
@@ -63,16 +62,14 @@ COMMON_DEPEND="
gnome-keyring? ( >=gnome-base/gnome-keyring-2.22[pam] )
introspection? ( >=dev-libs/gobject-introspection-0.9.12 )
plymouth? ( sys-boot/plymouth )
- selinux? ( sys-libs/libselinux )
systemd? ( >=sys-apps/systemd-39 )
tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
- xinerama? ( x11-libs/libXinerama )
- xklavier? ( >=x11-libs/libxklavier-4 )"
+ xinerama? ( x11-libs/libXinerama )"
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
+ >=sys-devel/gettext-0.17
x11-proto/inputproto
x11-proto/randrproto
>=dev-util/intltool-0.40.0
@@ -120,13 +117,14 @@ pkg_setup() {
--with-xdmcp=yes
--enable-authentication-scheme=pam
--with-pam-prefix=${EPREFIX}/etc
+ --with-default-pam-config=none
--with-at-spi-registryd-directory=${EPREFIX}/usr/libexec
+ --with-initial-vt=7
$(use_with accessibility xevie)
$(use_enable ipv6)
$(use_enable xklavier libxklavier)
$(use_with consolekit console-kit)
- $(use_with plymouth)
- $(use_with selinux)
+ $(use_with plymouth ply-boot-client)
$(use_with systemd)
$(use_with tcpd tcp-wrappers)
$(use_with xinerama)"
@@ -148,14 +146,11 @@ pkg_setup() {
}
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"
+ epatch "${FILESDIR}/${PN}-3.5.91-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"
+ #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"
@@ -163,9 +158,6 @@ src_prepare() {
# 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.3.92.1-disable-accessibility.patch"
diff --git a/gnome-base/gdm/gdm-9999.ebuild b/gnome-base/gdm/gdm-9999.ebuild
index 6438794..0a34787 100644
--- a/gnome-base/gdm/gdm-9999.ebuild
+++ b/gnome-base/gdm/gdm-9999.ebuild
@@ -1,11 +1,11 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: $
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gdm/gdm-3.4.1.ebuild,v 1.2 2012/06/07 22:18:53 zmedico Exp $
EAPI="4"
GNOME2_LA_PUNT="yes"
-inherit autotools eutils gnome2 pam systemd
+inherit autotools eutils gnome2 pam systemd user
if [[ ${PV} = 9999 ]]; then
inherit gnome2-live
fi
@@ -15,20 +15,19 @@ HOMEPAGE="http://www.gnome.org/projects/gdm/"
LICENSE="GPL-2"
SLOT="0"
+IUSE="accessibility +consolekit +fallback fprint +gnome-shell ipv6 gnome-keyring +introspection plymouth smartcard systemd tcpd test xinerama +xklavier"
if [[ ${PV} = 9999 ]]; then
KEYWORDS=""
else
KEYWORDS="~amd64 ~sh ~x86"
fi
-IUSE="accessibility +consolekit +fallback fprint +gnome-shell ipv6 gnome-keyring +introspection plymouth selinux smartcard systemd tcpd test xinerama +xklavier"
-
# 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
+# selinux support is now automagic. Not sure if that really matters.
COMMON_DEPEND="
- >=dev-libs/dbus-glib-0.74
- >=dev-libs/glib-2.29.3:2
+ >=dev-libs/glib-2.33.2:2
>=x11-libs/gtk+-2.91.1:3
>=x11-libs/pango-1.3
dev-libs/nspr
@@ -63,16 +62,14 @@ COMMON_DEPEND="
gnome-keyring? ( >=gnome-base/gnome-keyring-2.22[pam] )
introspection? ( >=dev-libs/gobject-introspection-0.9.12 )
plymouth? ( sys-boot/plymouth )
- selinux? ( sys-libs/libselinux )
systemd? ( >=sys-apps/systemd-39 )
tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
- xinerama? ( x11-libs/libXinerama )
- xklavier? ( >=x11-libs/libxklavier-4 )"
+ xinerama? ( x11-libs/libXinerama )"
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
+ >=sys-devel/gettext-0.17
x11-proto/inputproto
x11-proto/randrproto
>=dev-util/intltool-0.40.0
@@ -120,13 +117,14 @@ pkg_setup() {
--with-xdmcp=yes
--enable-authentication-scheme=pam
--with-pam-prefix=${EPREFIX}/etc
+ --with-default-pam-config=none
--with-at-spi-registryd-directory=${EPREFIX}/usr/libexec
+ --with-initial-vt=7
$(use_with accessibility xevie)
$(use_enable ipv6)
$(use_enable xklavier libxklavier)
$(use_with consolekit console-kit)
- $(use_with plymouth)
- $(use_with selinux)
+ $(use_with plymouth ply-boot-client)
$(use_with systemd)
$(use_with tcpd tcp-wrappers)
$(use_with xinerama)"
@@ -148,14 +146,11 @@ pkg_setup() {
}
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"
+ epatch "${FILESDIR}/${PN}-3.5.91-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"
+ #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"
@@ -163,9 +158,6 @@ src_prepare() {
# 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.3.92.1-disable-accessibility.patch"
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gdm/, gnome-base/gdm/files/
@ 2012-09-12 12:06 Nirbheek Chauhan
0 siblings, 0 replies; 14+ messages in thread
From: Nirbheek Chauhan @ 2012-09-12 12:06 UTC (permalink / raw
To: gentoo-commits
commit: 3e604a8c0dd7aeae36091704cc2f56690bae2845
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 12 12:05:39 2012 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Wed Sep 12 12:05:39 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=3e604a8c
gnome-base/gdm: fix problems with 3.5.91 and remove old patches
GDM 3.5.91 will now work properly
---
gnome-base/gdm/0001-ibus.patch | 91 +++++++++
.../gdm-2.32.0-automagic-libxklavier-support.patch | 60 ------
.../gdm/files/gdm-2.32.0-custom-session.patch | 51 -----
.../gdm-2.32.0-fix-daemonize-regression.patch | 126 -------------
.../gdm/files/gdm-2.32.0-fix-vt-problems.patch | 195 --------------------
.../gdm/files/gdm-2.32.0-selinux-remove-attr.patch | 27 ---
.../gdm-3.5.91-fix-daemonize-regression.patch | 125 -------------
gnome-base/gdm/files/gdm.sh | 3 +
gnome-base/gdm/gdm-3.5.91-r1.ebuild | 10 +-
gnome-base/gdm/gdm-9999.ebuild | 10 +-
10 files changed, 100 insertions(+), 598 deletions(-)
diff --git a/gnome-base/gdm/0001-ibus.patch b/gnome-base/gdm/0001-ibus.patch
new file mode 100644
index 0000000..fc9f76b
--- /dev/null
+++ b/gnome-base/gdm/0001-ibus.patch
@@ -0,0 +1,91 @@
+From 1176f42d2aee73ac93a4d96d6cfdcb2513f3c031 Mon Sep 17 00:00:00 2001
+From: Nirbheek Chauhan <nirbheek@gentoo.org>
+Date: Wed, 12 Sep 2012 17:11:39 +0530
+Subject: [PATCH] ibus
+
+---
+ app-i18n/ibus/Manifest | 2 +-
+ app-i18n/ibus/ibus-1.4.99.20120822.ebuild | 17 +++++++----------
+ 2 files changed, 8 insertions(+), 11 deletions(-)
+
+diff --git a/app-i18n/ibus/Manifest b/app-i18n/ibus/Manifest
+index b86e7fd..1e6c5e8 100644
+--- a/app-i18n/ibus/Manifest
++++ b/app-i18n/ibus/Manifest
+@@ -1,2 +1,2 @@
+ DIST ibus-1.4.99.20120822.tar.gz 1736787 SHA256 237c623d24b356e2d43d1a66cfe839849f9ea85d04c809cc2b5650db097a4173 SHA512 f193fa7522d64944bff8a34a0fa0f85a9afd491ebe9c6cd1c27d64b7382ed21e4319a939b959d42d321d44fb6b129b5ed52fec372eaaea0d4905b08053e36d25 WHIRLPOOL 1b96a9d9835138b211554af90e15e5b2373c1ec65cafd20783279084848f7148a2a44b2b86d0fc8f9ab7f86319b2a712241901b215caa7de24c1653f48917b2b
+-EBUILD ibus-1.4.99.20120822.ebuild 3805 SHA256 441e6af243b43567ec68a2dc0324d7f9330f023f3fc38eb986783f88ae700dbb SHA512 a7bf07ac33b0279a3d84fe27e36838692f48dea166bf1f7bee73659654869eec395227451b2edd7dfeb3dab0e111e5781d5455a7f68c25803ac8c3c50aa07913 WHIRLPOOL efa7a8c85f04c6dee4c428cfd6a3dd5619d795baf2eecd3ca182825abf7ee3b0dd0665f9e9801103fc335d6317b8e90c14813ab93627fc3431914b179464aab3
++EBUILD ibus-1.4.99.20120822.ebuild 3673 SHA256 cb9a349db47f89fbce01006e156782c080b7a747b316823ee0c7a0738dcefb1a SHA512 78b971e906bed4eecfaef4f38aafaa532748897d6a993920931c49dccf4b2047a4a9f5de7686d1d1a56cd0bffc8a76efc767aa3aa532235986e4e091b7133671 WHIRLPOOL 120a8b421da300a3727502382fe1c8ded337765c7528d6c4d86a8a6abe2f6c0886c0831fa904265a5ce1a3f83bfb0105ed967e53688e64b921eb37dbb503e9e7
+diff --git a/app-i18n/ibus/ibus-1.4.99.20120822.ebuild b/app-i18n/ibus/ibus-1.4.99.20120822.ebuild
+index dc7bf8b..048c53f 100644
+--- a/app-i18n/ibus/ibus-1.4.99.20120822.ebuild
++++ b/app-i18n/ibus/ibus-1.4.99.20120822.ebuild
+@@ -3,7 +3,7 @@
+ # $Header: /var/cvsroot/gentoo-x86/app-i18n/ibus/ibus-1.4.2.ebuild,v 1.1 2012/08/29 10:30:59 naota Exp $
+
+ EAPI="4"
+-PYTHON_DEPEND="gui? 2:2.5"
++PYTHON_DEPEND="python-library? 2:2.5"
+
+ inherit eutils gnome2-utils multilib python virtualx
+
+@@ -14,8 +14,8 @@ SRC_URI="http://ibus.googlecode.com/files/${P}.tar.gz"
+ LICENSE="LGPL-2.1"
+ SLOT="0"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
+-IUSE="dconf doc +gconf gtk gtk3 +introspection nls +gui +python-library test vala +X"
+-REQUIRED_USE="|| ( gtk gtk3 X ) gui? ( gtk3 )" #342903
++IUSE="+dconf doc gconf gtk +gtk3 +introspection nls +python-library test vala X"
++REQUIRED_USE="|| ( gtk gtk3 X )" #342903
+
+ COMMON_DEPEND=">=dev-libs/glib-2.26:2
+ gnome-base/librsvg:2
+@@ -32,10 +32,6 @@ COMMON_DEPEND=">=dev-libs/glib-2.26:2
+ introspection? ( >=dev-libs/gobject-introspection-0.6.8 )
+ nls? ( virtual/libintl )"
+ RDEPEND="${COMMON_DEPEND}
+- gui? (
+- x11-libs/gdk-pixbuf:2[introspection]
+- x11-libs/pango[introspection]
+- x11-libs/gtk+:3[introspection] )
+ python-library? (
+ dev-python/pygtk:2
+ >=dev-python/dbus-python-0.83 )"
+@@ -56,7 +52,7 @@ RESTRICT="test"
+ DOCS="AUTHORS ChangeLog NEWS README"
+
+ pkg_setup() {
+- if use python-library || use gui; then
++ if use python-library; then
+ python_set_active_version 2
+ python_pkg_setup
+ fi
+@@ -64,7 +60,7 @@ pkg_setup() {
+
+ src_configure() {
+ local python valac
+- if use python-library || use gui; then
++ if use python-library; then
+ # We cannot call $(PYTHON) if we haven't called python_pkg_setup
+ python="PYTHON=$(PYTHON)"
+ fi
+@@ -72,6 +68,8 @@ src_configure() {
+ vala="VALAC=$(type -P valac-0.18) VAPIGEN=$(type -P vapigen-0.18)"
+ fi
+ econf \
++ --disable-ui \
++ --disable-engine \
+ $(use_enable dconf) \
+ $(use_enable doc gtk-doc) \
+ $(use_enable doc gtk-doc-html) \
+@@ -80,7 +78,6 @@ src_configure() {
+ $(use_enable gtk gtk2) \
+ $(use_enable gtk xim) \
+ $(use_enable gtk3) \
+- $(use_enable gtk3 ui) \
+ $(use_enable gtk3 setup) \
+ $(use_enable nls) \
+ $(use_enable python-library) \
+--
+1.7.8.6
+
diff --git a/gnome-base/gdm/files/gdm-2.32.0-automagic-libxklavier-support.patch b/gnome-base/gdm/files/gdm-2.32.0-automagic-libxklavier-support.patch
deleted file mode 100644
index 90c1cef..0000000
--- a/gnome-base/gdm/files/gdm-2.32.0-automagic-libxklavier-support.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 481fe43b653b443ecfa8d4f3aa88d734d17cccd5 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Tue, 2 Nov 2010 23:21:27 +0100
-Subject: [PATCH 6/6] fix libxklavier automagic support
-
-libxklavier support is optional, make that fact explicit.
----
- configure.ac | 28 +++++++++++++++++++---------
- 1 files changed, 19 insertions(+), 9 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 71d0247..10dbb72 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -129,17 +129,26 @@ SIMPLE_GREETER_LIBS="$SIMPLE_GREETER_LIBS -lm"
- AC_SUBST(SIMPLE_GREETER_CFLAGS)
- AC_SUBST(SIMPLE_GREETER_LIBS)
-
--PKG_CHECK_MODULES(LIBXKLAVIER,
-- libxklavier >= $LIBXKLAVIER_REQUIRED_VERSION,
-- have_libxklavier=yes,
-- have_libxklavier=no)
--if test "x$have_libxklavier" = "xyes" ; then
-- AC_DEFINE(HAVE_LIBXKLAVIER, [], [Define if we have libxklavier])
-+AC_ARG_ENABLE([libxklavier],
-+ AS_HELP_STRING([--enable-libxklavier],
-+ [Enable libxklavier support @<:@default=yes@:>@]),
-+ enable_libxklavier=$enableval,
-+ enable_libxklavier=yes)
-+have_libxklavier=no
-+if test "x$enable_libxklavier" = "xyes"; then
-+ PKG_CHECK_MODULES(LIBXKLAVIER,
-+ libxklavier >= $LIBXKLAVIER_REQUIRED_VERSION,
-+ have_libxklavier=yes,
-+ have_libxklavier=no)
-+ if test "x$have_libxklavier" = "xyes" ; then
-+ AC_DEFINE(HAVE_LIBXKLAVIER, [], [Define if we have libxklavier])
-+ fi
-+ AC_SUBST(HAVE_LIBXKLAVIER)
-+ AC_SUBST(LIBXKLAVIER_CFLAGS)
-+ AC_SUBST(LIBXKLAVIER_LIBS)
- fi
-+
- AM_CONDITIONAL(HAVE_LIBXKLAVIER, test x$have_libxklavier = xyes)
--AC_SUBST(HAVE_LIBXKLAVIER)
--AC_SUBST(LIBXKLAVIER_CFLAGS)
--AC_SUBST(LIBXKLAVIER_LIBS)
-
- PKG_CHECK_MODULES(SIMPLE_CHOOSER,
- dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION
-@@ -1467,5 +1476,6 @@ echo \
- SELinux support: ${with_selinux}
- ConsoleKit support: ${use_console_kit}
- UPower support: ${have_upower}
-+ Libxklavier support: ${have_libxklavier}
- Build with RBAC: ${msg_rbac_shutdown}
- "
---
-1.7.3.1
-
diff --git a/gnome-base/gdm/files/gdm-2.32.0-custom-session.patch b/gnome-base/gdm/files/gdm-2.32.0-custom-session.patch
deleted file mode 100644
index c48cb07..0000000
--- a/gnome-base/gdm/files/gdm-2.32.0-custom-session.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 2dc0d268c7cc5d6133a9594adcd67dc543288b8f Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Tue, 2 Nov 2010 23:19:07 +0100
-Subject: [PATCH 4/6] 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 b2d98f2..0da187d 100755
---- a/data/Xsession.in
-+++ b/data/Xsession.in
-@@ -153,15 +153,6 @@ if [ -n "$GDM_LANG" ]; then
- export LANG
- 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
--
- if [ "x$command" = "xcustom" ] ; then
- if [ -x "$HOME/.xsession" ]; then
- command="$HOME/.xsession"
-@@ -189,6 +180,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" ]; 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.3.1
-
diff --git a/gnome-base/gdm/files/gdm-2.32.0-fix-daemonize-regression.patch b/gnome-base/gdm/files/gdm-2.32.0-fix-daemonize-regression.patch
deleted file mode 100644
index 2ae7f61..0000000
--- a/gnome-base/gdm/files/gdm-2.32.0-fix-daemonize-regression.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-From 7f5104b242e6b36e6143183b14582d362763ff2a Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Tue, 2 Nov 2010 23:16:51 +0100
-Subject: [PATCH 2/6] daemonize so that the boot process can continue
-
-Gentoo bug: #236701
-
-Originally from: Dan Nicholson <dbn.lists@gmail.com>
-
-Fork gdm-binary, except when -nodaemon is used
-
-gdm-binary now forks and the parent terminates, except when the
--nodaemon or --nodaemon options are used. This provides compatibility
-with xdm. Fixes bug #550170.
-
----
- daemon/main.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 64 insertions(+), 0 deletions(-)
-
-diff --git a/daemon/main.c b/daemon/main.c
-index 5b8d66b..191b6e3 100644
---- a/daemon/main.c
-+++ b/daemon/main.c
-@@ -513,6 +513,56 @@ is_debug_set (void)
- return debug;
- }
-
-+static void
-+dup_dev_null (int fd, int flags)
-+{
-+ int nullfd;
-+ int dupfd;
-+
-+ VE_IGNORE_EINTR (nullfd = open ("/dev/null", flags));
-+ if (G_UNLIKELY (nullfd < 0)) {
-+ gdm_fail (_("Cannot open /dev/null: %s!"),
-+ strerror (errno));
-+ exit (EXIT_FAILURE);
-+ }
-+
-+ VE_IGNORE_EINTR (dupfd = dup2 (nullfd, fd));
-+ if (G_UNLIKELY (dupfd < 0)) {
-+ gdm_fail (_("Cannot duplicate /dev/null: %s!"),
-+ strerror (errno));
-+ exit (EXIT_FAILURE);
-+ }
-+
-+ VE_IGNORE_EINTR (close (nullfd));
-+}
-+
-+static void
-+daemonify (void)
-+{
-+ pid_t pid;
-+
-+ pid = fork ();
-+
-+ /* terminate the parent */
-+ if (pid > 0)
-+ exit (EXIT_SUCCESS);
-+
-+ if (G_UNLIKELY (pid < 0)) {
-+ gdm_fail (_("fork () failed: %s!"), strerror (errno));
-+ exit (EXIT_FAILURE);
-+ }
-+
-+ if (G_UNLIKELY (setsid () < 0)) {
-+ gdm_fail (_("setsid () failed: %s!"), strerror (errno));
-+ exit (EXIT_FAILURE);
-+ }
-+
-+ /* reopen stdin, stdout, stderr with /dev/null */
-+ dup_dev_null (STDIN_FILENO, O_RDONLY);
-+ dup_dev_null (STDOUT_FILENO, O_RDWR);
-+ dup_dev_null (STDERR_FILENO, O_RDWR);
-+}
-+
- int
- main (int argc,
- char **argv)
-@@ -523,14 +573,17 @@ main (int argc,
- DBusGConnection *connection;
- GError *error;
- int ret;
-+ int i;
- gboolean res;
- gboolean xdmcp_enabled;
- GdmSignalHandler *signal_handler;
- static gboolean do_timed_exit = FALSE;
- static gboolean print_version = FALSE;
- static gboolean fatal_warnings = FALSE;
-+ static gboolean no_daemon = FALSE;
- static GOptionEntry entries [] = {
- { "fatal-warnings", 0, 0, G_OPTION_ARG_NONE, &fatal_warnings, N_("Make all warnings fatal"), NULL },
-+ { "nodaemon", 0, 0, G_OPTION_ARG_NONE, &no_daemon, N_("Do not fork into the background"), NULL },
- { "timed-exit", 0, 0, G_OPTION_ARG_NONE, &do_timed_exit, N_("Exit after a time (for debugging)"), NULL },
- { "version", 0, 0, G_OPTION_ARG_NONE, &print_version, N_("Print GDM version"), NULL },
-
-@@ -547,6 +600,14 @@ main (int argc,
-
- g_type_init ();
-
-+ /* preprocess the arguments to support the xdm style
-+ * -nodaemon option
-+ */
-+ for (i = 0; i < argc; i++) {
-+ if (strcmp (argv[i], "-nodaemon") == 0)
-+ argv[i] = "--nodaemon";
-+ }
-+
- context = g_option_context_new (_("GNOME Display Manager"));
- g_option_context_add_main_entries (context, entries, NULL);
- g_option_context_set_ignore_unknown_options (context, TRUE);
-@@ -617,6 +678,9 @@ main (int argc,
- exit (-1);
- }
-
-+ if (no_daemon == FALSE)
-+ daemonify ();
-+
- /* pid file */
- delete_pid ();
- write_pid ();
---
-1.7.3.1
-
diff --git a/gnome-base/gdm/files/gdm-2.32.0-fix-vt-problems.patch b/gnome-base/gdm/files/gdm-2.32.0-fix-vt-problems.patch
deleted file mode 100644
index f219a14..0000000
--- a/gnome-base/gdm/files/gdm-2.32.0-fix-vt-problems.patch
+++ /dev/null
@@ -1,195 +0,0 @@
-From 64002e623fea54ab10040206d164c5fdee4a43d2 Mon Sep 17 00:00:00 2001
-From: Nirbheek Chauhan <nirbheek@gentoo.org>
-Date: Fri, 15 Apr 2011 22:13:44 +0530
-Subject: [PATCH] Fix VT grab race with getty causing X to grab the wrong VT
-
-On bootup, if X is spawned without any args, it'll take up the first unused VT.
-If GDM starts up before gettys are spawned, X takes up VT1 or VT2 depending on
-the init system and bootsplash.
-
-This is problematic because afterwards getty will come up underneath X, and
-cause keyboard problems and eventually crash X.
-
-So we read /etc/inittab, check for open VTs, compare the two values, and take
-the conservative one.
----
- configure.ac | 4 ++
- daemon/Makefile.am | 1 +
- daemon/gdm-server.c | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++-
- 3 files changed, 110 insertions(+), 1 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ca0f8bb..b9e7462 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -302,6 +302,10 @@ AC_CHECK_TYPE(socklen_t,,
- AC_CHECK_HEADERS(sys/sockio.h)
- AC_CHECK_FUNCS([setresuid setenv unsetenv clearenv])
-
-+dnl Needed for querying the kernel for free VTs
-+AC_CHECK_HEADERS(sys/vt.h)
-+AC_CHECK_HEADERS(sys/ioctl.h)
-+
- dnl checks needed for Darwin compatibility to linux **environ.
- AC_CHECK_HEADERS(crt_externs.h)
- AC_CHECK_FUNCS(_NSGetEnviron)
-diff --git a/daemon/Makefile.am b/daemon/Makefile.am
-index da18835..c1b6bda 100644
---- a/daemon/Makefile.am
-+++ b/daemon/Makefile.am
-@@ -14,6 +14,7 @@ AM_CPPFLAGS = \
- -DLIBEXECDIR=\"$(libexecdir)\" \
- -DLOGDIR=\"$(logdir)\" \
- -DSBINDIR=\"$(sbindir)\" \
-+ -DSYSCONFDIR=\""$(sysconfdir)"\" \
- -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \
- -DGDM_XAUTH_DIR=\"$(GDM_XAUTH_DIR)\" \
- -DGDM_SCREENSHOT_DIR=\"$(GDM_SCREENSHOT_DIR)\" \
-diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c
-index 339f3cc..29d16dc 100644
---- a/daemon/gdm-server.c
-+++ b/daemon/gdm-server.c
-@@ -26,6 +26,8 @@
- #include <unistd.h>
- #include <string.h>
- #include <sys/types.h>
-+#include <sys/ioctl.h>
-+#include <sys/vt.h>
- #include <sys/wait.h>
- #include <errno.h>
- #include <ctype.h>
-@@ -42,6 +44,7 @@
- #include <glib/gi18n.h>
- #include <glib/gstdio.h>
- #include <glib-object.h>
-+#include <gio/gio.h>
-
- #include <X11/Xlib.h> /* for Display */
-
-@@ -54,6 +57,8 @@ extern char **environ;
-
- #define GDM_SERVER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_SERVER, GdmServerPrivate))
-
-+#define INITTAB SYSCONFDIR"/inittab"
-+
- /* These are the servstat values, also used as server
- * process exit codes */
- #define SERVER_TIMEOUT 2 /* Server didn't start */
-@@ -674,6 +679,105 @@ gdm_server_spawn (GdmServer *server,
- }
-
- /**
-+ * Parse the inittab file used by getty to spawn VTs to find unused ttys
-+ */
-+static int
-+get_free_vt_from_inittab ()
-+{
-+ GFile *gfile;
-+ GFileInputStream *contents;
-+ GDataInputStream *dstream;
-+ GRegex *getty;
-+ GMatchInfo *tty_match = NULL;
-+ GSList *tty_list = NULL;
-+ GError *error = NULL;
-+ gchar *temp = NULL;
-+ int vtno = 0;
-+
-+ gfile = g_file_new_for_path (INITTAB);
-+ contents = g_file_read (gfile, NULL, &error);
-+ g_object_unref (gfile);
-+ if (!contents) {
-+ if (error) {
-+ g_debug ("Unable to open file %s", INITTAB);
-+ g_error_free (error);
-+ }
-+ goto out;
-+ }
-+
-+ dstream = g_data_input_stream_new (G_INPUT_STREAM (contents));
-+ getty = g_regex_new ("^c[0-9]+:.+getty.+tty([0-9]+)", 0, 0, NULL);
-+ g_object_unref (contents);
-+
-+ while (1) {
-+ temp = g_data_input_stream_read_line (dstream, NULL, NULL, &error);
-+ if (!temp)
-+ break;
-+ if (!g_regex_match (getty, temp, 0, &tty_match))
-+ continue;
-+ g_free (temp);
-+ temp = g_match_info_fetch (tty_match, 1);
-+ if (!temp)
-+ continue;
-+ tty_list = g_slist_insert_sorted (tty_list, temp, (GCompareFunc)g_strcmp0);
-+ g_match_info_free (tty_match);
-+ }
-+
-+ if (error) {
-+ g_debug ("Unable to read line from %s", INITTAB);
-+ g_error_free (error);
-+ goto free;
-+ }
-+
-+ /* Ignore holes in vt allocation, just take the last one */
-+ temp = g_slist_last (tty_list)->data;
-+ if (temp)
-+ vtno = (int) g_ascii_strtoull (temp, NULL, 10) + 1;
-+
-+free:
-+ g_object_unref (dstream);
-+ g_regex_unref (getty);
-+ g_slist_free_full (tty_list, g_free);
-+ g_free (error);
-+out:
-+ return vtno;
-+}
-+
-+/**
-+ * Query the VT_* kernel ioctls to find an empty tty
-+ */
-+static int
-+get_free_vt_from_kernel()
-+{
-+ int fd, vtno = 0;
-+
-+ fd = open ("/dev/tty0", O_WRONLY, 0);
-+ if ((ioctl(fd, VT_OPENQRY, &vtno) < 0) || (vtno == -1)) {
-+ vtno = 0;
-+ g_debug ("Unable to find a free vt, falling back to Xorg autodetect");
-+ }
-+ return vtno;
-+}
-+
-+static gchar*
-+get_free_vt ()
-+{
-+ int inittab_vtno, kernel_vtno;
-+ gchar* vt = NULL;
-+
-+ inittab_vtno = get_free_vt_from_inittab();
-+ if (inittab_vtno > 0)
-+ g_debug ("Inittab says vt%i is free\n", inittab_vtno);
-+ kernel_vtno = get_free_vt_from_kernel();
-+ if (kernel_vtno > 0)
-+ g_debug ("Kernel says vt%i is free\n", kernel_vtno);
-+ /* Select the greater of the two because getty will use the others */
-+ if (kernel_vtno != 0 && inittab_vtno != 0)
-+ vt = g_strdup_printf ("vt%i", kernel_vtno > inittab_vtno ? kernel_vtno : inittab_vtno);
-+ return vt;
-+}
-+
-+/**
- * gdm_server_start:
- * @disp: Pointer to a GdmDisplay structure
- *
-@@ -686,7 +790,7 @@ gdm_server_start (GdmServer *server)
- gboolean res;
-
- /* fork X server process */
-- res = gdm_server_spawn (server, NULL);
-+ res = gdm_server_spawn (server, get_free_vt());
-
- return res;
- }
---
-1.7.3.4
-
diff --git a/gnome-base/gdm/files/gdm-2.32.0-selinux-remove-attr.patch b/gnome-base/gdm/files/gdm-2.32.0-selinux-remove-attr.patch
deleted file mode 100644
index e563aa4..0000000
--- a/gnome-base/gdm/files/gdm-2.32.0-selinux-remove-attr.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 41badd6d2ca652a875fec3eea420ae876023076d Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Tue, 2 Nov 2010 23:15:54 +0100
-Subject: [PATCH 1/6] remove unneeded linker directive for selinux
-
-Gentoo bug: #41022
-
----
- configure.ac | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ed07dce..71d0247 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -873,7 +873,7 @@ if test "x$with_selinux" = "xyes" ; then
- AC_CHECK_LIB(selinux,setexeccon,/bin/true)
- AC_CHECK_LIB(selinux,is_selinux_enabled,/bin/true)
- AC_DEFINE(HAVE_SELINUX, 1, [Define if have selinux])
-- EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux -lattr"
-+ EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux"
- fi
-
- dnl ---------------------------------------------------------------------------
---
-1.7.3.1
-
diff --git a/gnome-base/gdm/files/gdm-3.5.91-fix-daemonize-regression.patch b/gnome-base/gdm/files/gdm-3.5.91-fix-daemonize-regression.patch
deleted file mode 100644
index 60aea72..0000000
--- a/gnome-base/gdm/files/gdm-3.5.91-fix-daemonize-regression.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From 7f5104b242e6b36e6143183b14582d362763ff2a Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Tue, 2 Nov 2010 23:16:51 +0100
-Subject: [PATCH 2/6] daemonize so that the boot process can continue
-
-Gentoo bug: #236701
-
-Originally from: Dan Nicholson <dbn.lists@gmail.com>
-
-Fork gdm-binary, except when -nodaemon is used
-
-gdm-binary now forks and the parent terminates, except when the
--nodaemon or --nodaemon options are used. This provides compatibility
-with xdm. Fixes bug #550170.
-
----
- daemon/main.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 64 insertions(+), 0 deletions(-)
-
-diff --git a/daemon/main.c b/daemon/main.c
-index 5b8d66b..191b6e3 100644
---- a/daemon/main.c
-+++ b/daemon/main.c
-@@ -513,6 +513,56 @@ is_debug_set (void)
- return debug;
- }
-
-+static void
-+dup_dev_null (int fd, int flags)
-+{
-+ int nullfd;
-+ int dupfd;
-+
-+ VE_IGNORE_EINTR (nullfd = open ("/dev/null", flags));
-+ if (G_UNLIKELY (nullfd < 0)) {
-+ gdm_fail (_("Cannot open /dev/null: %s!"),
-+ strerror (errno));
-+ exit (EXIT_FAILURE);
-+ }
-+
-+ VE_IGNORE_EINTR (dupfd = dup2 (nullfd, fd));
-+ if (G_UNLIKELY (dupfd < 0)) {
-+ gdm_fail (_("Cannot duplicate /dev/null: %s!"),
-+ strerror (errno));
-+ exit (EXIT_FAILURE);
-+ }
-+
-+ VE_IGNORE_EINTR (close (nullfd));
-+}
-+
-+static void
-+daemonify (void)
-+{
-+ pid_t pid;
-+
-+ pid = fork ();
-+
-+ /* terminate the parent */
-+ if (pid > 0)
-+ exit (EXIT_SUCCESS);
-+
-+ if (G_UNLIKELY (pid < 0)) {
-+ gdm_fail (_("fork () failed: %s!"), strerror (errno));
-+ exit (EXIT_FAILURE);
-+ }
-+
-+ if (G_UNLIKELY (setsid () < 0)) {
-+ gdm_fail (_("setsid () failed: %s!"), strerror (errno));
-+ exit (EXIT_FAILURE);
-+ }
-+
-+ /* reopen stdin, stdout, stderr with /dev/null */
-+ dup_dev_null (STDIN_FILENO, O_RDONLY);
-+ dup_dev_null (STDOUT_FILENO, O_RDWR);
-+ dup_dev_null (STDERR_FILENO, O_RDWR);
-+}
-+
- int
- main (int argc,
- char **argv)
-@@ -523,13 +573,16 @@ main (int argc,
- DBusGConnection *connection;
- GError *error;
- int ret;
-+ int i;
- gboolean res;
- GdmSignalHandler *signal_handler;
- static gboolean do_timed_exit = FALSE;
- static gboolean print_version = FALSE;
- static gboolean fatal_warnings = FALSE;
-+ static gboolean no_daemon = FALSE;
- static GOptionEntry entries [] = {
- { "fatal-warnings", 0, 0, G_OPTION_ARG_NONE, &fatal_warnings, N_("Make all warnings fatal"), NULL },
-+ { "nodaemon", 0, 0, G_OPTION_ARG_NONE, &no_daemon, N_("Do not fork into the background"), NULL },
- { "timed-exit", 0, 0, G_OPTION_ARG_NONE, &do_timed_exit, N_("Exit after a time (for debugging)"), NULL },
- { "version", 0, 0, G_OPTION_ARG_NONE, &print_version, N_("Print GDM version"), NULL },
-
-@@ -547,6 +600,14 @@ main (int argc,
-
- g_type_init ();
-
-+ /* preprocess the arguments to support the xdm style
-+ * -nodaemon option
-+ */
-+ for (i = 0; i < argc; i++) {
-+ if (strcmp (argv[i], "-nodaemon") == 0)
-+ argv[i] = "--nodaemon";
-+ }
-+
- context = g_option_context_new (_("GNOME Display Manager"));
- g_option_context_add_main_entries (context, entries, NULL);
- g_option_context_set_ignore_unknown_options (context, TRUE);
-@@ -617,6 +678,9 @@ main (int argc,
- exit (-1);
- }
-
-+ if (no_daemon == FALSE)
-+ daemonify ();
-+
- /* pid file */
- delete_pid ();
- write_pid ();
---
-1.7.3.1
-
diff --git a/gnome-base/gdm/files/gdm.sh b/gnome-base/gdm/files/gdm.sh
new file mode 100644
index 0000000..609f10a
--- /dev/null
+++ b/gnome-base/gdm/files/gdm.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+gdm-binary &
diff --git a/gnome-base/gdm/gdm-3.5.91-r1.ebuild b/gnome-base/gdm/gdm-3.5.91-r1.ebuild
index aac7b7e..52e1779 100644
--- a/gnome-base/gdm/gdm-3.5.91-r1.ebuild
+++ b/gnome-base/gdm/gdm-3.5.91-r1.ebuild
@@ -150,9 +150,6 @@ pkg_setup() {
}
src_prepare() {
- # daemonize so that the boot process can continue, bug #236701
- epatch "${FILESDIR}/${PN}-3.5.91-fix-daemonize-regression.patch"
-
# GDM grabs VT2 instead of VT7, bug 261339, bug 284053, bug 288852
# XXX: We can now pass a hard-coded initial value; temporary fix
#epatch "${FILESDIR}/${PN}-2.32.0-fix-vt-problems.patch"
@@ -187,11 +184,10 @@ src_install() {
# Install the systemd unit file
systemd_dounit "${FILESDIR}/3.4.1/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"
+ # Install a shell script that runs gdm-binary in the background
+ cp "${FILESDIR}/gdm.sh" "${ED}/usr/sbin/gdm"
# our x11's scripts point to /usr/bin/gdm
- ln -sfn /usr/sbin/gdm-binary "${ED}/usr/bin/gdm"
+ ln -sfn /usr/sbin/gdm "${ED}/usr/bin/gdm"
# log, etc.
keepdir /var/log/gdm
diff --git a/gnome-base/gdm/gdm-9999.ebuild b/gnome-base/gdm/gdm-9999.ebuild
index aac7b7e..52e1779 100644
--- a/gnome-base/gdm/gdm-9999.ebuild
+++ b/gnome-base/gdm/gdm-9999.ebuild
@@ -150,9 +150,6 @@ pkg_setup() {
}
src_prepare() {
- # daemonize so that the boot process can continue, bug #236701
- epatch "${FILESDIR}/${PN}-3.5.91-fix-daemonize-regression.patch"
-
# GDM grabs VT2 instead of VT7, bug 261339, bug 284053, bug 288852
# XXX: We can now pass a hard-coded initial value; temporary fix
#epatch "${FILESDIR}/${PN}-2.32.0-fix-vt-problems.patch"
@@ -187,11 +184,10 @@ src_install() {
# Install the systemd unit file
systemd_dounit "${FILESDIR}/3.4.1/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"
+ # Install a shell script that runs gdm-binary in the background
+ cp "${FILESDIR}/gdm.sh" "${ED}/usr/sbin/gdm"
# our x11's scripts point to /usr/bin/gdm
- ln -sfn /usr/sbin/gdm-binary "${ED}/usr/bin/gdm"
+ ln -sfn /usr/sbin/gdm "${ED}/usr/bin/gdm"
# log, etc.
keepdir /var/log/gdm
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gdm/, gnome-base/gdm/files/
@ 2012-09-12 12:08 Nirbheek Chauhan
0 siblings, 0 replies; 14+ messages in thread
From: Nirbheek Chauhan @ 2012-09-12 12:08 UTC (permalink / raw
To: gentoo-commits
commit: ca301d30b271beb63d5a84750b8e80ceb4435c1a
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 12 12:05:39 2012 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Wed Sep 12 12:07:04 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=ca301d30
gnome-base/gdm: fix problems with 3.5.91 and remove old patches
GDM 3.5.91 will now work properly
---
.../gdm-2.32.0-automagic-libxklavier-support.patch | 60 ------
.../gdm/files/gdm-2.32.0-custom-session.patch | 51 -----
.../gdm-2.32.0-fix-daemonize-regression.patch | 126 -------------
.../gdm/files/gdm-2.32.0-fix-vt-problems.patch | 195 --------------------
.../gdm/files/gdm-2.32.0-selinux-remove-attr.patch | 27 ---
.../gdm-3.5.91-fix-daemonize-regression.patch | 125 -------------
gnome-base/gdm/files/gdm.sh | 3 +
gnome-base/gdm/gdm-3.5.91-r1.ebuild | 10 +-
gnome-base/gdm/gdm-9999.ebuild | 10 +-
9 files changed, 9 insertions(+), 598 deletions(-)
diff --git a/gnome-base/gdm/files/gdm-2.32.0-automagic-libxklavier-support.patch b/gnome-base/gdm/files/gdm-2.32.0-automagic-libxklavier-support.patch
deleted file mode 100644
index 90c1cef..0000000
--- a/gnome-base/gdm/files/gdm-2.32.0-automagic-libxklavier-support.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 481fe43b653b443ecfa8d4f3aa88d734d17cccd5 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Tue, 2 Nov 2010 23:21:27 +0100
-Subject: [PATCH 6/6] fix libxklavier automagic support
-
-libxklavier support is optional, make that fact explicit.
----
- configure.ac | 28 +++++++++++++++++++---------
- 1 files changed, 19 insertions(+), 9 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 71d0247..10dbb72 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -129,17 +129,26 @@ SIMPLE_GREETER_LIBS="$SIMPLE_GREETER_LIBS -lm"
- AC_SUBST(SIMPLE_GREETER_CFLAGS)
- AC_SUBST(SIMPLE_GREETER_LIBS)
-
--PKG_CHECK_MODULES(LIBXKLAVIER,
-- libxklavier >= $LIBXKLAVIER_REQUIRED_VERSION,
-- have_libxklavier=yes,
-- have_libxklavier=no)
--if test "x$have_libxklavier" = "xyes" ; then
-- AC_DEFINE(HAVE_LIBXKLAVIER, [], [Define if we have libxklavier])
-+AC_ARG_ENABLE([libxklavier],
-+ AS_HELP_STRING([--enable-libxklavier],
-+ [Enable libxklavier support @<:@default=yes@:>@]),
-+ enable_libxklavier=$enableval,
-+ enable_libxklavier=yes)
-+have_libxklavier=no
-+if test "x$enable_libxklavier" = "xyes"; then
-+ PKG_CHECK_MODULES(LIBXKLAVIER,
-+ libxklavier >= $LIBXKLAVIER_REQUIRED_VERSION,
-+ have_libxklavier=yes,
-+ have_libxklavier=no)
-+ if test "x$have_libxklavier" = "xyes" ; then
-+ AC_DEFINE(HAVE_LIBXKLAVIER, [], [Define if we have libxklavier])
-+ fi
-+ AC_SUBST(HAVE_LIBXKLAVIER)
-+ AC_SUBST(LIBXKLAVIER_CFLAGS)
-+ AC_SUBST(LIBXKLAVIER_LIBS)
- fi
-+
- AM_CONDITIONAL(HAVE_LIBXKLAVIER, test x$have_libxklavier = xyes)
--AC_SUBST(HAVE_LIBXKLAVIER)
--AC_SUBST(LIBXKLAVIER_CFLAGS)
--AC_SUBST(LIBXKLAVIER_LIBS)
-
- PKG_CHECK_MODULES(SIMPLE_CHOOSER,
- dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION
-@@ -1467,5 +1476,6 @@ echo \
- SELinux support: ${with_selinux}
- ConsoleKit support: ${use_console_kit}
- UPower support: ${have_upower}
-+ Libxklavier support: ${have_libxklavier}
- Build with RBAC: ${msg_rbac_shutdown}
- "
---
-1.7.3.1
-
diff --git a/gnome-base/gdm/files/gdm-2.32.0-custom-session.patch b/gnome-base/gdm/files/gdm-2.32.0-custom-session.patch
deleted file mode 100644
index c48cb07..0000000
--- a/gnome-base/gdm/files/gdm-2.32.0-custom-session.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 2dc0d268c7cc5d6133a9594adcd67dc543288b8f Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Tue, 2 Nov 2010 23:19:07 +0100
-Subject: [PATCH 4/6] 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 b2d98f2..0da187d 100755
---- a/data/Xsession.in
-+++ b/data/Xsession.in
-@@ -153,15 +153,6 @@ if [ -n "$GDM_LANG" ]; then
- export LANG
- 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
--
- if [ "x$command" = "xcustom" ] ; then
- if [ -x "$HOME/.xsession" ]; then
- command="$HOME/.xsession"
-@@ -189,6 +180,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" ]; 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.3.1
-
diff --git a/gnome-base/gdm/files/gdm-2.32.0-fix-daemonize-regression.patch b/gnome-base/gdm/files/gdm-2.32.0-fix-daemonize-regression.patch
deleted file mode 100644
index 2ae7f61..0000000
--- a/gnome-base/gdm/files/gdm-2.32.0-fix-daemonize-regression.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-From 7f5104b242e6b36e6143183b14582d362763ff2a Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Tue, 2 Nov 2010 23:16:51 +0100
-Subject: [PATCH 2/6] daemonize so that the boot process can continue
-
-Gentoo bug: #236701
-
-Originally from: Dan Nicholson <dbn.lists@gmail.com>
-
-Fork gdm-binary, except when -nodaemon is used
-
-gdm-binary now forks and the parent terminates, except when the
--nodaemon or --nodaemon options are used. This provides compatibility
-with xdm. Fixes bug #550170.
-
----
- daemon/main.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 64 insertions(+), 0 deletions(-)
-
-diff --git a/daemon/main.c b/daemon/main.c
-index 5b8d66b..191b6e3 100644
---- a/daemon/main.c
-+++ b/daemon/main.c
-@@ -513,6 +513,56 @@ is_debug_set (void)
- return debug;
- }
-
-+static void
-+dup_dev_null (int fd, int flags)
-+{
-+ int nullfd;
-+ int dupfd;
-+
-+ VE_IGNORE_EINTR (nullfd = open ("/dev/null", flags));
-+ if (G_UNLIKELY (nullfd < 0)) {
-+ gdm_fail (_("Cannot open /dev/null: %s!"),
-+ strerror (errno));
-+ exit (EXIT_FAILURE);
-+ }
-+
-+ VE_IGNORE_EINTR (dupfd = dup2 (nullfd, fd));
-+ if (G_UNLIKELY (dupfd < 0)) {
-+ gdm_fail (_("Cannot duplicate /dev/null: %s!"),
-+ strerror (errno));
-+ exit (EXIT_FAILURE);
-+ }
-+
-+ VE_IGNORE_EINTR (close (nullfd));
-+}
-+
-+static void
-+daemonify (void)
-+{
-+ pid_t pid;
-+
-+ pid = fork ();
-+
-+ /* terminate the parent */
-+ if (pid > 0)
-+ exit (EXIT_SUCCESS);
-+
-+ if (G_UNLIKELY (pid < 0)) {
-+ gdm_fail (_("fork () failed: %s!"), strerror (errno));
-+ exit (EXIT_FAILURE);
-+ }
-+
-+ if (G_UNLIKELY (setsid () < 0)) {
-+ gdm_fail (_("setsid () failed: %s!"), strerror (errno));
-+ exit (EXIT_FAILURE);
-+ }
-+
-+ /* reopen stdin, stdout, stderr with /dev/null */
-+ dup_dev_null (STDIN_FILENO, O_RDONLY);
-+ dup_dev_null (STDOUT_FILENO, O_RDWR);
-+ dup_dev_null (STDERR_FILENO, O_RDWR);
-+}
-+
- int
- main (int argc,
- char **argv)
-@@ -523,14 +573,17 @@ main (int argc,
- DBusGConnection *connection;
- GError *error;
- int ret;
-+ int i;
- gboolean res;
- gboolean xdmcp_enabled;
- GdmSignalHandler *signal_handler;
- static gboolean do_timed_exit = FALSE;
- static gboolean print_version = FALSE;
- static gboolean fatal_warnings = FALSE;
-+ static gboolean no_daemon = FALSE;
- static GOptionEntry entries [] = {
- { "fatal-warnings", 0, 0, G_OPTION_ARG_NONE, &fatal_warnings, N_("Make all warnings fatal"), NULL },
-+ { "nodaemon", 0, 0, G_OPTION_ARG_NONE, &no_daemon, N_("Do not fork into the background"), NULL },
- { "timed-exit", 0, 0, G_OPTION_ARG_NONE, &do_timed_exit, N_("Exit after a time (for debugging)"), NULL },
- { "version", 0, 0, G_OPTION_ARG_NONE, &print_version, N_("Print GDM version"), NULL },
-
-@@ -547,6 +600,14 @@ main (int argc,
-
- g_type_init ();
-
-+ /* preprocess the arguments to support the xdm style
-+ * -nodaemon option
-+ */
-+ for (i = 0; i < argc; i++) {
-+ if (strcmp (argv[i], "-nodaemon") == 0)
-+ argv[i] = "--nodaemon";
-+ }
-+
- context = g_option_context_new (_("GNOME Display Manager"));
- g_option_context_add_main_entries (context, entries, NULL);
- g_option_context_set_ignore_unknown_options (context, TRUE);
-@@ -617,6 +678,9 @@ main (int argc,
- exit (-1);
- }
-
-+ if (no_daemon == FALSE)
-+ daemonify ();
-+
- /* pid file */
- delete_pid ();
- write_pid ();
---
-1.7.3.1
-
diff --git a/gnome-base/gdm/files/gdm-2.32.0-fix-vt-problems.patch b/gnome-base/gdm/files/gdm-2.32.0-fix-vt-problems.patch
deleted file mode 100644
index f219a14..0000000
--- a/gnome-base/gdm/files/gdm-2.32.0-fix-vt-problems.patch
+++ /dev/null
@@ -1,195 +0,0 @@
-From 64002e623fea54ab10040206d164c5fdee4a43d2 Mon Sep 17 00:00:00 2001
-From: Nirbheek Chauhan <nirbheek@gentoo.org>
-Date: Fri, 15 Apr 2011 22:13:44 +0530
-Subject: [PATCH] Fix VT grab race with getty causing X to grab the wrong VT
-
-On bootup, if X is spawned without any args, it'll take up the first unused VT.
-If GDM starts up before gettys are spawned, X takes up VT1 or VT2 depending on
-the init system and bootsplash.
-
-This is problematic because afterwards getty will come up underneath X, and
-cause keyboard problems and eventually crash X.
-
-So we read /etc/inittab, check for open VTs, compare the two values, and take
-the conservative one.
----
- configure.ac | 4 ++
- daemon/Makefile.am | 1 +
- daemon/gdm-server.c | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++-
- 3 files changed, 110 insertions(+), 1 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ca0f8bb..b9e7462 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -302,6 +302,10 @@ AC_CHECK_TYPE(socklen_t,,
- AC_CHECK_HEADERS(sys/sockio.h)
- AC_CHECK_FUNCS([setresuid setenv unsetenv clearenv])
-
-+dnl Needed for querying the kernel for free VTs
-+AC_CHECK_HEADERS(sys/vt.h)
-+AC_CHECK_HEADERS(sys/ioctl.h)
-+
- dnl checks needed for Darwin compatibility to linux **environ.
- AC_CHECK_HEADERS(crt_externs.h)
- AC_CHECK_FUNCS(_NSGetEnviron)
-diff --git a/daemon/Makefile.am b/daemon/Makefile.am
-index da18835..c1b6bda 100644
---- a/daemon/Makefile.am
-+++ b/daemon/Makefile.am
-@@ -14,6 +14,7 @@ AM_CPPFLAGS = \
- -DLIBEXECDIR=\"$(libexecdir)\" \
- -DLOGDIR=\"$(logdir)\" \
- -DSBINDIR=\"$(sbindir)\" \
-+ -DSYSCONFDIR=\""$(sysconfdir)"\" \
- -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \
- -DGDM_XAUTH_DIR=\"$(GDM_XAUTH_DIR)\" \
- -DGDM_SCREENSHOT_DIR=\"$(GDM_SCREENSHOT_DIR)\" \
-diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c
-index 339f3cc..29d16dc 100644
---- a/daemon/gdm-server.c
-+++ b/daemon/gdm-server.c
-@@ -26,6 +26,8 @@
- #include <unistd.h>
- #include <string.h>
- #include <sys/types.h>
-+#include <sys/ioctl.h>
-+#include <sys/vt.h>
- #include <sys/wait.h>
- #include <errno.h>
- #include <ctype.h>
-@@ -42,6 +44,7 @@
- #include <glib/gi18n.h>
- #include <glib/gstdio.h>
- #include <glib-object.h>
-+#include <gio/gio.h>
-
- #include <X11/Xlib.h> /* for Display */
-
-@@ -54,6 +57,8 @@ extern char **environ;
-
- #define GDM_SERVER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_SERVER, GdmServerPrivate))
-
-+#define INITTAB SYSCONFDIR"/inittab"
-+
- /* These are the servstat values, also used as server
- * process exit codes */
- #define SERVER_TIMEOUT 2 /* Server didn't start */
-@@ -674,6 +679,105 @@ gdm_server_spawn (GdmServer *server,
- }
-
- /**
-+ * Parse the inittab file used by getty to spawn VTs to find unused ttys
-+ */
-+static int
-+get_free_vt_from_inittab ()
-+{
-+ GFile *gfile;
-+ GFileInputStream *contents;
-+ GDataInputStream *dstream;
-+ GRegex *getty;
-+ GMatchInfo *tty_match = NULL;
-+ GSList *tty_list = NULL;
-+ GError *error = NULL;
-+ gchar *temp = NULL;
-+ int vtno = 0;
-+
-+ gfile = g_file_new_for_path (INITTAB);
-+ contents = g_file_read (gfile, NULL, &error);
-+ g_object_unref (gfile);
-+ if (!contents) {
-+ if (error) {
-+ g_debug ("Unable to open file %s", INITTAB);
-+ g_error_free (error);
-+ }
-+ goto out;
-+ }
-+
-+ dstream = g_data_input_stream_new (G_INPUT_STREAM (contents));
-+ getty = g_regex_new ("^c[0-9]+:.+getty.+tty([0-9]+)", 0, 0, NULL);
-+ g_object_unref (contents);
-+
-+ while (1) {
-+ temp = g_data_input_stream_read_line (dstream, NULL, NULL, &error);
-+ if (!temp)
-+ break;
-+ if (!g_regex_match (getty, temp, 0, &tty_match))
-+ continue;
-+ g_free (temp);
-+ temp = g_match_info_fetch (tty_match, 1);
-+ if (!temp)
-+ continue;
-+ tty_list = g_slist_insert_sorted (tty_list, temp, (GCompareFunc)g_strcmp0);
-+ g_match_info_free (tty_match);
-+ }
-+
-+ if (error) {
-+ g_debug ("Unable to read line from %s", INITTAB);
-+ g_error_free (error);
-+ goto free;
-+ }
-+
-+ /* Ignore holes in vt allocation, just take the last one */
-+ temp = g_slist_last (tty_list)->data;
-+ if (temp)
-+ vtno = (int) g_ascii_strtoull (temp, NULL, 10) + 1;
-+
-+free:
-+ g_object_unref (dstream);
-+ g_regex_unref (getty);
-+ g_slist_free_full (tty_list, g_free);
-+ g_free (error);
-+out:
-+ return vtno;
-+}
-+
-+/**
-+ * Query the VT_* kernel ioctls to find an empty tty
-+ */
-+static int
-+get_free_vt_from_kernel()
-+{
-+ int fd, vtno = 0;
-+
-+ fd = open ("/dev/tty0", O_WRONLY, 0);
-+ if ((ioctl(fd, VT_OPENQRY, &vtno) < 0) || (vtno == -1)) {
-+ vtno = 0;
-+ g_debug ("Unable to find a free vt, falling back to Xorg autodetect");
-+ }
-+ return vtno;
-+}
-+
-+static gchar*
-+get_free_vt ()
-+{
-+ int inittab_vtno, kernel_vtno;
-+ gchar* vt = NULL;
-+
-+ inittab_vtno = get_free_vt_from_inittab();
-+ if (inittab_vtno > 0)
-+ g_debug ("Inittab says vt%i is free\n", inittab_vtno);
-+ kernel_vtno = get_free_vt_from_kernel();
-+ if (kernel_vtno > 0)
-+ g_debug ("Kernel says vt%i is free\n", kernel_vtno);
-+ /* Select the greater of the two because getty will use the others */
-+ if (kernel_vtno != 0 && inittab_vtno != 0)
-+ vt = g_strdup_printf ("vt%i", kernel_vtno > inittab_vtno ? kernel_vtno : inittab_vtno);
-+ return vt;
-+}
-+
-+/**
- * gdm_server_start:
- * @disp: Pointer to a GdmDisplay structure
- *
-@@ -686,7 +790,7 @@ gdm_server_start (GdmServer *server)
- gboolean res;
-
- /* fork X server process */
-- res = gdm_server_spawn (server, NULL);
-+ res = gdm_server_spawn (server, get_free_vt());
-
- return res;
- }
---
-1.7.3.4
-
diff --git a/gnome-base/gdm/files/gdm-2.32.0-selinux-remove-attr.patch b/gnome-base/gdm/files/gdm-2.32.0-selinux-remove-attr.patch
deleted file mode 100644
index e563aa4..0000000
--- a/gnome-base/gdm/files/gdm-2.32.0-selinux-remove-attr.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 41badd6d2ca652a875fec3eea420ae876023076d Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Tue, 2 Nov 2010 23:15:54 +0100
-Subject: [PATCH 1/6] remove unneeded linker directive for selinux
-
-Gentoo bug: #41022
-
----
- configure.ac | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ed07dce..71d0247 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -873,7 +873,7 @@ if test "x$with_selinux" = "xyes" ; then
- AC_CHECK_LIB(selinux,setexeccon,/bin/true)
- AC_CHECK_LIB(selinux,is_selinux_enabled,/bin/true)
- AC_DEFINE(HAVE_SELINUX, 1, [Define if have selinux])
-- EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux -lattr"
-+ EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux"
- fi
-
- dnl ---------------------------------------------------------------------------
---
-1.7.3.1
-
diff --git a/gnome-base/gdm/files/gdm-3.5.91-fix-daemonize-regression.patch b/gnome-base/gdm/files/gdm-3.5.91-fix-daemonize-regression.patch
deleted file mode 100644
index 60aea72..0000000
--- a/gnome-base/gdm/files/gdm-3.5.91-fix-daemonize-regression.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From 7f5104b242e6b36e6143183b14582d362763ff2a Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Tue, 2 Nov 2010 23:16:51 +0100
-Subject: [PATCH 2/6] daemonize so that the boot process can continue
-
-Gentoo bug: #236701
-
-Originally from: Dan Nicholson <dbn.lists@gmail.com>
-
-Fork gdm-binary, except when -nodaemon is used
-
-gdm-binary now forks and the parent terminates, except when the
--nodaemon or --nodaemon options are used. This provides compatibility
-with xdm. Fixes bug #550170.
-
----
- daemon/main.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 64 insertions(+), 0 deletions(-)
-
-diff --git a/daemon/main.c b/daemon/main.c
-index 5b8d66b..191b6e3 100644
---- a/daemon/main.c
-+++ b/daemon/main.c
-@@ -513,6 +513,56 @@ is_debug_set (void)
- return debug;
- }
-
-+static void
-+dup_dev_null (int fd, int flags)
-+{
-+ int nullfd;
-+ int dupfd;
-+
-+ VE_IGNORE_EINTR (nullfd = open ("/dev/null", flags));
-+ if (G_UNLIKELY (nullfd < 0)) {
-+ gdm_fail (_("Cannot open /dev/null: %s!"),
-+ strerror (errno));
-+ exit (EXIT_FAILURE);
-+ }
-+
-+ VE_IGNORE_EINTR (dupfd = dup2 (nullfd, fd));
-+ if (G_UNLIKELY (dupfd < 0)) {
-+ gdm_fail (_("Cannot duplicate /dev/null: %s!"),
-+ strerror (errno));
-+ exit (EXIT_FAILURE);
-+ }
-+
-+ VE_IGNORE_EINTR (close (nullfd));
-+}
-+
-+static void
-+daemonify (void)
-+{
-+ pid_t pid;
-+
-+ pid = fork ();
-+
-+ /* terminate the parent */
-+ if (pid > 0)
-+ exit (EXIT_SUCCESS);
-+
-+ if (G_UNLIKELY (pid < 0)) {
-+ gdm_fail (_("fork () failed: %s!"), strerror (errno));
-+ exit (EXIT_FAILURE);
-+ }
-+
-+ if (G_UNLIKELY (setsid () < 0)) {
-+ gdm_fail (_("setsid () failed: %s!"), strerror (errno));
-+ exit (EXIT_FAILURE);
-+ }
-+
-+ /* reopen stdin, stdout, stderr with /dev/null */
-+ dup_dev_null (STDIN_FILENO, O_RDONLY);
-+ dup_dev_null (STDOUT_FILENO, O_RDWR);
-+ dup_dev_null (STDERR_FILENO, O_RDWR);
-+}
-+
- int
- main (int argc,
- char **argv)
-@@ -523,13 +573,16 @@ main (int argc,
- DBusGConnection *connection;
- GError *error;
- int ret;
-+ int i;
- gboolean res;
- GdmSignalHandler *signal_handler;
- static gboolean do_timed_exit = FALSE;
- static gboolean print_version = FALSE;
- static gboolean fatal_warnings = FALSE;
-+ static gboolean no_daemon = FALSE;
- static GOptionEntry entries [] = {
- { "fatal-warnings", 0, 0, G_OPTION_ARG_NONE, &fatal_warnings, N_("Make all warnings fatal"), NULL },
-+ { "nodaemon", 0, 0, G_OPTION_ARG_NONE, &no_daemon, N_("Do not fork into the background"), NULL },
- { "timed-exit", 0, 0, G_OPTION_ARG_NONE, &do_timed_exit, N_("Exit after a time (for debugging)"), NULL },
- { "version", 0, 0, G_OPTION_ARG_NONE, &print_version, N_("Print GDM version"), NULL },
-
-@@ -547,6 +600,14 @@ main (int argc,
-
- g_type_init ();
-
-+ /* preprocess the arguments to support the xdm style
-+ * -nodaemon option
-+ */
-+ for (i = 0; i < argc; i++) {
-+ if (strcmp (argv[i], "-nodaemon") == 0)
-+ argv[i] = "--nodaemon";
-+ }
-+
- context = g_option_context_new (_("GNOME Display Manager"));
- g_option_context_add_main_entries (context, entries, NULL);
- g_option_context_set_ignore_unknown_options (context, TRUE);
-@@ -617,6 +678,9 @@ main (int argc,
- exit (-1);
- }
-
-+ if (no_daemon == FALSE)
-+ daemonify ();
-+
- /* pid file */
- delete_pid ();
- write_pid ();
---
-1.7.3.1
-
diff --git a/gnome-base/gdm/files/gdm.sh b/gnome-base/gdm/files/gdm.sh
new file mode 100644
index 0000000..609f10a
--- /dev/null
+++ b/gnome-base/gdm/files/gdm.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+gdm-binary &
diff --git a/gnome-base/gdm/gdm-3.5.91-r1.ebuild b/gnome-base/gdm/gdm-3.5.91-r1.ebuild
index aac7b7e..52e1779 100644
--- a/gnome-base/gdm/gdm-3.5.91-r1.ebuild
+++ b/gnome-base/gdm/gdm-3.5.91-r1.ebuild
@@ -150,9 +150,6 @@ pkg_setup() {
}
src_prepare() {
- # daemonize so that the boot process can continue, bug #236701
- epatch "${FILESDIR}/${PN}-3.5.91-fix-daemonize-regression.patch"
-
# GDM grabs VT2 instead of VT7, bug 261339, bug 284053, bug 288852
# XXX: We can now pass a hard-coded initial value; temporary fix
#epatch "${FILESDIR}/${PN}-2.32.0-fix-vt-problems.patch"
@@ -187,11 +184,10 @@ src_install() {
# Install the systemd unit file
systemd_dounit "${FILESDIR}/3.4.1/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"
+ # Install a shell script that runs gdm-binary in the background
+ cp "${FILESDIR}/gdm.sh" "${ED}/usr/sbin/gdm"
# our x11's scripts point to /usr/bin/gdm
- ln -sfn /usr/sbin/gdm-binary "${ED}/usr/bin/gdm"
+ ln -sfn /usr/sbin/gdm "${ED}/usr/bin/gdm"
# log, etc.
keepdir /var/log/gdm
diff --git a/gnome-base/gdm/gdm-9999.ebuild b/gnome-base/gdm/gdm-9999.ebuild
index aac7b7e..52e1779 100644
--- a/gnome-base/gdm/gdm-9999.ebuild
+++ b/gnome-base/gdm/gdm-9999.ebuild
@@ -150,9 +150,6 @@ pkg_setup() {
}
src_prepare() {
- # daemonize so that the boot process can continue, bug #236701
- epatch "${FILESDIR}/${PN}-3.5.91-fix-daemonize-regression.patch"
-
# GDM grabs VT2 instead of VT7, bug 261339, bug 284053, bug 288852
# XXX: We can now pass a hard-coded initial value; temporary fix
#epatch "${FILESDIR}/${PN}-2.32.0-fix-vt-problems.patch"
@@ -187,11 +184,10 @@ src_install() {
# Install the systemd unit file
systemd_dounit "${FILESDIR}/3.4.1/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"
+ # Install a shell script that runs gdm-binary in the background
+ cp "${FILESDIR}/gdm.sh" "${ED}/usr/sbin/gdm"
# our x11's scripts point to /usr/bin/gdm
- ln -sfn /usr/sbin/gdm-binary "${ED}/usr/bin/gdm"
+ ln -sfn /usr/sbin/gdm "${ED}/usr/bin/gdm"
# log, etc.
keepdir /var/log/gdm
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gdm/, gnome-base/gdm/files/
@ 2012-12-26 21:45 Gilles Dartiguelongue
0 siblings, 0 replies; 14+ messages in thread
From: Gilles Dartiguelongue @ 2012-12-26 21:45 UTC (permalink / raw
To: gentoo-commits
commit: 56ab27672db2efcd92880ac83b13f3d9db906bb8
Author: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 26 21:42:00 2012 +0000
Commit: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
CommitDate: Wed Dec 26 21:42:53 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=56ab2767
gnome-base/gdm: moved to gx86
* Sync live ebuild with gx86 changes.
* USE=introspection is now global.
---
gnome-base/gdm/files/gdm.sh | 3 -
gnome-base/gdm/gdm-3.6.2.ebuild | 285 ---------------------------------------
gnome-base/gdm/gdm-9999.ebuild | 113 +++++++---------
gnome-base/gdm/metadata.xml | 2 -
4 files changed, 50 insertions(+), 353 deletions(-)
diff --git a/gnome-base/gdm/files/gdm.sh b/gnome-base/gdm/files/gdm.sh
deleted file mode 100644
index 609f10a..0000000
--- a/gnome-base/gdm/files/gdm.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-gdm-binary &
diff --git a/gnome-base/gdm/gdm-3.6.2.ebuild b/gnome-base/gdm/gdm-3.6.2.ebuild
deleted file mode 100644
index fa78d1f..0000000
--- a/gnome-base/gdm/gdm-3.6.2.ebuild
+++ /dev/null
@@ -1,285 +0,0 @@
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI="4"
-GNOME2_LA_PUNT="yes"
-
-inherit autotools eutils gnome2 pam systemd user
-if [[ ${PV} = 9999 ]]; then
- inherit gnome2-live
-fi
-
-G_PV="2012.09.25"
-G_P="gdm-gentoo-${G_PV}"
-DESCRIPTION="GNOME Display Manager"
-HOMEPAGE="https://live.gnome.org/GDM"
-SRC_URI="${SRC_URI}
- http://dev.gentoo.org/~tetromino/distfiles/${PN}/${G_P}.tar.xz"
-
-LICENSE="GPL-2+"
-SLOT="0"
-IUSE="accessibility audit +consolekit +fallback fprint +gnome-shell +introspection ipv6 ldap plymouth selinux smartcard systemd tcpd test xinerama"
-if [[ ${PV} = 9999 ]]; then
- KEYWORDS=""
-else
- KEYWORDS="~amd64 ~sh ~x86"
-fi
-
-# 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
-# libdaemon needed for our fix-daemonize-regression.patch
-COMMON_DEPEND="
- >=dev-libs/glib-2.33.2: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]
- >=x11-misc/xdg-utils-1.0.2-r3
- >=sys-power/upower-0.9
- >=sys-apps/accountsservice-0.6.12
-
- >=gnome-base/dconf-0.11.6
- >=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
- sys-auth/pambase[consolekit?,systemd?]
-
- dev-libs/libdaemon
-
- accessibility? ( x11-libs/libXevie )
- audit? ( sys-process/audit )
- consolekit? ( sys-auth/consolekit[pam] )
- introspection? ( >=dev-libs/gobject-introspection-0.9.12 )
- plymouth? ( sys-boot/plymouth )
- selinux? ( sys-libs/libselinux )
- systemd? ( >=sys-apps/systemd-39[pam] )
- tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
- xinerama? ( x11-libs/libXinerama )"
-# 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
-# gnome-session-3.6 needed to avoid freezing with orca
-RDEPEND="${COMMON_DEPEND}
- >=gnome-base/gnome-session-3.6
- x11-apps/xhost
- x11-themes/gnome-icon-theme-symbolic
-
- accessibility? (
- app-accessibility/gnome-mag
- app-accessibility/gok
- app-accessibility/orca
- gnome-extra/at-spi:1 )
- consolekit? ( gnome-extra/polkit-gnome )
- fallback? ( x11-wm/metacity )
- 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"
-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-0.17
- x11-proto/inputproto
- x11-proto/randrproto
- >=dev-util/intltool-0.40.0
- virtual/pkgconfig"
-
-if [[ ${PV} = 9999 ]]; then
- DEPEND="${DEPEND}
- app-text/yelp-tools"
-fi
-
-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() {
- 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-static
- --localstatedir=${EPREFIX}/var
- --with-xdmcp=yes
- --enable-authentication-scheme=pam
- --with-pam-prefix=${EPREFIX}/etc
- --with-default-pam-config=none
- --with-at-spi-registryd-directory=${EPREFIX}/usr/libexec
- --with-initial-vt=7
- $(use_with accessibility xevie)
- $(use_with audit libaudit)
- $(use_enable ipv6)
- $(use_with consolekit console-kit)
- $(use_with plymouth)
- $(use_with selinux)
- $(use_with systemd)
- $(use_with tcpd tcp-wrappers)
- $(use_with xinerama)"
- [[ ${PV} != 9999 ]] && G2CONF="${G2CONF} ITSTOOL=$(type -P true)"
-
- # GDM grabs VT2 instead of VT7, bug 261339, bug 284053, bug 288852
- # XXX: We can now pass a hard-coded initial value; temporary fix
- #epatch "${FILESDIR}/${PN}-2.32.0-fix-vt-problems.patch"
-
- # daemonize so that the boot process can continue, bug #236701
- epatch "${FILESDIR}/${PN}-3.6.0-fix-daemonize-regression.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"
-
- # automagic selinux :/
- epatch "${FILESDIR}/${PN}-3.6.0-selinux-automagic.patch"
-
- # don't load accessibility support at runtime when USE=-accessibility
- use accessibility || epatch "${FILESDIR}/${PN}-3.3.92.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
-
- if [[ ${PV} != 9999 ]]; then
- mkdir -p "${S}"/m4
- eautoreconf
- fi
-
- gnome2_src_prepare
-}
-
-src_install() {
- gnome2_src_install
-
- # our x11's scripts point to /usr/bin/gdm
- dosym /usr/sbin/gdm-binary /usr/bin/gdm
-
- # log, etc.
- keepdir /var/log/gdm
-
- # 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
-
- cd "${WORKDIR}/${G_P}"
- local LDAP
- use ldap && LDAP=yes
- emake GDM_WELCOME="gdm-launch-environment" LDAP=${LDAP} EPREFIX="${EPREFIX}" \
- SYSTEMD_UNITDIR="$(systemd_get_unitdir)" DESTDIR="${D}" install
-}
-
-pkg_postinst() {
- local d ret
-
- gnome2_pkg_postinst
-
- dbus-launch dconf update || die "'dconf update' failed"
-
- # 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}
-
- 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 has_version sys-auth/pambase[gnome-keyring]; then
- elog "For passwordless login to unlock your keyring, you need to set an"
- elog "empty password on your keyring. Use app-crypt/seahorse for that."
- else
- elog "To unlock your keyring on login, install sys-auth/pambase"
- elog "with USE=gnome-keyring"
- 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/gdm-9999.ebuild b/gnome-base/gdm/gdm-9999.ebuild
index fa78d1f..a6d50f2 100644
--- a/gnome-base/gdm/gdm-9999.ebuild
+++ b/gnome-base/gdm/gdm-9999.ebuild
@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
# $Header: $
-EAPI="4"
+EAPI="5"
GNOME2_LA_PUNT="yes"
inherit autotools eutils gnome2 pam systemd user
@@ -31,24 +31,23 @@ fi
# dconf, dbus and g-s-d are needed at install time for dconf update
# libdaemon needed for our fix-daemonize-regression.patch
COMMON_DEPEND="
+ app-text/iso-codes
>=dev-libs/glib-2.33.2:2
>=x11-libs/gtk+-2.91.1:3
+ dev-libs/libdaemon
>=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]
- >=x11-misc/xdg-utils-1.0.2-r3
- >=sys-power/upower-0.9
- >=sys-apps/accountsservice-0.6.12
-
>=gnome-base/dconf-0.11.6
>=gnome-base/gnome-settings-daemon-3.1.4
gnome-base/gsettings-desktop-schemas
+ >=media-libs/fontconfig-2.5.0
+ >=media-libs/libcanberra-0.4[gtk3]
sys-apps/dbus
+ >=sys-apps/accountsservice-0.6.12
+ >=sys-power/upower-0.9
- app-text/iso-codes
-
+ x11-apps/sessreg
x11-base/xorg-server
x11-libs/libXi
x11-libs/libXau
@@ -57,22 +56,21 @@ COMMON_DEPEND="
x11-libs/libXext
x11-libs/libXft
x11-libs/libXrandr
- x11-apps/sessreg
+ >=x11-misc/xdg-utils-1.0.2-r3
virtual/pam
sys-auth/pambase[consolekit?,systemd?]
- dev-libs/libdaemon
-
accessibility? ( x11-libs/libXevie )
audit? ( sys-process/audit )
consolekit? ( sys-auth/consolekit[pam] )
introspection? ( >=dev-libs/gobject-introspection-0.9.12 )
plymouth? ( sys-boot/plymouth )
selinux? ( sys-libs/libselinux )
- systemd? ( >=sys-apps/systemd-39[pam] )
+ systemd? ( >=sys-apps/systemd-186[pam] )
tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
- xinerama? ( x11-libs/libXinerama )"
+ xinerama? ( x11-libs/libXinerama )
+"
# 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
@@ -98,16 +96,18 @@ RDEPEND="${COMMON_DEPEND}
app-crypt/coolkey
sys-auth/pam_pkcs11 )
- !gnome-extra/fast-user-switch-applet"
+ !gnome-extra/fast-user-switch-applet
+"
DEPEND="${COMMON_DEPEND}
- test? ( >=dev-libs/check-0.9.4 )
- xinerama? ( x11-proto/xineramaproto )
app-text/docbook-xml-dtd:4.1.2
+ >=dev-util/intltool-0.40.0
>=sys-devel/gettext-0.17
+ virtual/pkgconfig
x11-proto/inputproto
x11-proto/randrproto
- >=dev-util/intltool-0.40.0
- virtual/pkgconfig"
+ test? ( >=dev-libs/check-0.9.4 )
+ xinerama? ( x11-proto/xineramaproto )
+"
if [[ ${PV} = 9999 ]]; then
DEPEND="${DEPEND}
@@ -132,33 +132,6 @@ pkg_setup() {
}
src_prepare() {
- 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-static
- --localstatedir=${EPREFIX}/var
- --with-xdmcp=yes
- --enable-authentication-scheme=pam
- --with-pam-prefix=${EPREFIX}/etc
- --with-default-pam-config=none
- --with-at-spi-registryd-directory=${EPREFIX}/usr/libexec
- --with-initial-vt=7
- $(use_with accessibility xevie)
- $(use_with audit libaudit)
- $(use_enable ipv6)
- $(use_with consolekit console-kit)
- $(use_with plymouth)
- $(use_with selinux)
- $(use_with systemd)
- $(use_with tcpd tcp-wrappers)
- $(use_with xinerama)"
- [[ ${PV} != 9999 ]] && G2CONF="${G2CONF} ITSTOOL=$(type -P true)"
-
# GDM grabs VT2 instead of VT7, bug 261339, bug 284053, bug 288852
# XXX: We can now pass a hard-coded initial value; temporary fix
#epatch "${FILESDIR}/${PN}-2.32.0-fix-vt-problems.patch"
@@ -192,6 +165,37 @@ src_prepare() {
gnome2_src_prepare
}
+src_configure() {
+ 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-static
+ --localstatedir=${EPREFIX}/var
+ --with-xdmcp=yes
+ --enable-authentication-scheme=pam
+ --with-pam-prefix=${EPREFIX}/etc
+ --with-default-pam-config=none
+ --with-at-spi-registryd-directory=${EPREFIX}/usr/libexec
+ --with-initial-vt=7
+ $(use_with accessibility xevie)
+ $(use_with audit libaudit)
+ $(use_enable ipv6)
+ $(use_with consolekit console-kit)
+ $(use_with plymouth)
+ $(use_with selinux)
+ $(use_with systemd)
+ $(systemd_with_unitdir)
+ $(use_with tcpd tcp-wrappers)
+ $(use_with xinerama)"
+ [[ ${PV} != 9999 ]] && G2CONF="${G2CONF} ITSTOOL=$(type -P true)"
+ gnome2_src_configure
+}
+
src_install() {
gnome2_src_install
@@ -256,23 +260,6 @@ pkg_postinst() {
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() {
diff --git a/gnome-base/gdm/metadata.xml b/gnome-base/gdm/metadata.xml
index 7912955..c8518f8 100644
--- a/gnome-base/gdm/metadata.xml
+++ b/gnome-base/gdm/metadata.xml
@@ -12,8 +12,6 @@
<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="plymouth">Enable support for smooth transition from
<pkg>sys-boot/plymouth</pkg></flag>
<flag name="smartcard">Enables experimental smartcard authentication</flag>
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: gnome-base/gdm/, gnome-base/gdm/files/
@ 2013-12-11 23:44 Gilles Dartiguelongue
0 siblings, 0 replies; 14+ messages in thread
From: Gilles Dartiguelongue @ 2013-12-11 23:44 UTC (permalink / raw
To: gentoo-commits
commit: 8bf7c2d832f2f8eb6861481a48e241fb9b8a2bf7
Author: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 10 23:30:17 2013 +0000
Commit: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
CommitDate: Wed Dec 11 23:43:44 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=8bf7c2d8
gnome-base/gdm: 3.8.4-r3 → 3.10.0.1
* fallback, gnome-shell make no sense anymore, there is no fallback
* refresh accessibility dependency to match gtk3 only nature of the
greeter and match items in the accessibility menu
---
gnome-base/gdm/files/49-keychain-r1 | 9 +
gnome-base/gdm/files/50-ssh-agent-r1 | 10 +
.../gdm/files/gdm-2.32.0-xinitrc-ssh-agent.patch | 14 +-
.../gdm/files/gdm-3.2.1.1-custom-session.patch | 10 +-
.../files/gdm-3.3.92.1-disable-accessibility.patch | 30 ---
.../files/gdm-3.6.0-fix-daemonize-regression.patch | 192 -----------------
.../gdm/files/gdm-3.6.0-selinux-automagic.patch | 31 ---
.../gdm/files/gdm-3.8.4-fingerprint-auth.patch | 29 +++
gnome-base/gdm/files/gdm-3.8.4-logo.patch | 25 +++
gnome-base/gdm/gdm-3.10.0.1.ebuild | 227 +++++++++++++++++++++
gnome-base/gdm/gdm-9999.ebuild | 181 +++++++---------
gnome-base/gdm/metadata.xml | 6 -
12 files changed, 389 insertions(+), 375 deletions(-)
diff --git a/gnome-base/gdm/files/49-keychain-r1 b/gnome-base/gdm/files/49-keychain-r1
new file mode 100644
index 0000000..51a1ca8
--- /dev/null
+++ b/gnome-base/gdm/files/49-keychain-r1
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# source keychain variables
+
+keychain="`which keychain 2>/dev/null`"
+if [ -n "$keychain" ] && [ -x "$keychain" ] && [ -f "$HOME/.bash_profile" ]
+then
+ . "${HOME}/.bash_profile"
+fi
diff --git a/gnome-base/gdm/files/50-ssh-agent-r1 b/gnome-base/gdm/files/50-ssh-agent-r1
new file mode 100644
index 0000000..4d94fb0
--- /dev/null
+++ b/gnome-base/gdm/files/50-ssh-agent-r1
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+# add ssh-agent if found
+
+sshagent="`which ssh-agent 2>/dev/null`"
+if [ -n "$sshagent" ] && [ -x "$sshagent" ] && [ -z "$SSH_AUTH_SOCK" ]; then
+ command="$sshagent -- $command"
+elif [ -z "$sshagent" ] ; then
+ echo "$0: ssh-agent not found!"
+fi
diff --git a/gnome-base/gdm/files/gdm-2.32.0-xinitrc-ssh-agent.patch b/gnome-base/gdm/files/gdm-2.32.0-xinitrc-ssh-agent.patch
index b1cddf1..bfd8398 100644
--- a/gnome-base/gdm/files/gdm-2.32.0-xinitrc-ssh-agent.patch
+++ b/gnome-base/gdm/files/gdm-2.32.0-xinitrc-ssh-agent.patch
@@ -1,18 +1,18 @@
-From 1cb1841da3a8fedc1671637e2828d5e361af21fa Mon Sep 17 00:00:00 2001
+From c0581264d5e2b412aa27dc30623512b461024e4f Mon Sep 17 00:00:00 2001
From: Gilles Dartiguelongue <eva@gentoo.org>
Date: Tue, 2 Nov 2010 23:19:31 +0100
-Subject: [PATCH 5/6] ssh-agent handling must be done at xinitrc.d
+Subject: [PATCH 2/4] ssh-agent handling must be done at xinitrc.d
Gentoo bug: #220603
---
- data/Xsession.in | 8 --------
- 1 files changed, 0 insertions(+), 8 deletions(-)
+ data/Xsession.in | 8 --------
+ 1 file changed, 8 deletions(-)
diff --git a/data/Xsession.in b/data/Xsession.in
-index 0da187d..aa49b90 100755
+index 201be92..88f1fd9 100755
--- a/data/Xsession.in
+++ b/data/Xsession.in
-@@ -189,14 +189,6 @@ if [ -d /etc/X11/xinit/xinitrc.d ]; then
+@@ -191,14 +191,6 @@ if [ -d /etc/X11/xinit/xinitrc.d ]; then
done
fi
@@ -28,5 +28,5 @@ index 0da187d..aa49b90 100755
eval exec $command
--
-1.7.3.1
+1.8.5.1
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
index 0642f7c..c27f8fd 100644
--- 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
@@ -1,14 +1,14 @@
-From b96c19976b6876648fd91949f78f06cf5d269b18 Mon Sep 17 00:00:00 2001
+From e61ece2b42b270dd3f68718fef291be7b7f44aa6 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
+Subject: [PATCH 1/4] 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(-)
+ data/Xsession.in | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/data/Xsession.in b/data/Xsession.in
index 118518c..201be92 100755
@@ -47,5 +47,5 @@ index 118518c..201be92 100755
sshagent="`gdmwhich ssh-agent`"
if [ -n "$sshagent" ] && [ -x "$sshagent" ] && [ -z "$SSH_AUTH_SOCK" ]; then
--
-1.7.7
+1.8.5.1
diff --git a/gnome-base/gdm/files/gdm-3.3.92.1-disable-accessibility.patch b/gnome-base/gdm/files/gdm-3.3.92.1-disable-accessibility.patch
deleted file mode 100644
index 1df7e58..0000000
--- a/gnome-base/gdm/files/gdm-3.3.92.1-disable-accessibility.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -Naur gdm-3.3.92.1//data/00-upstream-settings gdm-3.3.92.1.new//data/00-upstream-settings
---- gdm-3.3.92.1//data/00-upstream-settings 2012-02-08 04:50:32.000000000 +0530
-+++ gdm-3.3.92.1.new//data/00-upstream-settings 2012-03-25 14:24:01.387842352 +0530
-@@ -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 @@
- 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 @@
- 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/gnome-base/gdm/files/gdm-3.6.0-fix-daemonize-regression.patch b/gnome-base/gdm/files/gdm-3.6.0-fix-daemonize-regression.patch
deleted file mode 100644
index 27f2079..0000000
--- a/gnome-base/gdm/files/gdm-3.6.0-fix-daemonize-regression.patch
+++ /dev/null
@@ -1,192 +0,0 @@
-From 722d31dc8823090b651b103f0194b6380f2d458e Mon Sep 17 00:00:00 2001
-From: Alexandre Rostovtsev <tetromino@gentoo.org>
-Date: Tue, 25 Sep 2012 22:30:29 -0400
-Subject: [PATCH] daemonize so that the boot process can continue
-
-Gentoo bug: #236701
-
-Based on original patch by Dan Nicholson <dbn.lists@gmail.com> and
-Gilles Dartiguelongue <eva@gentoo.org>.
-
-Fork gdm-binary, except when -nodaemon is used
-
-Makes the gdm main binary fork and daemonize unless the -nodaemon or
---nodaemon options are used. Provides compatibility with xdm. Fixes
-bug #550170.
-
-In daemonized mode, start a new process group, and kill it in our signal
-handlers, so that killing gdm kills its spawned processes, and so that
-"/etc/init.d/xdm stop" actually works.
----
- configure.ac | 4 ++++
- daemon/Makefile.am | 1 +
- daemon/main.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 65 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index 61a43d6..a851ba5 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -99,6 +99,10 @@ PKG_CHECK_MODULES(DAEMON,
- AC_SUBST(DAEMON_CFLAGS)
- AC_SUBST(DAEMON_LIBS)
-
-+PKG_CHECK_MODULES(LIBDAEMON, libdaemon)
-+AC_SUBST(LIBDAEMON_CFLAGS)
-+AC_SUBST(LIBDAEMON_LIBS)
-+
- GLIB_GSETTINGS
-
- PKG_CHECK_MODULES(NSS,
-diff --git a/daemon/Makefile.am b/daemon/Makefile.am
-index bb84765..cf89b47 100644
---- a/daemon/Makefile.am
-+++ b/daemon/Makefile.am
-@@ -380,6 +380,7 @@ gdm_binary_LDADD = \
- $(top_builddir)/common/libgdmcommon.la \
- $(XLIB_LIBS) \
- $(DAEMON_LIBS) \
-+ $(LIBDAEMON_LIBS) \
- $(XDMCP_LIBS) \
- $(LIBWRAP_LIBS) \
- $(SYSTEMD_LIBS) \
-diff --git a/daemon/main.c b/daemon/main.c
-index 3b8572c..c2fe4fe 100644
---- a/daemon/main.c
-+++ b/daemon/main.c
-@@ -34,6 +34,8 @@
- #include <locale.h>
- #include <signal.h>
-
-+#include <libdaemon/dfork.h>
-+
- #include <glib.h>
- #include <glib/gi18n.h>
- #include <glib/gstdio.h>
-@@ -336,16 +338,26 @@ signal_cb (int signo,
- gpointer data)
- {
- int ret;
-+ static gboolean ignore_signals = FALSE;
-
- g_debug ("Got callback for signal %d", signo);
-
- ret = TRUE;
-
-+ /* don't commit suicide before killing everyone in our process group */
-+ if (ignore_signals)
-+ return ret;
-+
- switch (signo) {
- case SIGFPE:
- case SIGPIPE:
- /* let the fatal signals interrupt us */
- g_debug ("Caught signal %d, shutting down abnormally.", signo);
-+ /* if we daemonized, kill all the processes we spawned */
-+ ignore_signals = TRUE;
-+ kill (-getpid (), signo);
-+ ignore_signals = FALSE;
-+
- ret = FALSE;
-
- break;
-@@ -354,6 +366,11 @@ signal_cb (int signo,
- case SIGTERM:
- /* let the fatal signals interrupt us */
- g_debug ("Caught signal %d, shutting down normally.", signo);
-+ /* if we daemonized, kill all the processes we spawned */
-+ ignore_signals = TRUE;
-+ kill (-getpid (), signo);
-+ ignore_signals = FALSE;
-+
- ret = FALSE;
-
- break;
-@@ -418,13 +435,16 @@ main (int argc,
- GOptionContext *context;
- GError *error;
- int ret;
-+ int i;
- gboolean res;
- GdmSignalHandler *signal_handler;
- static gboolean do_timed_exit = FALSE;
- static gboolean print_version = FALSE;
- static gboolean fatal_warnings = FALSE;
-+ static gboolean no_daemon = FALSE;
- static GOptionEntry entries [] = {
- { "fatal-warnings", 0, 0, G_OPTION_ARG_NONE, &fatal_warnings, N_("Make all warnings fatal"), NULL },
-+ { "nodaemon", 0, 0, G_OPTION_ARG_NONE, &no_daemon, N_("Do not fork into the background"), NULL },
- { "timed-exit", 0, 0, G_OPTION_ARG_NONE, &do_timed_exit, N_("Exit after a time (for debugging)"), NULL },
- { "version", 0, 0, G_OPTION_ARG_NONE, &print_version, N_("Print GDM version"), NULL },
-
-@@ -439,6 +459,14 @@ main (int argc,
-
- g_type_init ();
-
-+ /* preprocess the arguments to support the xdm style
-+ * -nodaemon option
-+ */
-+ for (i = 0; i < argc; i++) {
-+ if (strcmp (argv[i], "-nodaemon") == 0)
-+ argv[i] = "--nodaemon";
-+ }
-+
- context = g_option_context_new (_("GNOME Display Manager"));
- g_option_context_add_main_entries (context, entries, NULL);
- g_option_context_set_ignore_unknown_options (context, TRUE);
-@@ -465,6 +493,33 @@ main (int argc,
- g_log_set_always_fatal (fatal_mask);
- }
-
-+ if (!no_daemon) {
-+ pid_t pid;
-+ if (daemon_retval_init () < 0) {
-+ g_warning ("Failed to create pipe");
-+ exit (-1);
-+ }
-+ if ((pid = daemon_fork ()) < 0) {
-+ /* Fork failed */
-+ daemon_retval_done ();
-+ exit (1);
-+ } else if (pid) {
-+ /* Parent process: wait 20s for daemon_retval_send() in the daemon process */
-+ if ((ret = daemon_retval_wait (20)) < 0) {
-+ g_warning ("Timed out waiting for daemon process: %s", strerror(errno));
-+ exit (255);
-+ } else if (ret > 0) {
-+ g_warning ("Daemon process returned error code %d", ret);
-+ exit (ret);
-+ }
-+ exit (0);
-+ }
-+ /* Daemon process */
-+ daemon_close_all (-1);
-+ /* Start a new process group so that killing the daemon will kill the processes that it spawned */
-+ setsid ();
-+ }
-+
- gdm_log_init ();
-
- settings = gdm_settings_new ();
-@@ -519,6 +574,9 @@ main (int argc,
- g_timeout_add_seconds (30, (GSourceFunc) timed_exit_cb, main_loop);
- }
-
-+ if (!no_daemon)
-+ daemon_retval_send (0);
-+
- g_main_loop_run (main_loop);
-
- g_debug ("GDM finished, cleaning up...");
-@@ -535,6 +593,8 @@ main (int argc,
- ret = 0;
-
- out:
-+ if (!no_daemon)
-+ daemon_retval_send (ret);
-
- return ret;
- }
---
-1.7.12
-
diff --git a/gnome-base/gdm/files/gdm-3.6.0-selinux-automagic.patch b/gnome-base/gdm/files/gdm-3.6.0-selinux-automagic.patch
deleted file mode 100644
index 035d0fa..0000000
--- a/gnome-base/gdm/files/gdm-3.6.0-selinux-automagic.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 8f9bf7b053fc7a6c2e5b33fc43c168ba7250cb98 Mon Sep 17 00:00:00 2001
-From: Alexandre Rostovtsev <tetromino@gentoo.org>
-Date: Tue, 25 Sep 2012 17:38:37 -0400
-Subject: [PATCH] configure: Make selinux check non-automagic
-
----
- configure.ac | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 80a1fd4..61a43d6 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -142,9 +142,13 @@ AC_SUBST(UPOWER)
- AC_SUBST(UPOWER_CFLAGS)
- AC_SUBST(UPOWER_LIBS)
-
-+AC_ARG_WITH(selinux,
-+ AS_HELP_STRING([--with-selinux],
-+ [Add SELinux support]))
-+
- PKG_CHECK_MODULES(LIBSELINUX, libselinux, have_selinux=yes, have_selinux=no)
-
--if test "x$have_selinux" = "xyes" ; then
-+if test "x$have_selinux" = "xyes" && test "x$with_selinux" != "xno" ; then
- AC_DEFINE(HAVE_SELINUX, 1, [Define if have selinux])
- fi
- AC_SUBST(LIBSELINUX_CFLAGS)
---
-1.7.12
-
diff --git a/gnome-base/gdm/files/gdm-3.8.4-fingerprint-auth.patch b/gnome-base/gdm/files/gdm-3.8.4-fingerprint-auth.patch
new file mode 100644
index 0000000..cd19077
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-3.8.4-fingerprint-auth.patch
@@ -0,0 +1,29 @@
+From 75fe02c2b383b27b202940bdedd7d8d2c64169fb Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Tue, 30 Jul 2013 22:56:30 -0400
+Subject: [PATCH 3/4] Gentoo does not have a fingerprint-auth pam stack
+
+---
+ data/pam-exherbo/gdm-fingerprint.pam | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/data/pam-exherbo/gdm-fingerprint.pam b/data/pam-exherbo/gdm-fingerprint.pam
+index 41639ec..d9633fb 100644
+--- a/data/pam-exherbo/gdm-fingerprint.pam
++++ b/data/pam-exherbo/gdm-fingerprint.pam
+@@ -1,6 +1,11 @@
+ account include system-login
+
+-auth substack fingerprint-auth
++auth optional pam_env.so
++auth required pam_tally2.so onerr=succeed
++auth required pam_shells.so
++auth required pam_nologin.so
++auth required pam_fprintd.so
++auth required pam_permit.so
+ auth optional pam_gnome_keyring.so
+
+ password required pam_deny.so
+--
+1.8.5.1
+
diff --git a/gnome-base/gdm/files/gdm-3.8.4-logo.patch b/gnome-base/gdm/files/gdm-3.8.4-logo.patch
new file mode 100644
index 0000000..151d4bc
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-3.8.4-logo.patch
@@ -0,0 +1,25 @@
+From bcc651df77a429a6bf9b13892f71fedb1b87a069 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Wed, 11 Dec 2013 22:46:58 +0100
+Subject: [PATCH 4/4] Apply Gentoo branding
+
+---
+ data/org.gnome.login-screen.gschema.xml.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/org.gnome.login-screen.gschema.xml.in b/data/org.gnome.login-screen.gschema.xml.in
+index 03da374..5e81bc0 100644
+--- a/data/org.gnome.login-screen.gschema.xml.in
++++ b/data/org.gnome.login-screen.gschema.xml.in
+@@ -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.10.0.1.ebuild b/gnome-base/gdm/gdm-3.10.0.1.ebuild
new file mode 100644
index 0000000..9dd32a2
--- /dev/null
+++ b/gnome-base/gdm/gdm-3.10.0.1.ebuild
@@ -0,0 +1,227 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="5"
+GNOME2_LA_PUNT="yes"
+
+inherit autotools eutils gnome2 pam readme.gentoo systemd user
+
+DESCRIPTION="GNOME Display Manager for managing graphical display servers and user logins"
+HOMEPAGE="https://wiki.gnome.org/GDM"
+
+SRC_URI="${SRC_URI}
+ branding? ( http://www.mail-archive.com/tango-artists@lists.freedesktop.org/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 +systemd tcpd test 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.35:2
+ >=x11-libs/gtk+-2.91.1:3
+ >=gnome-base/dconf-0.11.6
+ >=gnome-base/gnome-settings-daemon-3.1.4
+ gnome-base/gsettings-desktop-schemas
+ >=media-libs/fontconfig-2.5.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-libs/libXrandr
+ >=x11-misc/xdg-utils-1.0.2-r3
+
+ virtual/pam
+ systemd? ( >=sys-apps/systemd-186[pam] )
+ !systemd? (
+ >=x11-base/xorg-server-1.14.3-r1
+ sys-auth/consolekit
+ !<sys-apps/openrc-0.12
+ )
+ 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
+ gnome-extra/polkit-gnome:0
+ x11-apps/xhost
+ x11-themes/gnome-icon-theme-symbolic
+
+ accessibility? (
+ >=app-accessibility/orca-3.10
+ app-accessibility/caribou
+ gnome-extra/mousetweaks )
+ fprint? (
+ sys-auth/fprintd
+ sys-auth/pam_fprint )
+ smartcard? (
+ app-crypt/coolkey
+ sys-auth/pam_pkcs11 )
+
+ !gnome-extra/fast-user-switch-applet
+"
+DEPEND="${COMMON_DEPEND}
+ app-text/docbook-xml-dtd:4.1.2
+ >=dev-util/intltool-0.40.0
+ >=sys-devel/gettext-0.17
+ 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.
+"
+
+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() {
+ # 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"
+
+ # Gentoo does not have a fingerprint-auth pam stack
+ epatch "${FILESDIR}/${PN}-3.8.4-fingerprint-auth.patch"
+
+ # Show logo when branding is enabled
+ use branding && epatch "${FILESDIR}/${PN}-3.8.4-logo.patch"
+
+ eautoreconf
+
+ 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
+ gnome2_src_configure \
+ --with-run-dir=/run/gdm \
+ --localstatedir="${EPREFIX}"/var \
+ --disable-static \
+ --with-xdmcp=yes \
+ --enable-authentication-scheme=pam \
+ --with-default-pam-config=exherbo \
+ --with-at-spi-registryd-directory="${EPREFIX}"/usr/libexec \
+ --with-initial-vt=7 \
+ --without-xevie \
+ $(use_with audit libaudit) \
+ $(use_enable ipv6) \
+ $(use_with plymouth) \
+ $(use_with selinux) \
+ $(use_with systemd) \
+ $(use_with !systemd console-kit) \
+ $(use_enable systemd systemd-journal) \
+ $(systemd_with_unitdir) \
+ $(use_with tcpd tcp-wrappers) \
+ $(use_with xinerama) \
+ ITSTOOL=$(type -P true)
+}
+
+src_install() {
+ gnome2_src_install
+
+ if ! use accessibility ; then
+ rm "${ED}"/usr/share/gdm/greeter/autostart/orca-autostart.desktop || die
+ fi
+
+ insinto /etc/X11/xinit/xinitrc.d
+ newins "${FILESDIR}/49-keychain-r1" 49-keychain
+ newins "${FILESDIR}/50-ssh-agent-r1" 50-ssh-agent
+
+ # log, etc.
+ keepdir /var/log/gdm
+
+ # 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
+
+ dbus-launch dconf update || die "'dconf update' failed"
+
+ # 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 [[ -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
+}
diff --git a/gnome-base/gdm/gdm-9999.ebuild b/gnome-base/gdm/gdm-9999.ebuild
index 15c6856..c19d94d 100644
--- a/gnome-base/gdm/gdm-9999.ebuild
+++ b/gnome-base/gdm/gdm-9999.ebuild
@@ -1,43 +1,43 @@
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="5"
GNOME2_LA_PUNT="yes"
-inherit autotools eutils gnome2 pam systemd user
+inherit autotools eutils gnome2 pam readme.gentoo systemd user
if [[ ${PV} = 9999 ]]; then
inherit gnome2-live
fi
-G_PV="2012.09.25"
-G_P="gdm-gentoo-${G_PV}"
-DESCRIPTION="GNOME Display Manager"
-HOMEPAGE="https://live.gnome.org/GDM"
+DESCRIPTION="GNOME Display Manager for managing graphical display servers and user logins"
+HOMEPAGE="https://wiki.gnome.org/GDM"
+
SRC_URI="${SRC_URI}
- http://dev.gentoo.org/~tetromino/distfiles/${PN}/${G_P}.tar.xz"
+ branding? ( http://www.mail-archive.com/tango-artists@lists.freedesktop.org/msg00043/tango-gentoo-v1.1.tar.gz )
+"
+
+LICENSE="
+ GPL-2+
+ branding? ( CC-Sampling-Plus-1.0 )
+"
-LICENSE="GPL-2+"
SLOT="0"
-IUSE="accessibility audit +consolekit +fallback fprint +gnome-shell +introspection ipv6 ldap plymouth selinux smartcard systemd tcpd test xinerama"
+IUSE="accessibility audit branding fprint +introspection ipv6 plymouth selinux smartcard +systemd tcpd test xinerama"
if [[ ${PV} = 9999 ]]; then
KEYWORDS=""
else
- KEYWORDS="~amd64 ~sh ~x86"
+ KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86"
fi
# 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
-# libdaemon needed for our fix-daemonize-regression.patch
+# We need either systemd or >=openrc-0.12 to restart gdm properly, bug #463784
COMMON_DEPEND="
app-text/iso-codes
- >=dev-libs/glib-2.33.2:2
+ >=dev-libs/glib-2.35:2
>=x11-libs/gtk+-2.91.1:3
- dev-libs/libdaemon
- >=x11-libs/pango-1.3
- dev-libs/nspr
- >=dev-libs/nss-3.11.1
>=gnome-base/dconf-0.11.6
>=gnome-base/gnome-settings-daemon-3.1.4
gnome-base/gsettings-desktop-schemas
@@ -45,7 +45,6 @@ COMMON_DEPEND="
>=media-libs/libcanberra-0.4[gtk3]
sys-apps/dbus
>=sys-apps/accountsservice-0.6.12
- >=sys-power/upower-0.9
x11-apps/sessreg
x11-base/xorg-server
@@ -59,39 +58,38 @@ COMMON_DEPEND="
>=x11-misc/xdg-utils-1.0.2-r3
virtual/pam
+ systemd? ( >=sys-apps/systemd-186[pam] )
+ !systemd? (
+ >=x11-base/xorg-server-1.14.3-r1
+ sys-auth/consolekit
+ !<sys-apps/openrc-0.12
+ )
sys-auth/pambase[systemd?]
- accessibility? ( x11-libs/libXevie )
audit? ( sys-process/audit )
- consolekit? ( sys-auth/consolekit )
introspection? ( >=dev-libs/gobject-introspection-0.9.12 )
plymouth? ( sys-boot/plymouth )
selinux? ( sys-libs/libselinux )
- systemd? ( >=sys-apps/systemd-186[pam] )
tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
xinerama? ( x11-libs/libXinerama )
"
# 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
# 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
+ gnome-extra/polkit-gnome:0
x11-apps/xhost
x11-themes/gnome-icon-theme-symbolic
accessibility? (
- app-accessibility/gnome-mag
- app-accessibility/gok
- app-accessibility/orca
- gnome-extra/at-spi:1 )
- consolekit? ( gnome-extra/polkit-gnome )
- fallback? ( x11-wm/metacity )
+ >=app-accessibility/orca-3.10
+ app-accessibility/caribou
+ gnome-extra/mousetweaks )
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 )
@@ -114,6 +112,15 @@ if [[ ${PV} = 9999 ]]; then
app-text/yelp-tools"
fi
+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.
+"
+
pkg_setup() {
enewgroup gdm
enewgroup video # Just in case it hasn't been created yet
@@ -132,33 +139,19 @@ pkg_setup() {
}
src_prepare() {
- # GDM grabs VT2 instead of VT7, bug 261339, bug 284053, bug 288852
- # XXX: We can now pass a hard-coded initial value; temporary fix
- #epatch "${FILESDIR}/${PN}-2.32.0-fix-vt-problems.patch"
-
- # daemonize so that the boot process can continue, bug #236701
- epatch "${FILESDIR}/${PN}-3.6.0-fix-daemonize-regression.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"
- # automagic selinux :/
- epatch "${FILESDIR}/${PN}-3.6.0-selinux-automagic.patch"
+ # Gentoo does not have a fingerprint-auth pam stack
+ epatch "${FILESDIR}/${PN}-3.8.4-fingerprint-auth.patch"
- # don't load accessibility support at runtime when USE=-accessibility
- use accessibility || epatch "${FILESDIR}/${PN}-3.3.92.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
+ # Show logo when branding is enabled
+ use branding && epatch "${FILESDIR}/${PN}-3.8.4-logo.patch"
if [[ ${PV} != 9999 ]]; then
- mkdir -p "${S}"/m4
eautoreconf
fi
@@ -166,41 +159,49 @@ src_prepare() {
}
src_configure() {
- DOCS="AUTHORS ChangeLog NEWS README TODO"
+ local myconf=""
+
+ [[ ${PV} != 9999 ]] && myconf="ITSTOOL=$(type -P true)"
# 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-static
- --localstatedir=${EPREFIX}/var
- --with-xdmcp=yes
- --enable-authentication-scheme=pam
- --with-pam-prefix=${EPREFIX}/etc
- --with-default-pam-config=none
- --with-at-spi-registryd-directory=${EPREFIX}/usr/libexec
- --with-initial-vt=7
- $(use_with accessibility xevie)
- $(use_with audit libaudit)
- $(use_enable ipv6)
- $(use_with consolekit console-kit)
- $(use_with plymouth)
- $(use_with selinux)
- $(use_with systemd)
- $(systemd_with_unitdir)
- $(use_with tcpd tcp-wrappers)
- $(use_with xinerama)"
- [[ ${PV} != 9999 ]] && G2CONF="${G2CONF} ITSTOOL=$(type -P true)"
- gnome2_src_configure
+ # Xevie is obsolete, bug #482304
+ gnome2_src_configure \
+ --with-run-dir=/run/gdm \
+ --localstatedir="${EPREFIX}"/var \
+ --disable-static \
+ --with-xdmcp=yes \
+ --enable-authentication-scheme=pam \
+ --with-default-pam-config=exherbo \
+ --with-at-spi-registryd-directory="${EPREFIX}"/usr/libexec \
+ --with-initial-vt=7 \
+ --without-xevie \
+ $(use_with audit libaudit) \
+ $(use_enable ipv6) \
+ $(use_with plymouth) \
+ $(use_with selinux) \
+ $(use_with systemd) \
+ $(use_with !systemd console-kit) \
+ $(use_enable systemd systemd-journal) \
+ $(systemd_with_unitdir) \
+ $(use_with tcpd tcp-wrappers) \
+ $(use_with xinerama) \
+ ${myconf}
}
src_install() {
gnome2_src_install
- # our x11's scripts point to /usr/bin/gdm
- dosym /usr/sbin/gdm-binary /usr/bin/gdm
+ if ! use accessibility ; then
+ rm "${ED}"/usr/share/gdm/greeter/autostart/orca-autostart.desktop || die
+ fi
+
+ insinto /etc/X11/xinit/xinitrc.d
+ newins "${FILESDIR}/49-keychain-r1" 49-keychain
+ newins "${FILESDIR}/50-ssh-agent-r1" 50-ssh-agent
# log, etc.
keepdir /var/log/gdm
@@ -213,11 +214,9 @@ src_install() {
echo 'XDG_DATA_DIRS="/usr/share/gdm"' > 99xdg-gdm
doenvd 99xdg-gdm
- cd "${WORKDIR}/${G_P}"
- local LDAP
- use ldap && LDAP=yes
- emake GDM_WELCOME="gdm-launch-environment" LDAP=${LDAP} EPREFIX="${EPREFIX}" \
- SYSTEMD_UNITDIR="$(systemd_get_unitdir)" DESTDIR="${D}" install
+ use branding && newicon "${WORKDIR}/tango-gentoo-v1.1/scalable/gentoo.svg" gentoo-gdm.svg
+
+ readme.gentoo_create_doc
}
pkg_postinst() {
@@ -229,31 +228,14 @@ 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"
+ 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}
- 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 has_version sys-auth/pambase[gnome-keyring]; then
- elog "For passwordless login to unlock your keyring, you need to set an"
- elog "empty password on your keyring. Use app-crypt/seahorse for that."
- else
- elog "To unlock your keyring on login, install sys-auth/pambase"
- elog "with USE=gnome-keyring"
- fi
+ readme.gentoo_print_elog
if [[ -f "/etc/X11/gdm/gdm.conf" ]]; then
elog "You had /etc/X11/gdm/gdm.conf which is the old configuration"
@@ -261,12 +243,3 @@ pkg_postinst() {
mv /etc/X11/gdm/gdm.conf /etc/X11/gdm/gdm-pre-gnome-2.16
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 c8518f8..ee4b03e 100644
--- a/gnome-base/gdm/metadata.xml
+++ b/gnome-base/gdm/metadata.xml
@@ -4,14 +4,8 @@
<herd>gnome</herd>
<use>
<flag name="audit">Enable support for <pkg>sys-process/audit</pkg></flag>
- <flag name="consolekit">Allow proper handling of removable media according
- to who is actually present on the machine.</flag>
- <flag name="fallback">Install <pkg>x11-wm/metacity</pkg> as fallback in
- case gnome-shell greeter fails to start</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="plymouth">Enable support for smooth transition from
<pkg>sys-boot/plymouth</pkg></flag>
<flag name="smartcard">Enables experimental smartcard authentication</flag>
^ permalink raw reply related [flat|nested] 14+ messages in thread
end of thread, other threads:[~2013-12-11 23:44 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-02 13:54 [gentoo-commits] proj/gnome:master commit in: gnome-base/gdm/, gnome-base/gdm/files/ Nirbheek Chauhan
-- strict thread matches above, loose matches on Subject: below --
2013-12-11 23:44 Gilles Dartiguelongue
2012-12-26 21:45 Gilles Dartiguelongue
2012-09-12 12:08 Nirbheek Chauhan
2012-09-12 12:06 Nirbheek Chauhan
2012-09-09 0:39 Nirbheek Chauhan
2012-08-18 14:07 Priit Laes
2011-10-23 8:41 Alexandre Restovtsev
2011-08-13 6:08 Alexandre Restovtsev
2011-06-26 6:22 Nirbheek Chauhan
2011-05-03 10:52 Nirbheek Chauhan
2011-04-15 19:36 Nirbheek Chauhan
2011-04-05 0:57 Nirbheek Chauhan
2011-02-26 11:41 Nirbheek Chauhan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox