Squashed 'import-layers/meta-openembedded/' content from commit 247b126

Change-Id: I40827e9ce5fba63f1cca2a0be44976ae8383b4c0
git-subtree-dir: import-layers/meta-openembedded
git-subtree-split: 247b1267bbe95719cd4877d2d3cfbaf2a2f4865a
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/foxtrotgps/foxtrotgps_1.1.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/foxtrotgps/foxtrotgps_1.1.1.bb
new file mode 100644
index 0000000..d91cbcb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/foxtrotgps/foxtrotgps_1.1.1.bb
@@ -0,0 +1,26 @@
+SUMMARY = "FoxtrotGPS is a map and GPS application using OpenStreetMap"
+AUTHOR = "Joshua Judson Rosen <rozzin@geekspace.com>"
+HOMEPAGE = "http://www.foxtrotgps.org/"
+SECTION = "x11/applications"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+DEPENDS = "curl gtk+ libglade sqlite3 libexif gpsd bluez4 intltool-native"
+
+PNBLACKLIST[foxtrotgps] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
+
+SRC_URI = "http://www.foxtrotgps.org/releases/${BP}.tar.gz"
+SRC_URI[md5sum] = "6777d448ee9d3ba195f9d26ea90e3163"
+SRC_URI[sha256sum] = "ae9706285510554cc0813ac92522e0d1672b0ddb065307bfacfcff3c328f6adb"
+
+inherit autotools pkgconfig perlnative gconf
+
+PR = "r2"
+
+do_configure_prepend() {
+    if [ -f ${S}/configure.in ] ; then
+    mv ${S}/configure.in ${S}/configure.ac
+    fi
+}
+
+RDEPENDS_${PN} += "python perl"
+RRECOMMENDS_${PN} = "gpsd"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gdal/gdal_1.11.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gdal/gdal_1.11.1.bb
new file mode 100644
index 0000000..012806a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gdal/gdal_1.11.1.bb
@@ -0,0 +1,114 @@
+SUMMARY = "GDAL is a translator library for raster geospatial data formats"
+HOMEPAGE = "http://www.gdal.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=0952e17969fab12227096b5228f23149"
+
+DEPENDS = "proj sqlite3 tiff json-c"
+
+SRC_URI = "ftp://download.osgeo.org/gdal/${PV}/${BP}.tar.xz"
+
+SRC_URI[md5sum] = "2e126d7c6605691d38f3e71b945f5c73"
+SRC_URI[sha256sum] = "20e1042cff15a71038459a299732fb342428aea9912f32df30c85790fcab6302"
+
+inherit autotools-brokensep lib_package binconfig
+
+EXTRA_OECONF = "--without-perl \
+                --without-php \
+                --without-ruby \
+                --without-python \
+                \
+                --without-grass \
+                --without-libgrass \
+                --without-cfitsio \
+                --without-dds \
+                --without-gta \
+                --without-pcidsk \
+                --without-ogdi \
+                --without-fme \
+                --without-hdf4 \
+                --without-hdf5 \
+                --without-pg \
+                --without-jpeg12 \
+                --without-ogdi \
+                --without-netcdf \
+                --without-openjpeg \
+                --without-fgdb \
+                --without-ecw \
+                --without-kakadu \
+                --without-mrsid \
+                --without-jp2mrsid \
+                --without-mrsid_lidar \
+                --without-msg \
+                --without-bsb \
+                --without-grib \
+                --without-mysql \
+                --without-ingres \
+                --without-odbc \
+                --without-dods_root \
+                --without-xml2 \
+                --without-spatialite \
+                --without-pcre \
+                --without-dwgdirect \
+                --without-dwgdirect \
+                --without-idb \
+                --without-sde \
+                --without-sde-version \
+                --without-epsilon \
+                --without-webp \
+                --without-opencl \
+                --without-opencl-include \
+                --without-opencl-lib \
+                --without-freexl \
+                --without-pam \
+                --without-poppler \
+                --without-podofo \
+                --without-podofo-lib \
+                --without-podofo-extra-lib-for-test \
+                --without-static_proj4 \
+                --without-perl \
+                --without-php \
+                --without-ruby \
+                --without-python \
+                --without-java \
+                --without-mdb \
+                --without-jvm-lib \
+                --without-jvm-lib-add-rpath \
+                --without-rasdaman \
+                --without-armadillo \
+                \
+                --with-pcraster=internal \
+                --with-geotiff=internal \
+                \
+                --with-sqlite3=${STAGING_EXECPREFIXDIR} \
+                --with-libtiff=${STAGING_EXECPREFIXDIR} \
+                --with-libjson-c=${STAGING_EXECPREFIXDIR} \
+                --with-expat=${STAGING_EXECPREFIXDIR} \
+"
+
+EXTRA_OEMAKE += "INST_DATA="${datadir}/gdal""
+
+PACKAGECONFIG ?= "geos png jasper"
+PACKAGECONFIG[geos] = "--with-geos,--without-geos,geos"
+PACKAGECONFIG[lzma] = "--with-liblzma,--without-liblzma,xz"
+PACKAGECONFIG[png] = "--with-png,--without-png,libpng"
+PACKAGECONFIG[gif] = "--with-gif,--without-gif,giflib"
+PACKAGECONFIG[jpeg] = "--with-jpeg,--without-jpeg,jpeg"
+PACKAGECONFIG[z] = "--with-libz,--without-libz,zlib"
+PACKAGECONFIG[jasper] = "--with-jasper,--without-jasper,jasper"
+PACKAGECONFIG[curl] = "--with-curl,--without-curl,curl"
+
+do_configure_prepend () {
+    # The configure script has many hardcoded paths to search
+    # for the library headers when using external libraries,
+    # workaround it.
+    sed -e 's,/usr/include,NON_EXISTENT_DIR,g' \
+        -e 's,/usr/lib,NON_EXISTENT_DIR,g' \
+        -i ${S}/configure.in
+}
+
+FILES_${PN} += "${libdir}/gdalplugins"
+
+# | gdalserver.c:124:21: error: storage size of 'sHints' isn't known
+# |      struct addrinfo sHints;
+# |                      ^
+PNBLACKLIST[gdal] ?= "BROKEN: fails to build with gcc-5"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/geoclue/files/soup-session-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geoclue/files/soup-session-fix.patch
new file mode 100644
index 0000000..70fe3f5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geoclue/files/soup-session-fix.patch
@@ -0,0 +1,30 @@
+Upstream-Status: Upstream-Status: Inappropriate [poky 9.0 has older libsoup]
+
+Signed-off-by: Felipe F. Tonello <eu@felipetonello.com>
+
+diff --git a/src/gclue-ipclient.c b/src/gclue-ipclient.c
+index 09add30..1771d5c 100644
+--- a/src/gclue-ipclient.c
++++ b/src/gclue-ipclient.c
+@@ -83,7 +83,7 @@ gclue_ipclient_init (GClueIpclient *ipclient)
+ {
+         ipclient->priv = G_TYPE_INSTANCE_GET_PRIVATE ((ipclient), GCLUE_TYPE_IPCLIENT, GClueIpclientPrivate);
+ 
+-        ipclient->priv->soup_session = soup_session_new ();
++        ipclient->priv->soup_session = soup_session_sync_new ();
+ }
+ 
+ /**
+diff --git a/src/geoip-server/geoip-update.c b/src/geoip-server/geoip-update.c
+index 6cce7b2..ef672ba 100644
+--- a/src/geoip-server/geoip-update.c
++++ b/src/geoip-server/geoip-update.c
+@@ -214,7 +214,7 @@ main (int argc, char **argv)
+                         path = GEOIP_DATABASE_PATH;
+         }
+ 
+-        session = soup_session_new ();
++        session = soup_session_sync_new ();
+ 
+         for (i = 0; i < G_N_ELEMENTS (db_info_map); i++) {
+                 SoupMessage *msg = NULL;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/geoclue/geoclue_2.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geoclue/geoclue_2.0.0.bb
new file mode 100644
index 0000000..5e3d04e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geoclue/geoclue_2.0.0.bb
@@ -0,0 +1,33 @@
+SUMMARY = "The Geolocation Service"
+DESCRIPTION = "Geoclue is a D-Bus service that provides location information. \
+The primary goal of the Geoclue project is to make creating location-aware applications \
+as simple as possible, while the secondary goal is to ensure that no application \
+can access location information without explicit permission from user."
+LICENSE = "GPLv2.0+"
+SECTION = "console/network"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=8114b83a0435d8136b47bd70111ce5cd"
+
+DEPENDS = "glib-2.0 dbus dbus-glib json-glib libsoup-2.4"
+
+inherit autotools pkgconfig gtk-doc
+
+SRC_URI = " \
+  http://www.freedesktop.org/software/geoclue/releases/2.0/geoclue-${PV}.tar.xz \
+  file://soup-session-fix.patch \
+"
+
+SRC_URI[md5sum] = "401ff99d530b177c62afacef0a33efd9"
+SRC_URI[sha256sum] = "4a82f184e55a163d86e0ad69bbe1bba9960bb5094220fe1f01350bceda8c67a1"
+
+PACKAGECONFIG[geoip] = "--enable-geoip-server,--disable-geoip-server,geoip"
+
+EXTRA_OECONF += " \
+  --with-dbus-service-user=root \
+  --with-dbus-sys-dir=${sysconfdir}/dbus-1/system.d \
+"
+
+FILES_${PN} += " \
+  ${datadir}/dbus-1/system-services/org.freedesktop.GeoClue2.service \
+  ${datadir}/geoclue-2.0/geoclue-interface.xml \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/files/geos-config-Add-includedir-variable.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/files/geos-config-Add-includedir-variable.patch
new file mode 100644
index 0000000..645e6f6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/files/geos-config-Add-includedir-variable.patch
@@ -0,0 +1,39 @@
+From 9d51027c228dafd7db2d0cffca1f0fc695e950fd Mon Sep 17 00:00:00 2001
+From: Otavio Salvador <otavio@ossystems.com.br>
+Date: Mon, 2 Dec 2013 11:33:26 -0200
+Subject: [PATCH] geos-config: Add includedir variable
+
+This fixes cross-compile as it is easier to mangle the includedir
+during sysroot generation.
+
+Upstream-Status: Pending
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+ tools/geos-config.in |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/tools/geos-config.in b/tools/geos-config.in
+index 9b45b5f..1749892 100644
+--- a/tools/geos-config.in
++++ b/tools/geos-config.in
+@@ -1,6 +1,7 @@
+ #!/bin/sh
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
++includedir=@includedir@
+ libdir=@libdir@
+ 
+ usage()
+@@ -38,7 +39,7 @@ case $1 in
+     echo @VERSION@
+      ;;
+     --cflags)
+-    echo -I${prefix}/include 
++    echo -I${includedir}
+       ;;
+     --libs)
+       # TODO: make an alias for --clibs
+-- 
+1.7.10.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/geos.inc b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/geos.inc
new file mode 100644
index 0000000..2e308b4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/geos.inc
@@ -0,0 +1,21 @@
+DESCRIPTION = "GEOS - Geometry Engine, Open Source"
+HOMEPAGE = "http://trac.osgeo.org/geos/"
+SECTION = "libs"
+
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
+
+SRC_URI = "http://download.osgeo.org/geos/geos-${PV}.tar.bz2"
+
+inherit autotools pkgconfig binconfig
+
+PACKAGES =+ "geoslib ${PN}-c1"
+
+DESCRIPTION_${PN}lib = "Geometry engine for Geographic Information Systems - C++ Library"
+FILES_${PN}lib += "${libdir}/libgeos-${PV}.so"
+
+DESCRIPTION_${PN}-c1 = "Geometry engine for Geographic Information Systems - C Library"
+FILES_${PN}-c1 += "${libdir}/libgeos_c.so.*"
+
+ALLOW_EMPTY_${PN} = "1"
+RDEPENDS_${PN} += "geoslib ${PN}-c1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/geos_3.4.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/geos_3.4.2.bb
new file mode 100644
index 0000000..3a9a028e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/geos_3.4.2.bb
@@ -0,0 +1,6 @@
+require geos.inc
+
+SRC_URI += "file://geos-config-Add-includedir-variable.patch"
+
+SRC_URI[md5sum] = "fc5df2d926eb7e67f988a43a92683bae"
+SRC_URI[sha256sum] = "15e8bfdf7e29087a957b56ac543ea9a80321481cef4d4f63a7b268953ad26c53"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Check-for-__STDC_NO_ATOMICS__-before-using-stdatomic.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Check-for-__STDC_NO_ATOMICS__-before-using-stdatomic.patch
new file mode 100644
index 0000000..82ac5aa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Check-for-__STDC_NO_ATOMICS__-before-using-stdatomic.patch
@@ -0,0 +1,25 @@
+From c30716be9e615513fe66993fd3cdc818c3d70410 Mon Sep 17 00:00:00 2001
+From: "Gary E. Miller" <gem@rellim.com>
+Date: Sun, 15 Mar 2015 11:51:45 -0700
+Subject: [PATCH 1/3] Check for __STDC_NO_ATOMICS__ before using stdatomic.h
+
+---
+ SConstruct | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/SConstruct b/SConstruct
+index adf473d..566c14a 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -633,7 +633,7 @@ else:
+         announce("You do not have kernel CANbus available.")
+         env["nmea2000"] = False
+ 
+-    if config.CheckHeader("stdatomic.h"):
++    if not config.CheckCompilerDefines("__STDC_NO_ATOMICS__") and config.CheckHeader("stdatomic.h"):
+         confdefs.append("#define HAVE_STDATOMIC_H 1\n")
+     else:
+ 	confdefs.append("/* #undef HAVE_STDATOMIC_H */\n")
+-- 
+2.1.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Include-stdatomic.h-only-in-C-mode.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Include-stdatomic.h-only-in-C-mode.patch
new file mode 100644
index 0000000..bc9167e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Include-stdatomic.h-only-in-C-mode.patch
@@ -0,0 +1,43 @@
+From 79f6d9133378325d70a92e66f7352c1becefbb88 Mon Sep 17 00:00:00 2001
+From: Gleb Smirnoff <glebius@FreeBSD.org>
+Date: Sat, 16 May 2015 02:47:28 +0300
+Subject: [PATCH] Include <stdatomic.h> only in C mode.
+
+Upstream-Status: Backport from 3.15
+
+Without this build with gcc-5.2 fails with:
+| arm-oe-linux-gnueabi-g++ -march=armv4t -mthumb -mthumb-interwork -mtune=arm920t --sysroot=/OE/build/shr-core/tmp-glibc/sysroots/om-gta02 -o clock_gettime-qt.os -c -O2 -pipe -g -feliminate-unused-debug-types --sysroot=/OE/build/shr-core/tmp-glibc/sysroots/om-gta02 -Wextra -Wall -Wno-uninitialized -Wno-missing-field-initializers -Wcast-align -Wmissing-declarations -Wpointer-arith -Wreturn-type -pthread -Wmissing-declarations -g -O0 -pthread -fPIC -DUSE_QT -DQT_SHARED -I/OE/build/shr-core/tmp-glibc/sysroots/om-gta02/usr/include/dbus-1.0 -I/OE/build/shr-core/tmp-glibc/sysroots/om-gta02/usr/lib/dbus-1.0/include -I/OE/build/shr-core/tmp-glibc/sysroots/om-gta02/usr/include/qt4/QtNetwork -I/OE/build/shr-core/tmp-glibc/sysroots/om-gta02/usr/include/qt4 -I/OE/build/shr-core/tmp-glibc/sysroots/om-gta02/usr/include/qt4/QtCore clock_gettime.c
+| In file included from compiler.h:50:0,
+|                  from clock_gettime.c:10:
+| /OE/build/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/lib/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/5.2.0/include/stdatomic.h:40:9: error: '_Atomic' does not name a type
+|  typedef _Atomic _Bool atomic_bool;
+|          ^
+....
+
+More info:
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60932
+
+Signed-off-by: Gary E. Miller <gem@rellim.com>
+---
+ compiler.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/compiler.h b/compiler.h
+index 837c935..03430c0 100644
+--- a/compiler.h
++++ b/compiler.h
+@@ -66,9 +66,9 @@
+     } while (0)
+ 
+ #ifdef HAVE_STDATOMIC_H
+-#ifndef __COVERITY__	/* Coverity is confused by a GNU typedef */
++#if !defined(__COVERITY__) && !defined(__cplusplus)
+ #include <stdatomic.h>
+-#endif /* __COVERITY__ */
++#endif /* __COVERITY__ || __cplusplus */
+ #endif /* HAVE_STDATOMIC_H */
+ 
+ #ifdef HAVE_OSATOMIC_H
+-- 
+2.5.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
new file mode 100644
index 0000000..2ea3226
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
@@ -0,0 +1,75 @@
+From 1e2cea8945bc2183fbe1a012dcd633a352125952 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 24 Apr 2012 18:45:14 +0200
+Subject: [PATCH] SConstruct: prefix includepy with sysroot and drop sysroot
+ from python_lib_dir
+
+* without PYTHONPATH, distutil's sysconfig returns INCLUDEPY without sysroot prefix
+  and with PYTHONPATH from OE it's pointing to native python dir
+
+    $ export PYTHONPATH=/OE/shr-core/tmp-eglibc/sysroots/om-gta02/usr/lib/python2.7/
+    $ python
+    Python 2.7.2 (default, Apr 18 2012, 09:19:59)
+    [GCC 4.6.2] on linux2
+    Type "help", "copyright", "credits" or "license" for more information.
+    >>> from distutils import sysconfig
+    >>> sysconfig.get_config_vars('INCLUDEPY')
+    ['/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/python2.7']
+    >>>
+    $ unset PYTHONPATH
+    $ python
+    Python 2.7.2 (default, Apr 18 2012, 09:19:59)
+    [GCC 4.6.2] on linux2
+    Type "help", "copyright", "credits" or "license" for more information.
+    >>> from distutils import sysconfig
+    >>> sysconfig.get_config_vars('INCLUDEPY')
+    ['/python2.7']
+    >>> import sysconfig
+    >>> sysconfig.get_config_vars('INCLUDEPY')
+    ['/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/python2.7']
+* python_lib_dir = python_lib_dir.replace(env['sysroot'], '')
+  returns path to target sysroot
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Signed-off-by: Peter A. Bigot <pab@pabigot.com>
+---
+ SConstruct | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/SConstruct b/SConstruct
+index 6c93311..cde8b3d 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1148,6 +1148,12 @@ else:
+         basecflags += ' -coverage'
+         ldflags += ' -coverage'
+         ldshared += ' -coverage'
++
++    if env['sysroot']:
++        print "Prefixing includepy '%s' with sysroot prefix" % includepy
++        includepy = os.path.normpath("%s/%s/%s/%s" % (env['sysroot'], env['prefix'], env['includedir'], includepy))
++        print "'%s'" % includepy
++
+     # in case CC/CXX was set to the scan-build wrapper,
+     # ensure that we build the python modules with scan-build, too
+     if env['CC'] is None or env['CC'].find('scan-build') < 0:
+@@ -1408,11 +1414,14 @@ if not env['python']:
+     python_install = []
+ else:
+     python_lib_dir = env['python_libdir']
++    python_lib_dir = python_lib_dir.replace(env['sysroot'], '')
+     python_module_dir = python_lib_dir + os.sep + 'gps'
+     python_extensions_install = python_env.Install( DESTDIR + python_module_dir,
+                                                     python_built_extensions)
+     if not env['debug'] and not env['profiling'] and not env['nostrip'] and not sys.platform.startswith('darwin'):
+         python_env.AddPostAction(python_extensions_install, '$STRIP $TARGET')
++    env.AddPostAction(python_extensions_install, '$CHRPATH -r "%s" "$TARGET"' \
++                     % (python_lib_dir, ))
+ 
+     python_modules_install = python_env.Install( DESTDIR + python_module_dir,
+                                                 python_modules)
+-- 
+2.1.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch
new file mode 100644
index 0000000..c4134f4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch
@@ -0,0 +1,33 @@
+From 3c5fb3a8691ac711ea93edf8e0b42bffc62b197e Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 24 Apr 2012 11:52:35 +0200
+Subject: [PATCH 1/4] SConstruct: respect sysroot also in SPLINTOPTS
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
+Signed-off-by: Peter A. Bigot <pab@pabigot.com>
+---
+ SConstruct | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/SConstruct b/SConstruct
+index 14e2f59..f0cafa8 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1414,7 +1414,10 @@ def Utility(target, source, action):
+ # Report splint warnings
+ # Note: test_bits.c is unsplintable because of the PRI64 macros.
+ # If you get preprocessor or fatal errors, add +showscan.
+-splintopts = "-I/usr/include/libusb-1.0 +quiet"
++if not env['sysroot']:
++    splintopts = "-I/usr/include/libusb-1.0 +quiet"
++else:
++    splintopts = "-I%s/usr/include/libusb-1.0 +quiet" % env['sysroot']
+ # splint does not know about multi-arch, work around that
+ ma_status, ma = _getstatusoutput('dpkg-architecture -qDEB_HOST_MULTIARCH')
+ if ma_status == 0:
+-- 
+1.8.5.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-libgpsd-core-Fix-issue-with-ACTIVATE-hook-not-being-.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-libgpsd-core-Fix-issue-with-ACTIVATE-hook-not-being-.patch
new file mode 100644
index 0000000..7a06795
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-libgpsd-core-Fix-issue-with-ACTIVATE-hook-not-being-.patch
@@ -0,0 +1,35 @@
+From 6ff099b1ba8de74df9ddeb61e3825264b96ef692 Mon Sep 17 00:00:00 2001
+From: Moritz Fischer <moritz.fischer@ettus.com>
+Date: Tue, 22 Dec 2015 19:38:31 -0800
+Subject: [PATCH] libgpsd-core: Fix issue with ACTIVATE hook not being called.
+
+In the current system session->mode seemed to ignore the
+O_OPTIMIZE flag, leading to the ACTIVATE hook being ignored.
+
+Another way to fix this would be to keep the session->mode
+condition pull up the check for O_CONTINUE.
+
+Upstream-Status: Backported
+This patch is in upstream git
+
+Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
+---
+ libgpsd_core.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libgpsd_core.c b/libgpsd_core.c
+index 31fec2a..a84e85f 100644
+--- a/libgpsd_core.c
++++ b/libgpsd_core.c
+@@ -543,7 +543,7 @@ int gpsd_open(struct gps_device_t *session)
+ int gpsd_activate(struct gps_device_t *session, const int mode)
+ /* acquire a connection to the GPS device */
+ {
+-    if (session->mode == O_OPTIMIZE)
++    if (mode == O_OPTIMIZE)
+ 	gpsd_run_device_hook(&session->context->errout,
+ 			     session->gpsdata.dev.path, "ACTIVATE");
+     session->gpsdata.gps_fd = gpsd_open(session);
+-- 
+2.4.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-Add-a-test-for-C11-and-check-we-have-C11-before-usin.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-Add-a-test-for-C11-and-check-we-have-C11-before-usin.patch
new file mode 100644
index 0000000..22ee1bd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-Add-a-test-for-C11-and-check-we-have-C11-before-usin.patch
@@ -0,0 +1,57 @@
+From 99444b3d2c4a4f7fd7128e60461005780d0c5c83 Mon Sep 17 00:00:00 2001
+From: "Gary E. Miller" <gem@rellim.com>
+Date: Sun, 15 Mar 2015 12:05:15 -0700
+Subject: [PATCH 2/3] Add a test for C11 and check we have C11 before using
+ stdatomic.h
+
+---
+ SConstruct | 19 ++++++++++++++++++-
+ 1 file changed, 18 insertions(+), 1 deletion(-)
+
+diff --git a/SConstruct b/SConstruct
+index 566c14a..faa8651 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -473,6 +473,20 @@ def CheckCompilerDefines(context, define):
+     context.Result(ret)
+     return ret
+ 
++# Check if this compiler is C11 or better
++def CheckC11(context):
++    context.Message( 'Checking if compiler is C11 ...' )
++    ret = context.TryLink("""
++	#if (__STDC_VERSION__ < 201112L) 
++        #error Not C11
++        #endif
++        int main(int argc, char **argv) {
++            return 0;
++        }
++    """,'.c')
++    context.Result(ret)
++    return ret
++
+ def GetLoadPath(context):
+     context.Message("Getting system load path ...")
+ 
+@@ -491,6 +505,7 @@ else:
+                                              'CheckXsltproc' : CheckXsltproc,
+                                              'CheckCompilerOption' : CheckCompilerOption,
+                                              'CheckCompilerDefines' : CheckCompilerDefines,
++                                             'CheckC11' : CheckC11,
+                                              'CheckHeaderDefines' : CheckHeaderDefines})
+ 
+ 
+@@ -633,7 +648,9 @@ else:
+         announce("You do not have kernel CANbus available.")
+         env["nmea2000"] = False
+ 
+-    if not config.CheckCompilerDefines("__STDC_NO_ATOMICS__") and config.CheckHeader("stdatomic.h"):
++    # check for C11 or better, and __STDC__NO_ATOMICS__ is no defined
++    # before looking for stdatomic.h
++    if not config.CheckC11() and  not config.CheckCompilerDefines("__STDC_NO_ATOMICS__") and config.CheckHeader("stdatomic.h"):
+         confdefs.append("#define HAVE_STDATOMIC_H 1\n")
+     else:
+ 	confdefs.append("/* #undef HAVE_STDATOMIC_H */\n")
+-- 
+2.1.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-SConstruct-remove-rpath.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-SConstruct-remove-rpath.patch
new file mode 100644
index 0000000..083a662
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-SConstruct-remove-rpath.patch
@@ -0,0 +1,45 @@
+From d090638ff983e509162d5e3b62aa4918de4aa5fa Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 24 Apr 2012 16:24:35 +0200
+Subject: [PATCH 2/4] SConstruct: remove rpath
+
+* even with correct prefix (without DESTDIR) included it's redundant
+  WARNING: QA Issue: libgps:
+  /work/armv4t-oe-linux-gnueabi/gpsd/gpsd-3.5-r0/packages-split/libgps/usr/lib/libgps.so.20.0
+  contains probably-redundant RPATH /usr/lib
+* and with prefix from scons.bbclass it's invalid
+  WARNING: QA Issue: package libgps contains bad RPATH
+  /OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd/gpsd-3.5-r0/image/usr/lib
+  in file
+  /OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd/gpsd-3.5-r0/packages-split/libgps/usr/lib/libgps.so.20.0
+
+Upstream-Status: Inapppropriate [embedded specific]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
+Signed-off-by: Peter A. Bigot <pab@pabigot.com>
+---
+ SConstruct | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index f0cafa8..ff46713 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1340,8 +1340,11 @@ if qt_env:
+     binaryinstall.append(LibraryInstall(qt_env, installdir('libdir'), compiled_qgpsmmlib))
+ 
+ if env["shared"] and env["chrpath"]:
+-    env.AddPostAction(binaryinstall, '$CHRPATH -r "%s" "$TARGET"' \
+-                      % (installdir('libdir', False), ))
++    if not env['sysroot']:
++        env.AddPostAction(binaryinstall, '$CHRPATH -r "%s" "$TARGET"' \
++                          % (installdir('libdir', False), ))
++    else:
++        env.AddPostAction(binaryinstall, '$CHRPATH -d "$TARGET"')
+ 
+ if not env['debug'] and not env['profiling'] and env['strip']:
+     env.AddPostAction(binaryinstall, '$STRIP $TARGET')
+-- 
+1.8.5.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0003-Whoops-check-for-C11-not-for-not-C11-in-stdatomic.h-.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0003-Whoops-check-for-C11-not-for-not-C11-in-stdatomic.h-.patch
new file mode 100644
index 0000000..8bb0928
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0003-Whoops-check-for-C11-not-for-not-C11-in-stdatomic.h-.patch
@@ -0,0 +1,26 @@
+From 674c50ee54fd7cd304e8b3c4b33d3ff1272ed191 Mon Sep 17 00:00:00 2001
+From: "Gary E. Miller" <gem@rellim.com>
+Date: Sun, 15 Mar 2015 12:17:51 -0700
+Subject: [PATCH 3/3] Whoops, check for C11, not for not C11 in stdatomic.h
+ test.
+
+---
+ SConstruct | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/SConstruct b/SConstruct
+index faa8651..f4ea145 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -650,7 +650,7 @@ else:
+ 
+     # check for C11 or better, and __STDC__NO_ATOMICS__ is no defined
+     # before looking for stdatomic.h
+-    if not config.CheckC11() and  not config.CheckCompilerDefines("__STDC_NO_ATOMICS__") and config.CheckHeader("stdatomic.h"):
++    if config.CheckC11() and  not config.CheckCompilerDefines("__STDC_NO_ATOMICS__") and config.CheckHeader("stdatomic.h"):
+         confdefs.append("#define HAVE_STDATOMIC_H 1\n")
+     else:
+ 	confdefs.append("/* #undef HAVE_STDATOMIC_H */\n")
+-- 
+2.1.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch
new file mode 100644
index 0000000..8527f0d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch
@@ -0,0 +1,52 @@
+From 697e2e9ff97487266d817cdd41bacc83f681e3d7 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sun, 29 Apr 2012 00:05:59 +0200
+Subject: [PATCH 4/4] SConstruct: disable html and man docs building because
+ xmlto-native from OE is broken
+
+It will try to load dtd and fail:
+| xmlto man gpsctl.xml; mv `basename gpsctl.1` gpsctl.1
+| xmlto: /var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/gpsd-3.4/gpsctl.xml does not validate (status 3)
+| xmlto: Fix document syntax or use --skip-validation option
+| I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
+| /var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/gpsd-3.4/gpsctl.xml:8: warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"
+|    "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
+|                                                               ^
+| I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
+| warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"
+| validity error : Could not load the external subset "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"
+| Document /var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/gpsd-3.4/gpsctl.xml does not validate
+| mv: cannot stat `gpsctl.1': No such file or directory
+| scons: *** [gpsctl.1] Error 1
+| scons: building terminated because of errors.
+
+Upstream-Status: Inappropriate [disable feature]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Signed-off-by: Peter A. Bigot <pab@pabigot.com>
+---
+ SConstruct | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 0e518e7..c01a71b 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -704,12 +704,12 @@ size_t strlcpy(/*@out@*/char *dst, /*@in@*/const char *src, size_t size);
+ 
+     manbuilder = mangenerator = htmlbuilder = None
+     if env['manbuild']:
+-        if config.CheckXsltproc():
++        if False and config.CheckXsltproc():
+             mangenerator = 'xsltproc'
+             build = "xsltproc --nonet %s $SOURCE >$TARGET"
+             htmlbuilder = build % docbook_html_uri
+             manbuilder = build % docbook_man_uri
+-        elif WhereIs("xmlto"):
++        elif False and WhereIs("xmlto"):
+             mangenerator = 'xmlto'
+             xmlto = "xmlto %s $SOURCE || mv `basename $TARGET` `dirname $TARGET`"
+             htmlbuilder = xmlto % "html-nochunks"
+-- 
+1.8.5.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb
new file mode 100644
index 0000000..d023c5d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb
@@ -0,0 +1,7 @@
+SUMMARY = "Machine specific gpsd config"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/BSD;md5=3775480a712fc46a69647678acb234cb"
+
+# empty by default
+# BSP layers can add stuff like meta-openmoko example:
+# 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/60-gpsd.rules b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/60-gpsd.rules
new file mode 100644
index 0000000..61143b8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/60-gpsd.rules
@@ -0,0 +1,47 @@
+# udev rules for gpsd
+# $Id$
+#
+# GPSes don't have their own USB device class.  They're serial-over-USB
+# devices, so what you see is actually the ID of the serial-over-USB chip.
+# Fortunately, just two of these account for over 80% of consumer-grade
+# GPS sensors.  The gpsd.hotplug.wrapper script will tell a running gpsd
+# that it should look at the device that just went active, because it
+# might be a GPS.
+#
+# The following setup works on Debian - something similar will apply on 
+# other distributions:
+# 
+#   /etc/udev/gpsd.rules
+#   /etc/udev/rules.d/025_gpsd.rules -> ../gpsd.rules
+#   /lib/udev/gpsd.hotplug.wrapper
+#   /lib/udev/gpsd.hotplug
+# 
+# Setting the link in /etc/udev/rules.d activates the rule and determines
+# when to run it on boot (similar to init.d processing).
+
+SUBSYSTEM!="tty", GOTO="gpsd_rules_end"
+
+# Prolific Technology, Inc. PL2303 Serial Port
+ATTR{idVendor}=="067b", ATTR{idProduct}=="2303", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+# ATEN International Co., Ltd UC-232A Serial Port [pl2303]
+ATTR{idVendor}=="0557", ATTR{idProduct}=="2008", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+# FTDI 8U232AM
+ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+# Cypress M8/CY7C64013 (DeLorme uses these)
+ATTR{idVendor}=="1163", ATTR{idProduct}=="0100", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+# PS-360 OEM (Microsoft GPS sold with Street and Trips 2005)
+ATTR{idVendor}=="067b", ATTR{idProduct}=="aaa0", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+# Garmin International GPSmap, various models (tested with Garmin GPS 18 USB)
+ATTR{idVendor}=="091e", ATTR{idProduct}=="0003", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+# Cygnal Integrated Products, Inc. CP210x Composite Device (Used by Holux m241)
+ATTR{idVendor}=="10c4", ATTR{idProduct}=="ea60", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+# u-blox AG, u-blox 5 (tested with Navilock NL-402U)
+ATTR{idVendor}=="1546", ATTR{idProduct}=="01a5", SYMLINK="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+# FTDI FT232
+ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", SYMLINK="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+# u-blox 4
+ATTR{idVendor}=="1546", ATTR{idProduct}=="01a4", SYMLINK="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+
+ACTION=="remove", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+
+LABEL="gpsd_rules_end"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd
new file mode 100755
index 0000000..ba73daf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd
@@ -0,0 +1,136 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides:          gpsd
+# Required-Start:    $remote_fs $network
+# Should-Start:      bluetooth dbus udev
+# Required-Stop:     $remote_fs $network
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: GPS (Global Positioning System) daemon start/stop script
+# Description:       Start/Stop script for the gpsd service daemon,
+#                    which is able to monitor one or more GPS devices
+#                    connected to a host computer, making all data on
+#                    the location and movements of the sensors available
+#                    to be queried on TCP port 2947.
+### END INIT INFO
+
+# Author: Bernd Zeimetz <bzed@debian.org>
+#
+# Please remove the "Author" lines above and replace them
+# with your own name if you copy and modify this script.
+
+# Do NOT "set -e"
+
+# PATH should only include /usr/* if it runs after the mountnfs.sh script
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="GPS (Global Positioning System) daemon"
+NAME=gpsd
+DAEMON=/usr/sbin/$NAME
+PIDFILE=/var/run/$NAME.pid
+SCRIPTNAME=/etc/init.d/$NAME
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Read configuration, if present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+if [ -z "$GPSD_SOCKET" ] && [ -z "$DEVICES" ]; then
+	GPSD_SOCKET=/var/run/gpsd.sock
+fi
+
+if [ -n "$GPSD_SOCKET" ]; then
+        GPSD_OPTIONS="$GPSD_OPTIONS -F $GPSD_SOCKET"
+fi
+
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+	# Return
+	#   0 if daemon has been started
+	#   1 if daemon was already running
+	#   2 if daemon could not be started
+	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test \
+        -- $GPSD_OPTIONS -P $PIDFILE $GPS_DEVICES > /dev/null \
+		|| return 1
+	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
+		$GPSD_OPTIONS -P $PIDFILE $GPS_DEVICES \
+		|| return 2
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+	# Return
+	#   0 if daemon has been stopped
+	#   1 if daemon was already stopped
+	#   2 if daemon could not be stopped
+	#   other if a failure occurred
+	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
+	RETVAL="$?"
+	[ "$RETVAL" = 2 ] && return 2
+	# Many daemons don't delete their pidfiles when they exit.
+	rm -f $PIDFILE
+	return "$RETVAL"
+}
+
+#
+# Function that sends a SIGHUP to the daemon/service
+#
+do_reload() {
+	#
+	# If the daemon can reload its configuration without
+	# restarting (for example, when it is sent a SIGHUP),
+	# then implement that here.
+	#
+	start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
+	return 0
+}
+
+case "$1" in
+  start)
+		echo "Starting $DESC" "$NAME"
+		do_start
+		exit $?
+	;;
+  stop)
+	echo "Stopping $DESC" "$NAME"
+	do_stop
+	exit $?
+	;;
+  status)
+       ;;
+  reload|force-reload)
+	echo "Reloading $DESC" "$NAME"
+	do_reload
+	exit $?
+	;;
+  restart)
+	#
+	# If the "reload" option is implemented then remove the
+	# 'force-reload' alias
+	#
+	echo "Restarting $DESC" "$NAME"
+	do_stop
+	case "$?" in
+	  0|1)
+		do_start
+		exit $?
+		;;
+	  *)
+	 	# Failed to stop
+		exit 1
+		;;
+	esac
+	;;
+  *)
+	echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
+	exit 3
+	;;
+esac
+
+:
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd-default b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd-default
new file mode 100644
index 0000000..0ceff03
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd-default
@@ -0,0 +1,5 @@
+# If you must specify a non-NMEA driver, uncomment and modify the next line
+GPSD_SOCKET="/var/run/gpsd.sock"
+GPSD_OPTIONS="" 
+GPS_DEVICES=""
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd.service b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd.service
new file mode 100644
index 0000000..7131a58
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=GPS (Global Positioning System) Daemon
+Requires=gpsd.socket
+
+[Service]
+EnvironmentFile=/etc/default/gpsd
+ExecStart=/usr/sbin/gpsd -N $GPS_DEVICES
+
+[Install]
+Also=gpsd.socket
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.14.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.14.bb
new file mode 100644
index 0000000..aef9b13
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.14.bb
@@ -0,0 +1,145 @@
+SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices"
+SECTION = "console/network"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d217a23f408e91c94359447735bc1800"
+DEPENDS = "dbus dbus-glib ncurses python libusb1 chrpath-replacement-native pps-tools"
+PROVIDES = "virtual/gpsd"
+
+EXTRANATIVEPATH += "chrpath-native"
+
+SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \
+    file://0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch \
+    file://0002-SConstruct-remove-rpath.patch \
+    file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \
+    file://0004-SConstruct-disable-html-and-man-docs-building-becaus.patch \
+    file://0001-Check-for-__STDC_NO_ATOMICS__-before-using-stdatomic.patch \
+    file://0002-Add-a-test-for-C11-and-check-we-have-C11-before-usin.patch \
+    file://0003-Whoops-check-for-C11-not-for-not-C11-in-stdatomic.h-.patch \
+    file://0001-Include-stdatomic.h-only-in-C-mode.patch \
+    file://0001-libgpsd-core-Fix-issue-with-ACTIVATE-hook-not-being-.patch \
+    file://gpsd-default \
+    file://gpsd \
+    file://60-gpsd.rules \
+    file://gpsd.service \
+"
+SRC_URI[md5sum] = "bc7467009b99e07ba461377b5da6c039"
+SRC_URI[sha256sum] = "504fc812f3c1525a1a48e04bf4d77f9a8066c201448d98089df89d58ef53a8cb"
+
+inherit scons update-rc.d python-dir pythonnative systemd bluetooth
+
+INITSCRIPT_NAME = "gpsd"
+INITSCRIPT_PARAMS = "defaults 35"
+
+SYSTEMD_OESCONS = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false',d)}"
+
+export STAGING_INCDIR
+export STAGING_LIBDIR
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)}"
+PACKAGECONFIG[bluez] = "bluez='true',bluez='false',${BLUEZ}"
+PACKAGECONFIG[qt] = "qt='yes',qt='no',qt4-x11-free"
+EXTRA_OESCONS = " \
+    sysroot=${STAGING_DIR_TARGET} \
+    libQgpsmm='false' \
+    debug='true' \
+    strip='false' \
+    chrpath='yes' \
+    systemd='${SYSTEMD_OESCONS}' \
+    ${EXTRA_OECONF} \
+"
+DISABLE_STATIC = ""
+# this cannot be used, because then chrpath is not found and only static lib is built
+# target=${HOST_SYS}
+
+do_compile_prepend() {
+    export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
+    export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config"
+    export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
+
+    export BUILD_SYS="${BUILD_SYS}"
+    export HOST_SYS="${HOST_SYS}"
+}
+
+do_install() {
+    export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
+    export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config"
+    export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
+
+    export BUILD_SYS="${BUILD_SYS}"
+    export HOST_SYS="${HOST_SYS}"
+
+    export DESTDIR="${D}"
+    # prefix is used for RPATH and DESTDIR/prefix for instalation
+    ${STAGING_BINDIR_NATIVE}/scons prefix=${prefix} install ${EXTRA_OESCONS}|| \
+      bbfatal "scons install execution failed."
+}
+
+do_install_append() {
+    install -d ${D}/${sysconfdir}/init.d
+    install -m 0755 ${WORKDIR}/gpsd ${D}/${sysconfdir}/init.d/
+    install -d ${D}/${sysconfdir}/default
+    install -m 0644 ${WORKDIR}/gpsd-default ${D}/${sysconfdir}/default/gpsd.default
+
+    #support for udev
+    install -d ${D}/${sysconfdir}/udev/rules.d
+    install -m 0644 ${WORKDIR}/60-gpsd.rules ${D}/${sysconfdir}/udev/rules.d
+    install -d ${D}${base_libdir}/udev/
+    install -m 0755 ${S}/gpsd.hotplug ${D}${base_libdir}/udev/
+
+    #support for python
+    install -d ${D}/${PYTHON_SITEPACKAGES_DIR}/gps
+    install -m 755 ${S}/gps/*.py ${D}/${PYTHON_SITEPACKAGES_DIR}/gps
+
+    #support for systemd
+    install -d ${D}${systemd_unitdir}/system/
+    install -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_unitdir}/system/${BPN}.service
+    install -m 0644 ${S}/systemd/${BPN}.socket ${D}${systemd_unitdir}/system/${BPN}.socket
+}
+
+pkg_postinst_${PN}-conf() {
+    update-alternatives --install ${sysconfdir}/default/gpsd gpsd-defaults ${sysconfdir}/default/gpsd.default 10
+}
+
+pkg_postrm_${PN}-conf() {
+    update-alternatives --remove gpsd-defaults ${sysconfdir}/default/gpsd.default
+}
+
+PACKAGES =+ "libgps libgpsd python-pygps-dbg python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils"
+
+FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc \
+                    ${libdir}/libQgpsmm.prl"
+
+FILES_python-pygps-dbg += " ${libdir}/python*/site-packages/gps/.debug"
+
+RDEPENDS_${PN} = "gpsd-gpsctl"
+RRECOMMENDS_${PN} = "gpsd-conf gpsd-udev gpsd-machine-conf"
+
+SUMMARY_gpsd-udev = "udev relevant files to use gpsd hotplugging"
+FILES_gpsd-udev = "${base_libdir}/udev ${sysconfdir}/udev/*"
+RDEPENDS_gpsd-udev += "udev gpsd-conf"
+
+SUMMARY_libgpsd = "C service library used for communicating with gpsd"
+FILES_libgpsd = "${libdir}/libgpsd.so.*"
+
+SUMMARY_libgps = "C service library used for communicating with gpsd"
+FILES_libgps = "${libdir}/libgps.so.*"
+
+SUMMARY_gpsd-conf = "gpsd configuration files and init scripts"
+FILES_gpsd-conf = "${sysconfdir}"
+CONFFILES_gpsd-conf = "${sysconfdir}/default/gpsd.default"
+
+SUMMARY_gpsd-gpsctl = "Tool for tweaking GPS modes"
+FILES_gpsd-gpsctl = "${bindir}/gpsctl"
+
+SUMMARY_gps-utils = "Utils used for simulating, monitoring,... a GPS"
+FILES_gps-utils = "${bindir}/*"
+RDEPENDS_gps-utils = "python-pygps"
+
+SUMMARY_python-pygps = "Python bindings to gpsd"
+FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/*"
+RDEPENDS_python-pygps = "python-core python-curses gpsd python-json"
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "${PN}.socket"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/0001-g_type_init-is-deprecated-for-glib-2.35.0.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/0001-g_type_init-is-deprecated-for-glib-2.35.0.patch
new file mode 100644
index 0000000..063bea6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/0001-g_type_init-is-deprecated-for-glib-2.35.0.patch
@@ -0,0 +1,114 @@
+From 5b859b6e7c82f49d967c25398a8e75b61af9bcc0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 Jun 2013 20:58:51 -0700
+Subject: [PATCH] g_type_init() is deprecated for glib >= 2.35.0
+
+Call it for old versions.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+---
+ examples/list-known-gps-devices.c |    4 ++--
+ examples/simple-gps-dbus.c        |    3 ++-
+ examples/simple-gps-gypsy.c       |    4 ++--
+ examples/simple-gps-satellites.c  |    4 ++--
+ gypsy/gypsy-marshal.c             |    2 +-
+ src/main.c                        |    4 ++--
+ 6 files changed, 11 insertions(+), 10 deletions(-)
+
+diff --git a/examples/list-known-gps-devices.c b/examples/list-known-gps-devices.c
+index c7c4059..0a8b04b 100644
+--- a/examples/list-known-gps-devices.c
++++ b/examples/list-known-gps-devices.c
+@@ -20,9 +20,9 @@ main (int argc,
+     GError *error = NULL;
+     GPtrArray *known_devices;
+     int i;
+-
++#if !GLIB_CHECK_VERSION(2,35,0)
+     g_type_init ();
+-
++#endif
+     discovery = gypsy_discovery_new ();
+     known_devices = gypsy_discovery_list_devices (discovery, &error);
+ 
+diff --git a/examples/simple-gps-dbus.c b/examples/simple-gps-dbus.c
+index f7044e6..76b18aa 100644
+--- a/examples/simple-gps-dbus.c
++++ b/examples/simple-gps-dbus.c
+@@ -121,8 +121,9 @@ main (int    argc,
+ 	DBusConnection *conn;
+ 	DBusError error;
+ 	GMainLoop *mainloop;
+-
++#if !GLIB_CHECK_VERSION(2,35,0)
+ 	g_type_init ();
++#endif
+ 	conn = get_connection ();
+ 
+ 	dbus_error_init (&error);
+diff --git a/examples/simple-gps-gypsy.c b/examples/simple-gps-gypsy.c
+index 0b6b7a6..86033d9 100644
+--- a/examples/simple-gps-gypsy.c
++++ b/examples/simple-gps-gypsy.c
+@@ -67,9 +67,9 @@ main (int    argc,
+ 		g_print ("Usage: %s device\n", argv[0]);
+ 		return 0;
+ 	}
+-
++#if !GLIB_CHECK_VERSION(2,35,0) 
+ 	g_type_init ();
+-
++#endif
+ 	control = gypsy_control_get_default ();
+ 	path = gypsy_control_create (control, argv[1], &error);
+ 	if (path == NULL) {
+diff --git a/examples/simple-gps-satellites.c b/examples/simple-gps-satellites.c
+index 140c98f..9a3f95a 100644
+--- a/examples/simple-gps-satellites.c
++++ b/examples/simple-gps-satellites.c
+@@ -42,9 +42,9 @@ main (int    argc,
+ 		g_print ("Usage: %s device\n", argv[0]);
+ 		return 0;
+ 	}
+-
++#if !GLIB_CHECK_VERSION(2,35,0)
+ 	g_type_init ();
+-
++#endif
+ 	control = gypsy_control_get_default ();
+ 	path = gypsy_control_create (control, argv[1], &error);
+ 	if (path == NULL) {
+diff --git a/gypsy/gypsy-marshal.c b/gypsy/gypsy-marshal.c
+index 6964644..9ac0095 100644
+--- a/gypsy/gypsy-marshal.c
++++ b/gypsy/gypsy-marshal.c
+@@ -5,7 +5,7 @@
+ 
+ #ifdef G_ENABLE_DEBUG
+ #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
+-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
++#define g_marshal_value_peek_char(v)     g_value_get_schar (v)
+ #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
+ #define g_marshal_value_peek_int(v)      g_value_get_int (v)
+ #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
+diff --git a/src/main.c b/src/main.c
+index 3e8a794..ec980e5 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -187,9 +187,9 @@ main (int    argc,
+ 	g_option_context_free (context);
+ 
+ 	umask (022);
+-
++#if !GLIB_CHECK_VERSION(2,35,0)
+ 	g_type_init ();
+-
++#endif
+ 	mainloop = g_main_loop_new (NULL, FALSE);
+ 
+ 	conn = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
+-- 
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/fixups.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/fixups.patch
new file mode 100644
index 0000000..de4d92e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/fixups.patch
@@ -0,0 +1,21 @@
+Upstream-Status: Inappropriate [configuration]
+
+---
+ docs/reference/Makefile.am |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- gypsy.orig/docs/reference/Makefile.am
++++ gypsy/docs/reference/Makefile.am
+@@ -81,10 +81,12 @@ expand_content_files=
+ # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
+ 
+ INCLUDES=-I$(top_srcdir) $(GYPSY_CFLAGS)
+ GTKDOC_LIBS=$(top_builddir)/gypsy/libgypsy.la $(GYPSY_LIBS)
+ 
++EXTRA_DIST =
++CLEANFILES =
+ # This includes the standard gtk-doc make rules, copied by gtkdocize.
+ include $(top_srcdir)/gtk-doc.make
+ 
+ # Other files to distribute
+ # e.g. EXTRA_DIST += version.xml.in
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy.inc b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy.inc
new file mode 100644
index 0000000..9efd356
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy.inc
@@ -0,0 +1,25 @@
+SUMMARY = "GPS Multiplexing Daemon"
+DESCRIPTION = "Gypsy is a GPS multiplexing daemon which allows \
+multiple clients to access GPS data from multiple GPS sources \
+concurrently.  Gypsy also hides the details of parsing NMEA from the \
+client applications, passing the data as simple values for the clients \
+to use."
+LICENSE = "GPLv2.0 & LGPLv2.1"
+SECTION = "console/network"
+DEPENDS = "glib-2.0 dbus bluez4 dbus-glib libxslt-native libxslt"
+
+PNBLACKLIST[gypsy] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
+
+inherit autotools pkgconfig gtk-doc
+PACKAGES += "libgypsy"
+
+FILES_${PN} = " \
+  ${sysconfdir}/gypsy.conf \
+  ${sysconfdir}/dbus-1 \
+  ${libexecdir}/gypsy-daemon \
+  ${datadir}/dbus-1 \
+"
+
+FILES_libgypsy = " \
+  ${libdir}/libgypsy${SOLIBS} \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_0.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_0.9.bb
new file mode 100644
index 0000000..24c8987
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_0.9.bb
@@ -0,0 +1,15 @@
+require gypsy.inc
+
+PR = "r2"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+                    file://COPYING.lib;md5=7fbc338309ac38fefcd64b04bb903e34 \
+                    file://src/main.c;beginline=1;endline=25;md5=3fe64e27e61b289b77383a54a982cbdd \
+                    file://gypsy/gypsy-time.h;beginline=1;endline=24;md5=06432ea19a7b6607428d04d9dadc37fd"
+
+SRC_URI += "http://gypsy.freedesktop.org/releases/gypsy-${PV}.tar.gz \
+           file://0001-g_type_init-is-deprecated-for-glib-2.35.0.patch \
+          "
+
+SRC_URI[md5sum] = "e2d186df9c2cc3b70a027043e22acf1a"
+SRC_URI[sha256sum] = "14e1cbe17351f408538e033ca370b4bf51ccf9c88744e236ddfb271904f154d6"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_git.bb
new file mode 100644
index 0000000..6ab16e6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_git.bb
@@ -0,0 +1,22 @@
+require gypsy.inc
+
+DEFAULT_PREFERENCE = "-1"
+
+SRCREV = "be8c9c382d2d1d37b51d29b0843045121ec90213"
+PV = "0.9+git${SRCPV}"
+PR = "r2"
+
+S = "${WORKDIR}/git"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+                    file://COPYING.lib;md5=7fbc338309ac38fefcd64b04bb903e34 \
+                    file://src/main.c;beginline=1;endline=25;md5=3fe64e27e61b289b77383a54a982cbdd \
+                    file://gypsy/gypsy-time.h;beginline=1;endline=24;md5=06432ea19a7b6607428d04d9dadc37fd"
+
+SRC_URI += "git://anongit.freedesktop.org/gypsy \
+            file://fixups.patch"
+
+do_configure_prepend() {
+  # from patch 563716fc596d53f1085949a9dd11a62f39b2d624
+  test -d ${S}/m4 || mkdir -p ${S}/m4
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/libspatialite/libspatialite-4.2.0/geos-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/libspatialite/libspatialite-4.2.0/geos-config.patch
new file mode 100644
index 0000000..28bd7da
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/libspatialite/libspatialite-4.2.0/geos-config.patch
@@ -0,0 +1,17 @@
+https://www.gaia-gis.it/fossil/libspatialite/tktview?name=abeeaad448
+
+Upstream-Status: Submitted [rpm5-devel@rpm5.org]
+
+Index: libspatialite-4.2.0/configure.ac
+===================================================================
+--- libspatialite-4.2.0.orig/configure.ac
++++ libspatialite-4.2.0/configure.ac
+@@ -260,7 +260,7 @@ if test x"$enable_geos" != "xno"; then
+   fi
+   # Extract the linker and include flags
+   GEOS_LDFLAGS=`$GEOSCONFIG --ldflags`
+-  GEOS_CFLAGS=-I`$GEOSCONFIG --includes`
++  GEOS_CFLAGS=`$GEOSCONFIG --cflags`
+   AC_SUBST([GEOS_LDFLAGS])
+   AC_SUBST([GEOS_CFLAGS])	
+   # Ensure that we can parse geos_c.h
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/libspatialite/libspatialite_4.2.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/libspatialite/libspatialite_4.2.0.bb
new file mode 100644
index 0000000..d66dc87
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/libspatialite/libspatialite_4.2.0.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Library extending the SQLite core to support fully fledged Spatial SQL capabilities"
+HOMEPAGE = "https://www.gaia-gis.it/fossil/libspatialite/"
+SECTION = "libs"
+DEPENDS = "proj geos sqlite3 libxml2 zlib"
+
+LICENSE = "MPLv1.1 & GPLv2+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0e92e1a36cc384b60f5b31dde0bdd39e"
+
+SRC_URI = "http://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-${PV}.tar.gz"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--enable-freexl=no"
+
+# package plugins for SQLite3
+PACKAGES += "${PN}-plugin"
+INSANE_SKIP_${PN}-plugin = "dev-so"
+FILES_${PN}-plugin += "${libdir}/mod_*"
+
+SRC_URI[md5sum] = "83305ed694a77152120d1f74c5151779"
+SRC_URI[sha256sum] = "9f138a6854740c7827fdee53845eb1485fce3e805a7aa9fc9151f8046ebd312d"
+
+SRC_URI += "file://geos-config.patch"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit-fpu.inc b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit-fpu.inc
new file mode 100644
index 0000000..d963702
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit-fpu.inc
@@ -0,0 +1,6 @@
+
+def get_navit_fpu_setting(bb, d):
+    if d.getVar('TARGET_FPU', 1) in [ 'soft' ]:
+        return "--enable-avoid-float"
+    return ""
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit.inc b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit.inc
new file mode 100644
index 0000000..1c0bfda
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit.inc
@@ -0,0 +1,95 @@
+DESCRIPTION = "Navit is a car navigation system with routing engine."
+LICENSE = "GPLv2 & LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ed539d099d6ce08de6ea0dfed9ecb333 \
+                    file://LGPL-2;md5=3214f080875748938ba060314b4f727d \
+                    file://GPL-2;md5=751419260aa954499f7abaabaa882bbe \
+"
+
+SECTION = "x11/applications"
+DEPENDS = "glib-2.0 gd gypsy librsvg-native"
+RDEPENDS_${PN} = " ${PN}-icons ${PN}-config "
+RRECOMMENDS_${PN} = "gpsd ${PN}-dbus ${PN}-speech-cmdline ${PN}-gui-internal ${PN}-graphics-gtk"
+RSUGGESTS_${PN} = "flite-alsa espeak ${PN}-speech-dbus ${PN}-gui-gtk ${PN}-gui-qml ${PN}-graphics-sdl ${PN}-graphics-qt ${PN}-maptool"
+
+PE = "1"
+INC_PR = "r11"
+
+# Depends on gypsy
+PNBLACKLIST[navit] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
+
+inherit autotools gettext pkgconfig
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[fribidi] = "--enable-fribidi,--disable-fribidi,fribidi"
+PACKAGECONFIG[imlib2] = "--enable-imlib2,--disable-imlib2,imlib2"
+PACKAGECONFIG[sdl] = "--enable-graphics-sdl,--disable-graphics-sdl,libsdl"
+PACKAGECONFIG[gtk] = "--enable-graphics-gtk-drawing-area --enable-gui-gtk,--disable-graphics-gtk-drawing-area --disable-gui-gtk,gtk+"
+PACKAGECONFIG[qt] = "--enable-graphics-qt-qpainter --enable-gui-qml,--disable-graphics-qt-qpainter --disable-gui-qml,qt4-x11-free,qt4-plugin-imageformat-svg"
+
+EXTRA_OECONF += " \
+    --disable-binding-python \
+    --disable-samplemap \
+    --enable-avoid-unaligned \
+    --enable-svg2png-scaling-flag=32 \
+    --disable-speech-speech-dispatcher \
+    --enable-cache-size=20971520 \
+"
+
+#  --enable-avoid-float \
+#check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points
+require navit-fpu.inc
+EXTRA_OECONF += "${@get_navit_fpu_setting(bb, d)}"
+
+PACKAGES =+ "${PN}-maptool ${PN}-config ${PN}-dbus ${PN}-speech-cmdline ${PN}-speech-dbus ${PN}-gui-gtk ${PN}-gui-internal ${PN}-gui-qml ${PN}-graphics-sdl ${PN}-graphics-gtk ${PN}-graphics-qt ${PN}-icons"
+
+EXTRA_AUTORECONF = " -I m4"
+
+CONFFILES_${PN}-config += "${datadir}/navit/navit.default.xml \
+    ${datadir}/navit/navit.xml \
+    ${datadir}/navit/maps.xml \
+    ${datadir}/navit/osd.xml \
+    ${datadir}/navit/speech.xml \
+    ${datadir}/navit/plugins.xml \
+"
+
+SRC_URI += "file://navit.xml \
+            file://maps.xml \
+            file://osd.xml \
+            file://speech.xml \
+            file://plugins.xml \
+"
+
+FILES_${PN} += "${libdir}/${BPN}/*/*.so ${datadir}/icons"
+FILES_${PN}-dbg += "${libdir}/${BPN}/*/.debug"
+FILES_${PN}-maptool = " ${bindir}/maptool "
+FILES_${PN}-config = " ${datadir}/navit/*.xml "
+FILES_${PN}-dbus = " ${datadir}/dbus-1/services/ ${libdir}/${BPN}/binding/libbinding_dbus.so "
+FILES_${PN}-speech-cmdline = " ${libdir}/${BPN}/speech/libspeech_cmdline.so "
+FILES_${PN}-speech-dbus = " ${libdir}/${BPN}/speech/libspeech_dbus.so "
+FILES_${PN}-gui-gtk = " ${libdir}/${BPN}/gui/libgui_gtk.so "
+FILES_${PN}-gui-qml = " ${libdir}/${BPN}/gui/libgui_qml.so ${datadir}/navit/skins/ "
+FILES_${PN}-gui-internal = " ${libdir}/${BPN}/gui/libgui_internal.so "
+FILES_${PN}-graphics-sdl = " ${libdir}/${BPN}/graphics/libgraphics_sdl.so "
+FILES_${PN}-graphics-qt = " ${libdir}/${BPN}/graphics/libgraphics_qt_qpainter.so "
+FILES_${PN}-graphics-gtk = " ${libdir}/${BPN}/graphics/libgraphics_gtk_drawing_area.so "
+FILES_${PN}-icons = "/usr/share/navit/xpm/"
+
+do_configure_prepend() {
+    # MOC=`$PKG_CONFIG QtGui --variable=moc_location` returns only /usr/bin/moc4 which is not available on hosts without Qt
+    sed -i "s#MOC=#MOC=${STAGING_DIR_NATIVE}#g" ${S}/configure.in
+}
+
+do_install_append() {
+    # fix QA issue
+    sed -i 's#Categories=GTK;Utility;Geography;#Categories=Graphics;#g' ${D}${datadir}/applications/navit.desktop
+
+    rm ${D}${libdir}/${BPN}/*/*.la
+
+    #Use split config
+    mv ${D}${datadir}/navit/navit.xml ${D}${datadir}/navit/navit.default.xml
+    install -m 0644 ${WORKDIR}/navit.xml ${D}${datadir}/navit/navit.xml
+    install -m 0644 ${WORKDIR}/maps.xml ${D}${datadir}/navit/maps.xml
+    install -m 0644 ${WORKDIR}/osd.xml ${D}${datadir}/navit/osd.xml
+    install -m 0644 ${WORKDIR}/speech.xml ${D}${datadir}/navit/speech.xml
+    install -m 0644 ${WORKDIR}/plugins.xml ${D}${datadir}/navit/plugins.xml
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/configure.add.imlib2.option.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/configure.add.imlib2.option.patch
new file mode 100644
index 0000000..be41792
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/configure.add.imlib2.option.patch
@@ -0,0 +1,16 @@
+--- a/configure.in.orig	2014-05-10 15:57:18.146362110 +0200
++++ b/configure.in	2014-05-10 15:59:27.859358845 +0200
+@@ -498,10 +498,13 @@
+ AC_SUBST(FRIBIDI_CFLAGS)
+ AC_SUBST(FRIBIDI_LIBS)
+ 
++AC_ARG_ENABLE(imlib2, [  --disable-imlib2  disable imlib2 support], imlib2=$enableval;imlib2_reason="configure parameter", imlib2=yes)
++if test x"${imlib2}" = "xyes"; then
+ PKG_CHECK_MODULES(IMLIB2, [imlib2], [imlib2_pkgconfig=yes], [imlib2_pkgconfig=no])
+ if test "x$imlib2_pkgconfig" = "xyes"; then
+    AC_DEFINE(HAVE_IMLIB2, 1, [Define to 1 if you have imlib2])
+ fi
++fi
+ AC_SUBST(IMLIB2_CFLAGS)
+ AC_SUBST(IMLIB2_LIBS)
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/freetype-include-path.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/freetype-include-path.patch
new file mode 100644
index 0000000..288997b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/freetype-include-path.patch
@@ -0,0 +1,28 @@
+Description: Fix FTBFS caused by freetype headers path change.
+Author: Gilles Filippini <pini@debian.org>
+Bug-Debian: http://bugs.debian.org/733378
+Index: navit/navit/font/freetype/font_freetype.c
+===================================================================
+--- navit.orig/navit/font/freetype/font_freetype.c	2013-09-23 10:43:32.000000000 +0200
++++ navit/navit/font/freetype/font_freetype.c	2013-12-30 19:54:45.000000000 +0100
+@@ -32,7 +32,7 @@
+ #if USE_FRIBIDI
+ #include <fribidi.h>
+ #endif
+-#include <freetype/ftglyph.h>
++#include <ftglyph.h>
+ #include "point.h"
+ #include "graphics.h"
+ #include "debug.h"
+diff -uNr navit.orig/navit/graphics/sdl/graphics_sdl.c navit/navit/graphics/sdl/graphics_sdl.c
+--- navit.orig/navit/graphics/sdl/graphics_sdl.c	2012-06-22 14:16:01.000000000 +0200
++++ navit/navit/graphics/sdl/graphics_sdl.c	2014-01-01 22:31:10.892948164 +0100
+@@ -84,7 +84,7 @@
+ #else
+ #include <ft2build.h>
+ #include FT_FREETYPE_H
+-#include <freetype/ftglyph.h>
++#include <ftglyph.h>
+ #endif
+ #include <event.h>
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/maps.xml b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/maps.xml
new file mode 100644
index 0000000..6f59f20
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/maps.xml
@@ -0,0 +1,24 @@
+                <!-- If you have the reiseplaner maps installed, set enabled="yes" in the next line and set the path correctly -->
+                <mapset enabled="no">
+                        <map type="mg" enabled="yes" data="/opt/reiseplaner/travel/DE.map"/>
+                        <map type="mg" enabled="yes" data="/opt/reiseplaner/travel/DE.map/smp1.smp"/>
+                        <map type="mg" enabled="yes" data="/opt/reiseplaner/travel/DE.map/smp2.smp"/>
+                        <map type="mg" enabled="yes" data="/opt/reiseplaner/travel/DE.map/smp3.smp"/>
+                        <map type="mg" enabled="yes" data="/opt/reiseplaner/travel/DE.map/smp4.smp"/>
+                        <map type="mg" enabled="yes" data="/opt/reiseplaner/travel/DE.map/smp5.smp"/>
+                </mapset>
+
+                <!-- If you dont want to use the sample map, either set enabled="no" in the next line or remove the xml file from the maps directory -->
+                <mapset enabled="no">
+                        <xi:include href="$NAVIT_SHAREDIR/maps/*.xml"/>
+                </mapset>
+
+                <!-- Mapset template for openstreetmaps -->
+                <mapset enabled="yes">
+                        <map type="binfile" enabled="yes" data="/media/mmc2/MapsNavit/osm_europe.bin"/>
+                </mapset>
+
+                <!-- Mapset template for garmin maps -->
+                <mapset enabled="no">
+                        <map type="garmin" enabled="yes" data="/path/to/img" debug="4"/>
+                </mapset>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/navit.xml b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/navit.xml
new file mode 100644
index 0000000..58c8c22
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/navit.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE config SYSTEM "navit.dtd">
+<config xmlns:xi="http://www.w3.org/2001/XInclude">
+	<xi:include href="/usr/share/navit/plugins.xml"/>
+	<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/debug)"/>
+
+	<navit center="4808 N 1134 E" zoom="256" tracking="1" orientation="-1" recent_dest="10" drag_bitmap="1">
+		<graphics type="gtk_drawing_area"/>
+		<gui type="gtk" enabled="no" menubar="1" toolbar="1" statusbar="1"/>
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/gui[@type='internal'])"/>
+		<!-- or comment gtk version above and try:
+		opkg install navit-graphics-qt
+		opkg install navit-gui-qml
+		<graphics type="qt_qpainter"/>
+		<gui type="qml" enabled="yes" menubar="1" toolbar="1" statusbar="1"/>
+		-->
+		<xi:include href="/usr/share/navit/osd.xml"/>
+		<log enabled="no" type="textfile_debug" data="debug_%Y%m%d-%i.txt" flush_size="1000" flush_time="30"/>
+		<vehicle name="Local GPS" profilename="car" enabled="yes" active="1" source="gpsd://localhost" gpsd_query="w+xj">
+			<!-- <log type="gpx" attr_types="position_time_iso8601,position_direction,position_speed,profilename,position_radius" data="track_%Y%m%d-%i.gpx" flush_size="1000" flush_time="30"/> -->
+		</vehicle>
+
+		<vehicle name="Demo" profilename="car" enabled="no" active="yes" source="demo://"/>
+
+		<!-- For the cumulative displacement filter to be enabled, set cdf_histsize="x" here, with x being an integer somewhere around 4 -->
+		<tracking cdf_histsize="0"/>
+
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/vehicleprofile[@name='car'])"/>
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/vehicleprofile[@name='bike'])"/>
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/vehicleprofile[@name='pedestrian'])"/>
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/vehicleprofile[@name='horse'])"/>
+
+		<route destination_distance="50"/>
+
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/navigation)"/>
+
+		<xi:include href="/usr/share/navit/speech.xml"/>
+		<xi:include href="/usr/share/navit/maps.xml"/>
+
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/layout[@name='Car'])"/>
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/layout[@name='Car-dark'])"/>
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/layout[@name='Bike'])"/>
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/layout[@name='T@H'])"/>
+	</navit>
+</config>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/osd.xml b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/osd.xml
new file mode 100644
index 0000000..2d0f9ff
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/osd.xml
@@ -0,0 +1,15 @@
+                <!-- osd items allow to position display and control items directly on top of the map: -->
+                <osd enabled="no" type="compass"/>
+                <osd enabled="no" type="eta"/>
+                <osd enabled="no" type="navigation_distance_to_target"/>
+                <osd enabled="no" type="navigation"/>
+                <osd enabled="no" type="navigation_distance_to_next"/>
+                <osd enabled="no" type="navigation_next_turn"/>
+
+                <!-- Commands include gui_internal_menu, gui_internal_fullscreen, zoom_in and zoom_out.
+                         Usage of negative values change the button origins. x="0" y="0" specifies the top left, x="-0" y="-0" the bottom right corner.
+                         It's always the top left corner of the icon, so you need to consider the icon's size when you enter the values. -->
+                <osd enabled="no" type="button" x="0" y="0" command="gui.fullscreen()" src="toggle_fullscreen.xpm"/>
+                <osd enabled="no" type="button" x="-96" y="0" command="gui.menu()" src="menu.xpm"/>
+                <osd enabled="no" type="button" x="-96" y="-96" command="zoom_in()" src="zoom_in.xpm"/>
+                <osd enabled="no" type="button" x="0" y="-96" command="zoom_out()" src="zoom_out.xpm"/>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/plugins.xml b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/plugins.xml
new file mode 100644
index 0000000..015b055
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/plugins.xml
@@ -0,0 +1,6 @@
+<plugins>
+	<plugin path="$NAVIT_LIBDIR/*/${NAVIT_LIBPREFIX}lib*.so" ondemand="yes"/>
+	<plugin path="$NAVIT_LIBDIR/autoload/${NAVIT_LIBPREFIX}lib*.so"/>
+	<plugin path="$NAVIT_LIBDIR/*/${NAVIT_LIBPREFIX}libbinding_dbus.so" active="yes"/>
+	<plugin path="$NAVIT_LIBDIR/*/${NAVIT_LIBPREFIX}libgraphics_null.so" active="no"/>
+</plugins>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/speech.xml b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/speech.xml
new file mode 100644
index 0000000..28c4990
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/speech.xml
@@ -0,0 +1,8 @@
+                <!-- Navit provides speech output in text format.
+                         If you have a speech synthesizer like festival lite installed, you can get turn by turn directions out of navit. Please set the "cps"-value to how many characters your tts engine approximately speaks per second.
+                         The default is text output to the shell -->
+                <!-- <speech type="cmdline" data="echo 'Fix the speech tag in navit.xml to let navit say:' '%s'" cps="15"/> -->
+                <!-- <speech type="cmdline" data="espeak -s 150 -v czech '%s' &amp;"/> -->
+                <!-- <speech type="cmdline" data="flite -t '%s'"/> -->
+                <!-- <speech type="cmdline" data="/usr/local/bin/say.sh '%s'"/> -->
+                <speech type="cmdline" data="espeak '%s' &amp;"/>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit_svn.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit_svn.bb
new file mode 100644
index 0000000..bdfbb4b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit_svn.bb
@@ -0,0 +1,11 @@
+require navit.inc
+
+SRCREV = "5310"
+PV = "0.2.0+svnr${SRCPV}"
+PR = "${INC_PR}.3"
+
+S = "${WORKDIR}/${BPN}"
+SRC_URI += "svn://anonymous@navit.svn.sourceforge.net/svnroot/navit/trunk;module=navit;protocol=http \
+    file://freetype-include-path.patch \
+    file://configure.add.imlib2.option.patch \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery/orrery.png b/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery/orrery.png
new file mode 100644
index 0000000..d9865b7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery/orrery.png
Binary files differ
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery/use.GdkPixbuf.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery/use.GdkPixbuf.patch
new file mode 100644
index 0000000..92d194d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery/use.GdkPixbuf.patch
@@ -0,0 +1,59 @@
+From: Benjamin Deering
+Subject: orrery crashing X
+Date: Thursday, September 2, 2010 - 5:25 pm
+Link: http://kerneltrap.org/mailarchive/openmoko-community/2010/9/3/13218
+
+diff -uNr orrery.orig//orrery.c orrery/orrery.c
+--- orrery.orig//orrery.c	2009-11-30 06:59:44.000000000 +0100
++++ orrery/orrery.c	2010-11-15 22:33:17.000000000 +0100
+@@ -1238,12 +1238,44 @@
+     }
+     currentEntry = currentEntry->forwardPointer;
+   }
+-  if (nDarkGreyPoints > 0)
+-    gdk_draw_points(pixmap, darkGreyGC, darkGreyPoints, nDarkGreyPoints);
+-  if (nGreyPoints > 0)
+-    gdk_draw_points(pixmap, greyGC, greyPoints, nGreyPoints);
+-  if (nWhitePoints > 0)
+-    gdk_draw_points(pixmap, whiteGC, whitePoints, nWhitePoints);
++  GdkPixbuf* starDrawingBuf = gdk_pixbuf_get_from_drawable( NULL,
++                                                            pixmap,
++                                                            gdk_colormap_get_system()
++                                                            , 0, 0, 0, 0, displayWidth, displayHeight);
++  g_assert (gdk_pixbuf_get_bits_per_sample (starDrawingBuf) == 8);
++  guchar* p;
++  int rowstride = gdk_pixbuf_get_rowstride (starDrawingBuf);
++  guchar* pixels = gdk_pixbuf_get_pixels (starDrawingBuf);
++  int n_channels = gdk_pixbuf_get_n_channels (starDrawingBuf);
++  GdkGCValues starGCval;
++  GdkColor starColor;
++  int pointNum;
++  gdk_gc_get_values(darkGreyGC, &starGCval);
++  gdk_colormap_query_color( gdk_gc_get_colormap(darkGreyGC),starGCval.foreground.pixel, &starColor );
++  for( pointNum = 0; pointNum < nDarkGreyPoints; pointNum++) {
++    p = pixels + darkGreyPoints[pointNum].y * rowstride + darkGreyPoints[pointNum].x * n_channels;
++    p[0] = starColor.red & 0xff;
++    p[1] = starColor.green & 0xff;
++    p[2] = starColor.blue & 0xff;
++  }
++  gdk_gc_get_values(greyGC, &starGCval);
++  gdk_colormap_query_color( gdk_gc_get_colormap(greyGC), starGCval.foreground.pixel, &starColor );
++  for( pointNum = 0; pointNum < nGreyPoints; pointNum++) {
++    p = pixels + greyPoints[pointNum].y * rowstride + greyPoints[pointNum].x * n_channels;
++    p[0] = starColor.red & 0xff;
++    p[1] = starColor.green & 0xff;
++    p[2] = starColor.blue & 0xff;
++  }
++  gdk_gc_get_values(whiteGC, &starGCval);
++  gdk_colormap_query_color( gdk_gc_get_colormap(whiteGC), starGCval.foreground.pixel, &starColor );
++  for( pointNum = 0; pointNum < nWhitePoints; pointNum++) {
++    p = pixels + whitePoints[pointNum].y * rowstride + whitePoints[pointNum].x * n_channels;
++    p[0] = starColor.red & 0xff;
++    p[1] = starColor.green & 0xff;
++    p[2] = starColor.blue & 0xff;
++  }
++  gdk_draw_pixbuf ( pixmap , NULL , starDrawingBuf,
++            0, 0, 0, 0, displayWidth, displayHeight, GDK_RGB_DITHER_NORMAL, 0, 0 ) ;
+ }
+ 
+ void makeTimeString(char *string)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb
new file mode 100644
index 0000000..40a6df3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Astronomical application which displays the night sky"
+HOMEPAGE    = "http://projects.openmoko.org/projects/orrery/"
+SECTION = "x11/scientific"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://orrery.c;endline=25;md5=d792bdf2b591972da175aecc38d88cfe"
+DEPENDS = "gtk+"
+
+inherit autotools-brokensep pkgconfig
+
+SRC_URI = "http://projects.openmoko.org/frs/download.php/923/orrery_2.7_clean.tar.gz \
+           file://orrery.png \
+           file://use.GdkPixbuf.patch \
+"
+
+SRC_URI[md5sum]    = "bd62a33e7554ee1030313dfcdefcda8b"
+SRC_URI[sha256sum] = "645166a5e05b2064ab630534a514697fc47b681951e7fe1d635c259cbdf7a5e6"
+
+S = "${WORKDIR}/${BPN}"
+
+do_configure_prepend() {
+    # fix DSO issue with binutils-2.22
+    sed -i 's/ -lrt/ -lrt -lm/g' ${S}/Makefile.am
+}
+do_install_append() {
+    install -d ${D}${datadir}/orrery
+    cp -R --no-dereference --preserve=mode,links -v ${S}/data/* ${D}${datadir}/orrery
+    chown -R root:root ${D}${datadir}/orrery
+    install -d ${D}${datadir}/icons
+    install -m 0755 ${WORKDIR}/orrery.png ${D}${datadir}/icons
+}
+
+FILES_${PN} += "${datadir}/icons/orrery.png"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/proj/proj_4.8.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/proj/proj_4.8.0.bb
new file mode 100644
index 0000000..b4bfaf4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/proj/proj_4.8.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "PROJ.4 - Cartographic Projections library"
+HOMEPAGE = "http://trac.osgeo.org/proj/"
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=74d9aaec5fa0cd734341e8c4dc91b608"
+
+SRC_URI = "http://download.osgeo.org/proj/proj-${PV}.tar.gz"
+SRC_URI[md5sum] = "d815838c92a29179298c126effbb1537"
+SRC_URI[sha256sum] = "2db2dbf0fece8d9880679154e0d6d1ce7c694dd8e08b4d091028093d87a9d1b5"
+
+inherit autotools pkgconfig lib_package
+
+FILES_${PN} += "${datadir}/proj"