1*4882a593SmuzhiyunSUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices" 2*4882a593SmuzhiyunSECTION = "console/network" 3*4882a593SmuzhiyunLICENSE = "BSD-2-Clause" 4*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://COPYING;md5=7a5d174db44ec45f9638b2c747806821" 5*4882a593SmuzhiyunDEPENDS = "dbus ncurses python3 pps-tools" 6*4882a593SmuzhiyunPROVIDES = "virtual/gpsd" 7*4882a593Smuzhiyun 8*4882a593SmuzhiyunSRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \ 9*4882a593Smuzhiyun file://gpsd.init \ 10*4882a593Smuzhiyun " 11*4882a593SmuzhiyunSRC_URI[sha256sum] = "0b991ce9a46538c4ea450f7a8ee428ff44fb4f8d665fddf2ffe40fe0ae9a6c09" 12*4882a593Smuzhiyun 13*4882a593Smuzhiyuninherit scons update-rc.d python3-dir python3native systemd update-alternatives pkgconfig 14*4882a593Smuzhiyun 15*4882a593SmuzhiyunINITSCRIPT_PACKAGES = "gpsd-conf" 16*4882a593SmuzhiyunINITSCRIPT_NAME = "gpsd" 17*4882a593SmuzhiyunINITSCRIPT_PARAMS = "defaults 35" 18*4882a593Smuzhiyun 19*4882a593SmuzhiyunSYSTEMD_OESCONS = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false',d)}" 20*4882a593Smuzhiyun 21*4882a593Smuzhiyunexport STAGING_INCDIR 22*4882a593Smuzhiyunexport STAGING_LIBDIR 23*4882a593Smuzhiyun 24*4882a593SmuzhiyunCLEANBROKEN = "1" 25*4882a593Smuzhiyun 26*4882a593SmuzhiyunPACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} usb" 27*4882a593SmuzhiyunPACKAGECONFIG[bluez] = "bluez='true',bluez='false',bluez5" 28*4882a593SmuzhiyunPACKAGECONFIG[qt] = "qt='yes' qt_versioned=5,qt='no',qtbase" 29*4882a593SmuzhiyunPACKAGECONFIG[usb] = "usb='true',usb='false',libusb1" 30*4882a593SmuzhiyunEXTRA_OESCONS = " \ 31*4882a593Smuzhiyun sysroot=${STAGING_DIR_TARGET} \ 32*4882a593Smuzhiyun libQgpsmm='false' \ 33*4882a593Smuzhiyun debug='false' \ 34*4882a593Smuzhiyun nostrip='true' \ 35*4882a593Smuzhiyun systemd='${SYSTEMD_OESCONS}' \ 36*4882a593Smuzhiyun libdir='${libdir}' \ 37*4882a593Smuzhiyun sbindir='${sbindir}' \ 38*4882a593Smuzhiyun udevdir='${nonarch_base_libdir}/udev' \ 39*4882a593Smuzhiyun unitdir='${systemd_system_unitdir}' \ 40*4882a593Smuzhiyun manbuild='false' \ 41*4882a593Smuzhiyun LINK='${CC}' \ 42*4882a593Smuzhiyun ${PACKAGECONFIG_CONFARGS} \ 43*4882a593Smuzhiyun" 44*4882a593Smuzhiyun# This cannot be used, because then chrpath is not found and only static lib is built 45*4882a593Smuzhiyun# target=${HOST_SYS} 46*4882a593Smuzhiyun 47*4882a593Smuzhiyundo_compile:prepend() { 48*4882a593Smuzhiyun export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" 49*4882a593Smuzhiyun export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config" 50*4882a593Smuzhiyun export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}" 51*4882a593Smuzhiyun export CC="${CC}" 52*4882a593Smuzhiyun export LD="${CC}" 53*4882a593Smuzhiyun export LINKFLAGS="${LDFLAGS}" 54*4882a593Smuzhiyun} 55*4882a593Smuzhiyun 56*4882a593Smuzhiyundo_install() { 57*4882a593Smuzhiyun export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" 58*4882a593Smuzhiyun export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config" 59*4882a593Smuzhiyun export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}" 60*4882a593Smuzhiyun export LD="${CC}" 61*4882a593Smuzhiyun export LINKFLAGS="${LDFLAGS}" 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun export DESTDIR="${D}" 64*4882a593Smuzhiyun # prefix is used for RPATH and DESTDIR/prefix for installation 65*4882a593Smuzhiyun ${STAGING_BINDIR_NATIVE}/scons prefix=${prefix} python_libdir=${libdir} udev-install ${EXTRA_OESCONS} || \ 66*4882a593Smuzhiyun bbfatal "scons install execution failed." 67*4882a593Smuzhiyun} 68*4882a593Smuzhiyun 69*4882a593Smuzhiyundo_install:append() { 70*4882a593Smuzhiyun install -d ${D}${sysconfdir}/init.d 71*4882a593Smuzhiyun install -m 0755 ${WORKDIR}/gpsd.init ${D}${sysconfdir}/init.d/gpsd 72*4882a593Smuzhiyun install -d ${D}${sysconfdir}/default 73*4882a593Smuzhiyun install -m 0644 ${S}/packaging/deb/etc_default_gpsd ${D}${sysconfdir}/default/gpsd.default 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun # Support for python 76*4882a593Smuzhiyun if [ -d ${D}${libdir}/gps ]; then 77*4882a593Smuzhiyun install -d ${D}${PYTHON_SITEPACKAGES_DIR}/gps 78*4882a593Smuzhiyun install -m 755 ${D}${libdir}/gps/*.py ${D}${PYTHON_SITEPACKAGES_DIR}/gps 79*4882a593Smuzhiyun fi 80*4882a593Smuzhiyun} 81*4882a593Smuzhiyun 82*4882a593SmuzhiyunPACKAGES =+ "libgps python3-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils gps-utils-python" 83*4882a593Smuzhiyun 84*4882a593SmuzhiyunRPROVIDES:${PN}-dbg += "python-pygps-dbg" 85*4882a593Smuzhiyun 86*4882a593SmuzhiyunFILES:${PN}-dev += "${libdir}/libQgpsmm.prl" 87*4882a593Smuzhiyun 88*4882a593SmuzhiyunFILES:${PN}-doc += "${datadir}/${BPN}/doc" 89*4882a593Smuzhiyun 90*4882a593SmuzhiyunRDEPENDS:${PN} = "gpsd-gpsctl" 91*4882a593SmuzhiyunRRECOMMENDS:${PN} = "gpsd-conf gpsd-udev gpsd-machine-conf" 92*4882a593Smuzhiyun 93*4882a593SmuzhiyunSUMMARY:gpsd-udev = "udev relevant files to use gpsd hotplugging" 94*4882a593SmuzhiyunFILES:gpsd-udev = "${nonarch_base_libdir}/udev" 95*4882a593SmuzhiyunRDEPENDS:gpsd-udev += "udev gpsd-conf" 96*4882a593Smuzhiyun 97*4882a593SmuzhiyunSUMMARY:libgps = "C service library used for communicating with gpsd" 98*4882a593SmuzhiyunFILES:libgps = "${libdir}/libgps.so.*" 99*4882a593Smuzhiyun 100*4882a593SmuzhiyunSUMMARY:gpsd-conf = "gpsd configuration files and init scripts" 101*4882a593SmuzhiyunFILES:gpsd-conf = "${sysconfdir}" 102*4882a593SmuzhiyunCONFFILES:gpsd-conf = "${sysconfdir}/default/gpsd.default" 103*4882a593Smuzhiyun 104*4882a593SmuzhiyunSUMMARY:gpsd-gpsctl = "Tool for tweaking GPS modes" 105*4882a593SmuzhiyunFILES:gpsd-gpsctl = "${bindir}/gpsctl" 106*4882a593Smuzhiyun 107*4882a593SmuzhiyunSUMMARY:gps-utils = "Utils used for simulating, monitoring,... a GPS" 108*4882a593SmuzhiyunFILES:gps-utils = "\ 109*4882a593Smuzhiyun ${bindir}/cgps \ 110*4882a593Smuzhiyun ${bindir}/gps2udp \ 111*4882a593Smuzhiyun ${bindir}/gpsctl \ 112*4882a593Smuzhiyun ${bindir}/gpsdebuginfo \ 113*4882a593Smuzhiyun ${bindir}/gpsdecode \ 114*4882a593Smuzhiyun ${bindir}/gpsmon \ 115*4882a593Smuzhiyun ${bindir}/gpspipe \ 116*4882a593Smuzhiyun ${bindir}/gpsrinex \ 117*4882a593Smuzhiyun ${bindir}/gpssnmp \ 118*4882a593Smuzhiyun ${bindir}/gpxlogger \ 119*4882a593Smuzhiyun ${bindir}/lcdgps \ 120*4882a593Smuzhiyun ${bindir}/ntpshmmon \ 121*4882a593Smuzhiyun ${bindir}/ppscheck \ 122*4882a593Smuzhiyun" 123*4882a593SmuzhiyunRRECOMMENDS:gps-utils = "gps-utils-python" 124*4882a593Smuzhiyun 125*4882a593SmuzhiyunSUMMARY:gps-utils-python = "Python utils used for simulating, monitoring,... a GPS" 126*4882a593SmuzhiyunFILES:gps-utils-python = "\ 127*4882a593Smuzhiyun ${bindir}/gegps \ 128*4882a593Smuzhiyun ${bindir}/gpscat \ 129*4882a593Smuzhiyun ${bindir}/gpscsv \ 130*4882a593Smuzhiyun ${bindir}/gpsfake \ 131*4882a593Smuzhiyun ${bindir}/gpsplot \ 132*4882a593Smuzhiyun ${bindir}/gpsprof \ 133*4882a593Smuzhiyun ${bindir}/gpssubframe \ 134*4882a593Smuzhiyun ${bindir}/ubxtool \ 135*4882a593Smuzhiyun ${bindir}/xgps \ 136*4882a593Smuzhiyun ${bindir}/xgpsspeed \ 137*4882a593Smuzhiyun ${bindir}/zerk \ 138*4882a593Smuzhiyun" 139*4882a593SmuzhiyunRDEPENDS:gps-utils-python = "python3-pygps" 140*4882a593Smuzhiyun 141*4882a593SmuzhiyunSUMMARY:python3-pygps = "Python bindings to gpsd" 142*4882a593SmuzhiyunFILES:python3-pygps = "${PYTHON_SITEPACKAGES_DIR}/* ${libdir}/gps/*.py ${libdir}/*.egg-info" 143*4882a593SmuzhiyunRDEPENDS:python3-pygps = " \ 144*4882a593Smuzhiyun python3-core \ 145*4882a593Smuzhiyun python3-io \ 146*4882a593Smuzhiyun python3-threading \ 147*4882a593Smuzhiyun python3-terminal \ 148*4882a593Smuzhiyun gpsd \ 149*4882a593Smuzhiyun python3-json" 150*4882a593Smuzhiyun 151*4882a593SmuzhiyunRPROVIDES:${PN} += "${PN}-systemd" 152*4882a593SmuzhiyunRREPLACES:${PN} += "${PN}-systemd" 153*4882a593SmuzhiyunRCONFLICTS:${PN} += "${PN}-systemd" 154*4882a593SmuzhiyunSYSTEMD_SERVICE:${PN} = "${BPN}.socket ${BPN}ctl@.service" 155*4882a593Smuzhiyun 156*4882a593SmuzhiyunALTERNATIVE:${PN} = "gpsd-defaults" 157*4882a593SmuzhiyunALTERNATIVE_LINK_NAME[gpsd-defaults] = "${sysconfdir}/default/gpsd" 158*4882a593SmuzhiyunALTERNATIVE_TARGET[gpsd-defaults] = "${sysconfdir}/default/gpsd.default" 159