summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /sci-geosciences/gpsd
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'sci-geosciences/gpsd')
-rw-r--r--sci-geosciences/gpsd/Manifest10
-rw-r--r--sci-geosciences/gpsd/files/2.95-disable-strip.patch10
-rw-r--r--sci-geosciences/gpsd/files/2.95-fix-ldflags.patch12
-rw-r--r--sci-geosciences/gpsd/files/2.96-fix-ldflags.patch21
-rw-r--r--sci-geosciences/gpsd/files/2.96-fix-tests.patch23
-rw-r--r--sci-geosciences/gpsd/files/2.96-pkgconfig.patch37
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.10-dbus.patch32
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.10-nmea-disabled.patch54
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.10-rpath.patch13
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.10-udev-install.patch40
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.11-hotplug-config.patch27
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.11-no-ntpshm.patch97
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.11-rpath.patch12
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.13-ntpshm.patch25
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.15-broken-install.patch28
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.15-dynamic-libs.patch100
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.15-libgpsd.patch80
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.3-ldflags.patch15
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.3-msocks-init.patch33
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.3-pkg-config.patch49
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.3-release-rev.patch39
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.3-setup.py17
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.3-udev-install.patch31
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.4-always-install-man-pages.patch36
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.4-cfgetispeed.patch47
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.4-chrpath.patch69
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.4-gpsmon-lm.patch29
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.4-no-man-gen.patch13
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.4-strptime.patch26
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.5-clock.patch42
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.6-debug.patch221
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.6-rpath.patch13
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.7-gps_regress.patch63
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.7-no-export-t.patch44
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.7-rpath.patch17
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.8-ldflags.patch15
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.8-libgps.patch38
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.8-no-export-t.patch44
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.8-udev.patch38
-rw-r--r--sci-geosciences/gpsd/files/gpsd.conf-28
-rwxr-xr-xsci-geosciences/gpsd/files/gpsd.init-239
-rw-r--r--sci-geosciences/gpsd/gpsd-2.95-r1.ebuild108
-rw-r--r--sci-geosciences/gpsd/gpsd-2.96-r1.ebuild116
-rw-r--r--sci-geosciences/gpsd/gpsd-3.10.ebuild168
-rw-r--r--sci-geosciences/gpsd/gpsd-3.11.ebuild167
-rw-r--r--sci-geosciences/gpsd/gpsd-3.13.ebuild166
-rw-r--r--sci-geosciences/gpsd/gpsd-3.15.ebuild167
-rw-r--r--sci-geosciences/gpsd/gpsd-3.6.ebuild163
-rw-r--r--sci-geosciences/gpsd/gpsd-3.7.ebuild168
-rw-r--r--sci-geosciences/gpsd/gpsd-3.8.ebuild184
-rw-r--r--sci-geosciences/gpsd/gpsd-3.9-r1.ebuild187
-rw-r--r--sci-geosciences/gpsd/gpsd-3.9.ebuild180
-rw-r--r--sci-geosciences/gpsd/gpsd-9999.ebuild165
-rw-r--r--sci-geosciences/gpsd/metadata.xml17
54 files changed, 3563 insertions, 0 deletions
diff --git a/sci-geosciences/gpsd/Manifest b/sci-geosciences/gpsd/Manifest
new file mode 100644
index 000000000000..ecc11bc23b53
--- /dev/null
+++ b/sci-geosciences/gpsd/Manifest
@@ -0,0 +1,10 @@
+DIST gpsd-2.95.tar.gz 1385681 SHA256 832343a53921a8371efa540ba57c91dadedda445e571c1beb97c06539ef450ae SHA512 f48dd0a2942e39de0b1d38a8979e123edbd39de05e2786419433826dfbf9de579fcb9b2c179385bc84313817a4266fd76560253b4e67e2daf419618699abbf98 WHIRLPOOL e9da24e45efee327f8849a4f52e39ebd7d2ce06a0d7372a3b11baee68129e72be62bfd4a5b0ed181cae1b693722bd551ab1337fcdce9dbfc80a091df283329ac
+DIST gpsd-2.96bis.tar.gz 1554605 SHA256 c6d72565bc06b802c749e69808eb7c6ee165962dc17383971c9001b5e1763690 SHA512 a6ba88b3907293d13032bb623de321b36dfc3fec25502cafa22924c4d0ff187b46f192d27effa9b4214cba3de16dd3c7c0a0fc6d5ba411e2799acb8b3e832aa4 WHIRLPOOL 0fd1471e819759f055ec389d0236c7894f107062331325cb520d60c16431339eabc616019e96270ed54f9defc34a5ed45927977e6e62a16730a0b0decf6552ed
+DIST gpsd-3.10.tar.gz 1566622 SHA256 706fc2c1cf3dfbf87c941f543381bccc9c4dc9f8240eec407dcbf2f70b854320 SHA512 fd452185a8a9f9b8dfb2a5c2d5b6410f795d56dc46a7c216d8fcd686e43c5555a5f0421434060e9bb7afa465bb8a45a1e358108c4de42300eeb972caa334d8b6 WHIRLPOOL 52aa2285eff48f72a3e554c40bdb2b521bc36e35680a928d7ee53f3b55578d8451a573f4c75dcadc905eba7c48b41b5a317704aaf17b9699b614595560011514
+DIST gpsd-3.11.tar.gz 1579600 SHA256 ed66c6b6b1e2b4951de2c0b2399c22f77fe9f5927ef6b948dd8eb023ff53b7ee SHA512 bf600ea99635d415916c2a3043f56e61bda023ba320a15f33cd47b375c772dbec69aa941c4729914ccd6a868488cd6bd9f35d4067af9e353def743f45636e6f4 WHIRLPOOL 12a9fde832d611d129f48919d10c4a48f7da1e664d49844d4317e3b9511dee9810884f4b23036ebf576e7870b56091767a4f6c0237a8091643abb637642ee2b8
+DIST gpsd-3.13.tar.gz 1382857 SHA256 d30bbe31ef9f89d2c281197c64204bcff255883462318250f913444ae00874c1 SHA512 339e752ae6a06272082e8a4f97915001aeee4deecd956ace1be862f9e3734b7663407c4a6a41ac00e7de195771da55fb26b93ec152abd8251a0d7a13cb8ad51e WHIRLPOOL 94da0e11c7a0c33f3215f5de836f8739c394a03c561933abff9ce325e4238f4d85e29f664f592e7c09ba16d35e92b5e275a75090e5600a01d983fa81f12fa3af
+DIST gpsd-3.15.tar.gz 1410534 SHA256 81c89e271ae112313e68655ab30d227bc38fe7841ffbff0f1860b12a9d7696ea SHA512 2be83cac52b5034bca44374cf7e17917270fe50495014f424d46a171bc77b58f9c5eb8ea38fe0cff9a28a6c2b6b8e5bf17a5a141eb9243962319a1ae9da2ea04 WHIRLPOOL 323dc3336372d318ade9549ad401fa588e9abd3d01add750892fa028bf8f6837342ba76f6f85ebf715329517d314f9fe63429460ea1a639000124437f761fb8c
+DIST gpsd-3.6.tar.gz 1449822 SHA256 53a078dd547a17c4eeb0529a6d6eb338dac217811caf9644a0194184219494cc SHA512 a31114f68e9481d68bfb45d90286181eb47083c58a1e1cfae78b73ead36b448050b97a0b31131a58197f32adba4eeb6f798f3c4e55e928536cd68648d5860e18 WHIRLPOOL ef4f569ed32cba0e6c39726dfd6636292f38f4fe45b95035b4c20fd03eb569d12f228b468ba00e35dfd5e3bf4eda84cf3506d418cc553b55b882fa4e15277350
+DIST gpsd-3.7.tar.gz 1460424 SHA256 7800c478ee9d7ca7a502b0f892828561b1fbf7bc69d9d38c447c82c3628302ac SHA512 fc6edad8694a62ead2018e78ba5f3033dcc960b89fea7fbc781493b951ff8a3024cfa56a18c96cca747a3394885cdb24e5fce358e8f6a1a17fd4a3248228937f WHIRLPOOL 592908b39f248e68ceb6d2a1b14fa62401388e674aa5cdc901aa8e7caaf6fe5da742cd77530ddb00c5789e2372fdb8a46af9d946af89d6e560457c4eaa5cd92f
+DIST gpsd-3.8.tar.gz 1516959 SHA256 5f9add9a378a3cd1c0f641e0def49fc3f14fb700c9fca573e07d17b3e5957c23 SHA512 9df968db33346852c9779ce4670d97c77f018c3254661cc709a30b693f1a10602f5f08eb1d2c19dab46747a6f88f9d8be7464d3ea854f3bfc760cc94c3b2e57a WHIRLPOOL 64feb051b2aa637d6da978221f84f046078c29f43f1b68429cd617fb773b8b539a34948e215f18b372050b9e50c0f9c68d22f2b9ec20207899bebb9048e30270
+DIST gpsd-3.9.tar.gz 1518775 SHA256 d9b24be838b48db5e8eba66f74edf32d1982fe0fb018c9d9a7ad1ada9f189d5a SHA512 082524a7744da5212074123ab7920fe77bfa35f99cb12a900ad7b2718ea563803f988d09d7a063d08784d790c8c7e65503daefce4e6dd6bd1bc77bf580db638f WHIRLPOOL 1d3c70bfe5b4b8dec5dc4119287afb7ca4f426041f49c43b167b9e7f85c3995bfcb3bbf777cbe479ef353f1d485e54c891e732fd6871b6dbe9874d8d3c7fa6d1
diff --git a/sci-geosciences/gpsd/files/2.95-disable-strip.patch b/sci-geosciences/gpsd/files/2.95-disable-strip.patch
new file mode 100644
index 000000000000..734853968b71
--- /dev/null
+++ b/sci-geosciences/gpsd/files/2.95-disable-strip.patch
@@ -0,0 +1,10 @@
+--- gpsd-2.95/Makefile.am 2010-07-12 02:40:22.000000000 +0200
++++ gpsd-2.95.new/Makefile.am 2010-10-03 18:04:10.000000000 +0200
+@@ -340,6 +340,7 @@
+ "QMAKE_CC=$(CC)" \
+ "QMAKE_CFLAGS+=$(CFLAGS)" \
+ "QMAKE_LFLAGS+=$(LDFLAGS)" \
++ "QMAKE_STRIP=" \
+ "VERSION=$(libgps_VERSION)" \
+ "TARGET_LIBDIR=${libdir}" \
+ "TARGET_INCLUDEDIR=${includedir}"
diff --git a/sci-geosciences/gpsd/files/2.95-fix-ldflags.patch b/sci-geosciences/gpsd/files/2.95-fix-ldflags.patch
new file mode 100644
index 000000000000..bcb8bdb3a1e8
--- /dev/null
+++ b/sci-geosciences/gpsd/files/2.95-fix-ldflags.patch
@@ -0,0 +1,12 @@
+diff -urN gpsd-2.95//Makefile.am gpsd-2.95.new//Makefile.am
+--- gpsd-2.95//Makefile.am 2010-07-12 02:40:22.000000000 +0200
++++ gpsd-2.95.new//Makefile.am 2010-10-03 18:12:23.000000000 +0200
+@@ -137,7 +137,7 @@
+ libgps_VERSION__REVISION = 0
+ libgps_VERSION_AGE = 0
+ libgps_VERSION_NUMBER = $(libgps_VERSION_AGE):$(libgps_VERSION__REVISION):$(libgps_VERSION_AGE)
+-libgps_la_LDFLAGS = -version-number $(libgps_VERSION_CURRENT):$(libgps_VERSION__REVISION):$(libgps_VERSION_AGE)
++libgps_la_LDFLAGS = ${LDFLAGS} -version-number $(libgps_VERSION_CURRENT):$(libgps_VERSION__REVISION):$(libgps_VERSION_AGE)
+ lib_LTLIBRARIES = libgps.la libgpsd.la
+
+ libgps_SONAME = $(shell expr $(libgps_VERSION_CURRENT) - $(libgps_VERSION_AGE))
diff --git a/sci-geosciences/gpsd/files/2.96-fix-ldflags.patch b/sci-geosciences/gpsd/files/2.96-fix-ldflags.patch
new file mode 100644
index 000000000000..f643a359df8f
--- /dev/null
+++ b/sci-geosciences/gpsd/files/2.96-fix-ldflags.patch
@@ -0,0 +1,21 @@
+diff -urN gpsd-2.96.old/Makefile.am gpsd-2.96/Makefile.am
+--- gpsd-2.96.old/Makefile.am 2011-05-16 11:41:11.763256750 +0200
++++ gpsd-2.96/Makefile.am 2011-05-16 11:44:02.742119221 +0200
+@@ -130,7 +130,7 @@
+ libgps_VERSION_REVISION = 0
+ libgps_VERSION_AGE = 0
+ libgps_VERSION_NUMBER = $(libgps_VERSION_CURRENT):$(libgps_VERSION_REVISION):$(libgps_VERSION_AGE)
+-libgps_la_LDFLAGS = -version-number $(libgps_VERSION_NUMBER)
++libgps_la_LDFLAGS = $(LDFLAGS) -version-number $(libgps_VERSION_NUMBER)
+ lib_LTLIBRARIES = libgps.la libgpsd.la
+
+ libgps_SONAME = $(shell expr $(libgps_VERSION_CURRENT) - $(libgps_VERSION_AGE))
+@@ -425,7 +425,7 @@
+ # Build test_qgpsmm
+ #
+ test_qgpsmm_SOURCES = test_gpsmm.cpp
+-test_qgpsmm_LDFLAGS = -Wl,-rpath,$(srcdir)/libQgpsmm/binaries
++test_qgpsmm_LDFLAGS = $(LDFLAGS) -Wl,-rpath,$(srcdir)/libQgpsmm/binaries
+ test_qgpsmm_LDADD = $(LIBC) $(LIBUSB) $(QtNetwork_LIBS) libgps.la -LlibQgpsmm/binaries -lQgpsmm
+ test_qgpsmm_DEPENDENCIES = libQgpsmm/binaries/libQgpsmm.so
+ endif
diff --git a/sci-geosciences/gpsd/files/2.96-fix-tests.patch b/sci-geosciences/gpsd/files/2.96-fix-tests.patch
new file mode 100644
index 000000000000..38aec0024b0c
--- /dev/null
+++ b/sci-geosciences/gpsd/files/2.96-fix-tests.patch
@@ -0,0 +1,23 @@
+diff -urN gpsd-2.96.old//Makefile.am gpsd-2.96//Makefile.am
+--- gpsd-2.96.old//Makefile.am 2011-05-16 11:41:11.763256750 +0200
++++ gpsd-2.96//Makefile.am 2011-05-16 12:37:34.095971771 +0200
+@@ -615,8 +615,8 @@
+ pkgconfigdir = $(libdir)/pkgconfig
+
+ # These are not distributed
+-libgps: libgps_core.c gps.h .libs/libgps.a
+- $(CC) $(CFLAGS) -o libgps $(LIBM) -DTESTMAIN $(LIBPTHREAD) -g libgps_core.c .libs/libgps.a
++libgps: libgps_core.c gps.h .libs/libgps.so
++ $(CC) $(CFLAGS) $(LDFLAGS) -o libgps $(LIBM) -DTESTMAIN $(LIBPTHREAD) -g libgps_core.c .libs/libgps.so
+
+
+ # Report splint warnings
+@@ -720,7 +720,7 @@
+
+ # Use make REGRESSOPTS=-u to force running with UDP rather than pty devices
+
+-run_regress_driver = PYTHON=$(PYTHON) $(srcdir)/regress-driver $(REGRESSOPTS)
++run_regress_driver = PYTHON=$(PYTHON) LD_LIBRARY_PATH="./.libs/" $(srcdir)/regress-driver $(REGRESSOPTS)
+
+ # Regression-test the daemon
+ gps-regress: gpsd stamp-python
diff --git a/sci-geosciences/gpsd/files/2.96-pkgconfig.patch b/sci-geosciences/gpsd/files/2.96-pkgconfig.patch
new file mode 100644
index 000000000000..b829c4730111
--- /dev/null
+++ b/sci-geosciences/gpsd/files/2.96-pkgconfig.patch
@@ -0,0 +1,37 @@
+Index: gpsd-2.96/configure.ac
+===================================================================
+--- gpsd-2.96.orig/configure.ac
++++ gpsd-2.96/configure.ac
+@@ -687,12 +687,7 @@ AC_MSG_CHECKING([for BlueZ support])
+ if test x"$ac_bluetooth" = x"yes"; then
+ AC_MSG_RESULT([yes])
+ AC_DEFINE(HAVE_BLUEZ,1,[Define if we have Bluez])
+- # Older versions of autotools barf and die on this.
+- #PKG_CHECK_MODULES(BLUEZ, bluez )
+- BLUEZ_CFLAGS=`pkg-config --cflags bluez`
+- BLUEZ_LIBS=`pkg-config --libs bluez`
+- AC_SUBST(BLUEZ_CFLAGS)
+- AC_SUBST(BLUEZ_LIBS)
++ PKG_CHECK_MODULES(BLUEZ, bluez )
+ else
+ AC_MSG_RESULT([no])
+ fi
+@@ -709,16 +704,8 @@ AC_MSG_CHECKING([for DBUS support])
+ if test x"$ac_dbus" = "xyes"; then
+ AC_MSG_RESULT([yes])
+ AC_DEFINE([DBUS_ENABLE], 1, [DBUS support])
+- # Older versions of autotools barf and die on this.
+- #PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.23.4 )
+- DBUS_CFLAGS=`pkg-config --cflags dbus-glib-1`
+- DBUS_LIBS=`pkg-config --libs dbus-1`
+- AC_SUBST(DBUS_CFLAGS)
+- AC_SUBST(DBUS_LIBS)
+- #PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1 >= 0.22 )
+- DBUS_GLIB_LIBS=`pkg-config --libs dbus-glib-1`
+- AC_SUBST(DBUS_GLIB_CFLAGS)
+- AC_SUBST(DBUS_GLIB_LIBS)
++ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.23.4 )
++ PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1 >= 0.22 )
+ else
+ AC_MSG_RESULT([no])
+ fi
diff --git a/sci-geosciences/gpsd/files/gpsd-3.10-dbus.patch b/sci-geosciences/gpsd/files/gpsd-3.10-dbus.patch
new file mode 100644
index 000000000000..3ea68386e2f1
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.10-dbus.patch
@@ -0,0 +1,32 @@
+From efaf7972ca95ff52464dedfe30bafa45095d299e Mon Sep 17 00:00:00 2001
+From: Bernd Zeimetz <bernd@bzed.de>
+Date: Sat, 23 Nov 2013 02:56:22 +0100
+Subject: [PATCH] Make it build abain with dbus enabled.
+
+This reverts a bad change to SConstruct in 57e9bdea.
+
+It still leaves the issue that scons links all file sstaically now.
+---
+ SConstruct | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/SConstruct b/SConstruct
+index 290910b..51b07e1 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -968,7 +968,11 @@ gpsdlibs = ["-lgpsd"] + usblibs + bluezlibs + gpslibs
+ # linking
+ # The final executable will build but not be portable.
+
+-env.StaticLibrary(target = 'libgps.a', source = libgps_sources)
++env.StaticLibrary(target='libgps.a',
++ source=libgps_sources,
++ parse_flags=dbus_libs + rtlibs)
++
++
+
+ # Source groups
+
+--
+1.8.4.3
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.10-nmea-disabled.patch b/sci-geosciences/gpsd/files/gpsd-3.10-nmea-disabled.patch
new file mode 100644
index 000000000000..e87eff8a5644
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.10-nmea-disabled.patch
@@ -0,0 +1,54 @@
+https://bugs.gentoo.org/493022
+
+From c31095e1562494a74d56b46fcc01541d1444cd5c Mon Sep 17 00:00:00 2001
+From: Simon Dawson <spdawson@gmail.com>
+Date: Sun, 8 Dec 2013 10:31:25 +0000
+Subject: [PATCH] gpsmon: fix build when nmea is false
+
+When nmea is False and ncurses support is enabled, the build fails as
+follows.
+
+gpsmon.o: In function `gpsmon_hook':
+gpsmon.c:(.text+0x974): undefined reference to `driver_nmea0183'
+collect2: error: ld returned 1 exit status
+scons: *** [gpsmon] Error 1
+scons: building terminated because of errors.
+
+The problem appears to be a failure to protect use of the driver_nmea0183
+variable with appropriate #ifdef guards.
+
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
+---
+ gpsmon.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/gpsmon.c b/gpsmon.c
+index de1f14b..b030979 100644
+--- a/gpsmon.c
++++ b/gpsmon.c
+@@ -36,7 +36,9 @@ extern struct monitor_object_t garmin_mmt, garmin_bin_ser_mmt;
+ extern struct monitor_object_t italk_mmt, ubx_mmt, superstar2_mmt;
+ extern struct monitor_object_t fv18_mmt, gpsclock_mmt, mtk3301_mmt;
+ extern struct monitor_object_t oncore_mmt, tnt_mmt, aivdm_mmt;
++#ifdef NMEA_ENABLE
+ extern const struct gps_type_t driver_nmea0183;
++#endif /* NMEA_ENABLE */
+
+ /* These are public */
+ struct gps_device_t session;
+@@ -477,9 +479,11 @@ static void select_packet_monitor(struct gps_device_t *device)
+ */
+ if (device->packet.type != last_type) {
+ const struct gps_type_t *active_type = device->device_type;
++#ifdef NMEA_ENABLE
+ if (device->packet.type == NMEA_PACKET
+ && ((device->device_type->flags & DRIVER_STICKY) != 0))
+ active_type = &driver_nmea0183;
++#endif /* NMEA_ENABLE */
+ if (!switch_type(active_type))
+ longjmp(terminate, TERM_DRIVER_SWITCH);
+ else {
+--
+2.1.2
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.10-rpath.patch b/sci-geosciences/gpsd/files/gpsd-3.10-rpath.patch
new file mode 100644
index 000000000000..8d4a309f0957
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.10-rpath.patch
@@ -0,0 +1,13 @@
+don't set the -rpath flag to the install dir as this breaks DESTDIR
+
+--- a/SConstruct
++++ b/SConstruct
+@@ -287,7 +287,7 @@ def installdir(dir, add_destdir=True):
+ # Honor the specified installation prefix in link paths.
+ if env["sysroot"]:
+ env.Prepend(LIBPATH=[env["sysroot"] + installdir('libdir', add_destdir=False)])
+-if env["shared"]:
++if env["shared"] and env["chrpath"]:
+ env.Prepend(RPATH=[installdir('libdir')])
+
+ # Give deheader a way to set compiler flags
diff --git a/sci-geosciences/gpsd/files/gpsd-3.10-udev-install.patch b/sci-geosciences/gpsd/files/gpsd-3.10-udev-install.patch
new file mode 100644
index 000000000000..5d81466b9709
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.10-udev-install.patch
@@ -0,0 +1,40 @@
+From 6821edb2d40956e5f93a80420ae1dbf825b95281 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 11 Mar 2013 13:26:57 -0400
+Subject: [PATCH] fix DESTDIR handling with udev rules install again
+
+Commit 102e29d16c3fd9b414eeac53c794302f902ae8da reverted the DESTDIR
+logic when upgrading the udev path handling.
+
+I fixed that with commit a41cd69c87e312198834a2e6232134176c9352e5.
+
+It's been reverted yet again in an unrelated commit
+57e9bdeae2f00664616ee1d9a936a5cfe27bfd30. Why do people keep doing this?
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ SConstruct | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 51b07e1..caed21e 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1790,10 +1790,10 @@ if env['python']:
+ # is plugged in.
+
+ Utility('udev-install', 'install', [
+- 'mkdir -p ' + env['udevdir'],
+- 'cp $SRCDIR/gpsd.rules ' + env['udevdir'] + '/rules.d/25-gpsd.rules',
+- 'cp $SRCDIR/gpsd.hotplug ' + env['udevdir'],
+- 'chmod a+x ' + env['udevdir'] + '/gpsd.hotplug',
++ 'mkdir -p ' + DESTDIR + env['udevdir'] + '/rules.d',
++ 'cp $SRCDIR/gpsd.rules ' + DESTDIR + env['udevdir'] + '/rules.d/25-gpsd.rules',
++ 'cp $SRCDIR/gpsd.hotplug ' + DESTDIR + env['udevdir'],
++ 'chmod a+x ' + DESTDIR + env['udevdir'] + '/gpsd.hotplug',
+ ])
+
+ Utility('udev-uninstall', '', [
+--
+1.8.4.3
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.11-hotplug-config.patch b/sci-geosciences/gpsd/files/gpsd-3.11-hotplug-config.patch
new file mode 100644
index 000000000000..a2b96f4d01af
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.11-hotplug-config.patch
@@ -0,0 +1,27 @@
+https://bugs.gentoo.org/511584
+
+From 2c0c2d90cbe450d208b320359b55089a441ff52a Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Thu, 30 Oct 2014 17:17:41 -0400
+Subject: [PATCH] udev rules: source Gentoo config files
+
+---
+ gpsd.hotplug | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/gpsd.hotplug b/gpsd.hotplug
+index dd0deaf..5f4ce13 100644
+--- a/gpsd.hotplug
++++ b/gpsd.hotplug
+@@ -24,6 +24,8 @@ export PATH
+
+ if [ -r /etc/default/gpsd ]; then
+ . /etc/default/gpsd
++elif [ -r /etc/conf.d/gpsd ]; then
++ . /etc/conf.d/gpsd
+ elif [ -r /etc/sysconfig/gpsd ]; then
+ . /etc/sysconfig/gpsd
+ GPSD_OPTIONS=$OPTIONS
+--
+2.1.2
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.11-no-ntpshm.patch b/sci-geosciences/gpsd/files/gpsd-3.11-no-ntpshm.patch
new file mode 100644
index 000000000000..c53eeca907b0
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.11-no-ntpshm.patch
@@ -0,0 +1,97 @@
+From 80cd103396fcd1185a476761bfb267ce12f64b32 Mon Sep 17 00:00:00 2001
+From: Simon Dawson <spdawson@gmail.com>
+Date: Mon, 25 Aug 2014 10:31:18 +0100
+Subject: [PATCH] Fix build error when ntpshm is false
+
+The build fails as follows
+
+libgpsd_core.c: In function 'ntpshm_latch':
+libgpsd_core.c:1660:24: error: 'const struct gps_type_t' has no member named 'time_offset'
+ || device->device_type->time_offset == NULL)
+ ^
+libgpsd_core.c:1663:33: error: 'const struct gps_type_t' has no member named 'time_offset'
+ fix_time += device->device_type->time_offset(device);
+ ^
+scons: *** [libgpsd_core.os] Error 1
+
+The solution is to wrap #ifdef NTPSHM_ENABLE around the ntpshm_latch function
+
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+---
+ libgpsd_core.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/libgpsd_core.c b/libgpsd_core.c
+index 6ec08a4..f7e8075 100644
+--- a/libgpsd_core.c
++++ b/libgpsd_core.c
+@@ -1638,6 +1638,7 @@ void gpsd_zero_satellites( /*@out@*/ struct gps_data_t *out)
+ #endif
+ }
+
++#ifdef NTPSHM_ENABLE
+ void ntpshm_latch(struct gps_device_t *device, struct timedrift_t /*@out@*/*td)
+ /* latch the fact that we've saved a fix */
+ {
+@@ -1668,5 +1669,6 @@ void ntpshm_latch(struct gps_device_t *device, struct timedrift_t /*@out@*/*td)
+ device->last_fixtime.clock = td->clock.tv_sec + td->clock.tv_nsec / 1e9;
+ #endif /* S_SPLINT_S */
+ }
++#endif /* NTPSHM_ENABLE */
+
+ /* end */
+--
+2.1.2
+
+From 48caee55069bdb7f7115e1930ace3914f4ddfe3b Mon Sep 17 00:00:00 2001
+From: Simon Dawson <spdawson@gmail.com>
+Date: Wed, 3 Sep 2014 18:43:31 +0100
+Subject: [PATCH] Complete wrapping of ntpshm_latch function in #ifdef
+ NTPSHM_ENABLE
+
+Currently, the build fails as follows
+
+gpsmon.o: In function `gpsmon_hook':
+gpsmon.c:(.text+0x8b0): undefined reference to `ntpshm_latch'
+collect2: error: ld returned 1 exit status
+scons: *** [gpsmon] Error 1
+
+Addresses Sacannah bug #43129: ntpshm patch is incomplete.
+
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+---
+ gpsd.h-tail | 2 ++
+ gpsmon.c | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/gpsd.h-tail b/gpsd.h-tail
+index 7b62ce1..7b44f91 100644
+--- a/gpsd.h-tail
++++ b/gpsd.h-tail
+@@ -857,7 +857,9 @@ extern unsigned int ais_binary_encode(struct ais_t *ais, /*@out@*/unsigned char
+ extern void ntpshm_context_init(struct gps_context_t *);
+ extern void ntpshm_session_init(struct gps_device_t *);
+ extern int ntpshm_put(struct gps_device_t *, int, struct timedrift_t *);
++#ifdef NTPSHM_ENABLE
+ extern void ntpshm_latch(struct gps_device_t *device, /*@out@*/struct timedrift_t *td);
++#endif /* NTPSHM_ENABLE */
+ extern void ntpshm_link_deactivate(struct gps_device_t *);
+ extern void ntpshm_link_activate(struct gps_device_t *);
+
+diff --git a/gpsmon.c b/gpsmon.c
+index c812063..909f271 100644
+--- a/gpsmon.c
++++ b/gpsmon.c
+@@ -734,8 +734,10 @@ static void gpsmon_hook(struct gps_device_t *device, gps_mask_t changed UNUSED)
+
+ report_unlock();
+
++#ifdef NTPSHM_ENABLE
+ /* Update the last fix time seen for PPS. FIXME: do this here? */
+ ntpshm_latch(device, &td);
++#endif /* NTPSHM_ENABLE */
+ }
+ /*@+observertrans +nullpass +globstate +compdef +uniondef@*/
+
+--
+2.1.2
diff --git a/sci-geosciences/gpsd/files/gpsd-3.11-rpath.patch b/sci-geosciences/gpsd/files/gpsd-3.11-rpath.patch
new file mode 100644
index 000000000000..7615b8b5d73f
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.11-rpath.patch
@@ -0,0 +1,12 @@
+don't set the -rpath flag to the install dir as this breaks DESTDIR
+
+--- a/SConstruct
++++ b/SConstruct
+@@ -287,7 +287,7 @@
+
+ # Don't hack RPATH unless libdir points somewhere that is not on the
+ # minimum default load path.
+-if env["shared"]:
++if env["shared"] and env["chrpath"]:
+ if env["libdir"] not in ["/usr/lib", "/lib"]:
+ env.Prepend(RPATH=[installdir('libdir')])
diff --git a/sci-geosciences/gpsd/files/gpsd-3.13-ntpshm.patch b/sci-geosciences/gpsd/files/gpsd-3.13-ntpshm.patch
new file mode 100644
index 000000000000..c931ad1aa21f
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.13-ntpshm.patch
@@ -0,0 +1,25 @@
+From 861d148321aafa3f7dadb1da4f507da83ba2f846 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Thu, 26 Feb 2015 17:39:23 -0500
+Subject: [PATCH] ntpshm: fix status type
+
+---
+ ntpshm.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ntpshm.h b/ntpshm.h
+index c8cd3b6..45648a8 100644
+--- a/ntpshm.h
++++ b/ntpshm.h
+@@ -60,7 +60,7 @@ enum segstat_t {
+ OK, NO_SEGMENT, NOT_READY, BAD_MODE, CLASH};
+
+ struct shm_stat_t {
+- int status;
++ enum segstat_t status;
+ struct timespec tvc, tvr, tvt;
+ int precision;
+ int leap;
+--
+2.3.0
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.15-broken-install.patch b/sci-geosciences/gpsd/files/gpsd-3.15-broken-install.patch
new file mode 100644
index 000000000000..ec68a3c21a9c
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.15-broken-install.patch
@@ -0,0 +1,28 @@
+From 798629da485b9504dbb5bd5c96c9ea1d3454ebe3 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sun, 7 Jun 2015 13:39:55 -0400
+Subject: [PATCH] Revert "# Work arount a minor bug in InstallSharedLib() link
+ handling"
+
+This reverts commit 0532106c1ea0807922ea6f868fcde384f22d4e92 as it breaks
+parallel installs. The original commit itself contains no real details.
+---
+ SConstruct | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 39a6b6a..c8a977e 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1336,8 +1336,6 @@ if env["ncurses"]:
+ binaryinstall.append(env.Install(installdir('bindir'), [cgps, gpsmon]))
+ binaryinstall.append(LibraryInstall(env, installdir('libdir'), compiled_gpslib, libgps_version))
+ binaryinstall.append(LibraryInstall(env, installdir('libdir'), compiled_gpsdlib, libgps_version))
+-# Work arount a minor bug in InstallSharedLib() link handling
+-env.AddPreAction(binaryinstall, 'rm -f %s/libgps.*' % (installdir('libdir'), ))
+
+ if qt_env:
+ binaryinstall.append(LibraryInstall(qt_env, installdir('libdir'), compiled_qgpsmmlib, libgps_version))
+--
+2.4.1
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.15-dynamic-libs.patch b/sci-geosciences/gpsd/files/gpsd-3.15-dynamic-libs.patch
new file mode 100644
index 000000000000..9461a666b031
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.15-dynamic-libs.patch
@@ -0,0 +1,100 @@
+From ac48583654e97ef04e8cbb52c2ae77a617c7add3 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sun, 7 Jun 2015 01:08:39 -0400
+Subject: [PATCH] reenable dynamic libs
+
+Upstream decided to staticly link their own programs against their libs
+instead of using the shared ones. Restore dynamic linking to save space
+and such.
+---
+ SConstruct | 64 ++++++++++++++++++++++++++++++++++----------------------------
+ 1 file changed, 35 insertions(+), 29 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 28cebf0..a050f38 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -961,6 +961,9 @@ if qt_env:
+ gpsflags = ["-lm"] + rtlibs + dbusflags
+ gpsdflags = usbflags + bluezflags + gpsflags
+
++gpslibs = ["-lgps"] + gpsflags
++gpsdlibs = ["-lgpsd"] + gpsdflags + gpslibs
++
+ # Source groups
+
+ gpsd_sources = ['gpsd.c','timehint.c', 'shmexport.c','dbusexport.c']
+@@ -983,38 +986,41 @@ gpsmon_sources = [
+ ## Production programs
+
+ gpsd = env.Program('gpsd', gpsd_sources,
+- LIBS=['gpsd', 'gps_static'], LIBPATH='.',
+- parse_flags=gpsdflags+gpsflags)
++ LIBS=['gpsd'], parse_flags=gpsdflags+gpslibs)
++env.Depends(gpsd, [compiled_gpslib])
++
+ gpsdecode = env.Program('gpsdecode', ['gpsdecode.c'],
+- LIBS=['gpsd', 'gps_static'], LIBPATH='.',
+- parse_flags=gpsdflags+gpsflags)
++ LIBS=['gpsd'], parse_flags=gpsdflags+gpslibs)
++env.Depends(gpsdecode, [compiled_gpslib])
++
+ gpsctl = env.Program('gpsctl', ['gpsctl.c'],
+- LIBS=['gpsd', 'gps_static'], LIBPATH='.',
+- parse_flags=gpsdflags+gpsflags)
++ LIBS=['gpsd'], parse_flags=gpsdflags+gpslibs)
++env.Depends(gpsctl, [compiled_gpslib])
++
+ gpsmon = env.Program('gpsmon', gpsmon_sources,
+- LIBS=['gpsd', 'gps_static'], LIBPATH='.',
+- parse_flags=gpsdflags + gpsflags + ncurseslibs)
+-gpsdctl = env.Program('gpsdctl', ['gpsdctl.c'],
+- LIBS=['gps_static'], LIBPATH='.',
+- parse_flags=gpsflags)
+-gpspipe = env.Program('gpspipe', ['gpspipe.c'],
+- LIBS=['gps_static'], LIBPATH='.',
+- parse_flags=gpsflags)
+-gps2udp = env.Program('gps2udp', ['gps2udp.c'],
+- LIBS=['gps_static'], LIBPATH='.',
+- parse_flags=gpsflags)
+-gpxlogger = env.Program('gpxlogger', ['gpxlogger.c'],
+- LIBS=['gps_static'], LIBPATH='.',
+- parse_flags=gpsflags)
+-lcdgps = env.Program('lcdgps', ['lcdgps.c'],
+- LIBS=['gps_static'], LIBPATH='.',
+- parse_flags=gpsflags)
+-cgps = env.Program('cgps', ['cgps.c'],
+- LIBS=['gps_static'], LIBPATH='.',
+- parse_flags=gpsflags + ncurseslibs)
+-ntpshmmon = env.Program('ntpshmmon', ['ntpshmmon.c'],
+- LIBS=['gps_static'], LIBPATH='.',
+- parse_flags=gpsflags)
++ LIBS=['gpsd'], parse_flags=gpsdflags+gpslibs + ncurseslibs)
++env.Depends(gpsmon, [compiled_gpslib])
++
++gpsdctl = env.Program('gpsdctl', ['gpsdctl.c'], parse_flags=gpslibs)
++env.Depends(gpsdctl, compiled_gpslib)
++
++gpspipe = env.Program('gpspipe', ['gpspipe.c'], parse_flags=gpslibs)
++env.Depends(gpspipe, compiled_gpslib)
++
++gps2udp = env.Program('gps2udp', ['gps2udp.c'], parse_flags=gpslibs)
++env.Depends(gps2udp, compiled_gpslib)
++
++gpxlogger = env.Program('gpxlogger', ['gpxlogger.c'], parse_flags=gpslibs)
++env.Depends(gpxlogger, compiled_gpslib)
++
++lcdgps = env.Program('lcdgps', ['lcdgps.c'], parse_flags=gpslibs)
++env.Depends(lcdgps, compiled_gpslib)
++
++cgps = env.Program('cgps', ['cgps.c'], parse_flags=gpslibs + ncurseslibs)
++env.Depends(cgps, compiled_gpslib)
++
++ntpshmmon = env.Program('ntpshmmon', ['ntpshmmon.c'], parse_flags=gpslibs)
++env.Depends(ntpshmmon, compiled_gpslib)
+
+ binaries = [gpsd, gpsdecode, gpsctl, gpsdctl, gpspipe, gps2udp, gpxlogger, lcdgps, ntpshmmon]
+ if env["ncurses"]:
+--
+2.4.1
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.15-libgpsd.patch b/sci-geosciences/gpsd/files/gpsd-3.15-libgpsd.patch
new file mode 100644
index 000000000000..b8d2cf02ee8b
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.15-libgpsd.patch
@@ -0,0 +1,80 @@
+From 7b29fcb88a476daab12957ac22512edf66aee813 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sun, 7 Jun 2015 01:08:48 -0400
+Subject: [PATCH] reenable libgpsd
+
+Upstream has decided to drop the shared libgpsd (since it wasn't used
+externally anymore), but this also meant they statically link the code
+into every app. Re-enable the shared lib so that the various runtime
+programs can continue to share and save on resources.
+---
+ SConstruct | 25 +++++++++++++------------
+ 1 file changed, 13 insertions(+), 12 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index a050f38..53f697d 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -903,7 +903,7 @@ else:
+ obj_list = []
+ for s in Flatten(sources):
+ if type(s) is str:
+- obj_list.append(env.SharedObject(s))
++ obj_list.append(env.SharedObject(s, parse_flags=parse_flags))
+ else:
+ obj_list.append(s)
+ return env.SharedLibrary(target=target,
+@@ -925,9 +925,11 @@ static_gpslib = env.StaticLibrary("gps_static",
+ [env.StaticObject(s) for s in libgps_sources],
+ rtlibs)
+
+-compiled_gpsdlib = env.StaticLibrary(target="gpsd",
+- source=[env.StaticObject(s, parse_flags=usbflags + bluezflags) for s in libgpsd_sources],
+- parse_flags=usbflags + bluezflags)
++compiled_gpsdlib = Library(env=env,
++ target="gpsd",
++ sources=libgpsd_sources,
++ version=libgps_version,
++ parse_flags=usbflags + rtlibs + bluezflags + ["-lgps"])
+
+ libraries = [compiled_gpslib, compiled_gpsdlib]
+
+@@ -985,21 +987,19 @@ gpsmon_sources = [
+
+ ## Production programs
+
+-gpsd = env.Program('gpsd', gpsd_sources,
+- LIBS=['gpsd'], parse_flags=gpsdflags+gpslibs)
+-env.Depends(gpsd, [compiled_gpslib])
++gpsd = env.Program('gpsd', gpsd_sources, parse_flags=gpsdlibs)
++env.Depends(gpsd, [compiled_gpsdlib, compiled_gpslib])
+
+-gpsdecode = env.Program('gpsdecode', ['gpsdecode.c'],
+- LIBS=['gpsd'], parse_flags=gpsdflags+gpslibs)
+-env.Depends(gpsdecode, [compiled_gpslib])
++gpsdecode = env.Program('gpsdecode', ['gpsdecode.c'], parse_flags=gpsdlibs)
++env.Depends(gpsdecode, [compiled_gpsdlib, compiled_gpslib])
+
+ gpsctl = env.Program('gpsctl', ['gpsctl.c'],
+ LIBS=['gpsd'], parse_flags=gpsdflags+gpslibs)
+-env.Depends(gpsctl, [compiled_gpslib])
++env.Depends(gpsctl, [compiled_gpslib, compiled_gpslib])
+
+ gpsmon = env.Program('gpsmon', gpsmon_sources,
+ LIBS=['gpsd'], parse_flags=gpsdflags+gpslibs + ncurseslibs)
+-env.Depends(gpsmon, [compiled_gpslib])
++env.Depends(gpsmon, [compiled_gpslib, compiled_gpslib])
+
+ gpsdctl = env.Program('gpsdctl', ['gpsdctl.c'], parse_flags=gpslibs)
+ env.Depends(gpsdctl, compiled_gpslib)
+@@ -1339,6 +1339,7 @@ binaryinstall.append(env.Install(installdir('bindir'), [gpsdecode, gpsctl, gpsp
+ if env["ncurses"]:
+ binaryinstall.append(env.Install(installdir('bindir'), [cgps, gpsmon]))
+ binaryinstall.append(LibraryInstall(env, installdir('libdir'), compiled_gpslib, libgps_version))
++binaryinstall.append(LibraryInstall(env, installdir('libdir'), compiled_gpsdlib, libgps_version))
+ # Work arount a minor bug in InstallSharedLib() link handling
+ env.AddPreAction(binaryinstall, 'rm -f %s/libgps.*' % (installdir('libdir'), ))
+
+--
+2.4.1
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.3-ldflags.patch b/sci-geosciences/gpsd/files/gpsd-3.3-ldflags.patch
new file mode 100644
index 000000000000..867b96b2da50
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.3-ldflags.patch
@@ -0,0 +1,15 @@
+https://bugs.gentoo.org/391299
+
+split up linking flags into multiple arguments
+
+--- gpsd-3.3/SConstruct
++++ gpsd-3.3/SConstruct
+@@ -214,7 +214,7 @@
+ env.Replace(**{j: os.getenv(i)})
+ for flags in ["LDFLAGS", "LINKFLAGS", "SHLINKFLAGS", "CPPFLAGS"]:
+ if os.environ.has_key(flags):
+- env.MergeFlags({flags : [os.getenv(flags)]})
++ env.MergeFlags({flags : Split(os.getenv(flags))})
+
+
+ # Placeholder so we can kluge together something like VPATH builds.
diff --git a/sci-geosciences/gpsd/files/gpsd-3.3-msocks-init.patch b/sci-geosciences/gpsd/files/gpsd-3.3-msocks-init.patch
new file mode 100644
index 000000000000..6b06864448cb
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.3-msocks-init.patch
@@ -0,0 +1,33 @@
+fix from upstream git repo
+
+From e3d7f8b3f35442ae71dc95d776c900d2c29b215c Mon Sep 17 00:00:00 2001
+From: Yufeng Shen <miletus@chromium.org>
+Date: Tue, 15 Nov 2011 17:29:49 -0500
+Subject: [PATCH] Initialize msocks[2] to -1
+
+When SOCKET_EXPORT_ENABLE is not defined, msocks[2] can reach the
+point where it is used (put into all_fds to be monitored by select()),
+without initilization.
+
+Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
+---
+ gpsd.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/gpsd.c b/gpsd.c
+index 2d4090f..d342f5a 100644
+--- a/gpsd.c
++++ b/gpsd.c
+@@ -1762,7 +1762,8 @@ int main(int argc, char *argv[])
+ static char *pid_file = NULL;
+ struct gps_device_t *device;
+ fd_set rfds;
+- int i, option, msocks[2], dfd;
++ int i, option, dfd;
++ int msocks[2] = {-1, -1};
+ bool go_background = true;
+ struct timeval tv;
+ const struct gps_type_t **dp;
+--
+1.7.6.1
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.3-pkg-config.patch b/sci-geosciences/gpsd/files/gpsd-3.3-pkg-config.patch
new file mode 100644
index 000000000000..0bb4b3c8e0aa
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.3-pkg-config.patch
@@ -0,0 +1,49 @@
+From b6ef265b49d973acc2295f46f0518e0644ba7dbb Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 21 Nov 2011 16:05:27 -0500
+Subject: [PATCH] respect PKG_CONFIG in the build env
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ SConstruct | 9 +++++----
+ 1 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index cb578fe..5bb0fed 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -214,8 +214,9 @@ env['PYTHON'] = sys.executable
+ # explicitly quote them or (better yet) use the "=" form of GNU option
+ # settings.
+ env['STRIP'] = "strip"
++env['PKG_CONFIG'] = "pkg-config"
+ env['CHRPATH'] = 'chrpath'
+-for i in ["AR", "ARFLAGS", "CCFLAGS", "CFLAGS", "CC", "CXX", "CXXFLAGS", "STRIP", "CHRPATH", "LD", "TAR"]:
++for i in ["AR", "ARFLAGS", "CCFLAGS", "CFLAGS", "CC", "CXX", "CXXFLAGS", "STRIP", "PKG_CONFIG", "CHRPATH", "LD", "TAR"]:
+ if os.environ.has_key(i):
+ j = i
+ if i == "LD":
+@@ -407,9 +408,9 @@ cxx = config.CheckCXX()
+ # define a helper function for pkg-config - we need to pass
+ # --static for static linking, too.
+ if env["shared"]:
+- pkg_config = lambda pkg: ['!pkg-config --cflags --libs %s' %(pkg, )]
++ pkg_config = lambda pkg: ['!%s --cflags --libs %s' %(env['PKG_CONFIG'], pkg, )]
+ else:
+- pkg_config = lambda pkg: ['!pkg-config --cflags --libs --static %s' %(pkg, )]
++ pkg_config = lambda pkg: ['!%s --cflags --libs --static %s' %(env['PKG_CONFIG'], pkg, )]
+
+ # GCC isn't always named gcc, alas.
+ if env['CC'] == 'gcc' or (sys.platform.startswith('freebsd') and env['CC'] == 'cc'):
+@@ -339,7 +340,7 @@ if "help" in ARGLIST:
+
+ def CheckPKG(context, name):
+ context.Message( 'Checking for %s... ' % name )
+- ret = context.TryAction('pkg-config --exists \'%s\'' % name)[0]
++ ret = context.TryAction('%s --exists \'%s\'' % (env['PKG_CONFIG'], name))[0]
+ context.Result( ret )
+ return ret
+
+--
+1.7.6.1
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.3-release-rev.patch b/sci-geosciences/gpsd/files/gpsd-3.3-release-rev.patch
new file mode 100644
index 000000000000..29415590caee
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.3-release-rev.patch
@@ -0,0 +1,39 @@
+taken from upstream repo & tweaked; drop with 3.4 release
+
+From c96ffb7733b56a8c5c20d473d8fd83b62b6abfde Mon Sep 17 00:00:00 2001
+From: Bernd Zeimetz <bernd@bzed.de>
+Date: Thu, 10 Nov 2011 22:18:07 +0100
+Subject: [PATCH] SConstruct: Use gpsd_version as revision for releases.
+
+---
+ SConstruct | 13 ++++++++-----
+ 1 files changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index d367403..3d95e7e 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -978,12 +978,15 @@ env.Command(target="ais_json.i", source="jsongen.py", action='''\
+ chmod a-w $TARGET''')
+
+ # generate revision.h
+-(st, rev) = commands.getstatusoutput('git describe')
+-if st != 0:
+- from datetime import datetime
+- rev = datetime.now().isoformat()[:-4]
++if 'dev' in gpsd_version:
++ (st, rev) = commands.getstatusoutput('git describe')
++ if st != 0:
++ from datetime import datetime
++ rev = datetime.now().isoformat()[:-4]
++else:
++ rev = gpsd_version
+ revision='#define REVISION "%s"\n' %(rev.strip(),)
+-env.NoClean(env.Textfile(target="revision.h", source=[revision]))
++env.Textfile(target="revision.h", source=[revision])
+
+ # generate pps_pin.h
+ pps_pin = env['pps_pin']
+--
+1.7.6.1
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.3-setup.py b/sci-geosciences/gpsd/files/gpsd-3.3-setup.py
new file mode 100644
index 000000000000..93cc5e8f2149
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.3-setup.py
@@ -0,0 +1,17 @@
+from distutils.core import setup, Extension
+
+setup(
+ name = "gps",
+ version = @VERSION@,
+ description = 'Python libraries for the gpsd service daemon',
+ url = @URL@,
+ author = 'the GPSD project',
+ author_email = @EMAIL@,
+ license = "BSD",
+ ext_modules=[
+ Extension("gps.packet", @GPS_PACKET_SOURCES@, include_dirs=["."]),
+ Extension("gps.clienthelpers", @GPS_CLIENT_SOURCES@, include_dirs=["."]),
+ ],
+ packages = ['gps'],
+ scripts = @SCRIPTS@,
+)
diff --git a/sci-geosciences/gpsd/files/gpsd-3.3-udev-install.patch b/sci-geosciences/gpsd/files/gpsd-3.3-udev-install.patch
new file mode 100644
index 000000000000..ef000bc27068
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.3-udev-install.patch
@@ -0,0 +1,31 @@
+From b0513cd2e44705058ffdaa7a9c3f32371e9fcd5b Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Thu, 17 Nov 2011 23:44:06 -0500
+Subject: [PATCH] use DESTDIR with udev install
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ SConstruct | 7 ++++---
+ 1 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 1f99740..b7a98e4 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1505,9 +1505,10 @@ if env['python']:
+ # is plugged in.
+
+ Utility('udev-install', '', [
+- 'cp $SRCDIR/gpsd.rules /lib/udev/rules.d/25-gpsd.rules',
+- 'cp $SRCDIR/gpsd.hotplug /lib/udev/',
+- 'chmod a+x /lib/udev/gpsd.hotplug',
++ 'mkdir -p ' + DESTDIR + '/lib/udev/rules.d',
++ 'cp $SRCDIR/gpsd.rules ' + DESTDIR + '/lib/udev/rules.d/25-gpsd.rules',
++ 'cp $SRCDIR/gpsd.hotplug ' + DESTDIR + '/lib/udev/',
++ 'chmod a+x ' + DESTDIR + '/lib/udev/gpsd.hotplug',
+ ])
+
+ Utility('udev-uninstall', '', [
+--
+1.7.6.1
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.4-always-install-man-pages.patch b/sci-geosciences/gpsd/files/gpsd-3.4-always-install-man-pages.patch
new file mode 100644
index 000000000000..c9c1c7d109ad
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.4-always-install-man-pages.patch
@@ -0,0 +1,36 @@
+From 918d6d8e5bac3981126cb01e673430cb7c96ec02 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Thu, 9 Feb 2012 16:51:24 -0500
+Subject: [PATCH] always install the man pages
+
+Since we maintain local copies, don't require xmlto/xsltproc in
+order to install them. This makes packaging simpler.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ SConstruct | 9 ++++-----
+ 1 files changed, 4 insertions(+), 5 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index ab85b7d..fb08779 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1186,11 +1186,10 @@ if qt_env:
+
+
+ maninstall = []
+-if manbuilder:
+- for manpage in base_manpages.keys() + python_manpages.keys():
+- section = manpage.split(".")[1]
+- dest = os.path.join(installdir('mandir'), "man"+section, manpage)
+- maninstall.append(env.InstallAs(source=manpage, target=dest))
++for manpage in base_manpages.keys() + python_manpages.keys():
++ section = manpage.split(".")[1]
++ dest = os.path.join(installdir('mandir'), "man"+section, manpage)
++ maninstall.append(env.InstallAs(source=manpage, target=dest))
+ install = env.Alias('install', binaryinstall + maninstall + python_install + pc_install + headerinstall)
+
+ def Uninstall(nodes):
+--
+1.7.8.4
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.4-cfgetispeed.patch b/sci-geosciences/gpsd/files/gpsd-3.4-cfgetispeed.patch
new file mode 100644
index 000000000000..02abcb0e95d2
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.4-cfgetispeed.patch
@@ -0,0 +1,47 @@
+From 38702bf0f4aaafdddde51393106eeaf720c1fc63 Mon Sep 17 00:00:00 2001
+From: Manuel Lauss <manuel.lauss@googlemail.com>
+Date: Fri, 13 Jan 2012 11:59:55 -0500
+Subject: [PATCH] serial: use cfgetispeed helpers
+
+Rather than poking c_ispeed directly, use the cfgetispeed helper. This
+is part of POSIX, and we already use cfsetispeed, so there shouldn't be
+any portability issues here.
+
+Signed-off-by: Manuel Lauss <manuel.lauss@googlemail.com>
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ serial.c | 9 +--------
+ 1 files changed, 1 insertions(+), 8 deletions(-)
+
+diff --git a/serial.c b/serial.c
+index c1464dd..8eb03ce 100644
+--- a/serial.c
++++ b/serial.c
+@@ -594,13 +594,8 @@ void gpsd_close(struct gps_device_t *session)
+ * them the first time. Economical, and avoids tripping over an
+ * obscure Linux 2.6 kernel bug that disables threaded
+ * ioctl(TIOCMWAIT) on a device after tcsetattr() is called.
+- *
+- * Unfortunately the termios struct doesn't have c_ispeed/c_ospeed
+- * on all architectures. Its missing on sparc, mips/mispel and hurd-i386 at least.
+ */
+-#if defined(_HAVE_STRUCT_TERMIOS_C_ISPEED)
+- if (session->ttyset_old.c_ispeed != session->ttyset.c_ispeed || (session->ttyset_old.c_cflag & CSTOPB) != (session->ttyset.c_cflag & CSTOPB)) {
+-#endif
++ if (cfgetispeed(&session->ttyset_old) != cfgetispeed(&session->ttyset) || (session->ttyset_old.c_cflag & CSTOPB) != (session->ttyset.c_cflag & CSTOPB)) {
+ /*@ ignore @*/
+ (void)cfsetispeed(&session->ttyset_old,
+ (speed_t) session->gpsdata.dev.baudrate);
+@@ -609,9 +604,7 @@ void gpsd_close(struct gps_device_t *session)
+ /*@ end @*/
+ (void)tcsetattr(session->gpsdata.gps_fd, TCSANOW,
+ &session->ttyset_old);
+-#if defined(_HAVE_STRUCT_TERMIOS_C_ISPEED)
+ }
+-#endif
+ gpsd_report(LOG_SPIN, "close(%d) in gpsd_close(%s)\n",
+ session->gpsdata.gps_fd, session->gpsdata.dev.path);
+ (void)close(session->gpsdata.gps_fd);
+--
+1.7.8.3
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.4-chrpath.patch b/sci-geosciences/gpsd/files/gpsd-3.4-chrpath.patch
new file mode 100644
index 000000000000..c509e2d29968
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.4-chrpath.patch
@@ -0,0 +1,69 @@
+From 63a44d0cb5494ed1078de411b55cb1c9a8307cec Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Fri, 18 Nov 2011 19:09:27 -0500
+Subject: [PATCH] make chrpath optional
+
+There's no reason to require chrpath for distributions who only want to
+compile locally and then install elsewhere for packaging. So allow them
+to specify CHRPATH='' via the env to disable this requirement.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ SConstruct | 27 ++++++++++++++-------------
+ 1 files changed, 14 insertions(+), 13 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index ccaca7d..68bf367 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -270,7 +270,7 @@ def installdir(dir, add_destdir=True):
+
+ # Honor the specified installation prefix in link paths.
+ env.Prepend(LIBPATH=[installdir('libdir')])
+-if env["shared"]:
++if env["shared"] and env['CHRPATH']:
+ env.Prepend(RPATH=[installdir('libdir')])
+
+ # Give deheader a way to set compiler flags
+@@ -390,17 +390,18 @@ config = Configure(env, custom_tests = { 'CheckPKG' : CheckPKG,
+ 'CheckXsltproc' : CheckXsltproc})
+
+ env.Prepend(LIBPATH=[os.path.realpath(os.curdir)])
+-if config.CheckExecutable('$CHRPATH -v', 'chrpath'):
+- # Tell generated binaries to look in the current directory for
+- # shared libraries so we can run tests without hassle. Should be
+- # handled sanely by scons on all systems. Not good to use '.' or
+- # a relative path here; it's a security risk. At install time we
+- # use chrpath to edit this out of RPATH.
+- if env["shared"]:
+- env.Prepend(RPATH=[os.path.realpath(os.curdir)])
+-else:
+- print "chrpath is not available, forcing static linking."
+- env["shared"] = False
++if env['CHRPATH']:
++ if config.CheckExecutable('$CHRPATH -v', 'chrpath'):
++ # Tell generated binaries to look in the current directory for
++ # shared libraries so we can run tests without hassle. Should be
++ # handled sanely by scons on all systems. Not good to use '.' or
++ # a relative path here; it's a security risk. At install time we
++ # use chrpath to edit this out of RPATH.
++ if env["shared"]:
++ env.Prepend(RPATH=[os.path.realpath(os.curdir)])
++ else:
++ print "chrpath is not available, forcing static linking."
++ env["shared"] = False
+
+ confdefs = ["/* gpsd_config.h. Generated by scons, do not hand-hack. */\n"]
+
+@@ -1140,7 +1141,7 @@ if qt_env:
+ binaryinstall.append(LibraryInstall(qt_env, installdir('libdir'), compiled_qgpsmmlib))
+
+ # We don't use installdir here in order to avoid having DESTDIR affect the rpath
+-if env["shared"]:
++if env['CHRPATH']:
+ env.AddPostAction(binaryinstall, '$CHRPATH -r "%s" "$TARGET"' \
+ % (installdir('libdir', False), ))
+
+--
+1.7.8.3
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.4-gpsmon-lm.patch b/sci-geosciences/gpsd/files/gpsd-3.4-gpsmon-lm.patch
new file mode 100644
index 000000000000..a749fcf05100
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.4-gpsmon-lm.patch
@@ -0,0 +1,29 @@
+From 55131187b6a0290f99d1dd70b5cce48040bba7bb Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Fri, 13 Jan 2012 11:53:39 -0500
+Subject: [PATCH] gpsmon: always link with -lm
+
+Since the gpsmon pkg uses math funcs itself (and not just via libgps),
+we need to link in -lm for the app.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ SConstruct | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 68bf367..a5249c1 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -851,7 +851,7 @@ gpsdctl = env.Program('gpsdctl', ['gpsdctl.c'], parse_flags=gpslibs)
+ env.Depends(gpsdctl, compiled_gpslib)
+
+ gpsmon = env.Program('gpsmon', gpsmon_sources,
+- parse_flags=gpsdlibs + ncurseslibs)
++ parse_flags=gpsdlibs + ncurseslibs + ['-lm'])
+ env.Depends(gpsmon, [compiled_gpsdlib, compiled_gpslib])
+
+ gpspipe = env.Program('gpspipe', ['gpspipe.c'], parse_flags=gpslibs)
+--
+1.7.8.3
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.4-no-man-gen.patch b/sci-geosciences/gpsd/files/gpsd-3.4-no-man-gen.patch
new file mode 100644
index 000000000000..20a3b707a4c3
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.4-no-man-gen.patch
@@ -0,0 +1,13 @@
+the scons logic is dumb and will always regenerate the man pages.
+forcibly disable that as the releases contain the man pages.
+
+--- a/SConstruct
++++ b/SConstruct
+@@ -575,6 +575,7 @@
+ manbuilder = "xmlto man $SOURCE; mv `basename $TARGET` $TARGET"
+ else:
+ announce("Neither xsltproc nor xmlto found, documentation cannot be built.")
++manbuilder = htmlbuilder = False
+ if manbuilder:
+ env['BUILDERS']["Man"] = Builder(action=manbuilder)
+ env['BUILDERS']["HTML"] = Builder(action=htmlbuilder,
diff --git a/sci-geosciences/gpsd/files/gpsd-3.4-strptime.patch b/sci-geosciences/gpsd/files/gpsd-3.4-strptime.patch
new file mode 100644
index 000000000000..50a2b2755956
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.4-strptime.patch
@@ -0,0 +1,26 @@
+From 083ee79e5b6acbd08008965cbca496eb61957fa4 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Fri, 13 Jan 2012 11:56:12 -0500
+Subject: [PATCH] fix missing strptime prototype
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ gpsutils.c | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/gpsutils.c b/gpsutils.c
+index a1530ec..cc47d52 100644
+--- a/gpsutils.c
++++ b/gpsutils.c
+@@ -3,6 +3,8 @@
+ * This file is Copyright (c) 2010 by the GPSD project
+ * BSD terms apply: see the file COPYING in the distribution root for details.
+ */
++#define _XOPEN_SOURCE 700
++
+ #include <stdio.h>
+ #include <time.h>
+ #include <sys/time.h>
+--
+1.7.8.3
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.5-clock.patch b/sci-geosciences/gpsd/files/gpsd-3.5-clock.patch
new file mode 100644
index 000000000000..478b12a48194
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.5-clock.patch
@@ -0,0 +1,42 @@
+From f9f9bb6c10102f3d69a7f50e758a3a9256bf8744 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 21 May 2012 16:27:36 -0400
+Subject: [PATCH] fix building with clock_gettime and newer glibc
+
+Building with recent glibc versions fails in gpsutils.c due to missing
+definitions related to clock_gettime. This is because we define the
+_XOPEN_SOURCE macro, but not to a new enough value. So set it to a
+recent spec value that satisfies both strptime and clock_gettime.
+
+Example build failure with glibc-2.15:
+gpsutils.c: In function 'timestamp':
+gpsutils.c:299:22: error: storage size of 'ts' isn't known
+gpsutils.c:300:14: warning: implicit declaration of function 'clock_gettime' [-Wimplicit-function-declaration]
+gpsutils.c:300:34: error: 'CLOCK_REALTIME' undeclared (first use in this function)
+gpsutils.c:300:34: note: each undeclared identifier is reported only once for each function it appears in
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ gpsutils.c | 6 ++++--
+ 1 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/gpsutils.c b/gpsutils.c
+index 523838a..3b4990a 100644
+--- a/gpsutils.c
++++ b/gpsutils.c
+@@ -5,8 +5,10 @@
+ */
+
+ /* The strptime prototype is not provided unless explicitly requested.
+- * So add the define that POSIX says to to avoid: */
+-#define _XOPEN_SOURCE
++ * We also need to set the value high enough to signal inclusion of
++ * newer features (like clock_gettime). See the POSIX spec for more info:
++ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_02_01_02 */
++#define _XOPEN_SOURCE 600
+
+ #include <stdio.h>
+ #include <time.h>
+--
+1.7.8.6
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.6-debug.patch b/sci-geosciences/gpsd/files/gpsd-3.6-debug.patch
new file mode 100644
index 000000000000..ecaf717b7391
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.6-debug.patch
@@ -0,0 +1,221 @@
+From 07ecfcc72d977cfd364f0337032d5be7a0ff64e0 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Wed, 23 May 2012 10:09:26 -0400
+Subject: [PATCH] nmea2000: fix build failures when debugging is disabled
+
+When debugging is disabled, there is no libgps_debuglevel, so building
+this driver fails with:
+driver_nmea2000.c: In function 'print_data':
+driver_nmea2000.c:50:10: error: 'libgps_debuglevel' undeclared (first use in this function)
+
+Add some ifdef to this driver to fix that, and change the return type
+of print_data to void since it always returns 0 and no one ever checks
+the return value.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ driver_nmea2000.c | 45 +++++++++++++++++++++++----------------------
+ 1 files changed, 23 insertions(+), 22 deletions(-)
+
+diff --git a/driver_nmea2000.c b/driver_nmea2000.c
+index 1db6686..b3d2734 100644
+--- a/driver_nmea2000.c
++++ b/driver_nmea2000.c
+@@ -44,8 +44,9 @@ typedef struct PGN
+ FILE *logFile = NULL;
+ #endif /* of if LOG_FILE */
+
+-static int print_data(unsigned char *buffer, int len, PGN *pgn)
++static void print_data(unsigned char *buffer, int len, PGN *pgn)
+ {
++#ifdef LIBGPS_DEBUG
+ /*@-bufferoverflowhigh@*/
+ if ((libgps_debuglevel >= LOG_IO) != 0) {
+ int l1, l2, ptr;
+@@ -67,7 +68,7 @@ static int print_data(unsigned char *buffer, int len, PGN *pgn)
+ gpsd_report(LOG_IO,"%s\n", bu);
+ }
+ /*@+bufferoverflowhigh@*/
+- return(0);
++#endif
+ }
+
+ static gps_mask_t get_mode(struct gps_device_t *session)
+@@ -84,7 +85,7 @@ static gps_mask_t get_mode(struct gps_device_t *session)
+
+ static gps_mask_t hnd_059392(unsigned char *bu, int len, PGN *pgn, struct gps_device_t *session)
+ {
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+ return(0);
+ }
+@@ -92,7 +93,7 @@ static gps_mask_t hnd_059392(unsigned char *bu, int len, PGN *pgn, struct gps_de
+
+ static gps_mask_t hnd_060928(unsigned char *bu, int len, PGN *pgn, struct gps_device_t *session)
+ {
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+ return(0);
+ }
+@@ -100,7 +101,7 @@ static gps_mask_t hnd_060928(unsigned char *bu, int len, PGN *pgn, struct gps_de
+
+ static gps_mask_t hnd_126208(unsigned char *bu, int len, PGN *pgn, struct gps_device_t *session)
+ {
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+ return(0);
+ }
+@@ -108,7 +109,7 @@ static gps_mask_t hnd_126208(unsigned char *bu, int len, PGN *pgn, struct gps_de
+
+ static gps_mask_t hnd_126464(unsigned char *bu, int len, PGN *pgn, struct gps_device_t *session)
+ {
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+ return(0);
+ }
+@@ -116,7 +117,7 @@ static gps_mask_t hnd_126464(unsigned char *bu, int len, PGN *pgn, struct gps_de
+
+ static gps_mask_t hnd_126996(unsigned char *bu, int len, PGN *pgn, struct gps_device_t *session)
+ {
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+ return(0);
+ }
+@@ -124,7 +125,7 @@ static gps_mask_t hnd_126996(unsigned char *bu, int len, PGN *pgn, struct gps_de
+
+ static gps_mask_t hnd_129025(unsigned char *bu, int len, PGN *pgn, struct gps_device_t *session)
+ {
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+
+ /*@-type@*//* splint has a bug here */
+@@ -140,7 +141,7 @@ static gps_mask_t hnd_129025(unsigned char *bu, int len, PGN *pgn, struct gps_de
+
+ static gps_mask_t hnd_129026(unsigned char *bu, int len, PGN *pgn, struct gps_device_t *session)
+ {
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+
+ session->driver.nmea2000.sid[0] = bu[0];
+@@ -161,10 +162,10 @@ static gps_mask_t hnd_126992(unsigned char *bu, int len, PGN *pgn, struct gps_de
+ //uint8_t sid;
+ //uint8_t source;
+
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+
+ //sid = bu[0];
+@@ -187,7 +188,7 @@ static gps_mask_t hnd_129539(unsigned char *bu, int len, PGN *pgn, struct gps_de
+ {
+ gps_mask_t mask;
+
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+
+ mask = 0;
+@@ -222,7 +223,7 @@ static gps_mask_t hnd_129540(unsigned char *bu, int len, PGN *pgn, struct gps_de
+ {
+ int l1, l2;
+
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+
+ session->driver.nmea2000.sid[2] = bu[0];
+@@ -261,7 +262,7 @@ static gps_mask_t hnd_129029(unsigned char *bu, int len, PGN *pgn, struct gps_de
+ {
+ gps_mask_t mask;
+
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+
+ mask = 0;
+@@ -326,7 +327,7 @@ static gps_mask_t hnd_129029(unsigned char *bu, int len, PGN *pgn, struct gps_de
+
+ static gps_mask_t hnd_129038(unsigned char *bu, int len, PGN *pgn, struct gps_device_t *session)
+ {
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+ return(0);
+ }
+@@ -334,7 +335,7 @@ static gps_mask_t hnd_129038(unsigned char *bu, int len, PGN *pgn, struct gps_de
+
+ static gps_mask_t hnd_129039(unsigned char *bu, int len, PGN *pgn, struct gps_device_t *session)
+ {
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+ return(0);
+ }
+@@ -342,7 +343,7 @@ static gps_mask_t hnd_129039(unsigned char *bu, int len, PGN *pgn, struct gps_de
+
+ static gps_mask_t hnd_129040(unsigned char *bu, int len, PGN *pgn, struct gps_device_t *session)
+ {
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+ return(0);
+ }
+@@ -350,7 +351,7 @@ static gps_mask_t hnd_129040(unsigned char *bu, int len, PGN *pgn, struct gps_de
+
+ static gps_mask_t hnd_129794(unsigned char *bu, int len, PGN *pgn, struct gps_device_t *session)
+ {
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+ return(0);
+ }
+@@ -358,7 +359,7 @@ static gps_mask_t hnd_129794(unsigned char *bu, int len, PGN *pgn, struct gps_de
+
+ static gps_mask_t hnd_129798(unsigned char *bu, int len, PGN *pgn, struct gps_device_t *session)
+ {
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+ return(0);
+ }
+@@ -366,7 +367,7 @@ static gps_mask_t hnd_129798(unsigned char *bu, int len, PGN *pgn, struct gps_de
+
+ static gps_mask_t hnd_129802(unsigned char *bu, int len, PGN *pgn, struct gps_device_t *session)
+ {
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+ return(0);
+ }
+@@ -374,7 +375,7 @@ static gps_mask_t hnd_129802(unsigned char *bu, int len, PGN *pgn, struct gps_de
+
+ static gps_mask_t hnd_129809(unsigned char *bu, int len, PGN *pgn, struct gps_device_t *session)
+ {
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+ return(0);
+ }
+@@ -382,7 +383,7 @@ static gps_mask_t hnd_129809(unsigned char *bu, int len, PGN *pgn, struct gps_de
+
+ static gps_mask_t hnd_129810(unsigned char *bu, int len, PGN *pgn, struct gps_device_t *session)
+ {
+- (void)print_data(bu, len, pgn);
++ print_data(bu, len, pgn);
+ gpsd_report(LOG_DATA, "pgn %6d(%3d):\n", pgn->pgn, session->driver.nmea2000.unit);
+ return(0);
+ }
+--
+1.7.8.6
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.6-rpath.patch b/sci-geosciences/gpsd/files/gpsd-3.6-rpath.patch
new file mode 100644
index 000000000000..ecff094e4a9f
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.6-rpath.patch
@@ -0,0 +1,13 @@
+don't set the -rpath flag to the install dir as this breaks DESTDIR
+
+--- a/SConstruct
++++ b/SConstruct
+@@ -268,7 +268,7 @@ def installdir(dir, add_destdir=True):
+
+ # Honor the specified installation prefix in link paths.
+ env.Prepend(LIBPATH=[installdir('libdir')])
+-if env["shared"]:
++if env["shared"] and env["chrpath"]:
+ env.Prepend(RPATH=[installdir('libdir')])
+
+ # Give deheader a way to set compiler flags
diff --git a/sci-geosciences/gpsd/files/gpsd-3.7-gps_regress.patch b/sci-geosciences/gpsd/files/gpsd-3.7-gps_regress.patch
new file mode 100644
index 000000000000..018431e1d6b9
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.7-gps_regress.patch
@@ -0,0 +1,63 @@
+https://bugs.gentoo.org/441760
+
+From 52dedf2ca8b31a8d113a1d9b14977d5d9b782744 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Wed, 27 Mar 2013 16:13:30 -0400
+Subject: [PATCH] fix build error when socket_export is disabled
+
+If you try to build with socket_export disabled, you'll hit a build
+failure due to gps_regress being undefined:
+
+NameError: name 'gps_regress' is not defined:
+ File "SConstruct", line 1519:
+ gps_regress,
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ SConstruct | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 1c187f3..a2b7a4c 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1394,8 +1394,8 @@ else:
+ # using regress-drivers requires socket_export being enabled.
+ if env['socket_export']:
+ # Regression-test the daemon
+- gps_regress = Utility("gps-regress", [gpsd, python_built_extensions],
+- '$SRCDIR/regress-driver test/daemon/*.log')
++ gps_regress = [Utility("gps-regress", [gpsd, python_built_extensions],
++ '$SRCDIR/regress-driver test/daemon/*.log')]
+
+ # Test that super-raw mode works. Compare each logfile against itself
+ # dumped through the daemon running in R=2 mode. (This test is not
+@@ -1410,6 +1410,8 @@ if env['socket_export']:
+ # offset from subframe data.
+ Utility('gps-makeregress', [gpsd, python_built_extensions],
+ '$SRCDIR/regress-driver -b test/daemon/*.log')
++else:
++ gps_regress = []
+
+ # To build an individual test for a load named foo.log, put it in
+ # test/daemon and do this:
+@@ -1550,7 +1552,6 @@ flocktest = Utility("flocktest", [], "cd devtools; ./flocktest " + gitrepo)
+ check = env.Alias('check', [
+ python_compilation_regress,
+ bits_regress,
+- gps_regress,
+ rtcm_regress,
+ aivdm_regress,
+ packet_regress,
+@@ -1559,7 +1560,7 @@ check = env.Alias('check', [
+ time_regress,
+ unpack_regress,
+ json_regress,
+- ])
++ ] + gps_regress)
+
+ env.Alias('testregress', check)
+
+--
+1.8.1.2
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.7-no-export-t.patch b/sci-geosciences/gpsd/files/gpsd-3.7-no-export-t.patch
new file mode 100644
index 000000000000..bcfcaf185580
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.7-no-export-t.patch
@@ -0,0 +1,44 @@
+From b605a5fb47ab73412071b6571afcaef4b03c389d Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sat, 30 Mar 2013 16:35:42 -0400
+Subject: [PATCH] punt export_t
+
+Nothing is actually following the convention laid out by this enum,
+so punt it.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ libgps.h | 17 -----------------
+ 1 file changed, 17 deletions(-)
+
+diff --git a/libgps.h b/libgps.h
+index c16b6aa..d30353f 100644
+--- a/libgps.h
++++ b/libgps.h
+@@ -6,23 +6,6 @@
+ #ifndef _GPSD_LIBGPS_H_
+ #define _GPSD_LIBGPS_H_
+
+-/*
+- * first member of each kind of privdata structure must be named
+- * 'export_type' and must be of this type. It's how we do runtime
+- * dispatch to the different transports.
+- */
+-enum export_t {
+-#ifdef SOCKET_EXPORT_ENABLE
+- sockets,
+-#endif /* SOCKET_EXPORT_ENABLE */
+-#ifdef SHM_EXPORT_ENABLE
+- shm,
+-#endif /* SHM_EXPORT_ENABLE */
+-#ifdef DBUS_EXPORT_ENABLE
+- dbus,
+-#endif /* DBUS_EXPORT_ENABLE */
+-};
+-
+ /* values to poke in the gps_fd member if we get it via something special */
+ #define SHM_PSEUDO_FD -1
+ #define DBUS_PSEUDO_FD -2
+--
+1.8.1.2
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.7-rpath.patch b/sci-geosciences/gpsd/files/gpsd-3.7-rpath.patch
new file mode 100644
index 000000000000..5419cd31f637
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.7-rpath.patch
@@ -0,0 +1,17 @@
+don't set the -rpath/-L flags to the install dir as this breaks DESTDIR
+
+--- a/SConstruct
++++ b/SConstruct
+@@ -268,11 +268,7 @@
+ return wrapped
+
+ # Honor the specified installation prefix in link paths.
+-if not env["sysroot"]:
+- env.Prepend(LIBPATH=[installdir('libdir')])
+-else:
+- env.Prepend(LIBPATH=[env["sysroot"] + installdir('libdir')])
+-if env["shared"]:
++if env["shared"] and env["chrpath"]:
+ env.Prepend(RPATH=[installdir('libdir')])
+
+ # Give deheader a way to set compiler flags
diff --git a/sci-geosciences/gpsd/files/gpsd-3.8-ldflags.patch b/sci-geosciences/gpsd/files/gpsd-3.8-ldflags.patch
new file mode 100644
index 000000000000..b41be8b66e54
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.8-ldflags.patch
@@ -0,0 +1,15 @@
+https://bugs.gentoo.org/391299
+
+split up linking flags into multiple arguments
+
+--- gpsd-3.8/SConstruct
++++ gpsd-3.8/SConstruct
+@@ -214,7 +214,7 @@
+ env.Replace(**{j: os.getenv(i)})
+ for flag in ["LDFLAGS", "LINKFLAGS", "SHLINKFLAGS", "CPPFLAGS"]:
+ if os.environ.has_key(flag):
+- env.MergeFlags({flag : [os.getenv(flag)]})
++ env.MergeFlags({flag : Split(os.getenv(flag))})
+
+
+ # Placeholder so we can kluge together something like VPATH builds.
diff --git a/sci-geosciences/gpsd/files/gpsd-3.8-libgps.patch b/sci-geosciences/gpsd/files/gpsd-3.8-libgps.patch
new file mode 100644
index 000000000000..ba22d2bda0e0
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.8-libgps.patch
@@ -0,0 +1,38 @@
+From da2369a8e72578b5c5636adb78accd8bf66b3311 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 11 Mar 2013 12:35:34 -0400
+Subject: [PATCH] libgps.a: fix building w/dbus support
+
+The current libgps.a logic doesn't pass down pkg-config output from
+dbus and such which breaks building when compiling:
+
+gcc -o libgps_dbus.o -c -D_GNU_SOURCE -Wextra -Wall -Wno-uninitialized \
+ -Wno-missing-field-initializers -Wcast-align -Wmissing-declarations \
+ -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith -Wreturn-type \
+ -O2 libgps_dbus.c
+libgps_dbus.c:26:23: fatal error: dbus/dbus.h: No such file or directory
+compilation terminated.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ SConstruct | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/SConstruct b/SConstruct
+index e5d1f54..a56fa9b 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -886,7 +886,9 @@ gpsdlibs = ["-lgpsd"] + usblibs + bluezlibs + gpslibs + caplibs
+ # linking
+ # The final executable will build but not be portable.
+
+-env.StaticLibrary(target = 'libgps.a', source = libgps_sources)
++env.StaticLibrary(target='libgps.a',
++ source=libgps_sources,
++ parse_flags=dbus_libs + rtlibs)
+
+ # Source groups
+
+--
+1.8.1.2
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.8-no-export-t.patch b/sci-geosciences/gpsd/files/gpsd-3.8-no-export-t.patch
new file mode 100644
index 000000000000..c56929abb14a
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.8-no-export-t.patch
@@ -0,0 +1,44 @@
+From b605a5fb47ab73412071b6571afcaef4b03c389d Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sat, 30 Mar 2013 16:35:42 -0400
+Subject: [PATCH] punt export_t
+
+Nothing is actually following the convention laid out by this enum,
+so punt it.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ libgps.h | 17 -----------------
+ 1 file changed, 17 deletions(-)
+
+diff --git a/libgps.h b/libgps.h
+index c16b6aa..d30353f 100644
+--- a/libgps.h
++++ b/libgps.h
+@@ -6,23 +6,6 @@
+ #ifndef _GPSD_LIBGPS_H_
+ #define _GPSD_LIBGPS_H_
+
+-/*
+- * first member of each kind of privdata structure must be named
+- * 'export_type' and must be of this type. It's how we do runtime
+- * dispatch to the different transports.
+- */
+-enum export_t {
+-#ifdef SOCKET_EXPORT_ENABLE
+- sockets,
+-#endif /* SOCKET_EXPORT_ENABLE */
+-#ifdef SHM_EXPORT_ENABLE
+- shm,
+-#endif /* SHM_EXPORT_ENABLE */
+-#ifdef DBUS_EXPORT_ENABLE
+- dbus,
+-#endif /* DBUS_EXPORT_ENABLE */
+-};
+-
+ /* values to poke in the gps_fd member if we get it via something special */
+ #define SHM_PSEUDO_FD -1
+ #define DBUS_PSEUDO_FD -2
+--
+1.8.1.2
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.8-udev.patch b/sci-geosciences/gpsd/files/gpsd-3.8-udev.patch
new file mode 100644
index 000000000000..f6b783e5c3cf
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.8-udev.patch
@@ -0,0 +1,38 @@
+From 2e7d2e22935950ece32ff3acd6837c79800752dd Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 11 Mar 2013 13:21:14 -0400
+Subject: [PATCH] fix DESTDIR handling with udev rules install again
+
+Commit 102e29d16c3fd9b414eeac53c794302f902ae8da reverted the DESTDIR
+logic when upgrading the udev path handling.
+
+It also slightly broke the mkdir setup by not creating the rules.d
+subdir under the udev path.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ SConstruct | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index a56fa9b..1c187f3 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1662,10 +1662,10 @@ if env['python']:
+ # is plugged in.
+
+ Utility('udev-install', 'install', [
+- 'mkdir -p ' + env['udevdir'],
+- 'cp $SRCDIR/gpsd.rules ' + env['udevdir'] + '/rules.d/25-gpsd.rules',
+- 'cp $SRCDIR/gpsd.hotplug ' + env['udevdir'],
+- 'chmod a+x ' + env['udevdir'] + '/gpsd.hotplug',
++ 'mkdir -p ' + DESTDIR + env['udevdir'] + '/rules.d',
++ 'cp $SRCDIR/gpsd.rules ' + DESTDIR + env['udevdir'] + '/rules.d/25-gpsd.rules',
++ 'cp $SRCDIR/gpsd.hotplug ' + DESTDIR + env['udevdir'],
++ 'chmod a+x ' + DESTDIR + env['udevdir'] + '/gpsd.hotplug',
+ ])
+
+ Utility('udev-uninstall', '', [
+--
+1.8.1.2
+
diff --git a/sci-geosciences/gpsd/files/gpsd.conf-2 b/sci-geosciences/gpsd/files/gpsd.conf-2
new file mode 100644
index 000000000000..b077fdbf9cde
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd.conf-2
@@ -0,0 +1,8 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Config file for gpsd server
+GPSD_OPTIONS=""
+DEVICES=""
+GPSD_SOCKET="/var/run/gpsd.sock"
diff --git a/sci-geosciences/gpsd/files/gpsd.init-2 b/sci-geosciences/gpsd/files/gpsd.init-2
new file mode 100755
index 000000000000..ad734e34d987
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd.init-2
@@ -0,0 +1,39 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ after dbus
+ before ntpd
+}
+
+PIDFILE=/var/run/${SVCNAME}.pid
+DAEMON=/usr/sbin/gpsd
+
+checkconfig() {
+ # Note: these GPSD_xxx var names should be kept in sync with the udev rules.
+ 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
+}
+
+start() {
+ checkconfig
+ ebegin "Starting gpsd"
+
+ start-stop-daemon --start --quiet --pidfile ${PIDFILE} --exec ${DAEMON} -- \
+ ${GPSD_OPTIONS} -P ${PIDFILE} ${DEVICES}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping gpsd"
+ start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile ${PIDFILE}
+ eend $?
+ rm -f ${PIDFILE}
+}
diff --git a/sci-geosciences/gpsd/gpsd-2.95-r1.ebuild b/sci-geosciences/gpsd/gpsd-2.95-r1.ebuild
new file mode 100644
index 000000000000..8d8f86df4f59
--- /dev/null
+++ b/sci-geosciences/gpsd/gpsd-2.95-r1.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=3
+
+PYTHON_DEPEND="2:2.6"
+
+inherit python autotools user eutils
+
+DESCRIPTION="GPS daemon and library to support USB/serial GPS devices and various GPS/mapping clients"
+HOMEPAGE="http://gpsd.berlios.de/"
+SRC_URI="mirror://berlios/gpsd/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm ppc ppc64 x86"
+
+GPSD_PROTOCOLS="ashtech aivdm clientdebug earthmate evermore fv18 garmin
+ garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver
+ oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip
+ tripmate tnt ubx"
+for protocol in ${GPSD_PROTOCOLS}; do
+ IUSE_GPSD_PROTOCOLS+=" gpsd_protocols_${protocol}"
+done
+
+IUSE="${IUSE_GPSD_PROTOCOLS} dbus ipv6 ntp qt4"
+
+# those harddeps are de-facto automagicall
+RDEPEND="
+ dev-python/pygtk:2
+ sys-libs/ncurses
+ virtual/libusb:1
+ dbus? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ )
+ ntp? ( net-misc/ntp )
+ qt4? ( dev-qt/qtgui:4 )"
+
+DEPEND="${RDEPEND}
+ app-text/xmlto
+ =app-text/docbook-xml-dtd-4.1*"
+
+PATCHES=(
+ "${FILESDIR}/${PV}-disable-strip.patch"
+ "${FILESDIR}/${PV}-fix-ldflags.patch"
+)
+
+pkg_setup() {
+ python_set_active_version 2
+
+ # Run the gpsd daemon as gpsd and group uucp
+ enewuser gpsd -1 -1 -1 "uucp"
+}
+
+src_prepare() {
+ epatch ${PATCHES[@]}
+ epatch_user
+ eautoreconf
+}
+
+src_configure() {
+ local myopts
+
+ # enable specified protocols
+ for protocol in ${GPSD_PROTOCOLS}; do
+ myopts+=" $(use_enable gpsd_protocols_${protocol} ${protocol})"
+ done
+
+ if ! use qt4 ; then
+ myopts+=" --disable-libQgpsmm --disable-libgpsmm ${myopts}"
+ fi
+
+ # --disable-bluetooth: considered experimental -> disable
+ # --enable-static is required for tests, see bug 355071
+ # Hack to make it not generate docs on the fly; xmlto is
+ # needed for man pages (xsltproc is only needed for web pages)
+ econf WITH_XMLTO=yes WITH_XSLTPROC=no \
+ --build=${CBUILD} \
+ --disable-dependency-tracking \
+ --disable-bluetooth \
+ --enable-static \
+ --enable-gpsd-user=gpsd \
+ --enable-gpsd-group=uucp \
+ $(use_enable dbus) \
+ $(use_enable ipv6) \
+ $(use_enable ntp ntpshm) \
+ $(use_enable ntp pps) \
+ ${myopts}
+}
+
+src_install() {
+ # no it can't be done using emake cause it is non-compliant
+ make DESTDIR="${D}" install || die
+
+ # needs this header for libQgpsmm
+ if use qt4 ; then
+ insinto /usr/include
+ doins libQgpsmm/libQgpsmm_global.h
+ fi
+
+ # no need for .la files here
+ find "${D}" -type f -name '*.la' -exec rm -f '{}' +
+
+ newconfd "${FILESDIR}"/gpsd.conf-2 gpsd || die
+ newinitd "${FILESDIR}"/gpsd.init-2 gpsd || die
+}
diff --git a/sci-geosciences/gpsd/gpsd-2.96-r1.ebuild b/sci-geosciences/gpsd/gpsd-2.96-r1.ebuild
new file mode 100644
index 000000000000..18764d321eed
--- /dev/null
+++ b/sci-geosciences/gpsd/gpsd-2.96-r1.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=3
+
+PYTHON_DEPEND="2:2.6"
+
+inherit python autotools user eutils
+
+DESCRIPTION="GPS daemon and library to support USB/serial GPS devices and various GPS/mapping clients"
+HOMEPAGE="http://gpsd.berlios.de/"
+SRC_URI="mirror://berlios/gpsd/${P}bis.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+
+GPSD_PROTOCOLS="ashtech aivdm clientdebug earthmate evermore fv18 garmin
+ garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver
+ oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip
+ tripmate tnt ubx"
+for protocol in ${GPSD_PROTOCOLS}; do
+ IUSE_GPSD_PROTOCOLS+=" gpsd_protocols_${protocol}"
+done
+
+IUSE="${IUSE_GPSD_PROTOCOLS} dbus ipv6 ntp qt4 test udev"
+
+# those harddeps are de-facto automagicall
+RDEPEND="
+ dev-python/pygtk:2
+ sys-libs/ncurses
+ virtual/libusb:1
+ dbus? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ )
+ ntp? ( net-misc/ntp )
+ qt4? ( dev-qt/qtgui:4 )"
+
+DEPEND="${RDEPEND}
+ app-text/xmlto
+ =app-text/docbook-xml-dtd-4.1*
+ test? ( sys-devel/bc )"
+
+PATCHES=(
+ "${FILESDIR}/2.95-disable-strip.patch"
+ "${FILESDIR}/${PV}-fix-ldflags.patch"
+ "${FILESDIR}/${PV}-fix-tests.patch"
+ "${FILESDIR}/${PV}-pkgconfig.patch"
+)
+
+pkg_setup() {
+ python_set_active_version 2
+
+ # Run the gpsd daemon as gpsd and group uucp
+ enewuser gpsd -1 -1 -1 "uucp"
+}
+
+src_prepare() {
+ epatch ${PATCHES[@]}
+ epatch_user
+ eautoreconf
+}
+
+src_configure() {
+ local myopts
+
+ # enable specified protocols
+ for protocol in ${GPSD_PROTOCOLS}; do
+ myopts+=" $(use_enable gpsd_protocols_${protocol} ${protocol})"
+ done
+
+ if ! use qt4 ; then
+ myopts+=" --disable-libQgpsmm --disable-libgpsmm"
+ fi
+
+ # --disable-bluetooth: considered experimental -> disable
+ # Hack to make it not generate docs on the fly; xmlto is
+ # needed for man pages (xsltproc is only needed for web pages)
+ WITH_XMLTO=yes WITH_XSLTPROC=no econf \
+ --disable-dependency-tracking \
+ --disable-bluetooth \
+ --disable-static \
+ --enable-gpsd-user=gpsd \
+ --enable-gpsd-group=uucp \
+ $(use_enable dbus) \
+ $(use_enable ipv6) \
+ $(use_enable ntp ntpshm) \
+ $(use_enable ntp pps) \
+ ${myopts}
+}
+
+src_install() {
+ # no it can't be done using emake cause it is non-compliant
+ make DESTDIR="${D}" install || die
+
+ if use udev ; then
+ insinto /lib/udev/rules.d/
+ newins gpsd.rules 25-gpsd.rules
+ exeinto /lib/udev/
+ doexe gpsd.hotplug{,.wrapper}
+ fi
+
+ # needs this header for libQgpsmm
+ if use qt4 ; then
+ insinto /usr/include
+ doins libQgpsmm/libQgpsmm_global.h
+ fi
+
+ # no need for .la files here
+ find "${D}" -type f -name '*.la' -exec rm -f '{}' +
+
+ newconfd "${FILESDIR}"/gpsd.conf-2 gpsd || die
+ newinitd "${FILESDIR}"/gpsd.init-2 gpsd || die
+}
diff --git a/sci-geosciences/gpsd/gpsd-3.10.ebuild b/sci-geosciences/gpsd/gpsd-3.10.ebuild
new file mode 100644
index 000000000000..804c9beec259
--- /dev/null
+++ b/sci-geosciences/gpsd/gpsd-3.10.ebuild
@@ -0,0 +1,168 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+DISTUTILS_OPTIONAL=1
+PYTHON_COMPAT=( python2_7 )
+SCONS_MIN_VERSION="1.2.1"
+
+inherit eutils udev user multilib distutils-r1 scons-utils toolchain-funcs
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://git.savannah.nongnu.org/gpsd.git"
+ inherit git-2
+else
+ SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+fi
+
+DESCRIPTION="GPS daemon and library to support USB/serial GPS devices and various GPS/mapping clients"
+HOMEPAGE="http://catb.org/gpsd/"
+
+LICENSE="BSD"
+SLOT="0"
+
+GPSD_PROTOCOLS=(
+ aivdm ashtech earthmate evermore fury fv18 garmin garmintxt
+ geostar gpsclock itrax mtk3301 navcom nmea nmea2000 ntrip
+ oceanserver oncore rtcm104v2 rtcm104v3 sirf superstar2 tnt
+ tripmate tsip ublox
+)
+IUSE_GPSD_PROTOCOLS=${GPSD_PROTOCOLS[@]/#/gpsd_protocols_}
+IUSE="${IUSE_GPSD_PROTOCOLS} bluetooth cxx debug dbus ipv6 latency_timing ncurses ntp python qt4 +shm +sockets static test udev usb X"
+REQUIRED_USE="X? ( python )
+ gpsd_protocols_nmea2000? ( gpsd_protocols_aivdm )
+ python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="X? ( dev-python/pygtk:2[${PYTHON_USEDEP}] )
+ ncurses? ( sys-libs/ncurses )
+ bluetooth? ( net-wireless/bluez )
+ usb? ( virtual/libusb:1 )
+ dbus? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ )
+ ntp? ( || ( net-misc/ntp net-misc/chrony ) )
+ qt4? ( dev-qt/qtgui:4 )
+ python? ( ${PYTHON_DEPS} )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? ( sys-devel/bc )"
+
+# xml packages are for man page generation
+if [[ ${PV} == "9999" ]] ; then
+ DEPEND+="
+ app-text/xmlto
+ =app-text/docbook-xml-dtd-4.1*"
+fi
+
+src_prepare() {
+ # Make sure our list matches the source.
+ local src_protocols=$(echo $(
+ sed -n '/GPS protocols/,/Time service/{s:#.*::;s:[(",]::g;p}' "${S}"/SConstruct | awk '{print $1}' | LC_ALL=C sort
+ ) )
+ if [[ ${src_protocols} != ${GPSD_PROTOCOLS[*]} ]] ; then
+ eerror "Detected protocols: ${src_protocols}"
+ eerror "Ebuild protocols: ${GPSD_PROTOCOLS[*]}"
+ die "please sync ebuild & source"
+ fi
+
+ epatch "${FILESDIR}"/${PN}-3.8-ldflags.patch
+ epatch "${FILESDIR}"/${PN}-3.10-rpath.patch
+ epatch "${FILESDIR}"/${PN}-3.10-dbus.patch
+ epatch "${FILESDIR}"/${PN}-3.10-udev-install.patch
+ epatch "${FILESDIR}"/${PN}-3.10-nmea-disabled.patch #493022
+
+ # Avoid useless -L paths to the install dir
+ sed -i \
+ -e 's:\<STAGING_PREFIX\>:SYSROOT:g' \
+ SConstruct || die
+
+ use python && distutils-r1_src_prepare
+}
+
+python_prepare_all() {
+ python_export_best
+ # Extract python info out of SConstruct so we can use saner distribute
+ pyvar() { sed -n "/^ *$1 *=/s:.*= *::p" SConstruct ; }
+ local pybins=$(pyvar python_progs)
+ local pysrcs=$(sed -n '/^ *python_extensions = {/,/}/{s:^ *::;s:os[.]sep:"/":g;p}' SConstruct)
+ local packet=$("${PYTHON}" -c "${pysrcs}; print(python_extensions['gps/packet'])")
+ local client=$("${PYTHON}" -c "${pysrcs}; print(python_extensions['gps/clienthelpers'])")
+ sed \
+ -e "s|@VERSION@|$(pyvar gpsd_version)|" \
+ -e "s|@URL@|$(pyvar website)|" \
+ -e "s|@EMAIL@|$(pyvar devmail)|" \
+ -e "s|@SCRIPTS@|${pybins}|" \
+ -e "s|@GPS_PACKET_SOURCES@|${packet}|" \
+ -e "s|@GPS_CLIENT_SOURCES@|${client}|" \
+ -e "s|@SCRIPTS@|$(pyvar python_progs)|" \
+ "${FILESDIR}"/${PN}-3.3-setup.py > setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+src_configure() {
+ myesconsargs=(
+ prefix="${EPREFIX}/usr"
+ libdir="\$prefix/$(get_libdir)"
+ udevdir="$(get_udevdir)"
+ chrpath=False
+ gpsd_user=gpsd
+ gpsd_group=uucp
+ strip=False
+ python=False
+ manbuild=False
+ shared=$(usex !static True False)
+ $(use_scons bluetooth bluez)
+ $(use_scons cxx libgpsmm)
+ $(use_scons debug clientdebug)
+ $(use_scons dbus dbus_export)
+ $(use_scons ipv6)
+ $(use_scons latency_timing timing)
+ $(use_scons ncurses)
+ $(use_scons ntp ntpshm)
+ $(use_scons ntp pps)
+ $(use_scons shm shm_export)
+ $(use_scons sockets socket_export)
+ $(use_scons qt4 libQgpsmm)
+ $(use_scons usb)
+ )
+
+ # enable specified protocols
+ local protocol
+ for protocol in ${GPSD_PROTOCOLS[@]} ; do
+ myesconsargs+=( $(use_scons gpsd_protocols_${protocol} ${protocol}) )
+ done
+}
+
+src_compile() {
+ export CHRPATH=
+ tc-export CC CXX PKG_CONFIG
+ export SHLINKFLAGS=${LDFLAGS} LINKFLAGS=${LDFLAGS}
+ escons
+
+ use python && distutils-r1_src_compile
+}
+
+src_install() {
+ DESTDIR="${D}" escons install $(usex udev udev-install "")
+
+ newconfd "${FILESDIR}"/gpsd.conf-2 gpsd
+ newinitd "${FILESDIR}"/gpsd.init-2 gpsd
+
+ if use python ; then
+ distutils-r1_src_install
+ # Delete all X related packages if user doesn't want them
+ if ! use X ; then
+ rm "${ED%/}"/usr/bin/xgps* || die
+ fi
+ fi
+}
+
+pkg_preinst() {
+ # Run the gpsd daemon as gpsd and group uucp; create it here
+ # as it doesn't seem to be needed during compile/install ...
+ enewuser gpsd -1 -1 -1 "uucp"
+}
diff --git a/sci-geosciences/gpsd/gpsd-3.11.ebuild b/sci-geosciences/gpsd/gpsd-3.11.ebuild
new file mode 100644
index 000000000000..21233f8d6b2d
--- /dev/null
+++ b/sci-geosciences/gpsd/gpsd-3.11.ebuild
@@ -0,0 +1,167 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+DISTUTILS_OPTIONAL=1
+PYTHON_COMPAT=( python2_7 )
+SCONS_MIN_VERSION="1.2.1"
+
+inherit eutils udev user multilib distutils-r1 scons-utils toolchain-funcs
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://git.savannah.nongnu.org/gpsd.git"
+ inherit git-2
+else
+ SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+fi
+
+DESCRIPTION="GPS daemon and library to support USB/serial GPS devices and various GPS/mapping clients"
+HOMEPAGE="http://catb.org/gpsd/"
+
+LICENSE="BSD"
+SLOT="0"
+
+GPSD_PROTOCOLS=(
+ aivdm ashtech earthmate evermore fury fv18 garmin garmintxt
+ geostar gpsclock itrax mtk3301 navcom nmea nmea2000 ntrip
+ oceanserver oncore rtcm104v2 rtcm104v3 sirf superstar2 tnt
+ tripmate tsip ublox
+)
+IUSE_GPSD_PROTOCOLS=${GPSD_PROTOCOLS[@]/#/gpsd_protocols_}
+IUSE="${IUSE_GPSD_PROTOCOLS} bluetooth cxx debug dbus ipv6 latency_timing ncurses ntp python qt4 +shm +sockets static test udev usb X"
+REQUIRED_USE="X? ( python )
+ gpsd_protocols_nmea2000? ( gpsd_protocols_aivdm )
+ python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="X? ( dev-python/pygtk:2[${PYTHON_USEDEP}] )
+ ncurses? ( sys-libs/ncurses )
+ bluetooth? ( net-wireless/bluez )
+ usb? ( virtual/libusb:1 )
+ dbus? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ )
+ ntp? ( || ( net-misc/ntp net-misc/chrony ) )
+ qt4? ( dev-qt/qtgui:4 )
+ python? ( ${PYTHON_DEPS} )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? ( sys-devel/bc )"
+
+# xml packages are for man page generation
+if [[ ${PV} == "9999" ]] ; then
+ DEPEND+="
+ app-text/xmlto
+ =app-text/docbook-xml-dtd-4.1*"
+fi
+
+src_prepare() {
+ # Make sure our list matches the source.
+ local src_protocols=$(echo $(
+ sed -n '/# GPS protocols/,/# Time service/{s:#.*::;s:[(",]::g;p}' "${S}"/SConstruct | awk '{print $1}' | LC_ALL=C sort
+ ) )
+ if [[ ${src_protocols} != ${GPSD_PROTOCOLS[*]} ]] ; then
+ eerror "Detected protocols: ${src_protocols}"
+ eerror "Ebuild protocols: ${GPSD_PROTOCOLS[*]}"
+ die "please sync ebuild & source"
+ fi
+
+ epatch "${FILESDIR}"/${PN}-3.8-ldflags.patch
+ epatch "${FILESDIR}"/${PN}-3.11-rpath.patch
+ epatch "${FILESDIR}"/${PN}-3.11-hotplug-config.patch
+ epatch "${FILESDIR}"/${PN}-3.11-no-ntpshm.patch
+
+ # Avoid useless -L paths to the install dir
+ sed -i \
+ -e 's:\<STAGING_PREFIX\>:SYSROOT:g' \
+ SConstruct || die
+
+ use python && distutils-r1_src_prepare
+}
+
+python_prepare_all() {
+ python_export_best
+ # Extract python info out of SConstruct so we can use saner distribute
+ pyvar() { sed -n "/^ *$1 *=/s:.*= *::p" SConstruct ; }
+ local pybins=$(pyvar python_progs)
+ local pysrcs=$(sed -n '/^ *python_extensions = {/,/}/{s:^ *::;s:os[.]sep:"/":g;p}' SConstruct)
+ local packet=$("${PYTHON}" -c "${pysrcs}; print(python_extensions['gps/packet'])")
+ local client=$("${PYTHON}" -c "${pysrcs}; print(python_extensions['gps/clienthelpers'])")
+ sed \
+ -e "s|@VERSION@|$(pyvar gpsd_version)|" \
+ -e "s|@URL@|$(pyvar website)|" \
+ -e "s|@EMAIL@|$(pyvar devmail)|" \
+ -e "s|@SCRIPTS@|${pybins}|" \
+ -e "s|@GPS_PACKET_SOURCES@|${packet}|" \
+ -e "s|@GPS_CLIENT_SOURCES@|${client}|" \
+ -e "s|@SCRIPTS@|$(pyvar python_progs)|" \
+ "${FILESDIR}"/${PN}-3.3-setup.py > setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+src_configure() {
+ myesconsargs=(
+ prefix="${EPREFIX}/usr"
+ libdir="\$prefix/$(get_libdir)"
+ udevdir="$(get_udevdir)"
+ chrpath=False
+ gpsd_user=gpsd
+ gpsd_group=uucp
+ strip=False
+ python=False
+ manbuild=False
+ shared=$(usex !static True False)
+ $(use_scons bluetooth bluez)
+ $(use_scons cxx libgpsmm)
+ $(use_scons debug clientdebug)
+ $(use_scons dbus dbus_export)
+ $(use_scons ipv6)
+ $(use_scons latency_timing timing)
+ $(use_scons ncurses)
+ $(use_scons ntp ntpshm)
+ $(use_scons ntp pps)
+ $(use_scons shm shm_export)
+ $(use_scons sockets socket_export)
+ $(use_scons qt4 libQgpsmm)
+ $(use_scons usb)
+ )
+
+ # enable specified protocols
+ local protocol
+ for protocol in ${GPSD_PROTOCOLS[@]} ; do
+ myesconsargs+=( $(use_scons gpsd_protocols_${protocol} ${protocol}) )
+ done
+}
+
+src_compile() {
+ export CHRPATH=
+ tc-export CC CXX PKG_CONFIG
+ export SHLINKFLAGS=${LDFLAGS} LINKFLAGS=${LDFLAGS}
+ escons
+
+ use python && distutils-r1_src_compile
+}
+
+src_install() {
+ DESTDIR="${D}" escons install $(usex udev udev-install "")
+
+ newconfd "${FILESDIR}"/gpsd.conf-2 gpsd
+ newinitd "${FILESDIR}"/gpsd.init-2 gpsd
+
+ if use python ; then
+ distutils-r1_src_install
+ # Delete all X related packages if user doesn't want them
+ if ! use X ; then
+ rm "${ED%/}"/usr/bin/xgps* || die
+ fi
+ fi
+}
+
+pkg_preinst() {
+ # Run the gpsd daemon as gpsd and group uucp; create it here
+ # as it doesn't seem to be needed during compile/install ...
+ enewuser gpsd -1 -1 -1 "uucp"
+}
diff --git a/sci-geosciences/gpsd/gpsd-3.13.ebuild b/sci-geosciences/gpsd/gpsd-3.13.ebuild
new file mode 100644
index 000000000000..94c09c310965
--- /dev/null
+++ b/sci-geosciences/gpsd/gpsd-3.13.ebuild
@@ -0,0 +1,166 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+DISTUTILS_OPTIONAL=1
+PYTHON_COMPAT=( python2_7 )
+SCONS_MIN_VERSION="1.2.1"
+
+inherit eutils udev user multilib distutils-r1 scons-utils toolchain-funcs
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://git.savannah.nongnu.org/gpsd.git"
+ inherit git-2
+else
+ SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+fi
+
+DESCRIPTION="GPS daemon and library to support USB/serial GPS devices and various GPS/mapping clients"
+HOMEPAGE="http://catb.org/gpsd/"
+
+LICENSE="BSD"
+SLOT="0"
+
+GPSD_PROTOCOLS=(
+ aivdm ashtech earthmate evermore fury fv18 garmin garmintxt
+ geostar gpsclock itrax mtk3301 navcom nmea0183 nmea2000 ntrip
+ oceanserver oncore passthrough rtcm104v2 rtcm104v3 sirf superstar2
+ tnt tripmate tsip ublox
+)
+IUSE_GPSD_PROTOCOLS=${GPSD_PROTOCOLS[@]/#/gpsd_protocols_}
+IUSE="${IUSE_GPSD_PROTOCOLS} bluetooth cxx debug dbus ipv6 latency_timing ncurses ntp python qt4 +shm +sockets static test udev usb X"
+REQUIRED_USE="X? ( python )
+ gpsd_protocols_nmea2000? ( gpsd_protocols_aivdm )
+ python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="X? ( dev-python/pygtk:2[${PYTHON_USEDEP}] )
+ ncurses? ( sys-libs/ncurses )
+ bluetooth? ( net-wireless/bluez )
+ usb? ( virtual/libusb:1 )
+ dbus? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ )
+ ntp? ( || ( net-misc/ntp net-misc/chrony ) )
+ qt4? ( dev-qt/qtgui:4 )
+ python? ( ${PYTHON_DEPS} )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? ( sys-devel/bc )"
+
+# xml packages are for man page generation
+if [[ ${PV} == "9999" ]] ; then
+ DEPEND+="
+ app-text/xmlto
+ =app-text/docbook-xml-dtd-4.1*"
+fi
+
+src_prepare() {
+ # Make sure our list matches the source.
+ local src_protocols=$(echo $(
+ sed -n '/# GPS protocols/,/# Time service/{s:#.*::;s:[(",]::g;p}' "${S}"/SConstruct | awk '{print $1}' | LC_ALL=C sort
+ ) )
+ if [[ ${src_protocols} != ${GPSD_PROTOCOLS[*]} ]] ; then
+ eerror "Detected protocols: ${src_protocols}"
+ eerror "Ebuild protocols: ${GPSD_PROTOCOLS[*]}"
+ die "please sync ebuild & source"
+ fi
+
+ epatch "${FILESDIR}"/${PN}-3.8-ldflags.patch
+ epatch "${FILESDIR}"/${PN}-3.11-rpath.patch
+ epatch "${FILESDIR}"/${PN}-3.13-ntpshm.patch
+
+ # Avoid useless -L paths to the install dir
+ sed -i \
+ -e 's:\<STAGING_PREFIX\>:SYSROOT:g' \
+ SConstruct || die
+
+ use python && distutils-r1_src_prepare
+}
+
+python_prepare_all() {
+ python_export_best
+ # Extract python info out of SConstruct so we can use saner distribute
+ pyvar() { sed -n "/^ *$1 *=/s:.*= *::p" SConstruct ; }
+ local pybins=$(pyvar python_progs | tail -1)
+ local pysrcs=$(sed -n '/^ *python_extensions = {/,/}/{s:^ *::;s:os[.]sep:"/":g;p}' SConstruct)
+ local packet=$("${PYTHON}" -c "${pysrcs}; print(python_extensions['gps/packet'])")
+ local client=$("${PYTHON}" -c "${pysrcs}; print(python_extensions['gps/clienthelpers'])")
+ sed \
+ -e "s|@VERSION@|$(pyvar gpsd_version)|" \
+ -e "s|@URL@|$(pyvar website)|" \
+ -e "s|@EMAIL@|$(pyvar devmail)|" \
+ -e "s|@SCRIPTS@|${pybins}|" \
+ -e "s|@GPS_PACKET_SOURCES@|${packet}|" \
+ -e "s|@GPS_CLIENT_SOURCES@|${client}|" \
+ -e "s|@SCRIPTS@|${pybins}|" \
+ "${FILESDIR}"/${PN}-3.3-setup.py > setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+src_configure() {
+ myesconsargs=(
+ prefix="${EPREFIX}/usr"
+ libdir="\$prefix/$(get_libdir)"
+ udevdir="$(get_udevdir)"
+ chrpath=False
+ gpsd_user=gpsd
+ gpsd_group=uucp
+ nostrip=True
+ python=False
+ manbuild=False
+ shared=$(usex !static True False)
+ $(use_scons bluetooth bluez)
+ $(use_scons cxx libgpsmm)
+ $(use_scons debug clientdebug)
+ $(use_scons dbus dbus_export)
+ $(use_scons ipv6)
+ $(use_scons latency_timing timing)
+ $(use_scons ncurses)
+ $(use_scons ntp ntpshm)
+ $(use_scons ntp pps)
+ $(use_scons shm shm_export)
+ $(use_scons sockets socket_export)
+ $(use_scons qt4 libQgpsmm)
+ $(use_scons usb)
+ )
+
+ # enable specified protocols
+ local protocol
+ for protocol in ${GPSD_PROTOCOLS[@]} ; do
+ myesconsargs+=( $(use_scons gpsd_protocols_${protocol} ${protocol}) )
+ done
+}
+
+src_compile() {
+ export CHRPATH=
+ tc-export CC CXX PKG_CONFIG
+ export SHLINKFLAGS=${LDFLAGS} LINKFLAGS=${LDFLAGS}
+ escons
+
+ use python && distutils-r1_src_compile
+}
+
+src_install() {
+ DESTDIR="${D}" escons install $(usex udev udev-install "")
+
+ newconfd "${FILESDIR}"/gpsd.conf-2 gpsd
+ newinitd "${FILESDIR}"/gpsd.init-2 gpsd
+
+ if use python ; then
+ distutils-r1_src_install
+ # Delete all X related packages if user doesn't want them
+ if ! use X ; then
+ rm "${ED%/}"/usr/bin/xgps* || die
+ fi
+ fi
+}
+
+pkg_preinst() {
+ # Run the gpsd daemon as gpsd and group uucp; create it here
+ # as it doesn't seem to be needed during compile/install ...
+ enewuser gpsd -1 -1 -1 "uucp"
+}
diff --git a/sci-geosciences/gpsd/gpsd-3.15.ebuild b/sci-geosciences/gpsd/gpsd-3.15.ebuild
new file mode 100644
index 000000000000..9249bcc9d940
--- /dev/null
+++ b/sci-geosciences/gpsd/gpsd-3.15.ebuild
@@ -0,0 +1,167 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+DISTUTILS_OPTIONAL=1
+PYTHON_COMPAT=( python2_7 )
+SCONS_MIN_VERSION="1.2.1"
+
+inherit eutils udev user multilib distutils-r1 scons-utils toolchain-funcs
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://git.savannah.nongnu.org/gpsd.git"
+ inherit git-2
+else
+ SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+fi
+
+DESCRIPTION="GPS daemon and library to support USB/serial GPS devices and various GPS/mapping clients"
+HOMEPAGE="http://catb.org/gpsd/"
+
+LICENSE="BSD"
+SLOT="0"
+
+GPSD_PROTOCOLS=(
+ aivdm ashtech earthmate evermore fury fv18 garmin garmintxt
+ geostar gpsclock itrax mtk3301 navcom nmea0183 nmea2000 ntrip
+ oceanserver oncore passthrough rtcm104v2 rtcm104v3 sirf superstar2
+ tnt tripmate tsip ublox
+)
+IUSE_GPSD_PROTOCOLS=${GPSD_PROTOCOLS[@]/#/gpsd_protocols_}
+IUSE="${IUSE_GPSD_PROTOCOLS} bluetooth cxx debug dbus ipv6 latency_timing ncurses ntp python qt4 +shm +sockets static test udev usb X"
+REQUIRED_USE="X? ( python )
+ gpsd_protocols_nmea2000? ( gpsd_protocols_aivdm )
+ python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="X? ( dev-python/pygtk:2[${PYTHON_USEDEP}] )
+ ncurses? ( sys-libs/ncurses )
+ bluetooth? ( net-wireless/bluez )
+ usb? ( virtual/libusb:1 )
+ dbus? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ )
+ ntp? ( || ( net-misc/ntp net-misc/chrony ) )
+ qt4? ( dev-qt/qtgui:4 )
+ python? ( ${PYTHON_DEPS} )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? ( sys-devel/bc )"
+
+# xml packages are for man page generation
+if [[ ${PV} == "9999" ]] ; then
+ DEPEND+="
+ app-text/xmlto
+ =app-text/docbook-xml-dtd-4.1*"
+fi
+
+src_prepare() {
+ # Make sure our list matches the source.
+ local src_protocols=$(echo $(
+ sed -n '/# GPS protocols/,/# Time service/{s:#.*::;s:[(",]::g;p}' "${S}"/SConstruct | awk '{print $1}' | LC_ALL=C sort
+ ) )
+ if [[ ${src_protocols} != ${GPSD_PROTOCOLS[*]} ]] ; then
+ eerror "Detected protocols: ${src_protocols}"
+ eerror "Ebuild protocols: ${GPSD_PROTOCOLS[*]}"
+ die "please sync ebuild & source"
+ fi
+
+ epatch "${FILESDIR}"/${PN}-3.8-ldflags.patch
+ epatch "${FILESDIR}"/${PN}-3.15-dynamic-libs.patch
+ epatch "${FILESDIR}"/${PN}-3.15-libgpsd.patch
+ epatch "${FILESDIR}"/${PN}-3.15-broken-install.patch
+
+ # Avoid useless -L paths to the install dir
+ sed -i \
+ -e 's:\<STAGING_PREFIX\>:SYSROOT:g' \
+ SConstruct || die
+
+ use python && distutils-r1_src_prepare
+}
+
+python_prepare_all() {
+ python_export_best
+ # Extract python info out of SConstruct so we can use saner distribute
+ pyvar() { sed -n "/^ *$1 *=/s:.*= *::p" SConstruct ; }
+ local pybins=$(pyvar python_progs | tail -1)
+ local pysrcs=$(sed -n '/^ *python_extensions = {/,/}/{s:^ *::;s:os[.]sep:"/":g;p}' SConstruct)
+ local packet=$("${PYTHON}" -c "${pysrcs}; print(python_extensions['gps/packet'])")
+ local client=$("${PYTHON}" -c "${pysrcs}; print(python_extensions['gps/clienthelpers'])")
+ sed \
+ -e "s|@VERSION@|$(pyvar gpsd_version)|" \
+ -e "s|@URL@|$(pyvar website)|" \
+ -e "s|@EMAIL@|$(pyvar devmail)|" \
+ -e "s|@SCRIPTS@|${pybins}|" \
+ -e "s|@GPS_PACKET_SOURCES@|${packet}|" \
+ -e "s|@GPS_CLIENT_SOURCES@|${client}|" \
+ -e "s|@SCRIPTS@|${pybins}|" \
+ "${FILESDIR}"/${PN}-3.3-setup.py > setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+src_configure() {
+ myesconsargs=(
+ prefix="${EPREFIX}/usr"
+ libdir="\$prefix/$(get_libdir)"
+ udevdir="$(get_udevdir)"
+ chrpath=False
+ gpsd_user=gpsd
+ gpsd_group=uucp
+ nostrip=True
+ python=False
+ manbuild=False
+ shared=$(usex !static True False)
+ $(use_scons bluetooth bluez)
+ $(use_scons cxx libgpsmm)
+ $(use_scons debug clientdebug)
+ $(use_scons dbus dbus_export)
+ $(use_scons ipv6)
+ $(use_scons latency_timing timing)
+ $(use_scons ncurses)
+ $(use_scons ntp ntpshm)
+ $(use_scons ntp pps)
+ $(use_scons shm shm_export)
+ $(use_scons sockets socket_export)
+ $(use_scons qt4 libQgpsmm)
+ $(use_scons usb)
+ )
+
+ # enable specified protocols
+ local protocol
+ for protocol in ${GPSD_PROTOCOLS[@]} ; do
+ myesconsargs+=( $(use_scons gpsd_protocols_${protocol} ${protocol}) )
+ done
+}
+
+src_compile() {
+ export CHRPATH=
+ tc-export CC CXX PKG_CONFIG
+ export SHLINKFLAGS=${LDFLAGS} LINKFLAGS=${LDFLAGS}
+ escons
+
+ use python && distutils-r1_src_compile
+}
+
+src_install() {
+ DESTDIR="${D}" escons install $(usex udev udev-install "")
+
+ newconfd "${FILESDIR}"/gpsd.conf-2 gpsd
+ newinitd "${FILESDIR}"/gpsd.init-2 gpsd
+
+ if use python ; then
+ distutils-r1_src_install
+ # Delete all X related packages if user doesn't want them
+ if ! use X ; then
+ rm "${ED%/}"/usr/bin/xgps* || die
+ fi
+ fi
+}
+
+pkg_preinst() {
+ # Run the gpsd daemon as gpsd and group uucp; create it here
+ # as it doesn't seem to be needed during compile/install ...
+ enewuser gpsd -1 -1 -1 "uucp"
+}
diff --git a/sci-geosciences/gpsd/gpsd-3.6.ebuild b/sci-geosciences/gpsd/gpsd-3.6.ebuild
new file mode 100644
index 000000000000..2e3655eac447
--- /dev/null
+++ b/sci-geosciences/gpsd/gpsd-3.6.ebuild
@@ -0,0 +1,163 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+PYTHON_DEPEND="python? 2:2.6"
+RESTRICT_PYTHON_ABIS="3.*"
+SUPPORT_PYTHON_ABIS="1"
+SCONS_MIN_VERSION="1.2.1"
+
+inherit eutils user multilib distutils scons-utils toolchain-funcs
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://git.savannah.nongnu.org/gpsd.git"
+ inherit git-2
+else
+ SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+fi
+
+DESCRIPTION="GPS daemon and library to support USB/serial GPS devices and various GPS/mapping clients"
+HOMEPAGE="http://catb.org/gpsd/"
+
+LICENSE="BSD"
+SLOT="0"
+
+GPSD_PROTOCOLS=(
+ ashtech aivdm clientdebug earthmate evermore fv18 garmin
+ garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver
+ oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip
+ tripmate tnt ubx
+)
+IUSE_GPSD_PROTOCOLS=${GPSD_PROTOCOLS[@]/#/gpsd_protocols_}
+IUSE="${IUSE_GPSD_PROTOCOLS} bluetooth cxx debug dbus ipv6 ncurses ntp python qt4 +shm +sockets test udev usb X"
+REQUIRED_USE="X? ( python )"
+
+RDEPEND="X? ( dev-python/pygtk:2 )
+ ncurses? ( sys-libs/ncurses )
+ bluetooth? ( net-wireless/bluez )
+ usb? ( virtual/libusb:1 )
+ dbus? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ )
+ ntp? ( || ( net-misc/ntp net-misc/chrony ) )
+ qt4? ( dev-qt/qtgui:4 )"
+DEPEND="${RDEPEND}
+ test? ( sys-devel/bc )"
+
+# xml packages are for man page generation
+if [[ ${PV} == "9999" ]] ; then
+ DEPEND+="
+ app-text/xmlto
+ =app-text/docbook-xml-dtd-4.1*"
+fi
+
+pkg_setup() {
+ use python && python_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-3.3-ldflags.patch
+ epatch "${FILESDIR}"/${PN}-3.4-always-install-man-pages.patch
+ epatch "${FILESDIR}"/${PN}-3.4-no-man-gen.patch
+ epatch "${FILESDIR}"/${PN}-3.6-debug.patch
+ epatch "${FILESDIR}"/${PN}-3.6-rpath.patch
+
+ # Avoid useless -L paths to the install dir
+ sed -i \
+ -e '/^env.Prepend(LIBPATH=.installdir(.libdir.).)$/d' \
+ -e 's:\<STAGING_PREFIX\>:SYSROOT:g' \
+ SConstruct || die
+
+ # Extract python info out of SConstruct so we can use saner distribute
+ if use python ; then
+ pyvar() { sed -n "/^ *$1 *=/s:.*= *::p" SConstruct ; }
+ local pybins=$(pyvar python_progs)
+ local pysrcs=$(sed -n '/^ *python_extensions = {/,/}/{s:^ *::;s:os[.]sep:"/":g;p}' SConstruct)
+ local packet=$(python -c "${pysrcs}; print(python_extensions['gps/packet'])")
+ local client=$(python -c "${pysrcs}; print(python_extensions['gps/clienthelpers'])")
+ sed \
+ -e "s|@VERSION@|$(pyvar gpsd_version)|" \
+ -e "s|@URL@|$(pyvar website)|" \
+ -e "s|@EMAIL@|$(pyvar devmail)|" \
+ -e "s|@SCRIPTS@|${pybins}|" \
+ -e "s|@GPS_PACKET_SOURCES@|${packet}|" \
+ -e "s|@GPS_CLIENT_SOURCES@|${client}|" \
+ -e "s|@SCRIPTS@|$(pyvar python_progs)|" \
+ "${FILESDIR}"/${PN}-3.3-setup.py > setup.py || die
+ distutils_src_prepare
+ fi
+}
+
+src_configure() {
+ myesconsargs=(
+ prefix="${EPREFIX}/usr"
+ libdir="\$prefix/$(get_libdir)"
+ chrpath=False
+ gpsd_user=gpsd
+ gpsd_group=uucp
+ strip=False
+ python=False
+ $(use_scons bluetooth bluez)
+ $(use_scons cxx libgpsmm)
+ $(use_scons debug)
+ $(use_scons dbus dbus_export)
+ $(use_scons ipv6)
+ $(use_scons ncurses)
+ $(use_scons ntp ntpshm)
+ $(use_scons ntp pps)
+ $(use_scons shm shm_export)
+ $(use_scons sockets socket_export)
+ $(use_scons qt4 libQgpsmm)
+ $(use_scons usb)
+ )
+
+ # enable specified protocols
+ local protocol
+ for protocol in ${GPSD_PROTOCOLS[@]} ; do
+ myesconsargs+=( $(use_scons gpsd_protocols_${protocol} ${protocol}) )
+ done
+}
+
+src_compile() {
+ tc-export CC CXX PKG_CONFIG
+ export SHLINKFLAGS=${LDFLAGS} LINKFLAGS=${LDFLAGS}
+ escons
+
+ use python && distutils_src_compile
+}
+
+src_install() {
+ DESTDIR="${D}" escons install $(usex udev udev-install "")
+
+ newconfd "${FILESDIR}"/gpsd.conf-2 gpsd
+ newinitd "${FILESDIR}"/gpsd.init-2 gpsd
+
+ if use python ; then
+ distutils_src_install
+ # Delete all X related packages if user doesn't want them
+ if ! use X ; then
+ local p
+ for p in $(grep -Il 'import .*pygtk' *) ; do
+ find "${D}"/usr/bin -name "${p}*" -delete
+ done
+ fi
+ fi
+}
+
+pkg_preinst() {
+ # Run the gpsd daemon as gpsd and group uucp; create it here
+ # as it doesn't seem to be needed during compile/install ...
+ enewuser gpsd -1 -1 -1 "uucp"
+}
+
+pkg_postinst() {
+ use python && distutils_pkg_postinst
+}
+
+pkg_postrm() {
+ use python && distutils_pkg_postrm
+}
diff --git a/sci-geosciences/gpsd/gpsd-3.7.ebuild b/sci-geosciences/gpsd/gpsd-3.7.ebuild
new file mode 100644
index 000000000000..d6dd080405bf
--- /dev/null
+++ b/sci-geosciences/gpsd/gpsd-3.7.ebuild
@@ -0,0 +1,168 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+PYTHON_DEPEND="python? 2:2.6"
+RESTRICT_PYTHON_ABIS="3.*"
+SUPPORT_PYTHON_ABIS="1"
+SCONS_MIN_VERSION="1.2.1"
+
+inherit eutils udev user multilib distutils scons-utils toolchain-funcs
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://git.savannah.nongnu.org/gpsd.git"
+ inherit git-2
+else
+ SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz"
+ KEYWORDS="amd64 arm ppc ppc64 x86"
+fi
+
+DESCRIPTION="GPS daemon and library to support USB/serial GPS devices and various GPS/mapping clients"
+HOMEPAGE="http://catb.org/gpsd/"
+
+LICENSE="BSD"
+SLOT="0"
+
+GPSD_PROTOCOLS=(
+ ashtech aivdm clientdebug earthmate evermore fv18 garmin
+ garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver
+ oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip
+ tripmate tnt ubx
+)
+IUSE_GPSD_PROTOCOLS=${GPSD_PROTOCOLS[@]/#/gpsd_protocols_}
+IUSE="${IUSE_GPSD_PROTOCOLS} bluetooth cxx debug dbus ipv6 ncurses ntp python qt4 +shm +sockets test udev usb X"
+REQUIRED_USE="X? ( python )"
+
+RDEPEND="X? ( dev-python/pygtk:2 )
+ ncurses? ( sys-libs/ncurses )
+ bluetooth? ( net-wireless/bluez )
+ usb? ( virtual/libusb:1 )
+ dbus? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ )
+ ntp? ( || ( net-misc/ntp net-misc/chrony ) )
+ qt4? ( dev-qt/qtgui:4 )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? ( sys-devel/bc )"
+
+# xml packages are for man page generation
+if [[ ${PV} == "9999" ]] ; then
+ DEPEND+="
+ app-text/xmlto
+ =app-text/docbook-xml-dtd-4.1*"
+fi
+
+pkg_setup() {
+ use python && python_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-3.3-ldflags.patch
+ epatch "${FILESDIR}"/${PN}-3.4-always-install-man-pages.patch
+ epatch "${FILESDIR}"/${PN}-3.4-no-man-gen.patch
+ epatch "${FILESDIR}"/${PN}-3.7-rpath.patch
+ epatch "${FILESDIR}"/${PN}-3.7-gps_regress.patch #441760
+ epatch "${FILESDIR}"/${PN}-3.7-no-export-t.patch #463850
+
+ # Avoid useless -L paths to the install dir
+ sed -i \
+ -e '/^env.Prepend(LIBPATH=.installdir(.libdir.).)$/d' \
+ -e 's:\<STAGING_PREFIX\>:SYSROOT:g' \
+ SConstruct || die
+
+ # Extract python info out of SConstruct so we can use saner distribute
+ if use python ; then
+ pyvar() { sed -n "/^ *$1 *=/s:.*= *::p" SConstruct ; }
+ local pybins=$(pyvar python_progs)
+ local pysrcs=$(sed -n '/^ *python_extensions = {/,/}/{s:^ *::;s:os[.]sep:"/":g;p}' SConstruct)
+ local packet=$(python -c "${pysrcs}; print(python_extensions['gps/packet'])")
+ local client=$(python -c "${pysrcs}; print(python_extensions['gps/clienthelpers'])")
+ sed \
+ -e "s|@VERSION@|$(pyvar gpsd_version)|" \
+ -e "s|@URL@|$(pyvar website)|" \
+ -e "s|@EMAIL@|$(pyvar devmail)|" \
+ -e "s|@SCRIPTS@|${pybins}|" \
+ -e "s|@GPS_PACKET_SOURCES@|${packet}|" \
+ -e "s|@GPS_CLIENT_SOURCES@|${client}|" \
+ -e "s|@SCRIPTS@|$(pyvar python_progs)|" \
+ "${FILESDIR}"/${PN}-3.3-setup.py > setup.py || die
+ distutils_src_prepare
+ fi
+
+ sed -i -e "s:/lib/udev:$(get_udevdir):" gpsd.rules SConstruct || die
+}
+
+src_configure() {
+ myesconsargs=(
+ prefix="${EPREFIX}/usr"
+ libdir="\$prefix/$(get_libdir)"
+ chrpath=False
+ gpsd_user=gpsd
+ gpsd_group=uucp
+ strip=False
+ python=False
+ $(use_scons bluetooth bluez)
+ $(use_scons cxx libgpsmm)
+ $(use_scons debug)
+ $(use_scons dbus dbus_export)
+ $(use_scons ipv6)
+ $(use_scons ncurses)
+ $(use_scons ntp ntpshm)
+ $(use_scons ntp pps)
+ $(use_scons shm shm_export)
+ $(use_scons sockets socket_export)
+ $(use_scons qt4 libQgpsmm)
+ $(use_scons usb)
+ )
+
+ # enable specified protocols
+ local protocol
+ for protocol in ${GPSD_PROTOCOLS[@]} ; do
+ myesconsargs+=( $(use_scons gpsd_protocols_${protocol} ${protocol}) )
+ done
+}
+
+src_compile() {
+ export CHRPATH=
+ tc-export CC CXX PKG_CONFIG
+ export SHLINKFLAGS=${LDFLAGS} LINKFLAGS=${LDFLAGS}
+ escons
+
+ use python && distutils_src_compile
+}
+
+src_install() {
+ DESTDIR="${D}" escons install $(usex udev udev-install "")
+
+ newconfd "${FILESDIR}"/gpsd.conf-2 gpsd
+ newinitd "${FILESDIR}"/gpsd.init-2 gpsd
+
+ if use python ; then
+ distutils_src_install
+ # Delete all X related packages if user doesn't want them
+ if ! use X ; then
+ local p
+ for p in $(grep -Il 'import .*pygtk' *) ; do
+ find "${D}"/usr/bin -name "${p}*" -delete
+ done
+ fi
+ fi
+}
+
+pkg_preinst() {
+ # Run the gpsd daemon as gpsd and group uucp; create it here
+ # as it doesn't seem to be needed during compile/install ...
+ enewuser gpsd -1 -1 -1 "uucp"
+}
+
+pkg_postinst() {
+ use python && distutils_pkg_postinst
+}
+
+pkg_postrm() {
+ use python && distutils_pkg_postrm
+}
diff --git a/sci-geosciences/gpsd/gpsd-3.8.ebuild b/sci-geosciences/gpsd/gpsd-3.8.ebuild
new file mode 100644
index 000000000000..6fa713d03ec5
--- /dev/null
+++ b/sci-geosciences/gpsd/gpsd-3.8.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+PYTHON_DEPEND="python? 2:2.6"
+RESTRICT_PYTHON_ABIS="3.*"
+SUPPORT_PYTHON_ABIS="1"
+SCONS_MIN_VERSION="1.2.1"
+
+inherit eutils udev user multilib distutils scons-utils toolchain-funcs
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://git.savannah.nongnu.org/gpsd.git"
+ inherit git-2
+else
+ SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+fi
+
+DESCRIPTION="GPS daemon and library to support USB/serial GPS devices and various GPS/mapping clients"
+HOMEPAGE="http://catb.org/gpsd/"
+
+LICENSE="BSD"
+SLOT="0"
+
+GPSD_PROTOCOLS=(
+ aivdm ashtech earthmate evermore fury fv18 garmin garmintxt
+ geostar gpsclock itrax mtk3301 navcom nmea nmea2000 ntrip
+ oceanserver oncore rtcm104v2 rtcm104v3 sirf superstar2 tnt
+ tripmate tsip ubx
+)
+IUSE_GPSD_PROTOCOLS=${GPSD_PROTOCOLS[@]/#/gpsd_protocols_}
+IUSE="${IUSE_GPSD_PROTOCOLS} bluetooth cxx debug dbus ipv6 latency_timing ncurses ntp python qt4 +shm +sockets test udev usb X"
+REQUIRED_USE="X? ( python )
+ gpsd_protocols_nmea2000? ( gpsd_protocols_aivdm )"
+
+RDEPEND="X? ( dev-python/pygtk:2 )
+ ncurses? ( sys-libs/ncurses )
+ bluetooth? ( net-wireless/bluez )
+ usb? ( virtual/libusb:1 )
+ dbus? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ )
+ ntp? ( || ( net-misc/ntp net-misc/chrony ) )
+ qt4? ( dev-qt/qtgui:4 )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? ( sys-devel/bc )"
+
+# xml packages are for man page generation
+if [[ ${PV} == "9999" ]] ; then
+ DEPEND+="
+ app-text/xmlto
+ =app-text/docbook-xml-dtd-4.1*"
+fi
+
+pkg_setup() {
+ use python && python_pkg_setup
+}
+
+src_unpack() {
+ default
+
+ # Make sure our list matches the source.
+ local src_protocols=$(echo $(
+ sed -n '/GPS protocols/,/Time service/{s:#.*::;s:[(",]::g;p}' "${S}"/SConstruct | awk '{print $1}' | LC_ALL=C sort
+ ) )
+ if [[ ${src_protocols} != ${GPSD_PROTOCOLS[*]} ]] ; then
+ eerror "Detected protocols: ${src_protocols}"
+ eerror "Ebuild protocols: ${GPSD_PROTOCOLS[*]}"
+ die "please sync ebuild & source"
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-3.8-ldflags.patch
+ epatch "${FILESDIR}"/${PN}-3.8-libgps.patch
+ epatch "${FILESDIR}"/${PN}-3.8-udev.patch
+ epatch "${FILESDIR}"/${PN}-3.4-no-man-gen.patch
+ epatch "${FILESDIR}"/${PN}-3.7-rpath.patch
+ epatch "${FILESDIR}"/${PN}-3.7-gps_regress.patch #441760
+ epatch "${FILESDIR}"/${PN}-3.8-no-export-t.patch #463850
+
+ # Avoid useless -L paths to the install dir
+ sed -i \
+ -e '/^env.Prepend(LIBPATH=.installdir(.libdir.).)$/d' \
+ -e 's:\<STAGING_PREFIX\>:SYSROOT:g' \
+ SConstruct || die
+
+ # Extract python info out of SConstruct so we can use saner distribute
+ if use python ; then
+ pyvar() { sed -n "/^ *$1 *=/s:.*= *::p" SConstruct ; }
+ local pybins=$(pyvar python_progs)
+ local pysrcs=$(sed -n '/^ *python_extensions = {/,/}/{s:^ *::;s:os[.]sep:"/":g;p}' SConstruct)
+ local packet=$(python -c "${pysrcs}; print(python_extensions['gps/packet'])")
+ local client=$(python -c "${pysrcs}; print(python_extensions['gps/clienthelpers'])")
+ sed \
+ -e "s|@VERSION@|$(pyvar gpsd_version)|" \
+ -e "s|@URL@|$(pyvar website)|" \
+ -e "s|@EMAIL@|$(pyvar devmail)|" \
+ -e "s|@SCRIPTS@|${pybins}|" \
+ -e "s|@GPS_PACKET_SOURCES@|${packet}|" \
+ -e "s|@GPS_CLIENT_SOURCES@|${client}|" \
+ -e "s|@SCRIPTS@|$(pyvar python_progs)|" \
+ "${FILESDIR}"/${PN}-3.3-setup.py > setup.py || die
+ distutils_src_prepare
+ fi
+}
+
+src_configure() {
+ myesconsargs=(
+ prefix="${EPREFIX}/usr"
+ libdir="\$prefix/$(get_libdir)"
+ udevdir="$(get_udevdir)"
+ chrpath=False
+ gpsd_user=gpsd
+ gpsd_group=uucp
+ strip=False
+ python=False
+ $(use_scons bluetooth bluez)
+ $(use_scons cxx libgpsmm)
+ $(use_scons debug clientdebug)
+ $(use_scons dbus dbus_export)
+ $(use_scons ipv6)
+ $(use_scons latency_timing timing)
+ $(use_scons ncurses)
+ $(use_scons ntp ntpshm)
+ $(use_scons ntp pps)
+ $(use_scons shm shm_export)
+ $(use_scons sockets socket_export)
+ $(use_scons qt4 libQgpsmm)
+ $(use_scons usb)
+ )
+
+ # enable specified protocols
+ local protocol
+ for protocol in ${GPSD_PROTOCOLS[@]} ; do
+ myesconsargs+=( $(use_scons gpsd_protocols_${protocol} ${protocol}) )
+ done
+}
+
+src_compile() {
+ export CHRPATH=
+ tc-export CC CXX PKG_CONFIG
+ export SHLINKFLAGS=${LDFLAGS} LINKFLAGS=${LDFLAGS}
+ escons
+
+ use python && distutils_src_compile
+}
+
+src_install() {
+ DESTDIR="${D}" escons install $(usex udev udev-install "")
+
+ newconfd "${FILESDIR}"/gpsd.conf-2 gpsd
+ newinitd "${FILESDIR}"/gpsd.init-2 gpsd
+
+ if use python ; then
+ distutils_src_install
+ # Delete all X related packages if user doesn't want them
+ if ! use X ; then
+ local p
+ for p in $(grep -Il 'import .*pygtk' *) ; do
+ find "${D}"/usr/bin -name "${p}*" -delete
+ done
+ fi
+ fi
+}
+
+pkg_preinst() {
+ # Run the gpsd daemon as gpsd and group uucp; create it here
+ # as it doesn't seem to be needed during compile/install ...
+ enewuser gpsd -1 -1 -1 "uucp"
+}
+
+pkg_postinst() {
+ use python && distutils_pkg_postinst
+}
+
+pkg_postrm() {
+ use python && distutils_pkg_postrm
+}
diff --git a/sci-geosciences/gpsd/gpsd-3.9-r1.ebuild b/sci-geosciences/gpsd/gpsd-3.9-r1.ebuild
new file mode 100644
index 000000000000..ae73424a6e15
--- /dev/null
+++ b/sci-geosciences/gpsd/gpsd-3.9-r1.ebuild
@@ -0,0 +1,187 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+PYTHON_DEPEND="python? 2:2.6"
+RESTRICT_PYTHON_ABIS="3.*"
+SUPPORT_PYTHON_ABIS="1"
+SCONS_MIN_VERSION="1.2.1"
+
+inherit eutils udev user multilib distutils scons-utils systemd toolchain-funcs
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://git.savannah.nongnu.org/gpsd.git"
+ inherit git-2
+else
+ SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz"
+ KEYWORDS="amd64 arm ppc ppc64 x86"
+fi
+
+DESCRIPTION="GPS daemon and library to support USB/serial GPS devices and various GPS/mapping clients"
+HOMEPAGE="http://catb.org/gpsd/"
+
+LICENSE="BSD"
+SLOT="0"
+
+GPSD_PROTOCOLS=(
+ aivdm ashtech earthmate evermore fury fv18 garmin garmintxt
+ geostar gpsclock itrax mtk3301 navcom nmea nmea2000 ntrip
+ oceanserver oncore rtcm104v2 rtcm104v3 sirf superstar2 tnt
+ tripmate tsip ubx
+)
+IUSE_GPSD_PROTOCOLS=${GPSD_PROTOCOLS[@]/#/gpsd_protocols_}
+IUSE="${IUSE_GPSD_PROTOCOLS} bluetooth cxx debug dbus ipv6 latency_timing ncurses ntp python qt4 +shm +sockets systemd test udev usb X"
+REQUIRED_USE="X? ( python )
+ gpsd_protocols_nmea2000? ( gpsd_protocols_aivdm )"
+
+RDEPEND="X? ( dev-python/pygtk:2 )
+ ncurses? ( sys-libs/ncurses )
+ bluetooth? ( net-wireless/bluez )
+ usb? ( virtual/libusb:1 )
+ dbus? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ )
+ ntp? ( || ( net-misc/ntp net-misc/chrony ) )
+ systemd? ( sys-apps/systemd )
+ qt4? ( dev-qt/qtgui:4 )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? ( sys-devel/bc )"
+
+# xml packages are for man page generation
+if [[ ${PV} == "9999" ]] ; then
+ DEPEND+="
+ app-text/xmlto
+ =app-text/docbook-xml-dtd-4.1*"
+fi
+
+pkg_setup() {
+ use python && python_pkg_setup
+}
+
+src_unpack() {
+ default
+
+ # Make sure our list matches the source.
+ local src_protocols=$(echo $(
+ sed -n '/GPS protocols/,/Time service/{s:#.*::;s:[(",]::g;p}' "${S}"/SConstruct | awk '{print $1}' | LC_ALL=C sort
+ ) )
+ if [[ ${src_protocols} != ${GPSD_PROTOCOLS[*]} ]] ; then
+ eerror "Detected protocols: ${src_protocols}"
+ eerror "Ebuild protocols: ${GPSD_PROTOCOLS[*]}"
+ die "please sync ebuild & source"
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-3.8-ldflags.patch
+ epatch "${FILESDIR}"/${PN}-3.4-no-man-gen.patch
+ epatch "${FILESDIR}"/${PN}-3.7-rpath.patch
+
+ # Avoid useless -L paths to the install dir
+ sed -i \
+ -e '/^env.Prepend(LIBPATH=.installdir(.libdir.).)$/d' \
+ -e 's:\<STAGING_PREFIX\>:SYSROOT:g' \
+ SConstruct || die
+
+ # Extract python info out of SConstruct so we can use saner distribute
+ if use python ; then
+ pyvar() { sed -n "/^ *$1 *=/s:.*= *::p" SConstruct ; }
+ local pybins=$(pyvar python_progs)
+ local pysrcs=$(sed -n '/^ *python_extensions = {/,/}/{s:^ *::;s:os[.]sep:"/":g;p}' SConstruct)
+ local packet=$(python -c "${pysrcs}; print(python_extensions['gps/packet'])")
+ local client=$(python -c "${pysrcs}; print(python_extensions['gps/clienthelpers'])")
+ sed \
+ -e "s|@VERSION@|$(pyvar gpsd_version)|" \
+ -e "s|@URL@|$(pyvar website)|" \
+ -e "s|@EMAIL@|$(pyvar devmail)|" \
+ -e "s|@SCRIPTS@|${pybins}|" \
+ -e "s|@GPS_PACKET_SOURCES@|${packet}|" \
+ -e "s|@GPS_CLIENT_SOURCES@|${client}|" \
+ -e "s|@SCRIPTS@|$(pyvar python_progs)|" \
+ "${FILESDIR}"/${PN}-3.3-setup.py > setup.py || die
+ distutils_src_prepare
+ fi
+}
+
+src_configure() {
+ myesconsargs=(
+ prefix="${EPREFIX}/usr"
+ libdir="\$prefix/$(get_libdir)"
+ udevdir="$(get_udevdir)"
+ chrpath=False
+ gpsd_user=gpsd
+ gpsd_group=uucp
+ strip=False
+ python=False
+ $(use_scons bluetooth bluez)
+ $(use_scons cxx libgpsmm)
+ $(use_scons debug clientdebug)
+ $(use_scons dbus dbus_export)
+ $(use_scons ipv6)
+ $(use_scons latency_timing timing)
+ $(use_scons ncurses)
+ $(use_scons ntp ntpshm)
+ $(use_scons ntp pps)
+ $(use_scons shm shm_export)
+ $(use_scons sockets socket_export)
+ $(use_scons systemd)
+ $(use_scons qt4 libQgpsmm)
+ $(use_scons usb)
+ )
+
+ # enable specified protocols
+ local protocol
+ for protocol in ${GPSD_PROTOCOLS[@]} ; do
+ myesconsargs+=( $(use_scons gpsd_protocols_${protocol} ${protocol}) )
+ done
+}
+
+src_compile() {
+ export CHRPATH=
+ tc-export CC CXX PKG_CONFIG
+ export SHLINKFLAGS=${LDFLAGS} LINKFLAGS=${LDFLAGS}
+ escons
+
+ use python && distutils_src_compile
+}
+
+src_install() {
+ DESTDIR="${D}" escons install $(usex udev udev-install "")
+
+ newconfd "${FILESDIR}"/gpsd.conf-2 gpsd
+ newinitd "${FILESDIR}"/gpsd.init-2 gpsd
+
+ if use systemd; then
+ systemd_dounit "${S}"/systemd/gpsd.service
+ systemd_dounit "${S}"/systemd/gpsd.socket
+ fi
+
+ if use python ; then
+ distutils_src_install
+ # Delete all X related packages if user doesn't want them
+ if ! use X ; then
+ local p
+ for p in $(grep -Il 'import .*pygtk' *) ; do
+ find "${D}"/usr/bin -name "${p}*" -delete
+ done
+ fi
+ fi
+}
+
+pkg_preinst() {
+ # Run the gpsd daemon as gpsd and group uucp; create it here
+ # as it doesn't seem to be needed during compile/install ...
+ enewuser gpsd -1 -1 -1 "uucp"
+}
+
+pkg_postinst() {
+ use python && distutils_pkg_postinst
+}
+
+pkg_postrm() {
+ use python && distutils_pkg_postrm
+}
diff --git a/sci-geosciences/gpsd/gpsd-3.9.ebuild b/sci-geosciences/gpsd/gpsd-3.9.ebuild
new file mode 100644
index 000000000000..9e251de697ff
--- /dev/null
+++ b/sci-geosciences/gpsd/gpsd-3.9.ebuild
@@ -0,0 +1,180 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+PYTHON_DEPEND="python? 2:2.6"
+RESTRICT_PYTHON_ABIS="3.*"
+SUPPORT_PYTHON_ABIS="1"
+SCONS_MIN_VERSION="1.2.1"
+
+inherit eutils udev user multilib distutils scons-utils toolchain-funcs
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://git.savannah.nongnu.org/gpsd.git"
+ inherit git-2
+else
+ SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz"
+ KEYWORDS="amd64 arm ppc ppc64 x86"
+fi
+
+DESCRIPTION="GPS daemon and library to support USB/serial GPS devices and various GPS/mapping clients"
+HOMEPAGE="http://catb.org/gpsd/"
+
+LICENSE="BSD"
+SLOT="0"
+
+GPSD_PROTOCOLS=(
+ aivdm ashtech earthmate evermore fury fv18 garmin garmintxt
+ geostar gpsclock itrax mtk3301 navcom nmea nmea2000 ntrip
+ oceanserver oncore rtcm104v2 rtcm104v3 sirf superstar2 tnt
+ tripmate tsip ubx
+)
+IUSE_GPSD_PROTOCOLS=${GPSD_PROTOCOLS[@]/#/gpsd_protocols_}
+IUSE="${IUSE_GPSD_PROTOCOLS} bluetooth cxx debug dbus ipv6 latency_timing ncurses ntp python qt4 +shm +sockets test udev usb X"
+REQUIRED_USE="X? ( python )
+ gpsd_protocols_nmea2000? ( gpsd_protocols_aivdm )"
+
+RDEPEND="X? ( dev-python/pygtk:2 )
+ ncurses? ( sys-libs/ncurses )
+ bluetooth? ( net-wireless/bluez )
+ usb? ( virtual/libusb:1 )
+ dbus? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ )
+ ntp? ( || ( net-misc/ntp net-misc/chrony ) )
+ qt4? ( dev-qt/qtgui:4 )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? ( sys-devel/bc )"
+
+# xml packages are for man page generation
+if [[ ${PV} == "9999" ]] ; then
+ DEPEND+="
+ app-text/xmlto
+ =app-text/docbook-xml-dtd-4.1*"
+fi
+
+pkg_setup() {
+ use python && python_pkg_setup
+}
+
+src_unpack() {
+ default
+
+ # Make sure our list matches the source.
+ local src_protocols=$(echo $(
+ sed -n '/GPS protocols/,/Time service/{s:#.*::;s:[(",]::g;p}' "${S}"/SConstruct | awk '{print $1}' | LC_ALL=C sort
+ ) )
+ if [[ ${src_protocols} != ${GPSD_PROTOCOLS[*]} ]] ; then
+ eerror "Detected protocols: ${src_protocols}"
+ eerror "Ebuild protocols: ${GPSD_PROTOCOLS[*]}"
+ die "please sync ebuild & source"
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-3.8-ldflags.patch
+ epatch "${FILESDIR}"/${PN}-3.4-no-man-gen.patch
+ epatch "${FILESDIR}"/${PN}-3.7-rpath.patch
+
+ # Avoid useless -L paths to the install dir
+ sed -i \
+ -e '/^env.Prepend(LIBPATH=.installdir(.libdir.).)$/d' \
+ -e 's:\<STAGING_PREFIX\>:SYSROOT:g' \
+ SConstruct || die
+
+ # Extract python info out of SConstruct so we can use saner distribute
+ if use python ; then
+ pyvar() { sed -n "/^ *$1 *=/s:.*= *::p" SConstruct ; }
+ local pybins=$(pyvar python_progs)
+ local pysrcs=$(sed -n '/^ *python_extensions = {/,/}/{s:^ *::;s:os[.]sep:"/":g;p}' SConstruct)
+ local packet=$(python -c "${pysrcs}; print(python_extensions['gps/packet'])")
+ local client=$(python -c "${pysrcs}; print(python_extensions['gps/clienthelpers'])")
+ sed \
+ -e "s|@VERSION@|$(pyvar gpsd_version)|" \
+ -e "s|@URL@|$(pyvar website)|" \
+ -e "s|@EMAIL@|$(pyvar devmail)|" \
+ -e "s|@SCRIPTS@|${pybins}|" \
+ -e "s|@GPS_PACKET_SOURCES@|${packet}|" \
+ -e "s|@GPS_CLIENT_SOURCES@|${client}|" \
+ -e "s|@SCRIPTS@|$(pyvar python_progs)|" \
+ "${FILESDIR}"/${PN}-3.3-setup.py > setup.py || die
+ distutils_src_prepare
+ fi
+}
+
+src_configure() {
+ myesconsargs=(
+ prefix="${EPREFIX}/usr"
+ libdir="\$prefix/$(get_libdir)"
+ udevdir="$(get_udevdir)"
+ chrpath=False
+ gpsd_user=gpsd
+ gpsd_group=uucp
+ strip=False
+ python=False
+ $(use_scons bluetooth bluez)
+ $(use_scons cxx libgpsmm)
+ $(use_scons debug clientdebug)
+ $(use_scons dbus dbus_export)
+ $(use_scons ipv6)
+ $(use_scons latency_timing timing)
+ $(use_scons ncurses)
+ $(use_scons ntp ntpshm)
+ $(use_scons ntp pps)
+ $(use_scons shm shm_export)
+ $(use_scons sockets socket_export)
+ $(use_scons qt4 libQgpsmm)
+ $(use_scons usb)
+ )
+
+ # enable specified protocols
+ local protocol
+ for protocol in ${GPSD_PROTOCOLS[@]} ; do
+ myesconsargs+=( $(use_scons gpsd_protocols_${protocol} ${protocol}) )
+ done
+}
+
+src_compile() {
+ export CHRPATH=
+ tc-export CC CXX PKG_CONFIG
+ export SHLINKFLAGS=${LDFLAGS} LINKFLAGS=${LDFLAGS}
+ escons
+
+ use python && distutils_src_compile
+}
+
+src_install() {
+ DESTDIR="${D}" escons install $(usex udev udev-install "")
+
+ newconfd "${FILESDIR}"/gpsd.conf-2 gpsd
+ newinitd "${FILESDIR}"/gpsd.init-2 gpsd
+
+ if use python ; then
+ distutils_src_install
+ # Delete all X related packages if user doesn't want them
+ if ! use X ; then
+ local p
+ for p in $(grep -Il 'import .*pygtk' *) ; do
+ find "${D}"/usr/bin -name "${p}*" -delete
+ done
+ fi
+ fi
+}
+
+pkg_preinst() {
+ # Run the gpsd daemon as gpsd and group uucp; create it here
+ # as it doesn't seem to be needed during compile/install ...
+ enewuser gpsd -1 -1 -1 "uucp"
+}
+
+pkg_postinst() {
+ use python && distutils_pkg_postinst
+}
+
+pkg_postrm() {
+ use python && distutils_pkg_postrm
+}
diff --git a/sci-geosciences/gpsd/gpsd-9999.ebuild b/sci-geosciences/gpsd/gpsd-9999.ebuild
new file mode 100644
index 000000000000..c0b11a93dcc7
--- /dev/null
+++ b/sci-geosciences/gpsd/gpsd-9999.ebuild
@@ -0,0 +1,165 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+DISTUTILS_OPTIONAL=1
+PYTHON_COMPAT=( python2_7 )
+SCONS_MIN_VERSION="1.2.1"
+
+inherit eutils udev user multilib distutils-r1 scons-utils toolchain-funcs
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://git.savannah.nongnu.org/gpsd.git"
+ inherit git-2
+else
+ SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+fi
+
+DESCRIPTION="GPS daemon and library to support USB/serial GPS devices and various GPS/mapping clients"
+HOMEPAGE="http://catb.org/gpsd/"
+
+LICENSE="BSD"
+SLOT="0"
+
+GPSD_PROTOCOLS=(
+ aivdm ashtech earthmate evermore fury fv18 garmin garmintxt
+ geostar gpsclock itrax mtk3301 navcom nmea0183 nmea2000 ntrip
+ oceanserver oncore passthrough rtcm104v2 rtcm104v3 sirf superstar2
+ tnt tripmate tsip ublox
+)
+IUSE_GPSD_PROTOCOLS=${GPSD_PROTOCOLS[@]/#/gpsd_protocols_}
+IUSE="${IUSE_GPSD_PROTOCOLS} bluetooth cxx debug dbus ipv6 latency_timing ncurses ntp python qt4 +shm +sockets static test udev usb X"
+REQUIRED_USE="X? ( python )
+ gpsd_protocols_nmea2000? ( gpsd_protocols_aivdm )
+ python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="X? ( dev-python/pygtk:2[${PYTHON_USEDEP}] )
+ ncurses? ( sys-libs/ncurses )
+ bluetooth? ( net-wireless/bluez )
+ usb? ( virtual/libusb:1 )
+ dbus? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ )
+ ntp? ( || ( net-misc/ntp net-misc/chrony ) )
+ qt4? ( dev-qt/qtgui:4 )
+ python? ( ${PYTHON_DEPS} )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? ( sys-devel/bc )"
+
+# xml packages are for man page generation
+if [[ ${PV} == "9999" ]] ; then
+ DEPEND+="
+ app-text/xmlto
+ =app-text/docbook-xml-dtd-4.1*"
+fi
+
+src_prepare() {
+ # Make sure our list matches the source.
+ local src_protocols=$(echo $(
+ sed -n '/# GPS protocols/,/# Time service/{s:#.*::;s:[(",]::g;p}' "${S}"/SConstruct | awk '{print $1}' | LC_ALL=C sort
+ ) )
+ if [[ ${src_protocols} != ${GPSD_PROTOCOLS[*]} ]] ; then
+ eerror "Detected protocols: ${src_protocols}"
+ eerror "Ebuild protocols: ${GPSD_PROTOCOLS[*]}"
+ die "please sync ebuild & source"
+ fi
+
+ epatch "${FILESDIR}"/${PN}-3.8-ldflags.patch
+ epatch "${FILESDIR}"/${PN}-3.11-rpath.patch
+
+ # Avoid useless -L paths to the install dir
+ sed -i \
+ -e 's:\<STAGING_PREFIX\>:SYSROOT:g' \
+ SConstruct || die
+
+ use python && distutils-r1_src_prepare
+}
+
+python_prepare_all() {
+ python_export_best
+ # Extract python info out of SConstruct so we can use saner distribute
+ pyvar() { sed -n "/^ *$1 *=/s:.*= *::p" SConstruct ; }
+ local pybins=$(pyvar python_progs | tail -1)
+ local pysrcs=$(sed -n '/^ *python_extensions = {/,/}/{s:^ *::;s:os[.]sep:"/":g;p}' SConstruct)
+ local packet=$("${PYTHON}" -c "${pysrcs}; print(python_extensions['gps/packet'])")
+ local client=$("${PYTHON}" -c "${pysrcs}; print(python_extensions['gps/clienthelpers'])")
+ sed \
+ -e "s|@VERSION@|$(pyvar gpsd_version)|" \
+ -e "s|@URL@|$(pyvar website)|" \
+ -e "s|@EMAIL@|$(pyvar devmail)|" \
+ -e "s|@SCRIPTS@|${pybins}|" \
+ -e "s|@GPS_PACKET_SOURCES@|${packet}|" \
+ -e "s|@GPS_CLIENT_SOURCES@|${client}|" \
+ -e "s|@SCRIPTS@|${pybins}|" \
+ "${FILESDIR}"/${PN}-3.3-setup.py > setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+src_configure() {
+ myesconsargs=(
+ prefix="${EPREFIX}/usr"
+ libdir="\$prefix/$(get_libdir)"
+ udevdir="$(get_udevdir)"
+ chrpath=False
+ gpsd_user=gpsd
+ gpsd_group=uucp
+ nostrip=True
+ python=False
+ manbuild=False
+ shared=$(usex !static True False)
+ $(use_scons bluetooth bluez)
+ $(use_scons cxx libgpsmm)
+ $(use_scons debug clientdebug)
+ $(use_scons dbus dbus_export)
+ $(use_scons ipv6)
+ $(use_scons latency_timing timing)
+ $(use_scons ncurses)
+ $(use_scons ntp ntpshm)
+ $(use_scons ntp pps)
+ $(use_scons shm shm_export)
+ $(use_scons sockets socket_export)
+ $(use_scons qt4 libQgpsmm)
+ $(use_scons usb)
+ )
+
+ # enable specified protocols
+ local protocol
+ for protocol in ${GPSD_PROTOCOLS[@]} ; do
+ myesconsargs+=( $(use_scons gpsd_protocols_${protocol} ${protocol}) )
+ done
+}
+
+src_compile() {
+ export CHRPATH=
+ tc-export CC CXX PKG_CONFIG
+ export SHLINKFLAGS=${LDFLAGS} LINKFLAGS=${LDFLAGS}
+ escons
+
+ use python && distutils-r1_src_compile
+}
+
+src_install() {
+ DESTDIR="${D}" escons install $(usex udev udev-install "")
+
+ newconfd "${FILESDIR}"/gpsd.conf-2 gpsd
+ newinitd "${FILESDIR}"/gpsd.init-2 gpsd
+
+ if use python ; then
+ distutils-r1_src_install
+ # Delete all X related packages if user doesn't want them
+ if ! use X ; then
+ rm "${ED%/}"/usr/bin/xgps* || die
+ fi
+ fi
+}
+
+pkg_preinst() {
+ # Run the gpsd daemon as gpsd and group uucp; create it here
+ # as it doesn't seem to be needed during compile/install ...
+ enewuser gpsd -1 -1 -1 "uucp"
+}
diff --git a/sci-geosciences/gpsd/metadata.xml b/sci-geosciences/gpsd/metadata.xml
new file mode 100644
index 000000000000..f08524166f55
--- /dev/null
+++ b/sci-geosciences/gpsd/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci-geosciences</herd>
+ <longdescription>Unbundled GPS daemon and library to support USB and serial
+ GPS devices and various GPS/mapping clients, such as GPSDrive, kismet, and
+ pygps.
+</longdescription>
+ <use>
+ <flag name="dbus">export gpsd data over dbus connections</flag>
+ <flag name="latency_timing">support latency timing information</flag>
+ <flag name="ntp">Enable <pkg>net-misc/ntp</pkg> shared memory interface
+ and PPS kernel support for GPS time</flag>
+ <flag name="sockets">export gpsd over unix sockets</flag>
+ <flag name="shm">export gpsd over shared memory</flag>
+ </use>
+</pkgmetadata>