From ad84169d66d20378d28533c216b73c9a6646d6d7 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 2 Oct 2011 23:14:32 +0000 Subject: Sun Oct 2 23:14:32 UTC 2011 --- extra/gdm/PKGBUILD | 55 +++++++++++++----------- extra/gdm/check-for-shell.patch | 26 +++++++++++ extra/gdm/fix_external_program_directories.patch | 34 +++++++++++++++ extra/gdm/gdm-autologin.pam | 24 ++++++++--- extra/gdm/gdm-fingerprint.pam | 18 ++++++++ extra/gdm/gdm-password.pam | 20 +++++++++ extra/gdm/gdm-smartcard.pam | 18 ++++++++ extra/gdm/gdm-welcome.pam | 12 ++++++ extra/gdm/gdm.install | 2 + 9 files changed, 178 insertions(+), 31 deletions(-) create mode 100644 extra/gdm/check-for-shell.patch create mode 100644 extra/gdm/fix_external_program_directories.patch create mode 100644 extra/gdm/gdm-fingerprint.pam create mode 100644 extra/gdm/gdm-password.pam create mode 100644 extra/gdm/gdm-smartcard.pam create mode 100644 extra/gdm/gdm-welcome.pam (limited to 'extra/gdm') diff --git a/extra/gdm/PKGBUILD b/extra/gdm/PKGBUILD index cb697cfd8..ec6fcff81 100644 --- a/extra/gdm/PKGBUILD +++ b/extra/gdm/PKGBUILD @@ -1,45 +1,53 @@ -# $Id: PKGBUILD 131658 2011-07-13 12:36:38Z ibiru $ +# $Id: PKGBUILD 139472 2011-10-02 01:28:00Z ibiru $ # Maintainer: Jan de Groot + pkgname=gdm -pkgver=3.0.4 +pkgver=3.2.0 pkgrel=2 pkgdesc="Gnome Display Manager (a reimplementation of xdm)" arch=('i686' 'x86_64') license=('GPL') url="http://www.gnome.org" -backup=('etc/pam.d/gdm' 'etc/pam.d/gdm-autologin' 'etc/gdm/custom.conf') +backup=('etc/pam.d/gdm-autologin' 'etc/pam.d/gdm-fingerprint' 'etc/pam.d/gdm' 'etc/pam.d/gdm-password' + 'etc/pam.d/gdm-smartcard' 'etc/pam.d/gdm-welcome' 'etc/gdm/custom.conf') groups=('gnome-extra') options=('!libtool') -depends=('libcanberra' 'libxklavier' 'gnome-session' 'upower' 'accountsservice' 'consolekit' 'xorg-xrdb') -makedepends=('intltool' 'gnome-doc-utils' 'xorg-server') -conflicts=('fast-user-switch-applet') -replaces=('fast-user-switch-applet') +depends=('libcanberra' 'libxklavier' 'gnome-session' 'gnome-settings-daemon' 'metacity' 'upower' 'accountsservice' 'consolekit' 'xorg-xrdb' 'nss') +makedepends=('intltool' 'gnome-doc-utils' 'xorg-server' 'gobject-introspection') +optdepends=('gnome-shell: new login interface') install=gdm.install source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz - 2.91_fix_external_program_directories.patch + fix_external_program_directories.patch gdm-vt-allocation-hack.patch - gdm.pam - gdm-autologin.pam - gdm) -sha256sums=('7d2947fbc96c43cc94fd5915882655820c5453a1b1b11643b3c1be361f4288fd' - '92c5eb913b9556cffe9b5bb89e5c3435703e929addfb98145442f58af5d532c1' + gdm + gdm-autologin.pam gdm-fingerprint.pam gdm.pam gdm-password.pam gdm-smartcard.pam gdm-welcome.pam + check-for-shell.patch::http://git.gnome.org/browse/gdm/patch/?id=64e6b10f98fe7226a2f41807268dae3afa80236d) +sha256sums=('f827f5500827acef94ad2d60f02ec489bc35cb6392d8f4a60ec814599c2991b7' + '2014ae3a6077546f7c07e80a6acc8a1c80c6765ad319ec389f52500c5a4fb363' '3c8b588d4af08d94dc93bcd5e4c2a983c3f4fbbbe40833bceac2a1df4f1e8215' + '272c08d8e8b50bf424d0705ac864d4c18c47ec4f6893b1af732c2efbc86c9550' + 'b30dfa217718b43ff3aa4e8af08985963175b79ff30698ec54e8396d2905922d' + '5bc3ff3ea7b31219dfcb7d9fc0eb2819eca1c5573a0f426d288a17560a69633e' 'f1dfa4d88288d4b0a631a68a51b46c2da537bee8fe5a99f9f288c8ff75a50b19' - '3daff680ff6b7ea56f84f40843e46e72477c81e9e405028203c942af04d07ae5' - '272c08d8e8b50bf424d0705ac864d4c18c47ec4f6893b1af732c2efbc86c9550') + '0dbb37b4e2a2a2dd2305f0f69cf32d63d353d34aacaf805d2c2ec52fbe558bb4' + 'df74b0dcfb17ea43cc1e268a27cd256c552672457db1af40b285452d16b3e2fd' + '39bf3824cc505043dc3136356da16dab9df9f369f1077435a324be2ac16cf834' + 'ae54f11e593e97e031d2dd7b33ce9899038356cef87b354f3c4c596a3153155d') build() { cd "${srcdir}/${pkgname}-${pkgver}" - patch -Np1 -i "${srcdir}/2.91_fix_external_program_directories.patch" + patch -Np1 -i "${srcdir}/check-for-shell.patch" + patch -Np1 -i "${srcdir}/fix_external_program_directories.patch" patch -Np1 -i "${srcdir}/gdm-vt-allocation-hack.patch" ./configure --prefix=/usr --sysconfdir=/etc \ --libexecdir=/usr/lib/gdm \ --localstatedir=/var \ - --with-at-spi-registryd-directory=/usr/lib/at-spi \ + --with-at-spi-registryd-directory=/usr/lib/at-spi2-core \ --disable-scrollkeeper \ --disable-static \ --without-tcp-wrappers + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' -e 's/ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/ func_append compile_command " -Wl,-O1,--as-needed"\n func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool make } @@ -48,15 +56,14 @@ package() { 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 - rm -r "${pkgdir}/etc/gconf/schemas/" - install -m644 "${srcdir}/gdm.pam" "${pkgdir}/etc/pam.d/gdm" - install -m644 "${srcdir}/gdm-autologin.pam" "${pkgdir}/etc/pam.d/gdm-autologin" + for i in gdm-autologin.pam gdm-fingerprint.pam gdm.pam gdm-password.pam gdm-smartcard.pam gdm-welcome.pam;do + install -m644 "${srcdir}/${i}" "${pkgdir}/etc/pam.d/${i%.pam}" + done - install -m755 -d "${pkgdir}/etc/rc.d" - install -m755 "${srcdir}/gdm" "${pkgdir}/etc/rc.d/" + install -Dm755 "${srcdir}/gdm" "${pkgdir}/etc/rc.d/gdm" - rmdir "${pkgdir}/var/gdm" chmod 1770 "${pkgdir}/var/log/gdm" - rm -rf "${pkgdir}/var/run" + chmod 700 "${pkgdir}/var/lib/gdm/.config/dconf" + rm -rf "${pkgdir}/var/run" "${pkgdir}/var/gdm" "${pkgdir}/etc/gconf" } diff --git a/extra/gdm/check-for-shell.patch b/extra/gdm/check-for-shell.patch new file mode 100644 index 000000000..f3ac9cf9a --- /dev/null +++ b/extra/gdm/check-for-shell.patch @@ -0,0 +1,26 @@ +From 64e6b10f98fe7226a2f41807268dae3afa80236d Mon Sep 17 00:00:00 2001 +From: György Balló +Date: Fri, 30 Sep 2011 21:48:40 +0000 +Subject: data: add back check for gnome-shell before running gdm-shell session + +Add back commit 4892c9447324f2248ce944f150abe3143f78eaa3 + +This commit does a quick check to make sure gnome-shell is +installed, and supports --gdm-mode. If either of those fail, +then fall back to the old greeter. + +https://bugzilla.gnome.org/show_bug.cgi?id=660409 +--- +diff --git a/data/gdm-shell.session.in b/data/gdm-shell.session.in +index 3d408c3..496cc10 100644 +--- a/data/gdm-shell.session.in ++++ b/data/gdm-shell.session.in +@@ -1,5 +1,5 @@ + [GNOME Session] + Name=Display Manager + RequiredComponents=gnome-shell;gnome-settings-daemon; +-IsRunnableHelper=@libexecdir@/gnome-session-check-accelerated ++IsRunnableHelper=bash -c 'gnome-shell --help | grep -q gdm-mode && @libexecdir@/gnome-session-check-accelerated' + FallbackSession=gdm-fallback +-- +cgit v0.9.0.2 diff --git a/extra/gdm/fix_external_program_directories.patch b/extra/gdm/fix_external_program_directories.patch new file mode 100644 index 000000000..997ea5405 --- /dev/null +++ b/extra/gdm/fix_external_program_directories.patch @@ -0,0 +1,34 @@ +diff -Nur gdm-3.2.0.orig/daemon/gdm-server.c gdm-3.2.0/daemon/gdm-server.c +--- gdm-3.2.0.orig/daemon/gdm-server.c 2011-10-02 01:13:37.772372528 +0000 ++++ gdm-3.2.0/daemon/gdm-server.c 2011-10-02 01:14:58.036444496 +0000 +@@ -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-3.2.0.orig/data/gdm-shell.session.in gdm-3.2.0/data/gdm-shell.session.in +--- gdm-3.2.0.orig/data/gdm-shell.session.in 2011-10-02 01:17:01.394246573 +0000 ++++ gdm-3.2.0/data/gdm-shell.session.in 2011-10-02 01:16:22.210552560 +0000 +@@ -1,5 +1,5 @@ + [GNOME Session] + Name=Display Manager + RequiredComponents=gnome-shell;gnome-settings-daemon; +-IsRunnableHelper=bash -c 'gnome-shell --help | grep -q gdm-mode && @libexecdir@/gnome-session-check-accelerated' ++IsRunnableHelper=bash -c 'gnome-shell --help | grep -q gdm-mode && /usr/lib/gnome-session/gnome-session-check-accelerated' + FallbackSession=gdm-fallback +diff -Nur gdm-3.2.0.orig/gui/simple-chooser/gdm-chooser-session.c gdm-3.2.0/gui/simple-chooser/gdm-chooser-session.c +--- gdm-3.2.0.orig/gui/simple-chooser/gdm-chooser-session.c 2011-10-02 01:13:37.775705892 +0000 ++++ gdm-3.2.0/gui/simple-chooser/gdm-chooser-session.c 2011-10-02 01:14:58.036444496 +0000 +@@ -131,7 +131,7 @@ + ret = FALSE; + + error = NULL; +- g_spawn_command_line_async (LIBEXECDIR "/gnome-settings-daemon", &error); ++ g_spawn_command_line_async ("/usr/lib/gnome-settings-daemon/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/gdm-autologin.pam b/extra/gdm/gdm-autologin.pam index 7c2f9a985..c77c78917 100644 --- a/extra/gdm/gdm-autologin.pam +++ b/extra/gdm/gdm-autologin.pam @@ -1,8 +1,18 @@ #%PAM-1.0 -auth requisite pam_nologin.so -auth required pam_env.so -auth required pam_permit.so -account required pam_unix.so -password required pam_unix.so -session required pam_limits.so -session required pam_unix.so +auth requisite pam_nologin.so +auth required pam_env.so + +auth requisite pam_permit.so + +auth sufficient pam_succeed_if.so uid >= 1000 quiet +auth required pam_deny.so + +account required pam_unix.so + +password required pam_deny.so + +session required pam_loginuid.so +-session optional pam_systemd.so +session optional pam_keyinit.so revoke +session required pam_limits.so +session required pam_unix.so diff --git a/extra/gdm/gdm-fingerprint.pam b/extra/gdm/gdm-fingerprint.pam new file mode 100644 index 000000000..5b74bf6d6 --- /dev/null +++ b/extra/gdm/gdm-fingerprint.pam @@ -0,0 +1,18 @@ +#%PAM-1.0 +auth requisite pam_nologin.so +auth required pam_env.so + +auth requisite pam_fprintd.so + +auth sufficient pam_succeed_if.so uid >= 1000 quiet +auth required pam_deny.so + +account required pam_unix.so + +password required pam_deny.so + +session required pam_loginuid.so +-session optional pam_systemd.so +session optional pam_keyinit.so revoke +session required pam_limits.so +session required pam_unix.so diff --git a/extra/gdm/gdm-password.pam b/extra/gdm/gdm-password.pam new file mode 100644 index 000000000..7beda835a --- /dev/null +++ b/extra/gdm/gdm-password.pam @@ -0,0 +1,20 @@ +#%PAM-1.0 +auth requisite pam_nologin.so +auth required pam_env.so + +auth requisite pam_unix.so nullok +auth optional pam_gnome_keyring.so + +auth sufficient pam_succeed_if.so uid >= 1000 quiet +auth required pam_deny.so + +account required pam_unix.so + +password required pam_unix.so + +session required pam_loginuid.so +-session optional pam_systemd.so +session optional pam_keyinit.so revoke +session required pam_limits.so +session required pam_unix.so +session optional pam_gnome_keyring.so auto_start diff --git a/extra/gdm/gdm-smartcard.pam b/extra/gdm/gdm-smartcard.pam new file mode 100644 index 000000000..baacb8bed --- /dev/null +++ b/extra/gdm/gdm-smartcard.pam @@ -0,0 +1,18 @@ +#%PAM-1.0 +auth requisite pam_nologin.so +auth required pam_env.so + +auth requisite pam_pkcs11.so wait_for_card card_only + +auth sufficient pam_succeed_if.so uid >= 1000 quiet +auth required pam_deny.so + +account required pam_unix.so + +password required pam_pkcs11.so + +session required pam_loginuid.so +-session optional pam_systemd.so +session optional pam_keyinit.so revoke +session required pam_limits.so +session required pam_unix.so diff --git a/extra/gdm/gdm-welcome.pam b/extra/gdm/gdm-welcome.pam new file mode 100644 index 000000000..cc3811c19 --- /dev/null +++ b/extra/gdm/gdm-welcome.pam @@ -0,0 +1,12 @@ +#%PAM-1.0 +auth required pam_env.so +auth required pam_permit.so + +account required pam_nologin.so +account required pam_unix.so + +password required pam_deny.so + +session required pam_loginuid.so +-session optional pam_systemd.so +session optional pam_keyinit.so force revoke diff --git a/extra/gdm/gdm.install b/extra/gdm/gdm.install index 6cd981d77..b9732be50 100644 --- a/extra/gdm/gdm.install +++ b/extra/gdm/gdm.install @@ -8,6 +8,7 @@ post_install() { gtk-update-icon-cache -q -t -f usr/share/icons/hicolor gconfpkg --install ${pkgname} + glib-compile-schemas usr/share/glib-2.0/schemas } pre_remove() { @@ -21,6 +22,7 @@ post_upgrade() { } post_remove() { + glib-compile-schemas usr/share/glib-2.0/schemas gtk-update-icon-cache -q -t -f usr/share/icons/hicolor getent passwd gdm >/dev/null 2>&1 && userdel gdm getent group gdm >/dev/null 2>&1 && groupdel gdm -- cgit v1.2.3-54-g00ecf