summaryrefslogtreecommitdiff
path: root/sci-geosciences/gpsd
diff options
context:
space:
mode:
Diffstat (limited to 'sci-geosciences/gpsd')
-rw-r--r--sci-geosciences/gpsd/Manifest5
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.17-scons-print.patch73
-rw-r--r--sci-geosciences/gpsd/files/gpsd-3.17-scons-py3.patch143
-rw-r--r--sci-geosciences/gpsd/gpsd-3.17-r4.ebuild174
-rw-r--r--sci-geosciences/gpsd/gpsd-9999.ebuild2
5 files changed, 396 insertions, 1 deletions
diff --git a/sci-geosciences/gpsd/Manifest b/sci-geosciences/gpsd/Manifest
index 950d1f5a241f..69fd9df573ed 100644
--- a/sci-geosciences/gpsd/Manifest
+++ b/sci-geosciences/gpsd/Manifest
@@ -1,9 +1,12 @@
AUX gpsd-3.17-do_not_rm_library.patch 630 BLAKE2B ca14382bd2a15a6dad255d52484fb3b4cfaa33e6d4d452d1f205e8854e4d7c2e2804dced5617fb2e3f6c207676bb7e0c30ec243d2ad718c2a3458739c4dbeda2 SHA512 70a1db3b2f478885fd0035a8c812f9ddf5230de4ede77c12a6bf3d81d744a902a4c5e14b788f97d9c653e1384653af1cdf849f72b0eb2f49030776c413c60d42
+AUX gpsd-3.17-scons-print.patch 2793 BLAKE2B 6b475dced3a034ee28d4b85c5897f598af02b795b407ec92b5c9938dc45d760cc5a7806e9ece477378462cb2285ae0089a2ef1c23119030e9ca79534c02e40e5 SHA512 1a4883241b0f0126311921ea552d4b090dd5e4e51b42ef865a5afeae4732b27f6057d9389ab6319c9e62d096f26533c28096ac71fb481f478a3bb3b70ffc6d63
+AUX gpsd-3.17-scons-py3.patch 5575 BLAKE2B 7c666c5cc155a95c93e9c871d6233db698cea37a8dde64de39dfdf1fa1a166224d5ed5e72a664c98a363717084a22c9d7359eaa7e13f8fcb11c1225127b7c421 SHA512 091cf7b6c3b283cb5ccdf293f50df639358c7c7ca501cab813cc8439285fc54fd6adcf6b4ae557c1ceeed07dc96e762ec4a8ca703988289885c6a06c205c1859
AUX gpsd-3.3-setup.py 448 BLAKE2B 159a212afe7600a9835a03bd87130820a154147aab83c32500108df1d81726d571c7d21e3ac7729c0054859297b71ab42f6cb6c6e487242a46f8d0d91f7c5b0f SHA512 4036bac7c095ba89795b565461bda8f282b7e1476867437db2beabeb1ba3a2a1b5a5b748acaa9ee1a2df693d854654e07f86610f387995abd0b057d3684b651b
AUX gpsd-9999-do_not_rm_library.patch 630 BLAKE2B ca14382bd2a15a6dad255d52484fb3b4cfaa33e6d4d452d1f205e8854e4d7c2e2804dced5617fb2e3f6c207676bb7e0c30ec243d2ad718c2a3458739c4dbeda2 SHA512 70a1db3b2f478885fd0035a8c812f9ddf5230de4ede77c12a6bf3d81d744a902a4c5e14b788f97d9c653e1384653af1cdf849f72b0eb2f49030776c413c60d42
AUX gpsd.conf-2 198 BLAKE2B c72808d1b43c8f1d97d97369d3f95fe2726a7972ea08915dcd35e82f543265cd457646405b00bd15e45b4a131c5f8d0efefb910be6013476ba7b052650298934 SHA512 75dbfe39eb900cc9587dd70794ee77ae2230765bbede47760ca227145aa3f2290b6995335ffcfeae6cd86f56b01ca87367548f4fbcf810aff1bc012b7416deef
AUX gpsd.init-2 825 BLAKE2B 340bd992093d81067cef4329e50e4daa6e663ae214e560080ee58f99fbde742272979ca8b843c47ad6f1c2038d5bcab5c7886a963881bcf09079fb1ec1730aae SHA512 51319247eb78c3021d3eb897cb5d6026cc09d46a532a245a835459ed525947ffb6239f08126dd7e344de52e3b0387226bce060191ec3f14f99fc9f255d96f8ea
DIST gpsd-3.17.tar.gz 8755304 BLAKE2B d1f82b5734fd90fe903a6f2fe8835fe8292fe3e729306e7abe4054821971fece4c23f382c08a233503f07ad66b7b3a02a52a000e55c08491bf254ab6e99378b5 SHA512 71085053f600730e0f2de269c59ce0a17ae106ef01403f02d78418b267c6adb9818d541fba59eb23bf71cdb67c5442c82b4948d262ef7e74bb993dcae677a1b1
EBUILD gpsd-3.17-r3.ebuild 4686 BLAKE2B 08fc309754775187a06dda2072599c48db1dfe95d0c7737f2669d20d2ee533a2397451f1aee44c23ef2717efb9d5e36528e7590a033fb97b002120ab69b3ce61 SHA512 a39aaa74cef796e1e55e893e6232f502ae034822d0ce8b5017824b301e0db7508af8308be7c80670c31cfa71d9b89644b844296cb51a3d4b5b84bb89b8b6ef12
-EBUILD gpsd-9999.ebuild 4797 BLAKE2B cc5f7bfd79b65ce4e90205c8a18732ca5c874f3bf2fede97e15cbcab6f02a65e51a4cea1d539be4a5d308164d026084b7914b289e0b37a76ba8f1958591c01ae SHA512 3c90e51a6533a472126eb87ff6f6a6909f5545944ca0399103ce87980a1308d3f27fff97a571a1ef320847f779ecbd3e722a8eb7069d1ce5ae5b1ab3f5d75e81
+EBUILD gpsd-3.17-r4.ebuild 4867 BLAKE2B f36679ef973b89804c6d19dbea466b972c0e9cbba3597e221427be32945810e51865a117fde5b174b2a6eed5d23be19571dbebb522c68a824eac6b2c4fbc3b9d SHA512 dd817ff67680e5b6d95ca751e8281115ad23a031d4ecbaad5830c8b50895bcf3b38346977577faefd246a5939de4d0125828ebfb0db2bb20141d24ad1e342b34
+EBUILD gpsd-9999.ebuild 4887 BLAKE2B fbc20e843de1755a67038b3fef2fc1e5e7593d16ffff0e3e8c20236dbb59852777b77b7cbcca70c92890d5f70043d60c4f04d589d7fdecdf8993774195a6c477 SHA512 66563daebdc8400a8b5003af0c212fd343b81e608a59e0242ba4f8d681a83d75cac7f6b6c9e76a3667877e55f2fdd6f8c9b40045e19e2c5e7a3aa05b9040ab94
MISC metadata.xml 950 BLAKE2B a2250377cdd4f1e827e7fe7dd5f8707316e8cbe9552f4ca2e56828e138d2d2b31d5c6cc930247c8666c9546fbe8dad618b2c38a34b6caac7f9e82ca620806ef3 SHA512 a5e8e60afc8c02e769cf496caa30003173455d82554378457ee7350bcc64b57a88b697cf2284a7a56f008461a33d260d167ce866bde0710e235f684e201a5bf8
diff --git a/sci-geosciences/gpsd/files/gpsd-3.17-scons-print.patch b/sci-geosciences/gpsd/files/gpsd-3.17-scons-print.patch
new file mode 100644
index 000000000000..4d94d05f4284
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.17-scons-print.patch
@@ -0,0 +1,73 @@
+From ed205512dd05a7dd4b0dab8af760d13e9efbbb25 Mon Sep 17 00:00:00 2001
+From: Fred Wright <fw@fwright.net>
+Date: Sat, 7 Oct 2017 19:54:55 -0700
+Subject: [PATCH] Fixes SConstruct for SCons 3.0.0.
+
+SCons 3.0.0 introduced a bug where the print_funtion future import is
+inflicted on the SConstruct script, making 'print' as a statement
+illegal. This is expected to be fixed in SCons 3.0.1, but in the
+meantime it's necessary to switch to the print_function mode for
+compatibility. Fortunately, there were only three print statements in
+the whole file.
+
+This is not a complete Python 3 fix; it simply restores correct
+operation when running SCons under Python 2.
+
+TESTED:
+Arraged to test all three print() instances under OSX.
+Tested "scons build-all check" under OSX, Ubuntu, CentOS, Fedora,
+FreeBSD, OpenBSD, and NetBSD.
+---
+ SConstruct | 15 +++++++++++----
+ 1 file changed, 11 insertions(+), 4 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 4923ad8cdae3..040103cff387 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -23,6 +23,13 @@
+ # * Out-of-directory builds: see http://www.scons.org/wiki/UsingBuildDir
+ # * Coveraging mode: gcc "-coverage" flag requires a hack
+ # for building the python bindings
++# * Python 3 compatibility in this recipe
++
++# Since SCons 3.0.0 forces print_function on us, it needs to be unconditional.
++# This is recognized to be a bug in SCons, but we need to live with it for now,
++# and we'll need this for eventual Python 3 compatibility, anyway.
++# Python requires this to precede any non-comment code.
++from __future__ import print_function
+
+ # Release identification begins here
+ gpsd_version = "3.18~dev"
+@@ -375,7 +382,7 @@ if env.GetOption("silent"):
+
+ def announce(msg):
+ if not env.GetOption("silent"):
+- print msg
++ print(msg)
+
+ # DESTDIR environment variable means user prefix the installation root.
+ DESTDIR = os.environ.get('DESTDIR', '')
+@@ -1546,8 +1553,8 @@ def substituter(target, source, env):
+ content = content.replace(s, t)
+ m = re.search("@[A-Z]+@", content)
+ if m and m.group(0) not in map(lambda x: x[0], substmap):
+- print >>sys.stderr, "Unknown subst token %s in %s." \
+- % (m.group(0), sfp.name)
++ print("Unknown subst token %s in %s." % (m.group(0), sfp.name),
++ file=sys.stderr)
+ tfp = open(str(target[0]), "w")
+ tfp.write(content)
+ tfp.close()
+@@ -2191,7 +2198,7 @@ def validation_list(target, source, env):
+ if '-head' not in page:
+ fp = open(page)
+ if "Valid HTML" in fp.read():
+- print os.path.join(website, os.path.basename(page))
++ print(os.path.join(website, os.path.basename(page)))
+ fp.close()
+ Utility("validation-list", [www], validation_list)
+
+--
+2.19.1
+
diff --git a/sci-geosciences/gpsd/files/gpsd-3.17-scons-py3.patch b/sci-geosciences/gpsd/files/gpsd-3.17-scons-py3.patch
new file mode 100644
index 000000000000..d6154c47687b
--- /dev/null
+++ b/sci-geosciences/gpsd/files/gpsd-3.17-scons-py3.patch
@@ -0,0 +1,143 @@
+From b2ba8d5ade0f9d55c2b51ca41d9c9604662452ad Mon Sep 17 00:00:00 2001
+From: Robert Norris <rw_norris@hotmail.com>
+Date: Mon, 12 Feb 2018 14:16:17 -0800
+Subject: [PATCH] SConstruct: Allow building for Python 3
+
+Still usable with Python 2
+
+Tested:
+scons build-all check
+
+Debian Unstable with python 2.7.14
+OpenSUSE Tumbleweed with python 3.6.4
+---
+ SConstruct | 30 ++++++++++++++++--------------
+ 1 file changed, 16 insertions(+), 14 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index c6a309ec3c30..17b47e21342f 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -370,7 +370,7 @@ for flag in ["LDFLAGS", "SHLINKFLAGS", "CPPFLAGS"]:
+
+
+ # Keep scan-build options in the environment
+-for key, value in os.environ.iteritems():
++for key, value in os.environ.items():
+ if key.startswith('CCC_'):
+ env.Append(ENV={key: value})
+
+@@ -476,6 +476,8 @@ if env['sysroot']:
+ env.MergeFlags({"LINKFLAGS": ["--sysroot=%s" % env['sysroot']]})
+
+ # Build help
++def cmp(a, b):
++ return (a > b) - (a < b)
+
+ Help("""Arguments may be a mixture of switches and targets in any order.
+ Switches apply to the entire build regardless of where they are in the order.
+@@ -859,9 +861,9 @@ else:
+ "dbus_export": ["libdbus-1"],
+ }
+
+- keys = map(lambda x: (x[0], x[2]), boolopts) \
+- + map(lambda x: (x[0], x[2]), nonboolopts) \
+- + map(lambda x: (x[0], x[2]), pathopts)
++ keys = list(map(lambda x: (x[0], x[2]), boolopts)) \
++ + list(map(lambda x: (x[0], x[2]), nonboolopts)) \
++ + list(map(lambda x: (x[0], x[2]), pathopts))
+ keys.sort()
+ for (key, help) in keys:
+ value = env[key]
+@@ -998,7 +1000,7 @@ else:
+ if env['python']: # May have been turned off by error
+ env['PYTHON'] = target_python_path
+ env['ENV']['PYTHON'] = target_python_path # For regress-driver
+- py_config_vars = ast.literal_eval(py_config_text)
++ py_config_vars = ast.literal_eval(py_config_text.decode())
+ py_config_vars = [[] if x is None else x for x in py_config_vars]
+ python_config = dict(zip(PYTHON_CONFIG_NAMES, py_config_vars))
+
+@@ -1387,7 +1389,7 @@ else:
+
+ python_objects = {}
+ python_compiled_libs = {}
+- for ext, sources in python_extensions.iteritems():
++ for ext, sources in python_extensions.items():
+ python_objects[ext] = []
+ for src in sources:
+ python_objects[ext].append(
+@@ -1417,7 +1419,7 @@ Platform: UNKNOWN
+ python_egg_info = python_env.Textfile(target="gps-%s.egg-info"
+ % (gpsd_version, ),
+ source=python_egg_info_source)
+- python_built_extensions = python_compiled_libs.values()
++ python_built_extensions = list(python_compiled_libs.values())
+ python_targets = python_built_extensions + [python_egg_info]
+
+ env.Command(target="packet_names.h", source="packet_states.h", action="""
+@@ -1624,14 +1626,14 @@ if env['xgps']:
+ "xgpsspeed.1": "gps.xml",
+ "xgps.1": "gps.xml",
+ })
+-all_manpages = base_manpages.keys() + python_manpages.keys()
++all_manpages = list(base_manpages.keys()) + list(python_manpages.keys())
+
+ man_env = env.Clone()
+ if man_env.GetOption('silent'):
+ man_env['SPAWN'] = filtered_spawn # Suppress stderr chatter
+ manpage_targets = []
+ if manbuilder:
+- for (man, xml) in base_manpages.items() + python_manpages.items():
++ for (man, xml) in list(base_manpages.items()) + list(python_manpages.items()):
+ manpage_targets.append(man_env.Man(source=xml, target=man))
+
+ # Where it all comes together
+@@ -1682,7 +1684,7 @@ if ((not env['debug'] and not env['profiling'] and not env['nostrip']
+ if not env['python']:
+ python_install = []
+ else:
+- python_module_dir = python_libdir + os.sep + 'gps'
++ python_module_dir = str(python_libdir) + os.sep + 'gps'
+ python_extensions_install = python_env.Install(DESTDIR + python_module_dir,
+ python_built_extensions)
+ if ((not env['debug'] and not env['profiling']
+@@ -1695,7 +1697,7 @@ else:
+ python_progs_install = python_env.Install(installdir('bindir'),
+ python_progs)
+
+- python_egg_info_install = python_env.Install(DESTDIR + python_libdir,
++ python_egg_info_install = python_env.Install(DESTDIR + str(python_libdir),
+ python_egg_info)
+ python_install = [python_extensions_install,
+ python_modules_install,
+@@ -1712,7 +1714,7 @@ if qt_env:
+
+
+ maninstall = []
+-for manpage in base_manpages.keys() + python_manpages.keys():
++for manpage in list(base_manpages.keys()) + list(python_manpages.keys()):
+ if not manbuilder and not os.path.exists(manpage):
+ continue
+ section = manpage.split(".")[1]
+@@ -2198,7 +2200,7 @@ htmlpages = Split('''
+ www/writing-a-driver.html
+ ''')
+
+-webpages = htmlpages + asciidocs + map(lambda f: f[:-3], glob.glob("www/*.in"))
++webpages = htmlpages + asciidocs + list(map(lambda f: f[:-3], glob.glob("www/*.in")))
+
+ www = env.Alias('www', webpages)
+
+@@ -2376,7 +2378,7 @@ if os.path.exists("gpsd.c") and os.path.exists(".gitignore"):
+ if ".gitignore" in distfiles:
+ distfiles.remove(".gitignore")
+ distfiles += generated_sources
+- distfiles += base_manpages.keys() + python_manpages.keys()
++ distfiles += list(base_manpages.keys()) + list(python_manpages.keys())
+ if "packaging/rpm/gpsd.spec" not in distfiles:
+ distfiles.append("packaging/rpm/gpsd.spec")
+
+--
+2.19.1
+
diff --git a/sci-geosciences/gpsd/gpsd-3.17-r4.ebuild b/sci-geosciences/gpsd/gpsd-3.17-r4.ebuild
new file mode 100644
index 000000000000..5ffc9c07ef39
--- /dev/null
+++ b/sci-geosciences/gpsd/gpsd-3.17-r4.ebuild
@@ -0,0 +1,174 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+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 ~sparc ~x86"
+fi
+
+DESCRIPTION="GPS daemon and library for USB/serial GPS devices and GPS/mapping clients"
+HOMEPAGE="http://catb.org/gpsd/"
+
+LICENSE="BSD"
+SLOT="0/23"
+
+GPSD_PROTOCOLS=(
+ aivdm ashtech earthmate evermore fury fv18 garmin garmintxt geostar
+ gpsclock isync itrax mtk3301 navcom nmea0183 nmea2000 ntrip oceanserver
+ oncore passthrough rtcm104v2 rtcm104v3 sirf skytraq superstar2 tnt
+ tripmate tsip ublox
+)
+IUSE_GPSD_PROTOCOLS=${GPSD_PROTOCOLS[@]/#/gpsd_protocols_}
+IUSE="${IUSE_GPSD_PROTOCOLS} bluetooth +cxx dbus debug ipv6 latency_timing ncurses ntp python qt5 +shm +sockets static test udev usb X"
+REQUIRED_USE="X? ( python )
+ gpsd_protocols_nmea2000? ( gpsd_protocols_aivdm )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ qt5? ( cxx )"
+
+RDEPEND="
+ >=net-misc/pps-tools-0.0.20120407
+ bluetooth? ( net-wireless/bluez )
+ dbus? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ )
+ ncurses? ( sys-libs/ncurses:= )
+ ntp? ( || (
+ net-misc/ntp
+ net-misc/ntpsec
+ net-misc/chrony
+ ) )
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtnetwork:5
+ )
+ python? ( ${PYTHON_DEPS} )
+ usb? ( virtual/libusb:1 )
+ X? ( dev-python/pygobject:3[cairo,${PYTHON_USEDEP}] )"
+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}"/${P}-do_not_rm_library.patch
+ epatch "${FILESDIR}"/${P}-scons-print.patch
+ epatch "${FILESDIR}"/${P}-scons-py3.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)
+ # Handle conditional tools manually. #666734
+ use X && pybins+="+ ['xgps', 'xgpsspeed']"
+ 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
+ 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 X python)
+ $(use_scons qt5 qt)
+ $(use_scons shm shm_export)
+ $(use_scons sockets socket_export)
+ $(use_scons usb)
+ )
+
+ use X && myesconsargs+=( xgps=1 )
+ use qt5 && myesconsargs+=( qt_versioned=5 )
+
+ # 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
+
+ use python && distutils-r1_src_install
+}
+
+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-9999.ebuild b/sci-geosciences/gpsd/gpsd-9999.ebuild
index 84668fd1c77f..5b3bca138d44 100644
--- a/sci-geosciences/gpsd/gpsd-9999.ebuild
+++ b/sci-geosciences/gpsd/gpsd-9999.ebuild
@@ -93,6 +93,8 @@ python_prepare_all() {
# 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)
+ # Handle conditional tools manually. #666734
+ use X && pybins+="+ ['xgps', 'xgpsspeed']"
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'])")