Re: [OE-core] [PATCH 3/7] lib/oe/patch: Make extractPatches() not extract ignored commits

2024-02-17 Thread Richard Purdie
On Fri, 2024-02-16 at 19:59 +0100, Peter Kjellerstedt wrote:
> If a commit is marked with "%% ignore" it means it is used by devtool to
> keep track of changes to the source code that are not the result of
> running do_patch(). These changes need to actually be ignored when
> extracting the patches as they typically make no sense as actual patches
> in a recipe.
> 
> This also adds a new test for oe-selftest that verifies that there are
> no patches generated from ignored commits.
> 
> Signed-off-by: Peter Kjellerstedt 
[...]

> diff --git a/meta-selftest/recipes-extended/sysdig/sysdig-selftest_0.28.0.bb 
> b/meta-selftest/recipes-extended/sysdig/sysdig-selftest_0.28.0.bb
> new file mode 100644
> index 00..e114f465a0
> --- /dev/null
> +++ b/meta-selftest/recipes-extended/sysdig/sysdig-selftest_0.28.0.bb
> @@ -0,0 +1,64 @@
> +SUMMARY = "A New System Troubleshooting Tool Built for the Way You Work"
> +DESCRIPTION = "Sysdig is open source, system-level exploration: capture \
> +system state and activity from a running Linux instance, then save, \
> +filter and analyze."
> +HOMEPAGE = "http://www.sysdig.org/;
> +LICENSE = "Apache-2.0 & (MIT | GPL-2.0-only)"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=f8fee3d59797546cffab04f3b88b2d44"
> +
> +inherit cmake pkgconfig
> +
> +#OECMAKE_GENERATOR = "Unix Makefiles"
> +JIT ?= "jit"
> +JIT:mipsarchn32 = ""
> +JIT:mipsarchn64 = ""
> +JIT:riscv64 = ""
> +JIT:riscv32 = ""
> +JIT:powerpc = ""
> +JIT:powerpc64le = ""
> +JIT:powerpc64 = ""
> +
> +#DEPENDS += "libb64 lua${JIT} zlib c-ares grpc-native grpc curl ncurses 
> jsoncpp \
> +#    tbb jq openssl elfutils protobuf protobuf-native jq-native 
> valijson"
> +RDEPENDS:${PN} = "bash"
> +
> +SRC_URI = 
> "git://github.com/draios/sysdig.git;branch=dev;protocol=https;name=sysdig \
> +   
> git://github.com/falcosecurity/libs;protocol=https;branch=master;name=falco;subdir=git/falcosecurity-libs
>  \
> +   
> file://0055-Add-cstdint-for-uintXX_t-types.patch;patchdir=./falcosecurity-libs
>  \
> +   file://0099-cmake-Pass-PROBE_NAME-via-CFLAGS.patch \
> +   "
> +SRCREV_sysdig = "4fb6288275f567f63515df0ff0a6518043ecfa9b"
> +SRCREV_falco= "caa0e4d0044fdaaebab086592a97f0c7f32aeaa9"
> +
> +SRCREV_FORMAT = "sysdig_falco"
> +
> +S = "${WORKDIR}/git"
> +
> +EXTRA_OECMAKE = "\
> +    -DBUILD_DRIVER=OFF \
> +    -DMINIMAL_BUILD=ON \
> +    -DUSE_BUNDLED_DEPS=OFF \
> +    -DCREATE_TEST_TARGETS=OFF \
> +    -DDIR_ETC=${sysconfdir} \
> +    -DLUA_INCLUDE_DIR=${STAGING_INCDIR}/luajit-2.1 \
> +    -DFALCOSECURITY_LIBS_SOURCE_DIR=${S}/falcosecurity-libs \
> +    -DVALIJSON_INCLUDE=${STAGING_INCDIR}/valijson \
> +"
> +
> +#CMAKE_VERBOSE = "VERBOSE=1"
> +
> +FILES:${PN} += " \
> +    ${DIR_ETC}/* \
> +    ${datadir}/zsh/* \
> +    ${prefix}/src/*  \
> +"
> +# Use getaddrinfo_a is a GNU extension in libsinsp
> +# It should be fixed in sysdig, until then disable
> +# on musl
> +# Something like this 
> https://code.videolan.org/ePirat/vlc/-/commit/01fd9fe4c7f6c5558f7345f38abf0152e17853ab
>   is needed to fix it
> +COMPATIBLE_HOST:libc-musl = "null"
> +COMPATIBLE_HOST:mips = "null"
> +COMPATIBLE_HOST:riscv64 = "null"
> +COMPATIBLE_HOST:riscv32 = "null"
> +COMPATIBLE_HOST:powerpc = "null"
> +COMPATIBLE_HOST:powerpc64le = "null"


This needs an EXCLUDE_FROM_WORLD = "1" else we see:

https://autobuilder.yoctoproject.org/typhoon/#/builders/117/builds/4386/steps/13/logs/stdio

It took me far too long to realise what was going wrong and where that recipe 
came from :/

Cheers,

Richard


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195812): 
https://lists.openembedded.org/g/openembedded-core/message/195812
Mute This Topic: https://lists.openembedded.org/mt/104398929/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH 3/7] lib/oe/patch: Make extractPatches() not extract ignored commits

2024-02-16 Thread Peter Kjellerstedt
If a commit is marked with "%% ignore" it means it is used by devtool to
keep track of changes to the source code that are not the result of
running do_patch(). These changes need to actually be ignored when
extracting the patches as they typically make no sense as actual patches
in a recipe.

This also adds a new test for oe-selftest that verifies that there are
no patches generated from ignored commits.

Signed-off-by: Peter Kjellerstedt 
---
 .../0055-Add-cstdint-for-uintXX_t-types.patch | 38 +++
 ...099-cmake-Pass-PROBE_NAME-via-CFLAGS.patch | 29 +
 .../sysdig/sysdig-selftest_0.28.0.bb  | 64 +++
 meta/lib/oe/patch.py  | 16 ++---
 meta/lib/oeqa/selftest/cases/devtool.py   | 46 +
 5 files changed, 185 insertions(+), 8 deletions(-)
 create mode 100644 
meta-selftest/recipes-extended/sysdig/sysdig-selftest/0055-Add-cstdint-for-uintXX_t-types.patch
 create mode 100644 
meta-selftest/recipes-extended/sysdig/sysdig-selftest/0099-cmake-Pass-PROBE_NAME-via-CFLAGS.patch
 create mode 100644 
meta-selftest/recipes-extended/sysdig/sysdig-selftest_0.28.0.bb

diff --git 
a/meta-selftest/recipes-extended/sysdig/sysdig-selftest/0055-Add-cstdint-for-uintXX_t-types.patch
 
b/meta-selftest/recipes-extended/sysdig/sysdig-selftest/0055-Add-cstdint-for-uintXX_t-types.patch
new file mode 100644
index 00..e564958dad
--- /dev/null
+++ 
b/meta-selftest/recipes-extended/sysdig/sysdig-selftest/0055-Add-cstdint-for-uintXX_t-types.patch
@@ -0,0 +1,38 @@
+From 3d076ea588eb3c7f334133b4c31172a14beadf5b Mon Sep 17 00:00:00 2001
+From: Khem Raj 
+Date: Thu, 2 Feb 2023 20:18:27 -0800
+Subject: [PATCH] Add  for uintXX_t types
+
+gcc 13 moved some includes around and as a result  is no
+longer transitively included [1]. Explicitly include it
+for uintXX_t.
+
+[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
+
+Upstream-Status: Submitted [https://github.com/falcosecurity/libs/pull/862]
+Signed-off-by: Khem Raj 
+---
+ userspace/libsinsp/filter/parser.h | 1 +
+ userspace/libsinsp/filter_value.h  | 1 +
+ 2 files changed, 2 insertions(+)
+
+--- a/userspace/libsinsp/filter/parser.h
 b/userspace/libsinsp/filter/parser.h
+@@ -18,6 +18,7 @@ limitations under the License.
+ #pragma once
+ 
+ #include "ast.h"
++#include 
+ 
+ //
+ // Context-free Grammar for Sinsp Filters
+--- a/userspace/libsinsp/filter_value.h
 b/userspace/libsinsp/filter_value.h
+@@ -18,6 +18,7 @@ limitations under the License.
+ #pragma once
+ 
+ #include 
++#include 
+ #include 
+ 
+ // Used for CO_IN/CO_PMATCH filterchecks using PT_CHARBUFs to allow
diff --git 
a/meta-selftest/recipes-extended/sysdig/sysdig-selftest/0099-cmake-Pass-PROBE_NAME-via-CFLAGS.patch
 
b/meta-selftest/recipes-extended/sysdig/sysdig-selftest/0099-cmake-Pass-PROBE_NAME-via-CFLAGS.patch
new file mode 100644
index 00..903ccdf36a
--- /dev/null
+++ 
b/meta-selftest/recipes-extended/sysdig/sysdig-selftest/0099-cmake-Pass-PROBE_NAME-via-CFLAGS.patch
@@ -0,0 +1,29 @@
+From ed8969a233adb6bf701de96d0fd0570e5ddcc787 Mon Sep 17 00:00:00 2001
+From: Khem Raj 
+Date: Mon, 21 Mar 2022 19:35:48 -0700
+Subject: [PATCH] cmake: Pass PROBE_NAME via CFLAGS
+
+This helps compliation of driver code where its calling modprobe on the
+given kernel module via system() API
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj 
+---
+ CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7dceb7ae..e156c36f 100644
+--- a/CMakeLists.txt
 b/CMakeLists.txt
+@@ -149,6 +149,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+   if(NOT DEFINED PROBE_NAME)
+   set(PROBE_NAME "scap")
+   endif()
++  add_definitions(-DPROBE_NAME="${PROBE_NAME}")
+ 
+   set(DRIVERS_REPO "https://download.sysdig.com/scap-drivers;)
+   
+-- 
+2.35.1
+
diff --git a/meta-selftest/recipes-extended/sysdig/sysdig-selftest_0.28.0.bb 
b/meta-selftest/recipes-extended/sysdig/sysdig-selftest_0.28.0.bb
new file mode 100644
index 00..e114f465a0
--- /dev/null
+++ b/meta-selftest/recipes-extended/sysdig/sysdig-selftest_0.28.0.bb
@@ -0,0 +1,64 @@
+SUMMARY = "A New System Troubleshooting Tool Built for the Way You Work"
+DESCRIPTION = "Sysdig is open source, system-level exploration: capture \
+system state and activity from a running Linux instance, then save, \
+filter and analyze."
+HOMEPAGE = "http://www.sysdig.org/;
+LICENSE = "Apache-2.0 & (MIT | GPL-2.0-only)"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f8fee3d59797546cffab04f3b88b2d44"
+
+inherit cmake pkgconfig
+
+#OECMAKE_GENERATOR = "Unix Makefiles"
+JIT ?= "jit"
+JIT:mipsarchn32 = ""
+JIT:mipsarchn64 = ""
+JIT:riscv64 = ""
+JIT:riscv32 = ""
+JIT:powerpc = ""
+JIT:powerpc64le = ""
+JIT:powerpc64 = ""
+
+#DEPENDS += "libb64 lua${JIT} zlib c-ares grpc-native grpc curl ncurses 
jsoncpp \
+#tbb jq openssl elfutils protobuf protobuf-native jq-native 
valijson"
+RDEPENDS:${PN} = "bash"
+
+SRC_URI =