gpsd_3.7.bb 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices"
  2. SECTION = "console/network"
  3. LICENSE = "BSD"
  4. LIC_FILES_CHKSUM = "file://COPYING;md5=d217a23f408e91c94359447735bc1800"
  5. DEPENDS = "dbus dbus-glib ncurses python libusb1 chrpath-replacement-native"
  6. PROVIDES = "virtual/gpsd"
  7. EXTRANATIVEPATH += "chrpath-native"
  8. PR = "r14"
  9. SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \
  10. file://0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch \
  11. file://0004-SConstruct-remove-rpath.patch \
  12. file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \
  13. file://0001-SConstruct-disable-html-and-man-docs-building-becaus.patch \
  14. file://gpsd-default \
  15. file://gpsd \
  16. file://60-gpsd.rules \
  17. file://gpsd.service \
  18. "
  19. SRC_URI[md5sum] = "52d9785eaf1a51298bb8900dbde88f98"
  20. SRC_URI[sha256sum] = "7800c478ee9d7ca7a502b0f892828561b1fbf7bc69d9d38c447c82c3628302ac"
  21. inherit scons update-rc.d python-dir pythonnative systemd
  22. INITSCRIPT_NAME = "gpsd"
  23. INITSCRIPT_PARAMS = "defaults 35"
  24. SYSTEMD_OESCONS = "${@base_contains('DISTRO_FEATURES', 'systemd', 'true', 'false',d)}"
  25. export STAGING_INCDIR
  26. export STAGING_LIBDIR
  27. PACKAGECONFIG ??= "bluez"
  28. PACKAGECONFIG[bluez] = "bluez='true',bluez='false',bluez4"
  29. EXTRA_OESCONS = " \
  30. sysroot=${STAGING_DIR_TARGET} \
  31. libQgpsmm='false' \
  32. debug='true' \
  33. strip='false' \
  34. systemd='${SYSTEMD_OESCONS}' \
  35. ${EXTRA_OECONF} \
  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 BUILD_SYS="${BUILD_SYS}"
  44. export HOST_SYS="${HOST_SYS}"
  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 BUILD_SYS="${BUILD_SYS}"
  51. export HOST_SYS="${HOST_SYS}"
  52. export DESTDIR="${D}"
  53. # prefix is used for RPATH and DESTDIR/prefix for instalation
  54. ${STAGING_BINDIR_NATIVE}/scons prefix=${prefix} 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 ${D}/${sysconfdir}/init.d/
  60. install -d ${D}/${sysconfdir}/default
  61. install -m 0644 ${WORKDIR}/gpsd-default ${D}/${sysconfdir}/default/gpsd.default
  62. #support for udev
  63. install -d ${D}/${sysconfdir}/udev/rules.d
  64. install -m 0644 ${WORKDIR}/60-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 ${WORKDIR}/${PN}.service ${D}${systemd_unitdir}/system/${PN}.service
  73. install -m 0644 ${S}/systemd/${PN}.socket ${D}${systemd_unitdir}/system/${PN}.socket
  74. }
  75. pkg_postinst_${PN}-conf() {
  76. update-alternatives --install ${sysconfdir}/default/gpsd gpsd-defaults ${sysconfdir}/default/gpsd.default 10
  77. }
  78. pkg_postrm_${PN}-conf() {
  79. update-alternatives --remove gpsd-defaults ${sysconfdir}/default/gpsd.default
  80. }
  81. PACKAGES =+ "libgps libgpsd python-pygps-dbg python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils"
  82. FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc"
  83. FILES_python-pygps-dbg += " ${libdir}/python*/site-packages/gps/.debug"
  84. RDEPENDS_${PN} = "gpsd-gpsctl"
  85. RRECOMMENDS_${PN} = "gpsd-conf gpsd-udev gpsd-machine-conf"
  86. SUMMARY_gpsd-udev = "udev relevant files to use gpsd hotplugging"
  87. FILES_gpsd-udev = "${base_libdir}/udev ${sysconfdir}/udev/*"
  88. RDEPENDS_gpsd-udev += "udev gpsd-conf"
  89. SUMMARY_libgpsd = "C service library used for communicating with gpsd"
  90. FILES_libgpsd = "${libdir}/libgpsd.so.*"
  91. SUMMARY_libgps = "C service library used for communicating with gpsd"
  92. FILES_libgps = "${libdir}/libgps.so.*"
  93. SUMMARY_gpsd-conf = "gpsd configuration files and init scripts"
  94. FILES_gpsd-conf = "${sysconfdir}"
  95. CONFFILES_gpsd-conf = "${sysconfdir}/default/gpsd.default"
  96. SUMMARY_gpsd-gpsctl = "Tool for tweaking GPS modes"
  97. FILES_gpsd-gpsctl = "${bindir}/gpsctl"
  98. SUMMARY_gps-utils = "Utils used for simulating, monitoring,... a GPS"
  99. FILES_gps-utils = "${bindir}/*"
  100. RDEPENDS_gps-utils = "python-pygps"
  101. SUMMARY_python-pygps = "Python bindings to gpsd"
  102. FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/*"
  103. RDEPENDS_python-pygps = "python-core python-curses gpsd python-json"
  104. RPROVIDES_${PN} += "${PN}-systemd"
  105. RREPLACES_${PN} += "${PN}-systemd"
  106. RCONFLICTS_${PN} += "${PN}-systemd"
  107. SYSTEMD_SERVICE_${PN} = "${PN}.socket"