gdm: update to 3.6.0.

This commit is contained in:
Juan RP 2012-09-26 05:54:43 +02:00
parent cfde1d0750
commit 1f2189d388
10 changed files with 47 additions and 152 deletions

View file

@ -783,8 +783,6 @@ liblcms2.so.2 lcms2-2.2_1
libcolord.so.1 colord-0.1.12_1 libcolord.so.1 colord-0.1.12_1
libnm-gtk.so.0 libnm-gtk-0.9.1.95_1 libnm-gtk.so.0 libnm-gtk-0.9.1.95_1
libcaribou.so.0 caribou-0.4.0_1 libcaribou.so.0 caribou-0.4.0_1
libgdmgreeter.so.1 gdm-3.2.0_1
libgdmsimplegreeter.so.1 gdm-3.2.0_1
libgupnp-av-1.0.so.2 gupnp-av-0.10.0_1 libgupnp-av-1.0.so.2 gupnp-av-0.10.0_1
libgrilo-0.1.so.0 grilo-0.1.17_1 libgrilo-0.1.so.0 grilo-0.1.17_1
libgrlnet-0.1.so.0 grilo-0.1.17_1 libgrlnet-0.1.so.0 grilo-0.1.17_1
@ -1049,3 +1047,5 @@ libgnome-bluetooth.so.11 gnome-bluetooth-3.6.0_1
libxapian.so.22 libxapian-1.2.12_1 libxapian.so.22 libxapian-1.2.12_1
libzeitgeist-1.0.so.1 libzeitgeist-0.3.18_1 libzeitgeist-1.0.so.1 libzeitgeist-0.3.18_1
libcolord-gtk.so.1 colord-gtk-0.1.23_1 libcolord-gtk.so.1 colord-gtk-0.1.23_1
libgdm.so.1 libgdm-3.6.0_1
libgdmsimplegreeter.so.1 gdm-3.6.0_1

View file

@ -1,10 +0,0 @@
[Unit]
Description=Gnome Display Manager
Conflicts=getty@tty1.service
After=systemd-user-sessions.service getty@tty1.service
[Service]
ExecStart=/usr/sbin/gdm -nodaemon
[Install]
Alias=display-manager.service

View file

@ -1,5 +1,6 @@
# Template file for 'gdm-devel'. # Template file for 'gdm-devel'.
# #
depends="libgdm>=${version}"
short_desc="${sourcepkg} (development files)" short_desc="${sourcepkg} (development files)"
long_desc="${long_desc} long_desc="${long_desc}

View file

@ -5,9 +5,6 @@ libpthread.so.0
libc.so.6 libc.so.6
libX11.so.6 libX11.so.6
libXrandr.so.2 libXrandr.so.2
libdbus-glib-1.so.2
libdbus-1.so.3
libxklavier.so.16
libgobject-2.0.so.0 libgobject-2.0.so.0
libXau.so.6 libXau.so.6
libpam.so.0 libpam.so.0
@ -27,6 +24,6 @@ libXdmcp.so.6
libatk-1.0.so.0 libatk-1.0.so.0
libpangocairo-1.0.so.0 libpangocairo-1.0.so.0
libcairo-gobject.so.2 libcairo-gobject.so.2
libfontconfig.so.1
libcanberra-gtk3.so.0 libcanberra-gtk3.so.0
libcanberra.so.0 libcanberra.so.0
libgdm.so.1

View file

@ -0,0 +1,15 @@
libgio-2.0.so.0
libgobject-2.0.so.0
libglib-2.0.so.0
libsystemd-login.so.0
libsystemd-daemon.so.0
libpthread.so.0
libc.so.6
libgtk-3.so.0
libgdk-3.so.0
libatk-1.0.so.0
libpangocairo-1.0.so.0
libgdk_pixbuf-2.0.so.0
libcairo-gobject.so.2
libpango-1.0.so.0
libcairo.so.2

View file

@ -0,0 +1,10 @@
# Template file for 'libgdm'.
#
short_desc="${sourcepkg} runtime libraries"
long_desc="${long_desc}
This package contains the runtime libraries."
do_install() {
vmove "usr/lib/*.so*" usr/lib
}

View file

@ -1,118 +0,0 @@
diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c
index 39def47..03488fd 100644
--- daemon/gdm-server.c
+++ 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;

View file

@ -1,26 +1,24 @@
# Template file for 'gdm' # Template file for 'gdm'
pkgname=gdm pkgname=gdm
version=3.4.1 version=3.6.0
revision=8 revision=1
build_style=gnu-configure build_style=gnu-configure
configure_args="--disable-schemas-compile --disable-scrollkeeper configure_args="--disable-schemas-compile --disable-static
--with-at-spi-registryd-directory=/usr/libexec --without-tcp-wrappers --with-at-spi-registryd-directory=/usr/libexec --without-tcp-wrappers
--disable-static --with-systemd --with-screenshot-dir=/var/lib/gdm/greeter --with-systemd --with-screenshot-dir=/var/lib/gdm/greeter
--with-xauth-dir=/run/gdm --with-pid-file=/run/gdm/gdm.pid" --with-xauth-dir=/run/gdm --with-pid-file=/run/gdm/gdm.pid
--with-initial-vt=1 --with-systemdsystemunitdir=/usr/lib/systemd/system"
makedepends="pkg-config intltool which gnome-doc-utils gobject-introspection makedepends="pkg-config intltool which gnome-doc-utils gobject-introspection
pam-devel nss-devel accountsservice-devel gtk+3-devel upower-devel systemd-devel pam-devel nss-devel accountsservice-devel gtk+3-devel>=3.6.0_2 upower-devel
libcanberra-devel libXrandr-devel libxklavier-devel at-spi2-core-devel libcanberra-devel libXrandr-devel systemd-devel at-spi2-core-devel itstool"
dbus-glib-devel" fulldepends="xrdb dconf>=0.13.90 hicolor-icon-theme polkit-gnome xorg-server metacity
fulldepends="xrdb dconf hicolor-icon-theme polkit-gnome xorg-server metacity gnome-session>=3.6.0 gnome-settings-daemon>=3.6.0 dbus-x11"
gnome-session gnome-settings-daemon dbus-x11"
subpackages="gdm-devel"
gtk_iconcache_dirs="/usr/share/icons/hicolor"
short_desc="GNOME Display Manager" short_desc="GNOME Display Manager"
maintainer="Juan RP <xtraeme@gmail.com>" maintainer="Juan RP <xtraeme@gmail.com>"
homepage="http://www.gnome.org" homepage="http://www.gnome.org"
license="GPL-2" license="GPL-2"
distfiles="${GNOME_SITE}/$pkgname/3.4/$pkgname-$version.tar.xz" distfiles="${GNOME_SITE}/$pkgname/3.6/$pkgname-$version.tar.xz"
checksum=6292968dff5fc89877b5e1aaa3c7d1484dd3ed2d4f388e935841d053439be665 checksum=ea63736fc8f7234aca442f4e99b3ba9cc29dce5e464ed93f7bf7eb8c49abd60b
long_desc=" long_desc="
GDM is the GNOME Display Manager, it is the little proggie that runs GDM is the GNOME Display Manager, it is the little proggie that runs
in the background, runs your X sessions, presents you with a login box in the background, runs your X sessions, presents you with a login box
@ -35,6 +33,9 @@ long_desc="
xdmcp a little bit in places where I thought xdm was lacking (but is xdmcp a little bit in places where I thought xdm was lacking (but is
still compatible with xdm's xdmcp)." still compatible with xdm's xdmcp)."
subpackages="libgdm gdm-devel"
gtk_iconcache_dirs="/usr/share/icons/hicolor"
conf_files=" conf_files="
/etc/gdm/custom.conf /etc/gdm/custom.conf
/etc/pam.d/gdm /etc/pam.d/gdm
@ -60,12 +61,10 @@ systemd_services="gdm.service off"
post_install() { post_install() {
# Use our own pam files. # Use our own pam files.
rm -f ${DESTDIR}/etc/pam.d/* rm -f ${DESTDIR}/etc/pam.d/*
for f in gdm gdm-autologin gdm-fingerprint gdm-password gdm-smartcard \ for f in ${FILESDIR}/*.pam; do
gdm-welcome; do vinstall ${f} 644 etc/pam.d ${f}
vinstall ${FILESDIR}/${f}.pam 644 etc/pam.d ${f}
done done
# Install systemd service. # Install systemd service.
vinstall ${FILESDIR}/gdm.service 644 usr/lib/systemd/system
vinstall ${FILESDIR}/gdm.tmpfiles.d 644 usr/lib/tmpfiles.d gdm.conf vinstall ${FILESDIR}/gdm.tmpfiles.d 644 usr/lib/tmpfiles.d gdm.conf
chmod 1770 ${DESTDIR}/var/log/gdm chmod 1770 ${DESTDIR}/var/log/gdm

1
srcpkgs/libgdm Symbolic link
View file

@ -0,0 +1 @@
gdm