* [gentoo-commits] proj/gnome:gnome-next commit in: gnome-base/gdm/, gnome-base/gdm/files/, gnome-base/gdm/files/3.1.91-pam.d/
@ 2011-09-15 5:46 Alexandre Restovtsev
0 siblings, 0 replies; only message in thread
From: Alexandre Restovtsev @ 2011-09-15 5:46 UTC (permalink / raw
To: gentoo-commits
commit: ebc81295567d6f164dc604bfb7ad92ab18e5e699
Author: Alexandre Rostovtsev <tetromino <AT> gmail <DOT> com>
AuthorDate: Thu Sep 15 02:38:09 2011 +0000
Commit: Alexandre Restovtsev <tetromino <AT> gmail <DOT> com>
CommitDate: Thu Sep 15 05:21:28 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=ebc81295
gnome-base/gdm: 3.0.4 → 3.1.91
Version bump with numerous changes. Now with optional gnome-shell-based
chooser support. Added gentoo-appropriate PAM files for logging in using
fingerprint or smartcard, but due to lack of hardware, this functionality
is completely untested.
---
gnome-base/gdm/files/3.1.91-pam.d/gdm-fingerprint | 14 +++
gnome-base/gdm/files/3.1.91-pam.d/gdm-password | 11 ++
gnome-base/gdm/files/3.1.91-pam.d/gdm-smartcard | 15 +++
gnome-base/gdm/files/gdm-3.0.4-disable-a11y.patch | 21 ----
.../gdm/files/gdm-3.1.91-daemon-autologin.patch | 103 ++++++++++++++++++++
.../files/gdm-3.1.91-disable-accessibility.patch | 60 +++++++++++
.../gdm-3.1.91-gdm-slave-dbus_error_init.patch | 22 ++++
.../files/gdm-3.1.91-gdm-slave-memory-leak.patch | 21 ++++
...-3.1.91-hardcoded-gnome-session-path-env.patch} | 57 ++++++-----
.../gdm/{gdm-3.0.4-r2.ebuild => gdm-3.1.91.ebuild} | 67 +++++++++++---
10 files changed, 332 insertions(+), 59 deletions(-)
diff --git a/gnome-base/gdm/files/3.1.91-pam.d/gdm-fingerprint b/gnome-base/gdm/files/3.1.91-pam.d/gdm-fingerprint
new file mode 100644
index 0000000..7d38de9
--- /dev/null
+++ b/gnome-base/gdm/files/3.1.91-pam.d/gdm-fingerprint
@@ -0,0 +1,14 @@
+#%PAM-1.0
+# Note: no pam_gnome_keyring.so support since the login password is not used
+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 optional pam_permit.so
+
+account include system-login
+
+password required pam_deny.so
+
+session include system-auth
diff --git a/gnome-base/gdm/files/3.1.91-pam.d/gdm-password b/gnome-base/gdm/files/3.1.91-pam.d/gdm-password
new file mode 100644
index 0000000..d965eca
--- /dev/null
+++ b/gnome-base/gdm/files/3.1.91-pam.d/gdm-password
@@ -0,0 +1,11 @@
+#%PAM-1.0
+auth optional pam_env.so
+auth include system-login
+auth required pam_nologin.so
+
+account include system-login
+
+password include system-login
+
+session include system-auth
+#Keyring=session optional pam_gnome_keyring.so auto_start
diff --git a/gnome-base/gdm/files/3.1.91-pam.d/gdm-smartcard b/gnome-base/gdm/files/3.1.91-pam.d/gdm-smartcard
new file mode 100644
index 0000000..5cf884d
--- /dev/null
+++ b/gnome-base/gdm/files/3.1.91-pam.d/gdm-smartcard
@@ -0,0 +1,15 @@
+#%PAM-1.0
+auth optional pam_env.so
+auth required pam_tally2.so onerr=succeed
+auth required pam_shells.so
+auth required pam_nologin.so
+auth [success=done ignore=ignore default=die] pam_pkcs11.so wait_for_card card_only
+auth optional pam_permit.so
+
+account include system-login
+
+password optional pam_pkcs11.so
+password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
+password optional pam_permit.so
+
+session include system-auth
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
deleted file mode 100644
index 94d83af..0000000
--- a/gnome-base/gdm/files/gdm-3.0.4-disable-a11y.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-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.1.91-daemon-autologin.patch b/gnome-base/gdm/files/gdm-3.1.91-daemon-autologin.patch
new file mode 100644
index 0000000..71a4546
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-3.1.91-daemon-autologin.patch
@@ -0,0 +1,103 @@
+From aad28c8bce222e9d5461c3b35dbf5f9eb4a86e82 Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode@redhat.com>
+Date: Tue, 13 Sep 2011 14:26:59 +0000
+Subject: daemon: fix autologin
+
+In commit 6849f6f3b8a199bed5427b8d6f1e2dedbe035d6c
+the code was changed to stop the greeter asynchronously
+and start the session following its completion.
+
+Autologin doesn't have a greeter though, so this broke
+it.
+
+This commit fixes autologin.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=658899
+---
+diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c
+index 2f38bf6..ab69194 100644
+--- a/daemon/gdm-simple-slave.c
++++ b/daemon/gdm-simple-slave.c
+@@ -108,6 +108,7 @@ G_DEFINE_TYPE (GdmSimpleSlave, gdm_simple_slave, GDM_TYPE_SLAVE)
+ static void create_new_session (GdmSimpleSlave *slave);
+ static void destroy_session (GdmSimpleSlave *slave);
+ static void start_greeter (GdmSimpleSlave *slave);
++static void start_session (GdmSimpleSlave *slave);
+ static void queue_start_session (GdmSimpleSlave *slave,
+ const char *service_name);
+
+@@ -449,6 +450,29 @@ stop_greeter (GdmSimpleSlave *slave)
+ gdm_welcome_session_stop (GDM_WELCOME_SESSION (slave->priv->greeter));
+ }
+
++static void
++start_session (GdmSimpleSlave *slave)
++{
++ char *auth_file;
++ auth_file = NULL;
++ add_user_authorization (slave, &auth_file);
++
++ g_assert (auth_file != NULL);
++
++ g_object_set (slave->priv->session,
++ "user-x11-authority-file", auth_file,
++ NULL);
++
++ g_free (auth_file);
++
++ gdm_session_start_session (GDM_SESSION (slave->priv->session),
++ slave->priv->start_session_service_name);
++
++ slave->priv->start_session_id = 0;
++ g_free (slave->priv->start_session_service_name);
++ slave->priv->start_session_service_name = NULL;
++}
++
+ static gboolean
+ start_session_timeout (GdmSimpleSlave *slave)
+ {
+@@ -472,8 +496,13 @@ start_session_timeout (GdmSimpleSlave *slave)
+ g_free (slave->priv->start_session_service_name);
+ slave->priv->start_session_service_name = NULL;
+ } else {
+- /* Session actually gets started from on_greeter_session_stopped */
+- stop_greeter (slave);
++ if (slave->priv->greeter == NULL) {
++ /* auto login */
++ start_session (slave);
++ } else {
++ /* Session actually gets started from on_greeter_session_stop */
++ stop_greeter (slave);
++ }
+ }
+
+ return FALSE;
+@@ -972,25 +1001,7 @@ on_greeter_session_stop (GdmGreeterSession *greeter,
+ gdm_slave_stopped (GDM_SLAVE (slave));
+ } else {
+ gdm_greeter_server_stop (slave->priv->greeter_server);
+-
+- char *auth_file;
+- auth_file = NULL;
+- add_user_authorization (slave, &auth_file);
+-
+- g_assert (auth_file != NULL);
+-
+- g_object_set (slave->priv->session,
+- "user-x11-authority-file", auth_file,
+- NULL);
+-
+- g_free (auth_file);
+-
+- gdm_session_start_session (GDM_SESSION (slave->priv->session),
+- slave->priv->start_session_service_name);
+-
+- slave->priv->start_session_id = 0;
+- g_free (slave->priv->start_session_service_name);
+- slave->priv->start_session_service_name = NULL;
++ start_session (slave);
+ }
+
+ g_object_unref (slave->priv->greeter);
+--
+cgit v0.9.0.2
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
new file mode 100644
index 0000000..54bc4a7
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-3.1.91-disable-accessibility.patch
@@ -0,0 +1,60 @@
+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.1.91-gdm-slave-dbus_error_init.patch b/gnome-base/gdm/files/gdm-3.1.91-gdm-slave-dbus_error_init.patch
new file mode 100644
index 0000000..201359b
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-3.1.91-gdm-slave-dbus_error_init.patch
@@ -0,0 +1,22 @@
+From b8f1c67f7db3f86f631420b057ae08fc5f053819 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart@poettering.net>
+Date: Tue, 26 Jul 2011 01:11:20 +0000
+Subject: gdm-slave: fix double dbus_error_init()
+
+https://bugzilla.gnome.org/show_bug.cgi?id=655380
+---
+diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c
+index fad7c96..e7553ad 100644
+--- a/daemon/gdm-slave.c
++++ b/daemon/gdm-slave.c
+@@ -1376,8 +1376,6 @@ activate_session_id (GdmSlave *slave,
+ goto out;
+ }
+
+-
+- dbus_error_init (&local_error);
+ reply = dbus_connection_send_with_reply_and_block (dbus_g_connection_get_connection (slave->priv->connection),
+ message,
+ -1,
+--
+cgit v0.9.0.2
diff --git a/gnome-base/gdm/files/gdm-3.1.91-gdm-slave-memory-leak.patch b/gnome-base/gdm/files/gdm-3.1.91-gdm-slave-memory-leak.patch
new file mode 100644
index 0000000..a61f4f9
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-3.1.91-gdm-slave-memory-leak.patch
@@ -0,0 +1,21 @@
+From b669aa14d85a0d011fd25093f8e4f4da531ee679 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart@poettering.net>
+Date: Tue, 26 Jul 2011 01:10:36 +0000
+Subject: gdm-slave: fix memory leak
+
+https://bugzilla.gnome.org/show_bug.cgi?id=655380
+---
+diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c
+index 2dc0323..fad7c96 100644
+--- a/daemon/gdm-slave.c
++++ b/daemon/gdm-slave.c
+@@ -1432,6 +1432,7 @@ session_unlock (GdmSlave *slave,
+
+ if (dbus_error_is_set (&error)) {
+ g_debug ("GdmSlave: ConsoleKit %s raised:\n %s\n\n", error.name, error.message);
++ dbus_error_free (&error);
+ return FALSE;
+ }
+
+--
+cgit v0.9.0.2
diff --git a/gnome-base/gdm/files/gdm-3.0.4-hardcoded-gnome-session-path-env.patch b/gnome-base/gdm/files/gdm-3.1.91-hardcoded-gnome-session-path-env.patch
similarity index 80%
rename from gnome-base/gdm/files/gdm-3.0.4-hardcoded-gnome-session-path-env.patch
rename to gnome-base/gdm/files/gdm-3.1.91-hardcoded-gnome-session-path-env.patch
index 50564de..6e2054b 100644
--- a/gnome-base/gdm/files/gdm-3.0.4-hardcoded-gnome-session-path-env.patch
+++ b/gnome-base/gdm/files/gdm-3.1.91-hardcoded-gnome-session-path-env.patch
@@ -1,8 +1,8 @@
-From ece7e78e3ef5278382acbf8258950c8607a5d7df Mon Sep 17 00:00:00 2001
+From 791fb64fbf7d4752c4e607708739f627f09b71e2 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
+Subject: [PATCH 1/2] 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
@@ -23,28 +23,28 @@ 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(-)
+ daemon/gdm-welcome-session.c | 44 ++++++++++++++++++++++++++---------------
+ 2 files changed, 29 insertions(+), 17 deletions(-)
diff --git a/daemon/gdm-greeter-session.c b/daemon/gdm-greeter-session.c
-index a401508..7429314 100644
+index 8032065..73653b9 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,
+@@ -78,7 +78,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/",
+- "command", BINDIR "/gnome-session -f --debug",
++ "command", "gnome-session -f --debug",
"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
+index 41144a8..ff11da9 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;
+@@ -238,32 +238,28 @@ build_welcome_environment (GdmWelcomeSession *welcome_session,
+ {
GHashTable *hash;
struct passwd *pwent;
- static const char * const optional_environment[] = {
@@ -52,20 +52,20 @@ index b8ec8d7..d0e6030 100644
"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",
+ "LC_IDENTIFICATION", "LC_ALL", "WINDOWPATH",
NULL
};
+ static const char * const drop_environment[] = {
+ "MAIL", NULL
+ };
+ char **curr_environment;
+ char *system_data_dirs;
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.
@@ -82,10 +82,10 @@ index b8ec8d7..d0e6030 100644
- 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,
+ system_data_dirs = g_strjoinv (":", (char **) g_get_system_data_dirs ());
+
+ g_hash_table_insert (hash,
+@@ -292,7 +288,6 @@ build_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));
@@ -93,12 +93,12 @@ index b8ec8d7..d0e6030 100644
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,
+@@ -318,12 +313,28 @@ build_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"));
@@ -119,14 +119,19 @@ index b8ec8d7..d0e6030 100644
+ 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 hash;
+ }
+
+@@ -337,6 +348,7 @@ get_welcome_environment (GdmWelcomeSession *welcome_session,
+ hash = build_welcome_environment (welcome_session, start_session);
+
+ env = g_ptr_array_new ();
++
+ g_hash_table_foreach (hash, (GHFunc)listify_hash, env);
+ g_hash_table_destroy (hash);
- return env;
--
-1.7.6
+1.7.6.1
diff --git a/gnome-base/gdm/gdm-3.0.4-r2.ebuild b/gnome-base/gdm/gdm-3.1.91.ebuild
similarity index 74%
rename from gnome-base/gdm/gdm-3.0.4-r2.ebuild
rename to gnome-base/gdm/gdm-3.1.91.ebuild
index 4fabce8..8d692ea 100644
--- a/gnome-base/gdm/gdm-3.0.4-r2.ebuild
+++ b/gnome-base/gdm/gdm-3.1.91.ebuild
@@ -15,7 +15,7 @@ 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"
+IUSE="accessibility +consolekit fprint +gnome-shell ipv6 gnome-keyring +introspection selinux smartcard tcpd test xinerama +xklavier $IUSE_LIBC"
# Name of the tarball with gentoo specific files
GDM_EXTRA="${PN}-2.20.9-gentoo-files-r1"
@@ -24,11 +24,15 @@ SRC_URI="${SRC_URI}
mirror://gentoo/${GDM_EXTRA}.tar.bz2"
# 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
COMMON_DEPEND="
>=dev-libs/dbus-glib-0.74
- >=dev-libs/glib-2.27.4:2
+ >=dev-libs/glib-2.29.3:2
>=x11-libs/gtk+-2.91.1:3
>=x11-libs/pango-1.3
+ dev-libs/nspr
+ >=dev-libs/nss-3.11.1
>=media-libs/fontconfig-2.5.0
>=media-libs/libcanberra-0.4[gtk3]
>=gnome-base/gconf-2.31.3
@@ -36,6 +40,11 @@ COMMON_DEPEND="
>=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
@@ -53,6 +62,7 @@ COMMON_DEPEND="
accessibility? ( x11-libs/libXevie )
gnome-keyring? ( >=gnome-base/gnome-keyring-2.22[pam] )
+ introspection? ( >=dev-libs/gobject-introspection-0.9.12 )
selinux? ( sys-libs/libselinux )
tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
xinerama? ( x11-libs/libXinerama )
@@ -68,15 +78,26 @@ DEPEND="${COMMON_DEPEND}
>=dev-util/pkgconfig-0.19
>=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
+# 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
- >=gnome-base/gnome-settings-daemon-2.91
- x11-wm/metacity
- accessibility? ( gnome-extra/at-spi:1 )
+ accessibility? (
+ app-accessibility/gnome-mag
+ app-accessibility/gok
+ app-accessibility/orca
+ gnome-extra/at-spi:1 )
consolekit? ( gnome-extra/polkit-gnome )
+ fprint? (
+ sys-auth/fprintd
+ sys-auth/pam_fprint )
+ gnome-shell? ( >=gnome-base/gnome-shell-3.1.90 )
+ !gnome-shell? ( x11-wm/metacity )
+ smartcard? (
+ app-crypt/coolkey
+ sys-auth/pam_pkcs11 )
!gnome-extra/fast-user-switch-applet"
@@ -85,11 +106,13 @@ pkg_setup() {
# PAM is the only auth scheme supported
# even though configure lists shadow and crypt
- # they don't have any corresponding code
+ # 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-maintainer-mode
+ --disable-static
--localstatedir=${EPREFIX}/var
--with-xdmcp=yes
--enable-authentication-scheme=pam
@@ -129,10 +152,26 @@ src_prepare() {
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"
+ epatch "${FILESDIR}/${PN}-3.1.91-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"
+ 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
+
+ # 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
+ fi
+
+ # Useful upstream patches, will be in next release
+ epatch "${FILESDIR}/${P}-gdm-slave-memory-leak.patch"
+ epatch "${FILESDIR}/${P}-gdm-slave-dbus_error_init.patch"
+ epatch "${FILESDIR}/${P}-daemon-autologin.patch"
mkdir -p "${S}"/m4
intltoolize --force --copy --automake || die "intltoolize failed"
@@ -147,7 +186,6 @@ src_install() {
# 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 "${ED}/usr/sbin/gdm"
ln -sfn /usr/sbin/gdm-binary "${ED}/usr/sbin/gdm"
@@ -166,9 +204,14 @@ src_install() {
echo 'XDG_DATA_DIRS="/usr/share/gdm"' > 99xdg-gdm
doenvd 99xdg-gdm || die "doenvd failed"
+ # install PAM files
+ cp "${FILESDIR}"/3.1.91-pam.d/gdm-{password,fingerprint,smartcard} \
+ "${gentoodir}"/pam.d/
use gnome-keyring && sed -i "s:#Keyring=::g" "${gentoodir}"/pam.d/*
- dopamd "${gentoodir}"/pam.d/gdm{,-autologin}
+ dopamd "${gentoodir}"/pam.d/gdm{,-autologin,-password,-fingerprint,-smartcard}
+ # gdm-welcome is the PAM file for the gdm greeter itself
+ pamd_mimic system-services gdm-welcome auth account session
}
pkg_postinst() {
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2011-09-15 5:46 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-15 5:46 [gentoo-commits] proj/gnome:gnome-next commit in: gnome-base/gdm/, gnome-base/gdm/files/, gnome-base/gdm/files/3.1.91-pam.d/ Alexandre Restovtsev
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox