]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Promote X-LightDM-DesktopName to DesktopNames
authorRobert Ancell <robert.ancell@canonical.com>
Tue, 8 Apr 2014 04:54:45 +0000 (16:54 +1200)
committerRobert Ancell <robert.ancell@canonical.com>
Tue, 8 Apr 2014 04:54:45 +0000 (16:54 +1200)
XDG_CURRENT_DESKTOP is specified in freedesktop's desktop entry spec now. 'DesktopNames' will also be supported by other display managers, so we can drop the 'X-LightDM'.

DesktopNames is pluralized because it allows a colon-separated list of desktop names.

15 files changed:
NEWS
configure.ac
data/apparmor/abstractions/lightdm
debian/changelog
liblightdm-gobject/liblightdm-gobject-1.vapi
src/seat-xlocal.c
src/seat.c
src/unity-system-compositor.c
src/unity-system-compositor.h
tests/scripts/mir-autologin.conf
tests/scripts/mir-greeter.conf
tests/scripts/mir-session-compositor-crash.conf
tests/scripts/mir-session-crash.conf
tests/scripts/mir-session.conf
tests/src/unity-system-compositor.c

diff --git a/NEWS b/NEWS
index cf5f8278ec1f488238041946003a6e39bcb2ae0c..c0f78310fec60bb563fb7283d71728d23c761b14 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,19 @@
+Overview of changes in lightdm 1.10.0
+
+    * Fix return value for Vala bindings to Greeter.start_session_sync
+    * Fix logging when failing to find session
+
+Overview of changes in lightdm 1.9.15
+
+    * Update the lightdm AppArmor abstraction to allow the guest session to
+      start when AppArmor is mediating signals and ptrace and fix a minor, but
+      noisy, denial when applications attempt to read /proc/<PID>/stat.
+
+Overview of changes in lightdm 1.9.14
+
+    * Pass --enable-hardware-greeter to unity-system-compositor for Mir sessions
+      on xlocal seats
+
 Overview of changes in lightdm 1.9.13
 
     * Handle not getting an X connection when attempting to get X layouts.
index c9117b869a607551d5fa7a56c80bf0fb0ac44827..9ded6cad92982b954a4a1de1c8f08fde20184738 100644 (file)
@@ -1,6 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
 
-AC_INIT(lightdm, 1.9.13)
+AC_INIT(lightdm, 1.10.0)
 AC_CONFIG_MACRO_DIR(m4)
 AC_CONFIG_HEADER(config.h)
 AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz foreign])
index d94edc3e74d9d4cde1884bf66bc3754ef9ca4e4c..0052569e21131ef3b1ecd6776f14cfcb173c3912 100644 (file)
@@ -47,6 +47,8 @@
   owner @{PROC}/** rm,
   # needed for gnome-keyring-daemon
   @{PROC}/*/status r,
+  # needed for bamfdaemon and utilities such as ps and killall
+  @{PROC}/*/stat r,
   /sbin/ r,
   /sbin/** rmixk,
   /sys/ r,
 
   capability ipc_lock,
 
+  # allow processes in the guest session to signal and ptrace each other
+  signal peer=@{profile_name},
+  ptrace peer=@{profile_name},
+  # needed when logging out of the guest session
+  signal (receive) peer=unconfined,
+
   # silence warnings for stuff that we really don't want to grant
   deny capability dac_override,
   deny capability dac_read_search,
index ea9c58c948bb93e42fb1b8bed029574d9784fcd8..1304cf13272f37f301dd33e8b8713c6eeaf99dbe 100644 (file)
@@ -1,3 +1,39 @@
+lightdm (1.10.0-0ubuntu1) trusty; urgency=medium
+
+  * New upstream release:
+    - Fix return value for Vala bindings to Greeter.start_session_sync
+    - Fix logging when failing to find session
+
+ -- Robert Ancell <robert.ancell@canonical.com>  Tue, 08 Apr 2014 16:12:46 +1200
+
+lightdm (1.9.15-0ubuntu1) trusty; urgency=medium
+
+  * debian/patches/06_guest_signal_and_ptrace_aa_rules.patch,
+    debian/patches/07_guest_proc_pid_stat_aa_rule.patch: Dropped, the fixes
+    are upstream
+
+ -- Tyler Hicks <tyhicks@canonical.com>  Mon, 07 Apr 2014 10:33:46 -0500
+
+lightdm (1.9.14-0ubuntu2) trusty; urgency=medium
+
+  * debian/patches/06_guest_signal_and_ptrace_aa_rules.patch: Grant
+    permission for guest session processes to signal and ptrace each
+    other (LP: #1298611)
+  * debian/patches/07_guest_proc_pid_stat_aa_rule.patch: Grant permission for
+    guest session processes to read /proc/<PID>/stat. This prevents AppArmor
+    denial messages caused by bamfdaemon and common utilities such as ps and
+    killall. (LP: #1301625)
+
+ -- Tyler Hicks <tyhicks@canonical.com>  Thu, 03 Apr 2014 02:48:51 -0500
+
+lightdm (1.9.14-0ubuntu1) trusty; urgency=medium
+
+  * New upstream release:
+    - Pass --enable-hardware-greeter to unity-system-compositor for Mir sessions
+      on xlocal seats (LP: #1289072)
+
+ -- Robert Ancell <robert.ancell@canonical.com>  Thu, 03 Apr 2014 09:07:39 +1300
+
 lightdm (1.9.13-0ubuntu1) trusty; urgency=medium
 
   * New upstream release:
index 1d48cfaa948e48724e3001de31d61d48df3ecae3..ea4cecd2486304ebc3e463634e9f1457a9f0b306 100644 (file)
@@ -47,7 +47,7 @@ namespace LightDM {
         public bool in_authentication { get; }
         public bool is_authenticated { get; }
         public unowned string? authentication_user { get; }
-        public void start_session_sync (string? session = null) throws GLib.Error;
+        public bool start_session_sync (string? session = null) throws GLib.Error;
     }
     [CCode (has_type_id = false)]
     public enum MessageType {
index ee0edf4ddaad54dc13c1f0e1774f7c406a1e3362..4c0e77d9916b0504074c411b888fd21ae571f2b9 100644 (file)
@@ -206,6 +206,8 @@ create_unity_system_compositor (Seat *seat)
     unity_system_compositor_set_socket (compositor, socket_name);
     g_free (socket_name);
 
+    unity_system_compositor_set_enable_hardware_cursor (compositor, TRUE);
+
     return DISPLAY_SERVER (compositor);
 }
 
index 60bfdd3ba2fec7a950354302af8cac2f06a92b18..66939cee8511ee32c1c2be892b6c6e729abc1fd0 100644 (file)
@@ -912,7 +912,7 @@ create_user_session (Seat *seat, const gchar *username, gboolean autostart)
         g_object_unref (session_config);
     }
     else
-        l_debug (seat, "Can't find session '%s'", seat_get_string_property (seat, "user-session"));
+        l_debug (seat, "Can't find session '%s'", session_name);
 
     g_object_unref (user);
 
@@ -953,7 +953,7 @@ create_guest_session (Seat *seat, const gchar *session_name)
     g_free (sessions_dir);
     if (!session_config)
     {
-        l_debug (seat, "Can't find session '%s'", seat_get_string_property (seat, "user-session"));
+        l_debug (seat, "Can't find session '%s'", session_name);
         return NULL;
     }
 
@@ -1044,7 +1044,7 @@ greeter_start_session_cb (Greeter *greeter, SessionType type, const gchar *sessi
         g_free (sessions_dir);
         if (!session_config)
         {
-            l_debug (seat, "Can't find session '%s'", seat_get_string_property (seat, "user-session"));
+            l_debug (seat, "Can't find session '%s'", session_name);
             return FALSE;
         }
 
index 28e2bdf334a37ac100ec34d52ed9ba5f08d40f03..94662ff708c56b257ce67d658b047fa5c796e90e 100644 (file)
@@ -39,6 +39,9 @@ struct UnitySystemCompositorPrivate
     gint vt;
     gboolean have_vt_ref;
 
+    /* TRUE if should show hardware cursor */
+    gboolean enable_hardware_cursor;
+
     /* Pipes to communicate with compositor */
     int to_compositor_pipe[2];
     int from_compositor_pipe[2];
@@ -117,6 +120,13 @@ unity_system_compositor_set_vt (UnitySystemCompositor *compositor, gint vt)
     }
 }
 
+void
+unity_system_compositor_set_enable_hardware_cursor (UnitySystemCompositor *compositor, gboolean enable_cursor)
+{
+    g_return_if_fail (compositor != NULL);
+    compositor->priv->enable_hardware_cursor = enable_cursor;
+}
+
 void
 unity_system_compositor_set_timeout (UnitySystemCompositor *compositor, gint timeout)
 {
@@ -357,7 +367,8 @@ unity_system_compositor_start (DisplayServer *server)
 {
     UnitySystemCompositor *compositor = UNITY_SYSTEM_COMPOSITOR (server);
     gboolean result;
-    gchar *dir, *log_file, *command, *absolute_command, *value;
+    GString *command;
+    gchar *dir, *log_file, *absolute_command, *value;
 
     g_return_val_if_fail (compositor->priv->process == NULL, FALSE);
 
@@ -410,10 +421,16 @@ unity_system_compositor_start (DisplayServer *server)
         l_debug (compositor, "Can't launch compositor %s, not found in path", compositor->priv->command);
         return FALSE;
     }
-    command = g_strdup_printf ("%s --file '%s' --from-dm-fd %d --to-dm-fd %d --vt %d", absolute_command, compositor->priv->socket, compositor->priv->to_compositor_pipe[0], compositor->priv->from_compositor_pipe[1], compositor->priv->vt);
-    process_set_command (compositor->priv->process, command);
-    g_free (command);
+    command = g_string_new (absolute_command);
     g_free (absolute_command);
+    g_string_append_printf (command, " --file '%s'", compositor->priv->socket);
+    g_string_append_printf (command, " --from-dm-fd %d --to-dm-fd %d", compositor->priv->to_compositor_pipe[0], compositor->priv->from_compositor_pipe[1]);
+    if (compositor->priv->vt > 0)
+        g_string_append_printf (command, " --vt %d", compositor->priv->vt);
+    if (compositor->priv->enable_hardware_cursor)
+        g_string_append (command, " --enable-hardware-cursor=true");
+    process_set_command (compositor->priv->process, command->str);
+    g_string_free (command, TRUE);
 
     /* Start the compositor */
     g_signal_connect (compositor->priv->process, "stopped", G_CALLBACK (stopped_cb), compositor);
index c397b8b0c33e2f384e9fe37473aef2f1ec13f6ab..5354429d3f457b65704cdf25bcdfa30145597ba7 100644 (file)
@@ -48,6 +48,8 @@ const gchar *unity_system_compositor_get_socket (UnitySystemCompositor *composit
 
 void unity_system_compositor_set_vt (UnitySystemCompositor *compositor, gint vt);
 
+void unity_system_compositor_set_enable_hardware_cursor (UnitySystemCompositor *compositor, gboolean enable_cursor);
+
 void unity_system_compositor_set_timeout (UnitySystemCompositor *compositor, gint timeout);
 
 void unity_system_compositor_set_active_session (UnitySystemCompositor *compositor, const gchar *id);
index 0be08e47c45fb21b23a66fc8d3358b2992ef568d..110a01f4e738e56711093bef4bbd68e53ade37b5 100644 (file)
@@ -10,7 +10,7 @@ user-session=mir
 #?RUNNER DAEMON-START
 
 # System compositor starts
-#?UNITY-SYSTEM-COMPOSITOR START FILE=/tmp/lightdm-mir-0 VT=7 XDG_VTNR=7
+#?UNITY-SYSTEM-COMPOSITOR START FILE=/tmp/lightdm-mir-0 VT=7 ENABLE-HARDWARE-CURSOR=TRUE XDG_VTNR=7
 #?*UNITY-SYSTEM-COMPOSITOR READY
 
 # Session starts
index ed4751a9fde8eb2b3fb19b16c0da1c369723a099..3149936a4cc7d2f78aab647c3aabba61d460d14c 100644 (file)
@@ -6,7 +6,7 @@
 #?RUNNER DAEMON-START
 
 # System compositor starts
-#?UNITY-SYSTEM-COMPOSITOR START FILE=/tmp/lightdm-mir-0 VT=7 XDG_VTNR=7
+#?UNITY-SYSTEM-COMPOSITOR START FILE=/tmp/lightdm-mir-0 VT=7 ENABLE-HARDWARE-CURSOR=TRUE XDG_VTNR=7
 #?*UNITY-SYSTEM-COMPOSITOR READY
 
 # Greeter starts
index 2040a14cc318f14a11e25f5b7c4fb95731d8c442..40004482cc81fecc52e7a1a1944ac3985df14f18 100644 (file)
@@ -10,7 +10,7 @@ user-session=mir
 #?RUNNER DAEMON-START
 
 # System compositor starts
-#?UNITY-SYSTEM-COMPOSITOR START FILE=/tmp/lightdm-mir-0 VT=7 XDG_VTNR=7
+#?UNITY-SYSTEM-COMPOSITOR START FILE=/tmp/lightdm-mir-0 VT=7 ENABLE-HARDWARE-CURSOR=TRUE XDG_VTNR=7
 #?*UNITY-SYSTEM-COMPOSITOR READY
 
 # Session starts
index 5d88dd8a39200c1800b53820113928a0504bdcb2..867604d447f1ea532b793065efc4a23752860664 100644 (file)
@@ -10,7 +10,7 @@ user-session=mir
 #?RUNNER DAEMON-START
 
 # System compositor starts
-#?UNITY-SYSTEM-COMPOSITOR START FILE=/tmp/lightdm-mir-0 VT=7 XDG_VTNR=7
+#?UNITY-SYSTEM-COMPOSITOR START FILE=/tmp/lightdm-mir-0 VT=7 ENABLE-HARDWARE-CURSOR=TRUE XDG_VTNR=7
 #?*UNITY-SYSTEM-COMPOSITOR READY
 
 # Session starts
index 35d794f34f697a1e48e165ce33bf92477c3b7072..2391f5a2826a0fbb55568dd45634908d584c97b5 100644 (file)
@@ -30,7 +30,7 @@ user-session=mir
 #?*GREETER-X-0 START-SESSION
 
 # System compositor starts
-#?UNITY-SYSTEM-COMPOSITOR START FILE=/tmp/lightdm-mir-0 VT=8 XDG_VTNR=8
+#?UNITY-SYSTEM-COMPOSITOR START FILE=/tmp/lightdm-mir-0 VT=8 ENABLE-HARDWARE-CURSOR=TRUE XDG_VTNR=8
 #?*UNITY-SYSTEM-COMPOSITOR READY
 
 # Switch to system compositor
index eae07317cf77ff4338384b0b1269274e0e7ea4ad..7b75bc38c91af7d8b5dd3bd53d9d7cbb63120a31 100644 (file)
@@ -146,6 +146,7 @@ main (int argc, char **argv)
     GString *status_text;
     gboolean test = FALSE;
     int vt_number = -1;
+    gboolean enable_hardware_cursor = FALSE;
     const gchar *file = NULL;
 
 #if !defined(GLIB_VERSION_2_36)
@@ -178,6 +179,8 @@ main (int argc, char **argv)
             vt_number = atoi (argv[i+1]);
             i++;
         }
+        else if (strcmp (arg, "--enable-hardware-cursor=true") == 0)
+            enable_hardware_cursor = TRUE;
         else if (strcmp (arg, "--file") == 0)
         {
             file = argv[i+1];
@@ -196,6 +199,8 @@ main (int argc, char **argv)
         g_string_append_printf (status_text, " FILE=%s", file);
     if (vt_number >= 0)
         g_string_append_printf (status_text, " VT=%d", vt_number);
+    if (enable_hardware_cursor)
+        g_string_append (status_text, " ENABLE-HARDWARE-CURSOR=TRUE");
     if (g_getenv ("XDG_VTNR"))
         g_string_append_printf (status_text, " XDG_VTNR=%s", g_getenv ("XDG_VTNR"));
     if (test)