Package: qlandkartegt
Severity: normal
Tags: patch

Dear Maintainer,

qlandkartegt upstream released a new version 1.7.6 a few days ago.
Unfortunately, it's still not compliant with the mapnik tile usage
policy. Find attached the changes that seem useful to me: The patch
where upstream removed the setting a User-Agent and the mapnik usage
was reverted. In a separate patch, the User-Agent is set to
QLandkarteGt everywhere.

Also the update check underwent a change in upstream, the patch now
defaults to "never" since Debian provides updates anyway.

Status: Works for me.

Regards,
    Christoph

-- System Information:
Debian Release: jessie/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 3.10.29 (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash

(beware: Trailing whitespaces in the patch, hence sent as attachment)
diff --git a/debian/patches/01-no-updates-check.patch 
b/debian/patches/01-no-updates-check.patch
index e88ce3b..e3db0a6 100644
--- a/debian/patches/01-no-updates-check.patch
+++ b/debian/patches/01-no-updates-check.patch
@@ -1,16 +1,17 @@
-Description: Fix FTBFS with libpng 1.5
+Description: Disable update check
 Author: Christoph Biedl <debian.packages.h...@manchmal.in-ulm.de>
 Forwarded: No
+Last-Update: 2014-02-17
+Bug-Debian: https://bugs.debian.org/687030
 
-Index: qlandkartegt/src/CMainWindow.cpp
-===================================================================
---- qlandkartegt.orig/src/CMainWindow.cpp      2013-09-09 10:22:04.880448936 
+0200
-+++ qlandkartegt/src/CMainWindow.cpp   2013-09-09 10:22:04.876448936 +0200
-@@ -1563,6 +1563,7 @@
- 
+--- a/src/CMainWindow.cpp
++++ b/src/CMainWindow.cpp
+@@ -1571,7 +1571,7 @@
  void CMainWindow::slotUpdate()
  {
-+    return;
-     QtSoapMessage request;
-     request.setMethod(QtSoapQName("getlastversion", "urn:qlandkartegt"));
-     request.addMethodArgument("changelog", "", "0");
+     SETTINGS;
+-    int result = cfg.value("checkVersion", -1).toInt();
++    int result = cfg.value("checkVersion", 0).toInt();
+     if(result == -1)
+     {
+         QString msg = tr(
diff --git a/debian/patches/02-restore_mapnik_and_user_agent.patch 
b/debian/patches/02-restore_mapnik_and_user_agent.patch
new file mode 100644
index 0000000..71a61b4
--- /dev/null
+++ b/debian/patches/02-restore_mapnik_and_user_agent.patch
@@ -0,0 +1,167 @@
+Description: Revert upstream commit r3867
+ Original commit message was:
+ .
+ remove user-agent info from web requests
+ remove built-in mapnik osm server
+Author: Christoph Biedl <debian.packages.h...@manchmal.in-ulm.de>
+Forwarded: No
+Last-Update: 2014-02-17
+Bug-Debian: https://bugs.debian.org/736550
+
+--- a/src/CDlgEditWpt.cpp
++++ b/src/CDlgEditWpt.cpp
+@@ -662,7 +662,7 @@
+     pendingRequests.clear();
+ 
+     QNetworkRequest request;
+-    
++    request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; 
Windows NT 6.1)");
+     request.setUrl(wpt.link);
+     networkAccessManager->get(request);
+ }
+@@ -726,7 +726,7 @@
+             QString url  = re0.cap(1);
+ 
+             QNetworkRequest request;
+-            
++            request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 
8.0; Windows NT 6.1)");
+             request.setUrl(url);
+             networkAccessManager->get(request);
+             return;
+@@ -746,7 +746,7 @@
+                 QString text = re2.cap(2);
+ 
+                 QNetworkRequest request;
+-                
++                request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; 
MSIE 8.0; Windows NT 6.1)");
+                 request.setUrl(url);
+                 pendingRequests[networkAccessManager->get(request)] = text;
+ 
+--- a/src/CDlgMapWmsConfig.cpp
++++ b/src/CDlgMapWmsConfig.cpp
+@@ -150,7 +150,7 @@
+         this, SLOT(slotProxyAuthenticationRequired(const QNetworkProxy&, 
QAuthenticator*)));
+ 
+     QNetworkRequest request;
+-    
++    request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; 
Windows NT 6.1)");
+     QUrl url(map.urlstr);
+     url.addQueryItem("version", map.version);
+     url.addQueryItem("service", "wms");
+--- a/src/CMapDB.cpp
++++ b/src/CMapDB.cpp
+@@ -133,6 +133,23 @@
+     {
+         map_t m;
+ 
++        m.description   = "OpenStreetMap";
++        //http://a.tile.openstreetmap.de/tiles/osmde/&#37;1/&#37;2/&#37;3.png
++        m.filename      = "http://a.tile.openstreetmap.org/%1/%2/%3.png";;
++        m.type          = IMap::eTMS;
++        m.key           = QString::number(qHash(m.filename));
++        m.copyright     = "Open Street Map, Creative Commons 
Attribution-ShareAlike 2.0 license";
++        knownMaps[m.key] = m;
++        builtInKeys << m.key;
++
++        m.description   = "OpenCycleMap";
++        m.filename      = "http://b.tile.opencyclemap.org/cycle/%1/%2/%3.png";;
++        m.type          = IMap::eTMS;
++        m.key           = QString::number(qHash(m.filename));
++        m.copyright     = "Open Street Map, Creative Commons 
Attribution-ShareAlike 2.0 license";
++        knownMaps[m.key] = m;
++        builtInKeys << m.key;
++
+         QStringList keys = 
cfg.value("tms/knownMaps").toString().split("|",QString::SkipEmptyParts);
+         foreach(const QString& key, keys)
+         {
+@@ -161,7 +178,7 @@
+         }
+     }
+ 
+-    maps = 
cfg.value("maps/visibleMaps","").toString().split("|",QString::SkipEmptyParts);
++    maps = 
cfg.value("maps/visibleMaps","http://tile.openstreetmap.org/%1/%2/%3.png";).toString().split("|",QString::SkipEmptyParts);
+     cfg.setValue("maps/visibleMaps","");
+     cfg.sync();
+ 
+--- a/src/CMapTms.cpp
++++ b/src/CMapTms.cpp
+@@ -596,7 +596,7 @@
+         }
+ 
+         QNetworkRequest request;
+-
++        request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 
8.0; Windows NT 6.1)");
+         request.setUrl(req.url);
+         req.reply = accessManager->get(request);
+ 
+--- a/src/CMapWms.cpp
++++ b/src/CMapWms.cpp
+@@ -610,7 +610,7 @@
+         }
+ 
+         QNetworkRequest request;
+-        
++        request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 
8.0; Windows NT 6.1)");
+         request.setUrl(req.url);
+         req.reply = accessManager->get(request);
+ 
+@@ -646,7 +646,7 @@
+             QUrl url(urlRedir);
+ 
+             QNetworkRequest request;
+-            
++            request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 
8.0; Windows NT 6.1)");
+             request.setUrl(url);
+             req.reply = accessManager->get(request);
+ 
+--- a/src/CRouteToolWidget.cpp
++++ b/src/CRouteToolWidget.cpp
+@@ -500,7 +500,7 @@
+     url.setPath("/qlandkarte/route");
+ 
+     QNetworkRequest request;
+-    
++    request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; 
Windows NT 6.1)");
+     request.setUrl(url);
+ 
+     QNetworkReply* reply = m_networkAccessManager->post(request, array);
+@@ -928,7 +928,7 @@
+     //    qDebug() << url.toString();
+ 
+     QNetworkRequest request;
+-    
++    request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; 
Windows NT 6.1)");
+     request.setUrl(url);
+     m_networkAccessManager->get(request);
+ 
+--- a/src/CSearchDB.cpp
++++ b/src/CSearchDB.cpp
+@@ -95,7 +95,7 @@
+     url.addQueryItem("sensor","false");
+ 
+     QNetworkRequest request;
+-    
++    request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; 
Windows NT 6.1)");
+     request.setUrl(url);
+     QNetworkReply * reply = networkAccessManager.get(request);
+     pendingRequests[reply] = eGoogle;
+@@ -162,7 +162,7 @@
+     url.setPath("/qlandkarte/geocode");
+ 
+     QNetworkRequest request;
+-    
++    request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; 
Windows NT 6.1)");
+     request.setUrl(url);
+     QNetworkReply * reply = networkAccessManager.post(request, array);
+     pendingRequests[reply] = eOpenRouteService;
+--- a/src/CTrack.cpp
++++ b/src/CTrack.cpp
+@@ -1006,7 +1006,7 @@
+         url.addQueryItem("username",username);
+ 
+         QNetworkRequest request;
+-        
++        request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 
8.0; Windows NT 6.1)");
+         request.setUrl(url);
+         QNetworkReply * reply = networkAccessManager->get(request);
+ 
diff --git a/debian/patches/03-set_user_agent.patch 
b/debian/patches/03-set_user_agent.patch
new file mode 100644
index 0000000..769dca4
--- /dev/null
+++ b/debian/patches/03-set_user_agent.patch
@@ -0,0 +1,187 @@
+Description: Set a mapnik-compliant User-Agent header
+Author: Christoph Biedl <debian.packages.h...@manchmal.in-ulm.de>
+Forwarded: No
+Last-Update: 2014-02-17
+Bug-Debian: https://bugs.debian.org/736550
+
+--- a/src/CDlgEditWpt.cpp
++++ b/src/CDlgEditWpt.cpp
+@@ -27,6 +27,7 @@
+ #include "IMap.h"
+ #include "IUnit.h"
+ #include "CSettings.h"
++#include "version.h"
+ 
+ #include "config.h"
+ 
+@@ -662,7 +663,7 @@
+     pendingRequests.clear();
+ 
+     QNetworkRequest request;
+-    request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; 
Windows NT 6.1)");
++    request.setRawHeader("User-Agent", "QLandkarteGT/" VER_STR);
+     request.setUrl(wpt.link);
+     networkAccessManager->get(request);
+ }
+@@ -726,7 +727,7 @@
+             QString url  = re0.cap(1);
+ 
+             QNetworkRequest request;
+-            request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 
8.0; Windows NT 6.1)");
++            request.setRawHeader("User-Agent", "QLandkarteGT/" VER_STR);
+             request.setUrl(url);
+             networkAccessManager->get(request);
+             return;
+@@ -746,7 +747,7 @@
+                 QString text = re2.cap(2);
+ 
+                 QNetworkRequest request;
+-                request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; 
MSIE 8.0; Windows NT 6.1)");
++                request.setRawHeader("User-Agent", "QLandkarteGT/" VER_STR);
+                 request.setUrl(url);
+                 pendingRequests[networkAccessManager->get(request)] = text;
+ 
+--- a/src/CDlgMapWmsConfig.cpp
++++ b/src/CDlgMapWmsConfig.cpp
+@@ -21,6 +21,7 @@
+ #include "CMapDB.h"
+ #include "CResources.h"
+ #include "CMainWindow.h"
++#include "version.h"
+ 
+ #include <QtGui>
+ #include <QtXml>
+@@ -150,7 +151,7 @@
+         this, SLOT(slotProxyAuthenticationRequired(const QNetworkProxy&, 
QAuthenticator*)));
+ 
+     QNetworkRequest request;
+-    request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; 
Windows NT 6.1)");
++    request.setRawHeader("User-Agent", "QLandkarteGT/" VER_STR);
+     QUrl url(map.urlstr);
+     url.addQueryItem("version", map.version);
+     url.addQueryItem("service", "wms");
+--- a/src/CMapWms.cpp
++++ b/src/CMapWms.cpp
+@@ -24,6 +24,7 @@
+ #include "CDlgMapWmsConfig.h"
+ #include "CMapSelectionRaster.h"
+ #include "CSettings.h"
++#include "version.h"
+ 
+ #include <QtGui>
+ #include <QtXml>
+@@ -610,7 +611,7 @@
+         }
+ 
+         QNetworkRequest request;
+-        request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 
8.0; Windows NT 6.1)");
++        request.setRawHeader("User-Agent", "QLandkarteGT/" VER_STR);
+         request.setUrl(req.url);
+         req.reply = accessManager->get(request);
+ 
+@@ -646,7 +647,7 @@
+             QUrl url(urlRedir);
+ 
+             QNetworkRequest request;
+-            request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 
8.0; Windows NT 6.1)");
++            request.setRawHeader("User-Agent", "QLandkarteGT/" VER_STR);
+             request.setUrl(url);
+             req.reply = accessManager->get(request);
+ 
+--- a/src/CRouteToolWidget.cpp
++++ b/src/CRouteToolWidget.cpp
+@@ -500,7 +500,7 @@
+     url.setPath("/qlandkarte/route");
+ 
+     QNetworkRequest request;
+-    request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; 
Windows NT 6.1)");
++    request.setRawHeader("User-Agent", "QLandkarteGT/" VER_STR);
+     request.setUrl(url);
+ 
+     QNetworkReply* reply = m_networkAccessManager->post(request, array);
+@@ -928,7 +928,7 @@
+     //    qDebug() << url.toString();
+ 
+     QNetworkRequest request;
+-    request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; 
Windows NT 6.1)");
++    request.setRawHeader("User-Agent", "QLandkarteGT/" VER_STR);
+     request.setUrl(url);
+     m_networkAccessManager->get(request);
+ 
+--- a/src/CSearchDB.cpp
++++ b/src/CSearchDB.cpp
+@@ -23,6 +23,7 @@
+ #include "CCanvas.h"
+ #include "CMapDB.h"
+ #include "IMap.h"
++#include "version.h"
+ 
+ #include <QtGui>
+ #include <QtXml>
+@@ -95,7 +96,7 @@
+     url.addQueryItem("sensor","false");
+ 
+     QNetworkRequest request;
+-    request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; 
Windows NT 6.1)");
++    request.setRawHeader("User-Agent", "QLandkarteGT/" VER_STR);
+     request.setUrl(url);
+     QNetworkReply * reply = networkAccessManager.get(request);
+     pendingRequests[reply] = eGoogle;
+@@ -162,7 +163,7 @@
+     url.setPath("/qlandkarte/geocode");
+ 
+     QNetworkRequest request;
+-    request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; 
Windows NT 6.1)");
++    request.setRawHeader("User-Agent", "QLandkarteGT/" VER_STR);
+     request.setUrl(url);
+     QNetworkReply * reply = networkAccessManager.post(request, array);
+     pendingRequests[reply] = eOpenRouteService;
+--- a/src/CTrack.cpp
++++ b/src/CTrack.cpp
+@@ -26,6 +26,7 @@
+ #include "CWptDB.h"
+ #include "CTrackDB.h"
+ #include "CSettings.h"
++#include "version.h"
+ 
+ #include <QtGui>
+ #include <QtNetwork/QHttp>
+@@ -1006,7 +1007,7 @@
+         url.addQueryItem("username",username);
+ 
+         QNetworkRequest request;
+-        request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 
8.0; Windows NT 6.1)");
++        request.setRawHeader("User-Agent", "QLandkarteGT/" VER_STR);
+         request.setUrl(url);
+         QNetworkReply * reply = networkAccessManager->get(request);
+ 
+--- a/src/CMapTms.cpp
++++ b/src/CMapTms.cpp
+@@ -26,6 +26,7 @@
+ #include "CDlgMapTmsConfig.h"
+ #include "CMapSelectionRaster.h"
+ #include "CSettings.h"
++#include "version.h"
+ 
+ #include <QtGui>
+ #include <QtNetwork>
+@@ -596,7 +597,7 @@
+         }
+ 
+         QNetworkRequest request;
+-        request.setRawHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 
8.0; Windows NT 6.1)");
++        request.setRawHeader("User-Agent", "QLandkarteGT/" VER_STR);
+         request.setUrl(req.url);
+         req.reply = accessManager->get(request);
+ 
+--- a/src/CMapDB.cpp
++++ b/src/CMapDB.cpp
+@@ -178,7 +178,7 @@
+         }
+     }
+ 
+-    maps = 
cfg.value("maps/visibleMaps","http://tile.openstreetmap.org/%1/%2/%3.png";).toString().split("|",QString::SkipEmptyParts);
++    maps = 
cfg.value("maps/visibleMaps","http://a.tile.openstreetmap.org/%1/%2/%3.png";).toString().split("|",QString::SkipEmptyParts);
+     cfg.setValue("maps/visibleMaps","");
+     cfg.sync();
+ 
diff --git a/debian/patches/series b/debian/patches/series
index 0293d05..8f222f6 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
 01-no-updates-check.patch
-02-set_user_agent.patch
+02-restore_mapnik_and_user_agent.patch
+03-set_user_agent.patch

Attachment: signature.asc
Description: Digital signature

Reply via email to