summaryrefslogtreecommitdiff
path: root/extra/gdm
diff options
context:
space:
mode:
Diffstat (limited to 'extra/gdm')
-rw-r--r--extra/gdm/PKGBUILD54
-rwxr-xr-xextra/gdm/gdm36
-rw-r--r--extra/gdm/gdm-autologin.pam20
-rw-r--r--extra/gdm/gdm-fingerprint.pam20
-rw-r--r--extra/gdm/gdm-password.pam22
-rw-r--r--extra/gdm/gdm-smartcard.pam20
-rw-r--r--extra/gdm/gdm-vt-allocation-hack.patch118
-rw-r--r--extra/gdm/gdm-welcome.pam12
-rw-r--r--extra/gdm/gdm.pam10
-rw-r--r--extra/gdm/gdm.service10
10 files changed, 37 insertions, 285 deletions
diff --git a/extra/gdm/PKGBUILD b/extra/gdm/PKGBUILD
index 6bc85e9f8..471ef2a53 100644
--- a/extra/gdm/PKGBUILD
+++ b/extra/gdm/PKGBUILD
@@ -1,31 +1,26 @@
-# $Id: PKGBUILD 171020 2012-11-15 06:19:11Z heftig $
+# $Id: PKGBUILD 183315 2013-04-21 22:06:33Z heftig $
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Maintainer: Jan de Groot <jgc@archlinux.org>
-pkgname=gdm
-pkgver=3.6.2
+pkgbase=gdm
+pkgname=(gdm libgdm)
+pkgver=3.8.1.1
pkgrel=1
pkgdesc="Gnome Display Manager"
arch=('i686' 'x86_64' 'mips64el')
license=(GPL)
url="http://www.gnome.org"
-backup=(etc/pam.d/gdm-autologin etc/pam.d/gdm-fingerprint etc/pam.d/gdm-launch-environment
- etc/pam.d/gdm-password etc/pam.d/gdm-smartcard etc/gdm/custom.conf)
-groups=(gnome)
options=('!libtool')
-depends=(libcanberra gnome-session gnome-settings-daemon metacity upower accountsservice systemd
- xorg-xrdb nss polkit-gnome xorg-server gnome-icon-theme)
+depends=(gnome-shell gnome-session upower xorg-xrdb xorg-server)
makedepends=(itstool intltool gnome-doc-utils gobject-introspection)
-optdepends=('gnome-shell: new login interface'
- 'fprintd: fingerprint authentication')
-install=gdm.install
-source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz
+checkdepends=('check')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/${pkgver::3}/$pkgbase-$pkgver.tar.xz
fix_external_program_directories.patch)
-sha256sums=('fbf41bd68299eccdcf456c0869771999f75d3d9bf0f57ce1038db08b54e8cbb9'
+sha256sums=('16f8141040798ba00be0d718ba24cce927d6412b767d091f9ee5bf93f5800ba8'
'a878680734e35c1d66252cbcfe678c3961b5ff0fa16302f8796a5e7e65ffe4a2')
build() {
- cd "$pkgname-$pkgver"
+ cd $pkgbase-$pkgver
patch -Np1 -i "$srcdir/fix_external_program_directories.patch"
./configure \
@@ -45,14 +40,39 @@ build() {
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 -j1 # race condition building gdm-client.c, does not wait for gdm-client-glue.h
+ make
}
-package() {
- cd "$pkgname-$pkgver"
+check() {
+ cd $pkgbase-$pkgver
+ make check
+}
+
+package_gdm() {
+ depends+=(libgdm)
+ optdepends=('fprintd: fingerprint authentication')
+ backup=(etc/pam.d/gdm-autologin etc/pam.d/gdm-fingerprint etc/pam.d/gdm-launch-environment
+ etc/pam.d/gdm-password etc/pam.d/gdm-smartcard etc/gdm/custom.conf
+ etc/gdm/Xsession
+ etc/gdm/PostSession/Default etc/gdm/PreSession/Default)
+ groups=(gnome)
+ install=gdm.install
+
+ cd $pkgbase-$pkgver
make DESTDIR="$pkgdir" install
chmod 1770 "$pkgdir/var/log/gdm"
chmod 700 "$pkgdir/var/lib/gdm/.config/dconf"
rm -r "$pkgdir/var/run" "$pkgdir/var/gdm"
+
+### Split libgdm
+ make -C gui/libgdm DESTDIR="$pkgdir" uninstall
+}
+
+package_libgdm() {
+ pkgdesc="GDM support library"
+ depends=(systemd)
+
+ cd $pkgbase-$pkgver
+ make -C gui/libgdm DESTDIR="$pkgdir" install
}
diff --git a/extra/gdm/gdm b/extra/gdm/gdm
deleted file mode 100755
index c3e635a6d..000000000
--- a/extra/gdm/gdm
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-case "$1" in
- start)
- stat_busy "Starting GDM"
- /usr/sbin/gdm &
- if [ $? -gt 0 ]; then
- stat_fail
- else
-
- add_daemon gdm
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping GDM"
- [ -f /var/run/gdm.pid ] && kill `cat /var/run/gdm.pid` &> /dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm_daemon gdm
- stat_done
- fi
- ;;
- restart)
- $0 stop
- sleep 2
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
-esac
-exit 0
diff --git a/extra/gdm/gdm-autologin.pam b/extra/gdm/gdm-autologin.pam
deleted file mode 100644
index bc0193df0..000000000
--- a/extra/gdm/gdm-autologin.pam
+++ /dev/null
@@ -1,20 +0,0 @@
-#%PAM-1.0
-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_access.so
-account required pam_time.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
deleted file mode 100644
index 38fab5782..000000000
--- a/extra/gdm/gdm-fingerprint.pam
+++ /dev/null
@@ -1,20 +0,0 @@
-#%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_access.so
-account required pam_time.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
deleted file mode 100644
index eed5e1003..000000000
--- a/extra/gdm/gdm-password.pam
+++ /dev/null
@@ -1,22 +0,0 @@
-#%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_access.so
-account required pam_time.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 force 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
deleted file mode 100644
index c5c29e73f..000000000
--- a/extra/gdm/gdm-smartcard.pam
+++ /dev/null
@@ -1,20 +0,0 @@
-#%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_access.so
-account required pam_time.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-vt-allocation-hack.patch b/extra/gdm/gdm-vt-allocation-hack.patch
deleted file mode 100644
index 56fa5a151..000000000
--- a/extra/gdm/gdm-vt-allocation-hack.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c
-index 39def47..03488fd 100644
---- a/daemon/gdm-server.c
-+++ b/daemon/gdm-server.c
-@@ -33,6 +33,8 @@
- #include <grp.h>
- #include <signal.h>
- #include <sys/resource.h>
-+#include <sys/ioctl.h>
-+#include <sys/vt.h>
-
- #include <glib.h>
- #include <glib/gi18n.h>
-@@ -150,6 +152,92 @@ _gdm_server_query_ck_for_display_device (GdmServer *server)
- return out;
- }
-
-+#ifndef O_NOCTTY
-+# define O_NOCTTY 0
-+#endif
-+
-+static int
-+open_vt (int vtno)
-+{
-+ char *vtname;
-+ int fd;
-+
-+ vtname = g_strdup_printf ("/dev/tty%d", vtno);
-+
-+ do {
-+ errno = 0;
-+ fd = open (vtname, O_RDWR | O_NOCTTY, 0);
-+ } while (errno == EINTR);
-+
-+ g_free (vtname);
-+ return fd;
-+}
-+
-+static gint
-+find_first_probably_free_vt (void)
-+{
-+ int fd, fdv;
-+ int vtno;
-+ unsigned short vtmask;
-+ struct vt_stat vtstat;
-+ guint v_state;
-+
-+ fdv = -1;
-+
-+ do {
-+ errno = 0;
-+ fd = open ("/dev/console", O_WRONLY | O_NOCTTY, 0);
-+ } while (errno == EINTR);
-+
-+ if (fd >= 0) {
-+ if (ioctl (fd, VT_GETSTATE, &vtstat) >= 0) {
-+ v_state = vtstat.v_state;
-+ } else {
-+ close (fd);
-+ v_state = 0;
-+ fd = -1;
-+ }
-+ } else {
-+ v_state = 0;
-+ }
-+
-+ if (fd < 0) {
-+ do {
-+ errno = 0;
-+ fd = open ("/dev/console", O_RDONLY | O_NOCTTY, 0);
-+ } while (errno == EINTR);
-+
-+ if (fd >= 0) {
-+ if (ioctl (fd, VT_GETSTATE, &vtstat) >= 0)
-+ v_state = vtstat.v_state;
-+ }
-+ }
-+
-+ for (vtno = 7, vtmask = 1 << vtno; vtmask; vtno++, vtmask <<= 1) {
-+ /* Is this console in use? */
-+ if (v_state & vtmask)
-+ continue;
-+
-+ /* No, try to open it */
-+ fdv = open_vt (vtno);
-+ if (fdv >= 0)
-+ break;
-+
-+ /* If we're here, kernel indicated that the console was free,
-+ * but we failed to open it. Just go on to higher VTs. */
-+ }
-+
-+ if (fdv >= 0)
-+ close (fdv);
-+ else
-+ vtno = -1;
-+
-+ if (fd >= 0)
-+ close (fd);
-+
-+ return vtno;
-+}
-+
- char *
- gdm_server_get_display_device (GdmServer *server)
- {
-@@ -310,6 +398,11 @@ gdm_server_resolve_command_line (GdmServer *server,
-
- if (vtarg != NULL && ! gotvtarg) {
- argv[len++] = g_strdup (vtarg);
-+ } else if (!query_in_arglist && !gotvtarg) {
-+ gint vtnum = find_first_probably_free_vt ();
-+
-+ if (vtnum > 0)
-+ argv [len++] = g_strdup_printf ("vt%d", vtnum);
- }
-
- argv[len++] = NULL;
diff --git a/extra/gdm/gdm-welcome.pam b/extra/gdm/gdm-welcome.pam
deleted file mode 100644
index cc3811c19..000000000
--- a/extra/gdm/gdm-welcome.pam
+++ /dev/null
@@ -1,12 +0,0 @@
-#%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.pam b/extra/gdm/gdm.pam
deleted file mode 100644
index 655299cb7..000000000
--- a/extra/gdm/gdm.pam
+++ /dev/null
@@ -1,10 +0,0 @@
-#%PAM-1.0
-auth requisite pam_nologin.so
-auth required pam_env.so
-auth required pam_unix.so
-auth optional pam_gnome_keyring.so
-account required pam_unix.so
-session required pam_limits.so
-session required pam_unix.so
-session optional pam_gnome_keyring.so auto_start
-password required pam_unix.so
diff --git a/extra/gdm/gdm.service b/extra/gdm/gdm.service
deleted file mode 100644
index 0125934d6..000000000
--- a/extra/gdm/gdm.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=Gnome Display Manager
-After=systemd-user-sessions.service
-
-[Service]
-ExecStart=/usr/sbin/gdm -nodaemon
-Restart=always
-
-[Install]
-Alias=display-manager.service