rpms/kdelibs/devel kdelibs-4.0.3-klauncher-crash.patch, NONE, 1.1 kdelibs-4.0.3-kconfig_sync_crash.patch, 1.1, 1.2 kdelibs.spec, 1.304, 1.305

Than Ngo (than) fedora-extras-commits at redhat.com
Fri Apr 4 12:34:33 UTC 2008


Author: than

Update of /cvs/extras/rpms/kdelibs/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv24597

Modified Files:
	kdelibs-4.0.3-kconfig_sync_crash.patch kdelibs.spec 
Added Files:
	kdelibs-4.0.3-klauncher-crash.patch 
Log Message:
- apply upstream patch to fix klauncher crash


kdelibs-4.0.3-klauncher-crash.patch:

--- NEW FILE kdelibs-4.0.3-klauncher-crash.patch ---
Index: kinit/klauncher.cpp
===================================================================
--- kinit/klauncher.cpp	(Revision 792865)
+++ kinit/klauncher.cpp	(Revision 792866)
@@ -231,16 +231,19 @@
 {
 #ifdef Q_WS_X11
    if( mCached_dpy != NULL )
+   {
        XCloseDisplay( mCached_dpy );
+       mCached_dpy = NULL;
+   }
 #endif
 }
 
 void
-KLauncher::destruct(int exit_code)
+KLauncher::destruct()
 {
     if (QCoreApplication::instance()) ((KLauncher*)QCoreApplication::instance())->close();
     // We don't delete the app here, that's intentional.
-    ::_exit(exit_code);
+    ::_exit(255);
 }
 
 void KLauncher::setLaunchEnv(const QString &name, const QString &value)
@@ -312,7 +315,7 @@
       kDebug(7016) << "Exiting on read_socket errno:" << errno;
       ::signal( SIGHUP, SIG_IGN);
       ::signal( SIGTERM, SIG_IGN);
-      destruct(255); // Exit!
+      destruct(); // Exit!
    }
    requestData.resize(request_header.arg_length);
    result = read_socket(kdeinitSocket, (char *) requestData.data(),
Index: kinit/klauncher_main.cpp
===================================================================
--- kinit/klauncher_main.cpp	(Revision 792865)
+++ kinit/klauncher_main.cpp	(Revision 792866)
@@ -35,13 +35,15 @@
 #include <QtCore/QCoreApplication>
 
 #ifndef Q_WS_WIN
+static int sigpipe[ 2 ];
 static void sig_handler(int sig_num)
 {
    // No recursion
    signal( SIGHUP, SIG_IGN);
    signal( SIGTERM, SIG_IGN);
-fprintf(stderr, "klauncher: Exiting on signal %d\n", sig_num);
-   KLauncher::destruct(255);
+   fprintf(stderr, "klauncher: Exiting on signal %d\n", sig_num);
+   char tmp = 'x';
+   write( sigpipe[ 1 ], &tmp, 1 );
 }
 #endif
 
@@ -103,6 +105,9 @@
    QDBusConnection::sessionBus().registerObject("/", launcher);
 
 #ifndef Q_WS_WIN
+   pipe( sigpipe );
+   QSocketNotifier* signotif = new QSocketNotifier( sigpipe[ 0 ], QSocketNotifier::Read, launcher );
+   QObject::connect( signotif, SIGNAL( activated( int )), launcher, SLOT( destruct()));
    KCrash::setEmergencySaveFunction(sig_handler);
    signal( SIGHUP, sig_handler);
    signal( SIGPIPE, SIG_IGN);
Index: kinit/klauncher.h
===================================================================
--- kinit/klauncher.h	(Revision 792865)
+++ kinit/klauncher.h	(Revision 792866)
@@ -123,8 +123,10 @@
    ~KLauncher();
 
    void close();
-   static void destruct(int exit_code); // exit!
 
+public slots:
+   void destruct(); // exit!
+
 protected:
    void processDied(pid_t pid, long exitStatus);
 

kdelibs-4.0.3-kconfig_sync_crash.patch:

Index: kdelibs-4.0.3-kconfig_sync_crash.patch
===================================================================
RCS file: /cvs/extras/rpms/kdelibs/devel/kdelibs-4.0.3-kconfig_sync_crash.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- kdelibs-4.0.3-kconfig_sync_crash.patch	4 Apr 2008 12:13:52 -0000	1.1
+++ kdelibs-4.0.3-kconfig_sync_crash.patch	4 Apr 2008 12:33:41 -0000	1.2
@@ -1,5 +1,5 @@
---- branches/KDE/4.0/kdelibs/kdecore/kernel/kglobal.cpp	2008/01/04 09:09:11	757128
-+++ branches/KDE/4.0/kdelibs/kdecore/kernel/kglobal.cpp	2008/04/04 08:48:53	793504
+--- kdelibs/kdecore/kernel/kglobal.cpp	2008/01/04 09:09:11	757128
++++ kdelibs/kdecore/kernel/kglobal.cpp	2008/04/04 08:48:53	793504
 @@ -28,6 +28,12 @@
  #include "kglobal.h"
  #include "kglobal_p.h"


Index: kdelibs.spec
===================================================================
RCS file: /cvs/extras/rpms/kdelibs/devel/kdelibs.spec,v
retrieving revision 1.304
retrieving revision 1.305
diff -u -r1.304 -r1.305
--- kdelibs.spec	4 Apr 2008 12:13:52 -0000	1.304
+++ kdelibs.spec	4 Apr 2008 12:33:41 -0000	1.305
@@ -1,7 +1,7 @@
 
 Summary: K Desktop Environment 4 - Libraries
 Version: 4.0.3
-Release: 5%{?dist}
+Release: 6%{?dist}
 
 %if 0%{?fedora} > 8
 Name: kdelibs
@@ -84,6 +84,7 @@
 # based on SVN commit 793504 by dfaure
 # Move the umask value out of KConfigPrivate to avoid a crash on exit when ~KConfig calls sync.
 Patch100: kdelibs-4.0.3-kconfig_sync_crash.patch 
+Patch101: kdelibs-4.0.3-klauncher-crash.patch
 
 BuildRequires: qt4-devel >= 4.3.0
 Requires: qt4 >= %{_qt4_version} 
@@ -204,8 +205,8 @@
 %patch13 -p1 -b .fedora-buildtype
 %patch14 -p1 -b .libexecdir
 
-%patch100 -p4 -b .kconfig_sync_crash
-
+%patch100 -p1 -b .kconfig_sync_crash
+%patch101 -p1 -b .klauncher-crash
 
 %build
 
@@ -365,6 +366,9 @@
 
 
 %changelog
+* Fri Apr 04 2008 Than Ngo <than at redhat.com> -  4.0.3-6
+- apply upstream patch to fix klauncher crash
+
 * Fri Apr  4 2008 Rex Dieter <rdieter at fedoraproject.org> 4.0.3-5
 - kconfig_sync_crash patch
 




More information about the scm-commits mailing list