Fix generic_gpio_libgpiod
driver builds with libgpio 2.x API changes
#2841
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes: #2833
API of the library has massively changed between 1.6.x available in older distros, and 2.x in newer ones (and matching Linux kernel functionality changed a lot as well). The driver was not buildable in newer/upcoming distribution releases because of that.
Great thanks to @modrisb for initial driver development, and for this subsequent fix (on short notice at that). And to @tomeko12 for raising the alarm :)
For my part, it should now be easy to identify which API (1 or 2) the program got built against:
NOTE: Currently the API is not elaborated in detail by
m4/nut_check_libgpiod.m4
and effectively just says 1 or 2 (extensibly as a 32-bit int defineWITH_LIBGPIO_VERSION
, so we can add minor/patch layers if wanted). Note that theGPIOD_VERSION
used by the script comes frompkg-config
and may reflect the library API version placed into the*.pc
metadata, rather than a source/package version.A custom build of the library to test NUT builds against is detailed at #2833 (comment) and trivial to complete.