sci-geosciences/gpsd: sync 9999 ebuild
authorRobin H. Johnson <robbat2@gentoo.org>
Fri, 4 Oct 2019 18:49:18 +0000 (11:49 -0700)
committerRobin H. Johnson <robbat2@gentoo.org>
Fri, 4 Oct 2019 18:59:32 +0000 (11:59 -0700)
Package-Manager: Portage-2.3.76, Repoman-2.3.17
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
sci-geosciences/gpsd/gpsd-9999.ebuild

index 3fcb84a3d951b5ce34bc4b3ab03f09ff1557683a..6cba45913e0f864391271161744d769da27150dc 100644 (file)
@@ -4,37 +4,41 @@
 EAPI=5
 
 DISTUTILS_OPTIONAL=1
-PYTHON_COMPAT=( python2_7 )
-SCONS_MIN_VERSION="1.2.1"
+PYTHON_COMPAT=( python2_7 python3_5 python3_6 )
+SCONS_MIN_VERSION="2.3.0"
 
 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
+       EGIT_REPO_URI="https://gitlab.com/gpsd/gpsd.git"
+       inherit git-r3
 else
        SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz"
-       KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+       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/"
+HOMEPAGE="https://gpsd.gitlab.io/gpsd/"
 
 LICENSE="BSD"
-SLOT="0/23"
+SLOT="0/24"
 
 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
+       gpsclock greis 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_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 )
+       gpsd_protocols_isync? ( gpsd_protocols_ublox )
+       gpsd_protocols_ublox? ( python )
+       gpsd_protocols_greis? ( python )
        python? ( ${PYTHON_REQUIRED_USE} )
        qt5? ( cxx )"
+RESTRICT="!test? ( test )"
 
 RDEPEND="
        >=net-misc/pps-tools-0.0.20120407
@@ -54,8 +58,10 @@ RDEPEND="
                dev-qt/qtnetwork:5
        )
        python? ( ${PYTHON_DEPS} )
+       gpsd_protocols_ublox? ( dev-python/pyserial )
+       gpsd_protocols_greis? ( dev-python/pyserial )
        usb? ( virtual/libusb:1 )
-       X? ( dev-python/pygtk:2[${PYTHON_USEDEP}] )"
+       X? ( dev-python/pygobject:3[cairo,${PYTHON_USEDEP}] )"
 DEPEND="${RDEPEND}
        virtual/pkgconfig
        test? ( sys-devel/bc )"
@@ -79,22 +85,31 @@ src_prepare() {
        fi
 
        epatch "${FILESDIR}"/${P}-do_not_rm_library.patch
+       # Merged upstream
+       #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
 
+       default
+
        use python && distutils-r1_src_prepare
 }
 
 python_prepare_all() {
-       python_export_best
+       python_setup
+       python_export
+
        # 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']"
+       use gpsd_protocols_ublox && pybins+="+ ['ubxtool']"
+       use gpsd_protocols_greis && pybins+="+ ['zerk']"
        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'])")
@@ -119,7 +134,6 @@ src_configure() {
                gpsd_user=gpsd
                gpsd_group=uucp
                nostrip=True
-               python=False
                manbuild=False
                shared=$(usex !static True False)
                $(use_scons bluetooth bluez)
@@ -131,12 +145,14 @@ src_configure() {
                $(use_scons ncurses)
                $(use_scons ntp ntpshm)
                $(use_scons ntp pps)
+               $(use_scons python)
                $(use_scons qt5 qt)
                $(use_scons shm shm_export)
                $(use_scons sockets socket_export)
                $(use_scons usb)
        )
 
+       use X && myesconsargs+=( xgps=1 xgpsspeed=1 )
        use qt5 && myesconsargs+=( qt_versioned=5 )
 
        # enable specified protocols
@@ -161,13 +177,12 @@ src_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 && [[ -f "${ED%/}"/usr/bin/xgps ]]; then
-                       rm "${ED%/}"/usr/bin/xgps* || die
-               fi
-       fi
+       # Cleanup bad alt copy due to Scons
+       rm -rf  "${D}"/usr/local/$(get_libdir)/python*/site-packages/gps*
+       find "${D}"/usr/local/ -type d -delete
+       # Install correct multi-python copy
+       use python && distutils-r1_src_install
+
 }
 
 pkg_preinst() {