gpsd_3.20.bb 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices"
  2. SECTION = "console/network"
  3. LICENSE = "BSD-2-Clause"
  4. LIC_FILES_CHKSUM = "file://COPYING;md5=01764c35ae34d9521944bb6ab312af53"
  5. DEPENDS = "dbus ncurses python3 pps-tools"
  6. PROVIDES = "virtual/gpsd"
  7. SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \
  8. file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \
  9. file://0001-Revert-SConstruct-Add-test-for-sizeof-time_t-result-.patch \
  10. file://gpsd.init \
  11. "
  12. SRC_URI[md5sum] = "cf7fdec7ce7221d20bee1a7246362b05"
  13. SRC_URI[sha256sum] = "172a7805068eacb815a3c5225436fcb0be46e7e49a5001a94034eac43df85e50"
  14. inherit scons update-rc.d python3-dir python3native systemd update-alternatives
  15. INITSCRIPT_PACKAGES = "gpsd-conf"
  16. INITSCRIPT_NAME = "gpsd"
  17. INITSCRIPT_PARAMS = "defaults 35"
  18. SYSTEMD_OESCONS = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false',d)}"
  19. export STAGING_INCDIR
  20. export STAGING_LIBDIR
  21. CLEANBROKEN = "1"
  22. PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} usb"
  23. PACKAGECONFIG[bluez] = "bluez='true',bluez='false',bluez5"
  24. PACKAGECONFIG[qt] = "qt='yes' qt_versioned=5,qt='no',qtbase"
  25. PACKAGECONFIG[usb] = "usb='true',usb='false',libusb1"
  26. EXTRA_OESCONS = " \
  27. sysroot=${STAGING_DIR_TARGET} \
  28. libQgpsmm='false' \
  29. debug='false' \
  30. nostrip='true' \
  31. systemd='${SYSTEMD_OESCONS}' \
  32. libdir='${libdir}' \
  33. manbuild='false' \
  34. LINK='${CC}' \
  35. ${PACKAGECONFIG_CONFARGS} \
  36. "
  37. # this cannot be used, because then chrpath is not found and only static lib is built
  38. # target=${HOST_SYS}
  39. do_compile_prepend() {
  40. export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
  41. export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config"
  42. export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
  43. export LD="${CC}"
  44. export LINKFLAGS="${LDFLAGS}"
  45. }
  46. do_install() {
  47. export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
  48. export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config"
  49. export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
  50. export LD="${CC}"
  51. export LINKFLAGS="${LDFLAGS}"
  52. export DESTDIR="${D}"
  53. # prefix is used for RPATH and DESTDIR/prefix for instalation
  54. ${STAGING_BINDIR_NATIVE}/scons prefix=${prefix} python_libdir=${libdir} install ${EXTRA_OESCONS} || \
  55. bbfatal "scons install execution failed."
  56. }
  57. do_install_append() {
  58. install -d ${D}/${sysconfdir}/init.d
  59. install -m 0755 ${WORKDIR}/gpsd.init ${D}/${sysconfdir}/init.d/gpsd
  60. install -d ${D}/${sysconfdir}/default
  61. install -m 0644 ${S}/packaging/deb/etc_default_gpsd ${D}/${sysconfdir}/default/gpsd.default
  62. #support for udev
  63. install -d ${D}/${sysconfdir}/udev/rules.d
  64. install -m 0644 ${S}/gpsd.rules ${D}/${sysconfdir}/udev/rules.d/
  65. install -d ${D}${base_libdir}/udev/
  66. install -m 0755 ${S}/gpsd.hotplug ${D}${base_libdir}/udev/
  67. #support for python
  68. install -d ${D}/${PYTHON_SITEPACKAGES_DIR}/gps
  69. install -m 755 ${S}/gps/*.py ${D}/${PYTHON_SITEPACKAGES_DIR}/gps
  70. #support for systemd
  71. install -d ${D}${systemd_unitdir}/system/
  72. install -m 0644 ${S}/systemd/${BPN}.service ${D}${systemd_unitdir}/system/${BPN}.service
  73. sed -i -e 's,/usr/local,/usr,g' ${D}${systemd_unitdir}/system/${BPN}.service
  74. install -m 0644 ${S}/systemd/${BPN}ctl@.service ${D}${systemd_unitdir}/system/${BPN}ctl@.service
  75. sed -i -e 's,/usr/local,/usr,g' ${D}${systemd_unitdir}/system/${BPN}ctl@.service
  76. install -m 0644 ${S}/systemd/${BPN}.socket ${D}${systemd_unitdir}/system/${BPN}.socket
  77. }
  78. PACKAGES =+ "libgps libgpsd python3-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils"
  79. RPROVIDES_${PN}-dbg += "python-pygps-dbg"
  80. FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc \
  81. ${libdir}/libQgpsmm.prl"
  82. RDEPENDS_${PN} = "gpsd-gpsctl"
  83. RRECOMMENDS_${PN} = "gpsd-conf gpsd-udev gpsd-machine-conf"
  84. SUMMARY_gpsd-udev = "udev relevant files to use gpsd hotplugging"
  85. FILES_gpsd-udev = "${base_libdir}/udev ${sysconfdir}/udev/*"
  86. RDEPENDS_gpsd-udev += "udev gpsd-conf"
  87. SUMMARY_libgpsd = "C service library used for communicating with gpsd"
  88. FILES_libgpsd = "${libdir}/libgpsd.so.*"
  89. SUMMARY_libgps = "C service library used for communicating with gpsd"
  90. FILES_libgps = "${libdir}/libgps.so.*"
  91. SUMMARY_gpsd-conf = "gpsd configuration files and init scripts"
  92. FILES_gpsd-conf = "${sysconfdir}"
  93. CONFFILES_gpsd-conf = "${sysconfdir}/default/gpsd.default"
  94. SUMMARY_gpsd-gpsctl = "Tool for tweaking GPS modes"
  95. FILES_gpsd-gpsctl = "${bindir}/gpsctl"
  96. SUMMARY_gps-utils = "Utils used for simulating, monitoring,... a GPS"
  97. # Python files are required for gps/fake, required for gpsfake.
  98. FILES_gps-utils = "${bindir}/* ${libdir}/gps/*.py ${libdir}/gps/*.so"
  99. RDEPENDS_gps-utils = "python3-pygps"
  100. SUMMARY_python3-pygps = "Python bindings to gpsd"
  101. FILES_python3-pygps = "${PYTHON_SITEPACKAGES_DIR}/* ${libdir}/gps/*.py ${libdir}/*.egg-info"
  102. RDEPENDS_python3-pygps = " \
  103. python3-core \
  104. python3-io \
  105. python3-threading \
  106. python3-terminal \
  107. gpsd \
  108. python3-json"
  109. RPROVIDES_${PN} += "${PN}-systemd"
  110. RREPLACES_${PN} += "${PN}-systemd"
  111. RCONFLICTS_${PN} += "${PN}-systemd"
  112. SYSTEMD_SERVICE_${PN} = "${BPN}.socket ${BPN}ctl@.service"
  113. ALTERNATIVE_${PN} = "gpsd-defaults"
  114. ALTERNATIVE_LINK_NAME[gpsd-defaults] = "${sysconfdir}/default/gpsd"
  115. ALTERNATIVE_TARGET[gpsd-defaults] = "${sysconfdir}/default/gpsd.default"