Compare commits

..

58 Commits
master ... f14

Author SHA1 Message Date
Rex Dieter 97bd6d867e CVE-2010-0046, security issue in khtml 2011-11-18 12:49:27 -06:00
Rex Dieter 96df630504 restore halectomy patch (sans fstab-removing pieces) 2011-11-16 17:30:29 -06:00
Rex Dieter 504faef7f5 solid hardware does not detect NFS drives, related to halectomy (#751879)
Fix fd leak in KLockFile (#753709)
2011-11-14 09:29:23 -06:00
Rex Dieter b7de02afc2 KConfig fails to sync on VFAT, CIFS, and EncFS (#730721,kde#203554) 2011-10-11 12:24:24 -05:00
Rex Dieter cd4a7e3edc add f16+ goodies 2011-10-11 12:23:57 -05:00
Rex Dieter 23f8a38cad Merge branch 'f15' into f14 2011-10-11 10:51:43 -05:00
Rex Dieter 6ab5508030 CVE-2011-3365 kdelibs: input validation failure in KSSL (#743056) 2011-10-11 10:50:46 -05:00
Rex Dieter b847bb7dcc Provides: kate-part 2011-10-08 19:49:26 -05:00
Than Ngo 1979fdc467 clean fedora conditional 2011-08-30 11:05:18 +02:00
Than Ngo b4b6073c3d fix typo 2011-08-26 22:19:38 +02:00
Than Ngo 340421a010 drop kdelibs-4.3.1-drkonq.patch which is merged in upstream 2011-08-26 21:43:42 +02:00
Kevin Kofler 2722e31130 Merge branch 'f14' of ssh://pkgs.fedoraproject.org/kdelibs into f14 2011-07-26 01:06:38 +02:00
Kevin Kofler 951e5a7edf * Mon Jul 25 2011 Kevin Kofler <Kevin@tigcc.ticalc.org> 4.6.5-2
- fix KHTML form completion regression (kde#277457, patch by Andrea Iacovitti)
2011-07-26 00:22:59 +02:00
Rex Dieter f581a88870 Merge remote-tracking branch 'origin/f15' into f14 2011-07-01 08:31:52 -05:00
Rex Dieter c8584603d2 drop reference to old/removed patch 2011-07-01 08:30:53 -05:00
Rex Dieter 52d1fc7371 Merge remote-tracking branch 'origin/f15' into f14 2011-07-01 08:07:47 -05:00
Rex Dieter 41f7295110 4.6.5 2011-07-01 08:06:54 -05:00
Rex Dieter c4b64c1996 Merge remote-tracking branch 'origin/f15' into f14 2011-06-30 14:50:14 -05:00
Rex Dieter 263237884b drop old/deprecated pieces 2011-06-30 14:49:26 -05:00
Rex Dieter e37471e21f better (upstream) fix for kstatusnotifieritemdbus leak (#667787, kde#261180) 2011-06-30 14:48:32 -05:00
Rex Dieter 90065575e4 Merge remote-tracking branch 'origin/f15' into f14 2011-06-27 14:12:34 -05:00
Rex Dieter 770c3232b2 (Build)Requires: docbook-style-xsl >= 1.76 2011-06-27 14:12:07 -05:00
Rex Dieter 371323bc2d Merge remote-tracking branch 'origin/f15' into f14 2011-06-27 10:03:13 -05:00
Rex Dieter 82ae0f29cc upstream kdoctools/docbook patch (#690124) 2011-06-27 10:00:44 -05:00
Rex Dieter be5dcaf69c Merge remote-tracking branch 'origin/f15' into f14 2011-06-16 13:53:30 -05:00
Rex Dieter a726ab796a fix KConfigXT KComboBox for Qt 4.8 TP1 (upstream patch) 2011-06-16 13:52:44 -05:00
Rex Dieter de4fc62e6b Merge remote-tracking branch 'origin/f15' into f14 2011-06-14 09:21:14 -05:00
Rex Dieter 3ba22ac8f4 KStatusNotifierItem leaks D-Bus connections (#667787, kde#261180) 2011-06-14 09:20:27 -05:00
Than Ngo 0771d135b6 Merge branch 'f15' into f14 2011-06-09 16:07:23 +02:00
Than Ngo 5bb5ea39af 4.6.4 2011-06-06 22:42:32 +02:00
Kevin Kofler b0eac17e1b Merge branch 'master' of ssh://pkgs.fedoraproject.org/kdelibs into f14 2011-05-24 15:57:42 +02:00
Rex Dieter df5a037f90 Merge remote-tracking branch 'origin/master' into f14 2011-05-16 11:04:46 -05:00
Rex Dieter c58c5869de Merge remote-tracking branch 'origin/master' into f14/master 2011-05-08 18:59:34 -05:00
Rex Dieter af05a4cbcd Merge remote-tracking branch 'origin/master' into f14/master 2011-04-30 09:38:05 -05:00
Rex Dieter 30f682b3df Merge remote-tracking branch 'origin/master' into f14/master 2011-04-20 08:50:27 -05:00
Rex Dieter 0ebeb92f7c Merge remote-tracking branch 'origin/master' into f14/master
Conflicts:
	.gitignore
2011-04-08 13:00:42 -05:00
Rex Dieter ab9704dcd7 Merge remote-tracking branch 'origin/master' into f14/master 2011-03-24 10:41:14 -05:00
Rex Dieter a3c1583f31 Merge remote-tracking branch 'origin/master' into f14/master 2011-03-14 07:32:34 -05:00
Rex Dieter cd262aa261 Merge remote-tracking branch 'origin/f15/master' into f14/master
Conflicts:
	.gitignore
	kdelibs.spec
	sources
2011-03-11 10:37:52 -06:00
Rex Dieter 32f314c4c0 - Unowned /usr/lib*/kde4/plugins/{gui_platform,styles} dirs (#645059) 2011-01-18 14:18:22 -06:00
Rex Dieter eeb746fc9c - 4.5.5 2011-01-05 15:19:06 -06:00
Rex Dieter c998371b69 - update kdoctools/el from branch (kde-l10n entities) 2010-12-04 15:03:48 -06:00
Than Ngo 739924aa3b 4.5.4 2010-12-03 15:44:55 +01:00
Than Ngo 5a87919bad respin 2010-12-02 16:14:20 +01:00
Than Ngo 5be376ce49 4.5.4 2010-11-29 21:42:48 +01:00
Rex Dieter 6d90360b60 Merge remote branch 'origin/master' into f14/master 2010-11-15 19:22:22 -06:00
Rex Dieter df47543174 Merge commit 'ebdb7525fa7f9095e6eb3e7c9369ca1b49de392a' into f14/master
Conflicts:
	kdelibs.spec
2010-11-06 13:24:00 -05:00
Rex Dieter d2a8823cf6 - kshareddatacache fix for zime shifts, just in time for DST (kde#253795) 2010-11-02 11:44:21 -05:00
Rex Dieter 612c898d8c Merge remote branch 'origin/master' into f14/master 2010-10-17 12:30:43 -05:00
Rex Dieter 8eb9c8a719 Merge remote branch 'origin/master' into f14/master 2010-10-08 08:17:01 -05:00
Lukas Tinkl 9847fe98f8 Merge remote branch 'origin/master' into f14/master 2010-10-07 13:53:32 +02:00
Lukas Tinkl 315c746d04 Merge remote branch 'origin/master' into f14/master 2010-10-05 14:29:41 +02:00
Rex Dieter 8493938a76 Merge remote branch 'origin/master' into f14/master 2010-10-02 15:29:52 -05:00
Rex Dieter d0913d6ff7 Merge branch 'master' into f14 2010-09-11 11:40:06 -05:00
Rex Dieter 8baa4ab87d Merge branch 'master' into f14
Conflicts:
	kdelibs.spec
2010-08-28 23:55:59 -05:00
Rex Dieter c41ca60d1e - -apidocs: exclude installdox 2010-08-23 11:53:30 -05:00
Rex Dieter 66831870e8 Merge branch 'master' into f14
Conflicts:
	kdelibs.spec
2010-08-11 15:45:55 -05:00
Rex Dieter 0b5ef7cb1c - 4.5.0 2010-08-07 22:07:57 -05:00
52 changed files with 2448 additions and 3127 deletions

3
.gitignore vendored
View File

@ -1 +1,2 @@
/kdelibs-4.14.38.tar.xz
/kdelibs-4.6.5.tar.bz2
/kdelibs-4.7.2.tar.bz2

View File

@ -1,27 +0,0 @@
From 02966e348e37ebf6269aaed238e7ce67fbe958e7 Mon Sep 17 00:00:00 2001
From: Hrvoje Senjan <hrvoje.senjan@gmail.com>
Date: Sun, 25 May 2014 00:36:08 +0200
Subject: [PATCH 1/1] Drop Nepomuk from KParts' LINK_INTERFACE_LIBRARIES
Nepomuk is only used in a private header, browserrun_p.h,
thus it is not needed as KParts public dependancy
Makes it possible to drop libsoprano-devel from libkde4-devel Requires
---
kparts/CMakeLists.txt | 1 -
1 file changed, 1 deletion(-)
diff --git a/kparts/CMakeLists.txt b/kparts/CMakeLists.txt
index 2eab2e8..e17ef5e 100644
--- a/kparts/CMakeLists.txt
+++ b/kparts/CMakeLists.txt
@@ -39,7 +39,6 @@ target_link_libraries(kparts ${KDE4_KDECORE_LIBS} kdeui kio)
target_link_libraries(kparts LINK_PUBLIC kio kdeui kdecore ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} )
if(HAVE_NEPOMUK)
target_link_libraries(kparts LINK_PRIVATE nepomuk nepomukutils)
- target_link_libraries(kparts LINK_PUBLIC nepomuk nepomukutils )
endif(HAVE_NEPOMUK)
set_target_properties(kparts PROPERTIES VERSION ${GENERIC_LIB_VERSION}
--
1.9.3

View File

@ -1,6 +0,0 @@
if [ -z "${SOLID_HAL_LEGACY}" ] ; then
SOLID_HAL_LEGACY=1
export SOLID_HAL_LEGACY
fi

View File

@ -1,6 +1,6 @@
diff -up kdelibs-4.10.0/kded/applications.menu.Administration-menu kdelibs-4.10.0/kded/applications.menu
--- kdelibs-4.10.0/kded/applications.menu.Administration-menu 2013-01-23 15:44:19.000000000 -0600
+++ kdelibs-4.10.0/kded/applications.menu 2013-01-31 07:42:28.173553801 -0600
diff -ur kdelibs-4.1.0/kded/applications.menu kdelibs-4.1.0-xdg-menu/kded/applications.menu
--- kdelibs-4.1.0/kded/applications.menu 2008-05-21 13:07:34.000000000 +0200
+++ kdelibs-4.1.0-xdg-menu/kded/applications.menu 2008-08-23 09:45:03.000000000 +0200
@@ -31,29 +31,31 @@
<Category>Core</Category>
<Not><Category>KDE</Category></Not>
@ -50,7 +50,7 @@ diff -up kdelibs-4.10.0/kded/applications.menu.Administration-menu kdelibs-4.10.
<Name>Development</Name>
<Directory>kde-development.directory</Directory>
<Menu>
@@ -369,7 +371,11 @@
@@ -358,7 +360,11 @@
<Name>Settingsmenu</Name>
<Directory>kde-settingsmenu.directory</Directory>
<Include>
@ -63,7 +63,7 @@ diff -up kdelibs-4.10.0/kded/applications.menu.Administration-menu kdelibs-4.10.
</Include>
</Menu>
<Menu>
@@ -378,7 +384,9 @@
@@ -367,7 +373,9 @@
<Include>
<And>
<Category>System</Category>

View File

@ -0,0 +1,11 @@
diff -Naur kdelibs-4.1.70/cmake/modules/FindKDE4Internal.cmake kdelibs-4.1.70.cmake/cmake/modules/FindKDE4Internal.cmake
--- kdelibs-4.1.70/cmake/modules/FindKDE4Internal.cmake 2008-10-19 16:56:45.000000000 +0200
+++ kdelibs-4.1.70.cmake/cmake/modules/FindKDE4Internal.cmake 2008-10-19 17:06:14.000000000 +0200
@@ -817,6 +817,7 @@
# CMake generators if no build type is set.
if (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE RelWithDebInfo)
+ set(CMAKE_CONFIGURATION_TYPES ${CMAKE_BUILD_TYPE})
endif (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)

View File

@ -0,0 +1,77 @@
diff -Naur kdelibs-4.1.72/kdecore/config/kconfig.cpp kdelibs-4.1.72.no-cache-kdeglobals-path/kdecore/config/kconfig.cpp
--- kdelibs-4.1.72/kdecore/config/kconfig.cpp 2008-10-23 01:05:09.000000000 +0200
+++ kdelibs-4.1.72.no-cache-kdeglobals-path/kdecore/config/kconfig.cpp 2008-11-10 17:38:33.000000000 +0100
@@ -61,12 +61,6 @@
{
sGlobalFileName = componentData.dirs()->saveLocation("config") +
QString::fromLatin1("kdeglobals");
- if (wantGlobals()) {
- const KStandardDirs *const dirs = componentData.dirs();
- foreach(const QString& dir, dirs->findAllResources("config", QLatin1String("kdeglobals")) +
- dirs->findAllResources("config", QLatin1String("system.kdeglobals")))
- globalFiles.push_front(dir);
- }
const QString etc_kderc =
#ifdef Q_WS_WIN
QFile::decodeName( qgetenv("WINDIR") + "/kde4rc" );
@@ -76,15 +70,11 @@
KEntryMap tmp;
// first entry is always /etc/kderc or empty if cannot read
if (KStandardDirs::checkAccess(etc_kderc, R_OK)) {
- if (!globalFiles.contains(etc_kderc))
- globalFiles.push_front(etc_kderc);
-
if (!mappingsRegistered) {
KSharedPtr<KConfigBackend> backend = KConfigBackend::create(componentData, etc_kderc, QLatin1String("INI"));
backend->parseConfig( "en_US", tmp, KConfigBackend::ParseDefaults);
}
} else {
- globalFiles.push_front(QString());
mappingsRegistered = true;
}
@@ -461,10 +451,31 @@
void KConfigPrivate::parseGlobalFiles()
{
+ QStringList globalFiles;
+
+ if (wantGlobals()) {
+ const KStandardDirs *const dirs = componentData.dirs();
+ foreach(const QString& dir, dirs->findAllResources("config", QLatin1String("kdeglobals")) +
+ dirs->findAllResources("config", QLatin1String("system.kdeglobals")))
+ globalFiles.push_front(dir);
+ }
+ const QString etc_kderc =
+#ifdef Q_WS_WIN
+ QFile::decodeName( QByteArray(::getenv("WINDIR")) + "\\kde4rc" );
+#else
+ QLatin1String("/etc/kde4rc");
+#endif
+ KEntryMap tmp;
+ // first entry is always /etc/kderc or empty if cannot read
+ if (KStandardDirs::checkAccess(etc_kderc, R_OK)) {
+ if (!globalFiles.contains(etc_kderc))
+ globalFiles.push_front(etc_kderc);
+ } else {
+ globalFiles.push_front(QString());
+ }
+
// qDebug() << "parsing global files" << globalFiles;
- // TODO: can we cache the values in etc_kderc / other global files
- // on a per-application basis?
const QByteArray utf8Locale = locale.toUtf8();
foreach(const QString& file, globalFiles) {
KConfigBackend::ParseOptions parseOpts = KConfigBackend::ParseGlobal|KConfigBackend::ParseExpansions;
diff -Naur kdelibs-4.1.72/kdecore/config/kconfig_p.h kdelibs-4.1.72.no-cache-kdeglobals-path/kdecore/config/kconfig_p.h
--- kdelibs-4.1.72/kdecore/config/kconfig_p.h 2008-06-03 11:34:54.000000000 +0200
+++ kdelibs-4.1.72.no-cache-kdeglobals-path/kdecore/config/kconfig_p.h 2008-11-10 17:38:33.000000000 +0100
@@ -86,7 +86,6 @@
KEntryMap entryMap;
QString backendType;
- QStringList globalFiles;
QStack<QString> extraFiles;
QString locale;

View File

@ -1,16 +0,0 @@
diff -up kdelibs-4.10.0/solid/solid/managerbase.cpp.SOLID_UPNP kdelibs-4.10.0/solid/solid/managerbase.cpp
--- kdelibs-4.10.0/solid/solid/managerbase.cpp.SOLID_UPNP 2013-01-23 15:44:27.000000000 -0600
+++ kdelibs-4.10.0/solid/solid/managerbase.cpp 2013-01-31 07:48:05.058342162 -0600
@@ -98,7 +98,11 @@ void Solid::ManagerBasePrivate::loadBack
# endif
# if defined (HUPNP_FOUND)
- m_backends << new Solid::Backends::UPnP::UPnPDeviceManager(0);
+ bool solidUpnpEnabled
+ = QString::fromLocal8Bit(qgetenv("SOLID_UPNP")).toInt()==1;
+ if (solidUpnpEnabled) {
+ m_backends << new Solid::Backends::UPnP::UPnPDeviceManager(0);
+ }
# endif
}
}

View File

@ -1,11 +0,0 @@
diff -up kdelibs-4.10.0/kio/kio/kprotocolmanager.cpp.branding kdelibs-4.10.0/kio/kio/kprotocolmanager.cpp
--- kdelibs-4.10.0/kio/kio/kprotocolmanager.cpp.branding 2013-01-23 15:44:24.000000000 -0600
+++ kdelibs-4.10.0/kio/kio/kprotocolmanager.cpp 2013-01-31 07:41:09.248540500 -0600
@@ -743,6 +743,7 @@ QString KProtocolManager::defaultUserAge
d->useragent += QString::number(KDE::versionMajor());
d->useragent += QL1C('.');
d->useragent += QString::number(KDE::versionMinor());
+ d->useragent += QL1S(" Fedora/@@VERSION_RELEASE@@");
}
else
{

View File

@ -1,11 +0,0 @@
diff -up kdelibs-4.10.0/cmake/modules/FindKDE4Internal.cmake.xxcmake kdelibs-4.10.0/cmake/modules/FindKDE4Internal.cmake
--- kdelibs-4.10.0/cmake/modules/FindKDE4Internal.cmake.xxcmake 2013-01-31 07:45:31.958256176 -0600
+++ kdelibs-4.10.0/cmake/modules/FindKDE4Internal.cmake 2013-01-31 07:45:31.989255789 -0600
@@ -955,6 +955,7 @@ endif(WIN32)
# CMake generators if no build type is set.
if (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE RelWithDebInfo)
+ set(CMAKE_CONFIGURATION_TYPES ${CMAKE_BUILD_TYPE})
endif (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)

View File

@ -1,15 +0,0 @@
diff -up kdelibs-4.11.3/plasma/corona.cpp.than kdelibs-4.11.3/plasma/corona.cpp
--- kdelibs-4.11.3/plasma/corona.cpp.than 2013-12-02 16:46:19.542820822 +0100
+++ kdelibs-4.11.3/plasma/corona.cpp 2013-12-02 17:53:04.919830893 +0100
@@ -388,7 +388,11 @@ void Corona::addOffscreenWidget(QGraphic
}
d->offscreenWidgets[i] = widget;
+#if defined(arm) || defined(__arm__)
+ widget->setPos((-i - 1) * 2000, -2000);
+#else
widget->setPos((-i - 1) * QWIDGETSIZE_MAX, -QWIDGETSIZE_MAX);
+#endif
QGraphicsWidget *pw = widget->parentWidget();
widget->setParentItem(0);

View File

@ -1,54 +0,0 @@
diff -up kdelibs-4.11.3/kdecore/kernel/kstandarddirs.cpp.libexecdir kdelibs-4.11.3/kdecore/kernel/kstandarddirs.cpp
--- kdelibs-4.11.3/kdecore/kernel/kstandarddirs.cpp.libexecdir 2013-06-28 12:03:40.883340083 -0500
+++ kdelibs-4.11.3/kdecore/kernel/kstandarddirs.cpp 2013-11-01 15:44:00.780783690 -0500
@@ -1871,7 +1871,7 @@ void KStandardDirs::addKDEDefaults()
addResourceType(types_string + types_indices[index], 0, types_string + types_indices[index+1], true);
index+=2;
}
- addResourceType("exe", "lib", "kde4/libexec", true );
+ addResourceType("exe", 0, "libexec/kde4", true );
addResourceDir("home", QDir::homePath(), false);
diff -up kdelibs-4.11.3/kdecore/kernel/kstandarddirs_unix.cpp.libexecdir kdelibs-4.11.3/kdecore/kernel/kstandarddirs_unix.cpp
--- kdelibs-4.11.3/kdecore/kernel/kstandarddirs_unix.cpp.libexecdir 2013-06-28 12:03:40.884340190 -0500
+++ kdelibs-4.11.3/kdecore/kernel/kstandarddirs_unix.cpp 2013-11-01 15:44:00.782783770 -0500
@@ -63,7 +63,7 @@ QString KStandardDirs::installPath(const
if (strcmp("lib", type) == 0)
return QFile::decodeName(LIB_INSTALL_DIR "/");
if (strcmp("libexec", type) == 0)
- return QFile::decodeName(KDEDIR "/lib" KDELIBSUFF "/kde4/libexec/");
+ return QFile::decodeName(LIBEXEC_INSTALL_DIR "/");
if (strcmp("locale", type) == 0)
return QFile::decodeName(LOCALE_INSTALL_DIR "/");
break;
diff -up kdelibs-4.11.3/kdecore/tests/kstandarddirstest.cpp.libexecdir kdelibs-4.11.3/kdecore/tests/kstandarddirstest.cpp
--- kdelibs-4.11.3/kdecore/tests/kstandarddirstest.cpp.libexecdir 2013-11-01 10:45:56.409145508 -0500
+++ kdelibs-4.11.3/kdecore/tests/kstandarddirstest.cpp 2013-11-01 15:50:20.473658147 -0500
@@ -96,8 +96,9 @@ void KStandarddirsTest::testFindResource
#define KIOSLAVE "bin/kioslave.exe"
#else
#define EXT ""
-#define KIOSLAVE "kde4/libexec/kioslave"
+#define KIOSLAVE "libexec/kde4/kioslave"
#endif
+
const QString bin = KGlobal::dirs()->findResource( "exe", "kioslave" EXT );
QVERIFY( !bin.isEmpty() );
QVERIFY( bin.endsWith( KIOSLAVE ) );
@@ -248,11 +249,13 @@ void KStandarddirsTest::testFindExe()
// findExe with a result in libexec
const QString lnusertemp = KGlobal::dirs()->findExe( "lnusertemp" );
QVERIFY( !lnusertemp.isEmpty() );
- QVERIFY( lnusertemp.endsWith( "lib" KDELIBSUFF "/kde4/libexec/lnusertemp" EXT, PATH_SENSITIVITY ) );
+ QVERIFY( lnusertemp.endsWith( "lib" KDELIBSUFF "/kde4/libexec/lnusertemp" EXT, PATH_SENSITIVITY )
+ || lnusertemp.endsWith( "libexec/kde4/lnusertemp" EXT, PATH_SENSITIVITY ) );
// locate("exe") with a result in libexec
const QString locateExeResult = KGlobal::dirs()->locate("exe", "lnusertemp");
- QVERIFY(locateExeResult.endsWith("lib" KDELIBSUFF "/kde4/libexec/lnusertemp" EXT, PATH_SENSITIVITY));
+ QVERIFY(locateExeResult.endsWith("lib" KDELIBSUFF "/kde4/libexec/lnusertemp" EXT, PATH_SENSITIVITY)
+ || locateExeResult.endsWith("libexec/kde4/lnusertemp" EXT, PATH_SENSITIVITY) );
// findExe with relative path
const QString pwd = QDir::currentPath();

View File

@ -1,25 +0,0 @@
diff -up kdelibs-4.11.97/kdecore/kernel/kstandarddirs.cpp.kstandarddirs kdelibs-4.11.97/kdecore/kernel/kstandarddirs.cpp
--- kdelibs-4.11.97/kdecore/kernel/kstandarddirs.cpp.kstandarddirs 2013-11-30 21:24:01.637163800 -0600
+++ kdelibs-4.11.97/kdecore/kernel/kstandarddirs.cpp 2013-11-30 21:35:27.166292739 -0600
@@ -1149,7 +1149,8 @@ QStringList KStandardDirs::KStandardDirs
pit != prefixList->end();
++pit)
{
- if((*pit).compare(installprefix, cs) != 0 || installdir.isEmpty())
+ // "exe" never has a custom install path, and the check triggers a false positive due to the libexecdir patch
+ if((*pit).compare(installprefix, cs) != 0 || installdir.isEmpty() || !strcmp("exe", type))
{
for (QStringList::ConstIterator it = dirs.constBegin();
it != dirs.constEnd(); ++it)
@@ -1163,6 +1164,11 @@ QStringList KStandardDirs::KStandardDirs
if ((local || testdir.exists()) && !candidates.contains(path, cs))
candidates.append(path);
}
+ // special-case "config" (forward porting Chris Cheney's
+ // hack) - we want /etc/kde after the local config paths
+ // and before the ones in /usr (including kde-profile)
+ if (local && !strcmp("config", type))
+ candidates.append(QLatin1String("/etc/kde/"));
local = false;
}
else

View File

@ -1,12 +0,0 @@
diff -up kdelibs-4.12.90/doc/common/Doxyfile.global.dot kdelibs-4.12.90/doc/common/Doxyfile.global
--- kdelibs-4.12.90/doc/common/Doxyfile.global.dot 2014-03-17 13:15:23.252517997 -0500
+++ kdelibs-4.12.90/doc/common/Doxyfile.global 2014-03-17 13:16:02.472100942 -0500
@@ -1360,7 +1360,7 @@ HIDE_UNDOC_RELATIONS = NO
# toolkit from AT&T and Lucent Bell Labs. The other options in this section
# have no effect if this option is set to NO (the default)
-HAVE_DOT = YES
+HAVE_DOT = NO
# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
# The default size is 10pt.

View File

@ -1,17 +0,0 @@
diff -up kdelibs-4.13.2/kdecore/kernel/ktoolinvocation_x11.cpp.orig kdelibs-4.13.2/kdecore/kernel/ktoolinvocation_x11.cpp
--- kdelibs-4.13.2/kdecore/kernel/ktoolinvocation_x11.cpp.orig 2014-07-11 16:54:51.000000000 +0200
+++ kdelibs-4.13.2/kdecore/kernel/ktoolinvocation_x11.cpp 2014-07-11 16:57:31.000000000 +0200
@@ -412,11 +412,9 @@ void KToolInvocation::invokeTerminal(con
// directory before launching them, see below.
}
- QString error;
- if (self()->startServiceInternal("kdeinit_exec_with_workdir",
- cmd, cmdTokens, &error, 0, NULL, startup_id, false, workdir)) {
+ if (!QProcess::startDetached(cmd, cmdTokens)) {
KMessage::message(KMessage::Error,
- i18n("Could not launch the terminal client:\n\n%1", error),
+ i18n("Could not launch the terminal client"),
i18n("Could not launch Terminal Client"));
}
}

View File

@ -1,12 +0,0 @@
diff -up kdelibs-4.14.14/kded/vfolder_menu.cpp.vfolder_spam kdelibs-4.14.14/kded/vfolder_menu.cpp
--- kdelibs-4.14.14/kded/vfolder_menu.cpp.vfolder_spam 2015-11-04 16:29:10.000000000 -0600
+++ kdelibs-4.14.14/kded/vfolder_menu.cpp 2015-12-09 08:45:49.861988284 -0600
@@ -487,7 +487,7 @@ VFolderMenu::loadDoc()
int errorRow;
int errorCol;
if ( !doc.setContent( &file, &errorMsg, &errorRow, &errorCol ) ) {
- kWarning(7021) << "Parse error in " << m_docInfo.path << ", line " << errorRow << ", col " << errorCol << ": " << errorMsg;
+ kDebug(7021) << "Parse error in " << m_docInfo.path << ", line " << errorRow << ", col " << errorCol << ": " << errorMsg;
file.close();
return doc;
}

View File

@ -1,100 +0,0 @@
diff -up kdelibs-4.14.16/CMakeLists.txt.webkit kdelibs-4.14.16/CMakeLists.txt
--- kdelibs-4.14.16/CMakeLists.txt.webkit 2016-01-07 00:02:22.000000000 +0100
+++ kdelibs-4.14.16/CMakeLists.txt 2016-01-28 13:03:53.556194927 +0100
@@ -363,7 +363,6 @@ if(NOT WINCE)
add_subdirectory( plasma )
endif(NOT WINCE)
add_subdirectory( kunitconversion )
-add_subdirectory( kdewebkit )
add_subdirectory( includes )
add_subdirectory( experimental )
diff -up kdelibs-4.14.16/kdewidgets/CMakeLists.txt.webkit kdelibs-4.14.16/kdewidgets/CMakeLists.txt
--- kdelibs-4.14.16/kdewidgets/CMakeLists.txt.webkit 2016-01-28 13:03:53.527196020 +0100
+++ kdelibs-4.14.16/kdewidgets/CMakeLists.txt 2016-01-28 13:03:53.556194927 +0100
@@ -88,41 +88,6 @@ if(QT_QTDESIGNER_FOUND)
install(TARGETS kdedeprecated DESTINATION ${PLUGIN_INSTALL_DIR}/plugins/designer )
endif(NOT KDE_NO_DEPRECATED)
-
- # kdewebkit widgets
- include_directories(
- ${CMAKE_SOURCE_DIR}/kdewebkit
- )
-
- add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/kdewebkitwidgets.cpp
- COMMAND "${MAKEKDEWIDGETS_EXECUTABLE}" -o ${CMAKE_CURRENT_BINARY_DIR}/kdewebkitwidgets.cpp ${CMAKE_CURRENT_SOURCE_DIR}/kdewebkit.widgets
- MAIN_DEPENDENCY kdewebkit.widgets DEPENDS makekdewidgets4)
-
- set(kdewebkitwidgets_PART_SRCS
- classpreviews.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/kdewebkitwidgets.cpp
- )
-
- qt4_generate_moc(${CMAKE_CURRENT_BINARY_DIR}/kdewebkitwidgets.cpp ${CMAKE_CURRENT_BINARY_DIR}/kdewebkitwidgets.moc)
-
-
- qt4_add_resources(kdewebkitwidgets_PART_SRCS kdewebkitwidgets.qrc)
-
- kde4_add_plugin(kdewebkitwidgets ${kdewebkitwidgets_PART_SRCS})
-
- target_link_libraries(kdewebkitwidgets ${KDE4_KDEUI_LIBS} ${KDE4_KDEWEBKIT_LIBS} ${QT_QTWEBKIT_LIBRARY})
-# if(NOT WIN32)
-# set_target_properties(kdewebkitwidgets PROPERTIES
-# INSTALL_RPATH_USE_LINK_PATH TRUE
-# SKIP_BUILD_RPATH TRUE
-# BUILD_WITH_INSTALL_RPATH TRUE
-# INSTALL_RPATH ${LIB_INSTALL_DIR}
-# )
-# endif(NOT WIN32)
-
- install(TARGETS kdewebkitwidgets DESTINATION ${PLUGIN_INSTALL_DIR}/plugins/designer )
-
-
if (QT_QT3SUPPORT_FOUND)
include_directories(
diff -up kdelibs-4.14.16/plasma/CMakeLists.txt.webkit kdelibs-4.14.16/plasma/CMakeLists.txt
--- kdelibs-4.14.16/plasma/CMakeLists.txt.webkit 2016-01-07 00:02:22.000000000 +0100
+++ kdelibs-4.14.16/plasma/CMakeLists.txt 2016-01-28 13:26:55.730137496 +0100
@@ -11,6 +11,7 @@ if(KDE_PLATFORM_FEATURE_BINARY_COMPATIBL
endif(KDE_PLATFORM_FEATURE_BINARY_COMPATIBLE_FEATURE_REDUCTION)
set(PLASMA_NO_PACKAGEKIT TRUE)
+set(PLASMA_NO_KDEWEBKIT TRUE)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}
${KDE4_KDECORE_INCLUDES}
@@ -121,7 +122,6 @@ set(plasma_LIB_SRCS
framesvg.cpp
plasma.cpp
popupapplet.cpp
- private/animablegraphicswebview.cpp
private/applethandle.cpp
private/associatedapplicationmanager.cpp
private/componentinstaller.cpp
@@ -211,7 +211,6 @@ set(plasma_LIB_SRCS
widgets/textbrowser.cpp
widgets/treeview.cpp
widgets/textedit.cpp
- widgets/webview.cpp
#Temporary QtJolie branch
private/qtjolie-branch/qtjolie/abstractadaptor.cpp
@@ -275,7 +274,7 @@ endif(PHONON_FOUND)
kde4_add_library(plasma ${LIBRARY_TYPE} ${plasma_LIB_SRCS})
-target_link_libraries(plasma LINK_PRIVATE ${QT_QTUITOOLS_LIBRARY} ${QT_QTWEBKIT_LIBRARY}
+target_link_libraries(plasma LINK_PRIVATE ${QT_QTUITOOLS_LIBRARY}
${QT_QTSCRIPT_LIBRARY} ${QT_QTNETWORK_LIBRARY} ${QT_QTXML_LIBRARY} ${QT_QTSQL_LIBRARY} ${QT_QTDECLARATIVE_LIBRARY}
${KDE4_KDEUI_LIBS} ${KDE4_KDNSSD_LIBS} ${KDE4_THREADWEAVER_LIBS} ${PLASMA_EXTRA_LIBS})
@@ -415,7 +414,6 @@ install(FILES
widgets/textbrowser.h
widgets/treeview.h
widgets/textedit.h
- widgets/webview.h
DESTINATION ${INCLUDE_INSTALL_DIR}/plasma/widgets COMPONENT Devel)
install(FILES

View File

@ -1,12 +0,0 @@
diff -up kdelibs-4.14.17/khtml/dom/dom2_traversal.h.gcc6 kdelibs-4.14.17/khtml/dom/dom2_traversal.h
--- kdelibs-4.14.17/khtml/dom/dom2_traversal.h.gcc6 2016-02-12 19:27:45.874888043 -0600
+++ kdelibs-4.14.17/khtml/dom/dom2_traversal.h 2016-02-12 19:26:11.777418711 -0600
@@ -214,7 +214,7 @@ public:
*
*/
enum ShowCode {
- SHOW_ALL = 0xFFFFFFFF,
+ SHOW_ALL = (int)0xFFFFFFFF,
SHOW_ELEMENT = 0x00000001,
SHOW_ATTRIBUTE = 0x00000002,
SHOW_TEXT = 0x00000004,

View File

@ -1,12 +0,0 @@
diff -up kdelibs-4.14.17/ConfigureChecks.cmake.gcc6 kdelibs-4.14.17/ConfigureChecks.cmake
--- kdelibs-4.14.17/ConfigureChecks.cmake.gcc6 2016-02-11 23:06:08.000000000 -0600
+++ kdelibs-4.14.17/ConfigureChecks.cmake 2016-02-12 19:14:07.707788177 -0600
@@ -244,7 +244,7 @@ check_prototype_exists(unsetenv stdlib.h
check_prototype_exists(usleep unistd.h HAVE_USLEEP_PROTO)
check_prototype_exists(initgroups "unistd.h;sys/types.h;unistd.h;grp.h" HAVE_INITGROUPS_PROTO)
check_prototype_exists(setreuid unistd.h HAVE_SETREUID_PROTO)
-check_prototype_exists(trunc math.h HAVE_TRUNC)
+check_prototype_exists(truncf math.h HAVE_TRUNC)
# check for existing datatypes

View File

@ -1,22 +0,0 @@
diff -up kdelibs-4.14.25/kdeui/util/kcrash.cpp.plasma_drkonqi kdelibs-4.14.25/kdeui/util/kcrash.cpp
--- kdelibs-4.14.25/kdeui/util/kcrash.cpp.plasma_drkonqi 2016-10-10 01:09:37.000000000 -0500
+++ kdelibs-4.14.25/kdeui/util/kcrash.cpp 2016-11-10 11:18:40.617754077 -0600
@@ -205,11 +205,18 @@ void KCrash::setDrKonqiEnabled(bool enab
{
s_launchDrKonqi = enabled;
if (s_launchDrKonqi && !s_drkonqiPath) {
+
+ s_drkonqiPath = qstrdup(QFile::encodeName(KStandardDirs::findExe("drkonqi", QFile::decodeName("/usr/libexec/drkonqi"))).constData());
+
+ if (!s_drkonqiPath) {
+
s_drkonqiPath = qstrdup(QFile::encodeName(KStandardDirs::findExe("drkonqi")).constData());
if (!s_drkonqiPath) {
kError() << "Could not find drkonqi";
s_launchDrKonqi = false;
}
+
+ }
}
//we need at least the default crash handler to launch drkonqi

View File

@ -1,999 +0,0 @@
From a015996bb55bbd63d94b227a2c82d0d97cd86ae8 Mon Sep 17 00:00:00 2001
From: Wolfgang Bauer <wbauer@tmo.at>
Date: Wed, 25 Oct 2017 07:49:32 +0200
Subject: [PATCH] Make kssl compile against OpenSSL 1.1.0
OpenSSL 1.1.0 contains some source-incompatible changes, most notably
making most of the structures opaque and introducing new getter/setter
functions to modify the structures. This patch adds some of the newly
introduced functions to the KOpenSSL class and modifies the code to
call them. The implementation of those newly introduced methods
contains both OpenSSL < 1.1 compatible code (direct structure member
access) and calls to real functions resolved from OpenSSL>= 1.1
library. Which implementation is used is decided at compile time. Some
of the existing methods were renamed to match the OpenSSL 1.1 naming
and to avoid conflicts with backward-compatibility names provided by
OpenSSL 1.1.
KSSLCertificate::toNetscape() returns empty result when built against
OpenSSL 1.1 since I wasn't able to find a proper equivalent in OpenSSL
1.1 API (and there does not seem to be any).
(Backport of commit 9a990c69c606126bcd60cd7718462aec2a92460d from
kdelibs4support)
---
kio/kssl/kopenssl.cpp | 250 ++++++++++++++++++++++++++++++++++++++-----
kio/kssl/kopenssl.h | 80 ++++++++++++--
kio/kssl/kssl.cpp | 4 -
kio/kssl/ksslcallback.c | 6 +-
kio/kssl/ksslcertchain.cpp | 53 +++------
kio/kssl/ksslcertificate.cpp | 68 +++++++-----
6 files changed, 351 insertions(+), 110 deletions(-)
diff --git a/kio/kssl/kopenssl.cpp b/kio/kssl/kopenssl.cpp
index e3ca535b25..8f8b921159 100644
--- a/kio/kssl/kopenssl.cpp
+++ b/kio/kssl/kopenssl.cpp
@@ -75,18 +75,26 @@ static void (*K_X509_STORE_CTX_free) (X509_STORE_CTX *) = 0L;
static int (*K_X509_verify_cert) (X509_STORE_CTX *) = 0L;
static X509_STORE_CTX *(*K_X509_STORE_CTX_new) (void) = 0L;
static void (*K_X509_STORE_free) (X509_STORE *) = 0L;
+static void (*K_X509_STORE_set_verify_cb)(X509_STORE *, int (*)(int, X509_STORE_CTX *)) = 0L;
static X509_STORE *(*K_X509_STORE_new) (void) = 0L;
static void (*K_X509_free) (X509 *) = 0L;
static char *(*K_X509_NAME_oneline) (X509_NAME *,char *,int) = 0L;
static X509_NAME *(*K_X509_get_subject_name) (X509 *) = 0L;
static X509_NAME *(*K_X509_get_issuer_name) (X509 *) = 0L;
+static void (*K_X509_get0_signature)(const ASN1_BIT_STRING **psig, const X509_ALGOR **palg, const X509 *x) = 0L;
static X509_LOOKUP *(*K_X509_STORE_add_lookup) (X509_STORE *, X509_LOOKUP_METHOD *) = 0L;
static X509_LOOKUP_METHOD *(*K_X509_LOOKUP_file)(void) = 0L;
static void (*K_X509_LOOKUP_free)(X509_LOOKUP *) = 0L;
static int (*K_X509_LOOKUP_ctrl)(X509_LOOKUP *, int, const char *, long, char **) = 0L;
static void (*K_X509_STORE_CTX_init)(X509_STORE_CTX *, X509_STORE *, X509 *, STACK_OF(X509) *) = 0L;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
static void (*K_CRYPTO_free) (void *) = 0L;
+#else
+static void (*K_CRYPTO_free)(void *, const char *, int) = 0L;
+#endif
static X509* (*K_X509_dup) (X509 *) = 0L;
+static ASN1_TIME *(*K_X509_getm_notBefore)(const X509 *) = 0L;
+static ASN1_TIME *(*K_X509_getm_notAfter)(const X509 *) = 0L;
static BIO_METHOD *(*K_BIO_s_mem) (void) = 0L;
static BIO* (*K_BIO_new) (BIO_METHOD *) = 0L;
static BIO* (*K_BIO_new_fp) (FILE *, int) = 0L;
@@ -118,13 +126,16 @@ static int (*K_SSL_get_error) (SSL*, int) = 0L;
static STACK_OF(X509)* (*K_SSL_get_peer_cert_chain) (SSL*) = 0L;
static void (*K_X509_STORE_CTX_set_chain) (X509_STORE_CTX *, STACK_OF(X509)*) = 0L;
static void (*K_X509_STORE_CTX_set_purpose) (X509_STORE_CTX *, int) = 0L;
-static void (*K_sk_free) (STACK*) = 0L;
-static int (*K_sk_num) (STACK*) = 0L;
-static char* (*K_sk_pop) (STACK*) = 0L;
-static char* (*K_sk_value) (STACK*, int) = 0L;
-static STACK* (*K_sk_new) (int (*)()) = 0L;
-static int (*K_sk_push) (STACK*, char*) = 0L;
-static STACK* (*K_sk_dup) (STACK *) = 0L;
+static X509 *(*K_X509_STORE_CTX_get_current_cert)(X509_STORE_CTX *) = 0L;
+static void (*K_X509_STORE_CTX_set_error)(X509_STORE_CTX *, int) = 0L;
+static int (*K_X509_STORE_CTX_get_error)(X509_STORE_CTX *) = 0L;
+static void (*K_OPENSSL_sk_free)(STACK *) = 0L;
+static int (*K_OPENSSL_sk_num)(STACK *) = 0L;
+static char *(*K_OPENSSL_sk_pop)(STACK *) = 0L;
+static char *(*K_OPENSSL_sk_value)(STACK *, int) = 0L;
+static STACK *(*K_OPENSSL_sk_new)(int (*)()) = 0L;
+static int (*K_OPENSSL_sk_push)(STACK *, char *) = 0L;
+static STACK *(*K_OPENSSL_sk_dup)(STACK *) = 0L;
static char * (*K_i2s_ASN1_INTEGER) (X509V3_EXT_METHOD *, ASN1_INTEGER *) =0L;
static ASN1_INTEGER * (*K_X509_get_serialNumber) (X509 *) = 0L;
static EVP_PKEY *(*K_X509_get_pubkey)(X509 *) = 0L;
@@ -164,6 +175,12 @@ static int (*K_X509_PURPOSE_get_id)(X509_PURPOSE *) = 0L;
static int (*K_X509_check_purpose)(X509*,int,int) = 0L;
static X509_PURPOSE* (*K_X509_PURPOSE_get0)(int) = 0L;
static int (*K_EVP_PKEY_assign)(EVP_PKEY*, int, char*) = 0L;
+static int (*K_EVP_PKEY_base_id)(EVP_PKEY *) = 0L;
+static RSA *(*K_EVP_PKEY_get0_RSA)(EVP_PKEY *) = 0L;
+static void (*K_RSA_get0_key)(RSA *, const BIGNUM **, const BIGNUM **, const BIGNUM **) = 0L;
+static DSA *(*K_EVP_PKEY_get0_DSA)(EVP_PKEY *) = 0L;
+static void (*K_DSA_get0_pqg)(DSA *, const BIGNUM **, const BIGNUM **, const BIGNUM **) = 0L;
+static void (*K_DSA_get0_key)(DSA *, const BIGNUM **, const BIGNUM **) = 0L;
static int (*K_X509_REQ_set_pubkey)(X509_REQ*, EVP_PKEY*) = 0L;
static RSA *(*K_RSA_generate_key)(int, unsigned long, void (*)(int,int,void *), void *) = 0L;
static int (*K_i2d_X509_REQ_fp)(FILE*, X509_REQ*) = 0L;
@@ -410,7 +427,11 @@ KOpenSSLProxy::KOpenSSLProxy()
K_RAND_load_file = (int (*)(const char *, long)) d->cryptoLib->resolveFunction("RAND_load_file");
K_RAND_file_name = (const char* (*)(char *, size_t)) d->cryptoLib->resolveFunction("RAND_file_name");
K_RAND_write_file = (int (*)(const char *)) d->cryptoLib->resolveFunction("RAND_write_file");
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
K_CRYPTO_free = (void (*) (void *)) d->cryptoLib->resolveFunction("CRYPTO_free");
+#else
+ K_CRYPTO_free = (void (*)(void *, const char *, int)) d->cryptoLib->resolveFunction("CRYPTO_free");
+#endif
K_d2i_X509 = (X509 * (*)(X509 **,unsigned char **,long)) d->cryptoLib->resolveFunction("d2i_X509");
K_i2d_X509 = (int (*)(X509 *,unsigned char **)) d->cryptoLib->resolveFunction("i2d_X509");
K_X509_cmp = (int (*)(X509 *, X509 *)) d->cryptoLib->resolveFunction("X509_cmp");
@@ -419,15 +440,19 @@ KOpenSSLProxy::KOpenSSLProxy()
K_X509_verify_cert = (int (*) (X509_STORE_CTX *)) d->cryptoLib->resolveFunction("X509_verify_cert");
K_X509_STORE_new = (X509_STORE * (*) (void)) d->cryptoLib->resolveFunction("X509_STORE_new");
K_X509_STORE_free = (void (*) (X509_STORE *)) d->cryptoLib->resolveFunction("X509_STORE_free");
+ K_X509_STORE_set_verify_cb = (void (*)(X509_STORE *, int (*)(int, X509_STORE_CTX *))) d->cryptoLib->resolveFunction("X509_STORE_set_verify_cb");
K_X509_NAME_oneline = (char * (*) (X509_NAME *,char *,int)) d->cryptoLib->resolveFunction("X509_NAME_oneline");
K_X509_get_subject_name = (X509_NAME * (*) (X509 *)) d->cryptoLib->resolveFunction("X509_get_subject_name");
K_X509_get_issuer_name = (X509_NAME * (*) (X509 *)) d->cryptoLib->resolveFunction("X509_get_issuer_name");
+ K_X509_get0_signature = (void (*)(const ASN1_BIT_STRING **, const X509_ALGOR **, const X509 *)) d->cryptoLib->resolveFunction("X509_get0_signature");
K_X509_STORE_add_lookup = (X509_LOOKUP *(*) (X509_STORE *, X509_LOOKUP_METHOD *)) d->cryptoLib->resolveFunction("X509_STORE_add_lookup");
K_X509_LOOKUP_file = (X509_LOOKUP_METHOD *(*)(void)) d->cryptoLib->resolveFunction("X509_LOOKUP_file");
K_X509_LOOKUP_free = (void (*)(X509_LOOKUP *)) d->cryptoLib->resolveFunction("X509_LOOKUP_free");
K_X509_LOOKUP_ctrl = (int (*)(X509_LOOKUP *, int, const char *, long, char **)) d->cryptoLib->resolveFunction("X509_LOOKUP_ctrl");
K_X509_STORE_CTX_init = (void (*)(X509_STORE_CTX *, X509_STORE *, X509 *, STACK_OF(X509) *)) d->cryptoLib->resolveFunction("X509_STORE_CTX_init");
K_X509_dup = (X509* (*)(X509*)) d->cryptoLib->resolveFunction("X509_dup");
+ K_X509_getm_notBefore = (ASN1_TIME *(*)(const X509 *)) d->cryptoLib->resolveFunction("X509_getm_notBefore");
+ K_X509_getm_notAfter = (ASN1_TIME *(*)(const X509 *)) d->cryptoLib->resolveFunction("X509_getm_notAfter");
K_BIO_s_mem = (BIO_METHOD *(*) (void)) d->cryptoLib->resolveFunction("BIO_s_mem");
K_BIO_new = (BIO* (*)(BIO_METHOD *)) d->cryptoLib->resolveFunction("BIO_new");
K_BIO_new_fp = (BIO* (*)(FILE*, int)) d->cryptoLib->resolveFunction("BIO_new_fp");
@@ -454,13 +479,26 @@ KOpenSSLProxy::KOpenSSLProxy()
K_X509_REQ_new = (X509_REQ* (*)()) d->cryptoLib->resolveFunction("X509_REQ_new");
K_X509_STORE_CTX_set_chain = (void (*)(X509_STORE_CTX *, STACK_OF(X509)*)) d->cryptoLib->resolveFunction("X509_STORE_CTX_set_chain");
K_X509_STORE_CTX_set_purpose = (void (*)(X509_STORE_CTX *, int)) d->cryptoLib->resolveFunction("X509_STORE_CTX_set_purpose");
- K_sk_free = (void (*) (STACK *)) d->cryptoLib->resolveFunction("sk_free");
- K_sk_num = (int (*) (STACK *)) d->cryptoLib->resolveFunction("sk_num");
- K_sk_pop = (char* (*) (STACK *)) d->cryptoLib->resolveFunction("sk_pop");
- K_sk_value = (char* (*) (STACK *, int)) d->cryptoLib->resolveFunction("sk_value");
- K_sk_new = (STACK* (*) (int (*)())) d->cryptoLib->resolveFunction("sk_new");
- K_sk_push = (int (*) (STACK*, char*)) d->cryptoLib->resolveFunction("sk_push");
- K_sk_dup = (STACK* (*) (STACK *)) d->cryptoLib->resolveFunction("sk_dup");
+ K_X509_STORE_CTX_get_current_cert = (X509 * (*)(X509_STORE_CTX *)) d->cryptoLib->resolveFunction("X509_STORE_CTX_get_current_cert");
+ K_X509_STORE_CTX_set_error = (void (*)(X509_STORE_CTX *, int)) d->cryptoLib->resolveFunction("X509_STORE_CTX_set_error");
+ K_X509_STORE_CTX_get_error = (int (*)(X509_STORE_CTX *)) d->cryptoLib->resolveFunction("X509_STORE_CTX_get_error");
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+ K_OPENSSL_sk_free = (void (*)(STACK *)) d->cryptoLib->resolveFunction("OPENSSL_sk_free");
+ K_OPENSSL_sk_num = (int (*)(STACK *)) d->cryptoLib->resolveFunction("OPENSSL_sk_num");
+ K_OPENSSL_sk_pop = (char *(*)(STACK *)) d->cryptoLib->resolveFunction("OPENSSL_sk_pop");
+ K_OPENSSL_sk_value = (char *(*)(STACK *, int)) d->cryptoLib->resolveFunction("OPENSSL_sk_value");
+ K_OPENSSL_sk_new = (STACK * (*)(int (*)())) d->cryptoLib->resolveFunction("OPENSSL_sk_new");
+ K_OPENSSL_sk_push = (int (*)(STACK *, char *)) d->cryptoLib->resolveFunction("OPENSSL_sk_push");
+ K_OPENSSL_sk_dup = (STACK * (*)(STACK *)) d->cryptoLib->resolveFunction("OPENSSL_sk_dup");
+#else
+ K_OPENSSL_sk_free = (void (*)(STACK *)) d->cryptoLib->resolveFunction("sk_free");
+ K_OPENSSL_sk_num = (int (*)(STACK *)) d->cryptoLib->resolveFunction("sk_num");
+ K_OPENSSL_sk_pop = (char *(*)(STACK *)) d->cryptoLib->resolveFunction("sk_pop");
+ K_OPENSSL_sk_value = (char *(*)(STACK *, int)) d->cryptoLib->resolveFunction("sk_value");
+ K_OPENSSL_sk_new = (STACK * (*)(int (*)())) d->cryptoLib->resolveFunction("sk_new");
+ K_OPENSSL_sk_push = (int (*)(STACK *, char *)) d->cryptoLib->resolveFunction("sk_push");
+ K_OPENSSL_sk_dup = (STACK * (*)(STACK *)) d->cryptoLib->resolveFunction("sk_dup");
+#endif
K_i2s_ASN1_INTEGER = (char *(*) (X509V3_EXT_METHOD *, ASN1_INTEGER *)) d->cryptoLib->resolveFunction("i2s_ASN1_INTEGER");
K_X509_get_serialNumber = (ASN1_INTEGER * (*) (X509 *)) d->cryptoLib->resolveFunction("X509_get_serialNumber");
K_X509_get_pubkey = (EVP_PKEY *(*)(X509 *)) d->cryptoLib->resolveFunction("X509_get_pubkey");
@@ -504,6 +542,12 @@ KOpenSSLProxy::KOpenSSLProxy()
K_X509_check_purpose = (int (*)(X509*,int,int)) d->cryptoLib->resolveFunction("X509_check_purpose");
K_X509_PURPOSE_get0 = (X509_PURPOSE *(*)(int)) d->cryptoLib->resolveFunction("X509_PURPOSE_get0");
K_EVP_PKEY_assign = (int (*)(EVP_PKEY*, int, char*)) d->cryptoLib->resolveFunction("EVP_PKEY_assign");
+ K_EVP_PKEY_base_id = (int (*)(EVP_PKEY *)) d->cryptoLib->resolveFunction("EVP_PKEY_base_id");
+ K_EVP_PKEY_get0_RSA = (RSA *(*)(EVP_PKEY *)) d->cryptoLib->resolveFunction("EVP_PKEY_get0_RSA");
+ K_RSA_get0_key = (void (*)(RSA *, const BIGNUM **, const BIGNUM **, const BIGNUM **)) d->cryptoLib->resolveFunction("ESA_get0_key");
+ K_EVP_PKEY_get0_DSA = (DSA *(*)(EVP_PKEY *)) d->cryptoLib->resolveFunction("EVP_PKEY_get0_DSA");
+ K_DSA_get0_pqg = (void (*)(DSA *, const BIGNUM **, const BIGNUM **, const BIGNUM **)) d->cryptoLib->resolveFunction("DSA_get0_pqg");
+ K_DSA_get0_key = (void (*)(DSA *, const BIGNUM **, const BIGNUM **)) d->cryptoLib->resolveFunction("DSA_get0_key");
K_X509_REQ_set_pubkey = (int (*)(X509_REQ*, EVP_PKEY*)) d->cryptoLib->resolveFunction("X509_REQ_set_pubkey");
K_RSA_generate_key = (RSA* (*)(int, unsigned long, void (*)(int,int,void *), void *)) d->cryptoLib->resolveFunction("RSA_generate_key");
K_i2d_X509_REQ_fp = (int (*)(FILE *, X509_REQ *)) d->cryptoLib->resolveFunction("i2d_X509_REQ_fp");
@@ -866,6 +910,16 @@ void KOpenSSLProxy::X509_STORE_free(X509_STORE *v) {
}
+void KOpenSSLProxy::X509_STORE_set_verify_cb(X509_STORE *store, int (*verify_cb)(int, X509_STORE_CTX *))
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ X509_STORE_set_verify_cb_func(store, verify_cb);
+#else
+ if (K_X509_STORE_set_verify_cb) (K_X509_STORE_set_verify_cb)(store, verify_cb);
+#endif
+}
+
+
X509_STORE_CTX *KOpenSSLProxy::X509_STORE_CTX_new(void) {
if (K_X509_STORE_CTX_new) return (K_X509_STORE_CTX_new)();
return 0L;
@@ -906,6 +960,17 @@ X509_NAME *KOpenSSLProxy::X509_get_issuer_name(X509 *a) {
}
+void KOpenSSLProxy::X509_get0_signature(const ASN1_BIT_STRING **psig, const X509_ALGOR **algor, const X509 *x)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (psig) *psig = x->signature;
+ if (algor) *algor = x->sig_alg;
+#else
+ if (K_X509_get0_signature) return (K_X509_get0_signature)(psig, algor, x);
+#endif
+}
+
+
X509_LOOKUP *KOpenSSLProxy::X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m) {
if (K_X509_STORE_add_lookup) return (K_X509_STORE_add_lookup)(v,m);
return 0L;
@@ -934,9 +999,16 @@ void KOpenSSLProxy::X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store,
}
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
void KOpenSSLProxy::CRYPTO_free(void *x) {
if (K_CRYPTO_free) (K_CRYPTO_free)(x);
}
+#else
+void KOpenSSLProxy::CRYPTO_free(void *x, const char *file, int line)
+{
+ if (K_CRYPTO_free) K_CRYPTO_free(x, file, line);
+}
+#endif
X509 *KOpenSSLProxy::X509_dup(X509 *x509) {
@@ -945,6 +1017,28 @@ X509 *KOpenSSLProxy::X509_dup(X509 *x509) {
}
+ASN1_TIME *KOpenSSLProxy::X509_getm_notBefore(const X509 *x)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ return X509_get_notBefore(x);
+#else
+ if (K_X509_getm_notBefore) return (K_X509_getm_notBefore)(x);
+ else return 0L;
+#endif
+}
+
+
+ASN1_TIME *KOpenSSLProxy::X509_getm_notAfter(const X509 *x)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ return X509_get_notAfter(x);
+#else
+ if (K_X509_getm_notAfter) return (K_X509_getm_notAfter)(x);
+ else return 0L;
+#endif
+}
+
+
BIO *KOpenSSLProxy::BIO_new(BIO_METHOD *type) {
if (K_BIO_new) return (K_BIO_new)(type);
else return 0L;
@@ -1093,25 +1187,25 @@ STACK_OF(X509) *KOpenSSLProxy::SSL_get_peer_cert_chain(SSL *s) {
}
-void KOpenSSLProxy::sk_free(STACK *s) {
- if (K_sk_free) (K_sk_free)(s);
+void KOpenSSLProxy::OPENSSL_sk_free(STACK *s) {
+ if (K_OPENSSL_sk_free) (K_OPENSSL_sk_free)(s);
}
-int KOpenSSLProxy::sk_num(STACK *s) {
- if (K_sk_num) return (K_sk_num)(s);
+int KOpenSSLProxy::OPENSSL_sk_num(STACK *s) {
+ if (K_OPENSSL_sk_num) return (K_OPENSSL_sk_num)(s);
else return -1;
}
-char *KOpenSSLProxy::sk_pop(STACK *s) {
- if (K_sk_pop) return (K_sk_pop)(s);
+char *KOpenSSLProxy::OPENSSL_sk_pop(STACK *s) {
+ if (K_OPENSSL_sk_pop) return (K_OPENSSL_sk_pop)(s);
else return 0L;
}
-char *KOpenSSLProxy::sk_value(STACK *s, int n) {
- if (K_sk_value) return (K_sk_value)(s, n);
+char *KOpenSSLProxy::OPENSSL_sk_value(STACK *s, int n) {
+ if (K_OPENSSL_sk_value) return (K_OPENSSL_sk_value)(s, n);
else return 0L;
}
@@ -1125,20 +1219,52 @@ void KOpenSSLProxy::X509_STORE_CTX_set_purpose(X509_STORE_CTX *v, int purpose) {
}
-STACK* KOpenSSLProxy::sk_dup(STACK *s) {
- if (K_sk_dup) return (K_sk_dup)(s);
+X509 *KOpenSSLProxy::X509_STORE_CTX_get_current_cert(X509_STORE_CTX *v)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ return v->current_cert;
+#else
+ if (K_X509_STORE_CTX_get_current_cert) return (K_X509_STORE_CTX_get_current_cert)(v);
+ else return 0L;
+#endif
+}
+
+
+void KOpenSSLProxy::X509_STORE_CTX_set_error(X509_STORE_CTX *v, int error)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ v->error = error;
+#else
+ if (K_X509_STORE_CTX_set_error) (K_X509_STORE_CTX_set_error)(v, error);
+#endif
+}
+
+
+int KOpenSSLProxy::X509_STORE_CTX_get_error(X509_STORE_CTX *v)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ return v->error;
+#else
+ if (K_X509_STORE_CTX_get_error) return (K_X509_STORE_CTX_get_error)(v);
+ else return 0;
+#endif
+}
+
+
+STACK* KOpenSSLProxy::OPENSSL_sk_dup(STACK *s) {
+ if (K_OPENSSL_sk_dup) return (K_OPENSSL_sk_dup)(s);
else return 0L;
}
-STACK* KOpenSSLProxy::sk_new(int (*cmp)()) {
- if (K_sk_new) return (K_sk_new)(cmp);
+STACK* KOpenSSLProxy::OPENSSL_sk_new(int (*cmp)()) {
+ if (K_OPENSSL_sk_new) return (K_OPENSSL_sk_new)(cmp);
else return 0L;
}
-int KOpenSSLProxy::sk_push(STACK* s, char* d) {
- if (K_sk_push) return (K_sk_push)(s,d);
+int KOpenSSLProxy::OPENSSL_sk_push(STACK* s, char* d) {
+ if (K_OPENSSL_sk_push) return (K_OPENSSL_sk_push)(s,d);
else return -1;
}
@@ -1423,6 +1549,74 @@ int KOpenSSLProxy::EVP_PKEY_assign(EVP_PKEY *pkey, int type, char *key) {
else return -1;
}
+
+int KOpenSSLProxy::EVP_PKEY_base_id(EVP_PKEY *pkey)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ return pkey->type;
+#else
+ if (K_EVP_PKEY_base_id) return (K_EVP_PKEY_base_id)(pkey);
+ else return 0;
+#endif
+}
+
+
+RSA *KOpenSSLProxy::EVP_PKEY_get0_RSA(EVP_PKEY *pkey)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ return pkey->pkey.rsa;
+#else
+ if (K_EVP_PKEY_get0_RSA) return (K_EVP_PKEY_get0_RSA)(pkey);
+ else return 0L;
+#endif
+}
+
+
+void KOpenSSLProxy::RSA_get0_key(RSA *rsa, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (n) *n = rsa->n;
+ if (e) *e = rsa->e;
+ if (d) *d = rsa->d;
+#else
+ if (K_RSA_get0_key) (K_RSA_get0_key)(rsa, n, e, d);
+#endif
+}
+
+
+DSA *KOpenSSLProxy::EVP_PKEY_get0_DSA(EVP_PKEY *pkey)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ return pkey->pkey.dsa;
+#else
+ if (K_EVP_PKEY_get0_DSA) return (K_EVP_PKEY_get0_DSA)(pkey);
+ else return 0L;
+#endif
+}
+
+
+void KOpenSSLProxy::DSA_get0_pqg(DSA *dsa, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (p) *p = dsa->p;
+ if (q) *q = dsa->q;
+ if (g) *g = dsa->g;
+#else
+ if (K_DSA_get0_pqg) (K_DSA_get0_pqg)(dsa, p, q, g);
+#endif
+}
+
+
+void KOpenSSLProxy::DSA_get0_key(DSA *dsa, const BIGNUM **pub_key, const BIGNUM **priv_key)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (pub_key) *pub_key = dsa->pub_key;
+ if (priv_key) *priv_key = dsa->priv_key;
+#else
+ if (K_DSA_get0_key) (K_DSA_get0_key)(dsa, pub_key, priv_key);
+#endif
+}
+
int KOpenSSLProxy::X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey) {
if (K_X509_REQ_set_pubkey) return (K_X509_REQ_set_pubkey)(x, pkey);
diff --git a/kio/kssl/kopenssl.h b/kio/kssl/kopenssl.h
index ab05486336..ae3398fbef 100644
--- a/kio/kssl/kopenssl.h
+++ b/kio/kssl/kopenssl.h
@@ -297,6 +297,18 @@ public:
/*
+ * X509_getm_notBefore - get validity start
+ */
+ ASN1_TIME *X509_getm_notBefore(const X509 *x);
+
+
+ /*
+ * X509_getm_notAfter - get validity end
+ */
+ ASN1_TIME *X509_getm_notAfter(const X509 *x);
+
+
+ /*
* X509_STORE_CTX_new - create an X509 store context
*/
X509_STORE_CTX *X509_STORE_CTX_new(void);
@@ -313,11 +325,31 @@ public:
*/
void X509_STORE_CTX_set_chain(X509_STORE_CTX *v, STACK_OF(X509)* x);
+
/*
* X509_STORE_CTX_set_purpose - set the purpose of the certificate
*/
void X509_STORE_CTX_set_purpose(X509_STORE_CTX *v, int purpose);
+
+ /*
+ * X509_STORE_CTX_get_current_cert - get the current certificate
+ */
+ X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *v);
+
+
+ /*
+ * X509_STORE_CTX_set_error - set certificate error
+ */
+ void X509_STORE_CTX_set_error(X509_STORE_CTX *v, int error);
+
+
+ /*
+ * X509_STORE_CTX_get_error - get certificate error
+ */
+ int X509_STORE_CTX_get_error(X509_STORE_CTX *v);
+
+
/*
* X509_verify_cert - verify the certificate
*/
@@ -337,6 +369,12 @@ public:
/*
+ * X509_STORE_set_verify_cb - set verify callback
+ */
+ void X509_STORE_set_verify_cb(X509_STORE *v, int (*verify_cb)(int, X509_STORE_CTX *));
+
+
+ /*
* X509_free - free up an X509
*/
void X509_free(X509 *v);
@@ -361,6 +399,12 @@ public:
/*
+ * X509_get0_signature - return X509 signature and signature algorithm
+ */
+ void X509_get0_signature(const ASN1_BIT_STRING **psig, const X509_ALGOR **palg, const X509 *x);
+
+
+ /*
* X509_STORE_add_lookup - add a lookup file/method to an X509 store
*/
X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m);
@@ -393,7 +437,11 @@ public:
/*
* CRYPTO_free - free up an internally allocated object
*/
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
void CRYPTO_free(void *x);
+#else
+ void CRYPTO_free(void *x, const char *file, int line);
+#endif
/*
* BIO_new - create new BIO
@@ -505,53 +553,53 @@ public:
/*
* Pop off the stack
*/
- char *sk_pop(STACK *s);
+ char *OPENSSL_sk_pop(STACK *s);
/*
* Free the stack
*/
- void sk_free(STACK *s);
+ void OPENSSL_sk_free(STACK *s);
#if OPENSSL_VERSION_NUMBER >= 0x10000000L
- void sk_free(void *s) { return sk_free(reinterpret_cast<STACK*>(s)); }
+ void OPENSSL_sk_free(void *s) { return OPENSSL_sk_free(reinterpret_cast<STACK*>(s)); }
#endif
/*
* Number of elements in the stack
*/
- int sk_num(STACK *s);
+ int OPENSSL_sk_num(STACK *s);
/*
* Value of element n in the stack
*/
- char *sk_value(STACK *s, int n);
+ char *OPENSSL_sk_value(STACK *s, int n);
#if OPENSSL_VERSION_NUMBER >= 0x10000000L
- char *sk_value(void *s, int n) { return sk_value(reinterpret_cast<STACK*>(s), n); }
+ char *OPENSSL_sk_value(void *s, int n) { return OPENSSL_sk_value(reinterpret_cast<STACK*>(s), n); }
#endif
/*
* Create a new stack
*/
- STACK *sk_new(int (*cmp)());
+ STACK *OPENSSL_sk_new(int (*cmp)());
/*
* Add an element to the stack
*/
- int sk_push(STACK *s, char *d);
+ int OPENSSL_sk_push(STACK *s, char *d);
#if OPENSSL_VERSION_NUMBER >= 0x10000000L
- int sk_push(void *s, void *d) { return sk_push(reinterpret_cast<STACK*>(s), reinterpret_cast<char*>(d)); }
+ int OPENSSL_sk_push(void *s, void *d) { return OPENSSL_sk_push(reinterpret_cast<STACK*>(s), reinterpret_cast<char*>(d)); }
#endif
/*
* Duplicate the stack
*/
- STACK *sk_dup(STACK *s);
+ STACK *OPENSSL_sk_dup(STACK *s);
/*
@@ -800,6 +848,18 @@ public:
/*
+ * Get key type
+ */
+ int EVP_PKEY_base_id(EVP_PKEY *pkey);
+
+ RSA *EVP_PKEY_get0_RSA(EVP_PKEY *pkey);
+ void RSA_get0_key(RSA *rsa, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d);
+ DSA *EVP_PKEY_get0_DSA(EVP_PKEY *pkey);
+ void DSA_get0_pqg(DSA *dsa, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);
+ void DSA_get0_key(DSA *dsa, const BIGNUM **pub_key, const BIGNUM **priv_key);
+
+
+ /*
* Generate a RSA key
*/
RSA *RSA_generate_key(int bits, unsigned long e, void
diff --git a/kio/kssl/kssl.cpp b/kio/kssl/kssl.cpp
index c36db55a42..faba1bb5ab 100644
--- a/kio/kssl/kssl.cpp
+++ b/kio/kssl/kssl.cpp
@@ -55,8 +55,6 @@
#warning "kssl.cc needs to be ported to QSslSocket"
#endif
-#define sk_dup d->kossl->sk_dup
-
class KSSLPrivate {
public:
KSSLPrivate() {
@@ -212,5 +210,3 @@ bool KSSL::doesSSLWork() {
return m_bSSLWorks;
}
-#undef sk_dup
-
diff --git a/kio/kssl/ksslcallback.c b/kio/kssl/ksslcallback.c
index 516b916337..38e94356e8 100644
--- a/kio/kssl/ksslcallback.c
+++ b/kio/kssl/ksslcallback.c
@@ -28,7 +28,7 @@ bool KSSL_X509CallBack_ca_found;
extern "C" {
static int X509Callback(int ok, X509_STORE_CTX *ctx) {
- kDebug(7029) << "X509Callback: ok = " << ok << " error = " << ctx->error << " depth = " << ctx->error_depth;
+ //kDebug(7029) << "X509Callback: ok = " << ok << " error = " << ctx->error << " depth = " << ctx->error_depth;
// Here is how this works. We put "ok = 1;" in any case that we
// don't consider to be an error. In that case, it will return OK
// for the certificate check as long as there are no other critical
@@ -39,14 +39,14 @@ static int X509Callback(int ok, X509_STORE_CTX *ctx) {
if (KSSL_X509CallBack_ca)
{
- if (KOSSL::self()->X509_cmp(ctx->current_cert, KSSL_X509CallBack_ca) != 0)
+ if (KOSSL::self()->X509_cmp(KOSSL::self()->X509_STORE_CTX_get_current_cert(ctx), KSSL_X509CallBack_ca) != 0)
return 1; // Ignore errors for this certificate
KSSL_X509CallBack_ca_found = true;
}
if (!ok) {
- switch (ctx->error) {
+ switch (KOSSL::self()->X509_STORE_CTX_get_error(ctx)) {
case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT:
case X509_V_ERR_UNABLE_TO_GET_CRL:
case X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE:
diff --git a/kio/kssl/ksslcertchain.cpp b/kio/kssl/ksslcertchain.cpp
index 2be7995bf8..cdfab2b5ae 100644
--- a/kio/kssl/ksslcertchain.cpp
+++ b/kio/kssl/ksslcertchain.cpp
@@ -44,16 +44,6 @@
#include <kdebug.h>
#include <QtCore/QStringList>
-#ifdef KSSL_HAVE_SSL
-#define sk_new d->kossl->sk_new
-#define sk_push d->kossl->sk_push
-#define sk_free d->kossl->sk_free
-#define sk_value d->kossl->sk_value
-#define sk_num d->kossl->sk_num
-#define sk_dup d->kossl->sk_dup
-#define sk_pop d->kossl->sk_pop
-#endif
-
class KSSLCertChainPrivate {
public:
KSSLCertChainPrivate() {
@@ -79,11 +69,11 @@ KSSLCertChain::~KSSLCertChain() {
STACK_OF(X509) *x = (STACK_OF(X509) *)_chain;
for (;;) {
- X509* x5 = sk_X509_pop(x);
+ X509 *x5 = reinterpret_cast<X509*>(d->kossl->OPENSSL_sk_pop(reinterpret_cast<STACK *>(x)));
if (!x5) break;
d->kossl->X509_free(x5);
}
- sk_X509_free(x);
+ d->kossl->OPENSSL_sk_free(reinterpret_cast<STACK *>(x));
}
#endif
delete d;
@@ -106,7 +96,7 @@ KSSLCertChain *KSSLCertChain::replicate() {
int KSSLCertChain::depth() {
#ifdef KSSL_HAVE_SSL
- return sk_X509_num((STACK_OF(X509)*)_chain);
+ return d->kossl->OPENSSL_sk_num(static_cast<STACK *>(_chain));
#endif
return 0;
}
@@ -123,8 +113,8 @@ QList<KSSLCertificate *> KSSLCertChain::getChain() const {
#ifdef KSSL_HAVE_SSL
STACK_OF(X509) *x = (STACK_OF(X509) *)_chain;
- for (int i = 0; i < sk_X509_num(x); i++) {
- X509* x5 = sk_X509_value(x, i);
+ for (int i = 0; i < d->kossl->OPENSSL_sk_num(reinterpret_cast<STACK *>(x)); i++) {
+ X509 *x5 = reinterpret_cast<X509*>(d->kossl->OPENSSL_sk_value(reinterpret_cast<STACK *>(x), i));
if (!x5) continue;
KSSLCertificate *nc = new KSSLCertificate;
nc->setCert(d->kossl->X509_dup(x5));
@@ -142,18 +132,18 @@ void KSSLCertChain::setChain(const QList<KSSLCertificate *>& chain) {
STACK_OF(X509) *x = (STACK_OF(X509) *)_chain;
for (;;) {
- X509* x5 = sk_X509_pop(x);
+ X509 *x5 = reinterpret_cast<X509*>(d->kossl->OPENSSL_sk_pop(reinterpret_cast<STACK*>(x)));
if (!x5) break;
d->kossl->X509_free(x5);
}
- sk_X509_free(x);
- _chain = NULL;
+ d->kossl->OPENSSL_sk_free(reinterpret_cast<STACK*>(x));
+ _chain = NULL;
}
if (chain.isEmpty()) return;
- _chain = (void *)sk_new(NULL);
+ _chain = (void *)d->kossl->OPENSSL_sk_new(NULL);
foreach (KSSLCertificate *x, chain) {
- sk_X509_push((STACK_OF(X509)*)_chain, d->kossl->X509_dup(x->getCert()));
+ d->kossl->OPENSSL_sk_push(static_cast<STACK*>(_chain), d->kossl->X509_dup(x->getCert()));
}
#endif
@@ -166,23 +156,23 @@ if (_chain) {
STACK_OF(X509) *x = (STACK_OF(X509) *)_chain;
for (;;) {
- X509* x5 = sk_X509_pop(x);
+ X509 *x5 = reinterpret_cast<X509 *>(d->kossl->OPENSSL_sk_pop(reinterpret_cast<STACK *>(x)));
if (!x5) break;
d->kossl->X509_free(x5);
}
- sk_X509_free(x);
+ d->kossl->OPENSSL_sk_free(reinterpret_cast<STACK *>(x));
_chain = NULL;
}
if (!stack_of_x509) return;
-_chain = (void *)sk_new(NULL);
+_chain = (void *)d->kossl->OPENSSL_sk_new(NULL);
STACK_OF(X509) *x = (STACK_OF(X509) *)stack_of_x509;
- for (int i = 0; i < sk_X509_num(x); i++) {
- X509* x5 = sk_X509_value(x, i);
+ for (int i = 0; i < d->kossl->OPENSSL_sk_num(reinterpret_cast<STACK *>(x)); i++) {
+ X509 *x5 = reinterpret_cast<X509*>(d->kossl->OPENSSL_sk_value(reinterpret_cast<STACK *>(x), i));
if (!x5) continue;
- sk_X509_push((STACK_OF(X509)*)_chain,d->kossl->X509_dup(x5));
+ d->kossl->OPENSSL_sk_push(reinterpret_cast<STACK *>(_chain), d->kossl->X509_dup(x5));
}
#else
@@ -202,14 +192,3 @@ void KSSLCertChain::setCertChain(const QStringList& chain) {
setChain(cl);
}
-
-#ifdef KSSL_HAVE_SSL
-#undef sk_new
-#undef sk_push
-#undef sk_free
-#undef sk_value
-#undef sk_num
-#undef sk_dup
-#undef sk_pop
-#endif
-
diff --git a/kio/kssl/ksslcertificate.cpp b/kio/kssl/ksslcertificate.cpp
index 0d4fbd9cdc..c93d5c5b22 100644
--- a/kio/kssl/ksslcertificate.cpp
+++ b/kio/kssl/ksslcertificate.cpp
@@ -200,14 +200,17 @@ QString KSSLCertificate::getSignatureText() const {
char *s;
int n, i;
- i = d->kossl->OBJ_obj2nid(d->m_cert->sig_alg->algorithm);
+ const X509_ALGOR *algor;
+ const ASN1_BIT_STRING *sig;
+ d->kossl->X509_get0_signature(&sig, &algor, d->m_cert);
+ i = d->kossl->OBJ_obj2nid(algor->algorithm);
rc = i18n("Signature Algorithm: ");
rc += (i == NID_undef)?i18n("Unknown"):QString(d->kossl->OBJ_nid2ln(i));
rc += '\n';
rc += i18n("Signature Contents:");
- n = d->m_cert->signature->length;
- s = (char *)d->m_cert->signature->data;
+ n = sig->length;
+ s = (char *)sig->data;
for (i = 0; i < n; ++i) {
if (i%20 != 0) {
rc += ':';
@@ -233,9 +236,10 @@ void KSSLCertificate::getEmails(QStringList &to) const {
}
STACK *s = d->kossl->X509_get1_email(d->m_cert);
+ const int size = d->kossl->OPENSSL_sk_num(s);
if (s) {
- for(int n=0; n < s->num; n++) {
- to.append(d->kossl->sk_value(s,n));
+ for(int n=0; n < size; n++) {
+ to.append(d->kossl->OPENSSL_sk_value(s,n));
}
d->kossl->X509_email_free(s);
}
@@ -317,13 +321,13 @@ QString rc = "";
EVP_PKEY *pkey = d->kossl->X509_get_pubkey(d->m_cert);
if (pkey) {
#ifndef NO_RSA
- if (pkey->type == EVP_PKEY_RSA) {
+ if (d->kossl->EVP_PKEY_base_id(pkey) == EVP_PKEY_RSA) {
rc = "RSA";
}
else
#endif
#ifndef NO_DSA
- if (pkey->type == EVP_PKEY_DSA) {
+ if (d->kossl->EVP_PKEY_base_id(pkey) == EVP_PKEY_DSA) {
rc = "DSA";
}
else
@@ -347,8 +351,10 @@ char *x = NULL;
if (pkey) {
rc = i18nc("Unknown", "Unknown key algorithm");
#ifndef NO_RSA
- if (pkey->type == EVP_PKEY_RSA) {
- x = d->kossl->BN_bn2hex(pkey->pkey.rsa->n);
+ if (d->kossl->EVP_PKEY_base_id(pkey) == EVP_PKEY_RSA) {
+ const BIGNUM *n, *e;
+ d->kossl->RSA_get0_key(d->kossl->EVP_PKEY_get0_RSA(pkey), &n, &e, NULL);
+ x = d->kossl->BN_bn2hex(n);
rc = i18n("Key type: RSA (%1 bit)", strlen(x)*4) + '\n';
rc += i18n("Modulus: ");
@@ -364,15 +370,18 @@ char *x = NULL;
rc += '\n';
d->kossl->OPENSSL_free(x);
- x = d->kossl->BN_bn2hex(pkey->pkey.rsa->e);
+ x = d->kossl->BN_bn2hex(e);
rc += i18n("Exponent: 0x") + QLatin1String(x) +
QLatin1String("\n");
d->kossl->OPENSSL_free(x);
}
#endif
#ifndef NO_DSA
- if (pkey->type == EVP_PKEY_DSA) {
- x = d->kossl->BN_bn2hex(pkey->pkey.dsa->p);
+ if (d->kossl->EVP_PKEY_base_id(pkey) == EVP_PKEY_DSA) {
+ DSA *dsa = d->kossl->EVP_PKEY_get0_DSA(pkey);
+ const BIGNUM *p, *q, *g;
+ d->kossl->DSA_get0_pqg(dsa, &p, &q, &g);
+ x = d->kossl->BN_bn2hex(p);
// hack - this may not be always accurate
rc = i18n("Key type: DSA (%1 bit)", strlen(x)*4) + '\n';
@@ -389,7 +398,7 @@ char *x = NULL;
rc += '\n';
d->kossl->OPENSSL_free(x);
- x = d->kossl->BN_bn2hex(pkey->pkey.dsa->q);
+ x = d->kossl->BN_bn2hex(q);
rc += i18n("160 bit prime factor: ");
for (unsigned int i = 0; i < strlen(x); i++) {
if (i%40 != 0 && i%2 == 0) {
@@ -403,7 +412,7 @@ char *x = NULL;
rc += '\n';
d->kossl->OPENSSL_free(x);
- x = d->kossl->BN_bn2hex(pkey->pkey.dsa->g);
+ x = d->kossl->BN_bn2hex(g);
rc += QString("g: ");
for (unsigned int i = 0; i < strlen(x); i++) {
if (i%40 != 0 && i%2 == 0) {
@@ -417,7 +426,9 @@ char *x = NULL;
rc += '\n';
d->kossl->OPENSSL_free(x);
- x = d->kossl->BN_bn2hex(pkey->pkey.dsa->pub_key);
+ const BIGNUM *pub_key;
+ d->kossl->DSA_get0_key(dsa, &pub_key, NULL);
+ x = d->kossl->BN_bn2hex(pub_key);
rc += i18n("Public key: ");
for (unsigned int i = 0; i < strlen(x); i++) {
if (i%40 != 0 && i%2 == 0) {
@@ -682,7 +693,7 @@ KSSLCertificate::KSSLValidationList KSSLCertificate::validateVerbose(KSSLCertifi
return errors;
}
- X509_STORE_set_verify_cb_func(certStore, X509Callback);
+ d->kossl->X509_STORE_set_verify_cb(certStore, X509Callback);
certLookup = d->kossl->X509_STORE_add_lookup(certStore, d->kossl->X509_LOOKUP_file());
if (!certLookup) {
@@ -724,9 +735,9 @@ KSSLCertificate::KSSLValidationList KSSLCertificate::validateVerbose(KSSLCertifi
KSSL_X509CallBack_ca = ca ? ca->d->m_cert : 0;
KSSL_X509CallBack_ca_found = false;
- certStoreCTX->error = X509_V_OK;
+ d->kossl->X509_STORE_CTX_set_error(certStoreCTX, X509_V_OK);
rc = d->kossl->X509_verify_cert(certStoreCTX);
- int errcode = certStoreCTX->error;
+ int errcode = d->kossl->X509_STORE_CTX_get_error(certStoreCTX);
if (ca && !KSSL_X509CallBack_ca_found) {
ksslv = KSSLCertificate::Irrelevant;
} else {
@@ -739,9 +750,9 @@ KSSLCertificate::KSSLValidationList KSSLCertificate::validateVerbose(KSSLCertifi
d->kossl->X509_STORE_CTX_set_purpose(certStoreCTX,
X509_PURPOSE_NS_SSL_SERVER);
- certStoreCTX->error = X509_V_OK;
+ d->kossl->X509_STORE_CTX_set_error(certStoreCTX, X509_V_OK);
rc = d->kossl->X509_verify_cert(certStoreCTX);
- errcode = certStoreCTX->error;
+ errcode = d->kossl->X509_STORE_CTX_get_error(certStoreCTX);
ksslv = processError(errcode);
}
d->kossl->X509_STORE_CTX_free(certStoreCTX);
@@ -978,7 +989,7 @@ KSSLCertificate::KSSLValidation KSSLCertificate::processError(int ec) {
QString KSSLCertificate::getNotBefore() const {
#ifdef KSSL_HAVE_SSL
- return ASN1_UTCTIME_QString(X509_get_notBefore(d->m_cert));
+ return ASN1_UTCTIME_QString(d->kossl->X509_getm_notBefore(d->m_cert));
#else
return QString();
#endif
@@ -987,7 +998,7 @@ QString KSSLCertificate::getNotBefore() const {
QString KSSLCertificate::getNotAfter() const {
#ifdef KSSL_HAVE_SSL
- return ASN1_UTCTIME_QString(X509_get_notAfter(d->m_cert));
+ return ASN1_UTCTIME_QString(d->kossl->X509_getm_notAfter(d->m_cert));
#else
return QString();
#endif
@@ -996,7 +1007,7 @@ QString KSSLCertificate::getNotAfter() const {
QDateTime KSSLCertificate::getQDTNotBefore() const {
#ifdef KSSL_HAVE_SSL
- return ASN1_UTCTIME_QDateTime(X509_get_notBefore(d->m_cert), NULL);
+ return ASN1_UTCTIME_QDateTime(d->kossl->X509_getm_notBefore(d->m_cert), NULL);
#else
return QDateTime::currentDateTime();
#endif
@@ -1005,7 +1016,7 @@ QDateTime KSSLCertificate::getQDTNotBefore() const {
QDateTime KSSLCertificate::getQDTNotAfter() const {
#ifdef KSSL_HAVE_SSL
- return ASN1_UTCTIME_QDateTime(X509_get_notAfter(d->m_cert), NULL);
+ return ASN1_UTCTIME_QDateTime(d->kossl->X509_getm_notAfter(d->m_cert), NULL);
#else
return QDateTime::currentDateTime();
#endif
@@ -1210,7 +1221,8 @@ typedef struct NETSCAPE_X509_st
// what a piece of crap this is
QByteArray KSSLCertificate::toNetscape() {
QByteArray qba;
-#ifdef KSSL_HAVE_SSL
+ // no equivalent in OpenSSL 1.1.0 (?), so behave as if we had no OpenSSL at all
+#if KSSL_HAVE_SSL && OPENSSL_VERSION_NUMBER < 0x10100000L
NETSCAPE_X509 nx;
ASN1_OCTET_STRING hdr;
KTemporaryFile ktf;
@@ -1293,10 +1305,10 @@ QStringList KSSLCertificate::subjAltNames() const {
return rc;
}
- int cnt = d->kossl->sk_GENERAL_NAME_num(names);
+ int cnt = d->kossl->OPENSSL_sk_num((STACK *)names);
for (int i = 0; i < cnt; i++) {
- const GENERAL_NAME *val = (const GENERAL_NAME *)d->kossl->sk_value(names, i);
+ const GENERAL_NAME *val = (const GENERAL_NAME *)d->kossl->OPENSSL_sk_value(names, i);
if (val->type != GEN_DNS) {
continue;
}
@@ -1308,7 +1320,7 @@ QStringList KSSLCertificate::subjAltNames() const {
rc += s;
}
}
- d->kossl->sk_free(names);
+ d->kossl->OPENSSL_sk_free(names);
#endif
return rc;
}
--
2.13.6

View File

@ -1,27 +0,0 @@
diff -up kdelibs-4.14.9/sonnet/plugins/hunspell/kspell_hunspellclient.cpp.myspell_paths kdelibs-4.14.9/sonnet/plugins/hunspell/kspell_hunspellclient.cpp
--- kdelibs-4.14.9/sonnet/plugins/hunspell/kspell_hunspellclient.cpp.myspell_paths 2015-05-28 20:27:39.000000000 -0500
+++ kdelibs-4.14.9/sonnet/plugins/hunspell/kspell_hunspellclient.cpp 2015-06-04 17:59:10.824869047 -0500
@@ -52,7 +52,7 @@ SpellerPlugin *HunspellClient::createSpe
QStringList HunspellClient::languages() const
{
QStringList lst;
- QDir dir("/usr/share/myspell/dicts/");
+ QDir dir("/usr/share/myspell/");
if(dir.exists())
{
QStringList lstDic = dir.entryList(QStringList("*.dic"), QDir::Files );
diff -up kdelibs-4.14.9/sonnet/plugins/hunspell/kspell_hunspelldict.cpp.myspell_paths kdelibs-4.14.9/sonnet/plugins/hunspell/kspell_hunspelldict.cpp
--- kdelibs-4.14.9/sonnet/plugins/hunspell/kspell_hunspelldict.cpp.myspell_paths 2015-05-28 20:27:39.000000000 -0500
+++ kdelibs-4.14.9/sonnet/plugins/hunspell/kspell_hunspelldict.cpp 2015-06-04 17:58:49.055774079 -0500
@@ -31,9 +31,9 @@ HunspellDict::HunspellDict( const QStrin
: SpellerPlugin(lang), m_speller(0)
{
kDebug()<<" HunspellDict::HunspellDict( const QString& lang ):"<<lang;
- QString dic=QString("/usr/share/myspell/dicts/%1.dic").arg(lang);
+ QString dic=QString("/usr/share/myspell/%1.dic").arg(lang);
if (QFileInfo(dic).exists())
- m_speller = new Hunspell(QString("/usr/share/myspell/dicts/%1.aff").arg(lang).toUtf8().constData(),dic.toUtf8().constData());
+ m_speller = new Hunspell(QString("/usr/share/myspell/%1.aff").arg(lang).toUtf8().constData(),dic.toUtf8().constData());
else
m_speller = 0;
kDebug()<<" dddddd "<<m_speller;

View File

@ -1,7 +1,7 @@
diff -up kdelibs-4.10.0/kdeui/icons/kicontheme.cpp.kde149705 kdelibs-4.10.0/kdeui/icons/kicontheme.cpp
--- kdelibs-4.10.0/kdeui/icons/kicontheme.cpp.kde149705 2013-01-23 15:44:19.000000000 -0600
+++ kdelibs-4.10.0/kdeui/icons/kicontheme.cpp 2013-01-31 07:40:19.163166653 -0600
@@ -527,7 +527,7 @@ QString KIconTheme::current()
diff -up kdelibs-4.2.85/kdeui/icons/kicontheme.cpp.kde149705 kdelibs-4.2.85/kdeui/icons/kicontheme.cpp
--- kdelibs-4.2.85/kdeui/icons/kicontheme.cpp.kde149705 2009-04-15 12:26:44.000000000 +0200
+++ kdelibs-4.2.85/kdeui/icons/kicontheme.cpp 2009-05-11 16:01:29.000000000 +0200
@@ -525,7 +525,7 @@ QString KIconTheme::current()
}
KConfigGroup cg(KGlobal::config(), "Icons");
@ -10,10 +10,10 @@ diff -up kdelibs-4.10.0/kdeui/icons/kicontheme.cpp.kde149705 kdelibs-4.10.0/kdeu
if ( *_theme == QLatin1String("hicolor") ) {
*_theme = defaultThemeName();
}
diff -up kdelibs-4.10.0/kdeui/kernel/kglobalsettings.cpp.kde149705 kdelibs-4.10.0/kdeui/kernel/kglobalsettings.cpp
--- kdelibs-4.10.0/kdeui/kernel/kglobalsettings.cpp.kde149705 2013-01-23 15:44:19.000000000 -0600
+++ kdelibs-4.10.0/kdeui/kernel/kglobalsettings.cpp 2013-01-31 07:40:19.163166653 -0600
@@ -942,7 +942,7 @@ void KGlobalSettings::Private::applyGUIS
diff -up kdelibs-4.2.85/kdeui/kernel/kglobalsettings.cpp.kde149705 kdelibs-4.2.85/kdeui/kernel/kglobalsettings.cpp
--- kdelibs-4.2.85/kdeui/kernel/kglobalsettings.cpp.kde149705 2009-03-27 15:47:33.000000000 +0100
+++ kdelibs-4.2.85/kdeui/kernel/kglobalsettings.cpp 2009-05-11 16:00:06.000000000 +0200
@@ -856,7 +856,7 @@ void KGlobalSettings::Private::applyGUIS
if (kde_overrideStyle.isEmpty()) {
const QString &defaultStyle = KStyle::defaultStyle();
const KConfigGroup pConfig(KGlobal::config(), "General");
@ -22,9 +22,9 @@ diff -up kdelibs-4.10.0/kdeui/kernel/kglobalsettings.cpp.kde149705 kdelibs-4.10.
if (styleStr.isEmpty() ||
// check whether we already use the correct style to return then
diff -up kdelibs-4.10.0/kutils/kdeglobals.kcfg.kde149705 kdelibs-4.10.0/kutils/kdeglobals.kcfg
--- kdelibs-4.10.0/kutils/kdeglobals.kcfg.kde149705 2013-01-23 15:44:26.000000000 -0600
+++ kdelibs-4.10.0/kutils/kdeglobals.kcfg 2013-01-31 07:40:19.164166641 -0600
diff -up kdelibs-4.2.85/kutils/kdeglobals.kcfg.kde149705 kdelibs-4.2.85/kutils/kdeglobals.kcfg
--- kdelibs-4.2.85/kutils/kdeglobals.kcfg.kde149705 2009-04-15 12:26:45.000000000 +0200
+++ kdelibs-4.2.85/kutils/kdeglobals.kcfg 2009-05-11 16:00:06.000000000 +0200
@@ -24,6 +24,10 @@
<whatsthis>The name of the widget style, for example &quot;keramik&quot; or &quot;plastik&quot;. Without quotes.</whatsthis>
<default>keramik</default>

View File

@ -0,0 +1,69 @@
diff -Nur kdelibs-4.3.1.orig/kio/kssl/kopenssl.cpp kdelibs-4.3.1/kio/kssl/kopenssl.cpp
--- kdelibs-4.3.1.orig/kio/kssl/kopenssl.cpp 2008-10-23 01:05:00.000000000 +0200
+++ kdelibs-4.3.1/kio/kssl/kopenssl.cpp 2009-09-04 14:09:22.000000000 +0200
@@ -196,6 +196,7 @@
static X509_NAME *(*K_X509_NAME_new)() = 0L;
static int (*K_X509_REQ_set_subject_name)(X509_REQ*,X509_NAME*) = 0L;
static unsigned char *(*K_ASN1_STRING_data)(ASN1_STRING*) = 0L;
+static int (*K_ASN1_STRING_length)(ASN1_STRING*) = 0L;
static STACK_OF(SSL_CIPHER) *(*K_SSL_get_ciphers)(const SSL *ssl) = 0L;
#endif
@@ -530,6 +531,7 @@
K_X509_NAME_new = (X509_NAME *(*)()) d->cryptoLib->resolveFunction("X509_NAME_new");
K_X509_REQ_set_subject_name = (int (*)(X509_REQ*,X509_NAME*)) d->cryptoLib->resolveFunction("X509_REQ_set_subject_name");
K_ASN1_STRING_data = (unsigned char *(*)(ASN1_STRING*)) d->cryptoLib->resolveFunction("ASN1_STRING_data");
+ K_ASN1_STRING_length = (int (*)(ASN1_STRING*)) d->cryptoLib->resolveFunction("ASN1_STRING_length");
#endif
}
@@ -1577,6 +1579,13 @@
return 0L;
}
+
+int KOpenSSLProxy::ASN1_STRING_length(ASN1_STRING *x) {
+ if (K_ASN1_STRING_length) return (K_ASN1_STRING_length)(x);
+ return 0L;
+}
+
+
STACK_OF(SSL_CIPHER) *KOpenSSLProxy::SSL_get_ciphers(const SSL* ssl) {
if (K_SSL_get_ciphers) return (K_SSL_get_ciphers)(ssl);
return 0L;
diff -Nur kdelibs-4.3.1.orig/kio/kssl/kopenssl.h kdelibs-4.3.1/kio/kssl/kopenssl.h
--- kdelibs-4.3.1.orig/kio/kssl/kopenssl.h 2009-05-19 14:06:53.000000000 +0200
+++ kdelibs-4.3.1/kio/kssl/kopenssl.h 2009-09-04 14:09:22.000000000 +0200
@@ -589,13 +589,17 @@
*/
void ASN1_INTEGER_free(ASN1_INTEGER *x);
-
/*
* ASN1_STRING_data
*/
unsigned char *ASN1_STRING_data(ASN1_STRING *x);
/*
+ * ASN1_STRING_length
+ */
+ int ASN1_STRING_length(ASN1_STRING *x);
+
+ /*
*
*/
int OBJ_obj2nid(ASN1_OBJECT *o);
diff -Nur kdelibs-4.3.1.orig/kio/kssl/ksslcertificate.cpp kdelibs-4.3.1/kio/kssl/ksslcertificate.cpp
--- kdelibs-4.3.1.orig/kio/kssl/ksslcertificate.cpp 2009-01-16 16:07:05.000000000 +0100
+++ kdelibs-4.3.1/kio/kssl/ksslcertificate.cpp 2009-09-04 14:09:22.000000000 +0200
@@ -1305,7 +1305,9 @@
}
QString s = (const char *)d->kossl->ASN1_STRING_data(val->d.ia5);
- if (!s.isEmpty()) {
+ if (!s.isEmpty() &&
+ /* skip subjectAltNames with embedded NULs */
+ s.length() == d->kossl->ASN1_STRING_length(val->d.ia5)) {
rc += s;
}
}

View File

@ -0,0 +1,78 @@
diff -up kdelibs-4.5.1/knewstuff/knewstuff2/core/security.cpp.gpg2 kdelibs-4.5.1/knewstuff/knewstuff2/core/security.cpp
--- kdelibs-4.5.1/knewstuff/knewstuff2/core/security.cpp.gpg2 2009-11-30 18:27:20.000000000 -0600
+++ kdelibs-4.5.1/knewstuff/knewstuff2/core/security.cpp 2010-08-27 10:49:10.619703933 -0500
@@ -61,7 +61,7 @@ void Security::readKeys()
m_runMode = List;
m_keys.clear();
m_process = new KProcess();
- *m_process << "gpg"
+ *m_process << "gpg2"
<< "--no-secmem-warning"
<< "--no-tty"
<< "--with-colon"
@@ -87,7 +87,7 @@ void Security::readSecretKeys()
}
m_runMode = ListSecret;
m_process = new KProcess();
- *m_process << "gpg"
+ *m_process << "gpg2"
<< "--no-secmem-warning"
<< "--no-tty"
<< "--with-colon"
@@ -258,7 +258,7 @@ void Security::slotCheckValidity()
//verify the signature
m_process = new KProcess();
- *m_process << "gpg"
+ *m_process << "gpg2"
<< "--no-secmem-warning"
<< "--status-fd=2"
<< "--command-fd=0"
@@ -340,7 +340,7 @@ void Security::slotSignFile()
//verify the signature
m_process = new KProcess();
- *m_process << "gpg"
+ *m_process << "gpg2"
<< "--no-secmem-warning"
<< "--status-fd=2"
<< "--command-fd=0"
diff -up kdelibs-4.5.1/knewstuff/knewstuff3/core/security.cpp.gpg2 kdelibs-4.5.1/knewstuff/knewstuff3/core/security.cpp
--- kdelibs-4.5.1/knewstuff/knewstuff3/core/security.cpp.gpg2 2009-11-30 18:27:19.000000000 -0600
+++ kdelibs-4.5.1/knewstuff/knewstuff3/core/security.cpp 2010-08-27 10:49:50.493454042 -0500
@@ -61,7 +61,7 @@ void Security::readKeys()
m_runMode = List;
m_keys.clear();
m_process = new KProcess();
- *m_process << "gpg"
+ *m_process << "gpg2"
<< "--no-secmem-warning"
<< "--no-tty"
<< "--with-colon"
@@ -87,7 +87,7 @@ void Security::readSecretKeys()
}
m_runMode = ListSecret;
m_process = new KProcess();
- *m_process << "gpg"
+ *m_process << "gpg2"
<< "--no-secmem-warning"
<< "--no-tty"
<< "--with-colon"
@@ -258,7 +258,7 @@ void Security::slotCheckValidity()
//verify the signature
m_process = new KProcess();
- *m_process << "gpg"
+ *m_process << "gpg2"
<< "--no-secmem-warning"
<< "--status-fd=2"
<< "--command-fd=0"
@@ -340,7 +340,7 @@ void Security::slotSignFile()
//verify the signature
m_process = new KProcess();
- *m_process << "gpg"
+ *m_process << "gpg2"
<< "--no-secmem-warning"
<< "--status-fd=2"
<< "--command-fd=0"

View File

@ -0,0 +1,12 @@
diff -up kdelibs-4.5.80/kio/kio/kprotocolmanager.cpp.branding kdelibs-4.5.80/kio/kio/kprotocolmanager.cpp
--- kdelibs-4.5.80/kio/kio/kprotocolmanager.cpp.branding 2010-11-05 05:48:26.000000000 -0500
+++ kdelibs-4.5.80/kio/kio/kprotocolmanager.cpp 2010-11-20 10:42:54.223363491 -0600
@@ -87,7 +87,7 @@ QL1S("Mozilla/5.0 (compatible; Konqueror
QString::number(KDE::versionMajor()) % QL1C('.') % QString::number(KDE::versionMinor()) % \
X % QL1S(") KHTML/") % \
QString::number(KDE::versionMajor()) % QL1C('.') % QString::number(KDE::versionMinor()) % \
-QL1C('.') % QString::number(KDE::versionRelease()) % QL1S(" (like Gecko)")
+QL1C('.') % QString::number(KDE::versionRelease()) % QL1S(" (like Gecko) Fedora/@@VERSION_RELEASE@@")
#define PRIVATE_DATA \
KProtocolManagerPrivate *d = kProtocolManagerPrivate

View File

@ -0,0 +1,26 @@
diff -up kdelibs-4.5.80/kdecore/kernel/kstandarddirs.cpp.kstandarddirs kdelibs-4.5.80/kdecore/kernel/kstandarddirs.cpp
--- kdelibs-4.5.80/kdecore/kernel/kstandarddirs.cpp.kstandarddirs 2010-11-20 16:04:10.456373049 -0600
+++ kdelibs-4.5.80/kdecore/kernel/kstandarddirs.cpp 2010-11-20 16:05:09.356363480 -0600
@@ -1125,7 +1125,9 @@ QStringList KStandardDirs::KStandardDirs
pit != prefixList->end();
++pit)
{
- if((*pit)!=installprefix||installdir.isEmpty())
+ // "exe" never has a custom install path, and the check triggers
+ // a false positive due to the libexecdir patch
+ if((*pit)!=installprefix||installdir.isEmpty()||!strcmp("exe", type))
{
for (QStringList::ConstIterator it = dirs.constBegin();
it != dirs.constEnd(); ++it)
@@ -1143,6 +1145,11 @@ QStringList KStandardDirs::KStandardDirs
if ((local || testdir.exists()) && !candidates.contains(path))
candidates.append(path);
}
+ // special-case "config" (forward porting Chris Cheney's
+ // hack) - we want /etc/kde after the local config paths
+ // and before the ones in /usr (including kde-profile)
+ if (local && !strcmp("config", type))
+ candidates.append(QLatin1String("/etc/kde/"));
local = false;
}
else

View File

@ -0,0 +1,60 @@
diff -up kdelibs-4.5.80/kdecore/kernel/kstandarddirs.cpp.libexecdir kdelibs-4.5.80/kdecore/kernel/kstandarddirs.cpp
--- kdelibs-4.5.80/kdecore/kernel/kstandarddirs.cpp.libexecdir 2010-11-19 04:52:23.000000000 -0600
+++ kdelibs-4.5.80/kdecore/kernel/kstandarddirs.cpp 2010-11-20 10:44:54.913612398 -0600
@@ -1842,7 +1842,7 @@ void KStandardDirs::addKDEDefaults()
addResourceType(types_string + types_indices[index], 0, types_string + types_indices[index+1], true);
index+=2;
}
- addResourceType("exe", "lib", "kde4/libexec", true );
+ addResourceType("exe", 0, "libexec/kde4", true );
addResourceDir("home", QDir::homePath(), false);
diff -up kdelibs-4.5.80/kdecore/kernel/kstandarddirs_unix.cpp.libexecdir kdelibs-4.5.80/kdecore/kernel/kstandarddirs_unix.cpp
--- kdelibs-4.5.80/kdecore/kernel/kstandarddirs_unix.cpp.libexecdir 2010-11-05 05:48:28.000000000 -0500
+++ kdelibs-4.5.80/kdecore/kernel/kstandarddirs_unix.cpp 2010-11-20 10:48:44.671378287 -0600
@@ -63,7 +63,7 @@ QString KStandardDirs::installPath(const
if (strcmp("lib", type) == 0)
return QFile::decodeName(LIB_INSTALL_DIR "/");
if (strcmp("libexec", type) == 0)
- return QFile::decodeName(KDEDIR "/lib" KDELIBSUFF "/kde4/libexec/");
+ return QFile::decodeName(LIBEXEC_INSTALL_DIR "/");
if (strcmp("locale", type) == 0)
return QFile::decodeName(LOCALE_INSTALL_DIR "/");
break;
diff -up kdelibs-4.5.80/kdecore/tests/kstandarddirstest.cpp.libexecdir kdelibs-4.5.80/kdecore/tests/kstandarddirstest.cpp
--- kdelibs-4.5.80/kdecore/tests/kstandarddirstest.cpp.libexecdir 2010-11-11 08:41:42.000000000 -0600
+++ kdelibs-4.5.80/kdecore/tests/kstandarddirstest.cpp 2010-11-20 10:44:54.914612189 -0600
@@ -94,8 +94,9 @@ void KStandarddirsTest::testFindResource
#define KIOSLAVE "bin/kioslave.exe"
#else
#define EXT ""
-#define KIOSLAVE "kde4/libexec/kioslave"
+#define KIOSLAVE "libexec/kde4/kioslave"
#endif
+
const QString bin = KGlobal::dirs()->findResource( "exe", "kioslave" EXT );
QVERIFY( !bin.isEmpty() );
QVERIFY( bin.endsWith( KIOSLAVE ) );
@@ -221,7 +222,8 @@ void KStandarddirsTest::testFindExe()
// findExe with a result in libexec
const QString lnusertemp = KGlobal::dirs()->findExe( "lnusertemp" );
QVERIFY( !lnusertemp.isEmpty() );
- QVERIFY( lnusertemp.endsWith( "lib" KDELIBSUFF "/kde4/libexec/lnusertemp" EXT, PATH_SENSITIVITY ) );
+ QVERIFY( lnusertemp.endsWith( "lib" KDELIBSUFF "/kde4/libexec/lnusertemp" EXT, PATH_SENSITIVITY )
+ || lnusertemp.endsWith( "libexec/kde4/lnusertemp" EXT, PATH_SENSITIVITY ) );
#endif
// Check the "exe" resource too
diff -up kdelibs-4.5.80/kio/tests/krununittest.cpp.libexecdir kdelibs-4.5.80/kio/tests/krununittest.cpp
--- kdelibs-4.5.80/kio/tests/krununittest.cpp.libexecdir 2010-11-05 05:48:27.000000000 -0500
+++ kdelibs-4.5.80/kio/tests/krununittest.cpp 2010-11-20 10:44:54.915612398 -0600
@@ -148,7 +148,7 @@ void KRunUnitTest::testProcessDesktopExe
if (kmailservice.isEmpty()) kmailservice = "kmailservice";
if (!kdeinit.isEmpty()) {
QVERIFY(!kmailservice.isEmpty());
- QVERIFY(kmailservice.contains("kde4/libexec"));
+ QVERIFY(kmailservice.contains("kde4/libexec") || kmailservice.contains("libexec/kde4"));
}
QTest::newRow("%U l0") << "kdeinit4 %U" << l0 << false << kdeinit;

View File

@ -1,7 +1,7 @@
diff -up kdelibs-4.10.0/cmake/modules/FindKDE4Internal.cmake.no_rpath kdelibs-4.10.0/cmake/modules/FindKDE4Internal.cmake
--- kdelibs-4.10.0/cmake/modules/FindKDE4Internal.cmake.no_rpath 2013-01-31 07:47:15.581960702 -0600
+++ kdelibs-4.10.0/cmake/modules/FindKDE4Internal.cmake 2013-01-31 07:47:15.583960677 -0600
@@ -1050,7 +1050,7 @@ if (UNIX)
diff -up kdelibs-4.5.80/cmake/modules/FindKDE4Internal.cmake.no_rpath kdelibs-4.5.80/cmake/modules/FindKDE4Internal.cmake
--- kdelibs-4.5.80/cmake/modules/FindKDE4Internal.cmake.no_rpath 2010-11-20 16:28:26.945612607 -0600
+++ kdelibs-4.5.80/cmake/modules/FindKDE4Internal.cmake 2010-11-20 18:18:01.926613935 -0600
@@ -1042,7 +1042,7 @@ if (UNIX)
set(CMAKE_SKIP_BUILD_RPATH FALSE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
@ -10,9 +10,9 @@ diff -up kdelibs-4.10.0/cmake/modules/FindKDE4Internal.cmake.no_rpath kdelibs-4.
endif (APPLE)
endif (UNIX)
diff -up kdelibs-4.10.0/kdewidgets/CMakeLists.txt.no_rpath kdelibs-4.10.0/kdewidgets/CMakeLists.txt
--- kdelibs-4.10.0/kdewidgets/CMakeLists.txt.no_rpath 2013-01-31 07:47:15.556961014 -0600
+++ kdelibs-4.10.0/kdewidgets/CMakeLists.txt 2013-01-31 07:47:15.583960677 -0600
diff -up kdelibs-4.5.80/kdewidgets/CMakeLists.txt.no_rpath kdelibs-4.5.80/kdewidgets/CMakeLists.txt
--- kdelibs-4.5.80/kdewidgets/CMakeLists.txt.no_rpath 2010-11-20 16:28:26.784363550 -0600
+++ kdelibs-4.5.80/kdewidgets/CMakeLists.txt 2010-11-20 18:20:09.111363760 -0600
@@ -46,14 +46,14 @@ if(QT_QTDESIGNER_FOUND)
kde4_add_plugin(kdewidgets ${kdewidgets_PART_SRCS})

View File

@ -1,6 +1,6 @@
diff -up kdelibs-4.9.95/cmake/modules/FindKDE4Internal.cmake.parallel_devel kdelibs-4.9.95/cmake/modules/FindKDE4Internal.cmake
--- kdelibs-4.9.95/cmake/modules/FindKDE4Internal.cmake.parallel_devel 2012-12-18 02:26:38.000000000 -0600
+++ kdelibs-4.9.95/cmake/modules/FindKDE4Internal.cmake 2012-12-19 15:21:37.963466601 -0600
diff -ur kdelibs-4.5.80/cmake/modules/FindKDE4Internal.cmake kdelibs-4.5.80-parallel_devel/cmake/modules/FindKDE4Internal.cmake
--- kdelibs-4.5.80/cmake/modules/FindKDE4Internal.cmake 2010-10-27 21:55:42.000000000 +0200
+++ kdelibs-4.5.80-parallel_devel/cmake/modules/FindKDE4Internal.cmake 2010-11-20 19:41:54.000000000 +0100
@@ -38,10 +38,10 @@
# The following variables are defined for the various tools required to
# compile KDE software:
@ -23,7 +23,7 @@ diff -up kdelibs-4.9.95/cmake/modules/FindKDE4Internal.cmake.parallel_devel kdel
# for Qt Designer plugins.
#
# KDE4_CREATE_FINAL_FILES (filename_CXX filename_C file1 ... fileN)
@@ -509,31 +509,31 @@ if (_kdeBootStrapping)
@@ -506,31 +506,31 @@
set(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH} )
# CMAKE_CFG_INTDIR is the output subdirectory created e.g. by XCode and MSVC
if (NOT WINCE)
@ -62,7 +62,7 @@ diff -up kdelibs-4.9.95/cmake/modules/FindKDE4Internal.cmake.parallel_devel kdel
set( _KDE4_MEINPROC_EXECUTABLE_DEP meinproc4)
set(KDE4_INSTALLED_VERSION_OK TRUE)
@@ -582,7 +582,8 @@ else (_kdeBootStrapping)
@@ -579,7 +579,8 @@
# KDE4_LIB_INSTALL_DIR and KDE4_INCLUDE_INSTALL_DIR are set in KDELibsDependencies.cmake,
# use them to set the KDE4_LIB_DIR and KDE4_INCLUDE_DIR "public interface" variables
@ -72,7 +72,7 @@ diff -up kdelibs-4.9.95/cmake/modules/FindKDE4Internal.cmake.parallel_devel kdel
set(KDE4_INCLUDE_DIR ${KDE4_INCLUDE_INSTALL_DIR} )
@@ -596,18 +597,18 @@ else (_kdeBootStrapping)
@@ -593,18 +594,18 @@
# get the build CONFIGURATIONS which were exported in this file, and use just the first
# of them to get the location of the installed executables
@ -95,7 +95,7 @@ diff -up kdelibs-4.9.95/cmake/modules/FindKDE4Internal.cmake.parallel_devel kdel
# allow searching cmake modules in all given kde install locations (KDEDIRS based)
execute_process(COMMAND "${KDE4_KDECONFIG_EXECUTABLE}" --path data OUTPUT_VARIABLE _data_DIR ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
@@ -934,7 +935,8 @@ set(CMAKE_SYSTEM_INCLUDE_PATH ${CMAKE_SY
@@ -930,7 +931,8 @@
set(CMAKE_SYSTEM_PROGRAM_PATH ${CMAKE_SYSTEM_PROGRAM_PATH}
"${KDE4_BIN_INSTALL_DIR}" )
@ -105,7 +105,7 @@ diff -up kdelibs-4.9.95/cmake/modules/FindKDE4Internal.cmake.parallel_devel kdel
"${KDE4_LIB_INSTALL_DIR}" )
# under Windows dlls may be also installed in bin/
@@ -1363,9 +1365,9 @@ macro (KDE4_PRINT_RESULTS)
@@ -1360,9 +1362,9 @@
endif (NOT _kdeBootStrapping)
if(KDE4_KCFGC_EXECUTABLE)
@ -117,7 +117,7 @@ diff -up kdelibs-4.9.95/cmake/modules/FindKDE4Internal.cmake.parallel_devel kdel
endif(KDE4_KCFGC_EXECUTABLE)
if(AUTOMOC4_EXECUTABLE)
@@ -1384,7 +1386,7 @@ if (KDE4Internal_FIND_REQUIRED AND NOT K
@@ -1381,7 +1383,7 @@
endif (NOT KDE4_INSTALLED_VERSION_OK)
if (NOT KDE4_KCFGC_EXECUTABLE)
@ -126,9 +126,9 @@ diff -up kdelibs-4.9.95/cmake/modules/FindKDE4Internal.cmake.parallel_devel kdel
endif (NOT KDE4_KCFGC_EXECUTABLE)
message(FATAL_ERROR "ERROR: could NOT find everything required for compiling KDE 4 programs")
diff -up kdelibs-4.9.95/doc/api/doxygen-preprocess-kcfg.sh.parallel_devel kdelibs-4.9.95/doc/api/doxygen-preprocess-kcfg.sh
--- kdelibs-4.9.95/doc/api/doxygen-preprocess-kcfg.sh.parallel_devel 2012-12-17 08:14:16.000000000 -0600
+++ kdelibs-4.9.95/doc/api/doxygen-preprocess-kcfg.sh 2012-12-19 15:21:37.963466601 -0600
diff -ur kdelibs-4.5.80/doc/api/doxygen-preprocess-kcfg.sh kdelibs-4.5.80-parallel_devel/doc/api/doxygen-preprocess-kcfg.sh
--- kdelibs-4.5.80/doc/api/doxygen-preprocess-kcfg.sh 2008-05-21 13:07:26.000000000 +0200
+++ kdelibs-4.5.80-parallel_devel/doc/api/doxygen-preprocess-kcfg.sh 2010-11-20 19:30:18.000000000 +0100
@@ -2,9 +2,9 @@
# Generates and cleans KConfigXT source code during a API dox build
#
@ -141,10 +141,10 @@ diff -up kdelibs-4.9.95/doc/api/doxygen-preprocess-kcfg.sh.parallel_devel kdelib
exit 1;
fi
diff -up kdelibs-4.9.95/kdecore/kconfig_compiler/checkkcfg.pl.parallel_devel kdelibs-4.9.95/kdecore/kconfig_compiler/checkkcfg.pl
--- kdelibs-4.9.95/kdecore/kconfig_compiler/checkkcfg.pl.parallel_devel 2012-12-17 08:14:16.000000000 -0600
+++ kdelibs-4.9.95/kdecore/kconfig_compiler/checkkcfg.pl 2012-12-19 15:21:37.963466601 -0600
@@ -15,12 +15,12 @@ $file_cpp = "$filebase.cpp";
diff -ur kdelibs-4.5.80/kdecore/kconfig_compiler/checkkcfg.pl kdelibs-4.5.80-parallel_devel/kdecore/kconfig_compiler/checkkcfg.pl
--- kdelibs-4.5.80/kdecore/kconfig_compiler/checkkcfg.pl 2008-05-21 13:09:13.000000000 +0200
+++ kdelibs-4.5.80-parallel_devel/kdecore/kconfig_compiler/checkkcfg.pl 2010-11-20 19:30:18.000000000 +0100
@@ -15,12 +15,12 @@
$kcfgc = $file . "c";
@ -159,9 +159,9 @@ diff -up kdelibs-4.9.95/kdecore/kconfig_compiler/checkkcfg.pl.parallel_devel kde
exit 1;
}
diff -up kdelibs-4.9.95/kdecore/kconfig_compiler/CMakeLists.txt.parallel_devel kdelibs-4.9.95/kdecore/kconfig_compiler/CMakeLists.txt
--- kdelibs-4.9.95/kdecore/kconfig_compiler/CMakeLists.txt.parallel_devel 2012-12-17 08:14:16.000000000 -0600
+++ kdelibs-4.9.95/kdecore/kconfig_compiler/CMakeLists.txt 2012-12-19 15:21:37.964466589 -0600
diff -ur kdelibs-4.5.80/kdecore/kconfig_compiler/CMakeLists.txt kdelibs-4.5.80-parallel_devel/kdecore/kconfig_compiler/CMakeLists.txt
--- kdelibs-4.5.80/kdecore/kconfig_compiler/CMakeLists.txt 2010-05-27 19:25:31.000000000 +0200
+++ kdelibs-4.5.80-parallel_devel/kdecore/kconfig_compiler/CMakeLists.txt 2010-11-20 19:30:18.000000000 +0100
@@ -11,13 +11,13 @@
set(kconfig_compiler_SRCS kconfig_compiler.cpp)
@ -179,10 +179,10 @@ diff -up kdelibs-4.9.95/kdecore/kconfig_compiler/CMakeLists.txt.parallel_devel k
# # export this binary for cross-compilation
diff -up kdelibs-4.9.95/kdeui/tests/kconfig_compiler/CMakeLists.txt.parallel_devel kdelibs-4.9.95/kdeui/tests/kconfig_compiler/CMakeLists.txt
--- kdelibs-4.9.95/kdeui/tests/kconfig_compiler/CMakeLists.txt.parallel_devel 2012-12-17 08:14:16.000000000 -0600
+++ kdelibs-4.9.95/kdeui/tests/kconfig_compiler/CMakeLists.txt 2012-12-19 15:21:37.964466589 -0600
@@ -9,7 +9,7 @@ macro(GEN_KCFG_TEST_SOURCE _testName _sr
diff -ur kdelibs-4.5.80/kdeui/tests/kconfig_compiler/CMakeLists.txt kdelibs-4.5.80-parallel_devel/kdeui/tests/kconfig_compiler/CMakeLists.txt
--- kdelibs-4.5.80/kdeui/tests/kconfig_compiler/CMakeLists.txt 2009-08-12 12:00:20.000000000 +0200
+++ kdelibs-4.5.80-parallel_devel/kdeui/tests/kconfig_compiler/CMakeLists.txt 2010-11-20 19:30:18.000000000 +0100
@@ -9,7 +9,7 @@
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_testName}.cpp ${CMAKE_CURRENT_BINARY_DIR}/${_testName}.h
COMMAND ${KDE4_KCFGC_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${_testName}.kcfg ${CMAKE_CURRENT_SOURCE_DIR}/${_testName}.kcfgc
@ -191,10 +191,10 @@ diff -up kdelibs-4.9.95/kdeui/tests/kconfig_compiler/CMakeLists.txt.parallel_dev
# set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${_testName}.h PROPERTIES GENERATED TRUE)
qt4_generate_moc(${CMAKE_CURRENT_BINARY_DIR}/${_testName}.h ${CMAKE_CURRENT_BINARY_DIR}/${_testName}.moc )
diff -up kdelibs-4.9.95/kdewidgets/CMakeLists.txt.parallel_devel kdelibs-4.9.95/kdewidgets/CMakeLists.txt
--- kdelibs-4.9.95/kdewidgets/CMakeLists.txt.parallel_devel 2012-12-17 08:14:16.000000000 -0600
+++ kdelibs-4.9.95/kdewidgets/CMakeLists.txt 2012-12-19 15:21:37.964466589 -0600
@@ -14,24 +14,24 @@ include_directories(
diff -ur kdelibs-4.5.80/kdewidgets/CMakeLists.txt kdelibs-4.5.80-parallel_devel/kdewidgets/CMakeLists.txt
--- kdelibs-4.5.80/kdewidgets/CMakeLists.txt 2010-11-05 11:48:27.000000000 +0100
+++ kdelibs-4.5.80-parallel_devel/kdewidgets/CMakeLists.txt 2010-11-20 19:34:43.000000000 +0100
@@ -14,24 +14,24 @@
set(makekdewidgets_SRCS makekdewidgets.cpp )
@ -224,7 +224,7 @@ diff -up kdelibs-4.9.95/kdewidgets/CMakeLists.txt.parallel_devel kdelibs-4.9.95/
set(kdewidgets_PART_SRCS
classpreviews.cpp
@@ -61,7 +61,7 @@ if(QT_QTDESIGNER_FOUND)
@@ -61,7 +61,7 @@
if(NOT KDE_NO_DEPRECATED)
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/kdedeprecated.cpp
COMMAND "${MAKEKDEWIDGETS_EXECUTABLE}" -o ${CMAKE_CURRENT_BINARY_DIR}/kdedeprecated.cpp ${CMAKE_CURRENT_SOURCE_DIR}/kdedeprecated.widgets
@ -233,7 +233,7 @@ diff -up kdelibs-4.9.95/kdewidgets/CMakeLists.txt.parallel_devel kdelibs-4.9.95/
set(kdedeprecated_PART_SRCS
classpreviews.cpp
@@ -96,7 +96,7 @@ if(QT_QTDESIGNER_FOUND)
@@ -96,7 +96,7 @@
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/kdewebkitwidgets.cpp
COMMAND "${MAKEKDEWIDGETS_EXECUTABLE}" -o ${CMAKE_CURRENT_BINARY_DIR}/kdewebkitwidgets.cpp ${CMAKE_CURRENT_SOURCE_DIR}/kdewebkit.widgets
@ -242,7 +242,7 @@ diff -up kdelibs-4.9.95/kdewidgets/CMakeLists.txt.parallel_devel kdelibs-4.9.95/
set(kdewebkitwidgets_PART_SRCS
classpreviews.cpp
@@ -132,7 +132,7 @@ if(QT_QTDESIGNER_FOUND)
@@ -132,7 +132,7 @@
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/kde3supportwidgets.cpp
COMMAND "${MAKEKDEWIDGETS_EXECUTABLE}" -o ${CMAKE_CURRENT_BINARY_DIR}/kde3supportwidgets.cpp ${CMAKE_CURRENT_SOURCE_DIR}/kde3support.widgets

View File

@ -0,0 +1,110 @@
diff --git a/kio/misc/mms.protocol b/kio/misc/mms.protocol
index 286ccd8..e8afbdb 100644
--- a/kio/misc/mms.protocol
+++ b/kio/misc/mms.protocol
@@ -1,7 +1,7 @@
[Protocol]
helper=true
exec=
-defaultMimetype=uri/mms
+defaultMimetype=x-scheme-handler/mms
protocol=mms
input=none
output=none
diff --git a/kio/misc/mmst.protocol b/kio/misc/mmst.protocol
index 1f0f763..455694a 100644
--- a/kio/misc/mmst.protocol
+++ b/kio/misc/mmst.protocol
@@ -1,5 +1,5 @@
[Protocol]
-defaultMimetype=uri/mmst
+defaultMimetype=x-scheme-handler/mmst
exec=
protocol=mmst
input=none
diff --git a/kio/misc/mmsu.protocol b/kio/misc/mmsu.protocol
index deda935..1c1a7f6 100644
--- a/kio/misc/mmsu.protocol
+++ b/kio/misc/mmsu.protocol
@@ -1,5 +1,5 @@
[Protocol]
-defaultMimetype=uri/mmsu
+defaultMimetype=x-scheme-handler/mmsu
exec=
protocol=mmsu
input=none
diff --git a/kio/misc/pnm.protocol b/kio/misc/pnm.protocol
index 3ca3a7d..fe44c37 100644
--- a/kio/misc/pnm.protocol
+++ b/kio/misc/pnm.protocol
@@ -1,5 +1,5 @@
[Protocol]
-defaultMimetype=uri/pnm
+defaultMimetype=x-scheme-handler/pnm
exec=
protocol=pnm
input=none
diff --git a/kio/misc/rtspt.protocol b/kio/misc/rtspt.protocol
index 9e4fe96..4d86282 100644
--- a/kio/misc/rtspt.protocol
+++ b/kio/misc/rtspt.protocol
@@ -1,5 +1,5 @@
[Protocol]
-defaultMimetype=uri/rtspt
+defaultMimetype=x-scheme-handler/rtspt
exec=
protocol=rtspt
input=none
diff --git a/kio/misc/rtspu.protocol b/kio/misc/rtspu.protocol
index 9cc9299..5fc9d6b 100644
--- a/kio/misc/rtspu.protocol
+++ b/kio/misc/rtspu.protocol
@@ -1,5 +1,5 @@
[Protocol]
-defaultMimetype=uri/rtspu
+defaultMimetype=x-scheme-handler/rtspu
exec=
protocol=rtspu
input=none
diff --git a/mimetypes/kde.xml b/mimetypes/kde.xml
index 2810b5b..8de16f6 100644
--- a/mimetypes/kde.xml
+++ b/mimetypes/kde.xml
@@ -187,24 +187,30 @@ Notes:
<comment>all files</comment>
</mime-type>
- <!-- uri/ fake mime types -->
- <mime-type type="uri/mms">
+ <!-- x-scheme-handler/ fake(ish) mime types -->
+ <mime-type type="x-scheme-handler/mms">
<comment>mms: URIs</comment>
+ <alias type="uri/mms"/>
</mime-type>
- <mime-type type="uri/mmst">
+ <mime-type type="x-scheme-handler/mmst">
<comment>mmst: URIs</comment>
+ <alias type="uri/mmst"/>
</mime-type>
- <mime-type type="uri/mmsu">
+ <mime-type type="x-scheme-handler/mmsu">
<comment>mmsu: URIs</comment>
+ <alias type="uri/mmsu"/>
</mime-type>
- <mime-type type="uri/pnm">
+ <mime-type type="x-scheme-handler/pnm">
<comment>pnm: URIs</comment>
+ <alias type="uri/pnm"/>
</mime-type>
- <mime-type type="uri/rtspt">
+ <mime-type type="x-scheme-handler/rtspt">
<comment>rtspt: URIs</comment>
+ <alias type="uri/rtspt"/>
</mime-type>
- <mime-type type="uri/rtspu">
+ <mime-type type="x-scheme-handler/rtspu">
<comment>rtspu: URIs</comment>
+ <alias type="uri/rtspu"/>
</mime-type>
<mime-type type="application/vnd.kde.fontspackage">

View File

@ -0,0 +1,395 @@
diff -up kdelibs-4.6.4/kdoctools/CMakeLists.txt.kdoctools_docbook kdelibs-4.6.4/kdoctools/CMakeLists.txt
--- kdelibs-4.6.4/kdoctools/CMakeLists.txt.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/CMakeLists.txt 2011-06-27 09:36:41.976238333 -0500
@@ -217,9 +217,7 @@ add_custom_command( TARGET docbookl10nhe
${DOCBOOKXSL_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/customization/xsl
${CMAKE_CURRENT_BINARY_DIR}/customization/xsl
)
-# all-l10n.xml and kde-custom-l10n.xml are generated by docbookl10nhelper
+# all-l10n.xml is generated by docbookl10nhelper
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/customization/xsl/all-l10n.xml
DESTINATION ${DATA_INSTALL_DIR}/ksgmltools2/customization/xsl/ )
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/customization/xsl/kde-custom-l10n.xml
- DESTINATION ${DATA_INSTALL_DIR}/ksgmltools2/customization/xsl/ )
diff -up kdelibs-4.6.4/kdoctools/customization/kde-include-common.xsl.cmake.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/kde-include-common.xsl.cmake
--- kdelibs-4.6.4/kdoctools/customization/kde-include-common.xsl.cmake.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/kde-include-common.xsl.cmake 2011-06-27 09:36:41.977238320 -0500
@@ -5,6 +5,5 @@
<xsl:import href="@DOCBOOKXSL_DIR@/html/chunk.xsl"/>
<xsl:param name="l10n.xml" select="document('xsl/all-l10n.xml')"/>
- <xsl:param name="local.l10n.xml" select="document('xsl/kde-custom-l10n.xml')"/>
-
+ <xsl:param name="local.l10n.xml" select="document(concat('xsl/',/*/@lang,'.xml'))"/>
</xsl:stylesheet>
diff -up kdelibs-4.6.4/kdoctools/customization/kde-include-man.xsl.cmake.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/kde-include-man.xsl.cmake
--- kdelibs-4.6.4/kdoctools/customization/kde-include-man.xsl.cmake.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/kde-include-man.xsl.cmake 2011-06-27 09:36:41.977238320 -0500
@@ -7,6 +7,5 @@
<xsl:output method="text" encoding="UTF-8" indent="no"/>
<xsl:param name="l10n.xml" select="document('xsl/all-l10n.xml')"/>
- <xsl:param name="local.l10n.xml" select="document('xsl/kde-custom-l10n.xml')"/>
</xsl:stylesheet>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/ca.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/ca.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/ca.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/ca.xml 2011-06-27 09:36:41.977238320 -0500
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ca" english-language-name="Catalan">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="ca" english-language-name="Catalan">
<l:gentext key="footer-doc-comment" text="Voleu fer un comentari o col&#183;laborar amb una actualitzaci&#243; d'aquesta p&#224;gina?"/>
<l:gentext key="footer-doc-feedback" text="Envieu els comentaris a "/>
<l:gentext key="footer-doc-teamname" text="l'equip de Documentaci&#243; del KDE"/>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/de.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/de.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/de.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/de.xml 2011-06-27 09:36:41.978238308 -0500
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="de" english-language-name="German">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="de" english-language-name="German">
<l:gentext key="footer-doc-comment" text="M&#246;chten Sie Kommentare und Verbesserungen zu dieser Seite beitragen?"/>
<l:gentext key="footer-doc-feedback" text="Senden Sie Ihre Vorschl&#228;ge an das "/>
<l:gentext key="footer-doc-teamname" text="KDE Dokumentationsteam"/>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/el.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/el.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/el.xml.kdoctools_docbook 2011-04-01 08:56:18.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/el.xml 2011-06-27 09:36:41.978238308 -0500
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="el" english-language-name="Greek">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="el" english-language-name="Greek">
<l:gentext key="footer-doc-comment" text="&#917;&#960;&#953;&#952;&#965;&#956;&#949;&#943;&#964;&#949; &#957;&#945; &#954;&#940;&#957;&#949;&#964;&#949; &#941;&#957;&#945; &#963;&#967;&#972;&#955;&#953;&#959; &#942; &#957;&#945; &#963;&#965;&#957;&#949;&#953;&#963;&#966;&#941;&#961;&#949;&#964;&#949; &#963;&#964;&#959; &#960;&#949;&#961;&#953;&#949;&#967;&#972;&#956;&#949;&#957;&#959; &#945;&#965;&#964;&#942;&#962; &#964;&#951;&#962; &#963;&#949;&#955;&#943;&#948;&#945;&#962;;"/>
<l:gentext key="footer-doc-feedback" text="&#931;&#964;&#949;&#943;&#955;&#964;&#949; &#964;&#953;&#962; &#963;&#965;&#957;&#949;&#953;&#963;&#966;&#959;&#961;&#941;&#962; &#963;&#945;&#962; &#963;&#964;&#951;&#957; "/>
@@ -53,3 +53,4 @@
<l:template name="Sun" text="&#922;&#965;&#961;"/>
</l:context>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/en.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/en.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/en.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/en.xml 2011-06-27 09:36:41.978238308 -0500
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="en" english-language-name="English">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="en" english-language-name="English">
<l:gentext key="nav-home" text="Contents"/>
@@ -7,3 +7,4 @@
<l:gentext key="footer-doc-feedback" text="Send feedback to the "/>
<l:gentext key="footer-doc-teamname" text="KDE Docs Team"/>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/es.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/es.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/es.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/es.xml 2011-06-27 09:36:41.978238308 -0500
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="es" english-language-name="Spanish">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="es" english-language-name="Spanish">
<l:gentext key="footer-doc-comment" text="&#191;Le gustar&#237;a hacer alg&#250;n comentario o aportar una actualizaci&#243;n a esta p&#225;gina?"/>
<l:gentext key="footer-doc-feedback" text="Env&#237;e sus comentarios al "/>
<l:gentext key="footer-doc-teamname" text="equipo de documentaci&#243;n de KDE"/>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/et.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/et.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/et.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/et.xml 2011-06-27 09:36:41.978238308 -0500
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="et" english-language-name="Estonian">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="et" english-language-name="Estonian">
<l:gentext key="RevHistory" text="Versioonide ajalugu"/>
<l:gentext key="revhistory" text="Versioonide ajalugu"/>
<l:gentext key="revision" text="Versioon"/>
@@ -9,3 +9,4 @@
<l:gentext key="footer-doc-feedback" text="Saada oma tagasiside "/>
<l:gentext key="footer-doc-teamname" text="KDE dokumentatsiooni meeskonnale"/>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/fr.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/fr.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/fr.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/fr.xml 2011-06-27 09:36:41.979238296 -0500
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="fr" english-language-name="French">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="fr" english-language-name="French">
<l:gentext key="footer-doc-comment" text="Vous souhaitez faire un commentaire ou participer au contenu de cette page&#160;?"/>
<l:gentext key="footer-doc-feedback" text="Envoyez vos contributions &#224; l'"/>
<l:gentext key="footer-doc-teamname" text="&#233;quipe de documentation de KDE"/>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/gl.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/gl.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/gl.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/gl.xml 2011-06-27 09:36:41.979238296 -0500
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="gl" english-language-name="Galician">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="gl" english-language-name="Galician">
<l:gentext key="footer-doc-comment" text="Desexa facer un comentario ou actualizar esta páxina?"/>
<l:gentext key="footer-doc-feedback" text="Envíe as súas aportacións á "/>
<l:gentext key="footer-doc-teamname" text="Equipa de documentación de KDE"/>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/it.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/it.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/it.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/it.xml 2011-06-27 09:36:41.979238296 -0500
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="it" english-language-name="Italian">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="it" english-language-name="Italian">
<l:dingbat key="startquote" text="&#171;"/>
<l:dingbat key="endquote" text="&#187;"/>
<l:dingbat key="nestedstartquote" text="&#8220;"/>
@@ -46,3 +46,4 @@
<l:template name="table" text="Tabella&#160;%n, &#171;%t&#187;"/>
</l:context>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/lt.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/lt.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/lt.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/lt.xml 2011-06-27 09:36:41.979238296 -0500
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="lt" english-language-name="Lithuanian">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="lt" english-language-name="Lithuanian">
<l:gentext key="footer-doc-comment" text="Ar nor&#279;tum&#279;te pakomentuoti ar atnaujinti &#353;&#303; puslap&#303;?"/>
<l:gentext key="footer-doc-feedback" text="Atsiliepimus si&#371;skite "/>
<l:gentext key="footer-doc-teamname" text="KDE dokumentacijos komanda"/>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/nl.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/nl.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/nl.xml.kdoctools_docbook 2011-04-01 08:56:18.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/nl.xml 2011-06-27 09:37:46.817427707 -0500
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="nl" english-language-name="Dutch">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="nl" english-language-name="Dutch">
<l:gentext key="footer-doc-comment" text="Wilt u een opmerking maken of een bijdragen leveren aan deze pagina?"/>
<l:gentext key="footer-doc-feedback" text="Stuur uw bericht aan het "/>
<l:gentext key="footer-doc-teamname" text="KDE Documentatieteam"/>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/nn.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/nn.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/nn.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/nn.xml 2011-06-27 09:36:41.980238284 -0500
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="nn" english-language-name="Norwegian Nynorsk">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="nn" english-language-name="Norwegian Nynorsk">
<l:gentext key="abstract" text="samandrag"/>
<l:gentext key="Bibliography" text="Litteratur"/>
@@ -200,3 +200,4 @@
</l:context>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/pl.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/pl.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/pl.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/pl.xml 2011-06-27 09:36:41.980238284 -0500
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="pl" english-language-name="Polish">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="pl" english-language-name="Polish">
<l:gentext key="footer-doc-comment" text="Je&#347;li chcesz skomentowa&#263; t&#261; stron&#281; lub j&#261; uaktualni&#263; "/>
<l:gentext key="footer-doc-feedback" text="Wy&#347;lij swoje uwagi (po angielsku) do "/>
<l:gentext key="footer-doc-teamname" text="Zespo&#322;u dokumentacji KDE"/>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/pt_br.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/pt_br.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/pt_br.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/pt_br.xml 2011-06-27 09:36:41.981238272 -0500
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="pt_br" english-language-name="Portuguese (Brazil)">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="pt_br" english-language-name="Portuguese (Brazil)">
<l:gentext key="footer-doc-comment" text="Gostaria de fazer um coment&#225;rio ou contribuir com uma atualiza&#231;&#227;o para esta p&#225;gina?"/>
<l:gentext key="footer-doc-feedback" text="Envie uma mensagem para a "/>
<l:gentext key="footer-doc-teamname" text="Equipe de Documenta&#231;&#227;o do KDE"/>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/pt.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/pt.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/pt.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/pt.xml 2011-06-27 09:36:41.980238284 -0500
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="pt" english-language-name="Portuguese">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="pt" english-language-name="Portuguese">
<l:gentext key="footer-doc-comment" text="Would you like to make a comment or contribute an update to this page?"/>
<l:gentext key="footer-doc-feedback" text="Send feedback to the "/>
<l:gentext key="footer-doc-teamname" text="KDE Docs Team"/>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/ru.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/ru.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/ru.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/ru.xml 2011-06-27 09:36:41.981238272 -0500
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ru" english-language-name="Russian">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="ru" english-language-name="Russian">
<l:gentext key="footer-doc-comment" text="Вам есть что добавить на эту страницу?"/>
<l:gentext key="footer-doc-feedback" text="Напишите "/>
<l:gentext key="footer-doc-teamname" text="команде документации KDE"/>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/sl.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/sl.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/sl.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/sl.xml 2011-06-27 09:36:41.981238272 -0500
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="sl" english-language-name="Slovenian">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="sl" english-language-name="Slovenian">
<l:gentext key="PubDate" text="Datum objave"/>
<l:gentext key="pubdate" text="Datum objave"/>
@@ -119,3 +119,4 @@
</l:context>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/sr.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/sr.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/sr.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/sr.xml 2011-06-27 09:36:41.982238259 -0500
@@ -1,6 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"
- language="sr"
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="sr"
english-language-name="Serbian">
<l:gentext key="Abstract" text="Сажетак"/>
@@ -692,3 +691,4 @@
<l:l i="56">z</l:l>
</l:letters>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/sv.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/sv.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/sv.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/sv.xml 2011-06-27 09:36:41.982238259 -0500
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="sv" english-language-name="Swedish">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="sv" english-language-name="Swedish">
<l:gentext key="footer-doc-comment" text="Vill du ge en kommentar eller bidra med en uppdatering av den h&#228;r sidan?"/>
<l:gentext key="footer-doc-feedback" text="Skicka dina f&#246;rslag till "/>
<l:gentext key="footer-doc-teamname" text="KDE:s dokumentationsgrupp"/>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/tr.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/tr.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/tr.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/tr.xml 2011-06-27 09:36:41.982238259 -0500
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="tr" english-language-name="Turkish">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="tr" english-language-name="Turkish">
<l:gentext key="footer-doc-comment" text="Bu sayfa hakk&#305;nda bir yorum yapmak ya da katk&#305;da bulunmak ister misniz?"/>
<l:gentext key="footer-doc-feedback" text="Geribildirimlerinizi g&#246;nderin "/>
<l:gentext key="footer-doc-teamname" text="KDE Belgelendirme Ekibi"/>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/customization/xsl/uk.xml.kdoctools_docbook kdelibs-4.6.4/kdoctools/customization/xsl/uk.xml
--- kdelibs-4.6.4/kdoctools/customization/xsl/uk.xml.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/customization/xsl/uk.xml 2011-06-27 09:36:41.982238259 -0500
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="uk" english-language-name="Ukranian">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="uk" english-language-name="Ukranian">
<l:gentext key="Bibliography" text="&#1051;&#1110;&#1090;&#1077;&#1088;&#1072;&#1090;&#1091;&#1088;&#1072;"/>
<l:gentext key="bibliography" text="&#1083;&#1110;&#1090;&#1077;&#1088;&#1072;&#1090;&#1091;&#1088;&#1072;"/>
@@ -33,3 +33,4 @@
<l:gentext key="footer-doc-teamname" text="&#1050;&#1086;&#1084;&#1072;&#1085;&#1076;&#1080; &#1079; &#1076;&#1086;&#1082;&#1091;&#1084;&#1077;&#1085;&#1090;&#1091;&#1074;&#1072;&#1085;&#1085;&#1103; KDE"/>
</l:l10n>
+</l:i18n>
diff -up kdelibs-4.6.4/kdoctools/docbookl10nhelper.cpp.kdoctools_docbook kdelibs-4.6.4/kdoctools/docbookl10nhelper.cpp
--- kdelibs-4.6.4/kdoctools/docbookl10nhelper.cpp.kdoctools_docbook 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdoctools/docbookl10nhelper.cpp 2011-06-27 09:36:41.983238246 -0500
@@ -85,6 +85,39 @@ int writeLangFile( const QString &fname,
return( 0 );
}
+int writeLangFileNew( const QString &fname, const QString &dtdPath,
+ const LangListType &langMap ) {
+
+ QFile outFile( fname );
+ if ( ! outFile.open( QIODevice::WriteOnly ) ) {
+ qCritical() << QString( "Could not write %1" )
+ .arg( outFile.fileName() );
+ return( 1 );
+ }
+
+ QTextStream outStream( &outFile );
+ outStream << "<?xml version='1.0'?>" << endl;
+ outStream << QString( "<!DOCTYPE l:i18n SYSTEM \"%1\">" )
+ .arg( dtdPath ) << endl;
+
+ if ( langMap.size() > 0 ) {
+ outStream
+ << "<l:i18n xmlns:l=\"http://docbook.sourceforge.net/xmlns/l10n/1.0\">"
+ << endl;
+ LangListType::const_iterator i = langMap.constBegin();
+ while ( i != langMap.constEnd() ) {
+ outStream << QString( "<l:l10n language=\"%1\" href=\"%2\"/>" )
+ .arg( (*i).first ).arg( (*i).second ) << endl;
+ ++i;
+ }
+ outStream << "</l:i18n>" << endl;
+ }
+
+ outFile.close();
+
+ return( 0 );
+}
+
inline const QString addTrailingSlash( const QString &p ) {
return p.endsWith( "/" ) ? p : p + "/";
}
@@ -199,11 +232,16 @@ int main( int argc, char **argv ) {
++i;
}
+ int res = 0;
- int res = writeLangFile( all10nFName, l10nDir + "common/l10n.dtd",
- allLangs );
- res += writeLangFile( customl10nFName, l10nDir + "common/l10n.dtd",
- customLangs );
+ if ( foundRxEntity ) {
+ /* old style (docbook-xsl<=1.75) */
+ res = writeLangFile( all10nFName, l10nDir + "common/l10n.dtd",
+ allLangs );
+ } else {
+ res = writeLangFileNew( all10nFName, l10nDir + "common/l10n.dtd",
+ allLangs );
+ }
return( res );
}

View File

@ -0,0 +1,13 @@
diff -up kdelibs-4.6.4/kdeui/notifications/kstatusnotifieritemdbus_p.cpp.kstatusnotifieritemdbus_leak kdelibs-4.6.4/kdeui/notifications/kstatusnotifieritemdbus_p.cpp
--- kdelibs-4.6.4/kdeui/notifications/kstatusnotifieritemdbus_p.cpp.kstatusnotifieritemdbus_leak 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.4/kdeui/notifications/kstatusnotifieritemdbus_p.cpp 2011-06-30 14:45:28.256526029 -0500
@@ -174,7 +174,9 @@ KStatusNotifierItemDBus::KStatusNotifier
KStatusNotifierItemDBus::~KStatusNotifierItemDBus()
{
+ m_dbus.unregisterObject("/StatusNotifierItem");
m_dbus.unregisterService(m_service);
+ m_dbus.disconnectFromBus(m_service);
}
QDBusConnection KStatusNotifierItemDBus::dbusConnection() const

View File

@ -0,0 +1,16 @@
diff -up kdelibs-4.7.3/khtml/css/cssparser.cpp.orig kdelibs-4.7.3/khtml/css/cssparser.cpp
--- kdelibs-4.7.3/khtml/css/cssparser.cpp.orig 2011-11-07 19:14:53.000000000 +0100
+++ kdelibs-4.7.3/khtml/css/cssparser.cpp 2011-11-09 16:02:11.000000000 +0100
@@ -2275,8 +2275,11 @@ bool CSSParser::parseFontFaceSrc()
expectComma = true;
} else if (val->unit == Value::Function) {
// There are two allowed functions: local() and format().
+ // For both we expect a string argument
ValueList *args = val->function->args;
- if (args && args->size() == 1) {
+ if (args && args->size() == 1 &&
+ (args->current()->unit == CSSPrimitiveValue::CSS_STRING ||
+ args->current()->unit == CSSPrimitiveValue::CSS_IDENT)) {
if (!strcasecmp(domString(val->function->name), "local(") && !expectComma) {
expectComma = true;
allowFormat = false;

View File

@ -0,0 +1,61 @@
t 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
--- a/kioslave/http/http.cpp
+++ b/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.";

View File

@ -0,0 +1,25 @@
commit 9ca2b26fc67c3f921e1943c1725fca623e395854
Author: David Faure <faure@kde.org>
Date: Thu Jun 30 23:43:45 2011 +0200
Security fix: don't interpret html tags
Credits to Tim Brown for the find.
(cherry picked from commit bd70d4e589711fda9ab07738c46e37eee8376214)
diff --git a/kio/kssl/ksslcertificatebox.cpp b/kio/kssl/ksslcertificatebox.cpp
index 4ffc613..094787a 100644
--- a/kio/kssl/ksslcertificatebox.cpp
+++ b/kio/kssl/ksslcertificatebox.cpp
@@ -36,6 +36,10 @@ KSslCertificateBox::KSslCertificateBox(QWidget *parent)
d(new KSslCertificateBoxPrivate())
{
d->ui.setupUi(this);
+ // No fooling us with html tags
+ Q_FOREACH(QLabel* label, qFindChildren<QLabel *>(this)) {
+ label->setTextFormat(Qt::PlainText);
+ }
}

View File

@ -0,0 +1,79 @@
diff -up kdelibs-4.6.5/solid/solid/CMakeLists.txt.halectomy kdelibs-4.6.5/solid/solid/CMakeLists.txt
--- kdelibs-4.6.5/solid/solid/CMakeLists.txt.halectomy 2011-04-01 08:56:18.000000000 -0500
+++ kdelibs-4.6.5/solid/solid/CMakeLists.txt 2011-11-16 17:29:09.585793260 -0600
@@ -39,7 +39,6 @@ configure_file(config-processor.h.cmake
file(MAKE_DIRECTORY
${CMAKE_CURRENT_BINARY_DIR}/backends/fakehw
- ${CMAKE_CURRENT_BINARY_DIR}/backends/hal
${CMAKE_CURRENT_BINARY_DIR}/backends/udev
${CMAKE_CURRENT_BINARY_DIR}/backends/wmi
)
@@ -195,33 +194,6 @@ if(NOT WIN32 AND NOT APPLE)
endif( UDEV_FOUND )
- message(STATUS "Building Solid HAL backend." )
- set(solid_LIB_SRCS ${solid_LIB_SRCS}
- backends/hal/halacadapter.cpp
- backends/hal/halaudiointerface.cpp
- backends/hal/halbattery.cpp
- backends/hal/halblock.cpp
- backends/hal/halbutton.cpp
- backends/hal/halcamera.cpp
- backends/hal/halcdrom.cpp
- backends/hal/haldeviceinterface.cpp
- backends/hal/haldvbinterface.cpp
- backends/hal/halfstabhandling.cpp
- backends/hal/halgenericinterface.cpp
- backends/hal/haldevice.cpp
- backends/hal/halmanager.cpp
- backends/hal/halnetworkinterface.cpp
- backends/hal/halserialinterface.cpp
- backends/hal/halopticaldisc.cpp
- backends/hal/halportablemediaplayer.cpp
- backends/hal/halprocessor.cpp
- backends/hal/halstorageaccess.cpp
- backends/hal/halstorage.cpp
- backends/hal/halvideo.cpp
- backends/hal/halvolume.cpp
- backends/hal/halsmartcardreader.cpp
- )
-
message(STATUS "Building Solid UPower backend." )
set(solid_LIB_SRCS ${solid_LIB_SRCS}
backends/upower/upowermanager.cpp
diff -up kdelibs-4.6.5/solid/solid/managerbase.cpp.halectomy kdelibs-4.6.5/solid/solid/managerbase.cpp
--- kdelibs-4.6.5/solid/solid/managerbase.cpp.halectomy 2011-04-01 08:55:51.000000000 -0500
+++ kdelibs-4.6.5/solid/solid/managerbase.cpp 2011-11-16 17:29:31.521519022 -0600
@@ -30,7 +30,6 @@
#if defined (Q_OS_MAC)
#include "backends/iokit/iokitmanager.h"
#elif defined (Q_OS_UNIX)
-#include "backends/hal/halmanager.h"
#include "backends/udisks/udisksmanager.h"
#include "backends/upower/upowermanager.h"
@@ -71,22 +70,13 @@ void Solid::ManagerBasePrivate::loadBack
# elif defined(Q_WS_WIN) && defined(HAVE_WBEM) && !defined(_WIN32_WCE)
m_backends << new Solid::Backends::Wmi::WmiManager(0);
-# elif defined(Q_OS_UNIX) && !defined(Q_OS_LINUX)
- m_backends << new Solid::Backends::Hal::HalManager(0);
-
# elif defined(Q_OS_LINUX)
- bool solidHalLegacyEnabled
- = QString::fromLocal8Bit(qgetenv("SOLID_HAL_LEGACY")).toInt()==1;
- if (solidHalLegacyEnabled) {
- m_backends << new Solid::Backends::Hal::HalManager(0);
- } else {
# if defined(UDEV_FOUND)
m_backends << new Solid::Backends::UDev::UDevManager(0);
# endif
m_backends << new Solid::Backends::UDisks::UDisksManager(0)
<< new Solid::Backends::UPower::UPowerManager(0)
<< new Solid::Backends::Fstab::FstabManager(0);
- }
# endif
# if defined (HUPNP_FOUND)

View File

@ -0,0 +1,212 @@
diff -up kdelibs-4.6.5/kdecore/CMakeLists.txt.kconfig_sync-1 kdelibs-4.6.5/kdecore/CMakeLists.txt
--- kdelibs-4.6.5/kdecore/CMakeLists.txt.kconfig_sync-1 2011-04-01 08:55:50.000000000 -0500
+++ kdelibs-4.6.5/kdecore/CMakeLists.txt 2011-10-11 11:04:00.141866936 -0500
@@ -208,6 +208,7 @@ set(kdecore_LIB_SRCS
io/kdebug.cpp
io/kdebugdbusiface.cpp
io/kdirwatch.cpp
+ io/kfilesystemtype_p.cpp
io/klimitediodevice.cpp
io/kmessage.cpp
io/kmountpoint.cpp
diff -up kdelibs-4.6.5/kdecore/io/kdirwatch.cpp.kconfig_sync-1 kdelibs-4.6.5/kdecore/io/kdirwatch.cpp
--- kdelibs-4.6.5/kdecore/io/kdirwatch.cpp.kconfig_sync-1 2011-04-01 08:56:18.000000000 -0500
+++ kdelibs-4.6.5/kdecore/io/kdirwatch.cpp 2011-10-11 11:16:03.054895138 -0500
@@ -43,6 +43,7 @@
#include "kdirwatch.h"
#include "kdirwatch_p.h"
+#include "kfilesystemtype_p.h"
#include "io/config-kdirwatch.h"
#include <config.h>
@@ -62,7 +63,6 @@
#include <kglobal.h>
#include <kde_file.h>
#include <kconfiggroup.h>
-#include "kmountpoint.h"
#include <stdlib.h>
#include <string.h>
@@ -709,9 +709,7 @@ bool KDirWatchPrivate::useQFSWatch(Entry
bool KDirWatchPrivate::useStat(Entry* e)
{
- KMountPoint::Ptr mp = KMountPoint::currentMountPoints().findByPath(e->path);
- const bool slow = mp ? mp->probablySlow() : false;
- if (slow)
+ if (KFileSystemType::fileSystemType(e->path) == KFileSystemType::Nfs) // TODO: or Smbfs?
useFreq(e, m_nfsPollInterval);
else
useFreq(e, m_PollInterval);
@@ -904,8 +902,7 @@ void KDirWatchPrivate::addWatch(Entry* e
// are made locally. #177892.
KDirWatch::Method preferredMethod = m_preferredMethod;
if (m_nfsPreferredMethod != m_preferredMethod) {
- KMountPoint::Ptr mountPoint = KMountPoint::currentMountPoints().findByPath(e->path);
- if (mountPoint && mountPoint->probablySlow()) {
+ if (KFileSystemType::fileSystemType(e->path) == KFileSystemType::Nfs) {
preferredMethod = m_nfsPreferredMethod;
}
}
diff -up kdelibs-4.6.5/kdecore/io/kfilesystemtype_p.cpp.kconfig_sync-1 kdelibs-4.6.5/kdecore/io/kfilesystemtype_p.cpp
--- kdelibs-4.6.5/kdecore/io/kfilesystemtype_p.cpp.kconfig_sync-1 2011-10-11 11:04:00.142866875 -0500
+++ kdelibs-4.6.5/kdecore/io/kfilesystemtype_p.cpp 2011-10-11 11:04:00.142866875 -0500
@@ -0,0 +1,115 @@
+/*
+ This file is part of the KDE libraries
+ Copyright (c) 2011 David Faure <faure@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.1 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 "kfilesystemtype_p.h"
+#include <QFile>
+//#include <errno.h>
+
+#ifndef Q_OS_WIN
+inline KFileSystemType::Type kde_typeFromName(const char *name)
+{
+ if (qstrncmp(name, "nfs", 3) == 0
+ || qstrncmp(name, "autofs", 6) == 0
+ || qstrncmp(name, "cachefs", 7) == 0)
+ return KFileSystemType::Nfs;
+ if (qstrncmp(name, "fat", 3) == 0
+ || qstrncmp(name, "vfat", 4) == 0
+ || qstrncmp(name, "msdos", 5) == 0)
+ return KFileSystemType::Fat;
+ return KFileSystemType::Other;
+}
+
+#if defined(Q_OS_BSD4) && !defined(Q_OS_NETBSD)
+# include <sys/param.h>
+# include <sys/mount.h>
+
+KFileSystemType::Type determineFileSystemTypeImpl(const QByteArray& path)
+{
+ struct statfs buf;
+ if (statfs(path.constData(), &buf) != 0)
+ return Unknown;
+ return kde_typeFromName(buf.f_fstypename);
+}
+
+#elif defined(Q_OS_LINUX) || defined(Q_OS_HURD)
+# include <sys/vfs.h>
+# ifdef QT_LINUXBASE
+ // LSB 3.2 has statfs in sys/statfs.h, sys/vfs.h is just an empty dummy header
+# include <sys/statfs.h>
+# endif
+# ifndef NFS_SUPER_MAGIC
+# define NFS_SUPER_MAGIC 0x00006969
+# endif
+# ifndef AUTOFS_SUPER_MAGIC
+# define AUTOFS_SUPER_MAGIC 0x00000187
+# endif
+# ifndef AUTOFSNG_SUPER_MAGIC
+# define AUTOFSNG_SUPER_MAGIC 0x7d92b1a0
+# endif
+# ifndef MSDOS_SUPER_MAGIC
+# define MSDOS_SUPER_MAGIC 0x00004d44
+# endif
+
+KFileSystemType::Type determineFileSystemTypeImpl(const QByteArray& path)
+{
+ struct statfs buf;
+ if (statfs(path.constData(), &buf) != 0) {
+ //kDebug() << path << errno << strerror(errno);
+ return KFileSystemType::Unknown;
+ }
+ switch (buf.f_type) {
+ case NFS_SUPER_MAGIC:
+ case AUTOFS_SUPER_MAGIC:
+ case AUTOFSNG_SUPER_MAGIC:
+ return KFileSystemType::Nfs;
+ case MSDOS_SUPER_MAGIC:
+ return KFileSystemType::Fat;
+ default:
+ return KFileSystemType::Other;
+ }
+}
+
+#elif defined(Q_OS_SOLARIS) || defined(Q_OS_IRIX) || defined(Q_OS_AIX) || defined(Q_OS_HPUX) \
+ || defined(Q_OS_OSF) || defined(Q_OS_QNX) || defined(Q_OS_SCO) \
+ || defined(Q_OS_UNIXWARE) || defined(Q_OS_RELIANT) || defined(Q_OS_NETBSD)
+# include <sys/statvfs.h>
+
+KFileSystemType::Type determineFileSystemTypeImpl(const QByteArray& path)
+{
+ struct statvfs buf;
+ if (statvfs(path.constData(), &buf) != 0)
+ return KFileSystemType::Unknown;
+#if defined(Q_OS_NETBSD)
+ return kde_typeFromName(buf.f_fstypename);
+#else
+ return kde_typeFromName(buf.f_basetype);
+#endif
+}
+#else
+KFileSystemType::Type determineFileSystemTypeImpl(const QByteArray& path)
+{
+ return KFileSystemType::Unknown;
+}
+#endif
+#endif
+
+KFileSystemType::Type KFileSystemType::fileSystemType(const QString& path)
+{
+ return determineFileSystemTypeImpl(QFile::encodeName(path));
+}
diff -up kdelibs-4.6.5/kdecore/io/kfilesystemtype_p.h.kconfig_sync-1 kdelibs-4.6.5/kdecore/io/kfilesystemtype_p.h
--- kdelibs-4.6.5/kdecore/io/kfilesystemtype_p.h.kconfig_sync-1 2011-10-11 11:04:00.142866875 -0500
+++ kdelibs-4.6.5/kdecore/io/kfilesystemtype_p.h 2011-10-11 11:04:00.142866875 -0500
@@ -0,0 +1,38 @@
+/*
+ This file is part of the KDE libraries
+ Copyright (c) 2011 David Faure <faure@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.1 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.
+*/
+
+#ifndef KFILESYSTEMTYPE_P_H
+#define KFILESYSTEMTYPE_P_H
+
+#include <QtCore/QString>
+
+namespace KFileSystemType
+{
+ enum Type {
+ Unknown,
+ Nfs, // NFS or similar (autofs, subfs, cachefs)
+ Fat, // FAT or similar (msdos, fat, vfat)
+ Other // ext, reiser, and so on. "Normal" filesystems.
+ };
+
+ Type fileSystemType(const QString& path);
+
+};
+
+#endif

View File

@ -0,0 +1,498 @@
commit 63b8ad8b7c6cc9845f11e5fbacf1a8cc9c977859
Author: David Faure <faure@kde.org>
Date: Sat Aug 6 14:53:36 2011 +0200
Implement locking on non-NFS systems using O_EXCL
Fixes locking on VFAT and CIFS etc.
The unit-test only tests local files automatically, but explains
how to set up test environments to test it on a FAT filesystem and on a NFS mount.
BUG: 203554
(cherry picked from commit 10ca4ddc8cca49103c2d605a64468788605f3010)
diff --git a/kdecore/io/klockfile_unix.cpp b/kdecore/io/klockfile_unix.cpp
index cd909cf..fa2eda4 100644
--- a/kdecore/io/klockfile_unix.cpp
+++ b/kdecore/io/klockfile_unix.cpp
@@ -1,6 +1,7 @@
/*
This file is part of the KDE libraries
Copyright (c) 2004 Waldo Bastian <bastian@kde.org>
+ Copyright (c) 2011 David Faure <faure@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
@@ -35,48 +36,85 @@
#include <QtCore/QDate>
#include <QtCore/QFile>
-#include <QtCore/QTextIStream>
+#include <QTextStream>
#include "krandom.h"
#include "kglobal.h"
#include "kcomponentdata.h"
#include "ktemporaryfile.h"
#include "kde_file.h"
+#include "kfilesystemtype_p.h"
-// TODO: http://www.spinnaker.de/linux/nfs-locking.html
+#include <unistd.h>
+#include <fcntl.h>
+
+// Related reading:
+// http://www.spinnaker.de/linux/nfs-locking.html
+// http://en.wikipedia.org/wiki/File_locking
+// http://apenwarr.ca/log/?m=201012
+
+// Related source code:
+// * lockfile-create, from the lockfile-progs package, uses the link() trick from lockFileWithLink
+// below, so it works over NFS but fails on FAT32 too.
+// * the flock program, which uses flock(LOCK_EX), works on local filesystems (including FAT32),
+// but not NFS.
+// Note about flock: don't unlink, it creates a race. http://world.std.com/~swmcd/steven/tech/flock.html
+
+// fcntl(F_SETLK) is not a good solution.
+// It locks other processes but locking out other threads must be done by hand,
+// and worse, it unlocks when just reading the file in the same process (!).
+// See the apenwarr.ca article above.
+
+// open(O_EXCL) seems to be the best solution for local files (on all filesystems),
+// it only fails over NFS (at least with old NFS servers).
+// See http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=144
+
+// Conclusion: we use O_EXCL by default, and the link() trick over NFS.
class KLockFile::Private
{
public:
Private(const KComponentData &c)
- : componentData(c)
+ : staleTime(30), // 30 seconds
+ isLocked(false),
+ linkCountSupport(true),
+ m_pid(-1),
+ m_componentData(c)
{
}
- QString file;
+ // The main method
+ KLockFile::LockResult lockFile(KDE_struct_stat &st_buf);
+
+ // Two different implementations
+ KLockFile::LockResult lockFileOExcl(KDE_struct_stat &st_buf);
+ KLockFile::LockResult lockFileWithLink(KDE_struct_stat &st_buf);
+
+ KLockFile::LockResult deleteStaleLock();
+ KLockFile::LockResult deleteStaleLockWithLink();
+
+ void writeIntoLockFile(QFile& file, const KComponentData& componentData);
+ void readLockFile();
+ bool isNfs() const;
+
+ QFile m_file;
+ QString m_fileName;
int staleTime;
bool isLocked;
- bool recoverLock;
bool linkCountSupport;
QTime staleTimer;
KDE_struct_stat statBuf;
- int pid;
- QString hostname;
- QString instance;
- QString lockRecoverFile;
- KComponentData componentData;
+ int m_pid;
+ QString m_hostname;
+ QString m_componentName;
+ KComponentData m_componentData;
};
-// 30 seconds
KLockFile::KLockFile(const QString &file, const KComponentData &componentData)
: d(new Private(componentData))
{
- d->file = file;
- d->staleTime = 30;
- d->isLocked = false;
- d->recoverLock = false;
- d->linkCountSupport = true;
+ d->m_fileName = file;
}
KLockFile::~KLockFile()
@@ -125,31 +163,59 @@ static bool testLinkCountSupport(const QByteArray &fileName)
return (result < 0 || ((result == 0) && (st_buf.st_nlink == 2)));
}
-static KLockFile::LockResult lockFile(const QString &lockFile, KDE_struct_stat &st_buf,
- bool &linkCountSupport, const KComponentData &componentData)
+void KLockFile::Private::writeIntoLockFile(QFile& file, const KComponentData& componentData)
{
- QByteArray lockFileName = QFile::encodeName( lockFile );
- int result = KDE_lstat( lockFileName, &st_buf );
- if (result == 0)
- return KLockFile::LockFail;
-
- KTemporaryFile uniqueFile(componentData);
- uniqueFile.setFileTemplate(lockFile);
- if (!uniqueFile.open())
- return KLockFile::LockError;
- uniqueFile.setPermissions(QFile::ReadUser|QFile::WriteUser|QFile::ReadGroup|QFile::ReadOther);
+ file.setPermissions(QFile::ReadUser|QFile::WriteUser|QFile::ReadGroup|QFile::ReadOther);
char hostname[256];
hostname[0] = 0;
gethostname(hostname, 255);
hostname[255] = 0;
- QString componentName = componentData.componentName();
+ m_hostname = QString::fromLocal8Bit(hostname);
+ m_componentName = componentData.componentName();
+
+ QTextStream stream(&file);
+ m_pid = getpid();
- QTextStream stream(&uniqueFile);
- stream << QString::number(getpid()) << endl
- << componentName << endl
- << hostname << endl;
+ stream << QString::number(m_pid) << endl
+ << m_componentName << endl
+ << m_hostname << endl;
stream.flush();
+}
+
+void KLockFile::Private::readLockFile()
+{
+ m_pid = -1;
+ m_hostname.clear();
+ m_componentName.clear();
+
+ QFile file(m_fileName);
+ if (file.open(QIODevice::ReadOnly))
+ {
+ QTextStream ts(&file);
+ if (!ts.atEnd())
+ m_pid = ts.readLine().toInt();
+ if (!ts.atEnd())
+ m_componentName = ts.readLine();
+ if (!ts.atEnd())
+ m_hostname = ts.readLine();
+ }
+}
+
+KLockFile::LockResult KLockFile::Private::lockFileWithLink(KDE_struct_stat &st_buf)
+{
+ const QByteArray lockFileName = QFile::encodeName( m_fileName );
+ int result = KDE_lstat( lockFileName, &st_buf );
+ if (result == 0) {
+ return KLockFile::LockFail;
+ }
+
+ KTemporaryFile uniqueFile(m_componentData);
+ uniqueFile.setFileTemplate(m_fileName);
+ if (!uniqueFile.open())
+ return KLockFile::LockError;
+
+ writeIntoLockFile(uniqueFile, m_componentData);
QByteArray uniqueName = QFile::encodeName( uniqueFile.fileName() );
@@ -187,20 +253,74 @@ static KLockFile::LockResult lockFile(const QString &lockFile, KDE_struct_stat &
return KLockFile::LockOK;
}
-static KLockFile::LockResult deleteStaleLock(const QString &lockFile, KDE_struct_stat &st_buf, bool &linkCountSupport, const KComponentData &componentData)
+bool KLockFile::Private::isNfs() const
+{
+ const KFileSystemType::Type fsType = KFileSystemType::fileSystemType(m_fileName);
+ return fsType == KFileSystemType::Nfs;
+}
+
+KLockFile::LockResult KLockFile::Private::lockFile(KDE_struct_stat &st_buf)
+{
+ if (isNfs()) {
+ return lockFileWithLink(st_buf);
+ }
+
+ return lockFileOExcl(st_buf);
+}
+
+KLockFile::LockResult KLockFile::Private::lockFileOExcl(KDE_struct_stat &st_buf)
{
- // This is dangerous, we could be deleting a new lock instead of
- // the old stale one, let's be very careful
+ const QByteArray lockFileName = QFile::encodeName( m_fileName );
+
+ int fd = KDE_open(lockFileName.constData(), O_WRONLY | O_CREAT | O_EXCL, 0644);
+ if (fd < 0) {
+ if (errno == EEXIST) {
+ // File already exists
+ return LockFail;
+ } else {
+ return LockError;
+ }
+ }
+ // We hold the lock, continue.
+ if (!m_file.open(fd, QIODevice::WriteOnly)) {
+ return LockError;
+ }
+ writeIntoLockFile(m_file, m_componentData);
+ const int result = KDE_lstat(QFile::encodeName(m_fileName), &st_buf);
+ if (result != 0)
+ return KLockFile::LockError;
+ return KLockFile::LockOK;
+}
- // Create temp file
- KTemporaryFile *ktmpFile = new KTemporaryFile(componentData);
- ktmpFile->setFileTemplate(lockFile);
- if (!ktmpFile->open())
- return KLockFile::LockError;
+KLockFile::LockResult KLockFile::Private::deleteStaleLock()
+{
+ if (isNfs())
+ return deleteStaleLockWithLink();
+
+ // I see no way to prevent the race condition here, where we could
+ // delete a new lock file that another process just got after we
+ // decided the old one was too stale for us too.
+ qWarning("WARNING: deleting stale lockfile %s", qPrintable(m_fileName));
+ QFile::remove(m_fileName);
+ return LockOK;
+}
- QByteArray lckFile = QFile::encodeName(lockFile);
- QByteArray tmpFile = QFile::encodeName(ktmpFile->fileName());
- delete ktmpFile;
+KLockFile::LockResult KLockFile::Private::deleteStaleLockWithLink()
+{
+ // This is dangerous, we could be deleting a new lock instead of
+ // the old stale one, let's be very careful
+
+ // Create temp file
+ KTemporaryFile *ktmpFile = new KTemporaryFile(m_componentData);
+ ktmpFile->setFileTemplate(m_fileName);
+ if (!ktmpFile->open()) {
+ delete ktmpFile;
+ return KLockFile::LockError;
+ }
+
+ const QByteArray lckFile = QFile::encodeName(m_fileName);
+ const QByteArray tmpFile = QFile::encodeName(ktmpFile->fileName());
+ delete ktmpFile;
// link to lock file
if (::link(lckFile, tmpFile) != 0)
@@ -210,7 +330,7 @@ static KLockFile::LockResult deleteStaleLock(const QString &lockFile, KDE_struct
// and if the lock file still matches
KDE_struct_stat st_buf1;
KDE_struct_stat st_buf2;
- memcpy(&st_buf1, &st_buf, sizeof(KDE_struct_stat));
+ memcpy(&st_buf1, &statBuf, sizeof(KDE_struct_stat));
st_buf1.st_nlink++;
if ((KDE_lstat(tmpFile, &st_buf2) == 0) && st_buf1 == st_buf2)
{
@@ -260,8 +380,10 @@ KLockFile::LockResult KLockFile::lock(LockFlags options)
int n = 5;
while(true)
{
- KDE_struct_stat st_buf;
- result = lockFile(d->file, st_buf, d->linkCountSupport, d->componentData);
+ KDE_struct_stat st_buf;
+ // Try to create the lock file
+ result = d->lockFile(st_buf);
+
if (result == KLockFile::LockOK)
{
d->staleTimer = QTime();
@@ -285,25 +407,11 @@ KLockFile::LockResult KLockFile::lock(LockFlags options)
memcpy(&(d->statBuf), &st_buf, sizeof(KDE_struct_stat));
d->staleTimer.start();
- d->pid = -1;
- d->hostname.clear();
- d->instance.clear();
-
- QFile file(d->file);
- if (file.open(QIODevice::ReadOnly))
- {
- QTextStream ts(&file);
- if (!ts.atEnd())
- d->pid = ts.readLine().toInt();
- if (!ts.atEnd())
- d->instance = ts.readLine();
- if (!ts.atEnd())
- d->hostname = ts.readLine();
- }
+ d->readLockFile();
}
bool isStale = false;
- if ((d->pid > 0) && !d->hostname.isEmpty())
+ if ((d->m_pid > 0) && !d->m_hostname.isEmpty())
{
// Check if hostname is us
char hostname[256];
@@ -311,12 +419,12 @@ KLockFile::LockResult KLockFile::lock(LockFlags options)
gethostname(hostname, 255);
hostname[255] = 0;
- if (d->hostname == QLatin1String(hostname))
+ if (d->m_hostname == QLatin1String(hostname))
{
// Check if pid still exists
- int res = ::kill(d->pid, 0);
+ int res = ::kill(d->m_pid, 0);
if ((res == -1) && (errno == ESRCH))
- isStale = true;
+ isStale = true; // pid does not exist
}
}
if (d->staleTimer.elapsed() > (d->staleTime*1000))
@@ -327,7 +435,7 @@ KLockFile::LockResult KLockFile::lock(LockFlags options)
if ((options & ForceFlag) == 0)
return KLockFile::LockStale;
- result = deleteStaleLock(d->file, d->statBuf, d->linkCountSupport, d->componentData);
+ result = d->deleteStaleLock();
if (result == KLockFile::LockOK)
{
@@ -367,17 +475,19 @@ void KLockFile::unlock()
{
if (d->isLocked)
{
- ::unlink(QFile::encodeName(d->file));
+ ::unlink(QFile::encodeName(d->m_fileName));
+ d->m_file.close();
+ d->m_pid = -1;
d->isLocked = false;
}
}
bool KLockFile::getLockInfo(int &pid, QString &hostname, QString &appname)
{
- if (d->pid == -1)
+ if (d->m_pid == -1)
return false;
- pid = d->pid;
- hostname = d->hostname;
- appname = d->instance;
+ pid = d->m_pid;
+ hostname = d->m_hostname;
+ appname = d->m_componentName;
return true;
}
diff --git a/kdecore/tests/CMakeLists.txt b/kdecore/tests/CMakeLists.txt
index 7c3db77..9173746 100644
--- a/kdecore/tests/CMakeLists.txt
+++ b/kdecore/tests/CMakeLists.txt
@@ -97,6 +97,7 @@ KDECORE_EXECUTABLE_TESTS(
dbuscalltest
kmdcodectest
startserviceby
+ klockfile_testlock # helper for klockfiletest
)
########### klocaletest ###############
diff --git a/kdecore/tests/klockfiletest.cpp b/kdecore/tests/klockfiletest.cpp
index 32cdec9..f2c6f91 100644
--- a/kdecore/tests/klockfiletest.cpp
+++ b/kdecore/tests/klockfiletest.cpp
@@ -19,8 +19,12 @@
#include "klockfiletest.h"
#include "klockfiletest.moc"
+#include <kdebug.h>
#include <unistd.h>
+// TODO test locking from two different threads
+//#include <qtconcurrentrun.h>
+
namespace QTest {
template<>
char* toString(const KLockFile::LockResult& result)
@@ -32,6 +36,26 @@ char* toString(const KLockFile::LockResult& result)
}
}
+// Here's how to test file locking on a FAT filesystem, on linux:
+// cd /tmp
+// dd if=/dev/zero of=fatfile count=180000
+// mkfs.vfat -F32 fatfile
+// mkdir -p fatsystem
+// sudo mount -o loop -o uid=$UID fatfile fatsystem
+//
+// static const char *const lockName = "/tmp/fatsystem/klockfiletest.lock";
+//
+// =====================================================================
+//
+// And here's how to test file locking over NFS, on linux:
+// In /etc/exports: /tmp/nfs localhost(rw,sync,no_subtree_check)
+// sudo mount -t nfs localhost:/tmp/nfs /tmp/nfs-mount
+//
+// static const char *const lockName = "/tmp/nfs-mount/klockfiletest.lock";
+//
+// =====================================================================
+//
+
static const char *const lockName = "klockfiletest.lock";
void
@@ -41,19 +65,28 @@ Test_KLockFile::initTestCase()
lockFile = new KLockFile(QLatin1String(lockName));
}
+static KLockFile::LockResult testLockFromProcess(const QString& lockName)
+{
+ const int ret = QProcess::execute("./klockfile_testlock", QStringList() << lockName);
+ return KLockFile::LockResult(ret);
+}
+
void
Test_KLockFile::testLock()
{
QVERIFY(!lockFile->isLocked());
QCOMPARE(lockFile->lock(), KLockFile::LockOK);
QVERIFY(lockFile->isLocked());
-#ifdef Q_WS_WIN
+
+ // Try to lock it again, should fail
KLockFile *lockFile2 = new KLockFile(QLatin1String(lockName));
QVERIFY(!lockFile2->isLocked());
- QCOMPARE(lockFile2->lock(), KLockFile::LockFail);
+ QCOMPARE(lockFile2->lock(KLockFile::NoBlockFlag), KLockFile::LockFail);
QVERIFY(!lockFile2->isLocked());
delete lockFile2;
-#endif
+
+ // Also try from a different process.
+ QCOMPARE(testLockFromProcess(QLatin1String(lockName)), KLockFile::LockFail);
}
void
@@ -102,7 +135,7 @@ Test_KLockFile::testStaleNoBlockFlag()
#else
char hostname[256];
::gethostname(hostname, sizeof(hostname));
-
+
QFile f(lockName);
f.open(QIODevice::WriteOnly);
QTextStream stream(&f);
@@ -113,7 +146,8 @@ Test_KLockFile::testStaleNoBlockFlag()
lockFile = new KLockFile(QLatin1String(lockName));
QVERIFY(!lockFile->isLocked());
QCOMPARE(lockFile->lock(KLockFile::NoBlockFlag), KLockFile::LockStale);
- QTest::ignoreMessage(QtWarningMsg, "WARNING: deleting stale lockfile klockfiletest.lock");
+ QByteArray expectedMsg = QByteArray("WARNING: deleting stale lockfile ") + lockName;
+ QTest::ignoreMessage(QtWarningMsg, expectedMsg);
QCOMPARE(lockFile->lock(KLockFile::NoBlockFlag|KLockFile::ForceFlag), KLockFile::LockOK);
QVERIFY(lockFile->isLocked());

View File

@ -0,0 +1,54 @@
commit f529824eae4f44bef19913bc0f2c19077f1d3935
Author: David Faure <faure@kde.org>
Date: Sun Aug 7 09:52:39 2011 +0200
Add missing file, sorry.
diff --git a/kdecore/tests/klockfile_testlock.cpp b/kdecore/tests/klockfile_testlock.cpp
new file mode 100644
index 0000000..525228f
--- /dev/null
+++ b/kdecore/tests/klockfile_testlock.cpp
@@ -0,0 +1,42 @@
+/* This file is part of the KDE libraries
+ Copyright (c) 2011 David Faure <faure@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 as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ 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 <kcomponentdata.h>
+#include <kcmdlineargs.h>
+#include <kaboutdata.h>
+#include <klockfile.h>
+#include <kdebug.h>
+
+int main(int argc, char *argv[])
+{
+ KAboutData about("klockfile_testlock", 0, ki18n("klockfile_testlock"), "version");
+ KComponentData cData(&about);
+
+ if (argc <= 1) {
+ return KLockFile::LockError;
+ }
+
+ const QString lockName = QString::fromLocal8Bit(argv[1]);
+
+ KLockFile lockFile(lockName);
+ if (lockFile.isLocked()) {
+ return KLockFile::LockError;
+ }
+ return lockFile.lock(KLockFile::NoBlockFlag);
+}

View File

@ -0,0 +1,56 @@
--- kdelibs/khtml/rendering/render_form.cpp
+++ kdelibs/khtml/rendering/render_form.cpp
@@ -1012,11 +1012,11 @@
// -----------------------------------------------------------------------------
RenderLineEdit::RenderLineEdit(HTMLInputElementImpl *element)
- : RenderFormElement(element)
+ : RenderFormElement(element), m_blockElementUpdates(false)
{
LineEditWidget *edit = new LineEditWidget(element, view(), view()->widget());
connect(edit,SIGNAL(returnPressed()), this, SLOT(slotReturnPressed()));
- connect(edit,SIGNAL(textEdited(QString)),this,SLOT(slotTextEdited(QString)));
+ connect(edit,SIGNAL(textChanged(QString)),this,SLOT(slotTextChanged(QString)));
if(element->inputType() == HTMLInputElementImpl::PASSWORD)
edit->setEchoMode( QLineEdit::Password );
@@ -1142,17 +1142,21 @@
}
if (element()->value().string() != widget()->text()) {
+ m_blockElementUpdates = true;
int pos = widget()->cursorPosition();
widget()->setText(element()->value().string());
widget()->setCursorPosition(pos);
+ m_blockElementUpdates = false;
}
widget()->setReadOnly(element()->readOnly());
RenderFormElement::updateFromElement();
}
-void RenderLineEdit::slotTextEdited(const QString &string)
+void RenderLineEdit::slotTextChanged(const QString &string)
{
+ if (m_blockElementUpdates) return;
+
// don't use setValue here!
element()->m_value = string;
element()->m_unsubmittedFormChange = true;
--- kdelibs/khtml/rendering/render_form.h
+++ kdelibs/khtml/rendering/render_form.h
@@ -282,12 +282,13 @@
void setSelectionRange(long start, long end);
public Q_SLOTS:
void slotReturnPressed();
- void slotTextEdited(const QString &string);
+ void slotTextChanged(const QString &string);
protected:
private:
virtual bool isEditable() const { return true; }
virtual bool canHaveBorder() const { return true; }
+ bool m_blockElementUpdates;
};
// -------------------------------------------------------------------------

View File

@ -1,60 +0,0 @@
diff -up kdelibs-4.7.0/knewstuff/knewstuff2/core/security.cpp.knewstuff2_gpg2 kdelibs-4.7.0/knewstuff/knewstuff2/core/security.cpp
--- kdelibs-4.7.0/knewstuff/knewstuff2/core/security.cpp.knewstuff2_gpg2 2011-05-20 15:24:54.000000000 -0500
+++ kdelibs-4.7.0/knewstuff/knewstuff2/core/security.cpp 2011-09-06 11:29:18.939251150 -0500
@@ -36,9 +36,20 @@
#include <kmessagebox.h>
#include <kpassworddialog.h>
#include <kprocess.h>
+#include <kstandarddirs.h>
using namespace KNS;
+static QString gpgExecutable()
+{
+ QString gpgExe = KStandardDirs::findExe( "gpg" );
+ if ( gpgExe.isEmpty() )
+ gpgExe = KStandardDirs::findExe( "gpg2" );
+ if ( gpgExe.isEmpty() )
+ return QLatin1String( "gpg" );
+ return gpgExe;
+}
+
Security::Security()
{
m_keysRead = false;
@@ -61,7 +72,7 @@ void Security::readKeys()
m_runMode = List;
m_keys.clear();
m_process = new KProcess();
- *m_process << "gpg"
+ *m_process << gpgExecutable()
<< "--no-secmem-warning"
<< "--no-tty"
<< "--with-colon"
@@ -87,7 +98,7 @@ void Security::readSecretKeys()
}
m_runMode = ListSecret;
m_process = new KProcess();
- *m_process << "gpg"
+ *m_process << gpgExecutable()
<< "--no-secmem-warning"
<< "--no-tty"
<< "--with-colon"
@@ -260,7 +271,7 @@ void Security::slotCheckValidity()
//verify the signature
m_process = new KProcess();
- *m_process << "gpg"
+ *m_process << gpgExecutable()
<< "--no-secmem-warning"
<< "--status-fd=2"
<< "--command-fd=0"
@@ -342,7 +353,7 @@ void Security::slotSignFile()
//verify the signature
m_process = new KProcess();
- *m_process << "gpg"
+ *m_process << gpgExecutable()
<< "--no-secmem-warning"
<< "--status-fd=2"
<< "--command-fd=0"

View File

@ -1,22 +0,0 @@
diff -up kdelibs-4.7.2/kjs/wtf/Platform.h.me kdelibs-4.7.2/kjs/wtf/Platform.h
--- kdelibs-4.7.2/kjs/wtf/Platform.h.me 2011-12-06 10:10:08.372356038 -0500
+++ kdelibs-4.7.2/kjs/wtf/Platform.h 2011-12-06 10:48:51.962357831 -0500
@@ -97,6 +97,18 @@
/* CPU */
+/* PLATFORM(S390X) - S390X 64-bit */
+#if defined(__s390x__)
+#define WTF_PLATFORM_S390X 1
+#define WTF_PLATFORM_BIG_ENDIAN 1
+#endif
+
+/* PLATFORM(S390) - S390 32-bit */
+#if defined(__s390__)
+#define WTF_PLATFORM_S390 1
+#define WTF_PLATFORM_BIG_ENDIAN 1
+#endif
+
/* PLATFORM(PPC) */
#if defined(__ppc__) \
|| defined(__PPC__) \

View File

@ -1,18 +0,0 @@
diff -up kdelibs-4.8.4/khtml/ecma/kjs_navigator.cpp.me kdelibs-4.8.4/khtml/ecma/kjs_navigator.cpp
--- kdelibs-4.8.4/khtml/ecma/kjs_navigator.cpp.me 2012-06-06 22:49:52.542044112 +0200
+++ kdelibs-4.8.4/khtml/ecma/kjs_navigator.cpp 2012-07-12 11:52:50.973049316 +0200
@@ -261,7 +261,13 @@ JSValue *Navigator::getValueProperty(Exe
case BrowserLanguage:
case Language:
case UserLanguage:
- return jsString(KGlobal::locale()->language());
+ {
+ QString l = KGlobal::locale()->language();
+ if ( l.contains(QLatin1Char('_')) )
+ return jsString(l.replace(QLatin1Char('_'), QLatin1Char('-')));
+ else
+ return jsString(l + QLatin1Char('-') + KGlobal::locale()->country().toUpper());
+ }
case UserAgent:
return jsString(userAgent);
case Platform:

View File

@ -1,12 +0,0 @@
diff -up kdelibs-4.9.3/kio/kssl/kcm/cacertificatespage.cpp.orig kdelibs-4.9.3/kio/kssl/kcm/cacertificatespage.cpp
--- kdelibs-4.9.3/kio/kssl/kcm/cacertificatespage.cpp.orig 2012-11-29 15:37:07.458858688 +0100
+++ kdelibs-4.9.3/kio/kssl/kcm/cacertificatespage.cpp 2012-11-29 13:52:05.243926802 +0100
@@ -291,7 +291,7 @@ void CaCertificatesPage::removeSelection
void CaCertificatesPage::addCertificateClicked()
{
QStringList certFiles
- = KFileDialog::getOpenFileNames(KUrl(), QLatin1String("application/x-x509-ca-cert"),
+ = KFileDialog::getOpenFileNames(KUrl(), QLatin1String("*.pem *.cert *.crt *.der"),
this, i18n("Pick Certificates"));
QList<QSslCertificate> certs;

View File

@ -1,12 +0,0 @@
diff -up kdelibs-4.10.0/kdeui/kernel/kapplication.cpp.me kdelibs-4.10.0/kdeui/kernel/kapplication.cpp
--- kdelibs-4.10.0/kdeui/kernel/kapplication.cpp.me 2013-02-28 15:24:41.194954639 +0100
+++ kdelibs-4.10.0/kdeui/kernel/kapplication.cpp 2013-02-28 15:40:44.546470405 +0100
@@ -853,7 +853,7 @@ void KApplicationPrivate::parseCommandLi
if (!nocrashhandler && args->isSet("crashhandler"))
{
// enable drkonqi
- KCrash::setDrKonqiEnabled(true);
+ KCrash::setDrKonqiEnabled(false);
}
// Always set the app name, can be usefuls for apps that call setEmergencySaveFunction or enable AutoRestart
KCrash::setApplicationName(args->appName());

View File

@ -0,0 +1,50 @@
commit 865e5fa4108bb3f470b9424ec34dc573d97e2473
Author: David Faure <faure@kde.org>
Date: Wed Aug 24 10:29:09 2011 +0200
Fix fd leak in KLockFile
Didn't expect that after open(fd), QFile::close doesn't close the fd :)
diff --git a/kdecore/io/klockfile_unix.cpp b/kdecore/io/klockfile_unix.cpp
index fa2eda4..93e92e2 100644
--- a/kdecore/io/klockfile_unix.cpp
+++ b/kdecore/io/klockfile_unix.cpp
@@ -78,6 +78,7 @@ public:
: staleTime(30), // 30 seconds
isLocked(false),
linkCountSupport(true),
+ mustCloseFd(false),
m_pid(-1),
m_componentData(c)
{
@@ -102,6 +103,7 @@ public:
int staleTime;
bool isLocked;
bool linkCountSupport;
+ bool mustCloseFd;
QTime staleTimer;
KDE_struct_stat statBuf;
int m_pid;
@@ -285,7 +287,10 @@ KLockFile::LockResult KLockFile::Private::lockFileOExcl(KDE_struct_stat &st_buf)
if (!m_file.open(fd, QIODevice::WriteOnly)) {
return LockError;
}
+ mustCloseFd = true;
writeIntoLockFile(m_file, m_componentData);
+
+ // stat to get the modification time
const int result = KDE_lstat(QFile::encodeName(m_fileName), &st_buf);
if (result != 0)
return KLockFile::LockError;
@@ -476,6 +481,10 @@ void KLockFile::unlock()
if (d->isLocked)
{
::unlink(QFile::encodeName(d->m_fileName));
+ if (d->mustCloseFd) {
+ close(d->m_file.handle());
+ d->mustCloseFd = false;
+ }
d->m_file.close();
d->m_pid = -1;
d->isLocked = false;

View File

@ -1,44 +0,0 @@
diff --git a/solid/solid/backends/upower/upowerbattery.cpp b/solid/solid/backends/upower/upowerbattery.cpp
index 7b5bdc4..8bd9343 100644
--- a/solid/solid/backends/upower/upowerbattery.cpp
+++ b/solid/solid/backends/upower/upowerbattery.cpp
@@ -123,6 +123,7 @@ Solid::Battery::ChargeState Battery::chargeState() const
void Battery::slotChanged()
{
if (m_device) {
+ const QString udi = m_device.data()->udi();
const int old_chargePercent = m_chargePercent;
const int old_capacity = m_capacity;
const Solid::Battery::ChargeState old_chargeState = m_chargeState;
@@ -132,26 +133,26 @@ void Battery::slotChanged()
if (old_chargePercent != m_chargePercent)
{
- emit chargePercentChanged(m_chargePercent, m_device.data()->udi());
+ emit chargePercentChanged(m_chargePercent, udi);
}
if (old_capacity != m_capacity) {
- emit capacityChanged(m_capacity, m_device.data()->udi());
+ emit capacityChanged(m_capacity, udi);
}
if (old_chargeState != m_chargeState)
{
- emit chargeStateChanged(m_chargeState, m_device.data()->udi());
+ emit chargeStateChanged(m_chargeState, udi);
}
if (old_isPlugged != m_isPlugged)
{
- emit plugStateChanged(m_isPlugged, m_device.data()->udi());
+ emit plugStateChanged(m_isPlugged, udi);
}
if (old_isPowerSupply != m_isPowerSupply)
{
- emit powerSupplyStateChanged(m_isPowerSupply, m_device.data()->udi());
+ emit powerSupplyStateChanged(m_isPowerSupply, udi);
}
}
}

View File

@ -1,128 +0,0 @@
diff -up kdelibs-4.14.23/mimetypes/kde.xml.no_fake_mimetypes kdelibs-4.14.23/mimetypes/kde.xml
--- kdelibs-4.14.23/mimetypes/kde.xml.no_fake_mimetypes 2016-08-16 09:04:01.000000000 -0500
+++ kdelibs-4.14.23/mimetypes/kde.xml 2016-08-28 08:39:55.307237091 -0500
@@ -1786,124 +1786,6 @@ Notes:
<glob pattern="*.abc"/>
</mime-type>
- <!-- all/ fake mime types -->
- <mime-type type="all/all">
- <comment>all files and folders</comment>
- <comment xml:lang="ar">كل الملفات و المجلدات</comment>
- <comment xml:lang="ast">tolos ficheros y carpetes</comment>
- <comment xml:lang="bg">всички файлове и папки</comment>
- <comment xml:lang="bs">sve datoteke i direktorije</comment>
- <comment xml:lang="ca">tots els fitxers i carpetes</comment>
- <comment xml:lang="ca@valencia">tots els fitxers i carpetes</comment>
- <comment xml:lang="cs">všechny soubory a složky</comment>
- <comment xml:lang="da">alle filer og mapper</comment>
- <comment xml:lang="de">Alle Dateien und Ordner</comment>
- <comment xml:lang="el">Όλα τα αρχεία και οι φάκελοι</comment>
- <comment xml:lang="en_GB">all files and folders</comment>
- <comment xml:lang="es">todos los archivos y carpetas</comment>
- <comment xml:lang="et">kõik failid ja kataloogid</comment>
- <comment xml:lang="eu">fitxategi eta karpeta denak</comment>
- <comment xml:lang="fi">kaikki tiedostot ja kansiot</comment>
- <comment xml:lang="fr">Tous les fichiers et les dossiers</comment>
- <comment xml:lang="ga">gach comhad agus fillteán</comment>
- <comment xml:lang="gl">todos os ficheiros e cartafoles</comment>
- <comment xml:lang="hr">sve datoteke i direktoriji</comment>
- <comment xml:lang="hu">minden fájl és mappa</comment>
- <comment xml:lang="ia">omne files e dossieres</comment>
- <comment xml:lang="is">allar skrár og möppur</comment>
- <comment xml:lang="it">tutti i file e le cartelle</comment>
- <comment xml:lang="ja">すべてのファイルとフォルダ</comment>
- <comment xml:lang="kk">бүкіл файлдар мен қапшықтар</comment>
- <comment xml:lang="km">ឯកសារ និង​ថត​ទាំង​អស់</comment>
- <comment xml:lang="ko">모든 파일과 폴더</comment>
- <comment xml:lang="lt">visi failai ir aplankai</comment>
- <comment xml:lang="lv">visi faili un mapes</comment>
- <comment xml:lang="ml">എല്ലാ ഫയലും ഫോള്‍ഡറുകളും</comment>
- <comment xml:lang="mr">सर्व फाईल्स व संचयीका</comment>
- <comment xml:lang="nb">al.le filer og mapper</comment>
- <comment xml:lang="nds">All Dateien un Ornern</comment>
- <comment xml:lang="nl">alle bestanden en mappen</comment>
- <comment xml:lang="nn">alle filer og mapper</comment>
- <comment xml:lang="pa">ਸਭ ਫਾਇਲਾਂ ਅਤੇ ਫੋਲਡਰ</comment>
- <comment xml:lang="pl">wszystkie pliki i katalogi</comment>
- <comment xml:lang="pt">todos os ficheiros e pastas</comment>
- <comment xml:lang="pt_BR">todos os arquivos e pastas</comment>
- <comment xml:lang="ro">toate fișierele și dosarele</comment>
- <comment xml:lang="ru">все файлы и папки</comment>
- <comment xml:lang="se">buot fiillat ja máhpat</comment>
- <comment xml:lang="sk">všetky súbory a priečinky</comment>
- <comment xml:lang="sl">vse datoteke in mape</comment>
- <comment xml:lang="sr">сви фајлови и фасцикле</comment>
- <comment xml:lang="sr@ijekavian">сви фајлови и фасцикле</comment>
- <comment xml:lang="sr@ijekavianlatin">svi fajlovi i fascikle</comment>
- <comment xml:lang="sr@latin">svi fajlovi i fascikle</comment>
- <comment xml:lang="sv">alla filer och kataloger</comment>
- <comment xml:lang="th">แฟ้มและโฟลเดอร์ทั้งหมด</comment>
- <comment xml:lang="tr">tüm dosyalar ve dizinler</comment>
- <comment xml:lang="ug">ھەممە ھۆججەت ۋە قىسقۇچلار</comment>
- <comment xml:lang="uk">всі файли і теки</comment>
- <comment xml:lang="zh_CN">全部文件和文件夹</comment>
- <comment xml:lang="zh_TW">所有檔案與資料夾</comment>
- </mime-type>
- <mime-type type="all/allfiles">
- <comment>all files</comment>
- <comment xml:lang="ar">كل الملفات</comment>
- <comment xml:lang="ast">tolos ficheros</comment>
- <comment xml:lang="bg">всички файлове</comment>
- <comment xml:lang="bs">sve datoteke</comment>
- <comment xml:lang="ca">tots els fitxers</comment>
- <comment xml:lang="ca@valencia">tots els fitxers</comment>
- <comment xml:lang="cs">všechny soubory</comment>
- <comment xml:lang="da">alle filer</comment>
- <comment xml:lang="de">Alle Dateien</comment>
- <comment xml:lang="el">Όλα τα αρχεία</comment>
- <comment xml:lang="en_GB">all files</comment>
- <comment xml:lang="es">todos los archivos</comment>
- <comment xml:lang="et">kõik failid</comment>
- <comment xml:lang="eu">fitxategi denak</comment>
- <comment xml:lang="fi">kaikki tiedostot</comment>
- <comment xml:lang="fr">Tous les fichiers</comment>
- <comment xml:lang="ga">gach comhad</comment>
- <comment xml:lang="gl">todos os ficheiros</comment>
- <comment xml:lang="hr">sve datoteke</comment>
- <comment xml:lang="hu">minden fájl</comment>
- <comment xml:lang="ia">omne files</comment>
- <comment xml:lang="is">allar skrár</comment>
- <comment xml:lang="it">tutti i file</comment>
- <comment xml:lang="ja">すべてのファイル</comment>
- <comment xml:lang="kk">бүкіл файлдар</comment>
- <comment xml:lang="km">ឯកសារ​ទាំង​អស់</comment>
- <comment xml:lang="ko">모든 파일</comment>
- <comment xml:lang="lt">visi failai</comment>
- <comment xml:lang="lv">visi faili</comment>
- <comment xml:lang="ml">എല്ലാ ഫയലും</comment>
- <comment xml:lang="mr">सर्व फाईल्स</comment>
- <comment xml:lang="nb">alle filer</comment>
- <comment xml:lang="nds">All Dateien</comment>
- <comment xml:lang="nl">alle bestanden</comment>
- <comment xml:lang="nn">alle filer</comment>
- <comment xml:lang="pa">ਸਭ ਫਾਇਲਾਂ</comment>
- <comment xml:lang="pl">wszystkie pliki</comment>
- <comment xml:lang="pt">todos os ficheiros</comment>
- <comment xml:lang="pt_BR">todos os arquivos</comment>
- <comment xml:lang="ro">toate fișierele</comment>
- <comment xml:lang="ru">все файлы</comment>
- <comment xml:lang="se">buot fiillat</comment>
- <comment xml:lang="sk">všetky súbory</comment>
- <comment xml:lang="sl">vse datoteke</comment>
- <comment xml:lang="sr">сви фајлови</comment>
- <comment xml:lang="sr@ijekavian">сви фајлови</comment>
- <comment xml:lang="sr@ijekavianlatin">svi fajlovi</comment>
- <comment xml:lang="sr@latin">svi fajlovi</comment>
- <comment xml:lang="sv">alla filer</comment>
- <comment xml:lang="th">แฟ้มทั้งหมด</comment>
- <comment xml:lang="tr">tüm dosyalar</comment>
- <comment xml:lang="ug">ھەممە ھۆججەتلەر</comment>
- <comment xml:lang="uk">всі файли</comment>
- <comment xml:lang="zh_CN">全部文件</comment>
- <comment xml:lang="zh_TW">所有檔案</comment>
- </mime-type>
-
<mime-type type="application/vnd.kde.fontspackage">
<sub-class-of type="application/zip"/>
<comment>fonts package</comment>

View File

@ -1,42 +0,0 @@
diff -up kdelibs-4.9.90/solid/solid/backends/hal/halstorageaccess.cpp.solid_qt_no_debug_output kdelibs-4.9.90/solid/solid/backends/hal/halstorageaccess.cpp
--- kdelibs-4.9.90/solid/solid/backends/hal/halstorageaccess.cpp.solid_qt_no_debug_output 2012-11-14 09:58:29.000000000 -0600
+++ kdelibs-4.9.90/solid/solid/backends/hal/halstorageaccess.cpp 2012-12-12 16:18:25.817495558 -0600
@@ -340,9 +340,11 @@ bool StorageAccess::requestPassphrase()
returnService, m_lastReturnObject,
wId, appId);
m_passphraseRequested = reply.isValid();
+#ifndef QT_NO_DEBUG_STREAM
if (!m_passphraseRequested) {
qWarning() << "Failed to call the SolidUiServer, D-Bus said:" << reply.error();
}
+#endif
return m_passphraseRequested;
}
diff -up kdelibs-4.9.90/solid/solid/backends/udisks2/udisksstorageaccess.cpp.solid_qt_no_debug_output kdelibs-4.9.90/solid/solid/backends/udisks2/udisksstorageaccess.cpp
--- kdelibs-4.9.90/solid/solid/backends/udisks2/udisksstorageaccess.cpp.solid_qt_no_debug_output 2012-11-14 09:58:29.000000000 -0600
+++ kdelibs-4.9.90/solid/solid/backends/udisks2/udisksstorageaccess.cpp 2012-12-12 16:17:36.922022895 -0600
@@ -341,9 +341,10 @@ bool StorageAccess::requestPassphrase()
QDBusReply<void> reply = soliduiserver.call("showPassphraseDialog", udi, returnService,
m_lastReturnObject, wId, appId);
m_passphraseRequested = reply.isValid();
+#ifndef QT_NO_DEBUG_STREAM
if (!m_passphraseRequested)
qWarning() << "Failed to call the SolidUiServer, D-Bus said:" << reply.error();
-
+#endif
return m_passphraseRequested;
}
diff -up kdelibs-4.9.90/solid/solid/CMakeLists.txt.solid_qt_no_debug_output kdelibs-4.9.90/solid/solid/CMakeLists.txt
--- kdelibs-4.9.90/solid/solid/CMakeLists.txt.solid_qt_no_debug_output 2012-11-14 09:58:29.000000000 -0600
+++ kdelibs-4.9.90/solid/solid/CMakeLists.txt 2012-12-12 16:17:36.922022895 -0600
@@ -268,7 +268,7 @@ if(NOT WIN32 AND NOT APPLE)
if ( WITH_SOLID_UDISKS2 )
message(STATUS "Building Solid UDisks2 backend." )
- add_definitions(-DWITH_SOLID_UDISKS2)
+ add_definitions(-DWITH_SOLID_UDISKS2 -DQT_NO_DEBUG_OUTPUT)
set(solid_LIB_SRCS ${solid_LIB_SRCS}
backends/udisks2/udisksmanager.cpp
backends/udisks2/udisksdevice.cpp

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +0,0 @@
%kdelibs4 @@NAME@@
%kdelibs4_epoch @@EPOCH@@
%kdelibs4_version @@VERSION@@
%kdelibs4_evr @@EVR@@
%kdelibs4_requires \
Requires: kdelibs4%{?_isa} >= %{kdelibs4_version} \
%{nil}
%kde_applications_version @@KDE_APPLICATIONS_VERSION@@
%kde_runtime_requires \
Requires: kde-runtime >= %{kde_applications_version} \
%{nil}

View File

@ -1 +1 @@
SHA512 (kdelibs-4.14.38.tar.xz) = 54fbbb9b2f12a47d5aca21c152164ed03cc6a6619bf285e2b93c8e9260042ffd728ef41e1badb217e552de6478687cab5d3caf14af7b32da8caca3468d469e45
8ca933c00bb5089e0793756e69bd1275 kdelibs-4.6.5.tar.bz2