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