From b17df88c562ab96c859511e0e8d8bbd0411c94a3 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 8 Feb 2020 23:09:54 +0100 Subject: [PATCH 1/9] linux (Allwinner): align BPF config with other projects enable CONFIG_BPF_SYSCALL and CONFIG_CGROUP_BPF Signed-off-by: Matthias Reichl --- projects/Allwinner/linux/linux.aarch64.conf | 7 ++++++- projects/Allwinner/linux/linux.arm.conf | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/projects/Allwinner/linux/linux.aarch64.conf b/projects/Allwinner/linux/linux.aarch64.conf index 91c1a3bdef..6b2ade14ab 100644 --- a/projects/Allwinner/linux/linux.aarch64.conf +++ b/projects/Allwinner/linux/linux.aarch64.conf @@ -153,6 +153,7 @@ CONFIG_PROC_PID_CPUSET=y CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_BPF=y # CONFIG_CGROUP_DEBUG is not set CONFIG_SOCK_CGROUP_DATA=y CONFIG_NAMESPACES=y @@ -207,7 +208,8 @@ CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_BASE_RELATIVE=y -# CONFIG_BPF_SYSCALL is not set +CONFIG_BPF_SYSCALL=y +# CONFIG_BPF_JIT_ALWAYS_ON is not set # CONFIG_USERFAULTFD is not set CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_RSEQ=y @@ -790,6 +792,7 @@ CONFIG_XFRM_USER=y # CONFIG_XFRM_MIGRATE is not set # CONFIG_XFRM_STATISTICS is not set # CONFIG_NET_KEY is not set +# CONFIG_XDP_SOCKETS is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y # CONFIG_IP_ADVANCED_ROUTER is not set @@ -1185,6 +1188,7 @@ CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y CONFIG_BPF_JIT=y +# CONFIG_BPF_STREAM_PARSER is not set CONFIG_NET_FLOW_LIMIT=y # @@ -2945,6 +2949,7 @@ CONFIG_CEC_PIN=y CONFIG_RC_CORE=y CONFIG_RC_MAP=y CONFIG_LIRC=y +# CONFIG_BPF_LIRC_MODE2 is not set CONFIG_RC_DECODERS=y CONFIG_IR_NEC_DECODER=y CONFIG_IR_RC5_DECODER=y diff --git a/projects/Allwinner/linux/linux.arm.conf b/projects/Allwinner/linux/linux.arm.conf index 75531880e8..18a8138a3c 100644 --- a/projects/Allwinner/linux/linux.arm.conf +++ b/projects/Allwinner/linux/linux.arm.conf @@ -144,6 +144,7 @@ CONFIG_PROC_PID_CPUSET=y CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_BPF=y # CONFIG_CGROUP_DEBUG is not set CONFIG_SOCK_CGROUP_DATA=y CONFIG_NAMESPACES=y @@ -201,7 +202,7 @@ CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set CONFIG_KALLSYMS_BASE_RELATIVE=y -# CONFIG_BPF_SYSCALL is not set +CONFIG_BPF_SYSCALL=y # CONFIG_USERFAULTFD is not set CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_RSEQ=y @@ -808,6 +809,7 @@ CONFIG_XFRM_USER=y # CONFIG_XFRM_MIGRATE is not set # CONFIG_XFRM_STATISTICS is not set # CONFIG_NET_KEY is not set +# CONFIG_XDP_SOCKETS is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y # CONFIG_IP_ADVANCED_ROUTER is not set @@ -1167,6 +1169,7 @@ CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y # CONFIG_BPF_JIT is not set +# CONFIG_BPF_STREAM_PARSER is not set CONFIG_NET_FLOW_LIMIT=y # @@ -2774,6 +2777,7 @@ CONFIG_CEC_PIN=y CONFIG_RC_CORE=y CONFIG_RC_MAP=y CONFIG_LIRC=y +# CONFIG_BPF_LIRC_MODE2 is not set CONFIG_RC_DECODERS=y CONFIG_IR_NEC_DECODER=y CONFIG_IR_RC5_DECODER=y From 5563df2c22dfa4f0aecc2a2e0303734bd5d926eb Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 8 Feb 2020 23:13:33 +0100 Subject: [PATCH 2/9] linux (AW/AML/Generic/RK/RPi): enable CONFIG_BPF_LIRC_MODE2=y Signed-off-by: Matthias Reichl --- projects/Allwinner/linux/linux.aarch64.conf | 2 +- projects/Allwinner/linux/linux.arm.conf | 2 +- projects/Amlogic/linux/linux.aarch64.conf | 4 +++- projects/Generic/linux/linux.x86_64.conf | 4 +++- projects/RPi/devices/RPi/linux/linux.arm.conf | 4 +++- projects/RPi/devices/RPi2/linux/linux.arm.conf | 4 +++- projects/RPi/devices/RPi4/linux/linux.arm.conf | 3 ++- projects/Rockchip/devices/RK3288/linux/default/linux.arm.conf | 4 +++- .../Rockchip/devices/RK3328/linux/default/linux.aarch64.conf | 4 +++- .../Rockchip/devices/RK3399/linux/default/linux.aarch64.conf | 4 +++- 10 files changed, 25 insertions(+), 10 deletions(-) diff --git a/projects/Allwinner/linux/linux.aarch64.conf b/projects/Allwinner/linux/linux.aarch64.conf index 6b2ade14ab..2448f75cbc 100644 --- a/projects/Allwinner/linux/linux.aarch64.conf +++ b/projects/Allwinner/linux/linux.aarch64.conf @@ -2949,7 +2949,7 @@ CONFIG_CEC_PIN=y CONFIG_RC_CORE=y CONFIG_RC_MAP=y CONFIG_LIRC=y -# CONFIG_BPF_LIRC_MODE2 is not set +CONFIG_BPF_LIRC_MODE2=y CONFIG_RC_DECODERS=y CONFIG_IR_NEC_DECODER=y CONFIG_IR_RC5_DECODER=y diff --git a/projects/Allwinner/linux/linux.arm.conf b/projects/Allwinner/linux/linux.arm.conf index 18a8138a3c..81e9385048 100644 --- a/projects/Allwinner/linux/linux.arm.conf +++ b/projects/Allwinner/linux/linux.arm.conf @@ -2777,7 +2777,7 @@ CONFIG_CEC_PIN=y CONFIG_RC_CORE=y CONFIG_RC_MAP=y CONFIG_LIRC=y -# CONFIG_BPF_LIRC_MODE2 is not set +CONFIG_BPF_LIRC_MODE2=y CONFIG_RC_DECODERS=y CONFIG_IR_NEC_DECODER=y CONFIG_IR_RC5_DECODER=y diff --git a/projects/Amlogic/linux/linux.aarch64.conf b/projects/Amlogic/linux/linux.aarch64.conf index 246ddb6849..18cd191b70 100644 --- a/projects/Amlogic/linux/linux.aarch64.conf +++ b/projects/Amlogic/linux/linux.aarch64.conf @@ -2721,9 +2721,10 @@ CONFIG_REGULATOR_PWM=y # CONFIG_REGULATOR_VCTRL is not set CONFIG_CEC_CORE=y CONFIG_CEC_NOTIFIER=y -CONFIG_RC_CORE=m +CONFIG_RC_CORE=y CONFIG_RC_MAP=m CONFIG_LIRC=y +CONFIG_BPF_LIRC_MODE2=y CONFIG_RC_DECODERS=y CONFIG_IR_NEC_DECODER=m CONFIG_IR_RC5_DECODER=m @@ -2767,6 +2768,7 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y CONFIG_MEDIA_RADIO_SUPPORT=y # CONFIG_MEDIA_SDR_SUPPORT is not set CONFIG_MEDIA_CEC_SUPPORT=y +# CONFIG_MEDIA_CEC_RC is not set CONFIG_MEDIA_CONTROLLER=y CONFIG_MEDIA_CONTROLLER_DVB=y CONFIG_MEDIA_CONTROLLER_REQUEST_API=y diff --git a/projects/Generic/linux/linux.x86_64.conf b/projects/Generic/linux/linux.x86_64.conf index c1a07f0e44..31b2bcaff0 100644 --- a/projects/Generic/linux/linux.x86_64.conf +++ b/projects/Generic/linux/linux.x86_64.conf @@ -3216,9 +3216,10 @@ CONFIG_REGULATOR=y # CONFIG_REGULATOR_TPS6507X is not set # CONFIG_REGULATOR_TPS65132 is not set CONFIG_CEC_CORE=y -CONFIG_RC_CORE=m +CONFIG_RC_CORE=y CONFIG_RC_MAP=m CONFIG_LIRC=y +CONFIG_BPF_LIRC_MODE2=y CONFIG_RC_DECODERS=y CONFIG_IR_NEC_DECODER=m CONFIG_IR_RC5_DECODER=m @@ -3262,6 +3263,7 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y # CONFIG_MEDIA_RADIO_SUPPORT is not set # CONFIG_MEDIA_SDR_SUPPORT is not set # CONFIG_MEDIA_CEC_SUPPORT is not set +# CONFIG_MEDIA_CEC_RC is not set CONFIG_MEDIA_CONTROLLER=y CONFIG_MEDIA_CONTROLLER_DVB=y CONFIG_MEDIA_CONTROLLER_REQUEST_API=y diff --git a/projects/RPi/devices/RPi/linux/linux.arm.conf b/projects/RPi/devices/RPi/linux/linux.arm.conf index e283f636dc..4983520998 100644 --- a/projects/RPi/devices/RPi/linux/linux.arm.conf +++ b/projects/RPi/devices/RPi/linux/linux.arm.conf @@ -2616,9 +2616,10 @@ CONFIG_REGULATOR_ARIZONA_MICSUPP=m # CONFIG_REGULATOR_TPS6524X is not set # CONFIG_REGULATOR_VCTRL is not set CONFIG_CEC_CORE=y -CONFIG_RC_CORE=m +CONFIG_RC_CORE=y CONFIG_RC_MAP=m CONFIG_LIRC=y +CONFIG_BPF_LIRC_MODE2=y CONFIG_RC_DECODERS=y CONFIG_IR_NEC_DECODER=m CONFIG_IR_RC5_DECODER=m @@ -2661,6 +2662,7 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y CONFIG_MEDIA_RADIO_SUPPORT=y # CONFIG_MEDIA_SDR_SUPPORT is not set # CONFIG_MEDIA_CEC_SUPPORT is not set +# CONFIG_MEDIA_CEC_RC is not set CONFIG_MEDIA_CONTROLLER=y CONFIG_MEDIA_CONTROLLER_DVB=y CONFIG_MEDIA_CONTROLLER_REQUEST_API=y diff --git a/projects/RPi/devices/RPi2/linux/linux.arm.conf b/projects/RPi/devices/RPi2/linux/linux.arm.conf index 45652ec69e..d06a04a42a 100644 --- a/projects/RPi/devices/RPi2/linux/linux.arm.conf +++ b/projects/RPi/devices/RPi2/linux/linux.arm.conf @@ -2744,9 +2744,10 @@ CONFIG_REGULATOR_ARIZONA_MICSUPP=m # CONFIG_REGULATOR_TPS6524X is not set # CONFIG_REGULATOR_VCTRL is not set CONFIG_CEC_CORE=y -CONFIG_RC_CORE=m +CONFIG_RC_CORE=y CONFIG_RC_MAP=m CONFIG_LIRC=y +CONFIG_BPF_LIRC_MODE2=y CONFIG_RC_DECODERS=y CONFIG_IR_NEC_DECODER=m CONFIG_IR_RC5_DECODER=m @@ -2789,6 +2790,7 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y CONFIG_MEDIA_RADIO_SUPPORT=y # CONFIG_MEDIA_SDR_SUPPORT is not set # CONFIG_MEDIA_CEC_SUPPORT is not set +# CONFIG_MEDIA_CEC_RC is not set CONFIG_MEDIA_CONTROLLER=y CONFIG_MEDIA_CONTROLLER_DVB=y CONFIG_MEDIA_CONTROLLER_REQUEST_API=y diff --git a/projects/RPi/devices/RPi4/linux/linux.arm.conf b/projects/RPi/devices/RPi4/linux/linux.arm.conf index dbaf65a562..43660375a3 100644 --- a/projects/RPi/devices/RPi4/linux/linux.arm.conf +++ b/projects/RPi/devices/RPi4/linux/linux.arm.conf @@ -3194,9 +3194,10 @@ CONFIG_REGULATOR_GPIO=y # CONFIG_REGULATOR_TPS65132 is not set # CONFIG_REGULATOR_TPS6524X is not set # CONFIG_REGULATOR_VCTRL is not set -CONFIG_RC_CORE=m +CONFIG_RC_CORE=y CONFIG_RC_MAP=m CONFIG_LIRC=y +CONFIG_BPF_LIRC_MODE2=y CONFIG_RC_DECODERS=y CONFIG_IR_NEC_DECODER=m CONFIG_IR_RC5_DECODER=m diff --git a/projects/Rockchip/devices/RK3288/linux/default/linux.arm.conf b/projects/Rockchip/devices/RK3288/linux/default/linux.arm.conf index d324008d3d..c3874d57e0 100644 --- a/projects/Rockchip/devices/RK3288/linux/default/linux.arm.conf +++ b/projects/Rockchip/devices/RK3288/linux/default/linux.arm.conf @@ -2557,9 +2557,10 @@ CONFIG_REGULATOR_TPS65910=y # CONFIG_REGULATOR_VCTRL is not set CONFIG_CEC_CORE=y CONFIG_CEC_NOTIFIER=y -CONFIG_RC_CORE=m +CONFIG_RC_CORE=y CONFIG_RC_MAP=m CONFIG_LIRC=y +CONFIG_BPF_LIRC_MODE2=y CONFIG_RC_DECODERS=y CONFIG_IR_NEC_DECODER=m CONFIG_IR_RC5_DECODER=m @@ -2603,6 +2604,7 @@ CONFIG_MEDIA_CAMERA_SUPPORT=y # CONFIG_MEDIA_RADIO_SUPPORT is not set # CONFIG_MEDIA_SDR_SUPPORT is not set CONFIG_MEDIA_CEC_SUPPORT=y +# CONFIG_MEDIA_CEC_RC is not set CONFIG_MEDIA_CONTROLLER=y CONFIG_MEDIA_CONTROLLER_REQUEST_API=y CONFIG_VIDEO_DEV=m diff --git a/projects/Rockchip/devices/RK3328/linux/default/linux.aarch64.conf b/projects/Rockchip/devices/RK3328/linux/default/linux.aarch64.conf index c423abb67f..78a01dea59 100644 --- a/projects/Rockchip/devices/RK3328/linux/default/linux.aarch64.conf +++ b/projects/Rockchip/devices/RK3328/linux/default/linux.aarch64.conf @@ -2662,9 +2662,10 @@ CONFIG_REGULATOR_RK808=y # CONFIG_REGULATOR_VCTRL is not set CONFIG_CEC_CORE=y CONFIG_CEC_NOTIFIER=y -CONFIG_RC_CORE=m +CONFIG_RC_CORE=y CONFIG_RC_MAP=m CONFIG_LIRC=y +CONFIG_BPF_LIRC_MODE2=y CONFIG_RC_DECODERS=y CONFIG_IR_NEC_DECODER=m CONFIG_IR_RC5_DECODER=m @@ -2708,6 +2709,7 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y # CONFIG_MEDIA_RADIO_SUPPORT is not set # CONFIG_MEDIA_SDR_SUPPORT is not set CONFIG_MEDIA_CEC_SUPPORT=y +# CONFIG_MEDIA_CEC_RC is not set CONFIG_MEDIA_CONTROLLER=y # CONFIG_MEDIA_CONTROLLER_DVB is not set CONFIG_MEDIA_CONTROLLER_REQUEST_API=y diff --git a/projects/Rockchip/devices/RK3399/linux/default/linux.aarch64.conf b/projects/Rockchip/devices/RK3399/linux/default/linux.aarch64.conf index 65bae0ddf4..e8506e0e58 100644 --- a/projects/Rockchip/devices/RK3399/linux/default/linux.aarch64.conf +++ b/projects/Rockchip/devices/RK3399/linux/default/linux.aarch64.conf @@ -2662,9 +2662,10 @@ CONFIG_REGULATOR_RK808=y # CONFIG_REGULATOR_VCTRL is not set CONFIG_CEC_CORE=y CONFIG_CEC_NOTIFIER=y -CONFIG_RC_CORE=m +CONFIG_RC_CORE=y CONFIG_RC_MAP=m CONFIG_LIRC=y +CONFIG_BPF_LIRC_MODE2=y CONFIG_RC_DECODERS=y CONFIG_IR_NEC_DECODER=m CONFIG_IR_RC5_DECODER=m @@ -2708,6 +2709,7 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y # CONFIG_MEDIA_RADIO_SUPPORT is not set # CONFIG_MEDIA_SDR_SUPPORT is not set CONFIG_MEDIA_CEC_SUPPORT=y +# CONFIG_MEDIA_CEC_RC is not set CONFIG_MEDIA_CONTROLLER=y # CONFIG_MEDIA_CONTROLLER_DVB is not set CONFIG_MEDIA_CONTROLLER_REQUEST_API=y From 17201f300bf5421cb151dba224b35071718f82bb Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 9 Feb 2020 01:35:09 +0100 Subject: [PATCH 3/9] v4l-utils: enable autoreconf, disable doxygen docs generation autoreconf trips over the newer ax_proc_doxygen.m4 file from our autoconf-archive which is not compatible with the ancient version used in v4l-utils, just disable it as we don't want to build docs anyways. Signed-off-by: Matthias Reichl --- packages/sysutils/v4l-utils/package.mk | 4 ++- ...tils-001-disable-doxygen-in-automake.patch | 26 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 packages/sysutils/v4l-utils/patches/v4l-utils-001-disable-doxygen-in-automake.patch diff --git a/packages/sysutils/v4l-utils/package.mk b/packages/sysutils/v4l-utils/package.mk index 2b8414ee95..d646c4f200 100644 --- a/packages/sysutils/v4l-utils/package.mk +++ b/packages/sysutils/v4l-utils/package.mk @@ -12,11 +12,13 @@ PKG_SITE="http://linuxtv.org/" PKG_URL="http://linuxtv.org/downloads/v4l-utils/$PKG_NAME-$PKG_VERSION.tar.bz2" PKG_DEPENDS_TARGET="toolchain alsa-lib systemd" PKG_LONGDESC="Linux V4L2 and DVB API utilities and v4l libraries (libv4l)." +PKG_TOOLCHAIN="autotools" PKG_CONFIGURE_OPTS_TARGET="--without-jpeg \ --disable-bpf \ --enable-static \ - --disable-shared" + --disable-shared \ + --disable-doxygen-doc" pre_configure_target() { # cec-ctl fails to build in subdirs diff --git a/packages/sysutils/v4l-utils/patches/v4l-utils-001-disable-doxygen-in-automake.patch b/packages/sysutils/v4l-utils/patches/v4l-utils-001-disable-doxygen-in-automake.patch new file mode 100644 index 0000000000..c67b92d160 --- /dev/null +++ b/packages/sysutils/v4l-utils/patches/v4l-utils-001-disable-doxygen-in-automake.patch @@ -0,0 +1,26 @@ +From 137dd2edea4d6c70b10caebebed4778716070ed2 Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Sun, 9 Feb 2020 00:16:29 +0100 +Subject: [PATCH] don't include doxygen autotools include + +Signed-off-by: Matthias Reichl +--- + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index d20dfe0f..05dc8c1a 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -11,7 +11,7 @@ EXTRA_DIST = android-config.h bootstrap.sh doxygen_libdvbv5.cfg include COPYING. + COPYING.libdvbv5 README.libv4l README.lib-multi-threading TODO.libdvbv5 \ + doc/libdvbv5-index.doc + +-include $(top_srcdir)/aminclude.am ++# include $(top_srcdir)/aminclude.am + + # custom targets + +-- +2.20.1 + From 9b7ca96f7ecc4a444c2472366bdefdceeac3b897 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 9 Feb 2020 01:38:09 +0100 Subject: [PATCH 4/9] v4l-utils: enable bpf support in ir-keytable note: building bpf decoders is disabled as that would require clang in the toolchain. Signed-off-by: Matthias Reichl --- .../config/rc_keymaps/protocols/README | 3 ++ packages/sysutils/v4l-utils/package.mk | 4 +- ...l-utils-002-enable-bpf-without-clang.patch | 40 +++++++++++++++++++ 3 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 packages/sysutils/v4l-utils/config/rc_keymaps/protocols/README create mode 100644 packages/sysutils/v4l-utils/patches/v4l-utils-002-enable-bpf-without-clang.patch diff --git a/packages/sysutils/v4l-utils/config/rc_keymaps/protocols/README b/packages/sysutils/v4l-utils/config/rc_keymaps/protocols/README new file mode 100644 index 0000000000..ee1f0a3b50 --- /dev/null +++ b/packages/sysutils/v4l-utils/config/rc_keymaps/protocols/README @@ -0,0 +1,3 @@ +BPF protocol decoders user config dir + +put your BPF protocol decoders for ir-keytable in this directory diff --git a/packages/sysutils/v4l-utils/package.mk b/packages/sysutils/v4l-utils/package.mk index d646c4f200..8636769fad 100644 --- a/packages/sysutils/v4l-utils/package.mk +++ b/packages/sysutils/v4l-utils/package.mk @@ -10,12 +10,12 @@ PKG_SHA256="6cb60d822eeed20486a03cc23e0fc65956fbc1e85e0c1a7477f68bbd9802880d" PKG_LICENSE="GPL" PKG_SITE="http://linuxtv.org/" PKG_URL="http://linuxtv.org/downloads/v4l-utils/$PKG_NAME-$PKG_VERSION.tar.bz2" -PKG_DEPENDS_TARGET="toolchain alsa-lib systemd" +PKG_DEPENDS_TARGET="toolchain alsa-lib systemd elfutils" PKG_LONGDESC="Linux V4L2 and DVB API utilities and v4l libraries (libv4l)." PKG_TOOLCHAIN="autotools" PKG_CONFIGURE_OPTS_TARGET="--without-jpeg \ - --disable-bpf \ + --enable-bpf \ --enable-static \ --disable-shared \ --disable-doxygen-doc" diff --git a/packages/sysutils/v4l-utils/patches/v4l-utils-002-enable-bpf-without-clang.patch b/packages/sysutils/v4l-utils/patches/v4l-utils-002-enable-bpf-without-clang.patch new file mode 100644 index 0000000000..37e156dd17 --- /dev/null +++ b/packages/sysutils/v4l-utils/patches/v4l-utils-002-enable-bpf-without-clang.patch @@ -0,0 +1,40 @@ +From 6aafb490b7c352b04f036ea6f9cbc33be8383ddf Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Sat, 8 Feb 2020 21:42:06 +0100 +Subject: [PATCH] disable bpf decoder build and drop bpf dependency on clang + +Signed-off-by: Matthias Reichl +--- + configure.ac | 2 +- + utils/keytable/Makefile.am | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 6ff26093..1efa7879 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -508,7 +508,7 @@ AM_CONDITIONAL([WITH_V4L2_CTL_LIBV4L], [test x${enable_v4l2_ctl_libv4l} != xno]) + AM_CONDITIONAL([WITH_V4L2_CTL_STREAM_TO], [test x${enable_v4l2_ctl_stream_to} != xno]) + AM_CONDITIONAL([WITH_V4L2_COMPLIANCE], [test x$ac_cv_func_fork = xyes]) + AM_CONDITIONAL([WITH_V4L2_COMPLIANCE_LIBV4L], [test x$ac_cv_func_fork = xyes -a x${enable_v4l2_compliance_libv4l} != xno]) +-AM_CONDITIONAL([WITH_BPF], [test x$enable_bpf != xno -a x$libelf_pkgconfig = xyes -a x$CLANG = xclang]) ++AM_CONDITIONAL([WITH_BPF], [test x$enable_bpf != xno -a x$libelf_pkgconfig = xyes]) + + # append -static to libtool compile and link command to enforce static libs + AS_IF([test x$enable_libdvbv5 = xno], [AC_SUBST([ENFORCE_LIBDVBV5_STATIC], ["-static"])]) +diff --git a/utils/keytable/Makefile.am b/utils/keytable/Makefile.am +index d7b30e2c..a2c8df8d 100644 +--- a/utils/keytable/Makefile.am ++++ b/utils/keytable/Makefile.am +@@ -15,7 +15,7 @@ ir_keytable_LDFLAGS = $(ARGP_LIBS) + + if WITH_BPF + ir_keytable_LDFLAGS += $(LIBELF_LIBS) +-SUBDIRS = bpf_protocols ++# SUBDIRS = bpf_protocols + endif + + EXTRA_DIST = 70-infrared.rules rc_keymaps rc_keymaps_userspace gen_input_events.pl gen_keytables.pl ir-keytable.1 rc_maps.cfg rc_keymap.5 +-- +2.20.1 + From 362359c8975ea722a6efad9c9170c5f2341dd233 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 9 Feb 2020 01:50:31 +0100 Subject: [PATCH 5/9] v4l-utils: include lircd2toml.py in image Signed-off-by: Matthias Reichl --- packages/sysutils/v4l-utils/package.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/sysutils/v4l-utils/package.mk b/packages/sysutils/v4l-utils/package.mk index 8636769fad..144b877b8e 100644 --- a/packages/sysutils/v4l-utils/package.mk +++ b/packages/sysutils/v4l-utils/package.mk @@ -45,6 +45,7 @@ makeinstall_target() { fi make install DESTDIR=$INSTALL PREFIX=/usr -C utils/dvb make install DESTDIR=$INSTALL PREFIX=/usr -C utils/v4l2-ctl + cp ${PKG_BUILD}/contrib/lircd2toml.py ${INSTALL}/usr/bin/ } create_multi_keymap() { From a4b25f474b1232540f2ea7632954ebc8292362fb Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 9 Feb 2020 11:00:50 +0100 Subject: [PATCH 6/9] v4l-utils: backport fix for misleading warning message Signed-off-by: Matthias Reichl --- ...s-100-backport-incorrect-warning-fix.patch | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 packages/sysutils/v4l-utils/patches/v4l-utils-100-backport-incorrect-warning-fix.patch diff --git a/packages/sysutils/v4l-utils/patches/v4l-utils-100-backport-incorrect-warning-fix.patch b/packages/sysutils/v4l-utils/patches/v4l-utils-100-backport-incorrect-warning-fix.patch new file mode 100644 index 0000000000..d6eca6c324 --- /dev/null +++ b/packages/sysutils/v4l-utils/patches/v4l-utils-100-backport-incorrect-warning-fix.patch @@ -0,0 +1,140 @@ +From 6013e359b70236f36d4f395d845ecc766c2230ba Mon Sep 17 00:00:00 2001 +From: Sean Young +Date: Mon, 14 Oct 2019 11:46:31 +0100 +Subject: [PATCH] keytable: do not warn if keymap not found in + IR_KEYTABLE_USER_DIR + +The following error is logged even though imon_rsc.toml is found at +/lib/udev/rc_keymaps/imon_rsc.toml: + +$ ir-keytable -a /etc/rc_maps.cfg +/etc/rc_keymaps/imon_rsc.toml: error: cannot open: No such file or directory + +Signed-off-by: Sean Young +--- + utils/keytable/keytable.c | 81 +++++++++++++++++++++++---------------- + 1 file changed, 48 insertions(+), 33 deletions(-) + +diff --git a/utils/keytable/keytable.c b/utils/keytable/keytable.c +index 6cb0217a..e2a1bfe1 100644 +--- a/utils/keytable/keytable.c ++++ b/utils/keytable/keytable.c +@@ -1954,6 +1954,38 @@ int bpf_param(struct protocol_param *protocol_param, const char *name, int *val) + return -ENOENT; + } + ++char* keymap_to_filename(const char *fname) ++{ ++ struct stat st; ++ char *p; ++ ++ if (fname[0] == '/' || ((fname[0] == '.') && strchr(fname, '/'))) ++ return strdup(fname); ++ ++ if (asprintf(&p, IR_KEYTABLE_USER_DIR "/%s", fname) < 0) { ++ fprintf(stderr, _("asprintf failed: %m\n")); ++ return NULL; ++ } ++ ++ if (!stat(p, &st)) ++ return p; ++ ++ free(p); ++ if (asprintf(&p, IR_KEYTABLE_SYSTEM_DIR "/%s", fname) < 0) { ++ fprintf(stderr, _("asprintf failed: %m\n")); ++ return NULL; ++ } ++ ++ if (!stat(p, &st)) ++ return p; ++ ++ free(p); ++ ++ fprintf(stderr, _("error: Unable to find keymap %s in %s or %s\n"), fname, IR_KEYTABLE_USER_DIR, IR_KEYTABLE_SYSTEM_DIR); ++ ++ return NULL; ++} ++ + int main(int argc, char *argv[]) + { + int dev_from_class = 0, write_cnt; +@@ -2003,6 +2035,7 @@ int main(int argc, char *argv[]) + + if (cfg.next) { + struct cfgfile *cur; ++ struct keymap *map; + char *fname; + int rc; + int matches = 0; +@@ -2014,53 +2047,35 @@ int main(int argc, char *argv[]) + continue; + + if (debug) +- fprintf(stderr, _("Table for %s, %s is on %s file.\n"), ++ fprintf(stderr, _("Keymap for %s, %s is on %s file.\n"), + rc_dev.drv_name, rc_dev.keytable_name, + cur->fname); + +- if (cur->fname[0] == '/' || ((cur->fname[0] == '.') && strchr(cur->fname, '/'))) { +- struct keymap *map; +- fname = cur->fname; +- rc = parse_keymap(fname, &map, debug); +- if (rc < 0) { +- fprintf(stderr, _("Can't load %s table\n"), fname); +- return -1; +- } +- add_keymap(map, fname); +- free_keymap(map); +- } else { +- struct keymap *map; +- fname = malloc(strlen(cur->fname) + strlen(IR_KEYTABLE_USER_DIR) + 2); +- strcpy(fname, IR_KEYTABLE_USER_DIR); +- strcat(fname, "/"); +- strcat(fname, cur->fname); +- rc = parse_keymap(fname, &map, debug); +- if (rc != 0) { +- fname = malloc(strlen(cur->fname) + strlen(IR_KEYTABLE_SYSTEM_DIR) + 2); +- strcpy(fname, IR_KEYTABLE_SYSTEM_DIR); +- strcat(fname, "/"); +- strcat(fname, cur->fname); +- rc = parse_keymap(fname, &map, debug); +- } +- if (rc != 0) { +- fprintf(stderr, _("Can't load %s table from %s or %s\n"), cur->fname, IR_KEYTABLE_USER_DIR, IR_KEYTABLE_SYSTEM_DIR); +- return -1; +- } ++ fname = keymap_to_filename(cur->fname); ++ if (!fname) ++ return -1; + +- add_keymap(map, fname); +- free_keymap(map); ++ rc = parse_keymap(fname, &map, debug); ++ if (rc < 0) { ++ fprintf(stderr, _("Can't load %s keymap\n"), fname); ++ free(fname); ++ return -1; + } ++ add_keymap(map, fname); ++ free_keymap(map); + if (!keytable) { +- fprintf(stderr, _("Empty table %s\n"), fname); ++ fprintf(stderr, _("Empty keymap %s\n"), fname); ++ free(fname); + return -1; + } ++ free(fname); + clear = 1; + matches++; + } + + if (!matches) { + if (debug) +- fprintf(stderr, _("Table for %s, %s not found. Keep as-is\n"), ++ fprintf(stderr, _("Keymap for %s, %s not found. Keep as-is\n"), + rc_dev.drv_name, rc_dev.keytable_name); + return 0; + } +-- +2.20.1 + From 2416a5109eb0e52e152b8937e09e36c941acdf57 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 9 Feb 2020 18:42:35 +0100 Subject: [PATCH 7/9] ir-bpf-decoders: add new package with precompiled IR BPF decoder binaries Note: when bumping v4l-utils the BPF decoders in util/keytable/bpf_protocols should be locally rebuilt (requires clang and libelf-dev installed) and this package bumped with updated versions. Signed-off-by: Matthias Reichl --- packages/sysutils/ir-bpf-decoders/package.mk | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 packages/sysutils/ir-bpf-decoders/package.mk diff --git a/packages/sysutils/ir-bpf-decoders/package.mk b/packages/sysutils/ir-bpf-decoders/package.mk new file mode 100644 index 0000000000..551ac04afa --- /dev/null +++ b/packages/sysutils/ir-bpf-decoders/package.mk @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2020-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="ir-bpf-decoders" +PKG_VERSION="v4l-utils-1.18.0" +PKG_SHA256="7d8777708ba861dcf46e26d5c04dc9f6e6181b4cb6a82cf836d1e015818a76e9" +PKG_LICENSE="GPLv2+" +PKG_SITE="https://linuxtv.org/" +PKG_URL="https://github.com/LibreELEC/ir-bpf-decoders/archive/$PKG_VERSION.tar.gz" +PKG_LONGDESC="ir-bpf-decoders: precompiled binaries of IR BPF decoders from v4l-utils utils/keytable/bpf_protocols" +PKG_TOOLCHAIN="manual" + +makeinstall_target() { + mkdir -p $INSTALL/usr/lib/udev/rc_keymaps/protocols + cp $PKG_BUILD/*.o $INSTALL/usr/lib/udev/rc_keymaps/protocols +} From ee53cf2834819991920382d75ed16573f5b9448f Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 9 Feb 2020 18:44:59 +0100 Subject: [PATCH 8/9] v4l-utils: include precompiled BPF decoders via ir-bpf-decoders package Signed-off-by: Matthias Reichl --- packages/sysutils/v4l-utils/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/v4l-utils/package.mk b/packages/sysutils/v4l-utils/package.mk index 144b877b8e..d9cb9de931 100644 --- a/packages/sysutils/v4l-utils/package.mk +++ b/packages/sysutils/v4l-utils/package.mk @@ -10,7 +10,7 @@ PKG_SHA256="6cb60d822eeed20486a03cc23e0fc65956fbc1e85e0c1a7477f68bbd9802880d" PKG_LICENSE="GPL" PKG_SITE="http://linuxtv.org/" PKG_URL="http://linuxtv.org/downloads/v4l-utils/$PKG_NAME-$PKG_VERSION.tar.bz2" -PKG_DEPENDS_TARGET="toolchain alsa-lib systemd elfutils" +PKG_DEPENDS_TARGET="toolchain alsa-lib systemd elfutils ir-bpf-decoders" PKG_LONGDESC="Linux V4L2 and DVB API utilities and v4l libraries (libv4l)." PKG_TOOLCHAIN="autotools" From 555694769db1fa762b446550a22ed60e9679a5d1 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 9 Feb 2020 20:59:27 +0100 Subject: [PATCH 9/9] v4l-utils: backport lircd2toml.py improvements Signed-off-by: Matthias Reichl --- ...101-backport-lircd2toml-improvements.patch | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 packages/sysutils/v4l-utils/patches/v4l-utils-101-backport-lircd2toml-improvements.patch diff --git a/packages/sysutils/v4l-utils/patches/v4l-utils-101-backport-lircd2toml-improvements.patch b/packages/sysutils/v4l-utils/patches/v4l-utils-101-backport-lircd2toml-improvements.patch new file mode 100644 index 0000000000..c946ae3218 --- /dev/null +++ b/packages/sysutils/v4l-utils/patches/v4l-utils-101-backport-lircd2toml-improvements.patch @@ -0,0 +1,38 @@ +From 2e1c2d2b2d69596aea953e241edb3d82764db718 Mon Sep 17 00:00:00 2001 +From: Sean Young +Date: Tue, 31 Dec 2019 18:24:05 +0000 +Subject: [PATCH] lircd2toml: warn when scancode has duplicate definitions + +In lircd.conf files, it is possible that the same scancode has multiple +key definitions. In our rc keymap toml format, one scancode can only +have one key definition. + +Possibly we should allow alternate names for scancode for transmitting; +however, as a first step, we should warn if there are multiple +definitions for the same scancode. + +Signed-off-by: Sean Young +--- + contrib/lircd2toml.py | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/contrib/lircd2toml.py b/contrib/lircd2toml.py +index 54ea12fc..ba4b14ec 100755 +--- a/contrib/lircd2toml.py ++++ b/contrib/lircd2toml.py +@@ -131,7 +131,11 @@ class LircdParser: + for s in a: + if s[0] == '#': + break +- codes[int(s, 0)] = k ++ scancode = int(s, 0) ++ if scancode in codes: ++ self.warning("scancode 0x{:x} has duplicate definition {} and {}".format(scancode, codes[scancode], k)) ++ ++ codes[scancode] = k + + def read_raw_codes(self): + raw_codes = [] +-- +2.20.1 +