* 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, together with a patch to get the right build options * 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 * New option --disable-introspection is removed by autogen.sh
https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/tree/NEWS?h=v2.2.2 Signed-off-by: Lars Alex Pedersen <[email protected]> --- v5: - Fixed license appending v4: - Split licenses for dbus daemon into systemd and non-systemd parts ...1-Add-ptxdist-python-compile-options.patch | 22 +++++++ patches/libgpiod-2.2.2/autogen.sh | 1 + patches/libgpiod-2.2.2/series | 4 ++ projectroot/etc/group | 2 + projectroot/etc/passwd | 1 + rules/libgpiod.in | 27 ++++++++- rules/libgpiod.make | 58 ++++++++++++++----- 7 files changed, 99 insertions(+), 16 deletions(-) create mode 100644 patches/libgpiod-2.2.2/0001-Add-ptxdist-python-compile-options.patch create mode 120000 patches/libgpiod-2.2.2/autogen.sh create mode 100644 patches/libgpiod-2.2.2/series diff --git a/patches/libgpiod-2.2.2/0001-Add-ptxdist-python-compile-options.patch b/patches/libgpiod-2.2.2/0001-Add-ptxdist-python-compile-options.patch new file mode 100644 index 000000000..b8e8ebc04 --- /dev/null +++ b/patches/libgpiod-2.2.2/0001-Add-ptxdist-python-compile-options.patch @@ -0,0 +1,22 @@ +From: Lars Alex Pedersen <[email protected]> +Date: Thu, 10 Jul 2025 18:24:59 +0000 +Subject: [PATCH] Add ptxdist python compile options + +Signed-off-by: Lars Alex Pedersen <[email protected]> +--- + bindings/python/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bindings/python/Makefile.am b/bindings/python/Makefile.am +index 2ae8ac8a514c..ff1d677bba2a 100644 +--- a/bindings/python/Makefile.am ++++ b/bindings/python/Makefile.am +@@ -36,7 +36,7 @@ clean-local: + all-local: python-tests + CFLAGS="-I$(abs_top_srcdir)/include/ -I$(abs_top_srcdir)/tests/gpiosim \ + -L$(abs_top_builddir)/lib/.libs/ -L$(abs_top_builddir)/tests/gpiosim/.libs/" \ +- $(PYTHON) -m build ++ $(PYTHON) -m build --skip-dependency-check --wheel --no-isolation + + install-exec-local: + $(PYTHON) -m pip install dist/*.whl \ diff --git a/patches/libgpiod-2.2.2/autogen.sh b/patches/libgpiod-2.2.2/autogen.sh new file mode 120000 index 000000000..9f8a4cb7d --- /dev/null +++ b/patches/libgpiod-2.2.2/autogen.sh @@ -0,0 +1 @@ +../autogen.sh \ No newline at end of file diff --git a/patches/libgpiod-2.2.2/series b/patches/libgpiod-2.2.2/series new file mode 100644 index 000000000..c0b6f9478 --- /dev/null +++ b/patches/libgpiod-2.2.2/series @@ -0,0 +1,4 @@ +# generated by git-ptx-patches +#tag:base --start-number 1 +0001-Add-ptxdist-python-compile-options.patch +# 34ebc65c9062276a316faee96d8f8775 - git-ptx-patches magic 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..3bff40f9c 100644 --- a/rules/libgpiod.in +++ b/rules/libgpiod.in @@ -3,9 +3,15 @@ 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 HOST_AUTOTOOLS_AUTOCONF_ARCHIVE + 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 +63,21 @@ config LIBGPIOD_GPIONOTIFY help Waits for info changes on GPIO lines +config LIBGPIOD_DBUS_DAEMON + bool + prompt "Install dbus daemon" + 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..73bf2acca 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) @@ -28,9 +28,23 @@ LIBGPIOD_LICENSE_FILES := \ file://LICENSES/GPL-2.0-only.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://LICENSES/Linux-syscall-note.txt;md5=6b0dff741019b948dfe290c05d6f361c +ifdef PTXCONF_LIBGPIOD_DBUS_DAEMON +LIBGPIOD_LICENSE += AND GPL-2.0-or-later AND CC-BY-SA-4.0 +LIBGPIOD_LICENSE_FILES += \ + file://LICENSES/GPL-2.0-or-later.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://LICENSES/CC-BY-SA-4.0.txt;md5=fba3b94d88bfb9b81369b869a1e9a20f +else ifdef PTXCONF_LIBGPIOD_TOOLS LIBGPIOD_LICENSE += AND GPL-2.0-or-later -LIBGPIOD_LICENSE_FILES += file://LICENSES/GPL-2.0-or-later.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 +LIBGPIOD_LICENSE_FILES += \ + file://LICENSES/GPL-2.0-or-later.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 +endif +endif + +ifdef PTXCONF_LIBGPIOD_DBUS_DAEMON_SYSTEMD +LIBGPIOD_LICENSE += AND CC0-1.0 +LIBGPIOD_LICENSE_FILES += \ + file://LICENSES/CC0-1.0.txt;md5=65d3616852dbf7b1a6d4b53b00626032 endif # ---------------------------------------------------------------------------- @@ -47,22 +61,27 @@ 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 \ + --$(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 -LIBGPIOD_TOOLS-$(PTXCONF_LIBGPIOD_GPIODETECT) += gpiodetect -LIBGPIOD_TOOLS-$(PTXCONF_LIBGPIOD_GPIOINFO) += gpioinfo -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_BINS-$(PTXCONF_LIBGPIOD_GPIODETECT) += gpiodetect +LIBGPIOD_BINS-$(PTXCONF_LIBGPIOD_GPIOINFO) += gpioinfo +LIBGPIOD_BINS-$(PTXCONF_LIBGPIOD_GPIOGET) += gpioget +LIBGPIOD_BINS-$(PTXCONF_LIBGPIOD_GPIOSET) += gpioset +LIBGPIOD_BINS-$(PTXCONF_LIBGPIOD_GPIOMON) += gpiomon +LIBGPIOD_BINS-$(PTXCONF_LIBGPIOD_GPIONOTIFY) += gpionotify +LIBGPIOD_BINS-$(PTXCONF_LIBGPIOD_DBUS_DAEMON) += gpio-manager +LIBGPIOD_BINS-$(PTXCONF_LIBGPIOD_DBUS_DAEMON) += gpiocli # ---------------------------------------------------------------------------- # Target-Install @@ -79,11 +98,24 @@ $(STATEDIR)/libgpiod.targetinstall: @$(call install_lib, libgpiod, 0, 0, 0644, libgpiod) - @for tool in $(LIBGPIOD_TOOLS-y); do \ + @for tool in $(LIBGPIOD_BINS-y); do \ $(call install_copy, libgpiod, 0, 0, 0755, -, \ /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.1
