Package: kshutdown
Version: 2.0beta12-3
Severity: serious
Tags: patch
Justification: fails to build from source (but built successfully in the past)

Hi,

kshutdown 2.0beta12 fails to build on the Debian non-linux architectures
(kfreebsd and hurd); even the DefineForKfreebsd.patch does not help (and it is
not correct anyway).
The attached patch fixes the following issues:
- src/main.cpp: instead of restrict the gtk+ style on linux, make it valid on
  any X11-based platform
- src/triggers/processmonitor.h: enable the process handling for kfreebsd
  (note: it is not Q_OS_FREEBSD, which indicates proper freebsd) and hurd
- src/triggers/processmonitor.cpp: tweak the "ps" command invocation to work
  on both linux (tested on current testing/wheezy) and hurd.
Note this patch replaces completely the current DefineForKfreebsd.patch.

Can you please review and report to upstream?

Thanks,
-- 
Pino
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -18,9 +18,9 @@
 #ifdef KS_PURE_QT
 	#include <QApplication>
 	#include <QLocale>
-	#ifdef Q_OS_LINUX
+	#ifdef Q_WS_X11
 		#include <QStyleFactory>
-	#endif // Q_OS_LINUX
+	#endif // Q_WS_X11
 	#include <QTranslator>
 #else
 	#include <KAboutData>
@@ -112,13 +112,13 @@
 	QApplication::setApplicationName("KShutdown");
 	KShutdownApplication program(argc, argv);
 
-	#ifdef Q_OS_LINUX
+	#ifdef Q_WS_X11
 	if (Utils::isGNOME() || Utils::isXfce()) {
 		QStyle *gtkStyle = QStyleFactory::create("gtk+");
 		if (gtkStyle)
 			QApplication::setStyle(gtkStyle);
 	}
-	#endif // Q_OS_LINUX
+	#endif //WS_X111
 
 	// init i18n
 	QString lang = QLocale::system().name();
--- a/src/triggers/processmonitor.cpp
+++ b/src/triggers/processmonitor.cpp
@@ -182,11 +182,9 @@
 	// show all processes
 	args << "-A";
 	// order: user pid command
-	args << "-o" << "user=";
-	args << "-o" << "pid=";
-	args << "-o" << "comm=";
+	args << "-o" << "user=,pid=command=";
 	// sort by command
-	args << "--sort" << "comm";
+	args << "--sort" << "command";
 
 	// start process
 	m_refreshProcess->start("ps", args);
--- a/src/triggers/processmonitor.h
+++ b/src/triggers/processmonitor.h
@@ -18,7 +18,7 @@
 #ifndef KSHUTDOWN_PROCESSMONITOR_H
 #define KSHUTDOWN_PROCESSMONITOR_H
 
-#ifdef Q_OS_LINUX
+#if defined(Q_OS_LINUX) || defined(__FreeBSD_kernel__) || defined(Q_OS_HURD)
 	#define KS_TRIGGER_PROCESS_MONITOR
 #endif // Q_OS_LINUX
 

Reply via email to