Le mar. 29 oct. 2024 à 13:39, Martin Jansa via lists.openembedded.org <[email protected]> a écrit :
> Doesn't this upgrade break python3-gpiod > (meta-oe/meta-python/recipes-devtools/python/python3-gpiod_2.2.1.bb)? > Looks like it. Error seen by autobuilder as well : https://valkyrie.yoctoproject.org/#/builders/87/builds/16/steps/40/logs/stdio > > In world builds I'm seeing new build failure which looks like caused > by update libgpiod API: > > gpiod/ext/chip.c: In function 'chip_path': > gpiod/ext/chip.c:43:37: error: implicit declaration of function > 'gpiod_chip_get_path'; did you mean 'gpiod_chip_get_line'? > [-Wimplicit-function-declaration] > 43 | return > PyUnicode_FromString(gpiod_chip_get_path(self->chip)); > | ^~~~~~~~~~~~~~~~~~~ > | gpiod_chip_get_line > gpiod/ext/chip.c:43:37: error: passing argument 1 of > 'PyUnicode_FromString' makes pointer from integer without a cast > [-Wint-conversion] > 43 | return > PyUnicode_FromString(gpiod_chip_get_path(self->chip)); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > | | > | int > In file included from > > TOPDIR/BUILD/work/raspberrypi4_64-webos-linux/python3-gpiod/2.2.1/recipe-sysroot/usr/include/python3.13/Python.h:79, > from gpiod/ext/internal.h:8: > > TOPDIR/BUILD/work/raspberrypi4_64-webos-linux/python3-gpiod/2.2.1/recipe-sysroot/usr/include/python3.13/unicodeobject.h:130:17: > note: expected 'const char *' but argument is of type 'int' > 130 | const char *u /* UTF-8 encoded string */ > | ~~~~~~~~~~~~^ > gpiod/ext/chip.c: In function 'chip_fd': > gpiod/ext/chip.c:48:32: error: implicit declaration of function > 'gpiod_chip_get_fd'; did you mean 'gpiod_chip_get_line'? > [-Wimplicit-function-declaration] > 48 | return PyLong_FromLong(gpiod_chip_get_fd(self->chip)); > | ^~~~~~~~~~~~~~~~~ > | gpiod_chip_get_line > gpiod/ext/chip.c: In function 'chip_get_info': > gpiod/ext/chip.c:82:16: error: implicit declaration of function > 'gpiod_chip_get_info'; did you mean 'gpiod_chip_get_lines'? > [-Wimplicit-function-declaration] > 82 | info = gpiod_chip_get_info(self->chip); > | ^~~~~~~~~~~~~~~~~~~ > | gpiod_chip_get_lines > gpiod/ext/chip.c:82:14: error: assignment to 'struct gpiod_chip_info > *' from 'int' makes pointer from integer without a cast > [-Wint-conversion] > 82 | info = gpiod_chip_get_info(self->chip); > | ^ > gpiod/ext/chip.c:87:38: error: implicit declaration of function > 'gpiod_chip_info_get_name'; did you mean 'gpiod_chip_open_by_name'? > [-Wimplicit-function-declaration] > 87 | > gpiod_chip_info_get_name(info), > | ^~~~~~~~~~~~~~~~~~~~~~~~ > | gpiod_chip_open_by_name > gpiod/ext/chip.c:88:38: error: implicit declaration of function > 'gpiod_chip_info_get_label'; did you mean 'gpiod_chip_open_by_label'? > [-Wimplicit-function-declaration] > 88 | > gpiod_chip_info_get_label(info), > | ^~~~~~~~~~~~~~~~~~~~~~~~~ > | gpiod_chip_open_by_label > gpiod/ext/chip.c:89:38: error: implicit declaration of function > 'gpiod_chip_info_get_num_lines'; did you mean > 'gpiod_chip_get_all_lines'? [-Wimplicit-function-declaration] > 89 | > gpiod_chip_info_get_num_lines(info)); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > | gpiod_chip_get_all_lines > gpiod/ext/chip.c:90:10: error: implicit declaration of function > 'gpiod_chip_info_free'; did you mean 'gpiod_chip_iter_free'? > [-Wimplicit-function-declaration] > 90 | gpiod_chip_info_free(info); > | ^~~~~~~~~~~~~~~~~~~~ > | gpiod_chip_iter_free > gpiod/ext/chip.c: At top level: > gpiod/ext/chip.c:94:40: warning: 'struct gpiod_line_info' declared > inside parameter list will not be visible outside of this definition > or declaration > 94 | static PyObject *make_line_info(struct gpiod_line_info *info) > | ^~~~~~~~~~~~~~~ > gpiod/ext/chip.c: In function 'make_line_info': > gpiod/ext/chip.c:103:33: error: implicit declaration of function > 'gpiod_line_info_get_offset'; did you mean 'gpiod_line_offset'? > [-Wimplicit-function-declaration] > 103 | gpiod_line_info_get_offset(info), > | ^~~~~~~~~~~~~~~~~~~~~~~~~~ > | gpiod_line_offset > gpiod/ext/chip.c:104:33: error: implicit declaration of function > 'gpiod_line_info_get_name'; did you mean 'gpiod_line_bulk_get_line'? > [-Wimplicit-function-declaration] > 104 | gpiod_line_info_get_name(info), > | ^~~~~~~~~~~~~~~~~~~~~~~~ > | gpiod_line_bulk_get_line > gpiod/ext/chip.c:105:33: error: implicit declaration of function > 'gpiod_line_info_is_used'; did you mean 'gpiod_line_is_used'? > [-Wimplicit-function-declaration] > 105 | gpiod_line_info_is_used(info) ? > | ^~~~~~~~~~~~~~~~~~~~~~~ > | gpiod_line_is_used > gpiod/ext/chip.c:107:33: error: implicit declaration of function > 'gpiod_line_info_get_consumer'; did you mean 'gpiod_line_consumer'? > [-Wimplicit-function-declaration] > 107 | gpiod_line_info_get_consumer(info), > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ > | gpiod_line_consumer > gpiod/ext/chip.c:108:33: error: implicit declaration of function > 'gpiod_line_info_get_direction'; did you mean 'gpiod_line_direction'? > [-Wimplicit-function-declaration] > 108 | > gpiod_line_info_get_direction(info), > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > | gpiod_line_direction > gpiod/ext/chip.c:109:33: error: implicit declaration of function > 'gpiod_line_info_is_active_low' [-Wimplicit-function-declaration] > 109 | > gpiod_line_info_is_active_low(info) ? > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > gpiod/ext/chip.c:111:33: error: implicit declaration of function > 'gpiod_line_info_get_bias'; did you mean 'gpiod_line_bulk_get_line'? > [-Wimplicit-function-declaration] > 111 | gpiod_line_info_get_bias(info), > | ^~~~~~~~~~~~~~~~~~~~~~~~ > | gpiod_line_bulk_get_line > gpiod/ext/chip.c:112:33: error: implicit declaration of function > 'gpiod_line_info_get_drive'; did you mean 'gpiod_line_bulk_get_line'? > [-Wimplicit-function-declaration] > 112 | gpiod_line_info_get_drive(info), > | ^~~~~~~~~~~~~~~~~~~~~~~~~ > | gpiod_line_bulk_get_line > gpiod/ext/chip.c:113:33: error: implicit declaration of function > 'gpiod_line_info_get_edge_detection' [-Wimplicit-function-declaration] > 113 | > gpiod_line_info_get_edge_detection(info), > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > gpiod/ext/chip.c:114:33: error: implicit declaration of function > 'gpiod_line_info_get_event_clock' [-Wimplicit-function-declaration] > 114 | > gpiod_line_info_get_event_clock(info), > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > gpiod/ext/chip.c:115:33: error: implicit declaration of function > 'gpiod_line_info_is_debounced'; did you mean > 'gpiod_line_is_open_source'? [-Wimplicit-function-declaration] > 115 | gpiod_line_info_is_debounced(info) > ? > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ > | gpiod_line_is_open_source > gpiod/ext/chip.c:117:33: error: implicit declaration of function > 'gpiod_line_info_get_debounce_period_us' > [-Wimplicit-function-declaration] > 117 | > gpiod_line_info_get_debounce_period_us(info)); > | > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > gpiod/ext/chip.c: In function 'chip_get_line_info': > gpiod/ext/chip.c:133:24: error: implicit declaration of function > 'gpiod_chip_watch_line_info'; did you mean 'gpiod_chip_get_lines'? > [-Wimplicit-function-declaration] > 133 | info = gpiod_chip_watch_line_info(self->chip, > offset); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~ > | gpiod_chip_get_lines > gpiod/ext/chip.c:133:22: error: assignment to 'struct gpiod_line_info > *' from 'int' makes pointer from integer without a cast > [-Wint-conversion] > 133 | info = gpiod_chip_watch_line_info(self->chip, > offset); > | ^ > gpiod/ext/chip.c:135:24: error: implicit declaration of function > 'gpiod_chip_get_line_info'; did you mean 'gpiod_chip_get_lines'? > [-Wimplicit-function-declaration] > 135 | info = gpiod_chip_get_line_info(self->chip, > offset); > | ^~~~~~~~~~~~~~~~~~~~~~~~ > | gpiod_chip_get_lines > gpiod/ext/chip.c:135:22: error: assignment to 'struct gpiod_line_info > *' from 'int' makes pointer from integer without a cast > [-Wint-conversion] > 135 | info = gpiod_chip_get_line_info(self->chip, > offset); > | ^ > gpiod/ext/chip.c:140:35: error: passing argument 1 of 'make_line_info' > from incompatible pointer type [-Wincompatible-pointer-types] > 140 | info_obj = make_line_info(info); > | ^~~~ > | | > | struct gpiod_line_info * > gpiod/ext/chip.c:94:57: note: expected 'struct gpiod_line_info *' but > argument is of type 'struct gpiod_line_info *' > 94 | static PyObject *make_line_info(struct gpiod_line_info *info) > | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~ > gpiod/ext/chip.c:141:9: error: implicit declaration of function > 'gpiod_line_info_free'; did you mean 'gpiod_line_iter_free'? > [-Wimplicit-function-declaration] > 141 | gpiod_line_info_free(info); > | ^~~~~~~~~~~~~~~~~~~~ > | gpiod_line_iter_free > gpiod/ext/chip.c: In function 'chip_unwatch_line_info': > gpiod/ext/chip.c:156:15: error: implicit declaration of function > 'gpiod_chip_unwatch_line_info'; did you mean 'chip_unwatch_line_info'? > [-Wimplicit-function-declaration] > 156 | ret = gpiod_chip_unwatch_line_info(self->chip, offset); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ > | chip_unwatch_line_info > gpiod/ext/chip.c: In function 'chip_read_info_event': > gpiod/ext/chip.c:176:17: error: implicit declaration of function > 'gpiod_chip_read_info_event'; did you mean 'chip_read_info_event'? > [-Wimplicit-function-declaration] > 176 | event = gpiod_chip_read_info_event(self->chip); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~ > | chip_read_info_event > gpiod/ext/chip.c:176:15: error: assignment to 'struct gpiod_info_event > *' from 'int' makes pointer from integer without a cast > [-Wint-conversion] > 176 | event = gpiod_chip_read_info_event(self->chip); > | ^ > gpiod/ext/chip.c:181:16: error: implicit declaration of function > 'gpiod_info_event_get_line_info' [-Wimplicit-function-declaration] > 181 | info = gpiod_info_event_get_line_info(event); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > gpiod/ext/chip.c:181:14: error: assignment to 'struct gpiod_line_info > *' from 'int' makes pointer from integer without a cast > [-Wint-conversion] > 181 | info = gpiod_info_event_get_line_info(event); > | ^ > gpiod/ext/chip.c:183:35: error: passing argument 1 of 'make_line_info' > from incompatible pointer type [-Wincompatible-pointer-types] > 183 | info_obj = make_line_info(info); > | ^~~~ > | | > | struct gpiod_line_info * > gpiod/ext/chip.c:94:57: note: expected 'struct gpiod_line_info *' but > argument is of type 'struct gpiod_line_info *' > 94 | static PyObject *make_line_info(struct gpiod_line_info *info) > | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~ > gpiod/ext/chip.c:185:17: error: implicit declaration of function > 'gpiod_info_event_free'; did you mean 'gpiod_line_event_read'? > [-Wimplicit-function-declaration] > 185 | gpiod_info_event_free(event); > | ^~~~~~~~~~~~~~~~~~~~~ > | gpiod_line_event_read > gpiod/ext/chip.c:190:33: error: implicit declaration of function > 'gpiod_info_event_get_event_type' [-Wimplicit-function-declaration] > 190 | > gpiod_info_event_get_event_type(event), > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > gpiod/ext/chip.c:191:33: error: implicit declaration of function > 'gpiod_info_event_get_timestamp_ns' [-Wimplicit-function-declaration] > 191 | > gpiod_info_event_get_timestamp_ns(event), > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > gpiod/ext/chip.c: In function 'chip_line_offset_from_id': > gpiod/ext/chip.c:208:18: error: implicit declaration of function > 'gpiod_chip_get_line_offset_from_name' > [-Wimplicit-function-declaration] > 208 | offset = gpiod_chip_get_line_offset_from_name(self->chip, > name); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > gpiod/ext/chip.c: In function 'make_request_config': > gpiod/ext/chip.c:223:19: error: implicit declaration of function > 'gpiod_request_config_new' [-Wimplicit-function-declaration] > 223 | req_cfg = gpiod_request_config_new(); > | ^~~~~~~~~~~~~~~~~~~~~~~~ > gpiod/ext/chip.c:223:17: error: assignment to 'struct > gpiod_request_config *' from 'int' makes pointer from integer without > a cast [-Wint-conversion] > 223 | req_cfg = gpiod_request_config_new(); > | ^ > gpiod/ext/chip.c:232:25: error: implicit declaration of function > 'gpiod_request_config_free' [-Wimplicit-function-declaration] > 232 | gpiod_request_config_free(req_cfg); > | ^~~~~~~~~~~~~~~~~~~~~~~~~ > gpiod/ext/chip.c:236:17: error: implicit declaration of function > 'gpiod_request_config_set_consumer' [-Wimplicit-function-declaration] > 236 | gpiod_request_config_set_consumer(req_cfg, > consumer); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > gpiod/ext/chip.c:246:17: error: implicit declaration of function > 'gpiod_request_config_set_event_buffer_size' > [-Wimplicit-function-declaration] > 246 | gpiod_request_config_set_event_buffer_size(req_cfg, > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > gpiod/ext/chip.c: In function 'chip_request_lines': > gpiod/ext/chip.c:275:19: error: implicit declaration of function > 'gpiod_chip_request_lines'; did you mean 'gpiod_chip_get_lines'? > [-Wimplicit-function-declaration] > 275 | request = gpiod_chip_request_lines(self->chip, > req_cfg, line_cfg); > | ^~~~~~~~~~~~~~~~~~~~~~~~ > | gpiod_chip_get_lines > gpiod/ext/chip.c:275:17: error: assignment to 'struct > gpiod_line_request *' from 'int' makes pointer from integer without a > cast [-Wint-conversion] > 275 | request = gpiod_chip_request_lines(self->chip, > req_cfg, line_cfg); > | ^ > gpiod/ext/chip.c:283:25: error: implicit declaration of function > 'gpiod_request_config_get_event_buffer_size' > [-Wimplicit-function-declaration] > 283 | > gpiod_request_config_get_event_buffer_size(req_cfg)); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > gpiod/ext/chip.c:282:46: error: passing argument 1 of > 'Py_gpiod_MakeRequestObject' from incompatible pointer type > [-Wincompatible-pointer-types] > 282 | req_obj = Py_gpiod_MakeRequestObject(request, > | ^~~~~~~ > | | > | struct > gpiod_line_request * > gpiod/ext/internal.h:14:65: note: expected 'struct gpiod_line_request > *' but argument is of type 'struct gpiod_line_request *' > 14 | PyObject *Py_gpiod_MakeRequestObject(struct gpiod_line_request > *request, > | > ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~ > gpiod/ext/chip.c:285:17: error: implicit declaration of function > 'gpiod_line_request_release'; did you mean 'gpiod_line_request_bulk'? > [-Wimplicit-function-declaration] > 285 | gpiod_line_request_release(request); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~ > | gpiod_line_request_bulk > error: command > 'TOPDIR/BUILD/work/raspberrypi4_64-webos-linux/python3-gpiod/2.2.1/recipe-sysroot-native/usr/bin/aarch64-webos-linux/aarch64-webos-linux-gcc' > failed with exit code 1 > > On Thu, Oct 24, 2024 at 4:19 PM Khem Raj via lists.openembedded.org > <[email protected]> wrote: > > > > Thanks for testing and Review Alexander. > > > > On Thu, Oct 24, 2024 at 7:10 AM Sverdlin, Alexander > > <[email protected]> wrote: > > > > > > 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 > > > > > > > > > > -- Yoann Congal Smile ECS - Tech expert
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#113325): https://lists.openembedded.org/g/openembedded-devel/message/113325 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]] -=-=-=-=-=-=-=-=-=-=-=-
