Compare commits

..

No commits in common. "master" and "f14" have entirely different histories.
master ... f14

18 changed files with 75 additions and 5142 deletions

View File

@ -1,12 +0,0 @@
diff -up kdelibs-3.5.10/admin/cvs.sh.me kdelibs-3.5.10/admin/cvs.sh
--- kdelibs-3.5.10/admin/cvs.sh.me 2013-03-07 18:31:59.415038395 +0100
+++ kdelibs-3.5.10/admin/cvs.sh 2013-03-07 18:32:26.565020369 +0100
@@ -130,7 +130,7 @@ if egrep "^AM_CONFIG_HEADER" configure.i
fi
echo "*** Creating Makefile templates"
-$AUTOMAKE || exit 1
+$AUTOMAKE --add-missing --copy --force-missing || exit 1
if test "$UNSERMAKE" = no; then
echo "*** Postprocessing Makefile templates"

View File

@ -1,17 +0,0 @@
diff -ur kdelibs-3.5.10/admin/cvs.sh kdelibs-3.5.10-automake-version/admin/cvs.sh
--- kdelibs-3.5.10/admin/cvs.sh 2008-08-19 22:28:39.000000000 +0200
+++ kdelibs-3.5.10-automake-version/admin/cvs.sh 2012-06-12 01:24:13.000000000 +0200
@@ -63,12 +63,7 @@
AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
required_automake_version="1.6.1 or newer"
case $AUTOMAKE_STRING in
- automake*1.5d* | automake*1.5* | automake*1.5-* )
- echo "*** YOU'RE USING $AUTOMAKE_STRING."
- echo "*** KDE requires automake $required_automake_version"
- exit 1
- ;;
- automake*1.6.* | automake*1.7* | automake*1.8* | automake*1.9* | automake*1.10*)
+ automake*)
echo "*** $AUTOMAKE_STRING found."
UNSERMAKE=no
;;

View File

@ -1,93 +0,0 @@
diff -up kdelibs-3.5.10/configure.in.than kdelibs-3.5.10/configure.in
--- kdelibs-3.5.10/configure.in.than 2017-06-20 18:02:22.845910412 +0200
+++ kdelibs-3.5.10/configure.in 2017-06-20 18:03:09.058172814 +0200
@@ -692,10 +692,10 @@ AC_ARG_WITH(libidn,
[], with_libidn=check)
LIB_IDN=
if test "x$with_libidn" != xno; then
- AC_CHECK_HEADERS([idna.h punycode.h stringprep.h])
- KDE_CHECK_LIB(idn, idna_to_ascii_4i, [
+ AC_CHECK_HEADERS([idn2.h])
+ KDE_CHECK_LIB(idn2, idn2_to_ascii_4i, [
AC_DEFINE_UNQUOTED(HAVE_LIBIDN, 1, [Defined if you have libidn in your system])
- LIB_IDN=-lidn
+ LIB_IDN=-lidn2
])
if test "x$with_libidn" != xcheck && test -z "$LIB_IDN"; then
AC_MSG_ERROR([--with-libidn was given, but test for libidn failed])
diff -up kdelibs-3.5.10/kdecore/configure.in.in.than kdelibs-3.5.10/kdecore/configure.in.in
--- kdelibs-3.5.10/kdecore/configure.in.in.than 2017-06-20 17:53:41.544511539 +0200
+++ kdelibs-3.5.10/kdecore/configure.in.in 2017-06-20 18:01:27.557989259 +0200
@@ -48,10 +48,10 @@ AC_ARG_WITH(libidn,
[], with_libidn=check)
LIB_IDN=
if test "x$with_libidn" != xno; then
- AC_CHECK_HEADERS([idna.h punycode.h stringprep.h])
- KDE_CHECK_LIB(idn, idna_to_ascii_4i, [
+ AC_CHECK_HEADERS([idn2.h])
+ KDE_CHECK_LIB(idn2, idn2_to_ascii_4i, [
AC_DEFINE_UNQUOTED(HAVE_LIBIDN, 1, [Defined if you have libidn in your system])
- LIB_IDN=-lidn
+ LIB_IDN=-lidn2
])
if test "x$with_libidn" != xcheck && test -z "$LIB_IDN"; then
AC_MSG_ERROR([--with-libidn was given, but test for libidn failed])
diff -up kdelibs-3.5.10/kdecore/network/kresolver.cpp.than kdelibs-3.5.10/kdecore/network/kresolver.cpp
--- kdelibs-3.5.10/kdecore/network/kresolver.cpp.than 2017-06-21 12:55:55.733217103 +0200
+++ kdelibs-3.5.10/kdecore/network/kresolver.cpp 2017-06-21 13:27:38.956737181 +0200
@@ -49,8 +49,8 @@
#include <qguardedptr.h>
// IDN
-#ifdef HAVE_IDNA_H
-# include <idna.h>
+#ifdef HAVE_IDN2_H
+# include <idn2.h>
#endif
// KDE
@@ -1083,7 +1083,7 @@ static QStringList splitLabels(const QSt
static QCString ToASCII(const QString& label)
{
-#ifdef HAVE_IDNA_H
+#ifdef HAVE_IDN2_H
// We have idna.h, so we can use the idna_to_ascii
// function :)
@@ -1104,7 +1104,7 @@ static QCString ToASCII(const QString& l
ucs4[i] = (unsigned long)label[i].unicode();
ucs4[i] = 0; // terminate with NUL, just to be on the safe side
- if (idna_to_ascii_4i(ucs4, label.length(), buf, 0) == IDNA_SUCCESS)
+ if (idn2_to_ascii_4i(ucs4, label.length(), buf, 0|IDN2_NFC_INPUT|IDN2_NONTRANSITIONAL) == IDN2_OK)
// success!
retval = buf;
@@ -1117,7 +1117,7 @@ static QCString ToASCII(const QString& l
static QString ToUnicode(const QString& label)
{
-#ifdef HAVE_IDNA_H
+#ifdef HAVE_IDN2_H
// We have idna.h, so we can use the idna_to_unicode
// function :)
@@ -1131,7 +1131,7 @@ static QString ToUnicode(const QString&
// try the same length for output
ucs4_output = new Q_UINT32[outlen = label.length()];
- idna_to_unicode_44i(ucs4_input, label.length(),
+ idn2_to_unicode_44i(ucs4_input, label.length(),
ucs4_output, &outlen,
0);
@@ -1141,7 +1141,7 @@ static QString ToUnicode(const QString&
delete [] ucs4_output;
ucs4_output = new Q_UINT32[outlen];
- idna_to_unicode_44i(ucs4_input, label.length(),
+ idn2_to_unicode_44i(ucs4_input, label.length(),
ucs4_output, &outlen,
0);
}

View File

@ -1,166 +0,0 @@
diff -ur kdelibs-3.5.10/kioslave/http/http.cc kdelibs-3.5.10-CVE-2013-2074/kioslave/http/http.cc
--- kdelibs-3.5.10/kioslave/http/http.cc 2008-02-13 10:41:06.000000000 +0100
+++ kdelibs-3.5.10-CVE-2013-2074/kioslave/http/http.cc 2013-05-14 17:54:42.000000000 +0200
@@ -288,7 +288,7 @@
m_bUseProxy = m_proxyURL.isValid();
kdDebug(7113) << "(" << m_pid << ") Using proxy: " << m_bUseProxy <<
- " URL: " << m_proxyURL.url() <<
+ " URL: " << m_proxyURL.prettyURL() <<
" Realm: " << m_strProxyRealm << endl;
}
@@ -458,7 +458,7 @@
bool HTTPProtocol::checkRequestURL( const KURL& u )
{
- kdDebug (7113) << "(" << m_pid << ") HTTPProtocol::checkRequestURL: " << u.url() << endl;
+ kdDebug (7113) << "(" << m_pid << ") HTTPProtocol::checkRequestURL: " << u.prettyURL() << endl;
m_request.url = u;
@@ -640,7 +640,7 @@
void HTTPProtocol::listDir( const KURL& url )
{
- kdDebug(7113) << "(" << m_pid << ") HTTPProtocol::listDir " << url.url()
+ kdDebug(7113) << "(" << m_pid << ") HTTPProtocol::listDir " << url.prettyURL()
<< endl;
if ( !checkRequestURL( url ) )
@@ -807,7 +807,7 @@
void HTTPProtocol::davGeneric( const KURL& url, KIO::HTTP_METHOD method )
{
- kdDebug(7113) << "(" << m_pid << ") HTTPProtocol::davGeneric " << url.url()
+ kdDebug(7113) << "(" << m_pid << ") HTTPProtocol::davGeneric " << url.prettyURL()
<< endl;
if ( !checkRequestURL( url ) )
@@ -1206,7 +1206,7 @@
void HTTPProtocol::mkdir( const KURL& url, int )
{
- kdDebug(7113) << "(" << m_pid << ") HTTPProtocol::mkdir " << url.url()
+ kdDebug(7113) << "(" << m_pid << ") HTTPProtocol::mkdir " << url.prettyURL()
<< endl;
if ( !checkRequestURL( url ) )
@@ -1228,7 +1228,7 @@
void HTTPProtocol::get( const KURL& url )
{
- kdDebug(7113) << "(" << m_pid << ") HTTPProtocol::get " << url.url()
+ kdDebug(7113) << "(" << m_pid << ") HTTPProtocol::get " << url.prettyURL()
<< endl;
if ( !checkRequestURL( url ) )
@@ -1543,8 +1543,10 @@
callError = true;
}
+ // Huh? This looks like inverted logic to me (it doesn't make sense to me as
+ // written), but I'm only fixing the CVE now. -- Kevin Kofler
if ( !url.isNull() )
- url = m_request.url.url();
+ url = m_request.url.prettyURL();
QString action, errorString;
KIO::Error kError;
@@ -1840,7 +1842,7 @@
if ( !checkRequestURL( url ) )
continue;
- kdDebug(7113) << "(" << m_pid << ") HTTPProtocol::multi_get " << url.url() << endl;
+ kdDebug(7113) << "(" << m_pid << ") HTTPProtocol::multi_get " << url.prettyURL() << endl;
m_request.method = HTTP_GET;
m_request.path = url.path();
@@ -2212,12 +2214,12 @@
if (bCacheOnly)
{
- error( ERR_DOES_NOT_EXIST, m_request.url.url() );
+ error( ERR_DOES_NOT_EXIST, m_request.url.prettyURL() );
return false;
}
if (bOffline)
{
- error( ERR_COULD_NOT_CONNECT, m_request.url.url() );
+ error( ERR_COULD_NOT_CONNECT, m_request.url.prettyURL() );
return false;
}
}
@@ -2891,7 +2893,7 @@
errorPage();
else
{
- error(ERR_INTERNAL_SERVER, m_request.url.url());
+ error(ERR_INTERNAL_SERVER, m_request.url.prettyURL());
return false;
}
}
@@ -2931,7 +2933,7 @@
errorPage();
else
{
- error(ERR_DOES_NOT_EXIST, m_request.url.url());
+ error(ERR_DOES_NOT_EXIST, m_request.url.prettyURL());
return false;
}
m_request.bCachedWrite = false; // Don't put in cache
@@ -3584,7 +3586,7 @@
KURL u(m_request.url, locationStr);
if(!u.isValid())
{
- error(ERR_MALFORMED_URL, u.url());
+ error(ERR_MALFORMED_URL, u.prettyURL());
return false;
}
if ((u.protocol() != "http") && (u.protocol() != "https") &&
@@ -3592,7 +3594,7 @@
(u.protocol() != "webdavs"))
{
redirection(u);
- error(ERR_ACCESS_DENIED, u.url());
+ error(ERR_ACCESS_DENIED, u.prettyURL());
return false;
}
@@ -3613,10 +3615,10 @@
sendMetaData();
}
- kdDebug(7113) << "(" << m_pid << ") request.url: " << m_request.url.url()
+ kdDebug(7113) << "(" << m_pid << ") request.url: " << m_request.url.prettyURL()
<< endl << "LocationStr: " << locationStr.data() << endl;
- kdDebug(7113) << "(" << m_pid << ") Requesting redirection to: " << u.url()
+ kdDebug(7113) << "(" << m_pid << ") Requesting redirection to: " << u.prettyURL()
<< endl;
// If we're redirected to a http:// url, remember that we're doing webdav...
@@ -3832,7 +3834,7 @@
if (!m_request.fcache)
{
m_request.bCachedWrite = false; // Error creating cache entry.
- kdDebug(7113) << "(" << m_pid << ") Error creating cache entry for " << m_request.url.url()<<"!\n";
+ kdDebug(7113) << "(" << m_pid << ") Error creating cache entry for " << m_request.url.prettyURL()<<"!\n";
}
m_request.expireDate = expireDate;
m_maxCacheSize = config()->readNumEntry("MaxCacheSize", DEFAULT_MAX_CACHE_SIZE) / 2;
@@ -3840,11 +3842,11 @@
}
if (m_request.bCachedWrite && !m_strMimeType.isEmpty())
- kdDebug(7113) << "(" << m_pid << ") Cache, adding \"" << m_request.url.url() << "\"" << endl;
+ kdDebug(7113) << "(" << m_pid << ") Cache, adding \"" << m_request.url.prettyURL() << "\"" << endl;
else if (m_request.bCachedWrite && m_strMimeType.isEmpty())
- kdDebug(7113) << "(" << m_pid << ") Cache, pending \"" << m_request.url.url() << "\"" << endl;
+ kdDebug(7113) << "(" << m_pid << ") Cache, pending \"" << m_request.url.prettyURL() << "\"" << endl;
else
- kdDebug(7113) << "(" << m_pid << ") Cache, not adding \"" << m_request.url.url() << "\"" << endl;
+ kdDebug(7113) << "(" << m_pid << ") Cache, not adding \"" << m_request.url.prettyURL() << "\"" << endl;
return true;
}

View File

@ -1,38 +0,0 @@
diff -ur kdelibs-3.5.10/kinit/lnusertemp.c kdelibs-3.5.10-CVE-2015-7543/kinit/lnusertemp.c
--- kdelibs-3.5.10/kinit/lnusertemp.c 2007-05-14 09:52:34.000000000 +0200
+++ kdelibs-3.5.10-CVE-2015-7543/kinit/lnusertemp.c 2015-12-10 10:04:02.934321515 +0100
@@ -178,7 +178,11 @@
if (result == 0) return 0; /* Success */
unlink(kde_tmp_dir);
strncat(user_tmp_dir, "XXXXXX", PATH_MAX - strlen(user_tmp_dir));
+#if 0
mktemp(user_tmp_dir); /* We want a directory, not a file, so using mkstemp makes no sense and is wrong */
+#else
+ if (mkdtemp(user_tmp_dir)==0) return 1; /*JOWENN: isn't that the better solution ?? */
+#endif
return create_link(kde_tmp_dir, user_tmp_dir);
}
if ((result == -1) || (!S_ISLNK(stat_buf.st_mode)))
@@ -204,14 +208,22 @@
if (result == 0) return 0; /* Success */
unlink(kde_tmp_dir);
strncat(user_tmp_dir, "XXXXXX", PATH_MAX - strlen(user_tmp_dir));
+#if 0
mktemp(user_tmp_dir); /* We want a directory, not a file, so using mkstemp makes no sense and is wrong */
+#else
+ if (mkdtemp(user_tmp_dir)==0) return 1; /*JOWENN: isn't that the better solution ?? */
+#endif
return create_link(kde_tmp_dir, user_tmp_dir);
}
result = check_tmp_dir(tmp_buf);
if (result == 0) return 0; /* Success */
unlink(kde_tmp_dir);
strncat(user_tmp_dir, "XXXXXX", PATH_MAX - strlen(user_tmp_dir));
+#if 0
mktemp(user_tmp_dir); /* We want a directory, not a file, so using mkstemp makes no sense and is wrong */
+#else
+ if (mkdtemp(user_tmp_dir)==0) return 1; /*JOWENN: isn't that the better solution ?? */
+#endif
return create_link(kde_tmp_dir, user_tmp_dir);
}

View File

@ -1,48 +0,0 @@
From 261a3b7a126b7a1d28e263085b85bf1905eb4c19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= <slavek.banko@axis.cz>
Date: Sun, 23 Oct 2016 10:48:01 +0200
Subject: Fix security issue CVE-2016-6232 Based on
https://quickgit.kde.org/?p=karchive.git&a=commitdiff&h=0cb243f6
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
diff --git a/kio/kio/karchive.cpp b/kio/kio/karchive.cpp
index b0e0dc6..69e54d1 100644
--- a/kio/kio/karchive.cpp
+++ b/kio/kio/karchive.cpp
@@ -601,6 +601,7 @@ void KArchiveDirectory::addEntry( KArchiveEntry* entry )
void KArchiveDirectory::copyTo(const QString& dest, bool recursiveCopy ) const
{
QDir root;
+ const QString destDir(QDir(dest).absPath()); // get directory path without any "." or ".."
PosSortedPtrList fileList;
QMap<int, QString> fileToDir;
@@ -620,10 +621,19 @@ void KArchiveDirectory::copyTo(const QString& dest, bool recursiveCopy ) const
QValueStack<QString> dirNameStack;
dirStack.push( this ); // init stack at current directory
- dirNameStack.push( dest ); // ... with given path
+ dirNameStack.push( destDir ); // ... with given path
do {
curDir = dirStack.pop();
- curDirName = dirNameStack.pop();
+
+ // extract only to specified folder if it is located within archive's extraction folder
+ // otherwise put file under root position in extraction folder
+ QString curDirName = dirNameStack.pop();
+ if (!QDir(curDirName).absPath().startsWith(destDir)) {
+ kdWarning() << "Attempted export into folder" << curDirName
+ << "which is outside of the extraction root folder" << destDir << "."
+ << "Changing export of contained files to extraction root folder.";
+ curDirName = destDir;
+ }
root.mkdir(curDirName);
dirEntries = curDir->entries();
--
cgit v0.10.2

View File

@ -1,24 +0,0 @@
diff -ur kdelibs-3.5.10/kio/misc/kpac/script.cpp kdelibs-3.5.10-CVE-2017-6410/kio/misc/kpac/script.cpp
--- kdelibs-3.5.10/kio/misc/kpac/script.cpp 2008-02-13 10:41:06.000000000 +0100
+++ kdelibs-3.5.10-CVE-2017-6410/kio/misc/kpac/script.cpp 2017-03-04 18:42:29.638992390 +0100
@@ -446,10 +446,18 @@
if (!findObj.isValid() || !findObj.implementsCall())
throw Error( "No such function FindProxyForURL" );
+ KURL cleanUrl = url;
+ cleanUrl.setPass(QString());
+ cleanUrl.setUser(QString());
+ if (cleanUrl.protocol().lower() == "https") {
+ cleanUrl.setPath(QString());
+ cleanUrl.setQuery(QString());
+ }
+
Object thisObj;
List args;
- args.append(String(url.url()));
- args.append(String(url.host()));
+ args.append(String(cleanUrl.url()));
+ args.append(String(cleanUrl.host()));
Value retval = findObj.call( exec, thisObj, args );
if ( exec->hadException() ) {

View File

@ -1,849 +0,0 @@
diff -ur kdelibs-3.5.10/kdeprint/configure.in.in kdelibs-3.5.10-cups16/kdeprint/configure.in.in
--- kdelibs-3.5.10/kdeprint/configure.in.in 2005-09-10 10:27:43.000000000 +0200
+++ kdelibs-3.5.10-cups16/kdeprint/configure.in.in 2012-12-25 16:29:53.000000000 +0100
@@ -84,6 +84,13 @@
if test "$ac_have_new_cups" = "yes"; then
AC_DEFINE(HAVE_CUPS_NO_PWD_CACHE, 1, CUPS doesn't have password caching)
fi
+
+ dnl check if CUPS is at least 1.6
+ ac_have_new_cups="no"
+ AC_CHECK_CUPS_VERSION(1.06)
+ if test "$ac_have_new_cups" = "yes"; then
+ AC_DEFINE(HAVE_CUPS_1_6, 1, CUPS is at least version 1.6)
+ fi
fi
fi
LDFLAGS="$ac_LDFLAGS_save"
diff -ur kdelibs-3.5.10/kdeprint/cups/cupsdconf2/cupsdconf.cpp kdelibs-3.5.10-cups16/kdeprint/cups/cupsdconf2/cupsdconf.cpp
--- kdelibs-3.5.10/kdeprint/cups/cupsdconf2/cupsdconf.cpp 2005-10-10 17:06:30.000000000 +0200
+++ kdelibs-3.5.10-cups16/kdeprint/cups/cupsdconf2/cupsdconf.cpp 2012-12-25 16:34:57.000000000 +0100
@@ -629,26 +629,44 @@
cups_lang_t* lang = cupsLangDefault();
ippAddString(request_, IPP_TAG_OPERATION, IPP_TAG_CHARSET, "attributes-charset", NULL, cupsLangEncoding(lang));
ippAddString(request_, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE, "attributes-natural-language", NULL, lang->language);
+#ifdef HAVE_CUPS_1_6
+ ippSetOperation(request_, CUPS_GET_PRINTERS);
+#else // HAVE_CUPS_1_6
request_->request.op.operation_id = CUPS_GET_PRINTERS;
+#endif // HAVE_CUPS_1_6
request_ = cupsDoRequest(http_, request_, "/printers/");
if (request_)
{
QString name;
int type(0);
+#ifdef HAVE_CUPS_1_6
+ ipp_attribute_t *attr = ippFirstAttribute(request_);
+#else // HAVE_CUPS_1_6
ipp_attribute_t *attr = request_->attrs;
+#endif // HAVE_CUPS_1_6
while (attr)
{
// check new printer (keep only local non-implicit printers)
+#ifdef HAVE_CUPS_1_6
+ if (!ippGetName(attr))
+#else // HAVE_CUPS_1_6
if (!attr->name)
+#endif // HAVE_CUPS_1_6
{
if (!(type & CUPS_PRINTER_REMOTE) && !(type & CUPS_PRINTER_IMPLICIT) && !name.isEmpty())
resources_.append(new CupsResource("/printers/"+name));
name = "";
type = 0;
}
+#ifdef HAVE_CUPS_1_6
+ else if (strcmp(ippGetName(attr), "printer-name") == 0) name = ippGetString(attr, 0, NULL);
+ else if (strcmp(ippGetName(attr), "printer-type") == 0) type = ippGetInteger(attr, 0);
+ attr = ippNextAttribute(request_);
+#else // HAVE_CUPS_1_6
else if (strcmp(attr->name, "printer-name") == 0) name = attr->values[0].string.text;
else if (strcmp(attr->name, "printer-type") == 0) type = attr->values[0].integer;
attr = attr->next;
+#endif // HAVE_CUPS_1_6
}
if (!(type & CUPS_PRINTER_REMOTE) && !(type & CUPS_PRINTER_IMPLICIT) && !name.isEmpty())
resources_.append(new CupsResource("/printers/"+name));
@@ -658,26 +676,44 @@
request_ = ippNew();
ippAddString(request_, IPP_TAG_OPERATION, IPP_TAG_CHARSET, "attributes-charset", NULL, cupsLangEncoding(lang));
ippAddString(request_, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE, "attributes-natural-language", NULL, lang->language);
+#ifdef HAVE_CUPS_1_6
+ ippSetOperation(request_, CUPS_GET_CLASSES);
+#else // HAVE_CUPS_1_6
request_->request.op.operation_id = CUPS_GET_CLASSES;
+#endif // HAVE_CUPS_1_6
request_ = cupsDoRequest(http_, request_, "/classes/");
if (request_)
{
QString name;
int type(0);
+#ifdef HAVE_CUPS_1_6
+ ipp_attribute_t *attr = ippFirstAttribute(request_);
+#else // HAVE_CUPS_1_6
ipp_attribute_t *attr = request_->attrs;
+#endif // HAVE_CUPS_1_6
while (attr)
{
// check new class (keep only local classes)
+#ifdef HAVE_CUPS_1_6
+ if (!ippGetName(attr))
+#else // HAVE_CUPS_1_6
if (!attr->name)
+#endif // HAVE_CUPS_1_6
{
if (!(type & CUPS_PRINTER_REMOTE) && !name.isEmpty())
resources_.append(new CupsResource("/classes/"+name));
name = "";
type = 0;
}
+#ifdef HAVE_CUPS_1_6
+ else if (strcmp(ippGetName(attr), "printer-name") == 0) name = ippGetString(attr, 0, NULL);
+ else if (strcmp(ippGetName(attr), "printer-type") == 0) type = ippGetInteger(attr, 0);
+ attr = ippNextAttribute(request_);
+#else // HAVE_CUPS_1_6
else if (strcmp(attr->name, "printer-name") == 0) name = attr->values[0].string.text;
else if (strcmp(attr->name, "printer-type") == 0) type = attr->values[0].integer;
attr = attr->next;
+#endif // HAVE_CUPS_1_6
}
if (!(type & CUPS_PRINTER_REMOTE) && !name.isEmpty())
resources_.append(new CupsResource("/classes/"+name));
diff -ur kdelibs-3.5.10/kdeprint/cups/ipprequest.cpp kdelibs-3.5.10-cups16/kdeprint/cups/ipprequest.cpp
--- kdelibs-3.5.10/kdeprint/cups/ipprequest.cpp 2007-10-08 11:52:10.000000000 +0200
+++ kdelibs-3.5.10-cups16/kdeprint/cups/ipprequest.cpp 2012-12-25 16:55:53.000000000 +0100
@@ -51,6 +51,58 @@
kdDebug(500) << "Null request" << endl;
return;
}
+#ifdef HAVE_CUPS_1_6
+ kdDebug(500) << "State = 0x" << QString::number(ippGetState(req), 16) << endl;
+ kdDebug(500) << "ID = 0x" << QString::number(ippGetRequestId(req), 16) << endl;
+ if (answer)
+ {
+ kdDebug(500) << "Status = 0x" << QString::number(ippGetStatusCode(req), 16) << endl;
+ kdDebug(500) << "Status message = " << ippErrorString(ippGetStatusCode(req)) << endl;
+ }
+ else
+ kdDebug(500) << "Operation = 0x" << QString::number(ippGetOperation(req), 16) << endl;
+ int minorVersion;
+ int majorVersion = ippGetVersion(req, &minorVersion);
+ kdDebug(500) << "Version = " << (int)(majorVersion) << "." << (int)(minorVersion) << endl;
+ kdDebug(500) << endl;
+
+ ipp_attribute_t *attr = ippFirstAttribute(req);
+ while (attr)
+ {
+ QString s = QString::fromLatin1("%1 (0x%2) = ").arg(ippGetName(attr)).arg(ippGetValueTag(attr), 0, 16);
+ for (int i=0;i<ippGetCount(attr);i++)
+ {
+ switch (ippGetValueTag(attr))
+ {
+ case IPP_TAG_INTEGER:
+ case IPP_TAG_ENUM:
+ s += ("0x"+QString::number(ippGetInteger(attr, i), 16));
+ break;
+ case IPP_TAG_BOOLEAN:
+ s += (ippGetBoolean(attr, i) ? "true" : "false");
+ break;
+ case IPP_TAG_STRING:
+ case IPP_TAG_TEXT:
+ case IPP_TAG_NAME:
+ case IPP_TAG_KEYWORD:
+ case IPP_TAG_URI:
+ case IPP_TAG_MIMETYPE:
+ case IPP_TAG_NAMELANG:
+ case IPP_TAG_TEXTLANG:
+ case IPP_TAG_CHARSET:
+ case IPP_TAG_LANGUAGE:
+ s += ippGetString(attr, i, NULL);
+ break;
+ default:
+ break;
+ }
+ if (i != (ippGetCount(attr)-1))
+ s += ", ";
+ }
+ kdDebug(500) << s << endl;
+ attr = ippNextAttribute(req);
+ }
+#else // HAVE_CUPS_1_6
kdDebug(500) << "State = 0x" << QString::number(req->state, 16) << endl;
kdDebug(500) << "ID = 0x" << QString::number(req->request.status.request_id, 16) << endl;
if (answer)
@@ -99,6 +151,7 @@
kdDebug(500) << s << endl;
attr = attr->next;
}
+#endif // HAVE_CUPS_1_6
}
QString errorString(int status)
@@ -177,7 +230,11 @@
ipp_attribute_t *attr = ippAddStrings(request_,(ipp_tag_t)group,(ipp_tag_t)type,name.latin1(),(int)(values.count()),NULL,NULL);
int i(0);
for (QStringList::ConstIterator it=values.begin(); it != values.end(); ++it, i++)
+#ifdef HAVE_CUPS_1_6
+ ippSetString(request_, &attr, i, strdup((*it).local8Bit()));
+#else // HAVE_CUPS_1_6
attr->values[i].string.text = strdup((*it).local8Bit());
+#endif // HAVE_CUPS_1_6
}
}
@@ -193,7 +250,11 @@
ipp_attribute_t *attr = ippAddIntegers(request_,(ipp_tag_t)group,(ipp_tag_t)type,name.latin1(),(int)(values.count()),NULL);
int i(0);
for (QValueList<int>::ConstIterator it=values.begin(); it != values.end(); ++it, i++)
+#ifdef HAVE_CUPS_1_6
+ ippSetInteger(request_, &attr, i, *it);
+#else // HAVE_CUPS_1_6
attr->values[i].integer = *it;
+#endif // HAVE_CUPS_1_6
}
}
@@ -209,19 +270,32 @@
ipp_attribute_t *attr = ippAddBooleans(request_,(ipp_tag_t)group,name.latin1(),(int)(values.count()),NULL);
int i(0);
for (QValueList<bool>::ConstIterator it=values.begin(); it != values.end(); ++it, i++)
+#ifdef HAVE_CUPS_1_6
+ ippSetBoolean(request_, &attr, i, (char)(*it));
+#else // HAVE_CUPS_1_6
attr->values[i].boolean = (char)(*it);
+#endif // HAVE_CUPS_1_6
}
}
void IppRequest::setOperation(int op)
{
+#ifdef HAVE_CUPS_1_6
+ ippSetOperation(request_, (ipp_op_t)op);
+ ippSetRequestId(request_, 1); // 0 is not RFC-compliant, should be at least 1
+#else // HAVE_CUPS_1_6
request_->request.op.operation_id = (ipp_op_t)op;
request_->request.op.request_id = 1; // 0 is not RFC-compliant, should be at least 1
+#endif // HAVE_CUPS_1_6
}
int IppRequest::status()
{
+#ifdef HAVE_CUPS_1_6
+ return (request_ ? ippGetStatusCode(request_) : (connect_ ? cupsLastError() : -2));
+#else // HAVE_CUPS_1_6
return (request_ ? request_->request.status.status_code : (connect_ ? cupsLastError() : -2));
+#endif // HAVE_CUPS_1_6
}
QString IppRequest::statusMessage()
@@ -248,7 +322,11 @@
ipp_attribute_t *attr = ippFindAttribute(request_, name.latin1(), (ipp_tag_t)type);
if (attr)
{
+#ifdef HAVE_CUPS_1_6
+ value = ippGetInteger(attr, 0);
+#else // HAVE_CUPS_1_6
value = attr->values[0].integer;
+#endif // HAVE_CUPS_1_6
return true;
}
else return false;
@@ -260,7 +338,11 @@
ipp_attribute_t *attr = ippFindAttribute(request_, name.latin1(), (ipp_tag_t)type);
if (attr)
{
+#ifdef HAVE_CUPS_1_6
+ value = QString::fromLocal8Bit(ippGetString(attr, 0, NULL));
+#else // HAVE_CUPS_1_6
value = QString::fromLocal8Bit(attr->values[0].string.text);
+#endif // HAVE_CUPS_1_6
return true;
}
else return false;
@@ -273,8 +355,13 @@
values.clear();
if (attr)
{
+#ifdef HAVE_CUPS_1_6
+ for (int i=0;i<ippGetCount(attr);i++)
+ values.append(QString::fromLocal8Bit(ippGetString(attr, i, NULL)));
+#else // HAVE_CUPS_1_6
for (int i=0;i<attr->num_values;i++)
values.append(QString::fromLocal8Bit(attr->values[i].string.text));
+#endif // HAVE_CUPS_1_6
return true;
}
else return false;
@@ -286,7 +373,11 @@
ipp_attribute_t *attr = ippFindAttribute(request_, name.latin1(), IPP_TAG_BOOLEAN);
if (attr)
{
+#ifdef HAVE_CUPS_1_6
+ value = (bool)ippGetBoolean(attr, 0);
+#else // HAVE_CUPS_1_6
value = (bool)attr->values[0].boolean;
+#endif // HAVE_CUPS_1_6
return true;
}
else return false;
@@ -338,10 +429,18 @@
}
/* No printers found */
+#ifdef HAVE_CUPS_1_6
+ if ( request_ && ippGetStatusCode(request_) == 0x406 )
+#else // HAVE_CUPS_1_6
if ( request_ && request_->request.status.status_code == 0x406 )
+#endif // HAVE_CUPS_1_6
return true;
+#ifdef HAVE_CUPS_1_6
+ if (!request_ || ippGetState(request_) == IPP_ERROR || (ippGetStatusCode(request_) & 0x0F00))
+#else // HAVE_CUPS_1_6
if (!request_ || request_->state == IPP_ERROR || (request_->request.status.status_code & 0x0F00))
+#endif // HAVE_CUPS_1_6
return false;
@@ -356,14 +455,88 @@
output << "<tr><th bgcolor=\"dark blue\"><font color=\"white\">" << i18n("Attribute") << "</font></th>" << endl;
output << "<th bgcolor=\"dark blue\"><font color=\"white\">" << i18n("Values") << "</font></th></tr>" << endl;
// go to the first attribute of the specified group
+#ifdef HAVE_CUPS_1_6
+ ipp_attribute_t *attr = ippFirstAttribute(request_);
+ while (attr && ippGetGroupTag(attr) != group)
+ attr = ippNextAttribute(request_);
+#else // HAVE_CUPS_1_6
ipp_attribute_t *attr = request_->attrs;
while (attr && attr->group_tag != group)
attr = attr->next;
+#endif // HAVE_CUPS_1_6
// print each attribute
- ipp_uchar_t *d;
- QCString dateStr;
- QDateTime dt;
- bool bg(false);
+ const ipp_uchar_t *d;
+ QCString dateStr;
+ QDateTime dt;
+ bool bg(false);
+#ifdef HAVE_CUPS_1_6
+ while (attr && ippGetGroupTag(attr) == group)
+ {
+ output << " <tr bgcolor=\"" << (bg ? "#ffffd9" : "#ffffff") << "\">\n <td><b>" << ippGetName(attr) << "</b></td>\n <td>" << endl;
+ bg = !bg;
+ for (int i=0; i<ippGetCount(attr); i++)
+ {
+ switch (ippGetValueTag(attr))
+ {
+ case IPP_TAG_INTEGER:
+ if (ippGetName(attr) && strstr(ippGetName(attr), "time"))
+ {
+ dt.setTime_t((unsigned int)(ippGetInteger(attr, i)));
+ output << dt.toString();
+ }
+ else
+ output << ippGetInteger(attr, i);
+ break;
+ case IPP_TAG_ENUM:
+ output << "0x" << hex << ippGetInteger(attr, i) << dec;
+ break;
+ case IPP_TAG_BOOLEAN:
+ output << (ippGetBoolean(attr, i) ? i18n("True") : i18n("False"));
+ break;
+ case IPP_TAG_STRING:
+ case IPP_TAG_TEXTLANG:
+ case IPP_TAG_NAMELANG:
+ case IPP_TAG_TEXT:
+ case IPP_TAG_NAME:
+ case IPP_TAG_KEYWORD:
+ case IPP_TAG_URI:
+ case IPP_TAG_CHARSET:
+ case IPP_TAG_LANGUAGE:
+ case IPP_TAG_MIMETYPE:
+ output << ippGetString(attr, i, NULL);
+ break;
+ case IPP_TAG_RESOLUTION:
+ int xres;
+ int yres;
+ ipp_res_t units;
+ xres = ippGetResolution(attr, i, &yres, &units);
+ output << "( " << xres
+ << ", " << yres << " )";
+ break;
+ case IPP_TAG_RANGE:
+ int lowervalue;
+ int uppervalue;
+ lowervalue = ippGetRange(attr, i, &uppervalue);
+ output << "[ " << (lowervalue > 0 ? lowervalue : 1)
+ << ", " << (uppervalue > 0 ? uppervalue : 65535) << " ]";
+ break;
+ case IPP_TAG_DATE:
+ d = ippGetDate(attr, i);
+ dateStr.sprintf("%.4d-%.2d-%.2d, %.2d:%.2d:%.2d %c%.2d%.2d",
+ d[0]*256+d[1], d[2], d[3],
+ d[4], d[5], d[6],
+ d[8], d[9], d[10]);
+ output << dateStr;
+ break;
+ default:
+ continue;
+ }
+ if (i < ippGetCount(attr)-1)
+ output << "<br>";
+ }
+ output << "</td>\n </tr>" << endl;
+ attr = ippNextAttribute(request_);
+#else // HAVE_CUPS_1_6
while (attr && attr->group_tag == group)
{
output << " <tr bgcolor=\"" << (bg ? "#ffffd9" : "#ffffff") << "\">\n <td><b>" << attr->name << "</b></td>\n <td>" << endl;
@@ -423,6 +596,7 @@
}
output << "</td>\n </tr>" << endl;
attr = attr->next;
+#endif // HAVE_CUPS_1_6
}
// end table
output << "</table>" << endl;
@@ -438,6 +612,59 @@
ipp_attribute_t *attr = first();
while (attr)
{
+#ifdef HAVE_CUPS_1_6
+ if (group != -1 && ippGetGroupTag(attr) != group)
+ {
+ attr = ippNextAttribute(request_);
+ continue;
+ }
+ QString value;
+ for (int i=0; i<ippGetCount(attr); i++)
+ {
+ switch (ippGetValueTag(attr))
+ {
+ case IPP_TAG_INTEGER:
+ case IPP_TAG_ENUM:
+ value.append(QString::number(ippGetInteger(attr, i))).append(",");
+ break;
+ case IPP_TAG_BOOLEAN:
+ value.append((ippGetBoolean(attr, i) ? "true" : "false")).append(",");
+ break;
+ case IPP_TAG_RANGE:
+ int lowervalue;
+ int uppervalue;
+ lowervalue = ippGetRange(attr, i, &uppervalue);
+ if (lowervalue > 0)
+ value.append(QString::number(lowervalue));
+ if (lowervalue != uppervalue)
+ {
+ value.append("-");
+ if (uppervalue > 0)
+ value.append(QString::number(uppervalue));
+ }
+ value.append(",");
+ break;
+ case IPP_TAG_STRING:
+ case IPP_TAG_TEXT:
+ case IPP_TAG_NAME:
+ case IPP_TAG_KEYWORD:
+ case IPP_TAG_URI:
+ case IPP_TAG_MIMETYPE:
+ case IPP_TAG_NAMELANG:
+ case IPP_TAG_TEXTLANG:
+ case IPP_TAG_CHARSET:
+ case IPP_TAG_LANGUAGE:
+ value.append(QString::fromLocal8Bit(ippGetString(attr, i, NULL))).append(",");
+ break;
+ default:
+ break;
+ }
+ }
+ if (!value.isEmpty())
+ value.truncate(value.length()-1);
+ opts[QString::fromLocal8Bit(ippGetName(attr))] = value;
+ attr = ippNextAttribute(request_);
+#else // HAVE_CUPS_1_6
if (group != -1 && attr->group_tag != group)
{
attr = attr->next;
@@ -486,6 +713,7 @@
value.truncate(value.length()-1);
opts[QString::fromLocal8Bit(attr->name)] = value;
attr = attr->next;
+#endif // HAVE_CUPS_1_6
}
}
return opts;
@@ -542,3 +770,11 @@
}
#endif
}
+
+#ifdef HAVE_CUPS_1_6
+ipp_attribute_t* IppRequest::first()
+{ return (request_ ? ippFirstAttribute(request_) : NULL); }
+#else // HAVE_CUPS_1_6
+ipp_attribute_t* IppRequest::first()
+{ return (request_ ? request_->attrs : NULL); }
+#endif // HAVE_CUPS_1_6
diff -ur kdelibs-3.5.10/kdeprint/cups/ipprequest.h kdelibs-3.5.10-cups16/kdeprint/cups/ipprequest.h
--- kdelibs-3.5.10/kdeprint/cups/ipprequest.h 2005-10-10 17:06:30.000000000 +0200
+++ kdelibs-3.5.10-cups16/kdeprint/cups/ipprequest.h 2012-12-25 16:37:50.000000000 +0100
@@ -27,6 +27,8 @@
#include <cups/ipp.h>
+#include "config.h"
+
class IppRequest
{
public:
@@ -72,7 +74,10 @@
bool keyword(const QString& name, QStringList& value);
bool mime(const QString& name, QString& value);
ipp_attribute_t* first();
+#ifndef HAVE_CUPS_1_6
ipp_attribute_t* last();
+#endif // HAVE_CUPS_1_6
+ ipp_t* request();
QMap<QString,QString> toMap(int group = -1);
void setMap(const QMap<QString,QString>& opts);
@@ -178,11 +183,10 @@
inline bool IppRequest::doRequest(const QString& res)
{ return doFileRequest(res); }
-inline ipp_attribute_t* IppRequest::first()
-{ return (request_ ? request_->attrs : NULL); }
-
+#ifndef HAVE_CUPS_1_6
inline ipp_attribute_t* IppRequest::last()
{ return (request_ ? request_->last : NULL); }
+#endif // HAVE_CUPS_1_6
inline void IppRequest::setHost(const QString& host)
{ host_ = host; }
@@ -193,4 +197,7 @@
inline void IppRequest::dump(int state)
{ dump_ = state; }
+inline ipp_t* IppRequest::request()
+{ return request_; }
+
#endif
diff -ur kdelibs-3.5.10/kdeprint/cups/kmcupsjobmanager.cpp kdelibs-3.5.10-cups16/kdeprint/cups/kmcupsjobmanager.cpp
--- kdelibs-3.5.10/kdeprint/cups/kmcupsjobmanager.cpp 2007-01-15 12:34:19.000000000 +0100
+++ kdelibs-3.5.10-cups16/kdeprint/cups/kmcupsjobmanager.cpp 2012-12-25 16:34:57.000000000 +0100
@@ -36,6 +36,8 @@
#include <kdebug.h>
#include <kurl.h>
+#include "config.h"
+
KMCupsJobManager::KMCupsJobManager(QObject *parent, const char *name, const QStringList & /*args*/)
: KMJobManager(parent,name)
{
@@ -166,10 +168,79 @@
void KMCupsJobManager::parseListAnswer(IppRequest& req, KMPrinter *pr)
{
ipp_attribute_t *attr = req.first();
+ ipp_attribute_t *nextAttr;
KMJob *job = new KMJob();
QString uri;
while (attr)
{
+#ifdef HAVE_CUPS_1_6
+ QString name(ippGetName(attr));
+ if (name == "job-id") job->setId(ippGetInteger(attr, 0));
+ else if (name == "job-uri") job->setUri(QString::fromLocal8Bit(ippGetString(attr, 0, NULL)));
+ else if (name == "job-name") job->setName(QString::fromLocal8Bit(ippGetString(attr, 0, NULL)));
+ else if (name == "job-state")
+ {
+ switch (ippGetInteger(attr, 0))
+ {
+ case IPP_JOB_PENDING:
+ job->setState(KMJob::Queued);
+ break;
+ case IPP_JOB_HELD:
+ job->setState(KMJob::Held);
+ break;
+ case IPP_JOB_PROCESSING:
+ job->setState(KMJob::Printing);
+ break;
+ case IPP_JOB_STOPPED:
+ job->setState(KMJob::Error);
+ break;
+ case IPP_JOB_CANCELLED:
+ job->setState(KMJob::Cancelled);
+ break;
+ case IPP_JOB_ABORTED:
+ job->setState(KMJob::Aborted);
+ break;
+ case IPP_JOB_COMPLETED:
+ job->setState(KMJob::Completed);
+ break;
+ default:
+ job->setState(KMJob::Unknown);
+ break;
+ }
+ }
+ else if (name == "job-k-octets") job->setSize(ippGetInteger(attr, 0));
+ else if (name == "job-originating-user-name") job->setOwner(QString::fromLocal8Bit(ippGetString(attr, 0, NULL)));
+ else if (name == "job-k-octets-completed") job->setProcessedSize(ippGetInteger(attr, 0));
+ else if (name == "job-media-sheets") job->setPages(ippGetInteger(attr, 0));
+ else if (name == "job-media-sheets-completed") job->setProcessedPages(ippGetInteger(attr, 0));
+ else if (name == "job-printer-uri" && !pr->isRemote())
+ {
+ QString str(ippGetString(attr, 0, NULL));
+ int p = str.findRev('/');
+ if (p != -1)
+ job->setPrinter(str.mid(p+1));
+ }
+ else if (name == "job-priority")
+ {
+ job->setAttribute(0, QString::fromLatin1("%1").arg(ippGetInteger(attr, 0), 3));
+ }
+ else if (name == "job-billing")
+ {
+ job->setAttributeCount(2);
+ job->setAttribute(1, QString::fromLocal8Bit(ippGetString(attr, 0, NULL)));
+ }
+
+ nextAttr = ippNextAttribute(req.request());
+ if (name.isEmpty() || (!nextAttr))
+ {
+ if (job->printer().isEmpty())
+ job->setPrinter(pr->printerName());
+ job->setRemote(pr->isRemote());
+ addJob(job); // don't use job after this call !!!
+ job = new KMJob();
+ }
+ attr = nextAttr;
+#else // HAVE_CUPS_1_6
QString name(attr->name);
if (name == "job-id") job->setId(attr->values[0].integer);
else if (name == "job-uri") job->setUri(QString::fromLocal8Bit(attr->values[0].string.text));
@@ -236,6 +307,7 @@
}
attr = attr->next;
+#endif // HAVE_CUPS_1_6
}
delete job;
}
diff -ur kdelibs-3.5.10/kdeprint/cups/kmcupsmanager.cpp kdelibs-3.5.10-cups16/kdeprint/cups/kmcupsmanager.cpp
--- kdelibs-3.5.10/kdeprint/cups/kmcupsmanager.cpp 2007-01-15 12:34:19.000000000 +0100
+++ kdelibs-3.5.10-cups16/kdeprint/cups/kmcupsmanager.cpp 2012-12-25 16:34:57.000000000 +0100
@@ -476,9 +476,59 @@
void KMCupsManager::processRequest(IppRequest* req)
{
ipp_attribute_t *attr = req->first();
+ ipp_attribute_t *nextAttr;
KMPrinter *printer = new KMPrinter();
while (attr)
{
+#ifdef HAVE_CUPS_1_6
+ QString attrname(ippGetName(attr));
+ if (attrname == "printer-name")
+ {
+ QString value = QString::fromLocal8Bit(ippGetString(attr, 0, NULL));
+ printer->setName(value);
+ printer->setPrinterName(value);
+ }
+ else if (attrname == "printer-type")
+ {
+ int value = ippGetInteger(attr, 0);
+ printer->setType(0);
+ printer->addType(((value & CUPS_PRINTER_CLASS) || (value & CUPS_PRINTER_IMPLICIT) ? KMPrinter::Class : KMPrinter::Printer));
+ if ((value & CUPS_PRINTER_REMOTE)) printer->addType(KMPrinter::Remote);
+ if ((value & CUPS_PRINTER_IMPLICIT)) printer->addType(KMPrinter::Implicit);
+
+ // convert printer-type attribute
+ printer->setPrinterCap( ( value & CUPS_PRINTER_OPTIONS ) >> 2 );
+ }
+ else if (attrname == "printer-state")
+ {
+ switch (ippGetInteger(attr, 0))
+ {
+ case IPP_PRINTER_IDLE: printer->setState(KMPrinter::Idle); break;
+ case IPP_PRINTER_PROCESSING: printer->setState(KMPrinter::Processing); break;
+ case IPP_PRINTER_STOPPED: printer->setState(KMPrinter::Stopped); break;
+ }
+ }
+ else if (attrname == "printer-uri-supported")
+ {
+ printer->setUri(KURL(ippGetString(attr, 0, NULL)));
+ }
+ else if (attrname == "printer-location")
+ {
+ printer->setLocation(QString::fromLocal8Bit(ippGetString(attr, 0, NULL)));
+ }
+ else if (attrname == "printer-is-accepting-jobs")
+ {
+ printer->setAcceptJobs(ippGetBoolean(attr, 0));
+ }
+
+ nextAttr = ippNextAttribute(req->request());
+ if (attrname.isEmpty() || (!nextAttr))
+ {
+ addPrinter(printer);
+ printer = new KMPrinter();
+ }
+ attr = nextAttr;
+#else // HAVE_CUPS_1_6
QString attrname(attr->name);
if (attrname == "printer-name")
{
@@ -524,6 +574,7 @@
printer = new KMPrinter();
}
attr = attr->next;
+#endif // HAVE_CUPS_1_6
}
delete printer;
}
@@ -817,6 +868,7 @@
{
QStringList list;
IppRequest req;
+ ipp_attribute_t *nextAttr;
req.setOperation(CUPS_GET_DEVICES);
if (req.doRequest("/"))
{
@@ -824,6 +876,24 @@
ipp_attribute_t *attr = req.first();
while (attr)
{
+#ifdef HAVE_CUPS_1_6
+ QString attrname(ippGetName(attr));
+ if (attrname == "device-info") desc = ippGetString(attr, 0, NULL);
+ else if (attrname == "device-make-and-model") printer = ippGetString(attr, 0, NULL);
+ else if (attrname == "device-uri") uri = ippGetString(attr, 0, NULL);
+ else if ( attrname == "device-class" ) cl = ippGetString(attr, 0, NULL);
+ nextAttr = ippNextAttribute(req.request());
+ if (attrname.isEmpty() || (!nextAttr))
+ {
+ if (!uri.isEmpty())
+ {
+ if (printer == "Unknown") printer = QString::null;
+ list << cl << uri << desc << printer;
+ }
+ uri = desc = printer = cl = QString::null;
+ }
+ attr = nextAttr;
+#else // HAVE_CUPS_1_6
QString attrname(attr->name);
if (attrname == "device-info") desc = attr->values[0].string.text;
else if (attrname == "device-make-and-model") printer = attr->values[0].string.text;
@@ -839,6 +909,7 @@
uri = desc = printer = cl = QString::null;
}
attr = attr->next;
+#endif // HAVE_CUPS_1_6
}
}
return list;
diff -ur kdelibs-3.5.10/kdeprint/cups/kmcupsuimanager.cpp kdelibs-3.5.10-cups16/kdeprint/cups/kmcupsuimanager.cpp
--- kdelibs-3.5.10/kdeprint/cups/kmcupsuimanager.cpp 2006-10-01 19:33:43.000000000 +0200
+++ kdelibs-3.5.10-cups16/kdeprint/cups/kmcupsuimanager.cpp 2012-12-25 16:34:57.000000000 +0100
@@ -60,6 +60,8 @@
#include <kaction.h>
#include <kmessagebox.h>
+#include "config.h"
+
KMCupsUiManager::KMCupsUiManager(QObject *parent, const char *name, const QStringList & /*args*/)
: KMUiManager(parent,name)
{
@@ -143,6 +145,24 @@
ipp_attribute_t *attr = req.first();
while (attr)
{
+#ifdef HAVE_CUPS_1_6
+ if (ippGetName(attr) && strcmp(ippGetName(attr),"device-uri") == 0)
+ {
+ if (strncmp(ippGetString(attr, 0, NULL),"socket",6) == 0) backend->enableBackend(KMWizard::TCP,true);
+ else if (strncmp(ippGetString(attr, 0, NULL),"parallel",8) == 0) backend->enableBackend(KMWizard::Local,true);
+ else if (strncmp(ippGetString(attr, 0, NULL),"serial",6) == 0) backend->enableBackend(KMWizard::Local,true);
+ else if (strncmp(ippGetString(attr, 0, NULL),"smb",3) == 0) backend->enableBackend(KMWizard::SMB,true);
+ else if (strncmp(ippGetString(attr, 0, NULL),"lpd",3) == 0) backend->enableBackend(KMWizard::LPD,true);
+ else if (strncmp(ippGetString(attr, 0, NULL),"usb",3) == 0) backend->enableBackend(KMWizard::Local,true);
+ else if (strncmp(ippGetString(attr, 0, NULL),"http",4) == 0 || strncmp(ippGetString(attr, 0, NULL),"ipp",3) == 0)
+ {
+ backend->enableBackend(KMWizard::IPP,true);
+ backend->enableBackend(KMWizard::Custom+1,true);
+ }
+ else if (strncmp(ippGetString(attr, 0, NULL),"fax",3) == 0) backend->enableBackend(KMWizard::Custom+2,true);
+ }
+ attr = ippNextAttribute(req.request());
+#else // HAVE_CUPS_1_6
if (attr->name && strcmp(attr->name,"device-uri") == 0)
{
if (strncmp(attr->values[0].string.text,"socket",6) == 0) backend->enableBackend(KMWizard::TCP,true);
@@ -159,6 +179,7 @@
else if (strncmp(attr->values[0].string.text,"fax",3) == 0) backend->enableBackend(KMWizard::Custom+2,true);
}
attr = attr->next;
+#endif // HAVE_CUPS_1_6
}
backend->enableBackend(KMWizard::Class, true);
backend->enableBackend(KMWizard::Custom+5, true);
diff -ur kdelibs-3.5.10/kdeprint/cups/kmwfax.cpp kdelibs-3.5.10-cups16/kdeprint/cups/kmwfax.cpp
--- kdelibs-3.5.10/kdeprint/cups/kmwfax.cpp 2007-01-15 12:34:19.000000000 +0100
+++ kdelibs-3.5.10-cups16/kdeprint/cups/kmwfax.cpp 2012-12-25 16:34:57.000000000 +0100
@@ -30,6 +30,8 @@
#include <kiconloader.h>
#include <kurl.h>
+#include "config.h"
+
KMWFax::KMWFax(QWidget *parent, const char *name)
: KMWizardPage(parent,name)
{
@@ -55,11 +57,19 @@
ipp_attribute_t *attr = req.first();
while (attr)
{
+#ifdef HAVE_CUPS_1_6
+ if (ippGetName(attr) && strcmp(ippGetName(attr),"device-uri") == 0 && strncmp(ippGetString(attr, 0, NULL),"fax",3) == 0)
+ {
+ m_list->insertItem(SmallIcon("blockdevice"),QString::fromLatin1(ippGetString(attr, 0, NULL)));
+ }
+ attr = ippNextAttribute(req.request());
+#else // HAVE_CUPS_1_6
if (attr->name && strcmp(attr->name,"device-uri") == 0 && strncmp(attr->values[0].string.text,"fax",3) == 0)
{
m_list->insertItem(SmallIcon("blockdevice"),QString::fromLatin1(attr->values[0].string.text));
}
attr = attr->next;
+#endif // HAVE_CUPS_1_6
}
}
}
diff -ur kdelibs-3.5.10/kdeprint/cups/kmwippselect.cpp kdelibs-3.5.10-cups16/kdeprint/cups/kmwippselect.cpp
--- kdelibs-3.5.10/kdeprint/cups/kmwippselect.cpp 2007-01-15 12:34:19.000000000 +0100
+++ kdelibs-3.5.10-cups16/kdeprint/cups/kmwippselect.cpp 2012-12-25 16:34:57.000000000 +0100
@@ -29,6 +29,8 @@
#include <kdebug.h>
#include <kiconloader.h>
+#include "config.h"
+
KMWIppSelect::KMWIppSelect(QWidget *parent, const char *name)
: KMWizardPage(parent,name)
{
@@ -83,9 +85,15 @@
ipp_attribute_t *attr = req.first();
while (attr)
{
+#ifdef HAVE_CUPS_1_6
+ if (ippGetName(attr) && strcmp(ippGetName(attr),"printer-name") == 0)
+ m_list->insertItem(SmallIcon("kdeprint_printer"),QString::fromLatin1(ippGetString(attr, 0, NULL)));
+ attr = ippNextAttribute(req.request());
+#else // HAVE_CUPS_1_6
if (attr->name && strcmp(attr->name,"printer-name") == 0)
m_list->insertItem(SmallIcon("kdeprint_printer"),QString::fromLatin1(attr->values[0].string.text));
attr = attr->next;
+#endif // HAVE_CUPS_1_6
}
m_list->sort();
}

View File

@ -1,159 +0,0 @@
diff -ur kdelibs-3.5.10/kdeprint/cups/cupsdconf2/cups-util.c kdelibs-3.5.10-cups20/kdeprint/cups/cupsdconf2/cups-util.c
--- kdelibs-3.5.10/kdeprint/cups/cupsdconf2/cups-util.c 2007-10-08 11:52:10.000000000 +0200
+++ kdelibs-3.5.10-cups20/kdeprint/cups/cupsdconf2/cups-util.c 2014-11-25 21:41:51.000000000 +0100
@@ -32,7 +32,7 @@
char prompt[1024]; /* Prompt string */
int digest_tries; /* Number of tries with Digest */
static char filename[HTTP_MAX_URI]; /* Local filename */
-#if CUPS_VERSION_MAJOR - 0 <= 1 && CUPS_VERSION_MINOR - 0 < 2
+#if CUPS_VERSION_MAJOR < 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR < 2)
const char *fqdn = 0;
#else
char fqdn[ HTTP_MAX_URI ]; /* Server name buffer */
@@ -118,7 +118,7 @@
* See if we should retry the current digest password...
*/
-#if CUPS_VERSION_MAJOR - 0 <= 1 && CUPS_VERSION_MINOR - 0 < 2
+#if CUPS_VERSION_MAJOR < 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR < 2)
www_authenticate = cups_server->fields[HTTP_FIELD_WWW_AUTHENTICATE];
#else
www_authenticate = httpGetField( cups_server, HTTP_FIELD_WWW_AUTHENTICATE );
@@ -129,7 +129,7 @@
/*
* Nope - get a password from the user...
*/
-#if CUPS_VERSION_MAJOR - 0 <= 1 && CUPS_VERSION_MINOR - 0 < 2
+#if CUPS_VERSION_MAJOR < 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR < 2)
fqdn = cups_server->hostname;
#else
httpGetHostname( cups_server, fqdn, sizeof( fqdn ) );
@@ -154,7 +154,7 @@
* Got a password; encode it for the server...
*/
-#if CUPS_VERSION_MAJOR - 0 <= 1 && CUPS_VERSION_MINOR - 0 < 2
+#if CUPS_VERSION_MAJOR < 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR < 2)
www_authenticate = cups_server->fields[HTTP_FIELD_WWW_AUTHENTICATE];
#else
www_authenticate = httpGetField( cups_server, HTTP_FIELD_WWW_AUTHENTICATE );
@@ -166,7 +166,7 @@
*/
snprintf(plain, sizeof(plain), "%s:%s", cupsUser(), pwdstring);
-#if CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR >= 2
+#if CUPS_VERSION_MAJOR > 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR >= 2)
httpEncode64_2(encode, sizeof(encode), plain, sizeof(plain));
#else
httpEncode64(encode, plain);
@@ -235,7 +235,7 @@
*/
while ((bytes =
-#if CUPS_VERSION_MAJOR - 0 <= 1 && CUPS_VERSION_MINOR - 0 < 2
+#if CUPS_VERSION_MAJOR < 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR < 2)
httpRead
#else
httpRead2
@@ -265,7 +265,7 @@
http_status_t status; /* HTTP status from server */
char prompt[1024]; /* Prompt string */
int digest_tries; /* Number of tries with Digest */
-#if CUPS_VERSION_MAJOR - 0 <= 1 && CUPS_VERSION_MINOR - 0 < 2
+#if CUPS_VERSION_MAJOR < 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR < 2)
const char *fqdn = 0;
#else
char fqdn[ HTTP_MAX_URI ]; /* Server name buffer */
@@ -340,7 +340,7 @@
break;
}
else
-#if CUPS_VERSION_MAJOR - 0 <= 1 && CUPS_VERSION_MINOR - 0 < 2
+#if CUPS_VERSION_MAJOR < 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR < 2)
httpWrite
#else
httpWrite2
@@ -349,7 +349,7 @@
if (status == HTTP_CONTINUE)
{
-#if CUPS_VERSION_MAJOR - 0 <= 1 && CUPS_VERSION_MINOR - 0 < 2
+#if CUPS_VERSION_MAJOR < 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR < 2)
httpWrite
#else
httpWrite2
@@ -380,7 +380,7 @@
* See if we should retry the current digest password...
*/
-#if CUPS_VERSION_MAJOR - 0 <= 1 && CUPS_VERSION_MINOR - 0 < 2
+#if CUPS_VERSION_MAJOR < 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR < 2)
www_authenticate = cups_server->fields[HTTP_FIELD_WWW_AUTHENTICATE];
#else
www_authenticate = httpGetField( cups_server, HTTP_FIELD_WWW_AUTHENTICATE );
@@ -393,7 +393,7 @@
*/
-#if CUPS_VERSION_MAJOR - 0 <= 1 && CUPS_VERSION_MINOR - 0 < 2
+#if CUPS_VERSION_MAJOR < 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR < 2)
fqdn = cups_server->hostname;
#else
httpGetHostname( cups_server, fqdn, sizeof( fqdn ) );
@@ -417,7 +417,7 @@
* Got a password; encode it for the server...
*/
-#if CUPS_VERSION_MAJOR - 0 <= 1 && CUPS_VERSION_MINOR - 0 < 2
+#if CUPS_VERSION_MAJOR < 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR < 2)
www_authenticate = cups_server->fields[HTTP_FIELD_WWW_AUTHENTICATE];
#else
www_authenticate = httpGetField( cups_server, HTTP_FIELD_WWW_AUTHENTICATE );
@@ -429,7 +429,7 @@
*/
snprintf(plain, sizeof(plain), "%s:%s", cupsUser(), pwdstring);
-#if CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR >= 2
+#if CUPS_VERSION_MAJOR > 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR >= 2)
httpEncode64_2(encode, sizeof(encode), plain, sizeof(plain));
#else
httpEncode64(encode, plain);
@@ -511,7 +511,7 @@
* See if we are accessing localhost...
the struct has changed in newer versions - PiggZ (adam@piggz.co.uk)
*/
-#if CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR >= 2
+#if CUPS_VERSION_MAJOR > 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR >= 2)
if (!httpAddrLocalhost(http))
#else
if (ntohl(*(int*)&http->hostaddr.sin_addr) != 0x7f000001 &&
diff -ur kdelibs-3.5.10/kdeprint/cups/ipprequest.cpp kdelibs-3.5.10-cups20/kdeprint/cups/ipprequest.cpp
--- kdelibs-3.5.10/kdeprint/cups/ipprequest.cpp 2007-10-08 11:52:10.000000000 +0200
+++ kdelibs-3.5.10-cups20/kdeprint/cups/ipprequest.cpp 2014-11-25 21:41:51.000000000 +0100
@@ -310,7 +310,7 @@
}
#ifdef HAVE_CUPS_NO_PWD_CACHE
-#if CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR <= 2
+#if CUPS_VERSION_MAJOR < 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR <= 2)
strncpy( HTTP->authstring, cups_authstring.data(), HTTP_MAX_VALUE );
#else
httpSetAuthString( HTTP, NULL, cups_authstring.data() );
@@ -324,7 +324,7 @@
request_ = cupsDoFileRequest(HTTP, request_, (res.isEmpty() ? "/" : res.latin1()), (filename.isEmpty() ? NULL : filename.latin1()));
#ifdef HAVE_CUPS_NO_PWD_CACHE
-#if CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR <= 2
+#if CUPS_VERSION_MAJOR < 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR <= 2)
cups_authstring = HTTP->authstring;
#else
cups_authstring = httpGetAuthString( HTTP );
@@ -523,7 +523,7 @@
cupsFreeOptions(n, options);
// find an remove that annoying "document-format" attribute
-#if CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR >= 2
+#if CUPS_VERSION_MAJOR > 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR >= 2)
ipp_attribute_t *attr = ippFindAttribute(request_, "document-format", IPP_TAG_NAME);
ippDeleteAttribute(request_, attr);
#else

View File

@ -1,11 +0,0 @@
diff -ur kdelibs-3.5.10/kdeprint/cups/cupsaddsmb2.cpp kdelibs-3.5.10-cups22/kdeprint/cups/cupsaddsmb2.cpp
--- kdelibs-3.5.10/kdeprint/cups/cupsaddsmb2.cpp 2005-10-10 17:06:30.000000000 +0200
+++ kdelibs-3.5.10-cups22/kdeprint/cups/cupsaddsmb2.cpp 2016-09-28 19:23:09.264863318 +0200
@@ -39,6 +39,7 @@
#include <kstdguiitem.h>
#include <cups/cups.h>
+#include <cups/ppd.h>
#include <ctype.h>
CupsAddSmb::CupsAddSmb(QWidget *parent, const char *name)

View File

@ -1,21 +0,0 @@
diff -up kdelibs-3.5.10/kate/part/katebuffer.cpp.than kdelibs-3.5.10/kate/part/katebuffer.cpp
--- kdelibs-3.5.10/kate/part/katebuffer.cpp.than 2016-02-16 22:06:01.830197908 +0100
+++ kdelibs-3.5.10/kate/part/katebuffer.cpp 2016-02-16 23:33:15.810136589 +0100
@@ -42,6 +42,8 @@
#include <qcstring.h>
#include <qdatetime.h>
+#include <cmath>
+
/**
* loader block size, load 256 kb at once per default
* if file size is smaller, fall back to file size
@@ -917,7 +919,7 @@ void KateBuffer::updatePreviousNotEmptyL
} while (textLine->firstChar()==-1);
kdDebug(13020)<<"updatePreviousNotEmptyLine: updating line:"<<(blk->startLine()+current_line)<<endl;
QMemArray<uint> foldingList=textLine->foldingListArray();
- while ( (foldingList.size()>0) && ( abs(foldingList[foldingList.size()-2])==1)) {
+ while ( (foldingList.size()>0) && ( std::abs(foldingList[foldingList.size()-2])==1)) {
foldingList.resize(foldingList.size()-2,QGArray::SpeedOptim);
}
addIndentBasedFoldingInformation(foldingList,addindent,deindent);

View File

@ -1,12 +0,0 @@
diff -up kdelibs-3.5.10/kate/part/katebuffer.cpp~ kdelibs-3.5.10/kate/part/katebuffer.cpp
--- kdelibs-3.5.10/kate/part/katebuffer.cpp~ 2017-02-21 09:44:34.000000000 +0100
+++ kdelibs-3.5.10/kate/part/katebuffer.cpp 2017-02-21 09:48:20.132333343 +0100
@@ -919,7 +919,7 @@ void KateBuffer::updatePreviousNotEmptyL
} while (textLine->firstChar()==-1);
kdDebug(13020)<<"updatePreviousNotEmptyLine: updating line:"<<(blk->startLine()+current_line)<<endl;
QMemArray<uint> foldingList=textLine->foldingListArray();
- while ( (foldingList.size()>0) && ( std::abs(foldingList[foldingList.size()-2])==1)) {
+ while ( (foldingList.size()>0) && ( std::abs((long)foldingList[foldingList.size()-2])==1)) {
foldingList.resize(foldingList.size()-2,QGArray::SpeedOptim);
}
addIndentBasedFoldingInformation(foldingList,addindent,deindent);

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +1,10 @@
diff -up kdelibs-3.5.10/kio/kssl/kopenssl.cc.openssl kdelibs-3.5.10/kio/kssl/kopenssl.cc diff -up kdelibs-3.5.10/kio/kssl/kopenssl.cc.openssl kdelibs-3.5.10/kio/kssl/kopenssl.cc
--- kdelibs-3.5.10/kio/kssl/kopenssl.cc.openssl 2006-07-22 03:16:39.000000000 -0500 --- kdelibs-3.5.10/kio/kssl/kopenssl.cc.openssl 2006-07-22 03:16:39.000000000 -0500
+++ kdelibs-3.5.10/kio/kssl/kopenssl.cc 2009-04-19 16:34:14.000000000 -0500 +++ kdelibs-3.5.10/kio/kssl/kopenssl.cc 2009-04-19 16:34:14.000000000 -0500
@@ -329,6 +329,20 @@ KConfig *cfg; @@ -329,6 +329,19 @@ KConfig *cfg;
#ifdef SHLIB_VERSION_NUMBER #ifdef SHLIB_VERSION_NUMBER
<< "libssl.so." SHLIB_VERSION_NUMBER << "libssl.so." SHLIB_VERSION_NUMBER
#endif #endif
+ << "libssl.so.10"
+ << "libssl.so.0.9.8k" + << "libssl.so.0.9.8k"
+ << "libssl.so.8" + << "libssl.so.8"
+ << "libssl.so.0.9.8g" + << "libssl.so.0.9.8g"
@ -22,11 +21,10 @@ diff -up kdelibs-3.5.10/kio/kssl/kopenssl.cc.openssl kdelibs-3.5.10/kio/kssl/kop
<< "libssl.so" << "libssl.so"
<< "libssl.so.0" << "libssl.so.0"
#endif #endif
@@ -346,6 +360,20 @@ KConfig *cfg; @@ -346,6 +359,19 @@ KConfig *cfg;
#ifdef SHLIB_VERSION_NUMBER #ifdef SHLIB_VERSION_NUMBER
<< "libcrypto.so." SHLIB_VERSION_NUMBER << "libcrypto.so." SHLIB_VERSION_NUMBER
#endif #endif
+ << "libcrypto.so.10"
+ << "libcrypto.so.0.9.8k" + << "libcrypto.so.0.9.8k"
+ << "libcrypto.so.8" + << "libcrypto.so.8"
+ << "libcrypto.so.0.9.8g" + << "libcrypto.so.0.9.8g"

View File

@ -1,12 +0,0 @@
diff -up kdelibs-3.5.10/kdecore/svgicons/ksvgiconpainter.cpp.than kdelibs-3.5.10/kdecore/svgicons/ksvgiconpainter.cpp
--- kdelibs-3.5.10/kdecore/svgicons/ksvgiconpainter.cpp.than 2016-09-28 16:58:47.881217306 +0200
+++ kdelibs-3.5.10/kdecore/svgicons/ksvgiconpainter.cpp 2016-09-28 16:59:20.518989958 +0200
@@ -2208,7 +2208,7 @@ void KSVGIconPainter::drawPath(const QSt
break;
}
- if(*ptr == '+' || *ptr == '-' || (*ptr >= '0' && *ptr <= '9'))
+ if(*ptr == '+' || *ptr == '-' || (*ptr >= '0' && *ptr <= '9') || *ptr == '.')
{
// there are still coords in this command
if(command == 'M')

View File

@ -1,12 +1,12 @@
diff -ur kdelibs-3.5.10/kdecore/kcrash.cpp kdelibs-3.5.10-drkonqi-plasma5/kdecore/kcrash.cpp diff -ur kdelibs-3.5.9/kdecore/kcrash.cpp kdelibs-3.5.9-drkonqi-kde4/kdecore/kcrash.cpp
--- kdelibs-3.5.10/kdecore/kcrash.cpp 2007-01-15 12:34:17.000000000 +0100 --- kdelibs-3.5.9/kdecore/kcrash.cpp 2007-01-15 12:34:17.000000000 +0100
+++ kdelibs-3.5.10-drkonqi-plasma5/kdecore/kcrash.cpp 2017-01-22 23:25:21.373378496 +0100 +++ kdelibs-3.5.9-drkonqi-kde4/kdecore/kcrash.cpp 2008-07-02 08:24:37.000000000 +0200
@@ -158,7 +158,7 @@ @@ -158,7 +158,7 @@
int i = 0; int i = 0;
// argument 0 has to be drkonqi // argument 0 has to be drkonqi
- argv[i++] = "drkonqi"; - argv[i++] = "drkonqi";
+ argv[i++] = "/usr/libexec/drkonqi"; + argv[i++] = "/usr/libexec/kde4/drkonqi";
#if defined Q_WS_X11 #if defined Q_WS_X11
// start up on the correct display // start up on the correct display
@ -15,7 +15,7 @@ diff -ur kdelibs-3.5.10/kdecore/kcrash.cpp kdelibs-3.5.10-drkonqi-plasma5/kdecor
if(!geteuid() && setuid(getuid()) < 0) if(!geteuid() && setuid(getuid()) < 0)
_exit(253); _exit(253);
- execvp("drkonqi", const_cast< char** >( argv )); - execvp("drkonqi", const_cast< char** >( argv ));
+ execv("/usr/libexec/drkonqi", const_cast< char** >( argv )); + execv("/usr/libexec/kde4/drkonqi", const_cast< char** >( argv ));
_exit(errno); _exit(errno);
} }
else else

View File

@ -2,6 +2,14 @@
%define _default_patch_fuzz 2 %define _default_patch_fuzz 2
%define distname "Fedora"
%if 0%{?rhel}
%define distname "EL"
%endif
%define kde_settings 1
%define arts_ev 8:1.5.10 %define arts_ev 8:1.5.10
%define qt3 qt3 %define qt3 qt3
%define qt3_version 3.3.8b %define qt3_version 3.3.8b
@ -10,19 +18,22 @@
%define kde_major_version 3 %define kde_major_version 3
%define apidocs 0 %define apidocs 1
# trim changelog included in binary rpms # We always include this here now because kdeartwork 4 has moved on to
%global _changelog_trimtime %(date +%s -d "1 year ago") # icon-naming-spec names (partially, so the icon theme isn't usable with KDE 4
# yet either). Maybe the conditional should be dropped entirely? -- Kevin
%define include_crystalsvg 1
Summary: KDE 3 Libraries Summary: KDE 3 Libraries
Name: kdelibs3 Name: kdelibs3
Version: 3.5.10 Version: 3.5.10
Release: 94%{?dist} Release: 31%{?dist}
License: LGPLv2 License: LGPLv2
Url: http://www.kde.org/ Url: http://www.kde.org/
Group: System Environment/Libraries Group: System Environment/Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Source0: ftp://ftp.kde.org/pub/kde/stable/%{version}/src/kdelibs-%{version}.tar.bz2 Source0: ftp://ftp.kde.org/pub/kde/stable/%{version}/src/kdelibs-%{version}.tar.bz2
Source1: kde.sh Source1: kde.sh
@ -52,8 +63,8 @@ Patch50: kdelibs-3.5.8-kspell2-no-ispell.patch
Patch51: kdelibs-3.5.9-cupsserverbin.patch Patch51: kdelibs-3.5.9-cupsserverbin.patch
# initial support for (Only|Not)ShowIn=KDE3 # initial support for (Only|Not)ShowIn=KDE3
Patch52: kdelibs-3.5.9-KDE3.patch Patch52: kdelibs-3.5.9-KDE3.patch
# use newer/plasma drkonqi in KCrash (#453243) # use /usr/libexec/kde4/drkonqi in KCrash (#453243)
Patch53: kdelibs-3.5.10-drkonqi-plasma5.patch Patch53: kdelibs-3.5.9-drkonqi-kde4.patch
# use inotify_* functions which are defined in glibc-header # use inotify_* functions which are defined in glibc-header
Patch54: kdelibs-3.5.10-inotify.patch Patch54: kdelibs-3.5.10-inotify.patch
# update the KatePart latex.xml syntax definition to the version from Kile 2.0.3 # update the KatePart latex.xml syntax definition to the version from Kile 2.0.3
@ -62,16 +73,6 @@ Patch55: kdelibs-3.5.10-latex-syntax-kile-2.0.3.patch
Patch56: kdelibs-3.5.10-qcolor_gcc_ftbfs.patch Patch56: kdelibs-3.5.10-qcolor_gcc_ftbfs.patch
# fix FTBFS (cups-util.c must include stdio.h, #714133) # fix FTBFS (cups-util.c must include stdio.h, #714133)
Patch57: kdelibs-3.5.10-cups-util-missing-header.patch Patch57: kdelibs-3.5.10-cups-util-missing-header.patch
# fix FTBFS with CUPS 2.0 due to bad CUPS_VERSION_MAJOR checks
Patch58: kdelibs-3.5.10-cups20.patch
Patch59: kdelibs-3.5.10-gcc6.patch
# fix endless loop in svgicon
Patch60: kdelibs-3.5.10-svgicon-endlessloop.patch
# fix FTBFS with gcc7
Patch61: kdelibs-3.5.10-gcc7.patch
# libidn2 support for > f26
Patch62: kdelibs-3-libidn2.patch
# use /etc/kde in addition to /usr/share/config, borrowed from debian # use /etc/kde in addition to /usr/share/config, borrowed from debian
Patch100: kdelibs-3.5.5-kstandarddirs.patch Patch100: kdelibs-3.5.5-kstandarddirs.patch
@ -85,23 +86,10 @@ Patch106: kdelibs-3.5.10-kio.patch
Patch107: kdelibs-3.5.10-assert.patch Patch107: kdelibs-3.5.10-assert.patch
Patch108: kdelibs-3.5.10-dtoa.patch Patch108: kdelibs-3.5.10-dtoa.patch
Patch109: kdelibs-3.5.10-kabc.patch Patch109: kdelibs-3.5.10-kabc.patch
Patch110: arts-acinclude.patch
# kde4.4 backport # kde4.4 backport
Patch111: kdelibs-3.5.10-kde-config_kde-version.patch Patch111: kdelibs-3.5.10-kde-config_kde-version.patch
## Trinity backports
# build fix for CUPS 1.6 by Timothy Pearson, backported by Kevin Kofler
# http://git.trinitydesktop.org/cgit/tdelibs/commit?id=9bc0d2cd9d38750658770e69bf0445dc5162beb7
# http://git.trinitydesktop.org/cgit/tdelibs/commit?id=91bf63b43bf4cc9ff640bd3c11549644cef05e6e
Patch150: kdelibs-3.5.10-cups16.patch
# build fix for CUPS 2.2 by Slávek Banko, backported by Kevin Kofler
# http://git.trinitydesktop.org/cgit/tdelibs/commit/?id=52a1b55368ec53b14347996851aca7eb29374397
Patch151: kdelibs-3.5.10-cups22.patch
# OpenSSL 1.1 support by Slávek Banko (with prerequisite patch by Timothy
# Pearson), backported by Kevin Kofler
# http://git.trinitydesktop.org/cgit/tdelibs/commit/?id=e757d3d6ae93cf967d54c566e9c003b0f9cc3a9c
# http://git.trinitydesktop.org/cgit/tdelibs/commit/?id=e1861cb6811f7bac405ece204407ca46c000a453
Patch152: kdelibs-3.5.10-openssl-1.1.patch
## security fixes ## security fixes
# fix CVE-2009-2537 - select length DoS # fix CVE-2009-2537 - select length DoS
Patch200: kdelibs-3.5.10-cve-2009-2537-select-length.patch Patch200: kdelibs-3.5.10-cve-2009-2537-select-length.patch
@ -121,44 +109,22 @@ Patch206: kdelibs-3.5.10-oCERT-2009-015-xmlhttprequest.patch
Patch207: libltdl-CVE-2009-3736.patch Patch207: libltdl-CVE-2009-3736.patch
# CVE-2011-3365, input validation failure in KSSL # CVE-2011-3365, input validation failure in KSSL
Patch208: kdelibs-3.5.x-CVE-2011-3365.patch Patch208: kdelibs-3.5.x-CVE-2011-3365.patch
# CVE-2013-2074, prints passwords contained in HTTP URLs in error messages
Patch209: kdelibs-3.5.10-CVE-2013-2074.patch
# CVE-2015-7543 arts,kdelibs3: Use of mktemp(3) allows attacker to hijack the IPC
# backport upstream fix (the lnusertemp.c change) from kdelibs 4:
# http://commits.kde.org/kdelibs/cc5515ed7ce8884c9b18169158ba29ab2f7a3db7
# upstream fix by Joseph Wenninger, rediffed for kdelibs 3.5.10 by Kevin Kofler
Patch210: kdelibs-3.5.10-CVE-2015-7543.patch
# CVE-2016-6232 - directory traversal vulnerability in KArchive
# patch from Trinity (Slávek Banko), based on KF5 fix (Andreas Cord-Landwehr)
Patch211: kdelibs-3.5.10-CVE-2016-6232.patch
# CVE-2017-6410 - info leak when accessing https when using a malicious PAC file
# backport upstream fix (by Albert Astals Cid) from kdelibs 4:
# http://commits.kde.org/kdelibs/1804c2fde7bf4e432c6cf5bb8cce5701c7010559
Patch212: kdelibs-3.5.10-CVE-2017-6410.patch
## fixes to common KDE 3 autotools machinery
# tweak autoconfigury so that it builds with autoconf 2.64 or 2.65
Patch300: kde3-acinclude.patch
# remove flawed and obsolete automake version check in admin/cvs.sh
Patch301: kde3-automake-version.patch
# fix build failure with automake 1.13: add the --add-missing --copy flags
# also add --force-missing to get aarch64 support (#925029/#925627)
Patch302: kde3-automake-add-missing.patch
Requires: ca-certificates
Requires: hicolor-icon-theme Requires: hicolor-icon-theme
%if %{kde_settings}
Requires: kde-settings >= 3.5 Requires: kde-settings >= 3.5
%endif
Requires: kde-filesystem Requires: kde-filesystem
Requires: kdelibs-common Requires: kdelibs-common
Requires: redhat-menus Requires: redhat-menus
Requires: shadow-utils Requires: shadow-utils
#Requires: sudo Requires: sudo
BuildRequires: sudo BuildRequires: sudo
%if 0%{?fedora} %if 0%{?fedora}
%define libkdnssd libkdnssd %define libkdnssd libkdnssd
%endif %endif
BuildRequires: xorg-x11-proto-devel libX11-devel %define BuildRequires: xorg-x11-proto-devel libX11-devel
%define _with_rgbfile --with-rgbfile=%{_datadir}/X11/rgb.txt %define _with_rgbfile --with-rgbfile=%{_datadir}/X11/rgb.txt
Requires: iceauth Requires: iceauth
@ -180,18 +146,13 @@ BuildRequires: openjade
BuildRequires: jadetex BuildRequires: jadetex
BuildRequires: docbook-dtd31-sgml BuildRequires: docbook-dtd31-sgml
BuildRequires: docbook-style-dsssl BuildRequires: docbook-style-dsssl
BuildRequires: perl-generators
BuildRequires: perl-SGMLSpm BuildRequires: perl-SGMLSpm
BuildRequires: docbook-utils BuildRequires: docbook-utils
BuildRequires: zlib-devel BuildRequires: zlib-devel
%if 0%{?fedora} > 26 || 0%{?rhel} > 7
BuildRequires: libidn2-devel
%else
BuildRequires: libidn-devel BuildRequires: libidn-devel
%endif
BuildRequires: audiofile-devel BuildRequires: audiofile-devel
BuildRequires: openssl-devel BuildRequires: openssl-devel
BuildRequires: perl-interpreter BuildRequires: perl
BuildRequires: gawk BuildRequires: gawk
BuildRequires: byacc BuildRequires: byacc
BuildRequires: libart_lgpl-devel BuildRequires: libart_lgpl-devel
@ -203,25 +164,25 @@ BuildRequires: krb5-devel
BuildRequires: openldap-devel BuildRequires: openldap-devel
BuildRequires: db4-devel BuildRequires: db4-devel
BuildRequires: alsa-lib-devel BuildRequires: alsa-lib-devel
%if 0%{?fedora} > 25 || 0%{?rhel} > 7
BuildRequires: pkgconf-pkg-config
%else
BuildRequires: pkgconfig BuildRequires: pkgconfig
%endif
BuildRequires: glibc-kernheaders BuildRequires: glibc-kernheaders
BuildRequires: libutempter-devel BuildRequires: libutempter-devel
BuildRequires: findutils BuildRequires: findutils
BuildRequires: jasper-devel BuildRequires: jasper-devel
BuildRequires: OpenEXR-devel BuildRequires: OpenEXR-devel
BuildRequires: automake libtool BuildRequires: automake libtool
BuildRequires: chrpath
%if "%{name}" != "kdelibs" && "%{?apidocs}" != "1" %if "%{name}" != "kdelibs" && "%{?apidocs}" != "1"
Obsoletes: kdelibs-apidocs < 6:%{version}-%{release} Obsoletes: kdelibs-apidocs < 6:%{version}-%{release}
%endif %endif
%if 0%{?include_crystalsvg}
Provides: crystalsvg-icon-theme = 1:%{version}-%{release} Provides: crystalsvg-icon-theme = 1:%{version}-%{release}
Obsoletes: crystalsvg-icon-theme < 1:%{version}-%{release} Obsoletes: crystalsvg-icon-theme < 1:%{version}-%{release}
%else
# for bootstrapping kde3, omit Requires: crystalsvg... -- Rex
Requires: crystalsvg-icon-theme
%endif
%description %description
@ -252,11 +213,6 @@ BuildArch: noarch
This package includes the KDE 3 API documentation in HTML This package includes the KDE 3 API documentation in HTML
format for easy browsing format for easy browsing
%package tools
Summary: KDE 3 tools.
Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
%description tools
This package includes tools kgrantpty and kpac_dhcp_helper.
%prep %prep
%setup -q -n kdelibs-%{version} %setup -q -n kdelibs-%{version}
@ -283,18 +239,12 @@ This package includes tools kgrantpty and kpac_dhcp_helper.
%patch50 -p1 -b .no-ispell %patch50 -p1 -b .no-ispell
%patch51 -p1 -b .cupsserverbin %patch51 -p1 -b .cupsserverbin
%patch52 -p1 -b .KDE3 %patch52 -p1 -b .KDE3
%patch53 -p1 -b .drkonqi-plasma5 %patch53 -p1 -b .drkonqi-kde4
%patch54 -p1 -b .inotify %patch54 -p1 -b .inotify
%patch55 -p1 -b .latex-syntax %patch55 -p1 -b .latex-syntax
%patch56 -p1 -b .qcolor_gcc_ftbfs %patch56 -p1 -b .qcolor_gcc_ftbfs
%patch57 -p1 -b .cups-util %patch57 -p1 -b .cups-util
%patch58 -p1 -b .cups20
%patch59 -p1 -b .gcc6
%patch60 -p1 -b .endless-loop
%patch61 -p1 -b .gcc7
%if 0%{?fedora} > 26 || 0%{?rhel} > 7
%patch62 -p1 -b .libidn2
%endif
%patch100 -p1 -b .kstandarddirs %patch100 -p1 -b .kstandarddirs
%patch101 -p1 -b .libtool-shlibext %patch101 -p1 -b .libtool-shlibext
%patch104 -p1 -b .gcc44 %patch104 -p1 -b .gcc44
@ -303,11 +253,9 @@ This package includes tools kgrantpty and kpac_dhcp_helper.
%patch107 -p1 -b .assert %patch107 -p1 -b .assert
%patch108 -p1 -b .alias %patch108 -p1 -b .alias
%patch109 -p1 -b .kabc %patch109 -p1 -b .kabc
%patch110 -p1 -b .autoconf
%patch111 -p1 -b .kde-config_kde-version %patch111 -p1 -b .kde-config_kde-version
%patch150 -p1 -b .cups16
%patch151 -p1 -b .cups22
# security fixes # security fixes
%patch200 -p1 -b .cve-2009-2537 %patch200 -p1 -b .cve-2009-2537
%patch201 -p0 -b .cve-2009-1725 %patch201 -p0 -b .cve-2009-1725
@ -318,18 +266,11 @@ This package includes tools kgrantpty and kpac_dhcp_helper.
%patch206 -p0 -b .oCERT-2009-015-xmlhttprequest %patch206 -p0 -b .oCERT-2009-015-xmlhttprequest
%patch207 -p1 -b .CVE-2009-3736 %patch207 -p1 -b .CVE-2009-3736
%patch208 -p1 -b .CVE-2011-3365 %patch208 -p1 -b .CVE-2011-3365
%patch209 -p1 -b .CVE-2013-2074
%patch210 -p1 -b .CVE-2015-7543
%patch211 -p1 -b .CVE-2016-6232
%patch212 -p1 -b .CVE-2017-6410
# must be applied after the ossl-1.x patch (105) and the CVE-2009-2702 fix (205) sed -i -e "s,^#define KDE_VERSION_STRING .*,#define KDE_VERSION_STRING \"%{version}-%{release} %{distname}\"," kdecore/kdeversion.h
%patch152 -p1 -b .openssl-1.1
%patch300 -p1 -b .acinclude
%patch301 -p1 -b .automake-version
%patch302 -p1 -b .automake-add-missing
# hack/fix for newer automake
sed -iautomake -e 's|automake\*1.10\*|automake\*1.1[0-5]\*|' admin/cvs.sh
make -f admin/Makefile.common cvs make -f admin/Makefile.common cvs
@ -348,16 +289,13 @@ fi
export DO_NOT_COMPILE="libkscreensaver" export DO_NOT_COMPILE="libkscreensaver"
%endif %endif
# drop the extra -Werror= flags for C, they break the configure script
export CFLAGS="%{optflags}"
export CXXFLAGS="%{optflags} -Wno-deprecated-declarations -Wno-narrowing -std=gnu++98"
%configure \ %configure \
--includedir=%{_includedir}/kde \ --includedir=%{_includedir}/kde \
--disable-rpath \ --disable-rpath \
--disable-new-ldflags \ --enable-new-ldflags \
--disable-debug --disable-warnings \ --disable-dependency-tracking \
--disable-final \ %{!?debug: --disable-debug --disable-warnings --enable-final} \
%{?debug:--enable-debug --enable-warnings --disable-final} \
--disable-fast-malloc \ --disable-fast-malloc \
%if "%{_lib}" == "lib64" %if "%{_lib}" == "lib64"
--enable-libsuffix="64" \ --enable-libsuffix="64" \
@ -379,10 +317,6 @@ export CXXFLAGS="%{optflags} -Wno-deprecated-declarations -Wno-narrowing -std=gn
--with-openexr \ --with-openexr \
--with-xinerama --with-xinerama
# kill rpath harder, inspired by https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Removing_Rpath
# other more standard variants didnt work or caused other problems
sed -i -e 's|"/lib /usr/lib|"/%{_lib} %{_libdir}|' libtool
%if 0%{?apidocs} %if 0%{?apidocs}
doxygen -s -u admin/Doxyfile.global doxygen -s -u admin/Doxyfile.global
make %{?_smp_mflags} apidox make %{?_smp_mflags} apidox
@ -438,8 +372,8 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.la" | xargs \
-e "s@%{_libdir}/libpcreposix.la@@g" \ -e "s@%{_libdir}/libpcreposix.la@@g" \
-e "s@-lpcreposix@@g" \ -e "s@-lpcreposix@@g" \
-e "s@-lpcre@@g" \ -e "s@-lpcre@@g" \
-e "s@-lidn2\?@@g" \ -e "s@-lidn@@g" \
-e "s@%{_libdir}/libidn2\?.la@@g" \ -e "s@%{_libdir}/libidn.la@@g" \
-e "s@-lpng@@g" \ -e "s@-lpng@@g" \
-e "s@-ljpeg@@g" \ -e "s@-ljpeg@@g" \
-e "s@%{_libdir}/libjpeg.la@@g" \ -e "s@%{_libdir}/libjpeg.la@@g" \
@ -459,9 +393,7 @@ rm -f %{buildroot}%{_libdir}/libkdnssd.la
# remove conflicts with kdelibs-4 # remove conflicts with kdelibs-4
rm -f %{buildroot}%{_bindir}/checkXML rm -f %{buildroot}%{_bindir}/checkXML
rm -fv %{buildroot}%{_bindir}/kmailservice rm -f %{buildroot}%{_bindir}/ksvgtopng
rm -fv %{buildroot}%{_bindir}/ksvgtopng
rm -fv %{buildroot}%{_bindir}/ktelnetservice
rm -f %{buildroot}%{_bindir}/kunittestmodrunner rm -f %{buildroot}%{_bindir}/kunittestmodrunner
rm -f %{buildroot}%{_datadir}/config/kdebug.areas rm -f %{buildroot}%{_datadir}/config/kdebug.areas
rm -f %{buildroot}%{_datadir}/config/kdebugrc rm -f %{buildroot}%{_datadir}/config/kdebugrc
@ -512,28 +444,18 @@ rm -f %{buildroot}%{_datadir}/config/colors/Royal.colors
rm -f %{buildroot}%{_datadir}/config/colors/Web.colors rm -f %{buildroot}%{_datadir}/config/colors/Web.colors
rm -f %{buildroot}%{_datadir}/config/ksslcalist rm -f %{buildroot}%{_datadir}/config/ksslcalist
rm -f %{buildroot}%{_bindir}/preparetips rm -f %{buildroot}%{_bindir}/preparetips
# remove conflicts with kate-4.9.80+
rm -fv %{buildroot}%{_datadir}/config/katesyntaxhighlightingrc
# don't show kresources # don't show kresources
sed -i -e "s,^OnlyShowIn=KDE;,OnlyShowIn=KDE3;," %{buildroot}%{_datadir}/applications/kde/kresources.desktop sed -i -e "s,^OnlyShowIn=KDE;,OnlyShowIn=KDE3;," %{buildroot}%{_datadir}/applications/kde/kresources.desktop
# use ca-certificates' ca-bundle.crt, symlink as what most other %if 0%{?include_crystalsvg} == 0
# distros do these days (http://bugzilla.redhat.com/521902) # remove all crystalsvg icons for now
if [ -f %{buildroot}%{_datadir}/apps/kssl/ca-bundle.crt -a \ rm -rf %{buildroot}%{_datadir}/icons/crystalsvg/
-f /etc/pki/tls/certs/ca-bundle.crt ]; then %endif
ln -sf /etc/pki/tls/certs/ca-bundle.crt \
%{buildroot}%{_datadir}/apps/kssl/ca-bundle.crt
fi
%check %check
ERROR=0 ERROR=0
# verify rpath, or lack thereof
if [ ! -z "$(chrpath --list %{buildroot}%{_bindir}/kioexec 2>/dev/null | grep RPATH=)" ]; then
echo "ERROR: the end is neigh, rpath has returned!"
ERROR=1
fi
%if 0%{?apidocs} %if 0%{?apidocs}
if [ ! -f %{buildroot}%{_docdir}/HTML/en/kdelibs-apidocs/index.html ]; then if [ ! -f %{buildroot}%{_docdir}/HTML/en/kdelibs-apidocs/index.html ]; then
echo "ERROR: %{_docdir}/HTML/en/kdelibs-apidocs/index.html not generated" echo "ERROR: %{_docdir}/HTML/en/kdelibs-apidocs/index.html not generated"
@ -543,17 +465,24 @@ fi
exit $ERROR exit $ERROR
%clean
rm -rf %{buildroot}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if 0%{?include_crystalsvg}
touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || : touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/crystalsvg 2> /dev/null || : %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/crystalsvg 2> /dev/null || :
%endif
%{_bindir}/update-desktop-database > /dev/null 2>&1 || : %{_bindir}/update-desktop-database > /dev/null 2>&1 || :
%postun %postun
/sbin/ldconfig /sbin/ldconfig
%if 0%{?include_crystalsvg}
touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || : touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/crystalsvg 2> /dev/null || : %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/crystalsvg 2> /dev/null || :
%endif
%{_bindir}/update-desktop-database > /dev/null 2>&1 || : %{_bindir}/update-desktop-database > /dev/null 2>&1 || :
@ -567,7 +496,6 @@ touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
%{_bindir}/artsmessage %{_bindir}/artsmessage
%{_bindir}/cupsdconf %{_bindir}/cupsdconf
%{_bindir}/cupsdoprint %{_bindir}/cupsdoprint
%{_bindir}/make_driver_db_cups
%{_bindir}/dcop %{_bindir}/dcop
%{_bindir}/dcopclient %{_bindir}/dcopclient
%{_bindir}/dcopfind %{_bindir}/dcopfind
@ -604,16 +532,21 @@ touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
%{_bindir}/kioexec %{_bindir}/kioexec
%{_bindir}/kioslave %{_bindir}/kioslave
%{_bindir}/klauncher %{_bindir}/klauncher
%{_bindir}/kmailservice
%attr(4755,root,root) %{_bindir}/kpac_dhcp_helper
%{_bindir}/ksendbugmail %{_bindir}/ksendbugmail
%{_bindir}/kshell %{_bindir}/kshell
%{_bindir}/kstartupconfig %{_bindir}/kstartupconfig
%{_bindir}/ktelnetservice
%{_bindir}/ktradertest %{_bindir}/ktradertest
%{_bindir}/kwrapper %{_bindir}/kwrapper
%{_bindir}/lnusertemp %{_bindir}/lnusertemp
%{_bindir}/make_driver_db_cups
%{_bindir}/make_driver_db_lpr %{_bindir}/make_driver_db_lpr
%{_bindir}/meinproc %{_bindir}/meinproc
%{_bindir}/start_kdeinit %{_bindir}/start_kdeinit
%{_bindir}/start_kdeinit_wrapper %{_bindir}/start_kdeinit_wrapper
%attr(4755,root,root) %{_bindir}/kgrantpty
%{_libdir}/lib*.so.* %{_libdir}/lib*.so.*
%{_libdir}/libkdeinit_*.so %{_libdir}/libkdeinit_*.so
%{_libdir}/lib*.la %{_libdir}/lib*.la
@ -632,7 +565,9 @@ touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
%ghost %{_datadir}/services/ksycoca %ghost %{_datadir}/services/ksycoca
%{_docdir}/HTML/en/kspell %{_docdir}/HTML/en/kspell
%{_docdir}/HTML/en/common/* %{_docdir}/HTML/en/common/*
%if 0%{?include_crystalsvg}
%{_datadir}/icons/crystalsvg/ %{_datadir}/icons/crystalsvg/
%endif
%files devel %files devel
%defattr(-,root,root,-) %defattr(-,root,root,-)
@ -652,210 +587,8 @@ touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
%{_docdir}/HTML/en/kdelibs* %{_docdir}/HTML/en/kdelibs*
%endif %endif
%files tools
%attr(4755,root,root) %{_bindir}/kgrantpty
%attr(4755,root,root) %{_bindir}/kpac_dhcp_helper
%changelog %changelog
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 3.5.10-94
- Escape macros in %%changelog
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.5.10-93
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Sat Jan 20 2018 Björn Esser <besser82@fedoraproject.org> - 3.5.10-92
- Rebuilt for switch to libxcrypt
* Sat Jan 06 2018 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.10-91
- Build against OpenSSL 1.1, patch from Trinity, backported by Kevin Kofler
* Thu Dec 28 2017 Yaakov Selkowitz <yselkowi@redhat.com> - 3.5.10-90
- Fix loading of latest compat-openssl10 (#1529417)
- Use ca-certificates' ca-bundle.crt (#521902)
* Tue Aug 08 2017 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.10-89
- fix libidn dependency removal from .la files (#1479146)
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.5.10-88
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.5.10-87
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Wed Jun 21 2017 Than Ngo <than@redhat.com> - 3.5.10-86
- fix build with libidn2
* Wed May 10 2017 Than Ngo <than@redhat.com> - 3.5.10-85
- add support libidn2 for f27
* Sat Mar 04 2017 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.10-84
- backport fix for CVE-2017-6410 from kdelibs 4 (itself backported from KF5)
* Mon Feb 27 2017 Than Ngo <than@redhat.com> - 3.5.10-83
- devel requires compat-openssl10-devel, fix kdebase3 FTBS
* Tue Feb 21 2017 Hans de Goede <hdegoede@redhat.com> - 3.5.10-82
- Fix gcc7 FTBFS (rhbz#1423808)
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.5.10-81
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Mon Jan 23 2017 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.10-80
- backport fix for CVE-2016-6232 from Trinity (itself backported from KF5)
* Sun Jan 22 2017 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.10-79
- use DrKonqi from Plasma 5 rather than from kde-runtime 4
- build against compat-openssl10 for now (F26+)
- BuildRequires: pkgconf-pkg-config instead of pkgconfig on F26+
* Sat Dec 03 2016 Rex Dieter <rdieter@fedoraproject.org> - 3.5.10-78
- rebuild (jasper)
- drop the extra -Werror= flags for C, they break the configure script
* Wed Sep 28 2016 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.10-77
- backport CUPS 2.2 build fix from Trinity / Slávek Banko
* Wed Sep 28 2016 Than Ngo <than@redhat.com> - 3.5.10-76
- fix bz#1376181, fix endless loop in svgicons
* Mon Jun 27 2016 Than Ngo <than@redhat.com> - 3.5.10-75
- move kpac_dhcp_helper, kpac_dhcp_helper into separate subpackage
* Tue Feb 16 2016 Than Ngo <than@redhat.com> - 3.5.10-74
- fix bz#1307685, FTBFS in rawhide
* Sun Feb 14 2016 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.10-73
- Add -std=gnu++98 to the CXXFLAGS to fix FTBFS (#1307685)
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.5.10-72
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Thu Dec 10 2015 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.10-71
- Backport CVE-2015-7543 fix (Joseph Wenninger) from kdelibs 4 (#1289235)
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.10-70
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Thu Jun 04 2015 Rex Dieter <rdieter@fedoraproject.org> 3.5.10-69
- drop hard Requires: sudo (kdesu can use it, but it's not default)
* Mon May 04 2015 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.10-68
- rebuild against qt3 with fixed build key (#1218091)
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 3.5.10-67
- Rebuilt for GCC 5 C++11 ABI change
* Sun Apr 05 2015 Rex Dieter <rdieter@fedoraproject.org> 3.5.10-66
- rebuild (gcc5)
* Tue Nov 25 2014 Kevin Kofler <Kevin@tigcc.ticalc.org> 3.5.10-65
- fix FTBFS with CUPS 2.0 due to bad CUPS_VERSION_MAJOR checks
* Tue Nov 25 2014 Rex Dieter <rdieter@fedoraproject.org> 3.5.10-64
- rebuild (openexr)
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.10-63
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Wed Aug 13 2014 Rex Dieter <rdieter@fedoraproject.org> 3.5.10-62
- kill rpath harder
* Tue Jul 22 2014 Rex Dieter <rdieter@fedoraproject.org> 3.5.10-61
- drop bootstrap
* Wed Jul 02 2014 Rex Dieter <rdieter@fedoraproject.org> 3.5.10-60.1.bootstrap
- bootstrap ppc64le
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.10-60
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sun Dec 01 2013 Rex Dieter <rdieter@fedoraproject.org> 3.5.10-59
- trim %%changelog
* Sat Nov 30 2013 Rex Dieter <rdieter@fedoraproject.org> 3.5.10-58
- --disable-new-ldflags, fix FTBFS on rawhide
* Wed Nov 27 2013 Rex Dieter <rdieter@fedoraproject.org> 3.5.10-57
- rebuild (openexr)
* Sun Sep 08 2013 Rex Dieter <rdieter@fedoraproject.org> 3.5.10-56
- rebuild (ilmbase/openexr)
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.10-55
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Thu Jul 18 2013 Petr Pisar <ppisar@redhat.com> - 3.5.10-54
- Perl 5.18 rebuild
* Sat May 18 2013 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.10-53
- fix CVE-2013-2074 (passwords in HTTP URLs in error messages, #962001)
* Mon Apr 01 2013 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.10-52
- use automake --force-missing to get aarch64 support (#925029/#925627)
- also use automake --copy (the default is symlinking)
* Sun Mar 10 2013 Rex Dieter <rdieter@fedoraproject.org> - 3.5.10-51
- rebuild (OpenEXR)
* Sat Mar 09 2013 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.10-50
- drop branding hack which breaks kde-config --kde-version
* Sat Mar 09 2013 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.10-49
- unify KDE 3 autotools fixes between packages
* Thu Mar 07 2013 Than Ngo <than@redhat.com> - 3.5.10-48
- fix build failture
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.10-47
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Fri Jan 18 2013 Adam Tkac <atkac redhat com> - 3.5.10-46
- rebuild due to "jpeg8-ABI" feature drop
* Tue Dec 25 2012 Kevin Kofler <Kevin@tigcc.ticalc.org> 3.5.10-45
- drop CUPS conditionals, CUPS support must always be built
- backport CUPS 1.6 build fixes from Trinity / Timothy Pearson
* Fri Dec 21 2012 Rex Dieter <rdieter@fedoraproject.org> 3.5.10-44
- disable cups support on f19+ (for now, needs lots 'o love)
* Fri Dec 21 2012 Adam Tkac <atkac redhat com> - 3.5.10-43
- rebuild against new libjpeg
* Thu Dec 20 2012 Rex Dieter <rdieter@fedoraproject.org> 3.5.10-42
- omit ktelnetservice (in favor of kdelibs4's copy)
* Thu Dec 06 2012 Kevin Kofler <Kevin@tigcc.ticalc.org> 3.5.10-41
- omit cupsdconf (F19+), FTBFS with the latest CUPS and not worth fixing
* Tue Dec 04 2012 Rex Dieter <rdieter@fedoraproject.org> 3.5.10-40
- kate has a file conflict with kdelibs3 (#883529)
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.10-39
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Thu Jul 12 2012 Rex Dieter <rdieter@fedoraproject.org> 3.5.10-38
- omit kmailservice (in favor of kdelibs4's copy (#773414)
* Mon Jun 11 2012 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.10-37
- rebuild for fixed GCC (#830618)
- remove flawed and obsolete automake version check in admin/cvs.sh
* Tue May 08 2012 Rex Dieter <rdieter@fedoraproject.org> 3.5.10-36
- rebuild (libtiff)
* Wed Apr 04 2012 Than Ngo <than@redhat.com> - 3.5.10-35
- drop apidocs
* Fri Feb 10 2012 Petr Pisar <ppisar@redhat.com> - 3.5.10-34
- Rebuild against PCRE 8.30
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.10-33
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Dec 06 2011 Adam Jackson <ajax@redhat.com> - 3.5.10-32
- Rebuild for new libpng
* Thu Oct 13 2011 Than Ngo <than@redhat.com> - 3.5.10-31 * Thu Oct 13 2011 Than Ngo <than@redhat.com> - 3.5.10-31
- Resolves: bz#743074, CVE-2011-3365, input validation failure in KSSL - Resolves: bz#743074, CVE-2011-3365, input validation failure in KSSL
@ -1100,7 +833,7 @@ touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
* Tue Sep 25 2007 Than Ngo <than@redhat.com> - 6:3.5.7-23 * Tue Sep 25 2007 Than Ngo <than@redhat.com> - 6:3.5.7-23
- fix rh#243611, autostart from XDG_CONFIG_DIRS - fix rh#243611, autostart from XDG_CONFIG_DIRS
* Sun Sep 09 2007 Kevin Kofler <Kevin@tigcc.ticalc.org> 6:3.5.7-22 * Sat Sep 09 2007 Kevin Kofler <Kevin@tigcc.ticalc.org> 6:3.5.7-22
- Remove Conflicts: kdelibs4-devel, let kdelibs4 decide whether we conflict - Remove Conflicts: kdelibs4-devel, let kdelibs4 decide whether we conflict
(allows using the old /opt/kde4 versions for now) (allows using the old /opt/kde4 versions for now)
@ -1176,7 +909,7 @@ touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
- apply patch to fix locale issue - apply patch to fix locale issue
- apply upstream patch to fix kde#146105 - apply upstream patch to fix kde#146105
* Wed May 16 2007 Rex Dieter <rdieter[AT]fedorproject.org> - 6:3.5.6-9 * Thu May 16 2007 Rex Dieter <rdieter[AT]fedorproject.org> - 6:3.5.6-9
- make qtdocdir handling robust - make qtdocdir handling robust
- kde_settings=1 - kde_settings=1
- Req: -desktop-backgrounds-basic - Req: -desktop-backgrounds-basic
@ -1185,13 +918,13 @@ touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
- add correct qt-version to build kde apidocs ,bz#239947 - add correct qt-version to build kde apidocs ,bz#239947
- disable kde_settings - disable kde_settings
* Mon May 14 2007 Rex Dieter <rdieter[AT]fedoraproject.org> - 6:3.5.6-7 * Thu May 14 2007 Rex Dieter <rdieter[AT]fedoraproject.org> - 6:3.5.6-7
- BR: +keyutils-libs-devel (until krb5 is fixed, bug #240220) - BR: +keyutils-libs-devel (until krb5 is fixed, bug #240220)
* Mon May 14 2007 Rex Dieter <rdieter[AT]fedoraproject.org> - 6:3.5.6-6 * Thu May 14 2007 Rex Dieter <rdieter[AT]fedoraproject.org> - 6:3.5.6-6
- kde.sh: fix typo/thinko - kde.sh: fix typo/thinko
* Mon May 14 2007 Rex Dieter <rdieter[AT]fedoraproject.org> - 6:3.5.6-5 * Thu May 14 2007 Rex Dieter <rdieter[AT]fedoraproject.org> - 6:3.5.6-5
- %%changelog: prune pre-kde3 entries - %%changelog: prune pre-kde3 entries
- %%ghost %%{_datadir}/services/ksycoca - %%ghost %%{_datadir}/services/ksycoca
- omit extraneous .la file references (#178733) - omit extraneous .la file references (#178733)
@ -1301,7 +1034,7 @@ touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
- should have been 6:3.5.3-9 but accidentally built as 6:3.5.3-8.fc6 - should have been 6:3.5.3-9 but accidentally built as 6:3.5.3-8.fc6
- --disable-libfam and --enable-inotify to get inotify support - --disable-libfam and --enable-inotify to get inotify support
and to disable gamin/fam usage and to disable gamin/fam usage
- add %%{?dist} to Release: - add %{?dist} to Release:
* Tue Jul 11 2006 Than Ngo <than@redhat.com> 6:3.5.3-8 * Tue Jul 11 2006 Than Ngo <than@redhat.com> 6:3.5.3-8
- upstream patches, - upstream patches,
@ -1795,7 +1528,7 @@ touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
* Sun Jan 26 2003 Than Ngo <than@redhat.com> 6:3.1-0.16 * Sun Jan 26 2003 Than Ngo <than@redhat.com> 6:3.1-0.16
- use make apidox to create KDE api instead doxygen - use make apidox to create KDE api instead doxygen
* Fri Jan 24 2003 Than Ngo <than@redhat.com> 6:3.1-0.15 * Thu Jan 24 2003 Than Ngo <than@redhat.com> 6:3.1-0.15
- use doxygen to create api docs - use doxygen to create api docs
- clean up specfile - clean up specfile
@ -1942,10 +1675,10 @@ touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
* Tue May 28 2002 Bernhard Rosenkraenzer <bero@redhat.com> 3.0.1-3 * Tue May 28 2002 Bernhard Rosenkraenzer <bero@redhat.com> 3.0.1-3
- Add support for xdg-list icon theme spec - Add support for xdg-list icon theme spec
* Thu May 9 2002 Bernhard Rosenkraenzer <bero@redhat.com> 3.0.1-1 * Fri May 9 2002 Bernhard Rosenkraenzer <bero@redhat.com> 3.0.1-1
- 3.0.1 - 3.0.1
* Tue May 7 2002 Bernhard Rosenkraenzer <bero@redhat.com> 3.0.0-12 * Wed May 7 2002 Bernhard Rosenkraenzer <bero@redhat.com> 3.0.0-12
- Update to KDE_3_0_BRANCH - Update to KDE_3_0_BRANCH
- Do away with the GCC296 define, it's handled automatically - Do away with the GCC296 define, it's handled automatically