[Buildroot] [PATCH v2 1/1] package/eudev: fix compile-time issue with very old kernel headers

Yann E. MORIN yann.morin.1998 at free.fr
Sat Apr 15 12:51:13 UTC 2023


Stefan, All,

On 2023-04-13 00:40 +0200, Stefan Ott via buildroot spake thusly:
> Kernel versions prior to 3.4 did not have V4L2_CAP_DEVICE_CAPS and
> compiling against such a kernel will fail.
> 
> This patch introduces a version check and makes eudev fall back to
> v2cap.capabilities on these kernels.
> 
> Upstream: https://github.com/eudev-project/eudev/pull/247

I've moved the upstream reference into the patch itself, since that's
where it'll be easier to find when we need to asses the patch status
next time we bump the package.

And since the PR was accepted and merged, I've changed the reference to
the commit URL.

Applied to master, thanks.

Regards,
Yann E. MORIN.

> Signed-off-by: Stefan Ott <stefan at ott.net>
> ---
> Changes v1 -> v2 (suggested by Arnout Vandecappelle):
> - Clarified description to talk about kernel *headers*
> - Use a git-formatted patch instead
> - Added a Signed-off-by line
> - Added upstream reference
> 
>  ...mpile-time-issue-on-very-old-kernels.patch | 43 +++++++++++++++++++
>  1 file changed, 43 insertions(+)
>  create mode 100644 package/eudev/0002-Fix-compile-time-issue-on-very-old-kernels.patch
> 
> diff --git a/package/eudev/0002-Fix-compile-time-issue-on-very-old-kernels.patch b/package/eudev/0002-Fix-compile-time-issue-on-very-old-kernels.patch
> new file mode 100644
> index 0000000000..c18ce2ad5a
> --- /dev/null
> +++ b/package/eudev/0002-Fix-compile-time-issue-on-very-old-kernels.patch
> @@ -0,0 +1,43 @@
> +From 09b536e0b9d0964674936901ab9d2954f935c8b4 Mon Sep 17 00:00:00 2001
> +From: Stefan Ott <stefan at ott.net>
> +Date: Wed, 5 Apr 2023 18:20:37 +0200
> +Subject: [PATCH] Fix compile-time issue on very old kernels
> +
> +Kernel versions prior to 3.4 did not have V4L2_CAP_DEVICE_CAPS and
> +compiling against such a kernel will fail.
> +
> +This patch introduces a version check and makes eudev fall back to
> +v2cap.capabilities on these kernels.
> +
> +Signed-off-by: Stefan Ott <stefan at ott.net>
> +---
> + src/v4l_id/v4l_id.c | 3 +++
> + 1 file changed, 3 insertions(+)
> +
> +diff --git a/src/v4l_id/v4l_id.c b/src/v4l_id/v4l_id.c
> +index 6bf45effe..702d5b687 100644
> +--- a/src/v4l_id/v4l_id.c
> ++++ b/src/v4l_id/v4l_id.c
> +@@ -28,6 +28,7 @@
> + #include <sys/types.h>
> + #include <sys/time.h>
> + #include <sys/ioctl.h>
> ++#include <linux/version.h>
> + #include <linux/videodev2.h>
> + 
> + #include "util.h"
> +@@ -71,9 +72,11 @@ int main(int argc, char *argv[]) {
> +                 printf("ID_V4L_VERSION=2\n");
> +                 printf("ID_V4L_PRODUCT=%s\n", v2cap.card);
> +                 printf("ID_V4L_CAPABILITIES=:");
> ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)
> +                 if (v2cap.capabilities & V4L2_CAP_DEVICE_CAPS)
> +                         capabilities = v2cap.device_caps;
> +                 else
> ++#endif
> +                         capabilities = v2cap.capabilities;
> +                 if ((capabilities & V4L2_CAP_VIDEO_CAPTURE) > 0 ||
> +                     (capabilities & V4L2_CAP_VIDEO_CAPTURE_MPLANE) > 0)
> +-- 
> +2.40.0
> +
> -- 
> 2.40.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot at buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'



More information about the buildroot mailing list