summaryrefslogtreecommitdiff
path: root/x11/kdelibs4
diff options
context:
space:
mode:
authormarkd <markd@pkgsrc.org>2012-03-19 11:28:48 +0000
committermarkd <markd@pkgsrc.org>2012-03-19 11:28:48 +0000
commit26c5764deb12383ceba029acb03ae42b1a5725d6 (patch)
tree48ef6347b26980044de077eb6287238342054ff9 /x11/kdelibs4
parent3b2e39bd37148585926415c69c61eed0a608b153 (diff)
downloadpkgsrc-26c5764deb12383ceba029acb03ae42b1a5725d6.tar.gz
Update to KDE SC 4.8.0
Diffstat (limited to 'x11/kdelibs4')
-rw-r--r--x11/kdelibs4/Makefile33
-rw-r--r--x11/kdelibs4/PLIST1040
-rw-r--r--x11/kdelibs4/buildlink3.mk4
-rw-r--r--x11/kdelibs4/distinfo42
-rw-r--r--x11/kdelibs4/files/kshareddatacache.cpp1496
-rw-r--r--x11/kdelibs4/hacks.mk10
-rw-r--r--x11/kdelibs4/patches/patch-aa6
-rw-r--r--x11/kdelibs4/patches/patch-ab6
-rw-r--r--x11/kdelibs4/patches/patch-ac4
-rw-r--r--x11/kdelibs4/patches/patch-ad12
-rw-r--r--x11/kdelibs4/patches/patch-ag6
-rw-r--r--x11/kdelibs4/patches/patch-ah6
-rw-r--r--x11/kdelibs4/patches/patch-aj4
-rw-r--r--x11/kdelibs4/patches/patch-ak6
-rw-r--r--x11/kdelibs4/patches/patch-al6
-rw-r--r--x11/kdelibs4/patches/patch-am4
-rw-r--r--x11/kdelibs4/patches/patch-an16
-rw-r--r--x11/kdelibs4/patches/patch-cmake_modules_FindTaglib.cmake34
-rw-r--r--x11/kdelibs4/patches/patch-kdecore_localization_klocale_kde.cpp13
-rw-r--r--x11/kdelibs4/patches/patch-kdecore_util_kshareddatacache_p.h14
-rw-r--r--x11/kdelibs4/patches/patch-kdeui_colors_kcolordialog.cpp15
-rw-r--r--x11/kdelibs4/patches/patch-khtml_khtml_part.cpp18
-rw-r--r--x11/kdelibs4/patches/patch-kio_kio_scheduler.cpp41
-rw-r--r--x11/kdelibs4/patches/patch-kio_kio_scheduler.h38
-rw-r--r--x11/kdelibs4/patches/patch-kio_kssl_ksslcertificatebox.cpp17
-rw-r--r--x11/kdelibs4/patches/patch-kioslave_http_http.cpp64
-rw-r--r--x11/kdelibs4/patches/patch-kjs_JSImmediate.h11
-rw-r--r--x11/kdelibs4/patches/patch-kjs_lookup.h12
-rw-r--r--x11/kdelibs4/patches/patch-kjs_wtf_RefPtr.h12
29 files changed, 1797 insertions, 1193 deletions
diff --git a/x11/kdelibs4/Makefile b/x11/kdelibs4/Makefile
index e1c362f4835..04ff98e17fc 100644
--- a/x11/kdelibs4/Makefile
+++ b/x11/kdelibs4/Makefile
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.36 2012/03/03 00:11:52 wiz Exp $
+# $NetBSD: Makefile,v 1.37 2012/03/19 11:28:48 markd Exp $
DISTNAME= kdelibs-${_KDE_VERSION}
-PKGREVISION= 12
+PKGNAME= ${DISTNAME:S/-4/4-4/}
CATEGORIES= x11
COMMENT= Support libraries for the KDE integrated X11 desktop
@@ -17,7 +17,7 @@ CONFLICTS= kdelibs-[0-9]*
CMAKE_DEPENDENCIES_REWRITE= _KDE_build/KDELibsDependencies.cmake
CMAKE_DEPENDENCIES_REWRITE+= _KDE_build/KDELibsDependenciesInternal.cmake
-CMAKE_MODULE_PATH_OVERRIDE+= kjsembed/qtonly/CMakeLists.txt
+CMAKE_MODULE_PATH_OVERRIDE+= kjsembed/qtonly/CMakeLists.txt
CMAKE_ARGS+= -DKDE_DISTRIBUTION_TEXT:STRING="NetBSD pkgsrc"
CMAKE_ARGS+= -DWITH_Avahi:BOOL=off
@@ -50,12 +50,17 @@ SUBST_STAGE.kdelibsfix= pre-configure
SUBST_MESSAGE.kdelibsfix= Fixing hardcoded paths.
SUBST_FILES.kdelibsfix= \
kde3support/kdeui/k3sconfig.cpp \
- kdeui/colors/kcolordialog.cpp \
kio/kssl/kopenssl.cpp
-SUBST_SED.kdelibsfix= -e 's:@LOCALBASE@:${LOCALBASE}:g' -e 's:@X11BASE@:${X11BASE}:g'
+SUBST_SED.kdelibsfix= -e 's:@LOCALBASE@:${LOCALBASE}:g'
+
+# XXX this is an ugly hack to avoid the WRKDIR path in the installed cmake file
+SUBST_CLASSES+= phononrelpath
+SUBST_STAGE.phononrelpath= post-configure
+SUBST_MESSAGE.phononrelpath= Fixing phonon RELWITHDEBINFO path
+SUBST_FILES.phononrelpath= _KDE_build/CMakeFiles/Export/_usr/pkg/share/kde/apps/cmake/modules/KDELibs4LibraryTargets-relwithdebinfo.cmake
+SUBST_SED.phononrelpath= -e 's:[^"]*/\.buildlink/lib/libphonon\.so::'
USE_TOOLS+= flex gmake
-PLIST_VARS+= kgrantpty
.include "../../mk/bsd.prefs.mk"
@@ -64,24 +69,19 @@ PLIST_VARS+= kgrantpty
DEPENDS+= zonetab-[0-9]*:../../time/zonetab
.endif
-.if ${OPSYS} == "SunOS"
-PLIST.kgrantpty= yes
-.endif
-
-LDFLAGS.SunOS+= -lintl
-
BUILDLINK_DEPMETHOD.qt4-tools= full
.include "../../meta-pkgs/kde4/kde4.mk"
BUILDLINK_API_DEPENDS.strigi+= strigi>=0.5.11
-BUILDLINK_API_DEPENDS.soprano+= soprano>=2.3.0
-BUILDLINK_API_DEPENDS.shared-desktop-ontologies+= shared-desktop-ontologies>=0.4
+BUILDLINK_API_DEPENDS.soprano+= soprano>=2.5.60
+BUILDLINK_API_DEPENDS.shared-desktop-ontologies+= shared-desktop-ontologies>=0.6.5
.include "../../archivers/bzip2/buildlink3.mk"
.include "../../archivers/xz/buildlink3.mk"
.include "../../sysutils/strigi/buildlink3.mk"
.include "../../textproc/soprano/buildlink3.mk"
.include "../../databases/shared-mime-info/buildlink3.mk"
+.include "../../devel/libdbusmenu-qt/buildlink3.mk"
.include "../../devel/pcre/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
@@ -93,12 +93,11 @@ BUILDLINK_API_DEPENDS.shared-desktop-ontologies+= shared-desktop-ontologies>=0.4
.include "../../multimedia/phonon/buildlink3.mk"
# Avahi ? rather than mDNSResponder
-.include "../../devel/libdbusmenu-qt/buildlink3.mk"
-.include "../../mk/fam.buildlink3.mk"
.include "../../net/mDNSResponder/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"
.include "../../security/polkit-qt/buildlink3.mk"
.include "../../security/qca2/buildlink3.mk"
+.include "../../mk/fam.buildlink3.mk"
.include "../../textproc/aspell/buildlink3.mk"
.include "../../textproc/enchant/buildlink3.mk"
.include "../../textproc/libxml2/buildlink3.mk"
@@ -108,6 +107,6 @@ BUILDLINK_API_DEPENDS.shared-desktop-ontologies+= shared-desktop-ontologies>=0.4
.include "../../x11/libXinerama/buildlink3.mk"
.include "../../x11/libXpm/buildlink3.mk"
.include "../../x11/libXtst/buildlink3.mk"
-
.include "../../mk/krb5.buildlink3.mk"
+.include "../../sysutils/desktop-file-utils/desktopdb.mk"
.include "../../mk/bsd.pkg.mk"
diff --git a/x11/kdelibs4/PLIST b/x11/kdelibs4/PLIST
index e254cc2af56..f3f12ae4f86 100644
--- a/x11/kdelibs4/PLIST
+++ b/x11/kdelibs4/PLIST
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.8 2011/11/29 18:12:12 hans Exp $
+@comment $NetBSD: PLIST,v 1.9 2012/03/19 11:28:48 markd Exp $
bin/checkXML
bin/kbuildsycoca4
bin/kconfig_compiler
@@ -8,6 +8,7 @@ bin/kded4
bin/kdeinit4
bin/kdeinit4_shutdown
bin/kdeinit4_wrapper
+bin/kfilemetadatareader
bin/kjs
bin/kjscmd
bin/kross
@@ -259,6 +260,7 @@ include/KDE/KCategoryDrawer
include/KDE/KCharMacroExpander
include/KDE/KCharSelect
include/KDE/KCharsets
+include/KDE/KCheckableProxyModel
include/KDE/KCmdLineArgs
include/KDE/KCmdLineOptions
include/KDE/KCodecs
@@ -292,6 +294,7 @@ include/KDE/KConfigSkeletonItem
include/KDE/KCrash
include/KDE/KCrashBookmarkImporter
include/KDE/KCrashBookmarkImporterImpl
+include/KDE/KCurrencyCode
include/KDE/KCursor
include/KDE/KDBusServiceStarter
include/KDE/KDEDModule
@@ -299,13 +302,16 @@ include/KDE/KDEsuClient
include/KDE/KDataTool
include/KDE/KDataToolAction
include/KDE/KDataToolInfo
+include/KDE/KDateComboBox
include/KDE/KDatePicker
include/KDE/KDateTable
include/KDE/KDateTime
+include/KDE/KDateTimeEdit
include/KDE/KDateTimeWidget
include/KDE/KDateValidator
include/KDE/KDateWidget
include/KDE/KDebug
+include/KDE/KDescendantsProxyModel
include/KDE/KDesktopFile
include/KDE/KDialog
include/KDE/KDialogButtonBox
@@ -320,8 +326,10 @@ include/KDE/KDiskFreeSpace
include/KDE/KDiskFreeSpaceInfo
include/KDE/KDoubleNumInput
include/KDE/KDoubleValidator
+include/KDE/KDualAction
include/KDE/KEMailSettings
include/KDE/KEditListBox
+include/KDE/KEditListWidget
include/KDE/KEditToolBar
include/KDE/KEmoticons
include/KDE/KEmoticonsProvider
@@ -338,6 +346,7 @@ include/KDE/KFileItemActions
include/KDE/KFileItemDelegate
include/KDE/KFileItemList
include/KDE/KFileItemListProperties
+include/KDE/KFileMetaDataWidget
include/KDE/KFileMetaInfo
include/KDE/KFileMetaInfoGroup
include/KDE/KFileMetaInfoItem
@@ -361,6 +370,7 @@ include/KDE/KFontComboBox
include/KDE/KFontDialog
include/KDE/KFontRequester
include/KDE/KFontSizeAction
+include/KDE/KFontUtils
include/KDE/KGenericFactory
include/KDE/KGenericFactoryBase
include/KDE/KGlobal
@@ -396,6 +406,7 @@ include/KDE/KIO/FileCopyJob
include/KDE/KIO/FileJob
include/KDE/KIO/ForwardingSlaveBase
include/KDE/KIO/Job
+include/KDE/KIO/JobClasses
include/KDE/KIO/JobUiDelegate
include/KDE/KIO/ListJob
include/KDE/KIO/MetaData
@@ -462,6 +473,7 @@ include/KDE/KMessage
include/KDE/KMessageBox
include/KDE/KMessageBoxMessageHandler
include/KDE/KMessageHandler
+include/KDE/KMessageWidget
include/KDE/KMimeType
include/KDE/KMimeTypeChooser
include/KDE/KMimeTypeChooserDialog
@@ -510,6 +522,7 @@ include/KDE/KNetwork/KSocketDeviceFactory
include/KDE/KNetwork/KSocksSocketDevice
include/KDE/KNetwork/KStreamSocket
include/KDE/KNetwork/KUnixSocketAddress
+include/KDE/KNewFileMenu
include/KDE/KNotification
include/KDE/KNotificationRestrictions
include/KDE/KNotifyConfigWidget
@@ -533,10 +546,12 @@ include/KDE/KParts/ComponentFactory
include/KDE/KParts/DockMainWindow3
include/KDE/KParts/Event
include/KDE/KParts/Factory
+include/KDE/KParts/FileInfoExtension
include/KDE/KParts/GUIActivateEvent
include/KDE/KParts/GenericFactory
include/KDE/KParts/GenericFactoryBase
include/KDE/KParts/HistoryProvider
+include/KDE/KParts/HtmlExtension
include/KDE/KParts/LiveConnectExtension
include/KDE/KParts/MainWindow
include/KDE/KParts/OpenUrlEvent
@@ -549,6 +564,7 @@ include/KDE/KParts/Plugin
include/KDE/KParts/ReadOnlyPart
include/KDE/KParts/ReadWritePart
include/KDE/KParts/StatusBarExtension
+include/KDE/KParts/TextExtension
include/KDE/KParts/WindowArgs
include/KDE/KPassivePopup
include/KDE/KPassivePopupMessageHandler
@@ -583,6 +599,7 @@ include/KDE/KPtyProcess
include/KDE/KPushButton
include/KDE/KRandom
include/KDE/KRandomSequence
+include/KDE/KRatingWidget
include/KDE/KRecentDocument
include/KDE/KRecentFilesAction
include/KDE/KRemoteEncoding
@@ -594,10 +611,12 @@ include/KDE/KRichTextWidget
include/KDE/KRuler
include/KDE/KRun
include/KDE/KSambaShare
+include/KDE/KSambaShareData
include/KDE/KSaveFile
include/KDE/KScanDialog
include/KDE/KSelectAction
include/KDE/KSelectionOwner
+include/KDE/KSelectionProxyModel
include/KDE/KSelectionWatcher
include/KDE/KSelector
include/KDE/KSeparator
@@ -617,6 +636,7 @@ include/KDE/KSharedPtr
include/KDE/KShell
include/KDE/KShellCompletion
include/KDE/KShortcut
+include/KDE/KShortcutWidget
include/KDE/KShortcutsDialog
include/KDE/KShortcutsEditor
include/KDE/KSocks
@@ -641,6 +661,7 @@ include/KDE/KStyleFactory
include/KDE/KSvgRenderer
include/KDE/KSycoca
include/KDE/KSycocaEntry
+include/KDE/KSystemEventFilter
include/KDE/KSystemTimeZone
include/KDE/KSystemTimeZoneSource
include/KDE/KSystemTimeZones
@@ -690,6 +711,7 @@ include/KDE/KTextEditor/TemplateInterface2
include/KDE/KTextEditor/TextHintInterface
include/KDE/KTextEditor/VariableInterface
include/KDE/KTextEditor/View
+include/KDE/KTimeComboBox
include/KDE/KTimeZone
include/KDE/KTimeZoneData
include/KDE/KTimeZoneSource
@@ -738,6 +760,7 @@ include/KDE/KUrlRequesterDialog
include/KDE/KUser
include/KDE/KUserGroup
include/KDE/KVBox
+include/KDE/KViewStateMaintainer
include/KDE/KWallet/Wallet
include/KDE/KWebPage
include/KDE/KWebPluginFactory
@@ -785,6 +808,7 @@ include/KDE/Kross/WrapperInterface
include/KDE/NET
include/KDE/NETRootInfo
include/KDE/NETWinInfo
+include/KDE/Nepomuk/File
include/KDE/Nepomuk/KRatingPainter
include/KDE/Nepomuk/KRatingWidget
include/KDE/Nepomuk/MassUpdateJob
@@ -803,6 +827,7 @@ include/KDE/Nepomuk/Query/ResourceTerm
include/KDE/Nepomuk/Query/ResourceTypeTerm
include/KDE/Nepomuk/Query/Result
include/KDE/Nepomuk/Query/SimpleTerm
+include/KDE/Nepomuk/Query/StandardQuery
include/KDE/Nepomuk/Query/Term
include/KDE/Nepomuk/Resource
include/KDE/Nepomuk/ResourceManager
@@ -814,7 +839,26 @@ include/KDE/Nepomuk/Types/Class
include/KDE/Nepomuk/Types/Literal
include/KDE/Nepomuk/Types/Ontology
include/KDE/Nepomuk/Types/Property
+include/KDE/Nepomuk/Utils/DynamicResourceFacet
+include/KDE/Nepomuk/Utils/Facet
+include/KDE/Nepomuk/Utils/FacetWidget
+include/KDE/Nepomuk/Utils/ProxyFacet
+include/KDE/Nepomuk/Utils/ResourceModel
+include/KDE/Nepomuk/Utils/SearchWidget
+include/KDE/Nepomuk/Utils/SimpleFacet
+include/KDE/Nepomuk/Utils/SimpleResourceModel
include/KDE/Nepomuk/Variant
+include/KDE/Nepomuk/Vocabulary/NCAL
+include/KDE/Nepomuk/Vocabulary/NCO
+include/KDE/Nepomuk/Vocabulary/NDO
+include/KDE/Nepomuk/Vocabulary/NEXIF
+include/KDE/Nepomuk/Vocabulary/NFO
+include/KDE/Nepomuk/Vocabulary/NIE
+include/KDE/Nepomuk/Vocabulary/NMM
+include/KDE/Nepomuk/Vocabulary/NMO
+include/KDE/Nepomuk/Vocabulary/NUAO
+include/KDE/Nepomuk/Vocabulary/PIMO
+include/KDE/Nepomuk/Vocabulary/TMO
include/KDE/OrgKdeKDirNotifyInterface
include/KDE/OrgKdeKLauncherInterface
include/KDE/Plasma/AbstractDialogManager
@@ -844,6 +888,7 @@ include/KDE/Plasma/DataContainer
include/KDE/Plasma/DataEngine
include/KDE/Plasma/DataEngineManager
include/KDE/Plasma/DataEngineScript
+include/KDE/Plasma/DeclarativeWidget
include/KDE/Plasma/Delegate
include/KDE/Plasma/Dialog
include/KDE/Plasma/Extender
@@ -864,6 +909,7 @@ include/KDE/Plasma/PackageMetadata
include/KDE/Plasma/PackageStructure
include/KDE/Plasma/PaintUtils
include/KDE/Plasma/Plasma
+include/KDE/Plasma/PluginLoader
include/KDE/Plasma/PopupApplet
include/KDE/Plasma/PushButton
include/KDE/Plasma/QueryMatch
@@ -910,6 +956,7 @@ include/KDE/Solid/DeviceNotifier
include/KDE/Solid/DvbInterface
include/KDE/Solid/GenericInterface
include/KDE/Solid/NetworkInterface
+include/KDE/Solid/NetworkShare
include/KDE/Solid/Networking
include/KDE/Solid/OpticalDisc
include/KDE/Solid/OpticalDrive
@@ -1043,6 +1090,7 @@ include/k3urldrag.h
include/k3wizard.h
include/kaboutapplicationdialog.h
include/kaboutdata.h
+include/kabstractfileitemactionplugin.h
include/kabstractfilemodule.h
include/kabstractfilewidget.h
include/kabstractwidgetjobtracker.h
@@ -1060,6 +1108,7 @@ include/kanimatedbutton.h
include/kapplication.h
include/kar.h
include/karchive.h
+include/karchive_export.h
include/karrowbutton.h
include/kascii.h
include/kassistantdialog.h
@@ -1095,6 +1144,7 @@ include/kcategorizedview.h
include/kcategorydrawer.h
include/kcharselect.h
include/kcharsets.h
+include/kcheckableproxymodel.h
include/kcmdlineargs.h
include/kcmodule.h
include/kcmodulecontainer.h
@@ -1130,9 +1180,11 @@ include/kcrash.h
include/kcurrencycode.h
include/kcursor.h
include/kdatatool.h
+include/kdatecombobox.h
include/kdatepicker.h
include/kdatetable.h
include/kdatetime.h
+include/kdatetimeedit.h
include/kdatetimewidget.h
include/kdatewidget.h
include/kdbusservicestarter.h
@@ -1141,11 +1193,14 @@ include/kde_file.h
include/kde_terminal_interface.h
include/kde_terminal_interface_v2.h
include/kdebug.h
+include/kdeclarative.h
+include/kdeclarative_export.h
include/kdecore_export.h
include/kdedmodule.h
include/kdefakes.h
include/kdemacros.h
include/kdeprintdialog.h
+include/kdescendantsproxymodel.h
include/kdesktopfile.h
include/kdesktopfileactions.h
include/kdesu/client.h
@@ -1171,7 +1226,9 @@ include/kdirsortfilterproxymodel.h
include/kdirwatch.h
include/kdiskfreespace.h
include/kdiskfreespaceinfo.h
+include/kdualaction.h
include/keditlistbox.h
+include/keditlistwidget.h
include/kedittoolbar.h
include/kemailsettings.h
include/kemoticons.h
@@ -1189,6 +1246,7 @@ include/kfile_export.h
include/kfiledialog.h
include/kfilefiltercombo.h
include/kfileitem.h
+include/kfileitemactionplugin.h
include/kfileitemactions.h
include/kfileitemdelegate.h
include/kfileitemlistproperties.h
@@ -1217,6 +1275,7 @@ include/kfontcombobox.h
include/kfontdialog.h
include/kfontrequester.h
include/kfontsizeaction.h
+include/kfontutils.h
include/kgenericfactory.h
include/kgenericfactory.tcc
include/kgesture.h
@@ -1248,6 +1307,7 @@ include/kicondialog.h
include/kiconeffect.h
include/kiconloader.h
include/kicontheme.h
+include/kidentityproxymodel.h
include/kidletime.h
include/kidletime_export.h
include/kimagecache.h
@@ -1319,6 +1379,7 @@ include/klinkitemselectionmodel.h
include/klistwidget.h
include/klistwidgetsearchline.h
include/klocale.h
+include/klocalizeddate.h
include/klocalizedstring.h
include/klocalsocket.h
include/klockfile.h
@@ -1333,6 +1394,7 @@ include/kmenubar.h
include/kmessage.h
include/kmessagebox.h
include/kmessageboxmessagehandler.h
+include/kmessagewidget.h
include/kmimetype.h
include/kmimetypechooser.h
include/kmimetyperesolver.h
@@ -1382,8 +1444,10 @@ include/kparts/browserrun.h
include/kparts/componentfactory.h
include/kparts/event.h
include/kparts/factory.h
+include/kparts/fileinfoextension.h
include/kparts/genericfactory.h
include/kparts/historyprovider.h
+include/kparts/htmlextension.h
include/kparts/kparts_export.h
include/kparts/mainwindow.h
include/kparts/part.h
@@ -1391,6 +1455,7 @@ include/kparts/partmanager.h
include/kparts/plugin.h
include/kparts/scriptableextension.h
include/kparts/statusbarextension.h
+include/kparts/textextension.h
include/kpassivepopup.h
include/kpassivepopupmessagehandler.h
include/kpassworddialog.h
@@ -1427,6 +1492,9 @@ include/kptyprocess.h
include/kpushbutton.h
include/krandom.h
include/krandomsequence.h
+include/kratingpainter.h
+include/kratingwidget.h
+include/krecentdirs.h
include/krecentdocument.h
include/krecentfilesaction.h
include/krecursivefilterproxymodel.h
@@ -1456,6 +1524,7 @@ include/kross/ui/view.h
include/kruler.h
include/krun.h
include/ksambashare.h
+include/ksambasharedata.h
include/ksavefile.h
include/kscan.h
include/kselectaction.h
@@ -1507,6 +1576,7 @@ include/ksvgrenderer.h
include/ksycoca.h
include/ksycocaentry.h
include/ksycocatype.h
+include/ksystemeventfilter.h
include/ksystemtimezone.h
include/ksystemtrayicon.h
include/ktabbar.h
@@ -1545,6 +1615,7 @@ include/ktexteditor/movingrangefeedback.h
include/ktexteditor/plugin.h
include/ktexteditor/range.h
include/ktexteditor/rangefeedback.h
+include/ktexteditor/recoveryinterface.h
include/ktexteditor/searchinterface.h
include/ktexteditor/sessionconfiginterface.h
include/ktexteditor/smartcursor.h
@@ -1559,6 +1630,7 @@ include/ktexteditor/templateinterface2.h
include/ktexteditor/texthintinterface.h
include/ktexteditor/variableinterface.h
include/ktexteditor/view.h
+include/ktimecombobox.h
include/ktimezone.h
include/ktimezonewidget.h
include/ktip.h
@@ -1601,6 +1673,7 @@ include/kurlrequesterdialog.h
include/kurlrequesterdlg.h
include/kuser.h
include/kvbox.h
+include/kviewstatemaintainer.h
include/kviewstatesaver.h
include/kwallet.h
include/kwebpage.h
@@ -1625,7 +1698,11 @@ include/nepomuk/andterm.h
include/nepomuk/class.h
include/nepomuk/comparisonterm.h
include/nepomuk/desktopontologyloader.h
+include/nepomuk/dynamicresourcefacet.h
include/nepomuk/entity.h
+include/nepomuk/facet.h
+include/nepomuk/facetwidget.h
+include/nepomuk/file.h
include/nepomuk/fileontologyloader.h
include/nepomuk/filequery.h
include/nepomuk/global.h
@@ -1638,32 +1715,51 @@ include/nepomuk/ktagcloudwidget.h
include/nepomuk/ktagdisplaywidget.h
include/nepomuk/literal.h
include/nepomuk/literalterm.h
+include/nepomuk/ncal.h
+include/nepomuk/nco.h
+include/nepomuk/ndo.h
include/nepomuk/negationterm.h
include/nepomuk/nepomuk_export.h
include/nepomuk/nepomukmassupdatejob.h
include/nepomuk/nepomukontologyloader.h
include/nepomuk/nepomukquery_export.h
include/nepomuk/nepomukservice.h
+include/nepomuk/nepomukutils_export.h
+include/nepomuk/nexif.h
+include/nepomuk/nfo.h
+include/nepomuk/nie.h
+include/nepomuk/nmm.h
+include/nepomuk/nmo.h
+include/nepomuk/nuao.h
include/nepomuk/ontology.h
include/nepomuk/ontologyloader.h
include/nepomuk/ontologymanager.h
include/nepomuk/optionalterm.h
include/nepomuk/orterm.h
+include/nepomuk/pimo.h
include/nepomuk/property.h
+include/nepomuk/proxyfacet.h
include/nepomuk/query.h
include/nepomuk/queryparser.h
include/nepomuk/queryserviceclient.h
include/nepomuk/resource.h
include/nepomuk/resourcemanager.h
+include/nepomuk/resourcemodel.h
include/nepomuk/resourceterm.h
include/nepomuk/resourcetypeterm.h
include/nepomuk/result.h
+include/nepomuk/searchwidget.h
+include/nepomuk/simplefacet.h
+include/nepomuk/simpleresourcemodel.h
include/nepomuk/simpleterm.h
+include/nepomuk/standardqueries.h
include/nepomuk/tag.h
include/nepomuk/tagwidget.h
include/nepomuk/term.h
include/nepomuk/thing.h
+include/nepomuk/tmo.h
include/nepomuk/tools.h
+include/nepomuk/utils.h
include/nepomuk/variant.h
include/netwm.h
include/netwm_def.h
@@ -1705,6 +1801,7 @@ include/plasma/packagestructure.h
include/plasma/paintutils.h
include/plasma/plasma.h
include/plasma/plasma_export.h
+include/plasma/pluginloader.h
include/plasma/popupapplet.h
include/plasma/querymatch.h
include/plasma/runnercontext.h
@@ -1728,6 +1825,7 @@ include/plasma/wallpaper.h
include/plasma/widgets/busywidget.h
include/plasma/widgets/checkbox.h
include/plasma/widgets/combobox.h
+include/plasma/widgets/declarativewidget.h
include/plasma/widgets/flashinglabel.h
include/plasma/widgets/frame.h
include/plasma/widgets/groupbox.h
@@ -1767,8 +1865,10 @@ include/solid/deviceinterface.h
include/solid/devicenotifier.h
include/solid/dvbinterface.h
include/solid/genericinterface.h
+include/solid/internetgateway.h
include/solid/networking.h
include/solid/networkinterface.h
+include/solid/networkshare.h
include/solid/opticaldisc.h
include/solid/opticaldrive.h
include/solid/portablemediaplayer.h
@@ -1808,7 +1908,7 @@ lib/kde4/emoticonstheme_adium.so
lib/kde4/emoticonstheme_kde.so
lib/kde4/emoticonstheme_pidgin.so
lib/kde4/emoticonstheme_xmpp.so
-lib/kde4/katepart.so
+lib/kde4/kcm_ssl.so
lib/kde4/kded_kcookiejar.so
lib/kde4/kded_kssld.so
lib/kde4/kded_proxyscout.so
@@ -1829,19 +1929,12 @@ lib/kde4/krossmodulekdetranslation.so
lib/kde4/krossqts.so
lib/kde4/kspell_aspell.so
lib/kde4/kspell_enchant.so
-lib/kde4/ktexteditor_autobrace.so
-lib/kde4/ktexteditor_exporter.so
-lib/kde4/ktexteditor_iconinserter.so
-lib/kde4/ktexteditor_insanehtml_le.so
-lib/kde4/ktexteditor_insertfile.so
-lib/kde4/ktexteditor_kdatatool.so
lib/kde4/ktranscript.so
lib/kde4/libexec/filesharelist
lib/kde4/libexec/fileshareset
lib/kde4/libexec/kauth-policy-gen
lib/kde4/libexec/kconf_update
lib/kde4/libexec/kdesu_stub
-${PLIST.kgrantpty}lib/kde4/libexec/kgrantpty
lib/kde4/libexec/kio_http_cache_cleaner
lib/kde4/libexec/kioslave
lib/kde4/libexec/klauncher
@@ -1856,6 +1949,8 @@ lib/kde4/libkhtmlpart.so
lib/kde4/libkmultipart.so
lib/kde4/notepadpart.so
lib/kde4/plugins/designer/kde3supportwidgets.so
+lib/kde4/plugins/designer/kdedeprecated.so
+lib/kde4/plugins/designer/kdewebkitwidgets.so
lib/kde4/plugins/designer/kdewidgets.so
lib/kde4/plugins/imageformats/kimg_dds.so
lib/kde4/plugins/imageformats/kimg_eps.so
@@ -1873,23 +1968,23 @@ lib/kde4/plugins/kauth/backend/kauth_backend_plugin.so
lib/kde4/plugins/kauth/helper/kauth_helper_plugin.so
lib/kde4/plugins/script/libkrossqtsplugin.so
lib/kde4/plugins/script/libkrossqtsplugin.so.4
-lib/kde4/plugins/script/libkrossqtsplugin.so.4.5.0
+lib/kde4/plugins/script/libkrossqtsplugin.so.4.8.0
lib/kde4/spellcheckplugin.so
-lib/libkatepartinterfaces.so
-lib/libkatepartinterfaces.so.4
-lib/libkatepartinterfaces.so.4.5.0
lib/libkcmutils.so
lib/libkcmutils.so.4
-lib/libkcmutils.so.4.5.0
+lib/libkcmutils.so.4.8.0
lib/libkde3support.so
lib/libkde3support.so.4
-lib/libkde3support.so.4.5.0
+lib/libkde3support.so.4.8.0
+lib/libkdeclarative.so
+lib/libkdeclarative.so.5
+lib/libkdeclarative.so.5.8.0
lib/libkdecore.so
lib/libkdecore.so.5
-lib/libkdecore.so.5.5.0
+lib/libkdecore.so.5.8.0
lib/libkdefakes.so
lib/libkdefakes.so.5
-lib/libkdefakes.so.5.5.0
+lib/libkdefakes.so.5.8.0
lib/libkdeinit4_kbuildsycoca4.so
lib/libkdeinit4_kconf_update.so
lib/libkdeinit4_kded4.so
@@ -1897,100 +1992,103 @@ lib/libkdeinit4_kio_http_cache_cleaner.so
lib/libkdeinit4_klauncher.so
lib/libkdesu.so
lib/libkdesu.so.5
-lib/libkdesu.so.5.5.0
+lib/libkdesu.so.5.8.0
lib/libkdeui.so
lib/libkdeui.so.5
-lib/libkdeui.so.5.5.0
+lib/libkdeui.so.5.8.0
lib/libkdewebkit.so
lib/libkdewebkit.so.5
-lib/libkdewebkit.so.5.5.0
+lib/libkdewebkit.so.5.8.0
lib/libkdnssd.so
lib/libkdnssd.so.4
-lib/libkdnssd.so.4.5.0
+lib/libkdnssd.so.4.8.0
lib/libkemoticons.so
lib/libkemoticons.so.4
-lib/libkemoticons.so.4.5.0
+lib/libkemoticons.so.4.8.0
lib/libkfile.so
lib/libkfile.so.4
-lib/libkfile.so.4.5.0
+lib/libkfile.so.4.8.0
lib/libkhtml.so
lib/libkhtml.so.5
-lib/libkhtml.so.5.5.0
+lib/libkhtml.so.5.8.0
lib/libkidletime.so
lib/libkidletime.so.4
-lib/libkidletime.so.4.5.0
+lib/libkidletime.so.4.8.0
lib/libkimproxy.so
lib/libkimproxy.so.4
-lib/libkimproxy.so.4.5.0
+lib/libkimproxy.so.4.8.0
lib/libkio.so
lib/libkio.so.5
-lib/libkio.so.5.5.0
+lib/libkio.so.5.8.0
lib/libkjs.so
lib/libkjs.so.4
-lib/libkjs.so.4.5.0
+lib/libkjs.so.4.8.0
lib/libkjsapi.so
lib/libkjsapi.so.4
-lib/libkjsapi.so.4.5.0
+lib/libkjsapi.so.4.8.0
lib/libkjsembed.so
lib/libkjsembed.so.4
-lib/libkjsembed.so.4.5.0
+lib/libkjsembed.so.4.8.0
lib/libkmediaplayer.so
lib/libkmediaplayer.so.4
-lib/libkmediaplayer.so.4.5.0
+lib/libkmediaplayer.so.4.8.0
lib/libknewstuff2.so
lib/libknewstuff2.so.4
-lib/libknewstuff2.so.4.5.0
+lib/libknewstuff2.so.4.8.0
lib/libknewstuff3.so
lib/libknewstuff3.so.4
-lib/libknewstuff3.so.4.5.0
+lib/libknewstuff3.so.4.8.0
lib/libknotifyconfig.so
lib/libknotifyconfig.so.4
-lib/libknotifyconfig.so.4.5.0
+lib/libknotifyconfig.so.4.8.0
lib/libkntlm.so
lib/libkntlm.so.4
-lib/libkntlm.so.4.5.0
+lib/libkntlm.so.4.8.0
lib/libkparts.so
lib/libkparts.so.4
-lib/libkparts.so.4.5.0
+lib/libkparts.so.4.8.0
lib/libkprintutils.so
lib/libkprintutils.so.4
-lib/libkprintutils.so.4.5.0
+lib/libkprintutils.so.4.8.0
lib/libkpty.so
lib/libkpty.so.4
-lib/libkpty.so.4.5.0
+lib/libkpty.so.4.8.0
lib/libkrosscore.so
lib/libkrosscore.so.4
-lib/libkrosscore.so.4.5.0
+lib/libkrosscore.so.4.8.0
lib/libkrossui.so
lib/libkrossui.so.4
-lib/libkrossui.so.4.5.0
+lib/libkrossui.so.4.8.0
lib/libktexteditor.so
lib/libktexteditor.so.4
-lib/libktexteditor.so.4.5.0
+lib/libktexteditor.so.4.8.0
lib/libkunitconversion.so
lib/libkunitconversion.so.4
-lib/libkunitconversion.so.4.5.0
+lib/libkunitconversion.so.4.8.0
lib/libkunittest.so
lib/libkunittest.so.4
-lib/libkunittest.so.4.5.0
+lib/libkunittest.so.4.8.0
lib/libkutils.so
lib/libkutils.so.4
-lib/libkutils.so.4.5.0
+lib/libkutils.so.4.8.0
lib/libnepomuk.so
lib/libnepomuk.so.4
-lib/libnepomuk.so.4.5.0
+lib/libnepomuk.so.4.8.0
lib/libnepomukquery.so
lib/libnepomukquery.so.4
-lib/libnepomukquery.so.4.5.0
+lib/libnepomukquery.so.4.8.0
+lib/libnepomukutils.so
+lib/libnepomukutils.so.4
+lib/libnepomukutils.so.4.8.0
lib/libplasma.so
lib/libplasma.so.3
lib/libplasma.so.3.0.0
lib/libsolid.so
lib/libsolid.so.4
-lib/libsolid.so.4.5.0
+lib/libsolid.so.4.8.0
lib/libthreadweaver.so
lib/libthreadweaver.so.4
-lib/libthreadweaver.so.4.5.0
+lib/libthreadweaver.so.4.8.0
man/man1/checkXML.1
man/man1/kde4-config.1
man/man1/kdecmake.1
@@ -2005,6 +2103,8 @@ man/man8/kcookiejar4.8
man/man8/kded4.8
man/man8/kdeinit4.8
man/man8/meinproc4.8
+share/applications/kde4/kmailservice.desktop
+share/applications/kde4/ktelnetservice.desktop
share/dbus-1/interfaces/org.freedesktop.PowerManagement.Inhibit.xml
share/dbus-1/interfaces/org.freedesktop.PowerManagement.xml
share/dbus-1/interfaces/org.kde.JobView.xml
@@ -2021,6 +2121,7 @@ share/dbus-1/interfaces/org.kde.KPasswdServer.xml
share/dbus-1/interfaces/org.kde.KSpeech.xml
share/dbus-1/interfaces/org.kde.KWallet.xml
share/dbus-1/interfaces/org.kde.Solid.Networking.Client.xml
+share/dbus-1/interfaces/org.kde.Solid.PowerManagement.PolicyAgent.xml
share/dbus-1/interfaces/org.kde.StatusNotifierItem.xml
share/dbus-1/interfaces/org.kde.StatusNotifierWatcher.xml
share/dbus-1/interfaces/org.kde.kded.xml
@@ -2114,7 +2215,6 @@ share/icons/hicolor/32x32/actions/presence_unknown.png
share/icons/hicolor/48x48/actions/presence_away.png
share/icons/hicolor/48x48/actions/presence_offline.png
share/icons/hicolor/48x48/actions/presence_online.png
-share/icons/hicolor/scalable/apps/ktexteditorautobrace.svgz
share/kde/apps/LICENSES/ARTISTIC
share/kde/apps/LICENSES/BSD
share/kde/apps/LICENSES/GPL_V2
@@ -2165,9 +2265,6 @@ share/kde/apps/cmake/modules/FindHUNSPELL.cmake
share/kde/apps/cmake/modules/FindIOKit.cmake
share/kde/apps/cmake/modules/FindKDE4Internal.cmake
share/kde/apps/cmake/modules/FindKDE4Workspace.cmake
-share/kde/apps/cmake/modules/FindKDEWIN32.cmake
-share/kde/apps/cmake/modules/FindKDEWIN_Packager.cmake
-share/kde/apps/cmake/modules/FindKDEWin.cmake
share/kde/apps/cmake/modules/FindKDevPlatform.cmake
share/kde/apps/cmake/modules/FindKdcraw.cmake
share/kde/apps/cmake/modules/FindKdeMultimedia.cmake
@@ -2225,6 +2322,7 @@ share/kde/apps/cmake/modules/FindSqlite.cmake
share/kde/apps/cmake/modules/FindStrigi.cmake
share/kde/apps/cmake/modules/FindTaglib.cmake
share/kde/apps/cmake/modules/FindUSB.cmake
+share/kde/apps/cmake/modules/FindWcecompat.cmake
share/kde/apps/cmake/modules/FindX11.cmake
share/kde/apps/cmake/modules/FindXKB.cmake
share/kde/apps/cmake/modules/FindXine.cmake
@@ -2271,190 +2369,6 @@ share/kde/apps/cmake/modules/kde4automoc.files.in
share/kde/apps/cmake/modules/kde4init_dummy.cpp.in
share/kde/apps/cmake/modules/kde4init_win32lib_dummy.cpp.in
share/kde/apps/cmake/modules/kde4uic.cmake
-share/kde/apps/katepart/api/05_cursor.js
-share/kde/apps/katepart/api/10_range.js
-share/kde/apps/katepart/katepartsimpleui.rc
-share/kde/apps/katepart/katepartui.rc
-share/kde/apps/katepart/script/cstyle.js
-share/kde/apps/katepart/script/haskell.js
-share/kde/apps/katepart/script/lilypond.js
-share/kde/apps/katepart/script/lisp.js
-share/kde/apps/katepart/script/lua.js
-share/kde/apps/katepart/script/python.js
-share/kde/apps/katepart/script/ruby.js
-share/kde/apps/katepart/script/utils.js
-share/kde/apps/katepart/script/xml.js
-share/kde/apps/katepart/syntax/abap.xml
-share/kde/apps/katepart/syntax/abc.xml
-share/kde/apps/katepart/syntax/actionscript.xml
-share/kde/apps/katepart/syntax/ada.xml
-share/kde/apps/katepart/syntax/ahdl.xml
-share/kde/apps/katepart/syntax/alert.xml
-share/kde/apps/katepart/syntax/alert_indent.xml
-share/kde/apps/katepart/syntax/ample.xml
-share/kde/apps/katepart/syntax/ansic89.xml
-share/kde/apps/katepart/syntax/ansys.xml
-share/kde/apps/katepart/syntax/apache.xml
-share/kde/apps/katepart/syntax/asm-avr.xml
-share/kde/apps/katepart/syntax/asm-dsp56k.xml
-share/kde/apps/katepart/syntax/asm-m68k.xml
-share/kde/apps/katepart/syntax/asm6502.xml
-share/kde/apps/katepart/syntax/asn1.xml
-share/kde/apps/katepart/syntax/asp.xml
-share/kde/apps/katepart/syntax/asterisk.xml
-share/kde/apps/katepart/syntax/awk.xml
-share/kde/apps/katepart/syntax/bash.xml
-share/kde/apps/katepart/syntax/bibtex.xml
-share/kde/apps/katepart/syntax/bmethod.xml
-share/kde/apps/katepart/syntax/boo.xml
-share/kde/apps/katepart/syntax/c.xml
-share/kde/apps/katepart/syntax/cg.xml
-share/kde/apps/katepart/syntax/cgis.xml
-share/kde/apps/katepart/syntax/changelog.xml
-share/kde/apps/katepart/syntax/cisco.xml
-share/kde/apps/katepart/syntax/clipper.xml
-share/kde/apps/katepart/syntax/cmake.xml
-share/kde/apps/katepart/syntax/coldfusion.xml
-share/kde/apps/katepart/syntax/commonlisp.xml
-share/kde/apps/katepart/syntax/component-pascal.xml
-share/kde/apps/katepart/syntax/cpp.xml
-share/kde/apps/katepart/syntax/cs.xml
-share/kde/apps/katepart/syntax/css-php.xml
-share/kde/apps/katepart/syntax/css.xml
-share/kde/apps/katepart/syntax/cue.xml
-share/kde/apps/katepart/syntax/d.xml
-share/kde/apps/katepart/syntax/debianchangelog.xml
-share/kde/apps/katepart/syntax/debiancontrol.xml
-share/kde/apps/katepart/syntax/desktop.xml
-share/kde/apps/katepart/syntax/diff.xml
-share/kde/apps/katepart/syntax/djangotemplate.xml
-share/kde/apps/katepart/syntax/doxygen.xml
-share/kde/apps/katepart/syntax/doxygenlua.xml
-share/kde/apps/katepart/syntax/dtd.xml
-share/kde/apps/katepart/syntax/e.xml
-share/kde/apps/katepart/syntax/eiffel.xml
-share/kde/apps/katepart/syntax/email.xml
-share/kde/apps/katepart/syntax/erlang.xml
-share/kde/apps/katepart/syntax/euphoria.xml
-share/kde/apps/katepart/syntax/ferite.xml
-share/kde/apps/katepart/syntax/fgl-4gl.xml
-share/kde/apps/katepart/syntax/fgl-per.xml
-share/kde/apps/katepart/syntax/fortran.xml
-share/kde/apps/katepart/syntax/freebasic.xml
-share/kde/apps/katepart/syntax/fstab.xml
-share/kde/apps/katepart/syntax/gap.xml
-share/kde/apps/katepart/syntax/gdl.xml
-share/kde/apps/katepart/syntax/gettext.xml
-share/kde/apps/katepart/syntax/glsl.xml
-share/kde/apps/katepart/syntax/gnuassembler.xml
-share/kde/apps/katepart/syntax/grammar.xml
-share/kde/apps/katepart/syntax/haskell.xml
-share/kde/apps/katepart/syntax/haxe.xml
-share/kde/apps/katepart/syntax/html-php.xml
-share/kde/apps/katepart/syntax/html.xml
-share/kde/apps/katepart/syntax/idconsole.xml
-share/kde/apps/katepart/syntax/idl.xml
-share/kde/apps/katepart/syntax/ilerpg.xml
-share/kde/apps/katepart/syntax/inform.xml
-share/kde/apps/katepart/syntax/ini.xml
-share/kde/apps/katepart/syntax/java.xml
-share/kde/apps/katepart/syntax/javadoc.xml
-share/kde/apps/katepart/syntax/javascript-php.xml
-share/kde/apps/katepart/syntax/javascript.xml
-share/kde/apps/katepart/syntax/json.xml
-share/kde/apps/katepart/syntax/jsp.xml
-share/kde/apps/katepart/syntax/kbasic.xml
-share/kde/apps/katepart/syntax/language.dtd
-share/kde/apps/katepart/syntax/latex.xml
-share/kde/apps/katepart/syntax/ldif.xml
-share/kde/apps/katepart/syntax/lex.xml
-share/kde/apps/katepart/syntax/lilypond.xml
-share/kde/apps/katepart/syntax/literate-haskell.xml
-share/kde/apps/katepart/syntax/logtalk.xml
-share/kde/apps/katepart/syntax/lpc.xml
-share/kde/apps/katepart/syntax/lsl.xml
-share/kde/apps/katepart/syntax/lua.xml
-share/kde/apps/katepart/syntax/m3u.xml
-share/kde/apps/katepart/syntax/mab.xml
-share/kde/apps/katepart/syntax/makefile.xml
-share/kde/apps/katepart/syntax/mandoc.xml
-share/kde/apps/katepart/syntax/mason.xml
-share/kde/apps/katepart/syntax/matlab.xml
-share/kde/apps/katepart/syntax/maxima.xml
-share/kde/apps/katepart/syntax/mediawiki.xml
-share/kde/apps/katepart/syntax/mergetagtext.xml
-share/kde/apps/katepart/syntax/mips.xml
-share/kde/apps/katepart/syntax/modelica.xml
-share/kde/apps/katepart/syntax/modula-2.xml
-share/kde/apps/katepart/syntax/monobasic.xml
-share/kde/apps/katepart/syntax/mup.xml
-share/kde/apps/katepart/syntax/nasm.xml
-share/kde/apps/katepart/syntax/nemerle.xml
-share/kde/apps/katepart/syntax/noweb.xml
-share/kde/apps/katepart/syntax/objectivec.xml
-share/kde/apps/katepart/syntax/objectivecpp.xml
-share/kde/apps/katepart/syntax/ocaml.xml
-share/kde/apps/katepart/syntax/octave.xml
-share/kde/apps/katepart/syntax/opal.xml
-share/kde/apps/katepart/syntax/pango.xml
-share/kde/apps/katepart/syntax/pascal.xml
-share/kde/apps/katepart/syntax/perl.xml
-share/kde/apps/katepart/syntax/pgn.xml
-share/kde/apps/katepart/syntax/php.xml
-share/kde/apps/katepart/syntax/picsrc.xml
-share/kde/apps/katepart/syntax/pike.xml
-share/kde/apps/katepart/syntax/postscript.xml
-share/kde/apps/katepart/syntax/povray.xml
-share/kde/apps/katepart/syntax/progress.xml
-share/kde/apps/katepart/syntax/prolog.xml
-share/kde/apps/katepart/syntax/purebasic.xml
-share/kde/apps/katepart/syntax/python.xml
-share/kde/apps/katepart/syntax/qml.xml
-share/kde/apps/katepart/syntax/r.xml
-share/kde/apps/katepart/syntax/rapidq.xml
-share/kde/apps/katepart/syntax/rexx.xml
-share/kde/apps/katepart/syntax/rhtml.xml
-share/kde/apps/katepart/syntax/rib.xml
-share/kde/apps/katepart/syntax/roff.xml
-share/kde/apps/katepart/syntax/rpmspec.xml
-share/kde/apps/katepart/syntax/rsiidl.xml
-share/kde/apps/katepart/syntax/ruby.xml
-share/kde/apps/katepart/syntax/sather.xml
-share/kde/apps/katepart/syntax/scala.xml
-share/kde/apps/katepart/syntax/scheme.xml
-share/kde/apps/katepart/syntax/sci.xml
-share/kde/apps/katepart/syntax/sgml.xml
-share/kde/apps/katepart/syntax/sieve.xml
-share/kde/apps/katepart/syntax/sisu.xml
-share/kde/apps/katepart/syntax/sml.xml
-share/kde/apps/katepart/syntax/spice.xml
-share/kde/apps/katepart/syntax/sql-mysql.xml
-share/kde/apps/katepart/syntax/sql-postgresql.xml
-share/kde/apps/katepart/syntax/sql.xml
-share/kde/apps/katepart/syntax/stata.xml
-share/kde/apps/katepart/syntax/syntax.template
-share/kde/apps/katepart/syntax/systemc.xml
-share/kde/apps/katepart/syntax/tcl.xml
-share/kde/apps/katepart/syntax/texinfo.xml
-share/kde/apps/katepart/syntax/tibasic.xml
-share/kde/apps/katepart/syntax/txt2tags.xml
-share/kde/apps/katepart/syntax/uscript.xml
-share/kde/apps/katepart/syntax/velocity.xml
-share/kde/apps/katepart/syntax/verilog.xml
-share/kde/apps/katepart/syntax/vhdl.xml
-share/kde/apps/katepart/syntax/vrml.xml
-share/kde/apps/katepart/syntax/winehq.xml
-share/kde/apps/katepart/syntax/wml.xml
-share/kde/apps/katepart/syntax/xharbour.xml
-share/kde/apps/katepart/syntax/xml.xml
-share/kde/apps/katepart/syntax/xmldebug.xml
-share/kde/apps/katepart/syntax/xorg.xml
-share/kde/apps/katepart/syntax/xslt.xml
-share/kde/apps/katepart/syntax/xul.xml
-share/kde/apps/katepart/syntax/yacas.xml
-share/kde/apps/katepart/syntax/yacc.xml
-share/kde/apps/katepart/syntax/yaml.xml
-share/kde/apps/katepart/syntax/zonnon.xml
share/kde/apps/kauth/dbus_policy.stub
share/kde/apps/kauth/dbus_service.stub
share/kde/apps/kcharselect/kcharselect-data
@@ -2467,8 +2381,6 @@ share/kde/apps/kconf_update/kioslave.upd
share/kde/apps/kconf_update/ksslcertificatemanager.upd
share/kde/apps/kconf_update/ksslcertificatemanager.upd.sh
share/kde/apps/kconf_update/move_kio_help_cache.sh
-share/kde/apps/kconf_update/plasma_popupapplet_fix_groups.pl
-share/kde/apps/kconf_update/plasma_popupapplet_fix_groups.upd
share/kde/apps/kconf_update/proxytype.pl
share/kde/apps/kconf_update/useragent.pl
share/kde/apps/kdeui/about/bar-bottom-left.png
@@ -2479,7 +2391,7 @@ share/kde/apps/kdeui/about/bar-middle-right.png
share/kde/apps/kdeui/about/bar-top-left.png
share/kde/apps/kdeui/about/bar-top-middle.png
share/kde/apps/kdeui/about/bar-top-right.png
-share/kde/apps/kdeui/about/body-background.png
+share/kde/apps/kdeui/about/body-background.jpg
share/kde/apps/kdeui/about/box-bottom-left.png
share/kde/apps/kdeui/about/box-bottom-middle.png
share/kde/apps/kdeui/about/box-bottom-right.png
@@ -2498,6 +2410,7 @@ share/kde/apps/kdeui/pics/kdeprint_nup2.png
share/kde/apps/kdeui/pics/kdeprint_nup4.png
share/kde/apps/kdeui/pics/kdeprint_nupother.png
share/kde/apps/kdeui/pics/ktip-bulb.png
+share/kde/apps/kdeui/pics/thumb_frame.png
share/kde/apps/kdewidgets/pics/k3iconview.png
share/kde/apps/kdewidgets/pics/k3listview.png
share/kde/apps/kdewidgets/pics/kactionselector.png
@@ -2930,9 +2843,11 @@ share/kde/apps/ksgmltools2/customization/ja/entities/update-doc.docbook
share/kde/apps/ksgmltools2/customization/ja/lang.entities
share/kde/apps/ksgmltools2/customization/ja/strings.entities
share/kde/apps/ksgmltools2/customization/ja/user.entities
+share/kde/apps/ksgmltools2/customization/kde-chunk-common.xsl
share/kde/apps/ksgmltools2/customization/kde-chunk-online.xsl
share/kde/apps/ksgmltools2/customization/kde-chunk.xsl
-share/kde/apps/ksgmltools2/customization/kde-man.xsl
+share/kde/apps/ksgmltools2/customization/kde-include-common.xsl
+share/kde/apps/ksgmltools2/customization/kde-include-man.xsl
share/kde/apps/ksgmltools2/customization/kde-navig-online.xsl
share/kde/apps/ksgmltools2/customization/kde-navig.xsl
share/kde/apps/ksgmltools2/customization/kde-nochunk.xsl
@@ -2971,6 +2886,7 @@ share/kde/apps/ksgmltools2/customization/lt/entities/underArtisticLicense.docboo
share/kde/apps/ksgmltools2/customization/lt/entities/underBSDLicense.docbook
share/kde/apps/ksgmltools2/customization/lt/entities/underFDL.docbook
share/kde/apps/ksgmltools2/customization/lt/entities/underGPL.docbook
+share/kde/apps/ksgmltools2/customization/lt/entities/underLGPL.docbook
share/kde/apps/ksgmltools2/customization/lt/entities/underX11License.docbook
share/kde/apps/ksgmltools2/customization/lt/entities/update-doc.docbook
share/kde/apps/ksgmltools2/customization/lt/lang.entities
@@ -3132,6 +3048,7 @@ share/kde/apps/ksgmltools2/customization/ru/entities/underArtisticLicense.docboo
share/kde/apps/ksgmltools2/customization/ru/entities/underBSDLicense.docbook
share/kde/apps/ksgmltools2/customization/ru/entities/underFDL.docbook
share/kde/apps/ksgmltools2/customization/ru/entities/underGPL.docbook
+share/kde/apps/ksgmltools2/customization/ru/entities/underLGPL.docbook
share/kde/apps/ksgmltools2/customization/ru/entities/underX11License.docbook
share/kde/apps/ksgmltools2/customization/ru/entities/update-doc.docbook
share/kde/apps/ksgmltools2/customization/ru/lang.entities
@@ -3351,37 +3268,32 @@ share/kde/apps/ksgmltools2/customization/xh/lang.entities
share/kde/apps/ksgmltools2/customization/xh/strings.entities
share/kde/apps/ksgmltools2/customization/xh/user.entities
share/kde/apps/ksgmltools2/customization/xsl/README
+share/kde/apps/ksgmltools2/customization/xsl/all-l10n.xml
share/kde/apps/ksgmltools2/customization/xsl/ca.xml
-share/kde/apps/ksgmltools2/customization/xsl/cs.xml
-share/kde/apps/ksgmltools2/customization/xsl/da.xml
share/kde/apps/ksgmltools2/customization/xsl/de.xml
share/kde/apps/ksgmltools2/customization/xsl/el.xml
share/kde/apps/ksgmltools2/customization/xsl/en.xml
share/kde/apps/ksgmltools2/customization/xsl/es.xml
share/kde/apps/ksgmltools2/customization/xsl/et.xml
-share/kde/apps/ksgmltools2/customization/xsl/fi.xml
share/kde/apps/ksgmltools2/customization/xsl/fr.xml
-share/kde/apps/ksgmltools2/customization/xsl/hu.xml
+share/kde/apps/ksgmltools2/customization/xsl/gl.xml
share/kde/apps/ksgmltools2/customization/xsl/it.xml
-share/kde/apps/ksgmltools2/customization/xsl/ja.xml
-share/kde/apps/ksgmltools2/customization/xsl/ko.xml
+share/kde/apps/ksgmltools2/customization/xsl/lt.xml
share/kde/apps/ksgmltools2/customization/xsl/nds.xml
share/kde/apps/ksgmltools2/customization/xsl/nl.xml
share/kde/apps/ksgmltools2/customization/xsl/nn.xml
-share/kde/apps/ksgmltools2/customization/xsl/no.xml
share/kde/apps/ksgmltools2/customization/xsl/pl.xml
share/kde/apps/ksgmltools2/customization/xsl/pt.xml
share/kde/apps/ksgmltools2/customization/xsl/pt_br.xml
-share/kde/apps/ksgmltools2/customization/xsl/ro.xml
share/kde/apps/ksgmltools2/customization/xsl/ru.xml
-share/kde/apps/ksgmltools2/customization/xsl/sk.xml
share/kde/apps/ksgmltools2/customization/xsl/sl.xml
share/kde/apps/ksgmltools2/customization/xsl/sr.xml
-share/kde/apps/ksgmltools2/customization/xsl/sr@ijekavian.xml
-share/kde/apps/ksgmltools2/customization/xsl/sr@ijekavianlatin.xml
-share/kde/apps/ksgmltools2/customization/xsl/sr@latin.xml
+share/kde/apps/ksgmltools2/customization/xsl/sr_ijekavian.xml
+share/kde/apps/ksgmltools2/customization/xsl/sr_ijekavianlatin.xml
+share/kde/apps/ksgmltools2/customization/xsl/sr_latin.xml
share/kde/apps/ksgmltools2/customization/xsl/sv.xml
-share/kde/apps/ksgmltools2/customization/xsl/zh_tw.xml
+share/kde/apps/ksgmltools2/customization/xsl/tr.xml
+share/kde/apps/ksgmltools2/customization/xsl/uk.xml
share/kde/apps/ksgmltools2/customization/xx/catalog.xml
share/kde/apps/ksgmltools2/customization/xx/contributor.entities
share/kde/apps/ksgmltools2/customization/xx/entities/fdl-notice.docbook
@@ -3435,608 +3347,10 @@ share/kde/apps/ksgmltools2/customization/zh-TW/entities/update-doc.docbook
share/kde/apps/ksgmltools2/customization/zh-TW/lang.entities
share/kde/apps/ksgmltools2/customization/zh-TW/strings.entities
share/kde/apps/ksgmltools2/customization/zh-TW/user.entities
-share/kde/apps/ksgmltools2/docbook/README.kde
-share/kde/apps/ksgmltools2/docbook/xsl/README
-share/kde/apps/ksgmltools2/docbook/xsl/VERSION
-share/kde/apps/ksgmltools2/docbook/xsl/WhatsNew
-share/kde/apps/ksgmltools2/docbook/xsl/common/af.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/ar.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/autoidx-ng.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/common/bg.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/bn.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/bs.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/ca.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/common.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/common/cs.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/da.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/de.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/el.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/en.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/eo.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/es.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/et.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/eu.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/fi.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/fr.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/gentext.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/common/gl.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/he.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/hr.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/hu.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/id.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/it.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/ja.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/ko.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/l10n.dtd
-share/kde/apps/ksgmltools2/docbook/xsl/common/l10n.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/l10n.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/common/la.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/labels.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/common/lt.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/nb.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/nds.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/nl.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/nn.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/olink.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/common/pi.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/common/pl.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/pt.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/pt_br.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/ro.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/ru.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/sk.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/sl.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/sr.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/sr_ijekavian.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/sr_ijekavianlatin.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/sr_latin.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/subtitles.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/common/sv.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/table.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/common/targetdatabase.dtd
-share/kde/apps/ksgmltools2/docbook/xsl/common/targets.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/common/th.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/titles.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/common/tr.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/uk.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/vi.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/xh.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/zh_cn.xml
-share/kde/apps/ksgmltools2/docbook/xsl/common/zh_tw.xml
-share/kde/apps/ksgmltools2/docbook/xsl/html/admon.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/autoidx-ng.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/autoidx.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/autotoc.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/biblio.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/block.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/callout.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/changebars.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/chunk-code.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/chunk-common.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/chunk.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/chunker.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/chunkfast.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/chunktoc.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/component.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/division.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/docbook.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/docbookng.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/ebnf.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/footnote.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/formal.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/glossary.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/graphics.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/html-rtf.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/html.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/htmltbl.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/index.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/info.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/inline.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/keywords.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/lists.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/maketoc.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/manifest.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/math.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/oldchunker.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/onechunk.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/param.ent
-share/kde/apps/ksgmltools2/docbook/xsl/html/param.xml
-share/kde/apps/ksgmltools2/docbook/xsl/html/param.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/param.xweb
-share/kde/apps/ksgmltools2/docbook/xsl/html/pi.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/profile-chunk-code.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/profile-chunk.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/profile-docbook.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/profile-onechunk.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/qandaset.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/refentry.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/sections.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/synop.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/table.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/task.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/titlepage.templates.xml
-share/kde/apps/ksgmltools2/docbook/xsl/html/titlepage.templates.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/titlepage.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/toc.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/verbatim.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/html/xref.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/images/blank.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/1.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/1.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/10.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/10.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/11.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/11.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/12.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/12.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/13.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/13.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/14.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/14.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/15.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/15.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/2.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/2.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/3.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/3.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/4.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/4.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/5.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/5.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/6.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/6.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/7.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/7.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/8.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/8.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/9.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/callouts/9.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/caution.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/caution.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/caution.tif
-share/kde/apps/ksgmltools2/docbook/xsl/images/draft.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/home.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/home.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/important.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/important.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/important.tif
-share/kde/apps/ksgmltools2/docbook/xsl/images/next.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/next.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/note.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/note.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/note.tif
-share/kde/apps/ksgmltools2/docbook/xsl/images/prev.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/prev.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/tip.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/tip.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/tip.tif
-share/kde/apps/ksgmltools2/docbook/xsl/images/toc-blank.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/toc-minus.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/toc-plus.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/up.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/up.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/warning.gif
-share/kde/apps/ksgmltools2/docbook/xsl/images/warning.png
-share/kde/apps/ksgmltools2/docbook/xsl/images/warning.tif
-share/kde/apps/ksgmltools2/docbook/xsl/lib/lib.xml
-share/kde/apps/ksgmltools2/docbook/xsl/lib/lib.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/lib/lib.xweb
-share/kde/apps/ksgmltools2/docbook/xsl/manpages/docbook.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/manpages/lists.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/manpages/sect23.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/manpages/synop.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/manpages/xref.xsl
-share/kde/apps/ksgmltools2/docbook/xsl/params/admon.graphics.extension.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/admon.graphics.path.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/admon.graphics.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/admon.style.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/admon.textlabel.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/admonition.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/admonition.title.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/alignment.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/annotate.toc.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/appendix.autolabel.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/arbortext.extensions.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/article.appendix.title.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/author.othername.in.middle.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/autotoc.label.separator.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/axf.extensions.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/base.dir.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/biblioentry.item.separator.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/bibliography.collection.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/bibliography.numbered.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/blockquote.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/body.font.family.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/body.font.master.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/body.font.size.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/body.margin.bottom.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/body.margin.top.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/bridgehead.in.toc.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/callout.defaultcolumn.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/callout.graphics.extension.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/callout.graphics.number.limit.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/callout.graphics.path.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/callout.graphics.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/callout.list.table.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/callout.unicode.font.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/callout.unicode.number.limit.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/callout.unicode.start.character.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/callout.unicode.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/callouts.extension.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/chapter.autolabel.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/chunk.first.sections.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/chunk.quietly.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/chunk.section.depth.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/chunk.sections.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/chunk.separate.lots.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/chunk.toc.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/chunk.tocs.and.lots.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/chunker.output.cdata-section-elements.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/chunker.output.doctype-public.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/chunker.output.doctype-system.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/chunker.output.encoding.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/chunker.output.indent.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/chunker.output.media-type.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/chunker.output.method.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/chunker.output.omit-xml-declaration.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/chunker.output.standalone.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/citerefentry.link.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/collect.xref.targets.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/column.count.back.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/column.count.body.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/column.count.front.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/column.count.index.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/column.count.lot.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/column.count.titlepage.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/column.gap.back.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/column.gap.body.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/column.gap.front.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/column.gap.index.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/column.gap.lot.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/column.gap.titlepage.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/compact.list.item.spacing.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/component.label.includes.part.label.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/component.title.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/css.decoration.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/current.docid.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/default.float.class.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/default.image.width.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/default.table.width.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/default.units.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/dingbat.font.family.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/double.sided.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/draft.mode.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/draft.watermark.image.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/ebnf.assignment.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/ebnf.statement.terminator.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/ebnf.table.bgcolor.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/ebnf.table.border.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/eclipse.autolabel.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/eclipse.plugin.id.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/eclipse.plugin.name.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/eclipse.plugin.provider.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/emphasis.propagates.style.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/entry.propagates.style.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/equation.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/example.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/figure.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/firstterm.only.link.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/footer.column.widths.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/footer.content.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/footer.rule.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/footers.on.blank.pages.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/footnote.font.size.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/footnote.number.format.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/footnote.number.symbols.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/footnote.sep.leader.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/fop.extensions.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/formal.object.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/formal.procedures.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/formal.title.placement.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/formal.title.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/funcsynopsis.decoration.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/funcsynopsis.style.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/funcsynopsis.tabular.threshold.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/function.parens.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/generate.id.attributes.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/generate.index.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/generate.legalnotice.link.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/generate.manifest.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/generate.meta.abstract.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/generate.section.toc.level.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/generate.toc.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/glossary.as.blocks.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/glossary.collection.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/glossentry.show.acronym.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/glosslist.as.blocks.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/glossterm.auto.link.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/glossterm.separation.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/glossterm.width.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/graphic.default.extension.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/graphicsize.extension.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/header.column.widths.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/header.content.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/header.rule.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/headers.on.blank.pages.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/html.base.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/html.cellpadding.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/html.cellspacing.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/html.cleanup.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/html.ext.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/html.extra.head.links.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/html.longdesc.link.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/html.longdesc.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/html.stylesheet.type.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/html.stylesheet.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.alias.file.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.autolabel.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.back.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.forward.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.hideshow.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.home.url.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.home.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.jump1.title.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.jump1.url.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.jump1.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.jump2.title.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.jump2.url.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.jump2.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.locate.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.next.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.options.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.prev.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.print.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.refresh.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.stop.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.button.zoom.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.chm.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.default.topic.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.display.progress.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.encoding.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.enhanced.decompilation.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.enumerate.images.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.force.map.and.alias.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.hhc.binary.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.hhc.folders.instead.books.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.hhc.section.depth.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.hhc.show.root.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.hhc.width.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.hhc.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.hhk.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.hhp.tail.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.hhp.window.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.hhp.windows.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.hhp.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.map.file.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.only.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.remember.window.position.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.show.advanced.search.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.show.favorities.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.show.menu.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.show.toolbar.text.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.title.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.use.hhk.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/htmlhelp.window.geometry.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/hyphenate.verbatim.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/hyphenate.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/ignore.image.scaling.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/img.src.path.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/index.on.role.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/index.on.type.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/index.prefer.titleabbrev.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/index.preferred.page.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/informal.object.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/informalequation.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/informalexample.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/informalfigure.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/informaltable.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/inherit.keywords.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/insert.olink.page.number.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/insert.olink.pdf.frag.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/insert.xref.page.number.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/l10n.gentext.default.language.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/l10n.gentext.language.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/l10n.gentext.use.xref.language.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/label.from.part.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/line-height.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/linenumbering.everyNth.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/linenumbering.extension.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/linenumbering.separator.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/linenumbering.width.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/link.mailto.url.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/list.block.spacing.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/list.item.spacing.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/make.graphic.viewport.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/make.index.markup.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/make.single.year.ranges.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/make.valid.html.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/make.year.ranges.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/manifest.in.base.dir.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/manifest.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/manual.toc.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/marker.section.level.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/menuchoice.menu.separator.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/menuchoice.separator.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/monospace.font.family.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/monospace.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/monospace.verbatim.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/navig.graphics.extension.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/navig.graphics.path.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/navig.graphics.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/navig.showtitles.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/nominal.image.depth.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/nominal.image.width.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/nominal.table.width.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/normal.para.spacing.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/olink.base.uri.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/olink.debug.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/olink.doctitle.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/olink.fragid.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/olink.lang.fallback.sequence.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/olink.outline.ext.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/olink.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/olink.pubid.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/olink.resolver.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/olink.sysid.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/page.height.portrait.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/page.height.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/page.margin.bottom.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/page.margin.inner.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/page.margin.outer.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/page.margin.top.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/page.orientation.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/page.width.portrait.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/page.width.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/paper.type.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/para.propagates.style.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/part.autolabel.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/passivetex.extensions.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/phrase.propagates.style.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/pixels.per.inch.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/points.per.em.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/preface.autolabel.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/prefer.internal.olink.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/preferred.mediaobject.role.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/procedure.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/process.empty.source.toc.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/process.source.toc.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/profile.arch.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/profile.attribute.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/profile.condition.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/profile.conformance.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/profile.lang.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/profile.os.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/profile.revision.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/profile.revisionflag.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/profile.role.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/profile.security.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/profile.separator.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/profile.userlevel.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/profile.value.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/profile.vendor.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/punct.honorific.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/qanda.defaultlabel.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/qanda.inherit.numeration.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/qanda.title.level1.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/qanda.title.level2.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/qanda.title.level3.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/qanda.title.level4.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/qanda.title.level5.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/qanda.title.level6.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/qanda.title.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/qandadiv.autolabel.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/refentry.generate.name.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/refentry.generate.title.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/refentry.pagebreak.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/refentry.separator.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/refentry.title.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/refentry.xref.manvolnum.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/region.after.extent.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/region.before.extent.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/root.filename.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/root.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/rootid.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/runinhead.default.title.end.punct.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/runinhead.title.end.punct.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/sans.font.family.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/saxon.callouts.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/saxon.character.representation.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/saxon.linenumbering.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/saxon.tablecolumns.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/section.autolabel.max.depth.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/section.autolabel.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/section.label.includes.component.label.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/section.level1.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/section.level2.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/section.level3.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/section.level4.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/section.level5.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/section.level6.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/section.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/section.title.level1.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/section.title.level2.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/section.title.level3.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/section.title.level4.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/section.title.level5.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/section.title.level6.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/section.title.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/segmentedlist.as.table.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/shade.verbatim.style.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/shade.verbatim.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/show.comments.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/show.revisionflag.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/sidebar.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/simplesect.in.toc.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/spacing.paras.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/subscript.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/superscript.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/suppress.footer.navigation.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/suppress.header.navigation.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/suppress.navigation.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/symbol.font.family.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/table.borders.with.css.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/table.cell.border.color.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/table.cell.border.style.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/table.cell.border.thickness.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/table.cell.padding.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/table.entry.padding.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/table.footnote.number.format.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/table.footnote.number.symbols.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/table.frame.border.color.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/table.frame.border.style.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/table.frame.border.thickness.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/table.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/table.table.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/tablecolumns.extension.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/target.database.document.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/targets.filename.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/template.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/tex.math.delims.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/tex.math.file.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/tex.math.in.alt.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/textdata.default.encoding.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/textinsert.extension.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/title.font.family.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/title.margin.left.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/toc.indent.width.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/toc.list.type.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/toc.margin.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/toc.max.depth.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/toc.section.depth.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/ulink.footnote.number.format.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/ulink.footnotes.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/ulink.hyphenate.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/ulink.show.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/ulink.target.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/use.embed.for.svg.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/use.extensions.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/use.id.as.filename.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/use.id.function.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/use.local.olink.style.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/use.role.as.xrefstyle.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/use.role.for.mediaobject.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/use.svg.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/variablelist.as.blocks.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/variablelist.as.table.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/variablelist.max.termlength.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/verbatim.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/wordml.template.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/xep.extensions.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/xep.index.item.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/xref.label-page.separator.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/xref.label-title.separator.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/xref.properties.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/xref.title-page.separator.xml
-share/kde/apps/ksgmltools2/docbook/xsl/params/xref.with.number.and.title.xml
share/kde/apps/kssl/ca-bundle.crt
-share/kde/apps/ktexteditor_exporter/ktexteditor_exporterui.rc
-share/kde/apps/ktexteditor_iconinserter/ktexteditor_iconinserterui.rc
-share/kde/apps/ktexteditor_insanehtml_le/insanehtml_le_ui.rc
-share/kde/apps/ktexteditor_insanehtml_le/xhtml.cfg
-share/kde/apps/ktexteditor_insertfile/ktexteditor_insertfileui.rc
-share/kde/apps/ktexteditor_kdatatool/ktexteditor_kdatatoolui.rc
share/kde/apps/plasma/services/dataengineservice.operations
share/kde/apps/plasma/services/plasmoidservice.operations
+share/kde/apps/plasma/services/storage.operations
share/kde/apps/proxyscout/proxyscout.notifyrc
share/kde/config/accept-languages.codes
share/kde/config/colors/40.colors
@@ -4044,8 +3358,6 @@ share/kde/config/colors/Oxygen.colors
share/kde/config/colors/Rainbow.colors
share/kde/config/colors/Royal.colors
share/kde/config/colors/Web.colors
-share/kde/config/katemoderc
-share/kde/config/katepartpluginsrc
share/kde/config/kdebug.areas
share/kde/config/kdebugrc
share/kde/config/khtmlrc
@@ -4064,7 +3376,7 @@ share/kde4/services/help.protocol
share/kde4/services/http.protocol
share/kde4/services/http_cache_cleaner.desktop
share/kde4/services/https.protocol
-share/kde4/services/katepart.desktop
+share/kde4/services/kcm_ssl.desktop
share/kde4/services/kded/kcookiejar.desktop
share/kde4/services/kded/kssld.desktop
share/kde4/services/kded/proxyscout.desktop
@@ -4073,22 +3385,15 @@ share/kde4/services/khtml.desktop
share/kde4/services/khtmladaptorpart.desktop
share/kde4/services/khtmlimage.desktop
share/kde4/services/kjavaappletviewer.desktop
-share/kde4/services/kmailservice.protocol
share/kde4/services/kmultipart.desktop
share/kde4/services/kspell_aspell.desktop
share/kde4/services/kspell_enchant.desktop
-share/kde4/services/ktexteditor_autobrace.desktop
-share/kde4/services/ktexteditor_autobrace_config.desktop
-share/kde4/services/ktexteditor_exporter.desktop
-share/kde4/services/ktexteditor_iconinserter.desktop
-share/kde4/services/ktexteditor_insanehtml_le.desktop
-share/kde4/services/ktexteditor_insertfile.desktop
-share/kde4/services/ktexteditor_kdatatool.desktop
share/kde4/services/metainfo.protocol
share/kde4/services/mms.protocol
share/kde4/services/mmst.protocol
share/kde4/services/mmsu.protocol
share/kde4/services/plasma-applet-extenderapplet.desktop
+share/kde4/services/plasma.protocol
share/kde4/services/pnm.protocol
share/kde4/services/qimageioplugins/bmp.desktop
share/kde4/services/qimageioplugins/dds.desktop
@@ -4110,18 +3415,17 @@ share/kde4/services/qimageioplugins/ppm.desktop
share/kde4/services/qimageioplugins/psd.desktop
share/kde4/services/qimageioplugins/ras.desktop
share/kde4/services/qimageioplugins/rgb.desktop
+share/kde4/services/qimageioplugins/svg+xml-compressed.desktop
+share/kde4/services/qimageioplugins/svg+xml.desktop
share/kde4/services/qimageioplugins/tga.desktop
share/kde4/services/qimageioplugins/tiff.desktop
share/kde4/services/qimageioplugins/xbm.desktop
share/kde4/services/qimageioplugins/xcf.desktop
share/kde4/services/qimageioplugins/xpm.desktop
share/kde4/services/qimageioplugins/xv.desktop
-share/kde4/services/rlogin.protocol
share/kde4/services/rtsp.protocol
share/kde4/services/rtspt.protocol
share/kde4/services/rtspu.protocol
-share/kde4/services/ssh.protocol
-share/kde4/services/telnet.protocol
share/kde4/services/webdav.protocol
share/kde4/services/webdavs.protocol
share/kde4/servicetypes/application.desktop
@@ -4135,6 +3439,7 @@ share/kde4/servicetypes/kconfigbackend.desktop
share/kde4/servicetypes/kdatatool.desktop
share/kde4/servicetypes/kdedmodule.desktop
share/kde4/servicetypes/kemoticonsTheme.desktop
+share/kde4/servicetypes/kfileitemactionplugin.desktop
share/kde4/servicetypes/kfileplugin.desktop
share/kde4/servicetypes/kfilewrite.desktop
share/kde4/servicetypes/kiofilemodule.desktop
@@ -4160,9 +3465,12 @@ share/kde4/servicetypes/plasma-dataengine.desktop
share/kde4/servicetypes/plasma-packagestructure.desktop
share/kde4/servicetypes/plasma-runner.desktop
share/kde4/servicetypes/plasma-scriptengine.desktop
+share/kde4/servicetypes/plasma-service.desktop
+share/kde4/servicetypes/plasma-toolbox.desktop
share/kde4/servicetypes/plasma-wallpaper.desktop
share/kde4/servicetypes/qimageio_plugin.desktop
share/kde4/servicetypes/renamedialogplugin.desktop
share/kde4/servicetypes/sonnetspeller.desktop
share/locale/all_languages
+share/locale/en_US/entry.desktop
share/mime/packages/kde.xml
diff --git a/x11/kdelibs4/buildlink3.mk b/x11/kdelibs4/buildlink3.mk
index d691af8de9b..87abf6a40f7 100644
--- a/x11/kdelibs4/buildlink3.mk
+++ b/x11/kdelibs4/buildlink3.mk
@@ -1,4 +1,4 @@
-# $NetBSD: buildlink3.mk,v 1.16 2012/03/03 00:11:52 wiz Exp $
+# $NetBSD: buildlink3.mk,v 1.17 2012/03/19 11:28:48 markd Exp $
BUILDLINK_TREE+= kdelibs
@@ -10,8 +10,8 @@ BUILDLINK_ABI_DEPENDS.kdelibs?= kdelibs4>=4.5.5nb12
BUILDLINK_PKGSRCDIR.kdelibs?= ../../x11/kdelibs4
.include "../../archivers/bzip2/buildlink3.mk"
-.include "../../devel/libdbusmenu-qt/buildlink3.mk"
.include "../../databases/shared-mime-info/buildlink3.mk"
+.include "../../devel/libdbusmenu-qt/buildlink3.mk"
.include "../../devel/pcre/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../graphics/jasper/buildlink3.mk"
diff --git a/x11/kdelibs4/distinfo b/x11/kdelibs4/distinfo
index c756e973a12..145a51a3288 100644
--- a/x11/kdelibs4/distinfo
+++ b/x11/kdelibs4/distinfo
@@ -1,26 +1,18 @@
-$NetBSD: distinfo,v 1.23 2012/01/23 08:14:02 joerg Exp $
+$NetBSD: distinfo,v 1.24 2012/03/19 11:28:48 markd Exp $
-SHA1 (kdelibs-4.5.5.tar.bz2) = 127a2b50fe31ff345e05660dd50f7c55ae78d854
-RMD160 (kdelibs-4.5.5.tar.bz2) = 7c33afa12379119fbf7d70e8895c3f2ada9a2eba
-Size (kdelibs-4.5.5.tar.bz2) = 13876521 bytes
-SHA1 (patch-aa) = 7146107f78bbc618cf80479195581f29fc6b5977
-SHA1 (patch-ab) = aec1140bef01199f067b079c30d95fea1814839d
-SHA1 (patch-ac) = 55027a8e6502a938da7a7930e079b3ce21ad2322
-SHA1 (patch-ad) = 2a0dfd3dda071654c89b8dda3db8885e2a55ba2b
-SHA1 (patch-ag) = af1e58512984726a4efaf315bb958a9a529638b8
-SHA1 (patch-ah) = b583dbe1b712984bbe002cc9143352729fba94ed
-SHA1 (patch-aj) = 8520c322d4579e9485253c8e8b130669b0f8b618
-SHA1 (patch-ak) = 03883c05a2a600737d98a889034a2fb9984a5d58
-SHA1 (patch-al) = a3c48e8552ca39496134696f3d415a7b6a4db7d8
-SHA1 (patch-am) = da04e0450885dc4bca38a4e9b91822746d936639
-SHA1 (patch-an) = b5fe924970772bd8a5b420f8cc638ab8bf892c53
-SHA1 (patch-cmake_modules_FindTaglib.cmake) = 97baf0e5c9f53a17582d89ee41cb4d99fbd15424
-SHA1 (patch-kdeui_colors_kcolordialog.cpp) = f105006a778c42a93452fc4bf5d561aa62595a5c
-SHA1 (patch-khtml_khtml_part.cpp) = f8f5977b03463b6de909881178abed3ba351364c
-SHA1 (patch-kio_kio_scheduler.cpp) = a32f9dadf021115a819d4ff94bf63e6ee109c965
-SHA1 (patch-kio_kio_scheduler.h) = b09d3fba61f68685037a6cfa62b58ab768de71c1
-SHA1 (patch-kio_kssl_ksslcertificatebox.cpp) = 1f187968a49e251fbdbbf2569e4703ac05b474be
-SHA1 (patch-kioslave_http_http.cpp) = abd6446120fab21cd30da3e9e1fdc00218802d89
-SHA1 (patch-kjs_JSImmediate.h) = 29949739140d766362d308ece28c96aef593ed73
-SHA1 (patch-kjs_lookup.h) = 7a66c3e79d8177cf46579e153fbafb0b1cae9551
-SHA1 (patch-kjs_wtf_RefPtr.h) = ecf999e97edebdb53edeeffeee6200305ddacc3e
+SHA1 (kdelibs-4.8.0.tar.bz2) = 5e4744405734e6c3ce572ef7d16054390692b38a
+RMD160 (kdelibs-4.8.0.tar.bz2) = b5fd03eec81a390ea74d4713d6459b685352d362
+Size (kdelibs-4.8.0.tar.bz2) = 13044553 bytes
+SHA1 (patch-aa) = c3044205a964797a7718b7a7bd03bb99dd3ca37d
+SHA1 (patch-ab) = 3f89ddfa9a6101a016128d82dbbd0e985e396cae
+SHA1 (patch-ac) = 200391c0cf0a89ef43f0cb57e39d56eee51da505
+SHA1 (patch-ad) = 08467b484f3df864d343d9151b13bedc4f001976
+SHA1 (patch-ag) = 67561007567ba10f20d8e8572dd0a33c8139b7cd
+SHA1 (patch-ah) = 368f4f641ce55257409137185357e796666ae42f
+SHA1 (patch-aj) = 501e34c8fdf242c3718ecb26577ac5940d37fae5
+SHA1 (patch-ak) = 73cc1bb149039d2fe3c05ee631426a8773f951c6
+SHA1 (patch-al) = 5efa7d504fe75bec53837bfa062a4b3f910fd71f
+SHA1 (patch-am) = b6c315d152d2c3d3c66ad85050549d0b39b263e5
+SHA1 (patch-cmake_modules_FindTaglib.cmake) = be38479966da542343dd962c57f7e9d1be3e9ff4
+SHA1 (patch-kdecore_localization_klocale_kde.cpp) = b8a513a0c51e65d7e604a88c1d0e3325be6ad688
+SHA1 (patch-kdecore_util_kshareddatacache_p.h) = 6d064fe75fbecd489b0343960333864c717c0805
diff --git a/x11/kdelibs4/files/kshareddatacache.cpp b/x11/kdelibs4/files/kshareddatacache.cpp
new file mode 100644
index 00000000000..1e325353ceb
--- /dev/null
+++ b/x11/kdelibs4/files/kshareddatacache.cpp
@@ -0,0 +1,1496 @@
+/*
+ * This file is part of the KDE project.
+ * Copyright © 2010 Michael Pyne <mpyne@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License version 2 as published by the Free Software Foundation.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "kshareddatacache.h"
+
+#include <kdebug.h>
+#include <kglobal.h>
+#include <kstandarddirs.h>
+#include <krandom.h>
+
+#include <QtCore/QDateTime>
+#include <QtCore/QSharedPointer>
+#include <QtCore/QByteArray>
+#include <QtCore/QFile>
+#include <QtCore/QAtomicInt>
+#include <QtCore/QList>
+#include <QtCore/QMutex>
+#include <QtCore/QMutexLocker>
+
+#include <pthread.h>
+#include <sys/types.h>
+#include <sys/mman.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <time.h>
+
+// Mac OS X, for all its POSIX compliance, does not support timeouts on its mutexes, which
+// is kind of a disaster for cross-process support. So, disable support for shared memory
+// and add a wrapper implementation.
+#if !defined(_POSIX_TIMEOUTS) || !defined(_POSIX_THREADS) || (_POSIX_TIMEOUTS < 200112L) || (_POSIX_THREADS < 200112L)
+
+#ifdef _POSIX_THREAD_PROCESS_SHARED
+#undef _POSIX_THREAD_PROCESS_SHARED
+#endif
+
+#ifdef __GNUC__
+#warning "No support for POSIX timeouts and POSIX threads -- shared memory will be ignored"
+#endif
+
+#endif
+
+// BSD/Mac OS X compat
+#if !defined(MAP_ANONYMOUS) && defined(MAP_ANON)
+#define MAP_ANONYMOUS MAP_ANON
+#endif
+
+/**
+ * This is the hash function used for our pixmap data to hopefully make the
+ * hashing used to place the pixmaps as efficient as possible.
+ *
+ * The algorithm is in the public domain, by Glenn Fowler, Phong Vo, and Landon
+ * Curt Noll, implemented by myself (mpyne).
+ */
+static quint32 fnvHash32(const QByteArray &buffer)
+{
+ static const quint32 FNVPrime = 16777619;
+ static const quint32 FNVOffsetBasis = 2166136261;
+
+ // uchar for correct arithmetic below
+ const uchar *base = reinterpret_cast<const uchar *>(buffer.constData());
+ quint32 result = FNVOffsetBasis;
+ int count = buffer.length();
+
+ while (count-- > 0) {
+ result *= FNVPrime;
+ result ^= *base;
+ base++;
+ }
+
+ return result;
+}
+
+// Alignment concerns become a big deal when we're dealing with shared memory,
+// since trying to access a structure sized at, say 8 bytes at an address that
+// is not evenly divisible by 8 is a crash-inducing error on some
+// architectures. The compiler would normally take care of this, but with
+// shared memory the compiler will not necessarily know the alignment expected,
+// so make sure we account for this ourselves. To do so we need a way to find
+// out the expected alignment. Enter ALIGNOF...
+#ifndef ALIGNOF
+#if defined(Q_CC_GNU) || defined(Q_CC_SUN)
+#define ALIGNOF(x) (__alignof__ (x)) // GCC provides what we want directly
+#else
+
+#include <stddef.h> // offsetof
+
+template<class T>
+struct __alignmentHack
+{
+ char firstEntry;
+ T obj;
+ static const size_t size = offsetof(__alignmentHack, obj);
+};
+#define ALIGNOF(x) (__alignmentHack<x>::size)
+#endif // Non gcc
+#endif // ALIGNOF undefined
+
+// Returns a pointer properly aligned to handle size alignment.
+// size should be a power of 2. start is assumed to be the lowest
+// permissible address, therefore the return value will be >= start.
+template<class T>
+T* alignTo(const void *start, uint size = ALIGNOF(T))
+{
+ quintptr mask = size - 1;
+
+ // Cast to int-type to handle bit-twiddling
+ quintptr basePointer = reinterpret_cast<quintptr>(start);
+
+ // If (and only if) we are already aligned, adding mask into basePointer
+ // will not increment any of the bits in ~mask and we get the right answer.
+ basePointer = (basePointer + mask) & ~mask;
+
+ return reinterpret_cast<T *>(basePointer);
+}
+
+/**
+ * Returns a pointer to a const object of type T, assumed to be @p offset
+ * *BYTES* greater than the base address. Note that in order to meet alignment
+ * requirements for T, it is possible that the returned pointer points greater
+ * than @p offset into @p base.
+ */
+template<class T>
+const T *offsetAs(const void *const base, qint32 offset)
+{
+ const char *ptr = reinterpret_cast<const char*>(base);
+ return alignTo<const T>(ptr + offset);
+}
+
+// Same as above, but for non-const objects
+template<class T>
+T *offsetAs(void *const base, qint32 offset)
+{
+ char *ptr = reinterpret_cast<char *>(base);
+ return alignTo<T>(ptr + offset);
+}
+
+/**
+ * @return the smallest integer greater than or equal to (@p a / @p b).
+ * @param a Numerator, should be ≥ 0.
+ * @param b Denominator, should be > 0.
+ */
+template<class T>
+T intCeil(T a, T b)
+{
+ return (a + b - 1) / b;
+}
+
+typedef qint32 pageID;
+
+// =========================================================================
+// Description of the cache:
+//
+// The shared memory cache is designed to be handled as two separate objects,
+// all contained in the same global memory segment. First off, there is the
+// basic header data, consisting of the global header followed by the
+// accounting data necessary to hold items (described in more detail
+// momentarily). Following the accounting data is the start of the "page table"
+// (essentially just as you'd see it in an Operating Systems text).
+//
+// The page table contains shared memory split into fixed-size pages, with a
+// configurable page size. In the event that the data is too large to fit into
+// a single logical page, it will need to occupy consecutive pages of memory.
+//
+// The accounting data that was referenced earlier is split into two:
+//
+// 1. index table, containing a fixed-size list of possible cache entries.
+// Each index entry is of type IndexTableEntry (below), and holds the various
+// accounting data and a pointer to the first page.
+//
+// 2. page table, which is used to speed up the process of searching for
+// free pages of memory. There is one entry for every page in the page table,
+// and it contains the index of the one entry in the index table actually
+// holding the page (or <0 if the page is free).
+//
+// The entire segment looks like so:
+// ╔════════╤═════════════╤════════════╦═══════╤═══════╤═══════╤═══════╤═══╗
+// ║ Header │ Index Table │ Page Table ║ Pages │ │ │ │...║
+// ╚════════╧═════════════╧════════════╩═══════╧═══════╧═══════╧═══════╧═══╝
+// =========================================================================
+
+// All elements of this struct must be "plain old data" (POD) types since it
+// will be in shared memory. In addition, no pointers! To point to something
+// you must use relative offsets since the pointer start addresses will be
+// different in each process.
+struct IndexTableEntry
+{
+ uint fileNameHash;
+ uint totalItemSize; // in bytes
+ mutable uint useCount;
+ time_t addTime;
+ mutable time_t lastUsedTime;
+ pageID firstPage;
+};
+
+// Page table entry
+struct PageTableEntry
+{
+ // int so we can use values <0 for unassigned pages.
+ qint32 index;
+};
+
+// Each individual page contains the cached data. The first page starts off with
+// the utf8-encoded key, a null '\0', and then the data follows immediately
+// from the next byte, possibly crossing consecutive page boundaries to hold
+// all of the data.
+// There is, however, no specific struct for a page, it is simply a location in
+// memory.
+
+// This is effectively the layout of the shared memory segment. The variables
+// contained within form the header, data contained afterwards is pointed to
+// by using special accessor functions.
+struct SharedMemory
+{
+ enum {
+ PIXMAP_CACHE_VERSION = 1,
+ MINIMUM_CACHE_SIZE = 4096
+ };
+
+ // Note to those who follow me. You should not, under any circumstances, ever
+ // re-arrange the following two fields, even if you change the version number
+ // for later revisions of this code.
+ QAtomicInt ready; ///< DO NOT INITIALIZE
+ quint8 version;
+
+ mutable pthread_mutex_t lockMutex;
+ uint cacheSize;
+ uint cacheAvail;
+ QAtomicInt evictionPolicy;
+
+ // pageSize and cacheSize determine the number of pages. The number of
+ // pages determine the page table size and (indirectly) the index table
+ // size.
+ QAtomicInt pageSize;
+
+ // This variable is added to reserve space for later cache timestamping
+ // support. The idea is this variable will be updated when the cache is
+ // written to, to allow clients to detect a changed cache quickly.
+ QAtomicInt cacheTimestamp;
+
+ /**
+ * Converts the given average item size into an appropriate page size.
+ */
+ static unsigned equivalentPageSize(unsigned itemSize)
+ {
+ if (itemSize == 0) {
+ return 4096; // Default average item size.
+ }
+
+ int log2OfSize = 0;
+ while ((itemSize >>= 1) != 0) {
+ log2OfSize++;
+ }
+
+ // Bound page size between 512 bytes and 256 KiB.
+ log2OfSize = qBound(9, log2OfSize, 18);
+
+ return (1 << log2OfSize);
+ }
+
+ // Returns pageSize in unsigned format.
+ unsigned cachePageSize() const
+ {
+ return static_cast<unsigned>(pageSize);
+ }
+
+ /**
+ * This is effectively the class ctor. But since we're in shared memory,
+ * there's a few rules:
+ *
+ * 1. To allow for some form of locking in the initial-setup case, we
+ * use an atomic int, which will be initialized to 0 by mmap(). Then to
+ * take the lock we atomically increment the 0 to 1. If we end up calling
+ * the QAtomicInt constructor we can mess that up, so we can't use a
+ * constructor for this class either.
+ * 2. Any member variable you add takes up space in shared memory as well,
+ * so make sure you need it.
+ */
+ bool performInitialSetup(bool processShared, uint _cacheSize, uint _pageSize)
+ {
+ if (_cacheSize < MINIMUM_CACHE_SIZE) {
+ kError(264) << "Internal error: Attempted to create a cache sized < "
+ << MINIMUM_CACHE_SIZE;
+ return false;
+ }
+
+ if (_pageSize == 0) {
+ kError(264) << "Internal error: Attempted to create a cache with 0-sized pages.";
+ return false;
+ }
+
+ if (processShared) {
+ // Perform initialization. We effectively hold a mini-lock right
+ // now as long as all clients cooperate...
+ pthread_mutexattr_t mutexAttr;
+
+ // Initialize attributes, enable process-shared primitives, and setup
+ // the mutex.
+ if (pthread_mutexattr_init(&mutexAttr) == 0) {
+ if (
+#ifdef _POSIX_THREAD_PROCESS_SHARED
+ pthread_mutexattr_setpshared(&mutexAttr, PTHREAD_PROCESS_SHARED) != 0 ||
+#endif
+ pthread_mutex_init(&lockMutex, &mutexAttr) != 0)
+ {
+ pthread_mutexattr_destroy(&mutexAttr);
+ return false; // No process sharing
+ }
+
+ pthread_mutexattr_destroy(&mutexAttr);
+ }
+ else {
+ return false; // No mutex attrs
+ }
+ }
+ else {
+ // Only thread-shared
+ if (pthread_mutex_init(&lockMutex, 0) != 0) {
+ return false;
+ }
+ }
+
+ // These must be updated to make some of our auxiliary functions
+ // work right since their values will be based on the cache size.
+ cacheSize = _cacheSize;
+ pageSize = _pageSize;
+ version = PIXMAP_CACHE_VERSION;
+ cacheTimestamp = static_cast<unsigned>(::time(0));
+
+ clearInternalTables();
+
+ // Unlock the mini-lock, and introduce a total memory barrier to make
+ // sure all changes have propagated even without a mutex.
+ ready.ref();
+
+ return true;
+ }
+
+ void clearInternalTables()
+ {
+ // Assumes we're already locked somehow.
+ cacheAvail = pageTableSize();
+
+ // Setup page tables to point nowhere
+ PageTableEntry *table = pageTable();
+ for (uint i = 0; i < pageTableSize(); ++i) {
+ table[i].index = -1;
+ }
+
+ // Setup index tables to be accurate.
+ IndexTableEntry *indices = indexTable();
+ for (uint i = 0; i < indexTableSize(); ++i) {
+ indices[i].firstPage = -1;
+ }
+ }
+
+ const IndexTableEntry *indexTable() const
+ {
+ // Index Table goes immediately after this struct, at the first byte
+ // where alignment constraints are met (accounted for by offsetAs).
+ return offsetAs<IndexTableEntry>(this, sizeof(*this));
+ }
+
+ const PageTableEntry *pageTable() const
+ {
+ const IndexTableEntry *base = indexTable();
+ base += indexTableSize();
+
+ // Let's call wherever we end up the start of the page table...
+ return alignTo<PageTableEntry>(base);
+ }
+
+ const void *cachePages() const
+ {
+ const PageTableEntry *tableStart = pageTable();
+ tableStart += pageTableSize();
+
+ // Let's call wherever we end up the start of the data...
+ return alignTo<void>(tableStart, cachePageSize());
+ }
+
+ const void *page(pageID at) const
+ {
+ if (static_cast<int>(at) >= static_cast<int>(pageTableSize())) {
+ return 0;
+ }
+
+ // We must manually calculate this one since pageSize varies.
+ const char *pageStart = reinterpret_cast<const char *>(cachePages());
+ pageStart += (at * cachePageSize());
+
+ return reinterpret_cast<const void *>(pageStart);
+ }
+
+ // The following are non-const versions of some of the methods defined
+ // above. They use const_cast<> because I feel that is better than
+ // duplicating the code. I suppose template member functions (?)
+ // may work, may investigate later.
+ IndexTableEntry *indexTable()
+ {
+ const SharedMemory *that = const_cast<const SharedMemory*>(this);
+ return const_cast<IndexTableEntry *>(that->indexTable());
+ }
+
+ PageTableEntry *pageTable()
+ {
+ const SharedMemory *that = const_cast<const SharedMemory*>(this);
+ return const_cast<PageTableEntry *>(that->pageTable());
+ }
+
+ void *cachePages()
+ {
+ const SharedMemory *that = const_cast<const SharedMemory*>(this);
+ return const_cast<void *>(that->cachePages());
+ }
+
+ void *page(pageID at)
+ {
+ const SharedMemory *that = const_cast<const SharedMemory*>(this);
+ return const_cast<void *>(that->page(at));
+ }
+
+ uint pageTableSize() const
+ {
+ return cacheSize / cachePageSize();
+ }
+
+ uint indexTableSize() const
+ {
+ // Assume 2 pages on average are needed -> the number of entries
+ // would be half of the number of pages.
+ return pageTableSize() / 2;
+ }
+
+ /**
+ * @return the index of the first page, for the set of contiguous
+ * pages that can hold @p pagesNeeded PAGES.
+ */
+ pageID findEmptyPages(uint pagesNeeded) const
+ {
+ // Loop through the page table, find the first empty page, and just
+ // makes sure that there are enough free pages.
+ const PageTableEntry *table = pageTable();
+ uint contiguousPagesFound = 0;
+ pageID base = 0;
+ for (pageID i = 0; i < static_cast<int>(pageTableSize() - pagesNeeded + 1); ++i) {
+ if (table[i].index < 0) {
+ if (contiguousPagesFound == 0) {
+ base = i;
+ }
+ contiguousPagesFound++;
+ }
+ else {
+ contiguousPagesFound = 0;
+ }
+
+ if (contiguousPagesFound == pagesNeeded) {
+ return base;
+ }
+ }
+
+ return pageTableSize();
+ }
+
+ // left < right?
+ static bool lruCompare(const IndexTableEntry &l, const IndexTableEntry &r)
+ {
+ // Ensure invalid entries migrate to the end
+ if (l.firstPage == -1 && r.firstPage >= 0) {
+ return false;
+ }
+ if (l.firstPage >= 0 && r.firstPage == -1) {
+ return true;
+ }
+
+ // Most recently used will have the highest absolute time =>
+ // least recently used (lowest) should go first => use left < right
+ return l.lastUsedTime < r.lastUsedTime;
+ }
+
+ // left < right?
+ static bool seldomUsedCompare(const IndexTableEntry &l, const IndexTableEntry &r)
+ {
+ // Ensure invalid entries migrate to the end
+ if (l.firstPage == -1 && r.firstPage >= 0) {
+ return false;
+ }
+ if (l.firstPage >= 0 && r.firstPage == -1) {
+ return true;
+ }
+
+ // Put lowest use count at start by using left < right
+ return l.useCount < r.useCount;
+ }
+
+ // left < right?
+ static bool ageCompare(const IndexTableEntry &l, const IndexTableEntry &r)
+ {
+ // Ensure invalid entries migrate to the end
+ if (l.firstPage == -1 && r.firstPage >= 0) {
+ return false;
+ }
+ if (l.firstPage >= 0 && r.firstPage == -1) {
+ return true;
+ }
+
+ // Oldest entries die first -- they have the lowest absolute add time,
+ // so just like the others use left < right
+ return l.addTime < r.addTime;
+ }
+
+ void defragment()
+ {
+ if (cacheAvail * cachePageSize() == cacheSize) {
+ return; // That was easy
+ }
+
+ kDebug(264) << "Defragmenting the shared cache";
+
+ // Just do a linear scan, and anytime there is free space, swap it
+ // with the pages to its right. In order to meet the precondition
+ // we need to skip any used pages first.
+
+ pageID currentPage = 0;
+ pageID idLimit = static_cast<pageID>(pageTableSize());
+ PageTableEntry *pages = pageTable();
+
+ // Skip used pages
+ while (currentPage < idLimit && pages[currentPage].index >= 0) {
+ ++currentPage;
+ }
+
+ pageID freeSpot = currentPage;
+
+ // Main loop, starting from a free page, skip to the used pages and
+ // move them back.
+ while (currentPage < idLimit) {
+ // Find the next used page
+ while (currentPage < idLimit && pages[currentPage].index < 0) {
+ ++currentPage;
+ }
+
+ if (currentPage >= idLimit) {
+ break;
+ }
+
+ // Found an entry, move it.
+ qint32 affectedIndex = pages[currentPage].index;
+ Q_ASSERT(affectedIndex >= 0);
+ Q_ASSERT(indexTable()[affectedIndex].firstPage == currentPage);
+
+ indexTable()[affectedIndex].firstPage = freeSpot;
+
+ // Moving one page at a time guarantees we can use memcpy safely
+ // (in other words, the source and destination will not overlap).
+ while (currentPage < idLimit && pages[currentPage].index >= 0) {
+ ::memcpy(page(freeSpot), page(currentPage), cachePageSize());
+ pages[freeSpot].index = affectedIndex;
+ pages[currentPage].index = -1;
+ ++currentPage;
+ ++freeSpot;
+
+ // If we've just moved the very last page and it happened to
+ // be at the very end of the cache then we're done.
+ if (currentPage >= idLimit) {
+ break;
+ }
+
+ // We're moving consecutive used pages whether they belong to
+ // our affected entry or not, so detect if we've started moving
+ // the data for a different entry and adjust if necessary.
+ if (affectedIndex != pages[currentPage].index) {
+ indexTable()[pages[currentPage].index].firstPage = freeSpot;
+ }
+ affectedIndex = pages[currentPage].index;
+ }
+
+ // At this point currentPage is on a page that is unused, and the
+ // cycle repeats. However, currentPage is not the first unused
+ // page, freeSpot is, so leave it alone.
+ }
+ }
+
+ qint32 findNamedEntry(const QByteArray &key) const
+ {
+ uint keyHash = fnvHash32(key);
+ uint position = keyHash % indexTableSize();
+ int probeNumber = 1; // See insert() for description
+
+ while (indexTable()[position].fileNameHash != keyHash &&
+ indexTable()[position].useCount > 0 &&
+ probeNumber < 6)
+ {
+ position = (keyHash + (probeNumber + probeNumber * probeNumber) / 2)
+ % indexTableSize();
+ probeNumber++;
+ }
+
+ if (indexTable()[position].fileNameHash == keyHash) {
+ pageID firstPage = indexTable()[position].firstPage;
+ if (firstPage < 0) {
+ return -1;
+ }
+ const void *resultPage = page(firstPage);
+ const char *utf8FileName = reinterpret_cast<const char *>(resultPage);
+
+ if (qstrcmp(utf8FileName, key.constData()) == 0) {
+ return position;
+ }
+ }
+
+ return -1; // Not found, or a different one found.
+ }
+
+ // Function to use with QSharedPointer in removeUsedPages below...
+ static void deleteTable(IndexTableEntry *table) {
+ delete [] table;
+ }
+
+ uint removeUsedPages(uint numberNeeded)
+ {
+ if (numberNeeded > pageTableSize()) {
+ kError(264) << "Internal error: Requested more space than exists in the cache.";
+ kError(264) << numberNeeded << "requested, " << pageTableSize() << "is the total possible.";
+ return pageTableSize();
+ }
+
+ // To avoid calling findEmptyPages() all the time we will figure out
+ // the minimum number of pages required to fulfill the request if the
+ // page table were perfectly defragmented, and remove at least that
+ // amount first. If the cache free space is large enough we will
+ // defragment first instead since it's likely we're highly fragmented.
+ uint freedPagesRequired = 0;
+ if (numberNeeded > cacheAvail) {
+ freedPagesRequired = numberNeeded - cacheAvail;
+ }
+
+ kDebug(264) << "Removing old entries to free up" << numberNeeded << "pages,"
+ << cacheAvail << "are already theoretically available.";
+
+ if (cacheAvail > 3 * numberNeeded) {
+ defragment();
+ uint result = findEmptyPages(numberNeeded);
+
+ if (result < pageTableSize()) {
+ return result;
+ }
+ else {
+ kError(264) << "Just defragmented a locked cache, but still there"
+ << "isn't enough room for the current request.";
+ }
+ }
+
+ // At this point we know we'll have to free some space up, so sort our
+ // list of entries by whatever the current criteria are and start
+ // killing expired entries.
+ QSharedPointer<IndexTableEntry> tablePtr(new IndexTableEntry[indexTableSize()], deleteTable);
+
+ // We use tablePtr to ensure the data is destroyed, but do the access
+ // via a helper pointer to allow for array ops.
+ IndexTableEntry *table = tablePtr.data();
+
+ ::memcpy(table, indexTable(), sizeof(IndexTableEntry) * indexTableSize());
+
+ // Our entry ID is simply its index into the
+ // index table, which qSort will rearrange all willy-nilly, so first
+ // we'll save the *real* entry ID into firstPage (which is useless in
+ // our copy of the index table. On the other hand if the entry is not
+ // used then we note that with -1.
+ for (uint i = 0; i < indexTableSize(); ++i) {
+ table[i].firstPage = table[i].useCount > 0 ? static_cast<pageID>(i)
+ : -1;
+ }
+
+ // Declare the comparison function that we'll use to pass to qSort,
+ // based on our cache eviction policy.
+ bool (*compareFunction)(const IndexTableEntry &, const IndexTableEntry &);
+ switch((int) evictionPolicy) {
+ case (int) KSharedDataCache::EvictLeastOftenUsed:
+ case (int) KSharedDataCache::NoEvictionPreference:
+ default:
+ compareFunction = seldomUsedCompare;
+ break;
+
+ case (int) KSharedDataCache::EvictLeastRecentlyUsed:
+ compareFunction = lruCompare;
+ break;
+
+ case (int) KSharedDataCache::EvictOldest:
+ compareFunction = ageCompare;
+ break;
+ }
+
+ qSort(table, table + indexTableSize(), compareFunction);
+
+ // Least recently used entries will be in the front.
+ // Start killing until we have room.
+
+ // Note on removeEntry: It expects an index into the index table,
+ // but our sorted list is all jumbled. But we stored the real index
+ // in the firstPage member.
+ // Remove entries until we've removed at least the required number
+ // of pages.
+ uint i = 0;
+ while (i < indexTableSize() && numberNeeded > cacheAvail) {
+ int curIndex = table[i++].firstPage;
+
+ // Removed everything, still no luck. At *this* point,
+ // pagesRemoved < numberNeeded or in other words we can't fulfill
+ // the request even if we defragment. This is really a logic error.
+ if (curIndex < 0) {
+ kError(264) << "Unable to remove enough used pages to allocate"
+ << numberNeeded << "pages. In theory the cache is empty, weird.";
+ return pageTableSize();
+ }
+
+ kDebug(264) << "Removing entry of" << indexTable()[curIndex].totalItemSize
+ << "size";
+ removeEntry(curIndex);
+ }
+
+ // At this point let's see if we have freed up enough data by
+ // defragmenting first and seeing if we can find that free space.
+ defragment();
+
+ pageID result = pageTableSize();
+ while (i < indexTableSize() &&
+ (result = findEmptyPages(numberNeeded)) >= static_cast<int>(pageTableSize()))
+ {
+ int curIndex = table[i++].firstPage;
+
+ if (curIndex < 0) {
+ // One last shot.
+ defragment();
+ return findEmptyPages(numberNeeded);
+ }
+
+ removeEntry(curIndex);
+ }
+
+ // Whew.
+ return result;
+ }
+
+ // Returns the total size required for a given cache size.
+ static uint totalSize(uint cacheSize, uint effectivePageSize)
+ {
+ uint numberPages = intCeil(cacheSize, effectivePageSize);
+ uint indexTableSize = numberPages / 2;
+
+ // Knowing the number of pages, we can determine what addresses we'd be
+ // using (properly aligned), and from there determine how much memory
+ // we'd use.
+ IndexTableEntry *indexTableStart =
+ offsetAs<IndexTableEntry>(static_cast<void*>(0), sizeof (SharedMemory));
+
+ indexTableStart += indexTableSize;
+
+ PageTableEntry *pageTableStart = reinterpret_cast<PageTableEntry *>(indexTableStart);
+ pageTableStart = alignTo<PageTableEntry>(pageTableStart);
+ pageTableStart += numberPages;
+
+ // The weird part, we must manually adjust the pointer based on the page size.
+ char *cacheStart = reinterpret_cast<char *>(pageTableStart);
+ cacheStart += (numberPages * effectivePageSize);
+
+ // ALIGNOF gives pointer alignment
+ cacheStart = alignTo<char>(cacheStart, ALIGNOF(void*));
+
+ // We've traversed the header, index, page table, and cache.
+ // Wherever we're at now is the size of the enchilada.
+ return static_cast<uint>(reinterpret_cast<quintptr>(cacheStart));
+ }
+
+ uint fileNameHash(const QByteArray &utf8FileName) const
+ {
+ return fnvHash32(utf8FileName) % indexTableSize();
+ }
+
+ bool lock() const
+ {
+#ifdef _POSIX_THREAD_PROCESS_SHARED
+ struct timespec timeout;
+
+ // Long timeout, but if we fail to meet this timeout it's probably a cache
+ // corruption (and if we take 8 seconds then it should be much much quicker
+ // the next time anyways since we'd be paged back in from disk)
+ timeout.tv_sec = 10 + ::time(NULL); // Absolute time, so 10 seconds from now
+ timeout.tv_nsec = 0;
+
+ return pthread_mutex_timedlock(&lockMutex, &timeout) >= 0;
+#else
+ // Some POSIX platforms don't have full support for pthreads. On these typically
+ // there will be no timedlock, so just don't bother and accept hangs on weird
+ // platforms.
+ return pthread_mutex_lock(&lockMutex) == 0;
+#endif
+ }
+
+ void unlock() const
+ {
+ pthread_mutex_unlock(&lockMutex);
+ }
+
+ void clear()
+ {
+ lock();
+ clearInternalTables();
+ unlock();
+ }
+
+ void removeEntry(uint index);
+};
+
+// The per-instance private data, such as map size, whether
+// attached or not, pointer to shared memory, etc.
+class KSharedDataCache::Private
+{
+ public:
+ Private(const QString &name,
+ unsigned defaultCacheSize,
+ unsigned expectedItemSize
+ )
+ : shm(0)
+ , m_cacheName(name)
+ , m_attached(false)
+ , m_mapSize(0)
+ , m_defaultCacheSize(defaultCacheSize)
+ , m_expectedItemSize(expectedItemSize)
+ {
+ mapSharedMemory();
+ }
+
+ // This function does a lot of the important work, attempting to connect to shared
+ // memory, a private anonymous mapping if that fails, and failing that, nothing (but
+ // the cache remains "valid", we just don't actually do anything).
+ void mapSharedMemory()
+ {
+ // 0-sized caches are fairly useless.
+ unsigned cacheSize = qMax(m_defaultCacheSize, uint(SharedMemory::MINIMUM_CACHE_SIZE));
+ unsigned pageSize = SharedMemory::equivalentPageSize(m_expectedItemSize);
+
+ // Ensure that the cache is sized such that there is a minimum number of
+ // pages available. (i.e. a cache consisting of only 1 page is fairly
+ // useless and probably crash-prone).
+ cacheSize = qMax(pageSize * 256, cacheSize);
+
+ // The m_cacheName is used to find the file to store the cache in.
+ QString cacheName = KGlobal::dirs()->locateLocal("cache", m_cacheName + QLatin1String(".kcache"));
+ QFile file(cacheName);
+
+ kDebug(264) << "Opening cache" << cacheName << "page size is" << pageSize;
+
+ // The basic idea is to open the file that we want to map into shared
+ // memory, and then actually establish the mapping. Once we have mapped the
+ // file into shared memory we can close the file handle, the mapping will
+ // still be maintained (unless the file is resized to be shorter than
+ // expected, which we don't handle yet :-( )
+
+ // size accounts for the overhead over the desired cacheSize
+ uint size = SharedMemory::totalSize(cacheSize, pageSize);
+ void *mapAddress = MAP_FAILED;
+
+ if (size < cacheSize) {
+ kError(264) << "Asked for a cache size less than requested size somehow -- Logic Error :(";
+ return;
+ }
+
+ bool systemSupportsProcessSharing = false;
+
+// Compile time check ensures the required constants from the .h are available to be
+// queried at all.
+#ifdef _POSIX_THREAD_PROCESS_SHARED
+ systemSupportsProcessSharing = ::sysconf(_SC_THREAD_PROCESS_SHARED) > 0;
+#endif
+
+ // We establish the shared memory mapping here, only if we will have appropriate
+ // mutex support (systemSupportsProcessSharing), then we:
+ // Open the file and resize to some sane value if the file is too small.
+ if (systemSupportsProcessSharing &&
+ file.open(QIODevice::ReadWrite) &&
+ (file.size() >= size || file.resize(size)))
+ {
+ // Use mmap directly instead of QFile::map since the QFile (and its
+ // shared mapping) will disappear unless we hang onto the QFile for no
+ // reason (see the note below, we don't care about the file per se...)
+ mapAddress = ::mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, file.handle(), 0);
+
+ // So... it is possible that someone else has mapped this cache already
+ // with a larger size. If that's the case we need to at least match
+ // the size to be able to access every entry, so fixup the mapping.
+ if (mapAddress != MAP_FAILED) {
+ SharedMemory *mapped = reinterpret_cast<SharedMemory *>(mapAddress);
+
+ // First make sure that the version of the cache on disk is
+ // valid. We also need to check that version != 0 to
+ // disambiguate against an uninitialized cache.
+ if (mapped->version != SharedMemory::PIXMAP_CACHE_VERSION &&
+ mapped->version > 0)
+ {
+ kWarning(264) << "Deleting wrong version of cache" << cacheName;
+
+ // CAUTION: Potentially recursive since the recovery
+ // involves calling this function again.
+ m_attached = true;
+ m_mapSize = size;
+ shm = mapped;
+ recoverCorruptedCache();
+ return;
+ }
+ else if (mapped->cacheSize > cacheSize) {
+ // This order is very important. We must save the cache size
+ // before we remove the mapping, but unmap before overwriting
+ // the previous mapping size...
+ cacheSize = mapped->cacheSize;
+ unsigned actualPageSize = mapped->cachePageSize();
+ ::munmap(mapAddress, size);
+ size = SharedMemory::totalSize(cacheSize, actualPageSize);
+ mapAddress = ::mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, file.handle(), 0);
+ }
+ }
+ }
+
+ // We could be here without the mapping established if:
+ // 1) Process-shared synchronization is not supported, either at compile or run time,
+ // 2) Unable to open the required file.
+ // 3) Unable to resize the file to be large enough.
+ // 4) Establishing the mapping failed.
+ // 5) The mapping succeeded, but the size was wrong and we were unable to map when
+ // we tried again.
+ // 6) The incorrect version of the cache was detected.
+ // In any of these cases, attempt to fallback to the
+ // better-supported anonymous private page style of mmap. This memory won't
+ // be shared, but our code will still work the same.
+ // NOTE: We never use the on-disk representation independently of the
+ // shared memory. If we don't get shared memory the disk info is ignored,
+ // if we do get shared memory we never look at disk again.
+ bool usingSharedMapping = true;
+ if (mapAddress == MAP_FAILED) {
+ kWarning(264) << "Failed to establish shared memory mapping, will fallback"
+ << "to private memory -- memory usage will increase";
+
+ mapAddress = ::mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+ usingSharedMapping = false;
+ }
+
+ // Well now we're really hosed. We can still work, but we can't even cache
+ // data.
+ if (mapAddress == MAP_FAILED) {
+ kError(264) << "Unable to allocate shared memory segment for shared data cache"
+ << cacheName << "of size" << cacheSize;
+ return;
+ }
+
+ kDebug(264) << "Attached to cache, determining if it must be initialized";
+
+ m_mapSize = size;
+
+ // We never actually construct shm, but we assign it the same address as the
+ // shared memory we just mapped, so effectively shm is now a SharedMemory that
+ // happens to be located at mapAddress.
+ shm = reinterpret_cast<SharedMemory *>(mapAddress);
+
+ // If we were first to create this memory map, all data will be 0.
+ // Therefore if ready == 0 we're not initialized. A fully initialized
+ // header will have ready == 2. Why?
+ // Because 0 means "safe to initialize"
+ // 1 means "in progress of initing"
+ // 2 means "ready"
+ uint usecSleepTime = 8; // Start by sleeping for 8 microseconds
+ while (shm->ready != 2) {
+ if (usecSleepTime >= (1 << 21)) {
+ // Didn't acquire within ~8 seconds? Assume an issue exists
+ kError(264) << "Unable to acquire shared lock, is the cache corrupt?";
+
+ ::munmap(mapAddress, size);
+ file.remove(); // Unlink the cache in case it's corrupt.
+ return; // Fallback to QCache (later)
+ }
+
+ if (shm->ready.testAndSetAcquire(0, 1)) {
+ if (!shm->performInitialSetup(usingSharedMapping, cacheSize, pageSize)) {
+ kError(264) << "Unable to perform initial setup, this system probably "
+ "does not really support process-shared pthreads, even "
+ "though it claims otherwise.";
+ ::munmap(mapAddress, size);
+ file.remove();
+ return;
+ }
+ }
+ else {
+ usleep(usecSleepTime); // spin
+
+ // Exponential fallback as in Ethernet and similar collision resolution methods
+ usecSleepTime *= 2;
+ }
+ }
+
+ // We are "attached" if we have a valid memory mapping, whether it is
+ // shared or private.
+ kDebug(264) << "Cache fully initialized -- attached to memory mapping";
+ kDebug(264) << shm->cacheAvail * shm->cachePageSize() << "bytes available out of"
+ << shm->cacheSize;
+ m_attached = true;
+ }
+
+ // Called whenever the cache is apparently corrupt (for instance, a timeout trying to
+ // lock the cache). In this situation it is safer just to destroy it all and try again.
+ void recoverCorruptedCache()
+ {
+ KSharedDataCache::deleteCache(m_cacheName);
+ if (m_attached) {
+ ::munmap(shm, m_mapSize);
+ m_attached = false;
+ shm = 0;
+ m_mapSize = 0;
+ }
+
+ // Do this even if we weren't previously cached -- it might work now.
+ mapSharedMemory();
+ }
+
+ class CacheLocker
+ {
+ mutable Private * d;
+
+ bool cautiousLock()
+ {
+ int lockCount = 0;
+
+ // Locking can fail due to a timeout. If it happens too often even though
+ // we're taking corrective action assume there's some disastrous problem
+ // and give up.
+ while (!d->shm->lock()) {
+ d->recoverCorruptedCache();
+
+ if (!d->m_attached) {
+ kWarning(264) << "Lost the connection to shared memory for cache"
+ << d->m_cacheName;
+ return false;
+ }
+
+ if (lockCount++ > 4) {
+ kError(264) << "There is a very serious problem with the KDE data cache"
+ << d->m_cacheName << "giving up trying to access cache.";
+ ::munmap(d->shm, d->m_mapSize);
+ d->shm = 0;
+ d->m_attached = false;
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ public:
+ CacheLocker(const Private *_d) : d(const_cast<Private *>(_d))
+ {
+ if (d->m_attached) {
+ // A separate mutex for the shm lock? What gives?
+ // The reason is that we have to check to see if the cache
+ // was made bigger by a different process. If so, we need to
+ // re-map the cache to accomodate that. In that event, we will
+ // need to un-map the cache first.
+ //
+ // Now imagine what happens if two threads in this same process
+ // tried to do this concurrently. Since we wouldn't be attached
+ // to shm we couldn't use d->shm->lock to be safe during that
+ // critical section (in between unlock and the subsequent
+ // lock), so one thread could set shm = 0 after unmapping and
+ // cause the other thread to crash. So we need a separate
+ // single-process/multiple-thread lock to be super-safe.
+ QMutexLocker d_locker(&d->m_threadLock);
+
+ if (!cautiousLock()) {
+ return;
+ }
+
+ uint testSize = SharedMemory::totalSize(d->shm->cacheSize, d->shm->cachePageSize());
+
+ // A while loop? Indeed, think what happens if this happens
+ // twice -- hard to debug race conditions.
+ while (testSize > d->m_mapSize) {
+ kDebug(264) << "Someone enlarged the cache on us,"
+ << "attempting to match new configuration.";
+
+ // Linux supports mremap, but it's not portable. So,
+ // drop the map and (try to) re-establish.
+ d->shm->unlock();
+
+ ::munmap(d->shm, d->m_mapSize);
+ d->m_attached = false;
+ d->m_mapSize = 0;
+ d->shm = 0;
+
+ QFile f(d->m_cacheName);
+ if (!f.open(QFile::ReadWrite)) {
+ kError(264) << "Unable to re-open cache, unfortunately"
+ << "the connection had to be dropped for"
+ << "crash safety -- things will be much"
+ << "slower now.";
+ return;
+ }
+
+ void *newMap = ::mmap(0, testSize, PROT_READ | PROT_WRITE,
+ MAP_SHARED, f.handle(), 0);
+ if (newMap == MAP_FAILED) {
+ kError(264) << "Unopen to re-map the cache into memory"
+ << "things will be much slower now";
+ return;
+ }
+
+ d->shm = reinterpret_cast<SharedMemory *>(newMap);
+ d->m_attached = true;
+ d->m_mapSize = testSize;
+
+ if (!cautiousLock()) {
+ return;
+ }
+
+ testSize = SharedMemory::totalSize(d->shm->cacheSize, d->shm->cachePageSize());
+ }
+ }
+ }
+
+ ~CacheLocker()
+ {
+ if (d->m_attached) {
+ d->shm->unlock();
+ }
+ }
+
+ bool failed() const
+ {
+ return d->shm == 0;
+ }
+ };
+
+ SharedMemory *shm;
+ QString m_cacheName;
+ QMutex m_threadLock;
+ bool m_attached;
+ uint m_mapSize;
+ uint m_defaultCacheSize;
+ uint m_expectedItemSize;
+};
+
+// Must be called while the lock is already held!
+void SharedMemory::removeEntry(uint index)
+{
+ Q_ASSERT(index < indexTableSize());
+ Q_ASSERT(cacheAvail <= pageTableSize());
+
+ PageTableEntry *pageTableEntries = pageTable();
+ IndexTableEntry *entriesIndex = indexTable();
+
+ // Update page table first
+ pageID firstPage = entriesIndex[index].firstPage;
+ if (firstPage < 0 || firstPage >= pageTableSize()) {
+ kError(264) << "Removing" << index << "which is already marked as empty!";
+ return;
+ }
+
+ if (index != static_cast<uint>(pageTableEntries[firstPage].index)) {
+ kError(264) << "Removing" << index << "will not work as it is assigned"
+ << "to page" << firstPage << "which is itself assigned to"
+ << "entry" << pageTableEntries[firstPage].index << "instead!";
+ return;
+ }
+
+ uint entriesToRemove = intCeil(entriesIndex[index].totalItemSize, cachePageSize());
+ uint savedCacheSize = cacheAvail;
+ for (uint i = firstPage; i < pageTableSize() &&
+ (uint) pageTableEntries[i].index == index; ++i)
+ {
+ pageTableEntries[i].index = -1;
+ cacheAvail++;
+ }
+
+ if ((cacheAvail - savedCacheSize) != entriesToRemove) {
+ kError(264) << "We somehow did not remove" << entriesToRemove
+ << "when removing entry" << index << ", instead we removed"
+ << (cacheAvail - savedCacheSize);
+ }
+
+ // For debugging
+#ifdef NDEBUG
+ QByteArray str((const char *)page(firstPage));
+ str.prepend(" REMOVED: ");
+ str.prepend(QByteArray::number(index));
+ str.prepend("ENTRY ");
+
+ ::memcpy(page(firstPage), str.constData(), str.size() + 1);
+#endif
+
+ // Update the index
+ entriesIndex[index].fileNameHash = 0;
+ entriesIndex[index].totalItemSize = 0;
+ entriesIndex[index].useCount = 0;
+ entriesIndex[index].lastUsedTime = 0;
+ entriesIndex[index].addTime = 0;
+ entriesIndex[index].firstPage = -1;
+}
+
+KSharedDataCache::KSharedDataCache(const QString &cacheName,
+ unsigned defaultCacheSize,
+ unsigned expectedItemSize)
+ : d(new Private(cacheName, defaultCacheSize, expectedItemSize))
+{
+}
+
+KSharedDataCache::~KSharedDataCache()
+{
+ // Note that there is no other actions required to separate from the
+ // shared memory segment, simply unmapping is enough. This makes things
+ // *much* easier so I'd recommend maintaining this ideal.
+ if (d->m_attached) {
+ ::munmap(d->shm, d->m_mapSize);
+ }
+
+ // Do not delete d->shm, it was never constructed, it's just an alias.
+ d->shm = 0;
+
+ delete d;
+}
+
+bool KSharedDataCache::insert(const QString &key, const QByteArray &data)
+{
+ Private::CacheLocker lock(d);
+ if (lock.failed()) {
+ return false;
+ }
+
+ QByteArray encodedKey = key.toUtf8();
+ uint keyHash = fnvHash32(encodedKey);
+ uint position = keyHash % d->shm->indexTableSize();
+
+ // See if we're overwriting an existing entry.
+ IndexTableEntry *indices = d->shm->indexTable();
+
+ // In order to avoid the issue of a very long-lived cache having items
+ // with a use count of 1 near-permanently, we attempt to artifically
+ // reduce the use count of long-lived items when there is high load on
+ // the cache. We do this randomly, with a weighting that makes the event
+ // impossible if load < 0.5, and guaranteed if load >= 0.96.
+ static double startCullPoint = 0.5l;
+ static double mustCullPoint = 0.96l;
+
+ // cacheAvail is in pages, cacheSize is in bytes.
+ double loadFactor = (1.0l * d->shm->cacheAvail * d->shm->cachePageSize()
+ / d->shm->cacheSize);
+ bool cullCollisions = false;
+
+ if (KDE_ISUNLIKELY(loadFactor >= mustCullPoint)) {
+ cullCollisions = true;
+ }
+ else {
+ int tripWireValue = RAND_MAX * (loadFactor - startCullPoint) / (mustCullPoint - startCullPoint);
+ if (KRandom::random() >= tripWireValue) {
+ cullCollisions = true;
+ }
+ }
+
+ // In case of collisions, use quadratic chaining to attempt to find an
+ // empty slot. The equation we use is
+ // position = (hash + (i + i*i) / 2) % size, where i is the probe number.
+ int probeNumber = 1;
+ while (indices[position].useCount > 0 && probeNumber < 6) {
+ // If we are "culling" old entries, see if this one is old and if so
+ // reduce its use count. If it reduces to zero then eliminate it and
+ // use its old spot.
+
+ if (cullCollisions && (indices[position].lastUsedTime - ::time(0)) > 60) {
+ indices[position].useCount >>= 1;
+ if (indices[position].useCount == 0) {
+ kDebug(264) << "Overwriting existing old cached entry due to collision.";
+ d->shm->removeEntry(position); // Remove it first
+
+ break;
+ }
+ }
+
+ position = (keyHash + (probeNumber + probeNumber * probeNumber) / 2)
+ % d->shm->indexTableSize();
+ probeNumber++;
+ }
+
+ if (indices[position].useCount > 0 && indices[position].firstPage >= 0) {
+ kDebug(264) << "Overwriting existing cached entry due to collision.";
+ d->shm->removeEntry(position); // Remove it first
+ }
+
+ // Data will be stored as fileNamefoo\0PNGimagedata.....
+ // So total size required is the length of the encoded file name + 1
+ // for the trailing null, and then the length of the image data.
+ uint fileNameLength = 1 + encodedKey.length();
+ uint requiredSize = fileNameLength + data.size();
+ uint pagesNeeded = intCeil(requiredSize, d->shm->cachePageSize());
+ uint firstPage = (uint) -1;
+
+ if (pagesNeeded >= d->shm->pageTableSize()) {
+ kWarning(264) << key << "is too large to be cached.";
+ return false;
+ }
+
+ // If the cache has no room, or the fragmentation is too great to find
+ // the required number of consecutive free pages, take action.
+ if (pagesNeeded > d->shm->cacheAvail ||
+ (firstPage = d->shm->findEmptyPages(pagesNeeded)) >= d->shm->pageTableSize())
+ {
+ // If we have enough free space just defragment
+ uint freePagesDesired = 3 * qMax(1u, pagesNeeded / 2);
+
+ if (d->shm->cacheAvail > freePagesDesired) {
+ // TODO: How the hell long does this actually take on real
+ // caches?
+ d->shm->defragment();
+ firstPage = d->shm->findEmptyPages(pagesNeeded);
+ }
+ else {
+ // If we already have free pages we don't want to remove a ton
+ // extra. However we can't rely on the return value of
+ // removeUsedPages giving us a good location since we're not
+ // passing in the actual number of pages that we need.
+ d->shm->removeUsedPages(qMin(2 * freePagesDesired, d->shm->pageTableSize())
+ - d->shm->cacheAvail);
+ firstPage = d->shm->findEmptyPages(pagesNeeded);
+ }
+
+ if (firstPage >= d->shm->pageTableSize() ||
+ d->shm->cacheAvail < pagesNeeded)
+ {
+ kError(264) << "Unable to free up memory for" << key;
+ return false;
+ }
+ }
+
+ // Update page table
+ PageTableEntry *table = d->shm->pageTable();
+ for (uint i = 0; i < pagesNeeded; ++i) {
+ table[firstPage + i].index = position;
+ }
+
+ // Update index
+ indices[position].fileNameHash = keyHash;
+ indices[position].totalItemSize = requiredSize;
+ indices[position].useCount = 1;
+ indices[position].addTime = ::time(0);
+ indices[position].lastUsedTime = indices[position].addTime;
+ indices[position].firstPage = firstPage;
+
+ // Update cache
+ d->shm->cacheAvail -= pagesNeeded;
+
+ // Actually move the data in place
+ void *dataPage = d->shm->page(firstPage);
+
+ // Cast for byte-sized pointer arithmetic
+ uchar *startOfPageData = reinterpret_cast<uchar *>(dataPage);
+ ::memcpy(startOfPageData, encodedKey.constData(), fileNameLength);
+ ::memcpy(startOfPageData + fileNameLength, data.constData(), data.size());
+
+ return true;
+}
+
+bool KSharedDataCache::find(const QString &key, QByteArray *destination) const
+{
+ if (!d->m_attached) {
+ return false;
+ }
+
+ Private::CacheLocker lock(d);
+ if (lock.failed()) {
+ return false;
+ }
+
+ // Search in the index for our data, hashed by key;
+ QByteArray encodedKey = key.toUtf8();
+ qint32 entry = d->shm->findNamedEntry(encodedKey);
+
+ if (entry >= 0) {
+ const IndexTableEntry *header = &d->shm->indexTable()[entry];
+ const void *resultPage = d->shm->page(header->firstPage);
+
+ header->useCount++;
+ header->lastUsedTime = ::time(0);
+
+ // Our item is the key followed immediately by the data, so skip
+ // past the key.
+ const char *cacheData = reinterpret_cast<const char *>(resultPage);
+ cacheData += encodedKey.size();
+ cacheData++; // Skip trailing null -- now we're pointing to start of data
+
+ if (destination) {
+ *destination = QByteArray(cacheData, header->totalItemSize - encodedKey.size() - 1);
+ }
+
+ return true;
+ }
+
+ return false;
+}
+
+void KSharedDataCache::clear()
+{
+ d->shm->clear();
+}
+
+bool KSharedDataCache::contains(const QString &key) const
+{
+ Private::CacheLocker lock(d);
+ if (lock.failed()) {
+ return false;
+ }
+
+ return d->shm->findNamedEntry(key.toUtf8()) >= 0;
+}
+
+void KSharedDataCache::deleteCache(const QString &cacheName)
+{
+ QString cachePath = KGlobal::dirs()->locateLocal("cache", cacheName + QLatin1String(".kcache"));
+
+ // Note that it is important to simply unlink the file, and not truncate it
+ // smaller first to avoid SIGBUS errors and similar with shared memory
+ // attached to the underlying inode.
+ kDebug(264) << "Removing cache at" << cachePath;
+ QFile::remove(cachePath);
+}
+
+unsigned KSharedDataCache::totalSize() const
+{
+ Private::CacheLocker lock(d);
+ if (lock.failed()) {
+ return 0u;
+ }
+
+ return d->shm->cacheSize;
+}
+
+unsigned KSharedDataCache::freeSize() const
+{
+ Private::CacheLocker lock(d);
+ if (lock.failed()) {
+ return 0u;
+ }
+
+ return d->shm->cacheAvail * d->shm->cachePageSize();
+}
+
+KSharedDataCache::EvictionPolicy KSharedDataCache::evictionPolicy() const
+{
+ if (d->m_attached) {
+ int policy(d->shm->evictionPolicy);
+ return static_cast<EvictionPolicy>(policy);
+ }
+
+ return NoEvictionPreference;
+}
+
+void KSharedDataCache::setEvictionPolicy(EvictionPolicy newPolicy)
+{
+ if (d->m_attached) {
+ d->shm->evictionPolicy.fetchAndStoreRelease(static_cast<int>(newPolicy));
+ }
+}
+
+unsigned KSharedDataCache::timestamp() const
+{
+ if (d->m_attached) {
+ return static_cast<unsigned>(d->shm->cacheTimestamp.fetchAndAddAcquire(0));
+ }
+
+ return 0;
+}
+
+void KSharedDataCache::setTimestamp(unsigned newTimestamp)
+{
+ if (d->m_attached) {
+ d->shm->cacheTimestamp.fetchAndStoreRelease(static_cast<int>(newTimestamp));
+ }
+}
diff --git a/x11/kdelibs4/hacks.mk b/x11/kdelibs4/hacks.mk
new file mode 100644
index 00000000000..ea672994fdd
--- /dev/null
+++ b/x11/kdelibs4/hacks.mk
@@ -0,0 +1,10 @@
+# $NetBSD: hacks.mk,v 1.1 2012/03/19 11:28:48 markd Exp $
+
+.if ${OPSYS} == "NetBSD"
+post-configure:
+ cp ${FILESDIR}/kshareddatacache.cpp ${WRKSRC}/kdecore/util/kshareddatacache.cpp
+.endif
+
+# fix up buildlinks failure to build link tree correctly
+post-wrapper:
+ ln -s netbsd-g++ ${BUILDLINK_DIR}/qt4/mkspecs/default
diff --git a/x11/kdelibs4/patches/patch-aa b/x11/kdelibs4/patches/patch-aa
index b35faf055ce..4e41aae5cad 100644
--- a/x11/kdelibs4/patches/patch-aa
+++ b/x11/kdelibs4/patches/patch-aa
@@ -1,8 +1,8 @@
-$NetBSD: patch-aa,v 1.1.1.1 2009/10/02 19:19:00 markd Exp $
+$NetBSD: patch-aa,v 1.2 2012/03/19 11:28:49 markd Exp $
---- kded/CMakeLists.txt.orig 2008-12-11 05:12:28.000000000 +1300
+--- kded/CMakeLists.txt.orig 2011-04-01 13:55:50.000000000 +0000
+++ kded/CMakeLists.txt
-@@ -69,7 +69,7 @@ install(TARGETS kdontchangethehostname D
+@@ -74,7 +74,7 @@ install(TARGETS kbuildsycoca4 ${INSTALL_
if (WIN32)
install( FILES applications.menu DESTINATION ${SHARE_INSTALL_PREFIX}/xdg/menus )
else (WIN32)
diff --git a/x11/kdelibs4/patches/patch-ab b/x11/kdelibs4/patches/patch-ab
index ee00820d295..c91d32e499e 100644
--- a/x11/kdelibs4/patches/patch-ab
+++ b/x11/kdelibs4/patches/patch-ab
@@ -1,8 +1,8 @@
-$NetBSD: patch-ab,v 1.1.1.1 2009/10/02 19:19:00 markd Exp $
+$NetBSD: patch-ab,v 1.2 2012/03/19 11:28:49 markd Exp $
---- kinit/autostart.cpp.orig 2008-02-28 00:58:51.000000000 +1300
+--- kinit/autostart.cpp.orig 2011-04-01 13:55:51.000000000 +0000
+++ kinit/autostart.cpp
-@@ -40,7 +40,7 @@ AutoStart::AutoStart()
+@@ -39,7 +39,7 @@ AutoStart::AutoStart()
m_startList = new AutoStartList;
KGlobal::dirs()->addResourceType("xdgconf-autostart", NULL, "autostart/"); // xdg ones
KGlobal::dirs()->addResourceType("autostart", "xdgconf-autostart", "/"); // merge them
diff --git a/x11/kdelibs4/patches/patch-ac b/x11/kdelibs4/patches/patch-ac
index 8481edcffe4..5d8f44bbcc5 100644
--- a/x11/kdelibs4/patches/patch-ac
+++ b/x11/kdelibs4/patches/patch-ac
@@ -1,6 +1,6 @@
-$NetBSD: patch-ac,v 1.3 2010/04/10 02:45:05 markd Exp $
+$NetBSD: patch-ac,v 1.4 2012/03/19 11:28:49 markd Exp $
---- kio/kssl/kopenssl.cpp.orig 2009-11-13 10:59:08.000000000 +0000
+--- kio/kssl/kopenssl.cpp.orig 2011-04-01 13:55:51.000000000 +0000
+++ kio/kssl/kopenssl.cpp
@@ -236,7 +236,7 @@ void KOpenSSLProxy::destroy() {
delete x;
diff --git a/x11/kdelibs4/patches/patch-ad b/x11/kdelibs4/patches/patch-ad
index 7960d9eb3a5..e41db51cbee 100644
--- a/x11/kdelibs4/patches/patch-ad
+++ b/x11/kdelibs4/patches/patch-ad
@@ -1,8 +1,8 @@
-$NetBSD: patch-ad,v 1.1.1.1 2009/10/02 19:19:00 markd Exp $
+$NetBSD: patch-ad,v 1.2 2012/03/19 11:28:49 markd Exp $
---- kde3support/kdeui/k3sconfig.cpp.orig 2007-10-08 20:41:19.000000000 +1300
+--- kde3support/kdeui/k3sconfig.cpp.orig 2011-04-01 13:55:50.000000000 +0000
+++ kde3support/kdeui/k3sconfig.cpp
-@@ -464,6 +464,8 @@ void K3SpellConfig::getAvailDictsIspell
+@@ -470,6 +470,8 @@ void K3SpellConfig::getAvailDictsIspell
// dictionary path
QFileInfo dir ("/usr/lib/ispell");
if (!dir.exists() || !dir.isDir())
@@ -11,7 +11,7 @@ $NetBSD: patch-ad,v 1.1.1.1 2009/10/02 19:19:00 markd Exp $
dir.setFile ("/usr/local/lib/ispell");
if (!dir.exists() || !dir.isDir())
dir.setFile ("/usr/local/share/ispell");
-@@ -536,6 +538,8 @@ void K3SpellConfig::getAvailDictsAspell
+@@ -542,6 +544,8 @@ void K3SpellConfig::getAvailDictsAspell
if (!dir.exists() || !dir.isDir())
dir.setFile ("/usr/lib" KDELIBSUFF "/aspell-0.60");
if (!dir.exists() || !dir.isDir())
@@ -20,7 +20,7 @@ $NetBSD: patch-ad,v 1.1.1.1 2009/10/02 19:19:00 markd Exp $
dir.setFile ("/usr/local/lib" KDELIBSUFF "/aspell");
if (!dir.exists() || !dir.isDir())
dir.setFile ("/usr/share/aspell");
-@@ -620,6 +624,8 @@ K3SpellConfig::fillDicts( QComboBox* box
+@@ -683,6 +687,8 @@ K3SpellConfig::fillDicts( QComboBox* box
// dictionary path
QFileInfo dir ("/usr/lib/ispell");
if (!dir.exists() || !dir.isDir())
@@ -29,7 +29,7 @@ $NetBSD: patch-ad,v 1.1.1.1 2009/10/02 19:19:00 markd Exp $
dir.setFile ("/usr/local/lib/ispell");
if (!dir.exists() || !dir.isDir())
dir.setFile ("/usr/local/share/ispell");
-@@ -698,6 +704,8 @@ K3SpellConfig::fillDicts( QComboBox* box
+@@ -760,6 +766,8 @@ K3SpellConfig::fillDicts( QComboBox* box
if (!dir.exists() || !dir.isDir())
dir.setFile ("/usr/lib" KDELIBSUFF "/aspell-0.60");
if (!dir.exists() || !dir.isDir())
diff --git a/x11/kdelibs4/patches/patch-ag b/x11/kdelibs4/patches/patch-ag
index f6b1f60ffe5..7ba0f7bd568 100644
--- a/x11/kdelibs4/patches/patch-ag
+++ b/x11/kdelibs4/patches/patch-ag
@@ -1,8 +1,8 @@
-$NetBSD: patch-ag,v 1.1.1.1 2009/10/02 19:19:00 markd Exp $
+$NetBSD: patch-ag,v 1.2 2012/03/19 11:28:49 markd Exp $
---- security/crypto/crypto.cpp.orig 2008-05-01 22:16:43.000000000 +1200
+--- security/crypto/crypto.cpp.orig 2011-04-01 13:55:51.000000000 +0000
+++ security/crypto/crypto.cpp
-@@ -2247,7 +2247,11 @@ bool KCryptoConfig::loadCiphers() {
+@@ -2303,7 +2303,11 @@ bool KCryptoConfig::loadCiphers() {
unsigned int i;
SSL_CTX *ctx;
SSL *ssl;
diff --git a/x11/kdelibs4/patches/patch-ah b/x11/kdelibs4/patches/patch-ah
index c31fbdc6277..0311b91799d 100644
--- a/x11/kdelibs4/patches/patch-ah
+++ b/x11/kdelibs4/patches/patch-ah
@@ -1,8 +1,8 @@
-$NetBSD: patch-ah,v 1.1.1.1 2009/10/02 19:19:00 markd Exp $
+$NetBSD: patch-ah,v 1.2 2012/03/19 11:28:49 markd Exp $
---- kpty/kptydevice.cpp.orig 2008-12-04 21:36:01.000000000 +1300
+--- kpty/kptydevice.cpp.orig 2011-04-01 13:55:51.000000000 +0000
+++ kpty/kptydevice.cpp
-@@ -42,7 +42,7 @@
+@@ -44,7 +44,7 @@
# include <sys/time.h>
#endif
diff --git a/x11/kdelibs4/patches/patch-aj b/x11/kdelibs4/patches/patch-aj
index 02acbea2fcb..712164c0c63 100644
--- a/x11/kdelibs4/patches/patch-aj
+++ b/x11/kdelibs4/patches/patch-aj
@@ -1,8 +1,8 @@
-$NetBSD: patch-aj,v 1.1.1.1 2009/10/02 19:19:00 markd Exp $
+$NetBSD: patch-aj,v 1.2 2012/03/19 11:28:49 markd Exp $
From https://bugs.kde.org/show_bug.cgi?id=193215
---- kio/kssl/ksmimecrypto.cpp.orig 2008-05-21 23:08:14.000000000 +1200
+--- kio/kssl/ksmimecrypto.cpp.orig 2011-04-01 13:55:51.000000000 +0000
+++ kio/kssl/ksmimecrypto.cpp
@@ -86,7 +86,7 @@ KSMIMECryptoPrivate::KSMIMECryptoPrivate
diff --git a/x11/kdelibs4/patches/patch-ak b/x11/kdelibs4/patches/patch-ak
index 7563e01a641..08c3dc6e59f 100644
--- a/x11/kdelibs4/patches/patch-ak
+++ b/x11/kdelibs4/patches/patch-ak
@@ -1,8 +1,8 @@
-$NetBSD: patch-ak,v 1.3 2010/04/11 13:55:49 markd Exp $
+$NetBSD: patch-ak,v 1.4 2012/03/19 11:28:49 markd Exp $
---- kdecore/auth/ConfigureChecks.cmake.orig 2010-03-26 17:24:30.000000000 +0000
+--- kdecore/auth/ConfigureChecks.cmake.orig 2011-04-01 13:55:50.000000000 +0000
+++ kdecore/auth/ConfigureChecks.cmake
-@@ -198,7 +198,7 @@ if(KDE4_AUTH_HELPER_BACKEND_NAME STREQUA
+@@ -202,7 +202,7 @@ if(KDE4_AUTH_HELPER_BACKEND_NAME STREQUA
# Install some files as well
install( FILES auth/backends/dbus/org.kde.auth.conf
diff --git a/x11/kdelibs4/patches/patch-al b/x11/kdelibs4/patches/patch-al
index 25f84d2779a..9e339770121 100644
--- a/x11/kdelibs4/patches/patch-al
+++ b/x11/kdelibs4/patches/patch-al
@@ -1,8 +1,8 @@
-$NetBSD: patch-al,v 1.1 2010/04/11 13:55:49 markd Exp $
+$NetBSD: patch-al,v 1.2 2012/03/19 11:28:49 markd Exp $
---- cmake/modules/KDE4Macros.cmake.orig 2010-03-26 17:24:24.000000000 +0000
+--- cmake/modules/KDE4Macros.cmake.orig 2011-04-01 13:55:50.000000000 +0000
+++ cmake/modules/KDE4Macros.cmake
-@@ -1254,7 +1254,7 @@ function(KDE4_INSTALL_AUTH_HELPER_FILES
+@@ -1293,7 +1293,7 @@ function(KDE4_INSTALL_AUTH_HELPER_FILES
configure_file(${_stubFilesDir}/dbus_policy.stub
${CMAKE_CURRENT_BINARY_DIR}/${HELPER_ID}.conf)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${HELPER_ID}.conf
diff --git a/x11/kdelibs4/patches/patch-am b/x11/kdelibs4/patches/patch-am
index 1da30ed0a71..cee7ae76d8a 100644
--- a/x11/kdelibs4/patches/patch-am
+++ b/x11/kdelibs4/patches/patch-am
@@ -1,6 +1,6 @@
-$NetBSD: patch-am,v 1.1 2010/06/06 22:44:02 markd Exp $
+$NetBSD: patch-am,v 1.2 2012/03/19 11:28:49 markd Exp $
---- kdecore/sycoca/ksycoca.cpp.orig 2010-01-19 23:15:27.000000000 +0000
+--- kdecore/sycoca/ksycoca.cpp.orig 2011-04-01 13:56:18.000000000 +0000
+++ kdecore/sycoca/ksycoca.cpp
@@ -62,7 +62,7 @@
*/
diff --git a/x11/kdelibs4/patches/patch-an b/x11/kdelibs4/patches/patch-an
deleted file mode 100644
index 05a3166dfe2..00000000000
--- a/x11/kdelibs4/patches/patch-an
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD: patch-an,v 1.2 2010/10/26 11:46:58 markd Exp $
-
---- kdecore/util/kshareddatacache.cpp.orig 2010-09-30 21:19:05.000000000 +0000
-+++ kdecore/util/kshareddatacache.cpp
-@@ -307,7 +307,10 @@ struct SharedMemory
- // Initialize attributes, enable process-shared primitives, and setup
- // the mutex.
- if (pthread_mutexattr_init(&mutexAttr) == 0) {
-- if (pthread_mutexattr_setpshared(&mutexAttr, PTHREAD_PROCESS_SHARED) != 0 ||
-+ if (
-+#ifdef _POSIX_THREAD_PROCESS_SHARED
-+ pthread_mutexattr_setpshared(&mutexAttr, PTHREAD_PROCESS_SHARED) != 0 ||
-+#endif
- pthread_mutex_init(&lockMutex, &mutexAttr) != 0)
- {
- pthread_mutexattr_destroy(&mutexAttr);
diff --git a/x11/kdelibs4/patches/patch-cmake_modules_FindTaglib.cmake b/x11/kdelibs4/patches/patch-cmake_modules_FindTaglib.cmake
index cef64c6110e..0288246aad8 100644
--- a/x11/kdelibs4/patches/patch-cmake_modules_FindTaglib.cmake
+++ b/x11/kdelibs4/patches/patch-cmake_modules_FindTaglib.cmake
@@ -1,13 +1,29 @@
-$NetBSD: patch-cmake_modules_FindTaglib.cmake,v 1.1 2011/06/04 16:31:52 abs Exp $
+$NetBSD: patch-cmake_modules_FindTaglib.cmake,v 1.2 2012/03/19 11:28:49 markd Exp $
---- cmake/modules/FindTaglib.cmake.orig 2008-07-22 00:05:18.000000000 +0000
+Change the string comparision operator on the TAGLIB_VERSION to a
+version comparision operator (since versions are being compared.)
+
+--- cmake/modules/FindTaglib.cmake.orig 2011-07-27 18:34:31.000000000 +0000
+++ cmake/modules/FindTaglib.cmake
-@@ -11,7 +11,7 @@
- # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+@@ -29,10 +29,10 @@ if(TAGLIBCONFIG_EXECUTABLE)
+
+ exec_program(${TAGLIBCONFIG_EXECUTABLE} ARGS --version RETURN_VALUE _return_VALUE OUTPUT_VARIABLE TAGLIB_VERSION)
+
+- if(TAGLIB_VERSION STRLESS "${TAGLIB_MIN_VERSION}")
++ if(TAGLIB_VERSION VERSION_LESS "${TAGLIB_MIN_VERSION}")
+ message(STATUS "TagLib version not found: version searched :${TAGLIB_MIN_VERSION}, found ${TAGLIB_VERSION}")
+ set(TAGLIB_FOUND FALSE)
+- else(TAGLIB_VERSION STRLESS "${TAGLIB_MIN_VERSION}")
++ else(TAGLIB_VERSION VERSION_LESS "${TAGLIB_MIN_VERSION}")
+
+ exec_program(${TAGLIBCONFIG_EXECUTABLE} ARGS --libs RETURN_VALUE _return_VALUE OUTPUT_VARIABLE TAGLIB_LIBRARIES)
- if(NOT TAGLIB_MIN_VERSION)
-- set(TAGLIB_MIN_VERSION "1.4")
-+ set(TAGLIB_MIN_VERSION "1.10")
- endif(NOT TAGLIB_MIN_VERSION)
+@@ -43,7 +43,7 @@ if(TAGLIBCONFIG_EXECUTABLE)
+ message(STATUS "Found taglib: ${TAGLIB_LIBRARIES}")
+ endif(TAGLIB_LIBRARIES AND TAGLIB_CFLAGS)
+ string(REGEX REPLACE " *-I" ";" TAGLIB_INCLUDES "${TAGLIB_CFLAGS}")
+- endif(TAGLIB_VERSION STRLESS "${TAGLIB_MIN_VERSION}")
++ endif(TAGLIB_VERSION VERSION_LESS "${TAGLIB_MIN_VERSION}")
+ mark_as_advanced(TAGLIB_CFLAGS TAGLIB_LIBRARIES TAGLIB_INCLUDES)
- if(NOT WIN32)
+ else(TAGLIBCONFIG_EXECUTABLE)
diff --git a/x11/kdelibs4/patches/patch-kdecore_localization_klocale_kde.cpp b/x11/kdelibs4/patches/patch-kdecore_localization_klocale_kde.cpp
new file mode 100644
index 00000000000..5c8fbe56e88
--- /dev/null
+++ b/x11/kdelibs4/patches/patch-kdecore_localization_klocale_kde.cpp
@@ -0,0 +1,13 @@
+$NetBSD: patch-kdecore_localization_klocale_kde.cpp,v 1.1 2012/03/19 11:28:49 markd Exp $
+
+--- kdecore/localization/klocale_kde.cpp.orig 2011-04-01 13:55:50.000000000 +0000
++++ kdecore/localization/klocale_kde.cpp
+@@ -2516,7 +2516,7 @@ QByteArray KLocalePrivate::systemCodeset
+
+ codeset = nl_langinfo(CODESET);
+
+- if ((codeset == "ANSI_X3.4-1968") || (codeset == "US-ASCII")) {
++ if ((codeset == "ANSI_X3.4-1968") || (codeset == "US-ASCII") || (codeset == "646")) {
+ // means ascii, "C"; QTextCodec doesn't know, so avoid warning
+ codeset = "ISO-8859-1";
+ }
diff --git a/x11/kdelibs4/patches/patch-kdecore_util_kshareddatacache_p.h b/x11/kdelibs4/patches/patch-kdecore_util_kshareddatacache_p.h
new file mode 100644
index 00000000000..a73b3917be8
--- /dev/null
+++ b/x11/kdelibs4/patches/patch-kdecore_util_kshareddatacache_p.h
@@ -0,0 +1,14 @@
+$NetBSD: patch-kdecore_util_kshareddatacache_p.h,v 1.1 2012/03/19 11:28:49 markd Exp $
+
+--- kdecore/util/kshareddatacache_p.h.orig 2011-04-01 13:56:18.000000000 +0000
++++ kdecore/util/kshareddatacache_p.h
+@@ -311,7 +311,9 @@ static SharedLockId findBestSharedLock()
+ sem_t tempSemaphore;
+ QSharedPointer<KSDCLock> tempLock(0);
+ if (timeoutsSupported) {
++#ifdef KSDC_TIMEOUTS_SUPPORTED
+ tempLock = QSharedPointer<KSDCLock>(new semaphoreTimedLock(tempSemaphore));
++#endif
+ }
+ else {
+ tempLock = QSharedPointer<KSDCLock>(new semaphoreLock(tempSemaphore));
diff --git a/x11/kdelibs4/patches/patch-kdeui_colors_kcolordialog.cpp b/x11/kdelibs4/patches/patch-kdeui_colors_kcolordialog.cpp
deleted file mode 100644
index 152fb685496..00000000000
--- a/x11/kdelibs4/patches/patch-kdeui_colors_kcolordialog.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-kdeui_colors_kcolordialog.cpp,v 1.1 2011/09/27 10:48:20 markd Exp $
-
-Find rgb.txt in pkgsrc or native
-
---- kdeui/colors/kcolordialog.cpp.orig 2010-05-27 17:26:18.000000000 +0000
-+++ kdeui/colors/kcolordialog.cpp
-@@ -627,6 +627,8 @@ static const char * const *namedColorFil
- #ifdef X11_RGBFILE
- X11_RGBFILE, 0,
- #endif
-+ "@X11BASE@/share/X11/rgb.txt", 0,
-+ "@X11BASE@/lib/X11/rgb.txt", 0,
- "/usr/share/X11/rgb.txt", 0,
- "/usr/X11R6/lib/X11/rgb.txt", 0,
- "/usr/openwin/lib/X11/rgb.txt", 0, // for Solaris.
diff --git a/x11/kdelibs4/patches/patch-khtml_khtml_part.cpp b/x11/kdelibs4/patches/patch-khtml_khtml_part.cpp
deleted file mode 100644
index 51189ee5771..00000000000
--- a/x11/kdelibs4/patches/patch-khtml_khtml_part.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-$NetBSD: patch-khtml_khtml_part.cpp,v 1.1 2011/04/11 10:11:42 markd Exp $
-
-Fix for CVE-2011-1168.
-
---- khtml/khtml_part.cpp.orig 2010-08-27 08:09:16.000000000 +0000
-+++ khtml/khtml_part.cpp
-@@ -1803,7 +1803,10 @@ void KHTMLPart::htmlError( int errorCode
- stream >> errorName >> techName >> description >> causes >> solutions;
-
- QString url, protocol, datetime;
-- url = Qt::escape( reqUrl.prettyUrl() );
-+
-+ // This is somewhat confusing, but we have to escape the externally-
-+ // controlled URL twice: once for i18n, and once for HTML.
-+ url = Qt::escape( Qt::escape( reqUrl.prettyUrl() ) );
- protocol = reqUrl.protocol();
- datetime = KGlobal::locale()->formatDateTime( QDateTime::currentDateTime(),
- KLocale::LongDate );
diff --git a/x11/kdelibs4/patches/patch-kio_kio_scheduler.cpp b/x11/kdelibs4/patches/patch-kio_kio_scheduler.cpp
deleted file mode 100644
index e55b5ea2d26..00000000000
--- a/x11/kdelibs4/patches/patch-kio_kio_scheduler.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-$NetBSD: patch-kio_kio_scheduler.cpp,v 1.1 2012/01/18 22:03:24 abs Exp $
-
---- kio/kio/scheduler.cpp.orig 2010-07-07 17:08:31.000000000 +0000
-+++ kio/kio/scheduler.cpp
-@@ -865,6 +865,36 @@ void Scheduler::emitReparseSlaveConfigur
- emit self()->reparseSlaveConfiguration( QString() );
- }
-
-+void Scheduler::slotSlaveDied(Slave* slave)
-+{
-+ schedulerPrivate->slotSlaveDied(slave);
-+}
-+
-+void Scheduler::slotSlaveStatus(pid_t pid, const QByteArray& protocol, const QString& host, bool connected)
-+{
-+ schedulerPrivate->slotSlaveStatus(pid, protocol, host, connected);
-+}
-+
-+void Scheduler::slotReparseSlaveConfiguration(const QString& prot)
-+{
-+ schedulerPrivate->slotReparseSlaveConfiguration(prot);
-+}
-+
-+void Scheduler::slotSlaveConnected()
-+{
-+ schedulerPrivate->slotSlaveConnected();
-+}
-+
-+void Scheduler::slotSlaveError(int error, const QString& errorMsg)
-+{
-+ schedulerPrivate->slotSlaveError(error, errorMsg);
-+}
-+
-+void Scheduler::slotUnregisterWindow(QObject* obj)
-+{
-+ schedulerPrivate->slotUnregisterWindow(obj);
-+}
-+
-
- void SchedulerPrivate::slotReparseSlaveConfiguration(const QString &proto)
- {
diff --git a/x11/kdelibs4/patches/patch-kio_kio_scheduler.h b/x11/kdelibs4/patches/patch-kio_kio_scheduler.h
deleted file mode 100644
index eef97228ce7..00000000000
--- a/x11/kdelibs4/patches/patch-kio_kio_scheduler.h
+++ /dev/null
@@ -1,38 +0,0 @@
-$NetBSD: patch-kio_kio_scheduler.h,v 1.1 2012/01/18 22:03:24 abs Exp $
-
---- kio/kio/scheduler.h.orig 2010-02-03 08:50:40.000000000 +0000
-+++ kio/kio/scheduler.h
-@@ -29,6 +29,8 @@
- #include <QtGui/QWidgetList>
- #include <sys/types.h> // pid_t
-
-+class QDBusMessage;
-+
- namespace KIO {
-
- class Slave;
-@@ -278,16 +280,17 @@ namespace KIO {
-
- static Scheduler *self();
-
-- Q_PRIVATE_SLOT(schedulerPrivate, void slotSlaveDied(KIO::Slave *slave))
-- Q_PRIVATE_SLOT(schedulerPrivate, void slotSlaveStatus(pid_t pid, const QByteArray &protocol,
-- const QString &host, bool connected))
-+ private Q_SLOTS:
-+ void slotSlaveDied(KIO::Slave *slave);
-+ void slotSlaveStatus(pid_t pid, const QByteArray &protocol,
-+ const QString &host, bool connected);
-
- // connected to D-Bus signal:
-- Q_PRIVATE_SLOT(schedulerPrivate, void slotReparseSlaveConfiguration(const QString &))
-+ void slotReparseSlaveConfiguration(const QString &);
-+ void slotSlaveConnected();
-+ void slotSlaveError(int error, const QString &errorMsg);
-+ void slotUnregisterWindow(QObject *);
-
-- Q_PRIVATE_SLOT(schedulerPrivate, void slotSlaveConnected())
-- Q_PRIVATE_SLOT(schedulerPrivate, void slotSlaveError(int error, const QString &errorMsg))
-- Q_PRIVATE_SLOT(schedulerPrivate, void slotUnregisterWindow(QObject *))
- private:
- friend class SchedulerPrivate;
- SchedulerPrivate *const d;
diff --git a/x11/kdelibs4/patches/patch-kio_kssl_ksslcertificatebox.cpp b/x11/kdelibs4/patches/patch-kio_kssl_ksslcertificatebox.cpp
deleted file mode 100644
index 0721c4cfcea..00000000000
--- a/x11/kdelibs4/patches/patch-kio_kssl_ksslcertificatebox.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-$NetBSD: patch-kio_kssl_ksslcertificatebox.cpp,v 1.1 2011/11/20 02:08:10 markd Exp $
-
-don't interpret html tags. KDE Security Advisory 20111003-1
-
---- kio/kssl/ksslcertificatebox.cpp.orig 2008-05-21 11:08:14.000000000 +0000
-+++ kio/kssl/ksslcertificatebox.cpp
-@@ -36,6 +36,10 @@ KSslCertificateBox::KSslCertificateBox(Q
- d(new KSslCertificateBoxPrivate())
- {
- d->ui.setupUi(this);
-+ // No fooling us with html tags
-+ Q_FOREACH(QLabel* label, qFindChildren<QLabel *>(this)) {
-+ label->setTextFormat(Qt::PlainText);
-+ }
- }
-
-
diff --git a/x11/kdelibs4/patches/patch-kioslave_http_http.cpp b/x11/kdelibs4/patches/patch-kioslave_http_http.cpp
deleted file mode 100644
index c792bc9f50e..00000000000
--- a/x11/kdelibs4/patches/patch-kioslave_http_http.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-$NetBSD: patch-kioslave_http_http.cpp,v 1.1 2011/11/20 02:08:10 markd Exp $
-
-don't interpret html tags. KDE Security Advisory 20111003-1
-
-commit 90607b28d21fefc43657ca08b889bdb174c31fab
-Author: David Faure <faure@kde.org>
-Date: Wed Sep 28 17:26:47 2011 +0200
-
- Use HTML escaping on texts that come from the website
-
- Interestingly enough, this is yet another use case for moving Qt::escape
- to QtCore, which I made a merge request for.
- (cherry picked from commit 86622e4db182f4b914169f72ebd1e66d708e9f87)
-
-diff --git a/kioslave/http/http.cpp b/kioslave/http/http.cpp
-index 33f4cb1..6447a02 100644
---- kioslave/http/http.cpp
-+++ kioslave/http/http.cpp
-@@ -99,6 +99,27 @@
- //authentication handlers
- #include "httpauthentication.cpp"
-
-+// KDE5 TODO (QT5) : use QString::htmlEscape or whatever https://qt.gitorious.org/qt/qtbase/merge_requests/56
-+// ends up with.
-+static QString htmlEscape(const QString &plain)
-+{
-+ QString rich;
-+ rich.reserve(int(plain.length() * 1.1));
-+ for (int i = 0; i < plain.length(); ++i) {
-+ if (plain.at(i) == QLatin1Char('<'))
-+ rich += QLatin1String("&lt;");
-+ else if (plain.at(i) == QLatin1Char('>'))
-+ rich += QLatin1String("&gt;");
-+ else if (plain.at(i) == QLatin1Char('&'))
-+ rich += QLatin1String("&amp;");
-+ else if (plain.at(i) == QLatin1Char('"'))
-+ rich += QLatin1String("&quot;");
-+ else
-+ rich += plain.at(i);
-+ }
-+ rich.squeeze();
-+ return rich;
-+}
-
- // see filenameFromUrl(): a sha1 hash is 160 bits
- static const int s_hashedUrlBits = 160; // this number should always be divisible by eight
-@@ -3410,7 +3431,7 @@ endParsing:
- authinfo.url = reqUrl;
- authinfo.keepPassword = true;
- authinfo.comment = i18n("<b>%1</b> at <b>%2</b>",
-- authinfo.realmValue, authinfo.url.host());
-+ htmlEscape(authinfo.realmValue), authinfo.url.host());
-
- if (!openPasswordDialog(authinfo, errorMsg)) {
- if (sendErrorPageNotification()) {
-@@ -5122,7 +5143,7 @@ void HTTPProtocol::proxyAuthenticationForSocket(const QNetworkProxy &proxy, QAut
- "to access any sites.");
- info.keepPassword = true;
- info.commentLabel = i18n("Proxy:");
-- info.comment = i18n("<b>%1</b> at <b>%2</b>", info.realmValue, m_request.proxyUrl.host());
-+ info.comment = i18n("<b>%1</b> at <b>%2</b>", htmlEscape(info.realmValue), m_request.proxyUrl.host());
- const bool dataEntered = openPasswordDialog(info, i18n("Proxy Authentication Failed."));
- if (!dataEntered) {
- kDebug(7103) << "looks like the user canceled proxy authentication.";
diff --git a/x11/kdelibs4/patches/patch-kjs_JSImmediate.h b/x11/kdelibs4/patches/patch-kjs_JSImmediate.h
deleted file mode 100644
index abae574eb75..00000000000
--- a/x11/kdelibs4/patches/patch-kjs_JSImmediate.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- kjs/JSImmediate.h.orig 2010-05-16 22:04:04.000000000 +0200
-+++ kjs/JSImmediate.h 2011-10-24 17:26:02.608429864 +0200
-@@ -33,7 +33,7 @@
- #endif
- #include <stdlib.h>
-
--#if PLATFORM(SOLARIS_OS)
-+#if PLATFORM(SOLARIS_OS) && COMPILER(GCC) && (__GNUC__ <= 4 && __GNUC_MINOR__ < 6)
- static inline int signbit(double x)
- {
- return (x<0.0) ? 1 : 0;
diff --git a/x11/kdelibs4/patches/patch-kjs_lookup.h b/x11/kdelibs4/patches/patch-kjs_lookup.h
deleted file mode 100644
index d586847bfb0..00000000000
--- a/x11/kdelibs4/patches/patch-kjs_lookup.h
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD: patch-kjs_lookup.h,v 1.1 2012/01/23 08:14:02 joerg Exp $
-
---- kjs/lookup.h.orig 2012-01-22 20:17:34.000000000 +0000
-+++ kjs/lookup.h
-@@ -23,6 +23,7 @@
- #ifndef _KJSLOOKUP_H_
- #define _KJSLOOKUP_H_
-
-+#include "JSVariableObject.h"
- #include "interpreter.h"
- #include "identifier.h"
- #include "object.h"
diff --git a/x11/kdelibs4/patches/patch-kjs_wtf_RefPtr.h b/x11/kdelibs4/patches/patch-kjs_wtf_RefPtr.h
deleted file mode 100644
index 856ab0e5d3c..00000000000
--- a/x11/kdelibs4/patches/patch-kjs_wtf_RefPtr.h
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD: patch-kjs_wtf_RefPtr.h,v 1.1 2012/01/23 08:14:02 joerg Exp $
-
---- kjs/wtf/RefPtr.h.orig 2012-01-22 20:08:54.000000000 +0000
-+++ kjs/wtf/RefPtr.h
-@@ -24,6 +24,7 @@
-
- #include <algorithm>
- #include "AlwaysInline.h"
-+#include "PassRefPtr.h"
-
- namespace WTF {
-