From f7914c714d8e4d7d29b365b8deec8e24b86f0612 Mon Sep 17 00:00:00 2001 From: John Klug Date: Fri, 3 May 2019 17:35:19 -0500 Subject: Copy gpsd-3.16 from mLinux 4.1.9 for better gps initialization --- recipes-navigation/gpsd/gpsd/gpsd | 12 +- recipes-navigation/gpsd/gpsd/gpsd-default | 72 ++------- recipes-navigation/gpsd/gpsd_3.16.bb | 51 +++++- recipes-navigation/gpsd/gpsd_3.18.1.bb | 236 ---------------------------- recipes-navigation/gpsd/gpsd_3.18.1.bb.save | 236 ++++++++++++++++++++++++++++ recipes-navigation/gpsd/libgps24_3.18.1.bb | 142 +++++++++++++++++ 6 files changed, 443 insertions(+), 306 deletions(-) delete mode 100644 recipes-navigation/gpsd/gpsd_3.18.1.bb create mode 100644 recipes-navigation/gpsd/gpsd_3.18.1.bb.save create mode 100644 recipes-navigation/gpsd/libgps24_3.18.1.bb (limited to 'recipes-navigation') diff --git a/recipes-navigation/gpsd/gpsd/gpsd b/recipes-navigation/gpsd/gpsd/gpsd index 95e2a84..3f93442 100755 --- a/recipes-navigation/gpsd/gpsd/gpsd +++ b/recipes-navigation/gpsd/gpsd/gpsd @@ -51,13 +51,13 @@ fi # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 -#if [ -z "$GPSD_SOCKET" ] && [ -z "$GPS_DEVICES" ]; then -# GPSD_SOCKET=/var/run/gpsd.sock -#fi +if [ -z "$GPSD_SOCKET" ] && [ -z "$GPS_DEVICES" ]; then + GPSD_SOCKET=/var/run/gpsd.sock +fi -#if [ -n "$GPSD_SOCKET" ]; then -# GPSD_OPTIONS="$GPSD_OPTIONS -F $GPSD_SOCKET" -#fi +if [ -n "$GPSD_SOCKET" ]; then + GPSD_OPTIONS="$GPSD_OPTIONS -F $GPSD_SOCKET" +fi # # Function that starts the daemon/service diff --git a/recipes-navigation/gpsd/gpsd/gpsd-default b/recipes-navigation/gpsd/gpsd/gpsd-default index 46c64a3..7dd5372 100644 --- a/recipes-navigation/gpsd/gpsd/gpsd-default +++ b/recipes-navigation/gpsd/gpsd/gpsd-default @@ -1,6 +1,8 @@ ENABLED="yes" -#GPSD_SOCKET="/var/run/gpsd.sock" -GPSD_SOCKET="" + +# GPSD control socket for sending GPSD commands. +# GPSD_SOCKET="/var/run/gpsd.sock" + GPSD_OPTIONS="-n -D 1" # Conduit 0.1 GPS devices @@ -51,62 +53,16 @@ GPSFIX="3" # function SET_GPS_SPEED { if [[ $(cat /run/config/gpstype) == u-blox ]] ; then - logger -st gpsd -p daemon.info "Attempting to set baud rate to ${GPS_BAUD}" - out=$(gpsctl -T 20 -t u-blox -s $GPS_BAUD -b -f $GPS_LINE) - rslt=$? - if ((rslt == 0)) && [[ $out =~ ${GPS_BAUD}[[:space:]]baud\. ]] ; then - logger -st gpsd -p daemon.info "GPS serial port speed is $GPS_BAUD." - return 0 - fi - - if ((rslt != 0)) ; then - logger -st gpsd -p daemon.warning "Unable to set read the GPS, try again." - speed=$(stty -F $GPS_LINE) - if ((speed == GPS_BAUD)) ; then - stty -F $GPS_LINE 9600 - else - stty -F $GPS_LINE 115200 - fi - fi - - out=$(gpsctl -T 20 -t u-blox -s $GPS_BAUD -b -f $GPS_LINE) - rslt=$? - if ((rslt == 0)) && [[ $out =~ ${GPS_BAUD}[[:space:]]baud\. ]] ; then - logger -st gpsd -p daemon.info "GPS serial port speed is $GPS_BAUD." - return 0 - fi - - if ((rslt != 0)) ; then - speed=$(stty -F $GPS_LINE) - if ((speed == GPS_BAUD)) ; then - stty -F $GPS_LINE 9600 - else - stty -F $GPS_LINE ${GPS_BAUD} - fi - fi - - out=$(gpsctl -T 20 -t u-blox -s $GPS_BAUD -b -f $GPS_LINE) - rslt=$? - if ((rslt == 0)) && [[ $out =~ ${GPS_BAUD}[[:space:]]baud\. ]] ; then - logger -st gpsd -p daemon.info "GPS serial port speed is $GPS_BAUD." - return 0 - fi - - if ((rslt != 0)) ; then - speed=$(stty -F $GPS_LINE) - if ((speed == GPS_BAUD)) ; then - stty -F $GPS_LINE 9600 - else - stty -F $GPS_LINE ${GPS_BAUD} - fi - fi - out=$(gpsctl -T 20 -t u-blox -s $GPS_BAUD -b -f $GPS_LINE) - rslt=$? - if ((rslt == 0)) && [[ $out =~ ${GPS_BAUD}[[:space:]]baud\. ]] ; then - logger -st gpsd -p daemon.info "GPS serial port speed is $GPS_BAUD." - return 0 - fi - logger -st gpsd -p daemon.err "Cannot set GPS serial port speed, speed is $GPS_BAUD." + # Set the baud rate. Works better with ntp at a higher baud rate. + if ! gpsctl -T 20 -t 'u-blox' -s $GPS_BAUD -b -f $GPS_LINE ; then + echo 'WARNING: Unable to set GPS serial port speed.' + else + # The next line is needed due to a bug in gpsctl. + # We will go back to the default baud rate if we don't do this step. + echo Expect a timeout error here. Need this error. + gpsctl -T 2 -f $GPS_LINE + stty -F $GPS_LINE $GPS_BAUD + fi fi # End of U-Blox GPS type } diff --git a/recipes-navigation/gpsd/gpsd_3.16.bb b/recipes-navigation/gpsd/gpsd_3.16.bb index 56fd8e4..35719aa 100644 --- a/recipes-navigation/gpsd/gpsd_3.16.bb +++ b/recipes-navigation/gpsd/gpsd_3.16.bb @@ -4,7 +4,7 @@ LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=d217a23f408e91c94359447735bc1800" DEPENDS = "dbus dbus-glib ncurses python libusb1 chrpath-replacement-native pps-tools" PROVIDES = "virtual/gpsd" -PR="m9" +PR="m12" EXTRANATIVEPATH += "chrpath-native" @@ -60,8 +60,33 @@ EXTRA_OESCONS = " \ chrpath='yes' \ systemd='${SYSTEMD_OESCONS}' \ libdir='${libdir}' \ + ashtech='no' \ + earthmate='no' \ + evermore='no' \ + fury='no' \ + fv18='no' \ + garmin='no' \ + garmintxt='no' \ + geostar='no' \ + greis='no' \ + itrax='no' \ + mtk3301='no' \ + navcom='no' \ + nmea0183='yes' \ + nmea2000='no' \ + oncore='no' \ + sirf='no' \ + skytraq='yes' \ + superstar2='no' \ + tnt='no' \ + tripmate='no' \ + tsip='no' \ ublox='yes' \ ubloxtimels='yes' \ + aivdm='no' \ + gpsclock='no' \ + oceanserver='no' \ + fixed_stop_bits='1' \ pps='yes' \ gpsd_group='gps' \ ntpshm='yes' \ @@ -123,6 +148,10 @@ do_install_append() { install -m 0644 ${S}/ppsthread.h ${D}/${includedir}/gps } +# Use libgps recipe for sysroot. +do_populate_sysroot() { +} + RDEPENDS_${PN}-conf += "bash" pkg_postinst_${PN}-conf() { @@ -133,18 +162,18 @@ pkg_postrm_${PN}-conf() { update-alternatives --remove gpsd-defaults ${sysconfdir}/default/gpsd.default } -PACKAGES =+ "libgps libgpsd python-pygps-dbg python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils" +PACKAGES =+ "libgps libgpsd python-pygps-dbg python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gpspipe gps-utils" # File does not exist: ${libdir}/libQgpsmm.prl -FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc \ - ${includedir}/gps.h ${includedir}/libgpsmm.h ${includedir}/gps" +# FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc \ +# ${includedir}/gps.h ${includedir}/libgpsmm.h ${includedir}/gps" FILES_${PN} += "${sbindir}/gpsd_ubx_fixed ${sbindir}/gpsd_ubx_settime" FILES_python-pygps-dbg += " ${libdir}/python*/site-packages/gps/.debug" RDEPENDS_${PN} = "gpsd-gpsctl bash" -RRECOMMENDS_${PN} = "gpsd-conf gpsd-udev gpsd-machine-conf" +RRECOMMENDS_${PN} = "gpsd-conf gpsd-machine-conf" SUMMARY_${PN}-udev = "udev relevant files to use gpsd hotplugging" FILES_${PN}-udev = "${base_libdir}/udev ${sysconfdir}/udev/*" @@ -163,13 +192,23 @@ CONFFILES_${PN}-conf = "${sysconfdir}/default/gpsd.default" SUMMARY_${PN}-gpsctl = "Tool for tweaking GPS modes" FILES_${PN}-gpsctl = "${bindir}/gpsctl" +SUMMARY_gpspipe = "Tool to connectg to gpsd and retrieve sentences" +FILES_gpspipe = "${bindir}/gpspipe" + SUMMARY_gps-utils = "Utils used for simulating, monitoring,... a GPS" FILES_gps-utils = "${bindir}/*" RDEPENDS_gps-utils = "python-pygps" SUMMARY_python-pygps = "Python bindings to gpsd" FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/*" -RDEPENDS_python-pygps = "python-core python-curses gpsd python-json" +RDEPENDS_python-pygps = " \ + python-core \ + python-io \ + python-threading \ + python-terminal \ + python-curses \ + gpsd \ + python-json" RPROVIDES_${PN} += "${PN}-systemd" RREPLACES_${PN} += "${PN}-systemd" diff --git a/recipes-navigation/gpsd/gpsd_3.18.1.bb b/recipes-navigation/gpsd/gpsd_3.18.1.bb deleted file mode 100644 index bbc1f88..0000000 --- a/recipes-navigation/gpsd/gpsd_3.18.1.bb +++ /dev/null @@ -1,236 +0,0 @@ -SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices" -SECTION = "console/network" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=d217a23f408e91c94359447735bc1800" -DEPENDS = "dbus dbus-glib ncurses python libusb1 chrpath-replacement-native pps-tools" -PROVIDES = "virtual/gpsd" -PR="m7" - -EXTRANATIVEPATH += "chrpath-native" - -# sysclockcrash is fixed for gpsd -# suppress text in binary is fixed for gpsctl - -SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \ - file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \ - file://0004-SConstruct-disable-html-and-man-docs-building-becaus.patch \ - file://0001-include-sys-ttydefaults.h.patch \ - file://0006-ubxtimelps.patch \ - file://0006-itu_r_tf_460_6.patch \ - file://gpsd-default \ - file://gpsd \ - file://gpsd_ubx_fixed.sh \ - file://gpsd_ubx_settime.sh \ - file://gpsd_fixed.sh \ - file://gpsd_settime.sh \ - file://gpsd.rules \ - file://gpsd.service \ -" -SRC_URI[md5sum] = "3b11f26b295010666b1767b308f90bc5" -SRC_URI[sha256sum] = "5cb1e6d880ec9a52c62492dd0e3d77451b7c7ad625895bd652f6354215aec23e" - -inherit scons update-rc.d python-dir pythonnative systemd - -INITSCRIPT_NAME = "gpsd" -INITSCRIPT_PARAMS = "defaults 10" - -SYSTEMD_OESCONS = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false',d)}" - -export STAGING_INCDIR -export STAGING_LIBDIR - -# Necessary for python -export BUILD_SYS -export HOST_SYS - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)}" -PACKAGECONFIG[bluez] = "bluez='false',${BLUEZ}" -PACKAGECONFIG[qt] = "qt='yes',qt='no',qt4-x11-free" - -# Remove unneeded features. netfeed is needed by gpsmon -EXTRA_OESCONS = " \ - sysroot=${STAGING_DIR_TARGET} \ - libQgpsmm='false' \ - debug='true' \ - strip='false' \ - chrpath='yes' \ - systemd='${SYSTEMD_OESCONS}' \ - libdir='${libdir}' \ - ublox='yes' \ - ubloxtimels='yes' \ - pps='yes' \ - gpsd_group='gps' \ - ntpshm='yes' \ - prefix='usr' \ - control_socket='false' \ - nofloats='yes' \ - ashtech='false' \ - earthmate='false' \ - evermore='false' \ - fury='false' \ - fv18='false' \ - garmin='false' \ - garmintxt='false' \ - geostar='false' \ - greis='false' \ - itrax='false' \ - mtk3301='false' \ - navcom='false' \ - nmea0183='true' \ - nmea2000='false' \ - oncore='false' \ - sirf='false' \ - skytraq='false' \ - superstar2='false' \ - tnt='false' \ - tripmate='false' \ - tsip='false' \ - ublox='true' \ - aivdm='false' \ - gpsclock='false' \ - isync='false' \ - ntrip='false' \ - oceanserver='false' \ - passthrough='false' \ - rtcm104v2='false' \ - rtcm104v3='false' \ - bluez='false' \ - ipv6='false' \ - netfeed='true' \ - usb='false' \ - ${PACKAGECONFIG_CONFARGS} \ -" -# this cannot be used, because then chrpath is not found and only static lib is built -# target=${HOST_SYS} - -do_compile_prepend() { - export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" - export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config" - export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}" - export LINKFLAGS="${LDFLAGS}" -} - -do_install() { - export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" - export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config" - export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}" - export LINKFLAGS="${LDFLAGS}" - - export DESTDIR="${D}" - # prefix is used for RPATH and DESTDIR/prefix for instalation - ${STAGING_BINDIR_NATIVE}/scons prefix=${prefix} install ${EXTRA_OESCONS}|| \ - bbfatal "scons install execution failed." -} - -do_install_append() { - install -d ${D}/${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/gpsd ${D}/${sysconfdir}/init.d/ - install -d ${D}/${sysconfdir}/default - install -m 0644 ${WORKDIR}/gpsd-default ${D}/${sysconfdir}/default/gpsd.default - install -d ${D}${sbindir} - install -m 0755 ${WORKDIR}/gpsd_ubx_fixed.sh ${D}${sbindir}/gpsd_ubx_fixed - install -m 0755 ${WORKDIR}/gpsd_ubx_settime.sh ${D}${sbindir}/gpsd_ubx_settime - install -m 0755 ${WORKDIR}/gpsd_fixed.sh ${D}${sbindir}/gpsd_fixed - install -m 0755 ${WORKDIR}/gpsd_settime.sh ${D}${sbindir}/gpsd_settime - - - #support for udev - install -d ${D}/${sysconfdir}/udev/rules.d - install -m 0644 ${S}/gpsd.rules ${D}/${sysconfdir}/udev/rules.d - install -d ${D}${base_libdir}/udev/ - install -m 0755 ${S}/gpsd.hotplug ${D}${base_libdir}/udev/ - - #support for python - install -d ${D}/${PYTHON_SITEPACKAGES_DIR}/gps - install -m 755 ${S}/gps/*.py ${D}/${PYTHON_SITEPACKAGES_DIR}/gps - - #support for systemd - install -d ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_unitdir}/system/${BPN}.service - install -m 0644 ${S}/systemd/${BPN}.socket ${D}${systemd_unitdir}/system/${BPN}.socket - - # support for dev (development) - mkdir -p -m 0644 ${D}/${includedir}/gps - install -m 0644 ${S}/gpsd.h ${D}/${includedir}/gps - install -m 0644 ${S}/os_compat.h ${D}/${includedir}/gps - install -m 0644 ${S}/revision.h ${D}/${includedir}/gps - install -m 0644 ${S}/gpsdclient.h ${D}/${includedir}/gps - install -m 0644 ${S}/gpsd_config.h ${D}/${includedir}/gps - install -m 0644 ${S}/compiler.h ${D}/${includedir}/gps - install -m 0644 ${S}/ppsthread.h ${D}/${includedir}/gps - - # New ubxtool - install -m 0755 ${S}/ubxtool ${D}/${bindir} - install -m 0644 ${S}/ubxtool.1 ${D}/${mandir}/man1 -} - -RDEPENDS_${PN}-conf += "bash" - -pkg_postinst_${PN}-conf() { - update-alternatives --install ${sysconfdir}/default/gpsd gpsd-defaults ${sysconfdir}/default/gpsd.default 10 -} - -pkg_postrm_${PN}-conf() { - update-alternatives --remove gpsd-defaults ${sysconfdir}/default/gpsd.default -} - -PACKAGES =+ "libgps libgpsd python-pygps-dbg python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gpspipe gps-utils" - -# File does not exist: ${libdir}/libQgpsmm.prl -FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc \ - ${libdir}/libQgpsmm.prl \ - ${includedir}/gps.h ${includedir}/libgpsmm.h ${includedir}/gps" - -FILES_${PN} += "${sbindir}/gpsd_*" - -FILES_python-pygps-dbg += " ${libdir}/python*/site-packages/gps/.debug" - -RDEPENDS_${PN} = "gpsd-gpsctl bash" - -# gpsd-udev is for USB, which we are not using -RRECOMMENDS_${PN} = "gpsd-conf gpsd-machine-conf" - -SUMMARY_${PN}-udev = "udev relevant files to use gpsd hotplugging" -FILES_${PN}-udev = "${base_libdir}/udev ${sysconfdir}/udev/*" -RDEPENDS_${PN}-udev += "eudev gpsd-conf" - -SUMMARY_libgpsd = "C service library used for communicating with gpsd" -FILES_libgpsd = "${libdir}/libgpsd.so.*" - -SUMMARY_libgps = "C service library used for communicating with gpsd" -FILES_libgps = "${libdir}/libgps.so.*" - -SUMMARY_${PN}-conf = "gpsd configuration files and init scripts" -FILES_${PN}-conf = "${sysconfdir}" -CONFFILES_${PN}-conf = "${sysconfdir}/default/gpsd.default" - -SUMMARY_${PN}-gpsctl = "Tool for tweaking GPS modes" -FILES_${PN}-gpsctl = "${bindir}/gpsctl" - -SUMMARY_gpspipe = "Tool to connectg to gpsd and retrieve sentences" -FILES_gpspipe = "${bindir}/gpspipe" - -SUMMARY_gps-utils = "Utils used for simulating, monitoring,... a GPS" -FILES_gps-utils = "${bindir}/*" -RDEPENDS_gps-utils = "python-pygps" - -SUMMARY_python-pygps = "Python bindings to gpsd" -FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/*" -RDEPENDS_python-pygps = " \ - python-core \ - python-io \ - python-threading \ - python-terminal \ - python-curses \ - gpsd \ - python-json" - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "${BPN}.socket ${BPN}ctl@.service" - - -ALTERNATIVE_${PN} = "gpsd-defaults" -ALTERNATIVE_LINK_NAME[gpsd-defaults] = "${sysconfdir}/default/gpsd" -ALTERNATIVE_TARGET[gpsd-defaults] = "${sysconfdir}/default/gpsd.default" diff --git a/recipes-navigation/gpsd/gpsd_3.18.1.bb.save b/recipes-navigation/gpsd/gpsd_3.18.1.bb.save new file mode 100644 index 0000000..bbc1f88 --- /dev/null +++ b/recipes-navigation/gpsd/gpsd_3.18.1.bb.save @@ -0,0 +1,236 @@ +SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices" +SECTION = "console/network" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=d217a23f408e91c94359447735bc1800" +DEPENDS = "dbus dbus-glib ncurses python libusb1 chrpath-replacement-native pps-tools" +PROVIDES = "virtual/gpsd" +PR="m7" + +EXTRANATIVEPATH += "chrpath-native" + +# sysclockcrash is fixed for gpsd +# suppress text in binary is fixed for gpsctl + +SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \ + file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \ + file://0004-SConstruct-disable-html-and-man-docs-building-becaus.patch \ + file://0001-include-sys-ttydefaults.h.patch \ + file://0006-ubxtimelps.patch \ + file://0006-itu_r_tf_460_6.patch \ + file://gpsd-default \ + file://gpsd \ + file://gpsd_ubx_fixed.sh \ + file://gpsd_ubx_settime.sh \ + file://gpsd_fixed.sh \ + file://gpsd_settime.sh \ + file://gpsd.rules \ + file://gpsd.service \ +" +SRC_URI[md5sum] = "3b11f26b295010666b1767b308f90bc5" +SRC_URI[sha256sum] = "5cb1e6d880ec9a52c62492dd0e3d77451b7c7ad625895bd652f6354215aec23e" + +inherit scons update-rc.d python-dir pythonnative systemd + +INITSCRIPT_NAME = "gpsd" +INITSCRIPT_PARAMS = "defaults 10" + +SYSTEMD_OESCONS = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false',d)}" + +export STAGING_INCDIR +export STAGING_LIBDIR + +# Necessary for python +export BUILD_SYS +export HOST_SYS + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)}" +PACKAGECONFIG[bluez] = "bluez='false',${BLUEZ}" +PACKAGECONFIG[qt] = "qt='yes',qt='no',qt4-x11-free" + +# Remove unneeded features. netfeed is needed by gpsmon +EXTRA_OESCONS = " \ + sysroot=${STAGING_DIR_TARGET} \ + libQgpsmm='false' \ + debug='true' \ + strip='false' \ + chrpath='yes' \ + systemd='${SYSTEMD_OESCONS}' \ + libdir='${libdir}' \ + ublox='yes' \ + ubloxtimels='yes' \ + pps='yes' \ + gpsd_group='gps' \ + ntpshm='yes' \ + prefix='usr' \ + control_socket='false' \ + nofloats='yes' \ + ashtech='false' \ + earthmate='false' \ + evermore='false' \ + fury='false' \ + fv18='false' \ + garmin='false' \ + garmintxt='false' \ + geostar='false' \ + greis='false' \ + itrax='false' \ + mtk3301='false' \ + navcom='false' \ + nmea0183='true' \ + nmea2000='false' \ + oncore='false' \ + sirf='false' \ + skytraq='false' \ + superstar2='false' \ + tnt='false' \ + tripmate='false' \ + tsip='false' \ + ublox='true' \ + aivdm='false' \ + gpsclock='false' \ + isync='false' \ + ntrip='false' \ + oceanserver='false' \ + passthrough='false' \ + rtcm104v2='false' \ + rtcm104v3='false' \ + bluez='false' \ + ipv6='false' \ + netfeed='true' \ + usb='false' \ + ${PACKAGECONFIG_CONFARGS} \ +" +# this cannot be used, because then chrpath is not found and only static lib is built +# target=${HOST_SYS} + +do_compile_prepend() { + export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" + export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config" + export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}" + export LINKFLAGS="${LDFLAGS}" +} + +do_install() { + export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" + export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config" + export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}" + export LINKFLAGS="${LDFLAGS}" + + export DESTDIR="${D}" + # prefix is used for RPATH and DESTDIR/prefix for instalation + ${STAGING_BINDIR_NATIVE}/scons prefix=${prefix} install ${EXTRA_OESCONS}|| \ + bbfatal "scons install execution failed." +} + +do_install_append() { + install -d ${D}/${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/gpsd ${D}/${sysconfdir}/init.d/ + install -d ${D}/${sysconfdir}/default + install -m 0644 ${WORKDIR}/gpsd-default ${D}/${sysconfdir}/default/gpsd.default + install -d ${D}${sbindir} + install -m 0755 ${WORKDIR}/gpsd_ubx_fixed.sh ${D}${sbindir}/gpsd_ubx_fixed + install -m 0755 ${WORKDIR}/gpsd_ubx_settime.sh ${D}${sbindir}/gpsd_ubx_settime + install -m 0755 ${WORKDIR}/gpsd_fixed.sh ${D}${sbindir}/gpsd_fixed + install -m 0755 ${WORKDIR}/gpsd_settime.sh ${D}${sbindir}/gpsd_settime + + + #support for udev + install -d ${D}/${sysconfdir}/udev/rules.d + install -m 0644 ${S}/gpsd.rules ${D}/${sysconfdir}/udev/rules.d + install -d ${D}${base_libdir}/udev/ + install -m 0755 ${S}/gpsd.hotplug ${D}${base_libdir}/udev/ + + #support for python + install -d ${D}/${PYTHON_SITEPACKAGES_DIR}/gps + install -m 755 ${S}/gps/*.py ${D}/${PYTHON_SITEPACKAGES_DIR}/gps + + #support for systemd + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_unitdir}/system/${BPN}.service + install -m 0644 ${S}/systemd/${BPN}.socket ${D}${systemd_unitdir}/system/${BPN}.socket + + # support for dev (development) + mkdir -p -m 0644 ${D}/${includedir}/gps + install -m 0644 ${S}/gpsd.h ${D}/${includedir}/gps + install -m 0644 ${S}/os_compat.h ${D}/${includedir}/gps + install -m 0644 ${S}/revision.h ${D}/${includedir}/gps + install -m 0644 ${S}/gpsdclient.h ${D}/${includedir}/gps + install -m 0644 ${S}/gpsd_config.h ${D}/${includedir}/gps + install -m 0644 ${S}/compiler.h ${D}/${includedir}/gps + install -m 0644 ${S}/ppsthread.h ${D}/${includedir}/gps + + # New ubxtool + install -m 0755 ${S}/ubxtool ${D}/${bindir} + install -m 0644 ${S}/ubxtool.1 ${D}/${mandir}/man1 +} + +RDEPENDS_${PN}-conf += "bash" + +pkg_postinst_${PN}-conf() { + update-alternatives --install ${sysconfdir}/default/gpsd gpsd-defaults ${sysconfdir}/default/gpsd.default 10 +} + +pkg_postrm_${PN}-conf() { + update-alternatives --remove gpsd-defaults ${sysconfdir}/default/gpsd.default +} + +PACKAGES =+ "libgps libgpsd python-pygps-dbg python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gpspipe gps-utils" + +# File does not exist: ${libdir}/libQgpsmm.prl +FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc \ + ${libdir}/libQgpsmm.prl \ + ${includedir}/gps.h ${includedir}/libgpsmm.h ${includedir}/gps" + +FILES_${PN} += "${sbindir}/gpsd_*" + +FILES_python-pygps-dbg += " ${libdir}/python*/site-packages/gps/.debug" + +RDEPENDS_${PN} = "gpsd-gpsctl bash" + +# gpsd-udev is for USB, which we are not using +RRECOMMENDS_${PN} = "gpsd-conf gpsd-machine-conf" + +SUMMARY_${PN}-udev = "udev relevant files to use gpsd hotplugging" +FILES_${PN}-udev = "${base_libdir}/udev ${sysconfdir}/udev/*" +RDEPENDS_${PN}-udev += "eudev gpsd-conf" + +SUMMARY_libgpsd = "C service library used for communicating with gpsd" +FILES_libgpsd = "${libdir}/libgpsd.so.*" + +SUMMARY_libgps = "C service library used for communicating with gpsd" +FILES_libgps = "${libdir}/libgps.so.*" + +SUMMARY_${PN}-conf = "gpsd configuration files and init scripts" +FILES_${PN}-conf = "${sysconfdir}" +CONFFILES_${PN}-conf = "${sysconfdir}/default/gpsd.default" + +SUMMARY_${PN}-gpsctl = "Tool for tweaking GPS modes" +FILES_${PN}-gpsctl = "${bindir}/gpsctl" + +SUMMARY_gpspipe = "Tool to connectg to gpsd and retrieve sentences" +FILES_gpspipe = "${bindir}/gpspipe" + +SUMMARY_gps-utils = "Utils used for simulating, monitoring,... a GPS" +FILES_gps-utils = "${bindir}/*" +RDEPENDS_gps-utils = "python-pygps" + +SUMMARY_python-pygps = "Python bindings to gpsd" +FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/*" +RDEPENDS_python-pygps = " \ + python-core \ + python-io \ + python-threading \ + python-terminal \ + python-curses \ + gpsd \ + python-json" + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" +SYSTEMD_SERVICE_${PN} = "${BPN}.socket ${BPN}ctl@.service" + + +ALTERNATIVE_${PN} = "gpsd-defaults" +ALTERNATIVE_LINK_NAME[gpsd-defaults] = "${sysconfdir}/default/gpsd" +ALTERNATIVE_TARGET[gpsd-defaults] = "${sysconfdir}/default/gpsd.default" diff --git a/recipes-navigation/gpsd/libgps24_3.18.1.bb b/recipes-navigation/gpsd/libgps24_3.18.1.bb new file mode 100644 index 0000000..8f1b811 --- /dev/null +++ b/recipes-navigation/gpsd/libgps24_3.18.1.bb @@ -0,0 +1,142 @@ +SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices" +SECTION = "console/network" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=d217a23f408e91c94359447735bc1800" +DEPENDS = "dbus dbus-glib ncurses python libusb1 chrpath-replacement-native pps-tools" +PROVIDES = "${PN} ${PN}-dbg ${PN}-dev" +PR="m5" +#BPN="gpsd" +#BP="${BPN}-${PV}" + +EXTRANATIVEPATH += "chrpath-native" +FILESEXTRAPATHS_prepend = "${THISDIR}/gpsd-${PV}:" +# sysclockcrash is fixed for gpsd +# suppress text in binary is fixed for gpsctl + +S = "${WORKDIR}/gpsd-${PV}" + +SRC_URI = "${SAVANNAH_GNU_MIRROR}/gpsd/gpsd-${PV}.tar.gz \ + file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \ + file://0004-SConstruct-disable-html-and-man-docs-building-becaus.patch \ + file://0001-include-sys-ttydefaults.h.patch \ + file://0006-ubxtimelps.patch \ + file://0006-itu_r_tf_460_6.patch \ +" +SRC_URI[md5sum] = "3b11f26b295010666b1767b308f90bc5" +SRC_URI[sha256sum] = "5cb1e6d880ec9a52c62492dd0e3d77451b7c7ad625895bd652f6354215aec23e" + +inherit scons python-dir pythonnative systemd + +SYSTEMD_OESCONS = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false',d)}" + +export STAGING_INCDIR +export STAGING_LIBDIR + +# Necessary for python +export BUILD_SYS +export HOST_SYS + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)}" +PACKAGECONFIG[bluez] = "bluez='false',${BLUEZ}" +PACKAGECONFIG[qt] = "qt='yes',qt='no',qt4-x11-free" +EXTRA_OESCONS = " \ + sysroot=${STAGING_DIR_TARGET} \ + libQgpsmm='false' \ + debug='true' \ + strip='false' \ + chrpath='yes' \ + systemd='${SYSTEMD_OESCONS}' \ + ashtech='no' \ + earthmate='no' \ + evermore='no' \ + fury='no' \ + fv18='no' \ + garmin='no' \ + garmintxt='no' \ + geostar='no' \ + greis='no' \ + itrax='no' \ + mtk3301='no' \ + navcom='no' \ + nmea0183='yes' \ + nmea2000='no' \ + oncore='no' \ + sirf='no' \ + skytraq='no' \ + superstar2='no' \ + tnt='no' \ + tripmate='no' \ + tsip='no' \ + ublox='yes' \ + ubloxtimels='yes' \ + aivdm='no' \ + gpsclock='no' \ + oceanserver='no' \ + libdir='${libdir}' \ + fixed_stop_bits='1' \ + pps='yes' \ + gpsd_group='gps' \ + ntpshm='yes' \ + prefix='usr' \ + ${PACKAGECONFIG_CONFARGS} \ +" +# this cannot be used, because then chrpath is not found and only static lib is built +# target=${HOST_SYS} + +do_compile_prepend() { + export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" + export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config" + export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}" + export LINKFLAGS="${LDFLAGS}" +} +do_install() { + export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" + export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config" + export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}" + export LINKFLAGS="${LDFLAGS}" + + export DESTDIR="${D}" + install -d 755 ${D}${libdir} + install libgps.so.24.* ${D}${libdir} + cp -a libgps.so.24 ${D}${libdir} + (cd ${D}${libdir};ln -sf libgps.so.24.* libgps.so) + + # support for dev (development) + mkdir -p -m 0644 ${D}/${includedir}/gps + install -m 0644 ${S}/gpsd.h ${D}/${includedir}/gps + install -m 0644 ${S}/os_compat.h ${D}/${includedir}/gps + install -m 0644 ${S}/revision.h ${D}/${includedir}/gps + install -m 0644 ${S}/gpsdclient.h ${D}/${includedir}/gps + install -m 0644 ${S}/gpsd_config.h ${D}/${includedir}/gps + install -m 0644 ${S}/compiler.h ${D}/${includedir}/gps + install -m 0644 ${S}/ppsthread.h ${D}/${includedir}/gps + install -m 0644 ${S}/gps.h ${D}/${includedir} + install -m 0644 ${S}/libgpsmm.h ${D}/${includedir} +} + + +FILES_${PN}-dev_append = " ${includedir}/gps.h ${includedir}/libgpsmm.h ${includedir}/gps ${libdir}/libgps.so" +FILES_${PN}-dev_remove = "${includedir} ${FILES_SOLIBSDEV} \ + ${libdir}/*.la ${libdir}/*.o ${libdir}/pkgconfig \ + ${datadir}/pkgconfig ${datadir}/aclocal \ + ${base_libdir}/*.o ${libdir}/${BPN}/*.la ${base_libdir}/*.la" + +SUMMARY_${PN}-dbg = "Debug the C service library used for communicating with gpsd" +PACKAGES = "${PN} ${PN}-dbg ${PN}-dev" + +FILES_${PN}-dbg_replace = "${prefix}/src/* ${libdir}/.debug/*" + +SUMMARY_${PN} = "C service library used for communicating with gpsd" + +RDEPENDS_${PN} += "dbus-lib" + +FILES_${PN}_append = " ${libdir}/libgps.so.* " +FILES_${PN}_remove = "${bindir}/* ${sbindir}/* ${libexecdir}/* \ + ${libdir}/lib*${SOLIBS} ${sysconfdir} ${sharedstatedir} \ + ${localstatedir} ${base_bindir}/* ${base_sbindir}/* \ + ${base_libdir}/*${SOLIBS} ${base_prefix}/lib/udev \ + ${prefix}/lib/udev ${base_libdir}/udev ${libdir}/udev \ + ${datadir}/${BPN} ${libdir}/${BPN}/* ${datadir}/pixmaps \ + ${datadir}/applications ${datadir}/idl ${datadir}/omf \ + ${datadir}/sounds ${libdir}/bonobo/servers \ +" -- cgit v1.2.3