Hello community,

here is the log from the commit of package kdebase4-workspace for 
openSUSE:Factory checked in at 2012-03-12 20:14:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdebase4-workspace (Old)
 and      /work/SRC/openSUSE:Factory/.kdebase4-workspace.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kdebase4-workspace", Maintainer is "[email protected]"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kdebase4-workspace/kdebase4-workspace.changes    
2012-02-28 14:13:46.000000000 +0100
+++ 
/work/SRC/openSUSE:Factory/.kdebase4-workspace.new/kdebase4-workspace.changes   
    2012-03-12 20:14:57.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Mar  2 23:16:32 CET 2012 - [email protected]
+
+- update to 4.8.1
+  * see http://kde.org/announcements/changelogs/changelog4_8_0to4_8_1.php for 
details
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/kdebase4-workspace/python-kdebase4.changes       
2012-01-31 10:21:01.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kdebase4-workspace.new/python-kdebase4.changes  
2012-03-12 20:14:57.000000000 +0100
@@ -1,0 +2,11 @@
+Fri Mar  2 23:16:32 CET 2012 - [email protected]
+
+- update to 4.8.1
+  * see http://kde.org/announcements/changelogs/changelog4_8_0to4_8_1.php for 
details
+
+-------------------------------------------------------------------
+Mon Feb 27 20:46:29 CET 2012 - [email protected]
+
+- require the right version of kactivities4 to avoid crashes 
+
+-------------------------------------------------------------------

Old:
----
  kde-workspace-4.8.0.tar.bz2

New:
----
  kde-workspace-4.8.1.tar.bz2
  kdm_plymouth.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kdebase4-workspace.spec ++++++
--- /var/tmp/diff_new_pack.l1KYKt/_old  2012-03-12 20:15:00.000000000 +0100
+++ /var/tmp/diff_new_pack.l1KYKt/_new  2012-03-12 20:15:00.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           kdebase4-workspace
-Version:        4.8.0
+Version:        4.8.1
 Release:        0
 Summary:        The KDE Workspace Components
 License:        GPL-2.0+
@@ -97,6 +97,10 @@
 Patch201:       plasma-notifications-kill-timer.diff
 Patch202:       plasma-disable-networkmanager.diff
 Patch211:       disable-python-support.diff
+# Patch from Fedora to enable plymouth support in KDM. 
+# Patch is based on the changes within GDM to detect running plymouth 
+# and issue a quit to the plymouth daemon
+Patch400:       kdm_plymouth.patch
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 %if %suse_version > 1200
@@ -328,6 +332,7 @@
 %patch201 -p1
 %patch202 -p1
 %patch211
+%patch400 -p0
 cp %{SOURCE3} kwin/effects/cube/data/cubecap.png
 
 %build

++++++ python-kdebase4.spec ++++++
--- /var/tmp/diff_new_pack.l1KYKt/_old  2012-03-12 20:15:00.000000000 +0100
+++ /var/tmp/diff_new_pack.l1KYKt/_new  2012-03-12 20:15:00.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           python-kdebase4
-Version:        4.8.0
+Version:        4.8.1
 Release:        0
 Summary:        Python bindings for KDE 4 desktop shell
 License:        GPL-2.0+

++++++ kde-workspace-4.8.0.tar.bz2 -> kde-workspace-4.8.1.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/kdebase4-workspace/kde-workspace-4.8.0.tar.bz2 
/work/SRC/openSUSE:Factory/.kdebase4-workspace.new/kde-workspace-4.8.1.tar.bz2 
differ: char 11, line 1

++++++ kdm_plymouth.patch ++++++
--- kdm/backend/dm.c    2011-09-06 16:09:17.000000000 +0200
+++ kdm/backend/dm.c    2011-09-07 16:23:59.017135854 +0200
@@ -1347,6 +1347,81 @@
     return activeVTs;
 }
 
+static int
+get_active_vt (void)
+{
+        int console_fd;
+        struct vt_stat console_state = { 0 };
+        console_fd = open ("/dev/tty0", O_RDONLY | O_NOCTTY);
+        if (console_fd < 0) {
+                goto out;
+        }
+        if (ioctl (console_fd, VT_GETSTATE, &console_state) < 0) {
+                goto out;
+        }
+out:
+        if (console_fd >= 0) {
+                close (console_fd);
+        }
+        return console_state.v_active;
+}
+
+static int
+plymouth_is_running (void)
+{
+        int status;
+        status = system ("/bin/plymouth --ping");
+
+        return WIFEXITED (status) && WEXITSTATUS (status) == 0;
+}
+
+static int
+plymouth_has_active_vt (void)
+{
+        int status;
+        status = system ("/bin/plymouth --has-active-vt");
+
+        return WIFEXITED (status) && WEXITSTATUS (status) == 0;
+}
+
+static int
+plymouth_prepare_for_transition (void)
+{
+        int status;
+        status = system ("/bin/plymouth deactivate");
+
+        return WIFEXITED (status) && WEXITSTATUS (status) == 0;
+}
+
+int
+plymouth_quit_with_transition (void)
+{
+        int status;
+        status = system ("/bin/plymouth quit --retain-splash");
+
+        return WIFEXITED (status) && WEXITSTATUS (status) == 0;
+}
+
+static int
+plymouth_quit_without_transition (void)
+{
+        int status;
+        status = system ("/bin/plymouth quit");
+
+        return WIFEXITED (status) && WEXITSTATUS (status) == 0;
+}
+
+static int
+triggered_to_force_display_on_active_vt (void)
+{
+   int should_force_display_on_active_vt;
+   
should_force_display_on_active_vt=open("/var/spool/gdm/force-display-on-active-vt",
 O_RDONLY);
+   if ( should_force_display_on_active_vt >= 0 )
+       close(should_force_display_on_active_vt);
+   unlink("/var/spool/gdm/force-display-on-active-vt");
+   return should_force_display_on_active_vt;
+}
+
 static void
 allocateVT(struct display *d)
 {
@@ -1356,6 +1431,43 @@
     if ((d->displayType & d_location) == dLocal &&
         d->status == notRunning && !d->serverVT && d->reqSrvVT >= 0)
     {
+        /* check for plymouth using newer methods */
+        d->plymouth_is_running = plymouth_is_running ();
+        if (d->plymouth_is_running) {
+            /* call plymouth deactivate */
+            plymouth_prepare_for_transition ();
+            if (plymouth_has_active_vt ()) {
+                /* plymouth was displaying a splash screen and has
+                 * terminated leaving it on screen
+                 */
+                int vt;
+                vt = get_active_vt ();
+                if (vt > 0) {
+                    /* start the X server on the active vt */
+                    d->serverVT = vt;
+                    return;
+                }
+           }
+           else {
+                /* plymouth might have been running but did not display
+                * a splash screen.
+                */ 
+               
+                /* call plymouth quit and start the X server as usual */
+                d->plymouth_is_running = !plymouth_quit_without_transition ();
+            }
+
+        /* fallback to old/deprecated method */
+        } else if ( triggered_to_force_display_on_active_vt() >= 0 ) {
+            int vt;
+            vt = get_active_vt();
+            if (vt > 0) {
+                d->serverVT = vt;
+                return;
+            }
+        }
+
+      
         if (d->reqSrvVT && d->reqSrvVT < 16) {
             d->serverVT = d->reqSrvVT;
         } else {
--- kdm/backend/dm.h    2011-09-06 16:09:17.000000000 +0200
+++ kdm/backend/dm.h    2011-09-07 16:23:59.018135847 +0200
@@ -304,6 +304,8 @@
     int authNum;                /* number of authorizations */
     char *authFile;             /* file to store authorization in */
     char *greeterAuthFile;      /* file to store authorization for greeter in 
*/
+    
+    int plymouth_is_running;    /* Plymouth's status */
 };
 
 #define d_location   1
@@ -428,6 +430,8 @@
 void forEachDisplay(void (*f)(struct display *));
 #ifdef HAVE_VTS
 void forEachDisplayRev(void (*f)(struct display *));
+/* function for plymouth */
+int plymouth_quit_with_transition (void);
 #endif
 void removeDisplay(struct display *old);
 struct display
--- kdm/backend/server.c        2011-09-06 16:09:17.000000000 +0200
+++ kdm/backend/server.c        2011-09-07 16:23:59.018135847 +0200
@@ -137,6 +137,11 @@
     struct display *d = startingServer;
     d->serverStatus = ignore;
     serverTimeout = TO_INF;
+    if (d->plymouth_is_running) {
+        debug( "Quitting Plymouth with transition\n" );
+        d->plymouth_is_running = !plymouth_quit_with_transition ();
+        debug ("Is Plymouth still running? %s\n", d->plymouth_is_running ? 
"yes" : "no");
+    }
     debug("X server ready, starting session\n");
     startDisplayP2(d);
 }


-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to