debian/0000775000000000000000000000000012272246624007177 5ustar debian/copyright0000664000000000000000000001630712272244524011136 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: MoNav Files: * Copyright: © 2010, Christian Vetter License: GPL-3+ Files: client/fullscreenexitbutton.h Copyright: © 2009, Nokia Corporation and/or its subsidiary(-ies) License: LGPL-2.1 + Nokia Qt LGPL Exception 1.1 Files: client/gpsdpositioninfosource.* Copyright: 2011 Till Harbaum License: public-domain this code is public domain, do what you want with it Files: client/json.cpp client/json.h Copyright: © 2010, Eeli Reilin © 2010, Mikko Ahonen License: Expat Files: client/logger.cpp client/logger.h Copyright: © 2010, Christoph Eckert License: GPL-3+ Files: debian/* Copyright: © 2010-2011, David Paleino License: GPL-3+ Files: images/oxygen/* Copyright: © 2007, David Vignoni © 2007, Johann Ollivier Lapeyre © 2007, Kenneth Wimer © 2007, Nuno Pinheiro © 2007, Riccardo Iaconelli © 2007, David Miller License: LGPL-3+ Files: images/world/* Copyright: none, Made with Natural Earth License: public-domain These images are derived from "Natural Earth" and placed in public domain Files: plugins/osmrenderer/agg2/* Copyright: © 2002-2006, Maxim Shemanarev License: GPL-2+ Files: routingdaemon/qtservice-2.6_1-opensource/* Copyright: © 2009, Nokia Corporation and/or its subsidiary(-ies) License: LGPL-2.1 + Nokia Qt LGPL Exception 1.1 or GPL-3+ Files: utils/lzma/* Copyright: 1999-2011 Igor Pavlov License: public-domain As expressed in the headers of the files. License: LGPL-2.1 + Nokia Qt LGPL Exception 1.1 This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; version 2.1 of the License. . This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. . You should have received a copy of the GNU Lesser General Public License along with this program. If not, see Exception: As an additional permission to the GNU Lesser General Public License version 2.1, the object code form of a "work that uses the Library" may incorporate material from a header file that is part of the Library. You may distribute such object code under terms of your choice, provided that: . (i) the header files of the Library have not been modified; and (ii) the incorporated material is limited to numerical parameters, data structure layouts, accessors, macros, inline functions and templates; and (iii) you comply with the terms of Section 6 of the GNU Lesser General Public License version 2.1. . Moreover, you may apply this exception to a modified version of the Library, provided that such modification does not involve copying material from the Library into the modified Library's header files unless such material is limited to (i) numerical parameters; (ii) data structure layouts; (iii) accessors; and (iv) small macros, templates and inline functions of five lines or less in length. . . Furthermore, you are not required to apply this additional permission to a modified version of the Library. X-Comment: on Debian systems, the complete text of the GNU Lesser General Public License version 2.1 can be found in "/usr/share/common-licenses/LGPL-2.1". . The exception was taken from . License: GPL-3+ This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. . This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program. If not, see X-Comment: on Debian systems, the complete text of the GNU General Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". License: GPL-2+ This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. . This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program. If not, see X-Comment: on Debian systems, the complete text of the GNU General Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". License: LGPL-3+ This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. . This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. . You should have received a copy of the GNU Lesser General Public License along with this library. If not, see . X-Comment: on Debian systems, the complete text of the GNU Lesser General Public License version 3 can be found in "/usr/share/common-licenses/LGPL-3". License: Expat Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. debian/changelog0000664000000000000000000000606212272246606011055 0ustar monav (0.3-8build1) trusty; urgency=medium * No-change rebuild against libprotobuf8 -- Steve Langasek Wed, 29 Jan 2014 18:50:40 +0000 monav (0.3-8) unstable; urgency=low [ David Paleino ] * Make debian/copyright conformant to copyright-1.0 format * Make "monav" meta-package arch:all * Added debian/watch file [ Jérémy Lal ] * Port to mapnik 2.2, tighten build-dependency on libmapnik-dev. * Canonicalize Vcs fields * Build using hardening flags -- Jérémy Lal Thu, 29 Aug 2013 11:22:07 +0200 monav (0.3-6) unstable; urgency=low * Port code to Mapnik2 (Closes: #646452) -- David Paleino Tue, 25 Oct 2011 23:24:39 +0200 monav (0.3-5) unstable; urgency=low * Backport fix to avoid freezing when GPSd is not available, thanks to Timo Juhani Lindfors (Closes: #632650) * Fix Vcs-* fields to point to pkg-osm -- David Paleino Thu, 01 Sep 2011 08:16:02 +0200 monav (0.3-4) unstable; urgency=low * Drop -march=native from the compilation (Closes: #626671) * Backported GPSd interface implementation from upstream's bugtracker (06-implement_gpsd_interface.patch) -- David Paleino Wed, 22 Jun 2011 21:29:52 +0200 monav (0.3-3) unstable; urgency=low * Compile in release mode, just add debugging symbols in the process (for future -dbg packages) * Bump debhelper compatibility to 8 -- David Paleino Sat, 30 Apr 2011 16:26:36 +0200 monav (0.3-2) unstable; urgency=low * Fix 03-dont_embed_resources.patch: it was using an old slot name. * Dropped 01-fix_build_issues.patch: rather, fix the build system by passing correct parameters and fixing the build order. -- David Paleino Tue, 26 Apr 2011 12:39:02 +0200 monav (0.3-1) unstable; urgency=low * New upstream version * Patches refreshed * Standards-Version bump to 3.9.2, no changes needed * Added missing B-D on protobuf-compiler -- David Paleino Sat, 23 Apr 2011 19:43:24 +0200 monav (0.2+svn450-1) unstable; urgency=low * Uploading to unstable * New upstream snapshot * Refresh information in debian/copyright * Patches refreshed, 03-fix_source_typos.patch removed (merged upstream) * Fix various FTBFS issues (01-fix_build_issues.patch) * Also build monav-preprocessor-gui and monav-packager * Upstream now uses sane binary names, drop the hackery in debian/rules, and install proper files in debian/*.install * Make new monav-data binary package: split images into an arch-independent package, instead of embedding them into a Qt Resource file (03-dont_embed_resources.patch and other files) * Fix some source code typos (04-fix_typos.patch) * Don't install the extra license file for Oxygen icons; rather, list them in debian/copyright -- David Paleino Mon, 14 Mar 2011 13:17:18 +0100 monav (0.2+svn405-1) experimental; urgency=low * Initial release (Closes: #594874) -- David Paleino Tue, 11 Jan 2011 19:20:42 +0100 debian/compat0000664000000000000000000000000212272244524010372 0ustar 8 debian/watch0000664000000000000000000000010612272244524010222 0ustar version=3 http://googlecode.debian.net/p/monav/monav-(\d+.*)\.tar\.gz debian/monav-routing-daemon.install0000664000000000000000000000003312272244524014626 0ustar bin/monav-daemon /usr/bin/ debian/docs0000664000000000000000000000000012272244524010035 0ustar debian/source/0000775000000000000000000000000012272246613010475 5ustar debian/source/format0000664000000000000000000000001412272244524011702 0ustar 3.0 (quilt) debian/rules0000775000000000000000000000423212272244524010255 0ustar #!/usr/bin/make -f # -*- makefile -*- # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 # This has to be exported to make some magic below work. export DH_OPTIONS CURVER := $(shell dpkg-parsechangelog | grep ^Version | cut -d\ -f2 | cut -d- -f1) ifeq (,$(findstring svn,$(CURVER))) SVNREPO := https://monav.googlecode.com/svn/tags/release-$(CURVER) else REVISION := $(shell echo $(CURVER) | awk -F'svn' '{print $$2}') SVNREPO := https://monav.googlecode.com/svn/trunk/ endif cxxflags := $(shell dpkg-buildflags --get CFLAGS) $(shell dpkg-buildflags --get CPPFLAGS) ldflags := $(shell dpkg-buildflags --get LDFLAGS) configure: qmake QMAKE_CXXFLAGS_RELEASE+="$(cxxflags)" QMAKE_LFLAGS_RELEASE+="$(ldflags)" monavclient.pro -o Makefile.client qmake QMAKE_CXXFLAGS_RELEASE+="$(cxxflags)" QMAKE_LFLAGS_RELEASE+="$(ldflags)" CONFIG+=nogui monavpreprocessor.pro -o Makefile.preprocessor qmake QMAKE_CXXFLAGS_RELEASE+="$(cxxflags)" QMAKE_LFLAGS_RELEASE+="$(ldflags)" monavpreprocessor-gui.pro -o Makefile.preprocessor-gui qmake QMAKE_CXXFLAGS_RELEASE+="$(cxxflags)" QMAKE_LFLAGS_RELEASE+="$(ldflags)" CONFIG+=nogui monavroutingdaemon.pro -o Makefile.routingdaemon qmake QMAKE_CXXFLAGS_RELEASE+="$(cxxflags)" QMAKE_LFLAGS_RELEASE+="$(ldflags)" CONFIG+=nogui tools/monav-packager/monav-packager.pro -o Makefile.monav-packager override_dh_auto_configure: configure override_dh_auto_build: # make non-GUI things for i in preprocessor routingdaemon monav-packager; do \ $(MAKE) -f Makefile.$$i ; \ $(MAKE) -f Makefile.$$i clean ; \ done # make GUI things for i in client preprocessor-gui; do \ $(MAKE) -f Makefile.$$i ; \ done override_dh_auto_clean: configure for i in client preprocessor preprocessor-gui routingdaemon monav-packager; do \ $(MAKE) -f Makefile.$$i distclean; \ done -rm -rf bin/ override_dh_install: dh_install -find $(CURDIR)/debian/ -name "COPYING" -delete %: dh $@ get-orig-source: ifeq (,$(findstring svn,$(CURVER))) svn export $(SVNREPO) monav-$(CURVER) else svn export $(SVNREPO) -r $(REVISION) monav-$(CURVER) endif tar cf monav_$(CURVER).orig.tar monav-$(CURVER)/ gzip -9 monav_$(CURVER).orig.tar rm -rf monav-$(CURVER)/ debian/monav-client.install0000664000000000000000000000002412272244524013154 0ustar bin/monav /usr/bin/ debian/control0000664000000000000000000001336512272244524010607 0ustar Source: monav Section: utils Priority: optional Maintainer: Debian OpenStreetMap Team Uploaders: David Paleino , Jérémy Lal Build-Depends: debhelper (>= 8~) , qt4-qmake (>= 4:4.7) , libqt4-sql-sqlite (>= 4:4.7) , qtmobility-dev (>= 1.1) , libqt4-dev (>= 4:4.7) , libqt4-sql (>= 4:4.7) , libboost-dev , libicu-dev , libbz2-dev , libmapnik-dev (>= 2.2.0~) , libxml2-dev , libprotobuf-dev , protobuf-compiler Standards-Version: 3.9.2 Homepage: http://code.google.com/p/monav Vcs-Git: git://anonscm.debian.org/pkg-osm/monav.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-osm/monav.git Package: monav Architecture: all Depends: ${misc:Depends} , monav-client (>= ${binary:Version}) , monav-preprocessor (>= ${binary:Version}) , monav-routing-daemon (>= ${binary:Version}) Description: metapackage for MoNav MoNav is a Desktop / Mobile application that offers state-of-the-art fast and exact routing with OpenStreetMap Data. . In contrast to most commercial and open-source routing applications, MoNav offers exact routing without heuristic assumptions and with very little computational work. Its routing core is based on Contraction Hierarchies. . The application is divided into two parts: The MoNav Preprocessor transforms the raw OpenStreetMap data into file formats usable by the MoNav Client application. The preprocessing is often time consuming and requires larger amounts of memory. The client application on the other hand has very few requirements and can even run on mobile devices. . This is a metapackage installing both the client and the preprocessing applications. Package: monav-client Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} , monav-data (= ${source:Version}) Recommends: monav-preprocessor Description: fast navigation system featuring exact routing - client MoNav is a Desktop / Mobile application that offers state-of-the-art fast and exact routing with OpenStreetMap Data. . In contrast to most commercial and open-source routing applications, MoNav offers exact routing without heuristic assumptions and with very little computational work. Its routing core is based on Contraction Hierarchies. . The application is divided into two parts: The MoNav Preprocessor transforms the raw OpenStreetMap data into file formats usable by the MoNav Client application. The preprocessing is often time consuming and requires larger amounts of memory. The client application on the other hand has very few requirements and can even run on mobile devices. . Additionally a routing daemon is available to act as a background route server for other applications. . This package provides the client application. Package: monav-preprocessor Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} , monav-data (= ${source:Version}) Description: fast navigation system featuring exact routing - preprocessor MoNav is a Desktop / Mobile application that offers state-of-the-art fast and exact routing with OpenStreetMap Data. . In contrast to most commercial and open-source routing applications, MoNav offers exact routing without heuristic assumptions and with very little computational work. Its routing core is based on Contraction Hierarchies. . The application is divided into two parts: The MoNav Preprocessor transforms the raw OpenStreetMap data into file formats usable by the MoNav Client application. The preprocessing is often time consuming and requires larger amounts of memory. The client application on the other hand has very few requirements and can even run on mobile devices. . Additionally a routing daemon is available to act as a background route server for other applications. . This package provides the preprocessing application. Package: monav-routing-daemon Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: fast navigation system featuring exact routing - routing daemon MoNav is a Desktop / Mobile application that offers state-of-the-art fast and exact routing with OpenStreetMap Data. . In contrast to most commercial and open-source routing applications, MoNav offers exact routing without heuristic assumptions and with very little computational work. Its routing core is based on Contraction Hierarchies. . The application is divided into two parts: The MoNav Preprocessor transforms the raw OpenStreetMap data into file formats usable by the MoNav Client application. The preprocessing is often time consuming and requires larger amounts of memory. The client application on the other hand has very few requirements and can even run on mobile devices. . Additionally a routing daemon is available to act as a background route server for other applications. . This package provides the routing daemon. Package: monav-data Architecture: all Depends: ${misc:Depends} Description: fast navigation system featuring exact routing - data files MoNav is a Desktop / Mobile application that offers state-of-the-art fast and exact routing with OpenStreetMap Data. . In contrast to most commercial and open-source routing applications, MoNav offers exact routing without heuristic assumptions and with very little computational work. Its routing core is based on Contraction Hierarchies. . The application is divided into two parts: The MoNav Preprocessor transforms the raw OpenStreetMap data into file formats usable by the MoNav Client application. The preprocessing is often time consuming and requires larger amounts of memory. The client application on the other hand has very few requirements and can even run on mobile devices. . Additionally a routing daemon is available to act as a background route server for other applications. . This package contains architecture-independent data files. debian/patches/0000775000000000000000000000000012272246613010624 5ustar debian/patches/05-drop_marchnative.patch0000664000000000000000000001210512272244524015412 0ustar From: David Paleino Subject: drop -march=native, since it's not supported everywhere in Debianù Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=626671 Origin: vendor Forwarded: not-needed --- plugins/contractionhierarchies/contractionhierarchies.pro | 1 - plugins/gpsgrid/gpsgrid.pro | 1 - plugins/osmimporter/osmimporter.pro | 2 +- plugins/osmrenderer/mapnikrenderer.pro | 1 - plugins/osmrenderer/osmrenderer.pro | 1 - plugins/osmrenderer/qtilerenderer.pro | 1 - plugins/testimporter/testimporter.pro | 2 +- plugins/unicodetournamenttrie/unicodetournamenttrie.pro | 2 +- preprocessor/preprocessor-gui.pro | 1 - preprocessor/preprocessor.pro | 1 - routingdaemon/daemontest.pro | 1 - routingdaemon/routingdaemon.pro | 1 - 12 files changed, 3 insertions(+), 12 deletions(-) --- monav.orig/plugins/contractionhierarchies/contractionhierarchies.pro +++ monav/plugins/contractionhierarchies/contractionhierarchies.pro @@ -7,7 +7,6 @@ DESTDIR = ../../bin/plugins_preprocessor unix { QMAKE_CXXFLAGS_RELEASE -= -O2 QMAKE_CXXFLAGS_RELEASE += -O3 \ - -march=native \ -Wno-unused-function \ -fopenmp QMAKE_CXXFLAGS_DEBUG += -Wno-unused-function \ --- monav.orig/plugins/gpsgrid/gpsgrid.pro +++ monav/plugins/gpsgrid/gpsgrid.pro @@ -28,7 +28,6 @@ HEADERS += ../../interfaces/ipreprocesso unix { QMAKE_CXXFLAGS_RELEASE -= -O2 QMAKE_CXXFLAGS_RELEASE += -O3 \ - -march=native \ -Wno-unused-function QMAKE_CXXFLAGS_DEBUG += -Wno-unused-function } --- monav.orig/plugins/osmimporter/osmimporter.pro +++ monav/plugins/osmimporter/osmimporter.pro @@ -31,7 +31,7 @@ SOURCES += osmimporter.cpp \ DESTDIR = ../../bin/plugins_preprocessor unix { QMAKE_CXXFLAGS_RELEASE -= -O2 - QMAKE_CXXFLAGS_RELEASE += -O3 -march=native -Wno-unused-function + QMAKE_CXXFLAGS_RELEASE += -O3 -Wno-unused-function QMAKE_CXXFLAGS_DEBUG += -Wno-unused-function } --- monav.orig/plugins/osmrenderer/mapnikrenderer.pro +++ monav/plugins/osmrenderer/mapnikrenderer.pro @@ -16,7 +16,6 @@ DESTDIR = ../../bin/plugins_preprocessor unix { QMAKE_CXXFLAGS_RELEASE -= -O2 QMAKE_CXXFLAGS_RELEASE += -O3 \ - -march=native \ -Wno-unused-function \ -fopenmp QMAKE_CXXFLAGS_DEBUG += -Wno-unused-function \ --- monav.orig/plugins/osmrenderer/osmrenderer.pro +++ monav/plugins/osmrenderer/osmrenderer.pro @@ -13,7 +13,6 @@ DESTDIR = ../../bin/plugins_preprocessor unix { QMAKE_CXXFLAGS_RELEASE -= -O2 QMAKE_CXXFLAGS_RELEASE += -O3 \ - -march=native \ -Wno-unused-function QMAKE_CXXFLAGS_DEBUG += -Wno-unused-function } --- monav.orig/plugins/osmrenderer/qtilerenderer.pro +++ monav/plugins/osmrenderer/qtilerenderer.pro @@ -21,7 +21,6 @@ DESTDIR = ../../bin/plugins_preprocessor unix { QMAKE_CXXFLAGS_RELEASE -= -O2 QMAKE_CXXFLAGS_RELEASE += -O3 \ - -march=native \ -Wno-unused-function QMAKE_CXXFLAGS_DEBUG += -Wno-unused-function } --- monav.orig/plugins/testimporter/testimporter.pro +++ monav/plugins/testimporter/testimporter.pro @@ -10,7 +10,7 @@ SOURCES += \ DESTDIR = ../../bin/plugins_preprocessor unix { QMAKE_CXXFLAGS_RELEASE -= -O2 - QMAKE_CXXFLAGS_RELEASE += -O3 -march=native -Wno-unused-function + QMAKE_CXXFLAGS_RELEASE += -O3 -Wno-unused-function QMAKE_CXXFLAGS_DEBUG += -Wno-unused-function } --- monav.orig/plugins/unicodetournamenttrie/unicodetournamenttrie.pro +++ monav/plugins/unicodetournamenttrie/unicodetournamenttrie.pro @@ -26,7 +26,7 @@ HEADERS += unicodetournamenttrie.h \ unix { QMAKE_CXXFLAGS_RELEASE -= -O2 - QMAKE_CXXFLAGS_RELEASE += -O3 -march=native -Wno-unused-function + QMAKE_CXXFLAGS_RELEASE += -O3 -Wno-unused-function QMAKE_CXXFLAGS_DEBUG += -Wno-unused-function } --- monav.orig/preprocessor/preprocessor-gui.pro +++ monav/preprocessor/preprocessor-gui.pro @@ -45,7 +45,6 @@ FORMS += preprocessingwindow.ui \ unix { QMAKE_CXXFLAGS_RELEASE -= -O2 QMAKE_CXXFLAGS_RELEASE += -O3 \ - -march=native \ -Wno-unused-function \ -fopenmp QMAKE_CXXFLAGS_DEBUG += -Wno-unused-function \ --- monav.orig/preprocessor/preprocessor.pro +++ monav/preprocessor/preprocessor.pro @@ -39,7 +39,6 @@ TARGET = monav-preprocessor unix { QMAKE_CXXFLAGS_RELEASE -= -O2 QMAKE_CXXFLAGS_RELEASE += -O3 \ - -march=native \ -Wno-unused-function \ -fopenmp QMAKE_CXXFLAGS_DEBUG += -Wno-unused-function \ --- monav.orig/routingdaemon/daemontest.pro +++ monav/routingdaemon/daemontest.pro @@ -9,7 +9,6 @@ QT +=network unix { QMAKE_CXXFLAGS_RELEASE -= -O2 QMAKE_CXXFLAGS_RELEASE += -O3 \ - -march=native \ -Wno-unused-function QMAKE_CXXFLAGS_DEBUG += -Wno-unused-function } --- monav.orig/routingdaemon/routingdaemon.pro +++ monav/routingdaemon/routingdaemon.pro @@ -12,7 +12,6 @@ QT +=network unix { QMAKE_CXXFLAGS_RELEASE -= -O2 QMAKE_CXXFLAGS_RELEASE += -O3 \ - -march=native \ -Wno-unused-function QMAKE_CXXFLAGS_DEBUG += -Wno-unused-function } debian/patches/07-port_to_mapnik2.patch0000664000000000000000000000747312272244524015212 0ustar Author: David Paleino Author: Jérémy Lal Description: port code to libmapnik2.2 Forwarded: no Last-Update: 2013-08-28 --- plugins/osmrenderer/mapnikrenderer.cpp | 10 +++++----- plugins/osmrenderer/mapnikrenderer.pro | 2 +- preprocessor/preprocessor-gui.pro | 2 +- preprocessor/preprocessor.pro | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) --- a/plugins/osmrenderer/mapnikrenderer.cpp +++ b/plugins/osmrenderer/mapnikrenderer.cpp @@ -28,6 +28,9 @@ #include #include #include +#include +#include +#include #include #include #include @@ -147,10 +150,9 @@ Timer time; - mapnik::datasource_cache::instance()->register_datasources( m_settings.plugins.toAscii().constData() ); + mapnik::datasource_cache::instance().register_datasources( m_settings.plugins.toAscii().constData() ); QDir fonts( m_settings.fonts ); - mapnik::projection projection; - projection = mapnik::projection( "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs +over" ); + mapnik::projection projection = mapnik::projection( "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs +over" ); mapnik::freetype_engine::register_font( fonts.filePath( "DejaVuSans.ttf" ).toAscii().constData() ); mapnik::freetype_engine::register_font( fonts.filePath( "DejaVuSans-Bold.ttf" ).toAscii().constData() ); mapnik::freetype_engine::register_font( fonts.filePath( "DejaVuSans-Oblique.ttf" ).toAscii().constData() ); @@ -264,7 +266,7 @@ const int metaTileSize = m_settings.metaTileSize * m_settings.tileSize + 2 * m_settings.margin; mapnik::Map map; - mapnik::Image32 image( metaTileSize, metaTileSize ); + mapnik::image_32 image( metaTileSize, metaTileSize ); QTemporaryFile tempOut; QTemporaryFile tempIn; mapnik::load_map( map, m_settings.theme.toLocal8Bit().constData() ); @@ -288,9 +290,9 @@ GPSCoordinate drawBottomRightGPS = drawBottomRight.ToGPSCoordinate(); projection.forward( drawTopLeftGPS.longitude, drawBottomRightGPS.latitude ); projection.forward( drawBottomRightGPS.longitude, drawTopLeftGPS.latitude ); - mapnik::Envelope boundingBox( drawTopLeftGPS.longitude, drawTopLeftGPS.latitude, drawBottomRightGPS.longitude, drawBottomRightGPS.latitude ); - map.zoomToBox( boundingBox ); - mapnik::agg_renderer renderer( map, image ); + mapnik::box2d boundingBox( drawTopLeftGPS.longitude, drawTopLeftGPS.latitude, drawBottomRightGPS.longitude, drawBottomRightGPS.latitude ); + map.zoom_to_box( boundingBox ); + mapnik::agg_renderer renderer( map, image ); renderer.apply(); std::string data; @@ -299,7 +301,7 @@ for ( int subX = 0; subX < metaTileSizeX; ++subX ) { for ( int subY = 0; subY < metaTileSizeY; ++subY ) { int indexNumber = ( y + subY - info.minY ) * ( info.maxX - info.minX ) + x + subX - info.minX; - mapnik::image_view view = image.get_view( subX * m_settings.tileSize + m_settings.margin, subY * m_settings.tileSize + m_settings.margin, m_settings.tileSize, m_settings.tileSize ); + mapnik::image_view view = image.get_view( subX * m_settings.tileSize + m_settings.margin, subY * m_settings.tileSize + m_settings.margin, m_settings.tileSize, m_settings.tileSize ); std::string result; if ( !m_settings.deleteTiles || info.index[( x + subX - info.minX ) + ( y + subY - info.minY ) * ( info.maxX - info.minX )].size == 1 ) { if ( m_settings.reduceColors ) debian/patches/06-implement_gpsd_interface.patch0000664000000000000000000005033612272244524017125 0ustar From: bedlore@gmail.com Subject: implement GPSd interface in MoNav Origin: upstream, http://code.google.com/p/monav/issues/detail?id=39 and fixes from http://code.google.com/p/monav/source/detail?r=3ec821f2cdf0 Forwarded: not-needed --- client/client.pro | 4 client/gpsdpositioninfosource.cpp | 188 ++++++++++++++++ client/gpsdpositioninfosource.h | 47 ++++ client/json.cpp | 433 ++++++++++++++++++++++++++++++++++++++ client/json.h | 161 ++++++++++++++ client/routinglogic.cpp | 4 6 files changed, 837 insertions(+) --- monav.orig/client/client.pro +++ monav/client/client.pro @@ -27,6 +27,8 @@ SOURCES += main.cpp \ placechooser.cpp \ globalsettings.cpp \ streetchooser.cpp \ + gpsdpositioninfosource.cpp \ + json.cpp \ worldmapchooser.cpp HEADERS += \ @@ -57,6 +59,8 @@ HEADERS += \ placechooser.h \ globalsettings.h \ streetchooser.h \ + json.h \ + gpsdpositioninfosource.h \ worldmapchooser.h FORMS += \ --- monav.orig/client/routinglogic.cpp +++ monav/client/routinglogic.cpp @@ -22,6 +22,7 @@ along with MoNav. If not, see #include @@ -66,6 +67,9 @@ RoutingLogic::RoutingLogic() : #ifndef NOQTMOBILE d->gpsSource = QGeoPositionInfoSource::createDefaultSource( this ); + if ( d->gpsSource == NULL ) + d->gpsSource = GpsdPositionInfoSource::create( this ); + if ( d->gpsSource == NULL ) { qDebug() << "No GPS Sensor found! GPS Updates are not available"; } else { --- /dev/null +++ monav/client/gpsdpositioninfosource.cpp @@ -0,0 +1,188 @@ +/**************************************************************************** +** GpsdPositionInfoSource +** (c) 2011 by Till Harbaum +** This code is public domain, do what you want with it +****************************************************************************/ + +// Based infos from: +// http://gpsd.berlios.de/client-howto.html +// http://doc.qt.nokia.com/qtmobility-1.0-tp/qgeopositioninfosource.html + +#include +#include +#include +#include + +#include "gpsdpositioninfosource.h" +#include "json.h" + +#ifndef NAN +#define NAN (0.0/0.0) +#endif + +qreal GpsdPositionInfoSource::getReal(const QMap &map, const QString &name) { + // make sure that key exists + if(!map.contains(name)) return NAN; + + QVariant variant = map.value(name); + + // make sure value is variant of correkt type + if(QVariant::String != variant.type()) + return NAN; + + // extract string and convert to float + return variant.toString().toFloat(); +} + +void GpsdPositionInfoSource::setAttribute(QGeoPositionInfo &info, + QGeoPositionInfo::Attribute attr, const QMap &map, const QString &name) { + + qreal value = getReal(map, name); + if(!isnan(value)) info.setAttribute(attr, value); +} + +void GpsdPositionInfoSource::parse(const QString &str) { + bool ok; + + // feed reply into json parser + + // json is a QString containing the data to convert + QVariant result = Json::parse(str, ok); + if(!ok) { + qDebug() << __FUNCTION__ << "Json deconding failed."; + return; + } + + // we expect a qvariantmap + if(QVariant::Map != result.type()) { + qDebug() << __FUNCTION__ << "Unexpected result type:" << result.type(); + return; + } + + QMap map = result.toMap(); + + // extract reply class + QString classStr = map.value("class").toString(); + + if(!classStr.compare("VERSION")) { + qDebug() << "Connected to GPSD:"; + qDebug() << "Release:" << map.value("release").toString(); + qDebug() << "Revision:" << map.value("rev").toString(); + qDebug() << "Protocol version:" << + map.value("proto_major").toString() + "." + + map.value("proto_minor").toString(); + + } else if(!classStr.compare("TPV")) { + // TPV is the most interesting string for us + m_lastKnown = QGeoPositionInfo(); + + int mode = map.value("mode").toInt(); + if(mode > 0) { + QGeoCoordinate coo(getReal(map, "lat"), getReal(map, "lon")); + if(mode == 3) + coo.setAltitude(getReal(map, "alt")); + + m_lastKnown.setCoordinate(coo); + } + + setAttribute(m_lastKnown, QGeoPositionInfo::Direction, map, "track"); + setAttribute(m_lastKnown, QGeoPositionInfo::VerticalSpeed, map, "climb"); + setAttribute(m_lastKnown, QGeoPositionInfo::GroundSpeed, map, "speed"); + setAttribute(m_lastKnown, QGeoPositionInfo::VerticalAccuracy, map, "epv"); + + // horizontal error in lat or long + qreal epx = getReal(map, "epx"); + qreal epy = getReal(map, "epy"); + + if(!isnan(epx) && !isnan(epy)) + m_lastKnown.setAttribute(QGeoPositionInfo::HorizontalAccuracy, epx>epy?epx:epy); + + QDateTime time; + time.setTime_t(getReal(map, "time")); + m_lastKnown.setTimestamp(time); + + emit positionUpdated( m_lastKnown ); + } +} + +void GpsdPositionInfoSource::readData() { + + // split reply into seperate strings at newline + QStringList data = QString::fromUtf8(m_tcpSocket->readAll()).split('\n'); + + for(int i=0;ierrorString(); +} + +GpsdPositionInfoSource::GpsdPositionInfoSource(QObject *parent) + : QGeoPositionInfoSource(parent) { + qDebug() << __FUNCTION__; + + // connect to gpsd + m_tcpSocket = new QTcpSocket(this); + + connect(m_tcpSocket, SIGNAL(readyRead()), this, SLOT(readData())); + connect(m_tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)), + this, SLOT(displayError(QAbstractSocket::SocketError))); + + m_tcpSocket->connectToHost("localhost", 2947); +} + +GpsdPositionInfoSource::~GpsdPositionInfoSource() { + qDebug() << __FUNCTION__; + + m_tcpSocket->close(); +} + +void GpsdPositionInfoSource::setUpdateInterval(int msec) { + int interval = msec; + if (interval != 0) + interval = qMax(msec, minimumUpdateInterval()); + QGeoPositionInfoSource::setUpdateInterval(interval); +} + +void GpsdPositionInfoSource::startUpdates() { + // request info from gpsd + QString request = "?WATCH={\"enable\":true,\"json\":true}"; + m_tcpSocket->write(request.toUtf8()); +} + +void GpsdPositionInfoSource::stopUpdates() { + // ask gpsd to stop sending data + QString request = "?WATCH={\"enable\":false}"; + m_tcpSocket->write(request.toUtf8()); +} + +void GpsdPositionInfoSource::requestUpdate(int) { + emit positionUpdated( m_lastKnown ); +} + +QGeoPositionInfo GpsdPositionInfoSource::lastKnownPosition(bool) const { + // the bool value does not matter since we only use satellite positioning + return m_lastKnown; +} + +QGeoPositionInfoSource::PositioningMethods GpsdPositionInfoSource::supportedPositioningMethods() const { + return SatellitePositioningMethods; +} + +int GpsdPositionInfoSource::minimumUpdateInterval() const { + return 1000; +} + +GpsdPositionInfoSource * GpsdPositionInfoSource::create(QObject *parent) +{ + GpsdPositionInfoSource* source = new GpsdPositionInfoSource( parent ); + if ( !source->m_tcpSocket->waitForConnected( 100 ) ) + { + if ( !source->m_tcpSocket->waitForConnected( 100 ) ) + source->deleteLater(); + return NULL; + } + return source; +} --- /dev/null +++ monav/client/gpsdpositioninfosource.h @@ -0,0 +1,47 @@ +/**************************************************************************** +** GpsdPositionInfoSource +** (c) 2011 by Till Harbaum +** This code is public domain, do what you want with it +****************************************************************************/ + +#ifndef GPSDPOSITIONINFOSOURCE_H +#define GPSDPOSITIONINFOSOURCE_H + +#include +#include +#include + +QTM_USE_NAMESPACE + +class GpsdPositionInfoSource : public QGeoPositionInfoSource { + Q_OBJECT + + public: + static GpsdPositionInfoSource* create(QObject *parent = NULL); + ~GpsdPositionInfoSource(); + + void setUpdateInterval(int msec); + + QGeoPositionInfo lastKnownPosition(bool fromSatellitePositioningMethodsOnly = false) const; + PositioningMethods supportedPositioningMethods() const; + int minimumUpdateInterval() const; + + public slots: + void startUpdates(); + void stopUpdates(); + void requestUpdate(int timeout = 0); + + private slots: + void readData(); + void displayError(QAbstractSocket::SocketError); + + private: + GpsdPositionInfoSource(QObject *parent = 0); + qreal getReal(const QMap &, const QString &); + void setAttribute(QGeoPositionInfo &, QGeoPositionInfo::Attribute, const QMap &, const QString &); + void parse(const QString &); + QTcpSocket *m_tcpSocket; + QGeoPositionInfo m_lastKnown; +}; + +#endif --- /dev/null +++ monav/client/json.cpp @@ -0,0 +1,433 @@ + +/** + * \file json.cpp + * + * \author Eeli Reilin , + * Mikko Ahonen + * \version 0.1 + * \date 8/25/2010 + * + * licensed under the MIT/X11 license + * (http://nilier.blogspot.com/2010/08/json-parser-class-for-qt.html) + * + */ + +#include + +#include "json.h" + +/** + * parse + */ +QVariant Json::parse(const QString &json) +{ + bool success = true; + return Json::parse(json, success); +} + +/** + * parse + */ +QVariant Json::parse(const QString &json, bool &success) +{ + success = true; + + //Return an empty QVariant if the JSON data is either null or empty + if(!json.isNull() || !json.isEmpty()) + { + QString data = json; + //We'll start from index 0 + int index = 0; + + //Parse the first value + QVariant value = Json::parseValue(data, index, success); + + //Return the parsed value + return value; + } + else + { + //Return the empty QVariant + return QVariant(); + } +} + +/** + * parseValue + */ +QVariant Json::parseValue(const QString &json, int &index, bool &success) +{ + //Determine what kind of data we should parse by + //checking out the upcoming token + switch(Json::lookAhead(json, index)) + { + case JsonTokenString: + return Json::parseString(json, index, success); + case JsonTokenNumber: + return Json::parseNumber(json, index); + case JsonTokenCurlyOpen: + return Json::parseObject(json, index, success); + case JsonTokenSquaredOpen: + return Json::parseArray(json, index, success); + case JsonTokenTrue: + Json::nextToken(json, index); + return QVariant(true); + case JsonTokenFalse: + Json::nextToken(json, index); + return QVariant(false); + case JsonTokenNull: + Json::nextToken(json, index); + return QVariant(); + case JsonTokenNone: + break; + } + + //If there were no tokens, flag the failure and return an empty QVariant + success = false; + return QVariant(); +} + +/** + * parseObject + */ +QVariant Json::parseObject(const QString &json, int &index, bool &success) +{ + QVariantMap map; + int token; + + //Get rid of the whitespace and increment index + Json::nextToken(json, index); + + //Loop through all of the key/value pairs of the object + bool done = false; + while(!done) + { + //Get the upcoming token + token = Json::lookAhead(json, index); + + if(token == JsonTokenNone) + { + success = false; + return QVariantMap(); + } + else if(token == JsonTokenComma) + { + Json::nextToken(json, index); + } + else if(token == JsonTokenCurlyClose) + { + Json::nextToken(json, index); + return map; + } + else + { + //Parse the key/value pair's name + QString name = Json::parseString(json, index, success).toString(); + + if(!success) + { + return QVariantMap(); + } + + //Get the next token + token = Json::nextToken(json, index); + + //If the next token is not a colon, flag the failure + //return an empty QVariant + if(token != JsonTokenColon) + { + success = false; + return QVariant(QVariantMap()); + } + + //Parse the key/value pair's value + QVariant value = Json::parseValue(json, index, success); + + if(!success) + { + return QVariantMap(); + } + + //Assign the value to the key in the map + map[name] = value; + } + } + + //Return the map successfully + return QVariant(map); +} + +/** + * parseArray + */ +QVariant Json::parseArray(const QString &json, int &index, bool &success) +{ + QVariantList list; + + Json::nextToken(json, index); + + bool done = false; + while(!done) + { + int token = Json::lookAhead(json, index); + + if(token == JsonTokenNone) + { + success = false; + return QVariantList(); + } + else if(token == JsonTokenComma) + { + Json::nextToken(json, index); + } + else if(token == JsonTokenSquaredClose) + { + Json::nextToken(json, index); + break; + } + else + { + QVariant value = Json::parseValue(json, index, success); + + if(!success) + { + return QVariantList(); + } + + list.push_back(value); + } + } + + return QVariant(list); +} + +/** + * parseString + */ +QVariant Json::parseString(const QString &json, int &index, bool &success) +{ + QString s; + QChar c; + + Json::eatWhitespace(json, index); + + c = json[index++]; + + bool complete = false; + while(!complete) + { + if(index == json.size()) + { + break; + } + + c = json[index++]; + + if(c == '\"') + { + complete = true; + break; + } + else if(c == '\\') + { + if(index == json.size()) + { + break; + } + + c = json[index++]; + + if(c == '\"') + { + s.append('\"'); + } + else if(c == '\\') + { + s.append('\\'); + } + else if(c == '/') + { + s.append('/'); + } + else if(c == 'b') + { + s.append('\b'); + } + else if(c == 'f') + { + s.append('\f'); + } + else if(c == 'n') + { + s.append('\n'); + } + else if(c == 'r') + { + s.append('\r'); + } + else if(c == 't') + { + s.append('\t'); + } + else if(c == 'u') + { + int remainingLength = json.size() - index; + + if(remainingLength >= 4) + { + QString unicodeStr = json.mid(index, 4); + + int symbol = unicodeStr.toInt(0, 16); + + s.append(QChar(symbol)); + + index += 4; + } + else + { + break; + } + } + } + else + { + s.append(c); + } + } + + if(!complete) + { + success = false; + return QVariant(); + } + + return QVariant(s); +} + +/** + * parseNumber + */ +QVariant Json::parseNumber(const QString &json, int &index) +{ + Json::eatWhitespace(json, index); + + int lastIndex = Json::lastIndexOfNumber(json, index); + int charLength = (lastIndex - index) + 1; + QString numberStr; + + numberStr = json.mid(index, charLength); + + index = lastIndex + 1; + + return QVariant(numberStr); +} + +/** + * lastIndexOfNumber + */ +int Json::lastIndexOfNumber(const QString &json, int index) +{ + int lastIndex; + + for(lastIndex = index; lastIndex < json.size(); lastIndex++) + { + if(QString("0123456789+-.eE").indexOf(json[lastIndex]) == -1) + { + break; + } + } + + return lastIndex -1; +} + +/** + * eatWhitespace + */ +void Json::eatWhitespace(const QString &json, int &index) +{ + for(; index < json.size(); index++) + { + if(QString(" \t\n\r").indexOf(json[index]) == -1) + { + break; + } + } +} + +/** + * lookAhead + */ +int Json::lookAhead(const QString &json, int index) +{ + int saveIndex = index; + return Json::nextToken(json, saveIndex); +} + +/** + * nextToken + */ +int Json::nextToken(const QString &json, int &index) +{ + Json::eatWhitespace(json, index); + + if(index == json.size()) + { + return JsonTokenNone; + } + + QChar c = json[index]; + index++; + switch(c.toAscii()) + { + case '{': return JsonTokenCurlyOpen; + case '}': return JsonTokenCurlyClose; + case '[': return JsonTokenSquaredOpen; + case ']': return JsonTokenSquaredClose; + case ',': return JsonTokenComma; + case '"': return JsonTokenString; + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + case '-': return JsonTokenNumber; + case ':': return JsonTokenColon; + } + + index--; + + int remainingLength = json.size() - index; + + //True + if(remainingLength >= 4) + { + if (json[index] == 't' && json[index + 1] == 'r' && + json[index + 2] == 'u' && json[index + 3] == 'e') + { + index += 4; + return JsonTokenTrue; + } + } + + //False + if (remainingLength >= 5) + { + if (json[index] == 'f' && json[index + 1] == 'a' && + json[index + 2] == 'l' && json[index + 3] == 's' && + json[index + 4] == 'e') + { + index += 5; + return JsonTokenFalse; + } + } + + //Null + if (remainingLength >= 4) + { + if (json[index] == 'n' && json[index + 1] == 'u' && + json[index + 2] == 'l' && json[index + 3] == 'l') + { + index += 4; + return JsonTokenNull; + } + } + + return JsonTokenNone; +} --- /dev/null +++ monav/client/json.h @@ -0,0 +1,161 @@ +/** + * \file json.h + * + * \author Eeli Reilin , + * Mikko Ahonen + * \version 0.1 + * \date 8/25/2010 + * + * licensed under the MIT/X11 license + * (http://nilier.blogspot.com/2010/08/json-parser-class-for-qt.html) + * + */ + +#ifndef JSON_H +#define JSON_H + +#include +#include + +/** + * \enum JsonToken + */ +enum JsonToken +{ + JsonTokenNone = 0, + JsonTokenCurlyOpen = 1, + JsonTokenCurlyClose = 2, + JsonTokenSquaredOpen = 3, + JsonTokenSquaredClose = 4, + JsonTokenColon = 5, + JsonTokenComma = 6, + JsonTokenString = 7, + JsonTokenNumber = 8, + JsonTokenTrue = 9, + JsonTokenFalse = 10, + JsonTokenNull = 11 +}; + +/** + * \class Json + * \brief A JSON data parser + * + * Json parses a JSON data into a QVariant hierarchy. + */ +class Json +{ + public: + /** + * Parse a JSON string + * + * \param json The JSON data + */ + static QVariant parse(const QString &json); + + /** + * Parse a JSON string + * + * \param json The JSON data + * \param success The success of the parsing + */ + static QVariant parse(const QString &json, bool &success); + + private: + /** + * Parses a value starting from index + * + * \param json The JSON data + * \param index The start index + * \param success The success of the parse process + * + * \return QVariant The parsed value + */ + static QVariant parseValue(const QString &json, int &index, + bool &success); + + /** + * Parses an object starting from index + * + * \param json The JSON data + * \param index The start index + * \param success The success of the object parse + * + * \return QVariant The parsed object map + */ + static QVariant parseObject(const QString &json, int &index, + bool &success); + + /** + * Parses an array starting from index + * + * \param json The JSON data + * \param index The starting index + * \param success The success of the array parse + * + * \return QVariant The parsed variant array + */ + static QVariant parseArray(const QString &json, int &index, + bool &success); + + /** + * Parses a string starting from index + * + * \param json The JSON data + * \param index The starting index + * \param success The success of the string parse + * + * \return QVariant The parsed string + */ + static QVariant parseString(const QString &json, int &index, + bool &success); + + /** + * Parses a number starting from index + * + * \param json The JSON data + * \param index The starting index + * + * \return QVariant The parsed number + */ + static QVariant parseNumber(const QString &json, int &index); + + /** + * Get the last index of a number starting from index + * + * \param json The JSON data + * \param index The starting index + * + * \return The last index of the number + */ + static int lastIndexOfNumber(const QString &json, int index); + + /** + * Skip unwanted whitespace symbols starting from index + * + * \param json The JSON data + * \param index The start index + */ + static void eatWhitespace(const QString &json, int &index); + + /** + * Check what token lies ahead + * + * \param json The JSON data + * \param index The starting index + * + * \return int The upcoming token + */ + static int lookAhead(const QString &json, int index); + + /** + * Get the next JSON token + * + * \param json The JSON data + * \param index The starting index + * + * \return int The next JSON token + */ + static int nextToken(const QString &json, int &index); +}; + +#endif //JSON_H debian/patches/04-fix_typos.patch0000664000000000000000000000211312272244524014106 0ustar From: David Paleino Subject: fix typos in source code Origin: vendor Forwarded: no --- preprocessor/preprocessingwindow.ui | 2 +- utils/commandlineparser.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) --- monav.orig/preprocessor/preprocessingwindow.ui +++ monav/preprocessor/preprocessingwindow.ui @@ -555,7 +555,7 @@ - Adress Lookup Module + Address Lookup Module --- monav.orig/utils/commandlineparser.cpp +++ monav/utils/commandlineparser.cpp @@ -142,7 +142,7 @@ bool CommandLineParser::parse( bool igno return false; } if ( settings.size() > 1 ) { - qWarning() << "Ambigious command line option not available:" << args[i]; + qWarning() << "Ambiguous command line option not available:" << args[i]; return false; } debian/patches/02-toll-booth_routing.patch0000664000000000000000000000112412272244524015713 0ustar From: David Paleino Subject: permit routing via barrier=toll_booth nodes Forwarded: no --- --- plugins/osmimporter/osmimporter.cpp | 4 ++++ 1 file changed, 4 insertions(+) --- monav.orig/plugins/osmimporter/osmimporter.cpp +++ monav/plugins/osmimporter/osmimporter.cpp @@ -1301,6 +1301,10 @@ void OSMImporter::readNode( OSMImporter: } case NodeTags::Barrier: { + if ( value == "toll_booth" ) { + node->access = true; + break; + } if ( node->accessPriority == m_profile.accessList.size() ) node->access = false; break; debian/patches/series0000664000000000000000000000024212272244524012036 0ustar 02-toll-booth_routing.patch 03-dont_embed_resources.patch 04-fix_typos.patch 05-drop_marchnative.patch 06-implement_gpsd_interface.patch 07-port_to_mapnik2.patch debian/patches/03-dont_embed_resources.patch0000664000000000000000000005761612272244524016275 0ustar From: David Paleino Subject: use system-installed images Origin: vendor Forwarded: no --- client/client.pro | 2 - client/descriptiongenerator.h | 20 +++++++------- client/mainwindow.cpp | 50 +++++++++++++++++------------------ client/mainwindow.ui | 20 +++++++------- client/placechooser.ui | 19 +++++-------- client/streetchooser.ui | 11 ++----- client/worldmapchooser.cpp | 2 - preprocessor/aboutdialog.ui | 5 --- preprocessor/preprocessingwindow.cpp | 16 +++++------ preprocessor/preprocessingwindow.ui | 5 --- preprocessor/preprocessor-gui.pro | 1 11 files changed, 68 insertions(+), 83 deletions(-) --- monav.orig/client/client.pro +++ monav/client/client.pro @@ -86,8 +86,6 @@ maemo5 { QT += maemo5 } -RESOURCES += images.qrc - LIBS += -L../bin/plugins_client -lmapnikrendererclient -lcontractionhierarchiesclient -lgpsgridclient -losmrendererclient -lunicodetournamenttrieclient -lqtilerendererclient #required by osmrendererclient --- monav.orig/client/descriptiongenerator.h +++ monav/client/descriptiongenerator.h @@ -159,9 +159,9 @@ protected: void describe( QStringList* icons, QStringList* labels ) { if ( m_exitNumber != 0 ) { - icons->push_back( QString( ":/images/directions/roundabout.png" ) ); + icons->push_back( QString( "/usr/share/monav/images/directions/roundabout.png" ) ); labels->push_back( QString( "Enter the roundabout." ) ); - icons->push_back( QString( ":/images/directions/roundabout_exit%1.png" ).arg( m_exitNumber ) ); + icons->push_back( QString( "/usr/share/monav/images/directions/roundabout_exit%1.png" ).arg( m_exitNumber ) ); labels->push_back( QString( "Take the %1. exit." ).arg( m_exitNumber ) ); m_exitNumber = 0; return; @@ -174,37 +174,37 @@ protected: break; case 1: { - icons->push_back( ":/images/directions/slightly_right.png" ); + icons->push_back( "/usr/share/monav/images/directions/slightly_right.png" ); labels->push_back( "Keep slightly right" ); break; } case 2: { - icons->push_back( ":/images/directions/right.png" ); + icons->push_back( "/usr/share/monav/images/directions/right.png" ); labels->push_back( "Turn right" ); break; } case 3: { - icons->push_back( ":/images/directions/sharply_right.png" ); + icons->push_back( "/usr/share/monav/images/directions/sharply_right.png" ); labels->push_back( "Turn sharply right" ); break; } case -1: { - icons->push_back( ":/images/directions/slightly_left.png" ); + icons->push_back( "/usr/share/monav/images/directions/slightly_left.png" ); labels->push_back( "Keep slightly left" ); break; } case -2: { - icons->push_back( ":/images/directions/left.png" ); + icons->push_back( "/usr/share/monav/images/directions/left.png" ); labels->push_back( "Turn left" ); break; } case -3: { - icons->push_back( ":/images/directions/sharply_left.png" ); + icons->push_back( "/usr/share/monav/images/directions/sharply_left.png" ); labels->push_back( "Turn sharply left" ); break; } @@ -218,7 +218,7 @@ protected: if ( m_lastType == "motorway_link" ) { if ( m_direction == 0 ) { - icons->push_back( ":/images/directions/forward.png" ); + icons->push_back( "/usr/share/monav/images/directions/forward.png" ); labels->push_back( "" ); } if ( !name.isEmpty() ) @@ -238,7 +238,7 @@ protected: else distance = QString( "%1km" ).arg( ( int ) m_distance / 1000 ); - icons->push_back( ":/images/directions/forward.png" ); + icons->push_back( "/usr/share/monav/images/directions/forward.png" ); if ( !name.isEmpty() ) labels->push_back( ( "Continue on " + name + " for " + distance + "." ) ); else --- monav.orig/client/mainwindow.cpp +++ monav/client/mainwindow.cpp @@ -172,45 +172,45 @@ void MainWindow::connectSlots() void MainWindow::setupMenu() { d->gotoMenu = new QMenu( tr( "Show" ), this ); - d->gotoMenu->addAction( QIcon( ":/images/oxygen/network-wireless.png" ), tr( "GPS-Location" ), this, SLOT(gotoGpsLocation()) ); - d->gotoMenu->addAction( QIcon( ":/images/source.png" ), tr( "Departure" ), this, SLOT(gotoSource()) ); - d->gotoMenu->addAction( QIcon( ":/images/target.png" ), tr( "Destination" ), this, SLOT(gotoTarget()) ); - d->gotoMenu->addAction( QIcon( ":/images/oxygen/bookmarks.png" ), tr( "Bookmark..." ), this, SLOT(gotoBookmark()) ); - d->gotoMenu->addAction( QIcon( ":/images/address.png" ), tr( "Address..." ), this, SLOT(gotoAddress()) ); - d->gotoMenu->addAction( QIcon( ":/images/oxygen/network-wireless.png" ), tr( "GPS-Coordinate..." ), this, SLOT(gotoGpsCoordinate()) ); + d->gotoMenu->addAction( QIcon( "/usr/share/monav/images/oxygen/network-wireless.png" ), tr( "GPS-Location" ), this, SLOT(gotoGpsLocation()) ); + d->gotoMenu->addAction( QIcon( "/usr/share/monav/images/source.png" ), tr( "Departure" ), this, SLOT(gotoSource()) ); + d->gotoMenu->addAction( QIcon( "/usr/share/monav/images/target.png" ), tr( "Destination" ), this, SLOT(gotoTarget()) ); + d->gotoMenu->addAction( QIcon( "/usr/share/monav/images/oxygen/bookmarks.png" ), tr( "Bookmark" ), this, SLOT(gotoBookmark()) ); + d->gotoMenu->addAction( QIcon( "/usr/share/monav/images/address.png" ), tr( "Address" ), this, SLOT(gotoAddress()) ); + d->gotoMenu->addAction( QIcon( "/usr/share/monav/images/oxygen/network-wireless.png" ), tr( "GPS-Coordinate..." ), this, SLOT(gotoGpsCoordinate()) ); d->gotoOverlay = new OverlayWidget( this, tr( "Show" ) ); d->gotoOverlay->addActions( d->gotoMenu->actions() ); d->sourceMenu = new QMenu( tr( "Departure" ), this ); - d->sourceMenu->addAction( QIcon( ":/images/map.png" ), tr( "Tap on Map" ), this, SLOT(setModeSourceSelection()) ); - d->sourceMenu->addAction( QIcon( ":/images/oxygen/bookmarks.png" ), tr( "Bookmark" ), this, SLOT(sourceByBookmark()) ); - d->sourceMenu->addAction( QIcon( ":/images/address.png" ), tr( "Address" ), this, SLOT(sourceByAddress()) ); - d->sourceMenu->addAction( QIcon( ":/images/oxygen/network-wireless.png" ), tr( "GPS-Location" ), this, SLOT(sourceByGPS()) ); + d->sourceMenu->addAction( QIcon( "/usr/share/monav/images/map.png" ), tr( "Tap on Map" ), this, SLOT(setModeSourceSelection()) ); + d->sourceMenu->addAction( QIcon( "/usr/share/monav/images/oxygen/bookmarks.png" ), tr( "Bookmark" ), this, SLOT(sourceByBookmark()) ); + d->sourceMenu->addAction( QIcon( "/usr/share/monav/images/address.png" ), tr( "Address" ), this, SLOT(sourceByAddress()) ); + d->sourceMenu->addAction( QIcon( "/usr/share/monav/images/oxygen/network-wireless.png" ), tr( "GPS-Location" ), this, SLOT(sourceByGPS()) ); d->sourceOverlay = new OverlayWidget( this, tr( "Departure" ) ); d->sourceOverlay->addActions( d->sourceMenu->actions() ); d->targetMenu = new QMenu( tr( "Destination" ), this ); - d->targetMenu->addAction( QIcon( ":/images/map.png" ), tr( "Tap on Map" ), this, SLOT(setModeTargetSelection()) ); - d->targetMenu->addAction( QIcon( ":/images/oxygen/bookmarks.png" ), tr( "Bookmark" ), this, SLOT(targetByBookmark()) ); - d->targetMenu->addAction( QIcon( ":/images/address.png" ), tr( "Address" ), this, SLOT(targetByAddress()) ); + d->targetMenu->addAction( QIcon( "/usr/share/monav/images/map.png" ), tr( "Tap on Map" ), this, SLOT(setModeTargetSelection()) ); + d->targetMenu->addAction( QIcon( "/usr/share/monav/images/oxygen/bookmarks.png" ), tr( "Bookmark" ), this, SLOT(targetByBookmark()) ); + d->targetMenu->addAction( QIcon( "/usr/share/monav/images/address.png" ), tr( "Address" ), this, SLOT(targetByAddress()) ); d->targetMenu->addSeparator(); - d->targetMenu->addAction( QIcon( ":/images/oxygen/list-add.png" ), tr( "+Waypoint" ), this, SLOT(addRoutepoint()) ); - d->targetMenu->addAction( QIcon( ":/images/oxygen/list-remove.png" ), tr( "-Waypoint" ), this, SLOT(subductRoutepoint()) ); + d->targetMenu->addAction( QIcon( "/usr/share/monav/images/oxygen/list-add.png" ), tr( "+Waypoint" ), this, SLOT(addRoutepoint()) ); + d->targetMenu->addAction( QIcon( "/usr/share/monav/images/oxygen/list-remove.png" ), tr( "-Waypoint" ), this, SLOT(subductRoutepoint()) ); d->targetOverlay = new OverlayWidget( this, tr( "Destination" ) ); d->targetOverlay->addActions( d->targetMenu->actions() ); d->settingsMenu = new QMenu( tr( "Settings" ), this ); - d->settingsMenu->addAction( QIcon( ":/images/oxygen/folder-tar.png" ), tr( "Map Packages" ), this, SLOT(displayMapChooser()) ); - d->settingsMenu->addAction( QIcon( ":/images/oxygen/folder-tar.png" ), tr( "Map Modules" ), this, SLOT(displayModuleChooser()) ); - d->settingsMenu->addAction( QIcon( ":/images/oxygen/preferences-system.png" ), tr( "General" ), this, SLOT(settingsGeneral()) ); - d->settingsMenu->addAction( QIcon( ":/images/oxygen/network-wireless.png" ), tr( "GPS Lookup" ), this, SLOT(settingsGPSLookup()) ); - d->settingsMenu->addAction( QIcon( ":/images/map.png" ), tr( "Renderer" ), this, SLOT(settingsRenderer()) ); - d->settingsMenu->addAction( QIcon( ":/images/route.png" ), tr( "Router" ), this, SLOT(settingsRouter()) ); - d->settingsMenu->addAction( QIcon( ":/images/address.png" ), tr( "Address Lookup" ), this, SLOT(settingsAddressLookup()) ); - d->settingsMenu->addAction( QIcon( ":/images/oxygen/hwinfo.png" ), tr( "GPS Receiver" ), this, SLOT(settingsGPS()) ); + d->settingsMenu->addAction( QIcon( "/usr/share/monav/images/oxygen/folder-tar.png" ), tr( "Map Packages" ), this, SLOT(displayMapChooser()) ); + d->settingsMenu->addAction( QIcon( "/usr/share/monav/images/oxygen/folder-tar.png" ), tr( "Map Modules" ), this, SLOT(displayModuleChooser()) ); + d->settingsMenu->addAction( QIcon( "/usr/share/monav/images/oxygen/preferences-system.png" ), tr( "General" ), this, SLOT(settingsGeneral()) ); + d->settingsMenu->addAction( QIcon( "/usr/share/monav/images/oxygen/network-wireless.png" ), tr( "GPS Lookup" ), this, SLOT(settingsGPSLookup()) ); + d->settingsMenu->addAction( QIcon( "/usr/share/monav/images/map.png" ), tr( "Renderer" ), this, SLOT(settingsRenderer()) ); + d->settingsMenu->addAction( QIcon( "/usr/share/monav/images/route.png" ), tr( "Router" ), this, SLOT(settingsRouter()) ); + d->settingsMenu->addAction( QIcon( "/usr/share/monav/images/address.png" ), tr( "Address Lookup" ), this, SLOT(settingsAddressLookup()) ); + d->settingsMenu->addAction( QIcon( "/usr/share/monav/images/oxygen/hwinfo.png" ), tr( "GPS Receiver" ), this, SLOT(settingsGPS()) ); d->settingsOverlay = new OverlayWidget( this, tr( "Settings" ) ); d->settingsOverlay->addActions( d->settingsMenu->actions() ); @@ -735,10 +735,10 @@ void MainWindow::toggleLocked() d->fixed = !d->fixed; m_ui->paintArea->setFixed( d->fixed ); if ( d->fixed ) { - m_ui->lockButton->setIcon( QIcon( ":images/oxygen/emblem-locked.png") ); + m_ui->lockButton->setIcon( QIcon( "/usr/share/monav/images/oxygen/emblem-locked.png") ); instructionsChanged(); } else { - m_ui->lockButton->setIcon( QIcon( ":images/oxygen/emblem-unlocked.png") ); + m_ui->lockButton->setIcon( QIcon( "/usr/share/monav/images/oxygen/emblem-unlocked.png") ); m_ui->infoWidget->hide(); } } --- monav.orig/client/worldmapchooser.cpp +++ monav/client/worldmapchooser.cpp @@ -51,7 +51,7 @@ WorldMapChooser::WorldMapChooser( QWidge d->maxX = 1; d->maxY = 1; - QDir dir( ":/images/world" ); + QDir dir( "/usr/share/monav/images/world" ); // crude heuristic: the largest image will be the most accurate one // in praxis only one image should exist as an appropiate one shouldbe selected during // the build process --- monav.orig/preprocessor/preprocessingwindow.cpp +++ monav/preprocessor/preprocessingwindow.cpp @@ -37,10 +37,10 @@ PreprocessingWindow::PreprocessingWindow { m_ui->setupUi(this); - setWindowIcon( QIcon( ":/images/target.png" ) ); + setWindowIcon( QIcon( "/usr/share/monav/images/target.png" ) ); LogWindow* log = new LogWindow(); - log->setWindowIcon( QIcon( ":/images/target.png" ) ); + log->setWindowIcon( QIcon( "/usr/share/monav/images/target.png" ) ); log->show(); connectSlots(); @@ -313,22 +313,22 @@ void PreprocessingWindow::taskFinished( } switch( m_tasks.front() ) { case TaskImporting: - m_ui->importerLabel->setPixmap( QPixmap( result ? ":/images/ok.png" : ":/images/notok.png" ) ); + m_ui->importerLabel->setPixmap( QPixmap( result ? "/usr/share/monav/images/ok.png" : "/usr/share/monav/images/notok.png" ) ); break; case TaskRouting: - m_ui->routerLabel->setPixmap( QPixmap( result ? ":/images/ok.png" : ":/images/notok.png" ) ); + m_ui->routerLabel->setPixmap( QPixmap( result ? "/usr/share/monav/images/ok.png" : "/usr/share/monav/images/notok.png" ) ); break; case TaskRendering: - m_ui->rendererLabel->setPixmap( QPixmap( result ? ":/images/ok.png" : ":/images/notok.png" ) ); + m_ui->rendererLabel->setPixmap( QPixmap( result ? "/usr/share/monav/images/ok.png" : "/usr/share/monav/images/notok.png" ) ); break; case TaskAddressLookup: - m_ui->addressLookupLabel->setPixmap( QPixmap( result ? ":/images/ok.png" : ":/images/notok.png" ) ); + m_ui->addressLookupLabel->setPixmap( QPixmap( result ? "/usr/share/monav/images/ok.png" : "/usr/share/monav/images/notok.png" ) ); break; case TaskConfig: - m_ui->configLabel->setPixmap( QPixmap( result ? ":/images/ok.png" : ":/images/notok.png" ) ); + m_ui->configLabel->setPixmap( QPixmap( result ? "/usr/share/monav/images/ok.png" : "/usr/share/monav/images/notok.png" ) ); break; case TaskDeleteTemporary: - m_ui->deleteTemporaryLabel->setPixmap( QPixmap( result ? ":/images/ok.png" : ":/images/notok.png" ) ); + m_ui->deleteTemporaryLabel->setPixmap( QPixmap( result ? "/usr/share/monav/images/ok.png" : "/usr/share/monav/images/notok.png" ) ); break; } --- monav.orig/preprocessor/preprocessor-gui.pro +++ monav/preprocessor/preprocessor-gui.pro @@ -42,7 +42,6 @@ DESTDIR = ../bin TARGET = monav-preprocessor-gui FORMS += preprocessingwindow.ui \ ../utils/logwindow.ui -RESOURCES += images.qrc unix { QMAKE_CXXFLAGS_RELEASE -= -O2 QMAKE_CXXFLAGS_RELEASE += -O3 \ --- monav.orig/client/mainwindow.ui +++ monav/client/mainwindow.ui @@ -15,7 +15,7 @@ - :/images/source.png:/images/source.png + /usr/share/monav/images/source.png/usr/share/monav/images/source.png @@ -159,7 +159,7 @@ - :/images/oxygen/emblem-unlocked.png:/images/oxygen/emblem-unlocked.png + /usr/share/monav/images/oxygen/emblem-unlocked.png/usr/share/monav/images/oxygen/emblem-unlocked.png true @@ -179,7 +179,7 @@ - :/images/map.png:/images/map.png + /usr/share/monav/images/map.png/usr/share/monav/images/map.png true @@ -413,7 +413,7 @@ - :/images/target.png:/images/target.png + /usr/share/monav/images/target.png/usr/share/monav/images/target.png true @@ -430,7 +430,7 @@ - :/images/source.png:/images/source.png + /usr/share/monav/images/source.png/usr/share/monav/images/source.png true @@ -591,7 +591,7 @@ - :/images/oxygen/zoom-in.png:/images/oxygen/zoom-in.png + /usr/share/monav/images/oxygen/zoom-in.png/usr/share/monav/images/oxygen/zoom-in.png true @@ -614,7 +614,7 @@ - :/images/oxygen/zoom-out.png:/images/oxygen/zoom-out.png + /usr/share/monav/images/oxygen/zoom-out.png/usr/share/monav/images/oxygen/zoom-out.png true @@ -976,7 +976,7 @@ - :/images/oxygen/bookmarks.png:/images/oxygen/bookmarks.png + /usr/share/monav/images/oxygen/bookmarks.png/usr/share/monav/images/oxygen/bookmarks.png true @@ -993,7 +993,7 @@ - :/images/oxygen/go-next.png:/images/oxygen/go-next.png + /usr/share/monav/images/oxygen/go-next.png/usr/share/monav/images/oxygen/go-next.png true @@ -1010,7 +1010,7 @@ - :/images/oxygen/configure.png:/images/oxygen/configure.png + /usr/share/monav/images/oxygen/configure.png/usr/share/monav/images/oxygen/configure.png true --- monav.orig/client/placechooser.ui +++ monav/client/placechooser.ui @@ -149,8 +149,8 @@ ... - - :/images/oxygen/go-previous.png:/images/oxygen/go-previous.png + + /usr/share/monav/images/oxygen/go-previous.png/usr/share/monav/images/oxygen/go-previous.png true @@ -173,8 +173,8 @@ ... - - :/images/oxygen/go-next.png:/images/oxygen/go-next.png + + /usr/share/monav/images/oxygen/go-next.png/usr/share/monav/images/oxygen/go-next.png true @@ -345,8 +345,8 @@ + - - :/images/oxygen/zoom-in.png:/images/oxygen/zoom-in.png + + /usr/share/monav/images/oxygen/zoom-in.png/usr/share/monav/images/oxygen/zoom-in.png true @@ -368,8 +368,8 @@ - - - :/images/oxygen/zoom-out.png:/images/oxygen/zoom-out.png + + /usr/share/monav/images/oxygen/zoom-out.png/usr/share/monav/images/oxygen/zoom-out.png true @@ -433,8 +433,5 @@ 1 - - - --- monav.orig/client/streetchooser.ui +++ monav/client/streetchooser.ui @@ -311,8 +311,8 @@ + - - :/images/oxygen/zoom-in.png:/images/oxygen/zoom-in.png + + /usr/share/monav/images/oxygen/zoom-in.png/usr/share/monav/images/oxygen/zoom-in.png true @@ -334,8 +334,8 @@ - - - :/images/oxygen/zoom-out.png:/images/oxygen/zoom-out.png + + /usr/share/monav/images/oxygen/zoom-out.png/usr/share/monav/images/oxygen/zoom-out.png true @@ -399,8 +399,5 @@ 1 - - - --- monav.orig/preprocessor/aboutdialog.ui +++ monav/preprocessor/aboutdialog.ui @@ -57,7 +57,7 @@ - :/images/about.png + /usr/share/monav/images/about.png true @@ -73,9 +73,6 @@ - - - pushButton --- monav.orig/preprocessor/preprocessingwindow.ui +++ monav/preprocessor/preprocessingwindow.ui @@ -132,7 +132,7 @@ - :/images/about.png + /usr/share/monav/images/about.png true @@ -861,9 +861,6 @@ - - - pageList debian/monav-preprocessor.install0000664000000000000000000000014312272244524014426 0ustar bin/monav-preprocessor /usr/bin/ bin/monav-preprocessor-gui /usr/bin/ monav-packager /usr/bin/ debian/monav-data.install0000664000000000000000000000003312272244524012607 0ustar images/ /usr/share/monav/