gpsdrive: add 2.10pre4
authorJohn Lee <john_lee@openmoko.org>
Fri, 29 Feb 2008 11:06:25 +0000 (11:06 +0000)
committerOpenmoko anonymizer key <devel@lists.openmoko.org>
Fri, 29 Feb 2008 11:06:25 +0000 (11:06 +0000)
* http://bugs.openembedded.org/show_bug.cgi?id=3670
* plus some polishment

packages/gpsdrive/gpsdrive-2.10pre4/.mtn2git_empty [new file with mode: 0644]
packages/gpsdrive/gpsdrive-2.10pre4/gpsdrive-2.10pre4-openstreetmap-download.patch [new file with mode: 0644]
packages/gpsdrive/gpsdrive-2.10pre4/gpsdrive-ifdef-mapnik.patch [new file with mode: 0644]
packages/gpsdrive/gpsdrive-2.10pre4/gpsdrive-remove-hardcoded-paths.patch [new file with mode: 0644]
packages/gpsdrive/gpsdrive-2.10pre4/gpsdrive_2.10pre4.desktop [new file with mode: 0644]
packages/gpsdrive/gpsdrive_2.10pre4.bb [new file with mode: 0644]

diff --git a/packages/gpsdrive/gpsdrive-2.10pre4/.mtn2git_empty b/packages/gpsdrive/gpsdrive-2.10pre4/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/gpsdrive/gpsdrive-2.10pre4/gpsdrive-2.10pre4-openstreetmap-download.patch b/packages/gpsdrive/gpsdrive-2.10pre4/gpsdrive-2.10pre4-openstreetmap-download.patch
new file mode 100644 (file)
index 0000000..878cb1d
--- /dev/null
@@ -0,0 +1,128 @@
+diff -ur gpsdrive-2.10pre4.orig/scripts/gpsfetchmap.pl gpsdrive-2.10pre4/scripts/gpsfetchmap.pl
+--- gpsdrive-2.10pre4.orig/scripts/gpsfetchmap.pl      2007-12-28 18:49:44.000000000 +0100
++++ gpsdrive-2.10pre4/scripts/gpsfetchmap.pl   2008-01-04 19:01:35.000000000 +0100
+@@ -35,6 +35,7 @@
+ modified (Jul 2005) by Jaroslaw Zachwieja <grok\@filippa.org.uk>
+ modified (Dec 2005) by David Pollard <david dot pollard\@optusnet.com.au>
+ modified (Jul 2007) by Maciek Kaliszewski <mkalkal\@interia.pl>
++modified (Jan 2008) by Gernot Hillier <gernot\@hillier.de> (added Openstreetmap support)
+ Version svn-$Version
+ ";
+@@ -176,6 +177,25 @@
+       15812 => 3 ,
+       7906  => 2,
+       3953 => 1
++    },
++    openstreetmap_tah => {
++      256*576000 =>  1,
++      128*576000 =>  2,
++       64*576000 =>  3,
++       32*576000 =>  4,
++       16*576000 =>  5,
++        8*576000 =>  6,
++        4*576000 =>  7,
++        2*576000 =>  8,
++          576000 =>  9,
++          288000 => 10,
++          144000 => 11,
++           72000 => 12,
++           36000 => 13,
++           18000 => 14,
++           9000  => 15,
++            4500 => 16,
++            2250 => 17
+     }
+ };
+@@ -331,7 +351,6 @@
+     exit();
+ }
+-
+ # Verify that we have the options that we need 
+ pod2usage(1) if (&error_check);
+@@ -417,6 +436,13 @@
+     print "+-----------------------------------------------------------+\n";
+     print "| Landsat Maps are Copyright, .....   |\n";
+     print "| They are free for non commercial use.                     |\n";
++}elsif ( $mapserver eq 'openstreetmap_tah' ){
++    print "+-----------------------------------------------------------+\n";
++    print "| OpenStreetmap Maps are Copyright by the OpenStreetmap     |\n";
++    print "| project.                                                  |\n";
++    print "| They are free for use under the terms of the              |\n";
++    print "| Creative Commons \"Attribution-Share Alike 2.0 Generic\"    |\n";
++    print "| license. See http://www.openstreetmap.org for details.    |\n";
+ } elsif ( ! $force) {
+     print "You are violating the map servers copyright!\n";
+     print "Are you sure you want to continue? [y|n] ";
+@@ -700,6 +726,11 @@
+     {
+       ($url,$mapscale)=googlemap_url($lati,$long,$scale);
+     } 
++    elsif ( $mapserver eq 'openstreetmap_tah') 
++    { 
++      $filename=~s/\.gif/.png/;
++      ($url,$mapscale)=openstreetmap_tah_url($lati,$long,$scale);
++    } 
+     else 
+     {
+       print "Unknown map sever :", $mapserver, "\n"; 
+@@ -935,6 +966,37 @@
+     return ($url,$mapscale);
+ }
++#############################################################################
++sub openstreetmap_tah_url($$$){
++    my $lati = shift;
++    my $long = shift;
++    my $scale = shift;
++
++    my $mapscale = $scale;
++    my $zoom = undef;
++    for my $s ( sort keys %{$Scale2Zoom->{openstreetmap_tah}} ) {
++      next unless $s == $scale;
++      $zoom = $Scale2Zoom->{openstreetmap_tah}->{$s};
++      $mapscale = $s;
++      last;
++    }
++
++    unless ( $zoom ) {
++      print "Error calculating Zoomlevel for Scale: $scale\n";
++      return (undef,undef);
++    }
++
++    if ($debug) {
++      print "\n";
++      print "Using openstreetmap_tah zoom ", $zoom, " for requested scale ", $scale, ":1 actual scale ", $mapscale, ":1\n";
++      print "lat: $lati\n";
++      print "lon: $long\n";
++    }
++
++    my $url = "http://tah.openstreetmap.org/MapOf/?lat=$lati&long=$long&z=$zoom&w=1280&h=1024&format=png";
++#   print "$url\n";
++    return ($url,$mapscale);
++}
+ #############################################################################
+ sub eniro_url($$$){
+@@ -2284,7 +2346,7 @@
+ =item B<--mapserver <MAPSERVER>>
+ Mapserver to download from. Default: 'expedia'.
+-Currently can use: landsat or expedia.
++Currently usable: landsat, expedia or openstreetmap_tah.
+ geoscience, gov_au, incrementp, googlesat, googlemap and eniro have download stubs, 
+ but they are !!!NOT!!!! in the right scale.
+@@ -2294,6 +2356,9 @@
+ landsat covers the whole world with satelite Photos
++openstreetmap_tah: Free maps from the OpenStreetmap Tiles@Home project, see 
++                 http://www.openstreetmap.org and http://tah.openstreetmap.org.
++
+ gov_au is for Australia
+ incrementp for japanese Maps
diff --git a/packages/gpsdrive/gpsdrive-2.10pre4/gpsdrive-ifdef-mapnik.patch b/packages/gpsdrive/gpsdrive-2.10pre4/gpsdrive-ifdef-mapnik.patch
new file mode 100644 (file)
index 0000000..c51c809
--- /dev/null
@@ -0,0 +1,18 @@
+Index: src/map_handler.c
+===================================================================
+--- aa/src/map_handler.c       (Revision 1699)
++++ aa/src/map_handler.c       (Revision 1700)
+@@ -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
++  {
+         limage = gdk_pixbuf_new_from_file (filename, NULL);
+         if (limage == NULL)
+           {
diff --git a/packages/gpsdrive/gpsdrive-2.10pre4/gpsdrive-remove-hardcoded-paths.patch b/packages/gpsdrive/gpsdrive-2.10pre4/gpsdrive-remove-hardcoded-paths.patch
new file mode 100644 (file)
index 0000000..c8c0fe9
--- /dev/null
@@ -0,0 +1,96 @@
+diff -ur gpsdrive-2.10pre4.orig/src/Makefile.am gpsdrive-2.10pre4/src/Makefile.am
+--- gpsdrive-2.10pre4.orig/src/Makefile.am     2007-12-28 18:49:44.000000000 +0100
++++ gpsdrive-2.10pre4/src/Makefile.am  2007-12-28 18:50:29.000000000 +0100
+@@ -14,14 +14,14 @@
+       -DLOCALEDIR=\"${localedir}\" -DDATADIR=\"${datadir}\" \
+       -DLIBDIR=\"${libdir}\" \
+       -DFRIENDSSERVERVERSION=\"${FRIENDSSERVERVERSION}\" \
+-      ${NOGARMIN} ${NOPLUGINS} ${AMAPNIK}\
+-      -I/usr/include/ \
+-      -I/usr/local/include \
+-      -I/opt/boost_1_35/include/boost-1_35 \
+-      -I/usr/local/include/freetype2 \
+-      -I/usr/include/freetype2 \
++      ${NOGARMIN} ${NOPLUGINS} ${AMAPNIK}
++#     -I/usr/include/ \
++#     -I/usr/local/include \
++#     -I/opt/boost_1_35/include/boost-1_35 \
++#     -I/usr/local/include/freetype2 \
++#     -I/usr/include/freetype2 \
+       -I. \
+-      -L/usr/local/lib
++#     -L/usr/local/lib
+ #     -I/usr/include/dbus-1.0/ 
+diff -ur gpsdrive-2.10pre4.orig/configure gpsdrive-2.10pre4/configure
+--- gpsdrive-2.10pre4.orig/configure   2007-12-28 18:49:44.000000000 +0100
++++ gpsdrive-2.10pre4/configure        2008-01-06 14:49:11.000000000 +0100
+@@ -35950,10 +35950,13 @@
+ #  Yep, its ebil, but I does not know better...
+ #PERL_PACKAGE_DIR=`perl -V:installsitearch | sed "s/installsitearch='//" | sed "s/';//"`
+ # default on debian should be: /usr/share/perl5/
+-PERL_VENDORLIB=`perl -V:vendorlib | sed "s,vendorlib=',," | sed "s/';//"`
++#PERL_VENDORLIB=`perl -V:vendorlib | sed "s,vendorlib=',," | sed "s/';//"`
+ #PERL_PACKAGE_DIR=`echo ${PERL_VENDORLIB} | sed "s,/usr,-${prefix}-,"`
+-PERL_PACKAGE_DIR=`echo ${PERL_VENDORLIB} | sed "s,/usr/share,${datadir},"`
++#PERL_PACKAGE_DIR=`echo ${PERL_VENDORLIB} | sed "s,/usr/share,${datadir},"`
++# hard code path for OpenEmbedded environment as I don't know a way
++# to detect it automatically
++PERL_PACKAGE_DIR="/usr/share/perl5"
+ ac_perl_modules="File::Basename "
+ # Make sure we have perl
+@@ -37840,11 +37843,11 @@
+ #    AC_SUBST(DLSYM_CFLAGS,'-Ddlsym=dlsym_prepend_underscore')
+ #fi
+-if test -f /usr/include/mysql/mysql.h; then
+- CFLAGS="$CFLAGS -I/usr/include/mysql"
+-else
+- CFLAGS="$CFLAGS -Imysql"
+-fi
++#if test -f /usr/include/mysql/mysql.h; then
++# CFLAGS="$CFLAGS -I/usr/include/mysql"
++#else
++# CFLAGS="$CFLAGS -Imysql"
++#fi
+ CFLAGS="$CFLAGS $OPT_CFLAGS"
+ CXXFLAGS="$CXXFLAGS $OPT_CFLAGS"
+diff -ur gpsdrive-2.10pre4.orig/configure.ac gpsdrive-2.10pre4/configure.ac
+--- gpsdrive-2.10pre4.orig/configure.ac        2007-12-28 18:49:44.000000000 +0100
++++ gpsdrive-2.10pre4/configure.ac     2008-01-06 14:48:50.000000000 +0100
+@@ -662,9 +662,12 @@
+ #  Yep, its ebil, but I does not know better...
+ #PERL_PACKAGE_DIR=`perl -V:installsitearch | sed "s/installsitearch='//" | sed "s/';//"`
+ # default on debian should be: /usr/share/perl5/
+-PERL_VENDORLIB=`perl -V:vendorlib | sed "s,vendorlib=',," | sed "s/';//"`
++#PERL_VENDORLIB=`perl -V:vendorlib | sed "s,vendorlib=',," | sed "s/';//"`
+ #PERL_PACKAGE_DIR=`echo ${PERL_VENDORLIB} | sed "s,/usr,-${prefix}-,"`
+-PERL_PACKAGE_DIR=`echo ${PERL_VENDORLIB} | sed "s,/usr/share,${datadir},"`
++#PERL_PACKAGE_DIR=`echo ${PERL_VENDORLIB} | sed "s,/usr/share,${datadir},"`
++# hard code path for OpenEmbedded environment as I don't know a way
++# to detect it automatically
++PERL_PACKAGE_DIR="/usr/share/perl5"
+ AC_SUBST(PERL_PACKAGE_DIR)
+ AC_PROG_PERL_MODULES(File::Basename , ,  AC_MSG_ERROR(Need Perl module File::Basename))
+@@ -719,11 +722,11 @@
+ #    AC_SUBST(DLSYM_CFLAGS,'-Ddlsym=dlsym_prepend_underscore') 
+ #fi
+-if test -f /usr/include/mysql/mysql.h; then
+- CFLAGS="$CFLAGS -I/usr/include/mysql"
+-else
+- CFLAGS="$CFLAGS -Imysql"
+-fi
++#if test -f /usr/include/mysql/mysql.h; then
++# CFLAGS="$CFLAGS -I/usr/include/mysql"
++#else
++# CFLAGS="$CFLAGS -Imysql"
++#fi
+ CFLAGS="$CFLAGS $OPT_CFLAGS"
+ CXXFLAGS="$CXXFLAGS $OPT_CFLAGS"
diff --git a/packages/gpsdrive/gpsdrive-2.10pre4/gpsdrive_2.10pre4.desktop b/packages/gpsdrive/gpsdrive-2.10pre4/gpsdrive_2.10pre4.desktop
new file mode 100644 (file)
index 0000000..96e8155
--- /dev/null
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=GPSDrive
+Comment=GPS map software
+Exec=gpsdrive -M pda -1
+Icon=gpsicon
+Terminal=false
+Type=Application
+Categories=Graphics;Network;Geography;Application;Other
+StartupNotify=true
diff --git a/packages/gpsdrive/gpsdrive_2.10pre4.bb b/packages/gpsdrive/gpsdrive_2.10pre4.bb
new file mode 100644 (file)
index 0000000..071a569
--- /dev/null
@@ -0,0 +1,42 @@
+DESCRIPTION = "GPS navigation/map display software"
+SECTION = "x11"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "virtual/libc gtk+ libpcre gpsd libwww-perl-native mysql"
+RDEPENDS_${PN} = "gdk-pixbuf-loader-gif gpsd libwww-perl"
+PR = "r1"
+
+SRC_URI = "http://www.gpsdrive.de/packages/${PN}-${PV}.tar.gz \
+           file://gpsdrive_2.10pre4.desktop \
+           file://gpsdrive-remove-hardcoded-paths.patch;patch=1 \
+           file://gpsdrive-ifdef-mapnik.patch;patch=1 \
+           file://gpsdrive-2.10pre4-openstreetmap-download.patch;patch=1"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--disable-garmin"
+
+do_install_append () {
+        mkdir -p  ${D}${datadir}/applications
+        install -m 0644 ${WORKDIR}/gpsdrive_2.10pre4.desktop ${D}${datadir}/applications/gpsdrive.desktop
+       mkdir -p ${D}${datadir}/pixmaps
+       cp ${D}${datadir}/${PN}/pixmaps/gpsicon.png ${D}${datadir}/pixmaps
+        # remove stuff we don't want to package
+        rm ${D}${datadir}/${PN}/gpsdrive.desktop # we have our own one
+        rm -rf ${D}${datadir}/${PN}/DSL # for Damn Small Linux
+        rm -rf ${D}${datadir}/${PN}/gentoo # for Gentoo
+}
+
+PACKAGES += "gpsdrive-maps gpsdrive-map-icons-classic gpsdrive-map-icons-other gpsdrive-addons"
+
+FILES_${PN} = "${bindir}/gpsdrive ${datadir}/applications ${datadir}/map-icons/icons.xml"
+FILES_${PN} += "${datadir}/pixmaps ${datadir}/${PN}/pixmaps ${datadir}/${PN}/poi"
+FILES_${PN}-addons = "${bindir}/*.pl ${bindir}/friendsd2 ${bindir}/geo* ${bindir}/*.sh ${bindir}/*.py ${bindir}/gpsreplay ${bindir}/gpssmswatch ${bindir}/wp* ${datadir}/mapnik ${datadir}/perl*/Geo ${datadir}/perl*/Utils"
+FILES_${PN}-map-icons-classic = "${datadir}/map-icons/classic.small"
+FILES_${PN}-map-icons-other = "${datadir}/map-icons/classic.big ${datadir}/map-icons/japan ${datadir}/map-icons/nickw ${datadir}/map-icons/square.big ${datadir}/map-icons/square.small ${datadir}/map-icons/svg"
+FILES_${PN}-maps = "${datadir}/${PN}/maps ${datadir}/${PN}/map_koord.txt"
+FILES_${PN}-doc = "${datadir}/man ${datadir}/${PN}/Documentation"
+
+CFLAGS += "-D_GNU_SOURCE"
+
+DEFAULT_PREFERENCE = "1"