diff options
author | Alberto Villa <avilla@FreeBSD.org> | 2011-03-25 10:33:51 +0000 |
---|---|---|
committer | Alberto Villa <avilla@FreeBSD.org> | 2011-03-25 10:33:51 +0000 |
commit | c1f3de0f55e58790d19f686e510418e212aee85c (patch) | |
tree | 9c83366b7e53439af8a08cb4d55853e9209564e1 /sysutils | |
parent | ccbd618ebd63ebf72b64b3b6679b6ee11976f839 (diff) | |
download | ports-c1f3de0f55e58790d19f686e510418e212aee85c.tar.gz ports-c1f3de0f55e58790d19f686e510418e212aee85c.zip |
Notes
Diffstat (limited to 'sysutils')
40 files changed, 3350 insertions, 1506 deletions
diff --git a/sysutils/Makefile b/sysutils/Makefile index 82e9d9f4e4ef..54e685425c99 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -433,6 +433,7 @@ SUBDIR += kshutdown SUBDIR += kshutdown-kde4 SUBDIR += ksynaptics + SUBDIR += ksysguardd SUBDIR += lavaps SUBDIR += lbl-cf SUBDIR += lbl-hf diff --git a/sysutils/kdeadmin4/Makefile b/sysutils/kdeadmin4/Makefile index 85e01ed6a651..7c5e9e59055f 100644 --- a/sysutils/kdeadmin4/Makefile +++ b/sysutils/kdeadmin4/Makefile @@ -6,7 +6,6 @@ PORTNAME= kdeadmin PORTVERSION= ${KDE4_VERSION} -PORTREVISION= 1 CATEGORIES= sysutils kde ipv6 MASTER_SITES= ${MASTER_SITE_KDE} MASTER_SITE_SUBDIR= ${KDE4_BRANCH}/${PORTVERSION}/src @@ -15,8 +14,6 @@ DIST_SUBDIR= KDE MAINTAINER= kde@FreeBSD.org COMMENT= KDE Admin applications -BUILD_DEPENDS= ${LOCALBASE}/share/xml/docbook/4.2/docbookx.dtd:${PORTSDIR}/textproc/docbook-xml - LATEST_LINK= ${PORTNAME}4 USE_BZIP2= yes @@ -41,12 +38,6 @@ RUN_DEPENDS+= ${KDE4_PREFIX}/share/apps/system-config-printer-kde/system-config- .endif post-patch: - ${REINPLACE_CMD} -e \ - 's,$${LIB_INSTALL_DIR}/pkgconfig,libdata/pkgconfig,' \ - ${PATCH_WRKSRC}/knetworkconf/backends/CMakeLists.txt -#disable documentation for kpackage - ${REINPLACE_CMD} -e '/add_subdirectory(kpackage)/d' \ - ${PATCH_WRKSRC}/doc/CMakeLists.txt #disable system-config-printer-kde, it comes with print/kdeadmin4-system-config-printer-kde ${REINPLACE_CMD} -e '/add_subdirectory.*system-config-printer-kde/d' \ ${PATCH_WRKSRC}/CMakeLists.txt diff --git a/sysutils/kdeadmin4/distinfo b/sysutils/kdeadmin4/distinfo index 9ba7eb9e1d1a..53971ddd9120 100644 --- a/sysutils/kdeadmin4/distinfo +++ b/sysutils/kdeadmin4/distinfo @@ -1,2 +1,2 @@ -SHA256 (KDE/kdeadmin-4.5.5.tar.bz2) = a327795db73f74b9070a1dbf59a9985b1d3bed617ac3e94cd581a71a5c11a7b5 -SIZE (KDE/kdeadmin-4.5.5.tar.bz2) = 1204817 +SHA256 (KDE/kdeadmin-4.6.1.tar.bz2) = fbea456dfa32a8828865fa7456db1483012493e81cd9c7bc6c7ef8a80a3e6941 +SIZE (KDE/kdeadmin-4.6.1.tar.bz2) = 791373 diff --git a/sysutils/kdeadmin4/files/patch-knetworkconf-knetworkconf-knetworkconfigparser.cpp b/sysutils/kdeadmin4/files/patch-knetworkconf-knetworkconf-knetworkconfigparser.cpp deleted file mode 100644 index 0977769bada6..000000000000 --- a/sysutils/kdeadmin4/files/patch-knetworkconf-knetworkconf-knetworkconfigparser.cpp +++ /dev/null @@ -1,123 +0,0 @@ ---- knetworkconf/knetworkconf/knetworkconfigparser.cpp.orig 2009-07-28 21:43:49.000000000 +0200 -+++ knetworkconf/knetworkconf/knetworkconfigparser.cpp 2010-06-15 07:23:42.039626265 +0200 -@@ -21,6 +21,10 @@ - #include <QPixmap> - #include <QTextStream> - #include <Q3PtrList> -+#ifdef Q_OS_FREEBSD -+#include <net/if_dl.h> -+#include <net/route.h> -+#endif - - KNetworkConfigParser::KNetworkConfigParser(){ - networkInfo = new KNetworkInfo(); -@@ -184,7 +188,8 @@ - } - - /** -- Reads /proc/net/route looking for the default gateway. -+ Reads /proc/net/route or asks to a routing socket (FreeBSD) -+ looking for the default gateway. - - NOTE:We should use the gateway reported by gst, but if there's a - gw in a config file and one of the network interfaces is -@@ -193,22 +198,87 @@ - */ - void KNetworkConfigParser::loadRoutingInfo( KRoutingInfo *routingInfo){ - // routingInfo = NULL; -- QFile f( "/proc/net/route"); -+#ifdef Q_OS_FREEBSD -+ int sfd = socket(PF_ROUTE, SOCK_RAW, AF_UNSPEC); -+ if (sfd < 0) { -+ KMessageBox::error(0, -+ i18n("Could not open the routing socket."), -+ i18n("Could Not Open Socket")); -+ return; -+ } -+ int pid = getpid(); -+ const int buflen = sizeof(struct rt_msghdr) + 512; -+ int seq = 1138; -+ char *buf = (char *)calloc(1, buflen); -+ struct rt_msghdr *rtm = (struct rt_msghdr *)buf; -+ struct sockaddr *sin = (struct sockaddr *)(rtm + 1); -+ sin->sa_len = sizeof(struct sockaddr_in6); -+ sin->sa_family = AF_INET6; -+ struct sockaddr_dl *ifp = (struct sockaddr_dl *)((struct sockaddr_in6 *)sin + 1); -+ ifp->sdl_len = sizeof(struct sockaddr_dl); -+ ifp->sdl_family = AF_LINK; -+ rtm->rtm_msglen = sizeof(struct rt_msghdr) + sin->sa_len + ifp->sdl_len; -+ rtm->rtm_version = RTM_VERSION; -+ rtm->rtm_type = RTM_GET; -+ rtm->rtm_flags = RTF_UP | RTF_GATEWAY | RTF_HOST | RTF_STATIC; -+ rtm->rtm_addrs = RTA_DST | RTA_NETMASK | RTA_IFP; -+ rtm->rtm_pid = pid; -+ rtm->rtm_seq = seq; -+ if (write(sfd, buf, rtm->rtm_msglen) < 0) { -+ sin->sa_len = sizeof(struct sockaddr_in); -+ sin->sa_family = AF_INET; -+ ifp = (struct sockaddr_dl *)memmove((struct sockaddr_in *)sin + 1, ifp, ifp->sdl_len); -+ rtm->rtm_msglen = sizeof(struct rt_msghdr) + sin->sa_len + ifp->sdl_len; -+ rtm->rtm_seq = ++seq; -+ if (write(sfd, buf, rtm->rtm_msglen) < 0) { -+ KMessageBox::error(0, -+ i18n("Could not write to the routing socket: the connection may be down, or you don't have such a permission."), -+ i18n("Could Not Write to Socket")); -+ return; -+ } -+ } -+ int n; -+ do { -+ n = read(sfd, buf, buflen); -+ } while (n > 0 && (rtm->rtm_seq != seq || rtm->rtm_pid != pid)); -+ if (n < 0) { -+ KMessageBox::error(0, -+ i18n("Could not get information about the gateway."), -+ i18n("Could Not Read From Socket")); -+ return; -+ } -+ buf = (char *)(rtm + 1); -+ if (rtm->rtm_addrs & RTA_GATEWAY || rtm->rtm_addrs & RTA_IFP) -+ for (int i = 1; i; i <<= 1) { -+ if (i & rtm->rtm_addrs) { -+ struct sockaddr *sa = (struct sockaddr *)buf; -+ if (i == RTA_GATEWAY) { -+ if (sa->sa_family == AF_INET6) -+ routingInfo->setGateway(inet_ntop(AF_INET6, &(((struct sockaddr_in6 *)sa)->sin6_addr), (buf - INET6_ADDRSTRLEN), INET6_ADDRSTRLEN)); -+ else if (sa->sa_family == AF_INET) -+ routingInfo->setGateway(inet_ntop(AF_INET, &(((struct sockaddr_in *)sa)->sin_addr), (buf - INET_ADDRSTRLEN), INET_ADDRSTRLEN)); -+ } else if (i == RTA_IFP && sa->sa_family == AF_LINK && ((struct sockaddr_dl *)sa)->sdl_nlen) -+ routingInfo->setGatewayDevice(((struct sockaddr_dl *)sa)->sdl_data); -+ buf += SA_SIZE(sa); -+ } -+ } -+#else -+ QString fname = "/proc/net/route"; -+ QFile f(fname); - if ( !f.open(QIODevice::ReadOnly) ) - { - // return routingInfo; - KMessageBox::error(0, -- i18n("Could not open file /proc/net/route."), -+ i18n("Could not open file %1.", fname), - i18n("Could Not Open File")); - } - else - { - // routingInfo = new KRoutingInfo(); - QTextStream t( &f ); // use a text stream -- QString s; - while (!t.atEnd()) - { -- s = t.readLine(); // line of text excluding '\n' -+ QString s = t.readLine(); // line of text excluding '\n' - QString interface = s.section('\t',0,0); - QString destination = s.section('\t',1,1); - QString gw = s.section('\t',2,2); -@@ -222,6 +292,7 @@ - } - } - f.close(); -+#endif - } - QString - KNetworkConfigParser::hexIPv4ToDecIPv4(const QString &hex) diff --git a/sysutils/kdeadmin4/files/patch-ksystemlog-modes-daemon-daemonConfiguration.h b/sysutils/kdeadmin4/files/patch-ksystemlog-modes-daemon-daemonConfiguration.h index 146ee9987058..0bae5d0a7f2d 100644 --- a/sysutils/kdeadmin4/files/patch-ksystemlog-modes-daemon-daemonConfiguration.h +++ b/sysutils/kdeadmin4/files/patch-ksystemlog-modes-daemon-daemonConfiguration.h @@ -1,11 +1,11 @@ --- ksystemlog/src/modes/daemon/daemonConfiguration.h.o 2009-06-09 12:39:54.000000000 -0400 +++ ksystemlog/src/modes/daemon/daemonConfiguration.h 2009-06-09 12:40:06.000000000 -0400 @@ -47,7 +47,7 @@ - configuration->setCurrentGroup("DaemonLogMode"); - + configuration->setCurrentGroup(QLatin1String( "DaemonLogMode" )); + QStringList defaultDaemonPaths; -- defaultDaemonPaths << "/var/log/daemon.log"; -+ defaultDaemonPaths << "/var/log/messages"; - configuration->addItemStringList("LogFilesPaths", d->daemonPaths, defaultDaemonPaths, "LogFilesPaths"); - +- defaultDaemonPaths << QLatin1String( "/var/log/daemon.log" ); ++ defaultDaemonPaths << QLatin1String( "/var/log/messages" ); + configuration->addItemStringList(QLatin1String( "LogFilesPaths" ), d->daemonPaths, defaultDaemonPaths, QLatin1String( "LogFilesPaths" )); + } diff --git a/sysutils/kdeadmin4/files/patch-ksystemlog-modes-system-systemConfiguration.h b/sysutils/kdeadmin4/files/patch-ksystemlog-modes-system-systemConfiguration.h index 2b9bce820597..6c2f4417c424 100644 --- a/sysutils/kdeadmin4/files/patch-ksystemlog-modes-system-systemConfiguration.h +++ b/sysutils/kdeadmin4/files/patch-ksystemlog-modes-system-systemConfiguration.h @@ -3,9 +3,9 @@ @@ -39,7 +39,7 @@ SystemConfiguration() : GenericLogModeConfiguration( - SYSTEM_LOG_MODE_ID, -- QStringList() << "/var/log/syslog", -+ QStringList() << "/var/log/messages", + QLatin1String( SYSTEM_LOG_MODE_ID ), +- QStringList() << QLatin1String( "/var/log/syslog" ), ++ QStringList() << QLatin1String( "/var/log/messages" ), QList<int>() << INFORMATION_LOG_LEVEL_ID ) { - + diff --git a/sysutils/kdeadmin4/pkg-plist b/sysutils/kdeadmin4/pkg-plist index 25f1f66051c4..d3b3437f05ba 100644 --- a/sysutils/kdeadmin4/pkg-plist +++ b/sysutils/kdeadmin4/pkg-plist @@ -1,41 +1,8 @@ bin/ksystemlog bin/kuser lib/kde4/kcm_cron.so -lib/kde4/kcm_knetworkconfmodule.so share/applications/kde4/ksystemlog.desktop share/applications/kde4/kuser.desktop -share/apps/knetworkconf/backends/debug.pl -share/apps/knetworkconf/backends/file.pl -share/apps/knetworkconf/backends/general.pl -share/apps/knetworkconf/backends/network-conf -share/apps/knetworkconf/backends/network.pl -share/apps/knetworkconf/backends/parse.pl -share/apps/knetworkconf/backends/platform.pl -share/apps/knetworkconf/backends/process.pl -share/apps/knetworkconf/backends/replace.pl -share/apps/knetworkconf/backends/report.pl -share/apps/knetworkconf/backends/service-list.pl -share/apps/knetworkconf/backends/service.pl -share/apps/knetworkconf/backends/util.pl -share/apps/knetworkconf/backends/xml.pl -share/apps/knetworkconf/pixmaps/ark.png -share/apps/knetworkconf/pixmaps/blackpanther.png -share/apps/knetworkconf/pixmaps/conectiva.png -share/apps/knetworkconf/pixmaps/debian.png -share/apps/knetworkconf/pixmaps/fedora.png -share/apps/knetworkconf/pixmaps/freebsd.png -share/apps/knetworkconf/pixmaps/gentoo.png -share/apps/knetworkconf/pixmaps/kubuntu.png -share/apps/knetworkconf/pixmaps/mandriva.png -share/apps/knetworkconf/pixmaps/openna.png -share/apps/knetworkconf/pixmaps/pld.png -share/apps/knetworkconf/pixmaps/redhat.png -share/apps/knetworkconf/pixmaps/slackware.png -share/apps/knetworkconf/pixmaps/specifix.png -share/apps/knetworkconf/pixmaps/suse.png -share/apps/knetworkconf/pixmaps/turbolinux.png -share/apps/knetworkconf/pixmaps/vine.png -share/apps/knetworkconf/pixmaps/yoper.png share/apps/ksystemlog/ksystemlogui.rc share/apps/kuser/icons/hicolor/22x22/actions/user-group-delete.png share/apps/kuser/icons/hicolor/22x22/actions/user-group-properties.png @@ -43,18 +10,6 @@ share/apps/kuser/kuserui.rc share/apps/kuser/pics/group.png share/apps/kuser/pics/user.png share/config.kcfg/kuser.kcfg -share/doc/HTML/en/kcontrol/knetworkconf/01.png -share/doc/HTML/en/kcontrol/knetworkconf/02.png -share/doc/HTML/en/kcontrol/knetworkconf/03.png -share/doc/HTML/en/kcontrol/knetworkconf/04.png -share/doc/HTML/en/kcontrol/knetworkconf/05.png -share/doc/HTML/en/kcontrol/knetworkconf/06.png -share/doc/HTML/en/kcontrol/knetworkconf/07.png -share/doc/HTML/en/kcontrol/knetworkconf/09.png -share/doc/HTML/en/kcontrol/knetworkconf/11.png -share/doc/HTML/en/kcontrol/knetworkconf/common -share/doc/HTML/en/kcontrol/knetworkconf/index.cache.bz2 -share/doc/HTML/en/kcontrol/knetworkconf/index.docbook share/doc/HTML/en/kcron/common share/doc/HTML/en/kcron/index.cache.bz2 share/doc/HTML/en/kcron/index.docbook @@ -72,24 +27,15 @@ share/doc/HTML/en/kuser/index.cache.bz2 share/doc/HTML/en/kuser/index.docbook share/doc/HTML/en/kuser/kuser.png share/icons/hicolor/128x128/apps/kuser.png -share/icons/hicolor/16x16/apps/knetworkconf.png share/icons/hicolor/16x16/apps/kuser.png -share/icons/hicolor/22x22/actions/network_connected_lan_knc.png -share/icons/hicolor/22x22/actions/network_disconnected_lan.png -share/icons/hicolor/22x22/actions/network_disconnected_wlan.png -share/icons/hicolor/22x22/actions/network_traffic_wlan.png -share/icons/hicolor/22x22/apps/knetworkconf.png share/icons/hicolor/22x22/apps/kuser.png -share/icons/hicolor/32x32/apps/knetworkconf.png share/icons/hicolor/32x32/apps/kuser.png share/icons/hicolor/48x48/apps/kuser.png share/icons/hicolor/64x64/apps/kuser.png share/kde4/services/kcm_cron.desktop -share/kde4/services/kcm_knetworkconfmodule.desktop @dirrm share/doc/HTML/en/kuser @dirrm share/doc/HTML/en/ksystemlog @dirrm share/doc/HTML/en/kcron -@dirrm share/doc/HTML/en/kcontrol/knetworkconf @dirrm share/apps/kuser/pics @dirrm share/apps/kuser/icons/hicolor/22x22/actions @dirrm share/apps/kuser/icons/hicolor/22x22 @@ -97,6 +43,3 @@ share/kde4/services/kcm_knetworkconfmodule.desktop @dirrm share/apps/kuser/icons @dirrm share/apps/kuser @dirrm share/apps/ksystemlog -@dirrm share/apps/knetworkconf/pixmaps -@dirrm share/apps/knetworkconf/backends -@dirrm share/apps/knetworkconf diff --git a/sysutils/kdf/Makefile b/sysutils/kdf/Makefile index be3348710c22..2f7d1ea20156 100644 --- a/sysutils/kdf/Makefile +++ b/sysutils/kdf/Makefile @@ -6,7 +6,6 @@ PORTNAME= kdeutils PORTVERSION= ${KDE4_VERSION} -PORTREVISION= 2 CATEGORIES= misc kde MASTER_SITES= ${MASTER_SITE_KDE} MASTER_SITE_SUBDIR= ${KDE4_BRANCH}/${PORTVERSION}/src @@ -15,7 +14,6 @@ DIST_SUBDIR= KDE MAINTAINER= kde@FreeBSD.org COMMENT= Utilities for the KDE4 integrated X11 Desktop -BUILD_DEPENDS= ${LOCALBASE}/share/xml/docbook/4.2/docbookx.dtd:${PORTSDIR}/textproc/docbook-xml LIB_DEPENDS= gmp.10:${PORTSDIR}/math/gmp \ qimageblitz.4:${PORTSDIR}/x11/qimageblitz \ qca.2:${PORTSDIR}/devel/qca diff --git a/sysutils/kdf/distinfo b/sysutils/kdf/distinfo index cc0287267750..26a0aaf5387f 100644 --- a/sysutils/kdf/distinfo +++ b/sysutils/kdf/distinfo @@ -1,2 +1,2 @@ -SHA256 (KDE/kdeutils-4.5.5.tar.bz2) = 7cbb22cd514f97c1bde721ee3c3e4cc3ad12bfb900d983a188e55372bdabff14 -SIZE (KDE/kdeutils-4.5.5.tar.bz2) = 3818433 +SHA256 (KDE/kdeutils-4.6.1.tar.bz2) = 3529687a51cc10e7ce18c43a7e650b4f216849d938a3d30080455784f1d922fd +SIZE (KDE/kdeutils-4.6.1.tar.bz2) = 3701624 diff --git a/sysutils/kdf/pkg-plist b/sysutils/kdf/pkg-plist index ff08b3c5741a..5d7d0ab4213d 100644 --- a/sysutils/kdf/pkg-plist +++ b/sysutils/kdf/pkg-plist @@ -1,4 +1,5 @@ bin/ark +bin/filelight bin/kcalc bin/kcharselect bin/kdf @@ -8,372 +9,10 @@ bin/krcdnotifieritem bin/ktimer bin/kwalletmanager bin/kwikdisk -bin/okteta bin/superkaramba bin/sweeper -include/KDE/Kasten/AbstractConnectJob -include/KDE/Kasten/AbstractDocument -include/KDE/Kasten/AbstractDocumentFactory -include/KDE/Kasten/AbstractExportJob -include/KDE/Kasten/AbstractFileSystemConnectJob -include/KDE/Kasten/AbstractFileSystemExportJob -include/KDE/Kasten/AbstractFileSystemLoadJob -include/KDE/Kasten/AbstractFileSystemSyncFromRemoteJob -include/KDE/Kasten/AbstractFileSystemSyncToRemoteJob -include/KDE/Kasten/AbstractFileSystemSyncWithRemoteJob -include/KDE/Kasten/AbstractGroupedViews -include/KDE/Kasten/AbstractLinePopup -include/KDE/Kasten/AbstractLoadJob -include/KDE/Kasten/AbstractModel -include/KDE/Kasten/AbstractModelDataGenerator -include/KDE/Kasten/AbstractModelDataGeneratorConfigEditor -include/KDE/Kasten/AbstractModelDataGeneratorConfigEditorFactory -include/KDE/Kasten/AbstractModelExporter -include/KDE/Kasten/AbstractModelExporterConfigEditor -include/KDE/Kasten/AbstractModelExporterConfigEditorFactory -include/KDE/Kasten/AbstractModelFileSystemSynchronizer -include/KDE/Kasten/AbstractModelSelection -include/KDE/Kasten/AbstractModelStreamEncoder -include/KDE/Kasten/AbstractModelStreamEncoderConfigEditor -include/KDE/Kasten/AbstractModelStreamEncoderConfigEditorFactory -include/KDE/Kasten/AbstractModelSynchronizer -include/KDE/Kasten/AbstractModelSynchronizerFactory -include/KDE/Kasten/AbstractSelectionView -include/KDE/Kasten/AbstractSyncFromRemoteJob -include/KDE/Kasten/AbstractSyncToRemoteJob -include/KDE/Kasten/AbstractSyncWithRemoteJob -include/KDE/Kasten/AbstractTool -include/KDE/Kasten/AbstractToolFactory -include/KDE/Kasten/AbstractToolInlineView -include/KDE/Kasten/AbstractToolView -include/KDE/Kasten/AbstractToolViewFactory -include/KDE/Kasten/AbstractToolWidget -include/KDE/Kasten/AbstractView -include/KDE/Kasten/AbstractViewArea -include/KDE/Kasten/AbstractViewFactory -include/KDE/Kasten/AbstractXmlGuiController -include/KDE/Kasten/ClipboardController -include/KDE/Kasten/CloseController -include/KDE/Kasten/CopyAsController -include/KDE/Kasten/CreatorController -include/KDE/Kasten/DataSelectable -include/KDE/Kasten/DocumentCreateManager -include/KDE/Kasten/DocumentManager -include/KDE/Kasten/DocumentSyncManager -include/KDE/Kasten/DocumentVersionData -include/KDE/Kasten/DocumentsTool -include/KDE/Kasten/DocumentsToolView -include/KDE/Kasten/DummyView -include/KDE/Kasten/ExportController -include/KDE/Kasten/FileSystemBrowserTool -include/KDE/Kasten/FileSystemBrowserToolView -include/KDE/Kasten/FullScreenController -include/KDE/Kasten/JobManager -include/KDE/Kasten/LoaderController -include/KDE/Kasten/ModelCodecManager -include/KDE/Kasten/ModelCodecViewManager -include/KDE/Kasten/ModelDataGenerateThread -include/KDE/Kasten/ModelEncoderFileSystemExportJob -include/KDE/Kasten/ModelEncoderFileSystemExporter -include/KDE/Kasten/ModelEncoderFileSystemExporterConfigEditor -include/KDE/Kasten/ModelEncoderFileSystemExporterConfigEditorFactory -include/KDE/Kasten/ModelStreamEncodeThread -include/KDE/Kasten/ModifiedBarController -include/KDE/Kasten/MultiViewAreas -include/KDE/Kasten/Person -include/KDE/Kasten/QuitController -include/KDE/Kasten/ReadOnlyBarController -include/KDE/Kasten/ReadOnlyController -include/KDE/Kasten/SelectController -include/KDE/Kasten/SelectedDataWriteable -include/KDE/Kasten/SetRemoteController -include/KDE/Kasten/ShellWindow -include/KDE/Kasten/StatusBar -include/KDE/Kasten/SwitchViewController -include/KDE/Kasten/SynchronizeController -include/KDE/Kasten/TabbedViews -include/KDE/Kasten/ToggleButton -include/KDE/Kasten/ToolInlineViewable -include/KDE/Kasten/ToolListMenuController -include/KDE/Kasten/UserListable -include/KDE/Kasten/VersionController -include/KDE/Kasten/VersionViewTool -include/KDE/Kasten/VersionViewToolView -include/KDE/Kasten/Versionable -include/KDE/Kasten/ViewAreaSplitable -include/KDE/Kasten/ViewListMenuController -include/KDE/Kasten/ViewManager -include/KDE/Kasten/WidgetsDockable -include/KDE/Kasten/ZoomBarController -include/KDE/Kasten/ZoomController -include/KDE/Kasten/Zoomable -include/KDE/Okteta/AbstractByteArrayColumnRenderer -include/KDE/Okteta/AbstractByteArrayModel -include/KDE/Okteta/AbstractByteArrayView -include/KDE/Okteta/AbstractColumnRenderer -include/KDE/Okteta/AbstractColumnStylist -include/KDE/Okteta/Address -include/KDE/Okteta/AddressRange -include/KDE/Okteta/ArrayChangeMetrics -include/KDE/Okteta/Bookmark -include/KDE/Okteta/Bookmarkable -include/KDE/Okteta/BookmarksConstIterator -include/KDE/Okteta/BorderColumnRenderer -include/KDE/Okteta/Byte -include/KDE/Okteta/ByteArrayChange -include/KDE/Okteta/ByteArrayColumnView -include/KDE/Okteta/ByteArrayModel -include/KDE/Okteta/ByteArrayRowColumnRenderer -include/KDE/Okteta/ByteArrayRowView -include/KDE/Okteta/ByteArrayTableLayout -include/KDE/Okteta/ByteArrayTableRanges -include/KDE/Okteta/ChangeHistory -include/KDE/Okteta/ChangesDescribable -include/KDE/Okteta/CharByteArrayColumnRenderer -include/KDE/Okteta/CharCodec -include/KDE/Okteta/Character -include/KDE/Okteta/ColumnsView -include/KDE/Okteta/Line -include/KDE/Okteta/LinePosition -include/KDE/Okteta/LinePositionRange -include/KDE/Okteta/LineRange -include/KDE/Okteta/NumberRange -include/KDE/Okteta/OffsetColumnRenderer -include/KDE/Okteta/OffsetFormat -include/KDE/Okteta/PieceTableByteArrayModel -include/KDE/Okteta/Range -include/KDE/Okteta/Size -include/KDE/Okteta/ValueByteArrayColumnRenderer -include/KDE/Okteta/ValueCodec -include/KDE/Okteta/Versionable -include/KDE/Okteta/WidgetColumnStylist -include/KDE/Okteta/WordByteArrayService -include/kasten/abstractbytearraystreamencoder.h -include/kasten/abstractconnectjob.h -include/kasten/abstractdocument.h -include/kasten/abstractdocumentfactory.h -include/kasten/abstractexportjob.h -include/kasten/abstractfilesystemconnectjob.h -include/kasten/abstractfilesystemexportjob.h -include/kasten/abstractfilesystemloadjob.h -include/kasten/abstractfilesystemsyncfromremotejob.h -include/kasten/abstractfilesystemsynctoremotejob.h -include/kasten/abstractfilesystemsyncwithremotejob.h -include/kasten/abstractgroupedviews.h -include/kasten/abstractlinepopup.h -include/kasten/abstractloadjob.h -include/kasten/abstractmodel.h -include/kasten/abstractmodeldatagenerator.h -include/kasten/abstractmodeldatageneratorconfigeditor.h -include/kasten/abstractmodeldatageneratorconfigeditorfactory.h -include/kasten/abstractmodelexporter.h -include/kasten/abstractmodelexporterconfigeditor.h -include/kasten/abstractmodelexporterconfigeditorfactory.h -include/kasten/abstractmodelfilesystemsynchronizer.h -include/kasten/abstractmodelselection.h -include/kasten/abstractmodelstreamencoder.h -include/kasten/abstractmodelstreamencoderconfigeditor.h -include/kasten/abstractmodelstreamencoderconfigeditorfactory.h -include/kasten/abstractmodelsynchronizer.h -include/kasten/abstractmodelsynchronizerfactory.h -include/kasten/abstractselectionview.h -include/kasten/abstractsyncfromremotejob.h -include/kasten/abstractsynctoremotejob.h -include/kasten/abstractsyncwithremotejob.h -include/kasten/abstracttool.h -include/kasten/abstracttoolfactory.h -include/kasten/abstracttoolinlineview.h -include/kasten/abstracttoolview.h -include/kasten/abstracttoolviewfactory.h -include/kasten/abstracttoolwidget.h -include/kasten/abstractview.h -include/kasten/abstractviewarea.h -include/kasten/abstractviewfactory.h -include/kasten/abstractxmlguicontroller.h -include/kasten/bookmarkscontroller.h -include/kasten/bookmarkstool.h -include/kasten/bookmarkstoolfactory.h -include/kasten/bookmarkstoolview.h -include/kasten/bookmarkstoolviewfactory.h -include/kasten/bytearraycharsstreamencoder.h -include/kasten/bytearraydocument.h -include/kasten/bytearraydocumentfactory.h -include/kasten/bytearrayrawfilesynchronizer.h -include/kasten/bytearrayrawfilesynchronizerfactory.h -include/kasten/bytearrayselection.h -include/kasten/bytearraysourcecodestreamencoder.h -include/kasten/bytearraysourcecodestreamencoderconfigeditor.h -include/kasten/bytearraysourcecodestreamencoderconfigeditorfactory.h -include/kasten/bytearraytextstreamencoderpreview.h -include/kasten/bytearrayvaluesstreamencoder.h -include/kasten/bytearrayvaluesstreamencoderconfigeditor.h -include/kasten/bytearrayvaluesstreamencoderconfigeditorfactory.h -include/kasten/bytearrayview.h -include/kasten/bytearrayviewfactory.h -include/kasten/bytearrayviewtextstreamencoder.h -include/kasten/bytetabletool.h -include/kasten/bytetabletoolfactory.h -include/kasten/bytetabletoolview.h -include/kasten/bytetabletoolviewfactory.h -include/kasten/checksumtool.h -include/kasten/checksumtoolfactory.h -include/kasten/checksumtoolview.h -include/kasten/checksumtoolviewfactory.h -include/kasten/clipboardcontroller.h -include/kasten/closecontroller.h -include/kasten/copyascontroller.h -include/kasten/creatorcontroller.h -include/kasten/dataselectable.h -include/kasten/documentcreatemanager.h -include/kasten/documentinfotool.h -include/kasten/documentinfotoolview.h -include/kasten/documentmanager.h -include/kasten/documentstool.h -include/kasten/documentstoolview.h -include/kasten/documentsyncmanager.h -include/kasten/documentversiondata.h -include/kasten/documentversionid.h -include/kasten/dummyview.h -include/kasten/exportcontroller.h -include/kasten/filesystembrowsertool.h -include/kasten/filesystembrowsertoolview.h -include/kasten/filtertool.h -include/kasten/filtertoolfactory.h -include/kasten/filtertoolview.h -include/kasten/filtertoolviewfactory.h -include/kasten/fullscreencontroller.h -include/kasten/gotooffsetcontroller.h -include/kasten/gotooffsettool.h -include/kasten/gotooffsettoolview.h -include/kasten/infotool.h -include/kasten/infotoolfactory.h -include/kasten/infotoolview.h -include/kasten/infotoolviewfactory.h -include/kasten/insertcontroller.h -include/kasten/jobmanager.h -include/kasten/kastencontrollers_export.h -include/kasten/kastencore.h -include/kasten/kastencore_export.h -include/kasten/kastengui.h -include/kasten/kastengui_export.h -include/kasten/kfinddirection.h -include/kasten/loadercontroller.h -include/kasten/modelcodecmanager.h -include/kasten/modelcodecviewmanager.h -include/kasten/modeldatageneratethread.h -include/kasten/modelencoderfilesystemexporter.h -include/kasten/modelencoderfilesystemexporterconfigeditor.h -include/kasten/modelencoderfilesystemexporterconfigeditorfactory.h -include/kasten/modelencoderfilesystemexportjob.h -include/kasten/modelstreamencodethread.h -include/kasten/modifiedbarcontroller.h -include/kasten/multiviewareas.h -include/kasten/oktetakastencontrollers_export.h -include/kasten/oktetakastencore_export.h -include/kasten/oktetakastengui_export.h -include/kasten/overwritemodecontroller.h -include/kasten/overwriteonlycontroller.h -include/kasten/person.h -include/kasten/poddecodertool.h -include/kasten/poddecodertoolfactory.h -include/kasten/poddecodertoolview.h -include/kasten/poddecodertoolviewfactory.h -include/kasten/printcontroller.h -include/kasten/quitcontroller.h -include/kasten/readonlybarcontroller.h -include/kasten/readonlycontroller.h -include/kasten/replacecontroller.h -include/kasten/replaceuserqueryable.h -include/kasten/searchcontroller.h -include/kasten/searchuserqueryable.h -include/kasten/selectcontroller.h -include/kasten/selecteddatawriteable.h -include/kasten/selectrangecontroller.h -include/kasten/setremotecontroller.h -include/kasten/shellwindow.h -include/kasten/statusbar.h -include/kasten/statusbarlayout.h -include/kasten/stringsextracttool.h -include/kasten/stringsextracttoolfactory.h -include/kasten/stringsextracttoolview.h -include/kasten/stringsextracttoolviewfactory.h -include/kasten/structtool.h -include/kasten/structtoolview.h -include/kasten/structurestoolfactory.h -include/kasten/structurestoolviewfactory.h -include/kasten/switchviewcontroller.h -include/kasten/synchronizecontroller.h -include/kasten/tabbedviews.h -include/kasten/togglebutton.h -include/kasten/toolinlineviewable.h -include/kasten/toolinlineviewwidget.h -include/kasten/toollistmenucontroller.h -include/kasten/toolviewdockwidget.h -include/kasten/userlistable.h -include/kasten/versionable.h -include/kasten/versioncontroller.h -include/kasten/versionviewtool.h -include/kasten/versionviewtoolview.h -include/kasten/viewareabox.h -include/kasten/viewareasplitable.h -include/kasten/viewareasplitcontroller.h -include/kasten/viewbox.h -include/kasten/viewconfigcontroller.h -include/kasten/viewlistmenucontroller.h -include/kasten/viewmanager.h -include/kasten/viewmodecontroller.h -include/kasten/viewstatuscontroller.h -include/kasten/widgetsdockable.h -include/kasten/zoomable.h -include/kasten/zoombarcontroller.h -include/kasten/zoomcontroller.h -include/okteta/abstractbytearraycolumnrenderer.h -include/okteta/abstractbytearraymodel.h -include/okteta/abstractbytearrayview.h -include/okteta/abstractcolumnrenderer.h -include/okteta/abstractcolumnstylist.h -include/okteta/address.h -include/okteta/addressrange.h -include/okteta/arraychangemetrics.h -include/okteta/bookmark.h -include/okteta/bookmarkable.h -include/okteta/bookmarksconstiterator.h -include/okteta/bookmarksconstiteratoradapter.h -include/okteta/bordercolumnrenderer.h -include/okteta/byte.h -include/okteta/bytearraychange.h -include/okteta/bytearraycolumnview.h -include/okteta/bytearraymodel.h -include/okteta/bytearrayrowcolumnrenderer.h -include/okteta/bytearrayrowview.h -include/okteta/bytearraytablelayout.h -include/okteta/bytearraytableranges.h -include/okteta/changehistory.h -include/okteta/changesdescribable.h -include/okteta/character.h -include/okteta/charbytearraycolumnrenderer.h -include/okteta/charcodec.h -include/okteta/columnsview.h -include/okteta/kadds.h -include/okteta/line.h -include/okteta/lineposition.h -include/okteta/linepositionrange.h -include/okteta/linerange.h -include/okteta/numberrange.h -include/okteta/offsetcolumnrenderer.h -include/okteta/offsetformat.h -include/okteta/oktetacore.h -include/okteta/oktetacore_export.h -include/okteta/oktetagui_export.h -include/okteta/piecetablebytearraymodel.h -include/okteta/range.h -include/okteta/size.h -include/okteta/valuebytearraycolumnrenderer.h -include/okteta/valuecodec.h -include/okteta/versionable.h -include/okteta/widgetcolumnstylist.h -include/okteta/wordbytearrayservice.h lib/kde4/arkpart.so +lib/kde4/filelightpart.so lib/kde4/kcm_kdf.so lib/kde4/kcm_kwallet.so lib/kde4/kcm_remotecontrol.so @@ -386,21 +25,9 @@ lib/kde4/kerfuffle_libbz2.so lib/kde4/kerfuffle_libgz.so lib/kde4/kerfuffle_libxz.so lib/kde4/libextracthere.so -lib/kde4/libkbytearrayedit.so -lib/kde4/oktetapart.so lib/kde4/plasma_engine_kremoteconrol.so lib/kde4/plasma_package_superkaramba.so lib/kde4/plasma_scriptengine_superkaramba.so -lib/kde4/plugins/designer/oktetadesignerplugin.so -lib/libkastencontrollers.so -lib/libkastencontrollers.so.5 -lib/libkastencontrollers.so.5.0.1 -lib/libkastencore.so -lib/libkastencore.so.5 -lib/libkastencore.so.5.0.1 -lib/libkastengui.so -lib/libkastengui.so.5 -lib/libkastengui.so.5.0.1 lib/libkdeinit4_kcalc.so lib/libkerfuffle.so lib/libkerfuffle.so.5 @@ -408,27 +35,13 @@ lib/libkerfuffle.so.5.0.1 lib/liblibkremotecontrol.so lib/liblibkremotecontrol.so.1 lib/liblibkremotecontrol.so.1.0.0 -lib/liboktetacore.so -lib/liboktetacore.so.5 -lib/liboktetacore.so.5.0.1 -lib/liboktetagui.so -lib/liboktetagui.so.5 -lib/liboktetagui.so.5.0.1 -lib/liboktetakastencontrollers.so -lib/liboktetakastencontrollers.so.5 -lib/liboktetakastencontrollers.so.5.0.1 -lib/liboktetakastencore.so -lib/liboktetakastencore.so.5 -lib/liboktetakastencore.so.5.0.1 -lib/liboktetakastengui.so -lib/liboktetakastengui.so.5 -lib/liboktetakastengui.so.5.0.1 lib/libsuperkaramba.so lib/libsuperkaramba.so.5 lib/libsuperkaramba.so.5.0.1 share/applications/kde4/KCharSelect.desktop share/applications/kde4/KFloppy.desktop share/applications/kde4/ark.desktop +share/applications/kde4/filelight.desktop share/applications/kde4/kcalc.desktop share/applications/kde4/kdf.desktop share/applications/kde4/kgpg.desktop @@ -437,11 +50,12 @@ share/applications/kde4/ktimer.desktop share/applications/kde4/kwalletmanager-kwalletd.desktop share/applications/kde4/kwalletmanager.desktop share/applications/kde4/kwikdisk.desktop -share/applications/kde4/okteta.desktop share/applications/kde4/superkaramba.desktop share/applications/kde4/sweeper.desktop share/apps/ark/ark_part.rc share/apps/ark/arkui.rc +share/apps/filelight/filelightui.rc +share/apps/filelightpart/filelightpartui.rc share/apps/kcalc/kcalcui.rc share/apps/kcalc/scienceconstants.xml share/apps/kcharselect/kcharselectui.rc @@ -499,22 +113,13 @@ share/apps/kwalletmanager/icons/hicolor/22x22/actions/folder_closed.png share/apps/kwalletmanager/icons/hicolor/22x22/actions/folder_open.png share/apps/kwalletmanager/kwalleteditor.rc share/apps/kwalletmanager/kwalletmanager.rc -share/apps/okteta/oktetaui.rc -share/apps/okteta/structures/elf/elf.desktop -share/apps/okteta/structures/elf/elf.osd -share/apps/okteta/structures/png/png.desktop -share/apps/okteta/structures/png/png.osd -share/apps/oktetapart/oktetapartbrowserui.rc -share/apps/oktetapart/oktetapartreadonlyui.rc -share/apps/oktetapart/oktetapartreadwriteui.rc share/apps/superkaramba/superkarambaui.rc share/apps/sweeper/sweeperui.rc share/autostart/kgpg.desktop share/config.kcfg/ark.kcfg share/config.kcfg/kcalc.kcfg share/config.kcfg/kgpg.kcfg -share/config.kcfg/structviewpreferences.kcfg -share/config/okteta-structures.knsrc +share/config/filelightrc share/config/superkaramba.knsrc share/dbus-1/interfaces/org.kde.kgpg.Key.xml share/dbus-1/interfaces/org.kde.superkaramba.xml @@ -524,6 +129,13 @@ share/doc/HTML/en/ark/common share/doc/HTML/en/ark/index.cache.bz2 share/doc/HTML/en/ark/index.docbook share/doc/HTML/en/ark/man-ark.1.docbook +share/doc/HTML/en/filelight/common +share/doc/HTML/en/filelight/config_appear.png +share/doc/HTML/en/filelight/config_scan.png +share/doc/HTML/en/filelight/index.cache.bz2 +share/doc/HTML/en/filelight/index.docbook +share/doc/HTML/en/filelight/radial_map.png +share/doc/HTML/en/filelight/radial_map_context_menu.png share/doc/HTML/en/kcalc/commands.docbook share/doc/HTML/en/kcalc/common share/doc/HTML/en/kcalc/index.cache.bz2 @@ -587,9 +199,6 @@ share/doc/HTML/en/kwallet/openwallet-request.png share/doc/HTML/en/kwallet/oxygen48-status-wallet-closed.png share/doc/HTML/en/kwallet/oxygen48-status-wallet-open.png share/doc/HTML/en/kwallet/save-login-information.png -share/doc/HTML/en/okteta/common -share/doc/HTML/en/okteta/index.cache.bz2 -share/doc/HTML/en/okteta/index.docbook share/doc/HTML/en/sweeper/common share/doc/HTML/en/sweeper/index.cache.bz2 share/doc/HTML/en/sweeper/index.docbook @@ -602,6 +211,7 @@ share/icons/hicolor/128x128/apps/kwalletmanager2.png share/icons/hicolor/128x128/apps/kwikdisk.png share/icons/hicolor/128x128/apps/superkaramba.png share/icons/hicolor/128x128/devices/infrared-remote.png +share/icons/hicolor/16x16/apps/filelight.png share/icons/hicolor/16x16/apps/kdf.png share/icons/hicolor/16x16/apps/kfloppy.png share/icons/hicolor/16x16/apps/kgpg.png @@ -609,11 +219,11 @@ share/icons/hicolor/16x16/apps/ktimer.png share/icons/hicolor/16x16/apps/kwalletmanager.png share/icons/hicolor/16x16/apps/kwalletmanager2.png share/icons/hicolor/16x16/apps/kwikdisk.png -share/icons/hicolor/16x16/apps/okteta.png share/icons/hicolor/16x16/apps/superkaramba.png share/icons/hicolor/16x16/devices/infrared-remote.png share/icons/hicolor/22x22/actions/krcd_flash.png share/icons/hicolor/22x22/actions/krcd_off.png +share/icons/hicolor/22x22/apps/filelight.png share/icons/hicolor/22x22/apps/kdf.png share/icons/hicolor/22x22/apps/kfloppy.png share/icons/hicolor/22x22/apps/kgpg.png @@ -622,6 +232,8 @@ share/icons/hicolor/22x22/apps/kwalletmanager.png share/icons/hicolor/22x22/apps/kwikdisk.png share/icons/hicolor/22x22/apps/superkaramba.png share/icons/hicolor/22x22/devices/infrared-remote.png +share/icons/hicolor/32x32/actions/view_filelight.png +share/icons/hicolor/32x32/apps/filelight.png share/icons/hicolor/32x32/apps/kdf.png share/icons/hicolor/32x32/apps/kfloppy.png share/icons/hicolor/32x32/apps/kgpg.png @@ -629,10 +241,10 @@ share/icons/hicolor/32x32/apps/ktimer.png share/icons/hicolor/32x32/apps/kwalletmanager.png share/icons/hicolor/32x32/apps/kwalletmanager2.png share/icons/hicolor/32x32/apps/kwikdisk.png -share/icons/hicolor/32x32/apps/okteta.png share/icons/hicolor/32x32/apps/superkaramba.png share/icons/hicolor/32x32/devices/infrared-remote.png share/icons/hicolor/42x42/devices/infrared-remote.png +share/icons/hicolor/48x48/apps/filelight.png share/icons/hicolor/48x48/apps/kdf.png share/icons/hicolor/48x48/apps/kfloppy.png share/icons/hicolor/48x48/apps/kgpg.png @@ -640,9 +252,9 @@ share/icons/hicolor/48x48/apps/ktimer.png share/icons/hicolor/48x48/apps/kwalletmanager.png share/icons/hicolor/48x48/apps/kwalletmanager2.png share/icons/hicolor/48x48/apps/kwikdisk.png -share/icons/hicolor/48x48/apps/okteta.png share/icons/hicolor/48x48/apps/superkaramba.png share/icons/hicolor/48x48/devices/infrared-remote.png +share/icons/hicolor/64x64/apps/filelight.png share/icons/hicolor/64x64/apps/kdf.png share/icons/hicolor/64x64/apps/kfloppy.png share/icons/hicolor/64x64/apps/kwalletmanager.png @@ -666,7 +278,7 @@ share/kde4/services/ServiceMenus/encryptfolder.desktop share/kde4/services/ServiceMenus/viewdecrypted.desktop share/kde4/services/ark_dndextract.desktop share/kde4/services/ark_part.desktop -share/kde4/services/kbytearrayedit.desktop +share/kde4/services/filelightpart.desktop share/kde4/services/kcm_remotecontrol.desktop share/kde4/services/kcmdf.desktop share/kde4/services/kded/kremotecontroldaemon.desktop @@ -674,26 +286,16 @@ share/kde4/services/kerfuffle_cli7z.desktop share/kde4/services/kerfuffle_clirar.desktop share/kde4/services/kerfuffle_clizip.desktop share/kde4/services/kerfuffle_libarchive.desktop +share/kde4/services/kerfuffle_libarchive_readonly.desktop share/kde4/services/kerfuffle_libbz2.desktop share/kde4/services/kerfuffle_libgz.desktop share/kde4/services/kerfuffle_libxz.desktop share/kde4/services/kwalletconfig.desktop share/kde4/services/kwalletmanager_show.desktop -share/kde4/services/oktetapart.desktop share/kde4/services/plasma-engine-kremotecontrol.desktop share/kde4/services/plasma-package-superkaramba.desktop share/kde4/services/plasma-scriptengine-superkaramba.desktop share/kde4/servicetypes/kerfufflePlugin.desktop -share/mime/application/base64.xml -share/mime/application/btoa.xml -share/mime/application/x-vnd.kde.okteta.structure.xml -share/mime/packages/okteta.xml -share/mime/text/x-ascii85.xml -share/mime/text/x-base32.xml -share/mime/text/x-ihex.xml -share/mime/text/x-srecord.xml -share/mime/text/x-uuencode.xml -share/mime/text/x-xxencode.xml @dirrmtry share/icons/oxygen/42x42/devices @dirrmtry share/icons/oxygen/42x42 @dirrmtry share/icons/hicolor/8x8/devices @@ -701,7 +303,6 @@ share/mime/text/x-xxencode.xml @dirrmtry share/icons/hicolor/42x42/devices @dirrmtry share/icons/hicolor/42x42 @dirrm share/doc/HTML/en/sweeper -@dirrm share/doc/HTML/en/okteta @dirrm share/doc/HTML/en/kwallet @dirrm share/doc/HTML/en/ktimer @dirrm share/doc/HTML/en/kgpg @@ -711,14 +312,10 @@ share/mime/text/x-xxencode.xml @dirrm share/doc/HTML/en/kcontrol/blockdevices @dirrm share/doc/HTML/en/kcharselect @dirrm share/doc/HTML/en/kcalc +@dirrm share/doc/HTML/en/filelight @dirrm share/doc/HTML/en/ark @dirrm share/apps/sweeper @dirrm share/apps/superkaramba -@dirrm share/apps/oktetapart -@dirrm share/apps/okteta/structures/png -@dirrm share/apps/okteta/structures/elf -@dirrm share/apps/okteta/structures -@dirrm share/apps/okteta @dirrm share/apps/kwalletmanager/icons/hicolor/22x22/actions @dirrm share/apps/kwalletmanager/icons/hicolor/22x22 @dirrm share/apps/kwalletmanager/icons/hicolor @@ -747,10 +344,6 @@ share/mime/text/x-xxencode.xml @dirrm share/apps/kgpg @dirrm share/apps/kdf @dirrm share/apps/kcalc +@dirrm share/apps/filelightpart +@dirrm share/apps/filelight @dirrm share/apps/ark -@dirrmtry include/okteta -@dirrmtry include/kasten -@dirrmtry include/KDE/Okteta -@dirrmtry include/KDE/Kasten -@exec %%LOCALBASE%%/bin/update-mime-database %D/share/mime > /dev/null || /usr/bin/true -@unexec %%LOCALBASE%%/bin/update-mime-database %D/share/mime > /dev/null || /usr/bin/true diff --git a/sysutils/kfloppy/Makefile b/sysutils/kfloppy/Makefile index be3348710c22..2f7d1ea20156 100644 --- a/sysutils/kfloppy/Makefile +++ b/sysutils/kfloppy/Makefile @@ -6,7 +6,6 @@ PORTNAME= kdeutils PORTVERSION= ${KDE4_VERSION} -PORTREVISION= 2 CATEGORIES= misc kde MASTER_SITES= ${MASTER_SITE_KDE} MASTER_SITE_SUBDIR= ${KDE4_BRANCH}/${PORTVERSION}/src @@ -15,7 +14,6 @@ DIST_SUBDIR= KDE MAINTAINER= kde@FreeBSD.org COMMENT= Utilities for the KDE4 integrated X11 Desktop -BUILD_DEPENDS= ${LOCALBASE}/share/xml/docbook/4.2/docbookx.dtd:${PORTSDIR}/textproc/docbook-xml LIB_DEPENDS= gmp.10:${PORTSDIR}/math/gmp \ qimageblitz.4:${PORTSDIR}/x11/qimageblitz \ qca.2:${PORTSDIR}/devel/qca diff --git a/sysutils/kfloppy/distinfo b/sysutils/kfloppy/distinfo index cc0287267750..26a0aaf5387f 100644 --- a/sysutils/kfloppy/distinfo +++ b/sysutils/kfloppy/distinfo @@ -1,2 +1,2 @@ -SHA256 (KDE/kdeutils-4.5.5.tar.bz2) = 7cbb22cd514f97c1bde721ee3c3e4cc3ad12bfb900d983a188e55372bdabff14 -SIZE (KDE/kdeutils-4.5.5.tar.bz2) = 3818433 +SHA256 (KDE/kdeutils-4.6.1.tar.bz2) = 3529687a51cc10e7ce18c43a7e650b4f216849d938a3d30080455784f1d922fd +SIZE (KDE/kdeutils-4.6.1.tar.bz2) = 3701624 diff --git a/sysutils/kfloppy/pkg-plist b/sysutils/kfloppy/pkg-plist index ff08b3c5741a..5d7d0ab4213d 100644 --- a/sysutils/kfloppy/pkg-plist +++ b/sysutils/kfloppy/pkg-plist @@ -1,4 +1,5 @@ bin/ark +bin/filelight bin/kcalc bin/kcharselect bin/kdf @@ -8,372 +9,10 @@ bin/krcdnotifieritem bin/ktimer bin/kwalletmanager bin/kwikdisk -bin/okteta bin/superkaramba bin/sweeper -include/KDE/Kasten/AbstractConnectJob -include/KDE/Kasten/AbstractDocument -include/KDE/Kasten/AbstractDocumentFactory -include/KDE/Kasten/AbstractExportJob -include/KDE/Kasten/AbstractFileSystemConnectJob -include/KDE/Kasten/AbstractFileSystemExportJob -include/KDE/Kasten/AbstractFileSystemLoadJob -include/KDE/Kasten/AbstractFileSystemSyncFromRemoteJob -include/KDE/Kasten/AbstractFileSystemSyncToRemoteJob -include/KDE/Kasten/AbstractFileSystemSyncWithRemoteJob -include/KDE/Kasten/AbstractGroupedViews -include/KDE/Kasten/AbstractLinePopup -include/KDE/Kasten/AbstractLoadJob -include/KDE/Kasten/AbstractModel -include/KDE/Kasten/AbstractModelDataGenerator -include/KDE/Kasten/AbstractModelDataGeneratorConfigEditor -include/KDE/Kasten/AbstractModelDataGeneratorConfigEditorFactory -include/KDE/Kasten/AbstractModelExporter -include/KDE/Kasten/AbstractModelExporterConfigEditor -include/KDE/Kasten/AbstractModelExporterConfigEditorFactory -include/KDE/Kasten/AbstractModelFileSystemSynchronizer -include/KDE/Kasten/AbstractModelSelection -include/KDE/Kasten/AbstractModelStreamEncoder -include/KDE/Kasten/AbstractModelStreamEncoderConfigEditor -include/KDE/Kasten/AbstractModelStreamEncoderConfigEditorFactory -include/KDE/Kasten/AbstractModelSynchronizer -include/KDE/Kasten/AbstractModelSynchronizerFactory -include/KDE/Kasten/AbstractSelectionView -include/KDE/Kasten/AbstractSyncFromRemoteJob -include/KDE/Kasten/AbstractSyncToRemoteJob -include/KDE/Kasten/AbstractSyncWithRemoteJob -include/KDE/Kasten/AbstractTool -include/KDE/Kasten/AbstractToolFactory -include/KDE/Kasten/AbstractToolInlineView -include/KDE/Kasten/AbstractToolView -include/KDE/Kasten/AbstractToolViewFactory -include/KDE/Kasten/AbstractToolWidget -include/KDE/Kasten/AbstractView -include/KDE/Kasten/AbstractViewArea -include/KDE/Kasten/AbstractViewFactory -include/KDE/Kasten/AbstractXmlGuiController -include/KDE/Kasten/ClipboardController -include/KDE/Kasten/CloseController -include/KDE/Kasten/CopyAsController -include/KDE/Kasten/CreatorController -include/KDE/Kasten/DataSelectable -include/KDE/Kasten/DocumentCreateManager -include/KDE/Kasten/DocumentManager -include/KDE/Kasten/DocumentSyncManager -include/KDE/Kasten/DocumentVersionData -include/KDE/Kasten/DocumentsTool -include/KDE/Kasten/DocumentsToolView -include/KDE/Kasten/DummyView -include/KDE/Kasten/ExportController -include/KDE/Kasten/FileSystemBrowserTool -include/KDE/Kasten/FileSystemBrowserToolView -include/KDE/Kasten/FullScreenController -include/KDE/Kasten/JobManager -include/KDE/Kasten/LoaderController -include/KDE/Kasten/ModelCodecManager -include/KDE/Kasten/ModelCodecViewManager -include/KDE/Kasten/ModelDataGenerateThread -include/KDE/Kasten/ModelEncoderFileSystemExportJob -include/KDE/Kasten/ModelEncoderFileSystemExporter -include/KDE/Kasten/ModelEncoderFileSystemExporterConfigEditor -include/KDE/Kasten/ModelEncoderFileSystemExporterConfigEditorFactory -include/KDE/Kasten/ModelStreamEncodeThread -include/KDE/Kasten/ModifiedBarController -include/KDE/Kasten/MultiViewAreas -include/KDE/Kasten/Person -include/KDE/Kasten/QuitController -include/KDE/Kasten/ReadOnlyBarController -include/KDE/Kasten/ReadOnlyController -include/KDE/Kasten/SelectController -include/KDE/Kasten/SelectedDataWriteable -include/KDE/Kasten/SetRemoteController -include/KDE/Kasten/ShellWindow -include/KDE/Kasten/StatusBar -include/KDE/Kasten/SwitchViewController -include/KDE/Kasten/SynchronizeController -include/KDE/Kasten/TabbedViews -include/KDE/Kasten/ToggleButton -include/KDE/Kasten/ToolInlineViewable -include/KDE/Kasten/ToolListMenuController -include/KDE/Kasten/UserListable -include/KDE/Kasten/VersionController -include/KDE/Kasten/VersionViewTool -include/KDE/Kasten/VersionViewToolView -include/KDE/Kasten/Versionable -include/KDE/Kasten/ViewAreaSplitable -include/KDE/Kasten/ViewListMenuController -include/KDE/Kasten/ViewManager -include/KDE/Kasten/WidgetsDockable -include/KDE/Kasten/ZoomBarController -include/KDE/Kasten/ZoomController -include/KDE/Kasten/Zoomable -include/KDE/Okteta/AbstractByteArrayColumnRenderer -include/KDE/Okteta/AbstractByteArrayModel -include/KDE/Okteta/AbstractByteArrayView -include/KDE/Okteta/AbstractColumnRenderer -include/KDE/Okteta/AbstractColumnStylist -include/KDE/Okteta/Address -include/KDE/Okteta/AddressRange -include/KDE/Okteta/ArrayChangeMetrics -include/KDE/Okteta/Bookmark -include/KDE/Okteta/Bookmarkable -include/KDE/Okteta/BookmarksConstIterator -include/KDE/Okteta/BorderColumnRenderer -include/KDE/Okteta/Byte -include/KDE/Okteta/ByteArrayChange -include/KDE/Okteta/ByteArrayColumnView -include/KDE/Okteta/ByteArrayModel -include/KDE/Okteta/ByteArrayRowColumnRenderer -include/KDE/Okteta/ByteArrayRowView -include/KDE/Okteta/ByteArrayTableLayout -include/KDE/Okteta/ByteArrayTableRanges -include/KDE/Okteta/ChangeHistory -include/KDE/Okteta/ChangesDescribable -include/KDE/Okteta/CharByteArrayColumnRenderer -include/KDE/Okteta/CharCodec -include/KDE/Okteta/Character -include/KDE/Okteta/ColumnsView -include/KDE/Okteta/Line -include/KDE/Okteta/LinePosition -include/KDE/Okteta/LinePositionRange -include/KDE/Okteta/LineRange -include/KDE/Okteta/NumberRange -include/KDE/Okteta/OffsetColumnRenderer -include/KDE/Okteta/OffsetFormat -include/KDE/Okteta/PieceTableByteArrayModel -include/KDE/Okteta/Range -include/KDE/Okteta/Size -include/KDE/Okteta/ValueByteArrayColumnRenderer -include/KDE/Okteta/ValueCodec -include/KDE/Okteta/Versionable -include/KDE/Okteta/WidgetColumnStylist -include/KDE/Okteta/WordByteArrayService -include/kasten/abstractbytearraystreamencoder.h -include/kasten/abstractconnectjob.h -include/kasten/abstractdocument.h -include/kasten/abstractdocumentfactory.h -include/kasten/abstractexportjob.h -include/kasten/abstractfilesystemconnectjob.h -include/kasten/abstractfilesystemexportjob.h -include/kasten/abstractfilesystemloadjob.h -include/kasten/abstractfilesystemsyncfromremotejob.h -include/kasten/abstractfilesystemsynctoremotejob.h -include/kasten/abstractfilesystemsyncwithremotejob.h -include/kasten/abstractgroupedviews.h -include/kasten/abstractlinepopup.h -include/kasten/abstractloadjob.h -include/kasten/abstractmodel.h -include/kasten/abstractmodeldatagenerator.h -include/kasten/abstractmodeldatageneratorconfigeditor.h -include/kasten/abstractmodeldatageneratorconfigeditorfactory.h -include/kasten/abstractmodelexporter.h -include/kasten/abstractmodelexporterconfigeditor.h -include/kasten/abstractmodelexporterconfigeditorfactory.h -include/kasten/abstractmodelfilesystemsynchronizer.h -include/kasten/abstractmodelselection.h -include/kasten/abstractmodelstreamencoder.h -include/kasten/abstractmodelstreamencoderconfigeditor.h -include/kasten/abstractmodelstreamencoderconfigeditorfactory.h -include/kasten/abstractmodelsynchronizer.h -include/kasten/abstractmodelsynchronizerfactory.h -include/kasten/abstractselectionview.h -include/kasten/abstractsyncfromremotejob.h -include/kasten/abstractsynctoremotejob.h -include/kasten/abstractsyncwithremotejob.h -include/kasten/abstracttool.h -include/kasten/abstracttoolfactory.h -include/kasten/abstracttoolinlineview.h -include/kasten/abstracttoolview.h -include/kasten/abstracttoolviewfactory.h -include/kasten/abstracttoolwidget.h -include/kasten/abstractview.h -include/kasten/abstractviewarea.h -include/kasten/abstractviewfactory.h -include/kasten/abstractxmlguicontroller.h -include/kasten/bookmarkscontroller.h -include/kasten/bookmarkstool.h -include/kasten/bookmarkstoolfactory.h -include/kasten/bookmarkstoolview.h -include/kasten/bookmarkstoolviewfactory.h -include/kasten/bytearraycharsstreamencoder.h -include/kasten/bytearraydocument.h -include/kasten/bytearraydocumentfactory.h -include/kasten/bytearrayrawfilesynchronizer.h -include/kasten/bytearrayrawfilesynchronizerfactory.h -include/kasten/bytearrayselection.h -include/kasten/bytearraysourcecodestreamencoder.h -include/kasten/bytearraysourcecodestreamencoderconfigeditor.h -include/kasten/bytearraysourcecodestreamencoderconfigeditorfactory.h -include/kasten/bytearraytextstreamencoderpreview.h -include/kasten/bytearrayvaluesstreamencoder.h -include/kasten/bytearrayvaluesstreamencoderconfigeditor.h -include/kasten/bytearrayvaluesstreamencoderconfigeditorfactory.h -include/kasten/bytearrayview.h -include/kasten/bytearrayviewfactory.h -include/kasten/bytearrayviewtextstreamencoder.h -include/kasten/bytetabletool.h -include/kasten/bytetabletoolfactory.h -include/kasten/bytetabletoolview.h -include/kasten/bytetabletoolviewfactory.h -include/kasten/checksumtool.h -include/kasten/checksumtoolfactory.h -include/kasten/checksumtoolview.h -include/kasten/checksumtoolviewfactory.h -include/kasten/clipboardcontroller.h -include/kasten/closecontroller.h -include/kasten/copyascontroller.h -include/kasten/creatorcontroller.h -include/kasten/dataselectable.h -include/kasten/documentcreatemanager.h -include/kasten/documentinfotool.h -include/kasten/documentinfotoolview.h -include/kasten/documentmanager.h -include/kasten/documentstool.h -include/kasten/documentstoolview.h -include/kasten/documentsyncmanager.h -include/kasten/documentversiondata.h -include/kasten/documentversionid.h -include/kasten/dummyview.h -include/kasten/exportcontroller.h -include/kasten/filesystembrowsertool.h -include/kasten/filesystembrowsertoolview.h -include/kasten/filtertool.h -include/kasten/filtertoolfactory.h -include/kasten/filtertoolview.h -include/kasten/filtertoolviewfactory.h -include/kasten/fullscreencontroller.h -include/kasten/gotooffsetcontroller.h -include/kasten/gotooffsettool.h -include/kasten/gotooffsettoolview.h -include/kasten/infotool.h -include/kasten/infotoolfactory.h -include/kasten/infotoolview.h -include/kasten/infotoolviewfactory.h -include/kasten/insertcontroller.h -include/kasten/jobmanager.h -include/kasten/kastencontrollers_export.h -include/kasten/kastencore.h -include/kasten/kastencore_export.h -include/kasten/kastengui.h -include/kasten/kastengui_export.h -include/kasten/kfinddirection.h -include/kasten/loadercontroller.h -include/kasten/modelcodecmanager.h -include/kasten/modelcodecviewmanager.h -include/kasten/modeldatageneratethread.h -include/kasten/modelencoderfilesystemexporter.h -include/kasten/modelencoderfilesystemexporterconfigeditor.h -include/kasten/modelencoderfilesystemexporterconfigeditorfactory.h -include/kasten/modelencoderfilesystemexportjob.h -include/kasten/modelstreamencodethread.h -include/kasten/modifiedbarcontroller.h -include/kasten/multiviewareas.h -include/kasten/oktetakastencontrollers_export.h -include/kasten/oktetakastencore_export.h -include/kasten/oktetakastengui_export.h -include/kasten/overwritemodecontroller.h -include/kasten/overwriteonlycontroller.h -include/kasten/person.h -include/kasten/poddecodertool.h -include/kasten/poddecodertoolfactory.h -include/kasten/poddecodertoolview.h -include/kasten/poddecodertoolviewfactory.h -include/kasten/printcontroller.h -include/kasten/quitcontroller.h -include/kasten/readonlybarcontroller.h -include/kasten/readonlycontroller.h -include/kasten/replacecontroller.h -include/kasten/replaceuserqueryable.h -include/kasten/searchcontroller.h -include/kasten/searchuserqueryable.h -include/kasten/selectcontroller.h -include/kasten/selecteddatawriteable.h -include/kasten/selectrangecontroller.h -include/kasten/setremotecontroller.h -include/kasten/shellwindow.h -include/kasten/statusbar.h -include/kasten/statusbarlayout.h -include/kasten/stringsextracttool.h -include/kasten/stringsextracttoolfactory.h -include/kasten/stringsextracttoolview.h -include/kasten/stringsextracttoolviewfactory.h -include/kasten/structtool.h -include/kasten/structtoolview.h -include/kasten/structurestoolfactory.h -include/kasten/structurestoolviewfactory.h -include/kasten/switchviewcontroller.h -include/kasten/synchronizecontroller.h -include/kasten/tabbedviews.h -include/kasten/togglebutton.h -include/kasten/toolinlineviewable.h -include/kasten/toolinlineviewwidget.h -include/kasten/toollistmenucontroller.h -include/kasten/toolviewdockwidget.h -include/kasten/userlistable.h -include/kasten/versionable.h -include/kasten/versioncontroller.h -include/kasten/versionviewtool.h -include/kasten/versionviewtoolview.h -include/kasten/viewareabox.h -include/kasten/viewareasplitable.h -include/kasten/viewareasplitcontroller.h -include/kasten/viewbox.h -include/kasten/viewconfigcontroller.h -include/kasten/viewlistmenucontroller.h -include/kasten/viewmanager.h -include/kasten/viewmodecontroller.h -include/kasten/viewstatuscontroller.h -include/kasten/widgetsdockable.h -include/kasten/zoomable.h -include/kasten/zoombarcontroller.h -include/kasten/zoomcontroller.h -include/okteta/abstractbytearraycolumnrenderer.h -include/okteta/abstractbytearraymodel.h -include/okteta/abstractbytearrayview.h -include/okteta/abstractcolumnrenderer.h -include/okteta/abstractcolumnstylist.h -include/okteta/address.h -include/okteta/addressrange.h -include/okteta/arraychangemetrics.h -include/okteta/bookmark.h -include/okteta/bookmarkable.h -include/okteta/bookmarksconstiterator.h -include/okteta/bookmarksconstiteratoradapter.h -include/okteta/bordercolumnrenderer.h -include/okteta/byte.h -include/okteta/bytearraychange.h -include/okteta/bytearraycolumnview.h -include/okteta/bytearraymodel.h -include/okteta/bytearrayrowcolumnrenderer.h -include/okteta/bytearrayrowview.h -include/okteta/bytearraytablelayout.h -include/okteta/bytearraytableranges.h -include/okteta/changehistory.h -include/okteta/changesdescribable.h -include/okteta/character.h -include/okteta/charbytearraycolumnrenderer.h -include/okteta/charcodec.h -include/okteta/columnsview.h -include/okteta/kadds.h -include/okteta/line.h -include/okteta/lineposition.h -include/okteta/linepositionrange.h -include/okteta/linerange.h -include/okteta/numberrange.h -include/okteta/offsetcolumnrenderer.h -include/okteta/offsetformat.h -include/okteta/oktetacore.h -include/okteta/oktetacore_export.h -include/okteta/oktetagui_export.h -include/okteta/piecetablebytearraymodel.h -include/okteta/range.h -include/okteta/size.h -include/okteta/valuebytearraycolumnrenderer.h -include/okteta/valuecodec.h -include/okteta/versionable.h -include/okteta/widgetcolumnstylist.h -include/okteta/wordbytearrayservice.h lib/kde4/arkpart.so +lib/kde4/filelightpart.so lib/kde4/kcm_kdf.so lib/kde4/kcm_kwallet.so lib/kde4/kcm_remotecontrol.so @@ -386,21 +25,9 @@ lib/kde4/kerfuffle_libbz2.so lib/kde4/kerfuffle_libgz.so lib/kde4/kerfuffle_libxz.so lib/kde4/libextracthere.so -lib/kde4/libkbytearrayedit.so -lib/kde4/oktetapart.so lib/kde4/plasma_engine_kremoteconrol.so lib/kde4/plasma_package_superkaramba.so lib/kde4/plasma_scriptengine_superkaramba.so -lib/kde4/plugins/designer/oktetadesignerplugin.so -lib/libkastencontrollers.so -lib/libkastencontrollers.so.5 -lib/libkastencontrollers.so.5.0.1 -lib/libkastencore.so -lib/libkastencore.so.5 -lib/libkastencore.so.5.0.1 -lib/libkastengui.so -lib/libkastengui.so.5 -lib/libkastengui.so.5.0.1 lib/libkdeinit4_kcalc.so lib/libkerfuffle.so lib/libkerfuffle.so.5 @@ -408,27 +35,13 @@ lib/libkerfuffle.so.5.0.1 lib/liblibkremotecontrol.so lib/liblibkremotecontrol.so.1 lib/liblibkremotecontrol.so.1.0.0 -lib/liboktetacore.so -lib/liboktetacore.so.5 -lib/liboktetacore.so.5.0.1 -lib/liboktetagui.so -lib/liboktetagui.so.5 -lib/liboktetagui.so.5.0.1 -lib/liboktetakastencontrollers.so -lib/liboktetakastencontrollers.so.5 -lib/liboktetakastencontrollers.so.5.0.1 -lib/liboktetakastencore.so -lib/liboktetakastencore.so.5 -lib/liboktetakastencore.so.5.0.1 -lib/liboktetakastengui.so -lib/liboktetakastengui.so.5 -lib/liboktetakastengui.so.5.0.1 lib/libsuperkaramba.so lib/libsuperkaramba.so.5 lib/libsuperkaramba.so.5.0.1 share/applications/kde4/KCharSelect.desktop share/applications/kde4/KFloppy.desktop share/applications/kde4/ark.desktop +share/applications/kde4/filelight.desktop share/applications/kde4/kcalc.desktop share/applications/kde4/kdf.desktop share/applications/kde4/kgpg.desktop @@ -437,11 +50,12 @@ share/applications/kde4/ktimer.desktop share/applications/kde4/kwalletmanager-kwalletd.desktop share/applications/kde4/kwalletmanager.desktop share/applications/kde4/kwikdisk.desktop -share/applications/kde4/okteta.desktop share/applications/kde4/superkaramba.desktop share/applications/kde4/sweeper.desktop share/apps/ark/ark_part.rc share/apps/ark/arkui.rc +share/apps/filelight/filelightui.rc +share/apps/filelightpart/filelightpartui.rc share/apps/kcalc/kcalcui.rc share/apps/kcalc/scienceconstants.xml share/apps/kcharselect/kcharselectui.rc @@ -499,22 +113,13 @@ share/apps/kwalletmanager/icons/hicolor/22x22/actions/folder_closed.png share/apps/kwalletmanager/icons/hicolor/22x22/actions/folder_open.png share/apps/kwalletmanager/kwalleteditor.rc share/apps/kwalletmanager/kwalletmanager.rc -share/apps/okteta/oktetaui.rc -share/apps/okteta/structures/elf/elf.desktop -share/apps/okteta/structures/elf/elf.osd -share/apps/okteta/structures/png/png.desktop -share/apps/okteta/structures/png/png.osd -share/apps/oktetapart/oktetapartbrowserui.rc -share/apps/oktetapart/oktetapartreadonlyui.rc -share/apps/oktetapart/oktetapartreadwriteui.rc share/apps/superkaramba/superkarambaui.rc share/apps/sweeper/sweeperui.rc share/autostart/kgpg.desktop share/config.kcfg/ark.kcfg share/config.kcfg/kcalc.kcfg share/config.kcfg/kgpg.kcfg -share/config.kcfg/structviewpreferences.kcfg -share/config/okteta-structures.knsrc +share/config/filelightrc share/config/superkaramba.knsrc share/dbus-1/interfaces/org.kde.kgpg.Key.xml share/dbus-1/interfaces/org.kde.superkaramba.xml @@ -524,6 +129,13 @@ share/doc/HTML/en/ark/common share/doc/HTML/en/ark/index.cache.bz2 share/doc/HTML/en/ark/index.docbook share/doc/HTML/en/ark/man-ark.1.docbook +share/doc/HTML/en/filelight/common +share/doc/HTML/en/filelight/config_appear.png +share/doc/HTML/en/filelight/config_scan.png +share/doc/HTML/en/filelight/index.cache.bz2 +share/doc/HTML/en/filelight/index.docbook +share/doc/HTML/en/filelight/radial_map.png +share/doc/HTML/en/filelight/radial_map_context_menu.png share/doc/HTML/en/kcalc/commands.docbook share/doc/HTML/en/kcalc/common share/doc/HTML/en/kcalc/index.cache.bz2 @@ -587,9 +199,6 @@ share/doc/HTML/en/kwallet/openwallet-request.png share/doc/HTML/en/kwallet/oxygen48-status-wallet-closed.png share/doc/HTML/en/kwallet/oxygen48-status-wallet-open.png share/doc/HTML/en/kwallet/save-login-information.png -share/doc/HTML/en/okteta/common -share/doc/HTML/en/okteta/index.cache.bz2 -share/doc/HTML/en/okteta/index.docbook share/doc/HTML/en/sweeper/common share/doc/HTML/en/sweeper/index.cache.bz2 share/doc/HTML/en/sweeper/index.docbook @@ -602,6 +211,7 @@ share/icons/hicolor/128x128/apps/kwalletmanager2.png share/icons/hicolor/128x128/apps/kwikdisk.png share/icons/hicolor/128x128/apps/superkaramba.png share/icons/hicolor/128x128/devices/infrared-remote.png +share/icons/hicolor/16x16/apps/filelight.png share/icons/hicolor/16x16/apps/kdf.png share/icons/hicolor/16x16/apps/kfloppy.png share/icons/hicolor/16x16/apps/kgpg.png @@ -609,11 +219,11 @@ share/icons/hicolor/16x16/apps/ktimer.png share/icons/hicolor/16x16/apps/kwalletmanager.png share/icons/hicolor/16x16/apps/kwalletmanager2.png share/icons/hicolor/16x16/apps/kwikdisk.png -share/icons/hicolor/16x16/apps/okteta.png share/icons/hicolor/16x16/apps/superkaramba.png share/icons/hicolor/16x16/devices/infrared-remote.png share/icons/hicolor/22x22/actions/krcd_flash.png share/icons/hicolor/22x22/actions/krcd_off.png +share/icons/hicolor/22x22/apps/filelight.png share/icons/hicolor/22x22/apps/kdf.png share/icons/hicolor/22x22/apps/kfloppy.png share/icons/hicolor/22x22/apps/kgpg.png @@ -622,6 +232,8 @@ share/icons/hicolor/22x22/apps/kwalletmanager.png share/icons/hicolor/22x22/apps/kwikdisk.png share/icons/hicolor/22x22/apps/superkaramba.png share/icons/hicolor/22x22/devices/infrared-remote.png +share/icons/hicolor/32x32/actions/view_filelight.png +share/icons/hicolor/32x32/apps/filelight.png share/icons/hicolor/32x32/apps/kdf.png share/icons/hicolor/32x32/apps/kfloppy.png share/icons/hicolor/32x32/apps/kgpg.png @@ -629,10 +241,10 @@ share/icons/hicolor/32x32/apps/ktimer.png share/icons/hicolor/32x32/apps/kwalletmanager.png share/icons/hicolor/32x32/apps/kwalletmanager2.png share/icons/hicolor/32x32/apps/kwikdisk.png -share/icons/hicolor/32x32/apps/okteta.png share/icons/hicolor/32x32/apps/superkaramba.png share/icons/hicolor/32x32/devices/infrared-remote.png share/icons/hicolor/42x42/devices/infrared-remote.png +share/icons/hicolor/48x48/apps/filelight.png share/icons/hicolor/48x48/apps/kdf.png share/icons/hicolor/48x48/apps/kfloppy.png share/icons/hicolor/48x48/apps/kgpg.png @@ -640,9 +252,9 @@ share/icons/hicolor/48x48/apps/ktimer.png share/icons/hicolor/48x48/apps/kwalletmanager.png share/icons/hicolor/48x48/apps/kwalletmanager2.png share/icons/hicolor/48x48/apps/kwikdisk.png -share/icons/hicolor/48x48/apps/okteta.png share/icons/hicolor/48x48/apps/superkaramba.png share/icons/hicolor/48x48/devices/infrared-remote.png +share/icons/hicolor/64x64/apps/filelight.png share/icons/hicolor/64x64/apps/kdf.png share/icons/hicolor/64x64/apps/kfloppy.png share/icons/hicolor/64x64/apps/kwalletmanager.png @@ -666,7 +278,7 @@ share/kde4/services/ServiceMenus/encryptfolder.desktop share/kde4/services/ServiceMenus/viewdecrypted.desktop share/kde4/services/ark_dndextract.desktop share/kde4/services/ark_part.desktop -share/kde4/services/kbytearrayedit.desktop +share/kde4/services/filelightpart.desktop share/kde4/services/kcm_remotecontrol.desktop share/kde4/services/kcmdf.desktop share/kde4/services/kded/kremotecontroldaemon.desktop @@ -674,26 +286,16 @@ share/kde4/services/kerfuffle_cli7z.desktop share/kde4/services/kerfuffle_clirar.desktop share/kde4/services/kerfuffle_clizip.desktop share/kde4/services/kerfuffle_libarchive.desktop +share/kde4/services/kerfuffle_libarchive_readonly.desktop share/kde4/services/kerfuffle_libbz2.desktop share/kde4/services/kerfuffle_libgz.desktop share/kde4/services/kerfuffle_libxz.desktop share/kde4/services/kwalletconfig.desktop share/kde4/services/kwalletmanager_show.desktop -share/kde4/services/oktetapart.desktop share/kde4/services/plasma-engine-kremotecontrol.desktop share/kde4/services/plasma-package-superkaramba.desktop share/kde4/services/plasma-scriptengine-superkaramba.desktop share/kde4/servicetypes/kerfufflePlugin.desktop -share/mime/application/base64.xml -share/mime/application/btoa.xml -share/mime/application/x-vnd.kde.okteta.structure.xml -share/mime/packages/okteta.xml -share/mime/text/x-ascii85.xml -share/mime/text/x-base32.xml -share/mime/text/x-ihex.xml -share/mime/text/x-srecord.xml -share/mime/text/x-uuencode.xml -share/mime/text/x-xxencode.xml @dirrmtry share/icons/oxygen/42x42/devices @dirrmtry share/icons/oxygen/42x42 @dirrmtry share/icons/hicolor/8x8/devices @@ -701,7 +303,6 @@ share/mime/text/x-xxencode.xml @dirrmtry share/icons/hicolor/42x42/devices @dirrmtry share/icons/hicolor/42x42 @dirrm share/doc/HTML/en/sweeper -@dirrm share/doc/HTML/en/okteta @dirrm share/doc/HTML/en/kwallet @dirrm share/doc/HTML/en/ktimer @dirrm share/doc/HTML/en/kgpg @@ -711,14 +312,10 @@ share/mime/text/x-xxencode.xml @dirrm share/doc/HTML/en/kcontrol/blockdevices @dirrm share/doc/HTML/en/kcharselect @dirrm share/doc/HTML/en/kcalc +@dirrm share/doc/HTML/en/filelight @dirrm share/doc/HTML/en/ark @dirrm share/apps/sweeper @dirrm share/apps/superkaramba -@dirrm share/apps/oktetapart -@dirrm share/apps/okteta/structures/png -@dirrm share/apps/okteta/structures/elf -@dirrm share/apps/okteta/structures -@dirrm share/apps/okteta @dirrm share/apps/kwalletmanager/icons/hicolor/22x22/actions @dirrm share/apps/kwalletmanager/icons/hicolor/22x22 @dirrm share/apps/kwalletmanager/icons/hicolor @@ -747,10 +344,6 @@ share/mime/text/x-xxencode.xml @dirrm share/apps/kgpg @dirrm share/apps/kdf @dirrm share/apps/kcalc +@dirrm share/apps/filelightpart +@dirrm share/apps/filelight @dirrm share/apps/ark -@dirrmtry include/okteta -@dirrmtry include/kasten -@dirrmtry include/KDE/Okteta -@dirrmtry include/KDE/Kasten -@exec %%LOCALBASE%%/bin/update-mime-database %D/share/mime > /dev/null || /usr/bin/true -@unexec %%LOCALBASE%%/bin/update-mime-database %D/share/mime > /dev/null || /usr/bin/true diff --git a/sysutils/ksysguardd/Makefile b/sysutils/ksysguardd/Makefile new file mode 100644 index 000000000000..891134a3ce5b --- /dev/null +++ b/sysutils/ksysguardd/Makefile @@ -0,0 +1,44 @@ +# New ports collection makefile for: ksysguardd +# Date created: 5 March 2011 +# Whom: avilla@FreeBSD.org +# +# $FreeBSD$ +# + +PORTNAME= ksysguardd +PORTVERSION= ${KDE4_VERSION} +CATEGORIES= sysutils kde +MASTER_SITES= ${MASTER_SITE_KDE} +MASTER_SITE_SUBDIR= ${KDE4_BRANCH}/${PORTVERSION}/src/ +DISTNAME= kdebase-workspace-${PORTVERSION} +DIST_SUBDIR= KDE + +MAINTAINER= kde@FreeBSD.org +COMMENT= KDE System Guard Daemon + +USE_KDE4= kdeprefix kdehier +USE_BZIP2= yes +USE_CMAKE= yes +CMAKE_ARGS+= -DBIN_INSTALL_DIR:STRING="${PREFIX}/bin" \ + -DSYSCONF_INSTALL_DIR:STRING="${PREFIX}/etc" +MAKE_JOBS_SAFE= yes + +EXTRACT_AFTER_ARGS= | ${TAR} -xf - \ + '${DISTNAME}/ksysguard/${PORTNAME}' \ + '${DISTNAME}/ksysguard/example/${PORTNAME}rc' \ + '${DISTNAME}/ksysguard/gui/SignalIDs.h' + +WRKSRC= ${WRKDIR}/${DISTNAME}/ksysguard/${PORTNAME} + +PLIST_FILES= bin/${PORTNAME} \ + etc/${PORTNAME}rc + +pre-build: + ${REINPLACE_CMD} -e 's/<config-workspace.h>/"config-${PORTNAME}.h"/' \ + ${WRKSRC}/${PORTNAME}.c + +post-install: + ${CHGRP} kmem ${PREFIX}/bin/${PORTNAME} && \ + ${CHMOD} g+s ${PREFIX}/bin/${PORTNAME} + +.include <bsd.port.mk> diff --git a/sysutils/ksysguardd/distinfo b/sysutils/ksysguardd/distinfo new file mode 100644 index 000000000000..751fd5e671a6 --- /dev/null +++ b/sysutils/ksysguardd/distinfo @@ -0,0 +1,2 @@ +SHA256 (KDE/kdebase-workspace-4.6.1.tar.bz2) = b2c113aec1e5c79b31f2dcac718ba94d142fe39e8e9640d13d19c2dcbf5fae98 +SIZE (KDE/kdebase-workspace-4.6.1.tar.bz2) = 69489744 diff --git a/sysutils/ksysguardd/files/patch-CMakeLists.txt b/sysutils/ksysguardd/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..422cd5c26298 --- /dev/null +++ b/sysutils/ksysguardd/files/patch-CMakeLists.txt @@ -0,0 +1,42 @@ +--- ./CMakeLists.txt.orig 2011-02-25 22:54:48.000000000 +0100 ++++ ./CMakeLists.txt 2011-03-05 16:31:50.557158447 +0100 +@@ -9,12 +9,15 @@ + + add_definitions(-DOSTYPE_${CMAKE_SYSTEM_NAME}) + +-macro_optional_find_package(Sensors) +-macro_bool_to_01(SENSORS_FOUND HAVE_LMSENSORS) +- +-check_include_files(sys/inotify.h SYS_INOTIFY_H_FOUND) +-macro_bool_to_01(SYS_INOTIFY_H_FOUND HAVE_SYS_INOTIFY_H) ++# Commenting this allows us not to depend on kdelibs (we don't have ++# lm-sensors in ports, nor inotify in base system). ++#macro_optional_find_package(Sensors) ++#macro_bool_to_01(SENSORS_FOUND HAVE_LMSENSORS) ++set(SENSORS_FOUND 0) + ++#check_include_files(sys/inotify.h SYS_INOTIFY_H_FOUND) ++#macro_bool_to_01(SYS_INOTIFY_H_FOUND HAVE_SYS_INOTIFY_H) ++set(SYS_INOTIFY_H_FOUND 0) + + configure_file(config-ksysguardd.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-ksysguardd.h) + +@@ -51,9 +54,9 @@ + + target_link_libraries(ksysguardd libksysguardd) + +- if( NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux" ) ++ if( NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR NOT ${CMAKE_SYSTEM_NAME} MATCHES "kFreeBSD" ) + target_link_libraries(ksysguardd ${KDE4_KDEFAKES_LIBS}) +- endif( NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux" ) ++ endif( NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR NOT ${CMAKE_SYSTEM_NAME} MATCHES "kFreeBSD" ) + + if( ${CMAKE_SYSTEM_NAME} MATCHES "NetBSD" ) + message(STATUS "Adding kvm library on NetBSD") +@@ -67,4 +70,5 @@ + target_link_libraries(ksysguardd socket nsl) + endif( ${CMAKE_SYSTEM_NAME} MATCHES "SunOS" ) + +-install(TARGETS ksysguardd ${INSTALL_TARGETS_DEFAULT_ARGS}) ++install(TARGETS ksysguardd RUNTIME DESTINATION "${BIN_INSTALL_DIR}") ++install(FILES ../example/ksysguarddrc DESTINATION "${SYSCONF_INSTALL_DIR}") diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__CMakeLists.txt b/sysutils/ksysguardd/files/patch-FreeBSD__CMakeLists.txt new file mode 100644 index 000000000000..31e279c2c898 --- /dev/null +++ b/sysutils/ksysguardd/files/patch-FreeBSD__CMakeLists.txt @@ -0,0 +1,23 @@ +--- FreeBSD/CMakeLists.txt 2011-03-17 20:50:04.000000000 +0200 ++++ FreeBSD/CMakeLists.txt 2011-03-07 18:04:26.000000000 +0200 +@@ -1,14 +1,16 @@ + INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/../CContLib ${CMAKE_CURRENT_SOURCE_DIR}/../ ) + +-ADD_LIBRARY(libksysguardd STATIC ++ADD_LIBRARY(libksysguardd STATIC ++ acpi.c + apm.c +- CPU.c ++ cpuinfo.c + diskstat.c + loadavg.c + logfile.c + Memory.c + netdev.c +- ProcessList.c) ++ ProcessList.c ++ stat.c ++ uptime.c) + + TARGET_LINK_LIBRARIES(libksysguardd kvm) +- diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__Memory.c b/sysutils/ksysguardd/files/patch-FreeBSD__Memory.c new file mode 100644 index 000000000000..00a09438f5b9 --- /dev/null +++ b/sysutils/ksysguardd/files/patch-FreeBSD__Memory.c @@ -0,0 +1,402 @@ +--- FreeBSD/Memory.c 2011-03-17 20:50:04.000000000 +0200 ++++ FreeBSD/Memory.c 2011-01-30 11:18:45.000000000 +0200 +@@ -3,6 +3,7 @@ + + Copyright (c) 1999-2000 Hans Petter Bieker <bieker@kde.org> + Copyright (c) 1999 Chris Schlaeger <cs@kde.org> ++ Copyright (c) 2010 David Naylor <naylor.b.david@gmail.com> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +@@ -21,33 +22,39 @@ + */ + + #include <sys/types.h> +-#include <sys/param.h> + #include <sys/sysctl.h> +-#include <sys/vmmeter.h> +- +-#include <vm/vm_param.h> + + #include <fcntl.h> + #include <kvm.h> + #include <limits.h> + #include <stdio.h> +-#include <stdlib.h> +-#include <string.h> + #include <unistd.h> + + #include "Command.h" + #include "Memory.h" + #include "ksysguardd.h" + +-static size_t Total = 0; +-static size_t MFree = 0; +-static size_t Used = 0; +-static size_t Buffers = 0; +-static size_t Cached = 0; +-static size_t Application = 0; +-static size_t STotal = 0; +-static size_t SFree = 0; +-static size_t SUsed = 0; ++#define MEM_ACTIVE 0 ++#define MEM_INACTIVE 1 ++#define MEM_WIRED 2 ++#define MEM_CACHED 3 ++#define MEM_BUFFERED 4 ++#define MEM_FREE 5 ++#define MEM_TOTAL 6 ++ ++static size_t memory_stats[7]; ++ ++#define SWAP_IN 0 ++#define SWAP_OUT 1 ++#define SWAP_USED 2 ++#define SWAP_FREE 3 ++#define SWAP_TOTAL 4 ++ ++static size_t swap_stats[5]; ++static size_t swap_old[2]; ++ ++static int pagesize; ++ + static kvm_t *kd; + + void +@@ -56,24 +63,57 @@ + char *nlistf = NULL; + char *memf = NULL; + char buf[_POSIX2_LINE_MAX]; +- ++ ++ pagesize = getpagesize(); ++ + if ((kd = kvm_openfiles(nlistf, memf, NULL, O_RDONLY, buf)) == NULL) { + log_error("kvm_openfiles()"); + return; + } + +- registerMonitor("mem/physical/free", "integer", printMFree, printMFreeInfo, sm); +- registerMonitor("mem/physical/used", "integer", printUsed, printUsedInfo, sm); +- registerMonitor("mem/physical/buf", "integer", printBuffers, printBuffersInfo, sm); +- registerMonitor("mem/physical/cached", "integer", printCached, printCachedInfo, sm); +- registerMonitor("mem/physical/application", "integer", printApplication, printApplicationInfo, sm); ++ registerMonitor("mem/physical/active", "integer", printMActive, printMActiveInfo, sm); ++ registerMonitor("mem/physical/inactive", "integer", printMInactive, printMInactiveInfo, sm); ++ registerMonitor("mem/physical/application", "integer", printMApplication, printMApplicationInfo, sm); ++ registerMonitor("mem/physical/wired", "integer", printMWired, printMWiredInfo, sm); ++ registerMonitor("mem/physical/cached", "integer", printMCached, printMCachedInfo, sm); ++ registerMonitor("mem/physical/buf", "integer", printMBuffers, printMBuffersInfo, sm); ++ registerMonitor("mem/physical/free", "integer", printMFree, printMFreeInfo, sm); ++ registerMonitor("mem/physical/used", "integer", printMUsed, printMUsedInfo, sm); ++ + registerMonitor("mem/swap/free", "integer", printSwapFree, printSwapFreeInfo, sm); + registerMonitor("mem/swap/used", "integer", printSwapUsed, printSwapUsedInfo, sm); ++ registerMonitor("mem/swap/pageIn", "integer", printSwapIn, printSwapInInfo, sm); ++ registerMonitor("mem/swap/pageOut", "integer", printSwapOut, printSwapOutInfo, sm); ++ ++ registerLegacyMonitor("cpu/pageIn", "float", printSwapIn, printSwapInInfo, sm); ++ registerLegacyMonitor("cpu/pageOut", "float", printSwapOut, printSwapOutInfo, sm); ++ ++ swap_old[SWAP_IN] = -1; ++ swap_old[SWAP_OUT] = -1; ++ ++ updateMemory(); + } + + void + exitMemory(void) + { ++ removeMonitor("mem/physical/active"); ++ removeMonitor("mem/physical/inactive"); ++ removeMonitor("mem/physical/application"); ++ removeMonitor("mem/physical/wired"); ++ removeMonitor("mem/physical/cached"); ++ removeMonitor("mem/physical/buf"); ++ removeMonitor("mem/physical/free"); ++ removeMonitor("mem/physical/used"); ++ ++ removeMonitor("mem/swap/free"); ++ removeMonitor("mem/swap/used"); ++ removeMonitor("mem/swap/pageIn"); ++ removeMonitor("mem/swap/pageOut"); ++ ++ removeMonitor("cpu/pageIn"); ++ removeMonitor("cpu/pageOut"); ++ + kvm_close(kd); + } + +@@ -81,129 +121,212 @@ + updateMemory(void) + { + size_t len; +- FILE *file; +- char buf[256]; +- struct kvm_swap kswap[16]; +- int i, swap_count, hlen, pagesize = getpagesize(); +- long blocksize; +- +- len = sizeof (Total); +- sysctlbyname("hw.physmem", &Total, &len, NULL, 0); +- Total /= 1024; +- +- /* Borrowed from pstat */ +- swap_count = kvm_getswapinfo(kd, kswap, 16, SWIF_DEV_PREFIX); +- getbsize(&hlen, &blocksize); +- +-#define CONVERT(v) ((int)((quad_t)(v) * pagesize / blocksize)) +- +- if (swap_count > 0) { +- STotal = CONVERT(kswap[0].ksw_total); +- SUsed = CONVERT(kswap[0].ksw_used); +- SFree = CONVERT(kswap[0].ksw_total - kswap[0].ksw_used); ++ int swapin, swapout; ++ ++#define CONVERT(v) ((quad_t)(v) * pagesize / 1024) ++ ++#define GETSYSCTL(mib, var) \ ++ len = sizeof(var); \ ++ sysctlbyname(mib, &var, &len, NULL, 0); ++ ++#define GETPAGESYSCTL(mib, var) \ ++ GETSYSCTL(mib, var) \ ++ var = CONVERT(var); ++ ++#define GETMEMSYSCTL(mib, var) \ ++ GETSYSCTL(mib, var) \ ++ var /= 1024; ++ ++ /* ++ * Memory ++ */ ++ GETPAGESYSCTL("vm.stats.vm.v_active_count", memory_stats[MEM_ACTIVE]) ++ GETPAGESYSCTL("vm.stats.vm.v_inactive_count", memory_stats[MEM_INACTIVE]) ++ GETPAGESYSCTL("vm.stats.vm.v_wire_count", memory_stats[MEM_WIRED]) ++ GETPAGESYSCTL("vm.stats.vm.v_cache_count", memory_stats[MEM_CACHED]) ++ GETPAGESYSCTL("vm.stats.vm.v_free_count", memory_stats[MEM_FREE]) ++ GETMEMSYSCTL("vfs.bufspace", memory_stats[MEM_BUFFERED]) ++ GETMEMSYSCTL("hw.physmem", memory_stats[MEM_TOTAL]) ++ ++ /* ++ * Swap ++ */ ++ GETSYSCTL("vm.stats.vm.v_swappgsin", swapin); ++ GETSYSCTL("vm.stats.vm.v_swappgsout", swapout); ++ ++ if (swap_old[SWAP_IN] < 0) { ++ swap_stats[SWAP_IN] = 0; ++ swap_stats[SWAP_OUT] = 0; ++ } else { ++ swap_stats[SWAP_IN] = CONVERT(swapin - swap_old[SWAP_IN]); ++ swap_stats[SWAP_OUT] = CONVERT(swapout - swap_old[SWAP_OUT]); + } + +- len = sizeof (Buffers); +- if ((sysctlbyname("vfs.bufspace", &Buffers, &len, NULL, 0) == -1) || !len) +- Buffers = 0; /* Doesn't work under FreeBSD v2.2.x */ +- Buffers /= 1024; +- +- len = sizeof (Cached); +- if ((sysctlbyname("vm.stats.vm.v_cache_count", &Cached, &len, NULL, 0) == -1) || !len) +- Cached = 0; /* Doesn't work under FreeBSD v2.2.x */ +- Cached *= pagesize / 1024; +- +- len = sizeof (MFree); +- if ((sysctlbyname("vm.stats.vm.v_free_count", &MFree, &len, NULL, 0) == -1) || !len) +- MFree = 0; /* Doesn't work under FreeBSD v2.2.x */ +- MFree *= pagesize / 1024; ++ /* call CPU heavy swapmode() only for changes */ ++ if (swap_stats[SWAP_IN] > 0 || swap_stats[SWAP_OUT] > 0 || swap_old[SWAP_IN] < 0) { ++ struct kvm_swap swapary; ++ if (kvm_getswapinfo(kd, &swapary, 1, 0) < 0 || swapary.ksw_total == 0) { ++ int i; ++ for (i = 0; i < (sizeof(swap_stats) / sizeof(swap_stats[0])); ++i) ++ swap_stats[i] = 0; ++ } else { ++ swap_stats[SWAP_TOTAL] = CONVERT(swapary.ksw_total); ++ swap_stats[SWAP_USED] = CONVERT(swapary.ksw_used); ++ swap_stats[SWAP_FREE] = CONVERT(swapary.ksw_total - swapary.ksw_used); ++ } ++ } + +- Used = Total - MFree; +- Application = Used - Buffers - Cached; ++ swap_old[SWAP_IN] = swapin; ++ swap_old[SWAP_OUT] = swapout; + + return 0; ++ ++#undef CONVERT ++#undef GETSYSCTL ++#undef GETPAGESYSCTL ++#undef GETMEMSYSCTL + } + + void +-printMFree(const char* cmd) ++printMActive(const char* cmd) + { +- fprintf(CurrentClient, "%d\n", MFree); ++ fprintf(CurrentClient, "%lu\n", memory_stats[MEM_ACTIVE]); + } + + void +-printMFreeInfo(const char* cmd) ++printMActiveInfo(const char* cmd) ++{ ++ fprintf(CurrentClient, "Active Memory\t0\t%lu\tKB\n", memory_stats[MEM_TOTAL]); ++} ++ ++void ++printMInactive(const char* cmd) ++{ ++ fprintf(CurrentClient, "%lu\n", memory_stats[MEM_INACTIVE]); ++} ++ ++void ++printMInactiveInfo(const char* cmd) ++{ ++ fprintf(CurrentClient, "Inactive Memory\t0\t%lu\tKB\n", memory_stats[MEM_TOTAL]); ++} ++ ++void ++printMApplication(const char* cmd) + { +- fprintf(CurrentClient, "Free Memory\t0\t%d\tKB\n", Total); ++ fprintf(CurrentClient, "%lu\n", memory_stats[MEM_ACTIVE] + memory_stats[MEM_INACTIVE]); + } + + void +-printUsed(const char* cmd) ++printMApplicationInfo(const char* cmd) ++{ ++ fprintf(CurrentClient, "Application (Active and Inactive) Memory\t0\t%ld\tKB\n", memory_stats[MEM_TOTAL]); ++} ++ ++void ++printMWired(const char* cmd) ++{ ++ fprintf(CurrentClient, "%lu\n", memory_stats[MEM_WIRED]); ++} ++ ++void ++printMWiredInfo(const char* cmd) + { +- fprintf(CurrentClient, "%d\n", Used); ++ fprintf(CurrentClient, "Wired Memory\t0\t%lu\tKB\n", memory_stats[MEM_TOTAL]); + } + + void +-printUsedInfo(const char* cmd) ++printMCached(const char* cmd) + { +- fprintf(CurrentClient, "Used Memory\t0\t%d\tKB\n", Total); ++ fprintf(CurrentClient, "%lu\n", memory_stats[MEM_CACHED]); + } + + void +-printBuffers(const char* cmd) ++printMCachedInfo(const char* cmd) + { +- fprintf(CurrentClient, "%d\n", Buffers); ++ fprintf(CurrentClient, "Cached Memory\t0\t%lu\tKB\n", memory_stats[MEM_TOTAL]); + } + + void +-printBuffersInfo(const char* cmd) ++printMBuffers(const char* cmd) + { +- fprintf(CurrentClient, "Buffer Memory\t0\t%d\tKB\n", Total); ++ fprintf(CurrentClient, "%lu\n", memory_stats[MEM_BUFFERED]); + } + + void +-printCached(const char* cmd) ++printMBuffersInfo(const char* cmd) + { +- fprintf(CurrentClient, "%d\n", Cached); ++ fprintf(CurrentClient, "Buffer Memory\t0\t%lu\tKB\n", memory_stats[MEM_TOTAL]); + } + + void +-printCachedInfo(const char* cmd) ++printMFree(const char* cmd) + { +- fprintf(CurrentClient, "Cached Memory\t0\t%d\tKB\n", Total); ++ fprintf(CurrentClient, "%lu\n", memory_stats[MEM_FREE]); + } + + void +-printApplication(const char* cmd) ++printMFreeInfo(const char* cmd) + { +- fprintf(CurrentClient, "%d\n", Application); ++ fprintf(CurrentClient, "Free Memory\t0\t%lu\tKB\n", memory_stats[MEM_TOTAL]); + } + + void +-printApplicationInfo(const char* cmd) ++printMUsed(const char* cmd) + { +- fprintf(CurrentClient, "Application Memory\t0\t%ld\tKB\n", Total); ++ fprintf(CurrentClient, "%lu\n", memory_stats[MEM_TOTAL] - memory_stats[MEM_FREE]); ++} ++ ++void ++printMUsedInfo(const char* cmd) ++{ ++ fprintf(CurrentClient, "Used Memory\t0\t%lu\tKB\n", memory_stats[MEM_TOTAL]); + } + + void + printSwapUsed(const char* cmd) + { +- fprintf(CurrentClient, "%d\n", SUsed); ++ fprintf(CurrentClient, "%lu\n", swap_stats[SWAP_USED]); + } + + void + printSwapUsedInfo(const char* cmd) + { +- fprintf(CurrentClient, "Used Swap Memory\t0\t%d\tKB\n", STotal); ++ fprintf(CurrentClient, "Used Swap Memory\t0\t%lu\tKB\n", swap_stats[SWAP_TOTAL]); + } + + void + printSwapFree(const char* cmd) + { +- fprintf(CurrentClient, "%d\n", SFree); ++ fprintf(CurrentClient, "%lu\n", swap_stats[SWAP_FREE]); + } + + void + printSwapFreeInfo(const char* cmd) + { +- fprintf(CurrentClient, "Free Swap Memory\t0\t%d\tKB\n", STotal); ++ fprintf(CurrentClient, "Free Swap Memory\t0\t%lu\tKB\n", swap_stats[SWAP_TOTAL]); ++} ++ ++void ++printSwapIn(const char* cmd) ++{ ++ fprintf(CurrentClient, "%lu\n", swap_stats[SWAP_IN]); ++} ++ ++void ++printSwapInInfo(const char* cmd) ++{ ++ fprintf(CurrentClient, "Swapped In Memory\t0\t0\tKB/s\n"); ++} ++ ++void ++printSwapOut(const char* cmd) ++{ ++ fprintf(CurrentClient, "%lu\n", swap_stats[SWAP_OUT]); ++} ++ ++void ++printSwapOutInfo(const char* cmd) ++{ ++ fprintf(CurrentClient, "Swapped Out Memory\t0\t0\tKB/s\n"); + } diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__Memory.h b/sysutils/ksysguardd/files/patch-FreeBSD__Memory.h new file mode 100644 index 000000000000..85306ead9889 --- /dev/null +++ b/sysutils/ksysguardd/files/patch-FreeBSD__Memory.h @@ -0,0 +1,41 @@ +--- FreeBSD/Memory.h 2011-03-17 20:50:04.000000000 +0200 ++++ FreeBSD/Memory.h 2010-11-09 11:06:08.000000000 +0200 +@@ -27,19 +27,30 @@ + + int updateMemory(void); + ++void printMActive(const char* cmd); ++void printMActiveInfo(const char* cmd); ++void printMInactive(const char* cmd); ++void printMInactiveInfo(const char* cmd); ++void printMApplication(const char* cmd); ++void printMApplicationInfo(const char* cmd); ++void printMWired(const char* cmd); ++void printMWiredInfo(const char* cmd); ++void printMCached(const char* cmd); ++void printMCachedInfo(const char* cmd); ++void printMBuffers(const char* cmd); ++void printMBuffersInfo(const char* cmd); + void printMFree(const char* cmd); + void printMFreeInfo(const char* cmd); +-void printUsed(const char* cmd); +-void printUsedInfo(const char* cmd); +-void printBuffers(const char* cmd); +-void printBuffersInfo(const char* cmd); +-void printCached(const char* cmd); +-void printCachedInfo(const char* cmd); +-void printApplication(const char* cmd); +-void printApplicationInfo(const char* cmd); ++void printMUsed(const char* cmd); ++void printMUsedInfo(const char* cmd); ++ + void printSwapUsed(const char* cmd); + void printSwapUsedInfo(const char* cmd); + void printSwapFree(const char* cmd); + void printSwapFreeInfo(const char* cmd); ++void printSwapIn(const char* cmd); ++void printSwapInInfo(const char* cmd); ++void printSwapOut(const char* cmd); ++void printSwapOutInfo(const char* cmd); + + #endif diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__ProcessList.c b/sysutils/ksysguardd/files/patch-FreeBSD__ProcessList.c new file mode 100644 index 000000000000..cb29ec40467e --- /dev/null +++ b/sysutils/ksysguardd/files/patch-FreeBSD__ProcessList.c @@ -0,0 +1,707 @@ +--- FreeBSD/ProcessList.c 2011-03-17 20:50:04.000000000 +0200 ++++ FreeBSD/ProcessList.c 2011-02-10 16:06:59.000000000 +0200 +@@ -1,6 +1,7 @@ + /* + KSysGuard, the KDE System Guard + ++ Copyright (c) 2011 David Naylor <naylor.b.david@gmail.com> + Copyright (c) 1999-2000 Hans Petter Bieker<bieker@kde.org> + Copyright (c) 1999 Chris Schlaeger <cs@kde.org> + +@@ -20,423 +21,271 @@ + + */ + +-#include <ctype.h> +-#include <dirent.h> ++#include "ProcessList.h" ++ ++#include <fcntl.h> ++#include <paths.h> + #include <pwd.h> ++#include <signal.h> + #include <stdio.h> + #include <stdlib.h> + #include <string.h> + #include <sys/param.h> +- +-#if defined(__DragonFly__) +-#include <sys/user.h> +-#include <sys/resourcevar.h> +-#endif +- +-#if (__FreeBSD_version > 500015) || (__FreeBSD_kernel_version > 500015) +-#include <sys/priority.h> +-#endif + #include <sys/sysctl.h> +-#include <sys/time.h> + #include <sys/types.h> + #include <sys/user.h> ++#include <time.h> + #include <unistd.h> +-#include <signal.h> + +-#include "../../gui/SignalIDs.h" + #include "Command.h" +-#include "ProcessList.h" +-#include "ccont.h" +-#include "ksysguardd.h" +- +-CONTAINER ProcessList = 0; ++#include "../../gui/SignalIDs.h" + +-int fscale; ++#define KILL_COMMAND "kill" ++#define SETPRIORITY_COMMAND "setpriority" ++#define PROC_MONITOR "ps" ++#define NPROC_MONITOR "pscount" ++#define PID_MONITOR "lastpid" ++#define PROCBUF 1024 ++#define STATEBUF 12 ++#define NAMEBUF 24 ++#define UNAMEBUF 12 ++#define ARGBUF 256 ++#define PWDBUF 16 ++#define NAMELEN 128 ++ ++static struct kinfo_proc proc_buf[PROCBUF], prev_list[PROCBUF]; ++static int nproc, prev_nproc, sorted_proc[PROCBUF], prev_sorted[PROCBUF]; + +-#define BUFSIZE 1024 ++static struct timespec last_update; ++static float scale; + +-typedef struct +-{ +- /* This flag is set for all found processes at the beginning of the +- * process list update. Processes that do not have this flag set will +- * be assumed dead and removed from the list. The flag is cleared after +- * each list update. */ +- int alive; ++static int pagesize, smpmode; + +- /* the process ID */ +- pid_t pid; ++static unsigned int lastpid; + +- /* the parent process ID */ +- pid_t ppid; +- +- /* the real user ID */ ++static struct { + uid_t uid; ++ char name[NAMELEN]; ++} pwd_cache[PWDBUF]; ++static int pwd_size = 0, pwd_hit = 0, pwd_last = 0; + +- /* the real group ID */ +- gid_t gid; ++static char *const statuses[] = { "", "IDLE", "RUN", "SLEEP", "STOP", "ZOMBIE", "WAIT", "LOCK" }; ++static char (*cpunames)[8] = NULL; + +- /* a character description of the process status */ +- char status[16]; ++static int cmp_pid(const void *, const void *); ++static char *getname(const uid_t); + +- /* the number of the tty the process owns */ +- int ttyNo; ++void initProcessList(struct SensorModul *sm) { ++ size_t len; ++ ++ if (!RunAsDaemon) { ++ registerCommand(KILL_COMMAND, killProcess); ++ registerCommand(SETPRIORITY_COMMAND, setPriority); ++ } + +- /* +- * The nice level. The range should be -20 to 20. I'm not sure +- * whether this is true for all platforms. +- */ +- int niceLevel; +- +- /* +- * The scheduling priority. +- */ +- int priority; +- +- /* +- * The total amount of memory the process uses. This includes shared and +- * swapped memory. +- */ +- unsigned int vmSize; +- +- /* +- * The amount of physical memory the process currently uses. +- */ +- unsigned int vmRss; +- +- /* +- * The amount of memory (shared/swapped/etc) the process shares with +- * other processes. +- */ +- unsigned int vmLib; +- +- /* +- * The number of 1/100 of a second the process has spend in user space. +- * If a machine has an uptime of 1 1/2 years or longer this is not a +- * good idea. I never thought that the stability of UNIX could get me +- * into trouble! ;) +- */ +-#if !defined(__DragonFly__) +- unsigned int userTime; +-#else +- long userTime; +-#endif +- +- /* +- * The number of 1/100 of a second the process has spend in system space. +- * If a machine has an uptime of 1 1/2 years or longer this is not a +- * good idea. I never thought that the stability of UNIX could get me +- * into trouble! ;) +- */ +- unsigned int sysTime; +- +- /* system time as multime of 100ms */ +- int centStamp; +- +- /* the current CPU load (in %) from user space */ +- double userLoad; +- +- /* the current CPU load (in %) from system space */ +- double sysLoad; +- +- /* the name of the process */ +- char name[64]; +- +- /* the command used to start the process */ +- char cmdline[256]; +- +- /* the login name of the user that owns this process */ +- char userName[32]; +-} ProcessInfo; ++ len = sizeof(int); ++ if (sysctlbyname("kern.smp.active", &smpmode, &len, NULL, 0)) ++ smpmode = 0; ++ else { ++ int cpus = 0; ++ len = sizeof(int); ++ sysctlbyname("kern.smp.cpus", &cpus, &len, NULL, 0); ++ cpunames = malloc(8 * sizeof(char) * cpus); ++ while (cpus--) ++ snprintf(cpunames[cpus], 8, "CPU%d", cpus); ++ } + +-static unsigned ProcessCount; ++ pagesize = getpagesize() / 1024; + +-static int +-processCmp(void* p1, void* p2) +-{ +- return (((ProcessInfo*) p1)->pid - ((ProcessInfo*) p2)->pid); ++ registerMonitor(PROC_MONITOR, "table", printProcessList, printProcessListInfo, sm); ++ registerMonitor(NPROC_MONITOR, "integer", printProcessCount, printProcessCountInfo, sm); ++ registerMonitor(PID_MONITOR, "integer", printLastPID, printLastPIDInfo, sm); ++ ++ nproc = 0; ++ updateProcessList(); + } + +-static ProcessInfo* +-findProcessInList(int pid) +-{ +- ProcessInfo key; +- long index; ++void exitProcessList(void) { ++ removeCommand(KILL_COMMAND); ++ removeCommand(SETPRIORITY_COMMAND); + +- key.pid = pid; +- if ((index = search_ctnr(ProcessList, processCmp, &key)) < 0) +- return (0); ++ removeMonitor(PROC_MONITOR); ++ removeMonitor(NPROC_MONITOR); ++ removeMonitor(PID_MONITOR); + +- return (get_ctnr(ProcessList, index)); ++ free(cpunames); ++ cpunames = NULL; + } + +-static int +-updateProcess(int pid) +-{ +- static const char * const statuses[] = { "idle","run","sleep","stop","zombie" }; +- +- ProcessInfo* ps; +- struct passwd* pwent; +- int mib[4]; +- struct kinfo_proc p; +- struct rusage pru; ++int updateProcessList(void) { ++ int proc; ++ int mib[3]; + size_t len; +- size_t buflen = 256; +- char buf[256]; +- +- if ((ps = findProcessInList(pid)) == 0) +- { +- ps = (ProcessInfo*) malloc(sizeof(ProcessInfo)); +- ps->pid = pid; +- ps->centStamp = 0; +- push_ctnr(ProcessList, ps); +- bsort_ctnr(ProcessList, processCmp); +- } ++ struct timespec update; + +- ps->alive = 1; ++ memcpy(prev_list, proc_buf, sizeof(struct kinfo_proc) * nproc); ++ memcpy(prev_sorted, sorted_proc, sizeof(int) * nproc); ++ prev_nproc = nproc; + + mib[0] = CTL_KERN; + mib[1] = KERN_PROC; +- mib[2] = KERN_PROC_PID; +- mib[3] = pid; +- +- len = sizeof (p); +- if (sysctl(mib, 4, &p, &len, NULL, 0) == -1 || !len) +- return -1; ++ mib[2] = KERN_PROC_PROC; ++ len = PROCBUF * sizeof(struct kinfo_proc); ++ clock_gettime(CLOCK_MONOTONIC, &update); ++ sysctl(mib, 3, proc_buf, &len, NULL, 0); ++ nproc = len / sizeof(struct kinfo_proc); ++ ++ len = sizeof(unsigned int); ++ sysctlbyname("kern.lastpid", &lastpid, &len, NULL, 0); ++ ++ if (nproc > PROCBUF) ++ nproc = PROCBUF; ++ for (proc = 0; proc < nproc; ++proc) ++ sorted_proc[proc] = proc; ++ qsort(sorted_proc, nproc, sizeof(int), cmp_pid); + +-#if (__FreeBSD_version > 500015) || (__FreeBSD_kernel_version > 500015) +- ps->pid = p.ki_pid; +- ps->ppid = p.ki_ppid; +- ps->uid = p.ki_uid; +- ps->gid = p.ki_pgid; +- ps->priority = p.ki_pri.pri_user; +- ps->niceLevel = p.ki_nice; +-#elif defined(__DragonFly__) && __DragonFly_version >= 190000 +- ps->pid = p.kp_pid; +- ps->ppid = p.kp_ppid; +- ps->uid = p.kp_uid; +- ps->gid = p.kp_pgid; +- ps->priority = p.kp_lwp.kl_tdprio; +- ps->niceLevel = p.kp_nice; +-#else +- ps->pid = p.kp_proc.p_pid; +- ps->ppid = p.kp_eproc.e_ppid; +- ps->uid = p.kp_eproc.e_ucred.cr_uid; +- ps->gid = p.kp_eproc.e_pgid; +-#if defined(__DragonFly__) +- ps->priority = p.kp_thread.td_pri; +-#else +- ps->priority = p.kp_proc.p_priority; +-#endif +- ps->niceLevel = p.kp_proc.p_nice; +-#endif +- +- /* this isn't usertime -- it's total time (??) */ +-#if (__FreeBSD_version > 500015) || (__FreeBSD_kernel_version > 500015) +- ps->userTime = p.ki_runtime / 10000; +-#elif defined(__DragonFly__) +-#if __DragonFly_version >= 190000 +- if (!getrusage(p.kp_pid, &pru)) +-#else +- if (!getrusage(p.kp_proc.p_pid, &pru)) +-#endif +- { +- errx(1, "failed to get rusage info"); +- } +- ps->userTime = pru.ru_utime.tv_usec / 1000; /*p_runtime / 1000*/ +-#elif __FreeBSD_version >= 300000 +- ps->userTime = p.kp_proc.p_runtime / 10000; +-#else +- ps->userTime = p.kp_proc.p_rtime.tv_sec*100+p.kp_proc.p_rtime.tv_usec/100; +-#endif +- ps->sysTime = 0; +- ps->sysLoad = 0; +- +- /* memory, process name, process uid */ +- /* find out user name with process uid */ +- pwent = getpwuid(ps->uid); +- strncpy(ps->userName,pwent&&pwent->pw_name? pwent->pw_name:"????",sizeof(ps->userName)); +- ps->userName[sizeof(ps->userName)-1]='\0'; ++ scale = (update.tv_sec - last_update.tv_sec) + (update.tv_nsec - last_update.tv_nsec) / 1000000000.0; ++ last_update = update; + +- if (fscale == 0) +- ps->userLoad = 0; +- else +-#if (__FreeBSD_version > 500015) || (__FreeBSD_kernel_version > 500015) +- ps->userLoad = 100.0 * (double) p.ki_pctcpu / fscale; +- ps->vmSize = p.ki_size; +- ps->vmRss = p.ki_rssize * getpagesize(); +- strlcpy(ps->name,p.ki_comm? p.ki_comm:"????",sizeof(ps->name)); +- strcpy(ps->status,(p.ki_stat>=1)&&(p.ki_stat<=5)? statuses[p.ki_stat-1]:"????"); +-#elif defined (__DragonFly__) && __DragonFly_version >= 190000 +- ps->userLoad = 100.0 * (double) p.kp_lwp.kl_pctcpu / fscale; +- ps->vmSize = p.kp_vm_map_size; +- ps->vmRss = p.kp_vm_rssize * getpagesize(); +- strlcpy(ps->name,p.kp_comm ? p.kp_comm : "????", +- sizeof(ps->name)); +- strcpy(ps->status,(p.kp_stat>=1)&&(p.kp_stat<=5)? statuses[p.kp_stat-1]:"????"); +-#else +- ps->userLoad = 100.0 * (double) p.kp_proc.p_pctcpu / fscale; +- ps->vmSize = p.kp_eproc.e_vm.vm_map.size; +- ps->vmRss = p.kp_eproc.e_vm.vm_rssize * getpagesize(); +-#if defined (__DragonFly__) +- strlcpy(ps->name,p.kp_thread.td_comm ? p.kp_thread.td_comm : "????", +- sizeof(ps->name)); +-#else +- strlcpy(ps->name,p.kp_proc.p_comm ? p.kp_proc.p_comm : "????", sizeof(ps->name)); +-#endif +- strcpy(ps->status,(p.kp_proc.p_stat>=1)&&(p.kp_proc.p_stat<=5)? statuses[p.kp_proc.p_stat-1]:"????"); +-#endif ++ return (0); ++} + +- /* process command line */ +- /* do a sysctl to get the command line args. */ ++void printProcessList(const char* cmd) ++{ ++ int proc, prev_proc; ++ float load; ++ int mib[4]; ++ char *name, *uname, *state, *arg_fix; ++ char buf[STATEBUF + 1], buf2[UNAMEBUF], buf3[NAMEBUF], args[ARGBUF]; ++ struct kinfo_proc *ps, *last_ps; ++ size_t len; + ++ buf[STATEBUF] = '\0'; ++ buf3[0] = '['; + mib[0] = CTL_KERN; + mib[1] = KERN_PROC; + mib[2] = KERN_PROC_ARGS; +- mib[3] = pid; +- +- if ((sysctl(mib, 4, buf, &buflen, 0, 0) == -1) || !buflen) +- strcpy(ps->cmdline, "????"); +- else +- strncpy(ps->cmdline, buf, buflen); + +- return (0); +-} ++ for (prev_proc = 0, proc = 0; proc < nproc; ++proc) { ++ ps = &proc_buf[sorted_proc[proc]]; + +-static void +-cleanupProcessList(void) +-{ +- ProcessInfo* ps; +- +- ProcessCount = 0; +- /* All processes that do not have the active flag set are assumed dead +- * and will be removed from the list. The alive flag is cleared. */ +- for (ps = first_ctnr(ProcessList); ps; ps = next_ctnr(ProcessList)) +- { +- if (ps->alive) +- { +- /* Process is still alive. Just clear flag. */ +- ps->alive = 0; +- ProcessCount++; ++ mib[3] = ps->ki_pid; ++ len = ARGBUF; ++ sysctl(mib, 4, args, &len, 0, 0); ++ if (!len) ++ args[0] = '\0'; ++ else { ++ arg_fix = args; ++ while ((arg_fix += strlen(arg_fix)) < args + len - 1) ++ *arg_fix = '*'; + } ++ ++ if (args[0] == '\0' && (ps->ki_flag & P_SYSTEM || ps->ki_args == NULL)) { ++ int cpy; ++ cpy = strlcpy(buf3 + 1, ps->ki_comm, NAMEBUF - 1); ++ if (cpy > NAMEBUF - 2) ++ cpy = NAMEBUF - 2; ++ buf3[cpy + 1] = ']'; ++ buf3[cpy + 2] = '\0'; ++ name = buf3; ++ // TODO: should kernel processes be displayed? ++ //continue; ++ } else if (ps->ki_comm != NULL) ++ name = ps->ki_comm; + else +- { +- /* Process has probably died. We remove it from the list and +- * destruct the data structure. */ +- free(remove_ctnr(ProcessList)); ++ name = "????"; ++ ++ switch (ps->ki_stat) { ++ case SRUN: ++ if (smpmode && ps->ki_oncpu != 0xff) ++ state = cpunames[ps->ki_oncpu]; ++ else ++ state = statuses[2]; ++ break; ++ case SSLEEP: ++ if (ps->ki_wmesg != NULL) { ++ state = ps->ki_wmesg; ++ break; ++ } ++ ++ case SLOCK: ++ if (ps->ki_kiflag & KI_LOCKBLOCK) { ++ snprintf(buf, STATEBUF, "*%s", ps->ki_lockname); ++ state = buf; ++ break; ++ } ++ ++ case SIDL: ++ case SSTOP: ++ case SZOMB: ++ case SWAIT: ++ state = statuses[(int)ps->ki_stat]; ++ break; ++ ++ default: ++ snprintf(buf, STATEBUF, "?%d", ps->ki_stat); ++ state = buf; + } +- } +-} + +-/* +-================================ public part ================================== +-*/ ++ uname = getname(ps->ki_ruid); ++ if (uname[0] == '\0') { ++ snprintf(buf2, UNAMEBUF, "%d", ps->ki_ruid); ++ uname = buf2; ++ } + +-void +-initProcessList(struct SensorModul* sm) +-{ +- size_t fscalelen; +- ProcessList = new_ctnr(); ++ for (;;) { ++ if (prev_proc >= prev_nproc) { ++ last_ps = NULL; ++ break; ++ } ++ last_ps = &prev_list[prev_sorted[prev_proc]]; ++ if (last_ps->ki_pid == ps->ki_pid && ++ last_ps->ki_start.tv_sec == ps->ki_start.tv_sec && ++ last_ps->ki_start.tv_usec == ps->ki_start.tv_usec) ++ break; ++ else if (last_ps->ki_pid > ps->ki_pid) { ++ last_ps = NULL; ++ break; ++ } ++ ++prev_proc; ++ } + +- registerMonitor("ps", "table", printProcessList, printProcessListInfo, sm); +- registerMonitor("pscount", "integer", printProcessCount, printProcessCountInfo, sm); ++ if (last_ps != NULL) ++ load = (ps->ki_runtime - last_ps->ki_runtime) / 1000000.0 / scale; ++ else ++ load = ps->ki_runtime / 1000000.0 / scale; + +- if (!RunAsDaemon) +- { +- registerCommand("kill", killProcess); +- registerCommand("setpriority", setPriority); ++ fprintf(CurrentClient, "%s\t%ld\t%ld\t%ld\t%ld\t%s\t%.2f\t%.2f\t%d\t%ld\t%ld\t%s\t%s\n", ++ name, (long)ps->ki_pid, (long)ps->ki_ppid, ++ (long)ps->ki_uid, (long)ps->ki_pgid, state, ++ ps->ki_runtime / 1000000.0, load, ps->ki_nice, ++ ps->ki_size / 1024, ps->ki_rssize * pagesize, uname, args); + } +- +- fscalelen = sizeof(fscale); +- if (sysctlbyname("kern.fscale", &fscale, &fscalelen, NULL, 0) == -1) +- fscale = 0; +- +- updateProcessList(); +-} +- +-void +-exitProcessList(void) +-{ +- removeMonitor("ps"); +- removeMonitor("pscount"); +- +- if (ProcessList) +- free (ProcessList); +-} +- +-int +-updateProcessList(void) +-{ +- int mib[3]; +- size_t len; +- size_t num; +- struct kinfo_proc *p; +- +- +- mib[0] = CTL_KERN; +- mib[1] = KERN_PROC; +- mib[2] = KERN_PROC_ALL; +- sysctl(mib, 3, NULL, &len, NULL, 0); +- p = malloc(len); +- sysctl(mib, 3, p, &len, NULL, 0); +- +- for (num = 0; num < len / sizeof(struct kinfo_proc); num++) +-#if (__FreeBSD_version > 500015) || (__FreeBSD_kernel_version > 500015) +- updateProcess(p[num].ki_pid); +-#elif __DragonFly_version >= 190000 +- /* Skip kernel threads with pid -1. Swapper with pid 0 also +- * causing problems is skipped in printProcessList() as 'kernel' +- * entry. */ +- if (p[num].kp_pid >= 0) +- updateProcess(p[num].kp_pid); +-#elif defined(__DragonFly__) +- if (p[num].kp_proc.p_pid >= 0) +- updateProcess(p[num].kp_proc.p_pid); +-#else +- updateProcess(p[num].kp_proc.p_pid); +-#endif +- free(p); +- cleanupProcessList(); +- +- return (0); + } + +-void +-printProcessListInfo(const char* cmd) ++void printProcessListInfo(const char* cmd) + { + fprintf(CurrentClient, "Name\tPID\tPPID\tUID\tGID\tStatus\tUser%%\tSystem%%\tNice\tVmSize\tVmRss\tLogin\tCommand\n"); + fprintf(CurrentClient, "s\td\td\td\td\tS\tf\tf\td\tD\tD\ts\ts\n"); + } + +-void +-printProcessList(const char* cmd) +-{ +- ProcessInfo* ps; ++void printProcessCount(const char *cmd) { ++ fprintf(CurrentClient, "%d\n", nproc); ++} + +- ps = first_ctnr(ProcessList); /* skip 'kernel' entry */ +- for (ps = next_ctnr(ProcessList); ps; ps = next_ctnr(ProcessList)) +- { +- fprintf(CurrentClient, "%s\t%ld\t%ld\t%ld\t%ld\t%s\t%.2f\t%.2f\t%d\t%d\t%d\t%s\t%s\n", +- ps->name, (long)ps->pid, (long)ps->ppid, +- (long)ps->uid, (long)ps->gid, ps->status, +- ps->userLoad, ps->sysLoad, ps->niceLevel, +- ps->vmSize / 1024, ps->vmRss / 1024, ps->userName, ps->cmdline); +- } ++void printProcessCountInfo(const char *cmd) { ++ fprintf(CurrentClient, "Number of Processes\t1\t65535\t\n"); + } + +-void +-printProcessCount(const char* cmd) +-{ +- fprintf(CurrentClient, "%d\n", ProcessCount); ++void printLastPID(const char *cmd) { ++ fprintf(CurrentClient, "%u\n", lastpid); + } + +-void +-printProcessCountInfo(const char* cmd) +-{ +- fprintf(CurrentClient, "Number of Processes\t1\t65535\t\n"); ++void printLastPIDInfo(const char *cmd) { ++ fprintf(CurrentClient, "Last used Process ID\t1\t65535\t\n"); + } + +-void +-killProcess(const char* cmd) ++void killProcess(const char *cmd) + { + int sig, pid; + +@@ -524,8 +373,7 @@ + fprintf(CurrentClient, "0\t%d\n", pid); + } + +-void +-setPriority(const char* cmd) ++void setPriority(const char *cmd) + { + int pid, prio; + +@@ -535,20 +383,58 @@ + switch(errno) + { + case EINVAL: +- fprintf(CurrentClient, "4\n"); ++ fprintf(CurrentClient, "4\t%d\t%d\n", pid, prio); + break; + case ESRCH: +- fprintf(CurrentClient, "3\n"); ++ fprintf(CurrentClient, "3\t%d\t%d\n", pid, prio); + break; + case EPERM: + case EACCES: +- fprintf(CurrentClient, "2\n"); ++ fprintf(CurrentClient, "2\t%d\t%d\n", pid, prio); + break; + default: +- fprintf(CurrentClient, "1\n"); /* unknown error */ ++ fprintf(CurrentClient, "1\t%d\t%d\n", pid, prio); /* unknown error */ + break; + } + } + else + fprintf(CurrentClient, "0\n"); + } ++ ++int cmp_pid(const void *first_idx, const void *last_idx) { ++ struct kinfo_proc *first = &proc_buf[*(int *)first_idx]; ++ struct kinfo_proc *last = &proc_buf[*(int *)last_idx]; ++ ++ if (first->ki_pid < last->ki_pid) ++ return -1; ++ else if (first->ki_pid > last->ki_pid) ++ return 1; ++ else ++ return 0; ++} ++ ++char *getname(const uid_t uid) { ++ int idx; ++ struct passwd *pw; ++ ++ for (idx = 0; idx < pwd_size; ++idx) { ++ if (pwd_cache[pwd_hit].uid == uid) ++ return pwd_cache[pwd_hit].name; ++ pwd_hit = (pwd_hit + 1) % pwd_size; ++ } ++ ++ if (pwd_size < PWDBUF) ++ pwd_last = pwd_size++; ++ else ++ pwd_last = (pwd_last + 1) % PWDBUF; ++ pwd_hit = pwd_last; ++ ++ pwd_cache[pwd_hit].uid = uid; ++ pw = getpwuid(uid); ++ if (pw == NULL) ++ pwd_cache[pwd_hit].name[0] = '\0'; ++ else ++ strlcpy(pwd_cache[pwd_hit].name, pw->pw_name, NAMELEN); ++ ++ return (pwd_cache[pwd_hit].name); ++} diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__ProcessList.h b/sysutils/ksysguardd/files/patch-FreeBSD__ProcessList.h new file mode 100644 index 000000000000..947899bc2df1 --- /dev/null +++ b/sysutils/ksysguardd/files/patch-FreeBSD__ProcessList.h @@ -0,0 +1,39 @@ +--- FreeBSD/ProcessList.h 2011-03-17 20:50:04.000000000 +0200 ++++ FreeBSD/ProcessList.h 2011-01-30 11:06:11.000000000 +0200 +@@ -1,6 +1,7 @@ + /* + KSysGuard, the KDE System Guard + ++ Copyright (c) 2011 David Naylor <naylor.b.david@gmail.com> + Copyright (c) 1999 Chris Schlaeger <cs@kde.org> + + This program is free software; you can redistribute it and/or modify +@@ -22,15 +23,23 @@ + #ifndef _process_list_h_ + #define _process_list_h_ + +-void initProcessList(struct SensorModul* sm); ++struct SensorModul; ++ ++void initProcessList(struct SensorModul *); + void exitProcessList(void); + + int updateProcessList(void); + +-void printProcessList(const char*); +-void printProcessListInfo(const char*); +-void printProcessCount(const char* cmd); +-void printProcessCountInfo(const char* cmd); ++void printProcessList(const char *); ++void printProcessListInfo(const char *); ++void printThreadList(const char *); ++void printThreadListInfo(const char *); ++ ++void printProcessCount(const char *); ++void printProcessCountInfo(const char *); ++ ++void printLastPID(const char *); ++void printLastPIDInfo(const char *); + + void killProcess(const char* cmd); + void setPriority(const char* cmd); diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__acpi.c b/sysutils/ksysguardd/files/patch-FreeBSD__acpi.c new file mode 100644 index 000000000000..7c2bbd46795c --- /dev/null +++ b/sysutils/ksysguardd/files/patch-FreeBSD__acpi.c @@ -0,0 +1,244 @@ +--- FreeBSD/acpi.c 1970-01-01 02:00:00.000000000 +0200 ++++ FreeBSD/acpi.c 2011-01-30 10:28:18.000000000 +0200 +@@ -0,0 +1,241 @@ ++/* ++ KSysGuard, the KDE System Guard ++ ++ Copyright (c) 2011 David Naylor <naylor.b.david@gmail.com> ++ ++ This program is free software; you can redistribute it and/or ++ modify it under the terms of version 2 of the GNU General Public ++ License as published by the Free Software Foundation. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++*/ ++ ++/* ++ * TODO ++ * - battery ++ * - fan ++ */ ++ ++#include "acpi.h" ++ ++#include <fcntl.h> ++#include <stdio.h> ++#include <sys/ioctl.h> ++#include <sys/types.h> ++#include <sys/sysctl.h> ++#include <unistd.h> ++ ++#include <dev/acpica/acpiio.h> ++ ++#include "Command.h" ++ ++#define BUF_LEN 80 ++ ++#define MAXTZ 6 ++#define TZ_MIB "hw.acpi.thermal.tz%i.temperature" ++#define TZ_MIB_LEN 32 ++#define TZ_MONITOR "acpi/thermal_zone/temp%i" ++ ++#define MAXBAT 6 ++#define BAT_CHARGE_MONITOR "acpi/battery/batt%i/batterycharge" ++#define BAT_CAPACITY_MONITOR "acpi/battery/batt%i/batterycapacity" ++#define BAT_REMAINING_MONITOR "acpi/battery/batt%i/remainingtime" ++#define BAT_VOLTAGE_MONITOR "acpi/battery/batt%i/batteryvoltage" ++#define BAT_RATE_MONITOR "acpi/battery/batt%i/batteryrate" ++#define BAT_UNIT(bat) (bat_bif[bat].bif.units ? "mA" : "mW") ++ ++static int acpifd = -1; ++ ++static int tz_temp[MAXTZ]; ++static int tz_cnt; ++ ++static int bat_cnt; ++static union acpi_battery_ioctl_arg bat_bif[MAXBAT], bat_bst[MAXBAT], bat_battinfo[MAXBAT]; ++ ++void initACPI(struct SensorModul *sm) { ++ char name[BUF_LEN]; ++ size_t len; ++ ++ /* Assume thermal zones use hw.acpi.thermal.tz%i.temperature format */ ++ for (tz_cnt = 0; tz_cnt < MAXTZ; ++tz_cnt) { ++ len = sizeof(int); ++ snprintf(name, TZ_MIB_LEN, TZ_MIB, tz_cnt); ++ if (sysctlbyname(name, &tz_temp[tz_cnt], &len, NULL, 0)) ++ break; ++ else { ++ snprintf(name, BUF_LEN, TZ_MONITOR, tz_cnt + 1); ++ registerMonitor(name, "float", printThermal, printThermalInfo, sm); ++ } ++ } ++ ++ if ((acpifd = open("/dev/acpi", O_RDONLY)) == -1) { ++ log_error("unable to open /dev/acpi"); ++ return; ++ } ++ ++ for (bat_cnt = 0; bat_cnt < MAXBAT; ++bat_cnt) { ++ bat_bif[bat_cnt].unit = bat_cnt; ++ if (ioctl(acpifd, ACPIIO_BATT_GET_BIF, &bat_bif[bat_cnt])) ++ break; ++ else { ++ snprintf(name, BUF_LEN, BAT_CHARGE_MONITOR, bat_cnt + 1); ++ registerMonitor(name, "integer", printBatCharge, printBatChargeInfo, sm); ++ snprintf(name, BUF_LEN, BAT_CAPACITY_MONITOR, bat_cnt + 1); ++ registerMonitor(name, "integer", printBatCapacity, printBatCapacityInfo, sm); ++ snprintf(name, BUF_LEN, BAT_REMAINING_MONITOR, bat_cnt + 1); ++ registerMonitor(name, "integer", printBatRemaining, printBatRemainingInfo, sm); ++ snprintf(name, BUF_LEN, BAT_VOLTAGE_MONITOR, bat_cnt + 1); ++ registerMonitor(name, "integer", printBatVoltage, printBatVoltageInfo, sm); ++ snprintf(name, BUF_LEN, BAT_RATE_MONITOR, bat_cnt + 1); ++ registerMonitor(name, "integer", printBatRate, printBatRateInfo, sm); ++ } ++ } ++} ++ ++void exitACPI(void) { ++ int bat, tz; ++ char name[BUF_LEN]; ++ ++ for (tz = 0; tz < tz_cnt; ++tz) { ++ snprintf(name, BUF_LEN, TZ_MONITOR, tz + 1); ++ removeMonitor(name); ++ } ++ ++ if (acpifd != -1) { ++ for (bat = 0; bat < bat_cnt; ++bat) { ++ snprintf(name, TZ_MIB_LEN, BAT_CHARGE_MONITOR, bat + 1); ++ removeMonitor(name); ++ snprintf(name, BUF_LEN, BAT_CAPACITY_MONITOR, bat + 1); ++ removeMonitor(name); ++ snprintf(name, BUF_LEN, BAT_REMAINING_MONITOR, bat + 1); ++ removeMonitor(name); ++ snprintf(name, BUF_LEN, BAT_VOLTAGE_MONITOR, bat + 1); ++ removeMonitor(name); ++ ++ } ++ ++ close(acpifd); ++ acpifd = -1; ++ } ++} ++ ++int updateACPI(void) { ++ int bat, tz; ++ char name[TZ_MIB_LEN]; ++ size_t len; ++ ++ for (tz = 0; tz < tz_cnt; ++tz) { ++ len = sizeof(int); ++ snprintf(name, TZ_MIB_LEN, TZ_MIB, tz); ++ sysctlbyname(name, &tz_temp[tz], &len, NULL, 0); ++ } ++ ++ for (bat = 0; bat < bat_cnt; ++bat) { ++ bat_bst[bat].unit = bat; ++ ioctl(acpifd, ACPIIO_BATT_GET_BST, &bat_bst[bat]); ++ bat_battinfo[bat].unit = bat; ++ ioctl(acpifd, ACPIIO_BATT_GET_BATTINFO, &bat_battinfo[bat]); ++ } ++ ++ return (0); ++} ++ ++void printThermal(const char *cmd) { ++ int tz; ++ ++ sscanf(cmd + 22, "%i", &tz); ++ fprintf(CurrentClient, "%f\n", (tz_temp[tz - 1] - 2732) / 10.0); ++} ++ ++void printThermalInfo(const char *cmd) { ++ int tz; ++ ++ sscanf(cmd + 22, "%i", &tz); ++ fprintf(CurrentClient, "ACPI Thermal Zone %i\t0\t0\tC\n", tz); ++} ++ ++/* ++void printBat(const char *cmd) { ++ int bat; ++ ++ sscanf(cmd + 17, "%i", &bat); ++ fprintf(CurrentClient, ""); ++} ++*/ ++ ++void printBatCharge(const char *cmd) { ++ int bat; ++ ++ sscanf(cmd + 17, "%i", &bat); ++ fprintf(CurrentClient, "%i\n", bat_bst[bat - 1].bst.cap); ++} ++ ++void printBatChargeInfo(const char *cmd) { ++ int bat; ++ ++ sscanf(cmd + 17, "%i", &bat); ++ fprintf(CurrentClient, "Battery %i charge\t0\t%i\t%sh\n", bat, bat_bif[bat - 1].bif.dcap, BAT_UNIT(bat - 1)); ++} ++ ++void printBatCapacity(const char *cmd) { ++ int bat; ++ ++ sscanf(cmd + 17, "%i", &bat); ++ fprintf(CurrentClient, "%i\n", bat_battinfo[bat - 1].battinfo.cap); ++} ++ ++void printBatCapacityInfo(const char *cmd) { ++ int bat; ++ ++ sscanf(cmd + 17, "%i", &bat); ++ fprintf(CurrentClient, "Battery %i capacity\t0\t100\t%%\n", bat); ++} ++ ++void printBatRemaining(const char *cmd) { ++ int bat; ++ ++ sscanf(cmd + 17, "%i", &bat); ++ fprintf(CurrentClient, "%i\n", bat_battinfo[bat - 1].battinfo.min); ++} ++ ++void printBatRemainingInfo(const char *cmd) { ++ int bat; ++ ++ sscanf(cmd + 17, "%i", &bat); ++ fprintf(CurrentClient, "Battery %i remaining time\t0\t0\tmin\n", bat); ++} ++ ++void printBatVoltage(const char *cmd) { ++ int bat; ++ ++ sscanf(cmd + 17, "%i", &bat); ++ fprintf(CurrentClient, "%i\n", bat_bst[bat - 1].bst.volt); ++} ++ ++void printBatVoltageInfo(const char *cmd) { ++ int bat; ++ ++ sscanf(cmd + 17, "%i", &bat); ++ fprintf(CurrentClient, "Battery %i voltage\t0\t%i\tmV\n", bat, bat_bif[bat - 1].bif.dvol); ++} ++ ++void printBatRate(const char *cmd) { ++ int bat; ++ ++ sscanf(cmd + 17, "%i", &bat); ++ fprintf(CurrentClient, "%i\n", bat_bst[bat - 1].bst.rate); ++} ++ ++void printBatRateInfo(const char *cmd) { ++ int bat; ++ ++ sscanf(cmd + 17, "%i", &bat); ++ fprintf(CurrentClient, "Battery %i discharge rate\t0\t0\t%s\n", bat, BAT_UNIT(bat - 1)); ++} diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__acpi.h b/sysutils/ksysguardd/files/patch-FreeBSD__acpi.h new file mode 100644 index 000000000000..e68693581753 --- /dev/null +++ b/sysutils/ksysguardd/files/patch-FreeBSD__acpi.h @@ -0,0 +1,48 @@ +--- FreeBSD/acpi.h 1970-01-01 02:00:00.000000000 +0200 ++++ FreeBSD/acpi.h 2011-01-27 20:56:50.000000000 +0200 +@@ -0,0 +1,45 @@ ++/* ++ KSysGuard, the KDE System Guard ++ ++ Copyright (c) 2011 David Naylor <naylor.b.david@gmail.com> ++ ++ This program is free software; you can redistribute it and/or ++ modify it under the terms of version 2 of the GNU General Public ++ License as published by the Free Software Foundation. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ ++*/ ++ ++#ifndef _acpi_h_ ++#define _acpi_h_ ++ ++struct SensorModul; ++ ++void initACPI(struct SensorModul*); ++void exitACPI(void); ++ ++int updateACPI(void); ++ ++void printBatCharge(const char*); ++void printBatChargeInfo(const char*); ++void printBatCapacity(const char*); ++void printBatCapacityInfo(const char*); ++void printBatRemaining(const char*); ++void printBatRemainingInfo(const char*); ++void printBatVoltage(const char*); ++void printBatVoltageInfo(const char*); ++void printBatRate(const char*); ++void printBatRateInfo(const char*); ++ ++void printThermal(const char *); ++void printThermalInfo(const char *); ++ ++#endif /* _acpi_h_ */ diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__cpuinfo.c b/sysutils/ksysguardd/files/patch-FreeBSD__cpuinfo.c new file mode 100644 index 000000000000..f75f00e31267 --- /dev/null +++ b/sysutils/ksysguardd/files/patch-FreeBSD__cpuinfo.c @@ -0,0 +1,658 @@ +--- FreeBSD/cpuinfo.c 1970-01-01 02:00:00.000000000 +0200 ++++ FreeBSD/cpuinfo.c 2011-02-19 10:12:35.000000000 +0200 +@@ -0,0 +1,655 @@ ++/* ++ KSysGuard, the KDE System Guard ++ ++ Copyright (c) 1999 Chris Schlaeger <cs@kde.org> ++ Copyright (c) 2010 David Naylor <naylor.b.david@gmail.com> ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ ++*/ ++ ++#include <sys/types.h> ++ ++#include <sys/resource.h> ++#include <sys/sysctl.h> ++ ++#include <devstat.h> ++#include <fcntl.h> ++#include <nlist.h> ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++ ++#include "cpuinfo.h" ++#include "Command.h" ++#include "ksysguardd.h" ++ ++#define FREQ_LEVEL_BUFFER 256 ++#define SYSCTL_ID_LEN 35 ++ ++static void get_mmfreq(int, int*, int*); ++ ++static long percentages(int cnt, long *out, long *new, long *old, long *diffs); ++ ++static long (*cp_time)[CPUSTATES] = NULL; ++static long (*cp_old)[CPUSTATES] = NULL; ++static long (*cp_diff)[CPUSTATES] = NULL; ++ ++static int maxcpus = 1; ++static int cpus = 1; ++static int cores = 1; ++static int (*freq)[3] = NULL; ++static int *temp = NULL; ++ ++static long (*cpu_states)[CPUSTATES] = NULL; ++ ++void ++initCpuInfo(struct SensorModul* sm) ++{ ++ size_t len; ++ int id; ++ char name[SYSCTL_ID_LEN]; ++ int minfreq, maxfreq; ++ ++ len = sizeof(cpus); ++ // XXX: this is a guess ++ sysctlbyname("kern.smp.active", &cpus, &len, NULL, 0); ++ // NOTE: cpus may be 0, which implies 1 ++ cpus = cpus ? cpus : 1; ++ ++ len = sizeof(cores); ++ sysctlbyname("kern.smp.cpus", &cores, &len, NULL, 0); ++ ++ len = sizeof(maxcpus); ++ sysctlbyname("kern.smp.maxcpus", &maxcpus, &len, NULL, 0); ++ ++ /* Core/process count */ ++ registerMonitor("system/processors", "integer", printNumCpus, printNumCpusInfo, sm); ++ registerMonitor("system/cores", "integer", printNumCores, printNumCoresInfo, sm); ++ ++ /* ++ * CPU Loads ++ */ ++ if ((cp_time = malloc(sizeof(long) * CPUSTATES * (cores * 4 + 1))) == NULL) { ++ log_error("out of memory for cp_time"); ++ return; ++ } ++ cp_old = &cp_time[cores]; ++ cp_diff = &cp_old[cores]; ++ cpu_states = &cp_diff[cores]; ++ ++ /* Total CPU load */ ++ registerMonitor("cpu/system/user", "float", printCPUUser, printCPUUserInfo, sm); ++ registerMonitor("cpu/system/nice", "float", printCPUNice, printCPUNiceInfo, sm); ++ registerMonitor("cpu/system/sys", "float", printCPUSys, printCPUSysInfo, sm); ++ registerMonitor("cpu/system/TotalLoad", "float", printCPUTotalLoad, printCPUTotalLoadInfo, sm); ++ registerMonitor("cpu/system/intr", "float", printCPUIntr, printCPUIntrInfo, sm); ++ registerMonitor("cpu/system/idle", "float", printCPUIdle, printCPUIdleInfo, sm); ++ ++ /* Monitor names changed from kde3 => kde4. Remain compatible with legacy requests when possible. */ ++ registerLegacyMonitor("cpu/user", "float", printCPUUser, printCPUUserInfo, sm); ++ registerLegacyMonitor("cpu/nice", "float", printCPUNice, printCPUNiceInfo, sm); ++ registerLegacyMonitor("cpu/sys", "float", printCPUSys, printCPUSysInfo, sm); ++ registerLegacyMonitor("cpu/idle", "float", printCPUIdle, printCPUIdleInfo, sm); ++ ++ for (id = 0; id < cores; ++id) { ++ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/user", id); ++ registerMonitor(name, "float", printCPUxUser, printCPUxUserInfo, sm); ++ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/nice", id); ++ registerMonitor(name, "float", printCPUxNice, printCPUxNiceInfo, sm); ++ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/sys", id); ++ registerMonitor(name, "float", printCPUxSys, printCPUxSysInfo, sm); ++ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/TotalLoad", id); ++ registerMonitor(name, "float", printCPUxTotalLoad, printCPUxTotalLoadInfo, sm); ++ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/intr", id); ++ registerMonitor(name, "float", printCPUxIntr, printCPUxIntrInfo, sm); ++ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/idle", id); ++ registerMonitor(name, "float", printCPUxIdle, printCPUxIdleInfo, sm); ++ } ++ ++ /* ++ * CPU frequencies ++ */ ++ if ((freq = malloc(sizeof(int) * 3 * (cores + 1))) == NULL) { ++ log_error("out of memory for freq"); ++ return; ++ } ++ ++ registerMonitor("cpu/system/AverageClock", "float", printCPUClock, printCPUClockInfo, sm); ++ for (id = 0; id < cores; ++id) { ++ len = sizeof(int); ++ snprintf(name, SYSCTL_ID_LEN, "dev.cpu.%d.freq", id); ++ if (!sysctlbyname(name, &freq[id][0], &len, NULL, 0)) { ++ get_mmfreq(id, &freq[id][1], &freq[id][2]); ++ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/clock", id); ++ registerMonitor(name, "integer", printCPUxClock, printCPUxClockInfo, sm); ++ } else { ++ freq[id][0] = -1; ++ freq[id][1] = 0; ++ freq[id][2] = 0; ++ } ++ } ++ ++ minfreq = freq[0][1]; ++ maxfreq = freq[0][2]; ++ for (id = 1; id < cores; ++id) ++ if (freq[id][0] != -1) { ++ minfreq = minfreq > freq[id][1] ? freq[id][1] : minfreq; ++ maxfreq = maxfreq < freq[id][2] ? freq[id][2] : maxfreq; ++ } ++ freq[cores][1] = minfreq; ++ freq[cores][2] = maxfreq; ++ ++ /* ++ * CPU temperature ++ */ ++ if ((temp = malloc(sizeof(int) * (cores + 1))) == NULL) { ++ log_error("out of memory for temp"); ++ return; ++ } ++ registerMonitor("cpu/system/AverageTemperature", "float", printCPUTemperature, printCPUTemperatureInfo, sm); ++ for (id = 0; id < cores; ++id) { ++ len = sizeof(int); ++ snprintf(name, SYSCTL_ID_LEN, "dev.cpu.%d.temperature", id); ++ if (!sysctlbyname(name, &temp[id], &len, NULL, 0)) { ++ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/temperature", id); ++ registerMonitor(name, "float", printCPUxTemperature, printCPUxTemperatureInfo, sm); ++ } else ++ temp[id] = -1; ++ } ++ ++ updateCpuInfo(); ++} ++ ++void ++exitCpuInfo(void) ++{ ++ int id; ++ char name[SYSCTL_ID_LEN]; ++ ++ removeMonitor("system/processors"); ++ removeMonitor("system/cores"); ++ ++ if (cp_time != NULL) { ++ removeMonitor("cpu/system/user"); ++ removeMonitor("cpu/system/nice"); ++ removeMonitor("cpu/system/sys"); ++ removeMonitor("cpu/system/TotalLoad"); ++ removeMonitor("cpu/system/intr"); ++ removeMonitor("cpu/system/idle"); ++ ++ /* These were registered as legacy monitors */ ++ removeMonitor("cpu/user"); ++ removeMonitor("cpu/nice"); ++ removeMonitor("cpu/sys"); ++ removeMonitor("cpu/idle"); ++ ++ for (id = 0; id < cores; ++id) { ++ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/user", id); ++ removeMonitor(name); ++ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/nice", id); ++ removeMonitor(name); ++ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/sys", id); ++ removeMonitor(name); ++ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/TotalLoad", id); ++ removeMonitor(name); ++ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/intr", id); ++ removeMonitor(name); ++ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/idle", id); ++ removeMonitor(name); ++ ++ if (freq != NULL && freq[id][0] != -1) { ++ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/clock", id); ++ removeMonitor(name); ++ } ++ if (temp != NULL && temp[id] != -1) { ++ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/temperature", id); ++ removeMonitor(name); ++ } ++ } ++ ++ free(cp_time); ++ cp_time = NULL; ++ } ++ ++ if (freq != NULL) { ++ removeMonitor("cpu/system/AverageClock"); ++ for (id = 0; id < cores; ++id) ++ if (freq[id][0] != -1) { ++ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/clock", id); ++ removeMonitor(name); ++ } ++ free(freq); ++ freq = NULL; ++ } ++ ++ if (temp != NULL) { ++ removeMonitor("cpu/system/AverageTemperature"); ++ for (id = 0; id < cores; ++id) ++ if (temp[id] != -1) { ++ snprintf(name, SYSCTL_ID_LEN, "cpu/cpu%d/temperature", id); ++ removeMonitor(name); ++ } ++ free(temp); ++ temp = NULL; ++ } ++ ++} ++ ++int ++updateCpuInfo(void) ++{ ++ int sid, id, tot_freq = 0, tot_temp = 0, freq_count = 0, temp_count = 0; ++ char name[SYSCTL_ID_LEN]; ++ ++ if (cp_time == NULL || freq == NULL || temp == NULL) ++ return (0); ++ ++ size_t len = sizeof(long) * CPUSTATES * cores; ++ sysctlbyname("kern.cp_times", cp_time, &len, NULL, 0); ++ for (sid = 0; sid < CPUSTATES; ++sid) ++ cpu_states[cores][sid] = 0; ++ for (id = 0; id < cores; ++id) { ++ percentages(CPUSTATES, cpu_states[id], cp_time[id], cp_old[id], cp_diff[id]); ++ for (sid = 0; sid < CPUSTATES; ++sid) ++ cpu_states[cores][sid] += cpu_states[id][sid]; ++ } ++ for (id = 0; id < cores; ++id) { ++ if (freq[id][0] != -1) { ++ len = sizeof(int); ++ snprintf(name, SYSCTL_ID_LEN, "dev.cpu.%d.freq", id); ++ freq[id][0] = 0; ++ if (!sysctlbyname(name, &freq[id][0], &len, NULL, 0)) { ++ freq_count += 1; ++ tot_freq += freq[id][0]; ++ } ++ } ++ if (temp[id] != -1) { ++ len = sizeof(int); ++ snprintf(name, SYSCTL_ID_LEN, "dev.cpu.%d.temperature", id); ++ temp[id] = 0.0; ++ if (!sysctlbyname(name, &temp[id], &len, NULL, 0)) { ++ temp_count += 1; ++ tot_temp += temp[id]; ++ } ++ } ++ } ++ freq[cores][0] = freq_count == 0 ? 0 : tot_freq * 100 / freq_count; ++ temp[cores] = temp_count == 0 ? 0.0 : tot_temp * 100 / temp_count; ++ ++ return (0); ++} ++ ++void ++printCPUUser(const char* cmd) ++{ ++ fprintf(CurrentClient, "%f\n", cpu_states[cores][CP_USER] / 10.0 / cores); ++} ++ ++void ++printCPUUserInfo(const char* cmd) ++{ ++ fprintf(CurrentClient, "CPU User Load\t0\t100\t%%\n"); ++} ++ ++void ++printCPUNice(const char* cmd) ++{ ++ fprintf(CurrentClient, "%f\n", cpu_states[cores][CP_NICE] / 10.0 / cores); ++} ++ ++void ++printCPUNiceInfo(const char* cmd) ++{ ++ fprintf(CurrentClient, "CPU Nice Load\t0\t100\t%%\n"); ++} ++ ++void ++printCPUSys(const char* cmd) ++{ ++ fprintf(CurrentClient, "%f\n", cpu_states[cores][CP_SYS] / 10.0 / cores); ++} ++ ++void ++printCPUSysInfo(const char* cmd) ++{ ++ fprintf(CurrentClient, "CPU System Load\t0\t100\t%%\n"); ++} ++ ++void ++printCPUTotalLoad(const char* cmd) ++{ ++ fprintf(CurrentClient, "%f\n", (cpu_states[cores][CP_SYS] + cpu_states[cores][CP_USER] + ++ cpu_states[cores][CP_NICE] + cpu_states[cores][CP_INTR]) / 10.0 / cores); ++} ++ ++void ++printCPUTotalLoadInfo(const char* cmd) ++{ ++ fprintf(CurrentClient, "CPU Total Load\t0\t100\t%%\n"); ++} ++ ++void ++printCPUIntr(const char* cmd) ++{ ++ fprintf(CurrentClient, "%f\n", cpu_states[cores][CP_INTR] / 10.0 / cores); ++} ++ ++void ++printCPUIntrInfo(const char* cmd) ++{ ++ fprintf(CurrentClient, "CPU Interrupt Load\t0\t100\t%%\n"); ++} ++ ++void ++printCPUIdle(const char* cmd) ++{ ++ fprintf(CurrentClient, "%f\n", cpu_states[cores][CP_IDLE] / 10.0 / cores); ++} ++ ++void ++printCPUIdleInfo(const char* cmd) ++{ ++ fprintf(CurrentClient, "CPU Idle Load\t0\t100\t%%\n"); ++} ++ ++void ++printCPUxUser(const char* cmd) ++{ ++ int id; ++ ++ sscanf(cmd + 7, "%d", &id); ++ fprintf(CurrentClient, "%0.1f\n", cpu_states[id][CP_USER] / 10.0); ++} ++ ++void ++printCPUxUserInfo(const char* cmd) ++{ ++ int id; ++ ++ sscanf(cmd + 7, "%d", &id); ++ fprintf(CurrentClient, "CPU%d User Load\t0\t100\t%%\n", id + 1); ++} ++ ++void ++printCPUxNice(const char* cmd) ++{ ++ int id; ++ ++ sscanf(cmd + 7, "%d", &id); ++ fprintf(CurrentClient, "%0.1f\n", cpu_states[id][CP_NICE] / 10.0); ++} ++ ++void ++printCPUxNiceInfo(const char* cmd) ++{ ++ int id; ++ ++ sscanf(cmd + 7, "%d", &id); ++ fprintf(CurrentClient, "CPU%d Nice Load\t0\t100\t%%\n", id + 1); ++} ++ ++void ++printCPUxSys(const char* cmd) ++{ ++ int id; ++ ++ sscanf(cmd + 7, "%d", &id); ++ fprintf(CurrentClient, "%0.1f\n", cpu_states[id][CP_SYS] / 10.0); ++} ++ ++void ++printCPUxSysInfo(const char* cmd) ++{ ++ int id; ++ ++ sscanf(cmd + 7, "%d", &id); ++ fprintf(CurrentClient, "CPU%d System Load\t0\t100\t%%\n", id + 1); ++} ++ ++void ++printCPUxTotalLoad(const char* cmd) ++{ ++ int id; ++ ++ sscanf(cmd + 7, "%d", &id); ++ fprintf(CurrentClient, "%f\n", (cpu_states[id][CP_SYS] + cpu_states[id][CP_USER] + ++ cpu_states[id][CP_NICE] + cpu_states[id][CP_INTR]) / 10.0); ++} ++ ++void ++printCPUxTotalLoadInfo(const char* cmd) ++{ ++ int id; ++ ++ sscanf(cmd + 7, "%d", &id); ++ fprintf(CurrentClient, "CPU%d Total Load\t0\t100\t%%\n", id + 1); ++} ++ ++void ++printCPUxIntr(const char* cmd) ++{ ++ int id; ++ ++ sscanf(cmd + 7, "%d", &id); ++ fprintf(CurrentClient, "%0.1f\n", cpu_states[id][CP_INTR] / 10.0); ++} ++ ++void ++printCPUxIntrInfo(const char* cmd) ++{ ++ int id; ++ ++ sscanf(cmd + 7, "%d", &id); ++ fprintf(CurrentClient, "CPU%d Interrupt Load\t0\t100\t%%\n", id + 1); ++} ++ ++void ++printCPUxIdle(const char* cmd) ++{ ++ int id; ++ ++ sscanf(cmd + 7, "%d", &id); ++ fprintf(CurrentClient, "%0.1f\n", cpu_states[id][CP_IDLE] / 10.0); ++} ++ ++void ++printCPUxIdleInfo(const char* cmd) ++{ ++ int id; ++ ++ sscanf(cmd + 7, "%d", &id); ++ fprintf(CurrentClient, "CPU%d Idle Load\t0\t100\t%%\n", id + 1); ++} ++ ++void printCPUxClock(const char* cmd) ++{ ++ int id; ++ ++ sscanf(cmd + 7, "%d", &id); ++ fprintf(CurrentClient, "%d\n", freq[id][0]); ++} ++ ++void printCPUxClockInfo(const char* cmd) ++{ ++ int id; ++ ++ sscanf(cmd + 7, "%d", &id); ++ fprintf(CurrentClient, "CPU%d Clock Frequency\t%d\t%d\tMHz\n", id + 1, ++ freq[id][1], freq[id][2]); ++} ++ ++void printCPUClock(const char* cmd) ++{ ++ fprintf(CurrentClient, "%f\n", freq[cores][0] / 100.0); ++} ++ ++void printCPUClockInfo(const char* cmd) ++{ ++ fprintf(CurrentClient, "CPU Clock Frequency\t%d\t%d\tMHz\n", freq[cores][1], freq[cores][2]); ++} ++ ++void printCPUxTemperature(const char* cmd) ++{ ++ int id; ++ ++ sscanf(cmd + 7, "%d", &id); ++ fprintf(CurrentClient, "%0.1f\n", (temp[id] - 2732) / 10.0); ++} ++ ++void printCPUxTemperatureInfo(const char* cmd) ++{ ++ int id; ++ ++ sscanf(cmd + 7, "%d", &id); ++ fprintf(CurrentClient, "CPU%d Temperature\t0\t0\tC\n", id + 1); ++} ++ ++void printCPUTemperature(const char* cmd) ++{ ++ fprintf(CurrentClient, "%0.3f\n", (temp[cores] - 273200) / 1000.0); ++} ++ ++void printCPUTemperatureInfo(const char* cmd) ++{ ++ fprintf(CurrentClient, "CPU Temperature\t0\t0\tC\n"); ++} ++ ++void printNumCpus(const char* cmd) ++{ ++ fprintf(CurrentClient, "%d\n", cpus); ++} ++ ++void printNumCpusInfo(const char* cmd) ++{ ++ fprintf(CurrentClient, "Number of physical CPUs\t0\t%d\t\n", maxcpus); ++} ++ ++void printNumCores(const char* cmd) ++{ ++ fprintf(CurrentClient, "%d\n", cores); ++} ++ ++void printNumCoresInfo(const char* cmd) ++{ ++ fprintf(CurrentClient, "Total number of processor cores\t0\t%d\t\n", maxcpus); ++} ++ ++void get_mmfreq(int id, int* minfreq, int* maxfreq) ++{ ++ char buf[FREQ_LEVEL_BUFFER]; ++ char mid[SYSCTL_ID_LEN]; ++ size_t len = FREQ_LEVEL_BUFFER; ++ ++ *minfreq = 0; ++ *maxfreq = 0; ++ ++ snprintf(mid, sizeof(mid), "dev.cpu.%d.freq_levels", id); ++ if (!sysctlbyname(mid, buf, &len, NULL, 0)) ++ { ++ char *start = buf; ++ char *end; ++ ++ /* ++ * The string is ([[freq]]/[[num]] )*([[freq]]/[[num]] ), so ++ * for each frequency we get we must also skip over another ++ * set of numbers ++ */ ++ while (1) ++ { ++ // Get the first number ++ int number = strtol(start, &end, 10); ++ if (start == end) ++ break; ++ if (!*maxfreq) ++ *maxfreq = number; ++ else ++ *minfreq = number; ++ if (!*end) ++ break; ++ start = end + 1; ++ ++ // Skip over the next number ++ strtol(start, &end, 10); ++ if (start == end || !*end) ++ break; ++ start = end + 1; ++ } ++ } ++} ++ ++/* The part ripped from top... */ ++/* ++ * Top users/processes display for Unix ++ * Version 3 ++ * ++ * This program may be freely redistributed, ++ * but this entire comment MUST remain intact. ++ * ++ * Copyright (c) 1984, 1989, William LeFebvre, Rice University ++ * Copyright (c) 1989, 1990, 1992, William LeFebvre, Northwestern University ++ */ ++ ++/* ++ * percentages(cnt, out, new, old, diffs) - calculate percentage change ++ * between array "old" and "new", putting the percentages i "out". ++ * "cnt" is size of each array and "diffs" is used for scratch space. ++ * The array "old" is updated on each call. ++ * The routine assumes modulo arithmetic. This function is especially ++ * useful on BSD mchines for calculating cpu state percentages. ++ */ ++long percentages(int cnt, long *out, long *new, long *old, long *diffs) ++{ ++ int i; ++ long change; ++ long total_change; ++ long *dp; ++ long half_total; ++ ++ /* initialization */ ++ total_change = 0; ++ dp = diffs; ++ ++ /* calculate changes for each state and the overall change */ ++ for (i = 0; i < cnt; i++) ++ { ++ if ((change = *new - *old) < 0) ++ { ++ /* this only happens when the counter wraps */ ++ change = (int) ++ ((unsigned long)*new-(unsigned long)*old); ++ } ++ total_change += (*dp++ = change); ++ *old++ = *new++; ++ } ++ ++ /* avoid divide by zero potential */ ++ if (total_change == 0) ++ { ++ total_change = 1; ++ } ++ ++ /* calculate percentages based on overall change, rounding up */ ++ half_total = total_change / 2l; ++ ++ /* Do not divide by 0. Causes Floating point exception */ ++ for (i = 0; i < cnt; i++) ++ { ++ *out++ = (int)((*diffs++ * 1000 + half_total) / total_change); ++ } ++ ++ /* return the total in case the caller wants to use it */ ++ return(total_change); ++} diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__cpuinfo.h b/sysutils/ksysguardd/files/patch-FreeBSD__cpuinfo.h new file mode 100644 index 000000000000..c560d454da71 --- /dev/null +++ b/sysutils/ksysguardd/files/patch-FreeBSD__cpuinfo.h @@ -0,0 +1,77 @@ +--- FreeBSD/cpuinfo.h 1970-01-01 02:00:00.000000000 +0200 ++++ FreeBSD/cpuinfo.h 2011-01-03 22:13:03.000000000 +0200 +@@ -0,0 +1,74 @@ ++/* ++ KSysGuard, the KDE System Guard ++ ++ Copyright (c) 1999 Chris Schlaeger <cs@kde.org> ++ Copyright (c) 2010 David Naylor <naylor.b.david@gmail.com> ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ ++*/ ++ ++#ifndef _cpuinfo_h_ ++#define _cpuinfo_h_ ++ ++struct SensorModul; ++ ++void initCpuInfo(struct SensorModul*); ++void exitCpuInfo(void); ++ ++int updateCpuInfo(void); ++ ++void printCPUUser(const char* cmd); ++void printCPUUserInfo(const char* cmd); ++void printCPUNice(const char* cmd); ++void printCPUNiceInfo(const char* cmd); ++void printCPUSys(const char* cmd); ++void printCPUSysInfo(const char* cmd); ++void printCPUTotalLoad(const char* cmd); ++void printCPUTotalLoadInfo(const char* cmd); ++void printCPUIntr(const char* cmd); ++void printCPUIntrInfo(const char* cmd); ++void printCPUIdle(const char* cmd); ++void printCPUIdleInfo(const char* cmd); ++void printCPUxUser(const char* cmd); ++void printCPUxUserInfo(const char* cmd); ++void printCPUxNice(const char* cmd); ++void printCPUxNiceInfo(const char* cmd); ++void printCPUxSys(const char* cmd); ++void printCPUxSysInfo(const char* cmd); ++void printCPUxTotalLoad(const char* cmd); ++void printCPUxTotalLoadInfo(const char* cmd); ++void printCPUxIntr(const char* cmd); ++void printCPUxIntrInfo(const char* cmd); ++void printCPUxIdle(const char* cmd); ++void printCPUxIdleInfo(const char* cmd); ++ ++void printCPUxClock(const char* cmd); ++void printCPUxClockInfo(const char* cmd); ++void printCPUClock(const char* cmd); ++void printCPUClockInfo(const char* cmd); ++ ++void printCPUxTemperature(const char* cmd); ++void printCPUxTemperatureInfo(const char* cmd); ++void printCPUTemperature(const char* cmd); ++void printCPUTemperatureInfo(const char* cmd); ++ ++void printNumCpus(const char* cmd); ++void printNumCpusInfo(const char* cmd); ++ ++void printNumCores(const char* cmd); ++void printNumCoresInfo(const char* cmd); ++ ++#endif /* _cpuinfo_h_ */ diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__diskstat.c b/sysutils/ksysguardd/files/patch-FreeBSD__diskstat.c new file mode 100644 index 000000000000..7f904b4ec4f3 --- /dev/null +++ b/sysutils/ksysguardd/files/patch-FreeBSD__diskstat.c @@ -0,0 +1,297 @@ +--- FreeBSD/diskstat.c 2011-03-17 20:50:04.000000000 +0200 ++++ FreeBSD/diskstat.c 2011-02-19 23:24:28.000000000 +0200 +@@ -19,8 +19,6 @@ + + */ + +-#include <config-workspace.h> +- + #include <stdio.h> + #include <stdlib.h> + #include <string.h> +@@ -43,8 +41,19 @@ + long bfree; + long bused; + int bused_percent; ++ long bsize; ++ long files; ++ long ffree; ++ long fused; ++ int fused_percent; + } DiskInfo; + ++#define BLK2KB(disk_info, prop) \ ++ (disk_info->prop * (disk_info->bsize / 1024)) ++ ++#define MNTPNT_NAME(disk_info) \ ++ (strcmp(disk_info->mntpnt, "/root") ? disk_info->mntpnt : "/") ++ + static CONTAINER DiskStatList = 0; + static struct SensorModul* DiskStatSM; + +@@ -96,6 +105,12 @@ + registerMonitor(monitor, "integer", printDiskStatFree, printDiskStatFreeInfo, DiskStatSM); + snprintf(monitor, sizeof(monitor), "partitions%s/filllevel", disk_info->mntpnt); + registerMonitor(monitor, "integer", printDiskStatPercent, printDiskStatPercentInfo, DiskStatSM); ++ snprintf(monitor, sizeof(monitor), "partitions%s/usedinode", disk_info->mntpnt); ++ registerMonitor(monitor, "integer", printDiskStatIUsed, printDiskStatIUsedInfo, DiskStatSM); ++ snprintf(monitor, sizeof(monitor), "partitions%s/freeinode", disk_info->mntpnt); ++ registerMonitor(monitor, "integer", printDiskStatIFree, printDiskStatIFreeInfo, DiskStatSM); ++ snprintf(monitor, sizeof(monitor), "partitions%s/inodelevel", disk_info->mntpnt); ++ registerMonitor(monitor, "integer", printDiskStatIPercent, printDiskStatIPercentInfo, DiskStatSM); + } + } + +@@ -123,6 +138,12 @@ + removeMonitor(monitor); + snprintf(monitor, sizeof(monitor), "partitions%s/filllevel", disk_info->mntpnt); + removeMonitor(monitor); ++ snprintf(monitor, sizeof(monitor), "partitions%s/usedinode", disk_info->mntpnt); ++ removeMonitor(monitor); ++ snprintf(monitor, sizeof(monitor), "partitions%s/freeinode", disk_info->mntpnt); ++ removeMonitor(monitor); ++ snprintf(monitor, sizeof(monitor), "partitions%s/inodelevel", disk_info->mntpnt); ++ removeMonitor(monitor); + } + + destr_ctnr(DiskStatList, free); +@@ -132,7 +153,7 @@ + { + struct statfs *fs_info; + struct statfs fs; +- float percent; ++ float percent, fpercent; + int i, mntcount; + DiskInfo *disk_info; + +@@ -144,29 +165,33 @@ + + for (i = 0; i < mntcount; i++) { + fs = fs_info[i]; +- if (strcmp(fs.f_fstypename, "procfs") && strcmp(fs.f_fstypename, "devfs") && strcmp(fs.f_fstypename, "devfs")) { ++ if (strcmp(fs.f_fstypename, "procfs") && strcmp(fs.f_fstypename, "devfs") && strcmp(fs.f_fstypename, "linprocfs")) { + if ( fs.f_blocks != 0 ) +- { +- percent = (((float)fs.f_blocks - (float)fs.f_bfree)*100.0/(float)fs.f_blocks); +- } ++ percent = (((float)fs.f_blocks - (float)fs.f_bfree)*100.0/(float)fs.f_blocks); + else +- percent = 0; +- if ((disk_info = (DiskInfo *)malloc(sizeof(DiskInfo))) == NULL) { ++ percent = 0; ++ if (fs.f_files != 0) ++ fpercent = (((float)fs.f_files - (float)fs.f_ffree)*100.0/(float)fs.f_files); ++ else ++ fpercent = 0; ++ if ((disk_info = (DiskInfo *)malloc(sizeof(DiskInfo))) == NULL) + continue; +- } + memset(disk_info, 0, sizeof(DiskInfo)); + strlcpy(disk_info->device, fs.f_mntfromname, sizeof(disk_info->device)); +- if (!strcmp(fs.f_mntonname, "/")) { ++ if (!strcmp(fs.f_mntonname, "/")) + strncpy(disk_info->mntpnt, "/root", 6); +- } else { ++ else + strlcpy(disk_info->mntpnt, fs.f_mntonname, sizeof(disk_info->mntpnt)); +- } + disk_info->blocks = fs.f_blocks; + disk_info->bfree = fs.f_bfree; + disk_info->bused = (fs.f_blocks - fs.f_bfree); + disk_info->bused_percent = (int)percent; +- ++ disk_info->bsize = fs.f_bsize; + push_ctnr(DiskStatList, disk_info); ++ disk_info->files = fs.f_files; ++ disk_info->ffree = fs.f_ffree; ++ disk_info->fused = fs.f_files - fs.f_ffree; ++ disk_info->fused_percent = (int)fpercent; + } + } + +@@ -178,13 +203,17 @@ + DiskInfo* disk_info; + + for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { +- fprintf(CurrentClient, "%s\t%ld\t%ld\t%ld\t%d\t%s\n", ++ fprintf(CurrentClient, "%s\t%ld\t%ld\t%ld\t%d\t%ld\t%ld\t%ld\t%d\t%s\n", + disk_info->device, +- disk_info->blocks, +- disk_info->bused, +- disk_info->bfree, ++ BLK2KB(disk_info, blocks), ++ BLK2KB(disk_info, bused), ++ BLK2KB(disk_info, bfree), + disk_info->bused_percent, +- disk_info->mntpnt); ++ disk_info->files, ++ disk_info->fused, ++ disk_info->ffree, ++ disk_info->fused_percent, ++ MNTPNT_NAME(disk_info)); + } + + fprintf(CurrentClient, "\n"); +@@ -192,7 +221,7 @@ + + void printDiskStatInfo(const char* cmd) + { +- fprintf(CurrentClient, "Device\tBlocks\tUsed\tAvailable\tUsed %%\tMountPoint\nM\tD\tD\tD\td\ts\n"); ++ fprintf(CurrentClient, "Device\tCapacity\tUsed\tAvailable\tUsed %%\tInodes\tUsed Inodes\tFree Inodes\tInodes %%\tMountPoint\nM\tKB\tKB\tKB\td\td\td\td\td\ts\n"); + } + + void printDiskStatUsed(const char* cmd) +@@ -202,7 +231,8 @@ + + for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { + if (!strcmp(mntpnt, disk_info->mntpnt)) { +- fprintf(CurrentClient, "%ld\n", disk_info->bused); ++ fprintf(CurrentClient, "%ld\n", BLK2KB(disk_info, bused)); ++ return; + } + } + +@@ -211,7 +241,16 @@ + + void printDiskStatUsedInfo(const char* cmd) + { +- fprintf(CurrentClient, "Used Blocks\t0\t-\tBlocks\n"); ++ DiskInfo* disk_info; ++ char *mntpnt = (char *)getMntPnt(cmd); ++ ++ for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { ++ if (!strcmp(mntpnt, disk_info->mntpnt)) { ++ fprintf(CurrentClient, "Used Space (%s)\t0\t%ld\tKB\n", MNTPNT_NAME(disk_info), BLK2KB(disk_info, blocks)); ++ return; ++ } ++ } ++ fprintf(CurrentClient, "Used Space (%s)\t0\t-\tKB\n", mntpnt); + } + + void printDiskStatFree(const char* cmd) +@@ -221,7 +260,8 @@ + + for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { + if (!strcmp(mntpnt, disk_info->mntpnt)) { +- fprintf(CurrentClient, "%ld\n", disk_info->bfree); ++ fprintf(CurrentClient, "%ld\n", BLK2KB(disk_info, bfree)); ++ return; + } + } + +@@ -230,7 +270,16 @@ + + void printDiskStatFreeInfo(const char* cmd) + { +- fprintf(CurrentClient, "Free Blocks\t0\t-\tBlocks\n"); ++ DiskInfo* disk_info; ++ char *mntpnt = (char *)getMntPnt(cmd); ++ ++ for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { ++ if (!strcmp(mntpnt, disk_info->mntpnt)) { ++ fprintf(CurrentClient, "Free Space (%s)\t0\t%ld\tKB\n", MNTPNT_NAME(disk_info), BLK2KB(disk_info, blocks)); ++ return; ++ } ++ } ++ fprintf(CurrentClient, "Free Space (%s)\t0\t-\tKB\n", mntpnt); + } + + void printDiskStatPercent(const char* cmd) +@@ -241,6 +290,7 @@ + for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { + if (!strcmp(mntpnt, disk_info->mntpnt)) { + fprintf(CurrentClient, "%d\n", disk_info->bused_percent); ++ return; + } + } + +@@ -249,5 +299,88 @@ + + void printDiskStatPercentInfo(const char* cmd) + { +- fprintf(CurrentClient, "Used Blocks\t0\t100\t%%\n"); ++ char *mntpnt = (char *)getMntPnt(cmd); ++ ++ fprintf(CurrentClient, "Used Space (%s)\t0\t100\t%%\n", mntpnt); ++} ++ ++void printDiskStatIUsed(const char* cmd) ++{ ++ DiskInfo* disk_info; ++ char *mntpnt = (char *)getMntPnt(cmd); ++ ++ for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { ++ if (!strcmp(mntpnt, disk_info->mntpnt)) { ++ fprintf(CurrentClient, "%ld\n", disk_info->fused); ++ return; ++ } ++ } ++ ++ fprintf(CurrentClient, "\n"); + } ++ ++void printDiskStatIUsedInfo(const char* cmd) ++{ ++ DiskInfo* disk_info; ++ char *mntpnt = (char *)getMntPnt(cmd); ++ ++ for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { ++ if (!strcmp(mntpnt, disk_info->mntpnt)) { ++ fprintf(CurrentClient, "Used Inodes (%s)\t0\t%ld\tKB\n", MNTPNT_NAME(disk_info), disk_info->files); ++ return; ++ } ++ } ++ fprintf(CurrentClient, "Used Inodes(%s)\t0\t-\tKB\n", mntpnt); ++} ++ ++void printDiskStatIFree(const char* cmd) ++{ ++ DiskInfo* disk_info; ++ char *mntpnt = (char *)getMntPnt(cmd); ++ ++ for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { ++ if (!strcmp(mntpnt, disk_info->mntpnt)) { ++ fprintf(CurrentClient, "%ld\n", disk_info->ffree); ++ return; ++ } ++ } ++ ++ fprintf(CurrentClient, "\n"); ++} ++ ++void printDiskStatIFreeInfo(const char* cmd) ++{ ++ DiskInfo* disk_info; ++ char *mntpnt = (char *)getMntPnt(cmd); ++ ++ for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { ++ if (!strcmp(mntpnt, disk_info->mntpnt)) { ++ fprintf(CurrentClient, "Free Inodes (%s)\t0\t%ld\tKB\n", MNTPNT_NAME(disk_info), disk_info->files); ++ return; ++ } ++ } ++ fprintf(CurrentClient, "Free Inodes (%s)\t0\t-\tKB\n", mntpnt); ++} ++ ++void printDiskStatIPercent(const char* cmd) ++{ ++ DiskInfo* disk_info; ++ char *mntpnt = (char *)getMntPnt(cmd); ++ ++ for (disk_info = first_ctnr(DiskStatList); disk_info; disk_info = next_ctnr(DiskStatList)) { ++ if (!strcmp(mntpnt, disk_info->mntpnt)) { ++ fprintf(CurrentClient, "%d\n", disk_info->fused_percent); ++ return; ++ } ++ } ++ ++ fprintf(CurrentClient, "\n"); ++} ++ ++void printDiskStatIPercentInfo(const char* cmd) ++{ ++ char *mntpnt = (char *)getMntPnt(cmd); ++ ++ fprintf(CurrentClient, "Used Inodes (%s)\t0\t100\t%%\n", mntpnt); ++} ++ diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__diskstat.h b/sysutils/ksysguardd/files/patch-FreeBSD__diskstat.h new file mode 100644 index 000000000000..e805deca0bfc --- /dev/null +++ b/sysutils/ksysguardd/files/patch-FreeBSD__diskstat.h @@ -0,0 +1,14 @@ +--- FreeBSD/diskstat.h 2011-03-17 20:50:04.000000000 +0200 ++++ FreeBSD/diskstat.h 2011-02-19 23:17:29.000000000 +0200 +@@ -38,4 +38,11 @@ + void printDiskStatPercent(const char* cmd); + void printDiskStatPercentInfo(const char* cmd); + ++void printDiskStatIUsed(const char* cmd); ++void printDiskStatIUsedInfo(const char* cmd); ++void printDiskStatIFree(const char* cmd); ++void printDiskStatIFreeInfo(const char* cmd); ++void printDiskStatIPercent(const char* cmd); ++void printDiskStatIPercentInfo(const char* cmd); ++ + #endif diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__logfile.c b/sysutils/ksysguardd/files/patch-FreeBSD__logfile.c new file mode 100644 index 000000000000..a2a172a3ba65 --- /dev/null +++ b/sysutils/ksysguardd/files/patch-FreeBSD__logfile.c @@ -0,0 +1,11 @@ +--- FreeBSD/logfile.c 2011-03-17 20:50:04.000000000 +0200 ++++ FreeBSD/logfile.c 2011-01-30 10:24:23.000000000 +0200 +@@ -79,8 +79,6 @@ + { + char line[1024]; + unsigned long id; +- int i; +- char ch; + LogFileEntry *entry; + + sscanf(cmd, "%*s %lu", &id); diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__netdev.c b/sysutils/ksysguardd/files/patch-FreeBSD__netdev.c new file mode 100644 index 000000000000..2ad65b25475e --- /dev/null +++ b/sysutils/ksysguardd/files/patch-FreeBSD__netdev.c @@ -0,0 +1,11 @@ +--- FreeBSD/netdev.c 2011-03-17 20:50:04.000000000 +0200 ++++ FreeBSD/netdev.c 2010-11-08 17:54:42.000000000 +0200 +@@ -18,8 +18,6 @@ + + */ + +-#include <config-workspace.h> +- + #include <sys/types.h> + #include <sys/socket.h> + #include <sys/sysctl.h> diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__stat.c b/sysutils/ksysguardd/files/patch-FreeBSD__stat.c new file mode 100644 index 000000000000..7f8d6dc63898 --- /dev/null +++ b/sysutils/ksysguardd/files/patch-FreeBSD__stat.c @@ -0,0 +1,382 @@ +--- FreeBSD/stat.c 1970-01-01 02:00:00.000000000 +0200 ++++ FreeBSD/stat.c 2011-02-10 15:37:53.000000000 +0200 +@@ -0,0 +1,379 @@ ++/* ++ KSysGuard, the KDE System Guard ++ ++ Copyright (c) 2011 David Naylor <naylor.b.david@gmail.com> ++ ++ This program is free software; you can redistribute it and/or ++ modify it under the terms of version 2 of the GNU General Public ++ License as published by the Free Software Foundation. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++*/ ++ ++/* ++ * TODO ++ * - stray irq ++ * - cpu*:timer ++ */ ++ ++#include "stat.h" ++ ++#include <errno.h> ++#include <sys/types.h> ++#include <sys/sysctl.h> ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++ ++#include "Command.h" ++ ++#define IRQ_NAME 32 ++ ++char *sysctl_dynread(const char *); ++ ++static u_int context, context_last = 0; ++static u_int trap, trap_last = 0; ++static u_int syscall, syscall_last = 0; ++static u_int hardint, hardint_last = 0; ++static u_int softint, softint_last = 0; ++ ++static u_int intrcnt, nintr = 0, msi_offset = 0; ++static char **intrname = NULL, *intrnamebuf; ++static long *intr = NULL, *intr_last, *intr_current; ++static int *intr_map = NULL; ++ ++void initStat(struct SensorModul *sm) { ++ int irq, irq_len = 0, msi_len = 0; ++ size_t len = 0; ++ char name[IRQ_NAME], *cp; ++ ++ sysctlbyname("hw.intrcnt", NULL, &len, NULL, 0); ++ intrcnt = len / sizeof(unsigned long); ++ ++ if ((intr = malloc(intrcnt * 3 * sizeof (long))) == NULL) { ++ log_error("out of memory for intr"); ++ return; ++ } ++ intr_last = &intr[intrcnt]; ++ intr_current = &intr_last[intrcnt]; ++ ++ if ((intrname = malloc(intrcnt * sizeof(char *))) == NULL) { ++ log_error("out of memory for intrname"); ++ return; ++ } ++ ++ if ((intrnamebuf = sysctl_dynread("hw.intrnames")) == NULL) { ++ log_error("out of memory for intrnamebuf"); ++ return; ++ } ++ for (cp = intrnamebuf, irq = 0; irq < intrcnt; ++irq) { ++ char *nextcp; ++ for (nextcp = cp; *nextcp != '\0'; ++nextcp); ++ if (strncmp(cp, "irq", 3) == 0) { ++ long irq2; ++ sscanf(cp + 3, "%ld", &irq2); ++ if (irq2 > 255) ++ ++msi_len; ++ else ++ if (irq_len < irq2) ++ irq_len = irq2; ++ } else if (nextcp == cp) ++ intrcnt = irq; ++ cp = nextcp + 1; ++ } ++ if (msi_len) ++ msi_offset = 255 - irq_len; ++ nintr = irq_len + msi_len + 1; ++ if ((intr_map = malloc(nintr * sizeof(int))) == NULL) { ++ log_error("out of memory for intr_map"); ++ return; ++ } ++ ++ for (irq = 0; irq < nintr; ++irq) ++ intr_map[irq] = -1; ++ for (cp = intrnamebuf, irq = 0; irq < intrcnt; ++irq) { ++ char *nextcp; ++ for (nextcp = cp; *nextcp != '\0'; ++nextcp) ++ if (*nextcp == ' ' && (*(nextcp + 1) == ' ' || *(nextcp + 1) == '\0')) ++ *nextcp = '\0'; ++ intrname[irq] = cp; ++ if (strncmp(cp, "irq", 3) == 0) { ++ long irq2; ++ sscanf(cp + 3, "%ld", &irq2); ++ if (irq2 < 256) ++ intr_map[irq2] = irq; ++ else ++ intr_map[irq2 - msi_offset] = irq; ++ strncpy(cp, "IRQ", 3); ++ for(cp = cp + 4; *cp != ':'; ++cp); ++ for(; ; ++cp) ++ if (*cp == '\0') ++ break; ++ else if (*cp == ':') ++ if (*(cp + 1) == '\0') ++ *cp = '\0'; ++ else ++ *cp = '('; ++ else if (*(cp + 1) == '\0') ++ *cp = ')'; ++ else ++ *cp = *(cp + 1); ++ } else if (nextcp == cp) ++ intrcnt = irq; ++ cp = nextcp + 1; ++ } ++ ++ registerMonitor("cpu/interrupts/hardint", "integer", printHardInt, printHardIntInfo, sm); ++ registerMonitor("cpu/interrupts/softint", "integer", printSoftInt, printSoftIntInfo, sm); ++ registerLegacyMonitor("cpu/interrupts/int00", "integer", printHardInt, printHardIntInfo, sm); ++ ++ for (irq = 0; irq < nintr; ++irq) { ++ if (intr_map[irq] == -1) ++ continue; ++ if (irq > 255 - msi_offset) ++ snprintf(name, IRQ_NAME, "cpu/interrupts/int%03d", irq + msi_offset); ++ else ++ snprintf(name, IRQ_NAME, "cpu/interrupts/int%02d", irq + 1); ++ registerMonitor(name, "integer", printInterruptx, printInterruptxInfo, sm); ++ } ++ ++ registerMonitor("cpu/context", "integer", printContext, printContextInfo, sm); ++ registerMonitor("cpu/trap", "integer", printTrap, printTrapInfo, sm); ++ registerMonitor("cpu/syscall", "integer", printSyscall, printSyscallInfo, sm); ++ ++ updateStat(); ++} ++ ++void exitStat(void) { ++ int irq; ++ char name[IRQ_NAME]; ++ ++ if (intr != NULL) { ++ free(intr); ++ intr = NULL; ++ intr_current = NULL; ++ intr_last = NULL; ++ } ++ ++ if (intrname != NULL) { ++ free(intrname); ++ intrname = NULL; ++ } ++ ++ if (intrnamebuf != NULL) { ++ if (intr_map != NULL) { ++ removeMonitor("cpu/interrupts/hardint"); ++ removeMonitor("cpu/interrupts/softint"); ++ removeMonitor("cpu/interrupts/int00"); ++ ++ for (irq = 0; irq < nintr; ++irq) { ++ if (intr_map[irq] == -1) ++ continue; ++ if (irq > 255 - msi_offset) ++ snprintf(name, IRQ_NAME, "cpu/interrupts/int%03d", irq + msi_offset); ++ else ++ snprintf(name, IRQ_NAME, "cpu/interrupts/int%02d", irq + 1); ++ removeMonitor(name); ++ } ++ ++ removeMonitor("cpu/context"); ++ removeMonitor("cpu/trap"); ++ removeMonitor("cpu/syscall"); ++ ++ free(intr_map); ++ intr_map = NULL; ++ } ++ ++ free(intrnamebuf); ++ intrnamebuf = NULL; ++ } ++} ++ ++int updateStat(void) { ++ int irq; ++ size_t len; ++ unsigned int current; ++ long *swap; ++ ++#define GETSYSCTL(mib, var) \ ++ len = sizeof(var); \ ++ sysctlbyname(mib, &var, &len, NULL, 0); ++#define GETDIFFSYSCTL(mib, var) \ ++ GETSYSCTL(mib, current); \ ++ var = current - var##_last; \ ++ var##_last = current; ++ ++ GETDIFFSYSCTL("vm.stats.sys.v_swtch", context); ++ GETDIFFSYSCTL("vm.stats.sys.v_trap", trap); ++ GETDIFFSYSCTL("vm.stats.sys.v_syscall", syscall); ++ GETDIFFSYSCTL("vm.stats.sys.v_intr", hardint); ++ GETDIFFSYSCTL("vm.stats.sys.v_soft", softint); ++ ++ len = sizeof(long) * intrcnt; ++ sysctlbyname("hw.intrcnt", intr_current, &len, NULL, 0); ++ for (irq = 0; irq < nintr; ++irq) ++ if (intr_map[irq] != -1) ++ intr[intr_map[irq]] = intr_current[intr_map[irq]] - intr_last[intr_map[irq]]; ++ swap = intr_current; ++ intr_current = intr_last; ++ intr_last = swap; ++ ++ return (0); ++ ++#undef GETDIFFSYSCTL ++#undef GETSYSCTL ++} ++ ++void printHardInt(const char *cmd) { ++ fprintf(CurrentClient, "%d\n", hardint); ++} ++ ++void printHardIntInfo(const char *cmd) { ++ fprintf(CurrentClient, "Hardware Interrupts\t0\t0\t1/s\n"); ++} ++ ++void printSoftInt(const char *cmd) { ++ fprintf(CurrentClient, "%d\n", softint); ++} ++ ++void printSoftIntInfo(const char *cmd) { ++ fprintf(CurrentClient, "Software Interrupts\t0\t0\t1/s\n"); ++} ++ ++void printInterruptx(const char *cmd) { ++ int irq; ++ ++ sscanf(cmd + 18, "%d", &irq); ++ if (irq > 255 - msi_offset) ++ irq -= msi_offset - 1; ++ fprintf(CurrentClient, "%ld\n", intr[intr_map[irq - 1]]); ++} ++ ++void printInterruptxInfo(const char *cmd) { ++ int irq; ++ ++ sscanf(cmd + 18, "%d", &irq); ++ if (irq > 255 - msi_offset) ++ irq -= msi_offset - 1; ++ fprintf(CurrentClient, "%s\t0\t0\t1/s\n", intrname[intr_map[irq - 1]]); ++} ++ ++void printContext(const char *cmd) { ++ fprintf(CurrentClient, "%u\n", context); ++} ++ ++void printContextInfo(const char *cmd) { ++ fprintf(CurrentClient, "Context switches\t0\t0\t1/s\n"); ++} ++ ++void printTrap(const char *cmd) { ++ fprintf(CurrentClient, "%u\n", trap); ++} ++ ++void printTrapInfo(const char *cmd) { ++ fprintf(CurrentClient, "Traps\t0\t0\t1/s\n"); ++} ++ ++void printSyscall(const char *cmd) { ++ fprintf(CurrentClient, "%u\n", syscall); ++} ++ ++void printSyscallInfo(const char *cmd) { ++ fprintf(CurrentClient, "System Calls\t0\t0\t1/s\n"); ++} ++ ++/* ++ * Taken from http://cvsweb.freebsd.org/src/usr.bin/systat/fetch.c ++ */ ++/*- ++ * Copyright (c) 1983, 1989, 1992, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ */ ++/* ++ * Read sysctl data with variable size. Try some times (with increasing ++ * buffers), fail if still too small. ++ * This is needed sysctls with possibly raplidly increasing data sizes, ++ * but imposes little overhead in the case of constant sizes. ++ * Returns NULL on error, or a pointer to freshly malloc()'ed memory that holds ++ * the requested data. ++ * If szp is not NULL, the size of the returned data will be written into *szp. ++ */ ++ ++/* Some defines: Number of tries. */ ++#define SD_NTRIES 10 ++/* Percent of over-allocation (initial) */ ++#define SD_MARGIN 10 ++/* ++ * Factor for over-allocation in percent (the margin is increased by this on ++ * any failed try). ++ */ ++#define SD_FACTOR 50 ++/* Maximum supported MIB depth */ ++#define SD_MAXMIB 16 ++char * ++sysctl_dynread(const char *n) ++{ ++ char *rv = NULL; ++ int mib[SD_MAXMIB]; ++ size_t mibsz = SD_MAXMIB; ++ size_t mrg = SD_MARGIN; ++ size_t sz; ++ int i; ++ ++ /* cache the MIB */ ++ if (sysctlnametomib(n, mib, &mibsz) == -1) { ++ return NULL; ++ } ++ for (i = 0; i < SD_NTRIES; i++) { ++ /* get needed buffer size */ ++ if (sysctl(mib, mibsz, NULL, &sz, NULL, 0) == -1) ++ break; ++ sz += sz * mrg / 100; ++ if ((rv = (char *)malloc(sz)) == NULL) ++ return NULL; ++ if (sysctl(mib, mibsz, rv, &sz, NULL, 0) == -1) { ++ free(rv); ++ rv = NULL; ++ if (errno == ENOMEM) { ++ mrg += mrg * SD_FACTOR / 100; ++ } else ++ break; ++ } else { ++ /* success */ ++ break; ++ } ++ } ++ ++ return rv; ++} diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__stat.h b/sysutils/ksysguardd/files/patch-FreeBSD__stat.h new file mode 100644 index 000000000000..def01e07c6f0 --- /dev/null +++ b/sysutils/ksysguardd/files/patch-FreeBSD__stat.h @@ -0,0 +1,52 @@ +--- FreeBSD/stat.h 1970-01-01 02:00:00.000000000 +0200 ++++ FreeBSD/stat.h 2011-01-04 13:29:11.000000000 +0200 +@@ -0,0 +1,49 @@ ++/* ++ KSysGuard, the KDE System Guard ++ ++ Copyright (c) 2011 David Naylor <naylor.b.david@gmail.com> ++ ++ This program is free software; you can redistribute it and/or ++ modify it under the terms of version 2 of the GNU General Public ++ License as published by the Free Software Foundation. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ ++*/ ++ ++#ifndef _stat_h_ ++#define _stat_h_ ++ ++struct SensorModul; ++ ++void initStat(struct SensorModul*); ++void exitStat(void); ++ ++int updateStat(void); ++ ++void printHardInt(const char *); ++void printHardIntInfo(const char *); ++ ++void printSoftInt(const char *); ++void printSoftIntInfo(const char *); ++ ++void printInterruptx(const char*); ++void printInterruptxInfo(const char*); ++ ++void printContext(const char*); ++void printContextInfo(const char*); ++ ++void printTrap(const char*); ++void printTrapInfo(const char*); ++ ++void printSyscall(const char*); ++void printSyscallInfo(const char*); ++ ++#endif /* _stat_h_ */ diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__uptime.c b/sysutils/ksysguardd/files/patch-FreeBSD__uptime.c new file mode 100644 index 000000000000..4c23f9d17ba3 --- /dev/null +++ b/sysutils/ksysguardd/files/patch-FreeBSD__uptime.c @@ -0,0 +1,51 @@ +--- FreeBSD/uptime.c 1970-01-01 02:00:00.000000000 +0200 ++++ FreeBSD/uptime.c 2010-11-08 19:07:02.000000000 +0200 +@@ -0,0 +1,48 @@ ++/* ++ KSysGuard, the KDE System Guard ++ ++ Copyright (c) 2010 David Naylor <naylor.b.david@gmail.com> ++ ++ This program is free software; you can redistribute it and/or ++ modify it under the terms of version 2 or later of the GNU General Public ++ License as published by the Free Software Foundation. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ ++*/ ++ ++#include <stdio.h> ++#include <time.h> ++ ++#include "Command.h" ++#include "ksysguardd.h" ++ ++#include "uptime.h" ++ ++void initUptime( struct SensorModul* sm ) { ++ registerMonitor( "system/uptime", "float", printUptime, printUptimeInfo, sm ); ++} ++ ++void exitUptime( void ) { ++ removeMonitor("system/uptime"); ++} ++ ++void printUptime( const char* cmd ) { ++ struct timespec tp; ++ float uptime = 0.; ++ ++ if (clock_gettime(CLOCK_UPTIME, &tp) != -1) ++ uptime = tp.tv_nsec / 1000000000.0 + tp.tv_sec; ++ fprintf( CurrentClient, "%f\n", uptime); ++} ++ ++void printUptimeInfo( const char* cmd ) { ++ fprintf( CurrentClient, "System uptime\t0\t0\ts\n" ); ++} diff --git a/sysutils/ksysguardd/files/patch-FreeBSD__uptime.h b/sysutils/ksysguardd/files/patch-FreeBSD__uptime.h new file mode 100644 index 000000000000..be4eecc1409f --- /dev/null +++ b/sysutils/ksysguardd/files/patch-FreeBSD__uptime.h @@ -0,0 +1,36 @@ +--- FreeBSD/uptime.h 1970-01-01 02:00:00.000000000 +0200 ++++ FreeBSD/uptime.h 2010-11-04 14:09:30.000000000 +0200 +@@ -0,0 +1,33 @@ ++/* ++ KSysGuard, the KDE System Guard ++ ++ Copyright (c) 2006 Greg Martyn <greg.martyn@gmail.com> ++ Copyright (c) 2010 David Naylor <naylor.b.david@gmail.com> ++ ++ This program is free software; you can redistribute it and/or ++ modify it under the terms of version 2 or later of the GNU General Public ++ License as published by the Free Software Foundation. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ ++*/ ++ ++#ifndef _uptime_h_ ++#define _uptime_h_ ++ ++struct SensorModul; ++ ++void initUptime( struct SensorModul* ); ++void exitUptime( void ); ++ ++void printUptime( const char* cmd ); ++void printUptimeInfo( const char* cmd ); ++ ++#endif diff --git a/sysutils/ksysguardd/files/patch-config-ksysguardd.h.cmake b/sysutils/ksysguardd/files/patch-config-ksysguardd.h.cmake new file mode 100644 index 000000000000..e0c9355668ff --- /dev/null +++ b/sysutils/ksysguardd/files/patch-config-ksysguardd.h.cmake @@ -0,0 +1,7 @@ +--- ./config-ksysguardd.h.cmake.orig 2011-02-25 22:54:48.000000000 +0100 ++++ ./config-ksysguardd.h.cmake 2011-03-05 16:30:54.367061295 +0100 +@@ -1,3 +1,4 @@ + #cmakedefine HAVE_LMSENSORS 1 + #cmakedefine HAVE_XRES 1 + #cmakedefine HAVE_SYS_INOTIFY_H 1 ++#define kde_socklen_t socklen_t diff --git a/sysutils/ksysguardd/files/patch-ksysguardd.c b/sysutils/ksysguardd/files/patch-ksysguardd.c new file mode 100644 index 000000000000..f9e1f2be7ac7 --- /dev/null +++ b/sysutils/ksysguardd/files/patch-ksysguardd.c @@ -0,0 +1,18 @@ +--- ksysguardd.c 2011-03-17 20:50:04.000000000 +0200 ++++ ksysguardd.c 2011-01-30 10:30:11.000000000 +0200 +@@ -392,6 +392,7 @@ + return highestFD; + } + ++#ifdef HAVE_SYS_INOTIFY_H + static void checkModules() + { + struct SensorModul *entry; +@@ -400,6 +401,7 @@ + if ( entry->checkCommand != NULL && entry->available ) + entry->checkCommand(); + } ++#endif + + static void handleSocketTraffic( int socketNo, const fd_set* fds ) + { diff --git a/sysutils/ksysguardd/files/patch-modules.h b/sysutils/ksysguardd/files/patch-modules.h new file mode 100644 index 000000000000..840c5fb4a937 --- /dev/null +++ b/sysutils/ksysguardd/files/patch-modules.h @@ -0,0 +1,48 @@ +--- modules.h 2011-03-17 20:50:04.000000000 +0200 ++++ modules.h 2011-01-28 10:05:57.000000000 +0200 +@@ -23,7 +23,6 @@ + #ifndef KSG_MODULES_H + #define KSG_MODULES_H + +-#include <config-ksysguardd.h> + #include "Command.h" + #include "conf.h" + #include "ksysguardd.h" +@@ -49,16 +48,19 @@ + + #if defined(OSTYPE_FreeBSD) || defined(OSTYPE_DragonFly) + #include <grp.h> ++#include "acpi.h" + #ifdef __i386__ + #include "apm.h" + #endif +-#include "CPU.h" ++#include "cpuinfo.h" + #include "diskstat.h" + #include "loadavg.h" + #include "logfile.h" + #include "Memory.h" + #include "netdev.h" + #include "ProcessList.h" ++#include "stat.h" ++#include "uptime.h" + #endif /* OSTYPE_FreeBSD */ + + #ifdef OSTYPE_Irix +@@ -134,6 +136,7 @@ + #endif /* OSTYPE_Linux */ + + #if defined OSTYPE_FreeBSD || defined OSTYPE_DragonFly ++ { "Acpi", initACPI, exitACPI, updateACPI, NULLVVFUNC, 0, NULLTIME }, + #ifdef __i386__ + { "Apm", initApm, exitApm, updateApm, NULLVVFUNC, 0, NULLTIME }, + #endif +@@ -144,6 +147,8 @@ + { "Memory", initMemory, exitMemory, updateMemory, NULLVVFUNC, 0, NULLTIME }, + { "NetDev", initNetDev, exitNetDev, updateNetDev, checkNetDev, 0, NULLTIME }, + { "ProcessList", initProcessList, exitProcessList, updateProcessList, NULLVVFUNC, 0, NULLTIME }, ++ { "Stat", initStat, exitStat, updateStat, NULLVVFUNC, 0, NULLTIME }, ++ { "Uptime", initUptime, exitUptime, NULLIVFUNC, NULLVVFUNC, 0, NULLTIME }, + #endif /* OSTYPE_FreeBSD */ + + #ifdef OSTYPE_Irix diff --git a/sysutils/ksysguardd/pkg-descr b/sysutils/ksysguardd/pkg-descr new file mode 100644 index 000000000000..313215a75f7e --- /dev/null +++ b/sysutils/ksysguardd/pkg-descr @@ -0,0 +1,5 @@ +KDE System Guard Daemon is the daemon part of ksysguard. The daemon +can be installed on a remote machine to enable ksysguard on another +machine to monitor it through the daemon running there. + +WWW: http://www.kde.org/ diff --git a/sysutils/sweeper/Makefile b/sysutils/sweeper/Makefile index be3348710c22..2f7d1ea20156 100644 --- a/sysutils/sweeper/Makefile +++ b/sysutils/sweeper/Makefile @@ -6,7 +6,6 @@ PORTNAME= kdeutils PORTVERSION= ${KDE4_VERSION} -PORTREVISION= 2 CATEGORIES= misc kde MASTER_SITES= ${MASTER_SITE_KDE} MASTER_SITE_SUBDIR= ${KDE4_BRANCH}/${PORTVERSION}/src @@ -15,7 +14,6 @@ DIST_SUBDIR= KDE MAINTAINER= kde@FreeBSD.org COMMENT= Utilities for the KDE4 integrated X11 Desktop -BUILD_DEPENDS= ${LOCALBASE}/share/xml/docbook/4.2/docbookx.dtd:${PORTSDIR}/textproc/docbook-xml LIB_DEPENDS= gmp.10:${PORTSDIR}/math/gmp \ qimageblitz.4:${PORTSDIR}/x11/qimageblitz \ qca.2:${PORTSDIR}/devel/qca diff --git a/sysutils/sweeper/distinfo b/sysutils/sweeper/distinfo index cc0287267750..26a0aaf5387f 100644 --- a/sysutils/sweeper/distinfo +++ b/sysutils/sweeper/distinfo @@ -1,2 +1,2 @@ -SHA256 (KDE/kdeutils-4.5.5.tar.bz2) = 7cbb22cd514f97c1bde721ee3c3e4cc3ad12bfb900d983a188e55372bdabff14 -SIZE (KDE/kdeutils-4.5.5.tar.bz2) = 3818433 +SHA256 (KDE/kdeutils-4.6.1.tar.bz2) = 3529687a51cc10e7ce18c43a7e650b4f216849d938a3d30080455784f1d922fd +SIZE (KDE/kdeutils-4.6.1.tar.bz2) = 3701624 diff --git a/sysutils/sweeper/pkg-plist b/sysutils/sweeper/pkg-plist index ff08b3c5741a..5d7d0ab4213d 100644 --- a/sysutils/sweeper/pkg-plist +++ b/sysutils/sweeper/pkg-plist @@ -1,4 +1,5 @@ bin/ark +bin/filelight bin/kcalc bin/kcharselect bin/kdf @@ -8,372 +9,10 @@ bin/krcdnotifieritem bin/ktimer bin/kwalletmanager bin/kwikdisk -bin/okteta bin/superkaramba bin/sweeper -include/KDE/Kasten/AbstractConnectJob -include/KDE/Kasten/AbstractDocument -include/KDE/Kasten/AbstractDocumentFactory -include/KDE/Kasten/AbstractExportJob -include/KDE/Kasten/AbstractFileSystemConnectJob -include/KDE/Kasten/AbstractFileSystemExportJob -include/KDE/Kasten/AbstractFileSystemLoadJob -include/KDE/Kasten/AbstractFileSystemSyncFromRemoteJob -include/KDE/Kasten/AbstractFileSystemSyncToRemoteJob -include/KDE/Kasten/AbstractFileSystemSyncWithRemoteJob -include/KDE/Kasten/AbstractGroupedViews -include/KDE/Kasten/AbstractLinePopup -include/KDE/Kasten/AbstractLoadJob -include/KDE/Kasten/AbstractModel -include/KDE/Kasten/AbstractModelDataGenerator -include/KDE/Kasten/AbstractModelDataGeneratorConfigEditor -include/KDE/Kasten/AbstractModelDataGeneratorConfigEditorFactory -include/KDE/Kasten/AbstractModelExporter -include/KDE/Kasten/AbstractModelExporterConfigEditor -include/KDE/Kasten/AbstractModelExporterConfigEditorFactory -include/KDE/Kasten/AbstractModelFileSystemSynchronizer -include/KDE/Kasten/AbstractModelSelection -include/KDE/Kasten/AbstractModelStreamEncoder -include/KDE/Kasten/AbstractModelStreamEncoderConfigEditor -include/KDE/Kasten/AbstractModelStreamEncoderConfigEditorFactory -include/KDE/Kasten/AbstractModelSynchronizer -include/KDE/Kasten/AbstractModelSynchronizerFactory -include/KDE/Kasten/AbstractSelectionView -include/KDE/Kasten/AbstractSyncFromRemoteJob -include/KDE/Kasten/AbstractSyncToRemoteJob -include/KDE/Kasten/AbstractSyncWithRemoteJob -include/KDE/Kasten/AbstractTool -include/KDE/Kasten/AbstractToolFactory -include/KDE/Kasten/AbstractToolInlineView -include/KDE/Kasten/AbstractToolView -include/KDE/Kasten/AbstractToolViewFactory -include/KDE/Kasten/AbstractToolWidget -include/KDE/Kasten/AbstractView -include/KDE/Kasten/AbstractViewArea -include/KDE/Kasten/AbstractViewFactory -include/KDE/Kasten/AbstractXmlGuiController -include/KDE/Kasten/ClipboardController -include/KDE/Kasten/CloseController -include/KDE/Kasten/CopyAsController -include/KDE/Kasten/CreatorController -include/KDE/Kasten/DataSelectable -include/KDE/Kasten/DocumentCreateManager -include/KDE/Kasten/DocumentManager -include/KDE/Kasten/DocumentSyncManager -include/KDE/Kasten/DocumentVersionData -include/KDE/Kasten/DocumentsTool -include/KDE/Kasten/DocumentsToolView -include/KDE/Kasten/DummyView -include/KDE/Kasten/ExportController -include/KDE/Kasten/FileSystemBrowserTool -include/KDE/Kasten/FileSystemBrowserToolView -include/KDE/Kasten/FullScreenController -include/KDE/Kasten/JobManager -include/KDE/Kasten/LoaderController -include/KDE/Kasten/ModelCodecManager -include/KDE/Kasten/ModelCodecViewManager -include/KDE/Kasten/ModelDataGenerateThread -include/KDE/Kasten/ModelEncoderFileSystemExportJob -include/KDE/Kasten/ModelEncoderFileSystemExporter -include/KDE/Kasten/ModelEncoderFileSystemExporterConfigEditor -include/KDE/Kasten/ModelEncoderFileSystemExporterConfigEditorFactory -include/KDE/Kasten/ModelStreamEncodeThread -include/KDE/Kasten/ModifiedBarController -include/KDE/Kasten/MultiViewAreas -include/KDE/Kasten/Person -include/KDE/Kasten/QuitController -include/KDE/Kasten/ReadOnlyBarController -include/KDE/Kasten/ReadOnlyController -include/KDE/Kasten/SelectController -include/KDE/Kasten/SelectedDataWriteable -include/KDE/Kasten/SetRemoteController -include/KDE/Kasten/ShellWindow -include/KDE/Kasten/StatusBar -include/KDE/Kasten/SwitchViewController -include/KDE/Kasten/SynchronizeController -include/KDE/Kasten/TabbedViews -include/KDE/Kasten/ToggleButton -include/KDE/Kasten/ToolInlineViewable -include/KDE/Kasten/ToolListMenuController -include/KDE/Kasten/UserListable -include/KDE/Kasten/VersionController -include/KDE/Kasten/VersionViewTool -include/KDE/Kasten/VersionViewToolView -include/KDE/Kasten/Versionable -include/KDE/Kasten/ViewAreaSplitable -include/KDE/Kasten/ViewListMenuController -include/KDE/Kasten/ViewManager -include/KDE/Kasten/WidgetsDockable -include/KDE/Kasten/ZoomBarController -include/KDE/Kasten/ZoomController -include/KDE/Kasten/Zoomable -include/KDE/Okteta/AbstractByteArrayColumnRenderer -include/KDE/Okteta/AbstractByteArrayModel -include/KDE/Okteta/AbstractByteArrayView -include/KDE/Okteta/AbstractColumnRenderer -include/KDE/Okteta/AbstractColumnStylist -include/KDE/Okteta/Address -include/KDE/Okteta/AddressRange -include/KDE/Okteta/ArrayChangeMetrics -include/KDE/Okteta/Bookmark -include/KDE/Okteta/Bookmarkable -include/KDE/Okteta/BookmarksConstIterator -include/KDE/Okteta/BorderColumnRenderer -include/KDE/Okteta/Byte -include/KDE/Okteta/ByteArrayChange -include/KDE/Okteta/ByteArrayColumnView -include/KDE/Okteta/ByteArrayModel -include/KDE/Okteta/ByteArrayRowColumnRenderer -include/KDE/Okteta/ByteArrayRowView -include/KDE/Okteta/ByteArrayTableLayout -include/KDE/Okteta/ByteArrayTableRanges -include/KDE/Okteta/ChangeHistory -include/KDE/Okteta/ChangesDescribable -include/KDE/Okteta/CharByteArrayColumnRenderer -include/KDE/Okteta/CharCodec -include/KDE/Okteta/Character -include/KDE/Okteta/ColumnsView -include/KDE/Okteta/Line -include/KDE/Okteta/LinePosition -include/KDE/Okteta/LinePositionRange -include/KDE/Okteta/LineRange -include/KDE/Okteta/NumberRange -include/KDE/Okteta/OffsetColumnRenderer -include/KDE/Okteta/OffsetFormat -include/KDE/Okteta/PieceTableByteArrayModel -include/KDE/Okteta/Range -include/KDE/Okteta/Size -include/KDE/Okteta/ValueByteArrayColumnRenderer -include/KDE/Okteta/ValueCodec -include/KDE/Okteta/Versionable -include/KDE/Okteta/WidgetColumnStylist -include/KDE/Okteta/WordByteArrayService -include/kasten/abstractbytearraystreamencoder.h -include/kasten/abstractconnectjob.h -include/kasten/abstractdocument.h -include/kasten/abstractdocumentfactory.h -include/kasten/abstractexportjob.h -include/kasten/abstractfilesystemconnectjob.h -include/kasten/abstractfilesystemexportjob.h -include/kasten/abstractfilesystemloadjob.h -include/kasten/abstractfilesystemsyncfromremotejob.h -include/kasten/abstractfilesystemsynctoremotejob.h -include/kasten/abstractfilesystemsyncwithremotejob.h -include/kasten/abstractgroupedviews.h -include/kasten/abstractlinepopup.h -include/kasten/abstractloadjob.h -include/kasten/abstractmodel.h -include/kasten/abstractmodeldatagenerator.h -include/kasten/abstractmodeldatageneratorconfigeditor.h -include/kasten/abstractmodeldatageneratorconfigeditorfactory.h -include/kasten/abstractmodelexporter.h -include/kasten/abstractmodelexporterconfigeditor.h -include/kasten/abstractmodelexporterconfigeditorfactory.h -include/kasten/abstractmodelfilesystemsynchronizer.h -include/kasten/abstractmodelselection.h -include/kasten/abstractmodelstreamencoder.h -include/kasten/abstractmodelstreamencoderconfigeditor.h -include/kasten/abstractmodelstreamencoderconfigeditorfactory.h -include/kasten/abstractmodelsynchronizer.h -include/kasten/abstractmodelsynchronizerfactory.h -include/kasten/abstractselectionview.h -include/kasten/abstractsyncfromremotejob.h -include/kasten/abstractsynctoremotejob.h -include/kasten/abstractsyncwithremotejob.h -include/kasten/abstracttool.h -include/kasten/abstracttoolfactory.h -include/kasten/abstracttoolinlineview.h -include/kasten/abstracttoolview.h -include/kasten/abstracttoolviewfactory.h -include/kasten/abstracttoolwidget.h -include/kasten/abstractview.h -include/kasten/abstractviewarea.h -include/kasten/abstractviewfactory.h -include/kasten/abstractxmlguicontroller.h -include/kasten/bookmarkscontroller.h -include/kasten/bookmarkstool.h -include/kasten/bookmarkstoolfactory.h -include/kasten/bookmarkstoolview.h -include/kasten/bookmarkstoolviewfactory.h -include/kasten/bytearraycharsstreamencoder.h -include/kasten/bytearraydocument.h -include/kasten/bytearraydocumentfactory.h -include/kasten/bytearrayrawfilesynchronizer.h -include/kasten/bytearrayrawfilesynchronizerfactory.h -include/kasten/bytearrayselection.h -include/kasten/bytearraysourcecodestreamencoder.h -include/kasten/bytearraysourcecodestreamencoderconfigeditor.h -include/kasten/bytearraysourcecodestreamencoderconfigeditorfactory.h -include/kasten/bytearraytextstreamencoderpreview.h -include/kasten/bytearrayvaluesstreamencoder.h -include/kasten/bytearrayvaluesstreamencoderconfigeditor.h -include/kasten/bytearrayvaluesstreamencoderconfigeditorfactory.h -include/kasten/bytearrayview.h -include/kasten/bytearrayviewfactory.h -include/kasten/bytearrayviewtextstreamencoder.h -include/kasten/bytetabletool.h -include/kasten/bytetabletoolfactory.h -include/kasten/bytetabletoolview.h -include/kasten/bytetabletoolviewfactory.h -include/kasten/checksumtool.h -include/kasten/checksumtoolfactory.h -include/kasten/checksumtoolview.h -include/kasten/checksumtoolviewfactory.h -include/kasten/clipboardcontroller.h -include/kasten/closecontroller.h -include/kasten/copyascontroller.h -include/kasten/creatorcontroller.h -include/kasten/dataselectable.h -include/kasten/documentcreatemanager.h -include/kasten/documentinfotool.h -include/kasten/documentinfotoolview.h -include/kasten/documentmanager.h -include/kasten/documentstool.h -include/kasten/documentstoolview.h -include/kasten/documentsyncmanager.h -include/kasten/documentversiondata.h -include/kasten/documentversionid.h -include/kasten/dummyview.h -include/kasten/exportcontroller.h -include/kasten/filesystembrowsertool.h -include/kasten/filesystembrowsertoolview.h -include/kasten/filtertool.h -include/kasten/filtertoolfactory.h -include/kasten/filtertoolview.h -include/kasten/filtertoolviewfactory.h -include/kasten/fullscreencontroller.h -include/kasten/gotooffsetcontroller.h -include/kasten/gotooffsettool.h -include/kasten/gotooffsettoolview.h -include/kasten/infotool.h -include/kasten/infotoolfactory.h -include/kasten/infotoolview.h -include/kasten/infotoolviewfactory.h -include/kasten/insertcontroller.h -include/kasten/jobmanager.h -include/kasten/kastencontrollers_export.h -include/kasten/kastencore.h -include/kasten/kastencore_export.h -include/kasten/kastengui.h -include/kasten/kastengui_export.h -include/kasten/kfinddirection.h -include/kasten/loadercontroller.h -include/kasten/modelcodecmanager.h -include/kasten/modelcodecviewmanager.h -include/kasten/modeldatageneratethread.h -include/kasten/modelencoderfilesystemexporter.h -include/kasten/modelencoderfilesystemexporterconfigeditor.h -include/kasten/modelencoderfilesystemexporterconfigeditorfactory.h -include/kasten/modelencoderfilesystemexportjob.h -include/kasten/modelstreamencodethread.h -include/kasten/modifiedbarcontroller.h -include/kasten/multiviewareas.h -include/kasten/oktetakastencontrollers_export.h -include/kasten/oktetakastencore_export.h -include/kasten/oktetakastengui_export.h -include/kasten/overwritemodecontroller.h -include/kasten/overwriteonlycontroller.h -include/kasten/person.h -include/kasten/poddecodertool.h -include/kasten/poddecodertoolfactory.h -include/kasten/poddecodertoolview.h -include/kasten/poddecodertoolviewfactory.h -include/kasten/printcontroller.h -include/kasten/quitcontroller.h -include/kasten/readonlybarcontroller.h -include/kasten/readonlycontroller.h -include/kasten/replacecontroller.h -include/kasten/replaceuserqueryable.h -include/kasten/searchcontroller.h -include/kasten/searchuserqueryable.h -include/kasten/selectcontroller.h -include/kasten/selecteddatawriteable.h -include/kasten/selectrangecontroller.h -include/kasten/setremotecontroller.h -include/kasten/shellwindow.h -include/kasten/statusbar.h -include/kasten/statusbarlayout.h -include/kasten/stringsextracttool.h -include/kasten/stringsextracttoolfactory.h -include/kasten/stringsextracttoolview.h -include/kasten/stringsextracttoolviewfactory.h -include/kasten/structtool.h -include/kasten/structtoolview.h -include/kasten/structurestoolfactory.h -include/kasten/structurestoolviewfactory.h -include/kasten/switchviewcontroller.h -include/kasten/synchronizecontroller.h -include/kasten/tabbedviews.h -include/kasten/togglebutton.h -include/kasten/toolinlineviewable.h -include/kasten/toolinlineviewwidget.h -include/kasten/toollistmenucontroller.h -include/kasten/toolviewdockwidget.h -include/kasten/userlistable.h -include/kasten/versionable.h -include/kasten/versioncontroller.h -include/kasten/versionviewtool.h -include/kasten/versionviewtoolview.h -include/kasten/viewareabox.h -include/kasten/viewareasplitable.h -include/kasten/viewareasplitcontroller.h -include/kasten/viewbox.h -include/kasten/viewconfigcontroller.h -include/kasten/viewlistmenucontroller.h -include/kasten/viewmanager.h -include/kasten/viewmodecontroller.h -include/kasten/viewstatuscontroller.h -include/kasten/widgetsdockable.h -include/kasten/zoomable.h -include/kasten/zoombarcontroller.h -include/kasten/zoomcontroller.h -include/okteta/abstractbytearraycolumnrenderer.h -include/okteta/abstractbytearraymodel.h -include/okteta/abstractbytearrayview.h -include/okteta/abstractcolumnrenderer.h -include/okteta/abstractcolumnstylist.h -include/okteta/address.h -include/okteta/addressrange.h -include/okteta/arraychangemetrics.h -include/okteta/bookmark.h -include/okteta/bookmarkable.h -include/okteta/bookmarksconstiterator.h -include/okteta/bookmarksconstiteratoradapter.h -include/okteta/bordercolumnrenderer.h -include/okteta/byte.h -include/okteta/bytearraychange.h -include/okteta/bytearraycolumnview.h -include/okteta/bytearraymodel.h -include/okteta/bytearrayrowcolumnrenderer.h -include/okteta/bytearrayrowview.h -include/okteta/bytearraytablelayout.h -include/okteta/bytearraytableranges.h -include/okteta/changehistory.h -include/okteta/changesdescribable.h -include/okteta/character.h -include/okteta/charbytearraycolumnrenderer.h -include/okteta/charcodec.h -include/okteta/columnsview.h -include/okteta/kadds.h -include/okteta/line.h -include/okteta/lineposition.h -include/okteta/linepositionrange.h -include/okteta/linerange.h -include/okteta/numberrange.h -include/okteta/offsetcolumnrenderer.h -include/okteta/offsetformat.h -include/okteta/oktetacore.h -include/okteta/oktetacore_export.h -include/okteta/oktetagui_export.h -include/okteta/piecetablebytearraymodel.h -include/okteta/range.h -include/okteta/size.h -include/okteta/valuebytearraycolumnrenderer.h -include/okteta/valuecodec.h -include/okteta/versionable.h -include/okteta/widgetcolumnstylist.h -include/okteta/wordbytearrayservice.h lib/kde4/arkpart.so +lib/kde4/filelightpart.so lib/kde4/kcm_kdf.so lib/kde4/kcm_kwallet.so lib/kde4/kcm_remotecontrol.so @@ -386,21 +25,9 @@ lib/kde4/kerfuffle_libbz2.so lib/kde4/kerfuffle_libgz.so lib/kde4/kerfuffle_libxz.so lib/kde4/libextracthere.so -lib/kde4/libkbytearrayedit.so -lib/kde4/oktetapart.so lib/kde4/plasma_engine_kremoteconrol.so lib/kde4/plasma_package_superkaramba.so lib/kde4/plasma_scriptengine_superkaramba.so -lib/kde4/plugins/designer/oktetadesignerplugin.so -lib/libkastencontrollers.so -lib/libkastencontrollers.so.5 -lib/libkastencontrollers.so.5.0.1 -lib/libkastencore.so -lib/libkastencore.so.5 -lib/libkastencore.so.5.0.1 -lib/libkastengui.so -lib/libkastengui.so.5 -lib/libkastengui.so.5.0.1 lib/libkdeinit4_kcalc.so lib/libkerfuffle.so lib/libkerfuffle.so.5 @@ -408,27 +35,13 @@ lib/libkerfuffle.so.5.0.1 lib/liblibkremotecontrol.so lib/liblibkremotecontrol.so.1 lib/liblibkremotecontrol.so.1.0.0 -lib/liboktetacore.so -lib/liboktetacore.so.5 -lib/liboktetacore.so.5.0.1 -lib/liboktetagui.so -lib/liboktetagui.so.5 -lib/liboktetagui.so.5.0.1 -lib/liboktetakastencontrollers.so -lib/liboktetakastencontrollers.so.5 -lib/liboktetakastencontrollers.so.5.0.1 -lib/liboktetakastencore.so -lib/liboktetakastencore.so.5 -lib/liboktetakastencore.so.5.0.1 -lib/liboktetakastengui.so -lib/liboktetakastengui.so.5 -lib/liboktetakastengui.so.5.0.1 lib/libsuperkaramba.so lib/libsuperkaramba.so.5 lib/libsuperkaramba.so.5.0.1 share/applications/kde4/KCharSelect.desktop share/applications/kde4/KFloppy.desktop share/applications/kde4/ark.desktop +share/applications/kde4/filelight.desktop share/applications/kde4/kcalc.desktop share/applications/kde4/kdf.desktop share/applications/kde4/kgpg.desktop @@ -437,11 +50,12 @@ share/applications/kde4/ktimer.desktop share/applications/kde4/kwalletmanager-kwalletd.desktop share/applications/kde4/kwalletmanager.desktop share/applications/kde4/kwikdisk.desktop -share/applications/kde4/okteta.desktop share/applications/kde4/superkaramba.desktop share/applications/kde4/sweeper.desktop share/apps/ark/ark_part.rc share/apps/ark/arkui.rc +share/apps/filelight/filelightui.rc +share/apps/filelightpart/filelightpartui.rc share/apps/kcalc/kcalcui.rc share/apps/kcalc/scienceconstants.xml share/apps/kcharselect/kcharselectui.rc @@ -499,22 +113,13 @@ share/apps/kwalletmanager/icons/hicolor/22x22/actions/folder_closed.png share/apps/kwalletmanager/icons/hicolor/22x22/actions/folder_open.png share/apps/kwalletmanager/kwalleteditor.rc share/apps/kwalletmanager/kwalletmanager.rc -share/apps/okteta/oktetaui.rc -share/apps/okteta/structures/elf/elf.desktop -share/apps/okteta/structures/elf/elf.osd -share/apps/okteta/structures/png/png.desktop -share/apps/okteta/structures/png/png.osd -share/apps/oktetapart/oktetapartbrowserui.rc -share/apps/oktetapart/oktetapartreadonlyui.rc -share/apps/oktetapart/oktetapartreadwriteui.rc share/apps/superkaramba/superkarambaui.rc share/apps/sweeper/sweeperui.rc share/autostart/kgpg.desktop share/config.kcfg/ark.kcfg share/config.kcfg/kcalc.kcfg share/config.kcfg/kgpg.kcfg -share/config.kcfg/structviewpreferences.kcfg -share/config/okteta-structures.knsrc +share/config/filelightrc share/config/superkaramba.knsrc share/dbus-1/interfaces/org.kde.kgpg.Key.xml share/dbus-1/interfaces/org.kde.superkaramba.xml @@ -524,6 +129,13 @@ share/doc/HTML/en/ark/common share/doc/HTML/en/ark/index.cache.bz2 share/doc/HTML/en/ark/index.docbook share/doc/HTML/en/ark/man-ark.1.docbook +share/doc/HTML/en/filelight/common +share/doc/HTML/en/filelight/config_appear.png +share/doc/HTML/en/filelight/config_scan.png +share/doc/HTML/en/filelight/index.cache.bz2 +share/doc/HTML/en/filelight/index.docbook +share/doc/HTML/en/filelight/radial_map.png +share/doc/HTML/en/filelight/radial_map_context_menu.png share/doc/HTML/en/kcalc/commands.docbook share/doc/HTML/en/kcalc/common share/doc/HTML/en/kcalc/index.cache.bz2 @@ -587,9 +199,6 @@ share/doc/HTML/en/kwallet/openwallet-request.png share/doc/HTML/en/kwallet/oxygen48-status-wallet-closed.png share/doc/HTML/en/kwallet/oxygen48-status-wallet-open.png share/doc/HTML/en/kwallet/save-login-information.png -share/doc/HTML/en/okteta/common -share/doc/HTML/en/okteta/index.cache.bz2 -share/doc/HTML/en/okteta/index.docbook share/doc/HTML/en/sweeper/common share/doc/HTML/en/sweeper/index.cache.bz2 share/doc/HTML/en/sweeper/index.docbook @@ -602,6 +211,7 @@ share/icons/hicolor/128x128/apps/kwalletmanager2.png share/icons/hicolor/128x128/apps/kwikdisk.png share/icons/hicolor/128x128/apps/superkaramba.png share/icons/hicolor/128x128/devices/infrared-remote.png +share/icons/hicolor/16x16/apps/filelight.png share/icons/hicolor/16x16/apps/kdf.png share/icons/hicolor/16x16/apps/kfloppy.png share/icons/hicolor/16x16/apps/kgpg.png @@ -609,11 +219,11 @@ share/icons/hicolor/16x16/apps/ktimer.png share/icons/hicolor/16x16/apps/kwalletmanager.png share/icons/hicolor/16x16/apps/kwalletmanager2.png share/icons/hicolor/16x16/apps/kwikdisk.png -share/icons/hicolor/16x16/apps/okteta.png share/icons/hicolor/16x16/apps/superkaramba.png share/icons/hicolor/16x16/devices/infrared-remote.png share/icons/hicolor/22x22/actions/krcd_flash.png share/icons/hicolor/22x22/actions/krcd_off.png +share/icons/hicolor/22x22/apps/filelight.png share/icons/hicolor/22x22/apps/kdf.png share/icons/hicolor/22x22/apps/kfloppy.png share/icons/hicolor/22x22/apps/kgpg.png @@ -622,6 +232,8 @@ share/icons/hicolor/22x22/apps/kwalletmanager.png share/icons/hicolor/22x22/apps/kwikdisk.png share/icons/hicolor/22x22/apps/superkaramba.png share/icons/hicolor/22x22/devices/infrared-remote.png +share/icons/hicolor/32x32/actions/view_filelight.png +share/icons/hicolor/32x32/apps/filelight.png share/icons/hicolor/32x32/apps/kdf.png share/icons/hicolor/32x32/apps/kfloppy.png share/icons/hicolor/32x32/apps/kgpg.png @@ -629,10 +241,10 @@ share/icons/hicolor/32x32/apps/ktimer.png share/icons/hicolor/32x32/apps/kwalletmanager.png share/icons/hicolor/32x32/apps/kwalletmanager2.png share/icons/hicolor/32x32/apps/kwikdisk.png -share/icons/hicolor/32x32/apps/okteta.png share/icons/hicolor/32x32/apps/superkaramba.png share/icons/hicolor/32x32/devices/infrared-remote.png share/icons/hicolor/42x42/devices/infrared-remote.png +share/icons/hicolor/48x48/apps/filelight.png share/icons/hicolor/48x48/apps/kdf.png share/icons/hicolor/48x48/apps/kfloppy.png share/icons/hicolor/48x48/apps/kgpg.png @@ -640,9 +252,9 @@ share/icons/hicolor/48x48/apps/ktimer.png share/icons/hicolor/48x48/apps/kwalletmanager.png share/icons/hicolor/48x48/apps/kwalletmanager2.png share/icons/hicolor/48x48/apps/kwikdisk.png -share/icons/hicolor/48x48/apps/okteta.png share/icons/hicolor/48x48/apps/superkaramba.png share/icons/hicolor/48x48/devices/infrared-remote.png +share/icons/hicolor/64x64/apps/filelight.png share/icons/hicolor/64x64/apps/kdf.png share/icons/hicolor/64x64/apps/kfloppy.png share/icons/hicolor/64x64/apps/kwalletmanager.png @@ -666,7 +278,7 @@ share/kde4/services/ServiceMenus/encryptfolder.desktop share/kde4/services/ServiceMenus/viewdecrypted.desktop share/kde4/services/ark_dndextract.desktop share/kde4/services/ark_part.desktop -share/kde4/services/kbytearrayedit.desktop +share/kde4/services/filelightpart.desktop share/kde4/services/kcm_remotecontrol.desktop share/kde4/services/kcmdf.desktop share/kde4/services/kded/kremotecontroldaemon.desktop @@ -674,26 +286,16 @@ share/kde4/services/kerfuffle_cli7z.desktop share/kde4/services/kerfuffle_clirar.desktop share/kde4/services/kerfuffle_clizip.desktop share/kde4/services/kerfuffle_libarchive.desktop +share/kde4/services/kerfuffle_libarchive_readonly.desktop share/kde4/services/kerfuffle_libbz2.desktop share/kde4/services/kerfuffle_libgz.desktop share/kde4/services/kerfuffle_libxz.desktop share/kde4/services/kwalletconfig.desktop share/kde4/services/kwalletmanager_show.desktop -share/kde4/services/oktetapart.desktop share/kde4/services/plasma-engine-kremotecontrol.desktop share/kde4/services/plasma-package-superkaramba.desktop share/kde4/services/plasma-scriptengine-superkaramba.desktop share/kde4/servicetypes/kerfufflePlugin.desktop -share/mime/application/base64.xml -share/mime/application/btoa.xml -share/mime/application/x-vnd.kde.okteta.structure.xml -share/mime/packages/okteta.xml -share/mime/text/x-ascii85.xml -share/mime/text/x-base32.xml -share/mime/text/x-ihex.xml -share/mime/text/x-srecord.xml -share/mime/text/x-uuencode.xml -share/mime/text/x-xxencode.xml @dirrmtry share/icons/oxygen/42x42/devices @dirrmtry share/icons/oxygen/42x42 @dirrmtry share/icons/hicolor/8x8/devices @@ -701,7 +303,6 @@ share/mime/text/x-xxencode.xml @dirrmtry share/icons/hicolor/42x42/devices @dirrmtry share/icons/hicolor/42x42 @dirrm share/doc/HTML/en/sweeper -@dirrm share/doc/HTML/en/okteta @dirrm share/doc/HTML/en/kwallet @dirrm share/doc/HTML/en/ktimer @dirrm share/doc/HTML/en/kgpg @@ -711,14 +312,10 @@ share/mime/text/x-xxencode.xml @dirrm share/doc/HTML/en/kcontrol/blockdevices @dirrm share/doc/HTML/en/kcharselect @dirrm share/doc/HTML/en/kcalc +@dirrm share/doc/HTML/en/filelight @dirrm share/doc/HTML/en/ark @dirrm share/apps/sweeper @dirrm share/apps/superkaramba -@dirrm share/apps/oktetapart -@dirrm share/apps/okteta/structures/png -@dirrm share/apps/okteta/structures/elf -@dirrm share/apps/okteta/structures -@dirrm share/apps/okteta @dirrm share/apps/kwalletmanager/icons/hicolor/22x22/actions @dirrm share/apps/kwalletmanager/icons/hicolor/22x22 @dirrm share/apps/kwalletmanager/icons/hicolor @@ -747,10 +344,6 @@ share/mime/text/x-xxencode.xml @dirrm share/apps/kgpg @dirrm share/apps/kdf @dirrm share/apps/kcalc +@dirrm share/apps/filelightpart +@dirrm share/apps/filelight @dirrm share/apps/ark -@dirrmtry include/okteta -@dirrmtry include/kasten -@dirrmtry include/KDE/Okteta -@dirrmtry include/KDE/Kasten -@exec %%LOCALBASE%%/bin/update-mime-database %D/share/mime > /dev/null || /usr/bin/true -@unexec %%LOCALBASE%%/bin/update-mime-database %D/share/mime > /dev/null || /usr/bin/true |