summaryrefslogtreecommitdiff
path: root/x11/kde-workspace4/patches
diff options
context:
space:
mode:
authormarkd <markd@pkgsrc.org>2012-03-19 19:44:01 +0000
committermarkd <markd@pkgsrc.org>2012-03-19 19:44:01 +0000
commit256fbde4b6175e4995420b9ba39c8716335f6e4f (patch)
tree82e0640b43ad37aeca70fc0e0a0799a6ce4c1bdc /x11/kde-workspace4/patches
parentae85a1b136c089510e42bbf715902b211b428f6f (diff)
downloadpkgsrc-256fbde4b6175e4995420b9ba39c8716335f6e4f.tar.gz
Update to KDE SC 4.8.0
add kactivities rename kdebase4 -> kde-baseapps4 rename kdebase-runtime4 -> kde-runtime4 rename kdebase-workspace4 -> kde-workspace4 rename kdebindings4-python -> py-kde4
Diffstat (limited to 'x11/kde-workspace4/patches')
-rw-r--r--x11/kde-workspace4/patches/patch-kcontrol_keyboard_xkb_rules.cpp41
-rw-r--r--x11/kde-workspace4/patches/patch-kdm_config.def28
-rw-r--r--x11/kde-workspace4/patches/patch-kdm_kcm_main.cpp20
-rw-r--r--x11/kde-workspace4/patches/patch-kdm_kfrontend_CMakeLists.txt11
-rw-r--r--x11/kde-workspace4/patches/patch-ksysguard_example_CMakeLists.txt8
-rw-r--r--x11/kde-workspace4/patches/patch-ksysguard_ksysguardd_NetBSD_CPU.c67
-rw-r--r--x11/kde-workspace4/patches/patch-ksysguard_ksysguardd_NetBSD_CPU.h15
-rw-r--r--x11/kde-workspace4/patches/patch-ksysguard_ksysguardd_NetBSD_Memory.c112
-rw-r--r--x11/kde-workspace4/patches/patch-ksysguard_ksysguardd_NetBSD_Memory.h23
-rw-r--r--x11/kde-workspace4/patches/patch-libs_ksysguard_ksgrd_SensorManager.cpp12
-rw-r--r--x11/kde-workspace4/patches/patch-libs_ksysguard_processcore_CMakeLists.txt24
-rw-r--r--x11/kde-workspace4/patches/patch-libs_ksysguard_processcore_processes.cpp20
-rw-r--r--x11/kde-workspace4/patches/patch-mkpamserv12
-rw-r--r--x11/kde-workspace4/patches/patch-plasma_generic_applets_digital-clock_clock.cpp53
-rw-r--r--x11/kde-workspace4/patches/patch-plasma_generic_dataengines_rss_CMakeLists.txt13
-rw-r--r--x11/kde-workspace4/patches/patch-startkde.cmake33
16 files changed, 492 insertions, 0 deletions
diff --git a/x11/kde-workspace4/patches/patch-kcontrol_keyboard_xkb_rules.cpp b/x11/kde-workspace4/patches/patch-kcontrol_keyboard_xkb_rules.cpp
new file mode 100644
index 00000000000..9cb448b5bd0
--- /dev/null
+++ b/x11/kde-workspace4/patches/patch-kcontrol_keyboard_xkb_rules.cpp
@@ -0,0 +1,41 @@
+$NetBSD: patch-kcontrol_keyboard_xkb_rules.cpp,v 1.1 2012/03/19 19:44:03 markd Exp $
+
+Handle location of xkb/rules in NetBSD's intree X11R7
+(/usr/X11R7/lib/X11/xkb/rules)
+
+--- kcontrol/keyboard/xkb_rules.cpp.orig 2010-08-27 10:10:21.000000000 +0200
++++ kcontrol/keyboard/xkb_rules.cpp 2011-01-11 21:47:03.000000000 +0100
+@@ -138,12 +138,18 @@
+ {
+ QString rulesFile;
+ QString rulesName = Rules::getRulesName();
++ QString xkbRulesSubDir = "xkb/rules";
+
+ if ( ! rulesName.isNull() ) {
+ QString xkbParentDir;
+
+ QString base(XLIBDIR);
+ if( base.count('/') >= 3 ) {
++ // /usr/X11R7/lib/X11 with xkb/rules subdirectory below it
++ QDir xkbRulesDir(base + "/" + xkbRulesSubDir);
++ if( xkbRulesDir.exists() ) {
++ xkbParentDir = base;
++ } else {
+ // .../usr/lib/X11 -> /usr/share/X11/xkb vs .../usr/X11/lib -> /usr/X11/share/X11/xkb
+ QString delta = base.endsWith("X11") ? "/../../share/X11" : "/../share/X11";
+ QDir baseDir(base + delta);
+@@ -157,12 +163,13 @@
+ }
+ }
+ }
++ }
+
+ if( xkbParentDir.isEmpty() ) {
+ xkbParentDir = "/usr/share/X11";
+ }
+
+- rulesFile = QString("%1/xkb/rules/%2.xml").arg(xkbParentDir, rulesName);
++ rulesFile = QString("%1/%2/%3.xml").arg(xkbParentDir, xkbRulesSubDir, rulesName);
+ }
+
+ return rulesFile;
diff --git a/x11/kde-workspace4/patches/patch-kdm_config.def b/x11/kde-workspace4/patches/patch-kdm_config.def
new file mode 100644
index 00000000000..f80defa4294
--- /dev/null
+++ b/x11/kde-workspace4/patches/patch-kdm_config.def
@@ -0,0 +1,28 @@
+$NetBSD: patch-kdm_config.def,v 1.1 2012/03/19 19:44:03 markd Exp $
+
+NetBSD server args
+
+--- kdm/config.def.orig 2009-07-30 07:44:51.000000000 +1200
++++ kdm/config.def
+@@ -74,6 +74,12 @@
+ #else
+ # define DEF_SERVER_CMD XBINDIR "/X"
+ #endif
++
++#if defined(__NetBSD__) && !defined(__powerpc__)
++# define DEF_SERVER_ARGS "-nolisten tcp vt05"
++#else
++# define DEF_SERVER_ARGS "-nolisten tcp"
++#endif
+ </code>
+
+ # The contents of this section are copied mostly verbatim to the
+@@ -1361,7 +1367,7 @@ Key: ServerArgsLocal
+ Type: string
+ Default: ""
+ User: core
+-Instance: :*/"-nolisten tcp"
++Instance: :*/DEF_SERVER_ARGS
+ Comment: &
+ Description:
+ Additional arguments for the &X-Server;s for local sessions.
diff --git a/x11/kde-workspace4/patches/patch-kdm_kcm_main.cpp b/x11/kde-workspace4/patches/patch-kdm_kcm_main.cpp
new file mode 100644
index 00000000000..e840c1ce98e
--- /dev/null
+++ b/x11/kde-workspace4/patches/patch-kdm_kcm_main.cpp
@@ -0,0 +1,20 @@
+$NetBSD: patch-kdm_kcm_main.cpp,v 1.1 2012/03/19 19:44:03 markd Exp $
+
+Allow $PKG_SYSCONFDIR/kdm/kdmrc to override the one under $PREFIX
+
+--- kdm/kcm/main.cpp.orig 2010-05-27 17:23:09.000000000 +0000
++++ kdm/kcm/main.cpp
+@@ -281,8 +281,12 @@ KConfig *KDModule::createTempConfig()
+ pTempConfigFile->open();
+ QString tempConfigName = pTempConfigFile->fileName();
+
++ QFile confFile (QString::fromLatin1( "@PKG_SYSCONFDIR@" "/kdm/kdmrc" ));
++ if ( !confFile.exists() )
++ confFile.setFileName (QString::fromLatin1( KDE_CONFDIR "/kdm/kdmrc" ));
++
+ KConfig *pSystemKDMConfig = new KConfig(
+- QString::fromLatin1(KDE_CONFDIR "/kdm/kdmrc"), KConfig::SimpleConfig);
++ confFile.fileName(), KConfig::SimpleConfig);
+
+ KConfig *pTempConfig = pSystemKDMConfig->copyTo(tempConfigName);
+ pTempConfig->sync();
diff --git a/x11/kde-workspace4/patches/patch-kdm_kfrontend_CMakeLists.txt b/x11/kde-workspace4/patches/patch-kdm_kfrontend_CMakeLists.txt
new file mode 100644
index 00000000000..5b7002b8974
--- /dev/null
+++ b/x11/kde-workspace4/patches/patch-kdm_kfrontend_CMakeLists.txt
@@ -0,0 +1,11 @@
+$NetBSD: patch-kdm_kfrontend_CMakeLists.txt,v 1.1 2012/03/19 19:44:03 markd Exp $
+
+--- kdm/kfrontend/CMakeLists.txt.orig 2010-03-10 10:42:50.000000000 +0000
++++ kdm/kfrontend/CMakeLists.txt
+@@ -114,5 +114,5 @@ install(TARGETS kdmctl ${INSTALL_TARGETS
+
+ # use 'GENKDMCONF_FLAGS=... make install' to add flags to the config generation (try genkdmconf -h)
+ install(CODE "
+-exec_program(\"${CMAKE_CURRENT_BINARY_DIR}/genkdmconf\" ARGS --in \\\"\\\$DESTDIR${CONFIG_INSTALL_DIR}/kdm\\\" --no-in-notice --face-src \\\"${CMAKE_CURRENT_SOURCE_DIR}/pics\\\" \\\$GENKDMCONF_FLAGS)
++exec_program(\"${CMAKE_CURRENT_BINARY_DIR}/genkdmconf\" ARGS --in \\\"\\\$DESTDIR${CONFIG_INSTALL_DIR}/kdm\\\" --no-in-notice --no-old --no-backup --face-src \\\"${CMAKE_CURRENT_SOURCE_DIR}/pics\\\" \\\$GENKDMCONF_FLAGS)
+ ")
diff --git a/x11/kde-workspace4/patches/patch-ksysguard_example_CMakeLists.txt b/x11/kde-workspace4/patches/patch-ksysguard_example_CMakeLists.txt
new file mode 100644
index 00000000000..be2d2c39f36
--- /dev/null
+++ b/x11/kde-workspace4/patches/patch-ksysguard_example_CMakeLists.txt
@@ -0,0 +1,8 @@
+$NetBSD: patch-ksysguard_example_CMakeLists.txt,v 1.1 2012/03/19 19:44:03 markd Exp $
+
+--- ksysguard/example/CMakeLists.txt.orig 2007-12-23 11:54:28.000000000 +1300
++++ ksysguard/example/CMakeLists.txt
+@@ -1,2 +1,2 @@
+-install( FILES ksysguarddrc DESTINATION ${SYSCONF_INSTALL_DIR} )
++install( FILES ksysguarddrc DESTINATION ${CMAKE_INSTALL_PREFIX}/share/examples/kde-workspace4 )
+ install( FILES ksysguard.notifyrc DESTINATION ${DATA_INSTALL_DIR}/ksysguard )
diff --git a/x11/kde-workspace4/patches/patch-ksysguard_ksysguardd_NetBSD_CPU.c b/x11/kde-workspace4/patches/patch-ksysguard_ksysguardd_NetBSD_CPU.c
new file mode 100644
index 00000000000..d8ad8b18e0b
--- /dev/null
+++ b/x11/kde-workspace4/patches/patch-ksysguard_ksysguardd_NetBSD_CPU.c
@@ -0,0 +1,67 @@
+$NetBSD: patch-ksysguard_ksysguardd_NetBSD_CPU.c,v 1.1 2012/03/19 19:44:03 markd Exp $
+
+--- ksysguard/ksysguardd/NetBSD/CPU.c.orig 2008-01-05 12:55:45.000000000 +1300
++++ ksysguard/ksysguardd/NetBSD/CPU.c
+@@ -49,12 +49,16 @@ initCpuInfo(struct SensorModul* sm)
+ registerMonitor("cpu/system/nice", "integer", printCPUNice, printCPUNiceInfo, sm);
+ registerMonitor("cpu/system/sys", "integer", printCPUSys, printCPUSysInfo, sm);
+ registerMonitor("cpu/system/idle", "integer", printCPUIdle, printCPUIdleInfo, sm);
++ registerMonitor("cpu/system/intr", "integer", printCPUIntr, printCPUIntrInfo, sm);
++ /* linux compat */
++ registerMonitor("cpu/system/wait", "integer", printCPUWait, printCPUWaitInfo, sm);
+
+ /* Monitor names changed from kde3 => kde4. Remain compatible with legacy requests when possible. */
+ registerLegacyMonitor("cpu/user", "integer", printCPUUser, printCPUUserInfo, sm);
+ registerLegacyMonitor("cpu/nice", "integer", printCPUNice, printCPUNiceInfo, sm);
+ registerLegacyMonitor("cpu/sys", "integer", printCPUSys, printCPUSysInfo, sm);
+ registerLegacyMonitor("cpu/idle", "integer", printCPUIdle, printCPUIdleInfo, sm);
++ registerMonitor("cpu/wait", "integer", printCPUWait, printCPUWaitInfo, sm);
+
+ updateCpuInfo();
+ }
+@@ -66,12 +70,15 @@ exitCpuInfo(void)
+ removeMonitor("cpu/system/nice");
+ removeMonitor("cpu/system/sys");
+ removeMonitor("cpu/system/idle");
++ removeMonitor("cpu/system/intr");
++ removeMonitor("cpu/system/wait");
+
+ /* These were registered as legacy monitors */
+ removeMonitor("cpu/user");
+ removeMonitor("cpu/nice");
+ removeMonitor("cpu/sys");
+ removeMonitor("cpu/idle");
++ removeMonitor("cpu/wait");
+ }
+
+ int
+@@ -136,6 +143,29 @@ printCPUIdleInfo(const char* cmd)
+ fprintf(CurrentClient, "CPU Idle Load\t0\t100\t%%\n");
+ }
+
++void
++printCPUIntr(const char* cmd)
++{
++ fprintf(CurrentClient, "%d\n", cpu_states[CP_INTR]/10);
++}
++
++void
++printCPUIntrInfo(const char* cmd)
++{
++ fprintf(CurrentClient, "CPU Interrupt Load\t0\t100\t%%\n");
++}
++
++void
++printCPUWait(const char* cmd)
++{
++ fprintf(CurrentClient, "0\n");
++}
++
++void
++printCPUWaitInfo(const char* cmd)
++{
++ fprintf(CurrentClient, "CPU Wait Load\t0\t100\t%%\n");
++}
+
+ /* The part ripped from top... */
+ /*
diff --git a/x11/kde-workspace4/patches/patch-ksysguard_ksysguardd_NetBSD_CPU.h b/x11/kde-workspace4/patches/patch-ksysguard_ksysguardd_NetBSD_CPU.h
new file mode 100644
index 00000000000..a5aae02f27d
--- /dev/null
+++ b/x11/kde-workspace4/patches/patch-ksysguard_ksysguardd_NetBSD_CPU.h
@@ -0,0 +1,15 @@
+$NetBSD: patch-ksysguard_ksysguardd_NetBSD_CPU.h,v 1.1 2012/03/19 19:44:03 markd Exp $
+
+--- ksysguard/ksysguardd/NetBSD/CPU.h.save 2006-10-26 15:12:41.000000000 +1300
++++ ksysguard/ksysguardd/NetBSD/CPU.h
+@@ -37,6 +37,10 @@ void printCPUSys(const char* cmd);
+ void printCPUSysInfo(const char* cmd);
+ void printCPUIdle(const char* cmd);
+ void printCPUIdleInfo(const char* cmd);
++void printCPUIntr(const char* cmd);
++void printCPUIntrInfo(const char* cmd);
++void printCPUWait(const char* cmd);
++void printCPUWaitInfo(const char* cmd);
+ void printCPUxUser(const char* cmd);
+ void printCPUxUserInfo(const char* cmd);
+ void printCPUxNice(const char* cmd);
diff --git a/x11/kde-workspace4/patches/patch-ksysguard_ksysguardd_NetBSD_Memory.c b/x11/kde-workspace4/patches/patch-ksysguard_ksysguardd_NetBSD_Memory.c
new file mode 100644
index 00000000000..2c4076dd3d0
--- /dev/null
+++ b/x11/kde-workspace4/patches/patch-ksysguard_ksysguardd_NetBSD_Memory.c
@@ -0,0 +1,112 @@
+$NetBSD: patch-ksysguard_ksysguardd_NetBSD_Memory.c,v 1.1 2012/03/19 19:44:03 markd Exp $
+
+--- ksysguard/ksysguardd/NetBSD/Memory.c.orig 2008-01-05 12:55:45.000000000 +1300
++++ ksysguard/ksysguardd/NetBSD/Memory.c
+@@ -49,10 +49,13 @@ static size_t Inactive = 0;
+ static size_t Wired = 0;
+ static size_t Execpages = 0;
+ static size_t Filepages = 0;
++static size_t Anonpages = 0;
+ static size_t STotal = 0;
+ static size_t SFree = 0;
+ static size_t SUsed = 0;
+
++static size_t Appl = 0;
++
+ void
+ initMemory(struct SensorModul* sm)
+ {
+@@ -63,8 +66,13 @@ initMemory(struct SensorModul* sm)
+ registerMonitor("mem/physical/wired", "integer", printWired, printWiredInfo, sm);
+ registerMonitor("mem/physical/execpages", "integer", printExecpages, printExecpagesInfo, sm);
+ registerMonitor("mem/physical/filepages", "integer", printFilepages, printFilepagesInfo, sm);
++ registerMonitor("mem/physical/anonpages", "integer", printAnonpages, printAnonpagesInfo, sm);
+ registerMonitor("mem/swap/free", "integer", printSwapFree, printSwapFreeInfo, sm);
+ registerMonitor("mem/swap/used", "integer", printSwapUsed, printSwapUsedInfo, sm);
++
++ registerMonitor( "mem/physical/application", "integer", printAppl, printApplInfo, sm );
++ registerMonitor( "mem/physical/buf", "integer", printBuffers, printBuffersInfo, sm );
++ registerMonitor( "mem/physical/cached", "integer", printCached, printCachedInfo, sm );
+ }
+
+ void
+@@ -93,7 +101,8 @@ updateMemory(void)
+
+ len = sizeof(x);
+ STotal = SUsed = SFree = -1;
+- Active = Inactive = Wired = Execpages = Filepages = MFree = Used = -1;
++ Active = Inactive = Wired = Execpages = Filepages = Anonpages = -1;
++ MFree = Used = -1;
+ if (-1 < sysctl(mib, ARRLEN(mib), &x, &len, NULL, 0)) {
+ STotal = (x.pagesize*x.swpages) >> 10;
+ SUsed = (x.pagesize*x.swpginuse) >> 10;
+@@ -104,7 +113,9 @@ updateMemory(void)
+ Wired = (x.wired * x.pagesize) >> 10;
+ Execpages = (x.execpages * x.pagesize) >> 10;
+ Filepages = (x.filepages * x.pagesize) >> 10;
++ Anonpages = (x.anonpages * x.pagesize) >> 10;
+ Used = Total - MFree;
++ Appl = Active - Filepages;
+ }
+ }
+ return 0;
+@@ -195,6 +206,18 @@ printFilepagesInfo(const char* cmd)
+ }
+
+ void
++printAnonpages(const char* cmd)
++{
++ fprintf(CurrentClient, "%d\n", Anonpages);
++}
++
++void
++printAnonpagesInfo(const char* cmd)
++{
++ fprintf(CurrentClient, "Anon Pages\t0\t%d\tKB\n", Total);
++}
++
++void
+ printSwapUsed(const char* cmd)
+ {
+ fprintf(CurrentClient, "%d\n", SUsed);
+@@ -217,3 +240,40 @@ printSwapFreeInfo(const char* cmd)
+ {
+ fprintf(CurrentClient, "Free Swap Memory\t0\t%d\tKB\n", STotal);
+ }
++
++/* Linux compat */
++void
++printBuffers(const char* cmd)
++{
++ fprintf(CurrentClient, "%d\n", Filepages /* + bufmem */);
++}
++
++void
++printBuffersInfo(const char* cmd)
++{
++ fprintf(CurrentClient, "Buffer Memory\t0\t%d\tKB\n", Total);
++}
++
++void
++printCached(const char* cmd)
++{
++ fprintf(CurrentClient, "0\n");
++}
++
++void
++printCachedInfo(const char* cmd)
++{
++ fprintf(CurrentClient, "Cached Memory\t0\t%d\tKB\n", Total);
++}
++
++void
++printAppl(const char* cmd)
++{
++ fprintf(CurrentClient, "%d\n", Appl);
++}
++
++void
++printApplInfo(const char* cmd)
++{
++ fprintf(CurrentClient, "Application Memory\t0\t%d\tKB\n", Total);
++}
diff --git a/x11/kde-workspace4/patches/patch-ksysguard_ksysguardd_NetBSD_Memory.h b/x11/kde-workspace4/patches/patch-ksysguard_ksysguardd_NetBSD_Memory.h
new file mode 100644
index 00000000000..81776092078
--- /dev/null
+++ b/x11/kde-workspace4/patches/patch-ksysguard_ksysguardd_NetBSD_Memory.h
@@ -0,0 +1,23 @@
+$NetBSD: patch-ksysguard_ksysguardd_NetBSD_Memory.h,v 1.1 2012/03/19 19:44:03 markd Exp $
+
+--- ksysguard/ksysguardd/NetBSD/Memory.h.orig 2008-01-05 12:55:45.000000000 +1300
++++ ksysguard/ksysguardd/NetBSD/Memory.h
+@@ -41,9 +41,18 @@ void printExecpages(const char* cmd);
+ void printExecpagesInfo(const char* cmd);
+ void printFilepages(const char* cmd);
+ void printFilepagesInfo(const char* cmd);
++void printAnonpages(const char* cmd);
++void printAnonpagesInfo(const char* cmd);
+ void printSwapUsed(const char* cmd);
+ void printSwapUsedInfo(const char* cmd);
+ void printSwapFree(const char* cmd);
+ void printSwapFreeInfo(const char* cmd);
+
++void printAppl(const char* cmd);
++void printApplInfo(const char* cmd);
++void printBuffers(const char* cmd);
++void printBuffersInfo(const char* cmd);
++void printCached(const char* cmd);
++void printCachedInfo(const char* cmd);
++
+ #endif
diff --git a/x11/kde-workspace4/patches/patch-libs_ksysguard_ksgrd_SensorManager.cpp b/x11/kde-workspace4/patches/patch-libs_ksysguard_ksgrd_SensorManager.cpp
new file mode 100644
index 00000000000..b8830e92f23
--- /dev/null
+++ b/x11/kde-workspace4/patches/patch-libs_ksysguard_ksgrd_SensorManager.cpp
@@ -0,0 +1,12 @@
+$NetBSD: patch-libs_ksysguard_ksgrd_SensorManager.cpp,v 1.1 2012/03/19 19:44:03 markd Exp $
+
+--- libs/ksysguard/ksgrd/SensorManager.cpp.orig 2011-04-01 10:52:43.000000000 +0000
++++ libs/ksysguard/ksgrd/SensorManager.cpp
+@@ -81,6 +81,7 @@ void SensorManager::retranslate()
+ mDict.insert( QLatin1String( "wired" ), i18n( "Wired Memory" ) );
+ mDict.insert( QLatin1String( "execpages" ), i18n( "Exec Pages" ) );
+ mDict.insert( QLatin1String( "filepages" ), i18n( "File Pages" ) );
++ mDict.insert( QLatin1String( "anonpages" ), i18n( "Anon Pages" ) );
+
+ /* Processes */
+ mDict.insert( QLatin1String( "processes" ), i18n( "Processes" ) );
diff --git a/x11/kde-workspace4/patches/patch-libs_ksysguard_processcore_CMakeLists.txt b/x11/kde-workspace4/patches/patch-libs_ksysguard_processcore_CMakeLists.txt
new file mode 100644
index 00000000000..81c74ccf727
--- /dev/null
+++ b/x11/kde-workspace4/patches/patch-libs_ksysguard_processcore_CMakeLists.txt
@@ -0,0 +1,24 @@
+$NetBSD: patch-libs_ksysguard_processcore_CMakeLists.txt,v 1.1 2012/03/19 19:44:03 markd Exp $
+
+--- libs/ksysguard/processcore/CMakeLists.txt.orig 2010-06-16 12:02:57.000000000 +0000
++++ libs/ksysguard/processcore/CMakeLists.txt
+@@ -18,7 +18,7 @@ target_link_libraries(processcore ${KDE4
+ target_link_libraries(processcore LINK_INTERFACE_LIBRARIES ${KDE4_KDECORE_LIBS} )
+ if( ${CMAKE_SYSTEM_NAME} MATCHES "NetBSD" )
+ message(STATUS "Adding kvm library on NetBSD")
+- target_link_libraries(processcore kvm)
++ target_link_libraries(processcore kvm ${RT_LIB_SCHED})
+ endif( ${CMAKE_SYSTEM_NAME} MATCHES "NetBSD" )
+
+ set_target_properties(processcore PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
+@@ -39,6 +39,10 @@ set(ksysguardprocesslist_helper_srcs
+
+ kde4_add_executable(ksysguardprocesslist_helper ${ksysguardprocesslist_helper_srcs})
+ target_link_libraries(ksysguardprocesslist_helper ${KDE4_KDECORE_LIBS})
++if( ${CMAKE_SYSTEM_NAME} MATCHES "NetBSD" )
++ message(STATUS "Adding kvm library on NetBSD")
++ target_link_libraries(ksysguardprocesslist_helper kvm)
++endif( ${CMAKE_SYSTEM_NAME} MATCHES "NetBSD" )
+ install(TARGETS ksysguardprocesslist_helper DESTINATION ${LIBEXEC_INSTALL_DIR})
+
+ kde4_install_auth_helper_files(ksysguardprocesslist_helper org.kde.ksysguard.processlisthelper root)
diff --git a/x11/kde-workspace4/patches/patch-libs_ksysguard_processcore_processes.cpp b/x11/kde-workspace4/patches/patch-libs_ksysguard_processcore_processes.cpp
new file mode 100644
index 00000000000..8f668ef5176
--- /dev/null
+++ b/x11/kde-workspace4/patches/patch-libs_ksysguard_processcore_processes.cpp
@@ -0,0 +1,20 @@
+$NetBSD: patch-libs_ksysguard_processcore_processes.cpp,v 1.1 2012/03/19 19:44:04 markd Exp $
+
+--- libs/ksysguard/processcore/processes.cpp.orig 2010-06-16 12:02:57.000000000 +0000
++++ libs/ksysguard/processcore/processes.cpp
+@@ -206,6 +206,7 @@ bool Processes::updateProcessInfo(Proces
+ }
+ #endif
+ if(d->mUpdateFlags.testFlag(Processes::IOStatistics)) {
++#ifndef Q_OS_NETBSD
+ if( d->mHavePreviousIoValues ) {
+ ps->setIoCharactersReadRate((ps->ioCharactersRead - oldIoCharactersRead) * 1000.0 / elapsedTime);
+ ps->setIoCharactersWrittenRate((ps->ioCharactersWritten - oldIoCharactersWritten) * 1000.0 / elapsedTime);
+@@ -215,6 +216,7 @@ bool Processes::updateProcessInfo(Proces
+ ps->setIoCharactersActuallyWrittenRate((ps->ioCharactersActuallyWritten - oldIoCharactersActuallyWritten) * 1000.0 / elapsedTime);
+ } else
+ d->mHavePreviousIoValues = true;
++#endif
+ } else if(d->mHavePreviousIoValues) {
+ d->mHavePreviousIoValues = false;
+ ps->setIoCharactersReadRate(0);
diff --git a/x11/kde-workspace4/patches/patch-mkpamserv b/x11/kde-workspace4/patches/patch-mkpamserv
new file mode 100644
index 00000000000..8052395dd6a
--- /dev/null
+++ b/x11/kde-workspace4/patches/patch-mkpamserv
@@ -0,0 +1,12 @@
+$NetBSD: patch-mkpamserv,v 1.1 2012/03/19 19:44:04 markd Exp $
+
+--- mkpamserv.orig 2007-07-26 22:37:17.000000000 +1200
++++ mkpamserv
+@@ -1,5 +1,7 @@
+ #! /bin/sh
+
++exit 0
++
+ permit=false
+ if test "x$1" = x-P; then
+ permit=true
diff --git a/x11/kde-workspace4/patches/patch-plasma_generic_applets_digital-clock_clock.cpp b/x11/kde-workspace4/patches/patch-plasma_generic_applets_digital-clock_clock.cpp
new file mode 100644
index 00000000000..4d7b265dbfa
--- /dev/null
+++ b/x11/kde-workspace4/patches/patch-plasma_generic_applets_digital-clock_clock.cpp
@@ -0,0 +1,53 @@
+$NetBSD: patch-plasma_generic_applets_digital-clock_clock.cpp,v 1.1 2012/03/19 19:44:04 markd Exp $
+
+avoid an infinite loop when starting plasma. (from Sverre Froyen)
+
+--- plasma/generic/applets/digital-clock/clock.cpp.orig 2012-01-09 10:32:10.000000000 -0700
++++ plasma/generic/applets/digital-clock/clock.cpp 2012-01-10 11:57:19.000000000 -0700
+@@ -687,23 +687,36 @@ void Clock::generatePixmap()
+
+ void Clock::expandFontToMax(QFont &font, const QString &text)
+ {
+- bool first = true;
+ const QRect rect = contentsRect().toRect();
++ int tryMax = 10;
++ int trys = 0;
++ int pointSize = font.pointSize();
++ int width, height;
+
+ // Starting with the given font, increase its size until it'll fill the rect
++ // Try logic protects against an infinite loop
++ // when larger point sizes are missing
+ do {
+- if (first) {
+- first = false;
+- } else {
+- font.setPointSize(font.pointSize() + 1);
+- }
+-
++ font.setPointSize(font.pointSize() + 1);
+ const QFontMetrics fm(font);
+ QRect fr = fm.boundingRect(rect, Qt::TextSingleLine, text);
+- if (fr.width() >= rect.width() || fr.height() >= rect.height()) {
+- break;
++ if (fr.width() > width || fr.height() > height) {
++ width = fr.width();
++ height = fr.height();
++ if (width > rect.width() || height > rect.height()) {
++ break;
++ }
++ // Real point size has changed and is valid
++ pointSize = font.pointSize();
++ trys = 0;
+ }
+- } while (true);
++ else {
++ // Real point size did not change
++ trys++;
++ }
++ } while (trys < tryMax);
++
++ font.setPointSize(pointSize);
+ }
+
+ void Clock::prepareFont(QFont &font, QRect &rect, const QString &text, bool singleline)
diff --git a/x11/kde-workspace4/patches/patch-plasma_generic_dataengines_rss_CMakeLists.txt b/x11/kde-workspace4/patches/patch-plasma_generic_dataengines_rss_CMakeLists.txt
new file mode 100644
index 00000000000..3dfa994b32e
--- /dev/null
+++ b/x11/kde-workspace4/patches/patch-plasma_generic_dataengines_rss_CMakeLists.txt
@@ -0,0 +1,13 @@
+$NetBSD: patch-plasma_generic_dataengines_rss_CMakeLists.txt,v 1.1 2012/03/19 19:44:04 markd Exp $
+
+--- plasma/generic/dataengines/rss/CMakeLists.txt.orig 2009-09-16 11:40:54.000000000 +0000
++++ plasma/generic/dataengines/rss/CMakeLists.txt
+@@ -2,6 +2,8 @@ find_package(Boost REQUIRED)
+
+ include_directories(${Boost_INCLUDE_DIR} ${KDEPIMLIBS_INCLUDE_DIR})
+
++add_definitions(${KDE4_ENABLE_EXCEPTIONS})
++
+ set(rss_engine_SRCS
+ rss.cpp
+ )
diff --git a/x11/kde-workspace4/patches/patch-startkde.cmake b/x11/kde-workspace4/patches/patch-startkde.cmake
new file mode 100644
index 00000000000..f5aba28f43f
--- /dev/null
+++ b/x11/kde-workspace4/patches/patch-startkde.cmake
@@ -0,0 +1,33 @@
+$NetBSD: patch-startkde.cmake,v 1.1 2012/03/19 19:44:04 markd Exp $
+
+--- startkde.cmake.orig 2007-11-29 02:29:24.000000000 +1300
++++ startkde.cmake
+@@ -38,6 +38,12 @@ if [ -n "$bindir" ]; then
+ esac
+ fi
+
++qtbindir=@QTDIR@/bin
++case $PATH in
++ $qtbindir|$qtbindir:*|*:$qtbindir|*:$qtbindir:*) ;;
++ *) PATH=$qtbindir:$PATH; export PATH;;
++esac
++
+ # Boot sequence:
+ #
+ # kdeinit is used to fork off processes which improves memory usage
+@@ -219,11 +225,11 @@ usr_fdir=$HOME/.fonts
+
+ if test -n "$KDEDIRS"; then
+ kdedirs_first=`echo "$KDEDIRS"|sed -e 's/:.*//'`
+- sys_odir=$kdedirs_first/share/fonts/override
+- sys_fdir=$kdedirs_first/share/fonts
++ sys_odir=$kdedirs_first/share/kde/fonts/override
++ sys_fdir=$kdedirs_first/share/kde/fonts
+ else
+- sys_odir=$KDEDIR/share/fonts/override
+- sys_fdir=$KDEDIR/share/fonts
++ sys_odir=$KDEDIR/share/kde/fonts/override
++ sys_fdir=$KDEDIR/share/kde/fonts
+ fi
+
+ # We run mkfontdir on the user's font dirs (if we have permission) to pick