summaryrefslogtreecommitdiff
path: root/extra/gdm
diff options
context:
space:
mode:
authorroot <root@rshg047.dnsready.net>2011-05-01 22:33:26 +0000
committerroot <root@rshg047.dnsready.net>2011-05-01 22:33:26 +0000
commit40f0b1c7106cc1fed13f14e80f083ecd69c416f5 (patch)
treefaeb03af48db54c663f74f3f188b9c1c56ca6a0b /extra/gdm
parentc173ac862828a54925737fc1d90ede1dd09a312c (diff)
Sun May 1 22:33:26 UTC 2011
Diffstat (limited to 'extra/gdm')
-rw-r--r--extra/gdm/2.91_fix_external_program_directories.patch48
-rw-r--r--extra/gdm/PKGBUILD42
-rw-r--r--extra/gdm/fix_crasher_with_gtk307.patch104
-rw-r--r--extra/gdm/gdm.install21
4 files changed, 176 insertions, 39 deletions
diff --git a/extra/gdm/2.91_fix_external_program_directories.patch b/extra/gdm/2.91_fix_external_program_directories.patch
new file mode 100644
index 000000000..912b5cdae
--- /dev/null
+++ b/extra/gdm/2.91_fix_external_program_directories.patch
@@ -0,0 +1,48 @@
+diff -Nur gdm-2.91.91.orig/daemon/gdm-server.c gdm-2.91.91/daemon/gdm-server.c
+--- gdm-2.91.91.orig/daemon/gdm-server.c 2011-02-17 19:27:53.000000000 -0800
++++ gdm-2.91.91/daemon/gdm-server.c 2011-02-27 16:56:51.283347074 -0800
+@@ -131,7 +131,7 @@
+ g_return_val_if_fail (GDM_IS_SERVER (server), NULL);
+
+ error = NULL;
+- command = g_strdup_printf (LIBEXECDIR "/ck-get-x11-display-device --display %s",
++ command = g_strdup_printf ("/usr/lib/ConsoleKit/ck-get-x11-display-device --display %s",
+ server->priv->display_name);
+
+ g_debug ("GdmServer: Running helper %s", command);
+diff -Nur gdm-2.91.91.orig/data/greeter-autostart/gnome-settings-daemon.desktop.in.in gdm-2.91.91/data/greeter-autostart/gnome-settings-daemon.desktop.in.in
+--- gdm-2.91.91.orig/data/greeter-autostart/gnome-settings-daemon.desktop.in.in 2011-02-17 19:27:53.000000000 -0800
++++ gdm-2.91.91/data/greeter-autostart/gnome-settings-daemon.desktop.in.in 2011-02-26 08:43:28.700009251 -0800
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+ Type=Application
+ _Name=GNOME Settings Daemon
+-TryExec=@LIBEXECDIR@/gnome-settings-daemon
+-Exec=@LIBEXECDIR@/gnome-settings-daemon
++TryExec=/usr/bin/gnome-settings-daemon
++Exec=/usr/bin/gnome-settings-daemon
+ OnlyShowIn=GNOME;
+ X-GNOME-Autostart-Phase=Initialization
+ X-GNOME-Autostart-Notify=true
+diff -Nur gdm-2.91.91.orig/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in gdm-2.91.91/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in
+--- gdm-2.91.91.orig/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in 2011-02-17 19:27:53.000000000 -0800
++++ gdm-2.91.91/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in 2011-02-26 08:44:06.810009153 -0800
+@@ -1,5 +1,5 @@
+ [Desktop Entry]
+ Type=Application
+ _Name=PolicyKit Authentication Agent
+-Exec=@LIBEXECDIR@/polkit-gnome-authentication-agent-1
++Exec=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+ OnlyShowIn=GNOME;
+diff -Nur gdm-2.91.91.orig/gui/simple-chooser/gdm-chooser-session.c gdm-2.91.91/gui/simple-chooser/gdm-chooser-session.c
+--- gdm-2.91.91.orig/gui/simple-chooser/gdm-chooser-session.c 2011-02-17 19:27:53.000000000 -0800
++++ gdm-2.91.91/gui/simple-chooser/gdm-chooser-session.c 2011-02-26 08:45:01.946675918 -0800
+@@ -131,7 +131,7 @@
+ ret = FALSE;
+
+ error = NULL;
+- g_spawn_command_line_async (LIBEXECDIR "/gnome-settings-daemon", &error);
++ g_spawn_command_line_async ("/usr/bin/gnome-settings-daemon", &error);
+ if (error != NULL) {
+ g_warning ("Error starting settings daemon: %s", error->message);
+ g_error_free (error);
diff --git a/extra/gdm/PKGBUILD b/extra/gdm/PKGBUILD
index b5a06693f..2248f184d 100644
--- a/extra/gdm/PKGBUILD
+++ b/extra/gdm/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 117177 2011-03-29 06:49:52Z ibiru $
+# $Id: PKGBUILD 119944 2011-04-17 09:10:01Z ibiru $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=gdm
-pkgver=2.32.1
-pkgrel=1
+pkgver=3.0.0
+pkgrel=3
pkgdesc="Gnome Display Manager (a reimplementation of xdm)"
arch=('i686' 'x86_64')
license=('GPL')
@@ -10,42 +10,43 @@ url="http://www.gnome.org"
backup=('etc/pam.d/gdm' 'etc/pam.d/gdm-autologin' 'etc/gdm/custom.conf')
groups=('gnome-extra')
options=('!libtool')
-depends=('libcanberra>=0.26' 'libxklavier>=5.0' 'tcp_wrappers' 'gnome-session>=2.32.1' 'upower>=0.9.7' 'consolekit>=0.4.1-4')
-makedepends=('intltool' 'gnome-doc-utils>=0.20.1' 'xorg-server' 'gnome-panel>=2.32.0')
-optdepends=('gnome-panel: needed for user switch applet')
+depends=('libcanberra' 'libxklavier' 'tcp_wrappers' 'gnome-session' 'upower' 'accountsservice' 'consolekit')
+makedepends=('intltool' 'gnome-doc-utils' 'xorg-server')
conflicts=('fast-user-switch-applet')
replaces=('fast-user-switch-applet')
install=gdm.install
-source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2
- 04_fix_external_program_directories.patch
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2
+ 2.91_fix_external_program_directories.patch
gdm-vt-allocation-hack.patch
- 0001-port-to-libpanel-applet-3.0.patch
- correctly-give-focus-to-user-chooser.patch
gdm.pam
gdm-autologin.pam
- gdm)
-sha256sums=('7ba9cb2a8efb9856994467b14e4837a281fcf6d9dc9a267ea38a9aae1ec55abc'
- 'cb585c39c6671387b5a25f21a99c97e3a20eaf4188fea1b62871681a1ebf8bff'
+ gdm
+ fix_crasher_with_gtk307.patch)
+sha256sums=('2d6443912272c0aa339a06b58d797cc11ce6b0854dadfcc027408f546da7aeff'
+ '92c5eb913b9556cffe9b5bb89e5c3435703e929addfb98145442f58af5d532c1'
'3c8b588d4af08d94dc93bcd5e4c2a983c3f4fbbbe40833bceac2a1df4f1e8215'
- '41ca4b2408d61776ab42c50834374a90664d43d33ad7034c7c52862d9bf3234a'
- 'ab6d9739c0cc3631d077a897291d6a38fea1c713a3647d008e2635f48c503cb4'
'f1dfa4d88288d4b0a631a68a51b46c2da537bee8fe5a99f9f288c8ff75a50b19'
'3daff680ff6b7ea56f84f40843e46e72477c81e9e405028203c942af04d07ae5'
- '272c08d8e8b50bf424d0705ac864d4c18c47ec4f6893b1af732c2efbc86c9550')
+ '272c08d8e8b50bf424d0705ac864d4c18c47ec4f6893b1af732c2efbc86c9550'
+ '6d08951919dcb1f928dd67c0b5a5c209b32464c2374ee7d2369ed8e914d541c9')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
- patch -Np1 -i "${srcdir}/04_fix_external_program_directories.patch"
+ patch -Np1 -i "${srcdir}/2.91_fix_external_program_directories.patch"
patch -Np1 -i "${srcdir}/gdm-vt-allocation-hack.patch"
- patch -Np1 -i "${srcdir}/0001-port-to-libpanel-applet-3.0.patch"
- patch -Np1 -i "${srcdir}/correctly-give-focus-to-user-chooser.patch"
- autoreconf -fi
+
+ #https://bugzilla.gnome.org/show_bug.cgi?id=646498
+ patch -Np1 -i "${srcdir}/fix_crasher_with_gtk307.patch"
./configure --prefix=/usr --sysconfdir=/etc \
--libexecdir=/usr/lib/gdm --localstatedir=/var --disable-static \
--with-at-spi-registryd-directory=/usr/lib/at-spi \
--disable-scrollkeeper
make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gdm ${pkgdir}/etc/gconf/schemas/*.schemas
@@ -59,4 +60,5 @@ build() {
rmdir "${pkgdir}/var/gdm"
chmod 1770 "${pkgdir}/var/log/gdm"
+ rm -rf "${pkgdir}/var/run"
}
diff --git a/extra/gdm/fix_crasher_with_gtk307.patch b/extra/gdm/fix_crasher_with_gtk307.patch
new file mode 100644
index 000000000..3b8379ea3
--- /dev/null
+++ b/extra/gdm/fix_crasher_with_gtk307.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/extra/gdm/gdm.install b/extra/gdm/gdm.install
index c2b5e375e..6cd981d77 100644
--- a/extra/gdm/gdm.install
+++ b/extra/gdm/gdm.install
@@ -2,31 +2,14 @@ pkgname=gdm
post_install() {
getent group gdm >/dev/null 2>&1 || groupadd -g 120 gdm
- if getent passwd gdm > /dev/null 2>&1; then
- usr/sbin/usermod -d /var/lib/gdm -c 'Gnome Display Manager' -s /sbin/nologin gdm > /dev/null 2>&1
- else
- usr/sbin/useradd -c 'Gnome Display Manager' -u 120 -g gdm -d /var/lib/gdm -s /sbin/nologin gdm
- fi
+ getent passwd gdm > /dev/null 2>&1 || usr/sbin/useradd -c 'Gnome Display Manager' -u 120 -g gdm -d /var/lib/gdm -s /sbin/nologin gdm
passwd -l gdm > /dev/null
- chown gdm:gdm /var/lib/gdm > /dev/null
- chown -R gdm:gdm /var/lib/gdm/.gconf.mandatory
+ chown -R gdm:gdm /var/lib/gdm > /dev/null
gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
gconfpkg --install ${pkgname}
}
-pre_upgrade() {
- if [ -f opt/gnome/etc/gdm/custom.conf ]; then
- mkdir -p etc/gdm
- sed -e 's|/opt/gnome/libexec|usr/lib/gdm|g' \
- -e 's|/opt/gnome/etc|/etc|g' \
- -e 's|/opt/gnome/|/usr/|g' \
- opt/gnome/etc/gdm/custom.conf > etc/gdm/custom.conf
- mv opt/gnome/etc/gdm/custom.conf opt/gnome/etc/gdm/custom.conf.pacsave
- fi
- pre_remove
-}
-
pre_remove() {
if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
gconfpkg --uninstall ${pkgname}