diff options
author | Maxim Cournoyer <[email protected]> | 2025-01-22 22:08:39 +0900 |
---|---|---|
committer | Maxim Cournoyer <[email protected]> | 2025-02-13 00:07:21 +0900 |
commit | 17587940c2749313e5cbdc3b402a210eaaea9b1d (patch) | |
tree | 37e33d1ea564ebefa99038214b0dfee417301ab8 | |
parent | 575cb765e28f620edbfdbdeaadd1351b28233257 (diff) |
gnu: falcosecurity-libs: Update to 0.20.0.
* gnu/packages/linux.scm (falcosecurity-libs): Update to 0.20.0.
[source]: Update patches and combine into a single one.
[native-inputs]: Replace clang (13) with clang-18.
[inputs]: Move libbpf and libelf to...
[propagated-inputs]: ... here.
* gnu/packages/patches/falcosecurity-libs-shared-build.patch: New file.
* gnu/packages/patches/falcosecurity-libs-install-pman.patch
* gnu/packages/patches/falcosecurity-libs-libscap-pc.patch
* gnu/packages/patches/falcosecurity-libs-libsinsp-pkg-config.patch
* gnu/packages/patches/falcosecurity-libs-pkg-config.patch: Delete files.
* gnu/local.mk (dist_patch_DATA): Update accordingly.
Change-Id: I58b5d207da27ab4f52556e5c804d8e545e7e3974
-rw-r--r-- | gnu/local.mk | 6 | ||||
-rw-r--r-- | gnu/packages/linux.scm | 33 | ||||
-rw-r--r-- | gnu/packages/patches/falcosecurity-libs-install-pman.patch | 14 | ||||
-rw-r--r-- | gnu/packages/patches/falcosecurity-libs-libscap-pc.patch | 16 | ||||
-rw-r--r-- | gnu/packages/patches/falcosecurity-libs-libsinsp-pkg-config.patch | 155 | ||||
-rw-r--r-- | gnu/packages/patches/falcosecurity-libs-pkg-config.patch | 23 | ||||
-rw-r--r-- | gnu/packages/patches/falcosecurity-libs-shared-build.patch | 311 | ||||
-rw-r--r-- | gnu/packages/patches/falcosecurity-libs-shared-library-fix.patch | 50 |
8 files changed, 327 insertions, 281 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 9e192f1e4f..66ad9accbd 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1255,11 +1255,7 @@ dist_patch_DATA = \ %D%/packages/patches/fail2ban-python310-server-action.patch \ %D%/packages/patches/fail2ban-python310-server-actions.patch \ %D%/packages/patches/fail2ban-python310-server-jails.patch \ - %D%/packages/patches/falcosecurity-libs-install-pman.patch \ - %D%/packages/patches/falcosecurity-libs-libscap-pc.patch \ - %D%/packages/patches/falcosecurity-libs-pkg-config.patch \ - %D%/packages/patches/falcosecurity-libs-shared-library-fix.patch \ - %D%/packages/patches/falcosecurity-libs-libsinsp-pkg-config.patch \ + %D%/packages/patches/falcosecurity-libs-shared-build.patch \ %D%/packages/patches/farstream-gupnp.patch \ %D%/packages/patches/farstream-make.patch \ %D%/packages/patches/fastcap-mulGlobal.patch \ diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 6a7482e598..f1e0778f37 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -34,7 +34,7 @@ ;;; Copyright © 2018 Vasile Dumitrascu <[email protected]> ;;; Copyright © 2019 Tim Gesthuizen <[email protected]> ;;; Copyright © 2019 mikadoZero <[email protected]> -;;; Copyright © 2019, 2020, 2021, 2022, 2023, 2024 Maxim Cournoyer <[email protected]> +;;; Copyright © 2019-2025 Maxim Cournoyer <[email protected]> ;;; Copyright © 2019 Stefan Stefanović <[email protected]> ;;; Copyright © 2019-2022 Brice Waegeneire <[email protected]> ;;; Copyright © 2019 Kei Kebreau <[email protected]> @@ -9916,7 +9916,7 @@ set as @code{LD_PRELOAD} to override the C library file system functions.") (define-public falcosecurity-libs (package (name "falcosecurity-libs") - (version "0.16.0") + (version "0.20.0") (source (origin (method git-fetch) (uri (git-reference @@ -9925,14 +9925,10 @@ set as @code{LD_PRELOAD} to override the C library file system functions.") (file-name (git-file-name name version)) (sha256 (base32 - "1vzymzkfipb3bnjjd9m8ykzj0l94fm8mnpcxfm8mpxz3jbd8xnv9")) + "041ir9wk44v7isidwl7fzxrjvs85j637wcr7xirasd8ysxa0r4qv")) (patches (search-patches - "falcosecurity-libs-pkg-config.patch" - "falcosecurity-libs-install-pman.patch" - "falcosecurity-libs-libscap-pc.patch" - "falcosecurity-libs-shared-library-fix.patch" - "falcosecurity-libs-libsinsp-pkg-config.patch")))) + "falcosecurity-libs-shared-build.patch")))) (build-system cmake-build-system) (arguments (list @@ -9960,21 +9956,22 @@ set as @code{LD_PRELOAD} to override the C library file system functions.") (lambda _ (delete-file-recursively (string-append #$output "/src"))))))) - (native-inputs (list bpftool - clang - googletest - pkg-config - valijson)) ;header-only library + (native-inputs + (list bpftool + clang-18 ;avoid stack limit exceeded build error + googletest + pkg-config + valijson)) ;header-only library (inputs - (list elfutils - libbpf - libelf)) + (list elfutils)) (propagated-inputs - ;; The following inputs are in the 'Requires' field of libscap.pc and - ;; libsinp.pc. + ;; The following inputs are in the 'Requires' field of libscap.pc, + ;; libsinp.pc or libpman.pc. (list c-ares grpc jsoncpp + libbpf + libelf openssl protobuf uthash ;included in libscap headers diff --git a/gnu/packages/patches/falcosecurity-libs-install-pman.patch b/gnu/packages/patches/falcosecurity-libs-install-pman.patch deleted file mode 100644 index 38dcc0c4b8..0000000000 --- a/gnu/packages/patches/falcosecurity-libs-install-pman.patch +++ /dev/null @@ -1,14 +0,0 @@ -Install the pman library and its header. -Upstream status: https://github.com/falcosecurity/libs/pull/1842 - -diff --git a/userspace/libpman/CMakeLists.txt b/userspace/libpman/CMakeLists.txt -index da92e9f27..4b57365fe 100644 ---- a/userspace/libpman/CMakeLists.txt -+++ b/userspace/libpman/CMakeLists.txt -@@ -58,3 +58,6 @@ endif() - if(USE_BUNDLED_LIBBPF) - add_dependencies(pman libbpf) - endif() -+ -+install(TARGETS pman LIBRARY ARCHIVE FRAMEWORK) -+install(FILES include/libpman.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) diff --git a/gnu/packages/patches/falcosecurity-libs-libscap-pc.patch b/gnu/packages/patches/falcosecurity-libs-libscap-pc.patch deleted file mode 100644 index ff650942ff..0000000000 --- a/gnu/packages/patches/falcosecurity-libs-libscap-pc.patch +++ /dev/null @@ -1,16 +0,0 @@ -libscap: Guard against install_lib_link_libraries-NOTFOUND. -Upstream status: https://github.com/falcosecurity/libs/pull/1842 - -diff --git a/cmake/modules/libscap.cmake b/cmake/modules/libscap.cmake -index 81ad2d28d..8b6b4197e 100644 ---- a/cmake/modules/libscap.cmake -+++ b/cmake/modules/libscap.cmake -@@ -95,7 +95,7 @@ foreach(libscap_install_lib ${LIBSCAP_INSTALL_LIBS}) - list(APPEND libscap_link_libraries ${libscap_install_lib}) - get_target_property(install_lib_link_libraries ${libscap_install_lib} LINK_LIBRARIES) - foreach (install_lib_link_library ${install_lib_link_libraries}) -- if (NOT ${install_lib_link_library} IN_LIST libscap_subdir_targets) -+ if (${install_lib_link_library} AND (NOT ${install_lib_link_library} IN_LIST libscap_subdir_targets)) - if(${install_lib_link_library} MATCHES "/") - # We have a path. Convert it to -L<dir> + -l<lib>. - get_filename_component(scap_lib_dir ${install_lib_link_library} DIRECTORY) diff --git a/gnu/packages/patches/falcosecurity-libs-libsinsp-pkg-config.patch b/gnu/packages/patches/falcosecurity-libs-libsinsp-pkg-config.patch deleted file mode 100644 index b2d38e42e0..0000000000 --- a/gnu/packages/patches/falcosecurity-libs-libsinsp-pkg-config.patch +++ /dev/null @@ -1,155 +0,0 @@ -libsinsp: Refine pkg-config file generation. -Upstream status: https://github.com/falcosecurity/libs/pull/1842 - -diff --git a/userspace/libscap/libscap.pc.in b/userspace/libscap/libscap.pc.in -index c5948489f..829bcd19b 100644 ---- a/userspace/libscap/libscap.pc.in -+++ b/userspace/libscap/libscap.pc.in -@@ -1,4 +1,4 @@ --prefix=${pcfiledir}/../.. -+prefix=@CMAKE_INSTALL_PREFIX@ - libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ - includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ - -@@ -6,5 +6,6 @@ Name: libscap - Description: lib for System CAPture - Version: @FALCOSECURITY_LIBS_VERSION@ - --Libs: -L${libdir} @LIBSCAP_LINK_LIBDIRS_FLAGS@ @LIBSCAP_LINK_LIBRARIES_FLAGS@ -+Requires: zlib -+Libs: -L${libdir} -L{libdir}/@LIBS_PACKAGE_NAME@/libscap @LIBSCAP_LINK_LIBDIRS_FLAGS@ @LIBSCAP_LINK_LIBRARIES_FLAGS@ - Cflags: -I${includedir}/@LIBS_PACKAGE_NAME@/libscap -I${includedir}/@LIBS_PACKAGE_NAME@/driver -I${includedir}/@LIBS_PACKAGE_NAME@ -I@UTHASH_INCLUDE@ -diff --git a/userspace/libsinsp/CMakeLists.txt b/userspace/libsinsp/CMakeLists.txt -index 6104603e8..832f86067 100644 ---- a/userspace/libsinsp/CMakeLists.txt -+++ b/userspace/libsinsp/CMakeLists.txt -@@ -169,13 +169,9 @@ target_link_libraries(sinsp - "${RE2_LIB}" - ) - --set(SINSP_PKGCONFIG_LIBRARIES -- scap -- "${ZLIB_LIB}" -- "${CURL_LIBRARIES}" -- "${JSONCPP_LIB}" -- "${RE2_LIB}" --) -+set(SINSP_PKGCONFIG_LIBRARIES) -+set(SINSP_PKGCONFIG_REQUIRES jsoncpp) -+set(SINSP_PKGCONFIG_REQUIRES_PRIVATE libcurl re2) - - if(NOT EMSCRIPTEN) - target_link_libraries(sinsp -@@ -184,7 +180,8 @@ if(NOT EMSCRIPTEN) - PRIVATE - "${TBB_LIB}" - ) -- list(APPEND SINSP_PKGCONFIG_LIBRARIES "${CARES_LIB}") -+ list(APPEND SINSP_PKGCONFIG_REQUIRES libcares) -+ list(APPEND SINSP_PKGCONFIG_REQUIRES_PRIVATE tbb) - endif() - - if(USE_BUNDLED_VALIJSON) -@@ -248,14 +245,12 @@ if(NOT WIN32) - "${PROTOBUF_LIB}" - "${CARES_LIB}" - ) -- list(APPEND SINSP_PKGCONFIG_LIBRARIES -- "${GRPC_LIBRARIES}" -- "${GRPCPP_LIB}" -- "${GRPC_LIB}" -- "${GPR_LIB}" -- "${PROTOBUF_LIB}" -- "${CARES_LIB}" -- ) -+ list(APPEND SINSP_PKGCONFIG_REQUIRES -+ gpr -+ grpc -+ grpc++ -+ protobuf -+ libcares) - - if(NOT MUSL_OPTIMIZED_BUILD) - target_link_libraries(sinsp INTERFACE rt anl) -@@ -269,7 +264,7 @@ if(NOT WIN32) - endif() # NOT APPLE - - target_link_libraries(sinsp INTERFACE "${OPENSSL_LIBRARIES}") -- list(APPEND SINSP_PKGCONFIG_LIBRARIES "${OPENSSL_LIBRARIES}") -+ list(APPEND SINSP_PKGCONFIG_REQUIRES libcrypto libssl) - - target_link_libraries(sinsp INTERFACE dl pthread) - list(APPEND SINSP_PKGCONFIG_LIBRARIES dl pthread) -@@ -306,41 +301,17 @@ if(NOT DEFINED SINSP_AGENT_CGROUP_MEM_PATH_ENV_VAR) - endif() - add_definitions(-DSINSP_AGENT_CGROUP_MEM_PATH_ENV_VAR="${SINSP_AGENT_CGROUP_MEM_PATH_ENV_VAR}") - --# Build our pkg-config "Libs:" flags. For now, loop over SINSP_PKGCONFIG_LIBRARIES. If --# we ever start using pkg_search_module or pkg_check_modules in cmake/modules --# we could add each module to our "Requires:" line instead. We might need to --# expand this to use some of the techniques in --# https://github.com/curl/curl/blob/curl-7_84_0/CMakeLists.txt#L1539 --set(SINSP_PKG_CONFIG_LIBS) --set(SINSP_PKG_CONFIG_LIBDIRS "") --foreach(sinsp_lib ${SINSP_PKGCONFIG_LIBRARIES}) -- if(${sinsp_lib} MATCHES "^-") -- # We have a flag. Pass it through unchanged. -- list(APPEND SINSP_PKG_CONFIG_LIBS ${sinsp_lib}) -- elseif(${sinsp_lib} MATCHES "/") -- # We have a path. Convert it to -L<dir> + -l<lib>. -- get_filename_component(sinsp_lib_dir ${sinsp_lib} DIRECTORY) -- list(APPEND SINSP_PKG_CONFIG_LIBDIRS -L${sinsp_lib_dir}) -- get_filename_component(sinsp_lib_base ${sinsp_lib} NAME_WE) -- string(REGEX REPLACE "^lib" "" sinsp_lib_base ${sinsp_lib_base}) -- list(APPEND SINSP_PKG_CONFIG_LIBS -l${sinsp_lib_base}) -- elseif(${sinsp_lib} STREQUAL "scap") -- # We require libscap.pc, so skip it. -- else() -- # Assume we have a plain library name. Prefix it with "-l". -- list(APPEND SINSP_PKG_CONFIG_LIBS -l${sinsp_lib}) -- endif() --endforeach() -+list(REMOVE_DUPLICATES SINSP_PKGCONFIG_LIBRARIES) -+list(REMOVE_DUPLICATES SINSP_PKGCONFIG_REQUIRES) -+list(REMOVE_DUPLICATES SINSP_PKGCONFIG_REQUIRES_PRIVATE) - --# Build our pkg-config "Cflags:" flags. --set(SINSP_PKG_CONFIG_INCLUDES "") --foreach(sinsp_include_directory ${LIBSINSP_INCLUDE_DIRS}) -- list(APPEND SINSP_PKG_CONFIG_INCLUDES -I${sinsp_include_directory}) -+set(SINSP_LINK_FLAGS) -+foreach(sinsp_link_library ${SINSP_PKGCONFIG_LIBRARIES}) -+ list(APPEND SINSP_LINK_FLAGS "-l${sinsp_link_library}") - endforeach() - --string(REPLACE ";" " " SINSP_PKG_CONFIG_LIBS "${SINSP_PKG_CONFIG_LIBS}") --list(REMOVE_DUPLICATES SINSP_PKG_CONFIG_LIBDIRS) --string(REPLACE ";" " " SINSP_PKG_CONFIG_LIBDIRS "${SINSP_PKG_CONFIG_LIBDIRS}") --list(REMOVE_DUPLICATES SINSP_PKG_CONFIG_INCLUDES) --string(REPLACE ";" " " SINSP_PKG_CONFIG_INCLUDES "${SINSP_PKG_CONFIG_INCLUDES}") -+string(REPLACE ";" " " LIBSINSP_LINK_FLAGS "${SINSP_LINK_FLAGS}") -+string(REPLACE ";" " " LIBSINSP_REQUIRES "${SINSP_PKGCONFIG_REQUIRES}") -+string(REPLACE ";" " " LIBSINSP_REQUIRES_PRIVATE "${SINSP_PKGCONFIG_REQUIRES_PRIVATE}") -+ - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libsinsp.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libsinsp.pc @ONLY) -diff --git a/userspace/libsinsp/libsinsp.pc.in b/userspace/libsinsp/libsinsp.pc.in -index 9292e73ce..f20da76b3 100644 ---- a/userspace/libsinsp/libsinsp.pc.in -+++ b/userspace/libsinsp/libsinsp.pc.in -@@ -1,4 +1,4 @@ --prefix=${pcfiledir}/../.. -+prefix=@CMAKE_INSTALL_PREFIX@ - libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ - includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ - -@@ -6,6 +6,7 @@ Name: libsinsp - Description: lib for System INSPection - Version: @FALCOSECURITY_LIBS_VERSION@ - --Requires: libscap --Libs: -L${libdir} -lsinsp @SINSP_PKG_CONFIG_LIBDIRS@ @SINSP_PKG_CONFIG_LIBS@ --Cflags: -I${includedir}/@LIBS_PACKAGE_NAME@/libsinsp -I${includedir}/@LIBS_PACKAGE_NAME@/driver -I${includedir}/@LIBS_PACKAGE_NAME@ @SINSP_PKG_CONFIG_INCLUDES@ -+Requires: libscap @LIBSINSP_REQUIRES@ -+Requires.private: @LIBSINSP_REQUIRES_PRIVATE@ -+Libs: -L${libdir} -lsinsp @LIBSINSP_LINK_FLAGS@ -+Cflags: -I${includedir}/@LIBS_PACKAGE_NAME@/libsinsp -I${includedir}/@LIBS_PACKAGE_NAME@/driver -I${includedir}/@LIBS_PACKAGE_NAME@ diff --git a/gnu/packages/patches/falcosecurity-libs-pkg-config.patch b/gnu/packages/patches/falcosecurity-libs-pkg-config.patch deleted file mode 100644 index f686cec3f7..0000000000 --- a/gnu/packages/patches/falcosecurity-libs-pkg-config.patch +++ /dev/null @@ -1,23 +0,0 @@ -userspace: Extend CFLAGS of libscap.pc and libsinsp.pc. -Upstream status: https://github.com/falcosecurity/libs/pull/1842 - -diff --git a/userspace/libscap/libscap.pc.in b/userspace/libscap/libscap.pc.in -index 40b6e96ed..c5948489f 100644 ---- a/userspace/libscap/libscap.pc.in -+++ b/userspace/libscap/libscap.pc.in -@@ -7,4 +7,4 @@ Description: lib for System CAPture - Version: @FALCOSECURITY_LIBS_VERSION@ - - Libs: -L${libdir} @LIBSCAP_LINK_LIBDIRS_FLAGS@ @LIBSCAP_LINK_LIBRARIES_FLAGS@ --Cflags: -I${includedir}/@LIBS_PACKAGE_NAME@/libscap -+Cflags: -I${includedir}/@LIBS_PACKAGE_NAME@/libscap -I${includedir}/@LIBS_PACKAGE_NAME@/driver -I${includedir}/@LIBS_PACKAGE_NAME@ -I@UTHASH_INCLUDE@ -diff --git a/userspace/libsinsp/libsinsp.pc.in b/userspace/libsinsp/libsinsp.pc.in -index c1cc4a1e2..9292e73ce 100644 ---- a/userspace/libsinsp/libsinsp.pc.in -+++ b/userspace/libsinsp/libsinsp.pc.in -@@ -8,4 +8,4 @@ Version: @FALCOSECURITY_LIBS_VERSION@ - - Requires: libscap - Libs: -L${libdir} -lsinsp @SINSP_PKG_CONFIG_LIBDIRS@ @SINSP_PKG_CONFIG_LIBS@ --Cflags: -I${includedir}/@LIBS_PACKAGE_NAME@/libsinsp @SINSP_PKG_CONFIG_INCLUDES@ -+Cflags: -I${includedir}/@LIBS_PACKAGE_NAME@/libsinsp -I${includedir}/@LIBS_PACKAGE_NAME@/driver -I${includedir}/@LIBS_PACKAGE_NAME@ @SINSP_PKG_CONFIG_INCLUDES@ diff --git a/gnu/packages/patches/falcosecurity-libs-shared-build.patch b/gnu/packages/patches/falcosecurity-libs-shared-build.patch new file mode 100644 index 0000000000..d51a6596ad --- /dev/null +++ b/gnu/packages/patches/falcosecurity-libs-shared-build.patch @@ -0,0 +1,311 @@ +Upstream-status: https://github.com/falcosecurity/libs/pull/1842 + +diff --git a/cmake/modules/BuildPkgConfigDependencies.cmake b/cmake/modules/BuildPkgConfigDependencies.cmake +index a597f18ac..d35506f5a 100644 +--- a/cmake/modules/BuildPkgConfigDependencies.cmake ++++ b/cmake/modules/BuildPkgConfigDependencies.cmake +@@ -3,6 +3,7 @@ + # libsinsp.pc (which requires libscap.pc and pulls them in that way) + function(add_pkgconfig_library LIBDIRS_VAR LIBS_VAR lib ignored) + ++ message(DEBUG "[add_pkgconfig_library] processing lib \"${lib}\"") + # if it's not a target, it doesn't have dependencies we know or care about + if(NOT TARGET ${lib}) + return() +@@ -14,14 +15,26 @@ function(add_pkgconfig_library LIBDIRS_VAR LIBS_VAR lib ignored) + return() + endif() + ++ message(DEBUG "[add_pkgconfig_library] LINK_LIBRARIES property: \"${PKGCONFIG_LIBRARIES}\"") ++ + get_property( + target_type + TARGET ${lib} + PROPERTY TYPE + ) ++ message(DEBUG "[add_pkgconfig_library] ignored list: \"${ignored}\"") + foreach(dep ${PKGCONFIG_LIBRARIES}) +- # ignore dependencies in the list ${ignored} +- if(${dep} IN_LIST "${ignored}") ++ # XXX: We use a (very) loose match as we are potentially comparing absolute library file ++ # names (dep) to pkg-config library names to be ignored. The only alternative I can think ++ # of would be to maintain a map associating pkg-config names to their library file name. ++ get_filename_component(dep_base ${dep} NAME_WE) ++ string(REGEX REPLACE "^lib" "" dep_name ${dep_base}) ++ # For CMake imported targets, keep only the suffix, e.g. gRPC::grpc -> grpc. ++ string(REGEX REPLACE "[^:]*::" "" dep_name ${dep_base}) ++ message(DEBUG "[add_pkgconfig_library] processing dep ${dep}") ++ string(FIND "${ignored}" "${dep_name}" find_result) ++ if(NOT ${find_result} EQUAL -1) ++ message(DEBUG "[add_pkgconfig_library] \"${dep}\" ignored") + continue() + endif() + +diff --git a/cmake/modules/libscap.cmake b/cmake/modules/libscap.cmake +index 346ac51b1..a8f50f071 100644 +--- a/cmake/modules/libscap.cmake ++++ b/cmake/modules/libscap.cmake +@@ -91,16 +91,6 @@ if(NOT HAVE_LIBSCAP) + endif() + endforeach() + +- set(libscap_link_flags) +- set(libscap_link_libdirs "") +- add_pkgconfig_dependency(libscap_link_libdirs libscap_link_flags scap "") +- +- string(REPLACE ";" " " LIBSCAP_LINK_LIBRARIES_FLAGS "${libscap_link_flags}") +- string(REPLACE ";" " " LIBSCAP_LINK_LIBDIRS_FLAGS "${libscap_link_libdirs}") +- configure_file( +- ${LIBS_DIR}/userspace/libscap/libscap.pc.in ${PROJECT_BINARY_DIR}/libscap/libscap.pc @ONLY +- ) +- + install( + TARGETS ${LIBSCAP_INSTALL_LIBS} + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" +diff --git a/driver/CMakeLists.txt b/driver/CMakeLists.txt +index 94f37ee2a..fc844da7b 100644 +--- a/driver/CMakeLists.txt ++++ b/driver/CMakeLists.txt +@@ -158,6 +158,11 @@ set(DRIVER_SOURCES + ppm_consumer.h + capture_macro.h + socketcall_to_syscall.h ++ syscall_compat_loongarch64.h ++ syscall_compat_ppc64le.h ++ syscall_compat_riscv64.h ++ syscall_compat_s390x.h ++ syscall_compat_x86_64.h + syscall_ia32_64_map.c + ) + +diff --git a/userspace/libpman/CMakeLists.txt b/userspace/libpman/CMakeLists.txt +index b5d982b0d..c9d71fe02 100644 +--- a/userspace/libpman/CMakeLists.txt ++++ b/userspace/libpman/CMakeLists.txt +@@ -53,3 +53,8 @@ install( + COMPONENT "scap" + OPTIONAL + ) ++ ++install(FILES include/libpman.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) ++configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpman.pc.in ${PROJECT_BINARY_DIR}/libpman.pc @ONLY) ++ ++install(FILES ${PROJECT_BINARY_DIR}/libpman.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) +diff --git a/userspace/libpman/libpman.pc.in b/userspace/libpman/libpman.pc.in +new file mode 100644 +index 000000000..e5373e87d +--- /dev/null ++++ b/userspace/libpman/libpman.pc.in +@@ -0,0 +1,11 @@ ++prefix=@CMAKE_INSTALL_PREFIX@ ++libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ ++includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ ++ ++Name: libpman ++Description: Utility library for BPF probes ++Version: @FALCOSECURITY_LIBS_VERSION@ ++ ++Requires: libbpf zlib ++Libs: -L${libdir} -lpman -lscap_event_schema -lscap_platform ++Cflags: -I${includedir} +diff --git a/userspace/libscap/CMakeLists.txt b/userspace/libscap/CMakeLists.txt +index 20ac14cdf..0fec656d6 100644 +--- a/userspace/libscap/CMakeLists.txt ++++ b/userspace/libscap/CMakeLists.txt +@@ -89,9 +89,11 @@ target_include_directories( + ) + + target_link_libraries(scap PRIVATE scap_error "${ZLIB_LIB}") ++set(SCAP_PKGCONFIG_REQUIRES "") ++set(SCAP_PKGCONFIG_REQUIRES_PRIVATE zlib) + + add_library( +- scap_event_schema STATIC ++ scap_event_schema + scap_event.c + ppm_sc_names.c + scap_print_event.c +@@ -174,17 +176,20 @@ if(HAS_ENGINE_BPF) + add_subdirectory(engine/bpf) + target_link_libraries(scap PUBLIC scap_engine_bpf) + target_include_directories(scap_engine_bpf PRIVATE ${PROJECT_BINARY_DIR}/driver/src) ++ list(APPEND SCAP_PKGCONFIG_REQUIRES libelf) + endif() + + if(HAS_ENGINE_MODERN_BPF) + add_subdirectory(engine/modern_bpf) + target_link_libraries(scap PUBLIC scap_engine_modern_bpf) + target_include_directories(scap_engine_modern_bpf PRIVATE ${PROJECT_BINARY_DIR}/driver/src) ++ list(APPEND SCAP_PKGCONFIG_REQUIRES libpman) + endif() + + if(HAS_ENGINE_GVISOR) + add_subdirectory(engine/gvisor) + target_link_libraries(scap PUBLIC scap_engine_gvisor) ++ list(APPEND SCAP_PKGCONFIG_REQUIRES protobuf jsoncpp) + endif() + + # ################################################################################################## +@@ -193,3 +198,22 @@ if(BUILD_LIBSCAP_EXAMPLES) + add_subdirectory(examples/01-open) + add_subdirectory(examples/02-validatebuffer) + endif() ++ ++set(libscap_link_flags) ++set(libscap_link_libdirs "") ++add_pkgconfig_dependency( ++ libscap_link_libdirs ++ libscap_link_flags ++ scap ++ # Avoid using these in libscap.pc Libs field, as they are already listed in Requires. lbpf ++ # is transitively required via libpman.pc. ++ "${SCAP_PKGCONFIG_REQUIRES};${SCAP_PKGCONFIG_REQUIRES_PRIVATE}" ++) ++ ++string(REPLACE ";" " " LIBSCAP_REQUIRES "${SCAP_PKGCONFIG_REQUIRES}") ++string(REPLACE ";" " " LIBSCAP_REQUIRES_PRIVATE "${SCAP_PKGCONFIG_REQUIRES_PRIVATE}") ++string(REPLACE ";" " " LIBSCAP_LINK_LIBRARIES_FLAGS "${libscap_link_flags}") ++string(REPLACE ";" " " LIBSCAP_LINK_LIBDIRS_FLAGS "${libscap_link_libdirs}") ++configure_file( ++ ${LIBS_DIR}/userspace/libscap/libscap.pc.in ${PROJECT_BINARY_DIR}/libscap/libscap.pc @ONLY ++) +diff --git a/userspace/libscap/libscap.pc.in b/userspace/libscap/libscap.pc.in +index 520020691..935cddc73 100644 +--- a/userspace/libscap/libscap.pc.in ++++ b/userspace/libscap/libscap.pc.in +@@ -1,4 +1,4 @@ +-prefix=${pcfiledir}/../.. ++prefix=@CMAKE_INSTALL_PREFIX@ + libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ + includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@LIBS_PACKAGE_NAME@ + +@@ -6,5 +6,7 @@ Name: libscap + Description: lib for System CAPture + Version: @FALCOSECURITY_LIBS_VERSION@ + ++Requires: @LIBSCAP_PKGCONFIG_REQUIRES@ ++Requires.private: @LIBSCAP_PKGCONFIG_REQUIRES_PRIVATE@ + Libs: -L${libdir} @LIBSCAP_LINK_LIBDIRS_FLAGS@ @LIBSCAP_LINK_LIBRARIES_FLAGS@ +-Cflags: -I${includedir} ++Cflags: -I${includedir} -I${includedir}/libscap -I${includedir}/driver -I@UTHASH_INCLUDE@ +diff --git a/userspace/libscap/linux/CMakeLists.txt b/userspace/libscap/linux/CMakeLists.txt +index 435c8546c..3f47b7801 100644 +--- a/userspace/libscap/linux/CMakeLists.txt ++++ b/userspace/libscap/linux/CMakeLists.txt +@@ -13,7 +13,7 @@ + # the License. + # + add_library( +- scap_platform STATIC ++ scap_platform + scap_linux_platform.c + scap_linux_hostinfo_platform.c + scap_procs.c +diff --git a/userspace/libsinsp/CMakeLists.txt b/userspace/libsinsp/CMakeLists.txt +index f58b00962..501db7933 100644 +--- a/userspace/libsinsp/CMakeLists.txt ++++ b/userspace/libsinsp/CMakeLists.txt +@@ -177,12 +177,17 @@ target_link_libraries( + PRIVATE "${CURL_LIBRARIES}" "${JSONCPP_LIB}" "${RE2_LIB}" + ) + ++set(SINSP_PKGCONFIG_REQUIRES jsoncpp) ++set(SINSP_PKGCONFIG_REQUIRES_PRIVATE libcurl re2) ++ + if(NOT EMSCRIPTEN) + target_link_libraries( + sinsp + INTERFACE "${CARES_LIB}" + PRIVATE "${TBB_LIB}" + ) ++ list(APPEND SINSP_PKGCONFIG_REQUIRES libcares) ++ list(APPEND SINSP_PKGCONFIG_REQUIRES_PRIVATE tbb) + endif() + + if(USE_BUNDLED_VALIJSON) +@@ -275,6 +280,15 @@ if(NOT WIN32) + ) + + target_link_libraries(sinsp PRIVATE cri_v1alpha2 cri_v1 containerd_interface) ++ list( ++ APPEND ++ SINSP_PKGCONFIG_REQUIRES ++ gpr ++ grpc ++ grpc++ ++ protobuf ++ libcares ++ ) + + if(NOT MUSL_OPTIMIZED_BUILD) + find_library(LIB_ANL anl) +@@ -290,6 +304,8 @@ if(NOT WIN32) + endif() # NOT MINIMAL_BUILD + endif() # NOT APPLE + ++ list(APPEND SINSP_PKGCONFIG_REQUIRES libcrypto libssl) ++ + target_link_libraries(sinsp INTERFACE dl pthread) + + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") +@@ -329,7 +345,10 @@ add_definitions(-DSINSP_AGENT_CGROUP_MEM_PATH_ENV_VAR="${SINSP_AGENT_CGROUP_MEM_ + # https://github.com/curl/curl/blob/curl-7_84_0/CMakeLists.txt#L1539 + set(SINSP_PKG_CONFIG_LIBS) + set(SINSP_PKG_CONFIG_LIBDIRS "") +-add_pkgconfig_dependency(SINSP_PKG_CONFIG_LIBDIRS SINSP_PKG_CONFIG_LIBS sinsp scap) ++add_pkgconfig_dependency( ++ SINSP_PKG_CONFIG_LIBDIRS SINSP_PKG_CONFIG_LIBS sinsp ++ "scap;${SINSP_PKGCONFIG_REQUIRES};${SINSP_PKGCONFIG_REQUIRES_PRIVATE}" ++) + + # Build our pkg-config "Cflags:" flags. + set(SINSP_PKG_CONFIG_INCLUDES "") +@@ -337,6 +356,8 @@ foreach(sinsp_include_directory ${LIBSINSP_INCLUDE_DIRS}) + list(APPEND SINSP_PKG_CONFIG_INCLUDES -I${sinsp_include_directory}) + endforeach() + ++string(REPLACE ";" " " LIBSINSP_REQUIRES "${SINSP_PKGCONFIG_REQUIRES}") ++string(REPLACE ";" " " LIBSINSP_REQUIRES_PRIVATE "${SINSP_PKGCONFIG_REQUIRES_PRIVATE}") + string(REPLACE ";" " " SINSP_PKG_CONFIG_LIBS "${SINSP_PKG_CONFIG_LIBS}") + list(REMOVE_DUPLICATES SINSP_PKG_CONFIG_LIBDIRS) + string(REPLACE ";" " " SINSP_PKG_CONFIG_LIBDIRS "${SINSP_PKG_CONFIG_LIBDIRS}") +diff --git a/userspace/libsinsp/libsinsp.pc.in b/userspace/libsinsp/libsinsp.pc.in +index 38e8e4e0d..9ab103ee1 100644 +--- a/userspace/libsinsp/libsinsp.pc.in ++++ b/userspace/libsinsp/libsinsp.pc.in +@@ -1,4 +1,4 @@ +-prefix=${pcfiledir}/../.. ++prefix=@CMAKE_INSTALL_PREFIX@ + libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ + includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@LIBS_PACKAGE_NAME@ + +@@ -6,6 +6,7 @@ Name: libsinsp + Description: lib for System INSPection + Version: @FALCOSECURITY_LIBS_VERSION@ + +-Requires: libscap +-Libs: -L${libdir} -lsinsp @SINSP_PKG_CONFIG_LIBDIRS@ @SINSP_PKG_CONFIG_LIBS@ +-Cflags: -I${includedir} @SINSP_PKG_CONFIG_INCLUDES@ ++Requires: libscap @LIBSINSP_REQUIRES@ ++Requires.private: @LIBSINSP_REQUIRES_PRIVATE@ ++Libs: -L${libdir} @SINSP_PKG_CONFIG_LIBDIRS@ @SINSP_PKG_CONFIG_LIBS@ ++Cflags: -I${includedir} -I${includedir}/libsinsp -I${includedir}/driver @SINSP_PKG_CONFIG_INCLUDES@ +diff --git a/userspace/libsinsp/test/CMakeLists.txt b/userspace/libsinsp/test/CMakeLists.txt +index fb8c46754..be6420672 100644 +--- a/userspace/libsinsp/test/CMakeLists.txt ++++ b/userspace/libsinsp/test/CMakeLists.txt +@@ -191,7 +191,13 @@ target_include_directories( + ) + + target_link_libraries( +- unit-test-libsinsp sinsp "${GTEST_LIB}" "${GTEST_MAIN_LIB}" "${TBB_LIB}" "${JSONCPP_LIB}" ++ unit-test-libsinsp ++ sinsp ++ "${GRPCPP_LIB}" ++ "${GTEST_LIB}" ++ "${GTEST_MAIN_LIB}" ++ "${TBB_LIB}" ++ "${JSONCPP_LIB}" + ) + + # Add some additional include directories associated with `ADDITIONAL_SINSP_TESTS_SUITE` diff --git a/gnu/packages/patches/falcosecurity-libs-shared-library-fix.patch b/gnu/packages/patches/falcosecurity-libs-shared-library-fix.patch deleted file mode 100644 index 3334a89516..0000000000 --- a/gnu/packages/patches/falcosecurity-libs-shared-library-fix.patch +++ /dev/null @@ -1,50 +0,0 @@ -Fix shared library build. -Upstream status: https://github.com/falcosecurity/libs/pull/1842 - -diff --git a/driver/CMakeLists.txt b/driver/CMakeLists.txt -index 80229cc03..70c9ba65b 100644 ---- a/driver/CMakeLists.txt -+++ b/driver/CMakeLists.txt -@@ -152,6 +152,11 @@ set(DRIVER_SOURCES - ppm_consumer.h - capture_macro.h - socketcall_to_syscall.h -+ syscall_compat_loongarch64.h -+ syscall_compat_ppc64le.h -+ syscall_compat_riscv64.h -+ syscall_compat_s390x.h -+ syscall_compat_x86_64.h - syscall_ia32_64_map.c - ) - -diff --git a/test/libscap/CMakeLists.txt b/test/libscap/CMakeLists.txt -index e88603ebd..fa26ba7ee 100644 ---- a/test/libscap/CMakeLists.txt -+++ b/test/libscap/CMakeLists.txt -@@ -45,6 +45,7 @@ set(LIBSCAP_TESTS_LIBRARIES - "${GTEST_LIB}" - "${GTEST_MAIN_LIB}" - "${CMAKE_THREAD_LIBS_INIT}" -+ "${PROTOBUF_LIB}" - scap - ) - -diff --git a/userspace/libscap/engine/gvisor/CMakeLists.txt b/userspace/libscap/engine/gvisor/CMakeLists.txt -index 6dfbafb14..875847b5d 100644 ---- a/userspace/libscap/engine/gvisor/CMakeLists.txt -+++ b/userspace/libscap/engine/gvisor/CMakeLists.txt -@@ -76,6 +76,14 @@ if (BUILD_SHARED_LIBS) - add_dependencies(scap_engine_gvisor_o uthash) - add_dependencies(scap scap_engine_gvisor_o) - target_sources(scap PRIVATE $<TARGET_OBJECTS:scap_engine_gvisor_o>) -+ -+ target_include_directories(scap_engine_gvisor_o -+ PRIVATE -+ ${CMAKE_BINARY_DIR} -+ ${CMAKE_CURRENT_BINARY_DIR} -+ ${CMAKE_SOURCE_DIR} -+ ${CMAKE_SOURCE_DIR}/userspace -+ ) - else() - add_library(scap_engine_gvisor - ${scap_engine_gvisor_sources} |