rev 4838 - in trunk/packages/kdelibs/debian: . patches
Modestas Vainius
modax-guest at alioth.debian.org
Wed Nov 1 17:49:28 CET 2006
Author: modax-guest
Date: 2006-11-01 17:49:28 +0100 (Wed, 01 Nov 2006)
New Revision: 4838
Added:
trunk/packages/kdelibs/debian/patches/35_cups_unify_ipp_uri_assembling.diff
trunk/packages/kdelibs/debian/patches/36_kdeprintd_64bit_fix.diff
Modified:
trunk/packages/kdelibs/debian/changelog
trunk/packages/kdelibs/debian/patches/33_cups12_kprinter_fixes.diff
Log:
kdeprint fixes. see changelog for more info
Modified: trunk/packages/kdelibs/debian/changelog
===================================================================
--- trunk/packages/kdelibs/debian/changelog 2006-11-01 14:07:17 UTC (rev 4837)
+++ trunk/packages/kdelibs/debian/changelog 2006-11-01 16:49:28 UTC (rev 4838)
@@ -12,15 +12,19 @@
application (e.g. konqueror) causing further DCOP failures.
(Closes: #348411)
- * Add 33_cups12_kprinter_fixes.diff, an unmerged patch in upstream's BTS
- at http://bugs.kde.org/115891, which should fix the remaining problems
- people are encountering when attempting to print. This supersedes
- several of our own kprinter patches. (Closes: #395383)
+ * Add 2 patches from upstream BTS http://bugs.kde.org/115891:
+ * 33_cups12_kprinter_fixes.diff - fix various failures with CUPS 1.2
+ when there are no printers.
+ * 35_cups_unify_ipp_uri_assembling.diff - ensure proper IPP URI
+ generation when CUPS is accessed via a UNIX socket. (Closes: #379216)
+ * Add 36_kdeprintd_64bit_fix.diff - fix a bug on 64bit arches when kdeprint
+ is not able to get a configuration file from CUPS server because kdeprintd
+ fails to retreive the password from kpasswdserver.
!!! Please test the above changes. I don't suffer from the reported
problems, so I don't really know if it fixes them. !!!
- -- Debian Qt/KDE Maintainers <debian-qt-kde at lists.debian.org> Thu, 26 Oct 2006 10:44:35 +0300
+ -- Debian Qt/KDE Maintainers <debian-qt-kde at lists.debian.org> Wed, 1 Nov 2006 14:40:36 +0200
kdelibs (4:3.5.5a.dfsg.1-2) unstable; urgency=high
Modified: trunk/packages/kdelibs/debian/patches/33_cups12_kprinter_fixes.diff
===================================================================
--- trunk/packages/kdelibs/debian/patches/33_cups12_kprinter_fixes.diff 2006-11-01 14:07:17 UTC (rev 4837)
+++ trunk/packages/kdelibs/debian/patches/33_cups12_kprinter_fixes.diff 2006-11-01 16:49:28 UTC (rev 4838)
@@ -31,26 +31,3 @@
req.addURI(IPP_TAG_OPERATION,"printer-uri",uri);
if (req.doRequest("/admin/"))
return true;
-@@ -1033,8 +1033,20 @@
- QString uri;
- if (use && !p->uri().isEmpty())
- uri = p->uri().prettyURL();
-- else
-- uri = QString("ipp://%1/%3/%2").arg(CupsInfos::self()->hostaddr()).arg(p->printerName()).arg((p->isClass(false) ? "classes" : "printers"));
-+ else {
-+ int port = CupsInfos::self()->port();
-+ QString host = CupsInfos::self()->host();
-+#if CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR >= 2
-+ // Resolve potential domain sockets and other potential "weired" hostnames
-+ http_t *http = httpConnect(host.latin1(), port);
-+ if (http) {
-+ char buf[256];
-+ host = QString::fromLatin1(httpGetHostname(http, buf, sizeof(buf)));
-+ httpClose(http);
-+ }
-+#endif
-+ uri = QString("ipp://%1:%2/%4/%3").arg(host).arg(port).arg(p->printerName()).arg((p->isClass(false) ? "classes" : "printers"));
-+ }
- return uri;
- }
-
Added: trunk/packages/kdelibs/debian/patches/35_cups_unify_ipp_uri_assembling.diff
===================================================================
--- trunk/packages/kdelibs/debian/patches/35_cups_unify_ipp_uri_assembling.diff 2006-11-01 14:07:17 UTC (rev 4837)
+++ trunk/packages/kdelibs/debian/patches/35_cups_unify_ipp_uri_assembling.diff 2006-11-01 16:49:28 UTC (rev 4838)
@@ -0,0 +1,215 @@
+--- kdelibs-3.5.5a.dfsg.1.orig/kdeprint/cups/cupsinfos.cpp 2006-10-26 19:31:11.000000000 +0300
++++ kdelibs-3.5.5a.dfsg.1/kdeprint/cups/cupsinfos.cpp 2006-10-26 21:29:07.000000000 +0300
+@@ -21,6 +21,7 @@
+ #include "kmfactory.h"
+ #include "kmtimer.h"
+ #include "messagewindow.h"
++#include "ipprequest.h"
+
+ #include <kio/passdlg.h>
+ #include <kio/authinfo.h>
+@@ -76,6 +77,11 @@
+ return host_;
+ }
+
++QString CupsInfos::ippAssembleURI(const QString& resource) const
++{
++ return IppRequest::assembleURI(host(), port(), resource);
++}
++
+ void CupsInfos::setHost(const QString& s)
+ {
+ host_ = s;
+--- kdelibs-3.5.5a.dfsg.1.orig/kdeprint/cups/cupsinfos.h 2006-10-26 19:31:11.000000000 +0300
++++ kdelibs-3.5.5a.dfsg.1/kdeprint/cups/cupsinfos.h 2006-10-26 21:26:26.000000000 +0300
+@@ -34,6 +34,7 @@
+ const QString& host() const;
+ QString hostaddr() const;
+ int port() const;
++ QString ippAssembleURI(const QString& resource) const;
+ const QString& login() const;
+ const QString& password() const;
+ const QString& realLogin() const;
+--- kdelibs-3.5.5a.dfsg.1.orig/kdeprint/cups/ipprequest.cpp 2006-10-26 19:31:11.000000000 +0300
++++ kdelibs-3.5.5a.dfsg.1/kdeprint/cups/ipprequest.cpp 2006-10-26 21:33:09.000000000 +0300
+@@ -529,4 +529,48 @@
+ attr = attr->next;
+ }
+ #endif
++
++
+ }
++
++
++QString IppRequest::assembleURI(const QString& host, int port, const QString& resource)
++{
++ const char* hostname;
++
++ // Replace UNIX socket address with "localhost". ipp URI specification
++ // does not allow UNIX socket addresses in the host portion
++ if (host[0] == '/' || host.isEmpty()) {
++ hostname = "localhost";
++ port = 0;
++ } else {
++ hostname = host.local8Bit();
++ }
++
++ if (port < 0)
++ return QString::null;
++
++#if CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR >= 2
++ QCString uri(HTTP_MAX_URI);
++
++ // Use URI assembling function provided by CUPS
++ if (httpAssembleURI(HTTP_URI_CODING_ALL, uri.data(), uri.size(),
++ "ipp", NULL, hostname, port, resource.local8Bit()) == HTTP_URI_OK)
++ return QString(uri);
++ else
++ return QString::null;
++
++#else
++ // Use our own URI assembling function
++ if (port > 0)
++ return QString("ipp://%1:%2%3")
++ .arg(hostname)
++ .arg(port)
++ .arg(KURL::encode_string(resource));
++ else
++ return QString("ipp://%1%2")
++ .arg(hostname)
++ .arg(KURL::encode_string(resource));
++#endif
++}
++
+--- kdelibs-3.5.5a.dfsg.1.orig/kdeprint/cups/ipprequest.h 2006-10-26 19:31:11.000000000 +0300
++++ kdelibs-3.5.5a.dfsg.1/kdeprint/cups/ipprequest.h 2006-10-26 21:24:41.000000000 +0300
+@@ -86,6 +86,9 @@
+ // debug function
+ void dump(int state);
+
++ // URI assembling function [static]
++ static QString assembleURI(const QString& host, int port, const QString& resource);
++
+ protected:
+ void addString_p(int group, int type, const QString& name, const QString& value);
+ void addStringList_p(int group, int type, const QString& name, const QStringList& values);
+--- kdelibs-3.5.5a.dfsg.1.orig/kdeprint/cups/kmcupsjobmanager.cpp 2006-10-26 21:45:23.000000000 +0300
++++ kdelibs-3.5.5a.dfsg.1/kdeprint/cups/kmcupsjobmanager.cpp 2006-10-27 01:33:12.000000000 +0300
+@@ -92,7 +92,7 @@
+ case KMJob::Move:
+ if (argstr.isEmpty()) return false;
+ req.setOperation(CUPS_MOVE_JOB);
+- uri = QString::fromLatin1("ipp://%1:%2/printers/%3").arg(CupsInfos::self()->host()).arg(CupsInfos::self()->port()).arg(argstr);
++ uri = CupsInfos::self()->ippAssembleURI(QString("/printers/%1").arg(argstr));
+ req.addURI(IPP_TAG_OPERATION, "job-printer-uri", uri);
+ break;
+ default:
+@@ -109,7 +109,6 @@
+ bool KMCupsJobManager::listJobs(const QString& prname, KMJobManager::JobType type, int limit)
+ {
+ IppRequest req;
+- QString uri("ipp://%1:%2/%3/%4");
+ QStringList keys;
+ CupsInfos *infos = CupsInfos::self();
+
+@@ -143,7 +142,8 @@
+ */
+ }
+ else
+- req.addURI(IPP_TAG_OPERATION, "printer-uri", uri.arg(infos->host()).arg(infos->port()).arg(((mp&&mp->isClass())?"classes":"printers")).arg(prname));
++ req.addURI(IPP_TAG_OPERATION, "printer-uri",
++ infos->ippAssembleURI(QString("/%1/%2").arg(((mp&&mp->isClass())?"classes":"printers")).arg(prname)));
+
+ // other attributes
+ req.addKeyword(IPP_TAG_OPERATION, "requested-attributes", keys);
+--- kdelibs-3.5.5a.dfsg.1.orig/kdeprint/cups/kmcupsmanager.cpp 2006-10-26 19:31:11.000000000 +0300
++++ kdelibs-3.5.5a.dfsg.1/kdeprint/cups/kmcupsmanager.cpp 2006-10-26 21:31:12.000000000 +0300
+@@ -138,7 +138,7 @@
+ req.setOperation(CUPS_ADD_CLASS);
+ QStringList members = p->members(), uris;
+ QString s;
+- s = QString::fromLocal8Bit("ipp://%1/printers/").arg(CupsInfos::self()->hostaddr());
++ s = CupsInfos::self()->ippAssembleURI("/printers/");
+ for (QStringList::ConstIterator it=members.begin(); it!=members.end(); ++it)
+ uris.append(s+(*it));
+ req.addURI(IPP_TAG_PRINTER,"member-uris",uris);
+@@ -1024,7 +1024,7 @@
+ if (use && !p->uri().isEmpty())
+ uri = p->uri().prettyURL();
+ else
+- uri = QString("ipp://%1/%3/%2").arg(CupsInfos::self()->hostaddr()).arg(p->printerName()).arg((p->isClass(false) ? "classes" : "printers"));
++ uri = CupsInfos::self()->ippAssembleURI(QString("/%2/%1").arg(p->printerName()).arg((p->isClass(false) ? "classes" : "printers")));
+ return uri;
+ }
+
+--- kdelibs-3.5.5a.dfsg.1.orig/kdeprint/cups/kmcupsuimanager.cpp 2006-10-26 19:31:11.000000000 +0300
++++ kdelibs-3.5.5a.dfsg.1/kdeprint/cups/kmcupsuimanager.cpp 2006-10-26 21:34:02.000000000 +0300
+@@ -135,7 +135,7 @@
+ QString uri;
+
+ req.setOperation(CUPS_GET_DEVICES);
+- uri = QString::fromLocal8Bit("ipp://%1/printers/").arg(CupsInfos::self()->hostaddr());
++ uri = CupsInfos::self()->ippAssembleURI("/printers/");
+ req.addURI(IPP_TAG_OPERATION,"printer-uri",uri);
+
+ if (req.doRequest("/"))
+--- kdelibs-3.5.5a.dfsg.1.orig/kdeprint/cups/kmwfax.cpp 2006-10-26 19:31:11.000000000 +0300
++++ kdelibs-3.5.5a.dfsg.1/kdeprint/cups/kmwfax.cpp 2006-10-26 21:34:54.000000000 +0300
+@@ -48,7 +48,7 @@
+ // initialize
+ IppRequest req;
+ req.setOperation(CUPS_GET_DEVICES);
+- QString uri = QString::fromLatin1("ipp://%1:%2/printers/").arg(CupsInfos::self()->host()).arg(CupsInfos::self()->port());
++ QString uri = CupsInfos::self()->ippAssembleURI("/printers/");
+ req.addURI(IPP_TAG_OPERATION,"printer-uri",uri);
+ if (req.doRequest("/"))
+ {
+--- kdelibs-3.5.5a.dfsg.1.orig/kdeprint/cups/kmwippprinter.cpp 2006-10-26 19:31:11.000000000 +0300
++++ kdelibs-3.5.5a.dfsg.1/kdeprint/cups/kmwippprinter.cpp 2006-10-26 21:41:20.000000000 +0300
+@@ -157,7 +157,7 @@
+ req.setOperation(IPP_GET_PRINTER_ATTRIBUTES);
+ req.setHost(item->text(1));
+ req.setPort(item->text(2).toInt());
+- uri = QString::fromLatin1("ipp://%1:%2/ipp").arg(item->text(1)).arg(item->text(2));
++ uri = IppRequest::assembleURI(item->text(1), item->text(2).toInt(), "/ipp");
+ req.addURI(IPP_TAG_OPERATION,"printer-uri",uri);
+ keys.append("printer-name");
+ keys.append("printer-state");
+@@ -176,7 +176,7 @@
+ if (req.uri("printer-uri-supported",value))
+ {
+ if (value[0] == '/')
+- value.prepend(QString::fromLatin1("ipp://%1:%2").arg(item->text(1)).arg(item->text(2)));
++ value = IppRequest::assembleURI(item->text(1), item->text(2).toInt(), value);
+ m_uri->setText(value);
+ }
+ if (req.text("printer-make-and-model",value) && !value.isEmpty()) txt.append(i18n("<b>Model</b>: %1<br>").arg(value));
+@@ -203,7 +203,7 @@
+ void KMWIppPrinter::slotIppReport()
+ {
+ IppRequest req;
+- QString uri("ipp://%1:%2/ipp");
++ QString uri;
+ QListViewItem *item = m_list->currentItem();
+
+ if (item)
+@@ -211,7 +211,7 @@
+ req.setOperation(IPP_GET_PRINTER_ATTRIBUTES);
+ req.setHost(item->text(1));
+ req.setPort(item->text(2).toInt());
+- uri = uri.arg(item->text(1)).arg(item->text(2));
++ uri = IppRequest::assembleURI(item->text(1), item->text(2).toInt(), "/ipp");
+ req.addURI(IPP_TAG_OPERATION, "printer-uri", uri);
+ if (req.doRequest("/ipp/"))
+ {
+--- kdelibs-3.5.5a.dfsg.1.orig/kdeprint/cups/kmwippselect.cpp 2006-10-26 19:31:11.000000000 +0300
++++ kdelibs-3.5.5a.dfsg.1/kdeprint/cups/kmwippselect.cpp 2006-10-26 21:32:34.000000000 +0300
+@@ -75,7 +75,7 @@
+ IppRequest req;
+ QString uri;
+ req.setOperation(CUPS_GET_PRINTERS);
+- uri = QString::fromLatin1("ipp://%1:%2/printers/").arg(url.host()).arg(url.port());
++ uri = IppRequest::assembleURI(url.host(), url.port(), "/printers/");
+ req.addURI(IPP_TAG_OPERATION,"printer-uri",uri);
+ req.addKeyword(IPP_TAG_OPERATION,"requested-attributes",QString::fromLatin1("printer-name"));
+ if (req.doRequest("/printers/"))
Added: trunk/packages/kdelibs/debian/patches/36_kdeprintd_64bit_fix.diff
===================================================================
--- trunk/packages/kdelibs/debian/patches/36_kdeprintd_64bit_fix.diff 2006-11-01 14:07:17 UTC (rev 4837)
+++ trunk/packages/kdelibs/debian/patches/36_kdeprintd_64bit_fix.diff 2006-11-01 16:49:28 UTC (rev 4838)
@@ -0,0 +1,11 @@
+--- kdelibs-3.5.5a.dfsg.1/kdeprint/kdeprintd.cpp 2006-11-01 14:26:12.000000000 +0200
++++ kdelibs-3.5.5a.dfsg.1/kdeprint/kdeprintd.cpp 2006-11-01 13:49:58.000000000 +0200
+@@ -263,7 +263,7 @@
+ info.comment = i18n( "Printing system" );
+
+ QDataStream input( params, IO_WriteOnly );
+- input << info << i18n( "Authentication failed (user name=%1)" ).arg( info.username ) << 0 << req->seqNbr;
++ input << info << i18n( "Authentication failed (user name=%1)" ).arg( info.username ) << 0L << (long int) req->seqNbr;
+ if ( callingDcopClient()->call( "kded", "kpasswdserver", "queryAuthInfo(KIO::AuthInfo,QString,long int,long int)",
+ params, replyType, reply ) )
+ {
More information about the pkg-kde-commits
mailing list