mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-08-13 23:45:54 +00:00
The libgpiodbus shared library and the .typelib file for libgpiod GLib bindings are currently packaged in the main libgpiod package which should really only contain the core libgpiod shared library. Move them to libgpiod-manager and libgpiod-glib packages respectively. Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com> Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
111 lines
4.6 KiB
BlitzBasic
111 lines
4.6 KiB
BlitzBasic
require libgpiod.inc
|
|
|
|
inherit systemd update-rc.d useradd gobject-introspection
|
|
|
|
LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & CC-BY-SA-4.0"
|
|
LIC_FILES_CHKSUM = " \
|
|
file://LICENSES/GPL-2.0-or-later.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
|
|
file://LICENSES/LGPL-2.1-or-later.txt;md5=4b54a1fd55a448865a0b32d41598759d \
|
|
file://LICENSES/CC-BY-SA-4.0.txt;md5=fba3b94d88bfb9b81369b869a1e9a20f \
|
|
"
|
|
|
|
FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}-2.x:"
|
|
|
|
SRC_URI += " \
|
|
file://gpio-manager.init \
|
|
"
|
|
|
|
SRC_URI[sha256sum] = "13207176b0eb9b3e0f02552d5f49f5a6a449343ce47416158bb484d9d3019592"
|
|
|
|
# Enable all project features for ptest
|
|
PACKAGECONFIG[tests] = " \
|
|
--enable-tests --enable-tools --enable-bindings-cxx --enable-bindings-glib --enable-gpioset-interactive --enable-dbus, \
|
|
--disable-tests, \
|
|
kmod util-linux glib-2.0 catch2 libedit glib-2.0-native libgudev, \
|
|
bash ${VIRTUAL-RUNTIME_dbus} glib-2.0-utils libgpiod-manager-cfg shunit2 \
|
|
"
|
|
PACKAGECONFIG[gpioset-interactive] = "--enable-gpioset-interactive,--disable-gpioset-interactive,libedit"
|
|
PACKAGECONFIG[glib] = "--enable-bindings-glib,--disable-bindings-glib,glib-2.0 glib-2.0-native"
|
|
PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,glib-2.0 glib-2.0-native libgudev,${VIRTUAL-RUNTIME_dbus}"
|
|
|
|
PACKAGES =+ "${PN}-gpiosim ${PN}-glib ${PN}-manager ${PN}-manager-cfg ${PN}-cli"
|
|
FILES:${PN}-tools += "${bindir}/gpionotify"
|
|
FILES:${PN}-gpiosim += "${libdir}/libgpiosim.so.*"
|
|
FILES:${PN}-gpiosim-dev += "${includedir}/gpiosim.h"
|
|
FILES:${PN}-glib += " \
|
|
${libdir}/libgpiod-glib.so.* \
|
|
${libdir}/girepository-1.0/* \
|
|
"
|
|
FILES:${PN}-manager += " \
|
|
${bindir}/gpio-manager \
|
|
${libdir}/libgpiodbus.so.* \
|
|
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_system_unitdir}/gpio-manager.service', '', d)} \
|
|
${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '${sysconfdir}/init.d/gpio-manager', '', d)} \
|
|
"
|
|
FILES:${PN}-manager-cfg += " \
|
|
${sysconfdir}/dbus-1/system.d/io.gpiod1.conf \
|
|
${datadir}/dbus-1/interfaces/io.gpiod1.xml \
|
|
${nonarch_base_libdir}/udev/rules.d/90-gpio.rules \
|
|
"
|
|
FILES:${PN}-cli += "${bindir}/gpiocli"
|
|
|
|
RDEPENDS:${PN}-manager += "${VIRTUAL-RUNTIME_dbus} ${PN}-manager-cfg"
|
|
RDEPENDS:${PN}-cli += "${PN}-manager"
|
|
|
|
SYSTEMD_PACKAGES = "${PN}-manager"
|
|
|
|
python __anonymous() {
|
|
distro_features = d.getVar("DISTRO_FEATURES").split()
|
|
packageconfig = d.getVar("PACKAGECONFIG").split()
|
|
pn = d.getVar("PN")
|
|
|
|
if "systemd" in distro_features and "dbus" in packageconfig:
|
|
d.appendVar("EXTRA_OECONF", " --enable-systemd")
|
|
# We need to set it conditionally or else the systemd class will look
|
|
# for the file that we don't install with systemd support disabled.
|
|
d.setVar("SYSTEMD_SERVICE:{}-manager".format(pn), "gpio-manager.service")
|
|
else:
|
|
d.appendVar("EXTRA_OECONF", " --disable-systemd")
|
|
|
|
# Disable gobject introspection set by the bbclass if we don't want it.
|
|
if not any(cfg in ["glib", "dbus", "ptest"] for cfg in packageconfig):
|
|
d.setVar("GI_DATA_ENABLED", "False")
|
|
}
|
|
|
|
UPDATERCPN = "${PN}-manager"
|
|
INITSCRIPT_NAME = "gpio-manager"
|
|
INITSCRIPT_PARAMS = "start 20 2 3 4 5 . stop 20 0 1 6 ."
|
|
|
|
USERADD_PACKAGES = "${PN}-manager"
|
|
GROUPADD_PARAM:${PN}-manager = "--system gpio"
|
|
USERADD_PARAM:${PN}-manager = "--system -M -s /bin/nologin -g gpio gpio-manager"
|
|
|
|
RDEPENDS:${PN}-ptest += " \
|
|
${@bb.utils.contains('PTEST_ENABLED', '1', 'shunit2 bash', '', d)} \
|
|
"
|
|
RRECOMMENDS:${PN}-gpiosim += "kernel-module-gpio-sim kernel-module-configfs"
|
|
INSANE_SKIP:${PN}-ptest += "buildpaths"
|
|
|
|
do_compile:prepend() {
|
|
export GIR_EXTRA_LIBS_PATH="${B}/lib/.libs"
|
|
}
|
|
|
|
do_install:append() {
|
|
if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
|
|
install -d ${D}${sysconfdir}/init.d
|
|
install -m 0755 ${UNPACKDIR}/gpio-manager.init ${D}${sysconfdir}/init.d/gpio-manager
|
|
fi
|
|
}
|
|
|
|
do_install_ptest:append() {
|
|
install -m 0755 ${B}/bindings/cxx/tests/.libs/gpiod-cxx-test ${D}${PTEST_PATH}/tests/
|
|
install -m 0755 ${S}/tools/gpio-tools-test.bash ${D}${PTEST_PATH}/tests/
|
|
install -m 0644 ${S}/tests/scripts/gpiod-bash-test-helper.inc ${D}${PTEST_PATH}/tests/
|
|
install -m 0644 ${S}/tests/gpiosim/gpiosim.h ${D}${includedir}/gpiosim.h
|
|
install -m 0755 ${B}/bindings/glib/tests/.libs/gpiod-glib-test ${D}${PTEST_PATH}/tests/
|
|
install -m 0755 ${B}/dbus/tests/.libs/gpiodbus-test ${D}${PTEST_PATH}/tests/
|
|
install -m 0755 ${S}/dbus/client/gpiocli-test.bash ${D}${PTEST_PATH}/tests/
|
|
install -m 0755 ${B}/dbus/manager/.libs/gpio-manager ${D}${PTEST_PATH}/tests/
|
|
install -m 0755 ${B}/dbus/client/.libs/gpiocli ${D}${PTEST_PATH}/tests/
|
|
}
|