diff --git a/Makefile b/Makefile index 346dfd061459..24bf8a3842ca 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ KUBERNETES_VERSION ?= $(shell egrep "DefaultKubernetesVersion =" pkg/minikube/co KIC_VERSION ?= $(shell egrep "Version =" pkg/drivers/kic/types.go | cut -d \" -f2) # Default to .0 for higher cache hit rates, as build increments typically don't require new ISO versions -ISO_VERSION ?= v1.26.0-1653677468-13807 +ISO_VERSION ?= v1.26.0-1654280115-12707 # Dashes are valid in semver, but not Linux packaging. Use ~ to delimit alpha/beta DEB_VERSION ?= $(subst -,~,$(RAW_VERSION)) DEB_REVISION ?= 0 @@ -73,7 +73,7 @@ MINIKUBE_BUCKET ?= minikube/releases MINIKUBE_UPLOAD_LOCATION := gs://${MINIKUBE_BUCKET} MINIKUBE_RELEASES_URL=https://github.com/kubernetes/minikube/releases/download -KERNEL_VERSION ?= 4.19.235 +KERNEL_VERSION ?= 5.10.57 # latest from https://github.com/golangci/golangci-lint/releases # update this only by running `make update-golint-version` GOLINT_VERSION ?= v1.46.2 @@ -287,11 +287,12 @@ minikube-iso-arm64: minikube-iso-aarch64 minikube-iso-%: deploy/iso/minikube-iso/board/minikube/%/rootfs-overlay/usr/bin/auto-pause # build minikube iso echo $(ISO_VERSION) > deploy/iso/minikube-iso/board/minikube/$*/rootfs-overlay/etc/VERSION - cp deploy/iso/minikube-iso/CHANGELOG deploy/iso/minikube-iso/board/minikube/$*/rootfs-overlay/etc/CHANGELOG cp deploy/iso/minikube-iso/arch/$*/Config.in.tmpl deploy/iso/minikube-iso/Config.in if [ ! -d $(BUILD_DIR)/buildroot ]; then \ mkdir -p $(BUILD_DIR); \ git clone --depth=1 --branch=$(BUILDROOT_BRANCH) https://github.com/buildroot/buildroot $(BUILD_DIR)/buildroot; \ + perl -pi -e 's@\s+source "package/sysdig/Config\.in"\n@@;' $(BUILD_DIR)/buildroot/package/Config.in; \ + rm -r $(BUILD_DIR)/buildroot/package/sysdig; \ cp deploy/iso/minikube-iso/go.hash $(BUILD_DIR)/buildroot/package/go/go.hash; \ fi; $(MAKE) -C $(BUILD_DIR)/buildroot $(BUILDROOT_OPTIONS) O=$(BUILD_DIR)/buildroot/output-$* minikube_$*_defconfig @@ -312,9 +313,9 @@ iso-menuconfig: ## Configure buildroot configuration # Change the kernel configuration for the minikube ISO linux-menuconfig-%: ## Configure Linux kernel configuration - $(MAKE) -C $(BUILD_DIR)/buildroot/output/build/linux-$(KERNEL_VERSION)/ menuconfig - $(MAKE) -C $(BUILD_DIR)/buildroot/output/build/linux-$(KERNEL_VERSION)/ savedefconfig - cp $(BUILD_DIR)/buildroot/output/build/linux-$(KERNEL_VERSION)/defconfig deploy/iso/minikube-iso/board/minikube/$*/linux_$*_defconfig + $(MAKE) -C $(BUILD_DIR)/buildroot/output-$*/build/linux-$(KERNEL_VERSION)/ menuconfig + $(MAKE) -C $(BUILD_DIR)/buildroot/output-$*/build/linux-$(KERNEL_VERSION)/ savedefconfig + cp $(BUILD_DIR)/buildroot/output-$*/build/linux-$(KERNEL_VERSION)/defconfig deploy/iso/minikube-iso/board/minikube/$*/linux_$*_defconfig out/minikube-%.iso: $(shell find "deploy/iso/minikube-iso" -type f) ifeq ($(IN_DOCKER),1) @@ -322,7 +323,7 @@ ifeq ($(IN_DOCKER),1) else docker run --rm --workdir /mnt --volume $(CURDIR):/mnt $(ISO_DOCKER_EXTRA_ARGS) \ --user $(shell id -u):$(shell id -g) --env HOME=/tmp --env IN_DOCKER=1 \ - $(ISO_BUILD_IMAGE) /bin/bash -lc '/usr/bin/make out/minikube.iso' + $(ISO_BUILD_IMAGE) /bin/bash -lc '/usr/bin/make minikube-iso-$*' endif iso_in_docker: diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/Config.in index 1766727bf76c..25e88687a5e9 100644 --- a/deploy/iso/minikube-iso/arch/x86_64/package/Config.in +++ b/deploy/iso/minikube-iso/arch/x86_64/package/Config.in @@ -10,6 +10,5 @@ menu "System tools x86_64" source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/cni-plugins/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/containerd-bin/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/podman/Config.in" - source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/vbox-guest/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/hyperv-daemons/Config.in" endmenu diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/hyperv-daemons.mk b/deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/hyperv-daemons.mk index 3ea36bbbb00c..dcc26010ee0b 100644 --- a/deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/hyperv-daemons.mk +++ b/deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/hyperv-daemons.mk @@ -5,7 +5,7 @@ ################################################################################ HYPERV_DAEMONS_VERSION = $(call qstrip,$(BR2_LINUX_KERNEL_VERSION)) -HYPERV_DAEMONS_SITE = https://www.kernel.org/pub/linux/kernel/v4.x +HYPERV_DAEMONS_SITE = https://www.kernel.org/pub/linux/kernel/v5.x HYPERV_DAEMONS_SOURCE = linux-$(HYPERV_DAEMONS_VERSION).tar.xz define HYPERV_DAEMONS_BUILD_CMDS diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/Config.in deleted file mode 100644 index 2147deb04ac9..000000000000 --- a/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/Config.in +++ /dev/null @@ -1,5 +0,0 @@ -config BR2_PACKAGE_VBOX_GUEST - bool "vbox-guest" - depends on BR2_x86_64 - depends on BR2_LINUX_KERNEL - diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vbox-guest.hash b/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vbox-guest.hash deleted file mode 100644 index 8d7c01127bfb..000000000000 --- a/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vbox-guest.hash +++ /dev/null @@ -1,9 +0,0 @@ -# From http://download.virtualbox.org/virtualbox/5.1.30/SHA256SUMS -sha256 96cab2296fb014ce0a16b7b9603b52208b9403c10c1524b44201d3c274e8a821 VirtualBox-5.1.38.tar.bz2 -sha256 0e7ee2c78ebf7cd0d3a933d51148bef04a64f64fb27ccf70d59cddf9ca1e517a VBoxGuestAdditions_5.1.38.iso -# From http://download.virtualbox.org/virtualbox/5.2.32/SHA256SUMS -sha256 ff6390e50cb03718cd3f5779627910999c12279b465e340c80d7175778a33958 VirtualBox-5.2.32.tar.bz2 -sha256 4311c7408a3410e6a33264a9062347d9eec04f58339a49f0a60488c0cabc8996 VBoxGuestAdditions_5.2.32.iso -# From http://download.virtualbox.org/virtualbox/5.2.42/SHA256SUMS -sha256 e5bee2e34f349aac115ee93974febfe3213ad5e94045fa36b9f04b5f8caa3720 VirtualBox-5.2.42.tar.bz2 -sha256 ff784417295e48e3cee80a596faf05e3b0976e1b94d3b88427939912b0c1fc45 VBoxGuestAdditions_5.2.42.iso diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vbox-guest.mk b/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vbox-guest.mk deleted file mode 100644 index 2b1eeca93f58..000000000000 --- a/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vbox-guest.mk +++ /dev/null @@ -1,67 +0,0 @@ -################################################################################ -# -# VirtualBox Linux Guest Drivers -# -################################################################################ - -VBOX_GUEST_VERSION = 5.2.42 -VBOX_GUEST_SITE = http://download.virtualbox.org/virtualbox/$(VBOX_GUEST_VERSION) -VBOX_GUEST_LICENSE = GPLv2 -VBOX_GUEST_LICENSE_FILES = COPYING -VBOX_GUEST_SOURCE = VirtualBox-$(VBOX_GUEST_VERSION).tar.bz2 -VBOX_GUEST_EXTRA_DOWNLOADS = http://download.virtualbox.org/virtualbox/${VBOX_GUEST_VERSION}/VBoxGuestAdditions_${VBOX_GUEST_VERSION}.iso - -define VBOX_GUEST_EXPORT_MODULES - ( cd $(@D)/src/VBox/Additions/linux; ./export_modules.sh modules.tar.gz ) - mkdir -p $(@D)/vbox-modules - tar -C $(@D)/vbox-modules -xzf $(@D)/src/VBox/Additions/linux/modules.tar.gz -endef - -VBOX_GUEST_POST_EXTRACT_HOOKS += VBOX_GUEST_EXPORT_MODULES - -VBOX_GUEST_MODULE_SUBDIRS = vbox-modules/ -VBOX_GUEST_MODULE_MAKE_OPTS = KVERSION=$(LINUX_VERSION_PROBED) KERN_DIR=$(LINUX_DIR) - -define VBOX_GUEST_USERS - - -1 vboxsf -1 - - - - - -endef - -define VBOX_GUEST_INSTALL_INIT_SYSTEMD - $(INSTALL) -D -m 644 \ - $(VBOX_GUEST_PKGDIR)/vboxservice.service \ - $(TARGET_DIR)/usr/lib/systemd/system/vboxservice.service - - ln -fs /usr/lib/systemd/system/vboxservice.service \ - $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/vboxservice.service -endef - -define VBOX_GUEST_BUILD_CMDS - 7z x -aoa $(BR2_DL_DIR)/vbox-guest/VBoxGuestAdditions_${VBOX_GUEST_VERSION}.iso -ir'!VBoxLinuxAdditions.run' -o"$(@D)" - sh $(@D)/VBoxLinuxAdditions.run --noexec --target $(@D) - tar --overwrite -C $(@D) -xjf $(@D)/VBoxGuestAdditions-amd64.tar.bz2 sbin/VBoxService - tar --overwrite -C $(@D) -xjf $(@D)/VBoxGuestAdditions-amd64.tar.bz2 bin/VBoxControl - - $(TARGET_CC) -Wall -O2 -D_GNU_SOURCE -DIN_RING3 \ - -I$(@D)/vbox-modules/vboxsf/include \ - -I$(@D)/vbox-modules/vboxsf \ - -o $(@D)/vbox-modules/mount.vboxsf \ - $(@D)/src/VBox/Additions/linux/sharedfolders/vbsfmount.c \ - $(@D)/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c -endef - -define VBOX_GUEST_INSTALL_TARGET_CMDS - $(INSTALL) -Dm755 \ - $(@D)/vbox-modules/mount.vboxsf \ - $(TARGET_DIR)/sbin - - $(INSTALL) -Dm755 \ - $(@D)/sbin/VBoxService \ - $(TARGET_DIR)/sbin - - $(INSTALL) -Dm755 \ - $(@D)/bin/VBoxControl \ - $(TARGET_DIR)/bin -endef - -$(eval $(kernel-module)) -$(eval $(generic-package)) diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vboxservice.service b/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vboxservice.service deleted file mode 100644 index 5f05bd3d20d1..000000000000 --- a/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vboxservice.service +++ /dev/null @@ -1,17 +0,0 @@ -[Unit] -Description=VirtualBox Guest Service -ConditionVirtualization=oracle - -[Service] -ExecStartPre=-/usr/sbin/modprobe vboxguest - -# Broken and probably unused: Unknown symbol ttm_bo_del_sub_from_lru -# ExecStartPre=-/usr/sbin/modprobe vboxvideo - -ExecStartPre=-/usr/sbin/modprobe vboxsf -# Normally, VirtualBox only syncs every 20 minutes. This syncs on start, and -# forces an immediate sync if VM time is over 5 seconds off. -ExecStart=/usr/sbin/VBoxService -f --disable-automount --timesync-set-start --timesync-set-threshold 5000 - -[Install] -WantedBy=multi-user.target diff --git a/deploy/iso/minikube-iso/board/minikube/aarch64/linux_aarch64_defconfig b/deploy/iso/minikube-iso/board/minikube/aarch64/linux_aarch64_defconfig index 2d0a35299955..6580b3eb0979 100644 --- a/deploy/iso/minikube-iso/board/minikube/aarch64/linux_aarch64_defconfig +++ b/deploy/iso/minikube-iso/board/minikube/aarch64/linux_aarch64_defconfig @@ -1,3 +1,9 @@ +CONFIG_FTRACE_SYSCALLS=y +CONFIG_FTRACE=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_BRIDGE_NETFILTER=y +CONFIG_PCI=y +CONFIG_TMPFS=y CONFIG_SYSVIPC=y CONFIG_POSIX_MQUEUE=y CONFIG_AUDIT=y @@ -1213,5 +1219,4 @@ CONFIG_DEBUG_FS=y CONFIG_DEBUG_KERNEL=y # CONFIG_SCHED_DEBUG is not set # CONFIG_DEBUG_PREEMPT is not set -# CONFIG_FTRACE is not set CONFIG_MEMTEST=y diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/linux_x86_64_defconfig b/deploy/iso/minikube-iso/board/minikube/x86_64/linux_x86_64_defconfig index 2c5364616d26..d1ffd4c0d3b5 100644 --- a/deploy/iso/minikube-iso/board/minikube/x86_64/linux_x86_64_defconfig +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/linux_x86_64_defconfig @@ -1,3 +1,9 @@ +CONFIG_VBOXGUEST=m +CONFIG_VBOXSF_FS=m +CONFIG_DRM_VBOXVIDEO=m +CONFIG_BRIDGE_NETFILTER=y +CONFIG_PCI=y +CONFIG_TMPFS=y # CONFIG_LOCALVERSION_AUTO is not set CONFIG_KERNEL_LZ4=y CONFIG_SYSVIPC=y diff --git a/deploy/iso/minikube-iso/configs/minikube_aarch64_defconfig b/deploy/iso/minikube-iso/configs/minikube_aarch64_defconfig index 2ab5989e6a61..4d2b25421f21 100644 --- a/deploy/iso/minikube-iso/configs/minikube_aarch64_defconfig +++ b/deploy/iso/minikube-iso/configs/minikube_aarch64_defconfig @@ -29,13 +29,13 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/genimage.cfg" -# Linux headers same as kernel, a 4.19 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.235" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.57" BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_INSTALL_TARGET=y diff --git a/deploy/iso/minikube-iso/configs/minikube_x86_64_defconfig b/deploy/iso/minikube-iso/configs/minikube_x86_64_defconfig index 2623be409175..2ad7c3ceec2f 100644 --- a/deploy/iso/minikube-iso/configs/minikube_x86_64_defconfig +++ b/deploy/iso/minikube-iso/configs/minikube_x86_64_defconfig @@ -31,13 +31,13 @@ BR2_TARGET_SYSLINUX=y BR2_TARGET_ROOTFS_CPIO=y BR2_TARGET_ROOTFS_CPIO_GZIP=y -# Linux headers same as kernel, a 4.19 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y +# Linux headers same as kernel, a 5.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.235" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.57" BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_INSTALL_TARGET=y diff --git a/deploy/iso/minikube-iso/package/Config.in b/deploy/iso/minikube-iso/package/Config.in index 3cb958fae672..8fbd6c82f289 100644 --- a/deploy/iso/minikube-iso/package/Config.in +++ b/deploy/iso/minikube-iso/package/Config.in @@ -1,4 +1,6 @@ menu "System tools" + source "$BR2_EXTERNAL_MINIKUBE_PATH/package/tbb/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/package/sysdig/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/package/crun/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/package/automount/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/package/gluster/Config.in" diff --git a/deploy/iso/minikube-iso/package/sysdig/0001-libsinsp-Apply-PATCH_COMMAND-to-fix-lua-types-and-fu.patch b/deploy/iso/minikube-iso/package/sysdig/0001-libsinsp-Apply-PATCH_COMMAND-to-fix-lua-types-and-fu.patch new file mode 100644 index 000000000000..78732102813b --- /dev/null +++ b/deploy/iso/minikube-iso/package/sysdig/0001-libsinsp-Apply-PATCH_COMMAND-to-fix-lua-types-and-fu.patch @@ -0,0 +1,82 @@ +From cc8bccc3ebb90103900a7f0f2b085ddb723b8792 Mon Sep 17 00:00:00 2001 +From: Francis Laniel +Date: Wed, 6 Apr 2022 16:54:37 +0100 +Subject: [PATCH] libsinsp: Apply PATCH_COMMAND to fix lua types and function. + +Buildroot luajit 5.1 seems to not have compatibility between luaL_reg and +luaL_Reg. +So, we apply sysdig CMakeLists.txt PATCH_COMMAND to fix this and lua function +call as well. +Note that, this PATCH_COMMAND was added in sysdig in: +a064440394c9 ("Adding power support to Travis builds (#1566)") + +This patch is also present in kubernetes/minikube in: +f036c279bc59 ("Add patch for compiling sysdig with system luajit") + +Signed-off-by: Francis Laniel +--- + userspace/libsinsp/chisel.cpp | 6 +++--- + userspace/libsinsp/lua_parser.cpp | 2 +- + userspace/libsinsp/lua_parser_api.cpp | 2 +- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/userspace/libsinsp/chisel.cpp b/userspace/libsinsp/chisel.cpp +index 0a6e3cf8..0c2e255a 100644 +--- a/userspace/libsinsp/chisel.cpp ++++ b/userspace/libsinsp/chisel.cpp +@@ -98,7 +98,7 @@ void lua_stackdump(lua_State *L) + // Lua callbacks + /////////////////////////////////////////////////////////////////////////////// + #ifdef HAS_LUA_CHISELS +-const static struct luaL_reg ll_sysdig [] = ++const static struct luaL_Reg ll_sysdig [] = + { + {"set_filter", &lua_cbacks::set_global_filter}, + {"set_snaplen", &lua_cbacks::set_snaplen}, +@@ -134,7 +134,7 @@ const static struct luaL_reg ll_sysdig [] = + {NULL,NULL} + }; + +-const static struct luaL_reg ll_chisel [] = ++const static struct luaL_Reg ll_chisel [] = + { + {"request_field", &lua_cbacks::request_field}, + {"set_filter", &lua_cbacks::set_filter}, +@@ -146,7 +146,7 @@ const static struct luaL_reg ll_chisel [] = + {NULL,NULL} + }; + +-const static struct luaL_reg ll_evt [] = ++const static struct luaL_Reg ll_evt [] = + { + {"field", &lua_cbacks::field}, + {"get_num", &lua_cbacks::get_num}, +diff --git a/userspace/libsinsp/lua_parser.cpp b/userspace/libsinsp/lua_parser.cpp +index 0e26617d..78810d96 100644 +--- a/userspace/libsinsp/lua_parser.cpp ++++ b/userspace/libsinsp/lua_parser.cpp +@@ -32,7 +32,7 @@ extern "C" { + #include "lauxlib.h" + } + +-const static struct luaL_reg ll_filter [] = ++const static struct luaL_Reg ll_filter [] = + { + {"rel_expr", &lua_parser_cbacks::rel_expr}, + {"bool_op", &lua_parser_cbacks::bool_op}, +diff --git a/userspace/libsinsp/lua_parser_api.cpp b/userspace/libsinsp/lua_parser_api.cpp +index c89e9126..c3d8008a 100644 +--- a/userspace/libsinsp/lua_parser_api.cpp ++++ b/userspace/libsinsp/lua_parser_api.cpp +@@ -266,7 +266,7 @@ int lua_parser_cbacks::rel_expr(lua_State *ls) + string err = "Got non-table as in-expression operand\n"; + throw sinsp_exception("parser API error"); + } +- int n = luaL_getn(ls, 4); /* get size of table */ ++ int n = lua_objlen (ls, 4); /* get size of table */ + for (i=1; i<=n; i++) + { + lua_rawgeti(ls, 4, i); +-- +2.25.1 + diff --git a/deploy/iso/minikube-iso/package/sysdig/Config.in b/deploy/iso/minikube-iso/package/sysdig/Config.in new file mode 100644 index 000000000000..5a7fbb50e05d --- /dev/null +++ b/deploy/iso/minikube-iso/package/sysdig/Config.in @@ -0,0 +1,38 @@ +config BR2_PACKAGE_SYSDIG + bool "sysdig" + depends on BR2_LINUX_KERNEL + depends on BR2_INSTALL_LIBSTDCPP # jsoncpp + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 + depends on BR2_TOOLCHAIN_HAS_THREADS # elfutils, jq + depends on !BR2_STATIC_LIBS # elfutils + depends on BR2_USE_WCHAR # elfutils + depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC # elfutils + depends on BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1 + select BR2_PACKAGE_C_ARES + select BR2_PACKAGE_ELFUTILS + select BR2_PACKAGE_GRPC + select BR2_PACKAGE_GTEST + select BR2_PACKAGE_JQ + select BR2_PACKAGE_JSONCPP + select BR2_PACKAGE_LIBB64 + select BR2_PACKAGE_LIBCURL + select BR2_PACKAGE_NCURSES + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_PROTOBUF + select BR2_PACKAGE_TBB + select BR2_PACKAGE_ZLIB + help + Sysdig is open source, system-level exploration: + capture system state and activity from a running Linux + instance, then save, filter and analyze. + Think of it as strace + tcpdump + lsof + awesome sauce. + With a little Lua cherry on top. + + https://github.com/draios/sysdig/wiki + +comment "sysdig needs a glibc or uclibc toolchain w/ C++, threads, gcc >= 4.8, dynamic library, a Linux kernel, and luajit or lua 5.1 to be built" + depends on !BR2_LINUX_KERNEL || !BR2_INSTALL_LIBSTDCPP \ + || !BR2_TOOLCHAIN_HAS_THREADS \ + || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || BR2_STATIC_LIBS \ + || !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) \ + || !BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1 diff --git a/deploy/iso/minikube-iso/package/sysdig/sysdig.hash b/deploy/iso/minikube-iso/package/sysdig/sysdig.hash new file mode 100644 index 000000000000..4bce674f3e06 --- /dev/null +++ b/deploy/iso/minikube-iso/package/sysdig/sysdig.hash @@ -0,0 +1,4 @@ +# sha256 locally computed +sha256 b9d05854493d245a7a7e75f77fc654508f720aab5e5e8a3a932bd8eb54e49bda sysdig-0.27.1.tar.gz +sha256 57d5b713b875eba35546a1408bf3f20c2703904a17d956be115ee55272db4cfa sysdig-0.23.1.tar.gz +sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING diff --git a/deploy/iso/minikube-iso/package/sysdig/sysdig.mk b/deploy/iso/minikube-iso/package/sysdig/sysdig.mk new file mode 100644 index 000000000000..d497c7c381f1 --- /dev/null +++ b/deploy/iso/minikube-iso/package/sysdig/sysdig.mk @@ -0,0 +1,52 @@ +################################################################################ +# +# sysdig +# +################################################################################ + +SYSDIG_VERSION = 0.27.1 +SYSDIG_SITE = $(call github,draios,sysdig,$(SYSDIG_VERSION)) +SYSDIG_LICENSE = GPL-2.0 +SYSDIG_LICENSE_FILES = COPYING +SYSDIG_CPE_ID_VENDOR = sysdig +SYSDIG_CONF_OPTS = -DENABLE_DKMS=OFF -DUSE_BUNDLED_DEPS=OFF +SYSDIG_SUPPORTS_IN_SOURCE_BUILD = NO + +SYSDIG_DEPENDENCIES = \ + c-ares \ + elfutils \ + gtest \ + grpc \ + jq \ + jsoncpp \ + libb64 \ + libcurl \ + luainterpreter \ + ncurses \ + openssl \ + protobuf \ + tbb \ + zlib + +# sysdig creates the module Makefile from a template, which contains a +# single place-holder, KBUILD_FLAGS, wich is only replaced with two +# things: +# - debug flags, which we don't care about here, +# - 'sysdig-feature' flags, which are never set, so always empty +# So, just replace the place-holder with the only meaningful value: nothing. +define SYSDIG_MODULE_GEN_MAKEFILE + $(INSTALL) -m 0644 $(@D)/driver/Makefile.in $(@D)/driver/Makefile + $(SED) 's/@KBUILD_FLAGS@//;' $(@D)/driver/Makefile + $(SED) 's/@PROBE_NAME@/sysdig-probe/;' $(@D)/driver/Makefile +endef +SYSDIG_POST_PATCH_HOOKS += SYSDIG_MODULE_GEN_MAKEFILE + +# Don't build the driver as part of the 'standard' procedure, we'll +# build it on our own with the kernel-module infra. +SYSDIG_CONF_OPTS += -DBUILD_DRIVER=OFF + +SYSDIG_MODULE_SUBDIRS = driver +SYSDIG_MODULE_MAKE_OPTS = KERNELDIR=$(LINUX_DIR) + +$(eval $(kernel-module)) +$(eval $(cmake-package)) diff --git a/deploy/iso/minikube-iso/package/tbb/0001-tbb-Enable-cross-compilation.patch b/deploy/iso/minikube-iso/package/tbb/0001-tbb-Enable-cross-compilation.patch new file mode 100644 index 000000000000..652d59c47be2 --- /dev/null +++ b/deploy/iso/minikube-iso/package/tbb/0001-tbb-Enable-cross-compilation.patch @@ -0,0 +1,55 @@ +From 42c3faff14917f687aab405d8f571e352ffdf3f5 Mon Sep 17 00:00:00 2001 +From: Francis Laniel +Date: Wed, 6 Apr 2022 15:58:02 +0100 +Subject: [PATCH] tbb: Enable cross-compilation. + +This patch replaces hardcoded value for CPLUS and CONLY with $(CXX) and $(CC). +So, by defining CC= it is possible to cross compile this library using a +cross-compiler. + +This patch was originally written by: +Marcin Juszkiewicz +and taken from: +https://github.com/intel/luv-yocto/blob/3b0688bc9a5e8d52b6ca461b15fb4abd3eaaf7a8/meta-oe/recipes-support/tbb/tbb/cross-compile.patch + +Signed-off-by: Francis Laniel +--- + build/linux.clang.inc | 5 +++-- + build/linux.gcc.inc | 5 +++-- + 2 files changed, 6 insertions(+), 4 deletions(-) + +diff --git a/build/linux.clang.inc b/build/linux.clang.inc +index 5a459ef5..a0777db5 100644 +--- a/build/linux.clang.inc ++++ b/build/linux.clang.inc +@@ -31,8 +31,9 @@ DYLIB_KEY = -shared + EXPORT_KEY = -Wl,--version-script, + LIBDL = -ldl + +-CPLUS = clang++ +-CONLY = clang ++CPLUS = $(CXX) ++CONLY = $(CC) ++CPLUS_FLAGS = $(CXXFLAGS) + LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY) + LIBS += -lpthread -lrt + LINK_FLAGS = -Wl,-rpath-link=. -rdynamic +diff --git a/build/linux.gcc.inc b/build/linux.gcc.inc +index 786c4153..30242a82 100644 +--- a/build/linux.gcc.inc ++++ b/build/linux.gcc.inc +@@ -32,8 +32,9 @@ DYLIB_KEY = -shared + EXPORT_KEY = -Wl,--version-script, + LIBDL = -ldl + +-CPLUS = g++ +-CONLY = gcc ++CPLUS = $(CXX) ++CONLY = $(CC) ++CPLUS_FLAGS = $(CXXFLAGS) + LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY) + LIBS += -lpthread -lrt + LINK_FLAGS = -Wl,-rpath-link=. -rdynamic +-- +2.25.1 + diff --git a/deploy/iso/minikube-iso/package/tbb/Config.in b/deploy/iso/minikube-iso/package/tbb/Config.in new file mode 100644 index 000000000000..0f40b74d31f9 --- /dev/null +++ b/deploy/iso/minikube-iso/package/tbb/Config.in @@ -0,0 +1,16 @@ +config BR2_PACKAGE_TBB + bool "tbb" + depends on BR2_TOOLCHAIN_USES_GLIBC + depends on !BR2_STATIC_LIBS + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_INSTALL_LIBSTDCPP + help + Intel(R) Threading Building Blocks (Intel(R) TBB) lets you + easily write parallel C++ programs that take full advantage + of multicore performance, that are portable, composable and + have future-proof scalability. + + https://www.threadingbuildingblocks.org/ + +comment "tbb needs a glibc toolchain w/ dynamic library, threads, C++" + depends on !BR2_TOOLCHAIN_USES_GLIBC || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP diff --git a/deploy/iso/minikube-iso/package/tbb/tbb.hash b/deploy/iso/minikube-iso/package/tbb/tbb.hash new file mode 100644 index 000000000000..e9fb7511b85e --- /dev/null +++ b/deploy/iso/minikube-iso/package/tbb/tbb.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 b8dbab5aea2b70cf07844f86fa413e549e099aa3205b6a04059ca92ead93a372 tbb-2018_U5.tar.gz diff --git a/deploy/iso/minikube-iso/package/tbb/tbb.mk b/deploy/iso/minikube-iso/package/tbb/tbb.mk new file mode 100644 index 000000000000..cf06579b988b --- /dev/null +++ b/deploy/iso/minikube-iso/package/tbb/tbb.mk @@ -0,0 +1,39 @@ +################################################################################ +# +# tbb +# +################################################################################ + +TBB_VERSION = 2018_U5 +TBB_SITE = $(call github,01org,tbb,$(TBB_VERSION)) +TBB_INSTALL_STAGING = YES +TBB_LICENSE = Apache-2.0 +TBB_LICENSE_FILES = LICENSE + +TBB_SO_VERSION = 2 +TBB_LIBS = libtbb libtbbmalloc libtbbmalloc_proxy +TBB_BIN_PATH = $(@D)/build/linux_* + +define TBB_BUILD_CMDS + $(MAKE) $(TARGET_CONFIGURE_OPTS) arch=$(BR2_ARCH) -C $(@D) +endef + +define TBB_INSTALL_LIBS + $(foreach lib,$(TBB_LIBS), + $(INSTALL) -D -m 0755 $(TBB_BIN_PATH)/$(lib).so.$(TBB_SO_VERSION) \ + $(1)/usr/lib/$(lib).so.$(TBB_SO_VERSION) ; + ln -sf $(lib).so.$(TBB_SO_VERSION) $(1)/usr/lib/$(lib).so + ) +endef + +define TBB_INSTALL_STAGING_CMDS + mkdir -p $(STAGING_DIR)/usr/include/ + cp -a $(@D)/include/* $(STAGING_DIR)/usr/include/ + $(call TBB_INSTALL_LIBS,$(STAGING_DIR)) +endef + +define TBB_INSTALL_TARGET_CMDS + $(call TBB_INSTALL_LIBS,$(TARGET_DIR)) +endef + +$(eval $(generic-package)) diff --git a/pkg/minikube/download/iso.go b/pkg/minikube/download/iso.go index dcbe6c90892e..6a9a6e85f1b1 100644 --- a/pkg/minikube/download/iso.go +++ b/pkg/minikube/download/iso.go @@ -41,7 +41,7 @@ const fileScheme = "file" // DefaultISOURLs returns a list of ISO URL's to consult by default, in priority order func DefaultISOURLs() []string { v := version.GetISOVersion() - isoBucket := "minikube-builds/iso/13807" + isoBucket := "minikube-builds/iso/12707" return []string{ fmt.Sprintf("https://storage.googleapis.com/%s/minikube-%s-%s.iso", isoBucket, v, runtime.GOARCH), fmt.Sprintf("https://github.com/kubernetes/minikube/releases/download/%s/minikube-%s-%s.iso", v, v, runtime.GOARCH),