Source: gpsdrive
Version: 2.10~pre4-6.dfsg-5.1
Severity: serious
Tags: patch

The gpsdrive package is FTBFS with version 2.0.0 of the mapnik library,
which is the current version in Debian wheezy and sid, and Ubuntu
precise. The FTBFS occurs because the APIs of the new 2.0.0 version of
Mapnik are backward-incompatible to the old 0.7.1 version of Mapnik (see
https://github.com/mapnik/mapnik/wiki/Mapnik2).

Note, there is a Debian bug requesting to update the gpsdrive packages
to version 2.11 (Bug #591260), however this will not help resolve the
FTBFS, because 2.11 of gpsdrive is also FTBFS with mapnik version 2.0.0.

Since I'm not sure when or if the gpsdrive developers plan to migrate to
Mapnik 2.0.0, I've submitted a patch to the Ubuntu package that disables
the optional mapnik library in the gpsdrive packages. Attaching the
patch, for Debian upstream application. (I haven't made/tested the minor
changes needed for precise->unstable.)

Allison
=== modified file 'debian/README.Debian'
--- debian/README.Debian	2008-08-31 17:40:05 +0000
+++ debian/README.Debian	2011-12-01 22:27:04 +0000
@@ -1,6 +1,14 @@
 gpsdrive for Debian
 -------------------
 
+Using gpsdrive with mapnik 2.0
+------------------------------
+
+* Gpsdrive is incompatible with the new APIs of mapnik 2.0.0. This
+  optional library is now disabled in the package.
+
+ -- Allison Randal <alli...@canonical.com> Thu, 01 Dec 2011 12:48:22 -0800
+
 Upgrading from gpsdrive 2.09 (etch)
 -------------------------------------
 * The mysql database schema has been changed.

=== modified file 'debian/changelog'
--- debian/changelog	2011-11-23 23:34:54 +0000
+++ debian/changelog	2011-12-01 22:55:21 +0000
@@ -1,3 +1,12 @@
+gpsdrive (2.10~pre4-6.dfsg-5ubuntu4) precise; urgency=low
+
+  * Disable optional mapnik libraries, gpsdrive is incompatible with
+    APIs of mapnik version 2.0.0.
+  * debian/patches/107-fix-disable-mapnik.dpatch:
+    Fix known bug with gpsdrive-2.10pre4 when disabling Mapnik library.
+
+ -- Allison Randal <alli...@canonical.com>  Thu, 01 Dec 2011 12:48:22 -0800
+
 gpsdrive (2.10~pre4-6.dfsg-5ubuntu3) precise; urgency=low
 
   * Rebuild for libmysqlclient transition

=== modified file 'debian/control'
--- debian/control	2010-07-26 06:41:40 +0000
+++ debian/control	2011-12-01 21:39:32 +0000
@@ -6,7 +6,7 @@
 Uploaders: Andreas Putzo <andr...@putzo.net>, Francesco Paolo Lovergine <fran...@debian.org>
 DM-Upload-Allowed: yes
 Build-Depends: debhelper (>= 7), automake1.9, libtool, pkg-config, libpcre3-dev, libgtk2.0-dev,libart-2.0-dev, libxml2-dev, libmysqlclient-dev, 
- autotools-dev, dpatch, libmapnik-dev (>= 0.6), libboost-dev, libboost-filesystem-dev, libboost-serialization-dev, libdbus-glib-1-dev
+ autotools-dev, dpatch, libboost-dev, libboost-filesystem-dev, libboost-serialization-dev, libdbus-glib-1-dev, libltdl-dev (>= 2.4)
 Standards-Version: 3.8.4
 Homepage: http://gpsdrive.de
 Vcs-Svn: svn://svn.debian.org/svn/pkg-grass/packages/gpsdrive/trunk
@@ -40,7 +40,7 @@
 
 Package: gpsdrive-scripts
 Architecture: all
-Depends: gpsdrive, ${perl:Depends}, python, python-imaging, python-mapnik, libdbi-perl, libdbd-mysql-perl, libdate-manip-perl, libfile-slurp-perl, 
+Depends: gpsdrive, ${perl:Depends}, python, python-imaging, libdbi-perl, libdbd-mysql-perl, libdate-manip-perl, libfile-slurp-perl, 
  libmime-base64-perl, libtime-local-perl, libwww-curl-perl, libwww-mechanize-perl, libxml-parser-perl, libxml-simple-perl, libxml-twig-perl, 
  libxml-writer-perl, perlmagick, perl-tk
 Description: Various scripts for gpsdrive

=== modified file 'debian/gpsdrive-scripts.install'
--- debian/gpsdrive-scripts.install	2008-03-26 18:35:38 +0000
+++ debian/gpsdrive-scripts.install	2011-12-01 20:56:19 +0000
@@ -5,7 +5,7 @@
 usr/bin/gpspoint2gpsdrive.pl
 usr/bin/gpsreplay
 usr/bin/poi-manager.pl
-usr/bin/gpsdrive_mapnik_gentiles.py
+#usr/bin/gpsdrive_mapnik_gentiles.py
 usr/share/perl5/Geo/Filter/*        usr/share/perl5/Geo/Gpsdrive/Filter
 usr/share/perl5/Geo/GPX/*           usr/share/perl5/Geo/Gpsdrive/GPX
 usr/share/perl5/Geo/Geometry.pm     usr/share/perl5/Geo/Gpsdrive

=== modified file 'debian/gpsdrive.install'
--- debian/gpsdrive.install	2008-08-31 17:40:05 +0000
+++ debian/gpsdrive.install	2011-12-01 20:55:54 +0000
@@ -2,5 +2,5 @@
 usr/bin/friendsd2
 usr/share/applications/gpsdrive.desktop
 usr/share/gpsdrive/map_koord.txt
-usr/share/gpsdrive/mapnik/osm.xml
+#usr/share/gpsdrive/mapnik/osm.xml
 usr/share/map-icons/icons.xml usr/share/gpsdrive/map-icons/

=== modified file 'debian/patches/00list'
--- debian/patches/00list	2011-07-05 12:30:16 +0000
+++ debian/patches/00list	2011-12-01 22:35:18 +0000
@@ -22,3 +22,4 @@
 104-lp-325288
 105-fix-xcursor-check.dpatch
 106-add-boost-links.dpatch
+107-fix-disable-mapnik.dpatch

=== added file 'debian/patches/107-fix-disable-mapnik.dpatch'
--- debian/patches/107-fix-disable-mapnik.dpatch	1970-01-01 00:00:00 +0000
+++ debian/patches/107-fix-disable-mapnik.dpatch	2011-12-01 22:37:18 +0000
@@ -0,0 +1,24 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 107-disable-mapnik.dpatch by Allison Randal <alli...@canonical.com>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Don't call into the mapnik library APIs when mapnik is disabled.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' ftbfs-precise~/src/map_handler.c ftbfs-precise/src/map_handler.c
+--- ftbfs-precise~/src/map_handler.c	2011-12-01 22:24:15.000000000 +0000
++++ ftbfs-precise/src/map_handler.c	2011-12-01 22:37:16.298094236 +0000
+@@ -660,9 +660,12 @@
+   if (maploaded)
+     gdk_pixbuf_unref (image);
+ 
++#ifdef MAPNIK
+   if ( !strcmp (filename,"mapnik") ) {
+ 	  limage = gdk_pixbuf_new_from_data(get_mapnik_imagedata(), GDK_COLORSPACE_RGB, FALSE, 8, 1280, 1024, 1280 * 3, NULL, NULL);
+-  } else {
++  } else
++#endif // MAPNIK
++  {
+ 	  limage = gdk_pixbuf_new_from_file (filename, NULL);
+ 	  if (limage == NULL)
+ 	    {

=== modified file 'debian/rules'
--- debian/rules	2010-02-04 16:53:01 +0000
+++ debian/rules	2011-12-01 20:44:45 +0000
@@ -13,7 +13,7 @@
 DEB_UPSTREAM_VERSION := 2.10~pre4-6.dfsg
 UPSTREAM_VERSION := 2.10pre4
 DESTDIR  := ${CURDIR}/debian/tmp
-MAPNIK_PATH = $(shell mapnik-plugin-base)
+# MAPNIK_PATH = $(shell mapnik-plugin-base)
 
 CFLAGS = -Wall -g
 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
@@ -51,7 +51,7 @@
 	libtoolize -i -f
 	./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \
 				--prefix=/usr \
-				--enable-mapnik \
+				--disable-mapnik \
 				--enable-dbus \
 				CFLAGS="$(CFLAGS)"
 
@@ -90,11 +90,11 @@
 			install-poiDATA \
 			install-mapsDATA \
 			DESTDIR=$(DESTDIR)
-	install -d $(CURDIR)/debian/tmp/usr/share/gpsdrive/mapnik
-	install -m 644 $(CURDIR)/scripts/mapnik/osm.xml $(CURDIR)/debian/tmp/usr/share/gpsdrive/mapnik/osm.xml
+	# install -d $(CURDIR)/debian/tmp/usr/share/gpsdrive/mapnik
+	# install -m 644 $(CURDIR)/scripts/mapnik/osm.xml $(CURDIR)/debian/tmp/usr/share/gpsdrive/mapnik/osm.xml
 	install -d $(CURDIR)/debian/tmp/usr/share/map-icons
 	install -m 644 $(CURDIR)/data/map-icons/icons.xml $(CURDIR)/debian/tmp/usr/share/map-icons/icons.xml
-	$(MAKE) -C scripts/mapnik/ install DESTDIR=$(DESTDIR)
+	# $(MAKE) -C scripts/mapnik/ install DESTDIR=$(DESTDIR)
 	$(MAKE) -C src/ install DESTDIR=$(DESTDIR)
 			
 install-indep: build-indep
@@ -116,7 +116,7 @@
 	# strip language extensions
 	mv -f $(CURDIR)/debian/gpsdrive-scripts/usr/bin/convert-waypoints.pl $(CURDIR)/debian/gpsdrive-scripts/usr/bin/convert-waypoints
 	mv -f $(CURDIR)/debian/gpsdrive-scripts/usr/bin/geoinfo.pl $(CURDIR)/debian/gpsdrive-scripts/usr/bin/geoinfo
-	mv -f $(CURDIR)/debian/gpsdrive-scripts/usr/bin/gpsdrive_mapnik_gentiles.py $(CURDIR)/debian/gpsdrive-scripts/usr/bin/gpsdrive_mapnik_gentiles
+	# mv -f $(CURDIR)/debian/gpsdrive-scripts/usr/bin/gpsdrive_mapnik_gentiles.py $(CURDIR)/debian/gpsdrive-scripts/usr/bin/gpsdrive_mapnik_gentiles
 	mv -f $(CURDIR)/debian/gpsdrive-scripts/usr/bin/gpspoint2gpsdrive.pl $(CURDIR)/debian/gpsdrive-scripts/usr/bin/gpspoint2gpsdrive
 	mv -f $(CURDIR)/debian/gpsdrive-scripts/usr/bin/poi-manager.pl $(CURDIR)/debian/gpsdrive-scripts/usr/bin/poi-manager
 	mv -f $(CURDIR)/debian/gpsdrive-scripts/usr/share/man/man1/convert-waypoints.pl.1.gz \

Reply via email to