rpms/kdebase-workspace/F-12 kdebase-workspace-4.4.2-kdm_plymouth081.patch, NONE, 1.1 kdebase-workspace-4.3.98-plasma-konsole.patch, 1.1, 1.2 kdebase-workspace.spec, 1.333, 1.334

Kevin Kofler kkofler at fedoraproject.org
Wed Apr 7 23:07:56 UTC 2010


Author: kkofler

Update of /cvs/pkgs/rpms/kdebase-workspace/F-12
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv3601/F-12

Modified Files:
	kdebase-workspace-4.3.98-plasma-konsole.patch 
	kdebase-workspace.spec 
Added Files:
	kdebase-workspace-4.4.2-kdm_plymouth081.patch 
Log Message:
Sync from devel:

* Wed Apr 07 2010 Kevin Kofler <Kevin at tigcc.ticalc.org> - 4.4.2-3
- rip out bulletproof X changes (cf. kubuntu_33_kdm_bulletproof_x.diff) from
  our copy of kubuntu_34_kdm_plymouth_transition.diff
- drop experimental novt patch, should not be needed with the working Plymouth
  integration and may have side effects (can readd it later if really needed)
- fix icon name in plasma-konsole patch: use XDG icon instead of kappfinder one

* Tue Apr 06 2010 Rex Dieter <rdieter at fedoraproject.org> - 4.4.2-2
- try to workaround "X server hogs the CPU (#577482)" by letting X
  choose vt itself
- include (but not yet apply) kubuntu_34_kdm_plymouth_transition.diff

kdebase-workspace-4.4.2-kdm_plymouth081.patch:
 dm.c     |   91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 dm.h     |    4 ++
 server.c |    5 +++
 3 files changed, 100 insertions(+)

--- NEW FILE kdebase-workspace-4.4.2-kdm_plymouth081.patch ---
Description: Add support for smooth transition from Plymouth's bootsplash
 If possible, KDM will try to deactivate plymouth, start X (with -nr) on
 the active vt and leave the bootsplash on the screen until the graphical
 login takes place.
Forwarded: no
Bug: https://bugs.launchpad.net/ubuntu/+source/kdebase-workspace/+bug/540177
Author: Alberto Milone <alberto.milone at canonical.com>
Bulletproof X bits (cf. kubuntu_33_kdm_bulletproof_x.diff) ripped out by
Kevin Kofler <Kevin at tigcc.ticalc.org>

diff -Nurp kdebase-workspace-4.4.1.orig/kdm/backend/dm.c kdebase-workspace-4.4.1/kdm/backend/dm.c
--- kdebase-workspace-4.4.1.orig/kdm/backend/dm.c	2009-10-26 10:14:47.000000000 +0100
+++ kdebase-workspace-4.4.1/kdm/backend/dm.c	2010-03-25 12:48:13.861357254 +0100
@@ -1330,6 +1330,71 @@ getBusyVTs( void )
 	return activeVTs;
 }
 
+/* Return the active VT as an integer */
+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 void
 allocateVT( struct display *d )
 {
@@ -1339,6 +1404,32 @@ allocateVT( struct display *d )
 	if ((d->displayType & d_location) == dLocal &&
 	    d->status == notRunning && !d->serverVT && d->reqSrvVT >= 0)
 	{
+		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 ();
+			}
+		}
+
 		if (d->reqSrvVT && d->reqSrvVT < 16)
 			d->serverVT = d->reqSrvVT;
 		else {
diff -Nurp kdebase-workspace-4.4.1.orig/kdm/backend/dm.h kdebase-workspace-4.4.1/kdm/backend/dm.h
--- kdebase-workspace-4.4.1.orig/kdm/backend/dm.h	2009-10-26 10:14:47.000000000 +0100
+++ kdebase-workspace-4.4.1/kdm/backend/dm.h	2010-03-25 12:46:54.171786017 +0100
@@ -288,6 +288,8 @@ struct display {
 	Xauth **authorizations;     /* authorization data */
 	int authNum;                /* number of authorizations */
 	char *authFile;             /* file to store authorization in */
+
+	int plymouth_is_running;    /* Plymouth's status */
 };
 
 #define d_location   1
@@ -400,6 +402,8 @@ int anyDisplaysLeft( void );
 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
diff -Nurp kdebase-workspace-4.4.1.orig/kdm/backend/server.c kdebase-workspace-4.4.1/kdm/backend/server.c
--- kdebase-workspace-4.4.1.orig/kdm/backend/server.c	2009-10-26 10:14:47.000000000 +0100
+++ kdebase-workspace-4.4.1/kdm/backend/server.c	2010-03-25 12:53:06.561387817 +0100
@@ -134,6 +134,11 @@ startServerSuccess()
 	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 );
 }

kdebase-workspace-4.3.98-plasma-konsole.patch:
 menu.cpp |   17 +++++++++++++++--
 menu.h   |    2 ++
 2 files changed, 17 insertions(+), 2 deletions(-)

Index: kdebase-workspace-4.3.98-plasma-konsole.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kdebase-workspace/F-12/kdebase-workspace-4.3.98-plasma-konsole.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- kdebase-workspace-4.3.98-plasma-konsole.patch	10 Feb 2010 14:00:07 -0000	1.1
+++ kdebase-workspace-4.3.98-plasma-konsole.patch	7 Apr 2010 23:07:56 -0000	1.2
@@ -33,7 +33,7 @@ diff -up kdebase-workspace-4.3.98/plasma
          //can I do something with configureRequested? damn privateslot...
      } else {
 +        m_runKonsoleAction = new QAction(i18n("Konsole"), this);
-+        m_runKonsoleAction->setIcon(KIcon("terminal"));
++        m_runKonsoleAction->setIcon(KIcon("utilities-terminal"));
 +        connect(m_runKonsoleAction, SIGNAL(triggered(bool)), this, SLOT(runKonsole()));
 +
          m_runCommandAction = new QAction(i18n("Run Command..."), this);


Index: kdebase-workspace.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kdebase-workspace/F-12/kdebase-workspace.spec,v
retrieving revision 1.333
retrieving revision 1.334
diff -u -p -r1.333 -r1.334
--- kdebase-workspace.spec	3 Apr 2010 11:30:12 -0000	1.333
+++ kdebase-workspace.spec	7 Apr 2010 23:07:56 -0000	1.334
@@ -8,7 +8,6 @@
 %define _default_patch_fuzz 2
 
 %if 0%{?fedora} > 12
-# TODO/FIXME: handle the new plymouth --ping style/case
 %define plymouth_hack_ping 1
 %else
 %define plymouth_hack_spool 1
@@ -22,7 +21,7 @@
 Summary: KDE Workspace
 Name:    kdebase-workspace
 Version: 4.4.2
-Release: 1%{?dist}
+Release: 3%{?dist}
 
 License: GPLv2
 Group:   User Interface/Desktops
@@ -55,14 +54,16 @@ Patch16: kdebase-workspace-4.3.98-batter
 # to the classic menu (as in KDE <= 4.2.x); the default is still the upstream
 # default Leave submenu
 Patch17: kdebase-workspace-4.4.0-classicmenu-logout.patch
-Patch19: kdebase-workspace-4.3.4-kdm_plymouth.patch
+Patch18: kdebase-workspace-4.3.4-kdm_plymouth.patch
+# kubuntu kudos! bulletproof-X bits ripped out
+Patch19: kdebase-workspace-4.4.2-kdm_plymouth081.patch
 Patch20: kdebase-workspace-4.3.80-xsession_errors_O_APPEND.patch
 # support the widgetStyle4 hack in the Qt KDE platform plugin
 Patch21: kdebase-workspace-4.3.98-platformplugin-widgetstyle4.patch
 # fix the Games menu in the classic menu mixing up Name and Description
 Patch22: kdebase-workspace-4.4.0-classicmenu-games.patch
 
-# upstream patches:
+# upstreamable patches:
 # "keyboard stops working", https://bugs.kde.org/show_bug.cgi?id=171685#c135
 Patch50: kdebase-workspace-4.3.3-kde#171685.patch
 # kubuntu working to upstream this
@@ -320,6 +321,9 @@ Requires: akonadi
 %patch16 -p1 -b .showremainingtime
 %patch17 -p1 -b .classicmenu-logout
 %if 0%{?plymouth_hack_spool}
+%patch18 -p1 -b .kdm_plymouth
+%endif
+%if 0%{?plymouth_hack_ping}
 %patch19 -p1 -b .kdm_plymouth
 %endif
 %patch20 -p1 -b .xsession_errors_O_APPEND
@@ -684,6 +688,18 @@ fi
 
 
 %changelog
+* Wed Apr 07 2010 Kevin Kofler <Kevin at tigcc.ticalc.org> - 4.4.2-3
+- rip out bulletproof X changes (cf. kubuntu_33_kdm_bulletproof_x.diff) from
+  our copy of kubuntu_34_kdm_plymouth_transition.diff
+- drop experimental novt patch, should not be needed with the working Plymouth
+  integration and may have side effects (can readd it later if really needed)
+- fix icon name in plasma-konsole patch: use XDG icon instead of kappfinder one
+
+* Tue Apr 06 2010 Rex Dieter <rdieter at fedoraproject.org> - 4.4.2-2
+- try to workaround "X server hogs the CPU (#577482)" by letting X
+  choose vt itself
+- include (but not yet apply) kubuntu_34_kdm_plymouth_transition.diff
+
 * Mon Mar 29 2010 Lukas Tinkl <ltinkl at redhat.com> - 4.4.2-1
 - 4.4.2
 



More information about the scm-commits mailing list