summaryrefslogtreecommitdiff
path: root/community/lightdm
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2013-11-05 00:47:11 -0800
committerroot <root@rshg054.dnsready.net>2013-11-05 00:47:11 -0800
commit4525bb3909f233fd13dbfb43aa6ff4e64e8340d9 (patch)
treeadd2024759bc7a18fc8d7f4101dc5d5d9b3e1e44 /community/lightdm
parent058983fb5cb16dbb25368dd464cbcf27205b3f93 (diff)
Tue Nov 5 00:46:51 PST 2013
Diffstat (limited to 'community/lightdm')
-rwxr-xr-xcommunity/lightdm/PKGBUILD9
-rwxr-xr-xcommunity/lightdm/lightdm-xdg-session-class.patch130
2 files changed, 136 insertions, 3 deletions
diff --git a/community/lightdm/PKGBUILD b/community/lightdm/PKGBUILD
index cfe7f3d1b..83080cbae 100755
--- a/community/lightdm/PKGBUILD
+++ b/community/lightdm/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 99894 2013-10-31 02:19:58Z allan $
+# $Id: PKGBUILD 100476 2013-11-04 22:51:26Z alucryd $
# Maintainer: Maxime Gauduin <alucryd@gmail.com>
# Contributor: Morfeo <morfeo89@hotmail.it>
pkgbase=lightdm
pkgname=('lightdm' 'liblightdm-qt4' 'liblightdm-qt5')
pkgver=1.8.1
-pkgrel=1
+pkgrel=3
epoch=1
pkgdesc="A lightweight display manager"
arch=('i686' 'x86_64')
@@ -19,6 +19,7 @@ source=("https://launchpad.net/lightdm/${pkgver%.*}/${pkgver}/+download/${pkgbas
'lightdm-autologin.pam'
'lightdm.rules'
'lightdm-default-config.patch'
+ 'lightdm-xdg-session-class.patch'
'Xsession')
sha256sums=('e749ea72ac2517f592a8dfcd8bbdf7aba6729cb75c569c03347751d87f99305a'
'0d2adba25cdbe59e97ffd302083db9d5e23920780f41e04f64512cd6b633289a'
@@ -27,11 +28,13 @@ sha256sums=('e749ea72ac2517f592a8dfcd8bbdf7aba6729cb75c569c03347751d87f99305a'
'33e3c3d6e16c8d30756754ea3f31f5457c5be0343686aad287692be34958984a'
'a89566307e1c81c24f037d854cbd472d2f94f8a4b759877a01563a332319f7d6'
'0b2f740616110887d5c8662e40f1a8350fc0dfa6c7e99f6e3a5636c6b0ca714f'
+ '1d991d60c8212c9c763c62ffea8401d69b0be39a4d006cccb8e06676d56e5a55'
'7fb85a1b54406032a922e8fd6f45d869fcfe5681df630e74e8e50c040b786ee4')
prepare() {
cd ${pkgbase}-${pkgver}
+ patch -Np0 -i ../lightdm-xdg-session-class.patch
patch -Np1 -i ../lightdm-default-config.patch
}
@@ -64,7 +67,7 @@ install="${pkgbase}.install"
make DESTDIR="${pkgdir}" -C liblightdm-qt uninstall
install -m 755 ../Xsession "${pkgdir}"/etc/lightdm/Xsession
rm -rf "${pkgdir}"/etc/init
- rm -rf "${pkgdir}"/usr/include/lightdm-qt{,5}-2
+ rm -rf "${pkgdir}"/usr/include/lightdm-qt{,5}-*
install -dm 770 "${pkgdir}"/var/lib/lightdm
install -dm 711 "${pkgdir}"/var/log/lightdm
diff --git a/community/lightdm/lightdm-xdg-session-class.patch b/community/lightdm/lightdm-xdg-session-class.patch
new file mode 100755
index 000000000..cd9093cf3
--- /dev/null
+++ b/community/lightdm/lightdm-xdg-session-class.patch
@@ -0,0 +1,130 @@
+=== modified file 'src/seat.c'
+--- src/seat.c 2013-10-03 21:38:07 +0000
++++ src/seat.c 2013-10-21 22:55:16 +0000
+@@ -1075,6 +1075,7 @@
+ g_signal_connect (greeter_session, "stopped", G_CALLBACK (session_stopped_cb), seat);
+
+ set_session_env (SESSION (greeter_session));
++ session_set_env (SESSION (greeter_session), "XDG_SESSION_CLASS", "greeter");
+
+ session_set_pam_service (SESSION (greeter_session), GREETER_SERVICE);
+ if (getuid () == 0)
+
+=== modified file 'src/session-child.c'
+--- src/session-child.c 2013-07-26 02:27:41 +0000
++++ src/session-child.c 2013-10-21 22:55:16 +0000
+@@ -213,7 +213,6 @@
+ gchar *authentication_result_string;
+ gchar *service;
+ gchar *username;
+- gchar *class;
+ gchar *tty;
+ gchar *remote_host_name;
+ gchar *xdisplay;
+@@ -284,7 +283,7 @@
+ username = read_string ();
+ read_data (&do_authenticate, sizeof (do_authenticate));
+ read_data (&is_interactive, sizeof (is_interactive));
+- class = read_string ();
++ read_string (); /* Used to be class, now we just use the environment variable */
+ tty = read_string ();
+ remote_host_name = read_string ();
+ xdisplay = read_string ();
+@@ -480,7 +479,7 @@
+ g_variant_builder_init (&ck_parameters, G_VARIANT_TYPE ("(a(sv))"));
+ g_variant_builder_open (&ck_parameters, G_VARIANT_TYPE ("a(sv)"));
+ g_variant_builder_add (&ck_parameters, "(sv)", "unix-user", g_variant_new_int32 (user_get_uid (user)));
+- if (g_strcmp0 (class, XDG_SESSION_CLASS_GREETER) == 0)
++ if (g_strcmp0 (pam_getenv (pam_handle, "XDG_SESSION_CLASS"), "greeter") == 0)
+ g_variant_builder_add (&ck_parameters, "(sv)", "session-type", g_variant_new_string ("LoginWindow"));
+ if (xdisplay)
+ {
+@@ -601,7 +600,7 @@
+ if (child_pid > 0)
+ {
+ /* Log to utmp */
+- if (g_strcmp0 (class, XDG_SESSION_CLASS_GREETER) != 0)
++ if (g_strcmp0 (pam_getenv (pam_handle, "XDG_SESSION_CLASS"), "greeter") != 0)
+ {
+ struct utmpx ut;
+ struct timeval tv;
+@@ -632,7 +631,7 @@
+ child_pid = 0;
+
+ /* Log to utmp */
+- if (g_strcmp0 (class, XDG_SESSION_CLASS_GREETER) != 0)
++ if (g_strcmp0 (pam_getenv (pam_handle, "XDG_SESSION_CLASS"), "greeter") != 0)
+ {
+ struct utmpx ut;
+ struct timeval tv;
+
+=== modified file 'src/session.c'
+--- src/session.c 2013-09-19 14:53:48 +0000
++++ src/session.c 2013-10-21 22:43:11 +0000
+@@ -84,9 +84,6 @@
+ /* File to log to */
+ gchar *log_filename;
+
+- /* Seat class */
+- gchar *class;
+-
+ /* tty this session is running on */
+ gchar *tty;
+
+@@ -200,14 +197,6 @@
+ }
+
+ void
+-session_set_class (Session *session, const gchar *class)
+-{
+- g_return_if_fail (session != NULL);
+- g_free (session->priv->class);
+- session->priv->class = g_strdup (class);
+-}
+-
+-void
+ session_set_display_server (Session *session, DisplayServer *display_server)
+ {
+ g_return_if_fail (session != NULL);
+@@ -615,7 +604,7 @@
+ write_string (session, session->priv->username);
+ write_data (session, &session->priv->do_authenticate, sizeof (session->priv->do_authenticate));
+ write_data (session, &session->priv->is_interactive, sizeof (session->priv->is_interactive));
+- write_string (session, session->priv->class);
++ write_string (session, NULL); /* Used to be class, now we just use the environment variable */
+ write_string (session, session->priv->tty);
+ write_string (session, session->priv->remote_host_name);
+ write_string (session, session->priv->xdisplay);
+@@ -874,7 +863,6 @@
+ g_free (self->priv->messages);
+ g_free (self->priv->authentication_result_string);
+ g_free (self->priv->log_filename);
+- g_free (self->priv->class);
+ g_free (self->priv->tty);
+ g_free (self->priv->xdisplay);
+ if (self->priv->x_authority)
+
+=== modified file 'src/session.h'
+--- src/session.h 2013-08-14 20:14:16 +0000
++++ src/session.h 2013-10-21 22:55:16 +0000
+@@ -57,10 +57,6 @@
+ SESSION_TYPE_REMOTE
+ } SessionType;
+
+-#define XDG_SESSION_CLASS_USER "user"
+-#define XDG_SESSION_CLASS_GREETER "greeter"
+-#define XDG_SESSION_CLASS_LOCK_SCREEN "lock-screen"
+-
+ GType session_get_type (void);
+
+ Session *session_new (void);
+@@ -83,8 +79,6 @@
+
+ void session_set_log_file (Session *session, const gchar *filename);
+
+-void session_set_class (Session *session, const gchar *class);
+-
+ void session_set_display_server (Session *session, DisplayServer *display_server);
+
+ DisplayServer *session_get_display_server (Session *session);
+