* Add new options to install the dbus daemon with and without systemd.
* Add gpio in group
* Add gpio-manager user and group
* Python binding now requires host pybuild and pip for build and install
* Removed ac_cv_prog_has_python_config line in rule, since it has been
  fixed in this release
* Configure options updated and reordered to match configure helper

https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/tree/NEWS?h=v2.2.2

Signed-off-by: Lars Alex Pedersen <[email protected]>
---
 projectroot/etc/group  |  2 ++
 projectroot/etc/passwd |  1 +
 rules/libgpiod.in      | 27 ++++++++++++++++++++++++---
 rules/libgpiod.make    | 29 ++++++++++++++++++++++++-----
 4 files changed, 51 insertions(+), 8 deletions(-)

diff --git a/projectroot/etc/group b/projectroot/etc/group
index 1a8e2eeb2..176e21194 100644
--- a/projectroot/etc/group
+++ b/projectroot/etc/group
@@ -39,4 +39,6 @@ seat:x:215:
 pipewire:x:216:
 mongodb:x:217:
 polkitd:x:218:
+gpio:x:219:
+gpio-manager:x:220:gpio
 nogroup:x:65534:
diff --git a/projectroot/etc/passwd b/projectroot/etc/passwd
index 89763295a..d6daf13c0 100644
--- a/projectroot/etc/passwd
+++ b/projectroot/etc/passwd
@@ -21,5 +21,6 @@ redis:x:212:213:redis:/dev/null:/bin/false
 pipewire:x:213:216:pipewire:/dev/null:/bin/false
 mongodb:x:214:217:mongodb:/dev/null:/bin/false
 polkitd:x:215:218:polkitd:/dev/null:/bin/false
+gpio-manager:x:216:220:gpio-manager:/dev/null:/bin/false
 rpcuser:x:65533:65534:RPC user:/dev/null:/bin/false
 nobody:x:65534:65534:Unprivileged Nobody:/dev/null:/bin/false
diff --git a/rules/libgpiod.in b/rules/libgpiod.in
index 94bff5164..43f813fa8 100644
--- a/rules/libgpiod.in
+++ b/rules/libgpiod.in
@@ -3,9 +3,14 @@
 menuconfig LIBGPIOD
        tristate
        prompt "libgpiod                      "
-       select HOST_SYSTEM_PYTHON3
-       select GCCLIBS_CXX      if LIBGPIOD_CXX
-       select PYTHON3          if LIBGPIOD_PYTHON3
+       select HOST_SYSTEM_PYTHON3      if LIBGPIOD_PYTHON3
+       select HOST_PYTHON3_PYBUILD     if LIBGPIOD_PYTHON3
+       select HOST_PYTHON3_PIP         if LIBGPIOD_PYTHON3
+       select DBUS                     if LIBGPIOD_DBUS_DAEMON
+       select LIBGUDEV                 if LIBGPIOD_DBUS_DAEMON
+       select GLIB                     if LIBGPIOD_DBUS_DAEMON
+       select GCCLIBS_CXX              if LIBGPIOD_CXX
+       select PYTHON3                  if LIBGPIOD_PYTHON3
        help
          libgpiod is a library accompanied by a set of tools for
          interacting with the Linux GPIO character device.
@@ -57,6 +62,22 @@ config LIBGPIOD_GPIONOTIFY
        help
          Waits for info changes on GPIO lines
 
+config LIBGPIOD_DBUS_DAEMON
+       bool
+       prompt "Install dbus daemon"
+       select LIBGPIOD_TOOLS
+       help
+         Add a D-Bus interface to libgpiod together with a
+         daemon implementing it and a command-line client
+
+config LIBGPIOD_DBUS_DAEMON_SYSTEMD
+       bool
+       prompt "Install dbus daemon systemd files"
+       depends on LIBGPIOD_DBUS_DAEMON
+       depends on INITMETHOD_SYSTEMD
+       help
+         Install dbus daemon systemd unit and udev files
+
 config LIBGPIOD_CXX
        bool
        prompt "Install C++ bindings"
diff --git a/rules/libgpiod.make b/rules/libgpiod.make
index 6272333b5..cf4656150 100644
--- a/rules/libgpiod.make
+++ b/rules/libgpiod.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBGPIOD) += libgpiod
 #
 # Paths and names
 #
-LIBGPIOD_VERSION       := 2.1.3
-LIBGPIOD_MD5           := dd37487da746569b7311b2c8fd2f907d
+LIBGPIOD_VERSION       := 2.2.2
+LIBGPIOD_MD5           := 11e80ef978c7dbffc6f16dbac412ce42
 LIBGPIOD               := libgpiod-$(LIBGPIOD_VERSION)
 LIBGPIOD_SUFFIX                := tar.gz
 LIBGPIOD_URL           := 
https://www.kernel.org/pub/software/libs/libgpiod/$(LIBGPIOD).$(LIBGPIOD_SUFFIX)
@@ -47,13 +47,17 @@ LIBGPIOD_CONF_OPT   := \
        --disable-examples \
        --$(call ptx/endis, PTXCONF_LIBGPIOD_CXX)-bindings-cxx \
        --$(call ptx/endis, PTXCONF_LIBGPIOD_PYTHON3)-bindings-python \
-       --disable-bindings-rust
+       --disable-bindings-rust \
+       --$(call ptx/endis, PTXCONF_LIBGPIOD_DBUS_DAEMON)-dbus \
+       --$(call ptx/endis, PTXCONF_LIBGPIOD_DBUS_DAEMON)-bindings-glib \
+       --disable-introspection \
+       --$(call ptx/endis, PTXCONF_LIBGPIOD_DBUS_DAEMON_SYSTEMD)-systemd
 
 LIBGPIOD_CONF_ENV := \
        $(CROSS_ENV) \
        $(if $(PTXCONF_LIBGPIOD_PYTHON3), \
-               ac_cv_path_PYTHON=$(CROSS_PYTHON3) \
-               ac_cv_prog_has_python_config=python$(PYTHON3_MAJORMINOR)-config)
+       ac_cv_path_PYTHON=$(CROSS_PYTHON3)) \
+       systemdsystemunitdir=/usr/lib/systemd/system
 
 LIBGPIOD_LDFLAGS:= -Wl,-rpath-link,$(LIBGPIOD_DIR)/lib/.libs
 
@@ -63,6 +67,8 @@ LIBGPIOD_TOOLS-$(PTXCONF_LIBGPIOD_GPIOGET)    += gpioget
 LIBGPIOD_TOOLS-$(PTXCONF_LIBGPIOD_GPIOSET)     += gpioset
 LIBGPIOD_TOOLS-$(PTXCONF_LIBGPIOD_GPIOMON)     += gpiomon
 LIBGPIOD_TOOLS-$(PTXCONF_LIBGPIOD_GPIONOTIFY)  += gpionotify
+LIBGPIOD_TOOLS-$(PTXCONF_LIBGPIOD_DBUS_DAEMON) += gpio-manager
+LIBGPIOD_TOOLS-$(PTXCONF_LIBGPIOD_DBUS_DAEMON) += gpiocli
 
 # ----------------------------------------------------------------------------
 # Target-Install
@@ -84,6 +90,19 @@ $(STATEDIR)/libgpiod.targetinstall:
                        /usr/bin/$$tool); \
        done
 
+ifdef PTXCONF_LIBGPIOD_DBUS_DAEMON
+       @$(call install_tree, libgpiod, 0, 0, -, /usr/share/dbus-1/interfaces)
+       @$(call install_tree, libgpiod, 0, 0, -, /etc/dbus-1/system.d)
+       @$(call install_lib, libgpiod, 0, 0, 0644, libgpiodbus)
+       @$(call install_lib, libgpiod, 0, 0, 0644, libgpiod-glib)
+endif
+ifdef PTXCONF_LIBGPIOD_DBUS_DAEMON_SYSTEMD
+       @$(call install_tree, libgpiod, 0, 0, -, /usr/lib/udev/rules.d)
+       @$(call install_alternative, libgpiod, 0, 0, 0644, \
+               /usr/lib/systemd/system/gpio-manager.service)
+       @$(call install_link, libgpiod, ../gpio-manager.service, \
+               
/usr/lib/systemd/system/multi-user.target.wants/gpio-manager.service)
+endif
 ifdef PTXCONF_LIBGPIOD_CXX
        @$(call install_lib, libgpiod, 0, 0, 0644, libgpiodcxx)
 endif
-- 
2.50.0


Reply via email to