diff options
Diffstat (limited to 'sci-geosciences/gpsd')
-rw-r--r-- | sci-geosciences/gpsd/Manifest | 5 | ||||
-rw-r--r-- | sci-geosciences/gpsd/files/gpsd-3.17-scons-print.patch | 73 | ||||
-rw-r--r-- | sci-geosciences/gpsd/files/gpsd-3.17-scons-py3.patch | 143 | ||||
-rw-r--r-- | sci-geosciences/gpsd/gpsd-3.17-r4.ebuild | 174 | ||||
-rw-r--r-- | sci-geosciences/gpsd/gpsd-9999.ebuild | 2 |
5 files changed, 1 insertions, 396 deletions
diff --git a/sci-geosciences/gpsd/Manifest b/sci-geosciences/gpsd/Manifest index 69fd9df573ed..950d1f5a241f 100644 --- a/sci-geosciences/gpsd/Manifest +++ b/sci-geosciences/gpsd/Manifest @@ -1,12 +1,9 @@ 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-3.17-r4.ebuild 4867 BLAKE2B f36679ef973b89804c6d19dbea466b972c0e9cbba3597e221427be32945810e51865a117fde5b174b2a6eed5d23be19571dbebb522c68a824eac6b2c4fbc3b9d SHA512 dd817ff67680e5b6d95ca751e8281115ad23a031d4ecbaad5830c8b50895bcf3b38346977577faefd246a5939de4d0125828ebfb0db2bb20141d24ad1e342b34 -EBUILD gpsd-9999.ebuild 4887 BLAKE2B fbc20e843de1755a67038b3fef2fc1e5e7593d16ffff0e3e8c20236dbb59852777b77b7cbcca70c92890d5f70043d60c4f04d589d7fdecdf8993774195a6c477 SHA512 66563daebdc8400a8b5003af0c212fd343b81e608a59e0242ba4f8d681a83d75cac7f6b6c9e76a3667877e55f2fdd6f8c9b40045e19e2c5e7a3aa05b9040ab94 +EBUILD gpsd-9999.ebuild 4797 BLAKE2B cc5f7bfd79b65ce4e90205c8a18732ca5c874f3bf2fede97e15cbcab6f02a65e51a4cea1d539be4a5d308164d026084b7914b289e0b37a76ba8f1958591c01ae SHA512 3c90e51a6533a472126eb87ff6f6a6909f5545944ca0399103ce87980a1308d3f27fff97a571a1ef320847f779ecbd3e722a8eb7069d1ce5ae5b1ab3f5d75e81 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 deleted file mode 100644 index 4d94d05f4284..000000000000 --- a/sci-geosciences/gpsd/files/gpsd-3.17-scons-print.patch +++ /dev/null @@ -1,73 +0,0 @@ -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 deleted file mode 100644 index d6154c47687b..000000000000 --- a/sci-geosciences/gpsd/files/gpsd-3.17-scons-py3.patch +++ /dev/null @@ -1,143 +0,0 @@ -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 deleted file mode 100644 index 5ffc9c07ef39..000000000000 --- a/sci-geosciences/gpsd/gpsd-3.17-r4.ebuild +++ /dev/null @@ -1,174 +0,0 @@ -# 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 5b3bca138d44..84668fd1c77f 100644 --- a/sci-geosciences/gpsd/gpsd-9999.ebuild +++ b/sci-geosciences/gpsd/gpsd-9999.ebuild @@ -93,8 +93,6 @@ 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'])") |