diff --git a/cmake/cpack/debian/conffiles b/cmake/cpack/debian/conffiles new file mode 100644 index 00000000..98c4d5ad --- /dev/null +++ b/cmake/cpack/debian/conffiles @@ -0,0 +1,4 @@ +/etc/falco/falco.yaml +/etc/falco/falco_rules.yaml +/etc/falco/rules.available/application_rules.yaml +/etc/falco/falco_rules.local.yaml diff --git a/cmake/modules/CPackConfig.cmake b/cmake/modules/CPackConfig.cmake new file mode 100644 index 00000000..3bc1c705 --- /dev/null +++ b/cmake/modules/CPackConfig.cmake @@ -0,0 +1,44 @@ +set(CPACK_PACKAGE_NAME "${PACKAGE_NAME}") +set(CPACK_PACKAGE_VENDOR "Cloud Native Computing Foundation (CNCF) cncf.io.") +set(CPACK_PACKAGE_CONTACT "opensource@sysdig.com") # todo: change this once we've got @falco.org addresses +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Falco - Container Native Runtime Security") +set(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/scripts/description.txt") +set(CPACK_PACKAGE_VERSION "${FALCO_VERSION}") +set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CMAKE_SYSTEM_PROCESSOR}") +set(CPACK_PROJECT_CONFIG_FILE "${PROJECT_SOURCE_DIR}/CMakeCPackOptions.cmake") +set(CPACK_STRIP_FILES "ON") +set(CPACK_PACKAGE_RELOCATABLE "OFF") + +set(CPACK_GENERATOR DEB RPM TGZ) + +set(CPACK_DEBIAN_PACKAGE_SECTION "utils") +set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64") +set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://www.falco.org") +set(CPACK_DEBIAN_PACKAGE_DEPENDS "dkms (>= 2.1.0.0)") +set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_BINARY_DIR}/scripts/debian/postinst;${CMAKE_BINARY_DIR}/scripts/debian/prerm;${PROJECT_SOURCE_DIR}/scripts/debian/postrm;${PROJECT_SOURCE_DIR}/cmake/cpack/debian/conffiles") + +set(CPACK_RPM_PACKAGE_LICENSE "Apache v2.0") +set(CPACK_RPM_PACKAGE_URL "https://www.falco.org") +set(CPACK_RPM_PACKAGE_REQUIRES "dkms, gcc, make, kernel-devel, perl") +set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${PROJECT_SOURCE_DIR}/scripts/rpm/postinstall") +set(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE "${PROJECT_SOURCE_DIR}/scripts/rpm/preuninstall") +set(CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE "${PROJECT_SOURCE_DIR}/scripts/rpm/postuninstall") +set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION /usr/src /usr/share/man /usr/share/man/man8 /etc /usr /usr/bin /usr/share /etc/rc.d /etc/rc.d/init.d) +set(CPACK_RPM_PACKAGE_RELOCATABLE "OFF") + +if(CPACK_GENERATOR MATCHES "DEB") + list(APPEND CPACK_INSTALL_COMMANDS "mkdir -p _CPack_Packages/${CPACK_TOPLEVEL_TAG}/${CPACK_GENERATOR}/${CPACK_PACKAGE_FILE_NAME}/etc/init.d/") + list(APPEND CPACK_INSTALL_COMMANDS "cp scripts/debian/falco _CPack_Packages/${CPACK_TOPLEVEL_TAG}/${CPACK_GENERATOR}/${CPACK_PACKAGE_FILE_NAME}/etc/init.d") +endif() + +if(CPACK_GENERATOR MATCHES "RPM") + list(APPEND CPACK_INSTALL_COMMANDS "mkdir -p _CPack_Packages/${CPACK_TOPLEVEL_TAG}/${CPACK_GENERATOR}/${CPACK_PACKAGE_FILE_NAME}/etc/rc.d/init.d/") + list(APPEND CPACK_INSTALL_COMMANDS "cp scripts/rpm/falco _CPack_Packages/${CPACK_TOPLEVEL_TAG}/${CPACK_GENERATOR}/${CPACK_PACKAGE_FILE_NAME}/etc/rc.d/init.d") +endif() + +if(CPACK_GENERATOR MATCHES "TGZ") + set(CPACK_SET_DESTDIR "ON") + set(CPACK_STRIP_FILES "OFF") +endif() + +include(CPack) diff --git a/cmake/modules/FindGRPC.cmake b/cmake/modules/FindGRPC.cmake new file mode 100644 index 00000000..6c39066c --- /dev/null +++ b/cmake/modules/FindGRPC.cmake @@ -0,0 +1,19 @@ +find_path(GRPCXX_INCLUDE NAMES grpc++/grpc++.h) +if(GRPCXX_INCLUDE) + set(GRPC_INCLUDE ${GRPCXX_INCLUDE}) +else() + find_path(GRPCPP_INCLUDE NAMES grpcpp/grpcpp.h) + set(GRPC_INCLUDE ${GRPCPP_INCLUDE}) + add_definitions(-DGRPC_INCLUDE_IS_GRPCPP=1) +endif() +find_library(GRPC_LIB NAMES grpc) +find_library(GRPCPP_LIB NAMES grpc++) +if(GRPC_INCLUDE AND GRPC_LIB AND GRPCPP_LIB) + message(STATUS "Found grpc: include: ${GRPC_INCLUDE}, C lib: ${GRPC_LIB}, C++ lib: ${GRPCPP_LIB}") +else() + message(FATAL_ERROR "Couldn't find system grpc") +endif() +find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin) +if(NOT GRPC_CPP_PLUGIN) + message(FATAL_ERROR "System grpc_cpp_plugin not found") +endif() diff --git a/cmake/patch/grpc-1.25.0-Makefile.patch b/cmake/patch/grpc-1.25.0-Makefile.patch deleted file mode 100644 index ba541dc6..00000000 --- a/cmake/patch/grpc-1.25.0-Makefile.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/Makefile b/Makefile -index 8fd7044dd9..428da4c6c5 100644 ---- a/Makefile -+++ b/Makefile -@@ -852,6 +852,7 @@ ifneq ($(LDFLAGS_PROTOBUF_PKG_CONFIG),) - LDFLAGS_PROTOBUF_PKG_CONFIG += $(shell $(PKG_CONFIG) --libs-only-L protobuf | sed s/L/Wl,-rpath,/) - endif - endif -+LDFLAGS := $(LDFLAGS_PROTOBUF_PKG_CONFIG) $(LDFLAGS) - else - PC_LIBS_GRPCXX = -lprotobuf - endif -diff --git a/templates/Makefile.template b/templates/Makefile.template -index 8063bd4771..eac629d1c7 100644 ---- a/templates/Makefile.template -+++ b/templates/Makefile.template -@@ -749,6 +749,7 @@ - LDFLAGS_PROTOBUF_PKG_CONFIG += $(shell $(PKG_CONFIG) --libs-only-L protobuf | sed s/L/Wl,-rpath,/) - endif - endif -+ LDFLAGS := $(LDFLAGS_PROTOBUF_PKG_CONFIG) $(LDFLAGS) - else - PC_LIBS_GRPCXX = -lprotobuf - endif