Hello all,

On Thu, 2024-10-24 at 15:51 +0200, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <[email protected]>
> 
> This is a big update for libgpiod bringing in the D-Bus daemon and its
> command-line client. This is why the patch is pretty hefty. The majority
> of the line count comes from the removed patch that is now upstream but
> the v2.2 recipe also now contains a lot of bits and pieces that make the
> D-Bus daemon work both with system as well as sysvinit.
> 
> The project now packages the systemd service and udev rules that allow
> the manager to run under its own user in a well sandboxed environment
> but the sysvsinit script is carried in the recipe as I don't want to
> put support for legacy systems in libgpiod repo.
> 
> The patch also updates the ptests for libgpiod to run three new
> test-suites: one for GLib bindings, one for the command-line D-Bus
> client and finally one testing some daemon corner-cases not supported by
> the client.
> 
> Build tested with various config options with systemd and sysvinit (the
> latter with glibc and musl) on 32- and 64-bit architectures.
> 
> The complete changelog since v2.1 (taken verbatim from the NEWS file) is
> below:
> 
> libgpiod v2.2
> =============
> 
> New features:
> - add GObject bindings with introspection
> - add a D-Bus interface to libgpiod together with a daemon implementing it and
>   a command-line client
> - split out the common shell test code for gpio-tools into a reusable test
>   harness for GPIO command-line tools
> - add minutes as a new supported time unit for tools and allow longer periods
>   for timeouts, line holding, etc.
> - add a script for generating sdist and wheels for python bindings
> - migrate C++ tests to using Catch2 v3
> 
> Improvements:
> - relicense C++ bindings under LGPL-2.1-or-later in order to make the project
>   more attractive to users with GPL-3.0 restrictions
> - remove dependency on grep from tools' tests
> - make shell scripts pass shellcheck treewide
> - use ppoll() in tools to actually achieve the advertised microsecond
>   granularity of timeouts
> - documentation improvements
> - improve typing info in python bindings
> - improve __repr__() implementations in python bindings
> - make reconfiguring lines more flexible in python bindings by relaxing the
>   requirement to carry the ordering of the config entries from the request
> - support casting of line.Value to bool in python bindings
> - various new test-cases for improved coverage treewide
> - align the test cases with the current kernel requirement for specifying
>   direction explicitly when reconfiguring lines
> 
> Bug fixes:
> - fix C++ bindings build using slibtool
> - accept the new style automatic GPIO chip labels from gpio-sim in bash tests
> - fix C++ tests with recent kernels which introduced stricter reconfigure
>   behavior
> - fix a use-after-free bug in python bindings
> - fix passing the event clock property to line requests in python bindings
> - fix a memory leak in tools
> - make sure the string buffers in line-info and chip-info are big enough to 
> not
>   truncate the strings they hold below the size accepted by the kernel
> - remove buggy and unnecessary flags sanitization from line-config
> - fix python bindings installation with Makefile build
> - sanitize the return values of GPIO ioctl()s which in some cases may be
>   erroneously positive
> - fix requesting lines by name with multiple entries in python bindings
> 
> Signed-off-by: Bartosz Golaszewski <[email protected]>

I admit I had to backport it to scarthgap to test (along with glib 2.80, etc),
but I didn't notice any problems and I'm able to start gpio-manager
(systemd service) and control it over gpiocli.

Thanks a lot Bartosz!

Reviewed-by: Alexander Sverdlin <[email protected]>
Tested-by: Alexander Sverdlin <[email protected]>

> ---
> Changes in v3:
> - make dbus a runtime dependency for the 'dbus' and 'tests' PACKAGECONFIG
>   switches
> - make libgpiod-manager a runtime dependency for libgpiod-cli
> 
> Changes in v2:
> - fix SRC_URI[sha256sum] value
> 
>  ...cxx-Migrate-C-tests-to-use-Catch2-v3.patch | 530 ------------------
>  .../libgpiod/libgpiod-2.x/gpio-manager.init   |  76 +++
>  .../libgpiod/libgpiod-2.x/run-ptest           |  43 +-
>  .../libgpiod/libgpiod_2.1.3.bb                |  33 --
>  .../recipes-support/libgpiod/libgpiod_2.2.bb  |  99 ++++
>  5 files changed, 206 insertions(+), 575 deletions(-)
>  delete mode 100644 
> meta-oe/recipes-support/libgpiod/libgpiod-2.x/0001-bindings-cxx-Migrate-C-tests-to-use-Catch2-v3.patch
>  create mode 100644 
> meta-oe/recipes-support/libgpiod/libgpiod-2.x/gpio-manager.init
>  delete mode 100644 meta-oe/recipes-support/libgpiod/libgpiod_2.1.3.bb
>  create mode 100644 meta-oe/recipes-support/libgpiod/libgpiod_2.2.bb

-- 
Alexander Sverdlin
Siemens AG
www.siemens.com
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#113170): 
https://lists.openembedded.org/g/openembedded-devel/message/113170
Mute This Topic: https://lists.openembedded.org/mt/109190169/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to