aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--MAINTAINERS2
-rw-r--r--README.md (renamed from README)8
-rw-r--r--SECURITY.md23
-rw-r--r--classes/cni_networking.bbclass10
-rw-r--r--classes/container-host.bbclass15
-rw-r--r--classes/image-oci-sloci-image.inc89
-rw-r--r--classes/image-oci-umoci.inc135
-rw-r--r--classes/image-oci.bbclass89
-rw-r--r--classes/meta-virt-container-cfg.bbclass10
-rw-r--r--classes/meta-virt-depreciated-warning.bbclass3
-rw-r--r--classes/meta-virt-hosts.bbclass29
-rw-r--r--classes/qemuboot-testimage-network.bbclass51
-rw-r--r--classes/qemuboot-xen-defaults.bbclass42
-rw-r--r--classes/qemuboot-xen-dtb.bbclass210
-rw-r--r--conf/distro/include/meta-virt-container.inc40
-rw-r--r--conf/distro/include/meta-virt-default-versions.inc4
-rw-r--r--conf/distro/include/meta-virt-xen.inc9
-rw-r--r--conf/distro/include/virt_security_flags.inc4
-rw-r--r--conf/layer.conf15
-rw-r--r--conf/multiconfig/container.conf3
-rw-r--r--docs/00-INDEX3
-rw-r--r--docs/podman.txt14
-rw-r--r--docs/podman.txt.license3
-rw-r--r--dynamic-layers/raspberrypi/conf/distro/include/xen-raspberrypi4-64.inc8
-rw-r--r--dynamic-layers/raspberrypi/recipes-bsp/xen-rpi-u-boot-scr/files/boot.cmd.xen.in11
-rw-r--r--dynamic-layers/raspberrypi/recipes-kernel/linux/linux-yocto-dev.bbappend8
-rw-r--r--dynamic-layers/raspberrypi/recipes-kernel/linux/linux-yocto_5.10.bbappend6
-rw-r--r--dynamic-layers/raspberrypi/recipes-kernel/linux/linux-yocto_6.6.bbappend6
-rw-r--r--dynamic-layers/xilinx/recipes-bsp/device-tree/device-tree.bbappend19
-rw-r--r--dynamic-layers/xilinx/recipes-bsp/device-tree/files/versal-net-xen-qemu.dtsi2
-rw-r--r--dynamic-layers/xilinx/recipes-bsp/device-tree/files/versal-net-xen.dtsi67
-rw-r--r--dynamic-layers/xilinx/recipes-bsp/device-tree/files/versal-xen-qemu.dtsi2
-rw-r--r--dynamic-layers/xilinx/recipes-bsp/device-tree/files/versal-xen.dtsi59
-rw-r--r--dynamic-layers/xilinx/recipes-bsp/device-tree/files/zynqmp-xen-qemu.dtsi2
-rw-r--r--dynamic-layers/xilinx/recipes-bsp/device-tree/files/zynqmp-xen.dtsi123
-rw-r--r--dynamic-layers/xilinx/recipes-bsp/u-boot/u-boot-xlnx-scr.bbappend2
-rw-r--r--dynamic-layers/xilinx/recipes-bsp/u-boot/u-boot-xlnx-scr/boot.cmd.xen80
-rw-r--r--dynamic-layers/xilinx/recipes-bsp/u-boot/xen-boot-cmd.inc38
-rw-r--r--dynamic-layers/xilinx/recipes-extended/xen/xen-xilinx.inc4
-rw-r--r--dynamic-layers/xilinx/recipes-extended/xen/xen_%.bbappend (renamed from dynamic-layers/xilinx/recipes-extended/xen/xen_4.14.bbappend)0
-rw-r--r--dynamic-layers/xilinx/recipes-extended/xen/xen_git.bbappend1
-rw-r--r--lib/oeqa/runtime/cases/xtf_minimal.py116
-rw-r--r--recipes-containers/aardvark-dns/aardvark-dns-crates.inc286
-rw-r--r--recipes-containers/aardvark-dns/aardvark-dns_1.10.0.bb43
-rw-r--r--recipes-containers/aardvark-dns/files/run-ptest3
-rw-r--r--recipes-containers/buildah/buildah_git.bb66
-rw-r--r--recipes-containers/catatonit/catatonit_0.2.0.bb16
-rw-r--r--recipes-containers/cgroup-lite/cgroup-lite_1.15.bb6
-rw-r--r--recipes-containers/conmon/conmon_git.bb13
-rw-r--r--recipes-containers/container-host-config/container-host-config.bb22
-rwxr-xr-xrecipes-containers/container-host-config/container-host-config/policy.json7
-rw-r--r--recipes-containers/container-host-config/container-host-config/registries.conf (renamed from recipes-containers/skopeo/files/registries.conf)0
-rw-r--r--recipes-containers/container-host-config/container-host-config/storage.conf243
-rw-r--r--recipes-containers/containerd/containerd-opencontainers/0001-Add-build-option-GODEBUG-1.patch32
-rw-r--r--recipes-containers/containerd/containerd-opencontainers/0001-Makefile-allow-GO_BUILD_FLAGS-to-be-externally-speci.patch35
-rw-r--r--recipes-containers/containerd/containerd-opencontainers/0001-build-don-t-use-gcflags-to-define-trimpath.patch32
-rw-r--r--recipes-containers/containerd/containerd-opencontainers_git.bb80
-rw-r--r--recipes-containers/containerd/files/0001-build-use-oe-provided-GO-and-flags.patch8
-rw-r--r--recipes-containers/cri-o/cri-o_git.bb39
-rw-r--r--recipes-containers/cri-o/files/0001-Makefile-force-symlinks.patch26
-rw-r--r--recipes-containers/cri-o/files/Makefile-skip-install-when-generating-the-config.h.patch43
-rw-r--r--recipes-containers/cri-o/files/crio.conf623
-rw-r--r--recipes-containers/cri-tools/cri-tools/0001-build-allow-environmental-CGO-settings-and-pass-dont.patch24
-rw-r--r--recipes-containers/cri-tools/cri-tools_git.bb19
-rw-r--r--recipes-containers/criu/criu_git.bb71
-rw-r--r--recipes-containers/criu/files/0001-criu-Skip-documentation-install.patch (renamed from recipes-containers/criu/files/0002-criu-Skip-documentation-install.patch)16
-rw-r--r--recipes-containers/criu/files/0002-criu-Change-libraries-install-directory.patch (renamed from recipes-containers/criu/files/0001-criu-Change-libraries-install-directory.patch)20
-rw-r--r--recipes-containers/criu/files/0003-crit-pycriu-build-and-install-wheels.patch77
-rw-r--r--recipes-containers/criu/files/0003-lib-Makefile-overwrite-install-lib-to-allow-multiarc.patch (renamed from recipes-containers/criu/files/lib-Makefile-overwrite-install-lib-to-allow-multiarc.patch)14
-rw-r--r--recipes-containers/criu/files/0004-criu-fix-conflicting-headers.patch290
-rw-r--r--recipes-containers/criu/files/0004-pycriu-attr-pycriu.version.__version__.patch22
-rw-r--r--recipes-containers/criu/files/0005-mount-add-definition-for-FSOPEN_CLOEXEC.patch114
-rw-r--r--recipes-containers/criu/files/0005-pycriu-skip-dependency-check-during-build.patch32
-rw-r--r--recipes-containers/criu/files/fix-building-on-newest-glibc-and-kernel.patch45
-rw-r--r--recipes-containers/crun/crun_git.bb33
-rw-r--r--recipes-containers/docker-compose/docker-compose_git.bb80
-rw-r--r--recipes-containers/docker-compose/files/0001-setup.py-import-fastentrypoints.patch28
-rw-r--r--recipes-containers/docker-compose/files/0001-setup.py-remove-maximum-version-requirements.patch57
-rw-r--r--recipes-containers/docker-compose/files/modules.txt372
-rw-r--r--recipes-containers/docker-compose/python3-docker-compose_1.29.1.bb42
-rw-r--r--recipes-containers/docker-compose/relocation.inc203
-rw-r--r--recipes-containers/docker-compose/src_uri.inc930
-rw-r--r--recipes-containers/docker-distribution/docker-distribution_git.bb37
-rw-r--r--recipes-containers/docker-distribution/files/0001-build-use-to-use-cross-go-compiler.patch2
-rw-r--r--recipes-containers/docker/README7
-rw-r--r--recipes-containers/docker/docker-ce_git.bb56
-rw-r--r--recipes-containers/docker/docker-moby_git.bb39
-rw-r--r--recipes-containers/docker/docker.inc68
-rw-r--r--recipes-containers/docker/files/0001-cli-use-external-GO111MODULE-and-cross-compiler.patch24
-rw-r--r--recipes-containers/docker/files/0001-dynbinary-use-go-cross-compiler.patch116
-rw-r--r--recipes-containers/docker/files/0001-libnetwork-use-GO-instead-of-go.patch26
-rw-r--r--recipes-containers/go-digest/go-digest_git.bb16
-rw-r--r--recipes-containers/go-errors/go-errors_git.bb14
-rw-r--r--recipes-containers/go-spf13-cobra/spf13-cobra_git.bb12
-rw-r--r--recipes-containers/go-spf13-pflag/spf13-pflag_git.bb14
-rw-r--r--recipes-containers/k3s/k3s/0001-Finding-host-local-in-usr-libexec.patch6
-rw-r--r--recipes-containers/k3s/k3s/k3s-killall.sh82
-rw-r--r--recipes-containers/k3s/k3s/k3s.service12
-rw-r--r--recipes-containers/k3s/k3s/modules.txt946
-rw-r--r--recipes-containers/k3s/k3s_git.bb86
-rw-r--r--recipes-containers/k3s/relocation.inc447
-rw-r--r--recipes-containers/k3s/src_uri.inc2150
-rw-r--r--recipes-containers/kubernetes/README.md117
-rw-r--r--recipes-containers/kubernetes/kubernetes/0001-Makefile.generated_files-Fix-race-issue-for-installi.patch45
-rw-r--r--recipes-containers/kubernetes/kubernetes/0001-build-golang.sh-convert-remaining-go-calls-to-use.patch31
-rw-r--r--recipes-containers/kubernetes/kubernetes/0001-build-hack-allow-go-1.20-building.patch35
-rw-r--r--recipes-containers/kubernetes/kubernetes/0001-cross-don-t-build-tests-by-default.patch8
-rw-r--r--recipes-containers/kubernetes/kubernetes/0001-generate-bindata-unset-GOBIN.patch36
-rw-r--r--recipes-containers/kubernetes/kubernetes/0001-hack-lib-golang.sh-use-CC-from-environment.patch27
-rw-r--r--recipes-containers/kubernetes/kubernetes/99-kubernetes.conf1
-rw-r--r--recipes-containers/kubernetes/kubernetes/cni-containerd-net.conflist24
-rw-r--r--recipes-containers/kubernetes/kubernetes/k8s-init31
-rw-r--r--recipes-containers/kubernetes/kubernetes_git.bb127
-rw-r--r--recipes-containers/lxc/README23
-rw-r--r--recipes-containers/lxc/files/0001-download-don-t-try-compatbility-index.patch45
-rw-r--r--recipes-containers/lxc/files/0001-lxc-test-usernic-drop-cgroup-handling.patch61
-rw-r--r--recipes-containers/lxc/files/0001-template-if-busybox-contains-init-use-it-in-containe.patch45
-rw-r--r--recipes-containers/lxc/files/0001-tests-remove-old-and-broken-cgroup-handling-code-fro.patch103
-rw-r--r--recipes-containers/lxc/files/commands-fix-check-for-seccomp-notify-support.patch44
-rw-r--r--recipes-containers/lxc/files/configure-skip-libseccomp-tests-if-it-is-disabled.patch53
-rw-r--r--recipes-containers/lxc/files/logs-optionally-use-base-filenames-to-report-src-fil.patch69
-rw-r--r--recipes-containers/lxc/files/lxc-1.0.0-disable-udhcp-from-busybox-template.patch2
-rw-r--r--recipes-containers/lxc/files/lxc-doc-upgrade-to-use-docbook-3.1-DTD.patch29
-rw-r--r--recipes-containers/lxc/files/lxc-fix-B-S.patch25
-rw-r--r--recipes-containers/lxc/files/run-ptest28
-rw-r--r--recipes-containers/lxc/files/template-make-busybox-template-compatible-with-core-.patch2
-rw-r--r--recipes-containers/lxc/files/templates-use-curl-instead-of-wget.patch41
-rw-r--r--recipes-containers/lxc/files/tests-add-no-validate-when-using-download-template.patch85
-rw-r--r--recipes-containers/lxc/files/tests-our-init-is-not-busybox.patch2
-rw-r--r--recipes-containers/lxc/lxc_git.bb (renamed from recipes-containers/lxc/lxc_4.0.6.bb)136
-rw-r--r--recipes-containers/lxcfs/files/systemd-allow-for-distinct-build-directory.patch47
-rw-r--r--recipes-containers/lxcfs/files/systemd-ensure-var-lib-lxcfs-exists.patch24
-rw-r--r--recipes-containers/lxcfs/lxcfs/0001-bindings-fix-build-with-newer-linux-libc-headers.patch50
-rw-r--r--recipes-containers/lxcfs/lxcfs/0001-meson.build-force-pid-open-send_signal-detection.patch38
-rw-r--r--recipes-containers/lxcfs/lxcfs_4.0.7.bb25
-rw-r--r--recipes-containers/lxcfs/lxcfs_5.0.4.bb26
-rw-r--r--recipes-containers/nerdctl/nerdctl/0001-Makefile-allow-external-specification-of-build-setti.patch25
-rw-r--r--recipes-containers/nerdctl/nerdctl/modules.txt270
-rw-r--r--recipes-containers/nerdctl/nerdctl_git.bb84
-rw-r--r--recipes-containers/nerdctl/relocation.inc152
-rw-r--r--recipes-containers/nerdctl/src_uri.inc675
-rw-r--r--recipes-containers/netavark/files/run-ptest8
-rw-r--r--recipes-containers/netavark/files/tests.patch24
-rw-r--r--recipes-containers/netavark/netavark-crates.inc560
-rw-r--r--recipes-containers/netavark/netavark_1.10.3.bb61
-rw-r--r--recipes-containers/oci-image-spec/oci-image-spec_git.bb8
-rw-r--r--recipes-containers/oci-image-tools/files/0001-config-make-Config.User-mapping-errors-a-warning.patch8
-rw-r--r--recipes-containers/oci-image-tools/files/0001-tool-respect-GO-and-GOBUILDFLAGS-when-building.patch8
-rw-r--r--recipes-containers/oci-image-tools/oci-image-tools_git.bb50
-rw-r--r--recipes-containers/oci-runtime-spec/oci-runtime-spec_git.bb8
-rw-r--r--recipes-containers/oci-runtime-tools/files/0001-Revert-implement-add-set-function-for-hooks-items.patch3
-rw-r--r--recipes-containers/oci-runtime-tools/files/0001-build-use-for-cross-compiler.patch27
-rw-r--r--recipes-containers/oci-runtime-tools/oci-runtime-tools_git.bb48
-rw-r--r--recipes-containers/oci-systemd-hook/oci-systemd-hook/0001-Add-additional-cgroup-mounts-from-root-NS-automatica.patch2
-rw-r--r--recipes-containers/oci-systemd-hook/oci-systemd-hook/0001-configure-drop-selinux-support.patch2
-rw-r--r--recipes-containers/oci-systemd-hook/oci-systemd-hook/0001-selinux-drop-selinux-support.patch2
-rw-r--r--recipes-containers/oci-systemd-hook/oci-systemd-hook_git.bb8
-rw-r--r--recipes-containers/podman-compose/podman-compose_1.0.6.bb (renamed from recipes-containers/podman-compose/podman-compose_0.1.5.bb)15
-rw-r--r--recipes-containers/podman-tui/README6
-rw-r--r--recipes-containers/podman-tui/podman-tui_git.bb74
-rw-r--r--recipes-containers/podman/README41
-rw-r--r--recipes-containers/podman/podman/50-podman-rootless.conf6
-rw-r--r--recipes-containers/podman/podman/run-ptest13
-rw-r--r--recipes-containers/podman/podman_git.bb105
-rw-r--r--recipes-containers/riddler/files/0001-build-use-to-select-cross-compiler.patch14
-rw-r--r--recipes-containers/riddler/riddler_git.bb35
-rw-r--r--recipes-containers/runc/files/0001-Makefile-respect-GOBUILDFLAGS-for-runc-and-remove-re.patch30
-rw-r--r--recipes-containers/runc/runc-docker/0001-runc-Add-console-socket-dev-null.patch2
-rw-r--r--recipes-containers/runc/runc-docker/0001-runc-docker-SIGUSR1-daemonize.patch10
-rw-r--r--recipes-containers/runc/runc-docker_git.bb6
-rw-r--r--recipes-containers/runc/runc-opencontainers_git.bb13
-rw-r--r--recipes-containers/runc/runc.inc2
-rw-r--r--recipes-containers/singularity/singularity/0001-Use-python3.patch2
-rw-r--r--recipes-containers/singularity/singularity/0001-configure.ac-drop-2nd-AM_INIT_AUTOMAKE.patch36
-rw-r--r--recipes-containers/singularity/singularity_git.bb13
-rw-r--r--recipes-containers/skopeo/files/0001-makefile-add-GOBUILDFLAGS-to-go-build-call.patch28
-rw-r--r--recipes-containers/skopeo/files/storage.conf133
-rw-r--r--recipes-containers/skopeo/skopeo_git.bb71
-rw-r--r--recipes-containers/sloci-image/sloci-image/0001-sloci-image-fix-variant-quoting.patch2
-rw-r--r--recipes-containers/sloci-image/sloci-image_git.bb (renamed from recipes-containers/sloci-image/sloci-image-native_git.bb)8
-rw-r--r--recipes-containers/tini/tini/0001-tini.c-a-function-declaration-without-a-prototype-is.patch74
-rw-r--r--recipes-containers/tini/tini_0.19.0.bb7
-rw-r--r--recipes-containers/umoci/umoci_git.bb79
-rw-r--r--recipes-core/bind/bind_virtualization.inc6
-rw-r--r--recipes-core/busybox/busybox-initrd.bb (renamed from recipes-core/busybox/busybox-initrd_1.33.0.bb)18
-rw-r--r--recipes-core/busybox/busybox_virtualization.inc2
-rw-r--r--recipes-core/busybox/busybox_vmsep.inc2
-rw-r--r--recipes-core/initscripts/initscripts_virtualization.inc2
-rw-r--r--recipes-core/kata-containers/kata-agent_git.bb8
-rw-r--r--recipes-core/kata-containers/kata-proxy_git.bb7
-rw-r--r--recipes-core/kata-containers/kata-runtime/0001-makefile-allow-SKIP_GO_VERSION_CHECK-to-be-overriden.patch2
-rw-r--r--recipes-core/kata-containers/kata-runtime_git.bb10
-rw-r--r--recipes-core/kata-containers/kata-shim_git.bb6
-rw-r--r--recipes-core/libxcrypt/libxcrypt_%.bbappend4
-rw-r--r--recipes-core/packagegroups/packagegroup-container.bb21
-rw-r--r--recipes-core/packagegroups/packagegroup-kubernetes.bb15
-rw-r--r--recipes-core/runv/runv_git.bb14
-rw-r--r--recipes-core/runx/runx/0001-make-initrd-allow-externally-provided-busybox.patch2
-rw-r--r--recipes-core/runx/runx/0001-make-kernel-bump-to-v5.4.104-for-gcc10-fixes.patch2
-rw-r--r--recipes-core/runx/runx/0001-make-kernel-cross-compilation-tweaks.patch2
-rw-r--r--recipes-core/runx/runx_git.bb12
-rw-r--r--recipes-core/sysvinit/sysvinit-inittab_virtualization.inc6
-rw-r--r--recipes-core/sysvinit/sysvinit-inittab_xen.inc12
-rwxr-xr-xrecipes-demo/helloworld-flask/helloworld-flask/flask-app21
-rw-r--r--recipes-demo/helloworld-flask/helloworld-flask/flask-app-service.yaml32
-rw-r--r--recipes-demo/helloworld-flask/helloworld-flask/flask-app.yaml12
-rw-r--r--recipes-demo/helloworld-flask/helloworld-flask_0.1.bb44
-rw-r--r--recipes-demo/images/app-container-curl.bb46
-rw-r--r--recipes-demo/images/app-container.bb46
-rw-r--r--recipes-devtools/go/compose-file_git.bb8
-rw-r--r--recipes-devtools/go/go-build/0001-build-use-instead-of-go.patch6
-rw-r--r--recipes-devtools/go/go-build_git.bb9
-rw-r--r--recipes-devtools/go/go-capability_git.bb8
-rw-r--r--recipes-devtools/go/go-cli_git.bb8
-rw-r--r--recipes-devtools/go/go-connections_git.bb8
-rw-r--r--recipes-devtools/go/go-context_git.bb16
-rw-r--r--recipes-devtools/go/go-dbus_git.bb8
-rw-r--r--recipes-devtools/go/go-distribution_git.bb8
-rw-r--r--recipes-devtools/go/go-fsnotify_git.bb12
-rw-r--r--recipes-devtools/go/go-libtrust_git.bb8
-rw-r--r--recipes-devtools/go/go-logrus_git.bb10
-rw-r--r--recipes-devtools/go/go-md2man_git.bb6
-rw-r--r--recipes-devtools/go/go-metalinter_git.bb6
-rw-r--r--recipes-devtools/go/go-mux_git.bb13
-rw-r--r--recipes-devtools/go/go-patricia_git.bb8
-rw-r--r--recipes-devtools/go/go-pty_git.bb6
-rw-r--r--recipes-devtools/go/go-systemd_git.bb10
-rw-r--r--recipes-devtools/go/grpc-go_git.bb16
-rw-r--r--recipes-devtools/go/notary_git.bb8
-rw-r--r--recipes-devtools/python/python3-boto3_1.17.51.bb2
-rw-r--r--recipes-devtools/python/python3-botocore/0001-Fix-rejecting-URLs-with-unsafe-characters-in-is_vali.patch61
-rw-r--r--recipes-devtools/python/python3-botocore_1.20.51.bb4
-rw-r--r--recipes-devtools/python/python3-bugsnag_4.1.0.bb (renamed from recipes-devtools/python/python3-bugsnag_4.0.2.bb)2
-rw-r--r--recipes-devtools/python/python3-cached-property_1.5.2.bb4
-rw-r--r--recipes-devtools/python/python3-colorama_0.4.4.bb9
-rw-r--r--recipes-devtools/python/python3-colorama_0.4.6.bb14
-rw-r--r--recipes-devtools/python/python3-docker_5.0.0.bb19
-rw-r--r--recipes-devtools/python/python3-docker_7.0.0.bb20
-rw-r--r--recipes-devtools/python/python3-dockerpty_0.4.1.bb10
-rw-r--r--recipes-devtools/python/python3-fastentrypoints_0.12.bb2
-rw-r--r--recipes-devtools/python/python3-flask-cors-virt_3.0.10.bb (renamed from recipes-devtools/python/python3-flask-cors_3.0.10.bb)0
-rw-r--r--recipes-devtools/python/python3-nacl_1.3.0.bb26
-rw-r--r--recipes-devtools/python/python3-newrelic/0001-setup.py-tweak-setuptools_scm-version-dependency.patch2
-rw-r--r--recipes-devtools/python/python3-newrelic_6.2.0.156.bb2
-rw-r--r--recipes-devtools/python/python3-sphinx-420.bb (renamed from recipes-devtools/python/python3-sphinx_3.5.4.bb)8
-rw-r--r--recipes-devtools/python/python3-udica_git.bb22
-rw-r--r--recipes-devtools/python/python3-webob_1.8.7.bb2
-rw-r--r--recipes-devtools/python/python3_3.%.bbappend1
-rw-r--r--recipes-devtools/python/python3_virtualization.inc8
-rw-r--r--recipes-devtools/qemu/qemu-package-split.inc79
-rwxr-xr-xrecipes-devtools/yq/files/run-ptest10
-rw-r--r--recipes-devtools/yq/yq_git.bb81
-rw-r--r--recipes-extended/ceph/ceph/0001-add-missing-include-for-atomic-bool.patch25
-rw-r--r--recipes-extended/ceph/ceph/0001-avoid-to_string-error.patch73
-rw-r--r--recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch184
-rw-r--r--recipes-extended/ceph/ceph/0001-cephadm-build.py-avoid-using-python3-from-sysroot-wh.patch43
-rw-r--r--recipes-extended/ceph/ceph/0001-cmake-add-support-for-python3.9.patch30
-rw-r--r--recipes-extended/ceph/ceph/0001-delete-install-layout-deb.patch37
-rw-r--r--recipes-extended/ceph/ceph/0001-fix-host-library-paths-were-used.patch59
-rw-r--r--recipes-extended/ceph/ceph/0006-rocksdb-build-with-rocksdb-7.y.z.patch109
-rw-r--r--recipes-extended/ceph/ceph_18.2.2.bb (renamed from recipes-extended/ceph/ceph_15.2.9.bb)104
-rw-r--r--recipes-extended/cloud-init/cloud-init/0001-setup.py-check-for-install-anywhere-in-args.patch19
-rw-r--r--recipes-extended/cloud-init/cloud-init/0001-setup.py-respect-udevdir-variable.patch42
-rw-r--r--recipes-extended/cloud-init/cloud-init/cloud-init-source-local-lsb-functions.patch2
-rw-r--r--recipes-extended/cloud-init/cloud-init_git.bb (renamed from recipes-extended/cloud-init/cloud-init_20.3.bb)46
-rw-r--r--recipes-extended/dev86/dev86/0001-cpp-Makefile-respect-LDFLAGS-when-building-bcc-cpp.patch25
-rw-r--r--recipes-extended/dev86/dev86/0001-cpp-fix-race-writing-token.h-files.patch45
-rw-r--r--recipes-extended/dev86/dev86/0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch30
-rw-r--r--recipes-extended/dev86/dev86/0004-regen-token2.h-token1.h-with-gperf-3.1.patch59
-rw-r--r--recipes-extended/dev86/dev86/cross.patch29
-rw-r--r--recipes-extended/dev86/dev86_0.16.21.bb36
-rw-r--r--recipes-extended/dev86/dev86_git.bb43
-rw-r--r--recipes-extended/diod/diod_1.0.24.bb24
-rw-r--r--recipes-extended/diod/files/0001-build-Find-lua-with-pkg-config.patch50
-rw-r--r--recipes-extended/diod/files/0001-build-allow-builds-to-work-with-separate-build-dir.patch126
-rw-r--r--recipes-extended/diod/files/0001-diod-ops.c-add-header-file-for-makedev.patch40
-rw-r--r--recipes-extended/diod/files/0001-drod-add-option-to-config-systemddir.patch51
-rw-r--r--recipes-extended/diod/files/0002-Handle-various-time_t-sizes-in-printf-and-scanf.patch100
-rw-r--r--recipes-extended/diod/files/0002-auto.diod.in-remove-bashisms.patch47
-rw-r--r--recipes-extended/fuse-overlayfs/fuse-overlayfs/0001-utils-Add-missing-include-on-limits.h.patch36
-rw-r--r--recipes-extended/fuse-overlayfs/fuse-overlayfs_1.9.bb (renamed from recipes-extended/fuse-overlayfs/fuse-overlayfs_0.6.4.bb)9
-rw-r--r--recipes-extended/hyperstart/hyperstart/0001-container.c-Fix-compiler-errors-that-gcc-8.1.0-repor.patch2
-rw-r--r--recipes-extended/hyperstart/hyperstart_git.bb8
-rw-r--r--recipes-extended/images/container-base.bb2
-rw-r--r--recipes-extended/images/kvm-image-minimal.bb3
-rw-r--r--recipes-extended/images/xen-guest-image-minimal.bb10
-rw-r--r--recipes-extended/images/xen-image-minimal.bb43
-rw-r--r--recipes-extended/images/xtf-image.bb22
-rw-r--r--recipes-extended/images/xvisor-image-minimal.bb2
-rw-r--r--recipes-extended/iptables/iptables-meta-virtualization.inc3
-rw-r--r--recipes-extended/ipxe/files/build-be-explicit-about-fcommon-compiler-directive.patch2
-rw-r--r--recipes-extended/ipxe/files/ipxe-fix-hostcc-nopie-cflags.patch2
-rw-r--r--recipes-extended/ipxe/files/ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch2
-rw-r--r--recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch2
-rw-r--r--recipes-extended/ipxe/ipxe_git.bb19
-rw-r--r--recipes-extended/irqbalance/irqbalance.inc7
-rw-r--r--recipes-extended/irqbalance/irqbalance/add-initscript.patch2
-rw-r--r--recipes-extended/irqbalance/irqbalance/irqbalance-Add-status-and-reload-commands.patch2
-rw-r--r--recipes-extended/irqbalance/irqbalance/irqbalanced.service9
-rw-r--r--recipes-extended/irqbalance/irqbalance_git.bb11
-rw-r--r--recipes-extended/kvmtool/files/0001-kvmtool-9p-fixed-compilation-error.patch4
-rw-r--r--recipes-extended/kvmtool/files/0002-kvmtool-add-EXTRA_CFLAGS-variable.patch14
-rw-r--r--recipes-extended/kvmtool/files/0003-kvmtool-Werror-disabled.patch14
-rw-r--r--recipes-extended/kvmtool/files/external-crosscompiler.patch30
-rw-r--r--recipes-extended/kvmtool/kvmtool_git.bb (renamed from recipes-extended/kvmtool/kvmtool.bb)8
-rw-r--r--recipes-extended/libibverbs/libibverbs_1.2.1.bb14
-rw-r--r--recipes-extended/libvirt/libvirt-dbus_1.4.1.bb23
-rw-r--r--recipes-extended/libvirt/libvirt-glib/0001-meson.build-allow-crosscompiling-gir-and-doc.patch37
-rw-r--r--recipes-extended/libvirt/libvirt-glib_5.0.0.bb21
-rw-r--r--recipes-extended/libvirt/libvirt-python.inc20
-rw-r--r--recipes-extended/libvirt/libvirt/0001-messon.build-remove-build-path-information-to-avoid-.patch55
-rw-r--r--recipes-extended/libvirt/libvirt/0001-prevent-gendispatch.pl-generating-build-path-in-code.patch43
-rw-r--r--recipes-extended/libvirt/libvirt/0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch2
-rw-r--r--recipes-extended/libvirt/libvirt_10.0.0.bb (renamed from recipes-extended/libvirt/libvirt_7.2.0.bb)100
-rw-r--r--recipes-extended/libvmi/files/0001-Build-vbd-only-when-xen-is-enabled.patch76
-rw-r--r--recipes-extended/libvmi/libvmi_git.bb17
-rw-r--r--recipes-extended/nagios/nagios-common.inc10
-rw-r--r--recipes-extended/nagios/nagios-core/eventhandlers_nagioscmd_path.patch2
-rw-r--r--recipes-extended/nagios/nagios-core_4.4.6.bb30
-rw-r--r--recipes-extended/nagios/nagios-nrpe/0001-Should-fix-235-nasty_metachars-was-not-being-returne.patch2
-rw-r--r--recipes-extended/nagios/nagios-nrpe/fix-compile-without-openssl.patch2
-rw-r--r--recipes-extended/nagios/nagios-nrpe/fix-configure-uses-host-openssl.patch2
-rw-r--r--recipes-extended/nagios/nagios-nrpe_4.0.2.bb24
-rw-r--r--recipes-extended/nagios/nagios-nsca_2.9.2.bb22
-rw-r--r--recipes-extended/nagios/nagios-plugins_2.2.1.bb10
-rw-r--r--recipes-extended/oath/oath/0001-oath-fix-macro-definition-error.patch2
-rw-r--r--recipes-extended/oath/oath_2.6.2.bb4
-rw-r--r--recipes-extended/seabios/seabios/hostcc.patch2
-rw-r--r--recipes-extended/seabios/seabios/python3.patch2
-rw-r--r--recipes-extended/seabios/seabios_1.16.0.bb (renamed from recipes-extended/seabios/seabios_1.14.0.bb)11
-rw-r--r--recipes-extended/upx/libucl/Reproducible-build.patch3
-rw-r--r--recipes-extended/upx/libucl/use-static-assert.patch3
-rw-r--r--recipes-extended/upx/libucl_1.03.bb2
-rw-r--r--recipes-extended/upx/upx_git.bb33
-rw-r--r--recipes-extended/uxen/uxen-guest-tools/0001-vm-support-fix-build-for-kernel-s-5.4.patch86
-rw-r--r--recipes-extended/uxen/uxen-guest-tools/0002-vm-support-fix-build-for-kernel-s-5.15.patch48
-rw-r--r--recipes-extended/uxen/uxen-guest-tools/0003-vm-support-fix-build-for-kernel-s-5.14.patch34
-rw-r--r--recipes-extended/uxen/uxen-guest-tools/0004-uxenhc-fix-DMODULE-not-working-on-module-build-comma.patch58
-rw-r--r--recipes-extended/uxen/uxen-guest-tools/fix-Makefile-for-OE-kernel-build.patch2
-rw-r--r--recipes-extended/uxen/uxen-guest-tools_4.1.7.bb22
-rw-r--r--recipes-extended/uxen/uxen-guest-tools_4.1.8.bb26
-rw-r--r--recipes-extended/vgabios/biossums_0.7a.bb37
-rw-r--r--recipes-extended/vgabios/files/build-cc.patch31
-rw-r--r--recipes-extended/vgabios/vgabios_0.7a.bb33
-rw-r--r--recipes-extended/vgabios/vgabios_0.8a.bb25
-rw-r--r--recipes-extended/vhost-device/README.md14
-rw-r--r--recipes-extended/vhost-device/vhost-device-gpio-crates.inc184
-rw-r--r--recipes-extended/vhost-device/vhost-device-gpio_0.1.0.bb22
-rw-r--r--recipes-extended/vhost-device/vhost-device-i2c-crates.inc126
-rw-r--r--recipes-extended/vhost-device/vhost-device-i2c_0.1.0.bb16
-rw-r--r--recipes-extended/vhost-device/vhost-device-rng-crates.inc158
-rw-r--r--recipes-extended/vhost-device/vhost-device-rng_0.1.0.bb17
-rw-r--r--recipes-extended/vhost-device/vhost-device-scsi-crates.inc166
-rw-r--r--recipes-extended/vhost-device/vhost-device-scsi_0.1.0.bb16
-rw-r--r--recipes-extended/vhost-device/vhost-device-vsock-crates.inc258
-rw-r--r--recipes-extended/vhost-device/vhost-device-vsock_0.1.0.bb16
-rw-r--r--recipes-extended/virt-manager/virt-manager/0001-setup.py-move-global-args-to-install-args.patch78
-rw-r--r--recipes-extended/virt-manager/virt-manager_4.1.0.bb54
-rw-r--r--recipes-extended/virt-viewer/virt-viewer_11.0.bb38
-rw-r--r--recipes-extended/virt-what/virt-what_1.21.bb11
-rw-r--r--recipes-extended/virtiofsd/README.md14
-rw-r--r--recipes-extended/virtiofsd/virtiofsd-crates.inc142
-rw-r--r--recipes-extended/virtiofsd/virtiofsd_1.7.0.bb21
-rw-r--r--recipes-extended/xen/files/0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch178
-rw-r--r--recipes-extended/xen/files/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch4
-rw-r--r--recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.14.patch66
-rw-r--r--recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.15.patch2
-rw-r--r--recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.18.patch43
-rw-r--r--recipes-extended/xen/files/0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch83
-rw-r--r--recipes-extended/xen/files/0001-tools-xenstore-xenstored_control.c-correctly-print-t.patch34
-rw-r--r--recipes-extended/xen/files/xen-arm64-implement-atomic-fetch-add.patch50
-rw-r--r--recipes-extended/xen/xen-blktap.inc32
-rw-r--r--recipes-extended/xen/xen-hypervisor.inc21
-rw-r--r--recipes-extended/xen/xen-tools.inc340
-rw-r--r--recipes-extended/xen/xen-tools_4.14.bb20
-rw-r--r--recipes-extended/xen/xen-tools_4.15.bb18
-rw-r--r--recipes-extended/xen/xen-tools_4.17.bb19
-rw-r--r--recipes-extended/xen/xen-tools_4.18.bb21
-rw-r--r--recipes-extended/xen/xen-tools_git.bb11
-rw-r--r--recipes-extended/xen/xen.inc60
-rw-r--r--recipes-extended/xen/xen_4.14.bb19
-rw-r--r--recipes-extended/xen/xen_4.17.bb (renamed from recipes-extended/xen/xen_4.15.bb)13
-rw-r--r--recipes-extended/xen/xen_4.18.bb21
-rw-r--r--recipes-extended/xen/xen_git.bb10
-rw-r--r--recipes-extended/xen/xtf_git.bb15
-rw-r--r--recipes-extended/xvisor/files/0001-EMULATORS-Allow-Xvisor-to-compile-with-gcc-10.patch55
-rw-r--r--recipes-extended/xvisor/files/0001-build-use-usr-bin-env-for-python-scripts.patch38
-rw-r--r--recipes-extended/xvisor/xvisor-configs.inc4
-rw-r--r--recipes-extended/xvisor/xvisor_git.bb18
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg_xen.inc6
-rw-r--r--recipes-kernel/linux/linux-%.bbappend32
-rw-r--r--recipes-kernel/linux/linux-yocto-dev.bbappend1
-rw-r--r--recipes-kernel/linux/linux-yocto/cgroup-hugetlb.cfg5
-rw-r--r--recipes-kernel/linux/linux-yocto/cgroup-hugetlb.scc5
-rw-r--r--recipes-kernel/linux/linux-yocto/docker.cfg12
-rw-r--r--recipes-kernel/linux/linux-yocto/docker.scc4
-rw-r--r--recipes-kernel/linux/linux-yocto/ebtables.cfg2
-rw-r--r--recipes-kernel/linux/linux-yocto/ebtables.scc4
-rw-r--r--recipes-kernel/linux/linux-yocto/extra-configs.cfg1
-rw-r--r--recipes-kernel/linux/linux-yocto/kubernetes.cfg19
-rw-r--r--recipes-kernel/linux/linux-yocto/kubernetes.scc2
-rw-r--r--recipes-kernel/linux/linux-yocto/lxc.cfg32
-rw-r--r--recipes-kernel/linux/linux-yocto/lxc.scc4
-rw-r--r--recipes-kernel/linux/linux-yocto/vswitch.cfg3
-rw-r--r--recipes-kernel/linux/linux-yocto/vswitch.scc4
-rw-r--r--recipes-kernel/linux/linux-yocto/xen.cfg49
-rw-r--r--recipes-kernel/linux/linux-yocto/xen.scc4
-rw-r--r--recipes-kernel/linux/linux-yocto/xt-checksum.cfg1
-rw-r--r--recipes-kernel/linux/linux-yocto/xt-checksum.scc4
-rw-r--r--recipes-kernel/linux/linux-yocto_5.4_virtualization.inc4
-rw-r--r--recipes-kernel/linux/linux-yocto_6.6_virtualization.inc (renamed from recipes-kernel/linux/linux-yocto_5.10_virtualization.inc)0
-rw-r--r--recipes-kernel/linux/linux-yocto_virtualization.inc64
-rw-r--r--recipes-kernel/linux/yocto-cfg-fragments.bb37
-rw-r--r--recipes-kernel/lopper/lopper_git.bb34
-rw-r--r--recipes-networking/cni/README.md3
-rw-r--r--recipes-networking/cni/cni_git.bb51
-rw-r--r--recipes-networking/cni/files/modules.txt26
-rw-r--r--recipes-networking/cni/relocation.inc30
-rw-r--r--recipes-networking/cni/src_uri.inc65
-rw-r--r--recipes-networking/netns/netns_git.bb18
-rw-r--r--recipes-networking/openvswitch/files/0001-ovs-use-run-instead-of-var-run-for-in-systemd-units.patch106
-rw-r--r--recipes-networking/openvswitch/files/openvswitch-add-ptest.patch2
-rw-r--r--recipes-networking/openvswitch/files/python-switch-remaining-scripts-to-use-python3.patch2
-rw-r--r--recipes-networking/openvswitch/openvswitch-git/Makefile.am-set-the-python3-interpreter-with-usr-bin.patch43
-rw-r--r--recipes-networking/openvswitch/openvswitch-git/disable_m4_check.patch14
-rw-r--r--recipes-networking/openvswitch/openvswitch-git/kernel_module.patch29
-rw-r--r--recipes-networking/openvswitch/openvswitch-git/openvswitch-add-ptest-71d553b995d0bd527d3ab1e9fbaf5a2ae34de2f3.patch2
-rw-r--r--recipes-networking/openvswitch/openvswitch-git/systemd-create-runtime-dirs.patch17
-rw-r--r--recipes-networking/openvswitch/openvswitch-git/systemd-update-tool-paths.patch31
-rw-r--r--recipes-networking/openvswitch/openvswitch.inc51
-rw-r--r--recipes-networking/openvswitch/openvswitch_git.bb24
-rw-r--r--recipes-networking/slirp4netns/slirp4netns_git.bb (renamed from recipes-networking/slirp4netns/slirp4netns_0.4.1.bb)15
-rw-r--r--scripts/README-oe-go-mod-autogen.txt120
-rwxr-xr-xscripts/oe-go-mod-autogen.py800
-rw-r--r--wic/qemuboot-xen-x86-64.cfg8
-rw-r--r--wic/qemuboot-xen-x86-64.wks12
437 files changed, 17717 insertions, 4260 deletions
diff --git a/.gitignore b/.gitignore
index 357aefeb..daeb43d5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
-build*/
+/build*/
pyshtables.py
*.swp
*.orig
@@ -6,3 +6,4 @@ pyshtables.py
/*.patch
*~
scripts/lib/wic/plugins/source/__pycache__
+lib/oeqa/runtime/cases/__pycache__
diff --git a/MAINTAINERS b/MAINTAINERS
index 1bb9a24a..4b41bad2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -32,3 +32,5 @@ M: Christopher Clark <christopher.w.clark@gmail.com>
F: recipes-extended/xen/
F: recipes-extended/uxen/
F: recipes-extended/images/*xen*.bb
+F: recipes-extended/images/xtf*.bb
+F: dynamic-layers/raspberrypi/
diff --git a/README b/README.md
index b8ed4a0c..c26c0955 100644
--- a/README
+++ b/README.md
@@ -8,7 +8,7 @@ The bbappend files for some recipes (e.g. linux-yocto) in this layer need to
have 'virtualization' in DISTRO_FEATURES to have effect. To enable them, add
in configuration file the following line.
- DISTRO_FEATURES_append = " virtualization"
+ DISTRO_FEATURES:append = " virtualization"
If meta-virtualization is included, but virtualization is not enabled as a
distro feature a warning is printed at parse time:
@@ -53,8 +53,6 @@ layers: meta-oe
meta-filesystems
meta-python
-BBFILE_PRIORITY_openembedded-layer = "4"
-
Required for Xen XSM policy:
URI: git://git.yoctoproject.org/meta-selinux
branch: master
@@ -68,9 +66,7 @@ revision: HEAD
prio: default
Required for cri-o:
-URI: git://github.com/advancedtelematic/meta-updater
URI: git://git.yoctoproject.org/meta-selinux
-URI: git://git.yoctoproject.org/meta-security
branch: master
revision: HEAD
prio: default
@@ -80,7 +76,7 @@ Community / Colaboration
Repository: https://git.yoctoproject.org/cgit/cgit.cgi/meta-virtualization/
Mailing list: https://lists.yoctoproject.org/g/meta-virtualization
-IRC: freenode #meta-virt channel
+IRC: libera.chat #meta-virt channel
Maintenance
-----------
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 00000000..9fe8a8e2
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,23 @@
+How to Report a Potential Vulnerability?
+========================================
+
+If you would like to report a public issue (for example, one with a released
+CVE number), please report it using the mailing list as described in README.md
+If you have a patch ready, submit it following the same procedure as any other
+patch as described in the same file.
+
+If you are dealing with a not-yet released or urgent issue, please send a
+message to the layer maintainer, including as many details as
+possible: the software module affected, the recipe and its version,
+and any example code, if available.
+
+Branches maintained with security fixes
+---------------------------------------
+
+See [https://wiki.yoctoproject.org/wiki/Stable_Release_and_LTS Stable release and LTS]
+for detailed info regarding the policies and maintenance of Stable branches.
+
+The [https://wiki.yoctoproject.org/wiki/Releases Release page] contains a list of all
+releases of the Yocto Project. Versions in grey are no longer actively maintained with
+security patches, but well-tested patches may still be accepted for them for
+significant issues.
diff --git a/classes/cni_networking.bbclass b/classes/cni_networking.bbclass
index 9df02b81..2e81d63f 100644
--- a/classes/cni_networking.bbclass
+++ b/classes/cni_networking.bbclass
@@ -1,12 +1,12 @@
-DEPENDS_append_class-target = " cni"
+DEPENDS:append:class-target = " cni"
-PACKAGES_prepend = "${PN}-cni "
+PACKAGES:prepend = "${PN}-cni "
-FILES_${PN}-cni = "${sysconfdir}/cni/net.d/*"
+FILES:${PN}-cni = "${sysconfdir}/cni/net.d/*"
-RDEPENDS_${PN}-cni = "cni"
+RDEPENDS:${PN}-cni = "cni"
-do_install_append() {
+do_install:append() {
if [ -z "${CNI_NETWORKING_FILES}" ]; then
bbfatal "cni-networking was inherited, but no networking configuration was provided via CNI_NETWORKING_FILES"
fi
diff --git a/classes/container-host.bbclass b/classes/container-host.bbclass
new file mode 100644
index 00000000..99a75fea
--- /dev/null
+++ b/classes/container-host.bbclass
@@ -0,0 +1,15 @@
+# This class is the collection point for automatic dependencies,
+# package installs, rootfs postprocessing, etc, that are used
+# by container host images and recipes.
+
+# It currently is largely empty, and simply adds RDEPENDS, but
+# will expand to CRI/CNI configurations in the future.
+#
+
+RDEPENDS:${PN}:append = " container-host-config"
+
+do_install:append() {
+ # placeholder for additional package install, or configuration
+ # of the rootfs
+ true
+}
diff --git a/classes/image-oci-sloci-image.inc b/classes/image-oci-sloci-image.inc
new file mode 100644
index 00000000..9248489f
--- /dev/null
+++ b/classes/image-oci-sloci-image.inc
@@ -0,0 +1,89 @@
+IMAGE_CMD:oci() {
+ sloci_options=""
+
+ bbdebug 1 "OCI image settings:"
+ bbdebug 1 " author: ${OCI_IMAGE_AUTHOR}"
+ bbdebug 1 " author email: ${OCI_IMAGE_AUTHOR_EMAIL}"
+ bbdebug 1 " tag: ${OCI_IMAGE_TAG}"
+ bbdebug 1 " arch: ${OCI_IMAGE_ARCH}"
+ bbdebug 1 " subarch: ${OCI_IMAGE_SUBARCH}"
+ bbdebug 1 " entrypoint: ${OCI_IMAGE_ENTRYPOINT}"
+ bbdebug 1 " entrypoing args: ${OCI_IMAGE_ENTRYPOINT_ARGS}"
+ bbdebug 1 " labels: ${OCI_IMAGE_LABELS}"
+ bbdebug 1 " uid: ${OCI_IMAGE_RUNTIME_UID}"
+ bbdebug 1 " working dir: ${OCI_IMAGE_WORKINGDIR}"
+ bbdebug 1 " env vars: ${OCI_IMAGE_ENV_VARS}"
+ bbdebug 1 " ports: ${OCI_IMAGE_PORTS}"
+
+ # Change into the image deploy dir to avoid having any output operations capture
+ # long directories or the location.
+ cd ${IMGDEPLOYDIR}
+
+ oci_image_label_options=""
+ if [ -n "${OCI_IMAGE_LABELS}" ]; then
+ for l in ${OCI_IMAGE_LABELS}; do
+ oci_image_label_options="${oci_image_label_options} --label ${l}"
+ done
+ fi
+ oci_image_env_options=""
+ if [ -n "${OCI_IMAGE_ENV_VARS}" ]; then
+ for l in ${OCI_IMAGE_ENV_VARS}; do
+ oci_image_env_options="${oci_image_env_options} --env ${l}"
+ done
+ fi
+ oci_image_port_options=""
+ if [ -n "${OCI_IMAGE_PORTS}" ]; then
+ for l in ${OCI_IMAGE_PORTS}; do
+ oci_image_port_options="${oci_image_port_options} --port ${l}"
+ done
+ fi
+
+ if [ -n "${OCI_IMAGE_RUNTIME_UID}" ]; then
+ oci_image_user_options="--user ${OCI_IMAGE_RUNTIME_UID}"
+ fi
+
+ if [ -n "${OCI_IMAGE_WORKINGDIR}" ]; then
+ oci_image_working_dir_options="--working-dir ${OCI_IMAGE_WORKINGDIR}"
+ fi
+
+ if [ -n "${OCI_IMAGE_TAR_OUTPUT}" ]; then
+ sloci_options="$sloci_options --tar"
+ fi
+
+ # options that always appear are required for a valid oci container image
+ # others are optional based on settings.
+ sloci-image $sloci_options \
+ --arch ${OCI_IMAGE_ARCH} \
+ --arch-variant "${OCI_IMAGE_SUBARCH}" \
+ --entrypoint ${OCI_IMAGE_ENTRYPOINT} \
+ --cmd "${OCI_IMAGE_ENTRYPOINT_ARGS}" \
+ --author ${OCI_IMAGE_AUTHOR_EMAIL} \
+ ${oci_image_user_options} \
+ ${oci_image_label_options} \
+ ${oci_image_env_options} \
+ ${oci_image_working_dir_options} \
+ ${oci_image_port_options} \
+ ${IMAGE_ROOTFS} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}-oci:${OCI_IMAGE_TAG}
+
+ if [ -n "${OCI_IMAGE_TAR_OUTPUT}" ]; then
+ # if tar is specified, sloci-image is removing the directory that we need for a secondary
+ # tar format, so we need to restore it.
+ tar xf ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}-oci-${OCI_IMAGE_TAG}-${OCI_IMAGE_ARCH}-linux.oci-image.tar
+ fi
+
+ # create a convenience symlink
+ ln -sf ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}-oci ${IMAGE_BASENAME}-${OCI_IMAGE_TAG}-oci
+
+ if [ -n "${OCI_IMAGE_TAR_OUTPUT}" ]; then
+ # move the sloci output to a naming convention that matches what we do with umoci, thie
+ # default creates a subdirectory, so it get the "-dir" in the name
+ mv ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}-oci-${OCI_IMAGE_TAG}-${OCI_IMAGE_ARCH}-linux.oci-image.tar ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}-oci-${OCI_IMAGE_TAG}-${OCI_IMAGE_ARCH}-linux.oci-dir.tar
+ ln -sf ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}-oci-${OCI_IMAGE_TAG}-${OCI_IMAGE_ARCH}-linux.oci-dir.tar ${IMAGE_BASENAME}-${OCI_IMAGE_TAG}-oci-dir.tar
+
+ (
+ cd "${IMAGE_NAME}${IMAGE_NAME_SUFFIX}-oci"
+ tar -cf ../"${IMAGE_NAME}${IMAGE_NAME_SUFFIX}-oci-${OCI_IMAGE_TAG}-${OCI_IMAGE_ARCH}-linux.oci-image.tar" "."
+ )
+ ln -sf "${IMAGE_NAME}${IMAGE_NAME_SUFFIX}-oci-${OCI_IMAGE_TAG}-${OCI_IMAGE_ARCH}-linux.oci-image.tar" ${IMAGE_BASENAME}-${OCI_IMAGE_TAG}-oci.tar
+ fi
+}
diff --git a/classes/image-oci-umoci.inc b/classes/image-oci-umoci.inc
new file mode 100644
index 00000000..c77750fb
--- /dev/null
+++ b/classes/image-oci-umoci.inc
@@ -0,0 +1,135 @@
+IMAGE_CMD:oci() {
+ umoci_options=""
+
+ bbdebug 1 "UMOCI image settings:"
+ bbdebug 1 " author: ${OCI_IMAGE_AUTHOR}"
+ bbdebug 1 " author email: ${OCI_IMAGE_AUTHOR_EMAIL}"
+ bbdebug 1 " tag: ${OCI_IMAGE_TAG}"
+ bbdebug 1 " arch: ${OCI_IMAGE_ARCH}"
+ bbdebug 1 " subarch: ${OCI_IMAGE_SUBARCH}"
+ bbdebug 1 " entrypoint: ${OCI_IMAGE_ENTRYPOINT}"
+ bbdebug 1 " entrypoint args: ${OCI_IMAGE_ENTRYPOINT_ARGS}"
+ bbdebug 1 " labels: ${OCI_IMAGE_LABELS}"
+ bbdebug 1 " uid: ${OCI_IMAGE_RUNTIME_UID}"
+ bbdebug 1 " working dir: ${OCI_IMAGE_WORKINGDIR}"
+ bbdebug 1 " env vars: ${OCI_IMAGE_ENV_VARS}"
+ bbdebug 1 " ports: ${OCI_IMAGE_PORTS}"
+
+ OCI_REUSE_IMAGE=""
+
+ # Change into the image deploy dir to avoid having any output operations capture
+ # long directories or the location.
+ cd ${IMGDEPLOYDIR}
+
+ new_image=t
+ image_name="${IMAGE_NAME}${IMAGE_NAME_SUFFIX}-oci"
+ image_bundle_name="${IMAGE_NAME}${IMAGE_NAME_SUFFIX}-oci-bundle"
+ if [ -n "$OCI_REUSE_IMAGE" ]; then
+ if [ -d $image_name ]; then
+ bbdebug 1 "OCI: reusing image directory"
+ new_image=""
+ fi
+ else
+ bbdebug 1 "OCI: removing existing container image directory"
+ rm -rf $image_name $image_bundle_name
+ fi
+
+ if [ -z "${OCI_IMAGE_TAG}" ]; then
+ OCI_IMAGE_TAG="initial-tag"
+ fi
+
+ if [ -n "$new_image" ]; then
+ bbdebug 1 "OCI: umoci init --layout $image_name"
+ umoci init --layout $image_name
+ umoci new --image $image_name:${OCI_IMAGE_TAG}
+ umoci unpack --rootless --image $image_name:${OCI_IMAGE_TAG} $image_bundle_name
+ else
+ # todo: create a different tag, after checking if the passed one exists
+ true
+ fi
+
+ bbdebug 1 "OCI: populating rootfs"
+ bbdebug 1 "OCI: cp -r ${IMAGE_ROOTFS}/* $image_bundle_name/rootfs/"
+ cp -r ${IMAGE_ROOTFS}/* $image_bundle_name/rootfs
+
+ bbdebug 1 "OCI: umoci repack --image $image_name:${OCI_IMAGE_TAG} $image_bundle_name"
+ umoci repack --image $image_name:${OCI_IMAGE_TAG} $image_bundle_name
+
+ bbdebug 1 "OCI: configuring image"
+ if [ -n "${OCI_IMAGE_LABELS}" ]; then
+ for l in ${OCI_IMAGE_LABELS}; do
+ bbdebug 1 "OCI: umoci config --image $image_name:${OCI_IMAGE_TAG} --config.label \"$l\""
+ umoci config --image $image_name:${OCI_IMAGE_TAG} --config.label "$l"
+ done
+ fi
+ if [ -n "${OCI_IMAGE_ENV_VARS}" ]; then
+ for l in ${OCI_IMAGE_ENV_VARS}; do
+ bbdebug 1 "umoci config --image $image_name:${OCI_IMAGE_TAG} --config.env \"$l\""
+ umoci config --image $image_name:${OCI_IMAGE_TAG} --config.env "$l"
+ done
+ fi
+ if [ -n "${OCI_IMAGE_PORTS}" ]; then
+ for l in ${OCI_IMAGE_PORTS}; do
+ bbdebug 1 "umoci config --image $image_name:${OCI_IMAGE_TAG} --config.exposedports $l"
+ umoci config --image $image_name:${OCI_IMAGE_TAG} --config.exposedports $l
+ done
+ fi
+ if [ -n "${OCI_IMAGE_RUNTIME_UID}" ]; then
+ bbdebug 1 "umoci config --image $image_name:${OCI_IMAGE_TAG} --config.user ${OCI_IMAGE_RUNTIME_UID}"
+ umoci config --image $image_name:${OCI_IMAGE_TAG} --config.user ${OCI_IMAGE_RUNTIME_UID}
+ fi
+ if [ -n "${OCI_IMAGE_WORKINGDIR}" ]; then
+ bbdebug 1 "umoci config --image $image_name:${OCI_IMAGE_TAG} --config.workingdir ${OCI_IMAGE_WORKINGDIR}"
+ umoci config --image $image_name:${OCI_IMAGE_TAG} --config.workingdir ${OCI_IMAGE_WORKINGDIR}
+ fi
+ if [ -n "${OCI_IMAGE_STOPSIGNAL}" ]; then
+ bbdebug 1 "umoci config --image $image_name:${OCI_IMAGE_TAG} --config.stopsignal ${OCI_IMAGE_STOPSIGNAL}"
+ umoci config --image $image_name:${OCI_IMAGE_TAG} --config.stopsignal ${OCI_IMAGE_STOPSIGNAL}
+ fi
+ if [ -n "${OCI_IMAGE_OS}" ]; then
+ bbdebug 1 "umoci config --image $image_name:${OCI_IMAGE_TAG} --os ${OCI_IMAGE_OS}"
+ umoci config --image $image_name:${OCI_IMAGE_TAG} --os ${OCI_IMAGE_OS}
+ fi
+
+ bbdebug 1 "umoci config --image $image_name:${OCI_IMAGE_TAG} --architecture ${OCI_IMAGE_ARCH}"
+ umoci config --image $image_name:${OCI_IMAGE_TAG} --architecture ${OCI_IMAGE_ARCH}
+ # NOTE: umoci doesn't currently expose setting the architecture variant,
+ # so if you need it use sloci instead
+ if [ -n "${OCI_IMAGE_SUBARCH}" ]; then
+ bbnote "OCI: image subarch is set to: ${OCI_IMAGE_SUBARCH}, but umoci does not"
+ bbnote " expose variants. use sloci instead if this is important"
+ fi
+ umoci config --image $image_name:${OCI_IMAGE_TAG} \
+ ${@" ".join("--config.entrypoint %s" % s for s in d.getVar("OCI_IMAGE_ENTRYPOINT").split())}
+ if [ -n "${OCI_IMAGE_ENTRYPOINT_ARGS}" ]; then
+ umoci config --image $image_name:${OCI_IMAGE_TAG} ${@" ".join("--config.cmd %s" % s for s in d.getVar("OCI_IMAGE_ENTRYPOINT_ARGS").split())}
+ fi
+ umoci config --image $image_name:${OCI_IMAGE_TAG} --author ${OCI_IMAGE_AUTHOR_EMAIL}
+
+ # OCI_IMAGE_TAG may contain ":", but these are not allowed in OCI file
+ # names so replace them
+ image_tag="${@d.getVar("OCI_IMAGE_TAG").replace(":", "_")}"
+
+ # make a tar version of the image direcotry
+ # 1) image_name.tar: compatible with oci tar format, blobs and rootfs
+ # are at the top level. Can load directly from something like podman
+ # 2) image_name-dir.tar: original format from meta-virt, is just a tar'd
+ # up oci image directory (compatible with skopeo :dir format)
+ if [ -n "${OCI_IMAGE_TAR_OUTPUT}" ]; then
+ (
+ cd "$image_name"
+ tar -cf ../"$image_name.tar" "."
+ )
+ tar -cf "$image_name-dir.tar" "$image_name"
+
+ # create a convenience symlink
+ ln -sf "$image_name.tar" "${IMAGE_BASENAME}-$image_tag-oci.tar"
+ ln -sf "$image_name-dir.tar" "${IMAGE_BASENAME}-$image_tag-oci-dir.tar"
+ fi
+
+ # We could make this optional, since the bundle is directly runnable via runc
+ rm -rf $image_bundle_name
+
+ # This is the OCI image directory, which is technically the "image" as specified
+ ln -sf $image_name ${IMAGE_BASENAME}-$image_tag-oci
+}
diff --git a/classes/image-oci.bbclass b/classes/image-oci.bbclass
index c256b12c..0ec5c487 100644
--- a/classes/image-oci.bbclass
+++ b/classes/image-oci.bbclass
@@ -16,19 +16,32 @@
# And then create the bundle:
# % oci-image-tool create --ref name=latest container-base-<arch>-<stamp>.rootfs-oci container-base-oci-bundle
#
+# Alternatively, the bundle can be created with umoci (use --rootless if sudo is not available)
+# % sudo umoci unpack --image container-base-<arch>-<stamp>.rootfs-oci:latest container-base-oci-bundle
+#
# Or to copy (push) the oci image to a docker registry, skopeo can be used (vary the
# tag based on the created oci image:
#
# % skopeo copy --dest-creds <username>:<password> oci:container-base-<arch>-<stamp>:latest docker://zeddii/container-base
#
+# If your build host architecture matches the target, you can execute the unbundled
+# container with runc:
+#
+# % sudo runc run -b container-base-oci-bundle ctr-build
+# / % uname -a
+# Linux mrsdalloway 4.18.0-25-generic #26-Ubuntu SMP Mon Jun 24 09:32:08 UTC 2019 x86_64 GNU/Linux
+#
# We'd probably get this through the container image typdep, but just
# to be sure, we'll repeat it here.
ROOTFS_BOOTSTRAP_INSTALL = ""
# we want container and tar.bz2's to be created
-IMAGE_TYPEDEP_oci = "container tar.bz2"
+IMAGE_TYPEDEP:oci = "container tar.bz2"
+
# sloci is the script/project that will create the oci image
-do_image_oci[depends] += "sloci-image-native:do_populate_sysroot"
+# OCI_IMAGE_BACKEND ?= "sloci-image"
+OCI_IMAGE_BACKEND ?= "umoci"
+do_image_oci[depends] += "${OCI_IMAGE_BACKEND}-native:do_populate_sysroot"
#
# image type configuration block
@@ -39,12 +52,13 @@ OCI_IMAGE_AUTHOR_EMAIL ?= "${PATCH_GIT_USER_EMAIL}"
OCI_IMAGE_TAG ?= "latest"
OCI_IMAGE_RUNTIME_UID ?= ""
-OCI_IMAGE_ARCH ?= "${TARGET_ARCH}"
+OCI_IMAGE_ARCH ?= "${@oe.go.map_arch(d.getVar('TARGET_ARCH'))}"
OCI_IMAGE_SUBARCH ?= "${@oci_map_subarch(d.getVar('TARGET_ARCH'), d.getVar('TUNE_FEATURES'), d)}"
OCI_IMAGE_ENTRYPOINT ?= "sh"
OCI_IMAGE_ENTRYPOINT_ARGS ?= ""
OCI_IMAGE_WORKINGDIR ?= ""
+OCI_IMAGE_STOPSIGNAL ?= ""
# List of ports to expose from a container running this image:
# PORT[/PROT]
@@ -75,70 +89,7 @@ def oci_map_subarch(a, f, d):
return ''
return ''
-IMAGE_CMD_oci() {
- sloci_options=""
-
- bbdebug 1 "OCI image settings:"
- bbdebug 1 " author: ${OCI_IMAGE_AUTHOR}"
- bbdebug 1 " author email: ${OCI_IMAGE_AUTHOR_EMAIL}"
- bbdebug 1 " tag: ${OCI_IMAGE_TAG}"
- bbdebug 1 " arch: ${OCI_IMAGE_ARCH}"
- bbdebug 1 " subarch: ${OCI_IMAGE_SUBARCH}"
- bbdebug 1 " entrypoint: ${OCI_IMAGE_ENTRYPOINT}"
- bbdebug 1 " entrypoing args: ${OCI_IMAGE_ENTRYPOINT_ARGS}"
- bbdebug 1 " labels: ${OCI_IMAGE_LABELS}"
- bbdebug 1 " uid: ${OCI_IMAGE_RUNTIME_UID}"
- bbdebug 1 " working dir: ${OCI_IMAGE_WORKINGDIR}"
- bbdebug 1 " env vars: ${OCI_IMAGE_ENV_VARS}"
- bbdebug 1 " ports: ${OCI_IMAGE_PORTS}"
-
- # Change into the image deploy dir to avoid having any output operations capture
- # long directories or the location.
- cd ${IMGDEPLOYDIR}
-
- oci_image_label_options=""
- if [ -n "${OCI_IMAGE_LABELS}" ]; then
- for l in ${OCI_IMAGE_LABELS}; do
- oci_image_label_options="${oci_image_label_options} --label ${l}"
- done
- fi
- oci_image_env_options=""
- if [ -n "${OCI_IMAGE_ENV_VARS}" ]; then
- for l in ${OCI_IMAGE_ENV_VARS}; do
- oci_image_env_options="${oci_image_env_options} --env ${l}"
- done
- fi
- oci_image_port_options=""
- if [ -n "${OCI_IMAGE_PORTS}" ]; then
- for l in ${OCI_IMAGE_PORTS}; do
- oci_image_port_options="${oci_image_port_options} --port ${l}"
- done
- fi
-
- if [ -n "${OCI_IMAGE_RUNTIME_UID}" ]; then
- oci_image_user_options="--user ${OCI_IMAGE_RUNTIME_UID}"
- fi
-
- if [ -n "${OCI_IMAGE_WORKINGDIR}" ]; then
- oci_image_working_dir_options="--working-dir ${OCI_IMAGE_WORKINGDIR}"
- fi
-
- if [ -n "${OCI_IMAGE_TAR_OUTPUT}" ]; then
- sloci_options="$sloci_options --tar"
- fi
+# the IMAGE_CMD:oci comes from the .inc
+OCI_IMAGE_BACKEND_INC ?= "${@"image-oci-" + "${OCI_IMAGE_BACKEND}" + ".inc"}"
+include ${OCI_IMAGE_BACKEND_INC}
- # options that always appear are required for a valid oci container image
- # others are optional based on settings.
- sloci-image $sloci_options \
- --arch ${OCI_IMAGE_ARCH} \
- --arch-variant "${OCI_IMAGE_SUBARCH}" \
- --entrypoint ${OCI_IMAGE_ENTRYPOINT} \
- --cmd "${OCI_IMAGE_ENTRYPOINT_ARGS}" \
- --author ${OCI_IMAGE_AUTHOR_EMAIL} \
- ${oci_image_user_options} \
- ${oci_image_label_options} \
- ${oci_image_env_options} \
- ${oci_image_working_dir_options} \
- ${oci_image_port_options} \
- ${IMAGE_ROOTFS} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}-oci:${OCI_IMAGE_TAG}
-}
diff --git a/classes/meta-virt-container-cfg.bbclass b/classes/meta-virt-container-cfg.bbclass
new file mode 100644
index 00000000..9a4b144e
--- /dev/null
+++ b/classes/meta-virt-container-cfg.bbclass
@@ -0,0 +1,10 @@
+# We need to set the Xen meta-virt config components, only if "xen"
+# is in the distro features. Since we don't know the distro flags during
+# layer.conf load time, we delay using a special bbclass that simply includes
+# the META_VIRT_CONTAINER_CONFIG_PATH file.
+
+# the defaults are valid if we do or don't have virtualization enabled, so
+# we include it in either case below. But we leave the pattern in place, to
+# match the other configs of the layer and in case the above statement isn't
+# always true in the future.
+include ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', '${META_VIRT_CONTAINER_CONFIG_PATH}', '${META_VIRT_CONTAINER_CONFIG_PATH}', d)}
diff --git a/classes/meta-virt-depreciated-warning.bbclass b/classes/meta-virt-depreciated-warning.bbclass
new file mode 100644
index 00000000..97495bbf
--- /dev/null
+++ b/classes/meta-virt-depreciated-warning.bbclass
@@ -0,0 +1,3 @@
+do_compile:append() {
+ bbwarn "${PN} is depreciated and should not be used, it will be removed in the future"
+}
diff --git a/classes/meta-virt-hosts.bbclass b/classes/meta-virt-hosts.bbclass
new file mode 100644
index 00000000..80aefb76
--- /dev/null
+++ b/classes/meta-virt-hosts.bbclass
@@ -0,0 +1,29 @@
+# This doesn't work, since it seems to be too late for sanity checking.
+# IMAGE_FEATURES[validitems] += ' ${@bb.utils.contains("DISTRO_FEATURES", "virtualization", "virt-unique-hostname; ", "",d)}'
+
+ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("IMAGE_FEATURES", "virt-unique-hostname", "virt_gen_hostname; ", "",d)}'
+ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("IMAGE_FEATURES", "virt-unique-hostname", "virt_set_hostname; ", "",d)}'
+
+python virt_gen_hostname() {
+ import uuid
+
+ targetname = d.getVar("VIRT_TARGETNAME")
+ if targetname != None:
+ return
+
+ status, date = oe.utils.getstatusoutput("date +%d-%m-%y")
+ if status:
+ bb.warn("Can't get the date string for target hostname")
+
+ uuid = ':'.join(['{:02x}'.format((uuid.getnode() >> ele) & 0xff) for ele in range(0,8*6,8)][::-1])
+ if uuid:
+ targetname = "%s-%s" % (d.getVar("MACHINE"), uuid.split(":")[0])
+ else:
+ targetname = "%s-%s" % (d.getVar("MACHINE"), date)
+
+ d.setVar("VIRT_TARGETNAME", targetname)
+}
+
+virt_set_hostname() {
+ echo "${VIRT_TARGETNAME}" > ${IMAGE_ROOTFS}/etc/hostname
+}
diff --git a/classes/qemuboot-testimage-network.bbclass b/classes/qemuboot-testimage-network.bbclass
new file mode 100644
index 00000000..57e03551
--- /dev/null
+++ b/classes/qemuboot-testimage-network.bbclass
@@ -0,0 +1,51 @@
+# The recipe for init-ifupdown in core has a special-case for all
+# the Qemu MACHINES: it removes all external network interfaces
+# by default. However, eth0 is needed for testimage, so enable it here.
+
+# If QB_NETWORK_XEN_BRIDGE is set, configure bridging for the network.
+QB_NETWORK_XEN_BRIDGE ??= ""
+
+enable_runqemu_network() {
+ : # no-op for non-qemu MACHINES
+}
+
+enable_runqemu_network:qemuall() {
+ # Do not override a network configuration for eth0 if one is present
+ if ! grep -q eth0 "${IMAGE_ROOTFS}${sysconfdir}/network/interfaces" ; then
+
+ # Xen host networking: use bridging to support guest networks
+ if [ -n "${QB_NETWORK_XEN_BRIDGE}" ] ; then
+ # Configure a Xen host network bridge and put eth0 on it
+ cat <<EOF >>${IMAGE_ROOTFS}${sysconfdir}/network/interfaces
+
+# Bridged host network for Xen testimage
+iface eth0 inet manual
+
+auto xenbr0
+iface xenbr0 inet dhcp
+ bridge_ports eth0
+EOF
+
+# Add a script to create the bridge and add eth0 if necessary
+ cat <<EOF >>${IMAGE_ROOTFS}${sysconfdir}/network/if-pre-up.d/xenbr0
+#!/bin/sh
+
+if [ "\$IFACE" = xenbr0 ]; then
+ brctl addbr xenbr0 || /bin/true
+ brctl addif xenbr0 eth0 || /bin/true
+ ifconfig eth0 up
+fi
+EOF
+ chmod 755 ${IMAGE_ROOTFS}${sysconfdir}/network/if-pre-up.d/xenbr0
+ else
+ # Just configure eth0
+ cat <<EOF >>${IMAGE_ROOTFS}${sysconfdir}/network/interfaces
+
+# Network for testimage
+auto eth0
+iface eth0 inet dhcp
+EOF
+ fi
+ fi
+}
+ROOTFS_POSTPROCESS_COMMAND += 'enable_runqemu_network;'
diff --git a/classes/qemuboot-xen-defaults.bbclass b/classes/qemuboot-xen-defaults.bbclass
new file mode 100644
index 00000000..460cbe6a
--- /dev/null
+++ b/classes/qemuboot-xen-defaults.bbclass
@@ -0,0 +1,42 @@
+# Set defaults for booting Xen images with qemuboot
+
+# Xen and Dom0 command line options
+QB_XEN_CMDLINE_EXTRA ??= "dom0_mem=192M"
+QB_XEN_DOM0_BOOTARGS ??= \
+ "console=hvc0 earlyprintk clk_ignore_unused root=/dev/vda"
+
+# Launch with one initial domain, dom0, with one boot module, the kernel
+DOM0_KERNEL ??= "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}"
+DOM0_KERNEL_LOAD_ADDR ??= "0x45000000"
+QB_XEN_DOMAIN_MODULES ??= "${DOM0_KERNEL}:${DOM0_KERNEL_LOAD_ADDR}:multiboot,kernel"
+
+# Qemuboot for Arm uses the QB_DEFAULT_KERNEL method to load Xen
+# and the device loader option for the dom0 kernel:
+QB_OPT_APPEND:append:aarch64 = " \
+ -device loader,file=${DOM0_KERNEL},addr=${DOM0_KERNEL_LOAD_ADDR} \
+ "
+QB_OPT_APPEND:append:qemuarm = " \
+ -device loader,file=${DOM0_KERNEL},addr=${DOM0_KERNEL_LOAD_ADDR} \
+ "
+QB_DEFAULT_KERNEL:qemuarm64 = "xen-${MACHINE}"
+QB_DEFAULT_KERNEL:qemuarm = "xen-${MACHINE}"
+
+# 64-bit Arm: gic version 3
+QB_MACHINE:qemuarm64 = "-machine virt,gic-version=3 -machine virtualization=true"
+# 32-bit Arm: highmem=off
+# Disable highmem so that qemu does not use highmem IO regions that end up
+# being placed at the 256GiB mark (e.g. ECAM space) and can cause issues in Xen.
+QB_MACHINE:qemuarm = "-machine virt,highmem=off -machine virtualization=true"
+
+# Increase the default qemu memory allocation to allow for the hypervisor.
+# Use a weak assignment to allow for change of default and override elsewhere.
+QB_MEM_VALUE ??= "512"
+QB_MEM = "-m ${QB_MEM_VALUE}"
+
+# 64-bit Arm: qemuboot with a device tree binary
+QB_DTB:qemuarm64 = "${IMAGE_NAME}.qemuboot.dtb"
+QB_DTB_LINK:qemuarm64 = "${IMAGE_LINK_NAME}.qemuboot.dtb"
+
+# 32-bit Arm: qemuboot with a device tree binary
+QB_DTB:qemuarm = "${IMAGE_NAME}.qemuboot.dtb"
+QB_DTB_LINK:qemuarm = "${IMAGE_LINK_NAME}.qemuboot.dtb"
diff --git a/classes/qemuboot-xen-dtb.bbclass b/classes/qemuboot-xen-dtb.bbclass
new file mode 100644
index 00000000..d43d23a3
--- /dev/null
+++ b/classes/qemuboot-xen-dtb.bbclass
@@ -0,0 +1,210 @@
+# Enable booting Xen with qemuboot / runqemu: generate device tree
+#
+# Copyright (c) 2021 Star Lab Corp. All rights reserved.
+#
+# Author: Christopher Clark <christopher.clark@starlab.io>
+
+# Interface variables:
+#
+# QB_DTB : defined in qemuboot.bbclass.
+# If set, this class will generate the specified device tree file.
+#
+# QB_XEN_CMDLINE_EXTRA :
+# A string to be appended to the default Xen hypervisor boot command line,
+# for supplying Xen boot options.
+# The device tree that this bbclass generates will contain Xen command
+# line options to connect the Xen console to the Qemu serial port.
+#
+# QB_XEN_DOMAIN_MODULES :
+# A space-separated list of colon-separated entries:
+# "<file for the module>:<load memory address>:<module compatibility string>"
+#
+# QB_XEN_DOM0_BOOTARGS :
+# A string for specifying Dom0 boot options for the Xen section of the device
+# tree.
+#
+# QB_XEN_DTB_TASK_DEPENDS :
+# The task dependencies for the DTB generation. A default is provided.
+#
+# See also: Other QB_ variables as defined by the qemuboot.bbclass.
+
+write_lops_xen_section() {
+ DOM0_BOOTARGS="$2"
+ cat <<EOF >"$1"
+/dts-v1/;
+/ {
+ compatible = "system-device-tree-v1";
+ lops {
+ /* Connect the Xen console to Qemu dtuart */
+ lop_1 {
+ compatible = "system-device-tree-v1,lop,code-v1";
+ code = "
+ chosen = node.tree['/chosen']
+ stdout_path = str(chosen['stdout-path'].value[0])
+ chosen['xen,xen-bootargs'] = \
+ 'console=dtuart dtuart=%s' % stdout_path
+ return True
+ ";
+ };
+ lop_2 {
+ compatible = "system-device-tree-v1,lop,modify";
+ modify = "/chosen:xen,dom0-bootargs:${DOM0_BOOTARGS}";
+ };
+ lop_3 {
+ compatible = "system-device-tree-v1,lop,modify";
+ modify = "/chosen:#address-cells:<1>";
+ };
+ lop_4 {
+ compatible = "system-device-tree-v1,lop,modify";
+ modify = "/chosen:#size-cells:<1>";
+ };
+ };
+};
+EOF
+}
+
+write_lop_add_to_xen_cmdline() {
+ EXTRA_XEN_BOOTARGS="$2"
+ cat <<EOF >"$1"
+/dts-v1/;
+/ {
+ compatible = "system-device-tree-v1";
+ lops {
+ lop_1 {
+ compatible = "system-device-tree-v1,lop,code-v1";
+ options = "extra_xen_bootargs:${EXTRA_XEN_BOOTARGS}";
+ code = "
+ chosen = node.tree['/chosen']
+ xen_bootargs = str(chosen['xen,xen-bootargs'].value)
+ chosen['xen,xen-bootargs'] = '%s %s' % \
+ (xen_bootargs, extra_xen_bootargs)
+ return True
+ ";
+ };
+ };
+};
+EOF
+}
+
+write_lop_add_chosen_module() {
+ ADDR="$2"
+ SIZE="$3"
+ MODULE_TYPE="$4"
+ cat <<EOF >"$1"
+/dts-v1/;
+/ {
+ compatible = "system-device-tree-v1";
+ lops {
+ lop_1 {
+ compatible = "system-device-tree-v1,lop,add";
+ node_src = "module@${ADDR}";
+ node_dest = "/chosen/module@${ADDR}";
+
+ module@${ADDR} {
+ compatible = "multiboot,module", "${MODULE_TYPE}";
+ reg = <${ADDR} ${SIZE}>;
+ };
+ };
+ };
+};
+EOF
+}
+
+generate_xen_qemuboot_dtb() {
+ # First: invoke qemu to generate an initial device tree.
+ # Parameters supplied here inspired by inspection of:
+ # runqemu "${IMAGE_BASENAME}" nographic slirp \
+ # qemuparams='-dtb "" -machine dumpdtb=${B}/qemu-dumped.dtb'
+ ${QB_SYSTEM_NAME} \
+ -device qemu-xhci \
+ -device usb-tablet \
+ -device usb-kbd \
+ ${QB_MACHINE} \
+ ${QB_CPU} \
+ ${QB_SMP} \
+ ${QB_MEM} \
+ -nographic \
+ -serial mon:stdio \
+ -machine "dumpdtb=${B}/qemu-dumped.dtb"
+
+ # Lopper generates temporary files in cwd, so run it within ${B}
+ cd "${B}"
+ write_lops_xen_section "${B}/lop-insert-xen-section.dts" \
+ "${QB_XEN_DOM0_BOOTARGS}"
+
+ write_lop_add_to_xen_cmdline "${B}/lop-xen-cmdline.dts" \
+ "${QB_XEN_CMDLINE_EXTRA}"
+
+ if [ -z "${QB_XEN_DOMAIN_MODULES}" ]; then
+ bbwarn "No domain modules: please set QB_XEN_DOMAIN_MODULES"
+ fi
+
+ for DOMAIN_MODULE in ${QB_XEN_DOMAIN_MODULES}
+ do
+ MODULE_FILE="$(echo ${DOMAIN_MODULE} | cut -f1 -d:)"
+ ADDR="$(echo ${DOMAIN_MODULE} | cut -f2 -d:)"
+ MODULE_TYPE="$(echo ${DOMAIN_MODULE} | cut -f3 -d:)"
+ RESOLVED_FILE="$(readlink -f ${MODULE_FILE})"
+ SIZE=$(printf '0x%x\n' $(stat -c '%s' "${RESOLVED_FILE}"))
+ [ "x${SIZE}" != "x0x0" ] || bbfatal No module: "${MODULE_FILE}"
+ write_lop_add_chosen_module "${B}/lop-add-module-${ADDR}.dts" \
+ "${ADDR}" "${SIZE}" "${MODULE_TYPE}"
+ LOP_MODULE_ARGS="${LOP_MODULE_ARGS} -i ${B}/lop-add-module-${ADDR}.dts"
+ done
+
+ QEMUBOOT_DTB="${IMGDEPLOYDIR}/${QB_DTB}"
+ QEMUBOOT_DTB_LINK="${IMGDEPLOYDIR}/${QB_DTB_LINK}"
+
+ lopper --werror --verbose \
+ -i "${B}/lop-insert-xen-section.dts" \
+ -i "${B}/lop-xen-cmdline.dts" \
+ ${LOP_MODULE_ARGS} \
+ -f -o "${QEMUBOOT_DTB}" \
+ "${B}/qemu-dumped.dtb"
+
+ # To assist debugging:
+ dtc -I dtb -O dts -o "${B}/output.dts" "${QEMUBOOT_DTB}"
+
+ if [ "${QEMUBOOT_DTB_LINK}" != "${QEMUBOOT_DTB}" ] ; then
+ if [ -e "${QEMUBOOT_DTB_LINK}" ] ; then
+ rm "${QEMUBOOT_DTB_LINK}"
+ fi
+ ln -s "${QB_DTB}" "${QEMUBOOT_DTB_LINK}"
+ fi
+}
+
+do_write_xen_qemuboot_dtb() {
+ # Not all architectures qemuboot with a device tree binary, so check
+ # to see if one is needed. This allows this bbclass file to be used
+ # in the same image recipe for multiple architectures.
+ if [ -n "${QB_DTB}" ] && [ -n "${QB_SYSTEM_NAME}" ] ; then
+ generate_xen_qemuboot_dtb
+ fi
+}
+
+addtask do_write_xen_qemuboot_dtb after do_write_qemuboot_conf before do_image
+# Task dependency:
+# An expected common case is that the kernel for at least one of the initial
+# domains (eg. dom0) is deployed from the virtual/kernel recipe, so
+# add virtual/kernel:do_deploy as a task dependency here since the kernel size
+# needs to be known for generating the device tree.
+# Dependencies are only introduced if a device tree will be generated.
+QB_XEN_DTB_TASK_DEPENDS ?= " \
+ ${@[ ' \
+ qemu-helper-native:do_populate_sysroot \
+ lopper-native:do_populate_sysroot \
+ dtc-native:do_populate_sysroot \
+ virtual/kernel:do_deploy \
+ ', ''][d.getVar('QB_DTB') == '' or d.getVar('QB_DTB') is None]} \
+ "
+do_write_xen_qemuboot_dtb[depends] = "${QB_XEN_DTB_TASK_DEPENDS}"
+
+def qemuboot_dtb_vars(d):
+ build_vars = ['MACHINE', 'TUNE_ARCH', 'DEPLOY_DIR_IMAGE',
+ 'KERNEL_IMAGETYPE', 'IMAGE_NAME', 'IMAGE_LINK_NAME',
+ 'STAGING_DIR_NATIVE', 'STAGING_BINDIR_NATIVE',
+ 'STAGING_DIR_HOST', 'SERIAL_CONSOLES']
+ return build_vars + [k for k in d.keys() if k.startswith('QB_')]
+
+do_write_qemuboot_dtb[vardeps] += "${@' '.join(qemuboot_dtb_vars(d))}"
+do_write_qemuboot_dtb[vardepsexclude] += "TOPDIR"
diff --git a/conf/distro/include/meta-virt-container.inc b/conf/distro/include/meta-virt-container.inc
new file mode 100644
index 00000000..c3ac8394
--- /dev/null
+++ b/conf/distro/include/meta-virt-container.inc
@@ -0,0 +1,40 @@
+# These variables represent groupings of functionality in the CNCF
+# landscape. In particular, they are areas where there is a choice
+# between more than one implementation or an area where abstraction
+# is beneficial.
+#
+# The contents of the variables are are runtime components that
+# recipes may use for RDEPENDS.
+#
+# Build dependencies are not typically flexible, so do not currently
+# have DEPENDS equivalents for the components (i.e. DEPENDS on runc
+# versus crun).
+#
+# Distro features such as kubernetes or other container stacks
+# can be used to set different defaults for these variables.
+#
+# Note: these are "global" values, since they represent choices.
+# If more than of a grouping is required on target, then the variable
+# can be appended or set to multiple values. That being said, Recipes
+# should generally agree on the values, hence the global namespace.
+# Recipe specific choices can still be done, but they risk
+# conflicting on target or causing runtime issues / errors.
+#
+
+## CNCF "components"
+
+# engines: docker-ce/docker-moby, virtual-containerd, cri-o, podman
+VIRTUAL-RUNTIME_container_engine ??= "podman"
+# runtime: runc, crun, runv, runx
+VIRTUAL-RUNTIME_container_runtime ??= "virtual-runc"
+# networking: cni, netavark
+VIRTUAL-RUNTIME_container_networking ??= "cni"
+# dns: cni, aardvark-dns
+VIRTUAL-RUNTIME_container_dns ??= "cni"
+# orchestration: k8s, k3s
+VIRTUAL-RUNTIME_container_orchestration ??= "k3s"
+
+## Kubernetes terminology "components"
+
+VIRTUAL-RUNTIME_cri ??= "virtual-containerd"
+VIRTUAL-RUNTIME_cni ??= "cni"
diff --git a/conf/distro/include/meta-virt-default-versions.inc b/conf/distro/include/meta-virt-default-versions.inc
index 8a2db702..b62ec38d 100644
--- a/conf/distro/include/meta-virt-default-versions.inc
+++ b/conf/distro/include/meta-virt-default-versions.inc
@@ -1,4 +1,4 @@
# Meta-virtuailization PREFERED_VERSION
-PREFERRED_VERSION_xen ?= "4.15+stable%"
-PREFERRED_VERSION_xen-tools ?= "4.15+stable%"
+PREFERRED_VERSION_xen ?= "4.18+stable%"
+PREFERRED_VERSION_xen-tools ?= "4.18+stable%"
diff --git a/conf/distro/include/meta-virt-xen.inc b/conf/distro/include/meta-virt-xen.inc
index 02a78105..5fbb57f8 100644
--- a/conf/distro/include/meta-virt-xen.inc
+++ b/conf/distro/include/meta-virt-xen.inc
@@ -1,12 +1,15 @@
# Make sure Xen mode is enabled in qemu
-PACKAGECONFIG_append_pn-qemu = " xen"
+PACKAGECONFIG:append:pn-qemu = " xen"
# For builds for ARM platforms, enable fdt
-PACKAGECONFIG_append_pn-qemu_arm = " fdt"
-PACKAGECONFIG_append_pn-qemu_aarch64 = " fdt"
+PACKAGECONFIG:append:pn-qemu:arm = " fdt"
+PACKAGECONFIG:append:pn-qemu:aarch64 = " fdt"
# Xen on Raspberry Pi 4 64-bit support
XEN_RPI4_64_CONFIG_PATH ??= \
'dynamic-layers/raspberrypi/conf/distro/include/xen-raspberrypi4-64.inc'
include ${@bb.utils.contains('MACHINE', 'raspberrypi4-64', \
'${XEN_RPI4_64_CONFIG_PATH}', '', d)}
+
+# Set serial for working qemuboot console
+SERIAL_CONSOLES:qemuarm64 ?= "115200;ttyAMA0"
diff --git a/conf/distro/include/virt_security_flags.inc b/conf/distro/include/virt_security_flags.inc
index f4c288b8..3644d822 100644
--- a/conf/distro/include/virt_security_flags.inc
+++ b/conf/distro/include/virt_security_flags.inc
@@ -1,5 +1,5 @@
# Build errors with the pie options enabled
-SECURITY_CFLAGS_pn-libvirt = "${SECURITY_NO_PIE_CFLAGS}"
+SECURITY_CFLAGS:pn-libvirt = "${SECURITY_NO_PIE_CFLAGS}"
# This has text relco errors with the pie options enabled
-SECURITY_CFLAGS_pn-lxc = "${SECURITY_NO_PIE_CFLAGS}"
+SECURITY_CFLAGS:pn-lxc = "${SECURITY_NO_PIE_CFLAGS}"
diff --git a/conf/layer.conf b/conf/layer.conf
index f1f468bb..7c8e3701 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -13,7 +13,7 @@ LICENSE_PATH += "${LAYERDIR}/files/custom-licenses"
BBFILES_DYNAMIC += " \
raspberrypi:${LAYERDIR}/dynamic-layers/raspberrypi/*/*/*.bb \
- raspberrypi:${LAYERDIR}/dynamic-layers/rasbperrypi/*/*/*.bbappend \
+ raspberrypi:${LAYERDIR}/dynamic-layers/raspberrypi/*/*/*.bbappend \
xilinx:${LAYERDIR}/dynamic-layers/xilinx/*/*/*.bb \
xilinx:${LAYERDIR}/dynamic-layers/xilinx/*/*/*.bbappend \
"
@@ -21,7 +21,7 @@ BBFILES_DYNAMIC += " \
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_virtualization-layer = "1"
-LAYERSERIES_COMPAT_virtualization-layer = "gatesgarth hardknott honister"
+LAYERSERIES_COMPAT_virtualization-layer = "nanbield scarthgap"
LAYERDEPENDS_virtualization-layer = " \
core \
openembedded-layer \
@@ -41,7 +41,7 @@ require conf/distro/include/virt_security_flags.inc
PREFERRED_PROVIDER_virtual/runc ?= "runc-opencontainers"
PREFERRED_PROVIDER_virtual/containerd ?= "containerd-opencontainers"
-PREFERRED_PROVIDER_virtual/docker ?= "docker-ce"
+PREFERRED_PROVIDER_virtual/docker ?= "docker-moby"
# Sanity check for meta-virtualization layer.
# Setting SKIP_META_VIRT_SANITY_CHECK to "1" would skip the bbappend files check.
@@ -52,10 +52,13 @@ INHERIT += "sanity-meta-virt"
# layer.conf load time, we delay using a special bbclass that simply includes
# the META_VIRT_CONFIG_PATH file, and likewise for the Xen and k8s configs
META_VIRT_CONFIG_PATH = "${LAYERDIR}/conf/distro/include/meta-virt-default-versions.inc"
+META_VIRT_CONTAINER_CONFIG_PATH = "${LAYERDIR}/conf/distro/include/meta-virt-container.inc"
META_VIRT_XEN_CONFIG_PATH = "${LAYERDIR}/conf/distro/include/meta-virt-xen.inc"
K8S_CONFIG_PATH = "${LAYERDIR}/conf/distro/include/k8s-versions.inc"
-USER_CLASSES_append = " meta-virt-cfg"
-USER_CLASSES_append = " meta-virt-k8s-cfg"
-USER_CLASSES_append = " meta-virt-xen-cfg"
+USER_CLASSES:append = " meta-virt-cfg"
+USER_CLASSES:append = " meta-virt-container-cfg"
+USER_CLASSES:append = " meta-virt-k8s-cfg"
+USER_CLASSES:append = " meta-virt-xen-cfg"
+USER_CLASSES:append = " meta-virt-hosts"
HOSTTOOLS_NONFATAL += "getent"
diff --git a/conf/multiconfig/container.conf b/conf/multiconfig/container.conf
new file mode 100644
index 00000000..f1255521
--- /dev/null
+++ b/conf/multiconfig/container.conf
@@ -0,0 +1,3 @@
+DISTRO = "poky"
+MACHINE = "qemux86-64"
+# TMPDIR = "container-tmp"
diff --git a/docs/00-INDEX b/docs/00-INDEX
index 5aa1b3c5..6659fbee 100644
--- a/docs/00-INDEX
+++ b/docs/00-INDEX
@@ -11,5 +11,8 @@ alphabetical order as well.
openvswitch.txt
- example on how to setup openvswitch with qemu/kvm.
+podman.txt
+ - documentation on podman container engine integration.
+
xvisor.txt
- example on how to setup Xvisor for RISC-V QEMU.
diff --git a/docs/podman.txt b/docs/podman.txt
new file mode 100644
index 00000000..66a69b3c
--- /dev/null
+++ b/docs/podman.txt
@@ -0,0 +1,14 @@
+Podman
+======
+
+Rootless mode
+-------------
+
+Podman is a daemonless container engine that has as one of its features the
+ability to run in rootless mode. This requires a set of configurations and
+additional components. The OE/Yocto integration configures podman with this
+support disabled by default. This can be changed via configuration files
+(distro, local.conf, etc.) or bbappends using the `PACKAGECONFIG` variable.
+
+To enable rootless support, add `rootless` to the `PACKAGECONFIG` podman
+recipe variable.
diff --git a/docs/podman.txt.license b/docs/podman.txt.license
new file mode 100644
index 00000000..c7348705
--- /dev/null
+++ b/docs/podman.txt.license
@@ -0,0 +1,3 @@
+SPDX-FileCopyrightText: Huawei Inc.
+
+SPDX-License-Identifier: MIT
diff --git a/dynamic-layers/raspberrypi/conf/distro/include/xen-raspberrypi4-64.inc b/dynamic-layers/raspberrypi/conf/distro/include/xen-raspberrypi4-64.inc
index 2ea19dd4..2d5a167c 100644
--- a/dynamic-layers/raspberrypi/conf/distro/include/xen-raspberrypi4-64.inc
+++ b/dynamic-layers/raspberrypi/conf/distro/include/xen-raspberrypi4-64.inc
@@ -5,15 +5,15 @@ RPI_USE_U_BOOT = "1"
ENABLE_UART = "1"
# Build the bootable SD card image
-IMAGE_CLASSES_append = " sdcard_image-rpi"
-IMAGE_FSTYPES_append = " rpi-sdimg"
+IMAGE_CLASSES:append = " sdcard_image-rpi"
+IMAGE_FSTYPES:append = " rpi-sdimg"
# Add Xen to the bootable SD card image
-RPI_SDIMG_EXTRA_DEPENDS_append = " xen:do_deploy"
+RPI_SDIMG_EXTRA_DEPENDS:append = " xen:do_deploy"
DEPLOYPAYLOAD = "xen-${MACHINE}:xen"
# We need the GIC enabled for Xen to work
-RPI_EXTRA_CONFIG_append = "\nenable_gic=1"
+RPI_EXTRA_CONFIG:append = "\nenable_gic=1"
# Increase boot partition for space for kernel and Xen
BOOT_SPACE = "61440"
diff --git a/dynamic-layers/raspberrypi/recipes-bsp/xen-rpi-u-boot-scr/files/boot.cmd.xen.in b/dynamic-layers/raspberrypi/recipes-bsp/xen-rpi-u-boot-scr/files/boot.cmd.xen.in
index 0367e36c..98742200 100644
--- a/dynamic-layers/raspberrypi/recipes-bsp/xen-rpi-u-boot-scr/files/boot.cmd.xen.in
+++ b/dynamic-layers/raspberrypi/recipes-bsp/xen-rpi-u-boot-scr/files/boot.cmd.xen.in
@@ -13,10 +13,6 @@ fdt resize 0x1000
echo Add boot arguments for Xen
fdt set /chosen xen,xen-bootargs "console=dtuart dtuart=/soc/serial@7e215040 dom0_mem='@@RPI_DOM0_MEM@@' @@RPI_DEBUG_XEN_ARGS@@"
-echo Add boot arguments for dom0
-setenv dom0_bootargs "console=hvc0 earlycon=xenboot debug root=/dev/mmcblk0p2 rootwait"
-fdt set /chosen xen,dom0-bootargs \"${dom0_bootargs}\"
-
echo Add a dom0 node to chosen to put Linux boot information in
fdt mknode /chosen dom0
@@ -32,6 +28,13 @@ fdt rm /scb/pcie@7d500000/pci@1,0/usb@1,0
echo Delay to allow the MMC card to be ready
sleep 1
+# Retrieve PARTUUID for the rootfs partition of the sdcard
+part uuid mmc 1:2 rootfs_partuuid
+
+echo Add boot arguments for dom0
+setenv dom0_bootargs "console=hvc0 earlycon=xenboot debug root=PARTUUID=${rootfs_partuuid} rootwait"
+fdt set /chosen xen,dom0-bootargs \"${dom0_bootargs}\"
+
echo Load Xen into memory
fatload mmc 1:1 ${xen_loadaddr} xen
echo Xen loaded, size: 0x$filesize
diff --git a/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-yocto-dev.bbappend b/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-yocto-dev.bbappend
deleted file mode 100644
index 8381e447..00000000
--- a/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-yocto-dev.bbappend
+++ /dev/null
@@ -1,8 +0,0 @@
-# For a Xen-enabled distro on the Raspberry Pi, override the contents of cmdline.txt
-# with Xen-on-ARM-specific command line options
-
-KBRANCH_raspberrypi4-64 ?= "standard/bcm-2xxx-rpi"
-KMACHINE_raspberrypi4-64 ?= "bcm-2xxx-rpi4"
-COMPATIBLE_MACHINE_raspberrypi4-64 = "(raspberrypi4-64)"
-
-require linux-yocto_xen-rpi.inc
diff --git a/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-yocto_5.10.bbappend b/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-yocto_5.10.bbappend
deleted file mode 100644
index af92493d..00000000
--- a/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-yocto_5.10.bbappend
+++ /dev/null
@@ -1,6 +0,0 @@
-# Enable use of the linux-yocto 5.10 kernel for the Raspberry Pi 4
-KBRANCH_raspberrypi4-64 ?= "v5.10/standard/bcm-2xxx-rpi"
-KMACHINE_raspberrypi4-64 ?= "bcm-2xxx-rpi4"
-COMPATIBLE_MACHINE_raspberrypi4-64 = "(raspberrypi4-64)"
-
-require linux-yocto_xen-rpi.inc
diff --git a/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-yocto_6.6.bbappend b/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-yocto_6.6.bbappend
new file mode 100644
index 00000000..2e2f92b6
--- /dev/null
+++ b/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-yocto_6.6.bbappend
@@ -0,0 +1,6 @@
+# Enable use of the linux-yocto kernel for the Raspberry Pi 4
+KBRANCH:raspberrypi4-64 ?= "v6.6/standard/bcm-2xxx-rpi"
+KMACHINE:raspberrypi4-64 ?= "bcm-2xxx-rpi4"
+COMPATIBLE_MACHINE:raspberrypi4-64 = "(raspberrypi4-64)"
+
+require linux-yocto_xen-rpi.inc
diff --git a/dynamic-layers/xilinx/recipes-bsp/device-tree/device-tree.bbappend b/dynamic-layers/xilinx/recipes-bsp/device-tree/device-tree.bbappend
new file mode 100644
index 00000000..e2358262
--- /dev/null
+++ b/dynamic-layers/xilinx/recipes-bsp/device-tree/device-tree.bbappend
@@ -0,0 +1,19 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
+
+ENABLE_XEN_DTSI ?= ""
+ENABLE_XEN_QEMU_DTSI ?= ""
+
+XEN_EXTRA_OVERLAYS = ""
+XEN_EXTRA_QEMU_OVERLAYS = ""
+
+XEN_EXTRA_OVERLAYS:zynqmp = "zynqmp-xen.dtsi"
+XEN_EXTRA_QEMU_OVERLAYS:zynqmp = "zynqmp-xen.dtsi zynqmp-xen-qemu.dtsi"
+
+XEN_EXTRA_OVERLAYS:versal = "versal-xen.dtsi"
+XEN_EXTRA_QEMU_OVERLAYS:versal = "versal-xen.dtsi versal-xen-qemu.dtsi"
+
+XEN_EXTRA_OVERLAYS:versal-net = "versal-net-xen.dtsi"
+XEN_EXTRA_QEMU_OVERLAYS:versal-net = "versal-net-xen.dtsi versal-net-xen-qemu.dtsi"
+
+EXTRA_OVERLAYS:append = "${@' ${XEN_EXTRA_OVERLAYS}' if d.getVar('ENABLE_XEN_DTSI') == '1' else ''}"
+EXTRA_OVERLAYS:append = "${@' ${XEN_EXTRA_QEMU_OVERLAYS}' if d.getVar('ENABLE_XEN_QEMU_DTSI') == '1' else ''}"
diff --git a/dynamic-layers/xilinx/recipes-bsp/device-tree/files/versal-net-xen-qemu.dtsi b/dynamic-layers/xilinx/recipes-bsp/device-tree/files/versal-net-xen-qemu.dtsi
new file mode 100644
index 00000000..336d7a25
--- /dev/null
+++ b/dynamic-layers/xilinx/recipes-bsp/device-tree/files/versal-net-xen-qemu.dtsi
@@ -0,0 +1,2 @@
+/ {
+};
diff --git a/dynamic-layers/xilinx/recipes-bsp/device-tree/files/versal-net-xen.dtsi b/dynamic-layers/xilinx/recipes-bsp/device-tree/files/versal-net-xen.dtsi
new file mode 100644
index 00000000..7da1f9f1
--- /dev/null
+++ b/dynamic-layers/xilinx/recipes-bsp/device-tree/files/versal-net-xen.dtsi
@@ -0,0 +1,67 @@
+&smmu {
+ status = "okay";
+};
+
+&adma0 {
+ iommus = <&smmu 0x210>;
+};
+
+&adma1 {
+ iommus = <&smmu 0x212>;
+};
+
+&adma2 {
+ iommus = <&smmu 0x214>;
+};
+
+&adma3 {
+ iommus = <&smmu 0x216>;
+};
+
+&adma4 {
+ iommus = <&smmu 0x218>;
+};
+
+&adma5 {
+ iommus = <&smmu 0x21a>;
+};
+
+&adma6 {
+ iommus = <&smmu 0x21c>;
+};
+
+&adma7 {
+ iommus = <&smmu 0x21e>;
+};
+
+&dwc3_0 {
+ iommus = <&smmu 0x230>;
+};
+
+&dwc3_1 {
+ iommus = <&smmu 0x232>;
+};
+
+&gem0 {
+ iommus = <&smmu 0x234>;
+};
+
+&gem1 {
+ iommus = <&smmu 0x235>;
+};
+
+&sdhci0 {
+ iommus = <&smmu 0x242>;
+};
+
+&sdhci1 {
+ iommus = <&smmu 0x243>;
+};
+
+&qspi {
+ iommus = <&smmu 0x244>;
+};
+
+&ospi {
+ iommus = <&smmu 0x245>;
+};
diff --git a/dynamic-layers/xilinx/recipes-bsp/device-tree/files/versal-xen-qemu.dtsi b/dynamic-layers/xilinx/recipes-bsp/device-tree/files/versal-xen-qemu.dtsi
new file mode 100644
index 00000000..336d7a25
--- /dev/null
+++ b/dynamic-layers/xilinx/recipes-bsp/device-tree/files/versal-xen-qemu.dtsi
@@ -0,0 +1,2 @@
+/ {
+};
diff --git a/dynamic-layers/xilinx/recipes-bsp/device-tree/files/versal-xen.dtsi b/dynamic-layers/xilinx/recipes-bsp/device-tree/files/versal-xen.dtsi
new file mode 100644
index 00000000..6782e925
--- /dev/null
+++ b/dynamic-layers/xilinx/recipes-bsp/device-tree/files/versal-xen.dtsi
@@ -0,0 +1,59 @@
+&smmu {
+ status = "okay";
+};
+
+&gem0 {
+ iommus = <&smmu 0x234>;
+};
+
+&gem1 {
+ iommus = <&smmu 0x235>;
+};
+
+&dwc3_0 {
+ iommus = <&smmu 0x230>;
+};
+
+&qspi {
+ iommus = <&smmu 0x244>;
+};
+
+&lpd_dma_chan0 {
+ iommus = <&smmu 0x210>;
+};
+
+&lpd_dma_chan1 {
+ iommus = <&smmu 0x212>;
+};
+
+&lpd_dma_chan2 {
+ iommus = <&smmu 0x214>;
+};
+
+&lpd_dma_chan3 {
+ iommus = <&smmu 0x216>;
+};
+
+&lpd_dma_chan4 {
+ iommus = <&smmu 0x218>;
+};
+
+&lpd_dma_chan5 {
+ iommus = <&smmu 0x21a>;
+};
+
+&lpd_dma_chan6 {
+ iommus = <&smmu 0x21c>;
+};
+
+&lpd_dma_chan7 {
+ iommus = <&smmu 0x21e>;
+};
+
+&sdhci0 {
+ iommus = <&smmu 0x242>;
+};
+
+&sdhci1 {
+ iommus = <&smmu 0x243>;
+};
diff --git a/dynamic-layers/xilinx/recipes-bsp/device-tree/files/zynqmp-xen-qemu.dtsi b/dynamic-layers/xilinx/recipes-bsp/device-tree/files/zynqmp-xen-qemu.dtsi
new file mode 100644
index 00000000..336d7a25
--- /dev/null
+++ b/dynamic-layers/xilinx/recipes-bsp/device-tree/files/zynqmp-xen-qemu.dtsi
@@ -0,0 +1,2 @@
+/ {
+};
diff --git a/dynamic-layers/xilinx/recipes-bsp/device-tree/files/zynqmp-xen.dtsi b/dynamic-layers/xilinx/recipes-bsp/device-tree/files/zynqmp-xen.dtsi
new file mode 100644
index 00000000..3d75be65
--- /dev/null
+++ b/dynamic-layers/xilinx/recipes-bsp/device-tree/files/zynqmp-xen.dtsi
@@ -0,0 +1,123 @@
+&smmu {
+ status = "okay";
+};
+
+&gem0 {
+ iommus = <&smmu 0x874>;
+};
+
+&gem1 {
+ iommus = <&smmu 0x875>;
+};
+
+&gem2 {
+ iommus = <&smmu 0x876>;
+};
+
+&gem3 {
+ iommus = <&smmu 0x877>;
+};
+
+&dwc3_0 {
+ iommus = <&smmu 0x860>;
+};
+
+&dwc3_1 {
+ iommus = <&smmu 0x861>;
+};
+
+&qspi {
+ iommus = <&smmu 0x873>;
+};
+
+&lpd_dma_chan1 {
+ iommus = <&smmu 0x868>;
+};
+
+&lpd_dma_chan2 {
+ iommus = <&smmu 0x869>;
+};
+
+&lpd_dma_chan3 {
+ iommus = <&smmu 0x86a>;
+};
+
+&lpd_dma_chan4 {
+ iommus = <&smmu 0x86b>;
+};
+
+&lpd_dma_chan5 {
+ iommus = <&smmu 0x86c>;
+};
+
+&lpd_dma_chan6 {
+ iommus = <&smmu 0x86d>;
+};
+
+&lpd_dma_chan7 {
+ iommus = <&smmu 0x86e>;
+};
+
+&lpd_dma_chan8 {
+ iommus = <&smmu 0x86f>;
+};
+
+&fpd_dma_chan1 {
+ iommus = <&smmu 0x14e8>;
+};
+
+&fpd_dma_chan2 {
+ iommus = <&smmu 0x14e9>;
+};
+
+&fpd_dma_chan3 {
+ iommus = <&smmu 0x14ea>;
+};
+
+&fpd_dma_chan4 {
+ iommus = <&smmu 0x14eb>;
+};
+
+&fpd_dma_chan5 {
+ iommus = <&smmu 0x14ec>;
+};
+
+&fpd_dma_chan6 {
+ iommus = <&smmu 0x14ed>;
+};
+
+&fpd_dma_chan7 {
+ iommus = <&smmu 0x14ee>;
+};
+
+&fpd_dma_chan8 {
+ iommus = <&smmu 0x14ef>;
+};
+
+&sdhci0 {
+ iommus = <&smmu 0x870>;
+};
+
+&sdhci1 {
+ iommus = <&smmu 0x871>;
+};
+
+&nand0 {
+ iommus = <&smmu 0x872>;
+};
+
+&pcie {
+ iommus = <&smmu 0x4d0>;
+};
+
+&zynqmp_dpsub {
+ iommus = <&smmu 0xce3>;
+};
+
+&zynqmp_dpdma {
+ iommus = <&smmu 0xce4>;
+};
+
+&sata {
+ iommus = <&smmu 0x4c0>, <&smmu 0x4c1>, <&smmu 0x4c2>, <&smmu 0x4c3>;
+};
diff --git a/dynamic-layers/xilinx/recipes-bsp/u-boot/u-boot-xlnx-scr.bbappend b/dynamic-layers/xilinx/recipes-bsp/u-boot/u-boot-xlnx-scr.bbappend
new file mode 100644
index 00000000..ae847cbc
--- /dev/null
+++ b/dynamic-layers/xilinx/recipes-bsp/u-boot/u-boot-xlnx-scr.bbappend
@@ -0,0 +1,2 @@
+# Include xen-boot-cmd.inc only if xen distro features is enabled.
+include ${@bb.utils.contains('DISTRO_FEATURES', 'xen', 'xen-boot-cmd.inc', '', d)}
diff --git a/dynamic-layers/xilinx/recipes-bsp/u-boot/u-boot-xlnx-scr/boot.cmd.xen b/dynamic-layers/xilinx/recipes-bsp/u-boot/u-boot-xlnx-scr/boot.cmd.xen
new file mode 100644
index 00000000..25e5842c
--- /dev/null
+++ b/dynamic-layers/xilinx/recipes-bsp/u-boot/u-boot-xlnx-scr/boot.cmd.xen
@@ -0,0 +1,80 @@
+# This is a boot script for U-Boot with Xen parameters used by yocto machine
+# configuration file.
+# Generate boot.scr:
+# mkimage -c none -A arm -T script -d boot.cmd.xen boot.scr
+#
+################
+xen_name=@@XEN_IMAGE_NAME@@
+kernel_name=@@KERNEL_IMAGE@@
+rootfs_name=@@RAMDISK_IMAGE@@
+@@PRE_BOOTENV@@
+
+for boot_target in ${boot_targets};
+do
+ echo "Trying to load boot images from ${boot_target}"
+ if test "${boot_target}" = "jtag" ; then
+ tftpboot @@KERNEL_LOAD_ADDRESS@@ ${kernel_name}
+ setenv kernel_size 0x$filesize;
+ tftpboot @@RAMDISK_IMAGE_ADDRESS@@ ${rootfs_name}
+ setenv ramdisk_size 0x$filesize;
+ tftpboot @@XEN_LOAD_ADDRESS@@ ${xen_name}
+ tftpboot @@DEVICETREE_ADDRESS@@ system.dtb
+ fi
+ if test "${boot_target}" = "mmc0" || test "${boot_target}" = "mmc1" || test "${boot_target}" = "usb0" || test "${boot_target}" = "usb1"; then
+ if test "${boot_target}" = "mmc0" || test "${boot_target}" = "mmc1"; then
+ setenv bootdev mmcblk${devnum}p
+ fi
+ if test "${boot_target}" = "usb0" || test "${boot_target}" = "usb1"; then
+ setenv bootdev sda
+ fi
+ echo "Checking for /${xen_name}"
+ if test -e ${devtype} ${devnum}:${distro_bootpart} /${xen_name}; then
+ echo "Loading ${xen_name}";
+ fatload ${devtype} ${devnum}:${distro_bootpart} @@XEN_LOAD_ADDRESS@@ ${xen_name};
+ fi
+ echo "Checking for /${kernel_name}"
+ if test -e ${devtype} ${devnum}:${distro_bootpart} /${kernel_name}; then
+ echo "Loading ${kernel_name}";
+ fatload ${devtype} ${devnum}:${distro_bootpart} @@KERNEL_LOAD_ADDRESS@@ ${kernel_name};
+ setenv kernel_size 0x$filesize;
+ fi
+ echo "Checking for /system.dtb"
+ if test -e ${devtype} ${devnum}:${distro_bootpart} /system.dtb; then
+ echo "Loading system.dtb";
+ fatload ${devtype} ${devnum}:${distro_bootpart} @@DEVICETREE_ADDRESS@@ system.dtb;
+ fi
+ echo "Checking for /${rootfs_name}"
+ if test -e ${devtype} ${devnum}:${distro_bootpart} /${rootfs_name} && test "${skip_ramdisk}" != "yes"; then
+ echo "Loading ${rootfs_name}";
+ fatload ${devtype} ${devnum}:${distro_bootpart} @@RAMDISK_IMAGE_ADDRESS@@ ${rootfs_name};
+ setenv ramdisk_size 0x$filesize;
+ fi
+ fi
+ fdt addr @@DEVICETREE_ADDRESS@@
+ fdt resize 0x1000
+ fdt get value bootargs /chosen bootargs
+ fdt set /chosen \#address-cells <0x2>
+ fdt set /chosen \#size-cells <0x2>
+ setenv xen_bootargs "console=dtuart dtuart=@@XEN_SERIAL_CONSOLES@@ dom0_mem=@@DOM0_MEM@@ dom0_max_vcpus=@@DOM0_MAX_VCPUS@@ bootscrub=0 vwfi=native @@XEN_CMDLINE_APPEND@@"
+ fdt set /chosen xen,xen-bootargs \"${xen_bootargs}\"
+
+ # Check that env $ramdisk_size is 0 or not.
+ if test -n ${ramdisk_size}; then
+ fdt mknod /chosen dom0-ramdisk
+ fdt set /chosen/dom0-ramdisk compatible "xen,linux-initrd" "xen,multiboot-module" "multiboot,module"
+ fdt set /chosen/dom0-ramdisk reg <0x0 @@RAMDISK_IMAGE_ADDRESS@@ 0x0 ${ramdisk_size}>
+ setenv rootfs_param @@KERNEL_ROOT_RAMDISK@@
+ else
+ setenv rootfs_param @@KERNEL_ROOT_SD@@
+ fi
+
+ fdt mknod /chosen dom0
+ fdt set /chosen/dom0 compatible "xen,linux-zimage" "xen,multiboot-module" "multiboot,module"
+ fdt set /chosen/dom0 reg <0x0 @@KERNEL_LOAD_ADDRESS@@ 0x0 ${kernel_size}>
+ setenv dom0_bootargs "console=hvc0 earlycon=xen earlyprintk=xen clk_ignore_unused ${rootfs_param}"
+ fdt set /chosen xen,dom0-bootargs \"${dom0_bootargs}\"
+
+ setenv fdt_high 0xffffffffffffffff
+
+ @@KERNEL_BOOTCMD@@ @@XEN_LOAD_ADDRESS@@ - @@DEVICETREE_ADDRESS@@
+done
diff --git a/dynamic-layers/xilinx/recipes-bsp/u-boot/xen-boot-cmd.inc b/dynamic-layers/xilinx/recipes-bsp/u-boot/xen-boot-cmd.inc
new file mode 100644
index 00000000..7a4e41a6
--- /dev/null
+++ b/dynamic-layers/xilinx/recipes-bsp/u-boot/xen-boot-cmd.inc
@@ -0,0 +1,38 @@
+FILESEXTRAPATHS:append := ":${THISDIR}/u-boot-xlnx-scr"
+
+SRC_URI += "file://boot.cmd.xen"
+
+# Image offsets for Xen boot
+KERNEL_OFFSET:zynqmp ?= "0xE00000"
+KERNEL_OFFSET:versal ?= "0xE00000"
+
+DEVICETREE_OFFSET:zynqmp ?= "0xC000000"
+DEVICETREE_OFFSET:versal ?= "0xC000000"
+
+RAMDISK_OFFSET:zynqmp ?= "0x2600000"
+RAMDISK_OFFSET:versal ?= "0x2600000"
+
+XEN_OFFSET:zynqmp ?= "0xBA00000"
+XEN_OFFSET:versal ?= "0xBA00000"
+XEN_LOAD_ADDRESS ?= "${@append_baseaddr(d,d.getVar('XEN_OFFSET'))}"
+
+# If dom0-ramdisk is used for Xen boot then set RAMDISK image to cpio.gz
+XEN_IMAGE_NAME ?= "xen"
+RAMDISK_IMAGE ?= "rootfs.cpio.gz"
+
+# Set the amount of memory for dom0 depending on total available memory size(DDR).
+DOM0_MEM ?= "1500M"
+
+# Specify which UART console Xen should use. You can sepecify the devicetree
+# alias or full path to a node in the devicetree
+# XEN_SERIAL_CONSOLES ?= "serial0" or XEN_SERIAL_CONSOLES ?= "/axi/serial@ff000000"
+XEN_SERIAL_CONSOLES ?= "serial0"
+
+# Specify additional Xen paramaters which will be appended to xen-bootargs
+# This can alos be used for debugging purposes.
+# Examples: XEN_CMDLINE_APPEND ?= "sched=credit loglvl=all guest_loglvl=debug"
+XEN_CMDLINE_APPEND ?= ""
+
+# Specify the max number of vcpus for dom0
+# Example usage: DOM0_MAX_VCPUS = "2" or DOM0_MAX_VCPUS = "2-4"
+DOM0_MAX_VCPUS ?= "1"
diff --git a/dynamic-layers/xilinx/recipes-extended/xen/xen-xilinx.inc b/dynamic-layers/xilinx/recipes-extended/xen/xen-xilinx.inc
index d27362a3..18215572 100644
--- a/dynamic-layers/xilinx/recipes-extended/xen/xen-xilinx.inc
+++ b/dynamic-layers/xilinx/recipes-extended/xen/xen-xilinx.inc
@@ -1,10 +1,10 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
DEPENDS += "u-boot-mkimage-native"
DEPENDS += "dtc-native"
XENIMAGE_KERNEL_LOADADDRESS ?= "0x6000000"
-do_deploy_append() {
+do_deploy:append() {
if [ -f ${DEPLOYDIR}/xen-${MACHINE} ]; then
uboot-mkimage -A arm64 -T kernel -a ${XENIMAGE_KERNEL_LOADADDRESS} -e ${XENIMAGE_KERNEL_LOADADDRESS} -C none -d ${DEPLOYDIR}/xen-${MACHINE} ${DEPLOYDIR}/xen.ub
fi
diff --git a/dynamic-layers/xilinx/recipes-extended/xen/xen_4.14.bbappend b/dynamic-layers/xilinx/recipes-extended/xen/xen_%.bbappend
index 54edd1ba..54edd1ba 100644
--- a/dynamic-layers/xilinx/recipes-extended/xen/xen_4.14.bbappend
+++ b/dynamic-layers/xilinx/recipes-extended/xen/xen_%.bbappend
diff --git a/dynamic-layers/xilinx/recipes-extended/xen/xen_git.bbappend b/dynamic-layers/xilinx/recipes-extended/xen/xen_git.bbappend
deleted file mode 100644
index 54edd1ba..00000000
--- a/dynamic-layers/xilinx/recipes-extended/xen/xen_git.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-include xen-xilinx.inc
diff --git a/lib/oeqa/runtime/cases/xtf_minimal.py b/lib/oeqa/runtime/cases/xtf_minimal.py
new file mode 100644
index 00000000..6094cd92
--- /dev/null
+++ b/lib/oeqa/runtime/cases/xtf_minimal.py
@@ -0,0 +1,116 @@
+#
+# SPDX-License-Identifier: MIT
+#
+# Author: Christopher Clark
+# Copyright (c) Star Lab Corp, 2021
+#
+# Integration of the Xen Test Framework (XTF) into OpenEmbedded QA
+#
+# Since not all XTF test cases are appropriate for all test environments,
+# images or machine configurations the selection of XTF test cases to run
+# is determined by variables that can be set in an image recipe.
+#
+# * XTF_TEST_CASES_POPULATE
+# Specifies the list of queries passed to xtf-runner to populate the test list.
+# eg. 'pv64 livepatch-priv-check'
+#
+# Since the space character is meaningful and may be required within a populate clause,
+# the '|' character is used for separating multiple queries.
+# eg. 'pv64 livepatch-priv-check|pv32pae selftest'
+#
+# * XTF_TEST_CASES_SKIP
+# A space-separate list of test cases that should be skipped even if returned
+# from the queries specified in XTF_TEST_CASES_POPULATE.
+# eg. 'test-pv64-livepatch-priv-check'
+#
+# * XTF_TEST_CASES_REQUIRE
+# A space-separate list of test cases that must not be skipped even if missing
+# from the results of the queries specified in XTF_TEST_CASES_POPULATE.
+
+#----------
+# The default single test case here is chosen because it exercises XTF
+# and just Xen itself rather than any specifics of the hardware
+# (virtual or not) that Xen is running on.
+# TODO: this is an x86-specific test - revisit this choice when XTF supports Arm
+DEFAULT_POPULATE = 'pv64 livepatch-priv-check'
+#----------
+
+import json
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.core.decorator.depends import OETestDepends
+from oeqa.core.decorator.oetimeout import OETimeout
+from oeqa.runtime.decorator.package import OEHasPackage
+
+def xtf_runner_exit_status(state):
+ """ Convert a xtf-runner exit code to a test result. """
+ return { 0: "SUCCESS",
+ 1: "sys.exit 1",
+ 2: "sys.exit 2",
+ 3: "SKIP",
+ 4: "ERROR",
+ 5: "FAILURE",
+ 6: "CRASH",
+ }[state]
+
+xtf_rundir = '/usr/libexec/xtf'
+
+class XTFMinimalTest(OERuntimeTestCase):
+
+ def query_xtf_cases(self, query_item):
+ (status, output) = self.target.run(
+ 'cd %s; ./xtf-runner --list %s' % \
+ (xtf_rundir, query_item))
+ self.assertTrue(status == 0, msg='XTF runner failed')
+
+ populate_case_lines = output.split('\n')
+ while '' in populate_case_lines:
+ populate_case_lines.remove('')
+
+ return list(map(lambda x: x.lstrip().rstrip(), populate_case_lines))
+
+ def get_xtf_case_list(self):
+ xtf_cases = []
+
+ populate = self.tc.td.get('XTF_TEST_CASES_POPULATE')
+ skip = self.tc.td.get('XTF_TEST_CASES_SKIP')
+ require = self.tc.td.get('XTF_TEST_CASES_REQUIRE')
+
+ if populate is None:
+ populate = DEFAULT_POPULATE
+
+ for query_item in populate.split('|'):
+ xtf_cases.extend( self.query_xtf_cases(query_item) )
+
+ if skip is not None:
+ for skip_item in skip.split(' '):
+ while skip_item in xtf_cases:
+ xtf_cases.remove(skip_item)
+
+ if require is not None:
+ for require_item in require.split(' '):
+ if require_item == '':
+ continue
+ if not require_item in xtf_cases:
+ xtf_cases.append(require_item)
+
+ self.logger.info('XTF cases: %s' % str(xtf_cases))
+ return xtf_cases
+
+ def run_xtf_case(self, xtf_case_name):
+ (status, output) = self.target.run('cd %s; ./xtf-runner %s' % \
+ (xtf_rundir, xtf_case_name))
+ self.assertTrue(status == 0, msg='XTF test %s failed: %s' % \
+ (xtf_case_name, xtf_runner_exit_status(status)))
+
+ @OETimeout(2400)
+ @OETestDepends(['ssh.SSHTest.test_ssh'])
+ @OEHasPackage(['xtf'])
+ @OEHasPackage(['xen-tools'])
+ def test_xtf_minimal(self):
+
+ xtf_cases = self.get_xtf_case_list()
+
+ for xtf_case_name in xtf_cases:
+ self.logger.debug('Running XTF case: %s' % xtf_case_name)
+
+ self.run_xtf_case(xtf_case_name)
diff --git a/recipes-containers/aardvark-dns/aardvark-dns-crates.inc b/recipes-containers/aardvark-dns/aardvark-dns-crates.inc
new file mode 100644
index 00000000..55c2f308
--- /dev/null
+++ b/recipes-containers/aardvark-dns/aardvark-dns-crates.inc
@@ -0,0 +1,286 @@
+# Autogenerated with 'bitbake -c update_crates aardvark-dns'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/addr2line/0.21.0 \
+ crate://crates.io/adler/1.0.2 \
+ crate://crates.io/android-tzdata/0.1.1 \
+ crate://crates.io/android_system_properties/0.1.5 \
+ crate://crates.io/anstream/0.6.4 \
+ crate://crates.io/anstyle/1.0.4 \
+ crate://crates.io/anstyle-parse/0.2.2 \
+ crate://crates.io/anstyle-query/1.0.0 \
+ crate://crates.io/anstyle-wincon/3.0.1 \
+ crate://crates.io/anyhow/1.0.80 \
+ crate://crates.io/async-broadcast/0.7.0 \
+ crate://crates.io/async-trait/0.1.74 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/backtrace/0.3.69 \
+ crate://crates.io/bitflags/2.4.1 \
+ crate://crates.io/bumpalo/3.14.0 \
+ crate://crates.io/bytes/1.5.0 \
+ crate://crates.io/cc/1.0.83 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/chrono/0.4.34 \
+ crate://crates.io/clap/4.4.10 \
+ crate://crates.io/clap_builder/4.4.9 \
+ crate://crates.io/clap_derive/4.4.7 \
+ crate://crates.io/clap_lex/0.6.0 \
+ crate://crates.io/colorchoice/1.0.0 \
+ crate://crates.io/concurrent-queue/2.3.0 \
+ crate://crates.io/core-foundation-sys/0.8.4 \
+ crate://crates.io/crossbeam-utils/0.8.16 \
+ crate://crates.io/data-encoding/2.4.0 \
+ crate://crates.io/deranged/0.3.9 \
+ crate://crates.io/endian-type/0.1.2 \
+ crate://crates.io/enum-as-inner/0.6.0 \
+ crate://crates.io/error-chain/0.12.4 \
+ crate://crates.io/event-listener/5.0.0 \
+ crate://crates.io/event-listener-strategy/0.5.0 \
+ crate://crates.io/form_urlencoded/1.2.0 \
+ crate://crates.io/futures-channel/0.3.29 \
+ crate://crates.io/futures-core/0.3.30 \
+ crate://crates.io/futures-io/0.3.29 \
+ crate://crates.io/futures-sink/0.3.29 \
+ crate://crates.io/futures-task/0.3.30 \
+ crate://crates.io/futures-util/0.3.30 \
+ crate://crates.io/getrandom/0.2.11 \
+ crate://crates.io/gimli/0.28.0 \
+ crate://crates.io/heck/0.4.1 \
+ crate://crates.io/hermit-abi/0.3.3 \
+ crate://crates.io/hickory-client/0.24.0 \
+ crate://crates.io/hickory-proto/0.24.0 \
+ crate://crates.io/hickory-server/0.24.0 \
+ crate://crates.io/hostname/0.3.1 \
+ crate://crates.io/iana-time-zone/0.1.58 \
+ crate://crates.io/iana-time-zone-haiku/0.1.2 \
+ crate://crates.io/idna/0.4.0 \
+ crate://crates.io/ipnet/2.9.0 \
+ crate://crates.io/itoa/1.0.9 \
+ crate://crates.io/js-sys/0.3.65 \
+ crate://crates.io/libc/0.2.150 \
+ crate://crates.io/log/0.4.20 \
+ crate://crates.io/match_cfg/0.1.0 \
+ crate://crates.io/memchr/2.6.4 \
+ crate://crates.io/miniz_oxide/0.7.1 \
+ crate://crates.io/mio/0.8.9 \
+ crate://crates.io/nibble_vec/0.1.0 \
+ crate://crates.io/nix/0.27.1 \
+ crate://crates.io/num-traits/0.2.17 \
+ crate://crates.io/num_cpus/1.16.0 \
+ crate://crates.io/num_threads/0.1.6 \
+ crate://crates.io/object/0.32.1 \
+ crate://crates.io/once_cell/1.18.0 \
+ crate://crates.io/parking/2.2.0 \
+ crate://crates.io/percent-encoding/2.3.0 \
+ crate://crates.io/pin-project-lite/0.2.13 \
+ crate://crates.io/pin-utils/0.1.0 \
+ crate://crates.io/powerfmt/0.2.0 \
+ crate://crates.io/ppv-lite86/0.2.17 \
+ crate://crates.io/proc-macro2/1.0.69 \
+ crate://crates.io/quick-error/1.2.3 \
+ crate://crates.io/quote/1.0.33 \
+ crate://crates.io/radix_trie/0.2.1 \
+ crate://crates.io/rand/0.8.5 \
+ crate://crates.io/rand_chacha/0.3.1 \
+ crate://crates.io/rand_core/0.6.4 \
+ crate://crates.io/resolv-conf/0.7.0 \
+ crate://crates.io/rustc-demangle/0.1.23 \
+ crate://crates.io/serde/1.0.192 \
+ crate://crates.io/serde_derive/1.0.192 \
+ crate://crates.io/signal-hook/0.3.17 \
+ crate://crates.io/signal-hook-registry/1.4.1 \
+ crate://crates.io/slab/0.4.9 \
+ crate://crates.io/smallvec/1.11.2 \
+ crate://crates.io/socket2/0.5.5 \
+ crate://crates.io/strsim/0.10.0 \
+ crate://crates.io/syn/2.0.39 \
+ crate://crates.io/syslog/6.1.0 \
+ crate://crates.io/thiserror/1.0.50 \
+ crate://crates.io/thiserror-impl/1.0.50 \
+ crate://crates.io/time/0.3.30 \
+ crate://crates.io/time-core/0.1.2 \
+ crate://crates.io/time-macros/0.2.15 \
+ crate://crates.io/tinyvec/1.6.0 \
+ crate://crates.io/tinyvec_macros/0.1.1 \
+ crate://crates.io/tokio/1.36.0 \
+ crate://crates.io/tokio-macros/2.2.0 \
+ crate://crates.io/tokio-util/0.7.10 \
+ crate://crates.io/tracing/0.1.40 \
+ crate://crates.io/tracing-attributes/0.1.27 \
+ crate://crates.io/tracing-core/0.1.32 \
+ crate://crates.io/unicode-bidi/0.3.13 \
+ crate://crates.io/unicode-ident/1.0.12 \
+ crate://crates.io/unicode-normalization/0.1.22 \
+ crate://crates.io/url/2.4.1 \
+ crate://crates.io/utf8parse/0.2.1 \
+ crate://crates.io/version_check/0.9.4 \
+ crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
+ crate://crates.io/wasm-bindgen/0.2.88 \
+ crate://crates.io/wasm-bindgen-backend/0.2.88 \
+ crate://crates.io/wasm-bindgen-macro/0.2.88 \
+ crate://crates.io/wasm-bindgen-macro-support/0.2.88 \
+ crate://crates.io/wasm-bindgen-shared/0.2.88 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+ crate://crates.io/windows-core/0.51.1 \
+ crate://crates.io/windows-sys/0.48.0 \
+ crate://crates.io/windows-targets/0.48.5 \
+ crate://crates.io/windows-targets/0.52.0 \
+ crate://crates.io/windows_aarch64_gnullvm/0.48.5 \
+ crate://crates.io/windows_aarch64_gnullvm/0.52.0 \
+ crate://crates.io/windows_aarch64_msvc/0.48.5 \
+ crate://crates.io/windows_aarch64_msvc/0.52.0 \
+ crate://crates.io/windows_i686_gnu/0.48.5 \
+ crate://crates.io/windows_i686_gnu/0.52.0 \
+ crate://crates.io/windows_i686_msvc/0.48.5 \
+ crate://crates.io/windows_i686_msvc/0.52.0 \
+ crate://crates.io/windows_x86_64_gnu/0.48.5 \
+ crate://crates.io/windows_x86_64_gnu/0.52.0 \
+ crate://crates.io/windows_x86_64_gnullvm/0.48.5 \
+ crate://crates.io/windows_x86_64_gnullvm/0.52.0 \
+ crate://crates.io/windows_x86_64_msvc/0.48.5 \
+ crate://crates.io/windows_x86_64_msvc/0.52.0 \
+"
+
+SRC_URI[addr2line-0.21.0.sha256sum] = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+SRC_URI[android-tzdata-0.1.1.sha256sum] = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+SRC_URI[android_system_properties-0.1.5.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+SRC_URI[anstream-0.6.4.sha256sum] = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
+SRC_URI[anstyle-1.0.4.sha256sum] = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+SRC_URI[anstyle-parse-0.2.2.sha256sum] = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140"
+SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+SRC_URI[anstyle-wincon-3.0.1.sha256sum] = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628"
+SRC_URI[anyhow-1.0.80.sha256sum] = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+SRC_URI[async-broadcast-0.7.0.sha256sum] = "258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb"
+SRC_URI[async-trait-0.1.74.sha256sum] = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[backtrace-0.3.69.sha256sum] = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+SRC_URI[bitflags-2.4.1.sha256sum] = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+SRC_URI[bumpalo-3.14.0.sha256sum] = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+SRC_URI[bytes-1.5.0.sha256sum] = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+SRC_URI[cc-1.0.83.sha256sum] = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[chrono-0.4.34.sha256sum] = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
+SRC_URI[clap-4.4.10.sha256sum] = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272"
+SRC_URI[clap_builder-4.4.9.sha256sum] = "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1"
+SRC_URI[clap_derive-4.4.7.sha256sum] = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+SRC_URI[clap_lex-0.6.0.sha256sum] = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+SRC_URI[concurrent-queue-2.3.0.sha256sum] = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400"
+SRC_URI[core-foundation-sys-0.8.4.sha256sum] = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+SRC_URI[crossbeam-utils-0.8.16.sha256sum] = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
+SRC_URI[data-encoding-2.4.0.sha256sum] = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
+SRC_URI[deranged-0.3.9.sha256sum] = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3"
+SRC_URI[endian-type-0.1.2.sha256sum] = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d"
+SRC_URI[enum-as-inner-0.6.0.sha256sum] = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
+SRC_URI[error-chain-0.12.4.sha256sum] = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
+SRC_URI[event-listener-5.0.0.sha256sum] = "b72557800024fabbaa2449dd4bf24e37b93702d457a4d4f2b0dd1f0f039f20c1"
+SRC_URI[event-listener-strategy-0.5.0.sha256sum] = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+SRC_URI[form_urlencoded-1.2.0.sha256sum] = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+SRC_URI[futures-channel-0.3.29.sha256sum] = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
+SRC_URI[futures-core-0.3.30.sha256sum] = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+SRC_URI[futures-io-0.3.29.sha256sum] = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
+SRC_URI[futures-sink-0.3.29.sha256sum] = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
+SRC_URI[futures-task-0.3.30.sha256sum] = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+SRC_URI[futures-util-0.3.30.sha256sum] = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+SRC_URI[getrandom-0.2.11.sha256sum] = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+SRC_URI[gimli-0.28.0.sha256sum] = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+SRC_URI[hermit-abi-0.3.3.sha256sum] = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+SRC_URI[hickory-client-0.24.0.sha256sum] = "7f3e08124cf0ddda93b1186d4af73599de401f3b52f14cd9aaa719049379462e"
+SRC_URI[hickory-proto-0.24.0.sha256sum] = "091a6fbccf4860009355e3efc52ff4acf37a63489aad7435372d44ceeb6fbbcf"
+SRC_URI[hickory-server-0.24.0.sha256sum] = "4fbbb45bc4dcb456445732c705e3cfdc7393b8bcae5c36ecec36b9d76bd67cb5"
+SRC_URI[hostname-0.3.1.sha256sum] = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
+SRC_URI[iana-time-zone-0.1.58.sha256sum] = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
+SRC_URI[iana-time-zone-haiku-0.1.2.sha256sum] = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+SRC_URI[idna-0.4.0.sha256sum] = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+SRC_URI[ipnet-2.9.0.sha256sum] = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+SRC_URI[itoa-1.0.9.sha256sum] = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+SRC_URI[js-sys-0.3.65.sha256sum] = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8"
+SRC_URI[libc-0.2.150.sha256sum] = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+SRC_URI[log-0.4.20.sha256sum] = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+SRC_URI[match_cfg-0.1.0.sha256sum] = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
+SRC_URI[memchr-2.6.4.sha256sum] = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+SRC_URI[miniz_oxide-0.7.1.sha256sum] = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+SRC_URI[mio-0.8.9.sha256sum] = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
+SRC_URI[nibble_vec-0.1.0.sha256sum] = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43"
+SRC_URI[nix-0.27.1.sha256sum] = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+SRC_URI[num-traits-0.2.17.sha256sum] = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+SRC_URI[num_cpus-1.16.0.sha256sum] = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+SRC_URI[num_threads-0.1.6.sha256sum] = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+SRC_URI[object-0.32.1.sha256sum] = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+SRC_URI[parking-2.2.0.sha256sum] = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+SRC_URI[percent-encoding-2.3.0.sha256sum] = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+SRC_URI[pin-project-lite-0.2.13.sha256sum] = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+SRC_URI[proc-macro2-1.0.69.sha256sum] = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
+SRC_URI[quick-error-1.2.3.sha256sum] = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+SRC_URI[quote-1.0.33.sha256sum] = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+SRC_URI[radix_trie-0.2.1.sha256sum] = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[resolv-conf-0.7.0.sha256sum] = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00"
+SRC_URI[rustc-demangle-0.1.23.sha256sum] = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+SRC_URI[serde-1.0.192.sha256sum] = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001"
+SRC_URI[serde_derive-1.0.192.sha256sum] = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1"
+SRC_URI[signal-hook-0.3.17.sha256sum] = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
+SRC_URI[signal-hook-registry-1.4.1.sha256sum] = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+SRC_URI[slab-0.4.9.sha256sum] = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+SRC_URI[smallvec-1.11.2.sha256sum] = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+SRC_URI[socket2-0.5.5.sha256sum] = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[syn-2.0.39.sha256sum] = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
+SRC_URI[syslog-6.1.0.sha256sum] = "7434e95bcccce1215d30f4bf84fe8c00e8de1b9be4fb736d747ca53d36e7f96f"
+SRC_URI[thiserror-1.0.50.sha256sum] = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+SRC_URI[thiserror-impl-1.0.50.sha256sum] = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+SRC_URI[time-0.3.30.sha256sum] = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
+SRC_URI[time-core-0.1.2.sha256sum] = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+SRC_URI[time-macros-0.2.15.sha256sum] = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
+SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+SRC_URI[tokio-1.36.0.sha256sum] = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
+SRC_URI[tokio-macros-2.2.0.sha256sum] = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+SRC_URI[tokio-util-0.7.10.sha256sum] = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+SRC_URI[tracing-0.1.40.sha256sum] = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+SRC_URI[tracing-attributes-0.1.27.sha256sum] = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+SRC_URI[tracing-core-0.1.32.sha256sum] = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+SRC_URI[unicode-bidi-0.3.13.sha256sum] = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+SRC_URI[url-2.4.1.sha256sum] = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[wasm-bindgen-0.2.88.sha256sum] = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce"
+SRC_URI[wasm-bindgen-backend-0.2.88.sha256sum] = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217"
+SRC_URI[wasm-bindgen-macro-0.2.88.sha256sum] = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2"
+SRC_URI[wasm-bindgen-macro-support-0.2.88.sha256sum] = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907"
+SRC_URI[wasm-bindgen-shared-0.2.88.sha256sum] = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-core-0.51.1.sha256sum] = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+SRC_URI[windows-targets-0.52.0.sha256sum] = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+SRC_URI[windows_aarch64_gnullvm-0.52.0.sha256sum] = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+SRC_URI[windows_aarch64_msvc-0.52.0.sha256sum] = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+SRC_URI[windows_i686_gnu-0.52.0.sha256sum] = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+SRC_URI[windows_i686_msvc-0.52.0.sha256sum] = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+SRC_URI[windows_x86_64_gnu-0.52.0.sha256sum] = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+SRC_URI[windows_x86_64_gnullvm-0.52.0.sha256sum] = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+SRC_URI[windows_x86_64_msvc-0.52.0.sha256sum] = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
diff --git a/recipes-containers/aardvark-dns/aardvark-dns_1.10.0.bb b/recipes-containers/aardvark-dns/aardvark-dns_1.10.0.bb
new file mode 100644
index 00000000..766cf97f
--- /dev/null
+++ b/recipes-containers/aardvark-dns/aardvark-dns_1.10.0.bb
@@ -0,0 +1,43 @@
+SUMMARY = "A container-focused DNS server"
+HOMEPAGE = "https://github.com/containers/aardvark-dns"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRCREV = "526260a1bc99d823814afb134980c749c56dea47"
+
+# It is possible to fetch the source using the crate fetcher instead:
+#SRC_URI = "crate://crates.io/${BPN}/${PV}"
+SRC_URI = "git://github.com/containers/aardvark-dns;protocol=https;nobranch=1 \
+ file://run-ptest"
+require ${BPN}-crates.inc
+
+S = "${WORKDIR}/git"
+
+inherit cargo cargo-update-recipe-crates features_check ptest
+
+# Cargo installs the binary to bin so move it to where podman expects it
+do_install:append() {
+ install -d ${D}${libexecdir}
+ mv ${D}${bindir} ${D}${libexecdir}/podman
+}
+
+do_install_ptest() {
+ cp -r ${S}/test ${D}${PTEST_PATH}
+}
+
+# rdepends on slirp4netns
+REQUIRED_DISTRO_FEATURES ?= "seccomp"
+
+RDEPENDS:${PN}-ptest += " \
+ bash \
+ bats \
+ bind-utils \
+ coreutils \
+ dbus-daemon-proxy \
+ ipcalc \
+ iproute2 \
+ jq \
+ slirp4netns \
+ util-linux-unshare \
+"
diff --git a/recipes-containers/aardvark-dns/files/run-ptest b/recipes-containers/aardvark-dns/files/run-ptest
new file mode 100644
index 00000000..b33d8fd4
--- /dev/null
+++ b/recipes-containers/aardvark-dns/files/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+NETAVARK=/usr/libexec/podman/netavark AARDVARK=/usr/libexec/podman/aardvark-dns bats ./test/
diff --git a/recipes-containers/buildah/buildah_git.bb b/recipes-containers/buildah/buildah_git.bb
new file mode 100644
index 00000000..64ee4f7d
--- /dev/null
+++ b/recipes-containers/buildah/buildah_git.bb
@@ -0,0 +1,66 @@
+HOMEPAGE = "https://buildah.io"
+SUMMARY = "A tool that facilitates building OCI container images."
+DESCRIPTION = "A tool that facilitates building OCI container images."
+
+# Apache-2.0 for containerd
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://src/github.com/containers/buildah/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
+
+S = "${WORKDIR}/git"
+
+BUILDAH_VERSION = "1.34.1"
+
+PV = "${BUILDAH_VERSION}"
+
+inherit go
+inherit goarch
+inherit pkgconfig
+
+# Rdepends on podman which needs seccomp and ipv6
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "seccomp ipv6"
+
+COMPATIBLE_HOST = "^(?!mips).*"
+
+GO_IMPORT = "github.com/containers/buildah"
+GO_INSTALL = "${GO_IMPORT}"
+GO_WORKDIR = "${GO_INSTALL}"
+GOBUILDFLAGS += "-mod vendor"
+
+SRCREV_FORMAT = "buildah_storage"
+SRCREV_buildah = "dbeb097c6fbf4bfd643f096992da572a97a8ec12"
+SRCREV_storage = "246ba3062e8b551026aef2708eee747014ce5c52"
+
+SRC_URI = " \
+ git://github.com/containers/buildah;branch=release-1.34;name=buildah;protocol=https \
+ "
+
+DEPENDS = "libdevmapper btrfs-tools gpgme"
+RDEPENDS:${PN} = "cgroup-lite fuse-overlayfs libdevmapper podman"
+RDEPENDS:${PN}-dev = "bash perl"
+
+do_compile:prepend() {
+ cd ${S}/src/github.com/containers/buildah
+}
+
+go_do_compile() {
+ export TMPDIR="${GOTMPDIR}"
+ export AS='${CC} -c'
+ if [ -n "${GO_INSTALL}" ]; then
+ ${GO} install ${GOBUILDFLAGS} ./cmd/buildah
+ ${GO} install ${GOBUILDFLAGS} ./tests/imgtype/imgtype.go
+ ${GO} install ${GOBUILDFLAGS} ./tests/copy/copy.go
+ fi
+
+ # x86 statically linked executable that we don't need
+ rm -f ${S}/src/github.com/containers/buildah/internal/mkcw/embed/entrypoint
+}
+
+do_install:append() {
+ dest_dir=${D}/${sysconfdir}/containers
+ mkdir -p ${dest_dir}
+ install -m 666 ${S}/src/github.com/containers/buildah/docs/samples/registries.conf ${dest_dir}/buildah.registries.conf.sample
+ install -m 666 ${S}/src/github.com/containers/buildah/tests/policy.json ${dest_dir}/buildah.policy.json.sample
+}
+
+INSANE_SKIP:${PN} = "already-stripped"
diff --git a/recipes-containers/catatonit/catatonit_0.2.0.bb b/recipes-containers/catatonit/catatonit_0.2.0.bb
new file mode 100644
index 00000000..13537a4a
--- /dev/null
+++ b/recipes-containers/catatonit/catatonit_0.2.0.bb
@@ -0,0 +1,16 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: MIT
+
+SUMMARY = "A container init that is so simple it's effectively brain-dead."
+HOMEPAGE = "https://github.com/openSUSE/catatonit"
+DESCRIPTION = "${SUMMARY}"
+SECTION = "base"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "git://github.com/openSUSE/${BPN};protocol=https;branch=main"
+SRCREV = "7f0c9bb45d3490c3e7f579833c9b0689f78c8923"
+S = "${WORKDIR}/git"
+
+inherit autotools
diff --git a/recipes-containers/cgroup-lite/cgroup-lite_1.15.bb b/recipes-containers/cgroup-lite/cgroup-lite_1.15.bb
index 45cc287c..23ecfa4a 100644
--- a/recipes-containers/cgroup-lite/cgroup-lite_1.15.bb
+++ b/recipes-containers/cgroup-lite/cgroup-lite_1.15.bb
@@ -2,7 +2,7 @@ SECTION = "devel"
SUMMARY = "Light-weight package to set up cgroups at system boot."
DESCRIPTION = "Light-weight package to set up cgroups at system boot."
HOMEPAGE = "http://packages.ubuntu.com/source/artful/cgroup-lite"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://debian/copyright;md5=5d5da4e0867cf06014f87102154d0102"
SRC_URI = "https://launchpad.net/ubuntu/+archive/primary/+files/cgroup-lite_1.15.tar.xz"
SRC_URI += "file://cgroups-init"
@@ -17,8 +17,8 @@ INITSCRIPT_PARAMS = "start 8 2 3 4 5 . stop 20 0 1 6 ."
# Keeps the sysvinit scripts out of the image if building
# where systemd is in use.
SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "cgroups-init.service"
-SYSTEMD_AUTO_ENABLE_${PN} = "mask"
+SYSTEMD_SERVICE:${PN} = "cgroups-init.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "mask"
do_install() {
diff --git a/recipes-containers/conmon/conmon_git.bb b/recipes-containers/conmon/conmon_git.bb
index 7c4edabf..d7047ed0 100644
--- a/recipes-containers/conmon/conmon_git.bb
+++ b/recipes-containers/conmon/conmon_git.bb
@@ -4,19 +4,24 @@ HOMEPAGE = "https://github.com/containers/conmon"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=61af0b6932ea7b12fb9142721043bc77"
-DEPENDS = "glib-2.0 go-md2man-native"
+inherit features_check
+REQUIRED_DISTRO_FEATURES ?= "seccomp"
-SRCREV = "3efab3e71c4c29f127cd7b8e8a5a885fc17dec88"
+DEPENDS = "glib-2.0 go-md2man-native libseccomp"
+
+SRCREV = "affab49967eb62f75d2a47398344ab053326289f"
SRC_URI = "\
- git://github.com/containers/conmon.git \
+ git://github.com/containers/conmon.git;branch=main;protocol=https \
"
-PV = "2.0.27+git${SRCPV}"
+PV = "2.1.10+git"
S = "${WORKDIR}/git"
inherit pkgconfig
+export GOCACHE = "${B}/.cache"
+
EXTRA_OEMAKE = "PREFIX=${prefix} BINDIR=${bindir} LIBEXECDIR=${libexecdir}"
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
diff --git a/recipes-containers/container-host-config/container-host-config.bb b/recipes-containers/container-host-config/container-host-config.bb
new file mode 100644
index 00000000..80abddf0
--- /dev/null
+++ b/recipes-containers/container-host-config/container-host-config.bb
@@ -0,0 +1,22 @@
+HOMEPAGE = "https://git.yoctoproject.org/meta-virtualization"
+SUMMARY = "Configuration Package for container hosts"
+DESCRIPTION = "Common / centralized configuration files for container hosts"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+SRC_URI = " \
+ file://storage.conf \
+ file://registries.conf \
+ file://policy.json \
+"
+
+do_install() {
+ install -d ${D}/${sysconfdir}/containers
+
+ install ${WORKDIR}/storage.conf ${D}/${sysconfdir}/containers/storage.conf
+ install ${WORKDIR}/registries.conf ${D}/${sysconfdir}/containers/registries.conf
+ install ${WORKDIR}/policy.json ${D}/${sysconfdir}/containers/policy.json
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/recipes-containers/container-host-config/container-host-config/policy.json b/recipes-containers/container-host-config/container-host-config/policy.json
new file mode 100755
index 00000000..bb26e57f
--- /dev/null
+++ b/recipes-containers/container-host-config/container-host-config/policy.json
@@ -0,0 +1,7 @@
+{
+ "default": [
+ {
+ "type": "insecureAcceptAnything"
+ }
+ ]
+}
diff --git a/recipes-containers/skopeo/files/registries.conf b/recipes-containers/container-host-config/container-host-config/registries.conf
index ba6c3f6e..ba6c3f6e 100644
--- a/recipes-containers/skopeo/files/registries.conf
+++ b/recipes-containers/container-host-config/container-host-config/registries.conf
diff --git a/recipes-containers/container-host-config/container-host-config/storage.conf b/recipes-containers/container-host-config/container-host-config/storage.conf
new file mode 100644
index 00000000..cb4525f2
--- /dev/null
+++ b/recipes-containers/container-host-config/container-host-config/storage.conf
@@ -0,0 +1,243 @@
+# This file is the configuration file for all tools
+# that use the containers/storage library. The storage.conf file
+# overrides all other storage.conf files. Container engines using the
+# container/storage library do not inherit fields from other storage.conf
+# files.
+#
+# Note: The storage.conf file overrides other storage.conf files based on this precedence:
+# /usr/containers/storage.conf
+# /etc/containers/storage.conf
+# $HOME/.config/containers/storage.conf
+# $XDG_CONFIG_HOME/containers/storage.conf (If XDG_CONFIG_HOME is set)
+# See man 5 containers-storage.conf for more information
+# The "container storage" table contains all of the server options.
+[storage]
+
+# Default Storage Driver, Must be set for proper operation.
+driver = "overlay"
+
+# Temporary storage location
+runroot = "/run/containers/storage"
+
+# Primary Read/Write location of container storage
+# When changing the graphroot location on an SELINUX system, you must
+# ensure the labeling matches the default locations labels with the
+# following commands:
+# semanage fcontext -a -e /var/lib/containers/storage /NEWSTORAGEPATH
+# restorecon -R -v /NEWSTORAGEPATH
+graphroot = "/var/lib/containers/storage"
+
+# Optional alternate location of image store if a location separate from the
+# container store is required. If set, it must be different than graphroot.
+# imagestore = ""
+
+
+# Storage path for rootless users
+#
+# rootless_storage_path = "$HOME/.local/share/containers/storage"
+
+# Transient store mode makes all container metadata be saved in temporary storage
+# (i.e. runroot above). This is faster, but doesn't persist across reboots.
+# Additional garbage collection must also be performed at boot-time, so this
+# option should remain disabled in most configurations.
+# transient_store = true
+
+[storage.options]
+# Storage options to be passed to underlying storage drivers
+
+# AdditionalImageStores is used to pass paths to additional Read/Only image stores
+# Must be comma separated list.
+additionalimagestores = [
+]
+
+# Allows specification of how storage is populated when pulling images. This
+# option can speed the pulling process of images compressed with format
+# zstd:chunked. Containers/storage looks for files within images that are being
+# pulled from a container registry that were previously pulled to the host. It
+# can copy or create a hard link to the existing file when it finds them,
+# eliminating the need to pull them from the container registry. These options
+# can deduplicate pulling of content, disk storage of content and can allow the
+# kernel to use less memory when running containers.
+
+# containers/storage supports three keys
+# * enable_partial_images="true" | "false"
+# Tells containers/storage to look for files previously pulled in storage
+# rather then always pulling them from the container registry.
+# * use_hard_links = "false" | "true"
+# Tells containers/storage to use hard links rather then create new files in
+# the image, if an identical file already existed in storage.
+# * ostree_repos = ""
+# Tells containers/storage where an ostree repository exists that might have
+# previously pulled content which can be used when attempting to avoid
+# pulling content from the container registry
+pull_options = {enable_partial_images = "false", use_hard_links = "false", ostree_repos=""}
+
+# Remap-UIDs/GIDs is the mapping from UIDs/GIDs as they should appear inside of
+# a container, to the UIDs/GIDs as they should appear outside of the container,
+# and the length of the range of UIDs/GIDs. Additional mapped sets can be
+# listed and will be heeded by libraries, but there are limits to the number of
+# mappings which the kernel will allow when you later attempt to run a
+# container.
+#
+# remap-uids = "0:1668442479:65536"
+# remap-gids = "0:1668442479:65536"
+
+# Remap-User/Group is a user name which can be used to look up one or more UID/GID
+# ranges in the /etc/subuid or /etc/subgid file. Mappings are set up starting
+# with an in-container ID of 0 and then a host-level ID taken from the lowest
+# range that matches the specified name, and using the length of that range.
+# Additional ranges are then assigned, using the ranges which specify the
+# lowest host-level IDs first, to the lowest not-yet-mapped in-container ID,
+# until all of the entries have been used for maps. This setting overrides the
+# Remap-UIDs/GIDs setting.
+#
+# remap-user = "containers"
+# remap-group = "containers"
+
+# Root-auto-userns-user is a user name which can be used to look up one or more UID/GID
+# ranges in the /etc/subuid and /etc/subgid file. These ranges will be partitioned
+# to containers configured to create automatically a user namespace. Containers
+# configured to automatically create a user namespace can still overlap with containers
+# having an explicit mapping set.
+# This setting is ignored when running as rootless.
+# root-auto-userns-user = "storage"
+#
+# Auto-userns-min-size is the minimum size for a user namespace created automatically.
+# auto-userns-min-size=1024
+#
+# Auto-userns-max-size is the maximum size for a user namespace created automatically.
+# auto-userns-max-size=65536
+
+[storage.options.overlay]
+# ignore_chown_errors can be set to allow a non privileged user running with
+# a single UID within a user namespace to run containers. The user can pull
+# and use any image even those with multiple uids. Note multiple UIDs will be
+# squashed down to the default uid in the container. These images will have no
+# separation between the users in the container. Only supported for the overlay
+# and vfs drivers.
+#ignore_chown_errors = "false"
+
+# Inodes is used to set a maximum inodes of the container image.
+# inodes = ""
+
+# Path to an helper program to use for mounting the file system instead of mounting it
+# directly.
+#mount_program = "/usr/bin/fuse-overlayfs"
+
+# mountopt specifies comma separated list of extra mount options
+mountopt = "nodev"
+
+# Set to skip a PRIVATE bind mount on the storage home directory.
+# skip_mount_home = "false"
+
+# Size is used to set a maximum size of the container image.
+# size = ""
+
+# ForceMask specifies the permissions mask that is used for new files and
+# directories.
+#
+# The values "shared" and "private" are accepted.
+# Octal permission masks are also accepted.
+#
+# "": No value specified.
+# All files/directories, get set with the permissions identified within the
+# image.
+# "private": it is equivalent to 0700.
+# All files/directories get set with 0700 permissions. The owner has rwx
+# access to the files. No other users on the system can access the files.
+# This setting could be used with networked based homedirs.
+# "shared": it is equivalent to 0755.
+# The owner has rwx access to the files and everyone else can read, access
+# and execute them. This setting is useful for sharing containers storage
+# with other users. For instance have a storage owned by root but shared
+# to rootless users as an additional store.
+# NOTE: All files within the image are made readable and executable by any
+# user on the system. Even /etc/shadow within your image is now readable by
+# any user.
+#
+# OCTAL: Users can experiment with other OCTAL Permissions.
+#
+# Note: The force_mask Flag is an experimental feature, it could change in the
+# future. When "force_mask" is set the original permission mask is stored in
+# the "user.containers.override_stat" xattr and the "mount_program" option must
+# be specified. Mount programs like "/usr/bin/fuse-overlayfs" present the
+# extended attribute permissions to processes within containers rather than the
+# "force_mask" permissions.
+#
+# force_mask = ""
+
+[storage.options.thinpool]
+# Storage Options for thinpool
+
+# autoextend_percent determines the amount by which pool needs to be
+# grown. This is specified in terms of % of pool size. So a value of 20 means
+# that when threshold is hit, pool will be grown by 20% of existing
+# pool size.
+# autoextend_percent = "20"
+
+# autoextend_threshold determines the pool extension threshold in terms
+# of percentage of pool size. For example, if threshold is 60, that means when
+# pool is 60% full, threshold has been hit.
+# autoextend_threshold = "80"
+
+# basesize specifies the size to use when creating the base device, which
+# limits the size of images and containers.
+# basesize = "10G"
+
+# blocksize specifies a custom blocksize to use for the thin pool.
+# blocksize="64k"
+
+# directlvm_device specifies a custom block storage device to use for the
+# thin pool. Required if you setup devicemapper.
+# directlvm_device = ""
+
+# directlvm_device_force wipes device even if device already has a filesystem.
+# directlvm_device_force = "True"
+
+# fs specifies the filesystem type to use for the base device.
+# fs="xfs"
+
+# log_level sets the log level of devicemapper.
+# 0: LogLevelSuppress 0 (Default)
+# 2: LogLevelFatal
+# 3: LogLevelErr
+# 4: LogLevelWarn
+# 5: LogLevelNotice
+# 6: LogLevelInfo
+# 7: LogLevelDebug
+# log_level = "7"
+
+# min_free_space specifies the min free space percent in a thin pool require for
+# new device creation to succeed. Valid values are from 0% - 99%.
+# Value 0% disables
+# min_free_space = "10%"
+
+# mkfsarg specifies extra mkfs arguments to be used when creating the base
+# device.
+# mkfsarg = ""
+
+# metadata_size is used to set the `pvcreate --metadatasize` options when
+# creating thin devices. Default is 128k
+# metadata_size = ""
+
+# Size is used to set a maximum size of the container image.
+# size = ""
+
+# use_deferred_removal marks devicemapper block device for deferred removal.
+# If the thinpool is in use when the driver attempts to remove it, the driver
+# tells the kernel to remove it as soon as possible. Note this does not free
+# up the disk space, use deferred deletion to fully remove the thinpool.
+# use_deferred_removal = "True"
+
+# use_deferred_deletion marks thinpool device for deferred deletion.
+# If the device is busy when the driver attempts to delete it, the driver
+# will attempt to delete device every 30 seconds until successful.
+# If the program using the driver exits, the driver will continue attempting
+# to cleanup the next time the driver is used. Deferred deletion permanently
+# deletes the device and all data stored in device will be lost.
+# use_deferred_deletion = "True"
+
+# xfs_nospace_max_retries specifies the maximum number of retries XFS should
+# attempt to complete IO when ENOSPC (no space) error is returned by
+# underlying storage device.
+# xfs_nospace_max_retries = "0"
diff --git a/recipes-containers/containerd/containerd-opencontainers/0001-Add-build-option-GODEBUG-1.patch b/recipes-containers/containerd/containerd-opencontainers/0001-Add-build-option-GODEBUG-1.patch
deleted file mode 100644
index 8b43c8a0..00000000
--- a/recipes-containers/containerd/containerd-opencontainers/0001-Add-build-option-GODEBUG-1.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 84874e47aa2025b8e73df0286c44f3b8a1d9fdb2 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 2 Sep 2019 16:20:07 +0800
-Subject: [PATCH] Add build option "GODEBUG=1"
-
-Make will generate GDB friendly binary with this build option.
-
-Signed-off-by: Hui Zhu <teawater@hyper.sh>
-
-Upstream-Status: Backport [c5a0c7f491b435e4eb45972903b00e2d8ed46495]
-
-Partly backport and refresh to v1.2.7
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- src/import/Makefile | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-Index: git/src/import/Makefile
-===================================================================
---- git.orig/src/import/Makefile 2020-10-12 08:09:41.638977052 -0700
-+++ git/src/import/Makefile 2020-10-12 08:10:49.783074373 -0700
-@@ -72,6 +72,10 @@
- COMMANDS=ctr containerd containerd-stress
- MANPAGES=ctr.8 containerd.8 containerd-config.8 containerd-config.toml.5
-
-+ifndef GODEBUG
-+ EXTRA_LDFLAGS += -s -w
-+endif
-+
- ifdef BUILDTAGS
- GO_BUILDTAGS = ${BUILDTAGS}
- endif
diff --git a/recipes-containers/containerd/containerd-opencontainers/0001-Makefile-allow-GO_BUILD_FLAGS-to-be-externally-speci.patch b/recipes-containers/containerd/containerd-opencontainers/0001-Makefile-allow-GO_BUILD_FLAGS-to-be-externally-speci.patch
new file mode 100644
index 00000000..63498a86
--- /dev/null
+++ b/recipes-containers/containerd/containerd-opencontainers/0001-Makefile-allow-GO_BUILD_FLAGS-to-be-externally-speci.patch
@@ -0,0 +1,35 @@
+From 474b93f8f643651144304a6971ef476add7f06f8 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Tue, 25 May 2021 12:49:41 -0400
+Subject: [PATCH] Makefile: allow GO_BUILD_FLAGS to be externally specified
+
+Since our oe-core go infrastructure insists on both -pie and static
+builds (for the most part), and that is not recommended by many
+packages, we end up with errors like:
+
+ cannot find package runtime/cgo (using -importcfg)
+ ...
+ recipe-sysroot-native/usr/lib/aarch64-poky-linux/go/pkg/tool/linux_amd64/link:
+ cannot open file : open : no such file or directory
+
+Upstream-Status: Inappropriate [specific to OE go configuration and build]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ Makefile | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: containerd/Makefile
+===================================================================
+--- containerd.orig/Makefile
++++ containerd/Makefile
+@@ -129,7 +129,8 @@
+ GOPATHS=$(shell $(GO) env GOPATH | tr ":" "\n" | tr ";" "\n")
+
+ TESTFLAGS_RACE=
+-GO_BUILD_FLAGS ?=
++# allow flags to be exported and picked up.
++# GO_BUILD_FLAGS ?=
+ # See Golang issue re: '-trimpath': https://github.com/golang/go/issues/13809
+ GO_GCFLAGS=$(shell \
+ set -- ${GOPATHS}; \
diff --git a/recipes-containers/containerd/containerd-opencontainers/0001-build-don-t-use-gcflags-to-define-trimpath.patch b/recipes-containers/containerd/containerd-opencontainers/0001-build-don-t-use-gcflags-to-define-trimpath.patch
new file mode 100644
index 00000000..62580c6c
--- /dev/null
+++ b/recipes-containers/containerd/containerd-opencontainers/0001-build-don-t-use-gcflags-to-define-trimpath.patch
@@ -0,0 +1,32 @@
+From 9174091fa1624dbb09ce812792a4102dff693541 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Mon, 12 Sep 2022 15:40:08 -0400
+Subject: [PATCH] build: don't use gcflags to define trimpath
+
+We can pass trimpath in via environment variables. The gcflags
+definition of trimpath is for older go versions and is using the
+complete path for trimming. If the variable is captured in the
+resulting binary, we have a reproducibility and QA issue.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ Makefile | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git git.orig/Makefile git.orig/Makefile
+index 4a6c13042..debb57925 100644
+--- git.orig/Makefile
++++ git.orig/Makefile
+@@ -130,7 +130,6 @@ TESTFLAGS_RACE=
+ # See Golang issue re: '-trimpath': https://github.com/golang/go/issues/13809
+ GO_GCFLAGS=$(shell \
+ set -- ${GOPATHS}; \
+- echo "-gcflags=-trimpath=$${1}/src"; \
+ )
+
+ BINARIES=$(addprefix bin/,$(COMMANDS))
+--
+2.19.1
+
diff --git a/recipes-containers/containerd/containerd-opencontainers_git.bb b/recipes-containers/containerd/containerd-opencontainers_git.bb
index 2674a17e..10d1ce8b 100644
--- a/recipes-containers/containerd/containerd-opencontainers_git.bb
+++ b/recipes-containers/containerd/containerd-opencontainers_git.bb
@@ -1,30 +1,31 @@
-HOMEPAGE = "https://github.com/docker/containerd"
+HOMEPAGE = "https://github.com/containerd/containerd"
SUMMARY = "containerd is a daemon to control runC"
DESCRIPTION = "containerd is a daemon to control runC, built for performance and density. \
containerd leverages runC's advanced features such as seccomp and user namespace \
support as well as checkpoint and restore for cloning and live migration of containers."
-SRCREV = "32005190c04eb635cdd0de7c9245dd043168ec9e"
-SRC_URI = "git://github.com/containerd/containerd;branch=master \
- file://0001-build-use-oe-provided-GO-and-flags.patch \
- file://0001-Add-build-option-GODEBUG-1.patch \
+SRCREV = "b1624c3628954e769dd50783b63823040b2db38c"
+SRC_URI = "git://github.com/containerd/containerd;branch=main;protocol=https;destsuffix=git/src/github.com/containerd/containerd \
+ file://0001-Makefile-allow-GO_BUILD_FLAGS-to-be-externally-speci.patch \
+ file://0001-build-don-t-use-gcflags-to-define-trimpath.patch \
"
# Apache-2.0 for containerd
LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=1269f40c0d099c21a871163984590d89"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1269f40c0d099c21a871163984590d89"
-CONTAINERD_VERSION = "v1.5.0-rc"
+CONTAINERD_VERSION = "v2.0.0-beta.0"
+CVE_VERSION = "v2.0.0-beta.0"
-EXTRA_OEMAKE += "GODEBUG=1"
+# EXTRA_OEMAKE += "GODEBUG=1"
PROVIDES += "virtual/containerd"
-RPROVIDES_${PN} = "virtual/containerd"
+RPROVIDES:${PN} = "virtual-containerd"
-S = "${WORKDIR}/git"
+S = "${WORKDIR}/git/src/github.com/containerd/containerd"
-PV = "${CONTAINERD_VERSION}+git${SRCPV}"
+PV = "${CONTAINERD_VERSION}+git"
inherit go
inherit goarch
@@ -33,40 +34,14 @@ GO_IMPORT = "import"
CONTAINERD_PKG="github.com/containerd/containerd"
-INSANE_SKIP_${PN} += "ldflags"
+INSANE_SKIP:${PN} += "ldflags"
do_configure[noexec] = "1"
do_compile() {
export GOARCH="${TARGET_GOARCH}"
- # link fixups for compilation
- rm -f ${S}/src/import/vendor/src
- ln -sf ./ ${S}/src/import/vendor/src
-
- mkdir -p ${S}/src/import/vendor/src/github.com/containerd/containerd/
- mkdir -p ${S}/src/import/vendor/src/github.com/containerd/containerd/pkg/
- mkdir -p ${S}/src/import/vendor/src/github.com/containerd/containerd/contrib/
- # without this, the stress test parts of the build fail
- cp ${S}/src/import/*.go ${S}/src/import/vendor/src/github.com/containerd/containerd
-
- for c in content timeout ttrpcutil oom stdio process errdefs fs images mount snapshots linux api runtimes defaults progress \
- protobuf reference diff platforms runtime remotes version archive dialer gc metadata \
- metrics filters identifiers labels leases plugin server services \
- cmd cio containers namespaces oci events log reaper sys rootfs nvidia seed apparmor seccomp \
- cap cri userns atomic ioutil os registrar seutil runtimeoptions netns; do
- if [ -d ${S}/src/import/${c} ]; then
- ln -sfn ${S}/src/import/${c} ${S}/src/import/vendor/github.com/containerd/containerd/${c}
- fi
- if [ -d ${S}/src/import/pkg/${c} ]; then
- ln -sfn ${S}/src/import/pkg/${c} ${S}/src/import/vendor/github.com/containerd/containerd/pkg/${c}
- fi
- if [ -d ${S}/src/import/contrib/${c} ]; then
- ln -sfn ${S}/src/import/contrib/${c} ${S}/src/import/vendor/github.com/containerd/containerd/contrib/${c}
- fi
- done
-
- export GOPATH="${S}/src/import/.gopath:${S}/src/import/vendor:${STAGING_DIR_TARGET}/${prefix}/local/go"
+ export GOPATH="${S}/src/import/.gopath:${S}/src/import/vendor:${STAGING_DIR_TARGET}/${prefix}/local/go:${WORKDIR}/git/"
export GOROOT="${STAGING_DIR_NATIVE}/${nonarch_libdir}/${HOST_SYS}/go"
# Pass the needed cflags/ldflags so that cgo
@@ -78,45 +53,48 @@ do_compile() {
export CFLAGS="${CFLAGS}"
export LDFLAGS="${LDFLAGS}"
export SHIM_CGO_ENABLED="${CGO_ENABLED}"
+ # fixes:
+ # cannot find package runtime/cgo (using -importcfg)
+ # ... recipe-sysroot-native/usr/lib/aarch64-poky-linux/go/pkg/tool/linux_amd64/link:
+ # cannot open file : open : no such file or directory
+ export GO_BUILD_FLAGS="-trimpath -a -pkgdir dontusecurrentpkgs"
export GO111MODULE=off
- cd ${S}/src/import
+ cd ${S}
+
oe_runmake binaries
}
inherit systemd
SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${PN}','',d)}"
-SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('DISTRO_FEATURES','systemd','containerd.service','',d)}"
+SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('DISTRO_FEATURES','systemd','containerd.service','',d)}"
do_install() {
mkdir -p ${D}/${bindir}
- cp ${S}/src/import/bin/containerd ${D}/${bindir}/containerd
- cp ${S}/src/import/bin/containerd-shim ${D}/${bindir}/containerd-shim
- cp ${S}/src/import/bin/containerd-shim-runc-v1 ${D}/${bindir}/containerd-shim-runc-v1
- cp ${S}/src/import/bin/containerd-shim-runc-v2 ${D}/${bindir}/containerd-shim-runc-v2
- cp ${S}/src/import/bin/ctr ${D}/${bindir}/containerd-ctr
+ cp ${S}/bin/containerd ${D}/${bindir}/containerd
+ cp ${S}/bin/containerd-shim-runc-v2 ${D}/${bindir}/containerd-shim-runc-v2
+ cp ${S}/bin/ctr ${D}/${bindir}/containerd-ctr
ln -sf containerd ${D}/${bindir}/docker-containerd
- ln -sf containerd-shim ${D}/${bindir}/docker-containerd-shim
ln -sf containerd-ctr ${D}/${bindir}/docker-containerd-ctr
ln -sf containerd-ctr ${D}/${bindir}/ctr
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
install -d ${D}${systemd_unitdir}/system
- install -m 644 ${S}/src/import/containerd.service ${D}/${systemd_unitdir}/system
+ install -m 644 ${S}/containerd.service ${D}/${systemd_unitdir}/system
# adjust from /usr/local/bin to /usr/bin/
sed -e "s:/usr/local/bin/containerd:${bindir}/containerd:g" -i ${D}/${systemd_unitdir}/system/containerd.service
fi
}
-FILES_${PN} += "${systemd_system_unitdir}/*"
+FILES:${PN} += "${systemd_system_unitdir}/*"
-INSANE_SKIP_${PN} += "ldflags already-stripped"
+INSANE_SKIP:${PN} += "ldflags already-stripped"
COMPATIBLE_HOST = "^(?!(qemu)?mips).*"
-RDEPENDS_${BPN} += " virtual/runc"
+RDEPENDS:${PN} += " ${VIRTUAL-RUNTIME_container_runtime}"
CVE_PRODUCT = "containerd"
diff --git a/recipes-containers/containerd/files/0001-build-use-oe-provided-GO-and-flags.patch b/recipes-containers/containerd/files/0001-build-use-oe-provided-GO-and-flags.patch
index 544881ef..20647c01 100644
--- a/recipes-containers/containerd/files/0001-build-use-oe-provided-GO-and-flags.patch
+++ b/recipes-containers/containerd/files/0001-build-use-oe-provided-GO-and-flags.patch
@@ -7,15 +7,17 @@ We want to use the go compiler as defined in the oe-enviroment, not the
generic call to 'go'. Without changing this, we'll get things like cgo
errors and invalid flag combos.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
Makefile | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
-Index: git/src/import/Makefile
+Index: git/Makefile
===================================================================
---- git.orig/src/import/Makefile
-+++ git/src/import/Makefile
+--- git.orig/Makefile
++++ git/Makefile
@@ -121,7 +121,7 @@
TESTFLAGS_PARALLEL ?= 8
diff --git a/recipes-containers/cri-o/cri-o_git.bb b/recipes-containers/cri-o/cri-o_git.bb
index 527bc722..4e17a7cd 100644
--- a/recipes-containers/cri-o/cri-o_git.bb
+++ b/recipes-containers/cri-o/cri-o_git.bb
@@ -14,10 +14,9 @@ At a high level, we expect the scope of cri-o to be restricted to the following
- Resource isolation as required by the CRI \
"
-SRCREV_cri-o = "bc1ef35a932acc2f6f3b6d3eb19a4f68aa9423f6"
+SRCREV_cri-o = "5aff11c7c1afdc785adafd7da3c3f2a6ac51b88d"
SRC_URI = "\
- git://github.com/kubernetes-sigs/cri-o.git;branch=release-1.21;name=cri-o \
- file://0001-Makefile-force-symlinks.patch \
+ git://github.com/kubernetes-sigs/cri-o.git;branch=release-1.30;name=cri-o;protocol=https \
file://crio.conf \
"
@@ -27,7 +26,10 @@ LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c2
GO_IMPORT = "import"
-PV = "1.21.0+git${SRCREV_cri-o}"
+PV = "1.30.0+git${SRCREV_cri-o}"
+
+inherit features_check
+REQUIRED_DISTRO_FEATURES ?= "seccomp"
DEPENDS = " \
glib-2.0 \
@@ -36,24 +38,25 @@ DEPENDS = " \
ostree \
libdevmapper \
libseccomp \
- libselinux \
"
-RDEPENDS_${PN} = " \
+RDEPENDS:${PN} = " \
cni \
libdevmapper \
"
-PNBLACKLIST[cri-o] ?= "${@bb.utils.contains('BBFILE_COLLECTIONS', 'security', bb.utils.contains('BBFILE_COLLECTIONS', 'selinux', '', 'Depends on libselinux from meta-selinux which is not included', d), 'Depends on libseccomp from meta-security which is not included', d)}"
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
+PACKAGECONFIG[selinux] = ",,libselinux"
PACKAGES =+ "${PN}-config"
-RDEPENDS_${PN} += " virtual/containerd virtual/runc"
-RDEPENDS_${PN} += " e2fsprogs-mke2fs conmon util-linux iptables conntrack-tools"
+RDEPENDS:${PN} += " ${VIRTUAL-RUNTIME_container_runtime}"
+RDEPENDS:${PN} += " e2fsprogs-mke2fs conmon util-linux iptables conntrack-tools"
inherit systemd
inherit go
inherit goarch
inherit pkgconfig
+inherit container-host
EXTRA_OEMAKE="BUILDTAGS=''"
@@ -67,8 +70,8 @@ do_compile() {
}
SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${PN}','',d)}"
-SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('DISTRO_FEATURES','systemd','crio.service','',d)}"
-SYSTEMD_AUTO_ENABLE_${PN} = "enable"
+SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('DISTRO_FEATURES','systemd','crio.service','',d)}"
+SYSTEMD_AUTO_ENABLE:${PN} = "enable"
do_install() {
set +e
@@ -93,17 +96,19 @@ do_install() {
install -m 0644 ${S}/src/import/contrib/systemd/crio.service ${D}${systemd_unitdir}/system/
install -m 0644 ${S}/src/import/contrib/systemd/crio-shutdown.service ${D}${systemd_unitdir}/system/
install -m 0644 ${S}/src/import/contrib/systemd/crio-wipe.service ${D}${systemd_unitdir}/system/
+
+ install -d ${D}${localstatedir}/lib/crio
}
-FILES_${PN}-config = "${sysconfdir}/crio/config/*"
-FILES_${PN} += "${systemd_unitdir}/system/*"
-FILES_${PN} += "/usr/local/bin/*"
-FILES_${PN} += "/usr/share/containers/oci/hooks.d"
+FILES:${PN}-config = "${sysconfdir}/crio/config/*"
+FILES:${PN} += "${systemd_unitdir}/system/*"
+FILES:${PN} += "/usr/local/bin/*"
+FILES:${PN} += "/usr/share/containers/oci/hooks.d"
# don't clobber hooks.d
-ALLOW_EMPTY_${PN} = "1"
+ALLOW_EMPTY:${PN} = "1"
-INSANE_SKIP_${PN} += "ldflags already-stripped"
+INSANE_SKIP:${PN} += "ldflags already-stripped textrel"
deltask compile_ptest_base
diff --git a/recipes-containers/cri-o/files/0001-Makefile-force-symlinks.patch b/recipes-containers/cri-o/files/0001-Makefile-force-symlinks.patch
deleted file mode 100644
index 0b106e41..00000000
--- a/recipes-containers/cri-o/files/0001-Makefile-force-symlinks.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 53371afbf0f20a1651ee6f2406cd2be056a31066 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@windriver.com>
-Date: Thu, 1 Nov 2018 11:17:05 -0400
-Subject: [PATCH] Makefile: force symlinks
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/import/Makefile b/src/import/Makefile
-index cf37bec..68c8eeb 100644
---- a/src/import/Makefile
-+++ b/src/import/Makefile
-@@ -66,7 +66,7 @@ help:
- .gopathok:
- ifeq ("$(wildcard $(GOPKGDIR))","")
- mkdir -p "$(GOPKGBASEDIR)"
-- ln -s "$(CURDIR)" "$(GOPKGDIR)"
-+ ln -sf "$(CURDIR)" "$(GOPKGDIR)"
- endif
- touch "$(GOPATH)/.gopathok"
-
---
-2.7.4
-
diff --git a/recipes-containers/cri-o/files/Makefile-skip-install-when-generating-the-config.h.patch b/recipes-containers/cri-o/files/Makefile-skip-install-when-generating-the-config.h.patch
deleted file mode 100644
index 24c7e9d7..00000000
--- a/recipes-containers/cri-o/files/Makefile-skip-install-when-generating-the-config.h.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 3822e834d2dbd87a4dc8cdd36e7fe3b0e9020c4f Mon Sep 17 00:00:00 2001
-From: Mark Asselstine <mark.asselstine@windriver.com>
-Date: Tue, 9 Apr 2019 13:52:59 -0400
-Subject: [PATCH] Makefile: skip install when generating the config.h
-
-When running 'go build' "The -i flag installs the packages that are
-dependencies of the target." The Makefile makes use of this since many
-of the dependencies needed to complete this rule will be used to by
-other rules in the Makefile, thus speeding the overall build time
-(avoiding redoing work).
-
-In our case the crio-config tool and its dependencies are not being
-cross-compiled as they have to run locally to produce the
-conmon/config.h file and thus installing them is not useful. In this
-case there are no savings and can actually result in errors during the
-build or if the build ARCH and target ARCH are the same, a potential
-for host contamination.
-
-So we drop the use of '-i'.
-
-Upstream-Status: Inappropriate [cross compile issue]
-
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/import/Makefile b/src/import/Makefile
-index b9fa97f..8336a5b 100644
---- a/src/import/Makefile
-+++ b/src/import/Makefile
-@@ -109,7 +109,7 @@ release-note:
- @$(GOPATH)/bin/release-tool -n $(release)
-
- conmon/config.h: cmd/crio-config/config.go oci/oci.go
-- $(GO) build -i $(LDFLAGS) -o bin/crio-config $(PROJECT)/cmd/crio-config
-+ $(GO) build $(LDFLAGS) -o bin/crio-config $(PROJECT)/cmd/crio-config
- ( cd conmon && $(CURDIR)/bin/crio-config )
-
- clean:
---
-2.7.4
-
diff --git a/recipes-containers/cri-o/files/crio.conf b/recipes-containers/cri-o/files/crio.conf
index 899d255b..84472d88 100644
--- a/recipes-containers/cri-o/files/crio.conf
+++ b/recipes-containers/cri-o/files/crio.conf
@@ -1,146 +1,573 @@
# generated via: crio --config="" config --default
-# The "crio" table contains all of the server options.
+# The CRI-O configuration file specifies all of the available configuration
+# options and command-line flags for the crio(8) OCI Kubernetes Container Runtime
+# daemon, but in a TOML format that can be more easily modified and versioned.
+#
+# Please refer to crio.conf(5) for details of all configuration options.
+
+# CRI-O supports partial configuration reload during runtime, which can be
+# done by sending SIGHUP to the running process. Currently supported options
+# are explicitly mentioned with: 'This option supports live configuration
+# reload'.
+
+# CRI-O reads its storage defaults from the containers-storage.conf(5) file
+# located at /etc/containers/storage.conf. Modify this storage configuration if
+# you want to change the system's defaults. If you want to modify storage just
+# for CRI-O, you can change the storage configuration options here.
[crio]
-# root is a path to the "root directory". CRIO stores all of its data,
-# including container images, in this directory.
+# Path to the "root directory". CRI-O stores all of its data, including
+# containers images, in this directory.
root = "/var/lib/containers/storage"
-# run is a path to the "run directory". CRIO stores all of its state
-# in this directory.
-runroot = "/var/run/containers/storage"
+# Path to the "run directory". CRI-O stores all of its state in this directory.
+runroot = "/run/containers/storage"
-# storage_driver select which storage driver is used to manage storage
-# of images and containers.
+# Storage driver used to manage the storage of images and containers. Please
+# refer to containers-storage.conf(5) to see all available storage drivers.
storage_driver = ""
-# storage_option is used to pass an option to the storage driver.
+# List to pass options to the storage driver. Please refer to
+# containers-storage.conf(5) to see all available storage options.
storage_option = [
]
-# The "crio.api" table contains settings for the kubelet/gRPC
-# interface (which is also used by crioctl).
+# The default log directory where all logs will go unless directly specified by
+# the kubelet. The log directory specified must be an absolute directory.
+log_dir = "/var/log/crio/pods"
+
+# Location for CRI-O to lay down the temporary version file.
+# It is used to check if crio wipe should wipe containers, which should
+# always happen on a node reboot
+version_file = "/var/run/crio/version"
+
+# Location for CRI-O to lay down the persistent version file.
+# It is used to check if crio wipe should wipe images, which should
+# only happen when CRI-O has been upgraded
+version_file_persist = ""
+
+# InternalWipe is whether CRI-O should wipe containers and images after a reboot when the server starts.
+# If set to false, one must use the external command 'crio wipe' to wipe the containers and images in these situations.
+internal_wipe = true
+
+# Location for CRI-O to lay down the clean shutdown file.
+# It is used to check whether crio had time to sync before shutting down.
+# If not found, crio wipe will clear the storage directory.
+clean_shutdown_file = "/var/lib/crio/clean.shutdown"
+
+# The crio.api table contains settings for the kubelet/gRPC interface.
[crio.api]
-# listen is the path to the AF_LOCAL socket on which crio will listen.
+# Path to AF_LOCAL socket on which CRI-O will listen.
listen = "/var/run/crio/crio.sock"
-# stream_address is the IP address on which the stream server will listen
-stream_address = ""
+# IP address on which the stream server will listen.
+stream_address = "127.0.0.1"
+
+# The port on which the stream server will listen. If the port is set to "0", then
+# CRI-O will allocate a random free port number.
+stream_port = "0"
+
+# Enable encrypted TLS transport of the stream server.
+stream_enable_tls = false
+
+# Length of time until open streams terminate due to lack of activity
+stream_idle_timeout = ""
-# stream_port is the port on which the stream server will listen
-stream_port = "10010"
+# Path to the x509 certificate file used to serve the encrypted stream. This
+# file can change, and CRI-O will automatically pick up the changes within 5
+# minutes.
+stream_tls_cert = ""
-# file_locking is whether file-based locking will be used instead of
-# in-memory locking
-file_locking = true
+# Path to the key file used to serve the encrypted stream. This file can
+# change and CRI-O will automatically pick up the changes within 5 minutes.
+stream_tls_key = ""
-# The "crio.runtime" table contains settings pertaining to the OCI
-# runtime used and options for how to set up and manage the OCI runtime.
+# Path to the x509 CA(s) file used to verify and authenticate client
+# communication with the encrypted stream. This file can change and CRI-O will
+# automatically pick up the changes within 5 minutes.
+stream_tls_ca = ""
+
+# Maximum grpc send message size in bytes. If not set or <=0, then CRI-O will default to 16 * 1024 * 1024.
+grpc_max_send_msg_size = 83886080
+
+# Maximum grpc receive message size. If not set or <= 0, then CRI-O will default to 16 * 1024 * 1024.
+grpc_max_recv_msg_size = 83886080
+
+# The crio.runtime table contains settings pertaining to the OCI runtime used
+# and options for how to set up and manage the OCI runtime.
[crio.runtime]
-# runtime is the OCI compatible runtime used for trusted container workloads.
-# This is a mandatory setting as this runtime will be the default one
-# and will also be used for untrusted container workloads if
-# runtime_untrusted_workload is not set.
-runtime = "/usr/bin/runc"
-
-# runtime_untrusted_workload is the OCI compatible runtime used for untrusted
-# container workloads. This is an optional setting, except if
-# default_container_trust is set to "untrusted".
-runtime_untrusted_workload = ""
-
-# default_workload_trust is the default level of trust crio puts in container
-# workloads. It can either be "trusted" or "untrusted", and the default
-# is "trusted".
-# Containers can be run through different container runtimes, depending on
-# the trust hints we receive from kubelet:
-# - If kubelet tags a container workload as untrusted, crio will try first to
-# run it through the untrusted container workload runtime. If it is not set,
-# crio will use the trusted runtime.
-# - If kubelet does not provide any information about the container workload trust
-# level, the selected runtime will depend on the default_container_trust setting.
-# If it is set to "untrusted", then all containers except for the host privileged
-# ones, will be run by the runtime_untrusted_workload runtime. Host privileged
-# containers are by definition trusted and will always use the trusted container
-# runtime. If default_container_trust is set to "trusted", crio will use the trusted
-# container runtime for all containers.
-default_workload_trust = "trusted"
-
-# conmon is the path to conmon binary, used for managing the runtime.
-conmon = "/usr/bin/conmon"
-
-# conmon_env is the environment variable list for conmon process,
-# used for passing necessary environment variable to conmon or runtime.
+# A list of ulimits to be set in containers by default, specified as
+# "<ulimit name>=<soft limit>:<hard limit>", for example:
+# "nofile=1024:2048"
+# If nothing is set here, settings will be inherited from the CRI-O daemon
+default_ulimits = [
+]
+
+# If true, the runtime will not use pivot_root, but instead use MS_MOVE.
+no_pivot = false
+
+# decryption_keys_path is the path where the keys required for
+# image decryption are stored. This option supports live configuration reload.
+decryption_keys_path = "/etc/crio/keys/"
+
+# Path to the conmon binary, used for monitoring the OCI runtime.
+# Will be searched for using $PATH if empty.
+# This option is currently deprecated, and will be replaced with RuntimeHandler.MonitorEnv.
+conmon = ""
+
+# Cgroup setting for conmon
+# This option is currently deprecated, and will be replaced with RuntimeHandler.MonitorCgroup.
+conmon_cgroup = ""
+
+# Environment variable list for the conmon process, used for passing necessary
+# environment variables to conmon or the runtime.
+# This option is currently deprecated, and will be replaced with RuntimeHandler.MonitorEnv.
conmon_env = [
- "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
]
-# selinux indicates whether or not SELinux will be used for pod
-# separation on the host. If you enable this flag, SELinux must be running
-# on the host.
-selinux = false
+# Additional environment variables to set for all the
+# containers. These are overridden if set in the
+# container image spec or in the container runtime configuration.
+default_env = [
+]
-# seccomp_profile is the seccomp json profile path which is used as the
-# default for the runtime.
-seccomp_profile = "/etc/crio/seccomp.json"
+# If true, SELinux will be used for pod separation on the host.
+selinux = false
-# apparmor_profile is the apparmor profile name which is used as the
-# default for the runtime.
+# Path to the seccomp.json profile which is used as the default seccomp profile
+# for the runtime. If not specified, then the internal default seccomp profile
+# will be used. This option supports live configuration reload.
+seccomp_profile = ""
+
+# Changes the meaning of an empty seccomp profile. By default
+# (and according to CRI spec), an empty profile means unconfined.
+# This option tells CRI-O to treat an empty profile as the default profile,
+# which might increase security.
+seccomp_use_default_when_empty = true
+
+# Used to change the name of the default AppArmor profile of CRI-O. The default
+# profile name is "crio-default". This profile only takes effect if the user
+# does not specify a profile via the Kubernetes Pod's metadata annotation. If
+# the profile is set to "unconfined", then this equals to disabling AppArmor.
+# This option supports live configuration reload.
apparmor_profile = "crio-default"
-# cgroup_manager is the cgroup management implementation to be used
-# for the runtime.
-cgroup_manager = "cgroupfs"
+# Path to the blockio class configuration file for configuring
+# the cgroup blockio controller.
+blockio_config_file = ""
+
+# Used to change irqbalance service config file path which is used for configuring
+# irqbalance daemon.
+irqbalance_config_file = "/etc/sysconfig/irqbalance"
+
+# Path to the RDT configuration file for configuring the resctrl pseudo-filesystem.
+# This option supports live configuration reload.
+rdt_config_file = ""
+
+# Cgroup management implementation used for the runtime.
+cgroup_manager = "systemd"
+
+# Specify whether the image pull must be performed in a separate cgroup.
+separate_pull_cgroup = ""
+
+# List of default capabilities for containers. If it is empty or commented out,
+# only the capabilities defined in the containers json file by the user/kube
+# will be added.
+default_capabilities = [
+ "CHOWN",
+ "DAC_OVERRIDE",
+ "FSETID",
+ "FOWNER",
+ "SETGID",
+ "SETUID",
+ "SETPCAP",
+ "NET_BIND_SERVICE",
+ "KILL",
+]
-# hooks_dir_path is the oci hooks directory for automatically executed hooks
-hooks_dir_path = "/usr/share/containers/oci/hooks.d"
+# List of default sysctls. If it is empty or commented out, only the sysctls
+# defined in the container json file by the user/kube will be added.
+default_sysctls = [
+]
-# pids_limit is the number of processes allowed in a container
-pids_limit = 1024
+# List of devices on the host that a
+# user can specify with the "io.kubernetes.cri-o.Devices" allowed annotation.
+allowed_devices = [
+ "/dev/fuse",
+]
+
+# List of additional devices. specified as
+# "<device-on-host>:<device-on-container>:<permissions>", for example: "--device=/dev/sdc:/dev/xvdc:rwm".
+# If it is empty or commented out, only the devices
+# defined in the container json file by the user/kube will be added.
+additional_devices = [
+]
-# The "crio.image" table contains settings pertaining to the
-# management of OCI images.
+# List of directories to scan for CDI Spec files.
+cdi_spec_dirs = [
+ "/etc/cdi",
+ "/var/run/cdi",
+]
+
+# Change the default behavior of setting container devices uid/gid from CRI's
+# SecurityContext (RunAsUser/RunAsGroup) instead of taking host's uid/gid.
+# Defaults to false.
+device_ownership_from_security_context = false
+
+# Path to OCI hooks directories for automatically executed hooks. If one of the
+# directories does not exist, then CRI-O will automatically skip them.
+hooks_dir = [
+ "/usr/share/containers/oci/hooks.d",
+]
+
+# Path to the file specifying the defaults mounts for each container. The
+# format of the config is /SRC:/DST, one mount per line. Notice that CRI-O reads
+# its default mounts from the following two files:
+#
+# 1) /etc/containers/mounts.conf (i.e., default_mounts_file): This is the
+# override file, where users can either add in their own default mounts, or
+# override the default mounts shipped with the package.
+#
+# 2) /usr/share/containers/mounts.conf: This is the default file read for
+# mounts. If you want CRI-O to read from a different, specific mounts file,
+# you can change the default_mounts_file. Note, if this is done, CRI-O will
+# only add mounts it finds in this file.
+#
+default_mounts_file = ""
+
+# Maximum number of processes allowed in a container.
+# This option is deprecated. The Kubelet flag '--pod-pids-limit' should be used instead.
+pids_limit = 0
+
+# Maximum sized allowed for the container log file. Negative numbers indicate
+# that no size limit is imposed. If it is positive, it must be >= 8192 to
+# match/exceed conmon's read buffer. The file is truncated and re-opened so the
+# limit is never exceeded. This option is deprecated. The Kubelet flag '--container-log-max-size' should be used instead.
+log_size_max = -1
+
+# Whether container output should be logged to journald in addition to the kuberentes log file
+log_to_journald = false
+
+# Path to directory in which container exit files are written to by conmon.
+container_exits_dir = "/var/run/crio/exits"
+
+# Path to directory for container attach sockets.
+container_attach_socket_dir = "/var/run/crio"
+
+# The prefix to use for the source of the bind mounts.
+bind_mount_prefix = ""
+
+# If set to true, all containers will run in read-only mode.
+read_only = false
+
+# Changes the verbosity of the logs based on the level it is set to. Options
+# are fatal, panic, error, warn, info, debug and trace. This option supports
+# live configuration reload.
+log_level = "info"
+
+# Filter the log messages by the provided regular expression.
+# This option supports live configuration reload.
+log_filter = ""
+
+# The UID mappings for the user namespace of each container. A range is
+# specified in the form containerUID:HostUID:Size. Multiple ranges must be
+# separated by comma.
+uid_mappings = ""
+
+# The GID mappings for the user namespace of each container. A range is
+# specified in the form containerGID:HostGID:Size. Multiple ranges must be
+# separated by comma.
+gid_mappings = ""
+
+# If set, CRI-O will reject any attempt to map host UIDs below this value
+# into user namespaces. A negative value indicates that no minimum is set,
+# so specifying mappings will only be allowed for pods that run as UID 0.
+minimum_mappable_uid = -1
+
+# If set, CRI-O will reject any attempt to map host GIDs below this value
+# into user namespaces. A negative value indicates that no minimum is set,
+# so specifying mappings will only be allowed for pods that run as UID 0.
+minimum_mappable_gid = -1
+
+# The minimal amount of time in seconds to wait before issuing a timeout
+# regarding the proper termination of the container. The lowest possible
+# value is 30s, whereas lower values are not considered by CRI-O.
+ctr_stop_timeout = 30
+
+# drop_infra_ctr determines whether CRI-O drops the infra container
+# when a pod does not have a private PID namespace, and does not use
+# a kernel separating runtime (like kata).
+# It requires manage_ns_lifecycle to be true.
+drop_infra_ctr = true
+
+# infra_ctr_cpuset determines what CPUs will be used to run infra containers.
+# You can use linux CPU list format to specify desired CPUs.
+# To get better isolation for guaranteed pods, set this parameter to be equal to kubelet reserved-cpus.
+infra_ctr_cpuset = ""
+
+# The directory where the state of the managed namespaces gets tracked.
+# Only used when manage_ns_lifecycle is true.
+namespaces_dir = "/var/run"
+
+# pinns_path is the path to find the pinns binary, which is needed to manage namespace lifecycle
+pinns_path = ""
+
+# default_runtime is the _name_ of the OCI runtime to be used as the default.
+# The name is matched against the runtimes map below. If this value is changed,
+# the corresponding existing entry from the runtimes map below will be ignored.
+default_runtime = "runc"
+
+# A list of paths that, when absent from the host,
+# will cause a container creation to fail (as opposed to the current behavior being created as a directory).
+# This option is to protect from source locations whose existence as a directory could jepordize the health of the node, and whose
+# creation as a file is not desired either.
+# An example is /etc/hostname, which will cause failures on reboot if it's created as a directory, but often doesn't exist because
+# the hostname is being managed dynamically.
+absent_mount_sources_to_reject = [
+]
+
+# The "crio.runtime.runtimes" table defines a list of OCI compatible runtimes.
+# The runtime to use is picked based on the runtime handler provided by the CRI.
+# If no runtime handler is provided, the runtime will be picked based on the level
+# of trust of the workload. Each entry in the table should follow the format:
+#
+#[crio.runtime.runtimes.runtime-handler]
+# runtime_path = "/path/to/the/executable"
+# runtime_type = "oci"
+# runtime_root = "/path/to/the/root"
+# privileged_without_host_devices = false
+# allowed_annotations = []
+# Where:
+# - runtime-handler: name used to identify the runtime
+# - runtime_path (optional, string): absolute path to the runtime executable in
+# the host filesystem. If omitted, the runtime-handler identifier should match
+# the runtime executable name, and the runtime executable should be placed
+# in $PATH.
+# - runtime_type (optional, string): type of runtime, one of: "oci", "vm". If
+# omitted, an "oci" runtime is assumed.
+# - runtime_root (optional, string): root directory for storage of containers
+# state.
+# - runtime_config_path (optional, string): the path for the runtime configuration
+# file. This can only be used with when using the VM runtime_type.
+# - privileged_without_host_devices (optional, bool): an option for restricting
+# host devices from being passed to privileged containers.
+# - allowed_annotations (optional, array of strings): an option for specifying
+# a list of experimental annotations that this runtime handler is allowed to process.
+# The currently recognized values are:
+# "io.kubernetes.cri-o.userns-mode" for configuring a user namespace for the pod.
+# "io.kubernetes.cri-o.cgroup2-mount-hierarchy-rw" for mounting cgroups writably when set to "true".
+# "io.kubernetes.cri-o.Devices" for configuring devices for the pod.
+# "io.kubernetes.cri-o.ShmSize" for configuring the size of /dev/shm.
+# "io.kubernetes.cri-o.UnifiedCgroup.$CTR_NAME" for configuring the cgroup v2 unified block for a container.
+# "io.containers.trace-syscall" for tracing syscalls via the OCI seccomp BPF hook.
+# "io.kubernetes.cri.rdt-class" for setting the RDT class of a container
+# - monitor_exec_cgroup (optional, string): if set to "container", indicates exec probes
+# should be moved to the container's cgroup
+
+
+[crio.runtime.runtimes.runc]
+runtime_path = ""
+runtime_type = "oci"
+runtime_root = "/run/runc"
+runtime_config_path = ""
+
+
+allowed_annotations = [
+ "io.containers.trace-syscall",
+]
+
+monitor_path = ""
+
+monitor_env = [
+ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
+]
+
+monitor_cgroup = "system.slice"
+monitor_exec_cgroup = ""
+
+
+# crun is a fast and lightweight fully featured OCI runtime and C library for
+# running containers
+#[crio.runtime.runtimes.crun]
+
+# Kata Containers is an OCI runtime, where containers are run inside lightweight
+# VMs. Kata provides additional isolation towards the host, minimizing the host attack
+# surface and mitigating the consequences of containers breakout.
+
+# Kata Containers with the default configured VMM
+#[crio.runtime.runtimes.kata-runtime]
+
+# Kata Containers with the QEMU VMM
+#[crio.runtime.runtimes.kata-qemu]
+
+# Kata Containers with the Firecracker VMM
+#[crio.runtime.runtimes.kata-fc]
+
+# The workloads table defines ways to customize containers with different resources
+# that work based on annotations, rather than the CRI.
+# Note, the behavior of this table is EXPERIMENTAL and may change at any time.
+# Each workload, has a name, activation_annotation, annotation_prefix and set of resources it supports mutating.
+# The currently supported resources are "cpu" (to configure the cpu shares) and "cpuset" to configure the cpuset.
+# Each resource can have a default value specified, or be empty.
+# For a container to opt-into this workload, the pod should be configured with the annotation $activation_annotation (key only, value is ignored).
+# To customize per-container, an annotation of the form $annotation_prefix.$resource/$ctrName = "value" can be specified
+# signifying for that resource type to override the default value.
+# If the annotation_prefix is not present, every container in the pod will be given the default values.
+# Example:
+# [crio.runtime.workloads.workload-type]
+# activation_annotation = "io.crio/workload"
+# annotation_prefix = "io.crio.workload-type"
+# [crio.runtime.workloads.workload-type.resources]
+# cpuset = 0
+# cpushares = "0-1"
+# Where:
+# The workload name is workload-type.
+# To specify, the pod must have the "io.crio.workload" annotation (this is a precise string match).
+# This workload supports setting cpuset and cpu resources.
+# annotation_prefix is used to customize the different resources.
+# To configure the cpu shares a container gets in the example above, the pod would have to have the following annotation:
+# "io.crio.workload-type/$container_name = {"cpushares": "value"}"
+
+
+# The crio.image table contains settings pertaining to the management of OCI images.
+#
+# CRI-O reads its configured registries defaults from the system wide
+# containers-registries.conf(5) located in /etc/containers/registries.conf. If
+# you want to modify just CRI-O, you can change the registries configuration in
+# this file. Otherwise, leave insecure_registries and registries commented out to
+# use the system's defaults from /etc/containers/registries.conf.
[crio.image]
-# default_transport is the prefix we try prepending to an image name if the
-# image name as we receive it can't be parsed as a valid source reference
+# Default transport for pulling images from a remote container storage.
default_transport = "docker://"
-# pause_image is the image which we use to instantiate infra containers.
-pause_image = "kubernetes/pause"
+# The path to a file containing credentials necessary for pulling images from
+# secure registries. The file is similar to that of /var/lib/kubelet/config.json
+global_auth_file = ""
+
+# The image used to instantiate infra containers.
+# This option supports live configuration reload.
+pause_image = "registry.k8s.io/pause:3.6"
-# pause_command is the command to run in a pause_image to have a container just
-# sit there. If the image contains the necessary information, this value need
-# not be specified.
+# The path to a file containing credentials specific for pulling the pause_image from
+# above. The file is similar to that of /var/lib/kubelet/config.json
+# This option supports live configuration reload.
+pause_image_auth_file = ""
+
+# The command to run to have a container stay in the paused state.
+# When explicitly set to "", it will fallback to the entrypoint and command
+# specified in the pause image. When commented out, it will fallback to the
+# default: "/pause". This option supports live configuration reload.
pause_command = "/pause"
-# signature_policy is the name of the file which decides what sort of policy we
-# use when deciding whether or not to trust an image that we've pulled.
-# Outside of testing situations, it is strongly advised that this be left
-# unspecified so that the default system-wide policy will be used.
+# Path to the file which decides what sort of policy we use when deciding
+# whether or not to trust an image that we've pulled. It is not recommended that
+# this option be used, as the default behavior of using the system-wide default
+# policy (i.e., /etc/containers/policy.json) is most often preferred. Please
+# refer to containers-policy.json(5) for more details.
signature_policy = ""
-# image_volumes controls how image volumes are handled.
-# The valid values are mkdir and ignore.
-image_volumes = "mkdir"
-
-# insecure_registries is used to skip TLS verification when pulling images.
+# List of registries to skip TLS verification for pulling images. Please
+# consider configuring the registries via /etc/containers/registries.conf before
+# changing them here.
insecure_registries = [
]
-# registries is used to specify a comma separated list of registries to be used
-# when pulling an unqualified image (e.g. fedora:rawhide).
-registries = ['docker.io', 'registry.fedoraproject.org', 'registry.access.redhat.com']
+# Controls how image volumes are handled. The valid values are mkdir, bind and
+# ignore; the latter will ignore volumes entirely.
+image_volumes = "mkdir"
+
+# Temporary directory to use for storing big files
+big_files_temporary_dir = ""
-# The "crio.network" table contains settings pertaining to the
-# management of CNI plugins.
+# The crio.network table containers settings pertaining to the management of
+# CNI plugins.
[crio.network]
-# network_dir is is where CNI network configuration
-# files are stored.
+# The default CNI network name to be selected. If not set or "", then
+# CRI-O will pick-up the first one found in network_dir.
+# cni_default_network = ""
+
+# Path to the directory where CNI configuration files are located.
network_dir = "/etc/cni/net.d/"
-# plugin_dir is is where CNI plugin binaries are stored.
-plugin_dir = "/opt/cni/bin"
+# Paths to directories where CNI plugin binaries are located.
+plugin_dirs = [
+ "/opt/cni/bin/",
+]
+
+# A necessary configuration for Prometheus based metrics retrieval
+[crio.metrics]
+
+# Globally enable or disable metrics support.
+enable_metrics = false
+
+# Specify enabled metrics collectors.
+# Per default all metrics are enabled.
+# It is possible, to prefix the metrics with "container_runtime_" and "crio_".
+# For example, the metrics collector "operations" would be treated in the same
+# way as "crio_operations" and "container_runtime_crio_operations".
+metrics_collectors = [
+ "operations",
+ "operations_latency_microseconds_total",
+ "operations_latency_microseconds",
+ "operations_errors",
+ "image_pulls_by_digest",
+ "image_pulls_by_name",
+ "image_pulls_by_name_skipped",
+ "image_pulls_failures",
+ "image_pulls_successes",
+ "image_pulls_layer_size",
+ "image_layer_reuse",
+ "containers_oom_total",
+ "containers_oom",
+ "processes_defunct",
+ "operations_total",
+ "operations_latency_seconds",
+ "operations_latency_seconds_total",
+ "operations_errors_total",
+ "image_pulls_bytes_total",
+ "image_pulls_skipped_bytes_total",
+ "image_pulls_failure_total",
+ "image_pulls_success_total",
+ "image_layer_reuse_total",
+ "containers_oom_count_total",
+]
+# The port on which the metrics server will listen.
+metrics_port = 9090
+
+# Local socket path to bind the metrics server to
+metrics_socket = ""
+
+# The certificate for the secure metrics server.
+# If the certificate is not available on disk, then CRI-O will generate a
+# self-signed one. CRI-O also watches for changes of this path and reloads the
+# certificate on any modification event.
+metrics_cert = ""
+
+# The certificate key for the secure metrics server.
+# Behaves in the same way as the metrics_cert.
+metrics_key = ""
+
+# A necessary configuration for OpenTelemetry trace data exporting
+[crio.tracing]
+
+# Globally enable or disable exporting OpenTelemetry traces.
+enable_tracing = false
+
+# Address on which the gRPC trace collector listens on.
+tracing_endpoint = "0.0.0.0:4317"
+
+# Number of samples to collect per million spans.
+tracing_sampling_rate_per_million = 0
+
+# Necessary information pertaining to container and pod stats reporting.
+[crio.stats]
+
+# The number of seconds between collecting pod and container stats.
+# If set to 0, the stats are collected on-demand instead.
+stats_collection_period = 0
+
diff --git a/recipes-containers/cri-tools/cri-tools/0001-build-allow-environmental-CGO-settings-and-pass-dont.patch b/recipes-containers/cri-tools/cri-tools/0001-build-allow-environmental-CGO-settings-and-pass-dont.patch
index afd7c4bf..29e0367b 100644
--- a/recipes-containers/cri-tools/cri-tools/0001-build-allow-environmental-CGO-settings-and-pass-dont.patch
+++ b/recipes-containers/cri-tools/cri-tools/0001-build-allow-environmental-CGO-settings-and-pass-dont.patch
@@ -1,6 +1,6 @@
-From 28ee02687339b657a7aa93570015a6751c824e2d Mon Sep 17 00:00:00 2001
+From 567b618f2ab9bb722826688d84f328773e4f37ce Mon Sep 17 00:00:00 2001
From: Bruce Ashfield <bruce.ashfield@gmail.com>
-Date: Wed, 10 Feb 2021 09:58:24 -0500
+Date: Wed, 17 Aug 2022 11:03:09 -0400
Subject: [PATCH] build: allow environmental CGO settings and pass
dontusecurrentpkgs
@@ -13,9 +13,9 @@ builds (for the most part), and that is not recommended by many
packages, we end up with errors like:
1.20.0+gitec9e336fd8c21c4bab89a6aed2c4a138c8cfae75/src/import/_output/crictl \
- -ldflags '-X github.com/kubernetes-sigs/cri-tools/pkg/version.Version=1.20.0' \
- -tags '' \
- github.com/kubernetes-sigs/cri-tools/cmd/crictl
+ -ldflags '-X github.com/kubernetes-sigs/cri-tools/pkg/version.Version=1.20.0' \
+ -tags '' \
+ github.com/kubernetes-sigs/cri-tools/cmd/crictl
# github.com/kubernetes-sigs/cri-tools/cmd/crictl
cannot find package runtime/cgo (using -importcfg)
/work/cortexa72-poky-linux/cri-tools/1.20.0+gitec9e336fd8c21c4bab89a6aed2c4a138c8cfae75-r0/recipe-sysroot-native/usr/lib/aarch64-poky-linux/go/pkg/tool/linux_amd64/link:
@@ -28,22 +28,24 @@ https://www.yoctoproject.org/pipermail/meta-virtualization/2019-March/004084.htm
We introduce '-a -pkgdir dontusecurrentpkgs' to mask/fix the problem,
and continue to work towards non-static builds.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
src/import/Makefile | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
-Index: cri-tools-1.21.0+gitfa50f4af0f6beba20264bfb3fd4d1d34e42f7b54/src/import/Makefile
+Index: cri-tools-1.27.0+gite73a7139ed4986d6a0db784ae7a036841a02b351/src/import/Makefile
===================================================================
---- cri-tools-1.21.0+gitfa50f4af0f6beba20264bfb3fd4d1d34e42f7b54.orig/src/import/Makefile
-+++ cri-tools-1.21.0+gitfa50f4af0f6beba20264bfb3fd4d1d34e42f7b54/src/import/Makefile
-@@ -73,7 +73,8 @@
+--- cri-tools-1.27.0+gite73a7139ed4986d6a0db784ae7a036841a02b351.orig/src/import/Makefile
++++ cri-tools-1.27.0+gite73a7139ed4986d6a0db784ae7a036841a02b351/src/import/Makefile
+@@ -74,7 +74,8 @@
@$(MAKE) -B $(CRICTL)
$(CRICTL):
-- CGO_ENABLED=0 $(GO_BUILD) -o $@ \
+- CGO_ENABLED=$(CGO_ENABLED) $(GO_BUILD) -o $@ \
+ $(GO_BUILD) -o $@ \
+ -a -pkgdir dontusecurrentpkgs \
-ldflags '$(GO_LDFLAGS)' \
- -tags '$(BUILDTAGS)' \
+ $(GOFLAGS) \
$(PROJECT)/cmd/crictl
diff --git a/recipes-containers/cri-tools/cri-tools_git.bb b/recipes-containers/cri-tools/cri-tools_git.bb
index ad054e1c..e0caf740 100644
--- a/recipes-containers/cri-tools/cri-tools_git.bb
+++ b/recipes-containers/cri-tools/cri-tools_git.bb
@@ -16,9 +16,9 @@ What is not in scope for this project? \
non-exist on the kube-apiserver. \
"
-SRCREV_cri-tools = "fa50f4af0f6beba20264bfb3fd4d1d34e42f7b54"
+SRCREV_cri-tools = "17b4dd65d660fec94d7a5a070e3e89ef640f1087"
SRC_URI = "\
- git://github.com/kubernetes-sigs/cri-tools.git;branch=master;name=cri-tools \
+ git://github.com/kubernetes-sigs/cri-tools.git;branch=master;name=cri-tools;protocol=https \
file://0001-build-allow-environmental-CGO-settings-and-pass-dont.patch \
"
@@ -27,9 +27,9 @@ LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c2
GO_IMPORT = "import"
-PV = "1.21.0+git${SRCREV_cri-tools}"
+PV = "1.29.0+git${SRCREV_cri-tools}"
-RPROVIDES_${PN} += "crictl"
+RPROVIDES:${PN} += "crictl"
PACKAGES =+ "${PN}-critest"
inherit go
@@ -63,15 +63,18 @@ do_compile() {
do_install() {
install -d ${D}${bindir}
- install -m 755 -D ${S}/src/import/build/bin/* ${D}/${bindir}
+ for f in $(find ${S}/src/import/build/bin/ -type f); do
+ echo "installing $f to ${D}/${bindir}"
+ install -m 755 -D $f ${D}/${bindir}
+ done
}
-FILES_${PN}-critest = "${bindir}/critest"
+FILES:${PN}-critest = "${bindir}/critest"
# don't clobber hooks.d
-ALLOW_EMPTY_${PN} = "1"
+ALLOW_EMPTY:${PN} = "1"
-INSANE_SKIP_${PN} += "ldflags already-stripped textrel"
+INSANE_SKIP:${PN} += "ldflags already-stripped textrel"
deltask compile_ptest_base
diff --git a/recipes-containers/criu/criu_git.bb b/recipes-containers/criu/criu_git.bb
index febf81ed..09503624 100644
--- a/recipes-containers/criu/criu_git.bb
+++ b/recipes-containers/criu/criu_git.bb
@@ -7,25 +7,27 @@ it was frozen at. The distinctive feature of the CRIU project is that it is \
mainly implemented in user space"
HOMEPAGE = "http://criu.org"
SECTION = "console/tools"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
EXCLUDE_FROM_WORLD = "1"
LIC_FILES_CHKSUM = "file://COPYING;md5=412de458544c1cb6a2b512cd399286e2"
-SRCREV = "e49ce513c8df43e8d3b30b7acfbe7bd496d89862"
-PV = "3.14+git${SRCPV}"
+SRCREV = "f8b14286b092853a4485813e1efd564109df9123"
+PV = "3.19.0+git"
-SRC_URI = "git://github.com/checkpoint-restore/criu.git;branch=criu-dev \
- file://0002-criu-Skip-documentation-install.patch \
- file://0001-criu-Change-libraries-install-directory.patch \
- file://lib-Makefile-overwrite-install-lib-to-allow-multiarc.patch \
- "
+SRC_URI = "git://github.com/checkpoint-restore/criu.git;branch=master;protocol=https \
+ file://0001-criu-Skip-documentation-install.patch \
+ file://0002-criu-Change-libraries-install-directory.patch \
+ file://0003-crit-pycriu-build-and-install-wheels.patch \
+ file://0004-pycriu-attr-pycriu.version.__version__.patch \
+ file://0005-pycriu-skip-dependency-check-during-build.patch \
+ "
COMPATIBLE_HOST = "(x86_64|arm|aarch64).*-linux"
-DEPENDS += "libnl libcap protobuf-c-native protobuf-c util-linux-native libbsd libnet"
-RDEPENDS_${PN} = "bash"
+DEPENDS += "libnl libcap protobuf-c-native protobuf-c util-linux-native libbsd libnet python3-protobuf-native"
+RDEPENDS:${PN} = "bash cgroup-lite python3-ctypes python3-fcntl python3-protobuf"
S = "${WORKDIR}/git"
@@ -34,17 +36,17 @@ S = "${WORKDIR}/git"
# if the ARCH is ARMv7 or ARMv6.
# ARM BSPs need set CRIU_BUILD_ARCH variable for building CRIU.
#
-EXTRA_OEMAKE_arm += "ARCH=arm UNAME-M=${CRIU_BUILD_ARCH} WERROR=0"
-EXTRA_OEMAKE_x86-64 += "ARCH=x86 WERROR=0"
-EXTRA_OEMAKE_aarch64 += "ARCH=aarch64 WERROR=0"
+EXTRA_OEMAKE:arm += "ARCH=arm UNAME-M=${CRIU_BUILD_ARCH} WERROR=0"
+EXTRA_OEMAKE:x86-64 += "ARCH=x86 WERROR=0"
+EXTRA_OEMAKE:aarch64 += "ARCH=aarch64 WERROR=0"
-EXTRA_OEMAKE_append += "SBINDIR=${sbindir} LIBDIR=${libdir} INCLUDEDIR=${includedir} PIEGEN=no"
-EXTRA_OEMAKE_append += "LOGROTATEDIR=${sysconfdir} SYSTEMDUNITDIR=${systemd_unitdir}"
+EXTRA_OEMAKE:append = " SBINDIR=${sbindir} LIBDIR=${libdir} INCLUDEDIR=${includedir} PIEGEN=no"
+EXTRA_OEMAKE:append = " LOGROTATEDIR=${sysconfdir} SYSTEMDUNITDIR=${systemd_unitdir}"
-CFLAGS += "-D__USE_GNU -D_GNU_SOURCE "
+CFLAGS += "-D__USE_GNU -D_GNU_SOURCE "
CFLAGS += " -I${STAGING_INCDIR} -I${STAGING_INCDIR}/libnl3"
-CFLAGS_arm += "-D__WORDSIZE"
+CFLAGS:arm += "-D__WORDSIZE"
# overide LDFLAGS to allow criu to build without: "x86_64-poky-linux-ld: unrecognized option '-Wl,-O1'"
export LDFLAGS=""
@@ -54,7 +56,8 @@ export BUILD_SYS
export HOST_SYS
export HOSTCFLAGS = "${BUILD_CFLAGS}"
-inherit setuptools3
+inherit python_setuptools_build_meta
+inherit pkgconfig
B = "${S}"
@@ -63,33 +66,47 @@ PACKAGECONFIG[selinux] = ",,libselinux"
CLEANBROKEN = "1"
-do_compile_prepend() {
+# WARNING: criu-3.17.1 do_package_qa: QA Issue: criu: ELF binary /usr/sbin/criu has relocations in .text [textrel]
+INSANE_SKIP:${PN} += "textrel"
+
+do_compile:prepend() {
rm -rf ${S}/images/google/protobuf/descriptor.proto
ln -s ${PKG_CONFIG_SYSROOT_DIR}/usr/include/google/protobuf/descriptor.proto ${S}/images/google/protobuf/descriptor.proto
}
do_compile () {
- oe_runmake FULL_PYTHON=${PYTHON} PYTHON=python3
+ oe_runmake FULL_PYTHON=${PYTHON} PYTHON=nativepython3
}
do_install () {
export INSTALL_LIB="${libdir}/${PYTHON_DIR}/site-packages"
- oe_runmake PREFIX=${exec_prefix} LIBDIR=${libdir} DESTDIR="${D}" FULL_PYTHON=${PYTHON} PYTHON=python3 install
+ export PEP517_WHEEL_PATH="${PEP517_WHEEL_PATH}"
+ export USRBINPATH="${USRBINPATH}"
+ export PEP517_INSTALL_PYTHON="${PEP517_INSTALL_PYTHON}"
+ oe_runmake PREFIX=${exec_prefix} LIBDIR=${libdir} DESTDIR="${D}" PLUGINDIR="${localstatedir}/lib" FULL_PYTHON=${PYTHON} PYTHON=nativepython3 install
# python3's distutils has a feature of rewriting the interpeter on setup installed
# scripts. 'crit' is one of those scripts. The "executable" or "e" option to the
# setup call should fix it, but it is being ignored. So to avoid getting our native
# intepreter replaced in the script, we'll do an explicit update ourselves.
- sed -i 's%^\#\!.*%\#\!/usr/bin/env python3%g' ${D}/usr/bin/crit
+ #
+ # we're building wheels now, so EGG-INFO need not apply
+ #sed -i 's%^\#\!.*%\#\!/usr/bin/env python3%' ${D}/usr/bin/crit ${D}${libdir}/python3*/site-packages/crit-*-py3*.egg/EGG-INFO/scripts/crit
+
+ # all the __pycache__ contains references to TMPDIR and these will be built the first time
+ # it runs on the target anyway
+ for pycachedir in $(find ${D} -name __pycache__); do
+ rm -rf $pycachedir
+ done
}
-FILES_${PN} += "${systemd_unitdir}/ \
- ${libdir}/python3*/site-packages/ \
- ${libdir}/pycriu/ \
- ${libdir}/crit-0.0.1-py3*.egg-info \
+FILES:${PN} += "${systemd_unitdir}/ \
+ #${libdir}/python3*/site-packages/ \
+ #${libdir}/pycriu/ \
+ #${libdir}/crit-0.0.1-py3*.egg-info \
"
-FILES_${PN}-staticdev += " \
+FILES:${PN}-staticdev += " \
${libexecdir}/compel/std.lib.a \
${libexecdir}/compel/fds.lib.a \
"
diff --git a/recipes-containers/criu/files/0002-criu-Skip-documentation-install.patch b/recipes-containers/criu/files/0001-criu-Skip-documentation-install.patch
index af45db73..dd33b1bd 100644
--- a/recipes-containers/criu/files/0002-criu-Skip-documentation-install.patch
+++ b/recipes-containers/criu/files/0001-criu-Skip-documentation-install.patch
@@ -1,22 +1,23 @@
-From 45d74ae8a314c481398ba91a3697ffbd074cd98b Mon Sep 17 00:00:00 2001
+From 485e957a4c3289d105dd6203af31c0e4e1438ac6 Mon Sep 17 00:00:00 2001
From: Jianchuan Wang <jianchuan.wang@windriver.com>
Date: Tue, 16 Aug 2016 09:42:24 +0800
-Subject: [PATCH] criu: Skip documentation install
+Subject: [PATCH 1/3] criu: Skip documentation install
asciidoc is needed to generate CRIU documentation, so skip it in install.
-Signed-off-by: Jianchuan Wang <jianchuan.wang@windriver.com>
+Upstream-Status: Inappropriate [embedded specific]
+Signed-off-by: Jianchuan Wang <jianchuan.wang@windriver.com>
---
Makefile.install | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.install b/Makefile.install
-index 3987bcc..1def3cf 100644
+index aafb95469..1b02b70af 100644
--- a/Makefile.install
+++ b/Makefile.install
-@@ -29,7 +29,7 @@ export PREFIX BINDIR SBINDIR MANDIR RUNDIR
- export LIBDIR INCLUDEDIR LIBEXECDIR
+@@ -30,7 +30,7 @@ export PREFIX BINDIR SBINDIR MANDIR RUNDIR
+ export LIBDIR INCLUDEDIR LIBEXECDIR PLUGINDIR
install-man:
- $(Q) $(MAKE) -C Documentation install
@@ -24,3 +25,6 @@ index 3987bcc..1def3cf 100644
.PHONY: install-man
install-lib: lib
+--
+2.25.1
+
diff --git a/recipes-containers/criu/files/0001-criu-Change-libraries-install-directory.patch b/recipes-containers/criu/files/0002-criu-Change-libraries-install-directory.patch
index afb1332d..1a1beafd 100644
--- a/recipes-containers/criu/files/0001-criu-Change-libraries-install-directory.patch
+++ b/recipes-containers/criu/files/0002-criu-Change-libraries-install-directory.patch
@@ -1,25 +1,31 @@
-From f64fbca70e6049dad3c404d871f2383d97725d2d Mon Sep 17 00:00:00 2001
+From dcbf7f8ad1b07ff718eac2ce79ed522ac1cee189 Mon Sep 17 00:00:00 2001
From: Mark Asselstine <mark.asselstine@windriver.com>
Date: Fri, 8 Sep 2017 15:11:31 -0400
-Subject: [PATCH] criu: Change libraries install directory
+Subject: [PATCH 2/3] criu: Change libraries install directory
Install the libraries into /usr/lib(or /usr/lib64)
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Jianchuan Wang <jianchuan.wang@windriver.com>
Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
+Rebase for criu 3.17.1.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
Makefile.install | 13 -------------
1 file changed, 13 deletions(-)
diff --git a/Makefile.install b/Makefile.install
-index 1def3cf..d020eef 100644
+index 1b02b70af..2839ef5fe 100644
--- a/Makefile.install
+++ b/Makefile.install
@@ -9,19 +9,6 @@ LIBEXECDIR ?= $(PREFIX)/libexec
RUNDIR ?= /run
+ PLUGINDIR ?= $(PREFIX)/lib/criu
- #
+-#
-# For recent Debian/Ubuntu with multiarch support.
-DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null)
-ifneq "$(DEB_HOST_MULTIARCH)" ""
@@ -32,7 +38,9 @@ index 1def3cf..d020eef 100644
- endif
-endif
-
--#
+ #
# LIBDIR falls back to the standard path.
LIBDIR ?= $(PREFIX)/lib
-
+--
+2.25.1
+
diff --git a/recipes-containers/criu/files/0003-crit-pycriu-build-and-install-wheels.patch b/recipes-containers/criu/files/0003-crit-pycriu-build-and-install-wheels.patch
new file mode 100644
index 00000000..0796bb24
--- /dev/null
+++ b/recipes-containers/criu/files/0003-crit-pycriu-build-and-install-wheels.patch
@@ -0,0 +1,77 @@
+From 40d2f0735d668dca893a5f0e787f1f11af74cf25 Mon Sep 17 00:00:00 2001
+From: Tim Orling <tim.orling@konsulko.com>
+Date: Fri, 1 Mar 2024 22:22:37 -0800
+Subject: [PATCH] crit/pycriu: build and install wheels
+
+Rather than using heavy handed pip (which requires network access to
+fetch the index), mimic what we do in python_pep517.bbclass do_compile
+and do_install for both crit/ and lib/pycriu
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Tim Orling <tim.orling@konsulko.com>
+---
+ crit/Makefile | 8 ++++++--
+ lib/Makefile | 11 +++++++++--
+ 2 files changed, 15 insertions(+), 4 deletions(-)
+
+diff --git a/crit/Makefile b/crit/Makefile
+index 9a856db6d..9b36f4be1 100644
+--- a/crit/Makefile
++++ b/crit/Makefile
+@@ -1,5 +1,7 @@
+ PYTHON_EXTERNALLY_MANAGED := $(shell $(PYTHON) -c 'import os, sysconfig; print(int(os.path.isfile(os.path.join(sysconfig.get_path("stdlib"), "EXTERNALLY-MANAGED"))))')
+ PIP_BREAK_SYSTEM_PACKAGES := 0
++PEP517_SOURCE_PATH := ./crit
++PEP517_BUILD_OPTS :=
+
+ VERSION_FILE := $(if $(obj),$(addprefix $(obj)/,crit/version.py),crit/version.py)
+
+@@ -16,11 +18,13 @@ ifeq ($(PIP_BREAK_SYSTEM_PACKAGES),0)
+ $(E) " Consider using PIP_BREAK_SYSTEM_PACKAGES=1 make install"
+ else
+ $(E) " INSTALL " crit
+- $(Q) $(PYTHON) -m pip install --upgrade --ignore-installed --prefix=$(DESTDIR)$(PREFIX) ./crit
++ $(Q) $(PYTHON) -m build --no-isolation --wheel --outdir $(PEP517_WHEEL_PATH) $(PEP517_SOURCE_PATH) $(PEP517_BUILD_OPTS)
+ endif
+ else
++ $(E) " BUILD " crit
++ $(Q) $(PYTHON) -m build --no-isolation --wheel --outdir $(PEP517_WHEEL_PATH) $(PEP517_SOURCE_PATH) $(PEP517_BUILD_OPTS)
+ $(E) " INSTALL " crit
+- $(Q) $(PYTHON) -m pip install --upgrade --ignore-installed --prefix=$(DESTDIR)$(PREFIX) ./crit
++ $(Q) $(PYTHON) -m installer $(INSTALL_WHEEL_COMPILE_BYTECODE) --interpreter "$(USRBINPATH)/env $(PEP517_INSTALL_PYTHON)" --destdir=$(DESTDIR) $(PEP517_WHEEL_PATH)/crit-*.whl
+ endif
+ .PHONY: install
+
+diff --git a/lib/Makefile b/lib/Makefile
+index ae371e78e..b5f147482 100644
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -1,6 +1,9 @@
+ CRIU_SO := libcriu.so
+ CRIU_A := libcriu.a
+ UAPI_HEADERS := lib/c/criu.h images/rpc.proto images/rpc.pb-c.h criu/include/version.h
++PEP517_SOURCE_PATH := ./lib
++PEP517_BUILD_OPTS :=
++INSTALL_WHEEL_COMPILE_BYTECODE ?= "--compile-bytecode=0"
+
+ all-y += lib-c lib-a lib-py
+
+@@ -63,11 +66,15 @@ ifeq ($(PIP_BREAK_SYSTEM_PACKAGES),0)
+ $(E) " Consider using PIP_BREAK_SYSTEM_PACKAGES=1 make install"
+ else
+ $(E) " INSTALL " pycriu
+- $(Q) $(PYTHON) -m pip install --upgrade --ignore-installed --prefix=$(DESTDIR)$(PREFIX) ./lib
++ $(Q) $(PYTHON) -m build --no-isolation --wheel --outdir $(PEP517_WHEEL_PATH) $(PEP517_SOURCE_PATH) $(PEP517_BUILD_OPTS)
+ endif
+ else
++ $(E) " BUILD " pycriu
++ $(Q) $(PYTHON) -m build --no-isolation --wheel --outdir $(PEP517_WHEEL_PATH) $(PEP517_SOURCE_PATH) $(PEP517_BUILD_OPTS)
+ $(E) " INSTALL " pycriu
+- $(Q) $(PYTHON) -m pip install --upgrade --ignore-installed --prefix=$(DESTDIR)$(PREFIX) ./lib
++ #nativepython3 -m installer ${INSTALL_WHEEL_COMPILE_BYTECODE} --interpreter "${USRBINPATH}/env ${PEP517_INSTALL_PYTHON}" --destdir=${D} ${PEP517_WHEEL_PATH}/*.whl
++
++ $(Q) $(PYTHON) -m installer $(INSTALL_WHEEL_COMPILE_BYTECODE) --interpreter "$(USRBINPATH)/env $(PEP517_INSTALL_PYTHON)" --destdir=$(DESTDIR) $(PEP517_WHEEL_PATH)/pycriu-*.whl
+ endif
+ .PHONY: install
+
diff --git a/recipes-containers/criu/files/lib-Makefile-overwrite-install-lib-to-allow-multiarc.patch b/recipes-containers/criu/files/0003-lib-Makefile-overwrite-install-lib-to-allow-multiarc.patch
index 70ccb287..0f87e366 100644
--- a/recipes-containers/criu/files/lib-Makefile-overwrite-install-lib-to-allow-multiarc.patch
+++ b/recipes-containers/criu/files/0003-lib-Makefile-overwrite-install-lib-to-allow-multiarc.patch
@@ -1,23 +1,24 @@
-From 6caf90592d61c8c45b32cb7ff76709f9326030e2 Mon Sep 17 00:00:00 2001
+From 0a04c5bc80319485e17e9a86e799fe2c5bfa3d38 Mon Sep 17 00:00:00 2001
From: Mark Asselstine <mark.asselstine@windriver.com>
Date: Fri, 8 Sep 2017 15:40:49 -0400
-Subject: [PATCH] lib/Makefile: overwrite install-lib, to allow multiarch
+Subject: [PATCH 3/3] lib/Makefile: overwrite install-lib, to allow multiarch
I am not sure why Yocto installs python modules in arch specific
/usr/libXX directories but it does. Allow the recipe to pass this via
INSTALL_LIB.
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
+Upstream-Status: Inappropriate [embedded specific]
+Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
---
lib/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/Makefile b/lib/Makefile
-index b1bb057..06f5c5d 100644
+index 575a7bad3..f503d430b 100644
--- a/lib/Makefile
+++ b/lib/Makefile
-@@ -53,7 +53,7 @@ install: lib-c lib-py crit/crit lib/c/criu.pc.in
+@@ -59,7 +59,7 @@ install: lib-c lib-a lib-py crit/crit lib/c/criu.pc.in
$(Q) sed -e 's,@version@,$(CRIU_VERSION),' -e 's,@libdir@,$(LIBDIR),' -e 's,@includedir@,$(dir $(INCLUDEDIR)/criu/),' lib/c/criu.pc.in > lib/c/criu.pc
$(Q) install -m 644 lib/c/criu.pc $(DESTDIR)$(LIBDIR)/pkgconfig
$(E) " INSTALL " crit
@@ -26,3 +27,6 @@ index b1bb057..06f5c5d 100644
.PHONY: install
uninstall:
+--
+2.25.1
+
diff --git a/recipes-containers/criu/files/0004-criu-fix-conflicting-headers.patch b/recipes-containers/criu/files/0004-criu-fix-conflicting-headers.patch
new file mode 100644
index 00000000..f03f51da
--- /dev/null
+++ b/recipes-containers/criu/files/0004-criu-fix-conflicting-headers.patch
@@ -0,0 +1,290 @@
+Backport patch to fix criu compile error with glibc 2.36. Update context
+for Makefile.config.
+
+Upstream-Status: Backport [https://github.com/checkpoint-restore/criu/commit/4c86d6a7]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From 4c86d6a7d54abb64fc5a15131f3351224e8c071b Mon Sep 17 00:00:00 2001
+From: Radostin Stoyanov <rstoyanov@fedoraproject.org>
+Date: Sun, 31 Jul 2022 16:07:30 +0000
+Subject: [PATCH] criu: fix conflicting headers
+
+There are several changes in glibc 2.36 that make sys/mount.h header
+incompatible with kernel headers:
+
+https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E
+
+This patch removes conflicting includes for `<linux/mount.h>` and
+updates the content of `criu/include/linux/mount.h` to match
+`/usr/include/sys/mount.h`. In addition, inline definitions sys_*()
+functions have been moved from "linux/mount.h" to "syscall.h" to
+avoid conflicts with `uapi/compel/plugins/std/syscall.h` and
+`<unistd.h>`. The include for `<linux/aio_abi.h>` has been replaced
+with local include to avoid conflicts with `<sys/mount.h>`.
+
+Fixes: #1949
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>
+---
+ Makefile.config | 2 +-
+ criu/cgroup.c | 1 +
+ criu/cr-check.c | 2 +-
+ criu/cr-restore.c | 3 ++-
+ criu/include/aio.h | 2 +-
+ criu/include/linux/aio_abi.h | 14 +++++++++++
+ criu/include/linux/mount.h | 48 +++++++++++++++++++-----------------
+ criu/include/syscall.h | 17 +++++++++++++
+ criu/pie/parasite.c | 2 +-
+ criu/util.c | 1 +
+ scripts/feature-tests.mak | 13 ----------
+ 11 files changed, 64 insertions(+), 41 deletions(-)
+ create mode 100644 criu/include/linux/aio_abi.h
+ create mode 100644 criu/include/syscall.h
+
+diff --git a/Makefile.config b/Makefile.config
+index d113e2246..270ec61c0 100644
+--- a/Makefile.config
++++ b/Makefile.config
+@@ -78,7 +78,7 @@ export DEFINES += $(FEATURE_DEFINES)
+ export CFLAGS += $(FEATURE_DEFINES)
+
+ FEATURES_LIST := TCP_REPAIR STRLCPY STRLCAT PTRACE_PEEKSIGINFO \
+- SETPROCTITLE_INIT MEMFD TCP_REPAIR_WINDOW FSCONFIG MEMFD_CREATE OPENAT2
++ SETPROCTITLE_INIT MEMFD TCP_REPAIR_WINDOW MEMFD_CREATE OPENAT2
+
+ # $1 - config name
+ define gen-feature-test
+diff --git a/criu/cgroup.c b/criu/cgroup.c
+index e05b0832e..325df6a1d 100644
+--- a/criu/cgroup.c
++++ b/criu/cgroup.c
+@@ -27,6 +27,7 @@
+ #include "images/cgroup.pb-c.h"
+ #include "kerndat.h"
+ #include "linux/mount.h"
++#include "syscall.h"
+
+ /*
+ * This structure describes set of controller groups
+diff --git a/criu/cr-check.c b/criu/cr-check.c
+index f589a91da..0ca80192c 100644
+--- a/criu/cr-check.c
++++ b/criu/cr-check.c
+@@ -21,7 +21,6 @@
+ #include <sys/prctl.h>
+ #include <sched.h>
+ #include <sys/mount.h>
+-#include <linux/aio_abi.h>
+
+ #include "../soccr/soccr.h"
+
+@@ -52,6 +51,7 @@
+ #include "net.h"
+ #include "restorer.h"
+ #include "uffd.h"
++#include "linux/aio_abi.h"
+
+ #include "images/inventory.pb-c.h"
+
+diff --git a/criu/cr-restore.c b/criu/cr-restore.c
+index 279246c19..d11d28173 100644
+--- a/criu/cr-restore.c
++++ b/criu/cr-restore.c
+@@ -22,7 +22,6 @@
+ #include <compel/ptrace.h>
+ #include "common/compiler.h"
+
+-#include "linux/mount.h"
+ #include "linux/rseq.h"
+
+ #include "clone-noasan.h"
+@@ -86,6 +85,8 @@
+ #include <compel/plugins/std/syscall-codes.h>
+ #include "compel/include/asm/syscall.h"
+
++#include "linux/mount.h"
++
+ #include "protobuf.h"
+ #include "images/sa.pb-c.h"
+ #include "images/timer.pb-c.h"
+diff --git a/criu/include/aio.h b/criu/include/aio.h
+index d1655739d..38e704020 100644
+--- a/criu/include/aio.h
++++ b/criu/include/aio.h
+@@ -1,7 +1,7 @@
+ #ifndef __CR_AIO_H__
+ #define __CR_AIO_H__
+
+-#include <linux/aio_abi.h>
++#include "linux/aio_abi.h"
+ #include "images/mm.pb-c.h"
+ unsigned int aio_estimate_nr_reqs(unsigned int size);
+ int dump_aio_ring(MmEntry *mme, struct vma_area *vma);
+diff --git a/criu/include/linux/aio_abi.h b/criu/include/linux/aio_abi.h
+new file mode 100644
+index 000000000..d9ce78720
+--- /dev/null
++++ b/criu/include/linux/aio_abi.h
+@@ -0,0 +1,14 @@
++#ifndef __LINUX__AIO_ABI_H
++#define __LINUX__AIO_ABI_H
++
++typedef __kernel_ulong_t aio_context_t;
++
++/* read() from /dev/aio returns these structures. */
++struct io_event {
++ __u64 data; /* the data field from the iocb */
++ __u64 obj; /* what iocb this event came from */
++ __s64 res; /* result code for this event */
++ __s64 res2; /* secondary result */
++};
++
++#endif /* __LINUX__AIO_ABI_H */
+diff --git a/criu/include/linux/mount.h b/criu/include/linux/mount.h
+index 9a3a28b10..0d55a588c 100644
+--- a/criu/include/linux/mount.h
++++ b/criu/include/linux/mount.h
+@@ -4,32 +4,34 @@
+ #include "common/config.h"
+ #include "compel/plugins/std/syscall-codes.h"
+
+-#ifdef CONFIG_HAS_FSCONFIG
+-#include <linux/mount.h>
+-#else
++/* Copied from /usr/include/sys/mount.h */
++
++#ifndef FSCONFIG_CMD_CREATE
++/* The type of fsconfig call made. */
+ enum fsconfig_command {
+- FSCONFIG_SET_FLAG = 0, /* Set parameter, supplying no value */
+- FSCONFIG_SET_STRING = 1, /* Set parameter, supplying a string value */
+- FSCONFIG_SET_BINARY = 2, /* Set parameter, supplying a binary blob value */
+- FSCONFIG_SET_PATH = 3, /* Set parameter, supplying an object by path */
+- FSCONFIG_SET_PATH_EMPTY = 4, /* Set parameter, supplying an object by (empty) path */
+- FSCONFIG_SET_FD = 5, /* Set parameter, supplying an object by fd */
+- FSCONFIG_CMD_CREATE = 6, /* Invoke superblock creation */
++ FSCONFIG_SET_FLAG = 0, /* Set parameter, supplying no value */
++#define FSCONFIG_SET_FLAG FSCONFIG_SET_FLAG
++ FSCONFIG_SET_STRING = 1, /* Set parameter, supplying a string value */
++#define FSCONFIG_SET_STRING FSCONFIG_SET_STRING
++ FSCONFIG_SET_BINARY = 2, /* Set parameter, supplying a binary blob value */
++#define FSCONFIG_SET_BINARY FSCONFIG_SET_BINARY
++ FSCONFIG_SET_PATH = 3, /* Set parameter, supplying an object by path */
++#define FSCONFIG_SET_PATH FSCONFIG_SET_PATH
++ FSCONFIG_SET_PATH_EMPTY = 4, /* Set parameter, supplying an object by (empty) path */
++#define FSCONFIG_SET_PATH_EMPTY FSCONFIG_SET_PATH_EMPTY
++ FSCONFIG_SET_FD = 5, /* Set parameter, supplying an object by fd */
++#define FSCONFIG_SET_FD FSCONFIG_SET_FD
++ FSCONFIG_CMD_CREATE = 6, /* Invoke superblock creation */
++#define FSCONFIG_CMD_CREATE FSCONFIG_CMD_CREATE
+ FSCONFIG_CMD_RECONFIGURE = 7, /* Invoke superblock reconfiguration */
++#define FSCONFIG_CMD_RECONFIGURE FSCONFIG_CMD_RECONFIGURE
+ };
+-#endif
++#endif // FSCONFIG_CMD_CREATE
+
+-static inline int sys_fsopen(const char *fsname, unsigned int flags)
+-{
+- return syscall(__NR_fsopen, fsname, flags);
+-}
+-static inline int sys_fsconfig(int fd, unsigned int cmd, const char *key, const char *value, int aux)
+-{
+- return syscall(__NR_fsconfig, fd, cmd, key, value, aux);
+-}
+-static inline int sys_fsmount(int fd, unsigned int flags, unsigned int attr_flags)
+-{
+- return syscall(__NR_fsmount, fd, flags, attr_flags);
+-}
++#ifndef MS_MGC_VAL
++/* Magic mount flag number. Has to be or-ed to the flag values. */
++#define MS_MGC_VAL 0xc0ed0000 /* Magic flag number to indicate "new" flags */
++#define MS_MGC_MSK 0xffff0000 /* Magic flag number mask */
++#endif
+
+ #endif
+diff --git a/criu/include/syscall.h b/criu/include/syscall.h
+new file mode 100644
+index 000000000..c38d6d971
+--- /dev/null
++++ b/criu/include/syscall.h
+@@ -0,0 +1,17 @@
++#ifndef __CR_SYSCALL_H__
++#define __CR_SYSCALL_H__
++
++static inline int sys_fsopen(const char *fsname, unsigned int flags)
++{
++ return syscall(__NR_fsopen, fsname, flags);
++}
++static inline int sys_fsconfig(int fd, unsigned int cmd, const char *key, const char *value, int aux)
++{
++ return syscall(__NR_fsconfig, fd, cmd, key, value, aux);
++}
++static inline int sys_fsmount(int fd, unsigned int flags, unsigned int attr_flags)
++{
++ return syscall(__NR_fsmount, fd, flags, attr_flags);
++}
++
++#endif /* __CR_SYSCALL_H__ */
+\ No newline at end of file
+diff --git a/criu/pie/parasite.c b/criu/pie/parasite.c
+index e7eb1fcb6..f75fe13bb 100644
+--- a/criu/pie/parasite.c
++++ b/criu/pie/parasite.c
+@@ -3,7 +3,6 @@
+ #include <signal.h>
+ #include <linux/limits.h>
+ #include <linux/capability.h>
+-#include <sys/mount.h>
+ #include <stdarg.h>
+ #include <sys/ioctl.h>
+ #include <sys/uio.h>
+@@ -14,6 +13,7 @@
+ #include "int.h"
+ #include "types.h"
+ #include <compel/plugins/std/syscall.h>
++#include "linux/mount.h"
+ #include "parasite.h"
+ #include "fcntl.h"
+ #include "prctl.h"
+diff --git a/criu/util.c b/criu/util.c
+index 5f69465b4..060ca3bd4 100644
+--- a/criu/util.c
++++ b/criu/util.c
+@@ -40,6 +40,7 @@
+ #include "mem.h"
+ #include "namespaces.h"
+ #include "criu-log.h"
++#include "syscall.h"
+
+ #include "clone-noasan.h"
+ #include "cr_options.h"
+diff --git a/scripts/feature-tests.mak b/scripts/feature-tests.mak
+index 014e893a8..fb5d2ef7a 100644
+--- a/scripts/feature-tests.mak
++++ b/scripts/feature-tests.mak
+@@ -137,19 +137,6 @@ ENTRY(main)
+ END(main)
+ endef
+
+-define FEATURE_TEST_FSCONFIG
+-
+-#include <linux/mount.h>
+-
+-int main(void)
+-{
+- if (FSCONFIG_CMD_CREATE > 0)
+- return 0;
+- return 0;
+-}
+-
+-endef
+-
+ define FEATURE_TEST_NFTABLES_LIB_API_0
+
+ #include <string.h>
+--
+2.34.1
+
diff --git a/recipes-containers/criu/files/0004-pycriu-attr-pycriu.version.__version__.patch b/recipes-containers/criu/files/0004-pycriu-attr-pycriu.version.__version__.patch
new file mode 100644
index 00000000..a1334b7b
--- /dev/null
+++ b/recipes-containers/criu/files/0004-pycriu-attr-pycriu.version.__version__.patch
@@ -0,0 +1,22 @@
+From a2b17e7b082786e2d7b7585b33815572c9c521f0 Mon Sep 17 00:00:00 2001
+From: Tim Orling <tim.orling@konsulko.com>
+Date: Sat, 2 Mar 2024 13:47:46 -0800
+Subject: [PATCH] pycriu: attr pycriu.version.__version__
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Tim Orling <tim.orling@konsulko.com>
+---
+ lib/pyproject.toml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/pyproject.toml b/lib/pyproject.toml
+index 8eb4b7084..5a92f8540 100644
+--- a/lib/pyproject.toml
++++ b/lib/pyproject.toml
+@@ -16,4 +16,4 @@ requires-python = ">=3.6"
+ packages = ["pycriu", "pycriu.images"]
+
+ [tool.setuptools.dynamic]
+-version = {attr = "pycriu.__version__"}
++version = {attr = "pycriu.version.__version__"}
diff --git a/recipes-containers/criu/files/0005-mount-add-definition-for-FSOPEN_CLOEXEC.patch b/recipes-containers/criu/files/0005-mount-add-definition-for-FSOPEN_CLOEXEC.patch
new file mode 100644
index 00000000..76b8a22e
--- /dev/null
+++ b/recipes-containers/criu/files/0005-mount-add-definition-for-FSOPEN_CLOEXEC.patch
@@ -0,0 +1,114 @@
+build: integrate build fix
+
+[
+ From 517c0947050e63aac72f63a3bf373d76264723b9 Mon Sep 17 00:00:00 2001
+ From: Radostin Stoyanov <rstoyanov@fedoraproject.org>
+ Date: Wed, 24 Aug 2022 21:20:30 +0200
+ Subject: [PATCH 2/2] mount: add definition for FSOPEN_CLOEXEC
+
+ A recent change in glibc introduced `enum fsconfig_command` [1] and as a
+ result the compilation of criu fails with the following errors
+
+ In file included from criu/pie/util.c:3:
+ /usr/include/sys/mount.h:240:6: error: redeclaration of 'enum fsconfig_command'
+ 240 | enum fsconfig_command
+ | ^~~~~~~~~~~~~~~~
+ In file included from /usr/include/sys/mount.h:32:
+ criu/include/linux/mount.h:11:6: note: originally defined here
+ 11 | enum fsconfig_command {
+ | ^~~~~~~~~~~~~~~~
+ /usr/include/sys/mount.h:242:3: error: redeclaration of enumerator 'FSCONFIG_SET_FLAG'
+ 242 | FSCONFIG_SET_FLAG = 0, /* Set parameter, supplying no value */
+ | ^~~~~~~~~~~~~~~~~
+ criu/include/linux/mount.h:12:9: note: previous definition of 'FSCONFIG_SET_FLAG' with type 'enum fsconfig_command'
+ 12 | FSCONFIG_SET_FLAG = 0, /* Set parameter, supplying no value */
+ | ^~~~~~~~~~~~~~~~~
+ /usr/include/sys/mount.h:244:3: error: redeclaration of enumerator 'FSCONFIG_SET_STRING'
+ 244 | FSCONFIG_SET_STRING = 1, /* Set parameter, supplying a string value */
+ | ^~~~~~~~~~~~~~~~~~~
+ criu/include/linux/mount.h:14:9: note: previous definition of 'FSCONFIG_SET_STRING' with type 'enum fsconfig_command'
+ 14 | FSCONFIG_SET_STRING = 1, /* Set parameter, supplying a string value */
+ | ^~~~~~~~~~~~~~~~~~~
+ /usr/include/sys/mount.h:246:3: error: redeclaration of enumerator 'FSCONFIG_SET_BINARY'
+ 246 | FSCONFIG_SET_BINARY = 2, /* Set parameter, supplying a binary blob value */
+ | ^~~~~~~~~~~~~~~~~~~
+ criu/include/linux/mount.h:16:9: note: previous definition of 'FSCONFIG_SET_BINARY' with type 'enum fsconfig_command'
+ 16 | FSCONFIG_SET_BINARY = 2, /* Set parameter, supplying a binary blob value */
+ | ^~~~~~~~~~~~~~~~~~~
+ /usr/include/sys/mount.h:248:3: error: redeclaration of enumerator 'FSCONFIG_SET_PATH'
+ 248 | FSCONFIG_SET_PATH = 3, /* Set parameter, supplying an object by path */
+ | ^~~~~~~~~~~~~~~~~
+ criu/include/linux/mount.h:18:9: note: previous definition of 'FSCONFIG_SET_PATH' with type 'enum fsconfig_command'
+ 18 | FSCONFIG_SET_PATH = 3, /* Set parameter, supplying an object by path */
+ | ^~~~~~~~~~~~~~~~~
+ /usr/include/sys/mount.h:250:3: error: redeclaration of enumerator 'FSCONFIG_SET_PATH_EMPTY'
+ 250 | FSCONFIG_SET_PATH_EMPTY = 4, /* Set parameter, supplying an object by (empty) path */
+ | ^~~~~~~~~~~~~~~~~~~~~~~
+ criu/include/linux/mount.h:20:9: note: previous definition of 'FSCONFIG_SET_PATH_EMPTY' with type 'enum fsconfig_command'
+ 20 | FSCONFIG_SET_PATH_EMPTY = 4, /* Set parameter, supplying an object by (empty) path */
+ | ^~~~~~~~~~~~~~~~~~~~~~~
+ /usr/include/sys/mount.h:252:3: error: redeclaration of enumerator 'FSCONFIG_SET_FD'
+ 252 | FSCONFIG_SET_FD = 5, /* Set parameter, supplying an object by fd */
+ | ^~~~~~~~~~~~~~~
+ criu/include/linux/mount.h:22:9: note: previous definition of 'FSCONFIG_SET_FD' with type 'enum fsconfig_command'
+ 22 | FSCONFIG_SET_FD = 5, /* Set parameter, supplying an object by fd */
+ | ^~~~~~~~~~~~~~~
+ /usr/include/sys/mount.h:254:3: error: redeclaration of enumerator 'FSCONFIG_CMD_CREATE'
+ 254 | FSCONFIG_CMD_CREATE = 6, /* Invoke superblock creation */
+ | ^~~~~~~~~~~~~~~~~~~
+ criu/include/linux/mount.h:24:9: note: previous definition of 'FSCONFIG_CMD_CREATE' with type 'enum fsconfig_command'
+ 24 | FSCONFIG_CMD_CREATE = 6, /* Invoke superblock creation */
+ | ^~~~~~~~~~~~~~~~~~~
+ /usr/include/sys/mount.h:256:3: error: redeclaration of enumerator 'FSCONFIG_CMD_RECONFIGURE'
+ 256 | FSCONFIG_CMD_RECONFIGURE = 7, /* Invoke superblock reconfiguration */
+ | ^~~~~~~~~~~~~~~~~~~~~~~~
+ criu/include/linux/mount.h:26:9: note: previous definition of 'FSCONFIG_CMD_RECONFIGURE' with type 'enum fsconfig_command'
+ 26 | FSCONFIG_CMD_RECONFIGURE = 7, /* Invoke superblock reconfiguration */
+
+ This patch adds definition for FSOPEN_CLOEXEC to solve this problem. In particular,
+ sys/mount.h includes ifndef check for FSOPEN_CLOEXEC surrounding `enum fsconfig_command`.
+
+ [1] https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=7eae6a91e9b1670330c9f15730082c91c0b1d570
+
+ Reported-by: Younes Manton (@ymanton)
+ Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>
+]
+
+Upstream-Status: Backport [https://github.com/checkpoint-restore/criu/commit/517c0947]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ criu/include/linux/mount.h | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/criu/include/linux/mount.h b/criu/include/linux/mount.h
+index 0d55a588c..fefafa89e 100644
+--- a/criu/include/linux/mount.h
++++ b/criu/include/linux/mount.h
+@@ -6,7 +6,7 @@
+
+ /* Copied from /usr/include/sys/mount.h */
+
+-#ifndef FSCONFIG_CMD_CREATE
++#ifndef FSOPEN_CLOEXEC
+ /* The type of fsconfig call made. */
+ enum fsconfig_command {
+ FSCONFIG_SET_FLAG = 0, /* Set parameter, supplying no value */
+@@ -26,7 +26,13 @@ enum fsconfig_command {
+ FSCONFIG_CMD_RECONFIGURE = 7, /* Invoke superblock reconfiguration */
+ #define FSCONFIG_CMD_RECONFIGURE FSCONFIG_CMD_RECONFIGURE
+ };
+-#endif // FSCONFIG_CMD_CREATE
++
++#endif // FSOPEN_CLOEXEC
++
++/* fsopen flags. With the redundant definition, we check if the kernel,
++ * glibc value and our value still match.
++ */
++#define FSOPEN_CLOEXEC 0x00000001
+
+ #ifndef MS_MGC_VAL
+ /* Magic mount flag number. Has to be or-ed to the flag values. */
+--
+2.34.1
+
diff --git a/recipes-containers/criu/files/0005-pycriu-skip-dependency-check-during-build.patch b/recipes-containers/criu/files/0005-pycriu-skip-dependency-check-during-build.patch
new file mode 100644
index 00000000..88872911
--- /dev/null
+++ b/recipes-containers/criu/files/0005-pycriu-skip-dependency-check-during-build.patch
@@ -0,0 +1,32 @@
+From 2ec745ac11357e3243ef1f23f817c276518ce7cb Mon Sep 17 00:00:00 2001
+From: Tim Orling <tim.orling@konsulko.com>
+Date: Sat, 2 Mar 2024 13:48:54 -0800
+Subject: [PATCH] pycriu: --skip-dependency-check during build
+
+It complains about needing protobuf<4, python3-protobuf is 4.25 in meta-python
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Tim Orling <tim.orling@konsulko.com>
+---
+ lib/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lib/Makefile b/lib/Makefile
+index b5f147482..e3faa7a06 100644
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -66,11 +66,11 @@ ifeq ($(PIP_BREAK_SYSTEM_PACKAGES),0)
+ $(E) " Consider using PIP_BREAK_SYSTEM_PACKAGES=1 make install"
+ else
+ $(E) " INSTALL " pycriu
+- $(Q) $(PYTHON) -m build --no-isolation --wheel --outdir $(PEP517_WHEEL_PATH) $(PEP517_SOURCE_PATH) $(PEP517_BUILD_OPTS)
++ $(Q) $(PYTHON) -m build --no-isolation --wheel --skip-dependency-check --outdir $(PEP517_WHEEL_PATH) $(PEP517_SOURCE_PATH) $(PEP517_BUILD_OPTS)
+ endif
+ else
+ $(E) " BUILD " pycriu
+- $(Q) $(PYTHON) -m build --no-isolation --wheel --outdir $(PEP517_WHEEL_PATH) $(PEP517_SOURCE_PATH) $(PEP517_BUILD_OPTS)
++ $(Q) $(PYTHON) -m build --no-isolation --wheel --skip-dependency-check --outdir $(PEP517_WHEEL_PATH) $(PEP517_SOURCE_PATH) $(PEP517_BUILD_OPTS)
+ $(E) " INSTALL " pycriu
+ #nativepython3 -m installer ${INSTALL_WHEEL_COMPILE_BYTECODE} --interpreter "${USRBINPATH}/env ${PEP517_INSTALL_PYTHON}" --destdir=${D} ${PEP517_WHEEL_PATH}/*.whl
+
diff --git a/recipes-containers/criu/files/fix-building-on-newest-glibc-and-kernel.patch b/recipes-containers/criu/files/fix-building-on-newest-glibc-and-kernel.patch
deleted file mode 100644
index 9361adc2..00000000
--- a/recipes-containers/criu/files/fix-building-on-newest-glibc-and-kernel.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From b59947007362b53e9f41f1e5a33071dedf1c59ac Mon Sep 17 00:00:00 2001
-From: Adrian Reber <areber@redhat.com>
-Date: Thu, 28 Sep 2017 09:13:33 +0000
-Subject: [PATCH] fix building on newest glibc and kernel
-
-On Fedora rawhide with kernel-headers-4.14.0-0.rc2.git0.1.fc28.x86_64
-glibc-devel-2.26.90-15.fc28.x86_64 criu does not build any more:
-
-In file included from /usr/include/linux/aio_abi.h:31:0,
- from criu/cr-check.c:24:
-/usr/include/sys/mount.h:35:3: error: expected identifier before numeric constant
- MS_RDONLY = 1, /* Mount read-only. */
- ^
-make[2]: *** [/builddir/build/BUILD/criu-3.5/scripts/nmk/scripts/build.mk:111: criu/cr-check.o] Error 1
-make[1]: *** [criu/Makefile:73: criu/built-in.o] Error 2
-make: *** [Makefile:233: criu] Error 2
-
-This simple re-ordering of includes fixes it for me.
-
-Signed-off-by: Adrian Reber <areber@redhat.com>
-Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
-
-Upstream-Status: Backport
-[https://github.com/checkpoint-restore/criu/commit/f41e386d4d40e3e26b0cfdc85a812b7edb337f1d#diff-cc847b1cc975358c6582595be92d48db]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
-
----
- criu/cr-check.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/criu/cr-check.c b/criu/cr-check.c
-index 1dd887a..93df2ab 100644
---- a/criu/cr-check.c
-+++ b/criu/cr-check.c
-@@ -21,8 +21,8 @@
- #include <netinet/in.h>
- #include <sys/prctl.h>
- #include <sched.h>
--#include <linux/aio_abi.h>
- #include <sys/mount.h>
-+#include <linux/aio_abi.h>
-
- #include "../soccr/soccr.h"
-
diff --git a/recipes-containers/crun/crun_git.bb b/recipes-containers/crun/crun_git.bb
index 549f6090..89ba21b4 100644
--- a/recipes-containers/crun/crun_git.bb
+++ b/recipes-containers/crun/crun_git.bb
@@ -1,24 +1,26 @@
DESCRIPTION = "A fast and low-memory footprint OCI Container Runtime fully written in C."
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
PRIORITY = "optional"
-SRCREV_crun = "f302dd8c02c6fddd2c50d1685d82b7a19aae8afe"
-SRCREV_libocispec = "c9b8b9524814550a489aa6d38b2dec95633ffa15"
-SRCREV_ispec = "79b036d80240ae530a8de15e1d21c7ab9292c693"
-SRCREV_rspec = "7413a7f753e1bd9a6a9c6dc7f96f55888cbbd476"
+SRCREV_crun = "89d44467e3b410b73f2065756a12789be45b855b"
+SRCREV_libocispec = "19c05670c37a42c217caa7b141bcaada7867cc15"
+SRCREV_ispec = "9615142d016838b5dfe7453f80af0be74feb5c7c"
+SRCREV_rspec = "720792f25ae6e9ee6b1332db698f37659e69ce8d"
+SRCREV_yajl = "f344d21280c3e4094919fd318bc5ce75da91fc06"
SRCREV_FORMAT = "crun_rspec"
-SRC_URI = "git://github.com/containers/crun.git;branch=master;name=crun \
- git://github.com/containers/libocispec.git;branch=master;name=libocispec;destsuffix=git/libocispec \
- git://github.com/opencontainers/runtime-spec.git;branch=master;name=rspec;destsuffix=git/libocispec/runtime-spec \
- git://github.com/opencontainers/image-spec.git;branch=master;name=ispec;destsuffix=git/libocispec/image-spec \
+SRC_URI = "git://github.com/containers/crun.git;branch=main;name=crun;protocol=https \
+ git://github.com/containers/libocispec.git;branch=main;name=libocispec;destsuffix=git/libocispec;protocol=https \
+ git://github.com/opencontainers/runtime-spec.git;branch=main;name=rspec;destsuffix=git/libocispec/runtime-spec;protocol=https \
+ git://github.com/opencontainers/image-spec.git;branch=main;name=ispec;destsuffix=git/libocispec/image-spec;protocol=https \
+ git://github.com/containers/yajl.git;branch=main;name=yajl;destsuffix=git/libocispec/yajl;protocol=https \
"
-PV = "0.18+git${SRCREV_crun}"
+PV = "v1.14.3+git${SRCREV_crun}"
S = "${WORKDIR}/git"
-REQUIRED_DISTRO_FEATURES ?= "systemd"
+REQUIRED_DISTRO_FEATURES ?= "systemd seccomp"
inherit autotools-brokensep pkgconfig features_check
@@ -28,10 +30,13 @@ DEPENDS = "yajl libcap go-md2man-native m4-native"
# TODO: is there a packageconfig to turn this off ?
DEPENDS += "libseccomp"
DEPENDS += "systemd"
-DEPENDS += "oci-image-spec oci-runtime-spec"
+DEPENDS:append:libc-musl = " argp-standalone"
-do_configure_prepend () {
- ./autogen.sh
+do_configure:prepend () {
+ # extracted from autogen.sh in crun source. This avoids
+ # git submodule fetching.
+ mkdir -p m4
+ autoreconf -fi
}
do_install() {
diff --git a/recipes-containers/docker-compose/docker-compose_git.bb b/recipes-containers/docker-compose/docker-compose_git.bb
new file mode 100644
index 00000000..07650126
--- /dev/null
+++ b/recipes-containers/docker-compose/docker-compose_git.bb
@@ -0,0 +1,80 @@
+HOMEPAGE = "https://github.com/docker/compose"
+SUMMARY = "Multi-container orchestration for Docker"
+DESCRIPTION = "Docker compose v2"
+
+DEPENDS = " \
+ go-md2man \
+ rsync-native \
+"
+
+# Specify the first two important SRCREVs as the format
+SRCREV_FORMAT="compose_survey"
+SRCREV_compose = "3371227794f5f3645f4f19829c60a741635ed329"
+
+SRC_URI = "git://github.com/docker/compose;name=compose;branch=main;protocol=https"
+
+include src_uri.inc
+
+# patches and config
+SRC_URI += "file://modules.txt"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=175792518e4ac015ab6696d16c4f607e"
+
+GO_IMPORT = "import"
+
+PV = "v2.26.0"
+
+COMPOSE_PKG = "github.com/docker/compose/v2"
+
+inherit go goarch
+inherit pkgconfig
+
+COMPATIBLE_HOST = "^(?!mips).*"
+
+do_configure[noexec] = "1"
+
+PACKAGECONFIG ?= "docker-plugin"
+PACKAGECONFIG[docker-plugin] = ",,,docker"
+
+include relocation.inc
+
+GOBUILDFLAGS:append = " -mod=vendor"
+do_compile() {
+ cd ${S}/src/import
+
+ export GOPATH="$GOPATH:${S}/src/import/.gopath"
+
+ # Pass the needed cflags/ldflags so that cgo
+ # can find the needed headers files and libraries
+ export GOARCH=${TARGET_GOARCH}
+ export CGO_ENABLED="1"
+ export CGO_CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_TARGET}"
+ export CGO_LDFLAGS="${LDFLAGS} --sysroot=${STAGING_DIR_TARGET}"
+
+ # our copied .go files are to be used for the build
+ ln -sf vendor.copy vendor
+ # inform go that we know what we are doing
+ cp ${WORKDIR}/modules.txt vendor/
+
+ GO_LDFLAGS="-s -w -X internal.Version=${PV} -X ${COMPOSE_PKG}/internal.Version=${PV}"
+ GO_BUILDTAGS=""
+ mkdir -p ./bin
+ ${GO} build ${GOBUILDFLAGS} -tags "$GO_BUILDTAGS" -ldflags "$GO_LDFLAGS" -o ./bin/docker-compose ./cmd
+}
+
+do_install() {
+ if ${@bb.utils.contains('PACKAGECONFIG', 'docker-plugin', 'true', 'false', d)}; then
+ install -d ${D}${nonarch_libdir}/docker/cli-plugins
+ install -m 755 ${S}/src/import/bin/docker-compose ${D}${nonarch_libdir}/docker/cli-plugins
+ else
+ install -d ${D}${bindir}
+ install -m 755 ${S}/src/import/bin/docker-compose ${D}${bindir}
+ fi
+}
+
+
+FILES:${PN} += " ${nonarch_libdir}/docker/cli-plugins/"
+
+INHIBIT_PACKAGE_STRIP = "1"
+INSANE_SKIP:${PN} += "ldflags already-stripped"
diff --git a/recipes-containers/docker-compose/files/0001-setup.py-import-fastentrypoints.patch b/recipes-containers/docker-compose/files/0001-setup.py-import-fastentrypoints.patch
deleted file mode 100644
index df613e84..00000000
--- a/recipes-containers/docker-compose/files/0001-setup.py-import-fastentrypoints.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From f3a22f0f14a4b3313e6405dfb6c97df949493a34 Mon Sep 17 00:00:00 2001
-From: Ming Liu <liu.ming50@gmail.com>
-Date: Thu, 30 Jan 2020 17:22:19 +0100
-Subject: [PATCH] setup.py: import fastentrypoints
-
-Upstream-Status: Inappropriate [OE specific configuration]
-
-Signed-off-by: Ming Liu <liu.ming50@gmail.com>
----
- setup.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index ad57969..3cccffc 100644
---- a/setup.py
-+++ b/setup.py
-@@ -12,7 +12,7 @@ import sys
- import pkg_resources
- from setuptools import find_packages
- from setuptools import setup
--
-+import fastentrypoints
-
- def read(*parts):
- path = os.path.join(os.path.dirname(__file__), *parts)
---
-2.7.4
-
diff --git a/recipes-containers/docker-compose/files/0001-setup.py-remove-maximum-version-requirements.patch b/recipes-containers/docker-compose/files/0001-setup.py-remove-maximum-version-requirements.patch
deleted file mode 100644
index 7205d3b5..00000000
--- a/recipes-containers/docker-compose/files/0001-setup.py-remove-maximum-version-requirements.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From e3aca6421e003d03d119e69bf3d6b30bb5c662c9 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Fri, 22 Nov 2019 09:24:58 +0800
-Subject: [PATCH] setup.py: remove maximum version requirements
-
-Remove maximum version requirements so that docker-compose will not
-require old version recipes.
-
-Upstream-Status: Inappropriate [OE Specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-Signed-off-by: Ming Liu <liu.ming50@gmail.com>
----
- setup.py | 24 ++++++++++++------------
- 1 file changed, 12 insertions(+), 12 deletions(-)
-
-Index: docker-compose-1.29.1/setup.py
-===================================================================
---- docker-compose-1.29.1.orig/setup.py
-+++ docker-compose-1.29.1/setup.py
-@@ -25,16 +25,21 @@
-
-
- install_requires = [
-- 'docopt >= 0.6.1, < 1',
-- 'PyYAML >= 3.10, < 6',
-- 'requests >= 2.20.0, < 3',
-- 'texttable >= 0.9.0, < 2',
-+ 'docopt >= 0.6.1',
-+ 'PyYAML >= 3.10',
-+ 'requests >= 2.20.0',
-+ 'texttable >= 0.9.0',
- 'websocket-client >= 0.32.0, < 1',
- 'distro >= 1.5.0, < 2',
-- 'docker[ssh] >= 5',
-+ 'docker[ssh] >= 4.4.0, < 5',
- 'dockerpty >= 0.4.1, < 1',
- 'jsonschema >= 2.5.1, < 4',
-- 'python-dotenv >= 0.13.0, < 1',
-+ 'websocket-client >= 0.32.0',
-+ 'distro >= 1.5.0',
-+ 'docker[ssh] >= 5',
-+ 'dockerpty >= 0.4.1',
-+ 'jsonschema >= 2.5.1',
-+ 'python-dotenv >= 0.13.0',
- ]
-
-
-@@ -51,7 +56,7 @@
- ':python_version < "3.5"': ['backports.ssl_match_hostname >= 3.5, < 4'],
- ':python_version < "3.8"': ['cached-property >= 1.2.0, < 2'],
- ':sys_platform == "win32"': ['colorama >= 0.4, < 1'],
-- 'socks': ['PySocks >= 1.5.6, != 1.5.7, < 2'],
-+ 'socks': ['PySocks >= 1.5.6, != 1.5.7'],
- 'tests': tests_require,
- }
-
diff --git a/recipes-containers/docker-compose/files/modules.txt b/recipes-containers/docker-compose/files/modules.txt
new file mode 100644
index 00000000..88bd7801
--- /dev/null
+++ b/recipes-containers/docker-compose/files/modules.txt
@@ -0,0 +1,372 @@
+# github.com/AlecAivazis/survey/v2 v2.3.7
+## explicit
+# github.com/Microsoft/go-winio v0.6.1
+## explicit
+# github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d
+## explicit
+# github.com/buger/goterm v1.0.4
+## explicit
+# github.com/compose-spec/compose-go/v2 v2.0.2
+## explicit
+# github.com/containerd/console v1.0.4
+## explicit
+# github.com/containerd/containerd v1.7.13
+## explicit
+# github.com/davecgh/go-spew v1.1.1
+## explicit
+# github.com/distribution/reference v0.5.0
+## explicit
+# github.com/docker/buildx v0.13.1
+## explicit
+# github.com/docker/cli v26.0.0+incompatible
+## explicit
+# github.com/docker/cli-docs-tool v0.7.0
+## explicit
+# github.com/docker/docker v26.0.0+incompatible
+## explicit
+# github.com/docker/go-connections v0.5.0
+## explicit
+# github.com/docker/go-units v0.5.0
+## explicit
+# github.com/fsnotify/fsevents v0.1.1
+## explicit
+# github.com/google/go-cmp v0.6.0
+## explicit
+# github.com/hashicorp/go-multierror v1.1.1
+## explicit
+# github.com/hashicorp/go-version v1.6.0
+## explicit
+# github.com/jonboulle/clockwork v0.4.0
+## explicit
+# github.com/mattn/go-shellwords v1.0.12
+## explicit
+# github.com/mitchellh/go-ps v1.0.0
+## explicit
+# github.com/mitchellh/mapstructure v1.5.0
+## explicit
+# github.com/moby/buildkit v0.13.1
+## explicit
+# github.com/moby/patternmatcher v0.6.0
+## explicit
+# github.com/moby/term v0.5.0
+## explicit
+# github.com/morikuni/aec v1.0.0
+## explicit
+# github.com/opencontainers/go-digest v1.0.0
+## explicit
+# github.com/opencontainers/image-spec v1.1.0-rc6
+## explicit
+# github.com/otiai10/copy v1.14.0
+## explicit
+# github.com/r3labs/sse v0.0.0-20210224172625-26fe804710bc
+## explicit
+# github.com/sirupsen/logrus v1.9.3
+## explicit
+# github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966
+## explicit
+# github.com/spf13/cobra v1.8.0
+## explicit
+# github.com/spf13/pflag v1.0.5
+## explicit
+# github.com/stretchr/testify v1.8.4
+## explicit
+# github.com/theupdateframework/notary v0.7.0
+## explicit
+# github.com/tilt-dev/fsnotify v1.4.8-0.20220602155310-fff9c274a375
+## explicit
+# go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1
+## explicit
+# go.opentelemetry.io/otel v1.21.0
+## explicit
+# go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0
+## explicit
+# go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0
+## explicit
+# go.opentelemetry.io/otel/sdk v1.21.0
+## explicit
+# go.opentelemetry.io/otel/trace v1.21.0
+## explicit
+# go.uber.org/goleak v1.3.0
+## explicit
+# go.uber.org/mock v0.4.0
+## explicit
+# golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3
+## explicit
+# golang.org/x/sync v0.6.0
+## explicit
+# golang.org/x/sys v0.16.0
+## explicit
+# google.golang.org/grpc v1.59.0
+## explicit
+# gopkg.in/yaml.v3 v3.0.1
+## explicit
+# gotest.tools/v3 v3.5.1
+## explicit
+# dario.cat/mergo v1.0.0
+## explicit
+# github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24
+## explicit
+# github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1
+## explicit
+# github.com/Masterminds/semver/v3 v3.2.1
+## explicit
+# github.com/Microsoft/hcsshim v0.11.4
+## explicit
+# github.com/aws/aws-sdk-go-v2 v1.24.1
+## explicit
+# github.com/aws/aws-sdk-go-v2/config v1.26.6
+## explicit
+# github.com/aws/aws-sdk-go-v2/credentials v1.16.16
+## explicit
+# github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11
+## explicit
+# github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10
+## explicit
+# github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10
+## explicit
+# github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3
+## explicit
+# github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4
+## explicit
+# github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10
+## explicit
+# github.com/aws/aws-sdk-go-v2/service/sso v1.18.7
+## explicit
+# github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7
+## explicit
+# github.com/aws/aws-sdk-go-v2/service/sts v1.26.7
+## explicit
+# github.com/aws/smithy-go v1.19.0
+## explicit
+# github.com/beorn7/perks v1.0.1
+## explicit
+# github.com/cenkalti/backoff/v4 v4.2.1
+## explicit
+# github.com/cespare/xxhash/v2 v2.2.0
+## explicit
+# github.com/containerd/continuity v0.4.3
+## explicit
+# github.com/containerd/log v0.1.0
+## explicit
+# github.com/containerd/ttrpc v1.2.2
+## explicit
+# github.com/containerd/typeurl/v2 v2.1.1
+## explicit
+# github.com/docker/distribution v2.8.3+incompatible
+## explicit
+# github.com/docker/docker-credential-helpers v0.8.0
+## explicit
+# github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c
+## explicit
+# github.com/docker/go-metrics v0.0.1
+## explicit
+# github.com/eiannone/keyboard v0.0.0-20220611211555-0d226195f203
+## explicit
+# github.com/emicklei/go-restful/v3 v3.11.0
+## explicit
+# github.com/felixge/httpsnoop v1.0.4
+## explicit
+# github.com/fvbommel/sortorder v1.0.2
+## explicit
+# github.com/go-logr/logr v1.3.0
+## explicit
+# github.com/go-logr/stdr v1.2.2
+## explicit
+# github.com/go-openapi/jsonpointer v0.19.6
+## explicit
+# github.com/go-openapi/jsonreference v0.20.2
+## explicit
+# github.com/go-openapi/swag v0.22.3
+## explicit
+# github.com/gofrs/flock v0.8.1
+## explicit
+# github.com/gogo/googleapis v1.4.1
+## explicit
+# github.com/gogo/protobuf v1.3.2
+## explicit
+# github.com/golang/protobuf v1.5.3
+## explicit
+# github.com/google/gnostic-models v0.6.8
+## explicit
+# github.com/google/gofuzz v1.2.0
+## explicit
+# github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510
+## explicit
+# github.com/google/uuid v1.6.0
+## explicit
+# github.com/gorilla/mux v1.8.1
+## explicit
+# github.com/gorilla/websocket v1.5.0
+## explicit
+# github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
+## explicit
+# github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0
+## explicit
+# github.com/hashicorp/errwrap v1.1.0
+## explicit
+# github.com/hashicorp/go-cleanhttp v0.5.2
+## explicit
+# github.com/imdario/mergo v0.3.16
+## explicit
+# github.com/in-toto/in-toto-golang v0.5.0
+## explicit
+# github.com/inconshreveable/mousetrap v1.1.0
+## explicit
+# github.com/josharian/intern v1.0.0
+## explicit
+# github.com/json-iterator/go v1.1.12
+## explicit
+# github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
+## explicit
+# github.com/klauspost/compress v1.17.4
+## explicit
+# github.com/mailru/easyjson v0.7.7
+## explicit
+# github.com/mattn/go-colorable v0.1.13
+## explicit
+# github.com/mattn/go-isatty v0.0.17
+## explicit
+# github.com/mattn/go-runewidth v0.0.15
+## explicit
+# github.com/matttproud/golang_protobuf_extensions v1.0.4
+## explicit
+# github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b
+## explicit
+# github.com/miekg/pkcs11 v1.1.1
+## explicit
+# github.com/mitchellh/copystructure v1.2.0
+## explicit
+# github.com/mitchellh/reflectwalk v1.0.2
+## explicit
+# github.com/moby/docker-image-spec v1.3.1
+## explicit
+# github.com/moby/locker v1.0.1
+## explicit
+# github.com/moby/spdystream v0.2.0
+## explicit
+# github.com/moby/sys/mountinfo v0.7.1
+## explicit
+# github.com/moby/sys/sequential v0.5.0
+## explicit
+# github.com/moby/sys/signal v0.7.0
+## explicit
+# github.com/moby/sys/symlink v0.2.0
+## explicit
+# github.com/moby/sys/user v0.1.0
+## explicit
+# github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
+## explicit
+# github.com/modern-go/reflect2 v1.0.2
+## explicit
+# github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822
+## explicit
+# github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f
+## explicit
+# github.com/pelletier/go-toml v1.9.5
+## explicit
+# github.com/pkg/errors v0.9.1
+## explicit
+# github.com/pmezard/go-difflib v1.0.0
+## explicit
+# github.com/prometheus/client_golang v1.17.0
+## explicit
+# github.com/prometheus/client_model v0.5.0
+## explicit
+# github.com/prometheus/common v0.44.0
+## explicit
+# github.com/prometheus/procfs v0.12.0
+## explicit
+# github.com/rivo/uniseg v0.2.0
+## explicit
+# github.com/secure-systems-lab/go-securesystemslib v0.4.0
+## explicit
+# github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b
+## explicit
+# github.com/shibumi/go-pathspec v1.3.0
+## explicit
+# github.com/tonistiigi/fsutil v0.0.0-20240301111122-7525a1af2bb5
+## explicit
+# github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea
+## explicit
+# github.com/tonistiigi/vt100 v0.0.0-20230623042737-f9a4f7ef6531
+## explicit
+# github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb
+## explicit
+# github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415
+## explicit
+# github.com/xeipuuv/gojsonschema v1.2.0
+## explicit
+# go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1
+## explicit
+# go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.46.1
+## explicit
+# go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.42.0
+## explicit
+# go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.42.0
+## explicit
+# go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.42.0
+## explicit
+# go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0
+## explicit
+# go.opentelemetry.io/otel/exporters/prometheus v0.42.0
+## explicit
+# go.opentelemetry.io/otel/metric v1.21.0
+## explicit
+# go.opentelemetry.io/otel/sdk/metric v1.21.0
+## explicit
+# go.opentelemetry.io/proto/otlp v1.0.0
+## explicit
+# golang.org/x/crypto v0.18.0
+## explicit
+# golang.org/x/mod v0.14.0
+## explicit
+# golang.org/x/net v0.20.0
+## explicit
+# golang.org/x/oauth2 v0.11.0
+## explicit
+# golang.org/x/term v0.16.0
+## explicit
+# golang.org/x/text v0.14.0
+## explicit
+# golang.org/x/time v0.3.0
+## explicit
+# golang.org/x/tools v0.17.0
+## explicit
+# google.golang.org/appengine v1.6.7
+## explicit
+# google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b
+## explicit
+# google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b
+## explicit
+# google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b
+## explicit
+# google.golang.org/protobuf v1.31.0
+## explicit
+# gopkg.in/cenkalti/backoff.v1 v1.1.0
+## explicit
+# gopkg.in/inf.v0 v0.9.1
+## explicit
+# gopkg.in/yaml.v2 v2.4.0
+## explicit
+# k8s.io/api v0.29.2
+## explicit
+# k8s.io/apimachinery v0.29.2
+## explicit
+# k8s.io/apiserver v0.29.2
+## explicit
+# k8s.io/client-go v0.29.2
+## explicit
+# k8s.io/klog/v2 v2.110.1
+## explicit
+# k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00
+## explicit
+# k8s.io/utils v0.0.0-20230726121419-3b25d923346b
+## explicit
+# sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd
+## explicit
+# sigs.k8s.io/structured-merge-diff/v4 v4.4.1
+## explicit
+# sigs.k8s.io/yaml v1.3.0
+## explicit
+# tags.cncf.io/container-device-interface v0.6.2
+## explicit
diff --git a/recipes-containers/docker-compose/python3-docker-compose_1.29.1.bb b/recipes-containers/docker-compose/python3-docker-compose_1.29.1.bb
deleted file mode 100644
index d74f742e..00000000
--- a/recipes-containers/docker-compose/python3-docker-compose_1.29.1.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Multi-container orchestration for Docker"
-HOMEPAGE = "https://www.docker.com/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=435b266b3899aa8a959f17d41c56def8"
-
-inherit pypi setuptools3
-
-SRC_URI[md5sum] = "49c202544c7e2eadbbe45da8e838ae02"
-SRC_URI[sha256sum] = "d2064934f5084db8a0c4805e226447bf1fd0c928419be95afb6bd1866838c1f1"
-
-
-SRC_URI += "file://0001-setup.py-remove-maximum-version-requirements.patch \
- file://0001-setup.py-import-fastentrypoints.patch \
- "
-
-DEPENDS += "${PYTHON_PN}-fastentrypoints-native"
-
-RDEPENDS_${PN} = "\
- ${PYTHON_PN}-cached-property \
- ${PYTHON_PN}-certifi \
- ${PYTHON_PN}-chardet \
- ${PYTHON_PN}-colorama \
- ${PYTHON_PN}-distro \
- ${PYTHON_PN}-docker \
- ${PYTHON_PN}-docker-pycreds \
- ${PYTHON_PN}-dockerpty \
- ${PYTHON_PN}-docopt \
- ${PYTHON_PN}-dotenv \
- ${PYTHON_PN}-fcntl \
- ${PYTHON_PN}-idna \
- ${PYTHON_PN}-jsonschema \
- ${PYTHON_PN}-misc \
- ${PYTHON_PN}-paramiko \
- ${PYTHON_PN}-pyyaml \
- ${PYTHON_PN}-requests \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-terminal \
- ${PYTHON_PN}-texttable \
- ${PYTHON_PN}-urllib3 \
- ${PYTHON_PN}-wcwidth \
- ${PYTHON_PN}-websocket-client \
-"
diff --git a/recipes-containers/docker-compose/relocation.inc b/recipes-containers/docker-compose/relocation.inc
new file mode 100644
index 00000000..ac21ca05
--- /dev/null
+++ b/recipes-containers/docker-compose/relocation.inc
@@ -0,0 +1,203 @@
+export sites="k8s.io/api:k8s.io/api:force \
+ k8s.io/utils:k8s.io/utils:force \
+ k8s.io/klog/v2:k8s.io/klog/v2:force \
+ gotest.tools/v3:gotest.tools/v3:force \
+ dario.cat/mergo:dario.cat/mergo:force \
+ gopkg.in/inf.v0:gopkg.in/inf.v0:force \
+ go.uber.org/mock:go.uber.org/mock:force \
+ golang.org/x/exp:golang.org/x/exp:force \
+ golang.org/x/sys:golang.org/x/sys:force \
+ gopkg.in/yaml.v3:gopkg.in/yaml.v3:force \
+ golang.org/x/mod:golang.org/x/mod:force \
+ golang.org/x/net:golang.org/x/net:force \
+ gopkg.in/yaml.v2:gopkg.in/yaml.v2:force \
+ k8s.io/apiserver:k8s.io/apiserver:force \
+ k8s.io/client-go:k8s.io/client-go:force \
+ sigs.k8s.io/json:sigs.k8s.io/json:force \
+ sigs.k8s.io/yaml:sigs.k8s.io/yaml:force \
+ golang.org/x/sync:golang.org/x/sync:force \
+ golang.org/x/term:golang.org/x/term:force \
+ golang.org/x/text:golang.org/x/text:force \
+ golang.org/x/time:golang.org/x/time:force \
+ go.uber.org/goleak:go.uber.org/goleak:force \
+ golang.org/x/tools:golang.org/x/tools:force \
+ golang.org/x/crypto:golang.org/x/crypto:force \
+ golang.org/x/oauth2:golang.org/x/oauth2:force \
+ k8s.io/apimachinery:k8s.io/apimachinery:force \
+ k8s.io/kube-openapi:k8s.io/kube-openapi:force \
+ github.com/moby/term:github.com/moby/term:force \
+ github.com/docker/go:github.com/docker/go:force \
+ github.com/docker/cli:github.com/docker/cli:force \
+ github.com/r3labs/sse:github.com/r3labs/sse:force \
+ github.com/mgutz/ansi:github.com/mgutz/ansi:force \
+ github.com/pkg/errors:github.com/pkg/errors:force \
+ github.com/spf13/cobra:github.com/spf13/cobra:force \
+ github.com/spf13/pflag:github.com/spf13/pflag:force \
+ google.golang.org/grpc:google.golang.org/grpc:force \
+ github.com/gofrs/flock:github.com/gofrs/flock:force \
+ github.com/google/uuid:github.com/google/uuid:force \
+ github.com/gorilla/mux:github.com/gorilla/mux:force \
+ github.com/moby/locker:github.com/moby/locker:force \
+ github.com/rivo/uniseg:github.com/rivo/uniseg:force \
+ github.com/buger/goterm:github.com/buger/goterm:force \
+ github.com/morikuni/aec:github.com/morikuni/aec:force \
+ github.com/otiai10/copy:github.com/otiai10/copy:force \
+ github.com/beorn7/perks:github.com/beorn7/perks:force \
+ github.com/go-logr/logr:github.com/go-logr/logr:force \
+ github.com/go-logr/stdr:github.com/go-logr/stdr:force \
+ github.com/google/shlex:github.com/google/shlex:force \
+ github.com/miekg/pkcs11:github.com/miekg/pkcs11:force \
+ github.com/docker/buildx:github.com/docker/buildx:force \
+ github.com/docker/docker:github.com/docker/docker:force \
+ github.com/google/go-cmp:github.com/google/go-cmp:force \
+ github.com/moby/buildkit:github.com/moby/buildkit:force \
+ go.opentelemetry.io/otel:go.opentelemetry.io/otel:force \
+ github.com/aws/smithy-go:github.com/aws/smithy-go:force \
+ github.com/gogo/protobuf:github.com/gogo/protobuf:force \
+ github.com/google/gofuzz:github.com/google/gofuzz:force \
+ github.com/imdario/mergo:github.com/imdario/mergo:force \
+ github.com/containerd/log:github.com/containerd/log:force \
+ github.com/davecgh/go-spew:github.com/davecgh/go-spew:force \
+ github.com/docker/go-units:github.com/docker/go-units:force \
+ github.com/mitchellh/go-ps:github.com/mitchellh/go-ps:force \
+ github.com/sirupsen/logrus:github.com/sirupsen/logrus:force \
+ github.com/go-openapi/swag:github.com/go-openapi/swag:force \
+ github.com/gogo/googleapis:github.com/gogo/googleapis:force \
+ github.com/golang/protobuf:github.com/golang/protobuf:force \
+ github.com/mailru/easyjson:github.com/mailru/easyjson:force \
+ github.com/mattn/go-isatty:github.com/mattn/go-isatty:force \
+ github.com/moby/spdystream:github.com/moby/spdystream:force \
+ github.com/mxk/go-flowrate:github.com/mxk/go-flowrate:force \
+ google.golang.org/genproto:google.golang.org/genproto:force \
+ google.golang.org/protobuf:google.golang.org/protobuf:force \
+ github.com/moby/sys/user:github.com/moby/sys/user/user:force \
+ github.com/stretchr/testify:github.com/stretchr/testify:force \
+ github.com/containerd/ttrpc:github.com/containerd/ttrpc:force \
+ github.com/josharian/intern:github.com/josharian/intern:force \
+ github.com/json-iterator/go:github.com/json-iterator/go:force \
+ github.com/serialx/hashring:github.com/serialx/hashring:force \
+ github.com/tonistiigi/units:github.com/tonistiigi/units:force \
+ github.com/tonistiigi/vt100:github.com/tonistiigi/vt100:force \
+ google.golang.org/appengine:google.golang.org/appengine:force \
+ github.com/fsnotify/fsevents:github.com/fsnotify/fsevents:force \
+ github.com/tilt-dev/fsnotify:github.com/tilt-dev/fsnotify:force \
+ github.com/Azure/go-ansiterm:github.com/Azure/go-ansiterm:force \
+ github.com/Microsoft/hcsshim:github.com/Microsoft/hcsshim:force \
+ github.com/aws/aws-sdk-go-v2:github.com/aws/aws-sdk-go-v2:force \
+ github.com/cespare/xxhash/v2:github.com/cespare/xxhash/v2:force \
+ github.com/docker/go-metrics:github.com/docker/go-metrics:force \
+ github.com/eiannone/keyboard:github.com/eiannone/keyboard:force \
+ github.com/felixge/httpsnoop:github.com/felixge/httpsnoop:force \
+ github.com/gorilla/websocket:github.com/gorilla/websocket:force \
+ github.com/hashicorp/errwrap:github.com/hashicorp/errwrap:force \
+ github.com/munnerz/goautoneg:github.com/munnerz/goautoneg:force \
+ github.com/pelletier/go-toml:github.com/pelletier/go-toml:force \
+ github.com/prometheus/common:github.com/prometheus/common:force \
+ github.com/prometheus/procfs:github.com/prometheus/procfs:force \
+ github.com/tonistiigi/fsutil:github.com/tonistiigi/fsutil:force \
+ gopkg.in/cenkalti/backoff.v1:gopkg.in/cenkalti/backoff.v1:force \
+ github.com/Microsoft/go-winio:github.com/Microsoft/go-winio:force \
+ github.com/acarl005/stripansi:github.com/acarl005/stripansi:force \
+ github.com/containerd/console:github.com/containerd/console:force \
+ github.com/fvbommel/sortorder:github.com/fvbommel/sortorder:force \
+ github.com/klauspost/compress:github.com/klauspost/compress:force \
+ github.com/mattn/go-colorable:github.com/mattn/go-colorable:force \
+ github.com/mattn/go-runewidth:github.com/mattn/go-runewidth:force \
+ github.com/modern-go/reflect2:github.com/modern-go/reflect2:force \
+ github.com/pmezard/go-difflib:github.com/pmezard/go-difflib:force \
+ github.com/moby/sys/signal:github.com/moby/sys/signal/signal:force \
+ github.com/jonboulle/clockwork:github.com/jonboulle/clockwork:force \
+ github.com/mattn/go-shellwords:github.com/mattn/go-shellwords:force \
+ github.com/moby/patternmatcher:github.com/moby/patternmatcher:force \
+ go.opentelemetry.io/otel/sdk:go.opentelemetry.io/otel/sdk/sdk:force \
+ github.com/cenkalti/backoff/v4:github.com/cenkalti/backoff/v4:force \
+ github.com/docker/distribution:github.com/docker/distribution:force \
+ github.com/shibumi/go-pathspec:github.com/shibumi/go-pathspec:force \
+ github.com/docker/cli-docs-tool:github.com/docker/cli-docs-tool:force \
+ github.com/hashicorp/go-version:github.com/hashicorp/go-version:force \
+ github.com/moby/sys/symlink:github.com/moby/sys/symlink/symlink:force \
+ github.com/modern-go/concurrent:github.com/modern-go/concurrent:force \
+ github.com/xeipuuv/gojsonschema:github.com/xeipuuv/gojsonschema:force \
+ github.com/AlecAivazis/survey/v2:github.com/AlecAivazis/survey/v2:force \
+ github.com/containerd/containerd:github.com/containerd/containerd:force \
+ github.com/docker/go-connections:github.com/docker/go-connections:force \
+ github.com/Masterminds/semver/v3:github.com/Masterminds/semver/v3:force \
+ github.com/containerd/continuity:github.com/containerd/continuity:force \
+ github.com/containerd/typeurl/v2:github.com/containerd/typeurl/v2:force \
+ github.com/google/gnostic-models:github.com/google/gnostic-models:force \
+ github.com/mitchellh/reflectwalk:github.com/mitchellh/reflectwalk:force \
+ github.com/xeipuuv/gojsonpointer:github.com/xeipuuv/gojsonpointer:force \
+ go.opentelemetry.io/proto/otlp:go.opentelemetry.io/proto/otlp/otlp:force \
+ github.com/distribution/reference:github.com/distribution/reference:force \
+ github.com/mitchellh/mapstructure:github.com/mitchellh/mapstructure:force \
+ github.com/skratchdot/open-golang:github.com/skratchdot/open-golang:force \
+ go.opentelemetry.io/otel/trace:go.opentelemetry.io/otel/trace/trace:force \
+ github.com/emicklei/go-restful/v3:github.com/emicklei/go-restful/v3:force \
+ github.com/go-openapi/jsonpointer:github.com/go-openapi/jsonpointer:force \
+ github.com/hashicorp/go-cleanhttp:github.com/hashicorp/go-cleanhttp:force \
+ github.com/in-toto/in-toto-golang:github.com/in-toto/in-toto-golang:force \
+ github.com/kballard/go-shellquote:github.com/kballard/go-shellquote:force \
+ github.com/moby/docker-image-spec:github.com/moby/docker-image-spec:force \
+ github.com/hashicorp/go-multierror:github.com/hashicorp/go-multierror:force \
+ github.com/mitchellh/copystructure:github.com/mitchellh/copystructure:force \
+ github.com/moby/sys/mountinfo:github.com/moby/sys/mountinfo/mountinfo:force \
+ github.com/prometheus/client_model:github.com/prometheus/client_model:force \
+ github.com/xeipuuv/gojsonreference:github.com/xeipuuv/gojsonreference:force \
+ go.opentelemetry.io/otel/metric:go.opentelemetry.io/otel/metric/metric:force \
+ github.com/opencontainers/go-digest:github.com/opencontainers/go-digest:force \
+ github.com/go-openapi/jsonreference:github.com/go-openapi/jsonreference:force \
+ github.com/prometheus/client_golang:github.com/prometheus/client_golang:force \
+ github.com/moby/sys/sequential:github.com/moby/sys/sequential/sequential:force \
+ github.com/opencontainers/image-spec:github.com/opencontainers/image-spec:force \
+ github.com/theupdateframework/notary:github.com/theupdateframework/notary:force \
+ github.com/AdaLogics/go-fuzz-headers:github.com/AdaLogics/go-fuzz-headers:force \
+ github.com/inconshreveable/mousetrap:github.com/inconshreveable/mousetrap:force \
+ sigs.k8s.io/structured-merge-diff/v4:sigs.k8s.io/structured-merge-diff/v4:force \
+ github.com/compose-spec/compose-go/v2:github.com/compose-spec/compose-go/v2:force \
+ github.com/aws/aws-sdk-go-v2/config:github.com/aws/aws-sdk-go-v2/config/config:force \
+ tags.cncf.io/container-device-interface:tags.cncf.io/container-device-interface:force \
+ go.opentelemetry.io/otel/sdk/metric:go.opentelemetry.io/otel/sdk/metric/sdk/metric:force \
+ github.com/grpc-ecosystem/grpc-gateway/v2:github.com/grpc-ecosystem/grpc-gateway/v2:force \
+ github.com/docker/docker-credential-helpers:github.com/docker/docker-credential-helpers:force \
+ github.com/grpc-ecosystem/go-grpc-middleware:github.com/grpc-ecosystem/go-grpc-middleware:force \
+ github.com/aws/aws-sdk-go-v2/credentials:github.com/aws/aws-sdk-go-v2/credentials/credentials:force \
+ github.com/aws/aws-sdk-go-v2/service/sso:github.com/aws/aws-sdk-go-v2/service/sso/service/sso:force \
+ github.com/aws/aws-sdk-go-v2/service/sts:github.com/aws/aws-sdk-go-v2/service/sts/service/sts:force \
+ github.com/aws/aws-sdk-go-v2/internal/ini:github.com/aws/aws-sdk-go-v2/internal/ini/internal/ini:force \
+ github.com/matttproud/golang_protobuf_extensions:github.com/matttproud/golang_protobuf_extensions:force \
+ google.golang.org/genproto/googleapis/api:google.golang.org/genproto/googleapis/api/googleapis/api:force \
+ google.golang.org/genproto/googleapis/rpc:google.golang.org/genproto/googleapis/rpc/googleapis/rpc:force \
+ github.com/secure-systems-lab/go-securesystemslib:github.com/secure-systems-lab/go-securesystemslib:force \
+ github.com/aws/aws-sdk-go-v2/service/ssooidc:github.com/aws/aws-sdk-go-v2/service/ssooidc/service/ssooidc:force \
+ github.com/aws/aws-sdk-go-v2/feature/ec2/imds:github.com/aws/aws-sdk-go-v2/feature/ec2/imds/feature/ec2/imds:force \
+ go.opentelemetry.io/otel/exporters/prometheus:go.opentelemetry.io/otel/exporters/prometheus/exporters/prometheus:force \
+ github.com/aws/aws-sdk-go-v2/internal/endpoints/v2:github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/internal/endpoints/v2:force \
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace:go.opentelemetry.io/otel/exporters/otlp/otlptrace/exporters/otlp/otlptrace:force \
+ github.com/aws/aws-sdk-go-v2/internal/configsources:github.com/aws/aws-sdk-go-v2/internal/configsources/internal/configsources:force \
+ go.opentelemetry.io/otel/exporters/otlp/otlpmetric:go.opentelemetry.io/otel/exporters/otlp/otlpmetric/exporters/otlp/otlpmetric:force \
+ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url:github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/service/internal/presigned-url:force \
+ github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding:github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/service/internal/accept-encoding:force \
+ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp:go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/instrumentation/net/http/otelhttp:force \
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc:go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/exporters/otlp/otlptrace/otlptracegrpc:force \
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp:go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp/exporters/otlp/otlptrace/otlptracehttp:force \
+ go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc:go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/exporters/otlp/otlpmetric/otlpmetricgrpc:force \
+ go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp:go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/exporters/otlp/otlpmetric/otlpmetrichttp:force \
+ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc:go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/instrumentation/google.golang.org/grpc/otelgrpc:force \
+ go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace:go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace/instrumentation/net/http/httptrace/otelhttptrace:force"
+
+do_compile:prepend() {
+ cd ${S}/src/import
+ for s in $sites; do
+ site_dest=$(echo $s | cut -d: -f1)
+ site_source=$(echo $s | cut -d: -f2)
+ force_flag=$(echo $s | cut -d: -f3)
+ mkdir -p vendor.copy/$site_dest
+ if [ -n "$force_flag" ]; then
+ echo "[INFO] $site_dest: force copying .go files"
+ rm -rf vendor.copy/$site_dest
+ rsync -a --exclude='vendor/' --exclude='.git/' vendor.fetch/$site_source/ vendor.copy/$site_dest
+ else
+ [ -n "$(ls -A vendor.copy/$site_dest/*.go 2> /dev/null)" ] && { echo "[INFO] vendor.fetch/$site_source -> $site_dest: go copy skipped (files present)" ; true ; } || { echo "[INFO] $site_dest: copying .go files" ; rsync -a --exclude='vendor/' --exclude='.git/' vendor.fetch/$site_source/ vendor.copy/$site_dest ; }
+ fi
+ done
+}
diff --git a/recipes-containers/docker-compose/src_uri.inc b/recipes-containers/docker-compose/src_uri.inc
new file mode 100644
index 00000000..1978abc7
--- /dev/null
+++ b/recipes-containers/docker-compose/src_uri.inc
@@ -0,0 +1,930 @@
+# k8s.io/api v0.29.2
+# [1] git ls-remote https://github.com/kubernetes/api d47313059888ec984bf8432ed155fae5be935c31
+SRCREV_k8s.io-api="d47313059888ec984bf8432ed155fae5be935c31"
+SRC_URI += "git://github.com/kubernetes/api;name=k8s.io-api;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/k8s.io/api"
+
+# k8s.io/utils v0.0.0-20230726121419-3b25d923346b
+# [1] git ls-remote https://github.com/kubernetes/utils 3b25d923346b3814e0898684c97390092f31a61e
+SRCREV_utils="3b25d923346b3814e0898684c97390092f31a61e"
+SRC_URI += "git://github.com/kubernetes/utils;name=utils;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/k8s.io/utils"
+
+# k8s.io/klog/v2 v2.110.1
+# [1] git ls-remote https://github.com/kubernetes/klog e3f75b8af2707d64b5dd4c440ae8384ed2f2c386
+SRCREV_klog-v2="e3f75b8af2707d64b5dd4c440ae8384ed2f2c386"
+SRC_URI += "git://github.com/kubernetes/klog;name=klog-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/k8s.io/klog/v2"
+
+# gotest.tools/v3 v3.5.1
+# [1] git ls-remote https://github.com/gotestyourself/gotest.tools 81cea1abc596b025bf2573c7fdf97740512e4c6c
+SRCREV_v3="81cea1abc596b025bf2573c7fdf97740512e4c6c"
+SRC_URI += "git://github.com/gotestyourself/gotest.tools;name=v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gotest.tools/v3"
+
+# dario.cat/mergo v1.0.0
+# [1] git ls-remote https://github.com/imdario/mergo 131de815afc35a77c41ae99da6c8f4288b6cb513
+SRCREV_mergo="131de815afc35a77c41ae99da6c8f4288b6cb513"
+SRC_URI += "git://github.com/imdario/mergo;name=mergo;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/dario.cat/mergo"
+
+# gopkg.in/inf.v0 v0.9.1
+# [1] git ls-remote https://github.com/go-inf/inf d2d2541c53f18d2a059457998ce2876cc8e67cbf
+SRCREV_inf.v0="d2d2541c53f18d2a059457998ce2876cc8e67cbf"
+SRC_URI += "git://github.com/go-inf/inf;name=inf.v0;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/inf.v0"
+
+# go.uber.org/mock v0.4.0
+# [1] git ls-remote https://github.com/uber/mock 74a29c6e6c2cbb8ccee94db061c1604ff33fd188
+SRCREV_mock="74a29c6e6c2cbb8ccee94db061c1604ff33fd188"
+SRC_URI += "git://github.com/uber/mock;name=mock;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.uber.org/mock"
+
+# golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3
+# [1] git ls-remote https://go.googlesource.com/exp db7319d0e0e361ccef5c449b760df8e5f2d5087c
+SRCREV_exp="db7319d0e0e361ccef5c449b760df8e5f2d5087c"
+SRC_URI += "git://go.googlesource.com/exp;name=exp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/exp"
+
+# golang.org/x/sys v0.16.0
+# [1] git ls-remote https://go.googlesource.com/sys 0829ab15b6946f47c40012db2e0c04772730317d
+SRCREV_sys="0829ab15b6946f47c40012db2e0c04772730317d"
+SRC_URI += "git://go.googlesource.com/sys;name=sys;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/sys"
+
+# gopkg.in/yaml.v3 v3.0.1
+# [1] git ls-remote https://github.com/go-yaml/yaml f6f7691b1fdeb513f56608cd2c32c51f8194bf51
+SRCREV_yaml.v3="f6f7691b1fdeb513f56608cd2c32c51f8194bf51"
+SRC_URI += "git://github.com/go-yaml/yaml;name=yaml.v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/yaml.v3"
+
+# golang.org/x/mod v0.14.0
+# [1] git ls-remote https://go.googlesource.com/mod 6e58e47c7bd6672665dc35cce7b1f325d2addd67
+SRCREV_mod="6e58e47c7bd6672665dc35cce7b1f325d2addd67"
+SRC_URI += "git://go.googlesource.com/mod;name=mod;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/mod"
+
+# golang.org/x/net v0.20.0
+# [1] git ls-remote https://go.googlesource.com/net cb5b10f0bbc51089bf49030ce3bd43bbfee08c23
+SRCREV_net="cb5b10f0bbc51089bf49030ce3bd43bbfee08c23"
+SRC_URI += "git://go.googlesource.com/net;name=net;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/net"
+
+# gopkg.in/yaml.v2 v2.4.0
+# [1] git ls-remote https://github.com/go-yaml/yaml 7649d4548cb53a614db133b2a8ac1f31859dda8c
+SRCREV_yaml.v2="7649d4548cb53a614db133b2a8ac1f31859dda8c"
+SRC_URI += "git://github.com/go-yaml/yaml;name=yaml.v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/yaml.v2"
+
+# k8s.io/apiserver v0.29.2
+# [1] git ls-remote https://github.com/kubernetes/apiserver 4c39f36a732cfb11f3fc75110c7301336b6b64e3
+SRCREV_apiserver="4c39f36a732cfb11f3fc75110c7301336b6b64e3"
+SRC_URI += "git://github.com/kubernetes/apiserver;name=apiserver;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/k8s.io/apiserver"
+
+# k8s.io/client-go v0.29.2
+# [1] git ls-remote https://github.com/kubernetes/client-go 62c5e9e7b4bd09d2b43dcad1464376322398e994
+SRCREV_client-go="62c5e9e7b4bd09d2b43dcad1464376322398e994"
+SRC_URI += "git://github.com/kubernetes/client-go;name=client-go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/k8s.io/client-go"
+
+# sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd
+# [1] git ls-remote https://github.com/kubernetes-sigs/json bc3834ca7abd3a90f03ef00a27ad80cb892f9c21
+SRCREV_json="bc3834ca7abd3a90f03ef00a27ad80cb892f9c21"
+SRC_URI += "git://github.com/kubernetes-sigs/json;name=json;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/sigs.k8s.io/json"
+
+# sigs.k8s.io/yaml v1.3.0
+# [1] git ls-remote https://github.com/kubernetes-sigs/yaml 9535b3b1e2893fe44efb37c5c9f5665e245d786a
+SRCREV_yaml="9535b3b1e2893fe44efb37c5c9f5665e245d786a"
+SRC_URI += "git://github.com/kubernetes-sigs/yaml;name=yaml;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/sigs.k8s.io/yaml"
+
+# golang.org/x/sync v0.6.0
+# [1] git ls-remote https://go.googlesource.com/sync 59c1ca1e4661ed4452be4069ceea3c233f4deec1
+SRCREV_sync="59c1ca1e4661ed4452be4069ceea3c233f4deec1"
+SRC_URI += "git://go.googlesource.com/sync;name=sync;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/sync"
+
+# golang.org/x/term v0.16.0
+# [1] git ls-remote https://go.googlesource.com/term ae941452f58ff9bf62f7e9dca3ea6ae3d214a68b
+SRCREV_x-term="ae941452f58ff9bf62f7e9dca3ea6ae3d214a68b"
+SRC_URI += "git://go.googlesource.com/term;name=x-term;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/term"
+
+# golang.org/x/text v0.14.0
+# [1] git ls-remote https://go.googlesource.com/text 6c97a165dd661335ff7bce6104a008558123c353
+SRCREV_text="6c97a165dd661335ff7bce6104a008558123c353"
+SRC_URI += "git://go.googlesource.com/text;name=text;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/text"
+
+# golang.org/x/time v0.3.0
+# [1] git ls-remote https://go.googlesource.com/time 2c09566ef13fb5556401ddff3c53c3dbc2a42dac
+SRCREV_time="2c09566ef13fb5556401ddff3c53c3dbc2a42dac"
+SRC_URI += "git://go.googlesource.com/time;name=time;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/time"
+
+# go.uber.org/goleak v1.3.0
+# [1] git ls-remote https://github.com/uber-go/goleak 31095c657c34bba405a8d480db27989aa5f60b9c
+SRCREV_goleak="31095c657c34bba405a8d480db27989aa5f60b9c"
+SRC_URI += "git://github.com/uber-go/goleak;name=goleak;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.uber.org/goleak"
+
+# golang.org/x/tools v0.17.0
+# [1] git ls-remote https://go.googlesource.com/tools 0b1f1d4bc227cc2e610854f23e14696becb9e46c
+SRCREV_tools="0b1f1d4bc227cc2e610854f23e14696becb9e46c"
+SRC_URI += "git://go.googlesource.com/tools;name=tools;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/tools"
+
+# golang.org/x/crypto v0.18.0
+# [1] git ls-remote https://go.googlesource.com/crypto dbb6ec16ecef7a66638d8514be54b13660551b0a
+SRCREV_crypto="dbb6ec16ecef7a66638d8514be54b13660551b0a"
+SRC_URI += "git://go.googlesource.com/crypto;name=crypto;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/crypto"
+
+# golang.org/x/oauth2 v0.11.0
+# [1] git ls-remote https://go.googlesource.com/oauth2 2e4a4e2bfb69ca7609cb423438c55caa131431c1
+SRCREV_oauth2="2e4a4e2bfb69ca7609cb423438c55caa131431c1"
+SRC_URI += "git://go.googlesource.com/oauth2;name=oauth2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/oauth2"
+
+# k8s.io/apimachinery v0.29.2
+# [1] git ls-remote https://github.com/kubernetes/apimachinery dc7e034c86479d49be4b0eefad307621e10caa0e
+SRCREV_apimachinery="dc7e034c86479d49be4b0eefad307621e10caa0e"
+SRC_URI += "git://github.com/kubernetes/apimachinery;name=apimachinery;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/k8s.io/apimachinery"
+
+# k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00
+# [1] git ls-remote https://github.com/kubernetes/kube-openapi 2dd684a91f00351087fe2f4ed5408d4d2f3775ab
+SRCREV_kube-openapi="2dd684a91f00351087fe2f4ed5408d4d2f3775ab"
+SRC_URI += "git://github.com/kubernetes/kube-openapi;name=kube-openapi;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/k8s.io/kube-openapi"
+
+# github.com/moby/term v0.5.0
+# [1] git ls-remote https://github.com/moby/term 9c3c875fad924eb6c9dd32a361b5fc0a49a4feb9
+SRCREV_term="9c3c875fad924eb6c9dd32a361b5fc0a49a4feb9"
+SRC_URI += "git://github.com/moby/term;name=term;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/term"
+
+# github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c
+# [1] git ls-remote https://github.com/docker/go d30aec9fd63c35133f8f79c3412ad91a3b08be06
+SRCREV_go="d30aec9fd63c35133f8f79c3412ad91a3b08be06"
+SRC_URI += "git://github.com/docker/go;name=go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/go"
+
+# github.com/docker/cli v26.0.0+incompatible
+# [1] git ls-remote https://github.com/docker/cli 2ae903e86cab51f694c819721cdfdf5eec693720
+SRCREV_cli="2ae903e86cab51f694c819721cdfdf5eec693720"
+SRC_URI += "git://github.com/docker/cli;name=cli;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/cli"
+
+# github.com/r3labs/sse v0.0.0-20210224172625-26fe804710bc
+# [1] git ls-remote https://github.com/r3labs/sse 26fe804710bc39ea7ea6636d36f27c438bd2c06f
+SRCREV_sse="26fe804710bc39ea7ea6636d36f27c438bd2c06f"
+SRC_URI += "git://github.com/r3labs/sse;name=sse;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/r3labs/sse"
+
+# github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b
+# [1] git ls-remote https://github.com/mgutz/ansi 9520e82c474b0a04dd04f8a40959027271bab992
+SRCREV_ansi="9520e82c474b0a04dd04f8a40959027271bab992"
+SRC_URI += "git://github.com/mgutz/ansi;name=ansi;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mgutz/ansi"
+
+# github.com/pkg/errors v0.9.1
+# [1] git ls-remote https://github.com/pkg/errors 614d223910a179a466c1767a985424175c39b465
+SRCREV_errors="614d223910a179a466c1767a985424175c39b465"
+SRC_URI += "git://github.com/pkg/errors;name=errors;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/pkg/errors"
+
+# github.com/spf13/cobra v1.8.0
+# [1] git ls-remote https://github.com/spf13/cobra a0a6ae020bb3899ff0276067863e50523f897370
+SRCREV_cobra="a0a6ae020bb3899ff0276067863e50523f897370"
+SRC_URI += "git://github.com/spf13/cobra;name=cobra;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/spf13/cobra"
+
+# github.com/spf13/pflag v1.0.5
+# [1] git ls-remote https://github.com/spf13/pflag 2e9d26c8c37aae03e3f9d4e90b7116f5accb7cab
+SRCREV_pflag="2e9d26c8c37aae03e3f9d4e90b7116f5accb7cab"
+SRC_URI += "git://github.com/spf13/pflag;name=pflag;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/spf13/pflag"
+
+# google.golang.org/grpc v1.59.0
+# [1] git ls-remote https://github.com/grpc/grpc-go 7765221f4bf6104973db7946d56936cf838cad46
+SRCREV_grpc="7765221f4bf6104973db7946d56936cf838cad46"
+SRC_URI += "git://github.com/grpc/grpc-go;name=grpc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/grpc"
+
+# github.com/gofrs/flock v0.8.1
+# [1] git ls-remote https://github.com/gofrs/flock 6f010d1acea74a32f2f2066bfe324c08bbee30e3
+SRCREV_flock="6f010d1acea74a32f2f2066bfe324c08bbee30e3"
+SRC_URI += "git://github.com/gofrs/flock;name=flock;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/gofrs/flock"
+
+# github.com/google/uuid v1.6.0
+# [1] git ls-remote https://github.com/google/uuid 0f11ee6918f41a04c201eceeadf612a377bc7fbc
+SRCREV_uuid="0f11ee6918f41a04c201eceeadf612a377bc7fbc"
+SRC_URI += "git://github.com/google/uuid;name=uuid;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/uuid"
+
+# github.com/gorilla/mux v1.8.1
+# [1] git ls-remote https://github.com/gorilla/mux b4617d0b9670ad14039b2739167fd35a60f557c5
+SRCREV_mux="b4617d0b9670ad14039b2739167fd35a60f557c5"
+SRC_URI += "git://github.com/gorilla/mux;name=mux;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/gorilla/mux"
+
+# github.com/moby/locker v1.0.1
+# [1] git ls-remote https://github.com/moby/locker 281af2d563954745bea9d1487c965f24d30742fe
+SRCREV_locker="281af2d563954745bea9d1487c965f24d30742fe"
+SRC_URI += "git://github.com/moby/locker;name=locker;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/locker"
+
+# github.com/rivo/uniseg v0.2.0
+# [1] git ls-remote https://github.com/rivo/uniseg 75711fccf6a3e85bc74c241e2dddd06a9bc9e53d
+SRCREV_uniseg="75711fccf6a3e85bc74c241e2dddd06a9bc9e53d"
+SRC_URI += "git://github.com/rivo/uniseg;name=uniseg;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/rivo/uniseg"
+
+# github.com/buger/goterm v1.0.4
+# [1] git ls-remote https://github.com/buger/goterm a73545aae7d693f786ce4cc687460efca4845f31
+SRCREV_goterm="a73545aae7d693f786ce4cc687460efca4845f31"
+SRC_URI += "git://github.com/buger/goterm;name=goterm;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/buger/goterm"
+
+# github.com/morikuni/aec v1.0.0
+# [1] git ls-remote https://github.com/morikuni/aec 39771216ff4c63d11f5e604076f9c45e8be1067b
+SRCREV_aec="39771216ff4c63d11f5e604076f9c45e8be1067b"
+SRC_URI += "git://github.com/morikuni/aec;name=aec;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/morikuni/aec"
+
+# github.com/otiai10/copy v1.14.0
+# [1] git ls-remote https://github.com/otiai10/copy fba066acb0eb6e25d510073787741c0a8b31bf1e
+SRCREV_copy="fba066acb0eb6e25d510073787741c0a8b31bf1e"
+SRC_URI += "git://github.com/otiai10/copy;name=copy;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/otiai10/copy"
+
+# github.com/beorn7/perks v1.0.1
+# [1] git ls-remote https://github.com/beorn7/perks 37c8de3658fcb183f997c4e13e8337516ab753e6
+SRCREV_perks="37c8de3658fcb183f997c4e13e8337516ab753e6"
+SRC_URI += "git://github.com/beorn7/perks;name=perks;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/beorn7/perks"
+
+# github.com/go-logr/logr v1.3.0
+# [1] git ls-remote https://github.com/go-logr/logr 8adefbede0fe82bdee4fb8c9c9bdc7bc5d91388f
+SRCREV_logr="8adefbede0fe82bdee4fb8c9c9bdc7bc5d91388f"
+SRC_URI += "git://github.com/go-logr/logr;name=logr;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-logr/logr"
+
+# github.com/go-logr/stdr v1.2.2
+# [1] git ls-remote https://github.com/go-logr/stdr 521af2addfa7c81c8a65d0e85ed34bb6bb6dc262
+SRCREV_stdr="521af2addfa7c81c8a65d0e85ed34bb6bb6dc262"
+SRC_URI += "git://github.com/go-logr/stdr;name=stdr;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-logr/stdr"
+
+# github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510
+# [1] git ls-remote https://github.com/google/shlex e7afc7fbc51079733e9468cdfd1efcd7d196cd1d
+SRCREV_shlex="e7afc7fbc51079733e9468cdfd1efcd7d196cd1d"
+SRC_URI += "git://github.com/google/shlex;name=shlex;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/shlex"
+
+# github.com/miekg/pkcs11 v1.1.1
+# [1] git ls-remote https://github.com/miekg/pkcs11 f3481918a208bd212aa995a41f92d786eb418a7d
+SRCREV_pkcs11="f3481918a208bd212aa995a41f92d786eb418a7d"
+SRC_URI += "git://github.com/miekg/pkcs11;name=pkcs11;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/miekg/pkcs11"
+
+# github.com/docker/buildx v0.13.1
+# [1] git ls-remote https://github.com/docker/buildx 788433953af10f2a698f5c07611dddce2e08c7a0
+SRCREV_buildx="788433953af10f2a698f5c07611dddce2e08c7a0"
+SRC_URI += "git://github.com/docker/buildx;name=buildx;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/buildx"
+
+# github.com/docker/docker v26.0.0+incompatible
+# [1] git ls-remote https://github.com/moby/moby 8b79278316b532d396048bc8c2fa015a85d53a53
+SRCREV_docker="8b79278316b532d396048bc8c2fa015a85d53a53"
+SRC_URI += "git://github.com/moby/moby;name=docker;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/docker"
+
+# github.com/google/go-cmp v0.6.0
+# [1] git ls-remote https://github.com/google/go-cmp c3ad8435e7bef96af35732bc0789e5a2278c6d5f
+SRCREV_go-cmp="c3ad8435e7bef96af35732bc0789e5a2278c6d5f"
+SRC_URI += "git://github.com/google/go-cmp;name=go-cmp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/go-cmp"
+
+# github.com/moby/buildkit v0.13.1
+# [1] git ls-remote https://github.com/moby/buildkit 2ae42e0c0c793d7d66b7a23424af6fd6c2f9c8f3
+SRCREV_buildkit="2ae42e0c0c793d7d66b7a23424af6fd6c2f9c8f3"
+SRC_URI += "git://github.com/moby/buildkit;name=buildkit;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/buildkit"
+
+# go.opentelemetry.io/otel v1.21.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go 98b32a6c3a87fbee5d34c063b9096f416b250897
+SRCREV_otel="98b32a6c3a87fbee5d34c063b9096f416b250897"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=otel;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel"
+
+# github.com/aws/smithy-go v1.19.0
+# [1] git ls-remote https://github.com/aws/smithy-go f982aed889669e4bc6f1cd03f56697f1b27964a4
+SRCREV_smithy-go="f982aed889669e4bc6f1cd03f56697f1b27964a4"
+SRC_URI += "git://github.com/aws/smithy-go;name=smithy-go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/aws/smithy-go"
+
+# github.com/gogo/protobuf v1.3.2
+# [1] git ls-remote https://github.com/gogo/protobuf b03c65ea87cdc3521ede29f62fe3ce239267c1bc
+SRCREV_protobuf="b03c65ea87cdc3521ede29f62fe3ce239267c1bc"
+SRC_URI += "git://github.com/gogo/protobuf;name=protobuf;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/gogo/protobuf"
+
+# github.com/google/gofuzz v1.2.0
+# [1] git ls-remote https://github.com/google/gofuzz 379e164120fbc98885a8f494b5aa41ba94f64c56
+SRCREV_gofuzz="379e164120fbc98885a8f494b5aa41ba94f64c56"
+SRC_URI += "git://github.com/google/gofuzz;name=gofuzz;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/gofuzz"
+
+# github.com/imdario/mergo v0.3.16
+# [1] git ls-remote https://github.com/darccio/mergo 14fe2b165b83359196f820886a2b24f2771729e9
+SRCREV_imdario-mergo="14fe2b165b83359196f820886a2b24f2771729e9"
+SRC_URI += "git://github.com/darccio/mergo;name=imdario-mergo;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/imdario/mergo"
+
+# github.com/moby/sys/user v0.1.0
+# [1] git ls-remote https://github.com/moby/sys c0711cde08c8fa33857a2c28721659267f49b5e2
+SRCREV_user="c0711cde08c8fa33857a2c28721659267f49b5e2"
+SRC_URI += "git://github.com/moby/sys;name=user;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/sys/user"
+
+# github.com/containerd/log v0.1.0
+# [1] git ls-remote https://github.com/containerd/log 0fc1e28871fdf2786e2cc51bbe4133db6547a199
+SRCREV_log="0fc1e28871fdf2786e2cc51bbe4133db6547a199"
+SRC_URI += "git://github.com/containerd/log;name=log;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/log"
+
+# github.com/davecgh/go-spew v1.1.1
+# [1] git ls-remote https://github.com/davecgh/go-spew 8991bc29aa16c548c550c7ff78260e27b9ab7c73
+SRCREV_go-spew="8991bc29aa16c548c550c7ff78260e27b9ab7c73"
+SRC_URI += "git://github.com/davecgh/go-spew;name=go-spew;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/davecgh/go-spew"
+
+# github.com/docker/go-units v0.5.0
+# [1] git ls-remote https://github.com/docker/go-units e682442797b36348f8e1f98defdbf32bac0b6c6f
+SRCREV_go-units="e682442797b36348f8e1f98defdbf32bac0b6c6f"
+SRC_URI += "git://github.com/docker/go-units;name=go-units;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/go-units"
+
+# github.com/mitchellh/go-ps v1.0.0
+# [1] git ls-remote https://github.com/mitchellh/go-ps 147ff83818ae939913b2e20b91ae3cd6c391771c
+SRCREV_go-ps="147ff83818ae939913b2e20b91ae3cd6c391771c"
+SRC_URI += "git://github.com/mitchellh/go-ps;name=go-ps;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mitchellh/go-ps"
+
+# github.com/sirupsen/logrus v1.9.3
+# [1] git ls-remote https://github.com/sirupsen/logrus d40e25cd45ed9c6b2b66e6b97573a0413e4c23bd
+SRCREV_logrus="d40e25cd45ed9c6b2b66e6b97573a0413e4c23bd"
+SRC_URI += "git://github.com/sirupsen/logrus;name=logrus;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/sirupsen/logrus"
+
+# github.com/go-openapi/swag v0.22.3
+# [1] git ls-remote https://github.com/go-openapi/swag 0579829e66fde26b27d401921afb73704c4d463d
+SRCREV_swag="0579829e66fde26b27d401921afb73704c4d463d"
+SRC_URI += "git://github.com/go-openapi/swag;name=swag;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-openapi/swag"
+
+# github.com/gogo/googleapis v1.4.1
+# [1] git ls-remote https://github.com/gogo/googleapis 1f0e43f50bc0606e385ffae1bc80b5b231dcd042
+SRCREV_googleapis="1f0e43f50bc0606e385ffae1bc80b5b231dcd042"
+SRC_URI += "git://github.com/gogo/googleapis;name=googleapis;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/gogo/googleapis"
+
+# github.com/golang/protobuf v1.5.3
+# [1] git ls-remote https://github.com/golang/protobuf 5d5e8c018a13017f9d5b8bf4fad64aaa42a87308
+SRCREV_golang-protobuf="5d5e8c018a13017f9d5b8bf4fad64aaa42a87308"
+SRC_URI += "git://github.com/golang/protobuf;name=golang-protobuf;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/golang/protobuf"
+
+# github.com/mailru/easyjson v0.7.7
+# [1] git ls-remote https://github.com/mailru/easyjson c120ca7ced6051261161ce15e8f1542a4b2567fc
+SRCREV_easyjson="c120ca7ced6051261161ce15e8f1542a4b2567fc"
+SRC_URI += "git://github.com/mailru/easyjson;name=easyjson;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mailru/easyjson"
+
+# github.com/mattn/go-isatty v0.0.17
+# [1] git ls-remote https://github.com/mattn/go-isatty ed75e619dc0f0489fd4062163a7d061eaa249b9c
+SRCREV_go-isatty="ed75e619dc0f0489fd4062163a7d061eaa249b9c"
+SRC_URI += "git://github.com/mattn/go-isatty;name=go-isatty;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mattn/go-isatty"
+
+# github.com/moby/spdystream v0.2.0
+# [1] git ls-remote https://github.com/moby/spdystream dbc715126c0e3fa07721879c6d265b2b82c71e5b
+SRCREV_spdystream="dbc715126c0e3fa07721879c6d265b2b82c71e5b"
+SRC_URI += "git://github.com/moby/spdystream;name=spdystream;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/spdystream"
+
+# github.com/moby/sys/signal v0.7.0
+# [1] git ls-remote https://github.com/moby/sys b8d8fabf1fa5cf0de7c1a1729145eee854ea31f5
+SRCREV_signal="b8d8fabf1fa5cf0de7c1a1729145eee854ea31f5"
+SRC_URI += "git://github.com/moby/sys;name=signal;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/sys/signal"
+
+# github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f
+# [1] git ls-remote https://github.com/mxk/go-flowrate cca7078d478f8520f85629ad7c68962d31ed7682
+SRCREV_go-flowrate="cca7078d478f8520f85629ad7c68962d31ed7682"
+SRC_URI += "git://github.com/mxk/go-flowrate;name=go-flowrate;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mxk/go-flowrate"
+
+# google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b
+# [1] git ls-remote https://github.com/googleapis/go-genproto 49dd2c1f3d0bf0f025ccaf8eeaaad902e3c63846
+SRCREV_genproto="49dd2c1f3d0bf0f025ccaf8eeaaad902e3c63846"
+SRC_URI += "git://github.com/googleapis/go-genproto;name=genproto;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/genproto"
+
+# google.golang.org/protobuf v1.31.0
+# [1] git ls-remote https://github.com/protocolbuffers/protobuf-go 68463f0e96c93bc19ef36ccd3adfe690bfdb568c
+SRCREV_google.golang.org-protobuf="68463f0e96c93bc19ef36ccd3adfe690bfdb568c"
+SRC_URI += "git://github.com/protocolbuffers/protobuf-go;name=google.golang.org-protobuf;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/protobuf"
+
+# github.com/stretchr/testify v1.8.4
+# [1] git ls-remote https://github.com/stretchr/testify f97607b89807936ac4ff96748d766cf4b9711f78
+SRCREV_testify="f97607b89807936ac4ff96748d766cf4b9711f78"
+SRC_URI += "git://github.com/stretchr/testify;name=testify;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/stretchr/testify"
+
+# github.com/containerd/ttrpc v1.2.2
+# [1] git ls-remote https://github.com/containerd/ttrpc ac26f8cbea1c440d451dd19a4a1b847fd073f3c3
+SRCREV_ttrpc="ac26f8cbea1c440d451dd19a4a1b847fd073f3c3"
+SRC_URI += "git://github.com/containerd/ttrpc;name=ttrpc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/ttrpc"
+
+# github.com/josharian/intern v1.0.0
+# [1] git ls-remote https://github.com/josharian/intern 8e6ff32b3e7c0b018c43953085fe2ac330fe9acd
+SRCREV_intern="8e6ff32b3e7c0b018c43953085fe2ac330fe9acd"
+SRC_URI += "git://github.com/josharian/intern;name=intern;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/josharian/intern"
+
+# github.com/json-iterator/go v1.1.12
+# [1] git ls-remote https://github.com/json-iterator/go 024077e996b048517130b21ea6bf12aa23055d3d
+SRCREV_json-iterator-go="024077e996b048517130b21ea6bf12aa23055d3d"
+SRC_URI += "git://github.com/json-iterator/go;name=json-iterator-go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/json-iterator/go"
+
+# github.com/moby/sys/symlink v0.2.0
+# [1] git ls-remote https://github.com/moby/sys 03b9f8d59a07f5206a2264105f4903a222aea964
+SRCREV_symlink="03b9f8d59a07f5206a2264105f4903a222aea964"
+SRC_URI += "git://github.com/moby/sys;name=symlink;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/sys/symlink"
+
+# github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b
+# [1] git ls-remote https://github.com/serialx/hashring 22c0c7ab6b1be4be7b950bae8b117767da7b18b6
+SRCREV_hashring="22c0c7ab6b1be4be7b950bae8b117767da7b18b6"
+SRC_URI += "git://github.com/serialx/hashring;name=hashring;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/serialx/hashring"
+
+# github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea
+# [1] git ls-remote https://github.com/tonistiigi/units 6950e57a87eaf136bbe44ef2ec8e75b9e3569de2
+SRCREV_units="6950e57a87eaf136bbe44ef2ec8e75b9e3569de2"
+SRC_URI += "git://github.com/tonistiigi/units;name=units;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/tonistiigi/units"
+
+# github.com/tonistiigi/vt100 v0.0.0-20230623042737-f9a4f7ef6531
+# [1] git ls-remote https://github.com/tonistiigi/vt100 f9a4f7ef65311848d4d4791c649a178c8e97386b
+SRCREV_vt100="f9a4f7ef65311848d4d4791c649a178c8e97386b"
+SRC_URI += "git://github.com/tonistiigi/vt100;name=vt100;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/tonistiigi/vt100"
+
+# google.golang.org/appengine v1.6.7
+# [1] git ls-remote https://github.com/golang/appengine 5d1c1d03f8703c2e81478d9a30e9afa2d3e4bd8a
+SRCREV_appengine="5d1c1d03f8703c2e81478d9a30e9afa2d3e4bd8a"
+SRC_URI += "git://github.com/golang/appengine;name=appengine;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/appengine"
+
+# github.com/fsnotify/fsevents v0.1.1
+# [1] git ls-remote https://github.com/fsnotify/fsevents f721bd2b045774a566e8f7f5fa2a9985e04c875d
+SRCREV_fsevents="f721bd2b045774a566e8f7f5fa2a9985e04c875d"
+SRC_URI += "git://github.com/fsnotify/fsevents;name=fsevents;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/fsnotify/fsevents"
+
+# github.com/tilt-dev/fsnotify v1.4.8-0.20220602155310-fff9c274a375
+# [1] git ls-remote https://github.com/tilt-dev/fsnotify fff9c274a375301ae46812f257aa68393790c45b
+SRCREV_fsnotify="fff9c274a375301ae46812f257aa68393790c45b"
+SRC_URI += "git://github.com/tilt-dev/fsnotify;name=fsnotify;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/tilt-dev/fsnotify"
+
+# go.opentelemetry.io/otel/sdk v1.21.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go 98b32a6c3a87fbee5d34c063b9096f416b250897
+SRCREV_sdk="98b32a6c3a87fbee5d34c063b9096f416b250897"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=sdk;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/sdk"
+
+# github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1
+# [1] git ls-remote https://github.com/Azure/go-ansiterm d185dfc1b5a126116ea5a19e148e29d16b4574c9
+SRCREV_go-ansiterm="d185dfc1b5a126116ea5a19e148e29d16b4574c9"
+SRC_URI += "git://github.com/Azure/go-ansiterm;name=go-ansiterm;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Azure/go-ansiterm"
+
+# github.com/Microsoft/hcsshim v0.11.4
+# [1] git ls-remote https://github.com/microsoft/hcsshim b16edf62c1723deb948632261b445d0228d973e0
+SRCREV_hcsshim="b16edf62c1723deb948632261b445d0228d973e0"
+SRC_URI += "git://github.com/microsoft/hcsshim;name=hcsshim;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Microsoft/hcsshim"
+
+# github.com/aws/aws-sdk-go-v2 v1.24.1
+# [1] git ls-remote https://github.com/aws/aws-sdk-go-v2 47dd1b1bcbde244357a82ef00fa6a61a9bfb9b39
+SRCREV_aws-sdk-go-v2="47dd1b1bcbde244357a82ef00fa6a61a9bfb9b39"
+SRC_URI += "git://github.com/aws/aws-sdk-go-v2;name=aws-sdk-go-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/aws/aws-sdk-go-v2"
+
+# github.com/cespare/xxhash/v2 v2.2.0
+# [1] git ls-remote https://github.com/cespare/xxhash a76eb16a93c1e30527c073ca831d9048b4b935f6
+SRCREV_xxhash-v2="a76eb16a93c1e30527c073ca831d9048b4b935f6"
+SRC_URI += "git://github.com/cespare/xxhash;name=xxhash-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/cespare/xxhash/v2"
+
+# github.com/docker/go-metrics v0.0.1
+# [1] git ls-remote https://github.com/docker/go-metrics b619b3592b65de4f087d9f16863a7e6ff905973c
+SRCREV_go-metrics="b619b3592b65de4f087d9f16863a7e6ff905973c"
+SRC_URI += "git://github.com/docker/go-metrics;name=go-metrics;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/go-metrics"
+
+# github.com/eiannone/keyboard v0.0.0-20220611211555-0d226195f203
+# [1] git ls-remote https://github.com/eiannone/keyboard 0d226195f2038e282bb90d2e24f7f29aa7c5b210
+SRCREV_keyboard="0d226195f2038e282bb90d2e24f7f29aa7c5b210"
+SRC_URI += "git://github.com/eiannone/keyboard;name=keyboard;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/eiannone/keyboard"
+
+# github.com/felixge/httpsnoop v1.0.4
+# [1] git ls-remote https://github.com/felixge/httpsnoop c5817c27ec125409c069052fdd171023c353501c
+SRCREV_httpsnoop="c5817c27ec125409c069052fdd171023c353501c"
+SRC_URI += "git://github.com/felixge/httpsnoop;name=httpsnoop;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/felixge/httpsnoop"
+
+# github.com/gorilla/websocket v1.5.0
+# [1] git ls-remote https://github.com/gorilla/websocket 9111bb834a68b893cebbbaed5060bdbc1d9ab7d2
+SRCREV_websocket="9111bb834a68b893cebbbaed5060bdbc1d9ab7d2"
+SRC_URI += "git://github.com/gorilla/websocket;name=websocket;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/gorilla/websocket"
+
+# github.com/hashicorp/errwrap v1.1.0
+# [1] git ls-remote https://github.com/hashicorp/errwrap 7b00e5db719c64d14dd0caaacbd13e76254d02c0
+SRCREV_errwrap="7b00e5db719c64d14dd0caaacbd13e76254d02c0"
+SRC_URI += "git://github.com/hashicorp/errwrap;name=errwrap;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/hashicorp/errwrap"
+
+# github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822
+# [1] git ls-remote https://github.com/munnerz/goautoneg a7dc8b61c822528f973a5e4e7b272055c6fdb43e
+SRCREV_goautoneg="a7dc8b61c822528f973a5e4e7b272055c6fdb43e"
+SRC_URI += "git://github.com/munnerz/goautoneg;name=goautoneg;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/munnerz/goautoneg"
+
+# github.com/pelletier/go-toml v1.9.5
+# [1] git ls-remote https://github.com/pelletier/go-toml fed1464066413075eac02cd4dc368b5221845541
+SRCREV_go-toml="fed1464066413075eac02cd4dc368b5221845541"
+SRC_URI += "git://github.com/pelletier/go-toml;name=go-toml;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/pelletier/go-toml"
+
+# github.com/prometheus/common v0.44.0
+# [1] git ls-remote https://github.com/prometheus/common 94bf9828e56d9670579b28a9f78237d3cd8d0395
+SRCREV_common="94bf9828e56d9670579b28a9f78237d3cd8d0395"
+SRC_URI += "git://github.com/prometheus/common;name=common;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/prometheus/common"
+
+# github.com/prometheus/procfs v0.12.0
+# [1] git ls-remote https://github.com/prometheus/procfs ff0ad85f7e8bcd5c677d99143f14a2a3aab533aa
+SRCREV_procfs="ff0ad85f7e8bcd5c677d99143f14a2a3aab533aa"
+SRC_URI += "git://github.com/prometheus/procfs;name=procfs;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/prometheus/procfs"
+
+# github.com/tonistiigi/fsutil v0.0.0-20240301111122-7525a1af2bb5
+# [1] git ls-remote https://github.com/tonistiigi/fsutil 7525a1af2bb545e89dc9bced785bff7a3b7f08c2
+SRCREV_fsutil="7525a1af2bb545e89dc9bced785bff7a3b7f08c2"
+SRC_URI += "git://github.com/tonistiigi/fsutil;name=fsutil;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/tonistiigi/fsutil"
+
+# gopkg.in/cenkalti/backoff.v1 v1.1.0
+# [1] git ls-remote https://github.com/cenkalti/backoff 61153c768f31ee5f130071d08fc82b85208528de
+SRCREV_backoff.v1="61153c768f31ee5f130071d08fc82b85208528de"
+SRC_URI += "git://github.com/cenkalti/backoff;name=backoff.v1;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/cenkalti/backoff.v1"
+
+# github.com/Microsoft/go-winio v0.6.1
+# [1] git ls-remote https://github.com/microsoft/go-winio 070c828abb873da9e71c7247740253b50f7cf049
+SRCREV_go-winio="070c828abb873da9e71c7247740253b50f7cf049"
+SRC_URI += "git://github.com/microsoft/go-winio;name=go-winio;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Microsoft/go-winio"
+
+# github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d
+# [1] git ls-remote https://github.com/acarl005/stripansi 5a71ef0e047df0427e87a79f27009029921f1f9b
+SRCREV_stripansi="5a71ef0e047df0427e87a79f27009029921f1f9b"
+SRC_URI += "git://github.com/acarl005/stripansi;name=stripansi;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/acarl005/stripansi"
+
+# github.com/containerd/console v1.0.4
+# [1] git ls-remote https://github.com/containerd/console 8f6c4e4faef5a326d2cd907097d04c0239ee5e2f
+SRCREV_console="8f6c4e4faef5a326d2cd907097d04c0239ee5e2f"
+SRC_URI += "git://github.com/containerd/console;name=console;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/console"
+
+# github.com/fvbommel/sortorder v1.0.2
+# [1] git ls-remote https://github.com/fvbommel/sortorder 26fad50c6b32a3064c09ed089865c16f2f3615f6
+SRCREV_sortorder="26fad50c6b32a3064c09ed089865c16f2f3615f6"
+SRC_URI += "git://github.com/fvbommel/sortorder;name=sortorder;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/fvbommel/sortorder"
+
+# github.com/klauspost/compress v1.17.4
+# [1] git ls-remote https://github.com/klauspost/compress 98ff542abe3108aa760c1558f80d393be0136539
+SRCREV_compress="98ff542abe3108aa760c1558f80d393be0136539"
+SRC_URI += "git://github.com/klauspost/compress;name=compress;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/klauspost/compress"
+
+# github.com/mattn/go-colorable v0.1.13
+# [1] git ls-remote https://github.com/mattn/go-colorable 11a925cff3d38c293ddc8c05a16b504e3e2c63be
+SRCREV_go-colorable="11a925cff3d38c293ddc8c05a16b504e3e2c63be"
+SRC_URI += "git://github.com/mattn/go-colorable;name=go-colorable;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mattn/go-colorable"
+
+# github.com/mattn/go-runewidth v0.0.15
+# [1] git ls-remote https://github.com/mattn/go-runewidth 44b7c5b4d67df8ca22917b6800c158a6d3be3560
+SRCREV_go-runewidth="44b7c5b4d67df8ca22917b6800c158a6d3be3560"
+SRC_URI += "git://github.com/mattn/go-runewidth;name=go-runewidth;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mattn/go-runewidth"
+
+# github.com/moby/sys/mountinfo v0.7.1
+# [1] git ls-remote https://github.com/moby/sys 4950d7687cf6c9b138dc0e18c2c7351e1f6ed497
+SRCREV_mountinfo="4950d7687cf6c9b138dc0e18c2c7351e1f6ed497"
+SRC_URI += "git://github.com/moby/sys;name=mountinfo;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/sys/mountinfo"
+
+# github.com/modern-go/reflect2 v1.0.2
+# [1] git ls-remote https://github.com/modern-go/reflect2 2b33151c9bbc5231aea69b8861c540102b087070
+SRCREV_reflect2="2b33151c9bbc5231aea69b8861c540102b087070"
+SRC_URI += "git://github.com/modern-go/reflect2;name=reflect2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/modern-go/reflect2"
+
+# github.com/pmezard/go-difflib v1.0.0
+# [1] git ls-remote https://github.com/pmezard/go-difflib 792786c7400a136282c1664665ae0a8db921c6c2
+SRCREV_go-difflib="792786c7400a136282c1664665ae0a8db921c6c2"
+SRC_URI += "git://github.com/pmezard/go-difflib;name=go-difflib;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/pmezard/go-difflib"
+
+# github.com/jonboulle/clockwork v0.4.0
+# [1] git ls-remote https://github.com/jonboulle/clockwork 606c48b92358fcca153952b56fb0d14d6845f84a
+SRCREV_clockwork="606c48b92358fcca153952b56fb0d14d6845f84a"
+SRC_URI += "git://github.com/jonboulle/clockwork;name=clockwork;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/jonboulle/clockwork"
+
+# github.com/mattn/go-shellwords v1.0.12
+# [1] git ls-remote https://github.com/mattn/go-shellwords 973b9d5391598d4ee601db46fa32f6e186a356ac
+SRCREV_go-shellwords="973b9d5391598d4ee601db46fa32f6e186a356ac"
+SRC_URI += "git://github.com/mattn/go-shellwords;name=go-shellwords;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mattn/go-shellwords"
+
+# github.com/moby/patternmatcher v0.6.0
+# [1] git ls-remote https://github.com/moby/patternmatcher 347bb8d8d557f90d1b75cd8bca3c0177f380a979
+SRCREV_patternmatcher="347bb8d8d557f90d1b75cd8bca3c0177f380a979"
+SRC_URI += "git://github.com/moby/patternmatcher;name=patternmatcher;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/patternmatcher"
+
+# go.opentelemetry.io/otel/trace v1.21.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go 98b32a6c3a87fbee5d34c063b9096f416b250897
+SRCREV_trace="98b32a6c3a87fbee5d34c063b9096f416b250897"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=trace;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/trace"
+
+# github.com/cenkalti/backoff/v4 v4.2.1
+# [1] git ls-remote https://github.com/cenkalti/backoff a04a6fe64ffb0e3fd0816460529d300be5f252df
+SRCREV_v4="a04a6fe64ffb0e3fd0816460529d300be5f252df"
+SRC_URI += "git://github.com/cenkalti/backoff;name=v4;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/cenkalti/backoff/v4"
+
+# github.com/docker/distribution v2.8.3+incompatible
+# [1] git ls-remote https://github.com/distribution/distribution 4772604ae973031ab32dd9805a4bccf61d94909f
+SRCREV_distribution="4772604ae973031ab32dd9805a4bccf61d94909f"
+SRC_URI += "git://github.com/distribution/distribution;name=distribution;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/distribution"
+
+# github.com/moby/sys/sequential v0.5.0
+# [1] git ls-remote https://github.com/moby/sys b22ba8a69b306f0b4adbbe2a529457e6283ed9f7
+SRCREV_sequential="b22ba8a69b306f0b4adbbe2a529457e6283ed9f7"
+SRC_URI += "git://github.com/moby/sys;name=sequential;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/sys/sequential"
+
+# github.com/shibumi/go-pathspec v1.3.0
+# [1] git ls-remote https://github.com/shibumi/go-pathspec 30eddf187f62305a5b34f662049d077211abaacd
+SRCREV_go-pathspec="30eddf187f62305a5b34f662049d077211abaacd"
+SRC_URI += "git://github.com/shibumi/go-pathspec;name=go-pathspec;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/shibumi/go-pathspec"
+
+# go.opentelemetry.io/proto/otlp v1.0.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-proto-go 97744b2e4a0fa6787b96b9c3c740daefca754333
+SRCREV_otlp="97744b2e4a0fa6787b96b9c3c740daefca754333"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-proto-go;name=otlp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/proto/otlp"
+
+# github.com/docker/cli-docs-tool v0.7.0
+# [1] git ls-remote https://github.com/docker/cli-docs-tool 3149c912295595f6fc3bd7d3ee9283d97a4aedf6
+SRCREV_cli-docs-tool="3149c912295595f6fc3bd7d3ee9283d97a4aedf6"
+SRC_URI += "git://github.com/docker/cli-docs-tool;name=cli-docs-tool;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/cli-docs-tool"
+
+# github.com/hashicorp/go-version v1.6.0
+# [1] git ls-remote https://github.com/hashicorp/go-version 78d058c5618891f74d604bd15356fca690b64d8a
+SRCREV_go-version="78d058c5618891f74d604bd15356fca690b64d8a"
+SRC_URI += "git://github.com/hashicorp/go-version;name=go-version;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/hashicorp/go-version"
+
+# github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
+# [1] git ls-remote https://github.com/modern-go/concurrent bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94
+SRCREV_concurrent="bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94"
+SRC_URI += "git://github.com/modern-go/concurrent;name=concurrent;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/modern-go/concurrent"
+
+# github.com/xeipuuv/gojsonschema v1.2.0
+# [1] git ls-remote https://github.com/xeipuuv/gojsonschema 82fcdeb203eb6ab2a67d0a623d9c19e5e5a64927
+SRCREV_gojsonschema="82fcdeb203eb6ab2a67d0a623d9c19e5e5a64927"
+SRC_URI += "git://github.com/xeipuuv/gojsonschema;name=gojsonschema;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/xeipuuv/gojsonschema"
+
+# go.opentelemetry.io/otel/metric v1.21.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go 98b32a6c3a87fbee5d34c063b9096f416b250897
+SRCREV_metric="98b32a6c3a87fbee5d34c063b9096f416b250897"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=metric;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/metric"
+
+# github.com/AlecAivazis/survey/v2 v2.3.7
+# [1] git ls-remote https://github.com/AlecAivazis/survey fa37277e6394c29db7bcc94062cb30cd7785a126
+SRCREV_v2="fa37277e6394c29db7bcc94062cb30cd7785a126"
+SRC_URI += "git://github.com/AlecAivazis/survey;name=v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/AlecAivazis/survey/v2"
+
+# github.com/containerd/containerd v1.7.13
+# [1] git ls-remote https://github.com/containerd/containerd 7c3aca7a610df76212171d200ca3811ff6096eb8
+SRCREV_containerd="7c3aca7a610df76212171d200ca3811ff6096eb8"
+SRC_URI += "git://github.com/containerd/containerd;name=containerd;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/containerd"
+
+# github.com/docker/go-connections v0.5.0
+# [1] git ls-remote https://github.com/docker/go-connections fa09c952e3eadbffaf8afc5b8a1667158ba38ace
+SRCREV_go-connections="fa09c952e3eadbffaf8afc5b8a1667158ba38ace"
+SRC_URI += "git://github.com/docker/go-connections;name=go-connections;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/go-connections"
+
+# github.com/Masterminds/semver/v3 v3.2.1
+# [1] git ls-remote https://github.com/Masterminds/semver e06051f8fcc4c8b4a4990c337b9862a2448722e5
+SRCREV_semver-v3="e06051f8fcc4c8b4a4990c337b9862a2448722e5"
+SRC_URI += "git://github.com/Masterminds/semver;name=semver-v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Masterminds/semver/v3"
+
+# github.com/containerd/continuity v0.4.3
+# [1] git ls-remote https://github.com/containerd/continuity 1743d9104d944131cdedaba33a59d2f9bd80a6f2
+SRCREV_continuity="1743d9104d944131cdedaba33a59d2f9bd80a6f2"
+SRC_URI += "git://github.com/containerd/continuity;name=continuity;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/continuity"
+
+# github.com/containerd/typeurl/v2 v2.1.1
+# [1] git ls-remote https://github.com/containerd/typeurl 7ef6316b771f959cbb208b229e3423a466947df3
+SRCREV_typeurl-v2="7ef6316b771f959cbb208b229e3423a466947df3"
+SRC_URI += "git://github.com/containerd/typeurl;name=typeurl-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/typeurl/v2"
+
+# github.com/google/gnostic-models v0.6.8
+# [1] git ls-remote https://github.com/google/gnostic-models 577692584cdf09674595bba0c182d0e8a44655d3
+SRCREV_gnostic-models="577692584cdf09674595bba0c182d0e8a44655d3"
+SRC_URI += "git://github.com/google/gnostic-models;name=gnostic-models;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/gnostic-models"
+
+# github.com/mitchellh/reflectwalk v1.0.2
+# [1] git ls-remote https://github.com/mitchellh/reflectwalk e0c24fdb021963cd2c4013097a0b993a7c4e344f
+SRCREV_reflectwalk="e0c24fdb021963cd2c4013097a0b993a7c4e344f"
+SRC_URI += "git://github.com/mitchellh/reflectwalk;name=reflectwalk;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mitchellh/reflectwalk"
+
+# github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb
+# [1] git ls-remote https://github.com/xeipuuv/gojsonpointer 02993c407bfbf5f6dae44c4f4b1cf6a39b5fc5bb
+SRCREV_gojsonpointer="02993c407bfbf5f6dae44c4f4b1cf6a39b5fc5bb"
+SRC_URI += "git://github.com/xeipuuv/gojsonpointer;name=gojsonpointer;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/xeipuuv/gojsonpointer"
+
+# github.com/distribution/reference v0.5.0
+# [1] git ls-remote https://github.com/distribution/reference 49c28499d219290c3226822e9cfcd4ede6d75379
+SRCREV_reference="49c28499d219290c3226822e9cfcd4ede6d75379"
+SRC_URI += "git://github.com/distribution/reference;name=reference;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/distribution/reference"
+
+# github.com/mitchellh/mapstructure v1.5.0
+# [1] git ls-remote https://github.com/mitchellh/mapstructure ab69d8d93410fce4361f4912bb1ff88110a81311
+SRCREV_mapstructure="ab69d8d93410fce4361f4912bb1ff88110a81311"
+SRC_URI += "git://github.com/mitchellh/mapstructure;name=mapstructure;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mitchellh/mapstructure"
+
+# github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966
+# [1] git ls-remote https://github.com/skratchdot/open-golang eef8423979666925a58eb77f9db583e54320d5a4
+SRCREV_open-golang="eef8423979666925a58eb77f9db583e54320d5a4"
+SRC_URI += "git://github.com/skratchdot/open-golang;name=open-golang;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/skratchdot/open-golang"
+
+# github.com/emicklei/go-restful/v3 v3.11.0
+# [1] git ls-remote https://github.com/emicklei/go-restful 30bec7807481e62e1e1e59ad57e7f22054806966
+SRCREV_go-restful-v3="30bec7807481e62e1e1e59ad57e7f22054806966"
+SRC_URI += "git://github.com/emicklei/go-restful;name=go-restful-v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/emicklei/go-restful/v3"
+
+# github.com/go-openapi/jsonpointer v0.19.6
+# [1] git ls-remote https://github.com/go-openapi/jsonpointer 5df0d69a6be189afff354877d332f9ede32afe12
+SRCREV_jsonpointer="5df0d69a6be189afff354877d332f9ede32afe12"
+SRC_URI += "git://github.com/go-openapi/jsonpointer;name=jsonpointer;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-openapi/jsonpointer"
+
+# github.com/hashicorp/go-cleanhttp v0.5.2
+# [1] git ls-remote https://github.com/hashicorp/go-cleanhttp 6d9e2ac5d828e5f8594b97f88c4bde14a67bb6d2
+SRCREV_go-cleanhttp="6d9e2ac5d828e5f8594b97f88c4bde14a67bb6d2"
+SRC_URI += "git://github.com/hashicorp/go-cleanhttp;name=go-cleanhttp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/hashicorp/go-cleanhttp"
+
+# github.com/in-toto/in-toto-golang v0.5.0
+# [1] git ls-remote https://github.com/in-toto/in-toto-golang ec599036d27ebaca3e8c03559d3f8fd5fe429dfe
+SRCREV_in-toto-golang="ec599036d27ebaca3e8c03559d3f8fd5fe429dfe"
+SRC_URI += "git://github.com/in-toto/in-toto-golang;name=in-toto-golang;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/in-toto/in-toto-golang"
+
+# github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
+# [1] git ls-remote https://github.com/kballard/go-shellquote 95032a82bc518f77982ea72343cc1ade730072f0
+SRCREV_go-shellquote="95032a82bc518f77982ea72343cc1ade730072f0"
+SRC_URI += "git://github.com/kballard/go-shellquote;name=go-shellquote;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/kballard/go-shellquote"
+
+# github.com/moby/docker-image-spec v1.3.1
+# [1] git ls-remote https://github.com/moby/docker-image-spec f1d00ebd2d6d6805170d5543dbca4b850f35f9af
+SRCREV_docker-image-spec="f1d00ebd2d6d6805170d5543dbca4b850f35f9af"
+SRC_URI += "git://github.com/moby/docker-image-spec;name=docker-image-spec;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/docker-image-spec"
+
+# github.com/hashicorp/go-multierror v1.1.1
+# [1] git ls-remote https://github.com/hashicorp/go-multierror 9974e9ec57696378079ecc3accd3d6f29401b3a0
+SRCREV_go-multierror="9974e9ec57696378079ecc3accd3d6f29401b3a0"
+SRC_URI += "git://github.com/hashicorp/go-multierror;name=go-multierror;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/hashicorp/go-multierror"
+
+# github.com/mitchellh/copystructure v1.2.0
+# [1] git ls-remote https://github.com/mitchellh/copystructure d4ce1f938f7a7ea2a40bff4544b56be9c00b5e84
+SRCREV_copystructure="d4ce1f938f7a7ea2a40bff4544b56be9c00b5e84"
+SRC_URI += "git://github.com/mitchellh/copystructure;name=copystructure;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mitchellh/copystructure"
+
+# github.com/prometheus/client_model v0.5.0
+# [1] git ls-remote https://github.com/prometheus/client_model 1c92cadf7d8fa1726bae12e6025cca9b86d2ba5f
+SRCREV_client_model="1c92cadf7d8fa1726bae12e6025cca9b86d2ba5f"
+SRC_URI += "git://github.com/prometheus/client_model;name=client_model;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/prometheus/client_model"
+
+# github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415
+# [1] git ls-remote https://github.com/xeipuuv/gojsonreference bd5ef7bd5415a7ac448318e64f11a24cd21e594b
+SRCREV_gojsonreference="bd5ef7bd5415a7ac448318e64f11a24cd21e594b"
+SRC_URI += "git://github.com/xeipuuv/gojsonreference;name=gojsonreference;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/xeipuuv/gojsonreference"
+
+# github.com/opencontainers/go-digest v1.0.0
+# [1] git ls-remote https://github.com/opencontainers/go-digest ea51bea511f75cfa3ef6098cc253c5c3609b037a
+SRCREV_go-digest="ea51bea511f75cfa3ef6098cc253c5c3609b037a"
+SRC_URI += "git://github.com/opencontainers/go-digest;name=go-digest;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/opencontainers/go-digest"
+
+# github.com/aws/aws-sdk-go-v2/config v1.26.6
+# [1] git ls-remote https://github.com/aws/aws-sdk-go-v2 857d5277b41f290ab7ba0e0f6f96f940045f69b7
+SRCREV_config="857d5277b41f290ab7ba0e0f6f96f940045f69b7"
+SRC_URI += "git://github.com/aws/aws-sdk-go-v2;name=config;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/aws/aws-sdk-go-v2/config"
+
+# github.com/go-openapi/jsonreference v0.20.2
+# [1] git ls-remote https://github.com/go-openapi/jsonreference 1f158e563669961b8e54817e3ea57978d439ffff
+SRCREV_jsonreference="1f158e563669961b8e54817e3ea57978d439ffff"
+SRC_URI += "git://github.com/go-openapi/jsonreference;name=jsonreference;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-openapi/jsonreference"
+
+# github.com/prometheus/client_golang v1.17.0
+# [1] git ls-remote https://github.com/prometheus/client_golang fa1408ee351f6aba15c6d0207f7a0021eb3af406
+SRCREV_client_golang="fa1408ee351f6aba15c6d0207f7a0021eb3af406"
+SRC_URI += "git://github.com/prometheus/client_golang;name=client_golang;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/prometheus/client_golang"
+
+# go.opentelemetry.io/otel/sdk/metric v1.21.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go 98b32a6c3a87fbee5d34c063b9096f416b250897
+SRCREV_sdk-metric="98b32a6c3a87fbee5d34c063b9096f416b250897"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=sdk-metric;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/sdk/metric"
+
+# github.com/opencontainers/image-spec v1.1.0-rc6
+# [1] git ls-remote https://github.com/opencontainers/image-spec 6c2b5fafa0731a97aad0c2a68bac238d6c98c690
+SRCREV_image-spec="6c2b5fafa0731a97aad0c2a68bac238d6c98c690"
+SRC_URI += "git://github.com/opencontainers/image-spec;name=image-spec;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/opencontainers/image-spec"
+
+# github.com/theupdateframework/notary v0.7.0
+# [1] git ls-remote https://github.com/notaryproject/notary b0b6bfdd4933081e8d5ae026b24e8337311dd598
+SRCREV_notary="b0b6bfdd4933081e8d5ae026b24e8337311dd598"
+SRC_URI += "git://github.com/notaryproject/notary;name=notary;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/theupdateframework/notary"
+
+# github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24
+# [1] git ls-remote https://github.com/AdaLogics/go-fuzz-headers ced1acdcaa24dc39c01b039fc37576c395f506cf
+SRCREV_go-fuzz-headers="ced1acdcaa24dc39c01b039fc37576c395f506cf"
+SRC_URI += "git://github.com/AdaLogics/go-fuzz-headers;name=go-fuzz-headers;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/AdaLogics/go-fuzz-headers"
+
+# github.com/inconshreveable/mousetrap v1.1.0
+# [1] git ls-remote https://github.com/inconshreveable/mousetrap 4e8053ee7ef85a6bd26368364a6d27f1641c1d21
+SRCREV_mousetrap="4e8053ee7ef85a6bd26368364a6d27f1641c1d21"
+SRC_URI += "git://github.com/inconshreveable/mousetrap;name=mousetrap;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/inconshreveable/mousetrap"
+
+# sigs.k8s.io/structured-merge-diff/v4 v4.4.1
+# [1] git ls-remote https://github.com/kubernetes-sigs/structured-merge-diff cf09e71f4508bfc416135048e392a8a4990bf4e3
+SRCREV_structured-merge-diff-v4="cf09e71f4508bfc416135048e392a8a4990bf4e3"
+SRC_URI += "git://github.com/kubernetes-sigs/structured-merge-diff;name=structured-merge-diff-v4;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/sigs.k8s.io/structured-merge-diff/v4"
+
+# github.com/compose-spec/compose-go/v2 v2.0.2
+# [1] git ls-remote https://github.com/compose-spec/compose-go d0722c0e5564b4970f6634592638c0577ef8e028
+SRCREV_compose-go-v2="d0722c0e5564b4970f6634592638c0577ef8e028"
+SRC_URI += "git://github.com/compose-spec/compose-go;name=compose-go-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/compose-spec/compose-go/v2"
+
+# tags.cncf.io/container-device-interface v0.6.2
+# [1] git ls-remote https://github.com/cncf-tags/container-device-interface fb50bf8fc8b2c3c8fda6d23ab7e044774dcca678
+SRCREV_container-device-interface="fb50bf8fc8b2c3c8fda6d23ab7e044774dcca678"
+SRC_URI += "git://github.com/cncf-tags/container-device-interface;name=container-device-interface;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/tags.cncf.io/container-device-interface"
+
+# github.com/aws/aws-sdk-go-v2/credentials v1.16.16
+# [1] git ls-remote https://github.com/aws/aws-sdk-go-v2 a75d7694eb2709212655ee25e811d72a1188a68b
+SRCREV_credentials="a75d7694eb2709212655ee25e811d72a1188a68b"
+SRC_URI += "git://github.com/aws/aws-sdk-go-v2;name=credentials;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/aws/aws-sdk-go-v2/credentials"
+
+# github.com/aws/aws-sdk-go-v2/service/sso v1.18.7
+# [1] git ls-remote https://github.com/aws/aws-sdk-go-v2 a75d7694eb2709212655ee25e811d72a1188a68b
+SRCREV_sso="a75d7694eb2709212655ee25e811d72a1188a68b"
+SRC_URI += "git://github.com/aws/aws-sdk-go-v2;name=sso;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/aws/aws-sdk-go-v2/service/sso"
+
+# github.com/aws/aws-sdk-go-v2/service/sts v1.26.7
+# [1] git ls-remote https://github.com/aws/aws-sdk-go-v2 47dd1b1bcbde244357a82ef00fa6a61a9bfb9b39
+SRCREV_sts="47dd1b1bcbde244357a82ef00fa6a61a9bfb9b39"
+SRC_URI += "git://github.com/aws/aws-sdk-go-v2;name=sts;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/aws/aws-sdk-go-v2/service/sts"
+
+# github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3
+# [1] git ls-remote https://github.com/aws/aws-sdk-go-v2 857d5277b41f290ab7ba0e0f6f96f940045f69b7
+SRCREV_ini="857d5277b41f290ab7ba0e0f6f96f940045f69b7"
+SRC_URI += "git://github.com/aws/aws-sdk-go-v2;name=ini;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/aws/aws-sdk-go-v2/internal/ini"
+
+# github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0
+# [1] git ls-remote https://github.com/grpc-ecosystem/grpc-gateway 09e3965a330155f7db8482269d7d91b9bceb7641
+SRCREV_grpc-gateway-v2="09e3965a330155f7db8482269d7d91b9bceb7641"
+SRC_URI += "git://github.com/grpc-ecosystem/grpc-gateway;name=grpc-gateway-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/grpc-ecosystem/grpc-gateway/v2"
+
+# google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b
+# [1] git ls-remote https://github.com/googleapis/go-genproto 49dd2c1f3d0bf0f025ccaf8eeaaad902e3c63846
+SRCREV_api="49dd2c1f3d0bf0f025ccaf8eeaaad902e3c63846"
+SRC_URI += "git://github.com/googleapis/go-genproto;name=api;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/genproto/googleapis/api"
+
+# google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b
+# [1] git ls-remote https://github.com/googleapis/go-genproto 49dd2c1f3d0bf0f025ccaf8eeaaad902e3c63846
+SRCREV_rpc="49dd2c1f3d0bf0f025ccaf8eeaaad902e3c63846"
+SRC_URI += "git://github.com/googleapis/go-genproto;name=rpc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/genproto/googleapis/rpc"
+
+# github.com/docker/docker-credential-helpers v0.8.0
+# [1] git ls-remote https://github.com/docker/docker-credential-helpers 8396edb35f8d7229e75482e9d82c7729fa7001b7
+SRCREV_docker-credential-helpers="8396edb35f8d7229e75482e9d82c7729fa7001b7"
+SRC_URI += "git://github.com/docker/docker-credential-helpers;name=docker-credential-helpers;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/docker-credential-helpers"
+
+# github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7
+# [1] git ls-remote https://github.com/aws/aws-sdk-go-v2 f53c9bcd7ccef6fd9f13f77512e78e3a7aa3cc01
+SRCREV_ssooidc="f53c9bcd7ccef6fd9f13f77512e78e3a7aa3cc01"
+SRC_URI += "git://github.com/aws/aws-sdk-go-v2;name=ssooidc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/aws/aws-sdk-go-v2/service/ssooidc"
+
+# github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
+# [1] git ls-remote https://github.com/grpc-ecosystem/go-grpc-middleware df0f91b29bbbdfc3a686a7a8edbe2b9de2072fdd
+SRCREV_go-grpc-middleware="df0f91b29bbbdfc3a686a7a8edbe2b9de2072fdd"
+SRC_URI += "git://github.com/grpc-ecosystem/go-grpc-middleware;name=go-grpc-middleware;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/grpc-ecosystem/go-grpc-middleware"
+
+# github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11
+# [1] git ls-remote https://github.com/aws/aws-sdk-go-v2 47dd1b1bcbde244357a82ef00fa6a61a9bfb9b39
+SRCREV_imds="47dd1b1bcbde244357a82ef00fa6a61a9bfb9b39"
+SRC_URI += "git://github.com/aws/aws-sdk-go-v2;name=imds;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/aws/aws-sdk-go-v2/feature/ec2/imds"
+
+# go.opentelemetry.io/otel/exporters/prometheus v0.42.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go 60666c554065ac4da502fe28943eea4b938ab479
+SRCREV_prometheus="60666c554065ac4da502fe28943eea4b938ab479"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=prometheus;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/exporters/prometheus"
+
+# github.com/matttproud/golang_protobuf_extensions v1.0.4
+# [1] git ls-remote https://github.com/matttproud/golang_protobuf_extensions c182affec369e30f25d3eb8cd8a478dee585ae7d
+SRCREV_golang_protobuf_extensions="c182affec369e30f25d3eb8cd8a478dee585ae7d"
+SRC_URI += "git://github.com/matttproud/golang_protobuf_extensions;name=golang_protobuf_extensions;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/matttproud/golang_protobuf_extensions"
+
+# go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go 98b32a6c3a87fbee5d34c063b9096f416b250897
+SRCREV_otlptrace="98b32a6c3a87fbee5d34c063b9096f416b250897"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=otlptrace;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/exporters/otlp/otlptrace"
+
+# github.com/secure-systems-lab/go-securesystemslib v0.4.0
+# [1] git ls-remote https://github.com/secure-systems-lab/go-securesystemslib abcd7c95c952df38eb237fab3764ef1b8d2b15c9
+SRCREV_go-securesystemslib="abcd7c95c952df38eb237fab3764ef1b8d2b15c9"
+SRC_URI += "git://github.com/secure-systems-lab/go-securesystemslib;name=go-securesystemslib;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/secure-systems-lab/go-securesystemslib"
+
+# github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10
+# [1] git ls-remote https://github.com/aws/aws-sdk-go-v2 47dd1b1bcbde244357a82ef00fa6a61a9bfb9b39
+SRCREV_endpoints-v2="47dd1b1bcbde244357a82ef00fa6a61a9bfb9b39"
+SRC_URI += "git://github.com/aws/aws-sdk-go-v2;name=endpoints-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2"
+
+# go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.42.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go 60666c554065ac4da502fe28943eea4b938ab479
+SRCREV_otlpmetric="60666c554065ac4da502fe28943eea4b938ab479"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=otlpmetric;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/exporters/otlp/otlpmetric"
+
+# github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10
+# [1] git ls-remote https://github.com/aws/aws-sdk-go-v2 47dd1b1bcbde244357a82ef00fa6a61a9bfb9b39
+SRCREV_configsources="47dd1b1bcbde244357a82ef00fa6a61a9bfb9b39"
+SRC_URI += "git://github.com/aws/aws-sdk-go-v2;name=configsources;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/aws/aws-sdk-go-v2/internal/configsources"
+
+# github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10
+# [1] git ls-remote https://github.com/aws/aws-sdk-go-v2 47dd1b1bcbde244357a82ef00fa6a61a9bfb9b39
+SRCREV_presigned-url="47dd1b1bcbde244357a82ef00fa6a61a9bfb9b39"
+SRC_URI += "git://github.com/aws/aws-sdk-go-v2;name=presigned-url;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url"
+
+# go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go-contrib ba19074a6785b2b65c86a52c0649cf040319fa96
+SRCREV_otelhttp="ba19074a6785b2b65c86a52c0649cf040319fa96"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go-contrib;name=otelhttp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
+
+# github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4
+# [1] git ls-remote https://github.com/aws/aws-sdk-go-v2 0d643a8f0a8ad09075f41a60acba6a208cb36c58
+SRCREV_accept-encoding="0d643a8f0a8ad09075f41a60acba6a208cb36c58"
+SRC_URI += "git://github.com/aws/aws-sdk-go-v2;name=accept-encoding;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding"
+
+# go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go 98b32a6c3a87fbee5d34c063b9096f416b250897
+SRCREV_otlptracegrpc="98b32a6c3a87fbee5d34c063b9096f416b250897"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=otlptracegrpc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
+
+# go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go 98b32a6c3a87fbee5d34c063b9096f416b250897
+SRCREV_otlptracehttp="98b32a6c3a87fbee5d34c063b9096f416b250897"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=otlptracehttp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp"
+
+# go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.42.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go 60666c554065ac4da502fe28943eea4b938ab479
+SRCREV_otlpmetricgrpc="60666c554065ac4da502fe28943eea4b938ab479"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=otlpmetricgrpc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc"
+
+# go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.42.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go 60666c554065ac4da502fe28943eea4b938ab479
+SRCREV_otlpmetrichttp="60666c554065ac4da502fe28943eea4b938ab479"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=otlpmetrichttp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp"
+
+# go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go-contrib ba19074a6785b2b65c86a52c0649cf040319fa96
+SRCREV_otelgrpc="ba19074a6785b2b65c86a52c0649cf040319fa96"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go-contrib;name=otelgrpc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
+
+# go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.46.1
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go-contrib ba19074a6785b2b65c86a52c0649cf040319fa96
+SRCREV_otelhttptrace="ba19074a6785b2b65c86a52c0649cf040319fa96"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go-contrib;name=otelhttptrace;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace"
+
diff --git a/recipes-containers/docker-distribution/docker-distribution_git.bb b/recipes-containers/docker-distribution/docker-distribution_git.bb
index 71a88ace..dbca0d55 100644
--- a/recipes-containers/docker-distribution/docker-distribution_git.bb
+++ b/recipes-containers/docker-distribution/docker-distribution_git.bb
@@ -3,21 +3,20 @@ SUMMARY = "The Docker toolset to pack, ship, store, and deliver content"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
-SRCREV_distribution="d7362d7e3a706f3200be70369544094fea3e5b7c"
-SRC_URI = "git://github.com/docker/distribution.git;branch=release/2.7;name=distribution;destsuffix=git/src/github.com/docker/distribution \
+SRCREV_distribution= "d607c6ccb9372e05556624f973119a23d3a42987"
+SRC_URI = "git://github.com/docker/distribution.git;branch=release/2.8;name=distribution;destsuffix=git/src/github.com/docker/distribution;protocol=https \
file://docker-registry.service \
file://0001-build-use-to-use-cross-go-compiler.patch \
"
PACKAGES =+ "docker-registry"
-PV = "v2.7.1"
+PV = "v2.8.3+git"
S = "${WORKDIR}/git/src/github.com/docker/distribution"
GO_IMPORT = "import"
-inherit goarch
-inherit go
+inherit goarch go systemd
# This disables seccomp and apparmor, which are on by default in the
# go package.
@@ -26,16 +25,17 @@ EXTRA_OEMAKE="BUILDTAGS=''"
do_compile() {
export GOARCH="${TARGET_GOARCH}"
export GOPATH="${WORKDIR}/git/"
- export GOROOT="${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/go"
+ export GOROOT="${STAGING_LIBDIR}/go"
# Pass the needed cflags/ldflags so that cgo
# can find the needed headers files and libraries
export CGO_ENABLED="1"
export CFLAGS=""
export LDFLAGS=""
- export CGO_CFLAGS="${BUILDSDK_CFLAGS} --sysroot=${STAGING_DIR_TARGET}"
+ export CGO_CFLAGS="${TARGET_CFLAGS}"
export GO_GCFLAGS=""
- export CGO_LDFLAGS="${BUILDSDK_LDFLAGS} --sysroot=${STAGING_DIR_TARGET}"
+ export CGO_LDFLAGS="${TARGET_LDFLAGS}"
export GO111MODULE=off
+ export GO_BUILD_FLAGS="-trimpath"
cd ${S}
@@ -58,17 +58,20 @@ do_install() {
install -d ${D}/${localstatedir}/lib/registry/
}
-INSANE_SKIP_${PN} += "ldflags already-stripped"
-INSANE_SKIP_${MLPREFIX}docker-registry += "ldflags already-stripped textrel"
+INSANE_SKIP:${PN} += "ldflags already-stripped"
+INSANE_SKIP:${MLPREFIX}docker-registry += "ldflags already-stripped textrel"
-FILES_docker-registry = "${sbindir}/*"
-FILES_docker-registry += "${systemd_unitdir}/system/docker-registry.service"
-FILES_docker-registry += "${sysconfdir}/docker-distribution/*"
-FILES_docker-registry += "${localstatedir}/lib/registry/"
+FILES:docker-registry = "${sbindir}/*"
+FILES:docker-registry += "${systemd_unitdir}/system/docker-registry.service"
+FILES:docker-registry += "${sysconfdir}/docker-distribution/*"
+FILES:docker-registry += "${localstatedir}/lib/registry/"
-SYSTEMD_SERVICE_docker-registry = "${@bb.utils.contains('DISTRO_FEATURES','systemd','docker-registry.service','',d)}"
-SYSTEMD_AUTO_ENABLE_docker-registry = "enable"
+SYSTEMD_PACKAGES = "docker-registry"
+SYSTEMD_SERVICE:docker-registry = "${@bb.utils.contains('DISTRO_FEATURES','systemd','docker-registry.service','',d)}"
+SYSTEMD_AUTO_ENABLE:docker-registry = "enable"
-RDEPENDS_${PN}-ptest_remove = "${PN}"
+RDEPENDS:${PN}-ptest:remove = "${PN}"
CVE_PRODUCT = "docker_registry"
+
+COMPATIBLE_HOST:riscv64 = "null"
diff --git a/recipes-containers/docker-distribution/files/0001-build-use-to-use-cross-go-compiler.patch b/recipes-containers/docker-distribution/files/0001-build-use-to-use-cross-go-compiler.patch
index 393b167f..f97a60ca 100644
--- a/recipes-containers/docker-distribution/files/0001-build-use-to-use-cross-go-compiler.patch
+++ b/recipes-containers/docker-distribution/files/0001-build-use-to-use-cross-go-compiler.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] build: use to use cross go compiler
We shouldn't be invoking 'go' as the compiler, but instead use
${GO} which tracks our cross build go compiler for the architecture.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
Makefile | 2 +-
diff --git a/recipes-containers/docker/README b/recipes-containers/docker/README
new file mode 100644
index 00000000..565e3501
--- /dev/null
+++ b/recipes-containers/docker/README
@@ -0,0 +1,7 @@
+if containerd is starting docker, and it is interfering with standalone
+docker operation, you may need to kill the running daemon and restart
+it:
+
+ % ps axf | grep docker | grep -v grep | awk '{print "kill -9 " $1}' | sh
+ % systemctl stop docker
+ % systemctl start docker
diff --git a/recipes-containers/docker/docker-ce_git.bb b/recipes-containers/docker/docker-ce_git.bb
deleted file mode 100644
index 9921ff9d..00000000
--- a/recipes-containers/docker/docker-ce_git.bb
+++ /dev/null
@@ -1,56 +0,0 @@
-HOMEPAGE = "http://www.docker.com"
-SUMMARY = "Linux container runtime"
-DESCRIPTION = "Linux container runtime \
- Docker complements kernel namespacing with a high-level API which \
- operates at the process level. It runs unix processes with strong \
- guarantees of isolation and repeatability across servers. \
- . \
- Docker is a great building block for automating distributed systems: \
- large-scale web deployments, database clusters, continuous deployment \
- systems, private PaaS, service-oriented architectures, etc. \
- . \
- This package contains the daemon and client, which are \
- officially supported on x86_64 and arm hosts. \
- Other architectures are considered experimental. \
- . \
- Also, note that kernel version 3.10 or above is required for proper \
- operation of the daemon process, and that any lower versions may have \
- subtle and/or glaring issues. \
- "
-
-#
-# https://github.com/docker/docker-ce-packaging.git
-# common.mk:
-# DOCKER_CLI_REPO ?= https://github.com/docker/cli.git
-# DOCKER_ENGINE_REPO ?= https://github.com/docker/docker.git
-# REF ?= HEAD
-# DOCKER_CLI_REF ?= $(REF)
-# DOCKER_ENGINE_REF ?= $(REF)
-#
-# These follow the tags for our releases in the listed repositories
-# so we get that tag, and make it our SRCREVS:
-#
-
-SRCREV_docker = "8728dd246c3ab53105434eef8ffe997b6fd14dc6"
-SRCREV_libnetwork = "b3507428be5b458cb0e2b4086b13531fb0706e46"
-SRCREV_cli = "370c28948e3c12dce3d1df60b6f184990618553f"
-SRC_URI = "\
- git://github.com/docker/docker.git;branch=20.10;name=docker \
- git://github.com/docker/libnetwork.git;branch=master;name=libnetwork;destsuffix=git/libnetwork \
- git://github.com/docker/cli;branch=20.10;name=cli;destsuffix=git/cli \
- file://0001-libnetwork-use-GO-instead-of-go.patch \
- file://docker.init \
- file://0001-dynbinary-use-go-cross-compiler.patch \
- file://0001-cli-use-external-GO111MODULE-and-cross-compiler.patch \
- "
-
-require docker.inc
-
-# Apache-2.0 for docker
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=4859e97a9c7780e77972d989f0823f28"
-
-DOCKER_VERSION = "20.10.6-ce"
-PV = "${DOCKER_VERSION}+git${SRCREV_docker}"
-
-CVE_PRODUCT = "docker"
diff --git a/recipes-containers/docker/docker-moby_git.bb b/recipes-containers/docker/docker-moby_git.bb
index 10a50393..0abb0b3f 100644
--- a/recipes-containers/docker/docker-moby_git.bb
+++ b/recipes-containers/docker/docker-moby_git.bb
@@ -27,33 +27,46 @@ DESCRIPTION = "Linux container runtime \
# the curated docker-ce repository. This allows compatibility and
# functional equivalence, while allowing new features to be more
# easily added.
-# - This could be called "docker-moby" or just "moby" in the future, but
-# that would require the creation of a virtual/docker dependency, which
-# is possible, but overkill at the moment (while we wait for the upstream
-# to stop changing).
# - The common components of this recipe and docker-ce do need to be moved
# to a docker.inc recipe
+#
+# Packaging details:
+#
+# https://github.com/docker/docker-ce-packaging.git
+# common.mk:
+# DOCKER_CLI_REPO ?= https://github.com/docker/cli.git
+# DOCKER_ENGINE_REPO ?= https://github.com/docker/docker.git
+# REF ?= HEAD
+# DOCKER_CLI_REF ?= $(REF)
+# DOCKER_ENGINE_REF ?= $(REF)
+#
+# These follow the tags for our releases in the listed repositories
+# so we get that tag, and make it our SRCREVS:
+#
-SRCREV_moby = "ce826938232fbee567c8805460a8b2c82dc2e493"
-SRCREV_libnetwork = "b3507428be5b458cb0e2b4086b13531fb0706e46"
-SRCREV_cli = "370c28948e3c12dce3d1df60b6f184990618553f"
+SRCREV_moby = "f417435e5f6216828dec57958c490c4f8bae4f98"
+SRCREV_libnetwork = "67e0588f1ddfaf2faf4c8cae8b7ea2876434d91c"
+SRCREV_cli = "01f933261885c0126edb3f47fd56d048ae31265a"
+SRCREV_FORMAT = "moby_libnetwork"
SRC_URI = "\
- git://github.com/moby/moby.git;branch=20.10;name=moby \
- git://github.com/docker/libnetwork.git;branch=master;name=libnetwork;destsuffix=git/libnetwork \
- git://github.com/docker/cli;branch=20.10;name=cli;destsuffix=git/cli \
+ git://github.com/moby/moby.git;branch=25.0;name=moby;protocol=https \
+ git://github.com/docker/libnetwork.git;branch=master;name=libnetwork;destsuffix=git/libnetwork;protocol=https \
+ git://github.com/docker/cli;branch=25.0;name=cli;destsuffix=git/cli;protocol=https \
file://docker.init \
file://0001-libnetwork-use-GO-instead-of-go.patch \
file://0001-cli-use-external-GO111MODULE-and-cross-compiler.patch \
- file://0001-dynbinary-use-go-cross-compiler.patch \
+ file://0001-dynbinary-use-go-cross-compiler.patch;patchdir=src/import \
"
+DOCKER_COMMIT = "${SRCREV_moby}"
+
require docker.inc
# Apache-2.0 for docker
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=4859e97a9c7780e77972d989f0823f28"
-DOCKER_VERSION = "20.10.6"
+DOCKER_VERSION = "25.0.3"
PV = "${DOCKER_VERSION}+git${SRCREV_moby}"
-CVE_PRODUCT = "docker"
+CVE_PRODUCT = "docker mobyproject:moby"
diff --git a/recipes-containers/docker/docker.inc b/recipes-containers/docker/docker.inc
index cd4d27b9..48f7d3ec 100644
--- a/recipes-containers/docker/docker.inc
+++ b/recipes-containers/docker/docker.inc
@@ -1,47 +1,32 @@
DEPENDS = " \
- go-cli \
- go-pty \
- go-context \
- go-mux \
- go-patricia \
- go-logrus \
- go-fsnotify \
- go-dbus \
- go-capability \
- go-systemd \
btrfs-tools \
sqlite3 \
- go-distribution \
- compose-file \
- go-connections \
- notary \
- grpc-go \
libtool-native \
libtool \
"
-DEPENDS_append_class-target = " lvm2"
-RDEPENDS_${PN} = "util-linux util-linux-unshare iptables \
+DEPENDS:append:class-target = " lvm2"
+RDEPENDS:${PN} = "util-linux util-linux-unshare iptables \
${@bb.utils.contains('DISTRO_FEATURES', 'aufs', 'aufs-util', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', 'cgroup-lite', d)} \
bridge-utils \
ca-certificates \
"
-RDEPENDS_${PN} += "virtual/containerd virtual/runc"
+RDEPENDS:${PN} += "virtual-containerd ${VIRTUAL-RUNTIME_container_runtime}"
-RRECOMMENDS_${PN} = "kernel-module-dm-thin-pool kernel-module-nf-nat kernel-module-nf-conntrack-netlink kernel-module-xt-addrtype kernel-module-xt-masquerade"
+RRECOMMENDS:${PN} = "kernel-module-dm-thin-pool kernel-module-nf-nat kernel-module-nf-conntrack-netlink kernel-module-xt-addrtype kernel-module-xt-masquerade"
PROVIDES += "virtual/docker"
# we want all the docker variant recpes to be installable via "docker"
PACKAGE_NAME = "docker"
-RPROVIDES_${PN} += "docker"
-RPROVIDES_${PN}-dbg += "docker-dbg"
-RPROVIDES_${PN}-dev += "docker-dev"
-RPROVIDES_${PN}-contrip += "docker-dev"
+RPROVIDES:${PN} += "docker"
+RPROVIDES:${PN}-dbg += "docker-dbg"
+RPROVIDES:${PN}-dev += "docker-dev"
+RPROVIDES:${PN}-contrip += "docker-dev"
inherit pkgconfig
-PACKAGECONFIG ??= "docker-init"
+PACKAGECONFIG ??= "docker-init seccomp"
PACKAGECONFIG[seccomp] = "seccomp,,libseccomp"
PACKAGECONFIG[docker-init] = ",,,docker-init"
PACKAGECONFIG[transient-config] = "transient-config"
@@ -58,6 +43,9 @@ inherit pkgconfig
do_configure[noexec] = "1"
+# Export for possible use in Makefiles, default value comes from go.bbclass
+export GO_LINKSHARED
+
DOCKER_PKG="github.com/docker/docker"
# in order to exclude devicemapper and btrfs - https://github.com/docker/docker/issues/14056
BUILD_TAGS ?= "exclude_graphdriver_btrfs exclude_graphdriver_devicemapper"
@@ -75,7 +63,7 @@ do_compile() {
ln -sf ${WORKDIR}/git/libnetwork .gopath/src/github.com/docker/libnetwork
ln -sf ${WORKDIR}/git/cli .gopath/src/github.com/docker/cli
- export GOPATH="${S}/src/import/.gopath:${S}/src/import/vendor:${STAGING_DIR_TARGET}/${prefix}/local/go"
+ export GOPATH="${S}/src/import/.gopath:${S}/src/import/vendor"
export GOROOT="${STAGING_DIR_NATIVE}/${nonarch_libdir}/${HOST_SYS}/go"
# Pass the needed cflags/ldflags so that cgo
@@ -94,14 +82,14 @@ do_compile() {
# this is the unsupported built structure
# that doesn't rely on an existing docker
# to build this:
- VERSION="${DOCKER_VERSION}" DOCKER_GITCOMMIT="${SRCREV_moby}" ./hack/make.sh dynbinary
+ VERSION="${DOCKER_VERSION}" DOCKER_GITCOMMIT="${DOCKER_COMMIT}" ./hack/make.sh dynbinary
# build the cli
cd ${S}/src/import/.gopath/src/github.com/docker/cli
export CFLAGS=""
export LDFLAGS=""
export DOCKER_VERSION=${DOCKER_VERSION}
- VERSION="${DOCKER_VERSION}" DOCKER_GITCOMMIT="${SRCREV_moby}" make dynbinary
+ VERSION="${DOCKER_VERSION}" DOCKER_GITCOMMIT="${DOCKER_COMMIT}" make dynbinary
# build the proxy
cd ${S}/src/import/.gopath/src/github.com/docker/libnetwork
@@ -138,26 +126,28 @@ do_install() {
SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${PN}','',d)}"
-SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('DISTRO_FEATURES','systemd','docker.socket','',d)}"
-SYSTEMD_AUTO_ENABLE_${PN} = "enable"
+SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('DISTRO_FEATURES','systemd','docker.socket','',d)}"
+SYSTEMD_AUTO_ENABLE:${PN} = "enable"
-INITSCRIPT_PACKAGES += "${@bb.utils.contains('DISTRO_FEATURES','sysvinit','${PN}','',d)}"
-INITSCRIPT_NAME_${PN} = "${@bb.utils.contains('DISTRO_FEATURES','sysvinit','docker.init','',d)}"
-INITSCRIPT_PARAMS_${PN} = "defaults"
+# inverted logic warning. We ony want the sysvinit init to be installed if systemd
+# is NOT in the distro features
+INITSCRIPT_PACKAGES += "${@bb.utils.contains('DISTRO_FEATURES','systemd','', '${PN}',d)}"
+INITSCRIPT_NAME:${PN} = "${@bb.utils.contains('DISTRO_FEATURES','systemd','', 'docker.init',d)}"
+INITSCRIPT_PARAMS:${PN} = "defaults"
inherit useradd
USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "-r docker"
+GROUPADD_PARAM:${PN} = "-r docker"
COMPATIBLE_HOST = "^(?!(qemu)?mips).*"
-INSANE_SKIP_${PN} += "ldflags textrel"
+INSANE_SKIP:${PN} += "ldflags textrel"
-FILES_${PN} += "${systemd_unitdir}/system/* ${sysconfdir}/docker"
+FILES:${PN} += "${systemd_unitdir}/system/* ${sysconfdir}/docker"
PACKAGES =+ "${PN}-contrib"
-FILES_${PN}-contrib += "${datadir}/docker/check-config.sh"
-RDEPENDS_${PN}-contrib += "bash"
+FILES:${PN}-contrib += "${datadir}/docker/check-config.sh"
+RDEPENDS:${PN}-contrib += "bash"
# By the docker-packaging repository and https://docs.docker.com/engine/install/centos/#installation-methods
# docker is packaged by most distros with a split between the engine and the CLI.
@@ -170,9 +160,9 @@ RDEPENDS_${PN}-contrib += "bash"
# set the DOCKER_UNIFIED_PACKAGE variable to False
#
PACKAGES =+ "${PN}-cli"
-FILES_${PN}-cli += "${bindir}/docker"
+FILES:${PN}-cli += "${bindir}/docker"
# set to "False" if packages should be generated for the cli and engine, and
# NOT rdepend to get a classic one-package install
DOCKER_UNIFIED_PACKAGE ?= "True"
-RDEPENDS_${PN} += "${@bb.utils.contains("DOCKER_UNIFIED_PACKAGE", "True", "${PN}-cli", "", d)}"
+RDEPENDS:${PN} += "${@bb.utils.contains("DOCKER_UNIFIED_PACKAGE", "True", "${PN}-cli", "", d)}"
diff --git a/recipes-containers/docker/files/0001-cli-use-external-GO111MODULE-and-cross-compiler.patch b/recipes-containers/docker/files/0001-cli-use-external-GO111MODULE-and-cross-compiler.patch
index dc322612..26f5aad4 100644
--- a/recipes-containers/docker/files/0001-cli-use-external-GO111MODULE-and-cross-compiler.patch
+++ b/recipes-containers/docker/files/0001-cli-use-external-GO111MODULE-and-cross-compiler.patch
@@ -3,25 +3,31 @@ From: Bruce Ashfield <bruce.ashfield@gmail.com>
Date: Thu, 15 Apr 2021 11:28:05 -0400
Subject: [PATCH] cli: use external GO111MODULE and cross compiler
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
git/cli/scripts/build/binary | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
-diff --git git/cli/scripts/build/binary git/cli/scripts/build/binary
-index e4c5e12a6b..7c47b75c2f 100755
---- git/cli/scripts/build/binary
+Index: git/cli/scripts/build/binary
+===================================================================
+--- git.orig/cli/scripts/build/binary
+++ git/cli/scripts/build/binary
-@@ -73,8 +73,7 @@ fi
+@@ -13,8 +13,6 @@
echo "Building $GO_LINKMODE $(basename "${TARGET}")"
-export GO111MODULE=auto
+-
+ if [ "$(go env GOOS)" = "windows" ]; then
+ if [ ! -x "$(command -v goversioninfo)" ]; then
+ >&2 echo "goversioninfo not found, skipping manifesting binary"
+@@ -24,6 +22,6 @@
+ fi
+ fi
--go build -o "${TARGET}" -tags "${GO_BUILDTAGS}" --ldflags "${LDFLAGS}" ${GO_BUILDMODE} "${SOURCE}"
-+${GO} build -o "${TARGET}" -tags "${GO_BUILDTAGS}" --ldflags "${LDFLAGS}" ${GO_BUILDMODE} "${SOURCE}"
+-(set -x ; go build -o "${TARGET}" -tags "${GO_BUILDTAGS}" -ldflags "${GO_LDFLAGS}" ${GO_BUILDMODE} "${SOURCE}")
++(set -x ; ${GO} build -trimpath -o "${TARGET}" -tags "${GO_BUILDTAGS}" -ldflags "${GO_LDFLAGS}" ${GO_BUILDMODE} "${SOURCE}")
ln -sf "$(basename "${TARGET}")" "$(dirname "${TARGET}")/docker"
---
-2.19.1
-
diff --git a/recipes-containers/docker/files/0001-dynbinary-use-go-cross-compiler.patch b/recipes-containers/docker/files/0001-dynbinary-use-go-cross-compiler.patch
index 971c60d7..160a3bca 100644
--- a/recipes-containers/docker/files/0001-dynbinary-use-go-cross-compiler.patch
+++ b/recipes-containers/docker/files/0001-dynbinary-use-go-cross-compiler.patch
@@ -1,23 +1,111 @@
-From bbf600cc4d46c3f7ec0c1b486790a2402d41f550 Mon Sep 17 00:00:00 2001
+From 3ce6089417b8c6c4e8279e6ef60213436ebf8793 Mon Sep 17 00:00:00 2001
From: Bruce Ashfield <bruce.ashfield@gmail.com>
Date: Tue, 30 Jun 2020 22:23:33 -0400
Subject: [PATCH] dynbinary: use go cross compiler
+MJ: use ${GO} also in "go env" calls, because native go:
+ $ go env GOARM
+ 5
+while go cross compiler for my target:
+ $ ${GO} env GOARM
+ 7
+this can lead to:
+ error: switch '-mcpu=cortex-a9' conflicts with switch '-march=armv5t' [-Werror]
+
+but even after fixing it to use "better" -march it still doesn't match with -mcpu
+set in our GOBUILDFLAGS, causing e.g.:
+ error: switch '-mcpu=cortex-a9' conflicts with switch '-march=armv7-a+simd' [-Werror]
+
+so drop CGO_CFLAGS/CGO_CXXFLAGS as in OE builds we don't need them
+as long as ${GO} and GOBUILDFLAGS are respected
+
+it was added in:
+https://github.com/moby/moby/commit/12558c8d6ea9f388b54eb94ba6b9eb4a9fc5c9f2
+
+and it wasn't an issue before:
+https://github.com/moby/moby/commit/8c12a6648b368cc2acaea0339d6c57c920ed265c
+
+because it was using 'case "${GOARM}" in' and ${GOARM} was empty in our builds
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
- hack/make/.binary | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ hack/make/.binary | 37 ++++++++-----------------------------
+ 1 file changed, 8 insertions(+), 29 deletions(-)
-Index: git/src/import/hack/make/.binary
+Index: import/hack/make/.binary
===================================================================
---- git.orig/src/import/hack/make/.binary
-+++ git/src/import/hack/make/.binary
-@@ -81,7 +81,7 @@
+--- import.orig/hack/make/.binary
++++ import/hack/make/.binary
+@@ -3,7 +3,7 @@
+
+ # a helper to provide ".exe" when it's appropriate
+ binary_extension() {
+- if [ "$(go env GOOS)" = 'windows' ]; then
++ if [ "$(${GO} env GOOS)" = 'windows' ]; then
+ echo -n '.exe'
+ fi
+ }
+@@ -16,33 +16,12 @@
+ (
+ export GOGC=${DOCKER_BUILD_GOGC:-1000}
+
+- if [ "$(go env GOOS)/$(go env GOARCH)" != "$(go env GOHOSTOS)/$(go env GOHOSTARCH)" ]; then
+- # must be cross-compiling!
+- if [ "$(go env GOOS)/$(go env GOARCH)" = "linux/arm" ]; then
+- # specify name of the target ARM architecture
+- case "$(go env GOARM)" in
+- 5)
+- export CGO_CFLAGS="-march=armv5t"
+- export CGO_CXXFLAGS="-march=armv5t"
+- ;;
+- 6)
+- export CGO_CFLAGS="-march=armv6"
+- export CGO_CXXFLAGS="-march=armv6"
+- ;;
+- 7)
+- export CGO_CFLAGS="-march=armv7-a"
+- export CGO_CXXFLAGS="-march=armv7-a"
+- ;;
+- esac
+- fi
+- fi
+-
+ # -buildmode=pie is not supported on Windows arm64 and Linux mips*, ppc64be
+ # https://github.com/golang/go/blob/go1.19.4/src/cmd/internal/sys/supported.go#L125-L132
+ if ! [ "$DOCKER_STATIC" = "1" ]; then
+ # -buildmode=pie not supported when -race is enabled
+ if [[ " $BUILDFLAGS " != *" -race "* ]]; then
+- case "$(go env GOOS)/$(go env GOARCH)" in
++ case "$(${GO} env GOOS)/$(${GO} env GOARCH)" in
+ windows/arm64 | linux/mips* | linux/ppc64) ;;
+ *)
+ BUILDFLAGS+=("-buildmode=pie")
+@@ -66,11 +45,11 @@
+ # only necessary for non-sandboxed invocation where TARGETPLATFORM is empty
+ PLATFORM_NAME=$TARGETPLATFORM
+ if [ -z "$PLATFORM_NAME" ]; then
+- PLATFORM_NAME="$(go env GOOS)/$(go env GOARCH)"
+- if [ -n "$(go env GOARM)" ]; then
+- PLATFORM_NAME+="/v$(go env GOARM)"
+- elif [ -n "$(go env GOAMD64)" ] && [ "$(go env GOAMD64)" != "v1" ]; then
+- PLATFORM_NAME+="/$(go env GOAMD64)"
++ PLATFORM_NAME="$(${GO} env GOOS)/$(${GO} env GOARCH)"
++ if [ -n "$(${GO} env GOARM)" ]; then
++ PLATFORM_NAME+="/v$(${GO} env GOARM)"
++ elif [ -n "$(${GO} env GOAMD64)" ] && [ "$(${GO} env GOAMD64)" != "v1" ]; then
++ PLATFORM_NAME+="/$(${GO} env GOAMD64)"
+ fi
+ fi
+
+@@ -82,7 +61,7 @@
+ if [ -n "$DOCKER_DEBUG" ]; then
+ set -x
+ fi
+- ./hack/with-go-mod.sh go build -mod=vendor -modfile=vendor.mod -o "$DEST/$BINARY_FULLNAME" "${BUILDFLAGS[@]}" -ldflags "$LDFLAGS $LDFLAGS_STATIC $DOCKER_LDFLAGS" -gcflags="${GCFLAGS}" "$GO_PACKAGE"
++ ./hack/with-go-mod.sh ${GO} build -trimpath -mod=vendor -modfile=vendor.mod -o "$DEST/$BINARY_FULLNAME" "${BUILDFLAGS[@]}" -ldflags "$LDFLAGS $LDFLAGS_STATIC $DOCKER_LDFLAGS" -gcflags="${GCFLAGS}" "$GO_PACKAGE"
+ )
- echo "Building: $DEST/$BINARY_FULLNAME"
- echo "GOOS=\"${GOOS}\" GOARCH=\"${GOARCH}\" GOARM=\"${GOARM}\""
-- go build \
-+ ${GO} build \
- -o "$DEST/$BINARY_FULLNAME" \
- "${BUILDFLAGS[@]}" \
- -ldflags "
+ echo "Created binary: $DEST/$BINARY_FULLNAME"
diff --git a/recipes-containers/docker/files/0001-libnetwork-use-GO-instead-of-go.patch b/recipes-containers/docker/files/0001-libnetwork-use-GO-instead-of-go.patch
index c623b260..f94f73e4 100644
--- a/recipes-containers/docker/files/0001-libnetwork-use-GO-instead-of-go.patch
+++ b/recipes-containers/docker/files/0001-libnetwork-use-GO-instead-of-go.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] libnetwork: use $(GO) instead of go
Ensure that the libnetwork makefile uses the go cross flags and
utilities.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
---
Makefile | 14 +++++++-------
@@ -15,27 +17,29 @@ Index: git/libnetwork/Makefile
===================================================================
--- git.orig/libnetwork/Makefile
+++ git/libnetwork/Makefile
-@@ -45,9 +45,9 @@
+@@ -45,10 +45,10 @@
build-local:
@echo "🐳 $@"
@mkdir -p "bin"
-- go build -tags experimental -o "bin/dnet" ./cmd/dnet
-- go build -o "bin/docker-proxy" ./cmd/proxy
+- GO111MODULE=off go build -tags experimental -o "bin/dnet" ./cmd/dnet
+- GO111MODULE=off go build -o "bin/docker-proxy" ./cmd/proxy
- CGO_ENABLED=0 go build -o "bin/diagnosticClient" ./cmd/diagnostic
-+ $(GO) build -tags experimental -o "bin/dnet" ./cmd/dnet
-+ $(GO) build -o "bin/proxy" ./cmd/proxy
-+ CGO_ENABLED=0 $(GO) build -o "bin/diagnosticClient" ./cmd/diagnostic
- CGO_ENABLED=0 go build -o "bin/testMain" ./cmd/networkdb-test/testMain.go
+- CGO_ENABLED=0 go build -o "bin/testMain" ./cmd/networkdb-test/testMain.go
++ GO111MODULE=off $(GO) build -trimpath -tags experimental -o "bin/dnet" ./cmd/dnet
++ GO111MODULE=off $(GO) build -trimpath -o "bin/docker-proxy" ./cmd/proxy
++ CGO_ENABLED=0 $(GO) build -trimpath -o "bin/diagnosticClient" ./cmd/diagnostic
++ CGO_ENABLED=0 $(GO) build -trimpath -o "bin/testMain" ./cmd/networkdb-test/testMain.go
build-images:
+ @echo "🐳 $@"
@@ -82,8 +82,8 @@
cross-local:
@echo "🐳 $@"
-- go build -o "bin/dnet-$$GOOS-$$GOARCH" ./cmd/dnet
-- go build -o "bin/docker-proxy-$$GOOS-$$GOARCH" ./cmd/proxy
-+ @$(GO) build -linkshared $(GOBUILDFLAGS) -o "bin/docker-proxy-$$GOOS-$$GOARCH" ./cmd/proxy
-+ @$(GO) build -linkshared $(GOBUILDFLAGS) -o "bin/dnet-$$GOOS-$$GOARCH" ./cmd/dnet
+- GO111MODULE=off go build -o "bin/dnet-$$GOOS-$$GOARCH" ./cmd/dnet
+- GO111MODULE=off go build -o "bin/docker-proxy-$$GOOS-$$GOARCH" ./cmd/proxy
++ GO111MODULE=off $(GO) build -trimpath $(GO_LINKSHARED) $(GOBUILDFLAGS) -o "bin/dnet-$$GOOS-$$GOARCH" ./cmd/dnet
++ GO111MODULE=off $(GO) build -trimpath $(GO_LINKSHARED) $(GOBUILDFLAGS) -o "bin/docker-proxy-$$GOOS-$$GOARCH" ./cmd/proxy
# Rebuild protocol buffers.
# These may need to be rebuilt after vendoring updates, so .proto files are declared .PHONY so they are always rebuilt.
diff --git a/recipes-containers/go-digest/go-digest_git.bb b/recipes-containers/go-digest/go-digest_git.bb
index a2f8cd69..a1be705d 100644
--- a/recipes-containers/go-digest/go-digest_git.bb
+++ b/recipes-containers/go-digest/go-digest_git.bb
@@ -2,15 +2,15 @@ DESCRIPTION = "Common digest package used across the container ecosystem."
HOMEPAGE = "https://github.com/opencontainers/go-digest.git"
SECTION = "devel/go"
LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://src/${PKG_NAME}/LICENSE.code;md5=9cd86830b557232ce55e2a6b47387471"
+LIC_FILES_CHKSUM = "file://src/${PKG_NAME}/LICENSE;md5=2d6fc0e85c3f118af64c85a78d56d3cf"
SRCNAME = "go-digest"
PKG_NAME = "github.com/opencontainers/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git;destsuffix=git/src/${PKG_NAME}"
+SRC_URI = "git://${PKG_NAME};destsuffix=git/src/${PKG_NAME};branch=master;protocol=https"
-SRCREV = "b6234c321f263c503268e3b205f3d9755f9d14ed"
-PV = "v1.0.0-rc0+git${SRCPV}"
+SRCREV = "65fac7b55eb714642e9359458656939349dcb766"
+PV = "v1.0.0-rc0+git"
S = "${WORKDIR}/git"
@@ -18,6 +18,8 @@ S = "${WORKDIR}/git"
do_compile() {
}
+inherit meta-virt-depreciated-warning
+
do_install() {
install -d ${D}${prefix}/local/go/src/${PKG_NAME}
for j in $(cd ${S} && find src/${PKG_NAME} -name "*.go"); do
@@ -26,7 +28,7 @@ do_install() {
fi
cp $j ${D}${prefix}/local/go/$j
done
- cp -r ${S}/src/${PKG_NAME}/LICENSE.code ${D}${prefix}/local/go/src/${PKG_NAME}/
+ cp -r ${S}/src/${PKG_NAME}/LICENSE ${D}${prefix}/local/go/src/${PKG_NAME}/
}
SYSROOT_PREPROCESS_FUNCS += "go_digest_file_sysroot_preprocess"
@@ -36,6 +38,6 @@ go_digest_file_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
-CLEANBROKEN = "1" \ No newline at end of file
+CLEANBROKEN = "1"
diff --git a/recipes-containers/go-errors/go-errors_git.bb b/recipes-containers/go-errors/go-errors_git.bb
index 3bb74a7c..1236bb7b 100644
--- a/recipes-containers/go-errors/go-errors_git.bb
+++ b/recipes-containers/go-errors/go-errors_git.bb
@@ -1,16 +1,16 @@
DESCRIPTION = "Simple error handling primitives"
HOMEPAGE = "https://github.com/pkg/errors"
SECTION = "devel/go"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://src/${PKG_NAME}/LICENSE;md5=6fe682a02df52c6653f33bd0f7126b5a"
SRCNAME = "errors"
PKG_NAME = "github.com/pkg/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git;destsuffix=git/src/${PKG_NAME}"
+SRC_URI = "git://${PKG_NAME};destsuffix=git/src/${PKG_NAME};branch=master;protocol=https"
-SRCREV = "248dadf4e9068a0b3e79f02ed0a610d935de5302"
-PV = "v0.8.0+git${SRCPV}"
+SRCREV = "5dd12d0cfe7f152f80558d591504ce685299311e"
+PV = "v0.8.1+git"
S = "${WORKDIR}/git"
@@ -18,6 +18,8 @@ S = "${WORKDIR}/git"
do_compile() {
}
+inherit meta-virt-depreciated-warning
+
do_install() {
install -d ${D}${prefix}/local/go/src/${PKG_NAME}
for j in $(cd ${S} && find src/${PKG_NAME} -name "*.go" -not -path "*/.tool/*"); do
@@ -36,6 +38,6 @@ go_errors_file_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
-CLEANBROKEN = "1" \ No newline at end of file
+CLEANBROKEN = "1"
diff --git a/recipes-containers/go-spf13-cobra/spf13-cobra_git.bb b/recipes-containers/go-spf13-cobra/spf13-cobra_git.bb
index e942e4e3..8dfb0692 100644
--- a/recipes-containers/go-spf13-cobra/spf13-cobra_git.bb
+++ b/recipes-containers/go-spf13-cobra/spf13-cobra_git.bb
@@ -7,10 +7,10 @@ LIC_FILES_CHKSUM = "file://src/${PKG_NAME}/LICENSE.txt;md5=920d76114a32b0fb75b3f
SRCNAME = "cobra"
PKG_NAME = "github.com/spf13/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git;destsuffix=git/src/${PKG_NAME}"
+SRC_URI = "git://${PKG_NAME};destsuffix=git/src/${PKG_NAME};branch=main;protocol=https"
-SRCREV = "b5d8e8f46a2f829f755b6e33b454e25c61c935e1"
-PV = "v0.0.1+git${SRCPV}"
+SRCREV = "4dd4b25de38418174a6e859e8a32eaccca32dccc"
+PV = "v1.6.0+git"
S = "${WORKDIR}/git"
@@ -18,6 +18,8 @@ S = "${WORKDIR}/git"
do_compile() {
}
+inherit meta-virt-depreciated-warning
+
do_install() {
install -d ${D}${prefix}/local/go/src/${PKG_NAME}
for j in $(cd ${S} && find src/${PKG_NAME} -name "*.go" -not -path "*/.tool/*"); do
@@ -36,6 +38,6 @@ cobra_file_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
-CLEANBROKEN = "1" \ No newline at end of file
+CLEANBROKEN = "1"
diff --git a/recipes-containers/go-spf13-pflag/spf13-pflag_git.bb b/recipes-containers/go-spf13-pflag/spf13-pflag_git.bb
index 2fbcb439..b3e41545 100644
--- a/recipes-containers/go-spf13-pflag/spf13-pflag_git.bb
+++ b/recipes-containers/go-spf13-pflag/spf13-pflag_git.bb
@@ -1,16 +1,16 @@
DESCRIPTION = "Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags."
HOMEPAGE = "https://github.com/spf13/pflag"
SECTION = "devel/go"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://src/${PKG_NAME}/LICENSE;md5=1e8b7dc8b906737639131047a590f21d"
SRCNAME = "pflag"
PKG_NAME = "github.com/spf13/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git;destsuffix=git/src/${PKG_NAME}"
+SRC_URI = "git://${PKG_NAME};destsuffix=git/src/${PKG_NAME};branch=master;protocol=https"
-SRCREV = "9ff6c6923cfffbcd502984b8e0c80539a94968b7"
-PV = "v1.0.0-rc4+git${SRCPV}"
+SRCREV = "d5e0c0615acee7028e1e2740a11102313be88de1"
+PV = "v1.0.5+git"
S = "${WORKDIR}/git"
@@ -18,6 +18,8 @@ S = "${WORKDIR}/git"
do_compile() {
}
+inherit meta-virt-depreciated-warning
+
do_install() {
install -d ${D}${prefix}/local/go/src/${PKG_NAME}
for j in $(cd ${S} && find src/${PKG_NAME} -name "*.go" -not -path "*/.tool/*"); do
@@ -36,6 +38,6 @@ pflag_file_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
-CLEANBROKEN = "1" \ No newline at end of file
+CLEANBROKEN = "1"
diff --git a/recipes-containers/k3s/k3s/0001-Finding-host-local-in-usr-libexec.patch b/recipes-containers/k3s/k3s/0001-Finding-host-local-in-usr-libexec.patch
index 524ac2cb..3e8e5512 100644
--- a/recipes-containers/k3s/k3s/0001-Finding-host-local-in-usr-libexec.patch
+++ b/recipes-containers/k3s/k3s/0001-Finding-host-local-in-usr-libexec.patch
@@ -3,7 +3,7 @@ From: Erik Jansson <erikja@axis.com>
Date: Wed, 16 Oct 2019 15:07:48 +0200
Subject: [PATCH] Finding host-local in /usr/libexec
-Upstream-status: Inappropriate [embedded specific]
+Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: <erikja@axis.com>
---
pkg/agent/config/config.go | 2 +-
@@ -13,9 +13,9 @@ Index: import/pkg/agent/config/config.go
===================================================================
--- import.orig/pkg/agent/config/config.go
+++ import/pkg/agent/config/config.go
-@@ -445,7 +445,7 @@
- }
+@@ -577,7 +577,7 @@ func get(ctx context.Context, envInfo *c
+ nodeConfig.NoFlannel = nodeConfig.FlannelBackend == config.FlannelBackendNone
if !nodeConfig.NoFlannel {
- hostLocal, err := exec.LookPath("host-local")
+ hostLocal, err := exec.LookPath("/usr/libexec/cni/host-local")
diff --git a/recipes-containers/k3s/k3s/k3s-killall.sh b/recipes-containers/k3s/k3s/k3s-killall.sh
new file mode 100644
index 00000000..9e726153
--- /dev/null
+++ b/recipes-containers/k3s/k3s/k3s-killall.sh
@@ -0,0 +1,82 @@
+#!/bin/sh
+
+# Based on: k3s-killall.sh installed when running Rancher Lab's K3S install.sh
+# In open-source project: https://github.com/k3s-io/k3s
+#
+# Original file: Copyright (c) 2021 Rancher Labs and Contributors.
+# Modifications: Copyright (c) 2021 Arm Limited and Contributors. All rights reserved.
+#
+# Modifications:
+# - Change systemd service directory location
+# - Fix PID parsing to run on core image
+# - Remove service stopping code (as this is intended to run as part of service
+# stop)
+# - Changes to resolve warnings from the ShellCheck static analysis tool
+#
+# SPDX-License-Identifier: Apache License 2.0
+
+[ "$(id -u)" -eq 0 ] || exec sudo "$0" "$@"
+
+for bin in /var/lib/rancher/k3s/data/**/bin/; do
+ [ -d "$bin" ] && export PATH=$PATH:$bin:$bin/aux
+done
+
+set -x
+
+pschildren() {
+ ps -e -o ppid= -o pid= | sed -e 's/^\s*//g; s/\s\s*/\t/g;' | grep -w "^$1" | cut -f2
+}
+
+pstree() {
+ for pid in "$@"; do
+ echo "$pid"
+ for child in $(pschildren "$pid"); do
+ pstree "$child"
+ done
+ done
+}
+
+killtree() {
+ while read -r pid; do
+ if [ -n "${pid}" ]; then
+ kill -9 "${pid}" 2>/dev/null
+ fi
+ done <<EOF
+$({ set +x; } 2>/dev/null; pstree "$@"; set -x;)
+EOF
+}
+
+getshims() {
+ ps -e -o pid= -o args= | sed -e 's/^ *//; s/\s\s*/\t/;' | grep -w '[^/]*/bin/containerd-shim' | cut -f1
+}
+
+killtree "$({ set +x; } 2>/dev/null; getshims; set -x)"
+
+# shellcheck disable=SC2016
+do_unmount_and_remove() {
+ set +x
+ while read -r _ path _; do
+ case "$path" in $1*) echo "$path" ;; esac
+ done < /proc/self/mounts | sort -r | xargs -r -t -n 1 sh -c 'umount "$0" && rm -rf "$0"'
+ set -x
+}
+
+do_unmount_and_remove '/run/k3s'
+do_unmount_and_remove '/var/lib/rancher/k3s'
+do_unmount_and_remove '/var/lib/kubelet/pods'
+do_unmount_and_remove '/var/lib/kubelet/plugins'
+do_unmount_and_remove '/run/netns/cni-'
+
+# Remove CNI namespaces
+ip netns show 2>/dev/null | grep cni- | xargs -r -t -n 1 ip netns delete
+
+# Delete network interface(s) that match 'master cni0'
+ip link show 2>/dev/null | grep 'master cni0' | while read -r _ iface _; do
+ iface=${iface%%@*}
+ [ -z "$iface" ] || ip link delete "$iface"
+done
+ip link delete cni0
+ip link delete flannel.1
+ip link delete flannel-v6.1
+rm -rf /var/lib/cni/
+iptables-save | grep -v KUBE- | grep -v CNI- | iptables-restore
diff --git a/recipes-containers/k3s/k3s/k3s.service b/recipes-containers/k3s/k3s/k3s.service
index 34c7a804..33d3ee74 100644
--- a/recipes-containers/k3s/k3s/k3s.service
+++ b/recipes-containers/k3s/k3s/k3s.service
@@ -4,12 +4,17 @@ Description=Lightweight Kubernetes
Documentation=https://k3s.io
Requires=containerd.service
After=containerd.service
+After=network-online.target
+Wants=network-online.target
[Install]
WantedBy=multi-user.target
[Service]
Type=notify
+EnvironmentFile=-/etc/default/%N
+EnvironmentFile=-/etc/sysconfig/%N
+EnvironmentFile=-/etc/systemd/system/k3s.service.env
KillMode=process
Delegate=yes
# Having non-zero Limit*s causes performance problems due to accounting overhead
@@ -21,7 +26,12 @@ TasksMax=infinity
TimeoutStartSec=0
Restart=always
RestartSec=5s
+ExecStartPre=/bin/sh -xc '! systemctl is-enabled --quiet nm-cloud-setup.service'
ExecStartPre=-/sbin/modprobe br_netfilter
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/k3s server
-
+# Avoid any delay due to this service when the system is rebooting or shutting
+# down by using the k3s-killall.sh script to kill all of the running k3s
+# services and containers
+ExecStopPost=/bin/sh -c "if systemctl is-system-running | grep -i \
+ 'stopping'; then /usr/local/bin/k3s-killall.sh; fi"
diff --git a/recipes-containers/k3s/k3s/modules.txt b/recipes-containers/k3s/k3s/modules.txt
new file mode 100644
index 00000000..04a8523c
--- /dev/null
+++ b/recipes-containers/k3s/k3s/modules.txt
@@ -0,0 +1,946 @@
+# github.com/Microsoft/hcsshim v0.11.4
+## explicit
+# github.com/Mirantis/cri-dockerd v0.0.0-00010101000000-000000000000
+## explicit
+# github.com/blang/semver/v4 v4.0.0
+## explicit
+# github.com/cloudnativelabs/kube-router/v2 v2.0.0-00010101000000-000000000000
+## explicit
+# github.com/containerd/aufs v1.0.0
+## explicit
+# github.com/containerd/cgroups/v3 v3.0.2
+## explicit
+# github.com/containerd/containerd v1.7.11
+## explicit
+# github.com/containerd/fuse-overlayfs-snapshotter v1.0.5
+## explicit
+# github.com/containerd/stargz-snapshotter v0.14.4-0.20230913082252-7275d45b185c
+## explicit
+# github.com/containerd/zfs v1.1.0
+## explicit
+# github.com/coreos/go-iptables v0.7.0
+## explicit
+# github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf
+## explicit
+# github.com/docker/docker v24.0.7+incompatible
+## explicit
+# github.com/erikdubbelboer/gspt v0.0.0-20190125194910-e68493906b83
+## explicit
+# github.com/flannel-io/flannel v0.24.2
+## explicit
+# github.com/go-bindata/go-bindata v3.1.2+incompatible
+## explicit
+# github.com/go-logr/logr v1.4.1
+## explicit
+# github.com/go-logr/stdr v1.2.3-0.20220714215716-96bad1d688c5
+## explicit
+# github.com/go-sql-driver/mysql v1.7.1
+## explicit
+# github.com/go-test/deep v1.0.7
+## explicit
+# github.com/golang/mock v1.6.0
+## explicit
+# github.com/google/cadvisor v0.47.3
+## explicit
+# github.com/google/uuid v1.4.0
+## explicit
+# github.com/gorilla/mux v1.8.1
+## explicit
+# github.com/gorilla/websocket v1.5.0
+## explicit
+# github.com/ipfs/go-ds-leveldb v0.5.0
+## explicit
+# github.com/ipfs/go-log/v2 v2.5.1
+## explicit
+# github.com/json-iterator/go v1.1.12
+## explicit
+# github.com/k3s-io/helm-controller v0.15.8
+## explicit
+# github.com/k3s-io/kine v0.11.4
+## explicit
+# github.com/klauspost/compress v1.17.2
+## explicit
+# github.com/kubernetes-sigs/cri-tools v0.0.0-00010101000000-000000000000
+## explicit
+# github.com/lib/pq v1.10.2
+## explicit
+# github.com/libp2p/go-libp2p v0.30.0
+## explicit
+# github.com/mattn/go-sqlite3 v1.14.19
+## explicit
+# github.com/minio/minio-go/v7 v7.0.33
+## explicit
+# github.com/mwitkow/go-http-dialer v0.0.0-20161116154839-378f744fb2b8
+## explicit
+# github.com/natefinch/lumberjack v2.0.0+incompatible
+## explicit
+# github.com/onsi/ginkgo/v2 v2.11.0
+## explicit
+# github.com/onsi/gomega v1.27.10
+## explicit
+# github.com/opencontainers/runc v1.1.12
+## explicit
+# github.com/opencontainers/selinux v1.11.0
+## explicit
+# github.com/otiai10/copy v1.7.0
+## explicit
+# github.com/pkg/errors v0.9.1
+## explicit
+# github.com/rancher/dynamiclistener v0.3.6
+## explicit
+# github.com/rancher/lasso v0.0.0-20230830164424-d684fdeb6f29
+## explicit
+# github.com/rancher/remotedialer v0.3.0
+## explicit
+# github.com/rancher/wharfie v0.6.4
+## explicit
+# github.com/rancher/wrangler v1.1.1
+## explicit
+# github.com/robfig/cron/v3 v3.0.1
+## explicit
+# github.com/rootless-containers/rootlesskit v1.0.1
+## explicit
+# github.com/sirupsen/logrus v1.9.3
+## explicit
+# github.com/spf13/pflag v1.0.5
+## explicit
+# github.com/stretchr/testify v1.8.4
+## explicit
+# github.com/urfave/cli v1.22.14
+## explicit
+# github.com/vishvananda/netlink v1.2.1-beta.2
+## explicit
+# github.com/xenitab/spegel v0.0.16
+## explicit
+# github.com/yl2chen/cidranger v1.0.2
+## explicit
+# go.etcd.io/etcd/api/v3 v3.5.10
+## explicit
+# go.etcd.io/etcd/client/pkg/v3 v3.5.10
+## explicit
+# go.etcd.io/etcd/client/v3 v3.5.10
+## explicit
+# go.etcd.io/etcd/etcdutl/v3 v3.5.9
+## explicit
+# go.etcd.io/etcd/server/v3 v3.5.10
+## explicit
+# go.uber.org/zap v1.26.0
+## explicit
+# golang.org/x/crypto v0.17.0
+## explicit
+# golang.org/x/net v0.19.0
+## explicit
+# golang.org/x/sync v0.6.0
+## explicit
+# golang.org/x/sys v0.16.0
+## explicit
+# google.golang.org/grpc v1.60.1
+## explicit
+# gopkg.in/yaml.v2 v2.4.0
+## explicit
+# inet.af/tcpproxy v0.0.0-20200125044825-b6bb9b5b8252
+## explicit
+# k8s.io/api v0.28.7
+## explicit
+# k8s.io/apimachinery v0.28.7
+## explicit
+# k8s.io/apiserver v0.28.7
+## explicit
+# k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible
+## explicit
+# k8s.io/cloud-provider v0.28.7
+## explicit
+# k8s.io/cluster-bootstrap v0.0.0
+## explicit
+# k8s.io/component-base v0.28.7
+## explicit
+# k8s.io/component-helpers v0.28.7
+## explicit
+# k8s.io/cri-api v0.29.0-alpha.0
+## explicit
+# k8s.io/klog/v2 v2.100.1
+## explicit
+# k8s.io/kube-proxy v0.0.0
+## explicit
+# k8s.io/kubectl v0.25.0
+## explicit
+# k8s.io/kubernetes v1.28.7
+## explicit
+# k8s.io/utils v0.0.0-20230726121419-3b25d923346b
+## explicit
+# sigs.k8s.io/yaml v1.4.0
+## explicit
+# github.com/benbjohnson/clock v1.3.5
+## explicit
+# github.com/bytedance/sonic v1.9.1
+## explicit
+# github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311
+## explicit
+# github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c
+## explicit
+# github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0
+## explicit
+# github.com/elastic/gosigar v0.14.2
+## explicit
+# github.com/flynn/noise v1.0.0
+## explicit
+# github.com/francoispqt/gojay v1.2.13
+## explicit
+# github.com/gabriel-vasile/mimetype v1.4.2
+## explicit
+# github.com/gin-contrib/sse v0.1.0
+## explicit
+# github.com/gin-gonic/gin v1.9.1
+## explicit
+# github.com/go-playground/locales v0.14.1
+## explicit
+# github.com/go-playground/universal-translator v0.18.1
+## explicit
+# github.com/go-playground/validator/v10 v10.14.0
+## explicit
+# github.com/goccy/go-json v0.10.2
+## explicit
+# github.com/golang/snappy v0.0.4
+## explicit
+# github.com/google/gopacket v1.1.19
+## explicit
+# github.com/hashicorp/golang-lru v0.5.4
+## explicit
+# github.com/hashicorp/golang-lru/arc/v2 v2.0.5
+## explicit
+# github.com/hashicorp/golang-lru/v2 v2.0.5
+## explicit
+# github.com/huin/goupnp v1.2.0
+## explicit
+# github.com/ipfs/boxo v0.10.0
+## explicit
+# github.com/ipfs/go-cid v0.4.1
+## explicit
+# github.com/ipfs/go-datastore v0.6.0
+## explicit
+# github.com/ipfs/go-log v1.0.5
+## explicit
+# github.com/ipld/go-ipld-prime v0.20.0
+## explicit
+# github.com/jackpal/go-nat-pmp v1.0.2
+## explicit
+# github.com/jbenet/go-temp-err-catcher v0.1.0
+## explicit
+# github.com/jbenet/goprocess v0.1.4
+## explicit
+# github.com/koron/go-ssdp v0.0.4
+## explicit
+# github.com/leodido/go-urn v1.2.4
+## explicit
+# github.com/libp2p/go-buffer-pool v0.1.0
+## explicit
+# github.com/libp2p/go-cidranger v1.1.0
+## explicit
+# github.com/libp2p/go-flow-metrics v0.1.0
+## explicit
+# github.com/libp2p/go-libp2p-asn-util v0.3.0
+## explicit
+# github.com/libp2p/go-libp2p-kad-dht v0.25.2
+## explicit
+# github.com/libp2p/go-libp2p-kbucket v0.6.3
+## explicit
+# github.com/libp2p/go-libp2p-record v0.2.0
+## explicit
+# github.com/libp2p/go-libp2p-routing-helpers v0.7.2
+## explicit
+# github.com/libp2p/go-msgio v0.3.0
+## explicit
+# github.com/libp2p/go-nat v0.2.0
+## explicit
+# github.com/libp2p/go-netroute v0.2.1
+## explicit
+# github.com/libp2p/go-reuseport v0.4.0
+## explicit
+# github.com/libp2p/go-yamux/v4 v4.0.1
+## explicit
+# github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd
+## explicit
+# github.com/mattn/go-isatty v0.0.19
+## explicit
+# github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0
+## explicit
+# github.com/miekg/dns v1.1.55
+## explicit
+# github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b
+## explicit
+# github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc
+## explicit
+# github.com/mr-tron/base58 v1.2.0
+## explicit
+# github.com/multiformats/go-base32 v0.1.0
+## explicit
+# github.com/multiformats/go-base36 v0.2.0
+## explicit
+# github.com/multiformats/go-multiaddr v0.12.0
+## explicit
+# github.com/multiformats/go-multiaddr-dns v0.3.1
+## explicit
+# github.com/multiformats/go-multiaddr-fmt v0.1.0
+## explicit
+# github.com/multiformats/go-multibase v0.2.0
+## explicit
+# github.com/multiformats/go-multicodec v0.9.0
+## explicit
+# github.com/multiformats/go-multihash v0.2.3
+## explicit
+# github.com/multiformats/go-multistream v0.4.1
+## explicit
+# github.com/multiformats/go-varint v0.0.7
+## explicit
+# github.com/opentracing/opentracing-go v1.2.0
+## explicit
+# github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58
+## explicit
+# github.com/pelletier/go-toml/v2 v2.1.1
+## explicit
+# github.com/polydawn/refmt v0.89.0
+## explicit
+# github.com/quic-go/qpack v0.4.0
+## explicit
+# github.com/quic-go/qtls-go1-20 v0.3.3
+## explicit
+# github.com/quic-go/quic-go v0.38.0
+## explicit
+# github.com/quic-go/webtransport-go v0.5.3
+## explicit
+# github.com/raulk/go-watchdog v1.3.0
+## explicit
+# github.com/slok/go-http-metrics v0.10.0
+## explicit
+# github.com/spaolacci/murmur3 v1.1.0
+## explicit
+# github.com/spf13/afero v1.11.0
+## explicit
+# github.com/syndtr/goleveldb v1.0.0
+## explicit
+# github.com/twitchyliquid64/golang-asm v0.15.1
+## explicit
+# github.com/ugorji/go/codec v1.2.11
+## explicit
+# github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1
+## explicit
+# github.com/xenitab/pkg/channels v0.0.2
+## explicit
+# github.com/xenitab/pkg/gin v0.0.9
+## explicit
+# go.uber.org/dig v1.17.0
+## explicit
+# go.uber.org/fx v1.20.0
+## explicit
+# golang.org/x/arch v0.3.0
+## explicit
+# gonum.org/v1/gonum v0.13.0
+## explicit
+# lukechampine.com/blake3 v1.2.1
+## explicit
+# cloud.google.com/go/compute v1.23.3
+## explicit
+# cloud.google.com/go/compute/metadata v0.2.3
+## explicit
+# github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24
+## explicit
+# github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0
+## explicit
+# github.com/Azure/azure-sdk-for-go v68.0.0+incompatible
+## explicit
+# github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1
+## explicit
+# github.com/Azure/go-autorest v14.2.0+incompatible
+## explicit
+# github.com/Azure/go-autorest/autorest v0.11.29
+## explicit
+# github.com/Azure/go-autorest/autorest/adal v0.9.23
+## explicit
+# github.com/Azure/go-autorest/autorest/date v0.3.0
+## explicit
+# github.com/Azure/go-autorest/autorest/mocks v0.4.2
+## explicit
+# github.com/Azure/go-autorest/autorest/to v0.4.0
+## explicit
+# github.com/Azure/go-autorest/autorest/validation v0.3.1
+## explicit
+# github.com/Azure/go-autorest/logger v0.2.1
+## explicit
+# github.com/Azure/go-autorest/tracing v0.6.0
+## explicit
+# github.com/GoogleCloudPlatform/k8s-cloud-provider v1.18.1-0.20220218231025-f11817397a1b
+## explicit
+# github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab
+## explicit
+# github.com/MakeNowJust/heredoc v1.0.0
+## explicit
+# github.com/Microsoft/go-winio v0.6.1
+## explicit
+# github.com/NYTimes/gziphandler v1.1.1
+## explicit
+# github.com/Rican7/retry v0.1.0
+## explicit
+# github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df
+## explicit
+# github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e
+## explicit
+# github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a
+## explicit
+# github.com/avast/retry-go/v4 v4.3.2
+## explicit
+# github.com/beorn7/perks v1.0.1
+## explicit
+# github.com/blang/semver v3.5.1+incompatible
+## explicit
+# github.com/bronze1man/goStrongswanVici v0.0.0-20221114103242-3f6dc524986c
+## explicit
+# github.com/canonical/go-dqlite v1.5.1
+## explicit
+# github.com/cenkalti/backoff/v4 v4.2.1
+## explicit
+# github.com/cespare/xxhash/v2 v2.2.0
+## explicit
+# github.com/chai2010/gettext-go v1.0.2
+## explicit
+# github.com/checkpoint-restore/go-criu/v5 v5.3.0
+## explicit
+# github.com/cilium/ebpf v0.9.1
+## explicit
+# github.com/container-orchestrated-devices/container-device-interface v0.5.4
+## explicit
+# github.com/container-storage-interface/spec v1.8.0
+## explicit
+# github.com/containerd/btrfs/v2 v2.0.0
+## explicit
+# github.com/containerd/cgroups v1.1.0
+## explicit
+# github.com/containerd/console v1.0.3
+## explicit
+# github.com/containerd/continuity v0.4.2
+## explicit
+# github.com/containerd/fifo v1.1.0
+## explicit
+# github.com/containerd/go-cni v1.1.9
+## explicit
+# github.com/containerd/go-runc v1.0.0
+## explicit
+# github.com/containerd/imgcrypt v1.1.7
+## explicit
+# github.com/containerd/log v0.1.0
+## explicit
+# github.com/containerd/nri v0.4.0
+## explicit
+# github.com/containerd/stargz-snapshotter/estargz v0.14.3
+## explicit
+# github.com/containerd/ttrpc v1.2.2
+## explicit
+# github.com/containerd/typeurl v1.0.2
+## explicit
+# github.com/containerd/typeurl/v2 v2.1.1
+## explicit
+# github.com/containernetworking/cni v1.1.2
+## explicit
+# github.com/containernetworking/plugins v1.3.0
+## explicit
+# github.com/containers/ocicrypt v1.1.6
+## explicit
+# github.com/coreos/go-oidc v2.2.1+incompatible
+## explicit
+# github.com/coreos/go-semver v0.3.1
+## explicit
+# github.com/coreos/go-systemd/v22 v22.5.0
+## explicit
+# github.com/cpuguy83/go-md2man/v2 v2.0.3
+## explicit
+# github.com/cyphar/filepath-securejoin v0.2.4
+## explicit
+# github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
+## explicit
+# github.com/daviddengcn/go-colortext v1.0.0
+## explicit
+# github.com/docker/cli v24.0.5+incompatible
+## explicit
+# github.com/docker/distribution v2.8.3+incompatible
+## explicit
+# github.com/docker/docker-credential-helpers v0.7.0
+## explicit
+# github.com/docker/go-connections v0.5.0
+## explicit
+# github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c
+## explicit
+# github.com/docker/go-metrics v0.0.1
+## explicit
+# github.com/docker/go-units v0.5.0
+## explicit
+# github.com/dustin/go-humanize v1.0.1
+## explicit
+# github.com/emicklei/go-restful v2.16.0+incompatible
+## explicit
+# github.com/emicklei/go-restful/v3 v3.11.0
+## explicit
+# github.com/euank/go-kmsg-parser v2.0.0+incompatible
+## explicit
+# github.com/evanphx/json-patch v5.6.0+incompatible
+## explicit
+# github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d
+## explicit
+# github.com/fatih/camelcase v1.0.0
+## explicit
+# github.com/felixge/httpsnoop v1.0.4
+## explicit
+# github.com/fsnotify/fsnotify v1.7.0
+## explicit
+# github.com/fvbommel/sortorder v1.1.0
+## explicit
+# github.com/ghodss/yaml v1.0.0
+## explicit
+# github.com/go-errors/errors v1.4.2
+## explicit
+# github.com/go-openapi/jsonpointer v0.20.0
+## explicit
+# github.com/go-openapi/jsonreference v0.20.2
+## explicit
+# github.com/go-openapi/swag v0.22.4
+## explicit
+# github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572
+## explicit
+# github.com/godbus/dbus/v5 v5.1.0
+## explicit
+# github.com/gofrs/flock v0.8.1
+## explicit
+# github.com/gofrs/uuid v4.4.0+incompatible
+## explicit
+# github.com/gogo/protobuf v1.3.2
+## explicit
+# github.com/golang-jwt/jwt/v4 v4.5.0
+## explicit
+# github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da
+## explicit
+# github.com/golang/protobuf v1.5.3
+## explicit
+# github.com/google/btree v1.1.2
+## explicit
+# github.com/google/cel-go v0.16.1
+## explicit
+# github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49
+## explicit
+# github.com/google/go-cmp v0.6.0
+## explicit
+# github.com/google/go-containerregistry v0.14.0
+## explicit
+# github.com/google/gofuzz v1.2.0
+## explicit
+# github.com/google/pprof v0.0.0-20230821062121-407c9e7a662f
+## explicit
+# github.com/google/s2a-go v0.1.7
+## explicit
+# github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510
+## explicit
+# github.com/googleapis/enterprise-certificate-proxy v0.3.2
+## explicit
+# github.com/googleapis/gax-go/v2 v2.12.0
+## explicit
+# github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7
+## explicit
+# github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
+## explicit
+# github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
+## explicit
+# github.com/grpc-ecosystem/grpc-gateway v1.16.0
+## explicit
+# github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0
+## explicit
+# github.com/hanwen/go-fuse/v2 v2.3.0
+## explicit
+# github.com/hashicorp/errwrap v1.1.0
+## explicit
+# github.com/hashicorp/go-cleanhttp v0.5.2
+## explicit
+# github.com/hashicorp/go-multierror v1.1.1
+## explicit
+# github.com/hashicorp/go-retryablehttp v0.7.4
+## explicit
+# github.com/hashicorp/go-version v1.6.0
+## explicit
+# github.com/imdario/mergo v0.3.16
+## explicit
+# github.com/inconshreveable/mousetrap v1.1.0
+## explicit
+# github.com/intel/goresctrl v0.3.0
+## explicit
+# github.com/jackc/pgerrcode v0.0.0-20220416144525-469b46aa5efa
+## explicit
+# github.com/jackc/pgpassfile v1.0.0
+## explicit
+# github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a
+## explicit
+# github.com/jackc/pgx/v5 v5.4.2
+## explicit
+# github.com/jonboulle/clockwork v0.4.0
+## explicit
+# github.com/josharian/intern v1.0.0
+## explicit
+# github.com/josharian/native v1.1.0
+## explicit
+# github.com/karrick/godirwalk v1.17.0
+## explicit
+# github.com/klauspost/cpuid/v2 v2.2.5
+## explicit
+# github.com/kylelemons/godebug v1.1.0
+## explicit
+# github.com/libopenstorage/openstorage v1.0.0
+## explicit
+# github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de
+## explicit
+# github.com/lithammer/dedent v1.1.0
+## explicit
+# github.com/mailru/easyjson v0.7.7
+## explicit
+# github.com/mdlayher/genetlink v1.3.2
+## explicit
+# github.com/mdlayher/netlink v1.7.2
+## explicit
+# github.com/mdlayher/socket v0.4.1
+## explicit
+# github.com/miekg/pkcs11 v1.1.1
+## explicit
+# github.com/minio/highwayhash v1.0.2
+## explicit
+# github.com/minio/md5-simd v1.1.2
+## explicit
+# github.com/minio/sha256-simd v1.0.1
+## explicit
+# github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible
+## explicit
+# github.com/mistifyio/go-zfs/v3 v3.0.1
+## explicit
+# github.com/mitchellh/go-homedir v1.1.0
+## explicit
+# github.com/mitchellh/go-wordwrap v1.0.1
+## explicit
+# github.com/moby/ipvs v1.1.0
+## explicit
+# github.com/moby/locker v1.0.1
+## explicit
+# github.com/moby/spdystream v0.2.0
+## explicit
+# github.com/moby/sys/mountinfo v0.6.2
+## explicit
+# github.com/moby/sys/sequential v0.5.0
+## explicit
+# github.com/moby/sys/signal v0.7.0
+## explicit
+# github.com/moby/sys/symlink v0.2.0
+## explicit
+# github.com/moby/term v0.0.0-20221205130635-1aeaba878587
+## explicit
+# github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
+## explicit
+# github.com/modern-go/reflect2 v1.0.2
+## explicit
+# github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826
+## explicit
+# github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00
+## explicit
+# github.com/morikuni/aec v1.0.0
+## explicit
+# github.com/mrunalp/fileutils v0.5.1
+## explicit
+# github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822
+## explicit
+# github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f
+## explicit
+# github.com/nats-io/jsm.go v0.0.31-0.20220317133147-fe318f464eee
+## explicit
+# github.com/nats-io/jwt/v2 v2.5.3
+## explicit
+# github.com/nats-io/nats-server/v2 v2.10.5
+## explicit
+# github.com/nats-io/nats.go v1.31.0
+## explicit
+# github.com/nats-io/nkeys v0.4.6
+## explicit
+# github.com/nats-io/nuid v1.0.1
+## explicit
+# github.com/opencontainers/go-digest v1.0.0
+## explicit
+# github.com/opencontainers/image-spec v1.1.0-rc5
+## explicit
+# github.com/opencontainers/runtime-spec v1.1.0
+## explicit
+# github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626
+## explicit
+# github.com/pelletier/go-toml v1.9.5
+## explicit
+# github.com/peterbourgon/diskv v2.0.1+incompatible
+## explicit
+# github.com/pierrec/lz4 v2.6.0+incompatible
+## explicit
+# github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2
+## explicit
+# github.com/pquerna/cachecontrol v0.1.0
+## explicit
+# github.com/prometheus/client_golang v1.18.0
+## explicit
+# github.com/prometheus/client_model v0.5.0
+## explicit
+# github.com/prometheus/common v0.45.0
+## explicit
+# github.com/prometheus/procfs v0.12.0
+## explicit
+# github.com/rs/xid v1.5.0
+## explicit
+# github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021
+## explicit
+# github.com/russross/blackfriday/v2 v2.1.0
+## explicit
+# github.com/seccomp/libseccomp-golang v0.10.0
+## explicit
+# github.com/shengdoushi/base58 v1.0.0
+## explicit
+# github.com/soheilhy/cmux v0.1.5
+## explicit
+# github.com/spf13/cobra v1.8.0
+## explicit
+# github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980
+## explicit
+# github.com/stoewer/go-strcase v1.2.0
+## explicit
+# github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635
+## explicit
+# github.com/tchap/go-patricia/v2 v2.3.1
+## explicit
+# github.com/tidwall/btree v1.6.0
+## explicit
+# github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75
+## explicit
+# github.com/urfave/cli/v2 v2.23.5
+## explicit
+# github.com/vbatts/tar-split v0.11.5
+## explicit
+# github.com/vishvananda/netns v0.0.4
+## explicit
+# github.com/vmware/govmomi v0.30.6
+## explicit
+# github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510
+## explicit
+# github.com/xlab/treeprint v1.2.0
+## explicit
+# github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673
+## explicit
+# go.etcd.io/bbolt v1.3.8
+## explicit
+# go.etcd.io/etcd/client/v2 v2.305.10
+## explicit
+# go.etcd.io/etcd/pkg/v3 v3.5.10
+## explicit
+# go.etcd.io/etcd/raft/v3 v3.5.10
+## explicit
+# go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1
+## explicit
+# go.opencensus.io v0.24.0
+## explicit
+# go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful v0.42.0
+## explicit
+# go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1
+## explicit
+# go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1
+## explicit
+# go.opentelemetry.io/otel v1.21.0
+## explicit
+# go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0
+## explicit
+# go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0
+## explicit
+# go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0
+## explicit
+# go.opentelemetry.io/otel/metric v1.21.0
+## explicit
+# go.opentelemetry.io/otel/sdk v1.21.0
+## explicit
+# go.opentelemetry.io/otel/trace v1.21.0
+## explicit
+# go.opentelemetry.io/proto/otlp v1.0.0
+## explicit
+# go.starlark.net v0.0.0-20230525235612-a134d8f9ddca
+## explicit
+# go.uber.org/multierr v1.11.0
+## explicit
+# golang.org/x/exp v0.0.0-20231006140011-7918f672742d
+## explicit
+# golang.org/x/mod v0.14.0
+## explicit
+# golang.org/x/oauth2 v0.15.0
+## explicit
+# golang.org/x/term v0.15.0
+## explicit
+# golang.org/x/text v0.14.0
+## explicit
+# golang.org/x/time v0.5.0
+## explicit
+# golang.org/x/tools v0.16.1
+## explicit
+# golang.zx2c4.com/wireguard v0.0.0-20230325221338-052af4a8072b
+## explicit
+# golang.zx2c4.com/wireguard/wgctrl v0.0.0-20230429144221-925a1e7659e6
+## explicit
+# google.golang.org/api v0.152.0
+## explicit
+# google.golang.org/appengine v1.6.8
+## explicit
+# google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17
+## explicit
+# google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17
+## explicit
+# google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f
+## explicit
+# google.golang.org/protobuf v1.31.0
+## explicit
+# gopkg.in/gcfg.v1 v1.2.3
+## explicit
+# gopkg.in/inf.v0 v0.9.1
+## explicit
+# gopkg.in/ini.v1 v1.67.0
+## explicit
+# gopkg.in/natefinch/lumberjack.v2 v2.2.1
+## explicit
+# gopkg.in/square/go-jose.v2 v2.6.0
+## explicit
+# gopkg.in/warnings.v0 v0.1.2
+## explicit
+# gopkg.in/yaml.v3 v3.0.1
+## explicit
+# k8s.io/apiextensions-apiserver v0.28.7
+## explicit
+# k8s.io/cli-runtime v0.22.2
+## explicit
+# k8s.io/code-generator v0.28.7
+## explicit
+# k8s.io/controller-manager v0.25.4
+## explicit
+# k8s.io/csi-translation-lib v0.0.0
+## explicit
+# k8s.io/dynamic-resource-allocation v0.0.0
+## explicit
+# k8s.io/endpointslice v0.0.0
+## explicit
+# k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01
+## explicit
+# k8s.io/kms v0.0.0
+## explicit
+# k8s.io/kube-aggregator v0.28.7
+## explicit
+# k8s.io/kube-controller-manager v0.0.0
+## explicit
+# k8s.io/kube-openapi v0.0.0-20230928205116-a78145627833
+## explicit
+# k8s.io/kube-scheduler v0.0.0
+## explicit
+# k8s.io/kubelet v0.28.7
+## explicit
+# k8s.io/legacy-cloud-providers v0.0.0
+## explicit
+# k8s.io/metrics v0.0.0
+## explicit
+# k8s.io/mount-utils v0.28.7
+## explicit
+# k8s.io/pod-security-admission v0.0.0
+## explicit
+# sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.2
+## explicit
+# sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd
+## explicit
+# sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3
+## explicit
+# sigs.k8s.io/kustomize/kustomize/v5 v5.0.4-0.20230601165947-6ce0bf390ce3
+## explicit
+# sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3
+## explicit
+# sigs.k8s.io/structured-merge-diff/v4 v4.3.0
+## explicit
+# github.com/Microsoft/hcsshim => github.com/Microsoft/hcsshim v0.11.0
+# github.com/Mirantis/cri-dockerd => github.com/k3s-io/cri-dockerd v0.3.9-k3s2
+# github.com/cloudnativelabs/kube-router/v2 => github.com/k3s-io/kube-router/v2 v2.0.1
+# github.com/containerd/containerd => github.com/k3s-io/containerd v1.7.11-k3s2
+# github.com/coreos/go-systemd => github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e
+# github.com/docker/distribution => github.com/docker/distribution v2.8.2+incompatible
+# github.com/docker/docker => github.com/docker/docker v24.0.0-rc.2.0.20230801142700-69c9adb7d386+incompatible
+# github.com/docker/libnetwork => github.com/docker/libnetwork v0.8.0-dev.2.0.20190624125649-f0e46a78ea34
+# github.com/emicklei/go-restful/v3 => github.com/emicklei/go-restful/v3 v3.9.0
+# github.com/golang/protobuf => github.com/golang/protobuf v1.5.3
+# github.com/googleapis/gax-go/v2 => github.com/googleapis/gax-go/v2 v2.12.0
+# github.com/juju/errors => github.com/k3s-io/nocode v0.0.0-20200630202308-cb097102c09f
+# github.com/kubernetes-sigs/cri-tools => github.com/k3s-io/cri-tools v1.26.0-rc.0-k3s1
+# github.com/open-policy-agent/opa => github.com/open-policy-agent/opa v0.59.0
+# github.com/opencontainers/runc => github.com/k3s-io/runc v1.1.12-k3s1
+# github.com/opencontainers/runtime-spec => github.com/opencontainers/runtime-spec v1.0.3-0.20220909204839-494a5a6aca78
+# github.com/opencontainers/selinux => github.com/opencontainers/selinux v1.10.1
+# github.com/quic-go/qtls-go1-20 => github.com/quic-go/qtls-go1-20 v0.3.3
+# github.com/quic-go/quic-go => github.com/quic-go/quic-go v0.38.2
+# github.com/rancher/wrangler => github.com/rancher/wrangler v1.1.1-0.20230818201331-3604a6be798d
+# github.com/ugorji/go => github.com/ugorji/go v1.2.11
+# github.com/xenitab/spegel => github.com/k3s-io/spegel v0.0.17-0.20240109004735-9466a5529330
+# go.etcd.io/etcd/api/v3 => github.com/k3s-io/etcd/api/v3 v3.5.9-k3s1
+# go.etcd.io/etcd/client/pkg/v3 => github.com/k3s-io/etcd/client/pkg/v3 v3.5.9-k3s1
+# go.etcd.io/etcd/client/v2 => github.com/k3s-io/etcd/client/v2 v2.305.9-k3s1
+# go.etcd.io/etcd/client/v3 => github.com/k3s-io/etcd/client/v3 v3.5.9-k3s1
+# go.etcd.io/etcd/etcdutl/v3 => github.com/k3s-io/etcd/etcdutl/v3 v3.5.9-k3s1
+# go.etcd.io/etcd/pkg/v3 => github.com/k3s-io/etcd/pkg/v3 v3.5.9-k3s1
+# go.etcd.io/etcd/raft/v3 => github.com/k3s-io/etcd/raft/v3 v3.5.9-k3s1
+# go.etcd.io/etcd/server/v3 => github.com/k3s-io/etcd/server/v3 v3.5.9-k3s1
+# go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful => go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful v0.35.0
+# go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc => go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0
+# go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp => go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.35.1
+# go.opentelemetry.io/contrib/propagators/b3 => go.opentelemetry.io/contrib/propagators/b3 v1.13.0
+# go.opentelemetry.io/otel => go.opentelemetry.io/otel v1.13.0
+# go.opentelemetry.io/otel/exporters/otlp/internal/retry => go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.13.0
+# go.opentelemetry.io/otel/exporters/otlp/otlpmetric => go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.32.1
+# go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc => go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.32.1
+# go.opentelemetry.io/otel/exporters/otlp/otlptrace => go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.13.0
+# go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc => go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.13.0
+# go.opentelemetry.io/otel/metric => go.opentelemetry.io/otel/metric v0.32.1
+# go.opentelemetry.io/otel/sdk => go.opentelemetry.io/otel/sdk v1.13.0
+# go.opentelemetry.io/otel/trace => go.opentelemetry.io/otel/trace v1.13.0
+# go.opentelemetry.io/proto/otlp => go.opentelemetry.io/proto/otlp v0.19.0
+# golang.org/x/crypto => golang.org/x/crypto v0.14.0
+# golang.org/x/net => golang.org/x/net v0.17.0
+# golang.org/x/sys => golang.org/x/sys v0.13.0
+# google.golang.org/genproto => google.golang.org/genproto v0.0.0-20230525234035-dd9d682886f9
+# google.golang.org/grpc => google.golang.org/grpc v1.58.3
+# gopkg.in/square/go-jose.v2 => gopkg.in/square/go-jose.v2 v2.6.0
+# k8s.io/api => github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.28.7-k3s1
+# k8s.io/apiextensions-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.28.7-k3s1
+# k8s.io/apimachinery => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.28.7-k3s1
+# k8s.io/apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.28.7-k3s1
+# k8s.io/cli-runtime => github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.28.7-k3s1
+# k8s.io/client-go => github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.28.7-k3s1
+# k8s.io/cloud-provider => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.28.7-k3s1
+# k8s.io/cluster-bootstrap => github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.28.7-k3s1
+# k8s.io/code-generator => github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.28.7-k3s1
+# k8s.io/component-base => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.28.7-k3s1
+# k8s.io/component-helpers => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.28.7-k3s1
+# k8s.io/controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.28.7-k3s1
+# k8s.io/cri-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.28.7-k3s1
+# k8s.io/csi-translation-lib => github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.28.7-k3s1
+# k8s.io/dynamic-resource-allocation => github.com/k3s-io/kubernetes/staging/src/k8s.io/dynamic-resource-allocation v1.28.7-k3s1
+# k8s.io/endpointslice => github.com/k3s-io/kubernetes/staging/src/k8s.io/endpointslice v1.28.7-k3s1
+# k8s.io/klog => github.com/k3s-io/klog v1.0.0-k3s2
+# k8s.io/klog/v2 => github.com/k3s-io/klog/v2 v2.100.1-k3s1
+# k8s.io/kms => github.com/k3s-io/kubernetes/staging/src/k8s.io/kms v1.28.7-k3s1
+# k8s.io/kube-aggregator => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.28.7-k3s1
+# k8s.io/kube-controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.28.7-k3s1
+# k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9
+# k8s.io/kube-proxy => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.28.7-k3s1
+# k8s.io/kube-scheduler => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.28.7-k3s1
+# k8s.io/kubectl => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.28.7-k3s1
+# k8s.io/kubelet => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.28.7-k3s1
+# k8s.io/kubernetes => github.com/k3s-io/kubernetes v1.28.7-k3s1
+# k8s.io/legacy-cloud-providers => github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.28.7-k3s1
+# k8s.io/metrics => github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.28.7-k3s1
+# k8s.io/mount-utils => github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.28.7-k3s1
+# k8s.io/node-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/node-api v1.28.7-k3s1
+# k8s.io/pod-security-admission => github.com/k3s-io/kubernetes/staging/src/k8s.io/pod-security-admission v1.28.7-k3s1
+# k8s.io/sample-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.28.7-k3s1
+# k8s.io/sample-cli-plugin => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-cli-plugin v1.28.7-k3s1
+# k8s.io/sample-controller => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-controller v1.28.7-k3s1
+# mvdan.cc/unparam => mvdan.cc/unparam v0.0.0-20210104141923-aac4ce9116a7
diff --git a/recipes-containers/k3s/k3s_git.bb b/recipes-containers/k3s/k3s_git.bb
index 20345f26..b88b8349 100644
--- a/recipes-containers/k3s/k3s_git.bb
+++ b/recipes-containers/k3s/k3s_git.bb
@@ -4,18 +4,24 @@ HOMEPAGE = "https://k3s.io/"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${S}/src/import/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
-SRC_URI = "git://github.com/rancher/k3s.git;branch=release-1.20;name=k3s \
+SRC_URI = "git://github.com/rancher/k3s.git;branch=release-1.28;name=k3s;protocol=https \
file://k3s.service \
file://k3s-agent.service \
file://k3s-agent \
file://k3s-clean \
file://cni-containerd-net.conf \
file://0001-Finding-host-local-in-usr-libexec.patch;patchdir=src/import \
+ file://k3s-killall.sh \
+ file://modules.txt \
"
+
SRC_URI[k3s.md5sum] = "363d3a08dc0b72ba6e6577964f6e94a5"
-SRCREV_k3s = "8d0432824a9fd9474b67138b7630c33f285d332f"
+SRCREV_k3s = "051b14b248655896fdfd7ba6c93db6182cde7431"
+
+SRCREV_FORMAT = "k3s_fuse"
+PV = "v1.28.7+k3s1+git${SRCREV_k3s}"
-PV = "v1.20.6+k3s1"
+include src_uri.inc
CNI_NETWORKING_FILES ?= "${WORKDIR}/cni-containerd-net.conf"
@@ -24,11 +30,13 @@ inherit goarch
inherit systemd
inherit cni_networking
+COMPATIBLE_HOST = "^(?!mips).*"
+
PACKAGECONFIG = ""
PACKAGECONFIG[upx] = ",,upx-native"
GO_IMPORT = "import"
-GO_BUILD_LDFLAGS = "-X github.com/rancher/k3s/pkg/version.Version=${PV} \
- -X github.com/rancher/k3s/pkg/version.GitCommit=${@d.getVar('SRCREV_k3s', d, 1)[:8]} \
+GO_BUILD_LDFLAGS = "-X github.com/k3s-io/k3s/pkg/version.Version=${PV} \
+ -X github.com/k3s-io/k3s/pkg/version.GitCommit=${@d.getVar('SRCREV_k3s', d, 1)[:8]} \
-w -s \
"
BIN_PREFIX ?= "${exec_prefix}/local"
@@ -36,15 +44,40 @@ BIN_PREFIX ?= "${exec_prefix}/local"
inherit features_check
REQUIRED_DISTRO_FEATURES ?= "seccomp"
+DEPENDS += "rsync-native"
+
+include relocation.inc
+
do_compile() {
export GOPATH="${S}/src/import/.gopath:${S}/src/import/vendor:${STAGING_DIR_TARGET}/${prefix}/local/go"
export CGO_ENABLED="1"
export GOFLAGS="-mod=vendor"
- TAGS="static_build ctrd no_btrfs netcgo osusergo providerless"
+ # TAGS="static_build ctrd no_btrfs netcgo osusergo providerless"
+ TAGS="static_build netcgo osusergo providerless"
cd ${S}/src/import
- ${GO} build -tags "$TAGS" -ldflags "${GO_BUILD_LDFLAGS} -w -s" -o ./dist/artifacts/k3s ./cmd/server/main.go
+
+ if ! [ -e vendor/.noclobber ]; then
+ ln -sf vendor.copy vendor
+ else
+ echo "[INFO]: no clobber on vendor"
+ fi
+
+ # these are bad symlinks, go validates them and breaks the build if they are present
+ rm -f vendor/go.etcd.io/etcd/client/v*/example_*
+ rm -f vendor/go.etcd.io/etcd/client/v*/concurrency/example_*.go
+
+ # Note: if no_brtfs is used in the tags, we'll violate build
+ # constraints, and the following files need to have them
+ # removed for the build to continue:
+ #
+ # vendor/github.com/containerd/containerd/snapshots/btrfs/plugin/*.go
+
+ cp ${WORKDIR}/modules.txt vendor/
+
+ VERSION_GOLANG="$(go version | cut -d" " -f3)"
+ ${GO} build -trimpath -tags "$TAGS" -ldflags "-X github.com/k3s-io/k3s/pkg/version.UpstreamGolang=$VERSION_GOLANG ${GO_BUILD_LDFLAGS} -w -s" -o ./dist/artifacts/k3s ./cmd/server/main.go
# Use UPX if it is enabled (and thus exists) to compress binary
if command -v upx > /dev/null 2>&1; then
@@ -60,6 +93,7 @@ do_install() {
# ln -sr "${D}/${BIN_PREFIX}/bin/k3s" "${D}${BIN_PREFIX}/bin/ctr"
ln -sr "${D}/${BIN_PREFIX}/bin/k3s" "${D}${BIN_PREFIX}/bin/kubectl"
install -m 755 "${WORKDIR}/k3s-clean" "${D}${BIN_PREFIX}/bin"
+ install -m 755 "${WORKDIR}/k3s-killall.sh" "${D}${BIN_PREFIX}/bin"
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
install -D -m 0644 "${WORKDIR}/k3s.service" "${D}${systemd_system_unitdir}/k3s.service"
@@ -67,23 +101,26 @@ do_install() {
sed -i "s#\(Exec\)\(.*\)=\(.*\)\(k3s\)#\1\2=${BIN_PREFIX}/bin/\4#g" "${D}${systemd_system_unitdir}/k3s.service" "${D}${systemd_system_unitdir}/k3s-agent.service"
install -m 755 "${WORKDIR}/k3s-agent" "${D}${BIN_PREFIX}/bin"
fi
+
+ mkdir -p ${D}${datadir}/k3s/
+ install -m 0755 ${S}/src/import/contrib/util/check-config.sh ${D}${datadir}/k3s/
}
PACKAGES =+ "${PN}-server ${PN}-agent"
SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${PN}-server ${PN}-agent','',d)}"
-SYSTEMD_SERVICE_${PN}-server = "${@bb.utils.contains('DISTRO_FEATURES','systemd','k3s.service','',d)}"
-SYSTEMD_SERVICE_${PN}-agent = "${@bb.utils.contains('DISTRO_FEATURES','systemd','k3s-agent.service','',d)}"
-SYSTEMD_AUTO_ENABLE_${PN}-agent = "disable"
+SYSTEMD_SERVICE:${PN}-server = "${@bb.utils.contains('DISTRO_FEATURES','systemd','k3s.service','',d)}"
+SYSTEMD_SERVICE:${PN}-agent = "${@bb.utils.contains('DISTRO_FEATURES','systemd','k3s-agent.service','',d)}"
+SYSTEMD_AUTO_ENABLE:${PN}-agent = "disable"
-FILES_${PN}-agent = "${BIN_PREFIX}/bin/k3s-agent"
-FILES_${PN} += "${BIN_PREFIX}/bin/*"
+FILES:${PN}-agent = "${BIN_PREFIX}/bin/k3s-agent"
+FILES:${PN} += "${BIN_PREFIX}/bin/*"
-RDEPENDS_${PN} = "k3s-cni conntrack-tools coreutils findutils iptables iproute2 ipset virtual/containerd"
-RDEPENDS_${PN}-server = "${PN}"
-RDEPENDS_${PN}-agent = "${PN}"
+RDEPENDS:${PN} = "k3s-cni conntrack-tools coreutils findutils iptables iproute2 ipset virtual-containerd"
+RDEPENDS:${PN}-server = "${PN}"
+RDEPENDS:${PN}-agent = "${PN}"
-RRECOMMENDS_${PN} = "\
+RRECOMMENDS:${PN} = "\
kernel-module-xt-addrtype \
kernel-module-xt-nat \
kernel-module-xt-multiport \
@@ -93,9 +130,22 @@ RRECOMMENDS_${PN} = "\
kernel-module-xt-connmark \
kernel-module-vxlan \
kernel-module-xt-masquerade \
+ kernel-module-xt-statistic \
+ kernel-module-xt-physdev \
+ kernel-module-xt-nflog \
+ kernel-module-xt-limit \
+ kernel-module-nfnetlink-log \
+ kernel-module-ip-vs \
+ kernel-module-ip-vs-rr \
+ kernel-module-ip-vs-sh \
+ kernel-module-ip-vs-wrr \
"
-RCONFLICTS_${PN} = "kubectl"
+RCONFLICTS:${PN} = "kubectl"
+
+PACKAGES =+ "${PN}-contrib"
+FILES:${PN}-contrib += "${datadir}/k3s/check-config.sh"
+RDEPENDS:${PN}-contrib += "bash"
INHIBIT_PACKAGE_STRIP = "1"
-INSANE_SKIP_${PN} += "ldflags already-stripped"
+INSANE_SKIP:${PN} += "ldflags already-stripped textrel"
diff --git a/recipes-containers/k3s/relocation.inc b/recipes-containers/k3s/relocation.inc
new file mode 100644
index 00000000..024f2605
--- /dev/null
+++ b/recipes-containers/k3s/relocation.inc
@@ -0,0 +1,447 @@
+export sites="k8s.io/utils:k8s.io/utils:force \
+ k8s.io/gengo:k8s.io/gengo:force \
+ go.uber.org/fx:go.uber.org/fx:force \
+ go.uber.org/zap:go.uber.org/zap:force \
+ go.uber.org/dig:go.uber.org/dig:force \
+ go.starlark.net:go.starlark.net:force \
+ gopkg.in/inf.v0:gopkg.in/inf.v0:force \
+ gopkg.in/ini.v1:gopkg.in/ini.v1:force \
+ golang.org/x/net:golang.org/x/net:force \
+ golang.org/x/sys:golang.org/x/sys:force \
+ gopkg.in/yaml.v2:gopkg.in/yaml.v2:force \
+ inet.af/tcpproxy:inet.af/tcpproxy:force \
+ sigs.k8s.io/yaml:sigs.k8s.io/yaml:force \
+ go.etcd.io/bbolt:go.etcd.io/bbolt:force \
+ go.opencensus.io:go.opencensus.io:force \
+ golang.org/x/exp:golang.org/x/exp:force \
+ golang.org/x/mod:golang.org/x/mod:force \
+ gopkg.in/gcfg.v1:gopkg.in/gcfg.v1:force \
+ gopkg.in/yaml.v3:gopkg.in/yaml.v3:force \
+ sigs.k8s.io/json:sigs.k8s.io/json:force \
+ github.com/lib/pq:github.com/lib/pq:force \
+ golang.org/x/sync:golang.org/x/sync:force \
+ golang.org/x/arch:golang.org/x/arch:force \
+ github.com/rs/xid:github.com/rs/xid:force \
+ golang.org/x/term:golang.org/x/term:force \
+ golang.org/x/text:golang.org/x/text:force \
+ golang.org/x/time:golang.org/x/time:force \
+ gonum.org/v1/gonum:gonum.org/v1/gonum:force \
+ golang.org/x/tools:golang.org/x/tools:force \
+ golang.org/x/crypto:golang.org/x/crypto:force \
+ golang.org/x/oauth2:golang.org/x/oauth2:force \
+ k8s.io/kube-openapi:k8s.io/kube-openapi:force \
+ k8s.io/klog/v2:github.com/k3s-io/klog/v2:force \
+ github.com/ipfs/boxo:github.com/ipfs/boxo:force \
+ github.com/miekg/dns:github.com/miekg/dns:force \
+ github.com/moby/ipvs:github.com/moby/ipvs:force \
+ github.com/moby/term:github.com/moby/term:force \
+ go.mozilla.org/pkcs7:go.mozilla.org/pkcs7:force \
+ go.uber.org/multierr:go.uber.org/multierr:force \
+ gopkg.in/warnings.v0:gopkg.in/warnings.v0:force \
+ github.com/pkg/errors:github.com/pkg/errors:force \
+ github.com/urfave/cli:github.com/urfave/cli:force \
+ github.com/docker/cli:github.com/docker/cli:force \
+ github.com/gofrs/uuid:github.com/gofrs/uuid:force \
+ google.golang.org/api:google.golang.org/api:force \
+ github.com/golang/mock:github.com/golang/mock:force \
+ github.com/google/uuid:github.com/google/uuid:force \
+ github.com/gorilla/mux:github.com/gorilla/mux:force \
+ github.com/k3s-io/kine:github.com/k3s-io/kine:force \
+ github.com/onsi/gomega:github.com/onsi/gomega:force \
+ github.com/spf13/pflag:github.com/spf13/pflag:force \
+ google.golang.org/grpc:google.golang.org/grpc:force \
+ github.com/flynn/noise:github.com/flynn/noise:force \
+ github.com/huin/goupnp:github.com/huin/goupnp:force \
+ github.com/ipfs/go-cid:github.com/ipfs/go-cid:force \
+ github.com/ipfs/go-log:github.com/ipfs/go-log:force \
+ github.com/spf13/afero:github.com/spf13/afero:force \
+ github.com/cilium/ebpf:github.com/cilium/ebpf:force \
+ github.com/ghodss/yaml:github.com/ghodss/yaml:force \
+ github.com/gofrs/flock:github.com/gofrs/flock:force \
+ github.com/moby/locker:github.com/moby/locker:force \
+ github.com/pierrec/lz4:github.com/pierrec/lz4:force \
+ github.com/spf13/cobra:github.com/spf13/cobra:force \
+ k8s.io/kubernetes:github.com/k3s-io/kubernetes:force \
+ github.com/go-logr/logr:github.com/go-logr/logr:force \
+ github.com/go-logr/stdr:github.com/go-logr/stdr:force \
+ github.com/go-test/deep:github.com/go-test/deep:force \
+ github.com/otiai10/copy:github.com/otiai10/copy:force \
+ lukechampine.com/blake3:lukechampine.com/blake3:force \
+ github.com/Rican7/retry:github.com/Rican7/retry:force \
+ github.com/beorn7/perks:github.com/beorn7/perks:force \
+ github.com/blang/semver:github.com/blang/semver:force \
+ github.com/google/btree:github.com/google/btree:force \
+ github.com/google/pprof:github.com/google/pprof:force \
+ github.com/google/shlex:github.com/google/shlex:force \
+ github.com/jackc/pgx/v5:github.com/jackc/pgx/v5:force \
+ github.com/miekg/pkcs11:github.com/miekg/pkcs11:force \
+ github.com/morikuni/aec:github.com/morikuni/aec:force \
+ github.com/nats-io/nuid:github.com/nats-io/nuid:force \
+ github.com/docker/docker:github.com/docker/docker:force \
+ github.com/rancher/lasso:github.com/rancher/lasso:force \
+ github.com/gin-gonic/gin:github.com/gin-gonic/gin:force \
+ github.com/goccy/go-json:github.com/goccy/go-json:force \
+ github.com/golang/snappy:github.com/golang/snappy:force \
+ github.com/koron/go-ssdp:github.com/koron/go-ssdp:force \
+ github.com/libp2p/go-nat:github.com/libp2p/go-nat:force \
+ github.com/mikioh/tcpopt:github.com/mikioh/tcpopt:force \
+ github.com/pbnjay/memory:github.com/pbnjay/memory:force \
+ github.com/quic-go/qpack:github.com/quic-go/qpack:force \
+ github.com/armon/circbuf:github.com/armon/circbuf:force \
+ github.com/gogo/protobuf:github.com/gogo/protobuf:force \
+ github.com/google/cel-go:github.com/google/cel-go:force \
+ github.com/google/go-cmp:github.com/google/go-cmp:force \
+ github.com/google/gofuzz:github.com/google/gofuzz:force \
+ github.com/google/s2a-go:github.com/google/s2a-go:force \
+ github.com/imdario/mergo:github.com/imdario/mergo:force \
+ github.com/nats-io/nkeys:github.com/nats-io/nkeys:force \
+ github.com/soheilhy/cmux:github.com/soheilhy/cmux:force \
+ github.com/tidwall/btree:github.com/tidwall/btree:force \
+ github.com/urfave/cli/v2:github.com/urfave/cli/v2:force \
+ go.opentelemetry.io/otel:go.opentelemetry.io/otel:force \
+ github.com/xenitab/spegel:github.com/k3s-io/spegel:force \
+ github.com/containerd/zfs:github.com/containerd/zfs:force \
+ github.com/ipfs/go-log/v2:github.com/ipfs/go-log/v2:force \
+ github.com/onsi/ginkgo/v2:github.com/onsi/ginkgo/v2:force \
+ github.com/robfig/cron/v3:github.com/robfig/cron/v3:force \
+ github.com/leodido/go-urn:github.com/leodido/go-urn:force \
+ github.com/mikioh/tcpinfo:github.com/mikioh/tcpinfo:force \
+ github.com/mr-tron/base58:github.com/mr-tron/base58:force \
+ github.com/polydawn/refmt:github.com/polydawn/refmt:force \
+ github.com/containerd/log:github.com/containerd/log:force \
+ github.com/containerd/nri:github.com/containerd/nri:force \
+ github.com/coreos/go-oidc:github.com/coreos/go-oidc:force \
+ github.com/godbus/dbus/v5:github.com/godbus/dbus/v5:force \
+ github.com/minio/md5-simd:github.com/minio/md5-simd:force \
+ github.com/mohae/deepcopy:github.com/mohae/deepcopy:force \
+ github.com/nats-io/jsm.go:github.com/nats-io/jsm.go:force \
+ github.com/nats-io/jwt/v2:github.com/nats-io/jwt/v2:force \
+ github.com/rubiojr/go-vhd:github.com/rubiojr/go-vhd:force \
+ github.com/vmware/govmomi:github.com/vmware/govmomi:force \
+ github.com/xlab/treeprint:github.com/xlab/treeprint:force \
+ github.com/xrash/smetrics:github.com/xrash/smetrics:force \
+ github.com/blang/semver/v4:github.com/blang/semver/v4:force \
+ github.com/containerd/aufs:github.com/containerd/aufs:force \
+ github.com/google/cadvisor:github.com/google/cadvisor:force \
+ github.com/opencontainers/runc:github.com/k3s-io/runc:force \
+ github.com/rancher/wharfie:github.com/rancher/wharfie:force \
+ github.com/sirupsen/logrus:github.com/sirupsen/logrus:force \
+ github.com/bytedance/sonic:github.com/bytedance/sonic:force \
+ github.com/elastic/gosigar:github.com/elastic/gosigar:force \
+ github.com/gin-contrib/sse:github.com/gin-contrib/sse:force \
+ github.com/google/gopacket:github.com/google/gopacket:force \
+ github.com/libp2p/go-msgio:github.com/libp2p/go-msgio:force \
+ github.com/mattn/go-isatty:github.com/mattn/go-isatty:force \
+ github.com/quic-go/quic-go:github.com/quic-go/quic-go:force \
+ github.com/containerd/fifo:github.com/containerd/fifo:force \
+ github.com/davecgh/go-spew:github.com/davecgh/go-spew:force \
+ github.com/docker/go-units:github.com/docker/go-units:force \
+ github.com/fatih/camelcase:github.com/fatih/camelcase:force \
+ github.com/go-openapi/swag:github.com/go-openapi/swag:force \
+ github.com/golang/protobuf:github.com/golang/protobuf:force \
+ github.com/intel/goresctrl:github.com/intel/goresctrl:force \
+ github.com/jackc/pgerrcode:github.com/jackc/pgerrcode:force \
+ github.com/mailru/easyjson:github.com/mailru/easyjson:force \
+ github.com/mdlayher/socket:github.com/mdlayher/socket:force \
+ github.com/moby/spdystream:github.com/moby/spdystream:force \
+ github.com/mxk/go-flowrate:github.com/mxk/go-flowrate:force \
+ github.com/nats-io/nats.go:github.com/nats-io/nats.go:force \
+ github.com/xiang90/probing:github.com/xiang90/probing:force \
+ golang.zx2c4.com/wireguard:golang.zx2c4.com/wireguard:force \
+ google.golang.org/genproto:google.golang.org/genproto:force \
+ google.golang.org/protobuf:google.golang.org/protobuf:force \
+ gopkg.in/square/go-jose.v2:gopkg.in/square/go-jose.v2:force \
+ github.com/json-iterator/go:github.com/json-iterator/go:force \
+ github.com/libp2p/go-libp2p:github.com/libp2p/go-libp2p:force \
+ github.com/mattn/go-sqlite3:github.com/mattn/go-sqlite3:force \
+ github.com/rancher/wrangler:github.com/rancher/wrangler:force \
+ github.com/stretchr/testify:github.com/stretchr/testify:force \
+ github.com/jbenet/goprocess:github.com/jbenet/goprocess:force \
+ github.com/syndtr/goleveldb:github.com/syndtr/goleveldb:force \
+ github.com/containerd/ttrpc:github.com/containerd/ttrpc:force \
+ github.com/coreos/go-semver:github.com/coreos/go-semver:force \
+ github.com/docker/go-events:github.com/docker/go-events:force \
+ github.com/go-errors/errors:github.com/go-errors/errors:force \
+ github.com/jackc/pgpassfile:github.com/jackc/pgpassfile:force \
+ github.com/josharian/intern:github.com/josharian/intern:force \
+ github.com/josharian/native:github.com/josharian/native:force \
+ github.com/lithammer/dedent:github.com/lithammer/dedent:force \
+ github.com/mdlayher/netlink:github.com/mdlayher/netlink:force \
+ github.com/mistifyio/go-zfs:github.com/mistifyio/go-zfs:force \
+ github.com/vbatts/tar-split:github.com/vbatts/tar-split:force \
+ google.golang.org/appengine:google.golang.org/appengine:force \
+ sigs.k8s.io/kustomize/api:sigs.k8s.io/kustomize/api/api:force \
+ go.etcd.io/etcd/api/v3:github.com/k3s-io/etcd/api/v3/api:force \
+ go.etcd.io/etcd/pkg/v3:github.com/k3s-io/etcd/pkg/v3/pkg:force \
+ github.com/Microsoft/hcsshim:github.com/Microsoft/hcsshim:force \
+ github.com/coreos/go-systemd:github.com/coreos/go-systemd:force \
+ github.com/gorilla/websocket:github.com/gorilla/websocket:force \
+ github.com/minio/minio-go/v7:github.com/minio/minio-go/v7:force \
+ github.com/yl2chen/cidranger:github.com/yl2chen/cidranger:force \
+ github.com/benbjohnson/clock:github.com/benbjohnson/clock:force \
+ github.com/francoispqt/gojay:github.com/francoispqt/gojay:force \
+ github.com/ipfs/go-datastore:github.com/ipfs/go-datastore:force \
+ github.com/raulk/go-watchdog:github.com/raulk/go-watchdog:force \
+ github.com/spaolacci/murmur3:github.com/spaolacci/murmur3:force \
+ github.com/xenitab/pkg/gin:github.com/xenitab/pkg/gin/gin:force \
+ github.com/Azure/go-ansiterm:github.com/Azure/go-ansiterm:force \
+ github.com/Azure/go-autorest:github.com/Azure/go-autorest:force \
+ github.com/avast/retry-go/v4:github.com/avast/retry-go/v4:force \
+ github.com/cespare/xxhash/v2:github.com/cespare/xxhash/v2:force \
+ github.com/containerd/go-cni:github.com/containerd/go-cni:force \
+ github.com/docker/go-metrics:github.com/docker/go-metrics:force \
+ github.com/felixge/httpsnoop:github.com/felixge/httpsnoop:force \
+ github.com/fsnotify/fsnotify:github.com/fsnotify/fsnotify:force \
+ github.com/golang-jwt/jwt/v4:github.com/golang-jwt/jwt/v4:force \
+ github.com/golang/groupcache:github.com/golang/groupcache:force \
+ github.com/hanwen/go-fuse/v2:github.com/hanwen/go-fuse/v2:force \
+ github.com/hashicorp/errwrap:github.com/hashicorp/errwrap:force \
+ github.com/karrick/godirwalk:github.com/karrick/godirwalk:force \
+ github.com/liggitt/tabwriter:github.com/liggitt/tabwriter:force \
+ github.com/minio/highwayhash:github.com/minio/highwayhash:force \
+ github.com/minio/sha256-simd:github.com/minio/sha256-simd:force \
+ github.com/mrunalp/fileutils:github.com/mrunalp/fileutils:force \
+ github.com/munnerz/goautoneg:github.com/munnerz/goautoneg:force \
+ github.com/pelletier/go-toml:github.com/pelletier/go-toml:force \
+ github.com/prometheus/common:github.com/prometheus/common:force \
+ github.com/prometheus/procfs:github.com/prometheus/procfs:force \
+ github.com/vishvananda/netns:github.com/vishvananda/netns:force \
+ github.com/coreos/go-iptables:github.com/coreos/go-iptables:force \
+ github.com/flannel-io/flannel:github.com/flannel-io/flannel:force \
+ github.com/ipfs/go-ds-leveldb:github.com/ipfs/go-ds-leveldb:force \
+ github.com/klauspost/compress:github.com/klauspost/compress:force \
+ github.com/chenzhuoyu/base64x:github.com/chenzhuoyu/base64x:force \
+ github.com/ipld/go-ipld-prime:github.com/ipld/go-ipld-prime:force \
+ github.com/jackpal/go-nat-pmp:github.com/jackpal/go-nat-pmp:force \
+ github.com/libp2p/go-netroute:github.com/libp2p/go-netroute:force \
+ github.com/libp2p/go-yamux/v4:github.com/libp2p/go-yamux/v4:force \
+ github.com/marten-seemann/tcp:github.com/marten-seemann/tcp:force \
+ github.com/ugorji/go/codec:github.com/ugorji/go/codec/codec:force \
+ github.com/JeffAshton/win_pdh:github.com/JeffAshton/win_pdh:force \
+ github.com/Microsoft/go-winio:github.com/Microsoft/go-winio:force \
+ github.com/containerd/cgroups:github.com/containerd/cgroups:force \
+ github.com/containerd/console:github.com/containerd/console:force \
+ github.com/containerd/go-runc:github.com/containerd/go-runc:force \
+ github.com/containerd/typeurl:github.com/containerd/typeurl:force \
+ github.com/dustin/go-humanize:github.com/dustin/go-humanize:force \
+ github.com/evanphx/json-patch:github.com/evanphx/json-patch:force \
+ github.com/fvbommel/sortorder:github.com/fvbommel/sortorder:force \
+ github.com/go-task/slim-sprig:github.com/go-task/slim-sprig:force \
+ github.com/klauspost/cpuid/v2:github.com/klauspost/cpuid/v2:force \
+ github.com/kylelemons/godebug:github.com/kylelemons/godebug:force \
+ github.com/mdlayher/genetlink:github.com/mdlayher/genetlink:force \
+ github.com/modern-go/reflect2:github.com/modern-go/reflect2:force \
+ github.com/peterbourgon/diskv:github.com/peterbourgon/diskv:force \
+ github.com/pmezard/go-difflib:github.com/pmezard/go-difflib:force \
+ github.com/shengdoushi/base58:github.com/shengdoushi/base58:force \
+ github.com/stoewer/go-strcase:github.com/stoewer/go-strcase:force \
+ go.etcd.io/etcd/raft/v3:github.com/k3s-io/etcd/raft/v3/raft:force \
+ github.com/moby/sys/signal:github.com/moby/sys/signal/signal:force \
+ github.com/Mirantis/cri-dockerd:github.com/k3s-io/cri-dockerd:force \
+ github.com/containerd/containerd:github.com/k3s-io/containerd:force \
+ github.com/erikdubbelboer/gspt:github.com/erikdubbelboer/gspt:force \
+ github.com/go-sql-driver/mysql:github.com/go-sql-driver/mysql:force \
+ github.com/vishvananda/netlink:github.com/vishvananda/netlink:force \
+ github.com/libp2p/go-cidranger:github.com/libp2p/go-cidranger:force \
+ github.com/libp2p/go-reuseport:github.com/libp2p/go-reuseport:force \
+ github.com/quic-go/qtls-go1-20:github.com/quic-go/qtls-go1-20:force \
+ github.com/MakeNowJust/heredoc:github.com/MakeNowJust/heredoc:force \
+ github.com/NYTimes/gziphandler:github.com/NYTimes/gziphandler:force \
+ github.com/canonical/go-dqlite:github.com/canonical/go-dqlite:force \
+ github.com/cenkalti/backoff/v4:github.com/cenkalti/backoff/v4:force \
+ github.com/chai2010/gettext-go:github.com/chai2010/gettext-go:force \
+ github.com/containerd/btrfs/v2:github.com/containerd/btrfs/v2:force \
+ github.com/containerd/imgcrypt:github.com/containerd/imgcrypt:force \
+ github.com/containers/ocicrypt:github.com/containers/ocicrypt:force \
+ github.com/docker/distribution:github.com/docker/distribution:force \
+ github.com/emicklei/go-restful:github.com/emicklei/go-restful:force \
+ github.com/gregjones/httpcache:github.com/gregjones/httpcache:force \
+ github.com/jackc/pgservicefile:github.com/jackc/pgservicefile:force \
+ github.com/jonboulle/clockwork:github.com/jonboulle/clockwork:force \
+ github.com/mistifyio/go-zfs/v3:github.com/mistifyio/go-zfs/v3:force \
+ github.com/syndtr/gocapability:github.com/syndtr/gocapability:force \
+ go.opentelemetry.io/otel/sdk:go.opentelemetry.io/otel/sdk/sdk:force \
+ sigs.k8s.io/kustomize/kyaml:sigs.k8s.io/kustomize/kyaml/kyaml:force \
+ github.com/natefinch/lumberjack:github.com/natefinch/lumberjack:force \
+ github.com/rancher/remotedialer:github.com/rancher/remotedialer:force \
+ github.com/davidlazar/go-crypto:github.com/davidlazar/go-crypto:force \
+ github.com/hashicorp/golang-lru:github.com/hashicorp/golang-lru:force \
+ github.com/pelletier/go-toml/v2:github.com/pelletier/go-toml/v2:force \
+ github.com/slok/go-http-metrics:github.com/slok/go-http-metrics:force \
+ cloud.google.com/go/compute:cloud.google.com/go/compute/compute:force \
+ github.com/euank/go-kmsg-parser:github.com/euank/go-kmsg-parser:force \
+ github.com/exponent-io/jsonpath:github.com/exponent-io/jsonpath:force \
+ github.com/googleapis/gax-go/v2:github.com/googleapis/gax-go/v2:force \
+ github.com/hashicorp/go-version:github.com/hashicorp/go-version:force \
+ github.com/mitchellh/go-homedir:github.com/mitchellh/go-homedir:force \
+ github.com/moby/sys/symlink:github.com/moby/sys/symlink/symlink:force \
+ github.com/modern-go/concurrent:github.com/modern-go/concurrent:force \
+ github.com/pquerna/cachecontrol:github.com/pquerna/cachecontrol:force \
+ github.com/tchap/go-patricia/v2:github.com/tchap/go-patricia/v2:force \
+ github.com/kubernetes-sigs/cri-tools:github.com/k3s-io/cri-tools:force \
+ github.com/containerd/cgroups/v3:github.com/containerd/cgroups/v3:force \
+ github.com/go-bindata/go-bindata:github.com/go-bindata/go-bindata:force \
+ go.etcd.io/etcd/server/v3:github.com/k3s-io/etcd/server/v3/server:force \
+ github.com/go-playground/locales:github.com/go-playground/locales:force \
+ github.com/libp2p/go-buffer-pool:github.com/libp2p/go-buffer-pool:force \
+ github.com/containerd/continuity:github.com/containerd/continuity:force \
+ github.com/containerd/typeurl/v2:github.com/containerd/typeurl/v2:force \
+ github.com/coreos/go-systemd/v22:github.com/coreos/go-systemd/v22:force \
+ github.com/cpuguy83/go-md2man/v2:github.com/cpuguy83/go-md2man/v2:force \
+ github.com/docker/go-connections:github.com/docker/go-connections:force \
+ github.com/google/gnostic-models:github.com/google/gnostic-models:force \
+ github.com/mitchellh/go-wordwrap:github.com/mitchellh/go-wordwrap:force \
+ gopkg.in/natefinch/lumberjack.v2:gopkg.in/natefinch/lumberjack.v2:force \
+ go.opentelemetry.io/proto/otlp:go.opentelemetry.io/proto/otlp/otlp:force \
+ github.com/k3s-io/helm-controller:github.com/k3s-io/helm-controller:force \
+ github.com/mwitkow/go-http-dialer:github.com/mwitkow/go-http-dialer:force \
+ github.com/opencontainers/selinux:github.com/opencontainers/selinux:force \
+ github.com/libp2p/go-flow-metrics:github.com/libp2p/go-flow-metrics:force \
+ github.com/multiformats/go-base32:github.com/multiformats/go-base32:force \
+ github.com/multiformats/go-base36:github.com/multiformats/go-base36:force \
+ github.com/multiformats/go-varint:github.com/multiformats/go-varint:force \
+ github.com/Azure/azure-sdk-for-go:github.com/Azure/azure-sdk-for-go:force \
+ github.com/asaskevich/govalidator:github.com/asaskevich/govalidator:force \
+ github.com/emicklei/go-restful/v3:github.com/emicklei/go-restful/v3:force \
+ github.com/go-openapi/jsonpointer:github.com/go-openapi/jsonpointer:force \
+ github.com/hashicorp/go-cleanhttp:github.com/hashicorp/go-cleanhttp:force \
+ github.com/nats-io/nats-server/v2:github.com/nats-io/nats-server/v2:force \
+ go.opentelemetry.io/otel/trace:go.opentelemetry.io/otel/trace/trace:force \
+ golang.zx2c4.com/wireguard/wgctrl:golang.zx2c4.com/wireguard/wgctrl:force \
+ go.etcd.io/etcd/client/v3:github.com/k3s-io/etcd/client/v3/client/v3:force \
+ go.etcd.io/etcd/etcdutl/v3:github.com/k3s-io/etcd/etcdutl/v3/etcdutl:force \
+ go.etcd.io/etcd/client/v2:github.com/k3s-io/etcd/client/v2/client/v2:force \
+ github.com/rancher/dynamiclistener:github.com/rancher/dynamiclistener:force \
+ github.com/gabriel-vasile/mimetype:github.com/gabriel-vasile/mimetype:force \
+ github.com/hashicorp/golang-lru/v2:github.com/hashicorp/golang-lru/v2:force \
+ github.com/libp2p/go-libp2p-record:github.com/libp2p/go-libp2p-record:force \
+ github.com/quic-go/webtransport-go:github.com/quic-go/webtransport-go:force \
+ github.com/containernetworking/cni:github.com/containernetworking/cni:force \
+ github.com/hashicorp/go-multierror:github.com/hashicorp/go-multierror:force \
+ github.com/moby/sys/mountinfo:github.com/moby/sys/mountinfo/mountinfo:force \
+ github.com/prometheus/client_model:github.com/prometheus/client_model:force \
+ github.com/russross/blackfriday/v2:github.com/russross/blackfriday/v2:force \
+ sigs.k8s.io/kustomize/kustomize/v5:sigs.k8s.io/kustomize/kustomize/v5/kustomize:force \
+ go.opentelemetry.io/otel/metric:go.opentelemetry.io/otel/metric/metric:force \
+ github.com/libp2p/go-libp2p-kad-dht:github.com/libp2p/go-libp2p-kad-dht:force \
+ github.com/libp2p/go-libp2p-kbucket:github.com/libp2p/go-libp2p-kbucket:force \
+ github.com/daviddengcn/go-colortext:github.com/daviddengcn/go-colortext:force \
+ github.com/go-openapi/jsonreference:github.com/go-openapi/jsonreference:force \
+ github.com/opencontainers/go-digest:github.com/opencontainers/go-digest:force \
+ github.com/prometheus/client_golang:github.com/prometheus/client_golang:force \
+ github.com/tmc/grpc-websocket-proxy:github.com/tmc/grpc-websocket-proxy:force \
+ github.com/xenitab/pkg/channels:github.com/xenitab/pkg/channels/channels:force \
+ github.com/moby/sys/sequential:github.com/moby/sys/sequential/sequential:force \
+ github.com/libp2p/go-libp2p-asn-util:github.com/libp2p/go-libp2p-asn-util:force \
+ github.com/multiformats/go-multiaddr:github.com/multiformats/go-multiaddr:force \
+ github.com/multiformats/go-multibase:github.com/multiformats/go-multibase:force \
+ github.com/multiformats/go-multihash:github.com/multiformats/go-multihash:force \
+ github.com/whyrusleeping/go-keyspace:github.com/whyrusleeping/go-keyspace:force \
+ github.com/AdaLogics/go-fuzz-headers:github.com/AdaLogics/go-fuzz-headers:force \
+ github.com/inconshreveable/mousetrap:github.com/inconshreveable/mousetrap:force \
+ github.com/opencontainers/image-spec:github.com/opencontainers/image-spec:force \
+ github.com/seccomp/libseccomp-golang:github.com/seccomp/libseccomp-golang:force \
+ github.com/stefanberger/go-pkcs11uri:github.com/stefanberger/go-pkcs11uri:force \
+ sigs.k8s.io/structured-merge-diff/v4:sigs.k8s.io/structured-merge-diff/v4:force \
+ github.com/cloudnativelabs/kube-router/v2:github.com/k3s-io/kube-router/v2:force \
+ github.com/jbenet/go-temp-err-catcher:github.com/jbenet/go-temp-err-catcher:force \
+ github.com/multiformats/go-multicodec:github.com/multiformats/go-multicodec:force \
+ github.com/opentracing/opentracing-go:github.com/opentracing/opentracing-go:force \
+ github.com/twitchyliquid64/golang-asm:github.com/twitchyliquid64/golang-asm:force \
+ github.com/cyphar/filepath-securejoin:github.com/cyphar/filepath-securejoin:force \
+ github.com/hashicorp/go-retryablehttp:github.com/hashicorp/go-retryablehttp:force \
+ github.com/libopenstorage/openstorage:github.com/libopenstorage/openstorage:force \
+ go.etcd.io/etcd/client/pkg/v3:github.com/k3s-io/etcd/client/pkg/v3/client/pkg:force \
+ github.com/go-playground/validator/v10:github.com/go-playground/validator/v10:force \
+ github.com/multiformats/go-multistream:github.com/multiformats/go-multistream:force \
+ github.com/AdamKorcz/go-118-fuzz-build:github.com/AdamKorcz/go-118-fuzz-build:force \
+ github.com/bronze1man/goStrongswanVici:github.com/bronze1man/goStrongswanVici:force \
+ github.com/containernetworking/plugins:github.com/containernetworking/plugins:force \
+ github.com/google/go-containerregistry:github.com/google/go-containerregistry:force \
+ github.com/grpc-ecosystem/grpc-gateway:github.com/grpc-ecosystem/grpc-gateway:force \
+ github.com/monochromegane/go-gitignore:github.com/monochromegane/go-gitignore:force \
+ github.com/opencontainers/runtime-spec:github.com/opencontainers/runtime-spec:force \
+ github.com/Azure/go-autorest/logger:github.com/Azure/go-autorest/logger/logger:force \
+ github.com/opencontainers/runtime-tools:github.com/opencontainers/runtime-tools:force \
+ github.com/containerd/stargz-snapshotter:github.com/containerd/stargz-snapshotter:force \
+ github.com/hashicorp/golang-lru/arc/v2:github.com/hashicorp/golang-lru/arc/v2/arc:force \
+ github.com/multiformats/go-multiaddr-dns:github.com/multiformats/go-multiaddr-dns:force \
+ github.com/multiformats/go-multiaddr-fmt:github.com/multiformats/go-multiaddr-fmt:force \
+ github.com/Azure/go-autorest/tracing:github.com/Azure/go-autorest/tracing/tracing:force \
+ github.com/checkpoint-restore/go-criu/v5:github.com/checkpoint-restore/go-criu/v5:force \
+ github.com/grpc-ecosystem/grpc-gateway/v2:github.com/grpc-ecosystem/grpc-gateway/v2:force \
+ github.com/Azure/go-autorest/autorest:github.com/Azure/go-autorest/autorest/autorest:force \
+ github.com/rootless-containers/rootlesskit:github.com/rootless-containers/rootlesskit:force \
+ k8s.io/api:github.com/k3s-io/kubernetes/staging/src/k8s.io/api/staging/src/k8s.io/api:force \
+ k8s.io/kms:github.com/k3s-io/kubernetes/staging/src/k8s.io/kms/staging/src/k8s.io/kms:force \
+ github.com/libp2p/go-libp2p-routing-helpers:github.com/libp2p/go-libp2p-routing-helpers:force \
+ github.com/container-storage-interface/spec:github.com/container-storage-interface/spec:force \
+ github.com/docker/docker-credential-helpers:github.com/docker/docker-credential-helpers:force \
+ github.com/grpc-ecosystem/go-grpc-middleware:github.com/grpc-ecosystem/go-grpc-middleware:force \
+ github.com/grpc-ecosystem/go-grpc-prometheus:github.com/grpc-ecosystem/go-grpc-prometheus:force \
+ cloud.google.com/go/compute/metadata:cloud.google.com/go/compute/metadata/compute/metadata:force \
+ github.com/go-playground/universal-translator:github.com/go-playground/universal-translator:force \
+ github.com/Azure/go-autorest/autorest/to:github.com/Azure/go-autorest/autorest/to/autorest/to:force \
+ github.com/containerd/fuse-overlayfs-snapshotter:github.com/containerd/fuse-overlayfs-snapshotter:force \
+ k8s.io/cri-api:github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api/staging/src/k8s.io/cri-api:force \
+ k8s.io/kubectl:github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl/staging/src/k8s.io/kubectl:force \
+ k8s.io/kubelet:github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet/staging/src/k8s.io/kubelet:force \
+ k8s.io/metrics:github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics/staging/src/k8s.io/metrics:force \
+ google.golang.org/genproto/googleapis/api:google.golang.org/genproto/googleapis/api/googleapis/api:force \
+ google.golang.org/genproto/googleapis/rpc:google.golang.org/genproto/googleapis/rpc/googleapis/rpc:force \
+ github.com/decred/dcrd/dcrec/secp256k1/v4:github.com/decred/dcrd/dcrec/secp256k1/v4/dcrec/secp256k1:force \
+ github.com/Azure/go-autorest/autorest/adal:github.com/Azure/go-autorest/autorest/adal/autorest/adal:force \
+ github.com/Azure/go-autorest/autorest/date:github.com/Azure/go-autorest/autorest/date/autorest/date:force \
+ github.com/GoogleCloudPlatform/k8s-cloud-provider:github.com/GoogleCloudPlatform/k8s-cloud-provider:force \
+ github.com/googleapis/enterprise-certificate-proxy:github.com/googleapis/enterprise-certificate-proxy:force \
+ github.com/Azure/go-autorest/autorest/mocks:github.com/Azure/go-autorest/autorest/mocks/autorest/mocks:force \
+ k8s.io/apiserver:github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver/staging/src/k8s.io/apiserver:force \
+ k8s.io/client-go:github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go/staging/src/k8s.io/client-go:force \
+ github.com/matttproud/golang_protobuf_extensions/v2:github.com/matttproud/golang_protobuf_extensions/v2:force \
+ github.com/containerd/stargz-snapshotter/estargz:github.com/containerd/stargz-snapshotter/estargz/estargz:force \
+ k8s.io/kube-proxy:github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy/staging/src/k8s.io/kube-proxy:force \
+ github.com/antlr/antlr4/runtime/Go/antlr/v4:github.com/antlr/antlr4/runtime/Go/antlr/v4/runtime/Go/antlr/v4:force \
+ k8s.io/cli-runtime:github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime/staging/src/k8s.io/cli-runtime:force \
+ k8s.io/mount-utils:github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils/staging/src/k8s.io/mount-utils:force \
+ k8s.io/apimachinery:github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery/staging/src/k8s.io/apimachinery:force \
+ k8s.io/endpointslice:github.com/k3s-io/kubernetes/staging/src/k8s.io/endpointslice/staging/src/k8s.io/endpointslice:force \
+ github.com/Azure/go-autorest/autorest/validation:github.com/Azure/go-autorest/autorest/validation/autorest/validation:force \
+ k8s.io/cloud-provider:github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider/staging/src/k8s.io/cloud-provider:force \
+ k8s.io/component-base:github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base/staging/src/k8s.io/component-base:force \
+ k8s.io/code-generator:github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator/staging/src/k8s.io/code-generator:force \
+ k8s.io/kube-scheduler:github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler/staging/src/k8s.io/kube-scheduler:force \
+ k8s.io/kube-aggregator:github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator/staging/src/k8s.io/kube-aggregator:force \
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace:go.opentelemetry.io/otel/exporters/otlp/otlptrace/exporters/otlp/otlptrace:force \
+ k8s.io/cluster-bootstrap:github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap/staging/src/k8s.io/cluster-bootstrap:force \
+ k8s.io/component-helpers:github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers/staging/src/k8s.io/component-helpers:force \
+ k8s.io/controller-manager:github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager/staging/src/k8s.io/controller-manager:force \
+ sigs.k8s.io/apiserver-network-proxy/konnectivity-client:sigs.k8s.io/apiserver-network-proxy/konnectivity-client/konnectivity-client:force \
+ k8s.io/csi-translation-lib:github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib/staging/src/k8s.io/csi-translation-lib:force \
+ github.com/container-orchestrated-devices/container-device-interface:github.com/container-orchestrated-devices/container-device-interface:force \
+ go.opentelemetry.io/otel/exporters/otlp/internal/retry:go.opentelemetry.io/otel/exporters/otlp/internal/retry/exporters/otlp/internal/retry:force \
+ k8s.io/legacy-cloud-providers:github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers/staging/src/k8s.io/legacy-cloud-providers:force \
+ k8s.io/pod-security-admission:github.com/k3s-io/kubernetes/staging/src/k8s.io/pod-security-admission/staging/src/k8s.io/pod-security-admission:force \
+ k8s.io/apiextensions-apiserver:github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/staging/src/k8s.io/apiextensions-apiserver:force \
+ k8s.io/kube-controller-manager:github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager/staging/src/k8s.io/kube-controller-manager:force \
+ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp:go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/instrumentation/net/http/otelhttp:force \
+ k8s.io/dynamic-resource-allocation:github.com/k3s-io/kubernetes/staging/src/k8s.io/dynamic-resource-allocation/staging/src/k8s.io/dynamic-resource-allocation:force \
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc:go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/exporters/otlp/otlptrace/otlptracegrpc:force \
+ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc:go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/instrumentation/google.golang.org/grpc/otelgrpc:force \
+ go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful:go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful/instrumentation/github.com/emicklei/go-restful/otelrestful:force"
+
+do_compile:prepend() {
+ cd ${S}/src/import
+ for s in $sites; do
+ site_dest=$(echo $s | cut -d: -f1)
+ site_source=$(echo $s | cut -d: -f2)
+ force_flag=$(echo $s | cut -d: -f3)
+ mkdir -p vendor.copy/$site_dest
+ if [ -n "$force_flag" ]; then
+ echo "[INFO] $site_dest: force copying .go files"
+ rm -rf vendor.copy/$site_dest
+ rsync -a --exclude='vendor/' --exclude='.git/' vendor.fetch/$site_source/ vendor.copy/$site_dest
+ else
+ [ -n "$(ls -A vendor.copy/$site_dest/*.go 2> /dev/null)" ] && { echo "[INFO] vendor.fetch/$site_source -> $site_dest: go copy skipped (files present)" ; true ; } || { echo "[INFO] $site_dest: copying .go files" ; rsync -a --exclude='vendor/' --exclude='.git/' vendor.fetch/$site_source/ vendor.copy/$site_dest ; }
+ fi
+ done
+}
diff --git a/recipes-containers/k3s/src_uri.inc b/recipes-containers/k3s/src_uri.inc
new file mode 100644
index 00000000..b90441e1
--- /dev/null
+++ b/recipes-containers/k3s/src_uri.inc
@@ -0,0 +1,2150 @@
+# k8s.io/utils v0.0.0-20230726121419-3b25d923346b
+# [1] git ls-remote https://github.com/kubernetes/utils 3b25d923346b3814e0898684c97390092f31a61e
+SRCREV_utils="3b25d923346b3814e0898684c97390092f31a61e"
+SRC_URI += "git://github.com/kubernetes/utils;name=utils;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/k8s.io/utils"
+
+# k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01
+# [1] git ls-remote https://github.com/kubernetes/gengo 9cce18d56c01fab1d8ed72411ad6ef7005fc33a4
+SRCREV_gengo="9cce18d56c01fab1d8ed72411ad6ef7005fc33a4"
+SRC_URI += "git://github.com/kubernetes/gengo;name=gengo;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/k8s.io/gengo"
+
+# go.uber.org/fx v1.20.0
+# [1] git ls-remote https://github.com/uber-go/fx 1320bc693745e5e7c08c29843de3d7915cac826c
+SRCREV_fx="1320bc693745e5e7c08c29843de3d7915cac826c"
+SRC_URI += "git://github.com/uber-go/fx;name=fx;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.uber.org/fx"
+
+# go.uber.org/zap v1.26.0
+# [1] git ls-remote https://github.com/uber-go/zap 96038b71a7d96b8c14fedb3aeddcb3d0d7605b2d
+SRCREV_zap="96038b71a7d96b8c14fedb3aeddcb3d0d7605b2d"
+SRC_URI += "git://github.com/uber-go/zap;name=zap;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.uber.org/zap"
+
+# go.uber.org/dig v1.17.0
+# [1] git ls-remote https://github.com/uber-go/dig a8b6f0db4f27681ad7233eed1bda9d5c69881f5b
+SRCREV_dig="a8b6f0db4f27681ad7233eed1bda9d5c69881f5b"
+SRC_URI += "git://github.com/uber-go/dig;name=dig;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.uber.org/dig"
+
+# go.starlark.net v0.0.0-20230525235612-a134d8f9ddca
+# [1] git ls-remote https://github.com/google/starlark-go a134d8f9ddca7469c736775b67544671f0a135ad
+SRCREV_go.starlark.net="a134d8f9ddca7469c736775b67544671f0a135ad"
+SRC_URI += "git://github.com/google/starlark-go;name=go.starlark.net;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.starlark.net"
+
+# gopkg.in/inf.v0 v0.9.1
+# [1] git ls-remote https://github.com/go-inf/inf d2d2541c53f18d2a059457998ce2876cc8e67cbf
+SRCREV_inf.v0="d2d2541c53f18d2a059457998ce2876cc8e67cbf"
+SRC_URI += "git://github.com/go-inf/inf;name=inf.v0;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/inf.v0"
+
+# gopkg.in/ini.v1 v1.67.0
+# [1] git ls-remote https://github.com/go-ini/ini b2f570e5b5b844226bbefe6fb521d891f529a951
+SRCREV_ini.v1="b2f570e5b5b844226bbefe6fb521d891f529a951"
+SRC_URI += "git://github.com/go-ini/ini;name=ini.v1;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/ini.v1"
+
+# golang.org/x/net v0.17.0
+# [1] git ls-remote https://go.googlesource.com/net b225e7ca6dde1ef5a5ae5ce922861bda011cfabd
+SRCREV_net="b225e7ca6dde1ef5a5ae5ce922861bda011cfabd"
+SRC_URI += "git://go.googlesource.com/net;name=net;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/net"
+
+# golang.org/x/sys v0.13.0
+# [1] git ls-remote https://go.googlesource.com/sys 2964e1e4b1dbd55a8ac69a4c9e3004a8038515b6
+SRCREV_sys="2964e1e4b1dbd55a8ac69a4c9e3004a8038515b6"
+SRC_URI += "git://go.googlesource.com/sys;name=sys;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/sys"
+
+# gopkg.in/yaml.v2 v2.4.0
+# [1] git ls-remote https://github.com/go-yaml/yaml 7649d4548cb53a614db133b2a8ac1f31859dda8c
+SRCREV_yaml.v2="7649d4548cb53a614db133b2a8ac1f31859dda8c"
+SRC_URI += "git://github.com/go-yaml/yaml;name=yaml.v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/yaml.v2"
+
+# inet.af/tcpproxy v0.0.0-20200125044825-b6bb9b5b8252
+# [1] git ls-remote https://github.com/inetaf/tcpproxy b6bb9b5b82524122bcf27291ede32d1517a14ab8
+SRCREV_tcpproxy="b6bb9b5b82524122bcf27291ede32d1517a14ab8"
+SRC_URI += "git://github.com/inetaf/tcpproxy;name=tcpproxy;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/inet.af/tcpproxy"
+
+# sigs.k8s.io/yaml v1.4.0
+# [1] git ls-remote https://github.com/kubernetes-sigs/yaml c3772b51db126345efe2dfe4ff8dac83b8141684
+SRCREV_yaml="c3772b51db126345efe2dfe4ff8dac83b8141684"
+SRC_URI += "git://github.com/kubernetes-sigs/yaml;name=yaml;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/sigs.k8s.io/yaml"
+
+# go.etcd.io/bbolt v1.3.8
+# [1] git ls-remote https://github.com/etcd-io/bbolt 42a914d8be1995a845e12dedbbbc77b7a450f9c7
+SRCREV_bbolt="42a914d8be1995a845e12dedbbbc77b7a450f9c7"
+SRC_URI += "git://github.com/etcd-io/bbolt;name=bbolt;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.etcd.io/bbolt"
+
+# go.opencensus.io v0.24.0
+# [1] git ls-remote https://github.com/census-instrumentation/opencensus-go b1a01ee95db0e690d91d7193d037447816fae4c5
+SRCREV_go.opencensus.io="b1a01ee95db0e690d91d7193d037447816fae4c5"
+SRC_URI += "git://github.com/census-instrumentation/opencensus-go;name=go.opencensus.io;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opencensus.io"
+
+# golang.org/x/exp v0.0.0-20231006140011-7918f672742d
+# [1] git ls-remote https://go.googlesource.com/exp 7918f672742dd40ff5cf8d3c316a9315410c2d3c
+SRCREV_exp="7918f672742dd40ff5cf8d3c316a9315410c2d3c"
+SRC_URI += "git://go.googlesource.com/exp;name=exp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/exp"
+
+# golang.org/x/mod v0.14.0
+# [1] git ls-remote https://go.googlesource.com/mod 6e58e47c7bd6672665dc35cce7b1f325d2addd67
+SRCREV_mod="6e58e47c7bd6672665dc35cce7b1f325d2addd67"
+SRC_URI += "git://go.googlesource.com/mod;name=mod;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/mod"
+
+# gopkg.in/gcfg.v1 v1.2.3
+# [1] git ls-remote https://github.com/go-gcfg/gcfg 61b2c08bc8f6068f7c5ca684372f9a6cb1c45ebe
+SRCREV_gcfg.v1="61b2c08bc8f6068f7c5ca684372f9a6cb1c45ebe"
+SRC_URI += "git://github.com/go-gcfg/gcfg;name=gcfg.v1;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/gcfg.v1"
+
+# gopkg.in/yaml.v3 v3.0.1
+# [1] git ls-remote https://github.com/go-yaml/yaml f6f7691b1fdeb513f56608cd2c32c51f8194bf51
+SRCREV_yaml.v3="f6f7691b1fdeb513f56608cd2c32c51f8194bf51"
+SRC_URI += "git://github.com/go-yaml/yaml;name=yaml.v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/yaml.v3"
+
+# sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd
+# [1] git ls-remote https://github.com/kubernetes-sigs/json bc3834ca7abd3a90f03ef00a27ad80cb892f9c21
+SRCREV_json="bc3834ca7abd3a90f03ef00a27ad80cb892f9c21"
+SRC_URI += "git://github.com/kubernetes-sigs/json;name=json;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/sigs.k8s.io/json"
+
+# github.com/lib/pq v1.10.2
+# [1] git ls-remote https://github.com/lib/pq 2da6713d67f03911a05b1b6559adc85927fe076e
+SRCREV_pq="2da6713d67f03911a05b1b6559adc85927fe076e"
+SRC_URI += "git://github.com/lib/pq;name=pq;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/lib/pq"
+
+# golang.org/x/sync v0.6.0
+# [1] git ls-remote https://go.googlesource.com/sync 59c1ca1e4661ed4452be4069ceea3c233f4deec1
+SRCREV_sync="59c1ca1e4661ed4452be4069ceea3c233f4deec1"
+SRC_URI += "git://go.googlesource.com/sync;name=sync;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/sync"
+
+# golang.org/x/arch v0.3.0
+# [1] git ls-remote https://go.googlesource.com/arch 40c19ba4a7c5ffc92baaef5977ffc2b82dfb0e47
+SRCREV_arch="40c19ba4a7c5ffc92baaef5977ffc2b82dfb0e47"
+SRC_URI += "git://go.googlesource.com/arch;name=arch;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/arch"
+
+# github.com/rs/xid v1.5.0
+# [1] git ls-remote https://github.com/rs/xid 47a0ac1e0b750ee1f43718be223bb07601c66a1f
+SRCREV_xid="47a0ac1e0b750ee1f43718be223bb07601c66a1f"
+SRC_URI += "git://github.com/rs/xid;name=xid;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/rs/xid"
+
+# golang.org/x/term v0.15.0
+# [1] git ls-remote https://go.googlesource.com/term ee66497fa39f03ba841b568a7b4f4ee4e4546f74
+SRCREV_x-term="ee66497fa39f03ba841b568a7b4f4ee4e4546f74"
+SRC_URI += "git://go.googlesource.com/term;name=x-term;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/term"
+
+# golang.org/x/text v0.14.0
+# [1] git ls-remote https://go.googlesource.com/text 6c97a165dd661335ff7bce6104a008558123c353
+SRCREV_text="6c97a165dd661335ff7bce6104a008558123c353"
+SRC_URI += "git://go.googlesource.com/text;name=text;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/text"
+
+# golang.org/x/time v0.5.0
+# [1] git ls-remote https://go.googlesource.com/time 883aed519795b30de35e6bc28ec8f681494afa87
+SRCREV_time="883aed519795b30de35e6bc28ec8f681494afa87"
+SRC_URI += "git://go.googlesource.com/time;name=time;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/time"
+
+# gonum.org/v1/gonum v0.13.0
+# [1] git ls-remote https://github.com/gonum/gonum 91a06ac64c4b32c929427846d4d1d3b8202ad7b1
+SRCREV_gonum="91a06ac64c4b32c929427846d4d1d3b8202ad7b1"
+SRC_URI += "git://github.com/gonum/gonum;name=gonum;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gonum.org/v1/gonum"
+
+# golang.org/x/tools v0.16.1
+# [1] git ls-remote https://go.googlesource.com/tools 2acb2e697b49f179be93652febb89d384f0f09c9
+SRCREV_tools="2acb2e697b49f179be93652febb89d384f0f09c9"
+SRC_URI += "git://go.googlesource.com/tools;name=tools;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/tools"
+
+# golang.org/x/crypto v0.14.0
+# [1] git ls-remote https://go.googlesource.com/crypto e3cc52e598e302f8c613a645bb7231264d8ec995
+SRCREV_crypto="e3cc52e598e302f8c613a645bb7231264d8ec995"
+SRC_URI += "git://go.googlesource.com/crypto;name=crypto;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/crypto"
+
+# golang.org/x/oauth2 v0.15.0
+# [1] git ls-remote https://go.googlesource.com/oauth2 6e9ec9323da7adcd2cc6e62e4deb9fae4c309a1a
+SRCREV_oauth2="6e9ec9323da7adcd2cc6e62e4deb9fae4c309a1a"
+SRC_URI += "git://go.googlesource.com/oauth2;name=oauth2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/oauth2"
+
+# k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9
+# [1] git ls-remote https://github.com/kubernetes/kube-openapi 2695361300d9d6b66602baa8cf366b7212cc9836
+SRCREV_kube-openapi="2695361300d9d6b66602baa8cf366b7212cc9836"
+SRC_URI += "git://github.com/kubernetes/kube-openapi;name=kube-openapi;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/k8s.io/kube-openapi"
+
+# github.com/ipfs/boxo v0.10.0
+# [1] git ls-remote https://github.com/ipfs/boxo 6f82d77995476b0d85722539230a50a321706ead
+SRCREV_boxo="6f82d77995476b0d85722539230a50a321706ead"
+SRC_URI += "git://github.com/ipfs/boxo;name=boxo;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/ipfs/boxo"
+
+# github.com/miekg/dns v1.1.55
+# [1] git ls-remote https://github.com/miekg/dns 48f38ebef989eedc6b57f1869ae849ccc8f5fe29
+SRCREV_dns="48f38ebef989eedc6b57f1869ae849ccc8f5fe29"
+SRC_URI += "git://github.com/miekg/dns;name=dns;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/miekg/dns"
+
+# github.com/moby/ipvs v1.1.0
+# [1] git ls-remote https://github.com/moby/ipvs fe22ac585b3e22a969cbde61addd99ecd93ab22c
+SRCREV_ipvs="fe22ac585b3e22a969cbde61addd99ecd93ab22c"
+SRC_URI += "git://github.com/moby/ipvs;name=ipvs;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/ipvs"
+
+# github.com/moby/term v0.0.0-20221205130635-1aeaba878587
+# [1] git ls-remote https://github.com/moby/term 1aeaba8785877a66f57739be9fccb6f5cfab429e
+SRCREV_term="1aeaba8785877a66f57739be9fccb6f5cfab429e"
+SRC_URI += "git://github.com/moby/term;name=term;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/term"
+
+# go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1
+# [1] git ls-remote https://github.com/mozilla-services/pkcs7 432b2356ecb18209c1cec25680b8a23632794f21
+SRCREV_pkcs7="432b2356ecb18209c1cec25680b8a23632794f21"
+SRC_URI += "git://github.com/mozilla-services/pkcs7;name=pkcs7;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.mozilla.org/pkcs7"
+
+# go.uber.org/multierr v1.11.0
+# [1] git ls-remote https://github.com/uber-go/multierr de75ae527b39a27afcb50a84427ec7b84021d5f4
+SRCREV_multierr="de75ae527b39a27afcb50a84427ec7b84021d5f4"
+SRC_URI += "git://github.com/uber-go/multierr;name=multierr;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.uber.org/multierr"
+
+# gopkg.in/warnings.v0 v0.1.2
+# [1] git ls-remote https://github.com/go-warnings/warnings ec4a0fea49c7b46c2aeb0b51aac55779c607e52b
+SRCREV_warnings.v0="ec4a0fea49c7b46c2aeb0b51aac55779c607e52b"
+SRC_URI += "git://github.com/go-warnings/warnings;name=warnings.v0;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/warnings.v0"
+
+# github.com/pkg/errors v0.9.1
+# [1] git ls-remote https://github.com/pkg/errors 614d223910a179a466c1767a985424175c39b465
+SRCREV_errors="614d223910a179a466c1767a985424175c39b465"
+SRC_URI += "git://github.com/pkg/errors;name=errors;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/pkg/errors"
+
+# github.com/urfave/cli v1.22.14
+# [1] git ls-remote https://github.com/urfave/cli f5ca62f301d773bdc9c800aa0e24aec82ad01a1d
+SRCREV_cli="f5ca62f301d773bdc9c800aa0e24aec82ad01a1d"
+SRC_URI += "git://github.com/urfave/cli;name=cli;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/urfave/cli"
+
+# github.com/docker/cli v24.0.5+incompatible
+# [1] git ls-remote https://github.com/docker/cli ced099660009713e0e845eeb754e6050dbaa45d0
+SRCREV_docker-cli="ced099660009713e0e845eeb754e6050dbaa45d0"
+SRC_URI += "git://github.com/docker/cli;name=docker-cli;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/cli"
+
+# github.com/gofrs/uuid v4.4.0+incompatible
+# [1] git ls-remote https://github.com/gofrs/uuid 8345c9a6e83034ec02edb1887c08c6c7fbfdd9ee
+SRCREV_gofrs-uuid="8345c9a6e83034ec02edb1887c08c6c7fbfdd9ee"
+SRC_URI += "git://github.com/gofrs/uuid;name=gofrs-uuid;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/gofrs/uuid"
+
+# google.golang.org/api v0.152.0
+# [1] git ls-remote https://github.com/googleapis/google-api-go-client c18c15e47e02cc3fa5d9e68b88313952381d31ae
+SRCREV_google.golang.org-api="c18c15e47e02cc3fa5d9e68b88313952381d31ae"
+SRC_URI += "git://github.com/googleapis/google-api-go-client;name=google.golang.org-api;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/api"
+
+# github.com/golang/mock v1.6.0
+# [1] git ls-remote https://github.com/golang/mock aba2ff9a6844d5e3289e8472d3217d5b3090f083
+SRCREV_mock="aba2ff9a6844d5e3289e8472d3217d5b3090f083"
+SRC_URI += "git://github.com/golang/mock;name=mock;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/golang/mock"
+
+# github.com/google/uuid v1.4.0
+# [1] git ls-remote https://github.com/google/uuid 8de8764e294f072b7a2f1a209e88fdcdb1ebc875
+SRCREV_uuid="8de8764e294f072b7a2f1a209e88fdcdb1ebc875"
+SRC_URI += "git://github.com/google/uuid;name=uuid;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/uuid"
+
+# github.com/gorilla/mux v1.8.1
+# [1] git ls-remote https://github.com/gorilla/mux b4617d0b9670ad14039b2739167fd35a60f557c5
+SRCREV_mux="b4617d0b9670ad14039b2739167fd35a60f557c5"
+SRC_URI += "git://github.com/gorilla/mux;name=mux;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/gorilla/mux"
+
+# github.com/k3s-io/kine v0.11.4
+# [1] git ls-remote https://github.com/k3s-io/kine 37736729c40f1e7ad18521d1eb5c2a13e314ebde
+SRCREV_kine="37736729c40f1e7ad18521d1eb5c2a13e314ebde"
+SRC_URI += "git://github.com/k3s-io/kine;name=kine;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kine"
+
+# github.com/onsi/gomega v1.27.10
+# [1] git ls-remote https://github.com/onsi/gomega 9cbf7b0019d4d489d668583b0d7a6ac889ee2bc8
+SRCREV_gomega="9cbf7b0019d4d489d668583b0d7a6ac889ee2bc8"
+SRC_URI += "git://github.com/onsi/gomega;name=gomega;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/onsi/gomega"
+
+# github.com/k3s-io/runc v1.1.12-k3s1
+# [1] git ls-remote https://github.com/k3s-io/runc 7d07dac287da807a624adba7ea7ccc1b3f28c614
+SRCREV_runc="7d07dac287da807a624adba7ea7ccc1b3f28c614"
+SRC_URI += "git://github.com/k3s-io/runc;name=runc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/runc"
+
+# github.com/spf13/pflag v1.0.5
+# [1] git ls-remote https://github.com/spf13/pflag 2e9d26c8c37aae03e3f9d4e90b7116f5accb7cab
+SRCREV_pflag="2e9d26c8c37aae03e3f9d4e90b7116f5accb7cab"
+SRC_URI += "git://github.com/spf13/pflag;name=pflag;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/spf13/pflag"
+
+# google.golang.org/grpc v1.58.3
+# [1] git ls-remote https://github.com/grpc/grpc-go bf05b9558c16677e362d231120f8213eb276d406
+SRCREV_grpc="bf05b9558c16677e362d231120f8213eb276d406"
+SRC_URI += "git://github.com/grpc/grpc-go;name=grpc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/grpc"
+
+# github.com/flynn/noise v1.0.0
+# [1] git ls-remote https://github.com/flynn/noise 2499bf1bad239a8316c32932a993642350b3afdb
+SRCREV_noise="2499bf1bad239a8316c32932a993642350b3afdb"
+SRC_URI += "git://github.com/flynn/noise;name=noise;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/flynn/noise"
+
+# github.com/huin/goupnp v1.2.0
+# [1] git ls-remote https://github.com/huin/goupnp 8ca2329ddbfe051b906efe0883e7a66ac296bc0a
+SRCREV_goupnp="8ca2329ddbfe051b906efe0883e7a66ac296bc0a"
+SRC_URI += "git://github.com/huin/goupnp;name=goupnp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/huin/goupnp"
+
+# github.com/ipfs/go-cid v0.4.1
+# [1] git ls-remote https://github.com/ipfs/go-cid d46e7f28669cd2c463bc68fe86e7dbe4f8240ab7
+SRCREV_go-cid="d46e7f28669cd2c463bc68fe86e7dbe4f8240ab7"
+SRC_URI += "git://github.com/ipfs/go-cid;name=go-cid;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/ipfs/go-cid"
+
+# github.com/ipfs/go-log v1.0.5
+# [1] git ls-remote https://github.com/ipfs/go-log c39ee80c0915c5cca41dc1311e848c2fd7fa4101
+SRCREV_go-log="c39ee80c0915c5cca41dc1311e848c2fd7fa4101"
+SRC_URI += "git://github.com/ipfs/go-log;name=go-log;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/ipfs/go-log"
+
+# github.com/spf13/afero v1.11.0
+# [1] git ls-remote https://github.com/spf13/afero 5c4385aa20510dba5ca4db12c02b0c9211d82892
+SRCREV_afero="5c4385aa20510dba5ca4db12c02b0c9211d82892"
+SRC_URI += "git://github.com/spf13/afero;name=afero;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/spf13/afero"
+
+# github.com/cilium/ebpf v0.9.1
+# [1] git ls-remote https://github.com/cilium/ebpf d560e4479b395c4523851a4571b04ba0b3846cd1
+SRCREV_ebpf="d560e4479b395c4523851a4571b04ba0b3846cd1"
+SRC_URI += "git://github.com/cilium/ebpf;name=ebpf;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/cilium/ebpf"
+
+# github.com/ghodss/yaml v1.0.0
+# [1] git ls-remote https://github.com/ghodss/yaml 0ca9ea5df5451ffdf184b4428c902747c2c11cd7
+SRCREV_ghodss-yaml="0ca9ea5df5451ffdf184b4428c902747c2c11cd7"
+SRC_URI += "git://github.com/ghodss/yaml;name=ghodss-yaml;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/ghodss/yaml"
+
+# github.com/gofrs/flock v0.8.1
+# [1] git ls-remote https://github.com/gofrs/flock 6f010d1acea74a32f2f2066bfe324c08bbee30e3
+SRCREV_flock="6f010d1acea74a32f2f2066bfe324c08bbee30e3"
+SRC_URI += "git://github.com/gofrs/flock;name=flock;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/gofrs/flock"
+
+# github.com/moby/locker v1.0.1
+# [1] git ls-remote https://github.com/moby/locker 281af2d563954745bea9d1487c965f24d30742fe
+SRCREV_locker="281af2d563954745bea9d1487c965f24d30742fe"
+SRC_URI += "git://github.com/moby/locker;name=locker;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/locker"
+
+# github.com/pierrec/lz4 v2.6.0+incompatible
+# [1] git ls-remote https://github.com/pierrec/lz4 0e583d326e0ec6b9c1ad223188dc709af385408e
+SRCREV_lz4="0e583d326e0ec6b9c1ad223188dc709af385408e"
+SRC_URI += "git://github.com/pierrec/lz4;name=lz4;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/pierrec/lz4"
+
+# github.com/spf13/cobra v1.8.0
+# [1] git ls-remote https://github.com/spf13/cobra a0a6ae020bb3899ff0276067863e50523f897370
+SRCREV_cobra="a0a6ae020bb3899ff0276067863e50523f897370"
+SRC_URI += "git://github.com/spf13/cobra;name=cobra;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/spf13/cobra"
+
+# github.com/go-logr/logr v1.4.1
+# [1] git ls-remote https://github.com/go-logr/logr dcdc3f2cd12e8a5c4e2a6712d6958c90e2e5bd98
+SRCREV_logr="dcdc3f2cd12e8a5c4e2a6712d6958c90e2e5bd98"
+SRC_URI += "git://github.com/go-logr/logr;name=logr;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-logr/logr"
+
+# github.com/go-logr/stdr v1.2.3-0.20220714215716-96bad1d688c5
+# [1] git ls-remote https://github.com/go-logr/stdr 96bad1d688c524409b0da98c82fb7d3d51e60639
+SRCREV_stdr="96bad1d688c524409b0da98c82fb7d3d51e60639"
+SRC_URI += "git://github.com/go-logr/stdr;name=stdr;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-logr/stdr"
+
+# github.com/go-test/deep v1.0.7
+# [1] git ls-remote https://github.com/go-test/deep c733f5ed5136b7437e29ac91bb97c653af3694b5
+SRCREV_deep="c733f5ed5136b7437e29ac91bb97c653af3694b5"
+SRC_URI += "git://github.com/go-test/deep;name=deep;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-test/deep"
+
+# github.com/otiai10/copy v1.7.0
+# [1] git ls-remote https://github.com/otiai10/copy 323db161ae97db91e6e13dbcda403fdb29c3fff8
+SRCREV_copy="323db161ae97db91e6e13dbcda403fdb29c3fff8"
+SRC_URI += "git://github.com/otiai10/copy;name=copy;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/otiai10/copy"
+
+# lukechampine.com/blake3 v1.2.1
+# [1] git ls-remote https://github.com/lukechampine/blake3 6e4325968f64ca24b1bbc8fbf08ea320d17ebfa0
+SRCREV_blake3="6e4325968f64ca24b1bbc8fbf08ea320d17ebfa0"
+SRC_URI += "git://github.com/lukechampine/blake3;name=blake3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/lukechampine.com/blake3"
+
+# github.com/Rican7/retry v0.1.0
+# [1] git ls-remote https://github.com/Rican7/retry 28d17f812805614e76f170aa3c8698155ea8e019
+SRCREV_retry="28d17f812805614e76f170aa3c8698155ea8e019"
+SRC_URI += "git://github.com/Rican7/retry;name=retry;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Rican7/retry"
+
+# github.com/beorn7/perks v1.0.1
+# [1] git ls-remote https://github.com/beorn7/perks 37c8de3658fcb183f997c4e13e8337516ab753e6
+SRCREV_perks="37c8de3658fcb183f997c4e13e8337516ab753e6"
+SRC_URI += "git://github.com/beorn7/perks;name=perks;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/beorn7/perks"
+
+# github.com/blang/semver v3.5.1+incompatible
+# [1] git ls-remote https://github.com/blang/semver 2ee87856327ba09384cabd113bc6b5d174e9ec0f
+SRCREV_semver="2ee87856327ba09384cabd113bc6b5d174e9ec0f"
+SRC_URI += "git://github.com/blang/semver;name=semver;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/blang/semver"
+
+# github.com/google/btree v1.1.2
+# [1] git ls-remote https://github.com/google/btree 8e29150ba321eef204059de2ab494f179b6cff2c
+SRCREV_btree="8e29150ba321eef204059de2ab494f179b6cff2c"
+SRC_URI += "git://github.com/google/btree;name=btree;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/btree"
+
+# github.com/google/pprof v0.0.0-20230821062121-407c9e7a662f
+# [1] git ls-remote https://github.com/google/pprof 407c9e7a662f39c592c77f0db959db282b687a32
+SRCREV_pprof="407c9e7a662f39c592c77f0db959db282b687a32"
+SRC_URI += "git://github.com/google/pprof;name=pprof;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/pprof"
+
+# github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510
+# [1] git ls-remote https://github.com/google/shlex e7afc7fbc51079733e9468cdfd1efcd7d196cd1d
+SRCREV_shlex="e7afc7fbc51079733e9468cdfd1efcd7d196cd1d"
+SRC_URI += "git://github.com/google/shlex;name=shlex;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/shlex"
+
+# github.com/jackc/pgx/v5 v5.4.2
+# [1] git ls-remote https://github.com/jackc/pgx 038fc448c1cc91b9372a6a0d151789f41536f033
+SRCREV_pgx-v5="038fc448c1cc91b9372a6a0d151789f41536f033"
+SRC_URI += "git://github.com/jackc/pgx;name=pgx-v5;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/jackc/pgx/v5"
+
+# github.com/miekg/pkcs11 v1.1.1
+# [1] git ls-remote https://github.com/miekg/pkcs11 f3481918a208bd212aa995a41f92d786eb418a7d
+SRCREV_pkcs11="f3481918a208bd212aa995a41f92d786eb418a7d"
+SRC_URI += "git://github.com/miekg/pkcs11;name=pkcs11;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/miekg/pkcs11"
+
+# github.com/morikuni/aec v1.0.0
+# [1] git ls-remote https://github.com/morikuni/aec 39771216ff4c63d11f5e604076f9c45e8be1067b
+SRCREV_aec="39771216ff4c63d11f5e604076f9c45e8be1067b"
+SRC_URI += "git://github.com/morikuni/aec;name=aec;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/morikuni/aec"
+
+# github.com/nats-io/nuid v1.0.1
+# [1] git ls-remote https://github.com/nats-io/nuid 4b96681fa6d28dd0ab5fe79bac63b3a493d9ee94
+SRCREV_nuid="4b96681fa6d28dd0ab5fe79bac63b3a493d9ee94"
+SRC_URI += "git://github.com/nats-io/nuid;name=nuid;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/nats-io/nuid"
+
+# github.com/docker/docker v24.0.0-rc.2.0.20230801142700-69c9adb7d386+incompatible
+# [1] git ls-remote https://github.com/moby/moby 69c9adb7d3868cb0560b1ffcef798015c5a70510
+SRCREV_docker="69c9adb7d3868cb0560b1ffcef798015c5a70510"
+SRC_URI += "git://github.com/moby/moby;name=docker;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/docker"
+
+# github.com/rancher/lasso v0.0.0-20230830164424-d684fdeb6f29
+# [1] git ls-remote https://github.com/rancher/lasso d684fdeb6f29e221289c6f59fdc390b6adbaaccf
+SRCREV_lasso="d684fdeb6f29e221289c6f59fdc390b6adbaaccf"
+SRC_URI += "git://github.com/rancher/lasso;name=lasso;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/rancher/lasso"
+
+# github.com/k3s-io/spegel v0.0.17-0.20240109004735-9466a5529330
+# [1] git ls-remote https://github.com/k3s-io/spegel 9466a55293301075a2d1613a3744c6bf45342e8b
+SRCREV_spegel="9466a55293301075a2d1613a3744c6bf45342e8b"
+SRC_URI += "git://github.com/k3s-io/spegel;name=spegel;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/spegel"
+
+# github.com/gin-gonic/gin v1.9.1
+# [1] git ls-remote https://github.com/gin-gonic/gin 4ea0e648e38a63d6caff14100f5eab5c50912bcd
+SRCREV_gin="4ea0e648e38a63d6caff14100f5eab5c50912bcd"
+SRC_URI += "git://github.com/gin-gonic/gin;name=gin;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/gin-gonic/gin"
+
+# github.com/goccy/go-json v0.10.2
+# [1] git ls-remote https://github.com/goccy/go-json 8e8cdeacf2f2faef082f32848138f0f9af7cfb66
+SRCREV_go-json="8e8cdeacf2f2faef082f32848138f0f9af7cfb66"
+SRC_URI += "git://github.com/goccy/go-json;name=go-json;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/goccy/go-json"
+
+# github.com/golang/snappy v0.0.4
+# [1] git ls-remote https://github.com/golang/snappy 544b4180ac705b7605231d4a4550a1acb22a19fe
+SRCREV_snappy="544b4180ac705b7605231d4a4550a1acb22a19fe"
+SRC_URI += "git://github.com/golang/snappy;name=snappy;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/golang/snappy"
+
+# github.com/koron/go-ssdp v0.0.4
+# [1] git ls-remote https://github.com/koron/go-ssdp 615e2904c24d115f20139e60b9ab5916b1dfd55d
+SRCREV_go-ssdp="615e2904c24d115f20139e60b9ab5916b1dfd55d"
+SRC_URI += "git://github.com/koron/go-ssdp;name=go-ssdp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/koron/go-ssdp"
+
+# github.com/libp2p/go-nat v0.2.0
+# [1] git ls-remote https://github.com/libp2p/go-nat 14ce74b6949ca4d3f4889568e20840bdf0b05009
+SRCREV_go-nat="14ce74b6949ca4d3f4889568e20840bdf0b05009"
+SRC_URI += "git://github.com/libp2p/go-nat;name=go-nat;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/libp2p/go-nat"
+
+# github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc
+# [1] git ls-remote https://github.com/mikioh/tcpopt 172688c1accceb1c8699343c22838f55e4b662ca
+SRCREV_tcpopt="172688c1accceb1c8699343c22838f55e4b662ca"
+SRC_URI += "git://github.com/mikioh/tcpopt;name=tcpopt;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mikioh/tcpopt"
+
+# github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58
+# [1] git ls-remote https://github.com/pbnjay/memory 7b4eea64cf580186c0eceb10dc94ba3a098af46c
+SRCREV_memory="7b4eea64cf580186c0eceb10dc94ba3a098af46c"
+SRC_URI += "git://github.com/pbnjay/memory;name=memory;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/pbnjay/memory"
+
+# github.com/quic-go/qpack v0.4.0
+# [1] git ls-remote https://github.com/quic-go/qpack 3e7287cc7ce655141583b8511fbe09800d4ba896
+SRCREV_qpack="3e7287cc7ce655141583b8511fbe09800d4ba896"
+SRC_URI += "git://github.com/quic-go/qpack;name=qpack;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/quic-go/qpack"
+
+# github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e
+# [1] git ls-remote https://github.com/armon/circbuf bbbad097214e2918d8543d5201d12bfd7bca254d
+SRCREV_circbuf="bbbad097214e2918d8543d5201d12bfd7bca254d"
+SRC_URI += "git://github.com/armon/circbuf;name=circbuf;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/armon/circbuf"
+
+# github.com/gogo/protobuf v1.3.2
+# [1] git ls-remote https://github.com/gogo/protobuf b03c65ea87cdc3521ede29f62fe3ce239267c1bc
+SRCREV_protobuf="b03c65ea87cdc3521ede29f62fe3ce239267c1bc"
+SRC_URI += "git://github.com/gogo/protobuf;name=protobuf;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/gogo/protobuf"
+
+# github.com/google/cel-go v0.16.1
+# [1] git ls-remote https://github.com/google/cel-go 59a1b5d69d8d826a02e8e3d7911121ea60cba987
+SRCREV_cel-go="59a1b5d69d8d826a02e8e3d7911121ea60cba987"
+SRC_URI += "git://github.com/google/cel-go;name=cel-go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/cel-go"
+
+# github.com/google/go-cmp v0.6.0
+# [1] git ls-remote https://github.com/google/go-cmp c3ad8435e7bef96af35732bc0789e5a2278c6d5f
+SRCREV_go-cmp="c3ad8435e7bef96af35732bc0789e5a2278c6d5f"
+SRC_URI += "git://github.com/google/go-cmp;name=go-cmp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/go-cmp"
+
+# github.com/google/gofuzz v1.2.0
+# [1] git ls-remote https://github.com/google/gofuzz 379e164120fbc98885a8f494b5aa41ba94f64c56
+SRCREV_gofuzz="379e164120fbc98885a8f494b5aa41ba94f64c56"
+SRC_URI += "git://github.com/google/gofuzz;name=gofuzz;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/gofuzz"
+
+# github.com/google/s2a-go v0.1.7
+# [1] git ls-remote https://github.com/google/s2a-go 141996cc2c0b07d53f1970aa1b2e8e5dde4a7a52
+SRCREV_s2a-go="141996cc2c0b07d53f1970aa1b2e8e5dde4a7a52"
+SRC_URI += "git://github.com/google/s2a-go;name=s2a-go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/s2a-go"
+
+# github.com/imdario/mergo v0.3.16
+# [1] git ls-remote https://github.com/darccio/mergo 14fe2b165b83359196f820886a2b24f2771729e9
+SRCREV_mergo="14fe2b165b83359196f820886a2b24f2771729e9"
+SRC_URI += "git://github.com/darccio/mergo;name=mergo;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/imdario/mergo"
+
+# github.com/nats-io/nkeys v0.4.6
+# [1] git ls-remote https://github.com/nats-io/nkeys 62e5d8c7c4af84283b6535bcbf1300ab25b45e2d
+SRCREV_nkeys="62e5d8c7c4af84283b6535bcbf1300ab25b45e2d"
+SRC_URI += "git://github.com/nats-io/nkeys;name=nkeys;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/nats-io/nkeys"
+
+# github.com/soheilhy/cmux v0.1.5
+# [1] git ls-remote https://github.com/soheilhy/cmux 5ec6847320e53b5fee0ab9a4757b56625a946c85
+SRCREV_cmux="5ec6847320e53b5fee0ab9a4757b56625a946c85"
+SRC_URI += "git://github.com/soheilhy/cmux;name=cmux;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/soheilhy/cmux"
+
+# github.com/tidwall/btree v1.6.0
+# [1] git ls-remote https://github.com/tidwall/btree c538c0ce1d47ebada0c423fd430978ba274d7d68
+SRCREV_tidwall-btree="c538c0ce1d47ebada0c423fd430978ba274d7d68"
+SRC_URI += "git://github.com/tidwall/btree;name=tidwall-btree;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/tidwall/btree"
+
+# github.com/urfave/cli/v2 v2.23.5
+# [1] git ls-remote https://github.com/urfave/cli 600ef6e4dd5db1819a8eb0b453487bf1c0e59099
+SRCREV_cli-v2="600ef6e4dd5db1819a8eb0b453487bf1c0e59099"
+SRC_URI += "git://github.com/urfave/cli;name=cli-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/urfave/cli/v2"
+
+# go.opentelemetry.io/otel v1.13.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go f2fd476f433128c2494476950ce11600a51bbe35
+SRCREV_otel="f2fd476f433128c2494476950ce11600a51bbe35"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=otel;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel"
+
+# github.com/containerd/zfs v1.1.0
+# [1] git ls-remote https://github.com/containerd/zfs 26134297cde4138b412644d6819c20b105472991
+SRCREV_zfs="26134297cde4138b412644d6819c20b105472991"
+SRC_URI += "git://github.com/containerd/zfs;name=zfs;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/zfs"
+
+# github.com/ipfs/go-log/v2 v2.5.1
+# [1] git ls-remote https://github.com/ipfs/go-log 8625e3ec81bdeb96627de192e6fe21eab5896603
+SRCREV_go-log-v2="8625e3ec81bdeb96627de192e6fe21eab5896603"
+SRC_URI += "git://github.com/ipfs/go-log;name=go-log-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/ipfs/go-log/v2"
+
+# github.com/onsi/ginkgo/v2 v2.11.0
+# [1] git ls-remote https://github.com/onsi/ginkgo 5c32b2a6408b866b04774abad81eca2274f4fb5b
+SRCREV_ginkgo-v2="5c32b2a6408b866b04774abad81eca2274f4fb5b"
+SRC_URI += "git://github.com/onsi/ginkgo;name=ginkgo-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/onsi/ginkgo/v2"
+
+# github.com/robfig/cron/v3 v3.0.1
+# [1] git ls-remote https://github.com/robfig/cron ccba498c397bb90a9c84945bbb0f7af2d72b6309
+SRCREV_cron-v3="ccba498c397bb90a9c84945bbb0f7af2d72b6309"
+SRC_URI += "git://github.com/robfig/cron;name=cron-v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/robfig/cron/v3"
+
+# github.com/k3s-io/klog/v2 v2.100.1-k3s1
+# [1] git ls-remote https://github.com/k3s-io/klog 977d5aa511a87a6cfa1d251772bcd5344c8d1280
+SRCREV_klog-v2="977d5aa511a87a6cfa1d251772bcd5344c8d1280"
+SRC_URI += "git://github.com/k3s-io/klog;name=klog-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/klog/v2"
+
+# github.com/leodido/go-urn v1.2.4
+# [1] git ls-remote https://github.com/leodido/go-urn 87e1d5ed73ec8689aa799a976831dcf6c81c8c98
+SRCREV_go-urn="87e1d5ed73ec8689aa799a976831dcf6c81c8c98"
+SRC_URI += "git://github.com/leodido/go-urn;name=go-urn;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/leodido/go-urn"
+
+# github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b
+# [1] git ls-remote https://github.com/mikioh/tcpinfo 30a79bb1804bc47fa7fe29928c9109f368792a9e
+SRCREV_tcpinfo="30a79bb1804bc47fa7fe29928c9109f368792a9e"
+SRC_URI += "git://github.com/mikioh/tcpinfo;name=tcpinfo;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mikioh/tcpinfo"
+
+# github.com/mr-tron/base58 v1.2.0
+# [1] git ls-remote https://github.com/mr-tron/base58 cd0e5141f51dfcadb8311fd8e495eb11126a8010
+SRCREV_base58="cd0e5141f51dfcadb8311fd8e495eb11126a8010"
+SRC_URI += "git://github.com/mr-tron/base58;name=base58;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mr-tron/base58"
+
+# github.com/polydawn/refmt v0.89.0
+# [1] git ls-remote https://github.com/polydawn/refmt ad1efcb83999082a4ec5ac34b9d5c08bc388faf3
+SRCREV_refmt="ad1efcb83999082a4ec5ac34b9d5c08bc388faf3"
+SRC_URI += "git://github.com/polydawn/refmt;name=refmt;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/polydawn/refmt"
+
+# github.com/containerd/log v0.1.0
+# [1] git ls-remote https://github.com/containerd/log 0fc1e28871fdf2786e2cc51bbe4133db6547a199
+SRCREV_log="0fc1e28871fdf2786e2cc51bbe4133db6547a199"
+SRC_URI += "git://github.com/containerd/log;name=log;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/log"
+
+# github.com/containerd/nri v0.4.0
+# [1] git ls-remote https://github.com/containerd/nri e2d9a1b06b9d0916b0074340990df0fbe3388dd1
+SRCREV_nri="e2d9a1b06b9d0916b0074340990df0fbe3388dd1"
+SRC_URI += "git://github.com/containerd/nri;name=nri;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/nri"
+
+# github.com/coreos/go-oidc v2.2.1+incompatible
+# [1] git ls-remote https://github.com/coreos/go-oidc 8d771559cf6e5111c9b9159810d0e4538e7cdc82
+SRCREV_go-oidc="8d771559cf6e5111c9b9159810d0e4538e7cdc82"
+SRC_URI += "git://github.com/coreos/go-oidc;name=go-oidc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/coreos/go-oidc"
+
+# github.com/godbus/dbus/v5 v5.1.0
+# [1] git ls-remote https://github.com/godbus/dbus e523abc905595cf17fb0001a7d77eaaddfaa216d
+SRCREV_dbus-v5="e523abc905595cf17fb0001a7d77eaaddfaa216d"
+SRC_URI += "git://github.com/godbus/dbus;name=dbus-v5;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/godbus/dbus/v5"
+
+# github.com/minio/md5-simd v1.1.2
+# [1] git ls-remote https://github.com/minio/md5-simd 776275e0c9a74ceebbd50fe5c1d61b0c80c608df
+SRCREV_md5-simd="776275e0c9a74ceebbd50fe5c1d61b0c80c608df"
+SRC_URI += "git://github.com/minio/md5-simd;name=md5-simd;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/minio/md5-simd"
+
+# github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826
+# [1] git ls-remote https://github.com/mohae/deepcopy c48cc78d482608239f6c4c92a4abd87eb8761c90
+SRCREV_deepcopy="c48cc78d482608239f6c4c92a4abd87eb8761c90"
+SRC_URI += "git://github.com/mohae/deepcopy;name=deepcopy;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mohae/deepcopy"
+
+# github.com/nats-io/jsm.go v0.0.31-0.20220317133147-fe318f464eee
+# [1] git ls-remote https://github.com/nats-io/jsm.go fe318f464eee9ceef6120ea851e5cf94a0497ac6
+SRCREV_jsm.go="fe318f464eee9ceef6120ea851e5cf94a0497ac6"
+SRC_URI += "git://github.com/nats-io/jsm.go;name=jsm.go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/nats-io/jsm.go"
+
+# github.com/nats-io/jwt/v2 v2.5.3
+# [1] git ls-remote https://github.com/nats-io/jwt 457367366f2ff72a3fefeed38b56a1da281476fb
+SRCREV_jwt-v2="457367366f2ff72a3fefeed38b56a1da281476fb"
+SRC_URI += "git://github.com/nats-io/jwt;name=jwt-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/nats-io/jwt/v2"
+
+# github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021
+# [1] git ls-remote https://github.com/rubiojr/go-vhd 02e2102990218160c1cb608a3e9679312a3b8425
+SRCREV_go-vhd="02e2102990218160c1cb608a3e9679312a3b8425"
+SRC_URI += "git://github.com/rubiojr/go-vhd;name=go-vhd;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/rubiojr/go-vhd"
+
+# github.com/vmware/govmomi v0.30.6
+# [1] git ls-remote https://github.com/vmware/govmomi 55614148d1fe0df8ac8e04174ffd2344e374adb8
+SRCREV_govmomi="55614148d1fe0df8ac8e04174ffd2344e374adb8"
+SRC_URI += "git://github.com/vmware/govmomi;name=govmomi;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/vmware/govmomi"
+
+# github.com/xlab/treeprint v1.2.0
+# [1] git ls-remote https://github.com/xlab/treeprint 044005a3b405f660f109e066d9f589755835c2ea
+SRCREV_treeprint="044005a3b405f660f109e066d9f589755835c2ea"
+SRC_URI += "git://github.com/xlab/treeprint;name=treeprint;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/xlab/treeprint"
+
+# github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673
+# [1] git ls-remote https://github.com/xrash/smetrics 039620a656736e6ad994090895784a7af15e0b80
+SRCREV_smetrics="039620a656736e6ad994090895784a7af15e0b80"
+SRC_URI += "git://github.com/xrash/smetrics;name=smetrics;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/xrash/smetrics"
+
+# sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3
+# [1] git ls-remote https://github.com/kubernetes-sigs/kustomize 6ce0bf390ce3dae580947a2b739da3306c675eef
+SRCREV_kustomize-api="6ce0bf390ce3dae580947a2b739da3306c675eef"
+SRC_URI += "git://github.com/kubernetes-sigs/kustomize;name=kustomize-api;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/sigs.k8s.io/kustomize/api"
+
+# github.com/blang/semver/v4 v4.0.0
+# [1] git ls-remote https://github.com/blang/semver af3461a9cbcf1f3f5889d21b83f5ef63880c33a8
+SRCREV_v4="af3461a9cbcf1f3f5889d21b83f5ef63880c33a8"
+SRC_URI += "git://github.com/blang/semver;name=v4;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/blang/semver/v4"
+
+# github.com/containerd/aufs v1.0.0
+# [1] git ls-remote https://github.com/containerd/aufs fb0192dcb2c0bbfce3bd8756fc88026870c0354d
+SRCREV_aufs="fb0192dcb2c0bbfce3bd8756fc88026870c0354d"
+SRC_URI += "git://github.com/containerd/aufs;name=aufs;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/aufs"
+
+# github.com/google/cadvisor v0.47.3
+# [1] git ls-remote https://github.com/google/cadvisor c5730c5a72b527a724e7333d0e2f5b9a3ce5cf4d
+SRCREV_cadvisor="c5730c5a72b527a724e7333d0e2f5b9a3ce5cf4d"
+SRC_URI += "git://github.com/google/cadvisor;name=cadvisor;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/cadvisor"
+
+# github.com/rancher/wharfie v0.6.4
+# [1] git ls-remote https://github.com/rancher/wharfie afa72eb3bb2e8fc03366c87f4a51b6894ea65b2e
+SRCREV_wharfie="afa72eb3bb2e8fc03366c87f4a51b6894ea65b2e"
+SRC_URI += "git://github.com/rancher/wharfie;name=wharfie;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/rancher/wharfie"
+
+# github.com/sirupsen/logrus v1.9.3
+# [1] git ls-remote https://github.com/sirupsen/logrus d40e25cd45ed9c6b2b66e6b97573a0413e4c23bd
+SRCREV_logrus="d40e25cd45ed9c6b2b66e6b97573a0413e4c23bd"
+SRC_URI += "git://github.com/sirupsen/logrus;name=logrus;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/sirupsen/logrus"
+
+# github.com/bytedance/sonic v1.9.1
+# [1] git ls-remote https://github.com/bytedance/sonic d7db21691cb8c0380c14a41037c4ce67087260c5
+SRCREV_sonic="d7db21691cb8c0380c14a41037c4ce67087260c5"
+SRC_URI += "git://github.com/bytedance/sonic;name=sonic;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/bytedance/sonic"
+
+# github.com/elastic/gosigar v0.14.2
+# [1] git ls-remote https://github.com/elastic/gosigar 9d6c92629470099edd40ead9a3d8cf1b38020ec6
+SRCREV_gosigar="9d6c92629470099edd40ead9a3d8cf1b38020ec6"
+SRC_URI += "git://github.com/elastic/gosigar;name=gosigar;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/elastic/gosigar"
+
+# github.com/gin-contrib/sse v0.1.0
+# [1] git ls-remote https://github.com/gin-contrib/sse 54d8467d122d380a14768b6b4e5cd7ca4755938f
+SRCREV_sse="54d8467d122d380a14768b6b4e5cd7ca4755938f"
+SRC_URI += "git://github.com/gin-contrib/sse;name=sse;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/gin-contrib/sse"
+
+# github.com/google/gopacket v1.1.19
+# [1] git ls-remote https://github.com/google/gopacket a9779d139771f6a06fc983b18e0efd23ca30222f
+SRCREV_gopacket="a9779d139771f6a06fc983b18e0efd23ca30222f"
+SRC_URI += "git://github.com/google/gopacket;name=gopacket;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/gopacket"
+
+# github.com/libp2p/go-msgio v0.3.0
+# [1] git ls-remote https://github.com/libp2p/go-msgio 12f8f7a72c7dbbb246151e4c98b5a6d59e27e0c6
+SRCREV_go-msgio="12f8f7a72c7dbbb246151e4c98b5a6d59e27e0c6"
+SRC_URI += "git://github.com/libp2p/go-msgio;name=go-msgio;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/libp2p/go-msgio"
+
+# github.com/mattn/go-isatty v0.0.19
+# [1] git ls-remote https://github.com/mattn/go-isatty c067b4f3df49dfc0f376d884e16cfd784ea1874b
+SRCREV_go-isatty="c067b4f3df49dfc0f376d884e16cfd784ea1874b"
+SRC_URI += "git://github.com/mattn/go-isatty;name=go-isatty;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mattn/go-isatty"
+
+# github.com/quic-go/quic-go v0.38.2
+# [1] git ls-remote https://github.com/quic-go/quic-go 9aaefe19fc3dc8c8917cc87e6128bb56d9e9e6cc
+SRCREV_quic-go="9aaefe19fc3dc8c8917cc87e6128bb56d9e9e6cc"
+SRC_URI += "git://github.com/quic-go/quic-go;name=quic-go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/quic-go/quic-go"
+
+# github.com/ugorji/go/codec v1.2.11
+# [1] git ls-remote https://github.com/ugorji/go 29258c4dfb14a196b559b89bbee11927b830537e
+SRCREV_codec="29258c4dfb14a196b559b89bbee11927b830537e"
+SRC_URI += "git://github.com/ugorji/go;name=codec;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/ugorji/go/codec"
+
+# github.com/xenitab/pkg/gin v0.0.9
+# [1] git ls-remote https://github.com/xenitab/pkg 9331fe68723313fdd444403a41999761a294c50f
+SRCREV_pkg-gin="9331fe68723313fdd444403a41999761a294c50f"
+SRC_URI += "git://github.com/xenitab/pkg;name=pkg-gin;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/xenitab/pkg/gin"
+
+# github.com/containerd/fifo v1.1.0
+# [1] git ls-remote https://github.com/containerd/fifo 151b205263c29d471e0d55c787d2ce9f5343fd46
+SRCREV_fifo="151b205263c29d471e0d55c787d2ce9f5343fd46"
+SRC_URI += "git://github.com/containerd/fifo;name=fifo;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/fifo"
+
+# github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
+# [1] git ls-remote https://github.com/davecgh/go-spew d8f796af33cc11cb798c1aaeb27a4ebc5099927d
+SRCREV_go-spew="d8f796af33cc11cb798c1aaeb27a4ebc5099927d"
+SRC_URI += "git://github.com/davecgh/go-spew;name=go-spew;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/davecgh/go-spew"
+
+# github.com/docker/go-units v0.5.0
+# [1] git ls-remote https://github.com/docker/go-units e682442797b36348f8e1f98defdbf32bac0b6c6f
+SRCREV_go-units="e682442797b36348f8e1f98defdbf32bac0b6c6f"
+SRC_URI += "git://github.com/docker/go-units;name=go-units;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/go-units"
+
+# github.com/fatih/camelcase v1.0.0
+# [1] git ls-remote https://github.com/fatih/camelcase 44e46d280b43ec1531bb25252440e34f1b800b65
+SRCREV_camelcase="44e46d280b43ec1531bb25252440e34f1b800b65"
+SRC_URI += "git://github.com/fatih/camelcase;name=camelcase;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/fatih/camelcase"
+
+# github.com/go-openapi/swag v0.22.4
+# [1] git ls-remote https://github.com/go-openapi/swag f28dd7aae5534e2e3681204c90019f1dda8a7393
+SRCREV_swag="f28dd7aae5534e2e3681204c90019f1dda8a7393"
+SRC_URI += "git://github.com/go-openapi/swag;name=swag;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-openapi/swag"
+
+# github.com/golang/protobuf v1.5.3
+# [1] git ls-remote https://github.com/golang/protobuf 5d5e8c018a13017f9d5b8bf4fad64aaa42a87308
+SRCREV_golang-protobuf="5d5e8c018a13017f9d5b8bf4fad64aaa42a87308"
+SRC_URI += "git://github.com/golang/protobuf;name=golang-protobuf;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/golang/protobuf"
+
+# github.com/intel/goresctrl v0.3.0
+# [1] git ls-remote https://github.com/intel/goresctrl c40cbba82c8e94fe89926174efc817586bb3950a
+SRCREV_goresctrl="c40cbba82c8e94fe89926174efc817586bb3950a"
+SRC_URI += "git://github.com/intel/goresctrl;name=goresctrl;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/intel/goresctrl"
+
+# github.com/jackc/pgerrcode v0.0.0-20220416144525-469b46aa5efa
+# [1] git ls-remote https://github.com/jackc/pgerrcode 469b46aa5efae8a229646096c4d7026bf9ff89fe
+SRCREV_pgerrcode="469b46aa5efae8a229646096c4d7026bf9ff89fe"
+SRC_URI += "git://github.com/jackc/pgerrcode;name=pgerrcode;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/jackc/pgerrcode"
+
+# github.com/mailru/easyjson v0.7.7
+# [1] git ls-remote https://github.com/mailru/easyjson c120ca7ced6051261161ce15e8f1542a4b2567fc
+SRCREV_easyjson="c120ca7ced6051261161ce15e8f1542a4b2567fc"
+SRC_URI += "git://github.com/mailru/easyjson;name=easyjson;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mailru/easyjson"
+
+# github.com/mdlayher/socket v0.4.1
+# [1] git ls-remote https://github.com/mdlayher/socket 024cdfb30ba417ac6f1b27bb5189a8099787dcf7
+SRCREV_socket="024cdfb30ba417ac6f1b27bb5189a8099787dcf7"
+SRC_URI += "git://github.com/mdlayher/socket;name=socket;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mdlayher/socket"
+
+# github.com/moby/spdystream v0.2.0
+# [1] git ls-remote https://github.com/moby/spdystream dbc715126c0e3fa07721879c6d265b2b82c71e5b
+SRCREV_spdystream="dbc715126c0e3fa07721879c6d265b2b82c71e5b"
+SRC_URI += "git://github.com/moby/spdystream;name=spdystream;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/spdystream"
+
+# github.com/moby/sys/signal v0.7.0
+# [1] git ls-remote https://github.com/moby/sys b8d8fabf1fa5cf0de7c1a1729145eee854ea31f5
+SRCREV_signal="b8d8fabf1fa5cf0de7c1a1729145eee854ea31f5"
+SRC_URI += "git://github.com/moby/sys;name=signal;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/sys/signal"
+
+# github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f
+# [1] git ls-remote https://github.com/mxk/go-flowrate cca7078d478f8520f85629ad7c68962d31ed7682
+SRCREV_go-flowrate="cca7078d478f8520f85629ad7c68962d31ed7682"
+SRC_URI += "git://github.com/mxk/go-flowrate;name=go-flowrate;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mxk/go-flowrate"
+
+# github.com/nats-io/nats.go v1.31.0
+# [1] git ls-remote https://github.com/nats-io/nats.go 8712190da1d17ab0c4719bffa7c0174214c56e6c
+SRCREV_nats.go="8712190da1d17ab0c4719bffa7c0174214c56e6c"
+SRC_URI += "git://github.com/nats-io/nats.go;name=nats.go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/nats-io/nats.go"
+
+# github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510
+# [1] git ls-remote https://github.com/xiang90/probing a49e3df8f510ee8b42e68345ca4636dbb161bd0a
+SRCREV_probing="a49e3df8f510ee8b42e68345ca4636dbb161bd0a"
+SRC_URI += "git://github.com/xiang90/probing;name=probing;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/xiang90/probing"
+
+# golang.zx2c4.com/wireguard v0.0.0-20230325221338-052af4a8072b
+# [1] git ls-remote https://git.zx2c4.com/wireguard-go 052af4a8072bbbd3bfe7edf46fe3c1b350f71f08
+SRCREV_wireguard="052af4a8072bbbd3bfe7edf46fe3c1b350f71f08"
+SRC_URI += "git://git.zx2c4.com/wireguard-go;name=wireguard;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.zx2c4.com/wireguard"
+
+# google.golang.org/genproto v0.0.0-20230525234035-dd9d682886f9
+# [1] git ls-remote https://github.com/googleapis/go-genproto dd9d682886f99d242574cd3eaea438ce7ea66399
+SRCREV_genproto="dd9d682886f99d242574cd3eaea438ce7ea66399"
+SRC_URI += "git://github.com/googleapis/go-genproto;name=genproto;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/genproto"
+
+# google.golang.org/protobuf v1.31.0
+# [1] git ls-remote https://github.com/protocolbuffers/protobuf-go 68463f0e96c93bc19ef36ccd3adfe690bfdb568c
+SRCREV_google.golang.org-protobuf="68463f0e96c93bc19ef36ccd3adfe690bfdb568c"
+SRC_URI += "git://github.com/protocolbuffers/protobuf-go;name=google.golang.org-protobuf;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/protobuf"
+
+# gopkg.in/square/go-jose.v2 v2.6.0
+# [1] git ls-remote https://github.com/square/go-jose a10ff54e00bc6e833bf549e04ae976f0fe8ea2fd
+SRCREV_go-jose.v2="a10ff54e00bc6e833bf549e04ae976f0fe8ea2fd"
+SRC_URI += "git://github.com/square/go-jose;name=go-jose.v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/square/go-jose.v2"
+
+# github.com/json-iterator/go v1.1.12
+# [1] git ls-remote https://github.com/json-iterator/go 024077e996b048517130b21ea6bf12aa23055d3d
+SRCREV_go="024077e996b048517130b21ea6bf12aa23055d3d"
+SRC_URI += "git://github.com/json-iterator/go;name=go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/json-iterator/go"
+
+# github.com/k3s-io/cri-tools v1.26.0-rc.0-k3s1
+# [1] git ls-remote https://github.com/k3s-io/cri-tools 029d9bbf8bfb43c46a80b013cb6bf163739df0c8
+SRCREV_cri-tools="029d9bbf8bfb43c46a80b013cb6bf163739df0c8"
+SRC_URI += "git://github.com/k3s-io/cri-tools;name=cri-tools;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/cri-tools"
+
+# github.com/libp2p/go-libp2p v0.30.0
+# [1] git ls-remote https://github.com/libp2p/go-libp2p 37319a699f336e3e062c7894f44d47db3fea4dc2
+SRCREV_go-libp2p="37319a699f336e3e062c7894f44d47db3fea4dc2"
+SRC_URI += "git://github.com/libp2p/go-libp2p;name=go-libp2p;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/libp2p/go-libp2p"
+
+# github.com/mattn/go-sqlite3 v1.14.19
+# [1] git ls-remote https://github.com/mattn/go-sqlite3 00b02e0ba98effd5f157d39216e244af8a807f9b
+SRCREV_go-sqlite3="00b02e0ba98effd5f157d39216e244af8a807f9b"
+SRC_URI += "git://github.com/mattn/go-sqlite3;name=go-sqlite3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mattn/go-sqlite3"
+
+# github.com/rancher/wrangler v1.1.1-0.20230818201331-3604a6be798d
+# [1] git ls-remote https://github.com/rancher/wrangler 3604a6be798d0e52e1d935d61d57b4ecbd5dfb2a
+SRCREV_wrangler="3604a6be798d0e52e1d935d61d57b4ecbd5dfb2a"
+SRC_URI += "git://github.com/rancher/wrangler;name=wrangler;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/rancher/wrangler"
+
+# github.com/stretchr/testify v1.8.4
+# [1] git ls-remote https://github.com/stretchr/testify f97607b89807936ac4ff96748d766cf4b9711f78
+SRCREV_testify="f97607b89807936ac4ff96748d766cf4b9711f78"
+SRC_URI += "git://github.com/stretchr/testify;name=testify;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/stretchr/testify"
+
+# github.com/jbenet/goprocess v0.1.4
+# [1] git ls-remote https://github.com/jbenet/goprocess 23d20c20149e1f362afda26f4500cb9d6393f0ad
+SRCREV_goprocess="23d20c20149e1f362afda26f4500cb9d6393f0ad"
+SRC_URI += "git://github.com/jbenet/goprocess;name=goprocess;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/jbenet/goprocess"
+
+# github.com/syndtr/goleveldb v1.0.0
+# [1] git ls-remote https://github.com/syndtr/goleveldb 9d007e481048296f09f59bd19bb7ae584563cd95
+SRCREV_goleveldb="9d007e481048296f09f59bd19bb7ae584563cd95"
+SRC_URI += "git://github.com/syndtr/goleveldb;name=goleveldb;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/syndtr/goleveldb"
+
+# cloud.google.com/go/compute v1.23.3
+# [1] git ls-remote https://github.com/googleapis/google-cloud-go 2ba47cb7adfef32617eb11888331ccc2d2a0f84d
+SRCREV_compute="2ba47cb7adfef32617eb11888331ccc2d2a0f84d"
+SRC_URI += "git://github.com/googleapis/google-cloud-go;name=compute;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/cloud.google.com/go/compute"
+
+# github.com/containerd/ttrpc v1.2.2
+# [1] git ls-remote https://github.com/containerd/ttrpc ac26f8cbea1c440d451dd19a4a1b847fd073f3c3
+SRCREV_ttrpc="ac26f8cbea1c440d451dd19a4a1b847fd073f3c3"
+SRC_URI += "git://github.com/containerd/ttrpc;name=ttrpc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/ttrpc"
+
+# github.com/coreos/go-semver v0.3.1
+# [1] git ls-remote https://github.com/coreos/go-semver c16f28124668daf02b2a32a431dec2f183977ffc
+SRCREV_go-semver="c16f28124668daf02b2a32a431dec2f183977ffc"
+SRC_URI += "git://github.com/coreos/go-semver;name=go-semver;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/coreos/go-semver"
+
+# github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c
+# [1] git ls-remote https://github.com/docker/go-events e31b211e4f1cd09aa76fe4ac244571fab96ae47f
+SRCREV_go-events="e31b211e4f1cd09aa76fe4ac244571fab96ae47f"
+SRC_URI += "git://github.com/docker/go-events;name=go-events;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/go-events"
+
+# github.com/go-errors/errors v1.4.2
+# [1] git ls-remote https://github.com/go-errors/errors 33d496f939bc762321a636d4035e15c302eb0b00
+SRCREV_go-errors-errors="33d496f939bc762321a636d4035e15c302eb0b00"
+SRC_URI += "git://github.com/go-errors/errors;name=go-errors-errors;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-errors/errors"
+
+# github.com/jackc/pgpassfile v1.0.0
+# [1] git ls-remote https://github.com/jackc/pgpassfile 99d8e8e28945ffceaf75b0299fcb2bb656b8a683
+SRCREV_pgpassfile="99d8e8e28945ffceaf75b0299fcb2bb656b8a683"
+SRC_URI += "git://github.com/jackc/pgpassfile;name=pgpassfile;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/jackc/pgpassfile"
+
+# github.com/josharian/intern v1.0.0
+# [1] git ls-remote https://github.com/josharian/intern 8e6ff32b3e7c0b018c43953085fe2ac330fe9acd
+SRCREV_intern="8e6ff32b3e7c0b018c43953085fe2ac330fe9acd"
+SRC_URI += "git://github.com/josharian/intern;name=intern;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/josharian/intern"
+
+# github.com/josharian/native v1.1.0
+# [1] git ls-remote https://github.com/josharian/native c1e37c09b531b14ae12a501eb6fd529b31cecdaa
+SRCREV_native="c1e37c09b531b14ae12a501eb6fd529b31cecdaa"
+SRC_URI += "git://github.com/josharian/native;name=native;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/josharian/native"
+
+# github.com/lithammer/dedent v1.1.0
+# [1] git ls-remote https://github.com/lithammer/dedent 8478954c3bc893cf36c5ee7c822266b993a3b3ee
+SRCREV_dedent="8478954c3bc893cf36c5ee7c822266b993a3b3ee"
+SRC_URI += "git://github.com/lithammer/dedent;name=dedent;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/lithammer/dedent"
+
+# github.com/mdlayher/netlink v1.7.2
+# [1] git ls-remote https://github.com/mdlayher/netlink 657f7da1d9bd78d246ae610e0b5efc63a6a5f9e4
+SRCREV_mdlayher-netlink="657f7da1d9bd78d246ae610e0b5efc63a6a5f9e4"
+SRC_URI += "git://github.com/mdlayher/netlink;name=mdlayher-netlink;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mdlayher/netlink"
+
+# github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible
+# [1] git ls-remote https://github.com/mistifyio/go-zfs f784269be439d704d3dfa1906f45dd848fed2beb
+SRCREV_go-zfs="f784269be439d704d3dfa1906f45dd848fed2beb"
+SRC_URI += "git://github.com/mistifyio/go-zfs;name=go-zfs;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mistifyio/go-zfs"
+
+# github.com/moby/sys/symlink v0.2.0
+# [1] git ls-remote https://github.com/moby/sys 03b9f8d59a07f5206a2264105f4903a222aea964
+SRCREV_symlink="03b9f8d59a07f5206a2264105f4903a222aea964"
+SRC_URI += "git://github.com/moby/sys;name=symlink;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/sys/symlink"
+
+# github.com/vbatts/tar-split v0.11.5
+# [1] git ls-remote https://github.com/vbatts/tar-split 5ef0dd8243164ebacd755916a89d8085a5b6bb7f
+SRCREV_tar-split="5ef0dd8243164ebacd755916a89d8085a5b6bb7f"
+SRC_URI += "git://github.com/vbatts/tar-split;name=tar-split;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/vbatts/tar-split"
+
+# google.golang.org/appengine v1.6.8
+# [1] git ls-remote https://github.com/golang/appengine aa58fcd18e4ab7ac816760ee266fa30a0907ab9e
+SRCREV_appengine="aa58fcd18e4ab7ac816760ee266fa30a0907ab9e"
+SRC_URI += "git://github.com/golang/appengine;name=appengine;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/appengine"
+
+# sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3
+# [1] git ls-remote https://github.com/kubernetes-sigs/kustomize 6ce0bf390ce3dae580947a2b739da3306c675eef
+SRCREV_kyaml="6ce0bf390ce3dae580947a2b739da3306c675eef"
+SRC_URI += "git://github.com/kubernetes-sigs/kustomize;name=kyaml;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/sigs.k8s.io/kustomize/kyaml"
+
+# github.com/Microsoft/hcsshim v0.11.0
+# [1] git ls-remote https://github.com/microsoft/hcsshim 750e11bf07440fd1581413bdc1fc7731fa2d6d64
+SRCREV_hcsshim="750e11bf07440fd1581413bdc1fc7731fa2d6d64"
+SRC_URI += "git://github.com/microsoft/hcsshim;name=hcsshim;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Microsoft/hcsshim"
+
+# github.com/k3s-io/containerd v1.7.11-k3s2
+# [1] git ls-remote https://github.com/k3s-io/containerd 64c566767b99d0bacf26fb6e2355775c413331c9
+SRCREV_containerd="64c566767b99d0bacf26fb6e2355775c413331c9"
+SRC_URI += "git://github.com/k3s-io/containerd;name=containerd;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/containerd"
+
+# github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e
+# [1] git ls-remote https://github.com/coreos/go-systemd 95778dfbb74eb7e4dbaf43bf7d71809650ef8076
+SRCREV_go-systemd="95778dfbb74eb7e4dbaf43bf7d71809650ef8076"
+SRC_URI += "git://github.com/coreos/go-systemd;name=go-systemd;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/coreos/go-systemd"
+
+# github.com/gorilla/websocket v1.5.0
+# [1] git ls-remote https://github.com/gorilla/websocket 9111bb834a68b893cebbbaed5060bdbc1d9ab7d2
+SRCREV_websocket="9111bb834a68b893cebbbaed5060bdbc1d9ab7d2"
+SRC_URI += "git://github.com/gorilla/websocket;name=websocket;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/gorilla/websocket"
+
+# github.com/minio/minio-go/v7 v7.0.33
+# [1] git ls-remote https://github.com/minio/minio-go a80fee3343f12028079ae831a04b9583ba09c695
+SRCREV_v7="a80fee3343f12028079ae831a04b9583ba09c695"
+SRC_URI += "git://github.com/minio/minio-go;name=v7;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/minio/minio-go/v7"
+
+# github.com/yl2chen/cidranger v1.0.2
+# [1] git ls-remote https://github.com/yl2chen/cidranger 7ff5a0e84593dad6fbd50551343618d7956b3c71
+SRCREV_cidranger="7ff5a0e84593dad6fbd50551343618d7956b3c71"
+SRC_URI += "git://github.com/yl2chen/cidranger;name=cidranger;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/yl2chen/cidranger"
+
+# github.com/k3s-io/kubernetes v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_kubernetes="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=kubernetes;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes"
+
+# github.com/benbjohnson/clock v1.3.5
+# [1] git ls-remote https://github.com/benbjohnson/clock 96c602caabb567343046c08a8fca8560b4f00bb4
+SRCREV_clock="96c602caabb567343046c08a8fca8560b4f00bb4"
+SRC_URI += "git://github.com/benbjohnson/clock;name=clock;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/benbjohnson/clock"
+
+# github.com/francoispqt/gojay v1.2.13
+# [1] git ls-remote https://github.com/francoispqt/gojay 1398296d938f9fae26750ddc2fe356b6d897f799
+SRCREV_gojay="1398296d938f9fae26750ddc2fe356b6d897f799"
+SRC_URI += "git://github.com/francoispqt/gojay;name=gojay;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/francoispqt/gojay"
+
+# github.com/ipfs/go-datastore v0.6.0
+# [1] git ls-remote https://github.com/ipfs/go-datastore 1de47089f5c72b61d91b5cd9043e49fe95771ac0
+SRCREV_go-datastore="1de47089f5c72b61d91b5cd9043e49fe95771ac0"
+SRC_URI += "git://github.com/ipfs/go-datastore;name=go-datastore;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/ipfs/go-datastore"
+
+# github.com/raulk/go-watchdog v1.3.0
+# [1] git ls-remote https://github.com/raulk/go-watchdog 9c5e371109037bec1852ea63c9512a94307bfea0
+SRCREV_go-watchdog="9c5e371109037bec1852ea63c9512a94307bfea0"
+SRC_URI += "git://github.com/raulk/go-watchdog;name=go-watchdog;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/raulk/go-watchdog"
+
+# github.com/spaolacci/murmur3 v1.1.0
+# [1] git ls-remote https://github.com/spaolacci/murmur3 f09979ecbc725b9e6d41a297405f65e7e8804acc
+SRCREV_murmur3="f09979ecbc725b9e6d41a297405f65e7e8804acc"
+SRC_URI += "git://github.com/spaolacci/murmur3;name=murmur3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/spaolacci/murmur3"
+
+# github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1
+# [1] git ls-remote https://github.com/Azure/go-ansiterm d185dfc1b5a126116ea5a19e148e29d16b4574c9
+SRCREV_go-ansiterm="d185dfc1b5a126116ea5a19e148e29d16b4574c9"
+SRC_URI += "git://github.com/Azure/go-ansiterm;name=go-ansiterm;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Azure/go-ansiterm"
+
+# github.com/Azure/go-autorest v14.2.0+incompatible
+# [1] git ls-remote https://github.com/Azure/go-autorest e7b391b759b050d6719cc6fd8bb87b6dc038bca6
+SRCREV_go-autorest="e7b391b759b050d6719cc6fd8bb87b6dc038bca6"
+SRC_URI += "git://github.com/Azure/go-autorest;name=go-autorest;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Azure/go-autorest"
+
+# github.com/avast/retry-go/v4 v4.3.2
+# [1] git ls-remote https://github.com/avast/retry-go c65eeae03ec06cb591b05d092457de9f691bb359
+SRCREV_retry-go-v4="c65eeae03ec06cb591b05d092457de9f691bb359"
+SRC_URI += "git://github.com/avast/retry-go;name=retry-go-v4;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/avast/retry-go/v4"
+
+# github.com/cespare/xxhash/v2 v2.2.0
+# [1] git ls-remote https://github.com/cespare/xxhash a76eb16a93c1e30527c073ca831d9048b4b935f6
+SRCREV_xxhash-v2="a76eb16a93c1e30527c073ca831d9048b4b935f6"
+SRC_URI += "git://github.com/cespare/xxhash;name=xxhash-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/cespare/xxhash/v2"
+
+# github.com/containerd/go-cni v1.1.9
+# [1] git ls-remote https://github.com/containerd/go-cni 6603d5bd8941d7f2026bb5627f6aa4ff434f859a
+SRCREV_go-cni="6603d5bd8941d7f2026bb5627f6aa4ff434f859a"
+SRC_URI += "git://github.com/containerd/go-cni;name=go-cni;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/go-cni"
+
+# github.com/docker/go-metrics v0.0.1
+# [1] git ls-remote https://github.com/docker/go-metrics b619b3592b65de4f087d9f16863a7e6ff905973c
+SRCREV_go-metrics="b619b3592b65de4f087d9f16863a7e6ff905973c"
+SRC_URI += "git://github.com/docker/go-metrics;name=go-metrics;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/go-metrics"
+
+# github.com/felixge/httpsnoop v1.0.4
+# [1] git ls-remote https://github.com/felixge/httpsnoop c5817c27ec125409c069052fdd171023c353501c
+SRCREV_httpsnoop="c5817c27ec125409c069052fdd171023c353501c"
+SRC_URI += "git://github.com/felixge/httpsnoop;name=httpsnoop;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/felixge/httpsnoop"
+
+# github.com/fsnotify/fsnotify v1.7.0
+# [1] git ls-remote https://github.com/fsnotify/fsnotify cfc9c4f277ea6ec18de92444b31983b183deb4fb
+SRCREV_fsnotify="cfc9c4f277ea6ec18de92444b31983b183deb4fb"
+SRC_URI += "git://github.com/fsnotify/fsnotify;name=fsnotify;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/fsnotify/fsnotify"
+
+# github.com/golang-jwt/jwt/v4 v4.5.0
+# [1] git ls-remote https://github.com/golang-jwt/jwt 9358574a7a1a2c8d644f22b6e8de627ba85c58d0
+SRCREV_jwt-v4="9358574a7a1a2c8d644f22b6e8de627ba85c58d0"
+SRC_URI += "git://github.com/golang-jwt/jwt;name=jwt-v4;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/golang-jwt/jwt/v4"
+
+# github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da
+# [1] git ls-remote https://github.com/golang/groupcache 41bb18bfe9da5321badc438f91158cd790a33aa3
+SRCREV_groupcache="41bb18bfe9da5321badc438f91158cd790a33aa3"
+SRC_URI += "git://github.com/golang/groupcache;name=groupcache;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/golang/groupcache"
+
+# github.com/hanwen/go-fuse/v2 v2.3.0
+# [1] git ls-remote https://github.com/hanwen/go-fuse d537a5a8d65c6552bc3844571f1d8ec76bcac5e4
+SRCREV_go-fuse-v2="d537a5a8d65c6552bc3844571f1d8ec76bcac5e4"
+SRC_URI += "git://github.com/hanwen/go-fuse;name=go-fuse-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/hanwen/go-fuse/v2"
+
+# github.com/hashicorp/errwrap v1.1.0
+# [1] git ls-remote https://github.com/hashicorp/errwrap 7b00e5db719c64d14dd0caaacbd13e76254d02c0
+SRCREV_errwrap="7b00e5db719c64d14dd0caaacbd13e76254d02c0"
+SRC_URI += "git://github.com/hashicorp/errwrap;name=errwrap;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/hashicorp/errwrap"
+
+# github.com/karrick/godirwalk v1.17.0
+# [1] git ls-remote https://github.com/karrick/godirwalk 9a7752c108e7ea76255201b9f47bd4d4d2df868e
+SRCREV_godirwalk="9a7752c108e7ea76255201b9f47bd4d4d2df868e"
+SRC_URI += "git://github.com/karrick/godirwalk;name=godirwalk;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/karrick/godirwalk"
+
+# github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de
+# [1] git ls-remote https://github.com/liggitt/tabwriter 89fcab3d43de07060e4fd4c1547430ed57e87f24
+SRCREV_tabwriter="89fcab3d43de07060e4fd4c1547430ed57e87f24"
+SRC_URI += "git://github.com/liggitt/tabwriter;name=tabwriter;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/liggitt/tabwriter"
+
+# github.com/minio/highwayhash v1.0.2
+# [1] git ls-remote https://github.com/minio/highwayhash 08ce0b4fa7932a018438133f1b632e1c674d4107
+SRCREV_highwayhash="08ce0b4fa7932a018438133f1b632e1c674d4107"
+SRC_URI += "git://github.com/minio/highwayhash;name=highwayhash;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/minio/highwayhash"
+
+# github.com/minio/sha256-simd v1.0.1
+# [1] git ls-remote https://github.com/minio/sha256-simd 6096f891a77bfe490cbea7a424c821b5fdb92849
+SRCREV_sha256-simd="6096f891a77bfe490cbea7a424c821b5fdb92849"
+SRC_URI += "git://github.com/minio/sha256-simd;name=sha256-simd;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/minio/sha256-simd"
+
+# github.com/mrunalp/fileutils v0.5.1
+# [1] git ls-remote https://github.com/mrunalp/fileutils 7363e975f9cfb558be601bece0df81714c3c9084
+SRCREV_fileutils="7363e975f9cfb558be601bece0df81714c3c9084"
+SRC_URI += "git://github.com/mrunalp/fileutils;name=fileutils;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mrunalp/fileutils"
+
+# github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822
+# [1] git ls-remote https://github.com/munnerz/goautoneg a7dc8b61c822528f973a5e4e7b272055c6fdb43e
+SRCREV_goautoneg="a7dc8b61c822528f973a5e4e7b272055c6fdb43e"
+SRC_URI += "git://github.com/munnerz/goautoneg;name=goautoneg;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/munnerz/goautoneg"
+
+# github.com/pelletier/go-toml v1.9.5
+# [1] git ls-remote https://github.com/pelletier/go-toml fed1464066413075eac02cd4dc368b5221845541
+SRCREV_go-toml="fed1464066413075eac02cd4dc368b5221845541"
+SRC_URI += "git://github.com/pelletier/go-toml;name=go-toml;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/pelletier/go-toml"
+
+# github.com/prometheus/common v0.45.0
+# [1] git ls-remote https://github.com/prometheus/common c59927ec74c04c0c17891bf27784fe7c484ae97f
+SRCREV_common="c59927ec74c04c0c17891bf27784fe7c484ae97f"
+SRC_URI += "git://github.com/prometheus/common;name=common;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/prometheus/common"
+
+# github.com/prometheus/procfs v0.12.0
+# [1] git ls-remote https://github.com/prometheus/procfs ff0ad85f7e8bcd5c677d99143f14a2a3aab533aa
+SRCREV_procfs="ff0ad85f7e8bcd5c677d99143f14a2a3aab533aa"
+SRC_URI += "git://github.com/prometheus/procfs;name=procfs;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/prometheus/procfs"
+
+# github.com/vishvananda/netns v0.0.4
+# [1] git ls-remote https://github.com/vishvananda/netns 7a452d2d15292b2bfb2a2d88e6bdeac156a761b9
+SRCREV_netns="7a452d2d15292b2bfb2a2d88e6bdeac156a761b9"
+SRC_URI += "git://github.com/vishvananda/netns;name=netns;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/vishvananda/netns"
+
+# go.opentelemetry.io/otel/sdk v1.13.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go f2fd476f433128c2494476950ce11600a51bbe35
+SRCREV_sdk="f2fd476f433128c2494476950ce11600a51bbe35"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=sdk;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/sdk"
+
+# github.com/k3s-io/cri-dockerd v0.3.9-k3s2
+# [1] git ls-remote https://github.com/k3s-io/cri-dockerd 0d2146805dcd844e15d02d6f1956b4cd0e4365cf
+SRCREV_cri-dockerd="0d2146805dcd844e15d02d6f1956b4cd0e4365cf"
+SRC_URI += "git://github.com/k3s-io/cri-dockerd;name=cri-dockerd;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/cri-dockerd"
+
+# github.com/coreos/go-iptables v0.7.0
+# [1] git ls-remote https://github.com/coreos/go-iptables b9dff5a19d9c3925da3f9b3c0a705de6c1fdc56c
+SRCREV_go-iptables="b9dff5a19d9c3925da3f9b3c0a705de6c1fdc56c"
+SRC_URI += "git://github.com/coreos/go-iptables;name=go-iptables;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/coreos/go-iptables"
+
+# github.com/flannel-io/flannel v0.24.2
+# [1] git ls-remote https://github.com/flannel-io/flannel 3d56ed16e123a6fb06841ba920664b3ce4c99cda
+SRCREV_flannel="3d56ed16e123a6fb06841ba920664b3ce4c99cda"
+SRC_URI += "git://github.com/flannel-io/flannel;name=flannel;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/flannel-io/flannel"
+
+# github.com/ipfs/go-ds-leveldb v0.5.0
+# [1] git ls-remote https://github.com/ipfs/go-ds-leveldb 6f6dc580f7325ad411fc5967ccee67e40545e208
+SRCREV_go-ds-leveldb="6f6dc580f7325ad411fc5967ccee67e40545e208"
+SRC_URI += "git://github.com/ipfs/go-ds-leveldb;name=go-ds-leveldb;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/ipfs/go-ds-leveldb"
+
+# github.com/klauspost/compress v1.17.2
+# [1] git ls-remote https://github.com/klauspost/compress 8eb6542f08f086fb92796f6d8a4531d754947309
+SRCREV_compress="8eb6542f08f086fb92796f6d8a4531d754947309"
+SRC_URI += "git://github.com/klauspost/compress;name=compress;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/klauspost/compress"
+
+# github.com/k3s-io/etcd/api/v3 v3.5.9-k3s1
+# [1] git ls-remote https://github.com/k3s-io/etcd 341ce193b458049401364c20193ebd14f38fce6d
+SRCREV_api-v3="341ce193b458049401364c20193ebd14f38fce6d"
+SRC_URI += "git://github.com/k3s-io/etcd;name=api-v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/etcd/api/v3"
+
+# github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311
+# [1] git ls-remote https://github.com/chenzhuoyu/base64x fe3a3abad31102e33411b1b239aa111b80ae336d
+SRCREV_base64x="fe3a3abad31102e33411b1b239aa111b80ae336d"
+SRC_URI += "git://github.com/chenzhuoyu/base64x;name=base64x;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/chenzhuoyu/base64x"
+
+# github.com/ipld/go-ipld-prime v0.20.0
+# [1] git ls-remote https://github.com/ipld/go-ipld-prime 200b4a6b6fb6720911cb385aff05da55c39d56de
+SRCREV_go-ipld-prime="200b4a6b6fb6720911cb385aff05da55c39d56de"
+SRC_URI += "git://github.com/ipld/go-ipld-prime;name=go-ipld-prime;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/ipld/go-ipld-prime"
+
+# github.com/jackpal/go-nat-pmp v1.0.2
+# [1] git ls-remote https://github.com/jackpal/go-nat-pmp 059203efa1edd7130293a583541b8308e7c640c4
+SRCREV_go-nat-pmp="059203efa1edd7130293a583541b8308e7c640c4"
+SRC_URI += "git://github.com/jackpal/go-nat-pmp;name=go-nat-pmp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/jackpal/go-nat-pmp"
+
+# github.com/libp2p/go-netroute v0.2.1
+# [1] git ls-remote https://github.com/libp2p/go-netroute 462cbfaf52f4c2a2321e6382455a8f56396f3664
+SRCREV_go-netroute="462cbfaf52f4c2a2321e6382455a8f56396f3664"
+SRC_URI += "git://github.com/libp2p/go-netroute;name=go-netroute;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/libp2p/go-netroute"
+
+# github.com/libp2p/go-yamux/v4 v4.0.1
+# [1] git ls-remote https://github.com/libp2p/go-yamux e584a210c72651b67829477b4b4285cae25b1a1b
+SRCREV_go-yamux-v4="e584a210c72651b67829477b4b4285cae25b1a1b"
+SRC_URI += "git://github.com/libp2p/go-yamux;name=go-yamux-v4;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/libp2p/go-yamux/v4"
+
+# github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd
+# [1] git ls-remote https://github.com/marten-seemann/tcp dfbc87cc63fd003b9a070c76d605769fa3e2e3b2
+SRCREV_tcp="dfbc87cc63fd003b9a070c76d605769fa3e2e3b2"
+SRC_URI += "git://github.com/marten-seemann/tcp;name=tcp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/marten-seemann/tcp"
+
+# github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab
+# [1] git ls-remote https://github.com/JeffAshton/win_pdh 76bb4ee9f0ab50f77826f2a2ee7fb9d3880d6ec2
+SRCREV_win_pdh="76bb4ee9f0ab50f77826f2a2ee7fb9d3880d6ec2"
+SRC_URI += "git://github.com/JeffAshton/win_pdh;name=win_pdh;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/JeffAshton/win_pdh"
+
+# github.com/Microsoft/go-winio v0.6.1
+# [1] git ls-remote https://github.com/microsoft/go-winio 070c828abb873da9e71c7247740253b50f7cf049
+SRCREV_go-winio="070c828abb873da9e71c7247740253b50f7cf049"
+SRC_URI += "git://github.com/microsoft/go-winio;name=go-winio;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Microsoft/go-winio"
+
+# github.com/containerd/cgroups v1.1.0
+# [1] git ls-remote https://github.com/containerd/cgroups fe7323f622bc222e72473679f12a9089aeeda177
+SRCREV_cgroups="fe7323f622bc222e72473679f12a9089aeeda177"
+SRC_URI += "git://github.com/containerd/cgroups;name=cgroups;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/cgroups"
+
+# github.com/containerd/console v1.0.3
+# [1] git ls-remote https://github.com/containerd/console b5cb846c9186d67bcae3ce3c324e47cd317d9527
+SRCREV_console="b5cb846c9186d67bcae3ce3c324e47cd317d9527"
+SRC_URI += "git://github.com/containerd/console;name=console;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/console"
+
+# github.com/containerd/go-runc v1.0.0
+# [1] git ls-remote https://github.com/containerd/go-runc 16b287bc67d069a60fa48db15f330b790b74365b
+SRCREV_go-runc="16b287bc67d069a60fa48db15f330b790b74365b"
+SRC_URI += "git://github.com/containerd/go-runc;name=go-runc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/go-runc"
+
+# github.com/containerd/typeurl v1.0.2
+# [1] git ls-remote https://github.com/containerd/typeurl 5e43fb8b75ed2f2305fc04e6918c8d10636771bc
+SRCREV_typeurl="5e43fb8b75ed2f2305fc04e6918c8d10636771bc"
+SRC_URI += "git://github.com/containerd/typeurl;name=typeurl;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/typeurl"
+
+# github.com/dustin/go-humanize v1.0.1
+# [1] git ls-remote https://github.com/dustin/go-humanize 9ec74ab2f7a7161664182fd4e5e292fccffbc75f
+SRCREV_go-humanize="9ec74ab2f7a7161664182fd4e5e292fccffbc75f"
+SRC_URI += "git://github.com/dustin/go-humanize;name=go-humanize;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/dustin/go-humanize"
+
+# github.com/evanphx/json-patch v5.6.0+incompatible
+# [1] git ls-remote https://github.com/evanphx/json-patch 5561fe05a1ec79c9bca966376211b2ab81959671
+SRCREV_json-patch="5561fe05a1ec79c9bca966376211b2ab81959671"
+SRC_URI += "git://github.com/evanphx/json-patch;name=json-patch;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/evanphx/json-patch"
+
+# github.com/fvbommel/sortorder v1.1.0
+# [1] git ls-remote https://github.com/fvbommel/sortorder a8d9302c17f9f46c6580b82b919672e58ef6e396
+SRCREV_sortorder="a8d9302c17f9f46c6580b82b919672e58ef6e396"
+SRC_URI += "git://github.com/fvbommel/sortorder;name=sortorder;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/fvbommel/sortorder"
+
+# github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572
+# [1] git ls-remote https://github.com/go-task/slim-sprig 52ccab3ef572c7e1a2c258be183f9a9296d60152
+SRCREV_slim-sprig="52ccab3ef572c7e1a2c258be183f9a9296d60152"
+SRC_URI += "git://github.com/go-task/slim-sprig;name=slim-sprig;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-task/slim-sprig"
+
+# github.com/klauspost/cpuid/v2 v2.2.5
+# [1] git ls-remote https://github.com/klauspost/cpuid 1af2d99c24e60b21f4c8e8ea63ed69523ebbbb16
+SRCREV_cpuid-v2="1af2d99c24e60b21f4c8e8ea63ed69523ebbbb16"
+SRC_URI += "git://github.com/klauspost/cpuid;name=cpuid-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/klauspost/cpuid/v2"
+
+# github.com/kylelemons/godebug v1.1.0
+# [1] git ls-remote https://github.com/kylelemons/godebug 9ff306d4fbead574800b66369df5b6144732d58e
+SRCREV_godebug="9ff306d4fbead574800b66369df5b6144732d58e"
+SRC_URI += "git://github.com/kylelemons/godebug;name=godebug;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/kylelemons/godebug"
+
+# github.com/mdlayher/genetlink v1.3.2
+# [1] git ls-remote https://github.com/mdlayher/genetlink 7531bffe0f5e10d1ce558d35e6feb5d1d1600851
+SRCREV_genetlink="7531bffe0f5e10d1ce558d35e6feb5d1d1600851"
+SRC_URI += "git://github.com/mdlayher/genetlink;name=genetlink;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mdlayher/genetlink"
+
+# github.com/moby/sys/mountinfo v0.6.2
+# [1] git ls-remote https://github.com/moby/sys 1bf36f7188c31f2797c556c4c4d7d9af7a6a965b
+SRCREV_mountinfo="1bf36f7188c31f2797c556c4c4d7d9af7a6a965b"
+SRC_URI += "git://github.com/moby/sys;name=mountinfo;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/sys/mountinfo"
+
+# github.com/modern-go/reflect2 v1.0.2
+# [1] git ls-remote https://github.com/modern-go/reflect2 2b33151c9bbc5231aea69b8861c540102b087070
+SRCREV_reflect2="2b33151c9bbc5231aea69b8861c540102b087070"
+SRC_URI += "git://github.com/modern-go/reflect2;name=reflect2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/modern-go/reflect2"
+
+# github.com/peterbourgon/diskv v2.0.1+incompatible
+# [1] git ls-remote https://github.com/peterbourgon/diskv 5f041e8faa004a95c88a202771f4cc3e991971e6
+SRCREV_diskv="5f041e8faa004a95c88a202771f4cc3e991971e6"
+SRC_URI += "git://github.com/peterbourgon/diskv;name=diskv;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/peterbourgon/diskv"
+
+# github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2
+# [1] git ls-remote https://github.com/pmezard/go-difflib 5d4384ee4fb2527b0a1256a821ebfc92f91efefc
+SRCREV_go-difflib="5d4384ee4fb2527b0a1256a821ebfc92f91efefc"
+SRC_URI += "git://github.com/pmezard/go-difflib;name=go-difflib;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/pmezard/go-difflib"
+
+# github.com/shengdoushi/base58 v1.0.0
+# [1] git ls-remote https://github.com/shengdoushi/base58 c5f44ca1af76fb63925d5fba8fa7b85870199839
+SRCREV_shengdoushi-base58="c5f44ca1af76fb63925d5fba8fa7b85870199839"
+SRC_URI += "git://github.com/shengdoushi/base58;name=shengdoushi-base58;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/shengdoushi/base58"
+
+# github.com/stoewer/go-strcase v1.2.0
+# [1] git ls-remote https://github.com/stoewer/go-strcase 7962b205553802087345c0b4c74d57b65236f676
+SRCREV_go-strcase="7962b205553802087345c0b4c74d57b65236f676"
+SRC_URI += "git://github.com/stoewer/go-strcase;name=go-strcase;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/stoewer/go-strcase"
+
+# github.com/k3s-io/etcd/pkg/v3 v3.5.9-k3s1
+# [1] git ls-remote https://github.com/k3s-io/etcd 341ce193b458049401364c20193ebd14f38fce6d
+SRCREV_pkg-v3="341ce193b458049401364c20193ebd14f38fce6d"
+SRC_URI += "git://github.com/k3s-io/etcd;name=pkg-v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/etcd/pkg/v3"
+
+# github.com/erikdubbelboer/gspt v0.0.0-20190125194910-e68493906b83
+# [1] git ls-remote https://github.com/erikdubbelboer/gspt e68493906b8382891943ddc9960cb9c6ecd1a1f0
+SRCREV_gspt="e68493906b8382891943ddc9960cb9c6ecd1a1f0"
+SRC_URI += "git://github.com/erikdubbelboer/gspt;name=gspt;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/erikdubbelboer/gspt"
+
+# github.com/go-sql-driver/mysql v1.7.1
+# [1] git ls-remote https://github.com/go-sql-driver/mysql f20b2863636093e5fbf1481b59bdaff3b0fbb779
+SRCREV_mysql="f20b2863636093e5fbf1481b59bdaff3b0fbb779"
+SRC_URI += "git://github.com/go-sql-driver/mysql;name=mysql;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-sql-driver/mysql"
+
+# github.com/vishvananda/netlink v1.2.1-beta.2
+# [1] git ls-remote https://github.com/vishvananda/netlink 5e915e0149386ce3d02379ff93f4c0a5601779d5
+SRCREV_netlink="5e915e0149386ce3d02379ff93f4c0a5601779d5"
+SRC_URI += "git://github.com/vishvananda/netlink;name=netlink;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/vishvananda/netlink"
+
+# github.com/libp2p/go-cidranger v1.1.0
+# [1] git ls-remote https://github.com/libp2p/go-cidranger 1dec7f87b45b32e24d3f59548ad61647de34586d
+SRCREV_go-cidranger="1dec7f87b45b32e24d3f59548ad61647de34586d"
+SRC_URI += "git://github.com/libp2p/go-cidranger;name=go-cidranger;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/libp2p/go-cidranger"
+
+# github.com/libp2p/go-reuseport v0.4.0
+# [1] git ls-remote https://github.com/libp2p/go-reuseport ac34b4fb35437abcc176b5bb97cc431d62d983e0
+SRCREV_go-reuseport="ac34b4fb35437abcc176b5bb97cc431d62d983e0"
+SRC_URI += "git://github.com/libp2p/go-reuseport;name=go-reuseport;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/libp2p/go-reuseport"
+
+# github.com/quic-go/qtls-go1-20 v0.3.3
+# [1] git ls-remote https://github.com/quic-go/qtls-go1-20 5ba42598e0a018acd682059ee240c6bb8d085b07
+SRCREV_qtls-go1-20="5ba42598e0a018acd682059ee240c6bb8d085b07"
+SRC_URI += "git://github.com/quic-go/qtls-go1-20;name=qtls-go1-20;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/quic-go/qtls-go1-20"
+
+# github.com/MakeNowJust/heredoc v1.0.0
+# [1] git ls-remote https://github.com/makenowjust/heredoc bbd9af33722b79a933ef99c7c94833065e2d6c20
+SRCREV_heredoc="bbd9af33722b79a933ef99c7c94833065e2d6c20"
+SRC_URI += "git://github.com/makenowjust/heredoc;name=heredoc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/MakeNowJust/heredoc"
+
+# github.com/NYTimes/gziphandler v1.1.1
+# [1] git ls-remote https://github.com/nytimes/gziphandler dd0439581c7657cb652dfe5c71d7d48baf39541d
+SRCREV_gziphandler="dd0439581c7657cb652dfe5c71d7d48baf39541d"
+SRC_URI += "git://github.com/nytimes/gziphandler;name=gziphandler;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/NYTimes/gziphandler"
+
+# github.com/canonical/go-dqlite v1.5.1
+# [1] git ls-remote https://github.com/canonical/go-dqlite 830c1a017995b73322e86c2a6f2ca799c1caca07
+SRCREV_go-dqlite="830c1a017995b73322e86c2a6f2ca799c1caca07"
+SRC_URI += "git://github.com/canonical/go-dqlite;name=go-dqlite;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/canonical/go-dqlite"
+
+# github.com/cenkalti/backoff/v4 v4.2.1
+# [1] git ls-remote https://github.com/cenkalti/backoff a04a6fe64ffb0e3fd0816460529d300be5f252df
+SRCREV_backoff-v4="a04a6fe64ffb0e3fd0816460529d300be5f252df"
+SRC_URI += "git://github.com/cenkalti/backoff;name=backoff-v4;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/cenkalti/backoff/v4"
+
+# github.com/chai2010/gettext-go v1.0.2
+# [1] git ls-remote https://github.com/chai2010/gettext-go 274d1753d015d0362761b6a1cc2a572e6a035913
+SRCREV_gettext-go="274d1753d015d0362761b6a1cc2a572e6a035913"
+SRC_URI += "git://github.com/chai2010/gettext-go;name=gettext-go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/chai2010/gettext-go"
+
+# github.com/containerd/btrfs/v2 v2.0.0
+# [1] git ls-remote https://github.com/containerd/btrfs f611cf12b33f43269574b2ad82bcb55e4d6f9982
+SRCREV_btrfs-v2="f611cf12b33f43269574b2ad82bcb55e4d6f9982"
+SRC_URI += "git://github.com/containerd/btrfs;name=btrfs-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/btrfs/v2"
+
+# github.com/containerd/imgcrypt v1.1.7
+# [1] git ls-remote https://github.com/containerd/imgcrypt 01a05dffff35aadeb0a3008016ed745e7ff6beda
+SRCREV_imgcrypt="01a05dffff35aadeb0a3008016ed745e7ff6beda"
+SRC_URI += "git://github.com/containerd/imgcrypt;name=imgcrypt;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/imgcrypt"
+
+# github.com/containers/ocicrypt v1.1.6
+# [1] git ls-remote https://github.com/containers/ocicrypt c61dfa5ee6c2ac10004c4e156d1a435f11c444cf
+SRCREV_ocicrypt="c61dfa5ee6c2ac10004c4e156d1a435f11c444cf"
+SRC_URI += "git://github.com/containers/ocicrypt;name=ocicrypt;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containers/ocicrypt"
+
+# github.com/docker/distribution v2.8.2+incompatible
+# [1] git ls-remote https://github.com/distribution/distribution 7c354a4b40feeea21d7eeae4de91c8ff7951e672
+SRCREV_distribution="7c354a4b40feeea21d7eeae4de91c8ff7951e672"
+SRC_URI += "git://github.com/distribution/distribution;name=distribution;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/distribution"
+
+# github.com/emicklei/go-restful v2.16.0+incompatible
+# [1] git ls-remote https://github.com/emicklei/go-restful ac666c045e035603f2704c98c59e979fccbfa94f
+SRCREV_go-restful="ac666c045e035603f2704c98c59e979fccbfa94f"
+SRC_URI += "git://github.com/emicklei/go-restful;name=go-restful;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/emicklei/go-restful"
+
+# github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7
+# [1] git ls-remote https://github.com/gregjones/httpcache 9cad4c3443a7200dd6400aef47183728de563a38
+SRCREV_httpcache="9cad4c3443a7200dd6400aef47183728de563a38"
+SRC_URI += "git://github.com/gregjones/httpcache;name=httpcache;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/gregjones/httpcache"
+
+# github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a
+# [1] git ls-remote https://github.com/jackc/pgservicefile 091c0ba34f0a65a78ab8d0e313fde0695c0f7186
+SRCREV_pgservicefile="091c0ba34f0a65a78ab8d0e313fde0695c0f7186"
+SRC_URI += "git://github.com/jackc/pgservicefile;name=pgservicefile;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/jackc/pgservicefile"
+
+# github.com/jonboulle/clockwork v0.4.0
+# [1] git ls-remote https://github.com/jonboulle/clockwork 606c48b92358fcca153952b56fb0d14d6845f84a
+SRCREV_clockwork="606c48b92358fcca153952b56fb0d14d6845f84a"
+SRC_URI += "git://github.com/jonboulle/clockwork;name=clockwork;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/jonboulle/clockwork"
+
+# github.com/mistifyio/go-zfs/v3 v3.0.1
+# [1] git ls-remote https://github.com/mistifyio/go-zfs f6d5c373cf63ae2477370aa9bda9fa49804c2d72
+SRCREV_go-zfs-v3="f6d5c373cf63ae2477370aa9bda9fa49804c2d72"
+SRC_URI += "git://github.com/mistifyio/go-zfs;name=go-zfs-v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mistifyio/go-zfs/v3"
+
+# github.com/moby/sys/sequential v0.5.0
+# [1] git ls-remote https://github.com/moby/sys b22ba8a69b306f0b4adbbe2a529457e6283ed9f7
+SRCREV_sequential="b22ba8a69b306f0b4adbbe2a529457e6283ed9f7"
+SRC_URI += "git://github.com/moby/sys;name=sequential;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/sys/sequential"
+
+# github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635
+# [1] git ls-remote https://github.com/syndtr/gocapability 42c35b4376354fd554efc7ad35e0b7f94e3a0ffb
+SRCREV_gocapability="42c35b4376354fd554efc7ad35e0b7f94e3a0ffb"
+SRC_URI += "git://github.com/syndtr/gocapability;name=gocapability;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/syndtr/gocapability"
+
+# github.com/k3s-io/etcd/raft/v3 v3.5.9-k3s1
+# [1] git ls-remote https://github.com/k3s-io/etcd 341ce193b458049401364c20193ebd14f38fce6d
+SRCREV_raft-v3="341ce193b458049401364c20193ebd14f38fce6d"
+SRC_URI += "git://github.com/k3s-io/etcd;name=raft-v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/etcd/raft/v3"
+
+# go.opentelemetry.io/otel/trace v1.13.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go f2fd476f433128c2494476950ce11600a51bbe35
+SRCREV_trace="f2fd476f433128c2494476950ce11600a51bbe35"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=trace;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/trace"
+
+# go.opentelemetry.io/proto/otlp v0.19.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-proto-go c98f6b5f7362c9b4a717c7a4dab1ba90796a8f21
+SRCREV_otlp="c98f6b5f7362c9b4a717c7a4dab1ba90796a8f21"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-proto-go;name=otlp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/proto/otlp"
+
+# github.com/natefinch/lumberjack v2.0.0+incompatible
+# [1] git ls-remote https://github.com/natefinch/lumberjack 7d6a1875575e09256dc552b4c0e450dcd02bd10e
+SRCREV_lumberjack="7d6a1875575e09256dc552b4c0e450dcd02bd10e"
+SRC_URI += "git://github.com/natefinch/lumberjack;name=lumberjack;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/natefinch/lumberjack"
+
+# github.com/rancher/remotedialer v0.3.0
+# [1] git ls-remote https://github.com/rancher/remotedialer 24498689a9ccec9adbdbadbe3f5d18df75ba133b
+SRCREV_remotedialer="24498689a9ccec9adbdbadbe3f5d18df75ba133b"
+SRC_URI += "git://github.com/rancher/remotedialer;name=remotedialer;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/rancher/remotedialer"
+
+# github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c
+# [1] git ls-remote https://github.com/davidlazar/go-crypto b73af7476f6c55b31aa2797d1f98afc94699548d
+SRCREV_go-crypto="b73af7476f6c55b31aa2797d1f98afc94699548d"
+SRC_URI += "git://github.com/davidlazar/go-crypto;name=go-crypto;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/davidlazar/go-crypto"
+
+# github.com/hashicorp/golang-lru v0.5.4
+# [1] git ls-remote https://github.com/hashicorp/golang-lru 14eae340515388ca95aa8e7b86f0de668e981f54
+SRCREV_golang-lru="14eae340515388ca95aa8e7b86f0de668e981f54"
+SRC_URI += "git://github.com/hashicorp/golang-lru;name=golang-lru;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/hashicorp/golang-lru"
+
+# github.com/pelletier/go-toml/v2 v2.1.1
+# [1] git ls-remote https://github.com/pelletier/go-toml 34765b4a9e937ab927b5bd57231e98c68fe13109
+SRCREV_go-toml-v2="34765b4a9e937ab927b5bd57231e98c68fe13109"
+SRC_URI += "git://github.com/pelletier/go-toml;name=go-toml-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/pelletier/go-toml/v2"
+
+# github.com/slok/go-http-metrics v0.10.0
+# [1] git ls-remote https://github.com/slok/go-http-metrics 9382ededffcb5ecf9f7041bfb779ddc1fc9c08dc
+SRCREV_go-http-metrics="9382ededffcb5ecf9f7041bfb779ddc1fc9c08dc"
+SRC_URI += "git://github.com/slok/go-http-metrics;name=go-http-metrics;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/slok/go-http-metrics"
+
+# github.com/xenitab/pkg/channels v0.0.2
+# [1] git ls-remote https://github.com/xenitab/pkg 94c2ab1cbf9c7aff34ed28237765cefd6d409f34
+SRCREV_channels="94c2ab1cbf9c7aff34ed28237765cefd6d409f34"
+SRC_URI += "git://github.com/xenitab/pkg;name=channels;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/xenitab/pkg/channels"
+
+# github.com/euank/go-kmsg-parser v2.0.0+incompatible
+# [1] git ls-remote https://github.com/euank/go-kmsg-parser 5ba4d492e455a77d25dcf0d2c4acc9f2afebef4e
+SRCREV_go-kmsg-parser="5ba4d492e455a77d25dcf0d2c4acc9f2afebef4e"
+SRC_URI += "git://github.com/euank/go-kmsg-parser;name=go-kmsg-parser;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/euank/go-kmsg-parser"
+
+# github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d
+# [1] git ls-remote https://github.com/exponent-io/jsonpath d6023ce2651d8eafb5c75bb0c7167536102ec9f5
+SRCREV_jsonpath="d6023ce2651d8eafb5c75bb0c7167536102ec9f5"
+SRC_URI += "git://github.com/exponent-io/jsonpath;name=jsonpath;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/exponent-io/jsonpath"
+
+# github.com/googleapis/gax-go/v2 v2.12.0
+# [1] git ls-remote https://github.com/googleapis/gax-go db3387b70e605dfc1f09513359d396496a91c66b
+SRCREV_gax-go-v2="db3387b70e605dfc1f09513359d396496a91c66b"
+SRC_URI += "git://github.com/googleapis/gax-go;name=gax-go-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/googleapis/gax-go/v2"
+
+# github.com/hashicorp/go-version v1.6.0
+# [1] git ls-remote https://github.com/hashicorp/go-version 78d058c5618891f74d604bd15356fca690b64d8a
+SRCREV_go-version="78d058c5618891f74d604bd15356fca690b64d8a"
+SRC_URI += "git://github.com/hashicorp/go-version;name=go-version;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/hashicorp/go-version"
+
+# github.com/mitchellh/go-homedir v1.1.0
+# [1] git ls-remote https://github.com/mitchellh/go-homedir af06845cf3004701891bf4fdb884bfe4920b3727
+SRCREV_go-homedir="af06845cf3004701891bf4fdb884bfe4920b3727"
+SRC_URI += "git://github.com/mitchellh/go-homedir;name=go-homedir;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mitchellh/go-homedir"
+
+# github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
+# [1] git ls-remote https://github.com/modern-go/concurrent bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94
+SRCREV_concurrent="bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94"
+SRC_URI += "git://github.com/modern-go/concurrent;name=concurrent;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/modern-go/concurrent"
+
+# github.com/pquerna/cachecontrol v0.1.0
+# [1] git ls-remote https://github.com/pquerna/cachecontrol fb00f8a766ae43bf209f50299ce7d69669416dfb
+SRCREV_cachecontrol="fb00f8a766ae43bf209f50299ce7d69669416dfb"
+SRC_URI += "git://github.com/pquerna/cachecontrol;name=cachecontrol;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/pquerna/cachecontrol"
+
+# github.com/tchap/go-patricia/v2 v2.3.1
+# [1] git ls-remote https://github.com/tchap/go-patricia 5fc88dd7937ad82ca516f7f1f6b2c06dd0180309
+SRCREV_go-patricia-v2="5fc88dd7937ad82ca516f7f1f6b2c06dd0180309"
+SRC_URI += "git://github.com/tchap/go-patricia;name=go-patricia-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/tchap/go-patricia/v2"
+
+# go.opentelemetry.io/otel/metric v0.32.1
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go d7bfe6675fe79b0c01cae3d4c5f06330b2fece73
+SRCREV_metric="d7bfe6675fe79b0c01cae3d4c5f06330b2fece73"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=metric;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/metric"
+
+# github.com/k3s-io/kube-router/v2 v2.0.1
+# [1] git ls-remote https://github.com/k3s-io/kube-router 6842973d656f0bf1562858d278ea5d1f06a16f56
+SRCREV_v2="6842973d656f0bf1562858d278ea5d1f06a16f56"
+SRC_URI += "git://github.com/k3s-io/kube-router;name=v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kube-router/v2"
+
+# github.com/containerd/cgroups/v3 v3.0.2
+# [1] git ls-remote https://github.com/containerd/cgroups 8fa64246e17ceea54277b3ad7139d9ec17545bfa
+SRCREV_v3="8fa64246e17ceea54277b3ad7139d9ec17545bfa"
+SRC_URI += "git://github.com/containerd/cgroups;name=v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/cgroups/v3"
+
+# github.com/go-bindata/go-bindata v3.1.2+incompatible
+# [1] git ls-remote https://github.com/go-bindata/go-bindata ff7109080027ec152dabb369e157c4f359b76f31
+SRCREV_go-bindata="ff7109080027ec152dabb369e157c4f359b76f31"
+SRC_URI += "git://github.com/go-bindata/go-bindata;name=go-bindata;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-bindata/go-bindata"
+
+# github.com/k3s-io/etcd/client/v3 v3.5.9-k3s1
+# [1] git ls-remote https://github.com/k3s-io/etcd 341ce193b458049401364c20193ebd14f38fce6d
+SRCREV_client-v3="341ce193b458049401364c20193ebd14f38fce6d"
+SRC_URI += "git://github.com/k3s-io/etcd;name=client-v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/etcd/client/v3"
+
+# github.com/k3s-io/etcd/server/v3 v3.5.9-k3s1
+# [1] git ls-remote https://github.com/k3s-io/etcd 341ce193b458049401364c20193ebd14f38fce6d
+SRCREV_server-v3="341ce193b458049401364c20193ebd14f38fce6d"
+SRC_URI += "git://github.com/k3s-io/etcd;name=server-v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/etcd/server/v3"
+
+# github.com/go-playground/locales v0.14.1
+# [1] git ls-remote https://github.com/go-playground/locales ce315c8672599942003599943a1e64288f55b03f
+SRCREV_locales="ce315c8672599942003599943a1e64288f55b03f"
+SRC_URI += "git://github.com/go-playground/locales;name=locales;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-playground/locales"
+
+# github.com/libp2p/go-buffer-pool v0.1.0
+# [1] git ls-remote https://github.com/libp2p/go-buffer-pool c5070857211a0615ebd7b56588154941af580a4d
+SRCREV_go-buffer-pool="c5070857211a0615ebd7b56588154941af580a4d"
+SRC_URI += "git://github.com/libp2p/go-buffer-pool;name=go-buffer-pool;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/libp2p/go-buffer-pool"
+
+# github.com/containerd/continuity v0.4.2
+# [1] git ls-remote https://github.com/containerd/continuity 77a2d47a6668b82465fdf6cb749fe3a2aa2c9743
+SRCREV_continuity="77a2d47a6668b82465fdf6cb749fe3a2aa2c9743"
+SRC_URI += "git://github.com/containerd/continuity;name=continuity;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/continuity"
+
+# github.com/containerd/typeurl/v2 v2.1.1
+# [1] git ls-remote https://github.com/containerd/typeurl 7ef6316b771f959cbb208b229e3423a466947df3
+SRCREV_typeurl-v2="7ef6316b771f959cbb208b229e3423a466947df3"
+SRC_URI += "git://github.com/containerd/typeurl;name=typeurl-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/typeurl/v2"
+
+# github.com/coreos/go-systemd/v22 v22.5.0
+# [1] git ls-remote https://github.com/coreos/go-systemd d5623bf85e8e73ae6352f78ee6b55a287619dd4e
+SRCREV_v22="d5623bf85e8e73ae6352f78ee6b55a287619dd4e"
+SRC_URI += "git://github.com/coreos/go-systemd;name=v22;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/coreos/go-systemd/v22"
+
+# github.com/cpuguy83/go-md2man/v2 v2.0.3
+# [1] git ls-remote https://github.com/cpuguy83/go-md2man f67b5f6400a3ea2156517041a329ae5f5935395c
+SRCREV_go-md2man-v2="f67b5f6400a3ea2156517041a329ae5f5935395c"
+SRC_URI += "git://github.com/cpuguy83/go-md2man;name=go-md2man-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/cpuguy83/go-md2man/v2"
+
+# github.com/docker/go-connections v0.5.0
+# [1] git ls-remote https://github.com/docker/go-connections fa09c952e3eadbffaf8afc5b8a1667158ba38ace
+SRCREV_go-connections="fa09c952e3eadbffaf8afc5b8a1667158ba38ace"
+SRC_URI += "git://github.com/docker/go-connections;name=go-connections;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/go-connections"
+
+# github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49
+# [1] git ls-remote https://github.com/google/gnostic-models c7be7c783f49e86348a1081eb387e01a347a4f23
+SRCREV_gnostic-models="c7be7c783f49e86348a1081eb387e01a347a4f23"
+SRC_URI += "git://github.com/google/gnostic-models;name=gnostic-models;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/gnostic-models"
+
+# github.com/mitchellh/go-wordwrap v1.0.1
+# [1] git ls-remote https://github.com/mitchellh/go-wordwrap ecf0936a077a4bd73a1cc2ac5c370f2b55618d62
+SRCREV_go-wordwrap="ecf0936a077a4bd73a1cc2ac5c370f2b55618d62"
+SRC_URI += "git://github.com/mitchellh/go-wordwrap;name=go-wordwrap;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mitchellh/go-wordwrap"
+
+# github.com/k3s-io/etcd/client/v2 v2.305.9-k3s1
+# [1] git ls-remote https://github.com/k3s-io/etcd 341ce193b458049401364c20193ebd14f38fce6d
+SRCREV_client-v2="341ce193b458049401364c20193ebd14f38fce6d"
+SRC_URI += "git://github.com/k3s-io/etcd;name=client-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/etcd/client/v2"
+
+# gopkg.in/natefinch/lumberjack.v2 v2.2.1
+# [1] git ls-remote https://github.com/natefinch/lumberjack 4cb27fcfbb0f35cb48c542c5ea80b7c1d18933d0
+SRCREV_lumberjack.v2="4cb27fcfbb0f35cb48c542c5ea80b7c1d18933d0"
+SRC_URI += "git://github.com/natefinch/lumberjack;name=lumberjack.v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/natefinch/lumberjack.v2"
+
+# github.com/k3s-io/helm-controller v0.15.8
+# [1] git ls-remote https://github.com/k3s-io/helm-controller 6479edd3c7f919dd9cc65a88aca75390f391eb4f
+SRCREV_helm-controller="6479edd3c7f919dd9cc65a88aca75390f391eb4f"
+SRC_URI += "git://github.com/k3s-io/helm-controller;name=helm-controller;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/helm-controller"
+
+# github.com/mwitkow/go-http-dialer v0.0.0-20161116154839-378f744fb2b8
+# [1] git ls-remote https://github.com/mwitkow/go-http-dialer 378f744fb2b81a6b96e3f40cde4f3bcab5a9cff0
+SRCREV_go-http-dialer="378f744fb2b81a6b96e3f40cde4f3bcab5a9cff0"
+SRC_URI += "git://github.com/mwitkow/go-http-dialer;name=go-http-dialer;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mwitkow/go-http-dialer"
+
+# github.com/opencontainers/selinux v1.10.1
+# [1] git ls-remote https://github.com/opencontainers/selinux 84e248a28e776216cd33a51fdea90a20fe308136
+SRCREV_selinux="84e248a28e776216cd33a51fdea90a20fe308136"
+SRC_URI += "git://github.com/opencontainers/selinux;name=selinux;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/opencontainers/selinux"
+
+# github.com/k3s-io/etcd/etcdutl/v3 v3.5.9-k3s1
+# [1] git ls-remote https://github.com/k3s-io/etcd 341ce193b458049401364c20193ebd14f38fce6d
+SRCREV_etcdutl-v3="341ce193b458049401364c20193ebd14f38fce6d"
+SRC_URI += "git://github.com/k3s-io/etcd;name=etcdutl-v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/etcd/etcdutl/v3"
+
+# github.com/libp2p/go-flow-metrics v0.1.0
+# [1] git ls-remote https://github.com/libp2p/go-flow-metrics 3f13d05958e2d1be0245aed1bdb38f9ff1b4efdc
+SRCREV_go-flow-metrics="3f13d05958e2d1be0245aed1bdb38f9ff1b4efdc"
+SRC_URI += "git://github.com/libp2p/go-flow-metrics;name=go-flow-metrics;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/libp2p/go-flow-metrics"
+
+# github.com/multiformats/go-base32 v0.1.0
+# [1] git ls-remote https://github.com/multiformats/go-base32 a16b66327f327428b32b919939b8c93482507e1f
+SRCREV_go-base32="a16b66327f327428b32b919939b8c93482507e1f"
+SRC_URI += "git://github.com/multiformats/go-base32;name=go-base32;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/multiformats/go-base32"
+
+# github.com/multiformats/go-base36 v0.2.0
+# [1] git ls-remote https://github.com/multiformats/go-base36 da52c98bb97cfaa321be04030bc97dcee7de63ff
+SRCREV_go-base36="da52c98bb97cfaa321be04030bc97dcee7de63ff"
+SRC_URI += "git://github.com/multiformats/go-base36;name=go-base36;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/multiformats/go-base36"
+
+# github.com/multiformats/go-varint v0.0.7
+# [1] git ls-remote https://github.com/multiformats/go-varint 8c8129accb08fc978bb276c81d568c41eafdd48f
+SRCREV_go-varint="8c8129accb08fc978bb276c81d568c41eafdd48f"
+SRC_URI += "git://github.com/multiformats/go-varint;name=go-varint;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/multiformats/go-varint"
+
+# github.com/Azure/azure-sdk-for-go v68.0.0+incompatible
+# [1] git ls-remote https://github.com/Azure/azure-sdk-for-go 2187aca40bbf6931ffac666977e5d29128d82585
+SRCREV_azure-sdk-for-go="2187aca40bbf6931ffac666977e5d29128d82585"
+SRC_URI += "git://github.com/Azure/azure-sdk-for-go;name=azure-sdk-for-go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Azure/azure-sdk-for-go"
+
+# github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a
+# [1] git ls-remote https://github.com/asaskevich/govalidator f61b66f89f4a311bef65f13e575bcf1a2ffadda6
+SRCREV_govalidator="f61b66f89f4a311bef65f13e575bcf1a2ffadda6"
+SRC_URI += "git://github.com/asaskevich/govalidator;name=govalidator;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/asaskevich/govalidator"
+
+# github.com/emicklei/go-restful/v3 v3.9.0
+# [1] git ls-remote https://github.com/emicklei/go-restful ce871fa2f7069b65c784c9c708da1f00b1f2bd66
+SRCREV_go-restful-v3="ce871fa2f7069b65c784c9c708da1f00b1f2bd66"
+SRC_URI += "git://github.com/emicklei/go-restful;name=go-restful-v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/emicklei/go-restful/v3"
+
+# github.com/go-openapi/jsonpointer v0.20.0
+# [1] git ls-remote https://github.com/go-openapi/jsonpointer 7df7a464d60e04018cf8f616a7abda94907fdf63
+SRCREV_jsonpointer="7df7a464d60e04018cf8f616a7abda94907fdf63"
+SRC_URI += "git://github.com/go-openapi/jsonpointer;name=jsonpointer;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-openapi/jsonpointer"
+
+# github.com/hashicorp/go-cleanhttp v0.5.2
+# [1] git ls-remote https://github.com/hashicorp/go-cleanhttp 6d9e2ac5d828e5f8594b97f88c4bde14a67bb6d2
+SRCREV_go-cleanhttp="6d9e2ac5d828e5f8594b97f88c4bde14a67bb6d2"
+SRC_URI += "git://github.com/hashicorp/go-cleanhttp;name=go-cleanhttp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/hashicorp/go-cleanhttp"
+
+# github.com/nats-io/nats-server/v2 v2.10.5
+# [1] git ls-remote https://github.com/nats-io/nats-server 0883d32bbcc5619603a9e5344d15aa10d069f059
+SRCREV_nats-server-v2="0883d32bbcc5619603a9e5344d15aa10d069f059"
+SRC_URI += "git://github.com/nats-io/nats-server;name=nats-server-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/nats-io/nats-server/v2"
+
+# golang.zx2c4.com/wireguard/wgctrl v0.0.0-20230429144221-925a1e7659e6
+# [1] git ls-remote https://github.com/WireGuard/wgctrl-go 925a1e7659e675c94c1a659d39daa9141e450c7d
+SRCREV_wgctrl="925a1e7659e675c94c1a659d39daa9141e450c7d"
+SRC_URI += "git://github.com/WireGuard/wgctrl-go;name=wgctrl;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.zx2c4.com/wireguard/wgctrl"
+
+# github.com/rancher/dynamiclistener v0.3.6
+# [1] git ls-remote https://github.com/rancher/dynamiclistener 0a2d8dff62fde6dfaf009141c12b30c316d8cff3
+SRCREV_dynamiclistener="0a2d8dff62fde6dfaf009141c12b30c316d8cff3"
+SRC_URI += "git://github.com/rancher/dynamiclistener;name=dynamiclistener;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/rancher/dynamiclistener"
+
+# github.com/gabriel-vasile/mimetype v1.4.2
+# [1] git ls-remote https://github.com/gabriel-vasile/mimetype 6f575b3e3509415374009db9cb81d6eae1fdfefb
+SRCREV_mimetype="6f575b3e3509415374009db9cb81d6eae1fdfefb"
+SRC_URI += "git://github.com/gabriel-vasile/mimetype;name=mimetype;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/gabriel-vasile/mimetype"
+
+# github.com/hashicorp/golang-lru/v2 v2.0.5
+# [1] git ls-remote https://github.com/hashicorp/golang-lru 99d7b177d1c3f01ae145e824fe627961e76edb8b
+SRCREV_golang-lru-v2="99d7b177d1c3f01ae145e824fe627961e76edb8b"
+SRC_URI += "git://github.com/hashicorp/golang-lru;name=golang-lru-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/hashicorp/golang-lru/v2"
+
+# github.com/libp2p/go-libp2p-record v0.2.0
+# [1] git ls-remote https://github.com/libp2p/go-libp2p-record 90bb9b0e21ffe5e9a5f1af1c1e8cc6d9a0fce24c
+SRCREV_go-libp2p-record="90bb9b0e21ffe5e9a5f1af1c1e8cc6d9a0fce24c"
+SRC_URI += "git://github.com/libp2p/go-libp2p-record;name=go-libp2p-record;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/libp2p/go-libp2p-record"
+
+# github.com/quic-go/webtransport-go v0.5.3
+# [1] git ls-remote https://github.com/quic-go/webtransport-go 16472ffb325d4869a24326e509abf359a8309775
+SRCREV_webtransport-go="16472ffb325d4869a24326e509abf359a8309775"
+SRC_URI += "git://github.com/quic-go/webtransport-go;name=webtransport-go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/quic-go/webtransport-go"
+
+# github.com/containernetworking/cni v1.1.2
+# [1] git ls-remote https://github.com/containernetworking/cni 3363d143688bb83ca18489ac8b9dc204c1d49c4a
+SRCREV_cni="3363d143688bb83ca18489ac8b9dc204c1d49c4a"
+SRC_URI += "git://github.com/containernetworking/cni;name=cni;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containernetworking/cni"
+
+# github.com/hashicorp/go-multierror v1.1.1
+# [1] git ls-remote https://github.com/hashicorp/go-multierror 9974e9ec57696378079ecc3accd3d6f29401b3a0
+SRCREV_go-multierror="9974e9ec57696378079ecc3accd3d6f29401b3a0"
+SRC_URI += "git://github.com/hashicorp/go-multierror;name=go-multierror;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/hashicorp/go-multierror"
+
+# github.com/prometheus/client_model v0.5.0
+# [1] git ls-remote https://github.com/prometheus/client_model 1c92cadf7d8fa1726bae12e6025cca9b86d2ba5f
+SRCREV_client_model="1c92cadf7d8fa1726bae12e6025cca9b86d2ba5f"
+SRC_URI += "git://github.com/prometheus/client_model;name=client_model;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/prometheus/client_model"
+
+# github.com/russross/blackfriday/v2 v2.1.0
+# [1] git ls-remote https://github.com/russross/blackfriday 4c9bf9512682b995722660a4196c0013228e2049
+SRCREV_blackfriday-v2="4c9bf9512682b995722660a4196c0013228e2049"
+SRC_URI += "git://github.com/russross/blackfriday;name=blackfriday-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/russross/blackfriday/v2"
+
+# sigs.k8s.io/kustomize/kustomize/v5 v5.0.4-0.20230601165947-6ce0bf390ce3
+# [1] git ls-remote https://github.com/kubernetes-sigs/kustomize 6ce0bf390ce3dae580947a2b739da3306c675eef
+SRCREV_kustomize-v5="6ce0bf390ce3dae580947a2b739da3306c675eef"
+SRC_URI += "git://github.com/kubernetes-sigs/kustomize;name=kustomize-v5;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/sigs.k8s.io/kustomize/kustomize/v5"
+
+# github.com/libp2p/go-libp2p-kad-dht v0.25.2
+# [1] git ls-remote https://github.com/libp2p/go-libp2p-kad-dht bdca14419ec5f7ad0790f17856964bb99bee7436
+SRCREV_go-libp2p-kad-dht="bdca14419ec5f7ad0790f17856964bb99bee7436"
+SRC_URI += "git://github.com/libp2p/go-libp2p-kad-dht;name=go-libp2p-kad-dht;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/libp2p/go-libp2p-kad-dht"
+
+# github.com/libp2p/go-libp2p-kbucket v0.6.3
+# [1] git ls-remote https://github.com/libp2p/go-libp2p-kbucket 437b9fccd6a22835a67b8fe2a5eae0b92f307224
+SRCREV_go-libp2p-kbucket="437b9fccd6a22835a67b8fe2a5eae0b92f307224"
+SRC_URI += "git://github.com/libp2p/go-libp2p-kbucket;name=go-libp2p-kbucket;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/libp2p/go-libp2p-kbucket"
+
+# github.com/Azure/go-autorest/logger v0.2.1
+# [1] git ls-remote https://github.com/Azure/go-autorest 820a319d2214dc91d083022ae5ec50070175314c
+SRCREV_logger="820a319d2214dc91d083022ae5ec50070175314c"
+SRC_URI += "git://github.com/Azure/go-autorest;name=logger;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Azure/go-autorest/logger"
+
+# github.com/daviddengcn/go-colortext v1.0.0
+# [1] git ls-remote https://github.com/daviddengcn/go-colortext dc4cd66b56a892657c0bea8bf4389d35210ce0ee
+SRCREV_go-colortext="dc4cd66b56a892657c0bea8bf4389d35210ce0ee"
+SRC_URI += "git://github.com/daviddengcn/go-colortext;name=go-colortext;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/daviddengcn/go-colortext"
+
+# github.com/go-openapi/jsonreference v0.20.2
+# [1] git ls-remote https://github.com/go-openapi/jsonreference 1f158e563669961b8e54817e3ea57978d439ffff
+SRCREV_jsonreference="1f158e563669961b8e54817e3ea57978d439ffff"
+SRC_URI += "git://github.com/go-openapi/jsonreference;name=jsonreference;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-openapi/jsonreference"
+
+# github.com/opencontainers/go-digest v1.0.0
+# [1] git ls-remote https://github.com/opencontainers/go-digest ea51bea511f75cfa3ef6098cc253c5c3609b037a
+SRCREV_go-digest="ea51bea511f75cfa3ef6098cc253c5c3609b037a"
+SRC_URI += "git://github.com/opencontainers/go-digest;name=go-digest;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/opencontainers/go-digest"
+
+# github.com/prometheus/client_golang v1.18.0
+# [1] git ls-remote https://github.com/prometheus/client_golang 53be91d12107cb69053a8792d0a3a2a6124d59cf
+SRCREV_client_golang="53be91d12107cb69053a8792d0a3a2a6124d59cf"
+SRC_URI += "git://github.com/prometheus/client_golang;name=client_golang;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/prometheus/client_golang"
+
+# github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75
+# [1] git ls-remote https://github.com/tmc/grpc-websocket-proxy 673ab2c3ae75cc01952b84b88590e30e75dcf395
+SRCREV_grpc-websocket-proxy="673ab2c3ae75cc01952b84b88590e30e75dcf395"
+SRC_URI += "git://github.com/tmc/grpc-websocket-proxy;name=grpc-websocket-proxy;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/tmc/grpc-websocket-proxy"
+
+# github.com/k3s-io/etcd/client/pkg/v3 v3.5.9-k3s1
+# [1] git ls-remote https://github.com/k3s-io/etcd 341ce193b458049401364c20193ebd14f38fce6d
+SRCREV_pkg-v3="341ce193b458049401364c20193ebd14f38fce6d"
+SRC_URI += "git://github.com/k3s-io/etcd;name=pkg-v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/etcd/client/pkg/v3"
+
+# github.com/libp2p/go-libp2p-asn-util v0.3.0
+# [1] git ls-remote https://github.com/libp2p/go-libp2p-asn-util bce6420c4bcf80f1ab03cdfd4b64575e53328099
+SRCREV_go-libp2p-asn-util="bce6420c4bcf80f1ab03cdfd4b64575e53328099"
+SRC_URI += "git://github.com/libp2p/go-libp2p-asn-util;name=go-libp2p-asn-util;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/libp2p/go-libp2p-asn-util"
+
+# github.com/multiformats/go-multiaddr v0.12.0
+# [1] git ls-remote https://github.com/multiformats/go-multiaddr 5dd793c6fc4935fad347429a48a168acc8073474
+SRCREV_go-multiaddr="5dd793c6fc4935fad347429a48a168acc8073474"
+SRC_URI += "git://github.com/multiformats/go-multiaddr;name=go-multiaddr;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/multiformats/go-multiaddr"
+
+# github.com/multiformats/go-multibase v0.2.0
+# [1] git ls-remote https://github.com/multiformats/go-multibase 58a41f7df1d82d16599e259325b3337d69f70e3b
+SRCREV_go-multibase="58a41f7df1d82d16599e259325b3337d69f70e3b"
+SRC_URI += "git://github.com/multiformats/go-multibase;name=go-multibase;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/multiformats/go-multibase"
+
+# github.com/multiformats/go-multihash v0.2.3
+# [1] git ls-remote https://github.com/multiformats/go-multihash ff9da31500dddfc675e996601a05cdfc3ce7c764
+SRCREV_go-multihash="ff9da31500dddfc675e996601a05cdfc3ce7c764"
+SRC_URI += "git://github.com/multiformats/go-multihash;name=go-multihash;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/multiformats/go-multihash"
+
+# github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1
+# [1] git ls-remote https://github.com/whyrusleeping/go-keyspace 5b898ac5add1da7178a4a98e69cb7b9205c085ee
+SRCREV_go-keyspace="5b898ac5add1da7178a4a98e69cb7b9205c085ee"
+SRC_URI += "git://github.com/whyrusleeping/go-keyspace;name=go-keyspace;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/whyrusleeping/go-keyspace"
+
+# cloud.google.com/go/compute/metadata v0.2.3
+# [1] git ls-remote https://github.com/googleapis/google-cloud-go cf8081fada0955a1682ce3fc400b44bc141309c7
+SRCREV_metadata="cf8081fada0955a1682ce3fc400b44bc141309c7"
+SRC_URI += "git://github.com/googleapis/google-cloud-go;name=metadata;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/cloud.google.com/go/compute/metadata"
+
+# github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24
+# [1] git ls-remote https://github.com/AdaLogics/go-fuzz-headers ced1acdcaa24dc39c01b039fc37576c395f506cf
+SRCREV_go-fuzz-headers="ced1acdcaa24dc39c01b039fc37576c395f506cf"
+SRC_URI += "git://github.com/AdaLogics/go-fuzz-headers;name=go-fuzz-headers;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/AdaLogics/go-fuzz-headers"
+
+# github.com/Azure/go-autorest/tracing v0.6.0
+# [1] git ls-remote https://github.com/Azure/go-autorest b3a0b30a7423314874b3f585289e0e260cf5fc8d
+SRCREV_tracing="b3a0b30a7423314874b3f585289e0e260cf5fc8d"
+SRC_URI += "git://github.com/Azure/go-autorest;name=tracing;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Azure/go-autorest/tracing"
+
+# github.com/inconshreveable/mousetrap v1.1.0
+# [1] git ls-remote https://github.com/inconshreveable/mousetrap 4e8053ee7ef85a6bd26368364a6d27f1641c1d21
+SRCREV_mousetrap="4e8053ee7ef85a6bd26368364a6d27f1641c1d21"
+SRC_URI += "git://github.com/inconshreveable/mousetrap;name=mousetrap;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/inconshreveable/mousetrap"
+
+# github.com/opencontainers/image-spec v1.1.0-rc5
+# [1] git ls-remote https://github.com/opencontainers/image-spec 1e54f0195ce54b4a1a2ecbac8eab7686d91d3080
+SRCREV_image-spec="1e54f0195ce54b4a1a2ecbac8eab7686d91d3080"
+SRC_URI += "git://github.com/opencontainers/image-spec;name=image-spec;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/opencontainers/image-spec"
+
+# github.com/seccomp/libseccomp-golang v0.10.0
+# [1] git ls-remote https://github.com/seccomp/libseccomp-golang 879684a7b708c2ebc730e62fdae39ae9081b4680
+SRCREV_libseccomp-golang="879684a7b708c2ebc730e62fdae39ae9081b4680"
+SRC_URI += "git://github.com/seccomp/libseccomp-golang;name=libseccomp-golang;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/seccomp/libseccomp-golang"
+
+# github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980
+# [1] git ls-remote https://github.com/stefanberger/go-pkcs11uri 78d3cae3a9805d89aa4fa80a362ca944c89a1b99
+SRCREV_go-pkcs11uri="78d3cae3a9805d89aa4fa80a362ca944c89a1b99"
+SRC_URI += "git://github.com/stefanberger/go-pkcs11uri;name=go-pkcs11uri;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/stefanberger/go-pkcs11uri"
+
+# sigs.k8s.io/structured-merge-diff/v4 v4.3.0
+# [1] git ls-remote https://github.com/kubernetes-sigs/structured-merge-diff 7785c50b1768fa997df435a484ab9aa5041596a6
+SRCREV_structured-merge-diff-v4="7785c50b1768fa997df435a484ab9aa5041596a6"
+SRC_URI += "git://github.com/kubernetes-sigs/structured-merge-diff;name=structured-merge-diff-v4;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/sigs.k8s.io/structured-merge-diff/v4"
+
+# github.com/jbenet/go-temp-err-catcher v0.1.0
+# [1] git ls-remote https://github.com/jbenet/go-temp-err-catcher fa11adda5e7cccb838a208007c9ea79dda63c0c0
+SRCREV_go-temp-err-catcher="fa11adda5e7cccb838a208007c9ea79dda63c0c0"
+SRC_URI += "git://github.com/jbenet/go-temp-err-catcher;name=go-temp-err-catcher;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/jbenet/go-temp-err-catcher"
+
+# github.com/multiformats/go-multicodec v0.9.0
+# [1] git ls-remote https://github.com/multiformats/go-multicodec b8b4bf5270f9f220f00bcdeddf1641b13e67cc0b
+SRCREV_go-multicodec="b8b4bf5270f9f220f00bcdeddf1641b13e67cc0b"
+SRC_URI += "git://github.com/multiformats/go-multicodec;name=go-multicodec;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/multiformats/go-multicodec"
+
+# github.com/opentracing/opentracing-go v1.2.0
+# [1] git ls-remote https://github.com/opentracing/opentracing-go d34af3eaa63c4d08ab54863a4bdd0daa45212e12
+SRCREV_opentracing-go="d34af3eaa63c4d08ab54863a4bdd0daa45212e12"
+SRC_URI += "git://github.com/opentracing/opentracing-go;name=opentracing-go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/opentracing/opentracing-go"
+
+# github.com/twitchyliquid64/golang-asm v0.15.1
+# [1] git ls-remote https://github.com/twitchyliquid64/golang-asm 8d7f1f783b11f9a00f5bcdfcae17f5ac8f22512e
+SRCREV_golang-asm="8d7f1f783b11f9a00f5bcdfcae17f5ac8f22512e"
+SRC_URI += "git://github.com/twitchyliquid64/golang-asm;name=golang-asm;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/twitchyliquid64/golang-asm"
+
+# github.com/Azure/go-autorest/autorest v0.11.29
+# [1] git ls-remote https://github.com/Azure/go-autorest c2958ac74c65c138045daa60f149c5f9d949d743
+SRCREV_autorest="c2958ac74c65c138045daa60f149c5f9d949d743"
+SRC_URI += "git://github.com/Azure/go-autorest;name=autorest;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Azure/go-autorest/autorest"
+
+# github.com/cyphar/filepath-securejoin v0.2.4
+# [1] git ls-remote https://github.com/cyphar/filepath-securejoin 2710d06c5b4ba3168beffa0689798d2db12e8ac4
+SRCREV_filepath-securejoin="2710d06c5b4ba3168beffa0689798d2db12e8ac4"
+SRC_URI += "git://github.com/cyphar/filepath-securejoin;name=filepath-securejoin;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/cyphar/filepath-securejoin"
+
+# github.com/hashicorp/go-retryablehttp v0.7.4
+# [1] git ls-remote https://github.com/hashicorp/go-retryablehttp 571a88bc9c3b7c64575f0e9b0f646af1510f2c76
+SRCREV_go-retryablehttp="571a88bc9c3b7c64575f0e9b0f646af1510f2c76"
+SRC_URI += "git://github.com/hashicorp/go-retryablehttp;name=go-retryablehttp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/hashicorp/go-retryablehttp"
+
+# github.com/libopenstorage/openstorage v1.0.0
+# [1] git ls-remote https://github.com/libopenstorage/openstorage 093a0c3888753c2056e7373183693d670c6bba01
+SRCREV_openstorage="093a0c3888753c2056e7373183693d670c6bba01"
+SRC_URI += "git://github.com/libopenstorage/openstorage;name=openstorage;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/libopenstorage/openstorage"
+
+# github.com/go-playground/validator/v10 v10.14.0
+# [1] git ls-remote https://github.com/go-playground/validator ce28d7c4b27fbcafff82bc87a8bf58257beb9030
+SRCREV_v10="ce28d7c4b27fbcafff82bc87a8bf58257beb9030"
+SRC_URI += "git://github.com/go-playground/validator;name=v10;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-playground/validator/v10"
+
+# github.com/hashicorp/golang-lru/arc/v2 v2.0.5
+# [1] git ls-remote https://github.com/hashicorp/golang-lru 3afaa48530f711754c178ceb61ff060d86c17b95
+SRCREV_arc-v2="3afaa48530f711754c178ceb61ff060d86c17b95"
+SRC_URI += "git://github.com/hashicorp/golang-lru;name=arc-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/hashicorp/golang-lru/arc/v2"
+
+# github.com/multiformats/go-multistream v0.4.1
+# [1] git ls-remote https://github.com/multiformats/go-multistream 5b2f48e2db22aa1db90bb5a21aa4e6702d4ee33c
+SRCREV_go-multistream="5b2f48e2db22aa1db90bb5a21aa4e6702d4ee33c"
+SRC_URI += "git://github.com/multiformats/go-multistream;name=go-multistream;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/multiformats/go-multistream"
+
+# github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0
+# [1] git ls-remote https://github.com/AdamKorcz/go-118-fuzz-build 8075edf89bb034603c758f28fe93143047ac5677
+SRCREV_go-118-fuzz-build="8075edf89bb034603c758f28fe93143047ac5677"
+SRC_URI += "git://github.com/AdamKorcz/go-118-fuzz-build;name=go-118-fuzz-build;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/AdamKorcz/go-118-fuzz-build"
+
+# github.com/bronze1man/goStrongswanVici v0.0.0-20221114103242-3f6dc524986c
+# [1] git ls-remote https://github.com/bronze1man/goStrongswanVici 3f6dc524986c8a20ee1e139f9e1bef1595877b5d
+SRCREV_goStrongswanVici="3f6dc524986c8a20ee1e139f9e1bef1595877b5d"
+SRC_URI += "git://github.com/bronze1man/goStrongswanVici;name=goStrongswanVici;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/bronze1man/goStrongswanVici"
+
+# github.com/containernetworking/plugins v1.3.0
+# [1] git ls-remote https://github.com/containernetworking/plugins 38f18d26ecfef550b8bac02656cc11103fd7cff1
+SRCREV_plugins="38f18d26ecfef550b8bac02656cc11103fd7cff1"
+SRC_URI += "git://github.com/containernetworking/plugins;name=plugins;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containernetworking/plugins"
+
+# github.com/google/go-containerregistry v0.14.0
+# [1] git ls-remote https://github.com/google/go-containerregistry 4b081f801f399fa293f23e42ba4c4ac6a6003f2c
+SRCREV_go-containerregistry="4b081f801f399fa293f23e42ba4c4ac6a6003f2c"
+SRC_URI += "git://github.com/google/go-containerregistry;name=go-containerregistry;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/go-containerregistry"
+
+# github.com/grpc-ecosystem/grpc-gateway v1.16.0
+# [1] git ls-remote https://github.com/grpc-ecosystem/grpc-gateway 094a6fe78b3ca888297d090185cdf30f0e42e157
+SRCREV_grpc-gateway="094a6fe78b3ca888297d090185cdf30f0e42e157"
+SRC_URI += "git://github.com/grpc-ecosystem/grpc-gateway;name=grpc-gateway;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/grpc-ecosystem/grpc-gateway"
+
+# github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00
+# [1] git ls-remote https://github.com/monochromegane/go-gitignore 205db1a8cc001de79230472da52edde4974df734
+SRCREV_go-gitignore="205db1a8cc001de79230472da52edde4974df734"
+SRC_URI += "git://github.com/monochromegane/go-gitignore;name=go-gitignore;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/monochromegane/go-gitignore"
+
+# github.com/opencontainers/runtime-spec v1.0.3-0.20220909204839-494a5a6aca78
+# [1] git ls-remote https://github.com/opencontainers/runtime-spec 494a5a6aca782455c0fbfc35af8e12f04e98a55e
+SRCREV_runtime-spec="494a5a6aca782455c0fbfc35af8e12f04e98a55e"
+SRC_URI += "git://github.com/opencontainers/runtime-spec;name=runtime-spec;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/opencontainers/runtime-spec"
+
+# github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626
+# [1] git ls-remote https://github.com/opencontainers/runtime-tools 2e043c6bd62639199bdd0d5f0c5082797de4de2a
+SRCREV_runtime-tools="2e043c6bd62639199bdd0d5f0c5082797de4de2a"
+SRC_URI += "git://github.com/opencontainers/runtime-tools;name=runtime-tools;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/opencontainers/runtime-tools"
+
+# github.com/containerd/stargz-snapshotter v0.14.4-0.20230913082252-7275d45b185c
+# [1] git ls-remote https://github.com/containerd/stargz-snapshotter 7275d45b185cd720ce13747f0d0a78e9e7cd60e3
+SRCREV_stargz-snapshotter="7275d45b185cd720ce13747f0d0a78e9e7cd60e3"
+SRC_URI += "git://github.com/containerd/stargz-snapshotter;name=stargz-snapshotter;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/stargz-snapshotter"
+
+# github.com/multiformats/go-multiaddr-dns v0.3.1
+# [1] git ls-remote https://github.com/multiformats/go-multiaddr-dns 448c10b622b0c09ce6834487156c1fd9a65f1597
+SRCREV_go-multiaddr-dns="448c10b622b0c09ce6834487156c1fd9a65f1597"
+SRC_URI += "git://github.com/multiformats/go-multiaddr-dns;name=go-multiaddr-dns;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/multiformats/go-multiaddr-dns"
+
+# github.com/multiformats/go-multiaddr-fmt v0.1.0
+# [1] git ls-remote https://github.com/multiformats/go-multiaddr-fmt 113ed87ed03cfff94f29fd95236be3ccd933fd36
+SRCREV_go-multiaddr-fmt="113ed87ed03cfff94f29fd95236be3ccd933fd36"
+SRC_URI += "git://github.com/multiformats/go-multiaddr-fmt;name=go-multiaddr-fmt;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/multiformats/go-multiaddr-fmt"
+
+# github.com/Azure/go-autorest/autorest/to v0.4.0
+# [1] git ls-remote https://github.com/Azure/go-autorest b3a0b30a7423314874b3f585289e0e260cf5fc8d
+SRCREV_to="b3a0b30a7423314874b3f585289e0e260cf5fc8d"
+SRC_URI += "git://github.com/Azure/go-autorest;name=to;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Azure/go-autorest/autorest/to"
+
+# github.com/checkpoint-restore/go-criu/v5 v5.3.0
+# [1] git ls-remote https://github.com/checkpoint-restore/go-criu e3059103a5cf6adca2183e08c0315e8d8d5135a5
+SRCREV_v5="e3059103a5cf6adca2183e08c0315e8d8d5135a5"
+SRC_URI += "git://github.com/checkpoint-restore/go-criu;name=v5;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/checkpoint-restore/go-criu/v5"
+
+# github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0
+# [1] git ls-remote https://github.com/decred/dcrd bacf8444a8bc79178f9eb2c65477ab6df01a6439
+SRCREV_secp256k1-v4="bacf8444a8bc79178f9eb2c65477ab6df01a6439"
+SRC_URI += "git://github.com/decred/dcrd;name=secp256k1-v4;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/decred/dcrd/dcrec/secp256k1/v4"
+
+# github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0
+# [1] git ls-remote https://github.com/grpc-ecosystem/grpc-gateway 09e3965a330155f7db8482269d7d91b9bceb7641
+SRCREV_grpc-gateway-v2="09e3965a330155f7db8482269d7d91b9bceb7641"
+SRC_URI += "git://github.com/grpc-ecosystem/grpc-gateway;name=grpc-gateway-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/grpc-ecosystem/grpc-gateway/v2"
+
+# google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17
+# [1] git ls-remote https://github.com/googleapis/go-genproto bbf56f31fb17579209f44dda2d2567d20ff21a20
+SRCREV_googleapis-api="bbf56f31fb17579209f44dda2d2567d20ff21a20"
+SRC_URI += "git://github.com/googleapis/go-genproto;name=googleapis-api;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/genproto/googleapis/api"
+
+# google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f
+# [1] git ls-remote https://github.com/googleapis/go-genproto 83a465c0220f57b4c18228172454daeffa772607
+SRCREV_rpc="83a465c0220f57b4c18228172454daeffa772607"
+SRC_URI += "git://github.com/googleapis/go-genproto;name=rpc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/genproto/googleapis/rpc"
+
+# github.com/rootless-containers/rootlesskit v1.0.1
+# [1] git ls-remote https://github.com/rootless-containers/rootlesskit 5d5f4c0c26e26a6b51d1838c23e793e5836442d0
+SRCREV_rootlesskit="5d5f4c0c26e26a6b51d1838c23e793e5836442d0"
+SRC_URI += "git://github.com/rootless-containers/rootlesskit;name=rootlesskit;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/rootless-containers/rootlesskit"
+
+# github.com/Azure/go-autorest/autorest/adal v0.9.23
+# [1] git ls-remote https://github.com/Azure/go-autorest 553a90ae65a6a2b18306fa04d7b1625960c5decb
+SRCREV_adal="553a90ae65a6a2b18306fa04d7b1625960c5decb"
+SRC_URI += "git://github.com/Azure/go-autorest;name=adal;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Azure/go-autorest/autorest/adal"
+
+# github.com/Azure/go-autorest/autorest/date v0.3.0
+# [1] git ls-remote https://github.com/Azure/go-autorest b3a0b30a7423314874b3f585289e0e260cf5fc8d
+SRCREV_date="b3a0b30a7423314874b3f585289e0e260cf5fc8d"
+SRC_URI += "git://github.com/Azure/go-autorest;name=date;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Azure/go-autorest/autorest/date"
+
+# github.com/libp2p/go-libp2p-routing-helpers v0.7.2
+# [1] git ls-remote https://github.com/libp2p/go-libp2p-routing-helpers 71d7c965185ed346e39cc26140ac49ea13b2222f
+SRCREV_go-libp2p-routing-helpers="71d7c965185ed346e39cc26140ac49ea13b2222f"
+SRC_URI += "git://github.com/libp2p/go-libp2p-routing-helpers;name=go-libp2p-routing-helpers;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/libp2p/go-libp2p-routing-helpers"
+
+# github.com/Azure/go-autorest/autorest/mocks v0.4.2
+# [1] git ls-remote https://github.com/Azure/go-autorest a91292dd2fc10381ac9b90eea72b92e60761eac4
+SRCREV_mocks="a91292dd2fc10381ac9b90eea72b92e60761eac4"
+SRC_URI += "git://github.com/Azure/go-autorest;name=mocks;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Azure/go-autorest/autorest/mocks"
+
+# github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df
+# [1] git ls-remote https://github.com/antlr/antlr4 8188dc5388dfe9246deb9b6ae507c3693fd55c3f
+SRCREV_antlr-v4="8188dc5388dfe9246deb9b6ae507c3693fd55c3f"
+SRC_URI += "git://github.com/antlr/antlr4;name=antlr-v4;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/antlr/antlr4/runtime/Go/antlr/v4"
+
+# github.com/container-storage-interface/spec v1.8.0
+# [1] git ls-remote https://github.com/container-storage-interface/spec c7ab2f379311a9ae234ae42bdfbfebfa9c15e538
+SRCREV_spec="c7ab2f379311a9ae234ae42bdfbfebfa9c15e538"
+SRC_URI += "git://github.com/container-storage-interface/spec;name=spec;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/container-storage-interface/spec"
+
+# github.com/docker/docker-credential-helpers v0.7.0
+# [1] git ls-remote https://github.com/docker/docker-credential-helpers ac5992b5f4756fc0398a7d0c93c609e624368bde
+SRCREV_docker-credential-helpers="ac5992b5f4756fc0398a7d0c93c609e624368bde"
+SRC_URI += "git://github.com/docker/docker-credential-helpers;name=docker-credential-helpers;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/docker-credential-helpers"
+
+# github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
+# [1] git ls-remote https://github.com/grpc-ecosystem/go-grpc-middleware df0f91b29bbbdfc3a686a7a8edbe2b9de2072fdd
+SRCREV_go-grpc-middleware="df0f91b29bbbdfc3a686a7a8edbe2b9de2072fdd"
+SRC_URI += "git://github.com/grpc-ecosystem/go-grpc-middleware;name=go-grpc-middleware;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/grpc-ecosystem/go-grpc-middleware"
+
+# github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
+# [1] git ls-remote https://github.com/grpc-ecosystem/go-grpc-prometheus c225b8c3b01faf2899099b768856a9e916e5087b
+SRCREV_go-grpc-prometheus="c225b8c3b01faf2899099b768856a9e916e5087b"
+SRC_URI += "git://github.com/grpc-ecosystem/go-grpc-prometheus;name=go-grpc-prometheus;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/grpc-ecosystem/go-grpc-prometheus"
+
+# github.com/go-playground/universal-translator v0.18.1
+# [1] git ls-remote https://github.com/go-playground/universal-translator f83cd526536e253181a13835b00cd107f627c505
+SRCREV_universal-translator="f83cd526536e253181a13835b00cd107f627c505"
+SRC_URI += "git://github.com/go-playground/universal-translator;name=universal-translator;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-playground/universal-translator"
+
+# github.com/containerd/fuse-overlayfs-snapshotter v1.0.5
+# [1] git ls-remote https://github.com/containerd/fuse-overlayfs-snapshotter 11c45f4d24689d8cb279813fbcb9bbd01773e0e8
+SRCREV_fuse-overlayfs-snapshotter="11c45f4d24689d8cb279813fbcb9bbd01773e0e8"
+SRC_URI += "git://github.com/containerd/fuse-overlayfs-snapshotter;name=fuse-overlayfs-snapshotter;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/fuse-overlayfs-snapshotter"
+
+# github.com/Azure/go-autorest/autorest/validation v0.3.1
+# [1] git ls-remote https://github.com/Azure/go-autorest 446f41b7d65b2ab6c25b1a7afe42abd3622e9110
+SRCREV_validation="446f41b7d65b2ab6c25b1a7afe42abd3622e9110"
+SRC_URI += "git://github.com/Azure/go-autorest;name=validation;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Azure/go-autorest/autorest/validation"
+
+# github.com/containerd/stargz-snapshotter/estargz v0.14.3
+# [1] git ls-remote https://github.com/containerd/stargz-snapshotter 6ee6fa1a88df6ea098f6b7dddde29e33f09d5331
+SRCREV_estargz="6ee6fa1a88df6ea098f6b7dddde29e33f09d5331"
+SRC_URI += "git://github.com/containerd/stargz-snapshotter;name=estargz;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/stargz-snapshotter/estargz"
+
+# github.com/GoogleCloudPlatform/k8s-cloud-provider v1.18.1-0.20220218231025-f11817397a1b
+# [1] git ls-remote https://github.com/GoogleCloudPlatform/k8s-cloud-provider f11817397a1bb27e88115807a9c083a36e12eaf8
+SRCREV_k8s-cloud-provider="f11817397a1bb27e88115807a9c083a36e12eaf8"
+SRC_URI += "git://github.com/GoogleCloudPlatform/k8s-cloud-provider;name=k8s-cloud-provider;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/GoogleCloudPlatform/k8s-cloud-provider"
+
+# go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.13.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go f2fd476f433128c2494476950ce11600a51bbe35
+SRCREV_otlptrace="f2fd476f433128c2494476950ce11600a51bbe35"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=otlptrace;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/exporters/otlp/otlptrace"
+
+# github.com/googleapis/enterprise-certificate-proxy v0.3.2
+# [1] git ls-remote https://github.com/googleapis/enterprise-certificate-proxy d928958b5b9ec0c2d3ce5e97ea5d1f000125ba7b
+SRCREV_enterprise-certificate-proxy="d928958b5b9ec0c2d3ce5e97ea5d1f000125ba7b"
+SRC_URI += "git://github.com/googleapis/enterprise-certificate-proxy;name=enterprise-certificate-proxy;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/googleapis/enterprise-certificate-proxy"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_api="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=api;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/api"
+
+# github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0
+# [1] git ls-remote https://github.com/matttproud/golang_protobuf_extensions 5a0f9169fc38cc42a5c617c3dc049548ddc27487
+SRCREV_golang_protobuf_extensions-v2="5a0f9169fc38cc42a5c617c3dc049548ddc27487"
+SRC_URI += "git://github.com/matttproud/golang_protobuf_extensions;name=golang_protobuf_extensions-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/matttproud/golang_protobuf_extensions/v2"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/kms v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_kms="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=kms;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/kms"
+
+# go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.13.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go f2fd476f433128c2494476950ce11600a51bbe35
+SRCREV_internal-retry="f2fd476f433128c2494476950ce11600a51bbe35"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=internal-retry;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/exporters/otlp/internal/retry"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_cri-api="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=cri-api;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_kubectl="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=kubectl;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_kubelet="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=kubelet;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_metrics="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=metrics;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics"
+
+# sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.2
+# [1] git ls-remote https://github.com/kubernetes-sigs/apiserver-network-proxy 60b5f0e02800910cbb363668e285ec0e78d7cae1
+SRCREV_konnectivity-client="60b5f0e02800910cbb363668e285ec0e78d7cae1"
+SRC_URI += "git://github.com/kubernetes-sigs/apiserver-network-proxy;name=konnectivity-client;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/sigs.k8s.io/apiserver-network-proxy/konnectivity-client"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_apiserver="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=apiserver;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_client-go="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=client-go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_kube-proxy="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=kube-proxy;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_cli-runtime="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=cli-runtime;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_mount-utils="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=mount-utils;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_apimachinery="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=apimachinery;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery"
+
+# go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.35.1
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go-contrib 356ee7f4343df3704346603fbde1b8d3d8fb86e9
+SRCREV_otelhttp="356ee7f4343df3704346603fbde1b8d3d8fb86e9"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go-contrib;name=otelhttp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/endpointslice v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_endpointslice="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=endpointslice;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/endpointslice"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_cloud-provider="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=cloud-provider;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_component-base="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=component-base;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_code-generator="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=code-generator;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_kube-scheduler="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=kube-scheduler;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler"
+
+# go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.13.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go f2fd476f433128c2494476950ce11600a51bbe35
+SRCREV_otlptracegrpc="f2fd476f433128c2494476950ce11600a51bbe35"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=otlptracegrpc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_kube-aggregator="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=kube-aggregator;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_cluster-bootstrap="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=cluster-bootstrap;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_component-helpers="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=component-helpers;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_controller-manager="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=controller-manager;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_csi-translation-lib="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=csi-translation-lib;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib"
+
+# github.com/container-orchestrated-devices/container-device-interface v0.5.4
+# [1] git ls-remote https://github.com/cncf-tags/container-device-interface 0a1a5bea37b41bbdbb65d0e42b6305eba051f185
+SRCREV_container-device-interface="0a1a5bea37b41bbdbb65d0e42b6305eba051f185"
+SRC_URI += "git://github.com/cncf-tags/container-device-interface;name=container-device-interface;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/container-orchestrated-devices/container-device-interface"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_legacy-cloud-providers="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=legacy-cloud-providers;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/pod-security-admission v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_pod-security-admission="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=pod-security-admission;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/pod-security-admission"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_apiextensions-apiserver="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=apiextensions-apiserver;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_kube-controller-manager="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=kube-controller-manager;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager"
+
+# go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go-contrib c4876c33a8e2e4b09501013f3543153d8aa10178
+SRCREV_otelgrpc="c4876c33a8e2e4b09501013f3543153d8aa10178"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go-contrib;name=otelgrpc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
+
+# github.com/k3s-io/kubernetes/staging/src/k8s.io/dynamic-resource-allocation v1.28.7-k3s1
+# [1] git ls-remote https://github.com/k3s-io/kubernetes 94b07a975a29425d3f5f835ef5e7d9c22f33f8c1
+SRCREV_dynamic-resource-allocation="94b07a975a29425d3f5f835ef5e7d9c22f33f8c1"
+SRC_URI += "git://github.com/k3s-io/kubernetes;name=dynamic-resource-allocation;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/k3s-io/kubernetes/staging/src/k8s.io/dynamic-resource-allocation"
+
+# go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful v0.35.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go-contrib c4876c33a8e2e4b09501013f3543153d8aa10178
+SRCREV_otelrestful="c4876c33a8e2e4b09501013f3543153d8aa10178"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go-contrib;name=otelrestful;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful"
+
diff --git a/recipes-containers/kubernetes/README.md b/recipes-containers/kubernetes/README.md
new file mode 100644
index 00000000..ae79d6c2
--- /dev/null
+++ b/recipes-containers/kubernetes/README.md
@@ -0,0 +1,117 @@
+# k8s: Kubernetes
+
+meta-virtualization provides the recipes and packages suitable for a k8s
+cluster instance.
+
+For a kubernetes controller:
+
+ - packagegroup-k8s-host
+
+For a kubernetes worker/node:
+
+ - packagegroup-k8s-node
+
+If kernel issues or missing features are detected, consider adding the
+"kernel-modules" package to your image (Since the configuration and RDEPENDS
+may not be correct for your kernel + k8s version).
+
+## CNI
+
+The CNI base packages provide core support and are installed by default as
+dependencies of the kubernetes packages. Minimal configuration and startup
+are provided, but you will need to apply the CNI configuration of your choice
+after boot (see below fo an example)
+
+## Configure and initialize the host
+
+A convenience script "k8s-init" is provided to do basic setup on the controller
+node. After the contoller boots, run it for kubeadm setup and other basic
+configuration.
+
+Once the node is ready ('kubectl get nodes' to check), follow the instructions
+for copying the token to your home directory, and apply the networking configuration
+of choice (flannel in the example):
+
+```shell
+ % mkdir -p $HOME/.kube
+ % cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
+ % chown $(id -u):$(id -g) $HOME/.kube/config
+
+ % kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
+```
+
+## Configuration and initialize the node/worker
+
+Once the kubernetes node has booted, it is ready to join the cluster. Some
+basica configuration is done via the packages and a systctl.d configuration
+snippet.
+
+Join the cluster (substitute your controller ip and token information):
+
+```shell
+kubeadm join <controller ip>:6443 --token cq8ngi.6m6mgqi9zf08ypc4 --discovery-token-ca-cert-hash sha256:6064ae531c8dad824f9eadff030f83ec84d00796fac75f1adbd343255eb34fd2
+```
+
+## Notes:
+
+Memory:
+
+ if running under qemu, the default of 256M of memory is not enough, k3s will
+ OOM and exit.
+
+ Boot with qemuparams="-m 2048" to boot with 2G of memory (or choose the
+ appropriate amount for your configuration)
+
+CPUs:
+
+ Kubernetes needs at least two cpus, so ensure your qemuboot is smp of at
+ least 2, and/or that your hardware has the required capabilties.
+
+Disk:
+
+ if using qemu and core-image* you'll need to add extra space in your disks
+ to ensure containers can start. The following in your image recipe, or
+ local.conf would add 2G of extra space to the rootfs:
+
+```shell
+IMAGE_ROOTFS_EXTRA_SPACE = "2097152"
+```
+
+## Example qemux86-64 boot line:
+
+```shell
+runqemu qemux86-64 nographic kvm slirp qemuparams="-m 2048"
+```
+k8s logs can be seen via:
+
+```shell
+% journalctl -u kubelet
+```
+
+or
+
+```shell
+% journalctl -xe
+```
+
+## Example output from qemux86-64:
+
+If you've lost the join token, you can create a new one, or list existing
+ones:
+
+```shell
+root@qemux86-64-7b:~# kubeadm token create --print-join-command
+kubeadm join 10.10.10.117:6443 --token dr71zq.y5vi3s2n2antvcej --discovery-token-ca-cert-hash sha256:6064ae531c8dad824f9eadff030f83ec84d00796fac75f1adbd343255eb34fd2
+
+root@qemux86-64-7b:~# kubeadm token list
+TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
+cq8ngi.6m6mgqi9zf08ypc4 23h 2021-12-16T16:58:02Z authentication,signing The default bootstrap token generated by 'kubeadm init'. system:bootstrappers:kubeadm:default-node-token
+dr71zq.y5vi3s2n2antvcej 23h 2021-12-16T17:46:28Z authentication,signing <none> system:bootstrappers:kubeadm:default-node-token
+```
+
+```shell
+root@qemux86-64:~# kubectl get nodes
+NAME STATUS ROLES AGE VERSION
+qemux86-64-7b Ready control-plane,master 51m v1.23.1-rc.0.1+dd1b0a12471310-dirty
+qemux86-64-9d Ready <none> 49m v1.23.1-rc.0.1+dd1b0a12471310-dirty
+```
diff --git a/recipes-containers/kubernetes/kubernetes/0001-Makefile.generated_files-Fix-race-issue-for-installi.patch b/recipes-containers/kubernetes/kubernetes/0001-Makefile.generated_files-Fix-race-issue-for-installi.patch
deleted file mode 100644
index 02bb5e91..00000000
--- a/recipes-containers/kubernetes/kubernetes/0001-Makefile.generated_files-Fix-race-issue-for-installi.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 441df8a24a2c80e320f140b5d9bc352c7ce8a64a Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Thu, 15 Oct 2020 07:27:35 +0000
-Subject: [PATCH] src/import/build/root/Makefile.generated_files: Fix race issue for installing
- go2make
-
-The src/import/build/root/Makefile.generated_files are called several times during the build, so the
-following target which installs go2make will also run several times:
-
-$(META_DIR)/$(GO_PKGDEPS_FILE): FORCE
-
-It runs automatically when the Makefile is called because of:
-sinclude $(META_DIR)/$(GO_PKGDEPS_FILE)
-
-So there is a race issue of go2make when parallel build:
-hack/run-in-gopath.sh: line 34: build/tmp-glibc/work/corei7-64-wrs-linux/kubernetes/1.18.8-r0/git/src/import/_output/local/go/bin/go2make: No such file or directory
-
-It is because the first process is using go2make, but then the second process
-removes it and reinstall it.
-
-Check whether go2make has been installed or not before install it can fix the
-problem.
-
-Upstream-Status: Pending
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- src/import/build/root/Makefile.generated_files | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-Index: kubernetes-v1.21.1+git45da3fc33872083fb225c1a8c4d03e530d6f7630/src/import/build/root/Makefile.generated_files
-===================================================================
---- kubernetes-v1.21.1+git45da3fc33872083fb225c1a8c4d03e530d6f7630.orig/src/import/build/root/Makefile.generated_files
-+++ kubernetes-v1.21.1+git45da3fc33872083fb225c1a8c4d03e530d6f7630/src/import/build/root/Makefile.generated_files
-@@ -67,7 +67,9 @@
- if [[ "$(DBG_CODEGEN)" == 1 ]]; then \
- echo "DBG: calculating Go dependencies"; \
- fi
-- hack/run-in-gopath.sh go install ./hack/make-rules/helpers/go2make
-+ if [ ! -e _output/local/go/bin/go2make ]; then \
-+ hack/run-in-gopath.sh go install ./hack/make-rules/helpers/go2make; \
-+ fi
- hack/run-in-gopath.sh go2make \
- k8s.io/kubernetes/... \
- --prune k8s.io/kubernetes/staging \
diff --git a/recipes-containers/kubernetes/kubernetes/0001-build-golang.sh-convert-remaining-go-calls-to-use.patch b/recipes-containers/kubernetes/kubernetes/0001-build-golang.sh-convert-remaining-go-calls-to-use.patch
index 8adbafb3..ae956794 100644
--- a/recipes-containers/kubernetes/kubernetes/0001-build-golang.sh-convert-remaining-go-calls-to-use.patch
+++ b/recipes-containers/kubernetes/kubernetes/0001-build-golang.sh-convert-remaining-go-calls-to-use.patch
@@ -3,16 +3,18 @@ From: Bruce Ashfield <bruce.ashfield@gmail.com>
Date: Wed, 12 Aug 2020 16:01:49 +0000
Subject: [PATCH] build/golang.sh: convert remaining 'go' calls to use
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
hack/lib/golang.sh | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
-diff --git a/src/import/hack/lib/golang.sh b/src/import/hack/lib/golang.sh
-index e9148ec08fa..71d3c987563 100755
---- a/src/import/hack/lib/golang.sh
-+++ b/src/import/hack/lib/golang.sh
-@@ -651,7 +651,7 @@ kube::golang::build_some_binaries() {
+Index: kubernetes/hack/lib/golang.sh
+===================================================================
+--- kubernetes.orig/hack/lib/golang.sh
++++ kubernetes/hack/lib/golang.sh
+@@ -689,7 +689,7 @@
kube::golang::create_coverage_dummy_test "${package}"
kube::util::trap_add "kube::golang::delete_coverage_dummy_test \"${package}\"" EXIT
@@ -21,31 +23,28 @@ index e9148ec08fa..71d3c987563 100755
-covermode count \
-coverpkg k8s.io/...,k8s.io/kubernetes/vendor/k8s.io/... \
"${build_args[@]}" \
-@@ -663,13 +663,13 @@ kube::golang::build_some_binaries() {
+@@ -701,13 +701,13 @@
done
if [[ "${#uncovered[@]}" != 0 ]]; then
V=2 kube::log::info "Building ${uncovered[*]} without coverage..."
-- go install "${build_args[@]}" "${uncovered[@]}"
-+ $GO install "${build_args[@]}" "${uncovered[@]}"
+- GO111MODULE=on GOPROXY=off go install "${build_args[@]}" "${uncovered[@]}"
++ GO111MODULE=on GOPROXY=off $GO install "${build_args[@]}" "${uncovered[@]}"
else
V=2 kube::log::info "Nothing to build without coverage."
fi
else
V=2 kube::log::info "Coverage is disabled."
-- go install "${build_args[@]}" "$@"
-+ $GO install "${build_args[@]}" "$@"
+- GO111MODULE=on GOPROXY=off go install "${build_args[@]}" "$@"
++ GO111MODULE=on GOPROXY=off $GO install "${build_args[@]}" "$@"
fi
}
-@@ -725,7 +725,7 @@ kube::golang::build_binaries_for_platform() {
+@@ -769,7 +769,7 @@
testpkg=$(dirname "${test}")
mkdir -p "$(dirname "${outfile}")"
- go test -c \
+ $GO test -c \
${goflags:+"${goflags[@]}"} \
- -gcflags "${gogcflags:-}" \
- -asmflags "${goasmflags:-}" \
---
-2.19.1
-
+ -gcflags="${gogcflags}" \
+ -asmflags="${goasmflags}" \
diff --git a/recipes-containers/kubernetes/kubernetes/0001-build-hack-allow-go-1.20-building.patch b/recipes-containers/kubernetes/kubernetes/0001-build-hack-allow-go-1.20-building.patch
new file mode 100644
index 00000000..ac2d8c47
--- /dev/null
+++ b/recipes-containers/kubernetes/kubernetes/0001-build-hack-allow-go-1.20-building.patch
@@ -0,0 +1,35 @@
+From 6f67131b030c4c228cabb33d45ae9330cbf8fa0a Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Tue, 27 Feb 2024 18:05:54 +0000
+Subject: [PATCH] build/hack: allow go 1.20 building
+
+Although k8s checks for, and demands, golang 1.21.x, runtime
+tests show that golang 1.20.x is properly building and providing
+enough for core functionality.
+
+In an effort to see what else may be lurking, we patch out the
+check to allow builds with our 1.20.x toolchain.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ hack/lib/golang.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/hack/lib/golang.sh b/hack/lib/golang.sh
+index 588288285bb..eb2bcc917b8 100755
+--- a/hack/lib/golang.sh
++++ b/hack/lib/golang.sh
+@@ -499,7 +499,7 @@ Detected go version: ${go_version[*]}.
+ Kubernetes requires ${minimum_go_version} or greater.
+ Please install ${minimum_go_version} or later.
+ EOF
+- return 2
++ return 0
+ fi
+ }
+
+--
+2.39.2
+
diff --git a/recipes-containers/kubernetes/kubernetes/0001-cross-don-t-build-tests-by-default.patch b/recipes-containers/kubernetes/kubernetes/0001-cross-don-t-build-tests-by-default.patch
index 659e3013..c24088f1 100644
--- a/recipes-containers/kubernetes/kubernetes/0001-cross-don-t-build-tests-by-default.patch
+++ b/recipes-containers/kubernetes/kubernetes/0001-cross-don-t-build-tests-by-default.patch
@@ -10,15 +10,17 @@ In our case, we are cross building and can't build the server test
components without error. As such, we patch the targets out of the
script to allow a successful build.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
---
hack/make-rules/cross.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/src/import/hack/make-rules/cross.sh b/hack/make-rules/cross.sh
+diff --git a/hack/make-rules/cross.sh b/hack/make-rules/cross.sh
index 8e1e938..0898c5c 100755
---- a/src/import/hack/make-rules/cross.sh
-+++ b/src/import/hack/make-rules/cross.sh
+--- a/hack/make-rules/cross.sh
++++ b/hack/make-rules/cross.sh
@@ -33,6 +33,6 @@ make all WHAT="${KUBE_NODE_TARGETS[*]}" KUBE_BUILD_PLATFORMS="${KUBE_NODE_PLATFO
make all WHAT="${KUBE_CLIENT_TARGETS[*]}" KUBE_BUILD_PLATFORMS="${KUBE_CLIENT_PLATFORMS[*]}"
diff --git a/recipes-containers/kubernetes/kubernetes/0001-generate-bindata-unset-GOBIN.patch b/recipes-containers/kubernetes/kubernetes/0001-generate-bindata-unset-GOBIN.patch
deleted file mode 100644
index 95196efa..00000000
--- a/recipes-containers/kubernetes/kubernetes/0001-generate-bindata-unset-GOBIN.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 3a43ae2df86f8609d5b88863caf19667420ec171 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@gmail.com>
-Date: Fri, 31 Jul 2020 18:39:38 +0000
-Subject: [PATCH] generate-bindata: unset GOBIN
-
-go install is more strict with recent releases and when cross-compiling
-will generate the following error if GOBIN is set:
-
- | go install: cannot install cross-compiled binaries when GOBIN is set
- | make[2]: *** [Makefile.generated_files:622: gen_bindata] Error 1
- | make[1]: *** [Makefile:545: generated_files] Error 2
- | make: *** [Makefile:506: cross] Error 1
- | WARNING: exit code 2 from a shell command.
-
-So we explicitly unset GOBIN to avoid the issue.
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
----
- src/import/hack/generate-bindata.sh | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/import/hack/generate-bindata.sh b/src/import/hack/generate-bindata.sh
-index c12da77e54b..9a9f8ac3b2f 100755
---- a/src/import/hack/generate-bindata.sh
-+++ b/src/import/hack/generate-bindata.sh
-@@ -33,6 +33,7 @@ export GOBIN="${KUBE_OUTPUT_BINPATH}"
- PATH="${GOBIN}:${PATH}"
-
- # Install tools we need, but only from vendor/...
-+unset GOBIN
- go install k8s.io/kubernetes/vendor/github.com/go-bindata/go-bindata/go-bindata
-
- # run the generation from the root directory for stable output
---
-2.19.1
-
diff --git a/recipes-containers/kubernetes/kubernetes/0001-hack-lib-golang.sh-use-CC-from-environment.patch b/recipes-containers/kubernetes/kubernetes/0001-hack-lib-golang.sh-use-CC-from-environment.patch
index 3a22a2ef..15e8ffa5 100644
--- a/recipes-containers/kubernetes/kubernetes/0001-hack-lib-golang.sh-use-CC-from-environment.patch
+++ b/recipes-containers/kubernetes/kubernetes/0001-hack-lib-golang.sh-use-CC-from-environment.patch
@@ -1,21 +1,25 @@
-From 9cbb2d523d481053d405ebac830c2074b00d3417 Mon Sep 17 00:00:00 2001
+From 116ccf93eef322db23e3bd4f35b12be09ebfbde5 Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen.kooi@linaro.org>
Date: Mon, 23 Jul 2018 15:28:02 +0200
-Subject: [PATCH] hack/lib/golang.sh: use CC from environment
+Subject: [PATCH 1/2] hack/lib/golang.sh: use CC from environment
Toolchain tupples differs, especially when using vendor provides ones.
-Upstream-status: Inappropriate [embedded specific]
+Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
---
- hack/lib/golang.sh | 4 ----
- 1 file changed, 4 deletions(-)
+ hack/lib/golang.sh | 5 -----
+ 1 file changed, 5 deletions(-)
-Index: kubernetes-v1.21.1+git45da3fc33872083fb225c1a8c4d03e530d6f7630/src/import/hack/lib/golang.sh
-===================================================================
---- kubernetes-v1.21.1+git45da3fc33872083fb225c1a8c4d03e530d6f7630.orig/src/import/hack/lib/golang.sh
-+++ kubernetes-v1.21.1+git45da3fc33872083fb225c1a8c4d03e530d6f7630/src/import/hack/lib/golang.sh
-@@ -414,19 +414,15 @@
+diff --git a/hack/lib/golang.sh b/hack/lib/golang.sh
+index fb97ee76783..0ed2d719dd1 100755
+--- a/hack/lib/golang.sh
++++ b/hack/lib/golang.sh
+@@ -419,23 +419,18 @@ kube::golang::set_platform_envs() {
+ case "${platform}" in
+ "linux/amd64")
+ export CGO_ENABLED=1
+- export CC=${KUBE_LINUX_AMD64_CC:-x86_64-linux-gnu-gcc}
;;
"linux/arm")
export CGO_ENABLED=1
@@ -35,3 +39,6 @@ Index: kubernetes-v1.21.1+git45da3fc33872083fb225c1a8c4d03e530d6f7630/src/import
;;
esac
fi
+--
+2.37.1
+
diff --git a/recipes-containers/kubernetes/kubernetes/99-kubernetes.conf b/recipes-containers/kubernetes/kubernetes/99-kubernetes.conf
new file mode 100644
index 00000000..89331ca2
--- /dev/null
+++ b/recipes-containers/kubernetes/kubernetes/99-kubernetes.conf
@@ -0,0 +1 @@
+net.ipv4.ip_forward = 1
diff --git a/recipes-containers/kubernetes/kubernetes/cni-containerd-net.conflist b/recipes-containers/kubernetes/kubernetes/cni-containerd-net.conflist
new file mode 100644
index 00000000..ca434d6f
--- /dev/null
+++ b/recipes-containers/kubernetes/kubernetes/cni-containerd-net.conflist
@@ -0,0 +1,24 @@
+{
+ "cniVersion": "0.4.0",
+ "name": "containerd-net",
+ "plugins": [
+ {
+ "type": "bridge",
+ "bridge": "cni0",
+ "isGateway": true,
+ "ipMasq": true,
+ "promiscMode": true,
+ "ipam": {
+ "type": "host-local",
+ "subnet": "10.88.0.0/16",
+ "routes": [
+ { "dst": "0.0.0.0/0" }
+ ]
+ }
+ },
+ {
+ "type": "portmap",
+ "capabilities": {"portMappings": true}
+ }
+ ]
+}
diff --git a/recipes-containers/kubernetes/kubernetes/k8s-init b/recipes-containers/kubernetes/kubernetes/k8s-init
new file mode 100644
index 00000000..8aaa86e8
--- /dev/null
+++ b/recipes-containers/kubernetes/kubernetes/k8s-init
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+# Copyright (C) 2021 Bruce Ashfield
+#
+# SPDX-License-Identifier: Apache-2.0
+
+# cleanup the iptables
+if [ -f /etc/sysconfig/iptables ]; then
+ cp /etc/sysconfig/iptables /etc/sysconfig/iptables.ORIG
+fi
+iptables --flush && iptables --flush && iptables-save > /etc/sysconfig/iptables
+systemctl restart iptables.service
+
+# Load/Enable br_netfilter kernel module
+modprobe br_netfilter
+modprobe overlay
+
+echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
+echo '1' > /proc/sys/net/bridge/bridge-nf-call-ip6tables
+echo 'net.bridge.bridge-nf-call-iptables=1' >> /etc/sysctl.d/k8s.conf
+echo 'net.bridge.bridge-nf-call-ip6tables=1' >> /etc/sysctl.d/k8s.conf
+echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.d/k8s.conf
+
+systemctl restart systemd-sysctl.service
+
+kubeadm init
+
+# Copy the cluster configuration to the regular users home directory
+mkdir -p $HOME/.kube
+cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
+chown $(id -u):$(id -g) $HOME/.kube/config
diff --git a/recipes-containers/kubernetes/kubernetes_git.bb b/recipes-containers/kubernetes/kubernetes_git.bb
index 372c6dab..caa5ec17 100644
--- a/recipes-containers/kubernetes/kubernetes_git.bb
+++ b/recipes-containers/kubernetes/kubernetes_git.bb
@@ -1,21 +1,39 @@
-HOMEPAGE = "git://github.com/kubernetes/kubernetes"
+HOMEPAGE = "git://github.com/kubernetes/kubernetes;branch=master;protocol=https"
SUMMARY = "Production-Grade Container Scheduling and Management"
DESCRIPTION = "Kubernetes is an open source system for managing containerized \
applications across multiple hosts, providing basic mechanisms for deployment, \
maintenance, and scaling of applications. \
"
-PV = "v1.21.1+git${SRCREV_kubernetes}"
-SRCREV_kubernetes = "45da3fc33872083fb225c1a8c4d03e530d6f7630"
-SRCREV_kubernetes-release = "7c1aa83dac555de6f05500911467b70aca4949f0"
+PV = "v1.29.1+git${SRCREV_kubernetes}"
+CVE_VERSION = "1.29.1"
+SRCREV_kubernetes = "a02da633101bd7919153dd56412b09221c0139bf"
+SRCREV_kubernetes-release = "21382abdbfa8e6a43fd417306fa649cb651cc06e"
+PE = "1"
-SRC_URI = "git://github.com/kubernetes/kubernetes.git;branch=release-1.21;name=kubernetes \
- git://github.com/kubernetes/release;branch=master;name=kubernetes-release;destsuffix=git/release \
+BBCLASSEXTEND = "devupstream:target"
+LIC_FILES_CHKSUM:class-devupstream = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+DEFAULT_PREFERENCE:class-devupstream = "-1"
+SRC_URI:class-devupstream = "git://github.com/kubernetes/kubernetes.git;branch=release-1.29;name=kubernetes;protocol=https \
+ git://github.com/kubernetes/release;branch=master;name=kubernetes-release;destsuffix=git/release;protocol=https \
+ "
+SRCREV_kubernetes:class-devupstream = "e3b5e621f07f0fee298f641ebded61b8f393fe27"
+SRCREV_kubernetes-release:class-devupstream = "21382abdbfa8e6a43fd417306fa649cb651cc06e"
+PV:class-devupstream = "v1.28.2+git${SRCREV_kubernetes}"
+
+SRCREV_FORMAT ?= "kubernetes_release"
+
+SRC_URI = "git://github.com/kubernetes/kubernetes.git;branch=release-1.29;name=kubernetes;protocol=https;destsuffix=git/src/github.com/kubernetes/kubernetes \
+ git://github.com/kubernetes/release;branch=master;name=kubernetes-release;destsuffix=git/release;protocol=https"
+
+SRC_URI:append = " \
file://0001-hack-lib-golang.sh-use-CC-from-environment.patch \
file://0001-cross-don-t-build-tests-by-default.patch \
- file://0001-generate-bindata-unset-GOBIN.patch \
file://0001-build-golang.sh-convert-remaining-go-calls-to-use.patch \
- file://0001-Makefile.generated_files-Fix-race-issue-for-installi.patch \
+ file://0001-build-hack-allow-go-1.20-building.patch \
+ file://cni-containerd-net.conflist \
+ file://k8s-init \
+ file://99-kubernetes.conf \
"
DEPENDS += "rsync-native \
@@ -24,23 +42,21 @@ DEPENDS += "rsync-native \
"
LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
GO_IMPORT = "import"
+S = "${WORKDIR}/git/src/github.com/kubernetes/kubernetes"
inherit systemd
inherit go
inherit goarch
+inherit cni_networking
COMPATIBLE_HOST = '(x86_64.*|arm.*|aarch64.*)-linux'
do_compile() {
- # link fixups for compilation
- rm -f ${S}/src/import/vendor/src
- ln -sf ./ ${S}/src/import/vendor/src
-
- export GOPATH="${S}/src/import/.gopath:${S}/src/import/vendor:${STAGING_DIR_TARGET}/${prefix}/local/go"
- cd ${S}/src/import
+ export GOPATH="${S}/src/import/.gopath:${S}/src/import/vendor:${STAGING_DIR_TARGET}/${prefix}/local/go:${WORKDIR}/git/"
+ cd ${S}
# Build the host tools first, using the host compiler
export GOARCH="${BUILD_GOARCH}"
@@ -51,11 +67,19 @@ do_compile() {
export CGO_CFLAGS="${BUILD_CFLAGS}"
# as of go 1.15.5, there are some flags the CGO doesn't like. Rather than
# clearing them all, we sed away the ones we don't want.
- export CGO_LDFLAGS="$(echo ${BUILD_LDFLAGS} | sed 's/-Wl,-O1//g' | sed 's/-Wl,--dynamic-linker.*?( \|$\)//g')"
+ export CGO_LDFLAGS="$(echo ${BUILD_LDFLAGS} | sed 's/-Wl,-O1//g' | sed 's/-Wl,--dynamic-linker.*?\( \|$\)//g')"
export CC="${BUILD_CC}"
export LD="${BUILD_LD}"
- make generated_files GO="go" KUBE_BUILD_PLATFORMS="${HOST_GOOS}/${BUILD_GOARCH}"
+ # set the toolchain to local to avoid an attempted fetch of
+ # valiation by the build
+ # https://github.com/actions/setup-go/issues/420
+ export GOTOOLCHAIN="local"
+
+ # make generated_files GO="go" KUBE_BUILD_PLATFORMS="${HOST_GOOS}/${BUILD_GOARCH}"
+ # is replaced by:
+ # ./hack/update-codegen.sh
+ # but we don't appear to need either anymore, but we leave them as a placeholder/reminder
# Build the target binaries
export GOARCH="${TARGET_GOARCH}"
@@ -70,7 +94,7 @@ do_compile() {
export GOBIN=""
# to limit what is built, use 'WHAT', i.e. make WHAT=cmd/kubelet
- make cross CGO_FLAGS=${CGO_FLAGS} GO=${GO} KUBE_BUILD_PLATFORMS=${GOOS}/${GOARCH} GOLDFLAGS=""
+ make cross CGO_FLAGS=${CGO_FLAGS} GO=${GO} KUBE_BUILD_PLATFORMS=${GOOS}/${GOARCH} GOLDFLAGS="" DBG=1
}
do_install() {
@@ -80,38 +104,69 @@ do_install() {
install -d ${D}${sysconfdir}/kubernetes/manifests/
- install -m 755 -D ${S}/src/import/_output/local/bin/${TARGET_GOOS}/${TARGET_GOARCH}/* ${D}/${bindir}
+ install -m 755 -D ${S}/_output/local/bin/${TARGET_GOOS}/${TARGET_GOARCH}/* ${D}/${bindir}
install -m 0644 ${WORKDIR}/git/release/cmd/kubepkg/templates/latest/deb/kubelet/lib/systemd/system/kubelet.service ${D}${systemd_unitdir}/system/
install -m 0644 ${WORKDIR}/git/release/cmd/kubepkg/templates/latest/deb/kubeadm/10-kubeadm.conf ${D}${systemd_unitdir}/system/kubelet.service.d/
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d "${D}${BIN_PREFIX}${base_bindir}"
+ install -m 755 "${WORKDIR}/k8s-init" "${D}${BIN_PREFIX}${base_bindir}"
+
+ install -d ${D}${sysconfdir}/sysctl.d
+ install -m 0644 "${WORKDIR}/99-kubernetes.conf" "${D}${sysconfdir}/sysctl.d"
+ fi
}
-PACKAGES =+ "kubeadm kubectl kubelet kube-proxy ${PN}-misc"
+CNI_NETWORKING_FILES ?= "${WORKDIR}/cni-containerd-net.conflist"
+
+PACKAGES =+ "kubeadm kubectl kubelet kube-proxy ${PN}-misc ${PN}-host"
-ALLOW_EMPTY_${PN} = "1"
-INSANE_SKIP_${PN} += "ldflags already-stripped"
-INSANE_SKIP_${PN}-misc += "ldflags already-stripped"
+ALLOW_EMPTY:${PN} = "1"
+INSANE_SKIP:${PN} += "ldflags already-stripped"
+INSANE_SKIP:${PN}-misc += "ldflags already-stripped textrel"
+INSANE_SKIP:kubelet += "ldflags already-stripped"
# Note: we are explicitly *not* adding docker to the rdepends, since we allow
# backends like cri-o to be used.
-RDEPENDS_${PN} += "kubeadm \
+RDEPENDS:${PN} += "kubeadm \
kubectl \
kubelet \
- cni"
+ kubernetes-cni"
-RDEPENDS_kubeadm = "kubelet kubectl"
-FILES_kubeadm = "${bindir}/kubeadm ${systemd_unitdir}/system/kubelet.service.d/*"
+RDEPENDS:kubeadm = "kubelet kubectl cri-tools conntrack-tools"
+FILES:kubeadm = "${bindir}/kubeadm ${systemd_unitdir}/system/kubelet.service.d/*"
-RDEPENDS_kubelet = "iptables socat util-linux ethtool iproute2 ebtables iproute2-tc"
-FILES_kubelet = "${bindir}/kubelet ${systemd_unitdir}/system/kubelet.service ${sysconfdir}/kubernetes/manifests/"
+RDEPENDS:kubelet = "iptables socat util-linux ethtool iproute2 ebtables iproute2-tc"
+FILES:kubelet = "${bindir}/kubelet ${systemd_unitdir}/system/kubelet.service ${sysconfdir}/kubernetes/manifests/"
SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES','systemd','kubelet','',d)}"
-SYSTEMD_SERVICE_kubelet = "${@bb.utils.contains('DISTRO_FEATURES','systemd','kubelet.service','',d)}"
-SYSTEMD_AUTO_ENABLE_kubelet = "enable"
-
-FILES_kubectl = "${bindir}/kubectl"
-FILES_kube-proxy = "${bindir}/kube-proxy"
-FILES_${PN}-misc = "${bindir}"
-
+SYSTEMD_SERVICE:kubelet = "${@bb.utils.contains('DISTRO_FEATURES','systemd','kubelet.service','',d)}"
+SYSTEMD_AUTO_ENABLE:kubelet = "enable"
+
+FILES:kubectl = "${bindir}/kubectl"
+FILES:kube-proxy = "${bindir}/kube-proxy"
+FILES:${PN}-misc = "${bindir} ${sysconfdir}/sysctl.d"
+
+ALLOW_EMPTY:${PN}-host = "1"
+FILES:${PN}-host = "${BIN_PREFIX}${base_bindir}/k8s-init"
+RDEPENDS:${PN}-host = "${PN}"
+
+RRECOMMENDS:${PN} = "\
+ kernel-module-xt-addrtype \
+ kernel-module-xt-nat \
+ kernel-module-xt-multiport \
+ kernel-module-xt-conntrack \
+ kernel-module-xt-comment \
+ kernel-module-xt-mark \
+ kernel-module-xt-connmark \
+ kernel-module-vxlan \
+ kernel-module-xt-masquerade \
+ kernel-module-xt-statistic \
+ kernel-module-xt-physdev \
+ kernel-module-xt-nflog \
+ kernel-module-xt-limit \
+ kernel-module-nfnetlink-log \
+ "
deltask compile_ptest_base
diff --git a/recipes-containers/lxc/README b/recipes-containers/lxc/README
new file mode 100644
index 00000000..e6e3f1af
--- /dev/null
+++ b/recipes-containers/lxc/README
@@ -0,0 +1,23 @@
+install:
+--------
+
+ Install the following packages to your image:
+
+ IMAGE_INSTALL:append = "lxc lxc-networking kernel-modules"
+
+ These will put the core lxc application and networking onto your image.
+ No other configuration is required for a basic system.
+
+ Note: has only been tested with systemd, sysvinit patches are welcome
+
+ Note: Partially conflicts with packages such as k3s, networking will fail to
+ start.
+
+sample test:
+-----------
+
+ % lxc-create -n test -t download -- --server us.lxd.images.canonical.com -d alpine -r 3.16 -a amd64
+ % lxc-start test
+ % lxc-console test
+
+
diff --git a/recipes-containers/lxc/files/0001-download-don-t-try-compatbility-index.patch b/recipes-containers/lxc/files/0001-download-don-t-try-compatbility-index.patch
new file mode 100644
index 00000000..a1e5fb67
--- /dev/null
+++ b/recipes-containers/lxc/files/0001-download-don-t-try-compatbility-index.patch
@@ -0,0 +1,45 @@
+From d69c856f90c752637b33e59fbbcfa31f619e2285 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Sun, 14 Aug 2022 22:44:24 -0400
+Subject: [PATCH] download: don't try compatbility index
+
+This is being mistaken for a valid, non compat index .. and we never
+try for the one that exists (the index without a compatibility
+extension). So we just drop the compat try for now.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ templates/lxc-download.in | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/templates/lxc-download.in b/templates/lxc-download.in
+index 9a3290fbc..216e4dda7 100755
+--- a/templates/lxc-download.in
++++ b/templates/lxc-download.in
+@@ -234,9 +234,7 @@ if [ "${DOWNLOAD_LIST_IMAGES}" = "true" ] || [ "${DOWNLOAD_INTERACTIVE}" = "true
+ DOWNLOAD_INDEX_PATH="/meta/1.0/index-${DOWNLOAD_MODE}"
+
+ echo "Downloading the image index"
+- if ! download_file "${DOWNLOAD_INDEX_PATH}.${DOWNLOAD_COMPAT_LEVEL}" "${DOWNLOAD_TEMP}/index" noexit; then
+- download_file "${DOWNLOAD_INDEX_PATH}" "${DOWNLOAD_TEMP}/index" normal
+- fi
++ download_file "${DOWNLOAD_INDEX_PATH}" "${DOWNLOAD_TEMP}/index" normal
+
+ # Parse it
+ echo ""
+@@ -316,9 +314,7 @@ if [ "${DOWNLOAD_USE_CACHE}" = "false" ]; then
+ DOWNLOAD_INDEX_PATH="/meta/1.0/index-${DOWNLOAD_MODE}"
+
+ echo "Downloading the image index"
+- if ! download_file "${DOWNLOAD_INDEX_PATH}.${DOWNLOAD_COMPAT_LEVEL}" "${DOWNLOAD_TEMP}/index" noexit; then
+- download_file "${DOWNLOAD_INDEX_PATH}" "${DOWNLOAD_TEMP}/index" normal
+- fi
++ download_file "${DOWNLOAD_INDEX_PATH}" "${DOWNLOAD_TEMP}/index" normal
+
+ # Parse it
+ while IFS=';' read -r f1 f2 f3 f4 f5 f6; do
+--
+2.25.1
+
diff --git a/recipes-containers/lxc/files/0001-lxc-test-usernic-drop-cgroup-handling.patch b/recipes-containers/lxc/files/0001-lxc-test-usernic-drop-cgroup-handling.patch
new file mode 100644
index 00000000..162e8f9d
--- /dev/null
+++ b/recipes-containers/lxc/files/0001-lxc-test-usernic-drop-cgroup-handling.patch
@@ -0,0 +1,61 @@
+From ec85e5ca4953292c4341497704ce738669a79b64 Mon Sep 17 00:00:00 2001
+From: Serge Hallyn <serge@hallyn.com>
+Date: Fri, 2 Feb 2024 10:41:11 -0600
+Subject: [PATCH] lxc-test-usernic: drop cgroup handling
+
+This stuff is not needed in a modern systemd based system, and in fact
+breaks. It would probably be better to detect such a system so that a
+non-systemd box can still run this test. But I'm not sure what would be
+reliable.
+
+Upstream-Status: Backport from
+[https://github.com/lxc/lxc/commit/ec85e5ca4953292c4341497704ce738669a79b64]
+
+Signed-off-by: Serge Hallyn <serge@hallyn.com>
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+---
+ src/tests/lxc-test-usernic.in | 28 ----------------------------
+ 1 file changed, 28 deletions(-)
+
+diff --git a/src/tests/lxc-test-usernic.in b/src/tests/lxc-test-usernic.in
+index 9af8678f3..49fd5e3f7 100755
+--- a/src/tests/lxc-test-usernic.in
++++ b/src/tests/lxc-test-usernic.in
+@@ -80,34 +80,6 @@ lxc.idmap = u 0 910000 10000
+ lxc.idmap = g 0 910000 10000
+ EOF
+
+-if command -v cgm >/dev/null 2>&1; then
+- cgm create all usernic-user
+- cgm chown all usernic-user $(id -u usernic-user) $(id -g usernic-user)
+- cgm movepid all usernic-user $$
+-elif [ -e /sys/fs/cgroup/cgmanager/sock ]; then
+- for d in $(cut -d : -f 2 /proc/self/cgroup); do
+- dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \
+- --type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.Create \
+- string:$d string:usernic-user >/dev/null
+-
+- dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \
+- --type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.Chown \
+- string:$d string:usernic-user int32:$(id -u usernic-user) int32:$(id -g usernic-user) >/dev/null
+-
+- dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \
+- --type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.MovePid \
+- string:$d string:usernic-user int32:$$ >/dev/null
+- done
+-else
+- for d in /sys/fs/cgroup/*; do
+- [ "$d" = "/sys/fs/cgroup/unified" ] && continue
+- [ -f $d/cgroup.clone_children ] && echo 1 > $d/cgroup.clone_children
+- [ ! -d $d/lxctest ] && mkdir $d/lxctest
+- chown -R usernic-user: $d/lxctest
+- echo $$ > $d/lxctest/tasks
+- done
+-fi
+-
+ mkdir -p /run/user/$(id -u usernic-user)
+ chown -R usernic-user: /run/user/$(id -u usernic-user) /home/usernic-user
+
+--
+2.35.5
+
diff --git a/recipes-containers/lxc/files/0001-template-if-busybox-contains-init-use-it-in-containe.patch b/recipes-containers/lxc/files/0001-template-if-busybox-contains-init-use-it-in-containe.patch
new file mode 100644
index 00000000..760ebe64
--- /dev/null
+++ b/recipes-containers/lxc/files/0001-template-if-busybox-contains-init-use-it-in-containe.patch
@@ -0,0 +1,45 @@
+From 2789860daaa7780e1542bb1c60a89860e5661739 Mon Sep 17 00:00:00 2001
+From: Xiangyu Chen <xiangyu.chen@windriver.com>
+Date: Wed, 1 Mar 2023 09:25:35 +0800
+Subject: [PATCH] template: if busybox contains init, use it in container
+
+The lxc test code using busybox template, some cases would be failed or hang
+if the init progress not from busybox. This cause ptest report lots of failed.
+
+The changes is checking whether the busybox has built-in init, if it has,use it.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+---
+ templates/lxc-busybox.in | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/templates/lxc-busybox.in b/templates/lxc-busybox.in
+index dab7c1faf..e2beae7a4 100755
+--- a/templates/lxc-busybox.in
++++ b/templates/lxc-busybox.in
+@@ -184,10 +184,16 @@ configure_busybox()
+ return 1
+ fi
+
+- # copy bash binary as the container init
+- if ! cp "$(which bash)" "${rootfs}/sbin/init"; then
+- echo "ERROR: Failed to copy bash binary"
+- return 1
++ # checking whether busybox has init or not
++ if ! ${rootfs}/bin/busybox --list | grep "init" > /dev/null; then
++ # copy bash binary as the container init
++ if ! cp "$(which bash)" "${rootfs}/sbin/init"; then
++ echo "ERROR: Failed to copy bash binary"
++ return 1
++ fi
++ else
++ # relink /sbin/init
++ ln "${rootfs}/bin/busybox" "${rootfs}/sbin/init"
+ fi
+
+
+--
+2.34.1
+
diff --git a/recipes-containers/lxc/files/0001-tests-remove-old-and-broken-cgroup-handling-code-fro.patch b/recipes-containers/lxc/files/0001-tests-remove-old-and-broken-cgroup-handling-code-fro.patch
new file mode 100644
index 00000000..bf8df795
--- /dev/null
+++ b/recipes-containers/lxc/files/0001-tests-remove-old-and-broken-cgroup-handling-code-fro.patch
@@ -0,0 +1,103 @@
+From 8f9733d756361ff8f8d8d589f286c0e064b1195d Mon Sep 17 00:00:00 2001
+From: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
+Date: Thu, 15 Feb 2024 18:13:05 +0100
+Subject: [PATCH] tests: remove old and broken cgroup handling code from tests
+
+We have removed the same piece of code in
+ec85e5ca495 ("lxc-test-usernic: drop cgroup handling")
+let's do the same for two other tests.
+
+This fixes autopkgtests.
+
+Upstream-Status: Backport from
+[https://github.com/lxc/lxc/commit/8f9733d756361ff8f8d8d589f286c0e064b1195d]
+
+Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+---
+ src/tests/lxc-test-apparmor-mount | 29 -----------------------------
+ src/tests/lxc-test-unpriv | 28 ----------------------------
+ 2 files changed, 57 deletions(-)
+
+diff --git a/src/tests/lxc-test-apparmor-mount b/src/tests/lxc-test-apparmor-mount
+index 7c9d9ad50..ddf783d4b 100755
+--- a/src/tests/lxc-test-apparmor-mount
++++ b/src/tests/lxc-test-apparmor-mount
+@@ -119,35 +119,6 @@ chown -R $TUSER: /run/user/$(id -u $TUSER)
+
+ cd $HDIR
+
+-if command -v cgm >/dev/null 2>&1; then
+- cgm create all $TUSER
+- cgm chown all $TUSER $(id -u $TUSER) $(id -g $TUSER)
+- cgm movepid all $TUSER $$
+-elif [ -e /sys/fs/cgroup/cgmanager/sock ]; then
+- for d in $(cut -d : -f 2 /proc/self/cgroup); do
+- dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \
+- --type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.Create \
+- string:$d string:$TUSER >/dev/null
+-
+- dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \
+- --type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.Chown \
+- string:$d string:$TUSER int32:$(id -u $TUSER) int32:$(id -g $TUSER) >/dev/null
+-
+- dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \
+- --type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.MovePid \
+- string:$d string:$TUSER int32:$$ >/dev/null
+- done
+-else
+- for d in /sys/fs/cgroup/*; do
+- [ "$d" = "/sys/fs/cgroup/unified" ] && continue
+- [ -f $d/cgroup.clone_children ] && echo 1 > $d/cgroup.clone_children
+- [ ! -d $d/lxctest ] && mkdir $d/lxctest
+- chown -R $TUSER: $d/lxctest
+- echo $$ > $d/lxctest/tasks
+- done
+-fi
+-
+-
+ run_cmd lxc-create -t busybox -n $cname
+
+ echo "test default confined container"
+diff --git a/src/tests/lxc-test-unpriv b/src/tests/lxc-test-unpriv
+index 8fb9106d6..426add9da 100755
+--- a/src/tests/lxc-test-unpriv
++++ b/src/tests/lxc-test-unpriv
+@@ -130,34 +130,6 @@ chown -R $TUSER: /run/user/$(id -u $TUSER)
+
+ cd $HDIR
+
+-if command -v cgm >/dev/null 2>&1; then
+- cgm create all $TUSER
+- cgm chown all $TUSER $(id -u $TUSER) $(id -g $TUSER)
+- cgm movepid all $TUSER $$
+-elif [ -e /sys/fs/cgroup/cgmanager/sock ]; then
+- for d in $(cut -d : -f 2 /proc/self/cgroup); do
+- dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \
+- --type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.Create \
+- string:$d string:$TUSER >/dev/null
+-
+- dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \
+- --type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.Chown \
+- string:$d string:$TUSER int32:$(id -u $TUSER) int32:$(id -g $TUSER) >/dev/null
+-
+- dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \
+- --type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.MovePid \
+- string:$d string:$TUSER int32:$$ >/dev/null
+- done
+-else
+- for d in /sys/fs/cgroup/*; do
+- [ "$d" = "/sys/fs/cgroup/unified" ] && continue
+- [ -f $d/cgroup.clone_children ] && echo 1 > $d/cgroup.clone_children
+- [ ! -d $d/lxctest ] && mkdir $d/lxctest
+- chown -R $TUSER: $d/lxctest
+- echo $$ > $d/lxctest/tasks
+- done
+-fi
+-
+ run_cmd lxc-create -t busybox -n c1 -l trace -o "${UNPRIV_LOG}"
+
+ # Make sure we can start it - twice
+--
+2.35.5
+
diff --git a/recipes-containers/lxc/files/commands-fix-check-for-seccomp-notify-support.patch b/recipes-containers/lxc/files/commands-fix-check-for-seccomp-notify-support.patch
deleted file mode 100644
index 391af381..00000000
--- a/recipes-containers/lxc/files/commands-fix-check-for-seccomp-notify-support.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From a342b11fedb3010630de4909ca707ebdc0862060 Mon Sep 17 00:00:00 2001
-From: Eneas U de Queiroz <cotequeiroz@gmail.com>
-Date: Fri, 25 Dec 2020 13:54:14 -0300
-Subject: [PATCH] commands: fix check for seccomp notify support
-
-Use HAVE_SECCOMP_NOTIFY instead of HAVE_DECL_SECCOMP_NOTIFY_FD.
-Currently the latter will be true if the declaration is found by
-configure, even if 'configure --disable-seccomp' is used.
-
-HAVE_SECCOMP_NOTIFY is defined in lxcseccomp.h if both HAVE_SECCOMP and
-HAVE_DECL_SECCOMP_NOTIFY_FD are true, which is the correct behavior.
-
-Upstream-status: submitted https://github.com/lxc/lxc/pull/3623
-
-Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
----
- src/lxc/commands.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/lxc/commands.c b/src/lxc/commands.c
-index a9a03ca2c..37d1abcef 100644
---- a/src/lxc/commands.c
-+++ b/src/lxc/commands.c
-@@ -501,7 +501,7 @@ static int lxc_cmd_get_devpts_fd_callback(int fd, struct lxc_cmd_req *req,
-
- int lxc_cmd_get_seccomp_notify_fd(const char *name, const char *lxcpath)
- {
--#if HAVE_DECL_SECCOMP_NOTIFY_FD
-+#ifdef HAVE_SECCOMP_NOTIFY
- int ret, stopped;
- struct lxc_cmd_rr cmd = {
- .req = {
-@@ -526,7 +526,7 @@ static int lxc_cmd_get_seccomp_notify_fd_callback(int fd, struct lxc_cmd_req *re
- struct lxc_handler *handler,
- struct lxc_epoll_descr *descr)
- {
--#if HAVE_DECL_SECCOMP_NOTIFY_FD
-+#ifdef HAVE_SECCOMP_NOTIFY
- struct lxc_cmd_rsp rsp = {
- .ret = 0,
- };
---
-2.17.1
-
diff --git a/recipes-containers/lxc/files/configure-skip-libseccomp-tests-if-it-is-disabled.patch b/recipes-containers/lxc/files/configure-skip-libseccomp-tests-if-it-is-disabled.patch
deleted file mode 100644
index 43c91bab..00000000
--- a/recipes-containers/lxc/files/configure-skip-libseccomp-tests-if-it-is-disabled.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 67cd8bde2d46983df8fa9f647e9fc0b96370ec29 Mon Sep 17 00:00:00 2001
-From: Eneas U de Queiroz <cotequeiroz@gmail.com>
-Date: Sat, 16 Jan 2021 13:54:07 -0300
-Subject: [PATCH] configure: skip libseccomp tests if it is disabled
-
-Move the block checking for libseccomp api compatibility inside
-AM_COND_IF([ENABLE_SECCOMP] ... ).
-
-Upstream-Status: submitted [https://github.com/lxc/lxc/pull/3623]
-
-Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
----
- configure.ac | 17 ++++++++---------
- 1 file changed, 8 insertions(+), 9 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index f58487f5d..ce6363136 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -312,6 +312,14 @@ AM_COND_IF([ENABLE_SECCOMP],
- AC_CHECK_LIB([seccomp], [seccomp_init],[],[AC_MSG_ERROR([You must install the seccomp development package in order to compile lxc])])
- AC_SUBST([SECCOMP_LIBS], [-lseccomp])
- ])
-+ # HAVE_SCMP_FILTER_CTX=1 will tell us we have libseccomp api >= 1.0.0
-+ OLD_CFLAGS="$CFLAGS"
-+ CFLAGS="$CFLAGS $SECCOMP_CFLAGS"
-+ AC_CHECK_TYPES([scmp_filter_ctx], [], [], [[#include <seccomp.h>]])
-+ AC_CHECK_DECLS([seccomp_notify_fd], [], [], [[#include <seccomp.h>]])
-+ AC_CHECK_TYPES([struct seccomp_notif_sizes], [], [], [[#include <seccomp.h>]])
-+ AC_CHECK_DECLS([seccomp_syscall_resolve_name_arch], [], [], [[#include <seccomp.h>]])
-+ CFLAGS="$OLD_CFLAGS"
- ])
-
- AC_MSG_CHECKING(for static libcap)
-@@ -359,15 +367,6 @@ AM_COND_IF([ENABLE_CAP],
- AC_CHECK_LIB(cap,cap_get_file, AC_DEFINE(LIBCAP_SUPPORTS_FILE_CAPABILITIES,1,[Have cap_get_file]),[],[])
- AC_SUBST([CAP_LIBS], [-lcap])])
-
--# HAVE_SCMP_FILTER_CTX=1 will tell us we have libseccomp api >= 1.0.0
--OLD_CFLAGS="$CFLAGS"
--CFLAGS="$CFLAGS $SECCOMP_CFLAGS"
--AC_CHECK_TYPES([scmp_filter_ctx], [], [], [[#include <seccomp.h>]])
--AC_CHECK_DECLS([seccomp_notify_fd], [], [], [[#include <seccomp.h>]])
--AC_CHECK_TYPES([struct seccomp_notif_sizes], [], [], [[#include <seccomp.h>]])
--AC_CHECK_DECLS([seccomp_syscall_resolve_name_arch], [], [], [[#include <seccomp.h>]])
--CFLAGS="$OLD_CFLAGS"
--
- AC_CHECK_HEADERS([linux/bpf.h], [
- AC_CHECK_TYPES([struct bpf_cgroup_dev_ctx], [], [], [[#include <linux/bpf.h>]])
- ], [], [])
---
-2.17.1
-
diff --git a/recipes-containers/lxc/files/logs-optionally-use-base-filenames-to-report-src-fil.patch b/recipes-containers/lxc/files/logs-optionally-use-base-filenames-to-report-src-fil.patch
deleted file mode 100644
index a8c76bc8..00000000
--- a/recipes-containers/lxc/files/logs-optionally-use-base-filenames-to-report-src-fil.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 0cfa202f5d96a35692f063f35bf4706f310b17e4 Mon Sep 17 00:00:00 2001
-From: Jim Somerville <Jim.Somerville@windriver.com>
-Date: Fri, 25 Sep 2015 15:08:17 -0400
-Subject: [PATCH] logs: optionally use base filenames to report src files
-
-Message-Id: <4729d0f4c4d1dacd150ddfd7061dda875eb94e34.1443216870.git.Jim.Somerville@windriver.com>
-
-Problem: Logs are nice in that they report the source file,
-routine, and line number where an issue occurs. But the
-file is printed as the absolute filename. Users do not
-need to see a long spew of path directory names where the package
-was built. It just confuses things.
-
-Solution: Optionally chop off all leading directories so that just
-the source filename ie. basename is printed. This is done by
-setting a #ifdef LXC_LOG_USE_BASENAME check in the code. That
-define is done via the optional --enable-log-src-basename provided
-at configure time.
-
-Using __BASE_FILE__ instead of __FILE__ did not work. It
-refers to the file name as presented to the compile
-machinery, and that may still be the absolute pathname to
-the file.
-
-Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
-
----
- configure.ac | 9 +++++++++
- src/lxc/log.h | 5 +++++
- 2 files changed, 14 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index a3272e9..a2d4c29 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -378,6 +378,15 @@ AC_ARG_ENABLE([examples],
- [enable_examples=$enableval], [enable_examples=yes])
- AM_CONDITIONAL([ENABLE_EXAMPLES], [test "x$enable_examples" = "xyes"])
-
-+# Enable basenames in the logs for source files
-+AC_ARG_ENABLE([log-src-basename],
-+ [AC_HELP_STRING([--enable-log-src-basename], [Use the shorter source file basename in the logs [default=no]])],
-+ [], [enable_log_src_basename=no])
-+
-+if test "x$enable_log_src_basename" = "xyes"; then
-+ AC_DEFINE([LXC_LOG_USE_BASENAME], 1, [Enabling shorter src filenames in the logs])
-+fi
-+
- # Enable dumping stack traces
- AC_ARG_ENABLE([mutex-debugging],
- [AS_HELP_STRING([--enable-mutex-debugging], [Makes mutexes to report error and provide stack trace [default=no]])],
-diff --git a/src/lxc/log.h b/src/lxc/log.h
-index d280656..62cbf4f 100644
---- a/src/lxc/log.h
-+++ b/src/lxc/log.h
-@@ -47,8 +47,13 @@ struct lxc_log_locinfo {
- int line;
- };
-
-+#ifdef LXC_LOG_USE_BASENAME
-+#define LXC_LOG_LOCINFO_INIT \
-+ { .file = (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__), .func = __func__, .line = __LINE__ }
-+#else
- #define LXC_LOG_LOCINFO_INIT \
- { .file = __FILE__, .func = __func__, .line = __LINE__ }
-+#endif
-
- /* brief logging event object */
- struct lxc_log_event {
diff --git a/recipes-containers/lxc/files/lxc-1.0.0-disable-udhcp-from-busybox-template.patch b/recipes-containers/lxc/files/lxc-1.0.0-disable-udhcp-from-busybox-template.patch
index 6702b69e..ea7bee9b 100644
--- a/recipes-containers/lxc/files/lxc-1.0.0-disable-udhcp-from-busybox-template.patch
+++ b/recipes-containers/lxc/files/lxc-1.0.0-disable-udhcp-from-busybox-template.patch
@@ -3,6 +3,8 @@ From: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Date: Mon, 8 Apr 2013 18:30:19 +0300
Subject: [PATCH] lxc-0.9.0-disable-udhcp-from-busybox-template
+Upstream-Status: Inappropriate [embedded specific]
+
---
templates/lxc-busybox.in | 1 -
1 file changed, 1 deletion(-)
diff --git a/recipes-containers/lxc/files/lxc-doc-upgrade-to-use-docbook-3.1-DTD.patch b/recipes-containers/lxc/files/lxc-doc-upgrade-to-use-docbook-3.1-DTD.patch
deleted file mode 100644
index be5dddf1..00000000
--- a/recipes-containers/lxc/files/lxc-doc-upgrade-to-use-docbook-3.1-DTD.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 85d1e77acbfde2aa1045cfda877a91a9e57c405d Mon Sep 17 00:00:00 2001
-From: Jim Somerville <Jim.Somerville@windriver.com>
-Date: Tue, 11 Aug 2015 14:05:00 -0400
-Subject: [PATCH] lxc: doc: upgrade to use docbook 3.1 DTD
-
-docbook2man fails to build the man pages in poky
-due to missing the ancient Davenport 3.0 DTD.
-Poky meta has the Oasis 3.1 version so upgrade
-to use that instead.
-
-Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
-
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 90a4bd4..a3272e9 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -227,7 +227,7 @@ AM_CONDITIONAL([ENABLE_DOCBOOK], [test "x$db2xman" != "x"])
- AM_CONDITIONAL([USE_DOCBOOK2X], [test "x$db2xman" != "xdocbook2man"])
-
- if test "x$db2xman" = "xdocbook2man"; then
-- docdtd="\"-//Davenport//DTD DocBook V3.0//EN\""
-+ docdtd="\"-//OASIS//DTD DocBook V3.1//EN\""
- else
- docdtd="\"-//OASIS//DTD DocBook XML\" \"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd\""
- fi
diff --git a/recipes-containers/lxc/files/lxc-fix-B-S.patch b/recipes-containers/lxc/files/lxc-fix-B-S.patch
deleted file mode 100644
index 7a807b7c..00000000
--- a/recipes-containers/lxc/files/lxc-fix-B-S.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From dc2e71f060c25b94f011fce12ef59d2f5ae4e6a9 Mon Sep 17 00:00:00 2001
-From: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com>
-Date: Thu, 9 Apr 2015 23:01:48 +0300
-Subject: [PATCH] %% original patch: lxc-fix-B-S.patch
-
----
- config/init/upstart/Makefile.am | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/config/init/upstart/Makefile.am b/config/init/upstart/Makefile.am
-index 5552d32..186ae3d 100644
---- a/config/init/upstart/Makefile.am
-+++ b/config/init/upstart/Makefile.am
-@@ -3,9 +3,9 @@ EXTRA_DIST = lxc.conf lxc-instance.conf lxc-net.conf.in
- if INIT_SCRIPT_UPSTART
- install-upstart: lxc.conf lxc-instance.conf lxc-net.conf
- $(MKDIR_P) $(DESTDIR)$(sysconfdir)/init/
-- $(INSTALL_DATA) lxc.conf $(DESTDIR)$(sysconfdir)/init/
-+ $(INSTALL_DATA) $(srcdir)/lxc.conf $(DESTDIR)$(sysconfdir)/init/
- $(INSTALL_DATA) $(srcdir)/lxc-instance.conf $(DESTDIR)$(sysconfdir)/init/
-- $(INSTALL_DATA) lxc-net.conf $(DESTDIR)$(sysconfdir)/init/
-+ $(INSTALL_DATA) $(srcdir)/lxc-net.conf $(DESTDIR)$(sysconfdir)/init/
-
- uninstall-upstart:
- rm -f $(DESTDIR)$(sysconfdir)/init/lxc.conf
diff --git a/recipes-containers/lxc/files/run-ptest b/recipes-containers/lxc/files/run-ptest
index 3f3a75f2..196adb04 100644
--- a/recipes-containers/lxc/files/run-ptest
+++ b/recipes-containers/lxc/files/run-ptest
@@ -9,10 +9,17 @@ dmesg -n 1
blacklist=""
# Not applicable
blacklist="$blacklist lxc-test-apparmor"
+blacklist="$blacklist lxc-test-apparmor-mount"
+#lxc-test-get_item would report Built without AppArmor support error
+blacklist="$blacklist lxc-test-get_item"
# These currently hang so skip them until someone fixes them up
blacklist="$blacklist lxc-test-shutdowntest"
blacklist="$blacklist lxc-test-state-server"
+# Tests in firstrunlist will be run first
+firstrunlist=""
+firstrunlist="$firstrunlist lxc-test-unpriv"
+
passed=0
failed=0
skipped=0
@@ -23,11 +30,29 @@ rm -f logs/*
echo "### Starting LXC ptest ###"
+for test in $firstrunlist
+do
+ ./tests/$test >logs/$(basename $test).log 2>&1
+ if [ $? -eq 0 ]
+ then
+ echo "PASS: $(basename $test)"
+ passed=$((passed+1))
+ else
+ echo "FAIL: $(basename $test)"
+ failed=$((failed+1))
+ fi
+done
+
for test in ./tests/*
do
if [[ ! $blacklist = *$(basename $test)* ]]
then
- $test >logs/$(basename $test).log 2>&1
+ if [[ ! $firstrunlist = *$(basename $test)* ]]
+ then
+ $test >logs/$(basename $test).log 2>&1
+ else
+ continue;
+ fi
else
echo "SKIPPED: $(basename $test)"
skipped=$((skipped+1))
@@ -44,6 +69,7 @@ do
fi
done
+
echo ""
echo "Results:"
echo " PASSED = $passed"
diff --git a/recipes-containers/lxc/files/template-make-busybox-template-compatible-with-core-.patch b/recipes-containers/lxc/files/template-make-busybox-template-compatible-with-core-.patch
index 56ff2f07..1970fdd2 100644
--- a/recipes-containers/lxc/files/template-make-busybox-template-compatible-with-core-.patch
+++ b/recipes-containers/lxc/files/template-make-busybox-template-compatible-with-core-.patch
@@ -16,6 +16,8 @@ changes here to at least have the template work with
core-image-minimal to be able to demonstrate that it can work as well
as to have it available for the ptests.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
---
diff --git a/recipes-containers/lxc/files/templates-use-curl-instead-of-wget.patch b/recipes-containers/lxc/files/templates-use-curl-instead-of-wget.patch
index 156df82f..e9af8335 100644
--- a/recipes-containers/lxc/files/templates-use-curl-instead-of-wget.patch
+++ b/recipes-containers/lxc/files/templates-use-curl-instead-of-wget.patch
@@ -1,22 +1,24 @@
-From 07890dd8ffdcd08b7be1ddbd9f56ac55482c76bb Mon Sep 17 00:00:00 2001
-From: Joakim Roubert <joakimr@axis.com>
-Date: Fri, 16 Aug 2019 07:52:48 +0200
-Subject: [PATCH] Use curl instead of wget
+From 3e4cb0b738649f7750413cefbcfdb2115213ad0d Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Sun, 14 Aug 2022 14:08:56 -0400
+Subject: [PATCH] download: Use curl instead of wget
When curl's MIT license is preferable to wget's GPLv3.
-Change-Id: I4684ae7569704514fdcc63e0655c556efcaf44f8
-Signed-off-by: Joakim Roubert <joakimr@axis.com>
+Upstream-Status: Inappropriate [embedded specific]
+Signed-off-by: Joakim Roubert <joakimr@axis.com>
+Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com>
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
- templates/lxc-download.in | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
+ templates/lxc-download.in | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/templates/lxc-download.in b/templates/lxc-download.in
-index d7e6128..8a4b567 100644
+index a62ddf482..690307338 100755
--- a/templates/lxc-download.in
+++ b/templates/lxc-download.in
-@@ -74,9 +74,9 @@ cleanup() {
+@@ -59,9 +59,9 @@ cleanup() {
fi
}
@@ -28,18 +30,16 @@ index d7e6128..8a4b567 100644
return 0
fi
done
-@@ -85,8 +85,8 @@ wget_wrapper() {
+@@ -70,7 +70,7 @@ wget_wrapper() {
}
download_file() {
-- if ! wget_wrapper -T 30 -q "https://${DOWNLOAD_SERVER}/$1" -O "$2" >/dev/null 2>&1; then
-- if ! wget_wrapper -T 30 -q "http://${DOWNLOAD_SERVER}/$1" -O "$2" >/dev/null 2>&1; then
-+ if ! curl_wrapper -m 30 -s "https://${DOWNLOAD_SERVER}/$1" -o "$2" >/dev/null 2>&1; then
-+ if ! curl_wrapper -m 30 -s "http://${DOWNLOAD_SERVER}/$1" -o "$2" >/dev/null 2>&1; then
- if [ "$3" = "noexit" ]; then
- return 1
- else
-@@ -271,7 +271,7 @@ while :; do
+- if ! wget_wrapper --user-agent="lxc/@PACKAGE_VERSION@ compat:${DOWNLOAD_COMPAT_LEVEL}" -T 30 -q "https://${DOWNLOAD_SERVER}/$1" -O "$2" >/dev/null 2>&1; then
++ if ! curl_wrapper -L --user-agent "lxc/@PACKAGE_VERSION@ compat:${DOWNLOAD_COMPAT_LEVEL}" -m 30 -s "https://${DOWNLOAD_SERVER}/$1" -o "$2" >/dev/null 2>&1; then
+ if [ "$3" = "noexit" ]; then
+ return 1
+ else
+@@ -176,7 +176,7 @@ while :; do
done
# Check for required binaries
@@ -48,3 +48,6 @@ index d7e6128..8a4b567 100644
if ! command -V "${bin}" >/dev/null 2>&1; then
echo "ERROR: Missing required tool: ${bin}" 1>&2
exit 1
+--
+2.25.1
+
diff --git a/recipes-containers/lxc/files/tests-add-no-validate-when-using-download-template.patch b/recipes-containers/lxc/files/tests-add-no-validate-when-using-download-template.patch
deleted file mode 100644
index 8caeb2ba..00000000
--- a/recipes-containers/lxc/files/tests-add-no-validate-when-using-download-template.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From 1c2506434e744d8c6a86e42c9d8bae4cde7553f6 Mon Sep 17 00:00:00 2001
-From: Mark Asselstine <mark.asselstine@windriver.com>
-Date: Thu, 31 May 2018 15:14:26 -0400
-Subject: [PATCH] tests: add '--no-validate' when using download template
-
-We are usually running the ptests with core-image-minimal which has no
-mechanism to validate the downloads. Validation isn't really of
-interest to this test at any rate so simply add '--no-validate' to
-avoid failing due to no GPG validation.
-
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
-
----
- src/tests/lxc-test-apparmor-mount | 2 +-
- src/tests/lxc-test-autostart | 2 +-
- src/tests/lxc-test-no-new-privs | 2 +-
- src/tests/lxc-test-unpriv | 2 +-
- src/tests/lxc-test-usernic.in | 2 +-
- 5 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/tests/lxc-test-apparmor-mount b/src/tests/lxc-test-apparmor-mount
-index d21c948..9e1969b 100755
---- a/src/tests/lxc-test-apparmor-mount
-+++ b/src/tests/lxc-test-apparmor-mount
-@@ -169,7 +169,7 @@ if [ -f /etc/lsb-release ]; then
- done
- fi
-
--run_cmd lxc-create -t download -n $cname -- -d ubuntu -r $release -a $ARCH
-+run_cmd lxc-create -t download -n $cname -- --no-validate -d ubuntu -r $release -a $ARCH
-
- echo "test default confined container"
- run_cmd lxc-start -n $cname -d -lDEBUG -o "$logfile"
-diff --git a/src/tests/lxc-test-autostart b/src/tests/lxc-test-autostart
-index e5b651b..d15b79b 100755
---- a/src/tests/lxc-test-autostart
-+++ b/src/tests/lxc-test-autostart
-@@ -55,7 +55,7 @@ if [ -f /etc/lsb-release ]; then
- done
- fi
-
--lxc-create -t download -n $CONTAINER_NAME -B dir -- -d ubuntu -r $release -a $ARCH
-+lxc-create -t download -n $CONTAINER_NAME -B dir -- --no-validate -d ubuntu -r $release -a $ARCH
- CONTAINER_PATH=$(dirname $(lxc-info -n $CONTAINER_NAME -c lxc.rootfs.path -H) | sed -e 's/dir://')
- cp $CONTAINER_PATH/config $CONTAINER_PATH/config.bak
-
-diff --git a/src/tests/lxc-test-no-new-privs b/src/tests/lxc-test-no-new-privs
-index 8642992..e72bdf0 100755
---- a/src/tests/lxc-test-no-new-privs
-+++ b/src/tests/lxc-test-no-new-privs
-@@ -47,7 +47,7 @@ if type dpkg >/dev/null 2>&1; then
- ARCH=$(dpkg --print-architecture)
- fi
-
--lxc-create -t download -n c1 -- -d ubuntu -r xenial -a $ARCH
-+lxc-create -t download -n c1 -- --no-validate -d ubuntu -r xenial -a $ARCH
- echo "lxc.no_new_privs = 1" >> /var/lib/lxc/c1/config
-
- lxc-start -n c1
-diff --git a/src/tests/lxc-test-unpriv b/src/tests/lxc-test-unpriv
-index 16ff12d..0958d48 100755
---- a/src/tests/lxc-test-unpriv
-+++ b/src/tests/lxc-test-unpriv
-@@ -173,7 +173,7 @@ run_cmd mkdir -p $HDIR/.cache/lxc
- cp -R /var/cache/lxc/download $HDIR/.cache/lxc && \
- chown -R $TUSER: $HDIR/.cache/lxc
-
--run_cmd lxc-create -t download -n c1 -- -d ubuntu -r $release -a $ARCH
-+run_cmd lxc-create -t download -n c1 -- --no-validate -d ubuntu -r $release -a $ARCH
-
- # Make sure we can start it - twice
-
-diff --git a/src/tests/lxc-test-usernic.in b/src/tests/lxc-test-usernic.in
-index 3e35008..f489286 100755
---- a/src/tests/lxc-test-usernic.in
-+++ b/src/tests/lxc-test-usernic.in
-@@ -146,7 +146,7 @@ if [ -f /etc/lsb-release ]; then
- fi
-
- # Create three containers
--run_cmd "lxc-create -t download -n b1 -- -d ubuntu -r $release -a $ARCH"
-+run_cmd "lxc-create -t download -n b1 -- --no-validate -d ubuntu -r $release -a $ARCH"
- run_cmd "lxc-start -n b1 -d"
- p1=$(run_cmd "lxc-info -n b1 -p -H")
-
diff --git a/recipes-containers/lxc/files/tests-our-init-is-not-busybox.patch b/recipes-containers/lxc/files/tests-our-init-is-not-busybox.patch
index e5a8011e..3a4855c8 100644
--- a/recipes-containers/lxc/files/tests-our-init-is-not-busybox.patch
+++ b/recipes-containers/lxc/files/tests-our-init-is-not-busybox.patch
@@ -8,6 +8,8 @@ template) we can't compare '/sbin/init' and 'busybox'. Actually we are
really only interested in the fact 'cmp' is being run and not the
result, so simplify by comparing '/sbin/init' to itself.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
---
diff --git a/recipes-containers/lxc/lxc_4.0.6.bb b/recipes-containers/lxc/lxc_git.bb
index c9bf3d09..ee0e442f 100644
--- a/recipes-containers/lxc/lxc_4.0.6.bb
+++ b/recipes-containers/lxc/lxc_git.bb
@@ -1,12 +1,12 @@
DESCRIPTION = "lxc aims to use these new functionnalities to provide an userspace container object"
SECTION = "console/utils"
-LICENSE = "LGPLv2.1 & GPLv2"
+LICENSE = "LGPL-2.1-only & GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c \
file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
"
DEPENDS = "libxml2 libcap"
-RDEPENDS_${PN} = " \
+RDEPENDS:${PN} = " \
rsync \
curl \
gzip \
@@ -30,58 +30,60 @@ RDEPENDS_${PN} = " \
util-linux-getopt \
"
-RDEPENDS_${PN}_append_libc-glibc = " glibc-utils"
+RDEPENDS:${PN}:append:libc-glibc = " glibc-utils"
-RDEPENDS_${PN}-ptest += "file make gmp nettle gnutls bash libgcc"
+RDEPENDS:${PN}-ptest += "file make gmp nettle gnutls bash libgcc"
-RDEPENDS_${PN}-networking += "iptables"
+RDEPENDS:${PN}-networking += "iptables"
-SRC_URI = "http://linuxcontainers.org/downloads/${BPN}/${BPN}-${PV}.tar.gz \
+SRC_URI = "git://github.com/lxc/lxc.git;branch=stable-5.0;protocol=https \
file://lxc-1.0.0-disable-udhcp-from-busybox-template.patch \
file://run-ptest \
- file://lxc-fix-B-S.patch \
- file://lxc-doc-upgrade-to-use-docbook-3.1-DTD.patch \
- file://logs-optionally-use-base-filenames-to-report-src-fil.patch \
file://templates-actually-create-DOWNLOAD_TEMP-directory.patch \
file://template-make-busybox-template-compatible-with-core-.patch \
file://templates-use-curl-instead-of-wget.patch \
+ file://0001-download-don-t-try-compatbility-index.patch \
file://tests-our-init-is-not-busybox.patch \
- file://tests-add-no-validate-when-using-download-template.patch \
+ file://0001-template-if-busybox-contains-init-use-it-in-containe.patch \
file://dnsmasq.conf \
file://lxc-net \
- file://configure-skip-libseccomp-tests-if-it-is-disabled.patch \
- file://commands-fix-check-for-seccomp-notify-support.patch \
+ file://0001-lxc-test-usernic-drop-cgroup-handling.patch \
+ file://0001-tests-remove-old-and-broken-cgroup-handling-code-fro.patch \
"
-SRC_URI[md5sum] = "732571c7cb4ab845068afb227bf35256"
-SRC_URI[sha256sum] = "9165dabc0bb6ef7f2fda2009aee90b20fbefe77ed8008347e9f06048eba1e463"
+SRCREV = "cb8e38aca27a23964941f0f011a8919aab8bebab"
+PV = "5.0.3+git"
-
-
-S = "${WORKDIR}/${BPN}-${PV}"
+S = "${WORKDIR}/git"
# Let's not configure for the host distro.
#
-PTEST_CONF = "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '--enable-tests', '', d)}"
-EXTRA_OECONF += "--with-distro=${DISTRO} ${PTEST_CONF}"
-
-EXTRA_OECONF += "--with-init-script=\
-${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'sysvinit,', '', d)}\
-${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
+PTEST_CONF = "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '-Dtests=true', '', d)}"
-EXTRA_OECONF += "--enable-log-src-basename --disable-werror"
+# No meson equivalent for --with-distro
+# EXTRA_OECONF += "--with-distro=${DISTRO} ${PTEST_CONF}"
+EXTRA_OEMESON += "${PTEST_CONF} -Ddistrosysconfdir=${sysconfdir}/default"
+# No meson equivalent for these yet
+# EXTRA_OECONF += "--enable-log-src-basename --disable-werror"
PACKAGECONFIG ??= "templates \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'seccomp', 'seccomp', '', d)} \
"
-PACKAGECONFIG[doc] = "--enable-doc --enable-api-docs,--disable-doc --disable-api-docs,,"
-PACKAGECONFIG[rpath] = "--enable-rpath,--disable-rpath,,"
-PACKAGECONFIG[apparmor] = "--enable-apparmor,--disable-apparmor,apparmor,apparmor"
+
+# Meson doesn't seem to be as fine grained as the autotools releases
+# PACKAGECONFIG[doc] = "--enable-doc --enable-api-docs,--disable-doc --disable-api-docs,,"
+PACKAGECONFIG[doc] = "-Dman=true,-Dman=false,,"
+# No meson equiv found for rpath yet
+# PACKAGECONFIG[rpath] = "--enable-rpath,--disable-rpath,,"
+PACKAGECONFIG[apparmor] = "-Dapparmor=true,-Dapparmor=false,apparmor,apparmor"
PACKAGECONFIG[templates] = ",,, ${PN}-templates"
-PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,libselinux"
-PACKAGECONFIG[seccomp] ="--enable-seccomp,--disable-seccomp,libseccomp,libseccomp"
-PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd,"
+PACKAGECONFIG[selinux] = "-Dselinux=true,-Dselinux=false,libselinux,libselinux"
+PACKAGECONFIG[seccomp] ="-Dseccomp=true,-Dseccomp=false,libseccomp,libseccomp"
+# meson equiv for the unitdir found yet
+# PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd,"
+PACKAGECONFIG[systemd] = "-Dinit-script=systemd,-Dinit-script=sysvinit,systemd,"
# required by python3 to run setup.py
export BUILD_SYS
@@ -89,45 +91,46 @@ export HOST_SYS
export STAGING_INCDIR
export STAGING_LIBDIR
-inherit autotools pkgconfig ptest update-rc.d systemd python3native
+inherit meson pkgconfig ptest update-rc.d systemd python3native
SYSTEMD_PACKAGES = "${PN} ${PN}-networking"
-SYSTEMD_SERVICE_${PN} = "lxc.service"
-SYSTEMD_AUTO_ENABLE_${PN} = "disable"
-SYSTEMD_SERVICE_${PN}-networking = "lxc-net.service"
-SYSTEMD_AUTO_ENABLE_${PN}-networking = "enable"
-
-INITSCRIPT_PACKAGES = "${PN} ${PN}-networking"
-INITSCRIPT_NAME_${PN} = "lxc-containers"
-INITSCRIPT_PARAMS_${PN} = "defaults"
-INITSCRIPT_NAME_${PN}-networking = "lxc-net"
-INITSCRIPT_PARAMS_${PN}-networking = "defaults"
-
-FILES_${PN}-doc = "${mandir} ${infodir}"
+SYSTEMD_SERVICE:${PN} = "lxc.service lxc-monitord.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "disable"
+SYSTEMD_SERVICE:${PN}-networking = "lxc-net.service"
+SYSTEMD_AUTO_ENABLE:${PN}-networking = "enable"
+
+INITSCRIPT_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', '${PN}', d)} ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', '${PN}-networking',d)}"
+INITSCRIPT_NAME:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', 'lxc-containers', d)}"
+INITSCRIPT_PARAMS:${PN} = "defaults"
+INITSCRIPT_NAME:${PN}-networking = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', 'lxc-net', d)}"
+INITSCRIPT_PARAMS:${PN}-networking = "defaults"
+
+FILES:${PN}-doc = "${mandir} ${infodir}"
# For LXC the docdir only contains example configuration files and should be included in the lxc package
-FILES_${PN} += "${docdir}"
-FILES_${PN} += "${libdir}/python3*"
-FILES_${PN} += "${datadir}/bash-completion"
-FILES_${PN}-dbg += "${libexecdir}/lxc/.debug"
-FILES_${PN}-dbg += "${libexecdir}/lxc/hooks/.debug"
+FILES:${PN} += "${docdir}"
+FILES:${PN} += "${libdir}/python3*"
+FILES:${PN} += "${datadir}/bash-completion"
+FILES:${PN}-dbg += "${libexecdir}/lxc/.debug"
+FILES:${PN}-dbg += "${libexecdir}/lxc/hooks/.debug"
PACKAGES =+ "${PN}-templates ${PN}-networking ${PN}-lua"
-FILES_lua-${PN} = "${datadir}/lua ${libdir}/lua"
-FILES_lua-${PN}-dbg += "${libdir}/lua/lxc/.debug"
-FILES_${PN}-templates += "${datadir}/lxc/templates"
-RDEPENDS_${PN}-templates += "bash"
+FILES:lua-${PN} = "${datadir}/lua ${libdir}/lua"
+FILES:lua-${PN}-dbg += "${libdir}/lua/lxc/.debug"
+FILES:${PN}-templates += "${datadir}/lxc/templates"
+RDEPENDS:${PN}-templates += "bash"
-FILES_${PN}-networking += " \
+FILES:${PN}-networking += " \
${sysconfdir}/init.d/lxc-net \
${sysconfdir}/default/lxc-net \
"
-CACHED_CONFIGUREVARS += " \
- ac_cv_path_PYTHON='${STAGING_BINDIR_NATIVE}/python3-native/python3' \
- am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \
- am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \
-"
+# Not needed for meson
+# CACHED_CONFIGUREVARS += " \
+# ac_cv_path_PYTHON='${STAGING_BINDIR_NATIVE}/python3-native/python3' \
+# am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \
+# am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \
+#"
-do_install_append() {
+do_install:append() {
# The /var/cache/lxc directory created by the Makefile
# is wiped out in volatile, we need to create this at boot.
rm -rf ${D}${localstatedir}/cache
@@ -138,8 +141,15 @@ do_install_append() {
for i in `grep -l "#! */bin/bash" ${D}${datadir}/lxc/hooks/*`; do \
sed -e 's|#! */bin/bash|#!/bin/sh|' -i $i; done
- install -d ${D}${sysconfdir}/init.d
- install -m 755 config/init/sysvinit/lxc* ${D}${sysconfdir}/init.d
+ if "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}"; then
+ # nothing special for systemd at the moment
+ true
+ else
+ # with meson, these aren't built unless sysvinit is the enabled
+ # init system.
+ install -d ${D}${sysconfdir}/init.d
+ install -m 755 config/init/sysvinit/lxc* ${D}${sysconfdir}/init.d
+ fi
# since python3-native is used for install location this will not be
# suitable for the target and we will have to correct the package install
@@ -167,13 +177,13 @@ do_install_ptest() {
mv ${D}/usr/bin/lxc-test-* ${D}/${PTEST_PATH}/tests/.
}
-pkg_postinst_${PN}() {
+pkg_postinst:${PN}() {
if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
/etc/init.d/populate-volatile.sh update
fi
}
-pkg_postinst_${PN}-networking() {
+pkg_postinst:${PN}-networking() {
if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
cat >> $D/etc/network/interfaces << EOF
diff --git a/recipes-containers/lxcfs/files/systemd-allow-for-distinct-build-directory.patch b/recipes-containers/lxcfs/files/systemd-allow-for-distinct-build-directory.patch
deleted file mode 100644
index 14228d65..00000000
--- a/recipes-containers/lxcfs/files/systemd-allow-for-distinct-build-directory.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 66a71fbf94020651880f1dbb6e4663d93391b47c Mon Sep 17 00:00:00 2001
-From: Mark Asselstine <mark.asselstine@windriver.com>
-Date: Mon, 10 Sep 2018 13:14:07 -0400
-Subject: [PATCH] systemd: allow for distinct build directory
-
-The Makefile.am is currently written in a way that doesn't allow for a
-distinct build directory. As such we get the error:
-
- install: cannot stat 'lxcfs.service': No such file or directory
-
-Make use of $(srcdir) to correct this.
-
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
----
- config/init/systemd/Makefile.am | 2 +-
- config/init/systemd/Makefile.in | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/config/init/systemd/Makefile.am b/config/init/systemd/Makefile.am
-index 79e96f5..d6933f9 100644
---- a/config/init/systemd/Makefile.am
-+++ b/config/init/systemd/Makefile.am
-@@ -5,7 +5,7 @@ SYSTEMD_UNIT_DIR = /lib/systemd/system
-
- install-systemd: lxcfs.service
- $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
-- $(INSTALL_DATA) lxcfs.service $(DESTDIR)$(SYSTEMD_UNIT_DIR)/
-+ $(INSTALL_DATA) $(srcdir)/lxcfs.service $(DESTDIR)$(SYSTEMD_UNIT_DIR)/
-
- uninstall-systemd:
- rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/lxcfs.service
-diff --git a/config/init/systemd/Makefile.in b/config/init/systemd/Makefile.in
-index d433e8a..430190c 100644
---- a/config/init/systemd/Makefile.in
-+++ b/config/init/systemd/Makefile.in
-@@ -450,7 +450,7 @@ uninstall-am: uninstall-local
-
- @INIT_SCRIPT_SYSTEMD_TRUE@install-systemd: lxcfs.service
- @INIT_SCRIPT_SYSTEMD_TRUE@ $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
--@INIT_SCRIPT_SYSTEMD_TRUE@ $(INSTALL_DATA) lxcfs.service $(DESTDIR)$(SYSTEMD_UNIT_DIR)/
-+@INIT_SCRIPT_SYSTEMD_TRUE@ $(INSTALL_DATA) $(srcdir)/lxcfs.service $(DESTDIR)$(SYSTEMD_UNIT_DIR)/
-
- @INIT_SCRIPT_SYSTEMD_TRUE@uninstall-systemd:
- @INIT_SCRIPT_SYSTEMD_TRUE@ rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/lxcfs.service
---
-2.7.4
-
diff --git a/recipes-containers/lxcfs/files/systemd-ensure-var-lib-lxcfs-exists.patch b/recipes-containers/lxcfs/files/systemd-ensure-var-lib-lxcfs-exists.patch
deleted file mode 100644
index e8af4a0a..00000000
--- a/recipes-containers/lxcfs/files/systemd-ensure-var-lib-lxcfs-exists.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 89bf4b64e810e174068e7861490e6d6ab2d14854 Mon Sep 17 00:00:00 2001
-From: Mark Asselstine <mark.asselstine@windriver.com>
-Date: Mon, 10 Sep 2018 15:01:54 -0400
-Subject: [PATCH] systemd: ensure /var/lib/lxcfs exists
-
-If the directory doesn't exist the service will fail to start.
-
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
----
- config/init/systemd/lxcfs.service | 1 +
- 1 file changed, 1 insertion(+)
-
-Index: lxcfs-4.0.7/config/init/systemd/lxcfs.service
-===================================================================
---- lxcfs-4.0.7.orig/config/init/systemd/lxcfs.service
-+++ lxcfs-4.0.7/config/init/systemd/lxcfs.service
-@@ -5,6 +5,7 @@
- Documentation=man:lxcfs(1)
-
- [Service]
-+ExecStartPre=-/bin/mkdir /var/lib/lxcfs
- ExecStart=/usr/bin/lxcfs /usr/local/var/lib/lxcfs
- KillMode=process
- Restart=on-failure
diff --git a/recipes-containers/lxcfs/lxcfs/0001-bindings-fix-build-with-newer-linux-libc-headers.patch b/recipes-containers/lxcfs/lxcfs/0001-bindings-fix-build-with-newer-linux-libc-headers.patch
new file mode 100644
index 00000000..64d19f47
--- /dev/null
+++ b/recipes-containers/lxcfs/lxcfs/0001-bindings-fix-build-with-newer-linux-libc-headers.patch
@@ -0,0 +1,50 @@
+From ca3c3484b078304998b3f2a2d6cd6c00540deb2c Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Fri, 28 Apr 2023 19:16:11 +0000
+Subject: [PATCH] bindings: fix build with newer linux-libc-headers
+
+Fixes:
+
+../../lxcfs-4.0.7/src/bindings.c: In function 'initpid_still_valid_pidfd':
+../../lxcfs-4.0.7/src/bindings.c:160:15: error: implicit declaration of function 'pidfd_send_signal'; did you mean 'SYS_pidfd_send_signal'? [-Werr
+or=implicit-function-declaration]
+ 160 | ret = pidfd_send_signal(entry->init_pidfd, 0, NULL, 0);
+ | ^~~~~~~~~~~~~~~~~
+ | SYS_pidfd_send_signal
+../../lxcfs-4.0.7/src/bindings.c:160:15: warning: nested extern declaration of 'pidfd_send_signal' [-Wnested-externs]
+../../lxcfs-4.0.7/src/bindings.c: In function 'save_initpid':
+../../lxcfs-4.0.7/src/bindings.c:296:25: error: implicit declaration of function 'pidfd_open' [-Werror=implicit-function-declaration]
+ 296 | pidfd = pidfd_open(pid, 0);
+ | ^~~~~~~~~~
+../../lxcfs-4.0.7/src/bindings.c:296:25: warning: nested extern declaration of 'pidfd_open' [-Wnested-externs]
+../../lxcfs-4.0.7/src/bindings.c: At top level:
+../../lxcfs-4.0.7/src/bindings.c:612:12: warning: function declaration isn't a prototype [-Wstrict-prototypes]
+ 612 | static int pivot_enter()
+ | ^~~~~~~~~~~
+../../lxcfs-4.0.7/src/bindings.c: In function 'pivot_enter':
+../../lxcfs-4.0.7/src/bindings.c:612:12: warning: old-style function definition [-Wold-style-definition]
+../../lxcfs-4.0.7/src/bindings.c: At top level:
+../../lxcfs-4.0.7/src/bindings.c:655:12: warning: function declaration isn't a prototype [-Wstrict-prototypes]
+ 655 | static int chroot_enter()
+ | ^~~~~~~~~~~~
+../../lxcfs-4.0.7/src/bindings.c: In function 'chroot_enter':
+../../lxcfs-4.0.7/src/bindings.c:655:12: warning: old-style function definition [-Wold-style-definition]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Upstream-Status: Pending
+---
+ src/bindings.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/bindings.c b/src/bindings.c
+index 6f2444c..3e0d60a 100644
+--- a/src/bindings.c
++++ b/src/bindings.c
+@@ -39,6 +39,7 @@
+ #include <sys/mman.h>
+ #include <sys/mount.h>
+ #include <sys/param.h>
++#include <sys/pidfd.h>
+ #include <sys/socket.h>
+ #include <sys/syscall.h>
+ #include <sys/sysinfo.h>
diff --git a/recipes-containers/lxcfs/lxcfs/0001-meson.build-force-pid-open-send_signal-detection.patch b/recipes-containers/lxcfs/lxcfs/0001-meson.build-force-pid-open-send_signal-detection.patch
new file mode 100644
index 00000000..5f21a956
--- /dev/null
+++ b/recipes-containers/lxcfs/lxcfs/0001-meson.build-force-pid-open-send_signal-detection.patch
@@ -0,0 +1,38 @@
+From 65fcb73cdef34609f28461424672551a6e65327e Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Thu, 3 Aug 2023 15:01:42 +0000
+Subject: [PATCH] meson.build: force pid open/send_signal detection
+
+meson is not correctly detecting that our cross build environment
+has the pid* definitions, which leads to compile errors when internal
+definitions conflict:
+
+ lxcfs-5.0.4/src/utils.h:45:19: error: static declaration of 'pidfd_open' follows non-static declaration
+
+We could possibly generate a meson.cross file, and specify it via
+--cross-file, but we can just force the detection to 'true' as we
+don't have to support configurations without the functionality.
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ meson.build | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/meson.build b/meson.build
+index a0289ad..9480c30 100644
+--- a/meson.build
++++ b/meson.build
+@@ -143,6 +143,8 @@ foreach ident: [
+ ]
+ have = cc.has_function(ident[0], prefix: ident[1], args: '-D_GNU_SOURCE')
+ conf.set10('HAVE_' + ident[0].to_upper(), have)
++ conf.set10('HAVE_PIDFD_OPEN', true)
++ conf.set10('HAVE_PIDFD_SEND_SIGNAL', true)
+ endforeach
+
+ fuse_version = get_option('fuse-version')
+--
+2.39.2
+
diff --git a/recipes-containers/lxcfs/lxcfs_4.0.7.bb b/recipes-containers/lxcfs/lxcfs_4.0.7.bb
deleted file mode 100644
index 11d2ff51..00000000
--- a/recipes-containers/lxcfs/lxcfs_4.0.7.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "LXCFS is a userspace filesystem created to avoid kernel limitations"
-LICENSE = "LGPL-2.1+"
-
-inherit autotools pkgconfig systemd
-
-SRC_URI = " \
- https://linuxcontainers.org/downloads/lxcfs/lxcfs-${PV}.tar.gz \
- file://systemd-allow-for-distinct-build-directory.patch \
- file://systemd-ensure-var-lib-lxcfs-exists.patch \
-"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=29ae50a788f33f663405488bc61eecb1"
-SRC_URI[md5sum] = "9d963976207fb0ca4701428ae0587aeb"
-SRC_URI[sha256sum] = "3f28e2f4b04c0090aaf88b72666505f0313768a5254dd48a14c43cf78c543ec8"
-
-DEPENDS += "fuse"
-RDEPENDS_${PN} += "fuse"
-
-FILES_${PN} += "${datadir}/lxc/config/common.conf.d/*"
-
-CACHED_CONFIGUREVARS += "ac_cv_path_HELP2MAN='false // No help2man //'"
-EXTRA_OECONF += "--with-distro=unknown --with-init-script=${VIRTUAL-RUNTIME_init_manager}"
-
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "lxcfs.service"
diff --git a/recipes-containers/lxcfs/lxcfs_5.0.4.bb b/recipes-containers/lxcfs/lxcfs_5.0.4.bb
new file mode 100644
index 00000000..5d2ad164
--- /dev/null
+++ b/recipes-containers/lxcfs/lxcfs_5.0.4.bb
@@ -0,0 +1,26 @@
+SUMMARY = "LXCFS is a userspace filesystem created to avoid kernel limitations"
+LICENSE = "LGPL-2.1-or-later"
+
+REQUIRED_DISTRO_FEATURES ?= "systemd"
+inherit meson pkgconfig systemd features_check
+
+SRC_URI = " \
+ https://linuxcontainers.org/downloads/lxcfs/lxcfs-${PV}.tar.gz \
+ file://0001-bindings-fix-build-with-newer-linux-libc-headers.patch \
+ file://0001-meson.build-force-pid-open-send_signal-detection.patch \
+"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=29ae50a788f33f663405488bc61eecb1"
+SRC_URI[md5sum] = "00a6632e094d0a2f2308c8365ac91912"
+SRC_URI[sha256sum] = "c2b361edc881d5ca8fa2cd3260a4999b8f87afce8d937be2160e5cf0b482c52f"
+
+DEPENDS += "fuse python3-jinja2-native help2man-native systemd"
+RDEPENDS:${PN} += "fuse"
+
+FILES:${PN} += "${datadir}/lxc/config/common.conf.d/*"
+
+# help2man doesn't work, so we disable docs
+EXTRA_OEMESON += "-Dinit-script=${VIRTUAL-RUNTIME_init_manager} -Ddocs=false"
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "lxcfs.service"
diff --git a/recipes-containers/nerdctl/nerdctl/0001-Makefile-allow-external-specification-of-build-setti.patch b/recipes-containers/nerdctl/nerdctl/0001-Makefile-allow-external-specification-of-build-setti.patch
new file mode 100644
index 00000000..ca7b3042
--- /dev/null
+++ b/recipes-containers/nerdctl/nerdctl/0001-Makefile-allow-external-specification-of-build-setti.patch
@@ -0,0 +1,25 @@
+From 0e6809ea075acd3edf7de197cd4e190ccdad6361 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Mon, 29 Mar 2021 20:50:47 -0400
+Subject: [PATCH] Makefile: allow external specification of build settings
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ Makefile | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: nerdctl-v2.0.0-beta.1/src/import/Makefile
+===================================================================
+--- nerdctl-v2.0.0-beta.1.orig/src/import/Makefile
++++ nerdctl-v2.0.0-beta.1/src/import/Makefile
+@@ -38,7 +38,7 @@
+
+ GO_BUILD_LDFLAGS ?= -s -w
+ GO_BUILD_FLAGS ?=
+-export GO_BUILD=GO111MODULE=on CGO_ENABLED=0 GOOS=$(GOOS) $(GO) build -ldflags "$(GO_BUILD_LDFLAGS) -X $(PACKAGE)/pkg/version.Version=$(VERSION) -X $(PACKAGE)/pkg/version.Revision=$(REVISION)"
++export GO_BUILD=$(GO) build -ldflags "$(GO_BUILD_LDFLAGS) -X $(PACKAGE)/pkg/version.Version=$(VERSION) -X $(PACKAGE)/pkg/version.Revision=$(REVISION)"
+
+ ifdef VERBOSE
+ VERBOSE_FLAG := -v
diff --git a/recipes-containers/nerdctl/nerdctl/modules.txt b/recipes-containers/nerdctl/nerdctl/modules.txt
new file mode 100644
index 00000000..b26ec8ec
--- /dev/null
+++ b/recipes-containers/nerdctl/nerdctl/modules.txt
@@ -0,0 +1,270 @@
+# github.com/Masterminds/semver/v3 v3.2.1
+## explicit
+# github.com/Microsoft/go-winio v0.6.1
+## explicit
+# github.com/Microsoft/hcsshim v0.11.4
+## explicit
+# github.com/awslabs/soci-snapshotter v0.4.1
+## explicit
+# github.com/compose-spec/compose-go v1.20.2
+## explicit
+# github.com/containerd/accelerated-container-image v1.0.2
+## explicit
+# github.com/containerd/cgroups/v3 v3.0.3
+## explicit
+# github.com/containerd/console v1.0.4
+## explicit
+# github.com/containerd/containerd v1.7.13
+## explicit
+# github.com/containerd/continuity v0.4.3
+## explicit
+# github.com/containerd/fifo v1.1.0
+## explicit
+# github.com/containerd/go-cni v1.1.9
+## explicit
+# github.com/containerd/imgcrypt v1.1.9
+## explicit
+# github.com/containerd/log v0.1.0
+## explicit
+# github.com/containerd/nydus-snapshotter v0.13.7
+## explicit
+# github.com/containerd/platforms v0.1.1
+## explicit
+# github.com/containerd/stargz-snapshotter v0.15.1
+## explicit
+# github.com/containerd/stargz-snapshotter/estargz v0.15.1
+## explicit
+# github.com/containerd/stargz-snapshotter/ipfs v0.15.1
+## explicit
+# github.com/containerd/typeurl/v2 v2.1.1
+## explicit
+# github.com/containernetworking/cni v1.1.2
+## explicit
+# github.com/containernetworking/plugins v1.4.0
+## explicit
+# github.com/coreos/go-iptables v0.7.0
+## explicit
+# github.com/coreos/go-systemd/v22 v22.5.0
+## explicit
+# github.com/cyphar/filepath-securejoin v0.2.4
+## explicit
+# github.com/docker/cli v24.0.7+incompatible
+## explicit
+# github.com/docker/docker v24.0.7+incompatible
+## explicit
+# github.com/docker/go-connections v0.5.0
+## explicit
+# github.com/docker/go-units v0.5.0
+## explicit
+# github.com/fahedouch/go-logrotate v0.2.0
+## explicit
+# github.com/fatih/color v1.16.0
+## explicit
+# github.com/fluent/fluent-logger-golang v1.9.0
+## explicit
+# github.com/ipfs/go-cid v0.4.1
+## explicit
+# github.com/mattn/go-isatty v0.0.20
+## explicit
+# github.com/mitchellh/mapstructure v1.5.0
+## explicit
+# github.com/moby/sys/mount v0.3.3
+## explicit
+# github.com/moby/sys/signal v0.7.0
+## explicit
+# github.com/moby/term v0.5.0
+## explicit
+# github.com/muesli/cancelreader v0.2.2
+## explicit
+# github.com/opencontainers/go-digest v1.0.0
+## explicit
+# github.com/opencontainers/image-spec v1.1.0
+## explicit
+# github.com/opencontainers/runtime-spec v1.2.0
+## explicit
+# github.com/pelletier/go-toml/v2 v2.1.1
+## explicit
+# github.com/rootless-containers/bypass4netns v0.4.0
+## explicit
+# github.com/rootless-containers/rootlesskit/v2 v2.0.1
+## explicit
+# github.com/spf13/cobra v1.8.0
+## explicit
+# github.com/spf13/pflag v1.0.5
+## explicit
+# github.com/tidwall/gjson v1.17.1
+## explicit
+# github.com/vishvananda/netlink v1.2.1-beta.2
+## explicit
+# github.com/vishvananda/netns v0.0.4
+## explicit
+# github.com/yuchanns/srslog v1.1.0
+## explicit
+# go.uber.org/mock v0.4.0
+## explicit
+# golang.org/x/crypto v0.19.0
+## explicit
+# golang.org/x/net v0.21.0
+## explicit
+# golang.org/x/sync v0.6.0
+## explicit
+# golang.org/x/sys v0.17.0
+## explicit
+# golang.org/x/term v0.17.0
+## explicit
+# golang.org/x/text v0.14.0
+## explicit
+# gopkg.in/yaml.v3 v3.0.1
+## explicit
+# gotest.tools/v3 v3.5.1
+## explicit
+# github.com/moby/sys/user v0.1.0
+## explicit
+# github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24
+## explicit
+# github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0
+## explicit
+# github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1
+## explicit
+# github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869
+## explicit
+# github.com/cilium/ebpf v0.11.0
+## explicit
+# github.com/containerd/cgroups v1.1.0
+## explicit
+# github.com/containerd/go-runc v1.0.0
+## explicit
+# github.com/containerd/ttrpc v1.2.2
+## explicit
+# github.com/containerd/typeurl v1.0.3-0.20220422153119-7f6e6d160d67
+## explicit
+# github.com/containers/ocicrypt v1.1.9
+## explicit
+# github.com/distribution/reference v0.5.0
+## explicit
+# github.com/djherbis/times v1.5.0
+## explicit
+# github.com/docker/docker-credential-helpers v0.7.0
+## explicit
+# github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c
+## explicit
+# github.com/felixge/httpsnoop v1.0.3
+## explicit
+# github.com/go-jose/go-jose/v3 v3.0.1
+## explicit
+# github.com/go-logr/logr v1.3.0
+## explicit
+# github.com/go-logr/stdr v1.2.2
+## explicit
+# github.com/godbus/dbus/v5 v5.1.0
+## explicit
+# github.com/gogo/protobuf v1.3.2
+## explicit
+# github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da
+## explicit
+# github.com/golang/protobuf v1.5.3
+## explicit
+# github.com/google/go-cmp v0.6.0
+## explicit
+# github.com/google/uuid v1.6.0
+## explicit
+# github.com/hashicorp/errwrap v1.1.0
+## explicit
+# github.com/hashicorp/go-multierror v1.1.1
+## explicit
+# github.com/imdario/mergo v0.3.16
+## explicit
+# github.com/inconshreveable/mousetrap v1.1.0
+## explicit
+# github.com/klauspost/compress v1.17.6
+## explicit
+# github.com/klauspost/cpuid/v2 v2.2.3
+## explicit
+# github.com/mattn/go-colorable v0.1.13
+## explicit
+# github.com/mattn/go-shellwords v1.0.12
+## explicit
+# github.com/miekg/pkcs11 v1.1.1
+## explicit
+# github.com/minio/sha256-simd v1.0.1
+## explicit
+# github.com/mitchellh/go-homedir v1.1.0
+## explicit
+# github.com/moby/locker v1.0.1
+## explicit
+# github.com/moby/sys/mountinfo v0.7.1
+## explicit
+# github.com/moby/sys/sequential v0.5.0
+## explicit
+# github.com/moby/sys/symlink v0.2.0
+## explicit
+# github.com/mr-tron/base58 v1.2.0
+## explicit
+# github.com/multiformats/go-base32 v0.1.0
+## explicit
+# github.com/multiformats/go-base36 v0.1.0
+## explicit
+# github.com/multiformats/go-multiaddr v0.12.0
+## explicit
+# github.com/multiformats/go-multibase v0.1.1
+## explicit
+# github.com/multiformats/go-multihash v0.2.1
+## explicit
+# github.com/multiformats/go-varint v0.0.6
+## explicit
+# github.com/opencontainers/selinux v1.11.0
+## explicit
+# github.com/pelletier/go-toml v1.9.5
+## explicit
+# github.com/philhofer/fwd v1.1.1
+## explicit
+# github.com/pkg/errors v0.9.1
+## explicit
+# github.com/sirupsen/logrus v1.9.3
+## explicit
+# github.com/spaolacci/murmur3 v1.1.0
+## explicit
+# github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980
+## explicit
+# github.com/tidwall/match v1.1.1
+## explicit
+# github.com/tidwall/pretty v1.2.0
+## explicit
+# github.com/tinylib/msgp v1.1.6
+## explicit
+# github.com/vbatts/tar-split v0.11.5
+## explicit
+# github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb
+## explicit
+# github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415
+## explicit
+# github.com/xeipuuv/gojsonschema v1.2.0
+## explicit
+# go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1
+## explicit
+# go.opencensus.io v0.24.0
+## explicit
+# go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0
+## explicit
+# go.opentelemetry.io/otel v1.19.0
+## explicit
+# go.opentelemetry.io/otel/metric v1.19.0
+## explicit
+# go.opentelemetry.io/otel/trace v1.19.0
+## explicit
+# golang.org/x/exp v0.0.0-20231006140011-7918f672742d
+## explicit
+# golang.org/x/mod v0.13.0
+## explicit
+# golang.org/x/tools v0.14.0
+## explicit
+# google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a
+## explicit
+# google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b
+## explicit
+# google.golang.org/grpc v1.59.0
+## explicit
+# google.golang.org/protobuf v1.31.0
+## explicit
+# lukechampine.com/blake3 v1.1.7
+## explicit
diff --git a/recipes-containers/nerdctl/nerdctl_git.bb b/recipes-containers/nerdctl/nerdctl_git.bb
new file mode 100644
index 00000000..8868274f
--- /dev/null
+++ b/recipes-containers/nerdctl/nerdctl_git.bb
@@ -0,0 +1,84 @@
+HOMEPAGE = "https://github.com/containerd/nerdctl"
+SUMMARY = "Docker-compatible CLI for containerd"
+DESCRIPTION = "nerdctl: Docker-compatible CLI for containerd \
+ "
+
+DEPENDS = " \
+ go-md2man \
+ rsync-native \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+"
+
+# Specify the first two important SRCREVs as the format
+SRCREV_FORMAT="nerdcli_cgroups"
+SRCREV_nerdcli = "265d6b9cf526ce7d9ed8d34a0e3c3066901cc463"
+
+SRC_URI = "git://github.com/containerd/nerdctl.git;name=nerdcli;branch=main;protocol=https"
+
+include src_uri.inc
+
+# patches and config
+SRC_URI += "file://0001-Makefile-allow-external-specification-of-build-setti.patch \
+ file://modules.txt \
+ "
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+GO_IMPORT = "import"
+
+# S = "${WORKDIR}/git"
+
+PV = "v2.0.0-beta.1"
+
+NERDCTL_PKG = "github.com/containerd/nerdctl"
+
+inherit go goarch
+inherit systemd pkgconfig
+
+do_configure[noexec] = "1"
+
+EXTRA_OEMAKE = " \
+ PREFIX=${prefix} BINDIR=${bindir} LIBEXECDIR=${libexecdir} \
+ ETCDIR=${sysconfdir} TMPFILESDIR=${nonarch_libdir}/tmpfiles.d \
+ SYSTEMDDIR=${systemd_unitdir}/system USERSYSTEMDDIR=${systemd_unitdir}/user \
+"
+
+PACKAGECONFIG ?= ""
+
+# sets the "sites" variable.
+include relocation.inc
+
+PIEFLAG = "${@bb.utils.contains('GOBUILDFLAGS', '-buildmode=pie', '-buildmode=pie', '', d)}"
+
+do_compile() {
+
+ cd ${S}/src/import
+
+ export GOPATH="$GOPATH:${S}/src/import/.gopath"
+
+ # Pass the needed cflags/ldflags so that cgo
+ # can find the needed headers files and libraries
+ export GOARCH=${TARGET_GOARCH}
+ export CGO_ENABLED="1"
+ export CGO_CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_TARGET}"
+ export CGO_LDFLAGS="${LDFLAGS} --sysroot=${STAGING_DIR_TARGET}"
+
+ export GOFLAGS="-mod=vendor -trimpath ${PIEFLAG}"
+
+ # our copied .go files are to be used for the build
+ ln -sf vendor.copy vendor
+ # inform go that we know what we are doing
+ cp ${WORKDIR}/modules.txt vendor/
+
+ oe_runmake GO=${GO} BUILDTAGS="${BUILDTAGS}" binaries
+}
+
+do_install() {
+ install -d "${D}${BIN_PREFIX}${base_bindir}"
+ install -m 755 "${S}/src/import/_output/nerdctl" "${D}${BIN_PREFIX}${base_bindir}"
+}
+
+INHIBIT_PACKAGE_STRIP = "1"
+INSANE_SKIP:${PN} += "ldflags already-stripped"
+
diff --git a/recipes-containers/nerdctl/relocation.inc b/recipes-containers/nerdctl/relocation.inc
new file mode 100644
index 00000000..7f3a1d34
--- /dev/null
+++ b/recipes-containers/nerdctl/relocation.inc
@@ -0,0 +1,152 @@
+export sites="gotest.tools/v3:gotest.tools/v3:force \
+ go.uber.org/mock:go.uber.org/mock:force \
+ golang.org/x/net:golang.org/x/net:force \
+ golang.org/x/sys:golang.org/x/sys:force \
+ gopkg.in/yaml.v3:gopkg.in/yaml.v3:force \
+ go.opencensus.io:go.opencensus.io:force \
+ golang.org/x/exp:golang.org/x/exp:force \
+ golang.org/x/mod:golang.org/x/mod:force \
+ golang.org/x/sync:golang.org/x/sync:force \
+ golang.org/x/term:golang.org/x/term:force \
+ golang.org/x/text:golang.org/x/text:force \
+ golang.org/x/tools:golang.org/x/tools:force \
+ golang.org/x/crypto:golang.org/x/crypto:force \
+ github.com/moby/term:github.com/moby/term:force \
+ go.mozilla.org/pkcs7:go.mozilla.org/pkcs7:force \
+ github.com/docker/cli:github.com/docker/cli:force \
+ github.com/pkg/errors:github.com/pkg/errors:force \
+ github.com/fatih/color:github.com/fatih/color:force \
+ github.com/ipfs/go-cid:github.com/ipfs/go-cid:force \
+ github.com/spf13/cobra:github.com/spf13/cobra:force \
+ github.com/spf13/pflag:github.com/spf13/pflag:force \
+ github.com/cilium/ebpf:github.com/cilium/ebpf:force \
+ github.com/google/uuid:github.com/google/uuid:force \
+ github.com/moby/locker:github.com/moby/locker:force \
+ google.golang.org/grpc:google.golang.org/grpc:force \
+ github.com/go-logr/logr:github.com/go-logr/logr:force \
+ github.com/go-logr/stdr:github.com/go-logr/stdr:force \
+ github.com/miekg/pkcs11:github.com/miekg/pkcs11:force \
+ github.com/tinylib/msgp:github.com/tinylib/msgp:force \
+ lukechampine.com/blake3:lukechampine.com/blake3:force \
+ github.com/docker/docker:github.com/docker/docker:force \
+ github.com/tidwall/gjson:github.com/tidwall/gjson:force \
+ github.com/gogo/protobuf:github.com/gogo/protobuf:force \
+ github.com/google/go-cmp:github.com/google/go-cmp:force \
+ github.com/imdario/mergo:github.com/imdario/mergo:force \
+ github.com/philhofer/fwd:github.com/philhofer/fwd:force \
+ github.com/tidwall/match:github.com/tidwall/match:force \
+ go.opentelemetry.io/otel:go.opentelemetry.io/otel:force \
+ github.com/containerd/log:github.com/containerd/log:force \
+ github.com/djherbis/times:github.com/djherbis/times:force \
+ github.com/godbus/dbus/v5:github.com/godbus/dbus/v5:force \
+ github.com/mr-tron/base58:github.com/mr-tron/base58:force \
+ github.com/tidwall/pretty:github.com/tidwall/pretty:force \
+ github.com/containerd/fifo:github.com/containerd/fifo:force \
+ github.com/docker/go-units:github.com/docker/go-units:force \
+ github.com/mattn/go-isatty:github.com/mattn/go-isatty:force \
+ github.com/yuchanns/srslog:github.com/yuchanns/srslog:force \
+ github.com/golang/protobuf:github.com/golang/protobuf:force \
+ github.com/sirupsen/logrus:github.com/sirupsen/logrus:force \
+ google.golang.org/genproto:google.golang.org/genproto:force \
+ google.golang.org/protobuf:google.golang.org/protobuf:force \
+ github.com/moby/sys/user:github.com/moby/sys/user/user:force \
+ github.com/bmizerany/assert:github.com/bmizerany/assert:force \
+ github.com/containerd/ttrpc:github.com/containerd/ttrpc:force \
+ github.com/docker/go-events:github.com/docker/go-events:force \
+ github.com/vbatts/tar-split:github.com/vbatts/tar-split:force \
+ github.com/Microsoft/hcsshim:github.com/Microsoft/hcsshim:force \
+ github.com/containerd/go-cni:github.com/containerd/go-cni:force \
+ github.com/moby/sys/mount:github.com/moby/sys/mount/mount:force \
+ github.com/vishvananda/netns:github.com/vishvananda/netns:force \
+ github.com/Azure/go-ansiterm:github.com/Azure/go-ansiterm:force \
+ github.com/felixge/httpsnoop:github.com/felixge/httpsnoop:force \
+ github.com/golang/groupcache:github.com/golang/groupcache:force \
+ github.com/hashicorp/errwrap:github.com/hashicorp/errwrap:force \
+ github.com/minio/sha256-simd:github.com/minio/sha256-simd:force \
+ github.com/pelletier/go-toml:github.com/pelletier/go-toml:force \
+ github.com/spaolacci/murmur3:github.com/spaolacci/murmur3:force \
+ github.com/Microsoft/go-winio:github.com/Microsoft/go-winio:force \
+ github.com/containerd/console:github.com/containerd/console:force \
+ github.com/coreos/go-iptables:github.com/coreos/go-iptables:force \
+ github.com/containerd/cgroups:github.com/containerd/cgroups:force \
+ github.com/containerd/go-runc:github.com/containerd/go-runc:force \
+ github.com/containerd/typeurl:github.com/containerd/typeurl:force \
+ github.com/go-jose/go-jose/v3:github.com/go-jose/go-jose/v3:force \
+ github.com/klauspost/compress:github.com/klauspost/compress:force \
+ github.com/klauspost/cpuid/v2:github.com/klauspost/cpuid/v2:force \
+ github.com/mattn/go-colorable:github.com/mattn/go-colorable:force \
+ github.com/moby/sys/signal:github.com/moby/sys/signal/signal:force \
+ github.com/containerd/imgcrypt:github.com/containerd/imgcrypt:force \
+ github.com/muesli/cancelreader:github.com/muesli/cancelreader:force \
+ github.com/vishvananda/netlink:github.com/vishvananda/netlink:force \
+ github.com/containers/ocicrypt:github.com/containers/ocicrypt:force \
+ github.com/mattn/go-shellwords:github.com/mattn/go-shellwords:force \
+ github.com/containerd/platforms:github.com/containerd/platforms:force \
+ github.com/pelletier/go-toml/v2:github.com/pelletier/go-toml/v2:force \
+ github.com/mitchellh/go-homedir:github.com/mitchellh/go-homedir:force \
+ github.com/moby/sys/symlink:github.com/moby/sys/symlink/symlink:force \
+ github.com/xeipuuv/gojsonschema:github.com/xeipuuv/gojsonschema:force \
+ github.com/Masterminds/semver/v3:github.com/Masterminds/semver/v3:force \
+ github.com/containerd/cgroups/v3:github.com/containerd/cgroups/v3:force \
+ github.com/containerd/containerd:github.com/containerd/containerd:force \
+ github.com/containerd/continuity:github.com/containerd/continuity:force \
+ github.com/containerd/typeurl/v2:github.com/containerd/typeurl/v2:force \
+ github.com/coreos/go-systemd/v22:github.com/coreos/go-systemd/v22:force \
+ github.com/docker/go-connections:github.com/docker/go-connections:force \
+ github.com/xeipuuv/gojsonpointer:github.com/xeipuuv/gojsonpointer:force \
+ github.com/fahedouch/go-logrotate:github.com/fahedouch/go-logrotate:force \
+ github.com/mitchellh/mapstructure:github.com/mitchellh/mapstructure:force \
+ github.com/distribution/reference:github.com/distribution/reference:force \
+ github.com/multiformats/go-base32:github.com/multiformats/go-base32:force \
+ github.com/multiformats/go-base36:github.com/multiformats/go-base36:force \
+ github.com/multiformats/go-varint:github.com/multiformats/go-varint:force \
+ github.com/opencontainers/selinux:github.com/opencontainers/selinux:force \
+ go.opentelemetry.io/otel/trace:go.opentelemetry.io/otel/trace/trace:force \
+ github.com/compose-spec/compose-go:github.com/compose-spec/compose-go:force \
+ github.com/containernetworking/cni:github.com/containernetworking/cni:force \
+ github.com/hashicorp/go-multierror:github.com/hashicorp/go-multierror:force \
+ github.com/moby/sys/mountinfo:github.com/moby/sys/mountinfo/mountinfo:force \
+ github.com/xeipuuv/gojsonreference:github.com/xeipuuv/gojsonreference:force \
+ go.opentelemetry.io/otel/metric:go.opentelemetry.io/otel/metric/metric:force \
+ github.com/awslabs/soci-snapshotter:github.com/awslabs/soci-snapshotter:force \
+ github.com/opencontainers/go-digest:github.com/opencontainers/go-digest:force \
+ github.com/moby/sys/sequential:github.com/moby/sys/sequential/sequential:force \
+ github.com/opencontainers/image-spec:github.com/opencontainers/image-spec:force \
+ github.com/AdaLogics/go-fuzz-headers:github.com/AdaLogics/go-fuzz-headers:force \
+ github.com/inconshreveable/mousetrap:github.com/inconshreveable/mousetrap:force \
+ github.com/multiformats/go-multiaddr:github.com/multiformats/go-multiaddr:force \
+ github.com/multiformats/go-multibase:github.com/multiformats/go-multibase:force \
+ github.com/multiformats/go-multihash:github.com/multiformats/go-multihash:force \
+ github.com/stefanberger/go-pkcs11uri:github.com/stefanberger/go-pkcs11uri:force \
+ github.com/cyphar/filepath-securejoin:github.com/cyphar/filepath-securejoin:force \
+ github.com/containernetworking/plugins:github.com/containernetworking/plugins:force \
+ github.com/fluent/fluent-logger-golang:github.com/fluent/fluent-logger-golang:force \
+ github.com/opencontainers/runtime-spec:github.com/opencontainers/runtime-spec:force \
+ github.com/AdamKorcz/go-118-fuzz-build:github.com/AdamKorcz/go-118-fuzz-build:force \
+ github.com/containerd/nydus-snapshotter:github.com/containerd/nydus-snapshotter:force \
+ github.com/containerd/stargz-snapshotter:github.com/containerd/stargz-snapshotter:force \
+ github.com/rootless-containers/bypass4netns:github.com/rootless-containers/bypass4netns:force \
+ github.com/docker/docker-credential-helpers:github.com/docker/docker-credential-helpers:force \
+ github.com/rootless-containers/rootlesskit/v2:github.com/rootless-containers/rootlesskit/v2:force \
+ github.com/containerd/stargz-snapshotter/ipfs:github.com/containerd/stargz-snapshotter/ipfs/ipfs:force \
+ google.golang.org/genproto/googleapis/rpc:google.golang.org/genproto/googleapis/rpc/googleapis/rpc:force \
+ github.com/containerd/accelerated-container-image:github.com/containerd/accelerated-container-image:force \
+ github.com/containerd/stargz-snapshotter/estargz:github.com/containerd/stargz-snapshotter/estargz/estargz:force \
+ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp:go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/instrumentation/net/http/otelhttp:force"
+
+do_compile:prepend() {
+ cd ${S}/src/import
+ for s in $sites; do
+ site_dest=$(echo $s | cut -d: -f1)
+ site_source=$(echo $s | cut -d: -f2)
+ force_flag=$(echo $s | cut -d: -f3)
+ mkdir -p vendor.copy/$site_dest
+ if [ -n "$force_flag" ]; then
+ echo "[INFO] $site_dest: force copying .go files"
+ rm -rf vendor.copy/$site_dest
+ rsync -a --exclude='vendor/' --exclude='.git/' vendor.fetch/$site_source/ vendor.copy/$site_dest
+ else
+ [ -n "$(ls -A vendor.copy/$site_dest/*.go 2> /dev/null)" ] && { echo "[INFO] vendor.fetch/$site_source -> $site_dest: go copy skipped (files present)" ; true ; } || { echo "[INFO] $site_dest: copying .go files" ; rsync -a --exclude='vendor/' --exclude='.git/' vendor.fetch/$site_source/ vendor.copy/$site_dest ; }
+ fi
+ done
+}
diff --git a/recipes-containers/nerdctl/src_uri.inc b/recipes-containers/nerdctl/src_uri.inc
new file mode 100644
index 00000000..eff9ec1a
--- /dev/null
+++ b/recipes-containers/nerdctl/src_uri.inc
@@ -0,0 +1,675 @@
+# gotest.tools/v3 v3.5.1
+# [1] git ls-remote https://github.com/gotestyourself/gotest.tools 81cea1abc596b025bf2573c7fdf97740512e4c6c
+SRCREV_gotest.tools-v3="81cea1abc596b025bf2573c7fdf97740512e4c6c"
+SRC_URI += "git://github.com/gotestyourself/gotest.tools;name=gotest.tools-v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gotest.tools/v3"
+
+# go.uber.org/mock v0.4.0
+# [1] git ls-remote https://github.com/uber/mock 74a29c6e6c2cbb8ccee94db061c1604ff33fd188
+SRCREV_mock="74a29c6e6c2cbb8ccee94db061c1604ff33fd188"
+SRC_URI += "git://github.com/uber/mock;name=mock;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.uber.org/mock"
+
+# golang.org/x/net v0.21.0
+# [1] git ls-remote https://go.googlesource.com/net 73d21fdbb4d7dc7115b50526b93b6c37a4e3377f
+SRCREV_net="73d21fdbb4d7dc7115b50526b93b6c37a4e3377f"
+SRC_URI += "git://go.googlesource.com/net;name=net;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/net"
+
+# golang.org/x/sys v0.17.0
+# [1] git ls-remote https://go.googlesource.com/sys 914b96c1bddd0738464c043cccbbac14fc94b955
+SRCREV_sys="914b96c1bddd0738464c043cccbbac14fc94b955"
+SRC_URI += "git://go.googlesource.com/sys;name=sys;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/sys"
+
+# gopkg.in/yaml.v3 v3.0.1
+# [1] git ls-remote https://github.com/go-yaml/yaml f6f7691b1fdeb513f56608cd2c32c51f8194bf51
+SRCREV_yaml.v3="f6f7691b1fdeb513f56608cd2c32c51f8194bf51"
+SRC_URI += "git://github.com/go-yaml/yaml;name=yaml.v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/yaml.v3"
+
+# go.opencensus.io v0.24.0
+# [1] git ls-remote https://github.com/census-instrumentation/opencensus-go b1a01ee95db0e690d91d7193d037447816fae4c5
+SRCREV_go.opencensus.io="b1a01ee95db0e690d91d7193d037447816fae4c5"
+SRC_URI += "git://github.com/census-instrumentation/opencensus-go;name=go.opencensus.io;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opencensus.io"
+
+# golang.org/x/exp v0.0.0-20231006140011-7918f672742d
+# [1] git ls-remote https://go.googlesource.com/exp 7918f672742dd40ff5cf8d3c316a9315410c2d3c
+SRCREV_exp="7918f672742dd40ff5cf8d3c316a9315410c2d3c"
+SRC_URI += "git://go.googlesource.com/exp;name=exp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/exp"
+
+# golang.org/x/mod v0.13.0
+# [1] git ls-remote https://go.googlesource.com/mod 5b692803cf76a65fc5d39178c0a36678e69c0e5a
+SRCREV_mod="5b692803cf76a65fc5d39178c0a36678e69c0e5a"
+SRC_URI += "git://go.googlesource.com/mod;name=mod;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/mod"
+
+# golang.org/x/sync v0.6.0
+# [1] git ls-remote https://go.googlesource.com/sync 59c1ca1e4661ed4452be4069ceea3c233f4deec1
+SRCREV_sync="59c1ca1e4661ed4452be4069ceea3c233f4deec1"
+SRC_URI += "git://go.googlesource.com/sync;name=sync;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/sync"
+
+# golang.org/x/term v0.17.0
+# [1] git ls-remote https://go.googlesource.com/term 353276a841e232e41e0f76e7a61fe0e5d1f92cf1
+SRCREV_x-term="353276a841e232e41e0f76e7a61fe0e5d1f92cf1"
+SRC_URI += "git://go.googlesource.com/term;name=x-term;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/term"
+
+# golang.org/x/text v0.14.0
+# [1] git ls-remote https://go.googlesource.com/text 6c97a165dd661335ff7bce6104a008558123c353
+SRCREV_text="6c97a165dd661335ff7bce6104a008558123c353"
+SRC_URI += "git://go.googlesource.com/text;name=text;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/text"
+
+# golang.org/x/tools v0.14.0
+# [1] git ls-remote https://go.googlesource.com/tools 3f4194ee29d7db9b59757dfff729ef55cf89661c
+SRCREV_tools="3f4194ee29d7db9b59757dfff729ef55cf89661c"
+SRC_URI += "git://go.googlesource.com/tools;name=tools;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/tools"
+
+# golang.org/x/crypto v0.19.0
+# [1] git ls-remote https://go.googlesource.com/crypto 405cb3bdea78b1b48ee79096733841247a944de0
+SRCREV_crypto="405cb3bdea78b1b48ee79096733841247a944de0"
+SRC_URI += "git://go.googlesource.com/crypto;name=crypto;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/crypto"
+
+# github.com/moby/term v0.5.0
+# [1] git ls-remote https://github.com/moby/term 9c3c875fad924eb6c9dd32a361b5fc0a49a4feb9
+SRCREV_term="9c3c875fad924eb6c9dd32a361b5fc0a49a4feb9"
+SRC_URI += "git://github.com/moby/term;name=term;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/term"
+
+# go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1
+# [1] git ls-remote https://github.com/mozilla-services/pkcs7 432b2356ecb18209c1cec25680b8a23632794f21
+SRCREV_pkcs7="432b2356ecb18209c1cec25680b8a23632794f21"
+SRC_URI += "git://github.com/mozilla-services/pkcs7;name=pkcs7;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.mozilla.org/pkcs7"
+
+# github.com/docker/cli v24.0.7+incompatible
+# [1] git ls-remote https://github.com/docker/cli afdd53b4e341be38d2056a42113b938559bb1d94
+SRCREV_cli="afdd53b4e341be38d2056a42113b938559bb1d94"
+SRC_URI += "git://github.com/docker/cli;name=cli;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/cli"
+
+# github.com/pkg/errors v0.9.1
+# [1] git ls-remote https://github.com/pkg/errors 614d223910a179a466c1767a985424175c39b465
+SRCREV_errors="614d223910a179a466c1767a985424175c39b465"
+SRC_URI += "git://github.com/pkg/errors;name=errors;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/pkg/errors"
+
+# github.com/fatih/color v1.16.0
+# [1] git ls-remote https://github.com/fatih/color 0f9779ed479afd460f0c2cc5a3d3eb69b9ba188b
+SRCREV_color="0f9779ed479afd460f0c2cc5a3d3eb69b9ba188b"
+SRC_URI += "git://github.com/fatih/color;name=color;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/fatih/color"
+
+# github.com/ipfs/go-cid v0.4.1
+# [1] git ls-remote https://github.com/ipfs/go-cid d46e7f28669cd2c463bc68fe86e7dbe4f8240ab7
+SRCREV_go-cid="d46e7f28669cd2c463bc68fe86e7dbe4f8240ab7"
+SRC_URI += "git://github.com/ipfs/go-cid;name=go-cid;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/ipfs/go-cid"
+
+# github.com/spf13/cobra v1.8.0
+# [1] git ls-remote https://github.com/spf13/cobra a0a6ae020bb3899ff0276067863e50523f897370
+SRCREV_cobra="a0a6ae020bb3899ff0276067863e50523f897370"
+SRC_URI += "git://github.com/spf13/cobra;name=cobra;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/spf13/cobra"
+
+# github.com/spf13/pflag v1.0.5
+# [1] git ls-remote https://github.com/spf13/pflag 2e9d26c8c37aae03e3f9d4e90b7116f5accb7cab
+SRCREV_pflag="2e9d26c8c37aae03e3f9d4e90b7116f5accb7cab"
+SRC_URI += "git://github.com/spf13/pflag;name=pflag;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/spf13/pflag"
+
+# github.com/cilium/ebpf v0.11.0
+# [1] git ls-remote https://github.com/cilium/ebpf 270c859894bd38cdd0c7783317b16343409e4df8
+SRCREV_ebpf="270c859894bd38cdd0c7783317b16343409e4df8"
+SRC_URI += "git://github.com/cilium/ebpf;name=ebpf;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/cilium/ebpf"
+
+# github.com/google/uuid v1.6.0
+# [1] git ls-remote https://github.com/google/uuid 0f11ee6918f41a04c201eceeadf612a377bc7fbc
+SRCREV_uuid="0f11ee6918f41a04c201eceeadf612a377bc7fbc"
+SRC_URI += "git://github.com/google/uuid;name=uuid;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/uuid"
+
+# github.com/moby/locker v1.0.1
+# [1] git ls-remote https://github.com/moby/locker 281af2d563954745bea9d1487c965f24d30742fe
+SRCREV_locker="281af2d563954745bea9d1487c965f24d30742fe"
+SRC_URI += "git://github.com/moby/locker;name=locker;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/locker"
+
+# google.golang.org/grpc v1.59.0
+# [1] git ls-remote https://github.com/grpc/grpc-go 7765221f4bf6104973db7946d56936cf838cad46
+SRCREV_grpc="7765221f4bf6104973db7946d56936cf838cad46"
+SRC_URI += "git://github.com/grpc/grpc-go;name=grpc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/grpc"
+
+# github.com/go-logr/logr v1.3.0
+# [1] git ls-remote https://github.com/go-logr/logr 8adefbede0fe82bdee4fb8c9c9bdc7bc5d91388f
+SRCREV_logr="8adefbede0fe82bdee4fb8c9c9bdc7bc5d91388f"
+SRC_URI += "git://github.com/go-logr/logr;name=logr;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-logr/logr"
+
+# github.com/go-logr/stdr v1.2.2
+# [1] git ls-remote https://github.com/go-logr/stdr 521af2addfa7c81c8a65d0e85ed34bb6bb6dc262
+SRCREV_stdr="521af2addfa7c81c8a65d0e85ed34bb6bb6dc262"
+SRC_URI += "git://github.com/go-logr/stdr;name=stdr;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-logr/stdr"
+
+# github.com/miekg/pkcs11 v1.1.1
+# [1] git ls-remote https://github.com/miekg/pkcs11 f3481918a208bd212aa995a41f92d786eb418a7d
+SRCREV_pkcs11="f3481918a208bd212aa995a41f92d786eb418a7d"
+SRC_URI += "git://github.com/miekg/pkcs11;name=pkcs11;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/miekg/pkcs11"
+
+# github.com/tinylib/msgp v1.1.6
+# [1] git ls-remote https://github.com/tinylib/msgp 205265da651409c54677b486e350b4d105da6d8b
+SRCREV_msgp="205265da651409c54677b486e350b4d105da6d8b"
+SRC_URI += "git://github.com/tinylib/msgp;name=msgp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/tinylib/msgp"
+
+# lukechampine.com/blake3 v1.1.7
+# [1] git ls-remote https://github.com/lukechampine/blake3 bb7ece4161ea910c6c385c17799b17d658075fcd
+SRCREV_blake3="bb7ece4161ea910c6c385c17799b17d658075fcd"
+SRC_URI += "git://github.com/lukechampine/blake3;name=blake3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/lukechampine.com/blake3"
+
+# github.com/docker/docker v24.0.7+incompatible
+# [1] git ls-remote https://github.com/moby/moby 311b9ff0aa93aa55880e1e5f8871c4fb69583426
+SRCREV_docker="311b9ff0aa93aa55880e1e5f8871c4fb69583426"
+SRC_URI += "git://github.com/moby/moby;name=docker;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/docker"
+
+# github.com/tidwall/gjson v1.17.1
+# [1] git ls-remote https://github.com/tidwall/gjson bbf40bb0e4f47860677c7115b2eaa5b3413ce23e
+SRCREV_gjson="bbf40bb0e4f47860677c7115b2eaa5b3413ce23e"
+SRC_URI += "git://github.com/tidwall/gjson;name=gjson;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/tidwall/gjson"
+
+# github.com/moby/sys/user v0.1.0
+# [1] git ls-remote https://github.com/moby/sys c0711cde08c8fa33857a2c28721659267f49b5e2
+SRCREV_user="c0711cde08c8fa33857a2c28721659267f49b5e2"
+SRC_URI += "git://github.com/moby/sys;name=user;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/sys/user"
+
+# github.com/gogo/protobuf v1.3.2
+# [1] git ls-remote https://github.com/gogo/protobuf b03c65ea87cdc3521ede29f62fe3ce239267c1bc
+SRCREV_protobuf="b03c65ea87cdc3521ede29f62fe3ce239267c1bc"
+SRC_URI += "git://github.com/gogo/protobuf;name=protobuf;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/gogo/protobuf"
+
+# github.com/google/go-cmp v0.6.0
+# [1] git ls-remote https://github.com/google/go-cmp c3ad8435e7bef96af35732bc0789e5a2278c6d5f
+SRCREV_go-cmp="c3ad8435e7bef96af35732bc0789e5a2278c6d5f"
+SRC_URI += "git://github.com/google/go-cmp;name=go-cmp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/go-cmp"
+
+# github.com/imdario/mergo v0.3.16
+# [1] git ls-remote https://github.com/darccio/mergo 14fe2b165b83359196f820886a2b24f2771729e9
+SRCREV_mergo="14fe2b165b83359196f820886a2b24f2771729e9"
+SRC_URI += "git://github.com/darccio/mergo;name=mergo;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/imdario/mergo"
+
+# github.com/philhofer/fwd v1.1.1
+# [1] git ls-remote https://github.com/philhofer/fwd 9bcb9cab1b0394d8516a132ec243ba944efdb644
+SRCREV_fwd="9bcb9cab1b0394d8516a132ec243ba944efdb644"
+SRC_URI += "git://github.com/philhofer/fwd;name=fwd;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/philhofer/fwd"
+
+# github.com/tidwall/match v1.1.1
+# [1] git ls-remote https://github.com/tidwall/match 4c9fc61b493b7aa0a3d347e9190aa78c5bec09cf
+SRCREV_match="4c9fc61b493b7aa0a3d347e9190aa78c5bec09cf"
+SRC_URI += "git://github.com/tidwall/match;name=match;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/tidwall/match"
+
+# go.opentelemetry.io/otel v1.19.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go 60666c554065ac4da502fe28943eea4b938ab479
+SRCREV_otel="60666c554065ac4da502fe28943eea4b938ab479"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=otel;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel"
+
+# github.com/containerd/log v0.1.0
+# [1] git ls-remote https://github.com/containerd/log 0fc1e28871fdf2786e2cc51bbe4133db6547a199
+SRCREV_log="0fc1e28871fdf2786e2cc51bbe4133db6547a199"
+SRC_URI += "git://github.com/containerd/log;name=log;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/log"
+
+# github.com/moby/sys/mount v0.3.3
+# [1] git ls-remote https://github.com/moby/sys 416188aff8404d549e1e34a50e513befeb11c3b9
+SRCREV_mount="416188aff8404d549e1e34a50e513befeb11c3b9"
+SRC_URI += "git://github.com/moby/sys;name=mount;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/sys/mount"
+
+# github.com/djherbis/times v1.5.0
+# [1] git ls-remote https://github.com/djherbis/times a1edc5dc082a710e4a808e99c78989b8d04e3025
+SRCREV_times="a1edc5dc082a710e4a808e99c78989b8d04e3025"
+SRC_URI += "git://github.com/djherbis/times;name=times;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/djherbis/times"
+
+# github.com/godbus/dbus/v5 v5.1.0
+# [1] git ls-remote https://github.com/godbus/dbus e523abc905595cf17fb0001a7d77eaaddfaa216d
+SRCREV_v5="e523abc905595cf17fb0001a7d77eaaddfaa216d"
+SRC_URI += "git://github.com/godbus/dbus;name=v5;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/godbus/dbus/v5"
+
+# github.com/mr-tron/base58 v1.2.0
+# [1] git ls-remote https://github.com/mr-tron/base58 cd0e5141f51dfcadb8311fd8e495eb11126a8010
+SRCREV_base58="cd0e5141f51dfcadb8311fd8e495eb11126a8010"
+SRC_URI += "git://github.com/mr-tron/base58;name=base58;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mr-tron/base58"
+
+# github.com/tidwall/pretty v1.2.0
+# [1] git ls-remote https://github.com/tidwall/pretty aaa765e7476acb0028a854b85675801362cbdaa2
+SRCREV_pretty="aaa765e7476acb0028a854b85675801362cbdaa2"
+SRC_URI += "git://github.com/tidwall/pretty;name=pretty;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/tidwall/pretty"
+
+# github.com/containerd/fifo v1.1.0
+# [1] git ls-remote https://github.com/containerd/fifo 151b205263c29d471e0d55c787d2ce9f5343fd46
+SRCREV_fifo="151b205263c29d471e0d55c787d2ce9f5343fd46"
+SRC_URI += "git://github.com/containerd/fifo;name=fifo;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/fifo"
+
+# github.com/docker/go-units v0.5.0
+# [1] git ls-remote https://github.com/docker/go-units e682442797b36348f8e1f98defdbf32bac0b6c6f
+SRCREV_go-units="e682442797b36348f8e1f98defdbf32bac0b6c6f"
+SRC_URI += "git://github.com/docker/go-units;name=go-units;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/go-units"
+
+# github.com/mattn/go-isatty v0.0.20
+# [1] git ls-remote https://github.com/mattn/go-isatty a7c02353c47bc4ec6b30dc9628154ae4fe760c11
+SRCREV_go-isatty="a7c02353c47bc4ec6b30dc9628154ae4fe760c11"
+SRC_URI += "git://github.com/mattn/go-isatty;name=go-isatty;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mattn/go-isatty"
+
+# github.com/moby/sys/signal v0.7.0
+# [1] git ls-remote https://github.com/moby/sys b8d8fabf1fa5cf0de7c1a1729145eee854ea31f5
+SRCREV_signal="b8d8fabf1fa5cf0de7c1a1729145eee854ea31f5"
+SRC_URI += "git://github.com/moby/sys;name=signal;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/sys/signal"
+
+# github.com/yuchanns/srslog v1.1.0
+# [1] git ls-remote https://github.com/yuchanns/srslog becd9b11119269a7928ae89fde90784335c1d016
+SRCREV_srslog="becd9b11119269a7928ae89fde90784335c1d016"
+SRC_URI += "git://github.com/yuchanns/srslog;name=srslog;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/yuchanns/srslog"
+
+# github.com/golang/protobuf v1.5.3
+# [1] git ls-remote https://github.com/golang/protobuf 5d5e8c018a13017f9d5b8bf4fad64aaa42a87308
+SRCREV_golang-protobuf="5d5e8c018a13017f9d5b8bf4fad64aaa42a87308"
+SRC_URI += "git://github.com/golang/protobuf;name=golang-protobuf;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/golang/protobuf"
+
+# github.com/sirupsen/logrus v1.9.3
+# [1] git ls-remote https://github.com/sirupsen/logrus d40e25cd45ed9c6b2b66e6b97573a0413e4c23bd
+SRCREV_logrus="d40e25cd45ed9c6b2b66e6b97573a0413e4c23bd"
+SRC_URI += "git://github.com/sirupsen/logrus;name=logrus;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/sirupsen/logrus"
+
+# google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a
+# [1] git ls-remote https://github.com/googleapis/go-genproto e917dd12ba7ad5f78e3112f832eeda0f94ca8fd4
+SRCREV_genproto="e917dd12ba7ad5f78e3112f832eeda0f94ca8fd4"
+SRC_URI += "git://github.com/googleapis/go-genproto;name=genproto;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/genproto"
+
+# google.golang.org/protobuf v1.31.0
+# [1] git ls-remote https://github.com/protocolbuffers/protobuf-go 68463f0e96c93bc19ef36ccd3adfe690bfdb568c
+SRCREV_google.golang.org-protobuf="68463f0e96c93bc19ef36ccd3adfe690bfdb568c"
+SRC_URI += "git://github.com/protocolbuffers/protobuf-go;name=google.golang.org-protobuf;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/protobuf"
+
+# github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869
+# [1] git ls-remote https://github.com/bmizerany/assert b7ed37b82869576c289d7d97fb2bbd8b64a0cb28
+SRCREV_assert="b7ed37b82869576c289d7d97fb2bbd8b64a0cb28"
+SRC_URI += "git://github.com/bmizerany/assert;name=assert;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/bmizerany/assert"
+
+# github.com/containerd/ttrpc v1.2.2
+# [1] git ls-remote https://github.com/containerd/ttrpc ac26f8cbea1c440d451dd19a4a1b847fd073f3c3
+SRCREV_ttrpc="ac26f8cbea1c440d451dd19a4a1b847fd073f3c3"
+SRC_URI += "git://github.com/containerd/ttrpc;name=ttrpc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/ttrpc"
+
+# github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c
+# [1] git ls-remote https://github.com/docker/go-events e31b211e4f1cd09aa76fe4ac244571fab96ae47f
+SRCREV_go-events="e31b211e4f1cd09aa76fe4ac244571fab96ae47f"
+SRC_URI += "git://github.com/docker/go-events;name=go-events;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/go-events"
+
+# github.com/moby/sys/symlink v0.2.0
+# [1] git ls-remote https://github.com/moby/sys 03b9f8d59a07f5206a2264105f4903a222aea964
+SRCREV_symlink="03b9f8d59a07f5206a2264105f4903a222aea964"
+SRC_URI += "git://github.com/moby/sys;name=symlink;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/sys/symlink"
+
+# github.com/vbatts/tar-split v0.11.5
+# [1] git ls-remote https://github.com/vbatts/tar-split 5ef0dd8243164ebacd755916a89d8085a5b6bb7f
+SRCREV_tar-split="5ef0dd8243164ebacd755916a89d8085a5b6bb7f"
+SRC_URI += "git://github.com/vbatts/tar-split;name=tar-split;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/vbatts/tar-split"
+
+# github.com/Microsoft/hcsshim v0.11.4
+# [1] git ls-remote https://github.com/microsoft/hcsshim b16edf62c1723deb948632261b445d0228d973e0
+SRCREV_hcsshim="b16edf62c1723deb948632261b445d0228d973e0"
+SRC_URI += "git://github.com/microsoft/hcsshim;name=hcsshim;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Microsoft/hcsshim"
+
+# github.com/containerd/go-cni v1.1.9
+# [1] git ls-remote https://github.com/containerd/go-cni 6603d5bd8941d7f2026bb5627f6aa4ff434f859a
+SRCREV_go-cni="6603d5bd8941d7f2026bb5627f6aa4ff434f859a"
+SRC_URI += "git://github.com/containerd/go-cni;name=go-cni;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/go-cni"
+
+# github.com/vishvananda/netns v0.0.4
+# [1] git ls-remote https://github.com/vishvananda/netns 7a452d2d15292b2bfb2a2d88e6bdeac156a761b9
+SRCREV_netns="7a452d2d15292b2bfb2a2d88e6bdeac156a761b9"
+SRC_URI += "git://github.com/vishvananda/netns;name=netns;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/vishvananda/netns"
+
+# github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1
+# [1] git ls-remote https://github.com/Azure/go-ansiterm d185dfc1b5a126116ea5a19e148e29d16b4574c9
+SRCREV_go-ansiterm="d185dfc1b5a126116ea5a19e148e29d16b4574c9"
+SRC_URI += "git://github.com/Azure/go-ansiterm;name=go-ansiterm;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Azure/go-ansiterm"
+
+# github.com/felixge/httpsnoop v1.0.3
+# [1] git ls-remote https://github.com/felixge/httpsnoop ef9fc62cdc3cc5abc33d6018fe1324890bb48145
+SRCREV_httpsnoop="ef9fc62cdc3cc5abc33d6018fe1324890bb48145"
+SRC_URI += "git://github.com/felixge/httpsnoop;name=httpsnoop;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/felixge/httpsnoop"
+
+# github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da
+# [1] git ls-remote https://github.com/golang/groupcache 41bb18bfe9da5321badc438f91158cd790a33aa3
+SRCREV_groupcache="41bb18bfe9da5321badc438f91158cd790a33aa3"
+SRC_URI += "git://github.com/golang/groupcache;name=groupcache;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/golang/groupcache"
+
+# github.com/hashicorp/errwrap v1.1.0
+# [1] git ls-remote https://github.com/hashicorp/errwrap 7b00e5db719c64d14dd0caaacbd13e76254d02c0
+SRCREV_errwrap="7b00e5db719c64d14dd0caaacbd13e76254d02c0"
+SRC_URI += "git://github.com/hashicorp/errwrap;name=errwrap;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/hashicorp/errwrap"
+
+# github.com/minio/sha256-simd v1.0.1
+# [1] git ls-remote https://github.com/minio/sha256-simd 6096f891a77bfe490cbea7a424c821b5fdb92849
+SRCREV_sha256-simd="6096f891a77bfe490cbea7a424c821b5fdb92849"
+SRC_URI += "git://github.com/minio/sha256-simd;name=sha256-simd;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/minio/sha256-simd"
+
+# github.com/pelletier/go-toml v1.9.5
+# [1] git ls-remote https://github.com/pelletier/go-toml fed1464066413075eac02cd4dc368b5221845541
+SRCREV_go-toml="fed1464066413075eac02cd4dc368b5221845541"
+SRC_URI += "git://github.com/pelletier/go-toml;name=go-toml;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/pelletier/go-toml"
+
+# github.com/spaolacci/murmur3 v1.1.0
+# [1] git ls-remote https://github.com/spaolacci/murmur3 f09979ecbc725b9e6d41a297405f65e7e8804acc
+SRCREV_murmur3="f09979ecbc725b9e6d41a297405f65e7e8804acc"
+SRC_URI += "git://github.com/spaolacci/murmur3;name=murmur3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/spaolacci/murmur3"
+
+# github.com/Microsoft/go-winio v0.6.1
+# [1] git ls-remote https://github.com/microsoft/go-winio 070c828abb873da9e71c7247740253b50f7cf049
+SRCREV_go-winio="070c828abb873da9e71c7247740253b50f7cf049"
+SRC_URI += "git://github.com/microsoft/go-winio;name=go-winio;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Microsoft/go-winio"
+
+# github.com/containerd/console v1.0.4
+# [1] git ls-remote https://github.com/containerd/console 8f6c4e4faef5a326d2cd907097d04c0239ee5e2f
+SRCREV_console="8f6c4e4faef5a326d2cd907097d04c0239ee5e2f"
+SRC_URI += "git://github.com/containerd/console;name=console;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/console"
+
+# github.com/coreos/go-iptables v0.7.0
+# [1] git ls-remote https://github.com/coreos/go-iptables b9dff5a19d9c3925da3f9b3c0a705de6c1fdc56c
+SRCREV_go-iptables="b9dff5a19d9c3925da3f9b3c0a705de6c1fdc56c"
+SRC_URI += "git://github.com/coreos/go-iptables;name=go-iptables;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/coreos/go-iptables"
+
+# github.com/containerd/cgroups v1.1.0
+# [1] git ls-remote https://github.com/containerd/cgroups fe7323f622bc222e72473679f12a9089aeeda177
+SRCREV_cgroups="fe7323f622bc222e72473679f12a9089aeeda177"
+SRC_URI += "git://github.com/containerd/cgroups;name=cgroups;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/cgroups"
+
+# github.com/containerd/go-runc v1.0.0
+# [1] git ls-remote https://github.com/containerd/go-runc 16b287bc67d069a60fa48db15f330b790b74365b
+SRCREV_go-runc="16b287bc67d069a60fa48db15f330b790b74365b"
+SRC_URI += "git://github.com/containerd/go-runc;name=go-runc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/go-runc"
+
+# github.com/containerd/typeurl v1.0.3-0.20220422153119-7f6e6d160d67
+# [1] git ls-remote https://github.com/containerd/typeurl 7f6e6d160d675241af388d5cf1b90814786bac40
+SRCREV_typeurl="7f6e6d160d675241af388d5cf1b90814786bac40"
+SRC_URI += "git://github.com/containerd/typeurl;name=typeurl;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/typeurl"
+
+# github.com/go-jose/go-jose/v3 v3.0.1
+# [1] git ls-remote https://github.com/go-jose/go-jose 47edce0854d533ac27795c9befd90b1f7ef87554
+SRCREV_go-jose-v3="47edce0854d533ac27795c9befd90b1f7ef87554"
+SRC_URI += "git://github.com/go-jose/go-jose;name=go-jose-v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-jose/go-jose/v3"
+
+# github.com/klauspost/compress v1.17.6
+# [1] git ls-remote https://github.com/klauspost/compress 255a13270e4608f2f2b97166d92f297de906c951
+SRCREV_compress="255a13270e4608f2f2b97166d92f297de906c951"
+SRC_URI += "git://github.com/klauspost/compress;name=compress;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/klauspost/compress"
+
+# github.com/klauspost/cpuid/v2 v2.2.3
+# [1] git ls-remote https://github.com/klauspost/cpuid 3c0ec06adeb260a595bfb1dff123742e8bac34fb
+SRCREV_cpuid-v2="3c0ec06adeb260a595bfb1dff123742e8bac34fb"
+SRC_URI += "git://github.com/klauspost/cpuid;name=cpuid-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/klauspost/cpuid/v2"
+
+# github.com/mattn/go-colorable v0.1.13
+# [1] git ls-remote https://github.com/mattn/go-colorable 11a925cff3d38c293ddc8c05a16b504e3e2c63be
+SRCREV_go-colorable="11a925cff3d38c293ddc8c05a16b504e3e2c63be"
+SRC_URI += "git://github.com/mattn/go-colorable;name=go-colorable;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mattn/go-colorable"
+
+# github.com/moby/sys/mountinfo v0.7.1
+# [1] git ls-remote https://github.com/moby/sys 4950d7687cf6c9b138dc0e18c2c7351e1f6ed497
+SRCREV_mountinfo="4950d7687cf6c9b138dc0e18c2c7351e1f6ed497"
+SRC_URI += "git://github.com/moby/sys;name=mountinfo;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/sys/mountinfo"
+
+# github.com/containerd/imgcrypt v1.1.9
+# [1] git ls-remote https://github.com/containerd/imgcrypt 90513b079771363133611a91de350ea932e09b26
+SRCREV_imgcrypt="90513b079771363133611a91de350ea932e09b26"
+SRC_URI += "git://github.com/containerd/imgcrypt;name=imgcrypt;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/imgcrypt"
+
+# github.com/muesli/cancelreader v0.2.2
+# [1] git ls-remote https://github.com/muesli/cancelreader d11f1e77abf7f8d69d81553ccaaf0b81163541a6
+SRCREV_cancelreader="d11f1e77abf7f8d69d81553ccaaf0b81163541a6"
+SRC_URI += "git://github.com/muesli/cancelreader;name=cancelreader;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/muesli/cancelreader"
+
+# github.com/vishvananda/netlink v1.2.1-beta.2
+# [1] git ls-remote https://github.com/vishvananda/netlink 5e915e0149386ce3d02379ff93f4c0a5601779d5
+SRCREV_netlink="5e915e0149386ce3d02379ff93f4c0a5601779d5"
+SRC_URI += "git://github.com/vishvananda/netlink;name=netlink;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/vishvananda/netlink"
+
+# github.com/containers/ocicrypt v1.1.9
+# [1] git ls-remote https://github.com/containers/ocicrypt c0e1fd5b82bc57acdb1a241dc602534eea42edb6
+SRCREV_ocicrypt="c0e1fd5b82bc57acdb1a241dc602534eea42edb6"
+SRC_URI += "git://github.com/containers/ocicrypt;name=ocicrypt;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containers/ocicrypt"
+
+# github.com/mattn/go-shellwords v1.0.12
+# [1] git ls-remote https://github.com/mattn/go-shellwords 973b9d5391598d4ee601db46fa32f6e186a356ac
+SRCREV_go-shellwords="973b9d5391598d4ee601db46fa32f6e186a356ac"
+SRC_URI += "git://github.com/mattn/go-shellwords;name=go-shellwords;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mattn/go-shellwords"
+
+# github.com/moby/sys/sequential v0.5.0
+# [1] git ls-remote https://github.com/moby/sys b22ba8a69b306f0b4adbbe2a529457e6283ed9f7
+SRCREV_sequential="b22ba8a69b306f0b4adbbe2a529457e6283ed9f7"
+SRC_URI += "git://github.com/moby/sys;name=sequential;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/moby/sys/sequential"
+
+# go.opentelemetry.io/otel/trace v1.19.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go 60666c554065ac4da502fe28943eea4b938ab479
+SRCREV_trace="60666c554065ac4da502fe28943eea4b938ab479"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=trace;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/trace"
+
+# github.com/containerd/platforms v0.1.1
+# [1] git ls-remote https://github.com/containerd/platforms db76a43eaea9a004a5f240620f966b0081123884
+SRCREV_platforms="db76a43eaea9a004a5f240620f966b0081123884"
+SRC_URI += "git://github.com/containerd/platforms;name=platforms;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/platforms"
+
+# github.com/pelletier/go-toml/v2 v2.1.1
+# [1] git ls-remote https://github.com/pelletier/go-toml 34765b4a9e937ab927b5bd57231e98c68fe13109
+SRCREV_go-toml-v2="34765b4a9e937ab927b5bd57231e98c68fe13109"
+SRC_URI += "git://github.com/pelletier/go-toml;name=go-toml-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/pelletier/go-toml/v2"
+
+# github.com/mitchellh/go-homedir v1.1.0
+# [1] git ls-remote https://github.com/mitchellh/go-homedir af06845cf3004701891bf4fdb884bfe4920b3727
+SRCREV_go-homedir="af06845cf3004701891bf4fdb884bfe4920b3727"
+SRC_URI += "git://github.com/mitchellh/go-homedir;name=go-homedir;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mitchellh/go-homedir"
+
+# github.com/xeipuuv/gojsonschema v1.2.0
+# [1] git ls-remote https://github.com/xeipuuv/gojsonschema 82fcdeb203eb6ab2a67d0a623d9c19e5e5a64927
+SRCREV_gojsonschema="82fcdeb203eb6ab2a67d0a623d9c19e5e5a64927"
+SRC_URI += "git://github.com/xeipuuv/gojsonschema;name=gojsonschema;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/xeipuuv/gojsonschema"
+
+# go.opentelemetry.io/otel/metric v1.19.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go 60666c554065ac4da502fe28943eea4b938ab479
+SRCREV_metric="60666c554065ac4da502fe28943eea4b938ab479"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go;name=metric;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/otel/metric"
+
+# github.com/Masterminds/semver/v3 v3.2.1
+# [1] git ls-remote https://github.com/Masterminds/semver e06051f8fcc4c8b4a4990c337b9862a2448722e5
+SRCREV_v3="e06051f8fcc4c8b4a4990c337b9862a2448722e5"
+SRC_URI += "git://github.com/Masterminds/semver;name=v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Masterminds/semver/v3"
+
+# github.com/containerd/cgroups/v3 v3.0.3
+# [1] git ls-remote https://github.com/containerd/cgroups 1e056883d58ac58daf7566065a46016b4532f35c
+SRCREV_cgroups-v3="1e056883d58ac58daf7566065a46016b4532f35c"
+SRC_URI += "git://github.com/containerd/cgroups;name=cgroups-v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/cgroups/v3"
+
+# github.com/containerd/containerd v1.7.13
+# [1] git ls-remote https://github.com/containerd/containerd 7c3aca7a610df76212171d200ca3811ff6096eb8
+SRCREV_containerd="7c3aca7a610df76212171d200ca3811ff6096eb8"
+SRC_URI += "git://github.com/containerd/containerd;name=containerd;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/containerd"
+
+# github.com/containerd/continuity v0.4.3
+# [1] git ls-remote https://github.com/containerd/continuity 1743d9104d944131cdedaba33a59d2f9bd80a6f2
+SRCREV_continuity="1743d9104d944131cdedaba33a59d2f9bd80a6f2"
+SRC_URI += "git://github.com/containerd/continuity;name=continuity;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/continuity"
+
+# github.com/containerd/typeurl/v2 v2.1.1
+# [1] git ls-remote https://github.com/containerd/typeurl 7ef6316b771f959cbb208b229e3423a466947df3
+SRCREV_v2="7ef6316b771f959cbb208b229e3423a466947df3"
+SRC_URI += "git://github.com/containerd/typeurl;name=v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/typeurl/v2"
+
+# github.com/coreos/go-systemd/v22 v22.5.0
+# [1] git ls-remote https://github.com/coreos/go-systemd d5623bf85e8e73ae6352f78ee6b55a287619dd4e
+SRCREV_v22="d5623bf85e8e73ae6352f78ee6b55a287619dd4e"
+SRC_URI += "git://github.com/coreos/go-systemd;name=v22;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/coreos/go-systemd/v22"
+
+# github.com/docker/go-connections v0.5.0
+# [1] git ls-remote https://github.com/docker/go-connections fa09c952e3eadbffaf8afc5b8a1667158ba38ace
+SRCREV_go-connections="fa09c952e3eadbffaf8afc5b8a1667158ba38ace"
+SRC_URI += "git://github.com/docker/go-connections;name=go-connections;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/go-connections"
+
+# github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb
+# [1] git ls-remote https://github.com/xeipuuv/gojsonpointer 02993c407bfbf5f6dae44c4f4b1cf6a39b5fc5bb
+SRCREV_gojsonpointer="02993c407bfbf5f6dae44c4f4b1cf6a39b5fc5bb"
+SRC_URI += "git://github.com/xeipuuv/gojsonpointer;name=gojsonpointer;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/xeipuuv/gojsonpointer"
+
+# github.com/fahedouch/go-logrotate v0.2.0
+# [1] git ls-remote https://github.com/fahedouch/go-logrotate 6b28a8e09e886889e0bc4347e66bd4d4d82f5b10
+SRCREV_go-logrotate="6b28a8e09e886889e0bc4347e66bd4d4d82f5b10"
+SRC_URI += "git://github.com/fahedouch/go-logrotate;name=go-logrotate;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/fahedouch/go-logrotate"
+
+# github.com/mitchellh/mapstructure v1.5.0
+# [1] git ls-remote https://github.com/mitchellh/mapstructure ab69d8d93410fce4361f4912bb1ff88110a81311
+SRCREV_mapstructure="ab69d8d93410fce4361f4912bb1ff88110a81311"
+SRC_URI += "git://github.com/mitchellh/mapstructure;name=mapstructure;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mitchellh/mapstructure"
+
+# github.com/distribution/reference v0.5.0
+# [1] git ls-remote https://github.com/distribution/reference 49c28499d219290c3226822e9cfcd4ede6d75379
+SRCREV_reference="49c28499d219290c3226822e9cfcd4ede6d75379"
+SRC_URI += "git://github.com/distribution/reference;name=reference;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/distribution/reference"
+
+# github.com/multiformats/go-base32 v0.1.0
+# [1] git ls-remote https://github.com/multiformats/go-base32 a16b66327f327428b32b919939b8c93482507e1f
+SRCREV_go-base32="a16b66327f327428b32b919939b8c93482507e1f"
+SRC_URI += "git://github.com/multiformats/go-base32;name=go-base32;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/multiformats/go-base32"
+
+# github.com/multiformats/go-base36 v0.1.0
+# [1] git ls-remote https://github.com/multiformats/go-base36 dc4afa6ad3b0720f4a1b282776db2a59ca9c8be7
+SRCREV_go-base36="dc4afa6ad3b0720f4a1b282776db2a59ca9c8be7"
+SRC_URI += "git://github.com/multiformats/go-base36;name=go-base36;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/multiformats/go-base36"
+
+# github.com/multiformats/go-varint v0.0.6
+# [1] git ls-remote https://github.com/multiformats/go-varint a3ded45ab16ca9f2f2a516e68053ffa7ebd9bb0e
+SRCREV_go-varint="a3ded45ab16ca9f2f2a516e68053ffa7ebd9bb0e"
+SRC_URI += "git://github.com/multiformats/go-varint;name=go-varint;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/multiformats/go-varint"
+
+# github.com/opencontainers/selinux v1.11.0
+# [1] git ls-remote https://github.com/opencontainers/selinux b68c45eb2df48c6b0c949901ccda90c8e65fe677
+SRCREV_selinux="b68c45eb2df48c6b0c949901ccda90c8e65fe677"
+SRC_URI += "git://github.com/opencontainers/selinux;name=selinux;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/opencontainers/selinux"
+
+# github.com/compose-spec/compose-go v1.20.2
+# [1] git ls-remote https://github.com/compose-spec/compose-go e390b9774ca100e1d75c8bc075054502783b48b8
+SRCREV_compose-go="e390b9774ca100e1d75c8bc075054502783b48b8"
+SRC_URI += "git://github.com/compose-spec/compose-go;name=compose-go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/compose-spec/compose-go"
+
+# github.com/containernetworking/cni v1.1.2
+# [1] git ls-remote https://github.com/containernetworking/cni 3363d143688bb83ca18489ac8b9dc204c1d49c4a
+SRCREV_cni="3363d143688bb83ca18489ac8b9dc204c1d49c4a"
+SRC_URI += "git://github.com/containernetworking/cni;name=cni;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containernetworking/cni"
+
+# github.com/hashicorp/go-multierror v1.1.1
+# [1] git ls-remote https://github.com/hashicorp/go-multierror 9974e9ec57696378079ecc3accd3d6f29401b3a0
+SRCREV_go-multierror="9974e9ec57696378079ecc3accd3d6f29401b3a0"
+SRC_URI += "git://github.com/hashicorp/go-multierror;name=go-multierror;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/hashicorp/go-multierror"
+
+# github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415
+# [1] git ls-remote https://github.com/xeipuuv/gojsonreference bd5ef7bd5415a7ac448318e64f11a24cd21e594b
+SRCREV_gojsonreference="bd5ef7bd5415a7ac448318e64f11a24cd21e594b"
+SRC_URI += "git://github.com/xeipuuv/gojsonreference;name=gojsonreference;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/xeipuuv/gojsonreference"
+
+# github.com/awslabs/soci-snapshotter v0.4.1
+# [1] git ls-remote https://github.com/awslabs/soci-snapshotter 34e069d90460f422c549b3a8994aa26820cf6544
+SRCREV_soci-snapshotter="34e069d90460f422c549b3a8994aa26820cf6544"
+SRC_URI += "git://github.com/awslabs/soci-snapshotter;name=soci-snapshotter;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/awslabs/soci-snapshotter"
+
+# github.com/opencontainers/go-digest v1.0.0
+# [1] git ls-remote https://github.com/opencontainers/go-digest ea51bea511f75cfa3ef6098cc253c5c3609b037a
+SRCREV_go-digest="ea51bea511f75cfa3ef6098cc253c5c3609b037a"
+SRC_URI += "git://github.com/opencontainers/go-digest;name=go-digest;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/opencontainers/go-digest"
+
+# github.com/opencontainers/image-spec v1.1.0
+# [1] git ls-remote https://github.com/opencontainers/image-spec e7f7c0ca69b21688c3cea7c87a04e4503e6099e2
+SRCREV_image-spec="e7f7c0ca69b21688c3cea7c87a04e4503e6099e2"
+SRC_URI += "git://github.com/opencontainers/image-spec;name=image-spec;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/opencontainers/image-spec"
+
+# github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24
+# [1] git ls-remote https://github.com/AdaLogics/go-fuzz-headers ced1acdcaa24dc39c01b039fc37576c395f506cf
+SRCREV_go-fuzz-headers="ced1acdcaa24dc39c01b039fc37576c395f506cf"
+SRC_URI += "git://github.com/AdaLogics/go-fuzz-headers;name=go-fuzz-headers;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/AdaLogics/go-fuzz-headers"
+
+# github.com/inconshreveable/mousetrap v1.1.0
+# [1] git ls-remote https://github.com/inconshreveable/mousetrap 4e8053ee7ef85a6bd26368364a6d27f1641c1d21
+SRCREV_mousetrap="4e8053ee7ef85a6bd26368364a6d27f1641c1d21"
+SRC_URI += "git://github.com/inconshreveable/mousetrap;name=mousetrap;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/inconshreveable/mousetrap"
+
+# github.com/multiformats/go-multiaddr v0.12.0
+# [1] git ls-remote https://github.com/multiformats/go-multiaddr 5dd793c6fc4935fad347429a48a168acc8073474
+SRCREV_go-multiaddr="5dd793c6fc4935fad347429a48a168acc8073474"
+SRC_URI += "git://github.com/multiformats/go-multiaddr;name=go-multiaddr;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/multiformats/go-multiaddr"
+
+# github.com/multiformats/go-multibase v0.1.1
+# [1] git ls-remote https://github.com/multiformats/go-multibase c1bc15b22eedb45f9205f3b60ce5fcb8fca93e08
+SRCREV_go-multibase="c1bc15b22eedb45f9205f3b60ce5fcb8fca93e08"
+SRC_URI += "git://github.com/multiformats/go-multibase;name=go-multibase;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/multiformats/go-multibase"
+
+# github.com/multiformats/go-multihash v0.2.1
+# [1] git ls-remote https://github.com/multiformats/go-multihash 16974ad98ab1fb19eb756919f55373b39cc80bec
+SRCREV_go-multihash="16974ad98ab1fb19eb756919f55373b39cc80bec"
+SRC_URI += "git://github.com/multiformats/go-multihash;name=go-multihash;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/multiformats/go-multihash"
+
+# github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980
+# [1] git ls-remote https://github.com/stefanberger/go-pkcs11uri 78d3cae3a9805d89aa4fa80a362ca944c89a1b99
+SRCREV_go-pkcs11uri="78d3cae3a9805d89aa4fa80a362ca944c89a1b99"
+SRC_URI += "git://github.com/stefanberger/go-pkcs11uri;name=go-pkcs11uri;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/stefanberger/go-pkcs11uri"
+
+# github.com/cyphar/filepath-securejoin v0.2.4
+# [1] git ls-remote https://github.com/cyphar/filepath-securejoin 2710d06c5b4ba3168beffa0689798d2db12e8ac4
+SRCREV_filepath-securejoin="2710d06c5b4ba3168beffa0689798d2db12e8ac4"
+SRC_URI += "git://github.com/cyphar/filepath-securejoin;name=filepath-securejoin;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/cyphar/filepath-securejoin"
+
+# github.com/containernetworking/plugins v1.4.0
+# [1] git ls-remote https://github.com/containernetworking/plugins 1fb5bf669e42cd208008e52d45b41fe2c3eb8dbc
+SRCREV_plugins="1fb5bf669e42cd208008e52d45b41fe2c3eb8dbc"
+SRC_URI += "git://github.com/containernetworking/plugins;name=plugins;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containernetworking/plugins"
+
+# github.com/fluent/fluent-logger-golang v1.9.0
+# [1] git ls-remote https://github.com/fluent/fluent-logger-golang 5538e904aeb515c10a624da620581bdf420d4b8a
+SRCREV_fluent-logger-golang="5538e904aeb515c10a624da620581bdf420d4b8a"
+SRC_URI += "git://github.com/fluent/fluent-logger-golang;name=fluent-logger-golang;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/fluent/fluent-logger-golang"
+
+# github.com/opencontainers/runtime-spec v1.2.0
+# [1] git ls-remote https://github.com/opencontainers/runtime-spec 36852b0d072a4b5da675300a9e73bc4b0853f5c6
+SRCREV_runtime-spec="36852b0d072a4b5da675300a9e73bc4b0853f5c6"
+SRC_URI += "git://github.com/opencontainers/runtime-spec;name=runtime-spec;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/opencontainers/runtime-spec"
+
+# github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0
+# [1] git ls-remote https://github.com/AdamKorcz/go-118-fuzz-build 8075edf89bb034603c758f28fe93143047ac5677
+SRCREV_go-118-fuzz-build="8075edf89bb034603c758f28fe93143047ac5677"
+SRC_URI += "git://github.com/AdamKorcz/go-118-fuzz-build;name=go-118-fuzz-build;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/AdamKorcz/go-118-fuzz-build"
+
+# github.com/containerd/nydus-snapshotter v0.13.7
+# [1] git ls-remote https://github.com/containerd/nydus-snapshotter 3fcac86ccfe192b34e8605de9e26b9f40150c8cb
+SRCREV_nydus-snapshotter="3fcac86ccfe192b34e8605de9e26b9f40150c8cb"
+SRC_URI += "git://github.com/containerd/nydus-snapshotter;name=nydus-snapshotter;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/nydus-snapshotter"
+
+# github.com/containerd/stargz-snapshotter v0.15.1
+# [1] git ls-remote https://github.com/containerd/stargz-snapshotter 64ab83bd65cd4a763e262955984232cc5ddfeb3f
+SRCREV_stargz-snapshotter="64ab83bd65cd4a763e262955984232cc5ddfeb3f"
+SRC_URI += "git://github.com/containerd/stargz-snapshotter;name=stargz-snapshotter;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/stargz-snapshotter"
+
+# google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b
+# [1] git ls-remote https://github.com/googleapis/go-genproto 49dd2c1f3d0bf0f025ccaf8eeaaad902e3c63846
+SRCREV_rpc="49dd2c1f3d0bf0f025ccaf8eeaaad902e3c63846"
+SRC_URI += "git://github.com/googleapis/go-genproto;name=rpc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/genproto/googleapis/rpc"
+
+# github.com/rootless-containers/bypass4netns v0.4.0
+# [1] git ls-remote https://github.com/rootless-containers/bypass4netns 3385f1f32437dba4300a2bdf1567a7ece939f9b9
+SRCREV_bypass4netns="3385f1f32437dba4300a2bdf1567a7ece939f9b9"
+SRC_URI += "git://github.com/rootless-containers/bypass4netns;name=bypass4netns;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/rootless-containers/bypass4netns"
+
+# github.com/docker/docker-credential-helpers v0.7.0
+# [1] git ls-remote https://github.com/docker/docker-credential-helpers ac5992b5f4756fc0398a7d0c93c609e624368bde
+SRCREV_docker-credential-helpers="ac5992b5f4756fc0398a7d0c93c609e624368bde"
+SRC_URI += "git://github.com/docker/docker-credential-helpers;name=docker-credential-helpers;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/docker/docker-credential-helpers"
+
+# github.com/containerd/stargz-snapshotter/ipfs v0.15.1
+# [1] git ls-remote https://github.com/containerd/stargz-snapshotter 64ab83bd65cd4a763e262955984232cc5ddfeb3f
+SRCREV_ipfs="64ab83bd65cd4a763e262955984232cc5ddfeb3f"
+SRC_URI += "git://github.com/containerd/stargz-snapshotter;name=ipfs;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/stargz-snapshotter/ipfs"
+
+# github.com/rootless-containers/rootlesskit/v2 v2.0.1
+# [1] git ls-remote https://github.com/rootless-containers/rootlesskit 5e9cd7880619a3c0a675e6a41d9562b6839066ee
+SRCREV_rootlesskit-v2="5e9cd7880619a3c0a675e6a41d9562b6839066ee"
+SRC_URI += "git://github.com/rootless-containers/rootlesskit;name=rootlesskit-v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/rootless-containers/rootlesskit/v2"
+
+# github.com/containerd/stargz-snapshotter/estargz v0.15.1
+# [1] git ls-remote https://github.com/containerd/stargz-snapshotter 64ab83bd65cd4a763e262955984232cc5ddfeb3f
+SRCREV_estargz="64ab83bd65cd4a763e262955984232cc5ddfeb3f"
+SRC_URI += "git://github.com/containerd/stargz-snapshotter;name=estargz;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/stargz-snapshotter/estargz"
+
+# github.com/containerd/accelerated-container-image v1.0.2
+# [1] git ls-remote https://github.com/containerd/accelerated-container-image 526b680966031d9e07371894e1de68cbf9ae6282
+SRCREV_accelerated-container-image="526b680966031d9e07371894e1de68cbf9ae6282"
+SRC_URI += "git://github.com/containerd/accelerated-container-image;name=accelerated-container-image;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/accelerated-container-image"
+
+# go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0
+# [1] git ls-remote https://github.com/open-telemetry/opentelemetry-go-contrib 9d4eb7e7706038b07d33f83f76afbe13f53d171d
+SRCREV_otelhttp="9d4eb7e7706038b07d33f83f76afbe13f53d171d"
+SRC_URI += "git://github.com/open-telemetry/opentelemetry-go-contrib;name=otelhttp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
+
diff --git a/recipes-containers/netavark/files/run-ptest b/recipes-containers/netavark/files/run-ptest
new file mode 100644
index 00000000..7e017ae2
--- /dev/null
+++ b/recipes-containers/netavark/files/run-ptest
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+shopt -s extglob
+
+# Skip the plugin tests because those example plugins are built only while
+# running cargo test and for this to work as a ptest they would need to be cross
+# compiled and installed as part of the ptest.
+NETAVARK=/usr/libexec/podman/netavark bats test/!(*-plugin.bats)
diff --git a/recipes-containers/netavark/files/tests.patch b/recipes-containers/netavark/files/tests.patch
new file mode 100644
index 00000000..3e1e9ed9
--- /dev/null
+++ b/recipes-containers/netavark/files/tests.patch
@@ -0,0 +1,24 @@
+Upstream-Status: Pending
+
+Index: git/test/helpers.bash
+===================================================================
+--- git.orig/test/helpers.bash
++++ git/test/helpers.bash
+@@ -575,7 +575,7 @@
+ fi
+
+ nsenter -n -t "${CONTAINER_NS_PIDS[$container_ns]}" timeout --foreground -v --kill=10 5 \
+- nc $nc_common_args -l -p $container_port &>"$NETAVARK_TMPDIR/nc-out" <$stdin &
++ ncat $nc_common_args -l -p $container_port &>"$NETAVARK_TMPDIR/nc-out" <$stdin &
+
+ # make sure to wait until port is bound otherwise test can flake
+ # https://github.com/containers/netavark/issues/433
+@@ -588,7 +588,7 @@
+ fi
+
+ data=$(random_string)
+- run_in_host_netns nc $nc_common_args $connect_ip $host_port <<<"$data"
++ run_in_host_netns ncat $nc_common_args $connect_ip $host_port <<<"$data"
+
+ got=$(cat "$NETAVARK_TMPDIR/nc-out")
+ assert "$got" == "$data" "ncat received data"
diff --git a/recipes-containers/netavark/netavark-crates.inc b/recipes-containers/netavark/netavark-crates.inc
new file mode 100644
index 00000000..00b7c53b
--- /dev/null
+++ b/recipes-containers/netavark/netavark-crates.inc
@@ -0,0 +1,560 @@
+# Autogenerated with 'bitbake -c update_crates netavark'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/addr2line/0.21.0 \
+ crate://crates.io/adler/1.0.2 \
+ crate://crates.io/aho-corasick/1.1.2 \
+ crate://crates.io/android-tzdata/0.1.1 \
+ crate://crates.io/android_system_properties/0.1.5 \
+ crate://crates.io/anstream/0.6.11 \
+ crate://crates.io/anstyle/1.0.4 \
+ crate://crates.io/anstyle-parse/0.2.2 \
+ crate://crates.io/anstyle-query/1.0.0 \
+ crate://crates.io/anstyle-wincon/3.0.1 \
+ crate://crates.io/anyhow/1.0.75 \
+ crate://crates.io/arrayvec/0.7.4 \
+ crate://crates.io/async-broadcast/0.5.1 \
+ crate://crates.io/async-channel/2.1.0 \
+ crate://crates.io/async-executor/1.7.2 \
+ crate://crates.io/async-fs/1.6.0 \
+ crate://crates.io/async-io/1.13.0 \
+ crate://crates.io/async-io/2.2.0 \
+ crate://crates.io/async-lock/2.8.0 \
+ crate://crates.io/async-lock/3.1.1 \
+ crate://crates.io/async-process/1.8.1 \
+ crate://crates.io/async-recursion/1.0.5 \
+ crate://crates.io/async-signal/0.2.5 \
+ crate://crates.io/async-stream/0.3.5 \
+ crate://crates.io/async-stream-impl/0.3.5 \
+ crate://crates.io/async-task/4.5.0 \
+ crate://crates.io/async-trait/0.1.74 \
+ crate://crates.io/atomic-waker/1.1.2 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/axum/0.6.20 \
+ crate://crates.io/axum-core/0.3.4 \
+ crate://crates.io/backtrace/0.3.69 \
+ crate://crates.io/base64/0.21.5 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/bitflags/2.4.1 \
+ crate://crates.io/block-buffer/0.10.4 \
+ crate://crates.io/blocking/1.5.1 \
+ crate://crates.io/bumpalo/3.14.0 \
+ crate://crates.io/byteorder/1.5.0 \
+ crate://crates.io/bytes/1.5.0 \
+ crate://crates.io/cc/1.0.83 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/chrono/0.4.32 \
+ crate://crates.io/clap/4.4.12 \
+ crate://crates.io/clap_builder/4.4.12 \
+ crate://crates.io/clap_derive/4.4.7 \
+ crate://crates.io/clap_lex/0.6.0 \
+ crate://crates.io/colorchoice/1.0.0 \
+ crate://crates.io/concurrent-queue/2.3.0 \
+ crate://crates.io/core-foundation-sys/0.8.4 \
+ crate://crates.io/cpufeatures/0.2.11 \
+ crate://crates.io/crossbeam-utils/0.8.16 \
+ crate://crates.io/crypto-common/0.1.6 \
+ crate://crates.io/data-encoding/2.4.0 \
+ crate://crates.io/derivative/2.2.0 \
+ crate://crates.io/dhcproto/0.9.0 \
+ crate://crates.io/dhcproto-macros/0.1.0 \
+ crate://crates.io/digest/0.10.7 \
+ crate://crates.io/either/1.9.0 \
+ crate://crates.io/enum-as-inner/0.5.1 \
+ crate://crates.io/enum-as-inner/0.6.0 \
+ crate://crates.io/enumflags2/0.7.8 \
+ crate://crates.io/enumflags2_derive/0.7.8 \
+ crate://crates.io/env_filter/0.1.0 \
+ crate://crates.io/env_logger/0.11.0 \
+ crate://crates.io/equivalent/1.0.1 \
+ crate://crates.io/errno/0.3.8 \
+ crate://crates.io/etherparse/0.13.0 \
+ crate://crates.io/ethtool/0.2.5 \
+ crate://crates.io/event-listener/2.5.3 \
+ crate://crates.io/event-listener/3.1.0 \
+ crate://crates.io/event-listener-strategy/0.3.0 \
+ crate://crates.io/fastrand/1.9.0 \
+ crate://crates.io/fastrand/2.0.1 \
+ crate://crates.io/fixedbitset/0.4.2 \
+ crate://crates.io/fnv/1.0.7 \
+ crate://crates.io/form_urlencoded/1.2.1 \
+ crate://crates.io/fs2/0.4.3 \
+ crate://crates.io/futures/0.3.29 \
+ crate://crates.io/futures-channel/0.3.30 \
+ crate://crates.io/futures-core/0.3.30 \
+ crate://crates.io/futures-executor/0.3.29 \
+ crate://crates.io/futures-io/0.3.30 \
+ crate://crates.io/futures-lite/1.13.0 \
+ crate://crates.io/futures-lite/2.0.1 \
+ crate://crates.io/futures-macro/0.3.30 \
+ crate://crates.io/futures-sink/0.3.30 \
+ crate://crates.io/futures-task/0.3.30 \
+ crate://crates.io/futures-util/0.3.30 \
+ crate://crates.io/generic-array/0.14.7 \
+ crate://crates.io/genetlink/0.2.5 \
+ crate://crates.io/getrandom/0.2.11 \
+ crate://crates.io/gimli/0.28.0 \
+ crate://crates.io/h2/0.3.24 \
+ crate://crates.io/hashbrown/0.12.3 \
+ crate://crates.io/hashbrown/0.14.2 \
+ crate://crates.io/heck/0.4.1 \
+ crate://crates.io/hermit-abi/0.3.3 \
+ crate://crates.io/hex/0.4.3 \
+ crate://crates.io/home/0.5.5 \
+ crate://crates.io/http/0.2.11 \
+ crate://crates.io/http-body/0.4.5 \
+ crate://crates.io/httparse/1.8.0 \
+ crate://crates.io/httpdate/1.0.3 \
+ crate://crates.io/humantime/2.1.0 \
+ crate://crates.io/hyper/0.14.27 \
+ crate://crates.io/hyper-timeout/0.4.1 \
+ crate://crates.io/iana-time-zone/0.1.58 \
+ crate://crates.io/iana-time-zone-haiku/0.1.2 \
+ crate://crates.io/idna/0.2.3 \
+ crate://crates.io/idna/0.5.0 \
+ crate://crates.io/indexmap/1.9.3 \
+ crate://crates.io/indexmap/2.1.0 \
+ crate://crates.io/instant/0.1.12 \
+ crate://crates.io/io-lifetimes/1.0.11 \
+ crate://crates.io/ipnet/2.9.0 \
+ crate://crates.io/iptables/0.5.1 \
+ crate://crates.io/itertools/0.11.0 \
+ crate://crates.io/itoa/1.0.9 \
+ crate://crates.io/js-sys/0.3.65 \
+ crate://crates.io/lazy_static/1.4.0 \
+ crate://crates.io/libc/0.2.150 \
+ crate://crates.io/linux-raw-sys/0.3.8 \
+ crate://crates.io/linux-raw-sys/0.4.11 \
+ crate://crates.io/log/0.4.20 \
+ crate://crates.io/matches/0.1.10 \
+ crate://crates.io/matchit/0.7.3 \
+ crate://crates.io/memchr/2.6.4 \
+ crate://crates.io/memoffset/0.7.1 \
+ crate://crates.io/mime/0.3.17 \
+ crate://crates.io/miniz_oxide/0.7.1 \
+ crate://crates.io/mio/0.8.9 \
+ crate://crates.io/mozim/0.2.2 \
+ crate://crates.io/mptcp-pm/0.1.3 \
+ crate://crates.io/multimap/0.8.3 \
+ crate://crates.io/netlink-packet-core/0.7.0 \
+ crate://crates.io/netlink-packet-generic/0.3.3 \
+ crate://crates.io/netlink-packet-route/0.18.1 \
+ crate://crates.io/netlink-packet-utils/0.5.2 \
+ crate://crates.io/netlink-proto/0.11.2 \
+ crate://crates.io/netlink-sys/0.8.5 \
+ crate://crates.io/nftables/0.3.0 \
+ crate://crates.io/nispor/1.2.16 \
+ crate://crates.io/nix/0.26.4 \
+ crate://crates.io/nix/0.27.1 \
+ crate://crates.io/num-traits/0.2.17 \
+ crate://crates.io/num_cpus/1.16.0 \
+ crate://crates.io/object/0.32.1 \
+ crate://crates.io/once_cell/1.19.0 \
+ crate://crates.io/ordered-float/2.10.1 \
+ crate://crates.io/ordered-stream/0.2.0 \
+ crate://crates.io/parking/2.2.0 \
+ crate://crates.io/paste/1.0.14 \
+ crate://crates.io/percent-encoding/2.3.1 \
+ crate://crates.io/petgraph/0.6.4 \
+ crate://crates.io/pin-project/1.1.3 \
+ crate://crates.io/pin-project-internal/1.1.3 \
+ crate://crates.io/pin-project-lite/0.2.13 \
+ crate://crates.io/pin-utils/0.1.0 \
+ crate://crates.io/piper/0.2.1 \
+ crate://crates.io/polling/2.8.0 \
+ crate://crates.io/polling/3.3.0 \
+ crate://crates.io/ppv-lite86/0.2.17 \
+ crate://crates.io/prettyplease/0.2.15 \
+ crate://crates.io/proc-macro-crate/1.3.1 \
+ crate://crates.io/proc-macro2/1.0.74 \
+ crate://crates.io/prost/0.12.2 \
+ crate://crates.io/prost-build/0.12.2 \
+ crate://crates.io/prost-derive/0.12.2 \
+ crate://crates.io/prost-types/0.12.2 \
+ crate://crates.io/quote/1.0.35 \
+ crate://crates.io/rand/0.8.5 \
+ crate://crates.io/rand_chacha/0.3.1 \
+ crate://crates.io/rand_core/0.6.4 \
+ crate://crates.io/redox_syscall/0.4.1 \
+ crate://crates.io/regex/1.10.2 \
+ crate://crates.io/regex-automata/0.4.3 \
+ crate://crates.io/regex-syntax/0.8.2 \
+ crate://crates.io/rtnetlink/0.14.0 \
+ crate://crates.io/rustc-demangle/0.1.23 \
+ crate://crates.io/rustix/0.37.27 \
+ crate://crates.io/rustix/0.38.28 \
+ crate://crates.io/rustversion/1.0.14 \
+ crate://crates.io/ryu/1.0.15 \
+ crate://crates.io/same-file/1.0.6 \
+ crate://crates.io/serde/1.0.194 \
+ crate://crates.io/serde-value/0.7.0 \
+ crate://crates.io/serde_derive/1.0.194 \
+ crate://crates.io/serde_json/1.0.111 \
+ crate://crates.io/serde_path_to_error/0.1.14 \
+ crate://crates.io/serde_repr/0.1.17 \
+ crate://crates.io/sha1/0.10.6 \
+ crate://crates.io/sha2/0.10.8 \
+ crate://crates.io/signal-hook-registry/1.4.1 \
+ crate://crates.io/slab/0.4.9 \
+ crate://crates.io/smallvec/1.11.2 \
+ crate://crates.io/socket2/0.4.10 \
+ crate://crates.io/socket2/0.5.5 \
+ crate://crates.io/static_assertions/1.1.0 \
+ crate://crates.io/strsim/0.10.0 \
+ crate://crates.io/strum/0.25.0 \
+ crate://crates.io/strum_macros/0.25.3 \
+ crate://crates.io/syn/1.0.109 \
+ crate://crates.io/syn/2.0.46 \
+ crate://crates.io/sync_wrapper/0.1.2 \
+ crate://crates.io/sysctl/0.5.5 \
+ crate://crates.io/tempfile/3.9.0 \
+ crate://crates.io/thiserror/1.0.50 \
+ crate://crates.io/thiserror-impl/1.0.50 \
+ crate://crates.io/tinyvec/1.6.0 \
+ crate://crates.io/tinyvec_macros/0.1.1 \
+ crate://crates.io/tokio/1.35.0 \
+ crate://crates.io/tokio-io-timeout/1.2.0 \
+ crate://crates.io/tokio-macros/2.2.0 \
+ crate://crates.io/tokio-stream/0.1.14 \
+ crate://crates.io/tokio-util/0.7.10 \
+ crate://crates.io/toml_datetime/0.6.5 \
+ crate://crates.io/toml_edit/0.19.15 \
+ crate://crates.io/tonic/0.10.2 \
+ crate://crates.io/tonic-build/0.10.2 \
+ crate://crates.io/tower/0.4.13 \
+ crate://crates.io/tower-layer/0.3.2 \
+ crate://crates.io/tower-service/0.3.2 \
+ crate://crates.io/tracing/0.1.40 \
+ crate://crates.io/tracing-attributes/0.1.27 \
+ crate://crates.io/tracing-core/0.1.32 \
+ crate://crates.io/trust-dns-proto/0.22.0 \
+ crate://crates.io/try-lock/0.2.4 \
+ crate://crates.io/typenum/1.17.0 \
+ crate://crates.io/uds_windows/1.0.2 \
+ crate://crates.io/unicode-bidi/0.3.13 \
+ crate://crates.io/unicode-ident/1.0.12 \
+ crate://crates.io/unicode-normalization/0.1.22 \
+ crate://crates.io/url/2.5.0 \
+ crate://crates.io/utf8parse/0.2.1 \
+ crate://crates.io/version_check/0.9.4 \
+ crate://crates.io/waker-fn/1.1.1 \
+ crate://crates.io/walkdir/2.4.0 \
+ crate://crates.io/want/0.3.1 \
+ crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
+ crate://crates.io/wasm-bindgen/0.2.88 \
+ crate://crates.io/wasm-bindgen-backend/0.2.88 \
+ crate://crates.io/wasm-bindgen-macro/0.2.88 \
+ crate://crates.io/wasm-bindgen-macro-support/0.2.88 \
+ crate://crates.io/wasm-bindgen-shared/0.2.88 \
+ crate://crates.io/which/4.4.2 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.6 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+ crate://crates.io/windows-core/0.51.1 \
+ crate://crates.io/windows-sys/0.48.0 \
+ crate://crates.io/windows-sys/0.52.0 \
+ crate://crates.io/windows-targets/0.48.5 \
+ crate://crates.io/windows-targets/0.52.0 \
+ crate://crates.io/windows_aarch64_gnullvm/0.48.5 \
+ crate://crates.io/windows_aarch64_gnullvm/0.52.0 \
+ crate://crates.io/windows_aarch64_msvc/0.48.5 \
+ crate://crates.io/windows_aarch64_msvc/0.52.0 \
+ crate://crates.io/windows_i686_gnu/0.48.5 \
+ crate://crates.io/windows_i686_gnu/0.52.0 \
+ crate://crates.io/windows_i686_msvc/0.48.5 \
+ crate://crates.io/windows_i686_msvc/0.52.0 \
+ crate://crates.io/windows_x86_64_gnu/0.48.5 \
+ crate://crates.io/windows_x86_64_gnu/0.52.0 \
+ crate://crates.io/windows_x86_64_gnullvm/0.48.5 \
+ crate://crates.io/windows_x86_64_gnullvm/0.52.0 \
+ crate://crates.io/windows_x86_64_msvc/0.48.5 \
+ crate://crates.io/windows_x86_64_msvc/0.52.0 \
+ crate://crates.io/winnow/0.5.19 \
+ crate://crates.io/xdg-home/1.0.0 \
+ crate://crates.io/zbus/3.14.1 \
+ crate://crates.io/zbus_macros/3.14.1 \
+ crate://crates.io/zbus_names/2.6.0 \
+ crate://crates.io/zvariant/3.15.0 \
+ crate://crates.io/zvariant_derive/3.15.0 \
+ crate://crates.io/zvariant_utils/1.0.1 \
+"
+
+SRC_URI[addr2line-0.21.0.sha256sum] = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+SRC_URI[aho-corasick-1.1.2.sha256sum] = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+SRC_URI[android-tzdata-0.1.1.sha256sum] = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+SRC_URI[android_system_properties-0.1.5.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+SRC_URI[anstream-0.6.11.sha256sum] = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
+SRC_URI[anstyle-1.0.4.sha256sum] = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+SRC_URI[anstyle-parse-0.2.2.sha256sum] = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140"
+SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+SRC_URI[anstyle-wincon-3.0.1.sha256sum] = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628"
+SRC_URI[anyhow-1.0.75.sha256sum] = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+SRC_URI[arrayvec-0.7.4.sha256sum] = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+SRC_URI[async-broadcast-0.5.1.sha256sum] = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b"
+SRC_URI[async-channel-2.1.0.sha256sum] = "d37875bd9915b7d67c2f117ea2c30a0989874d0b2cb694fe25403c85763c0c9e"
+SRC_URI[async-executor-1.7.2.sha256sum] = "fc5ea910c42e5ab19012bab31f53cb4d63d54c3a27730f9a833a88efcf4bb52d"
+SRC_URI[async-fs-1.6.0.sha256sum] = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
+SRC_URI[async-io-1.13.0.sha256sum] = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
+SRC_URI[async-io-2.2.0.sha256sum] = "41ed9d5715c2d329bf1b4da8d60455b99b187f27ba726df2883799af9af60997"
+SRC_URI[async-lock-2.8.0.sha256sum] = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
+SRC_URI[async-lock-3.1.1.sha256sum] = "655b9c7fe787d3b25cc0f804a1a8401790f0c5bc395beb5a64dc77d8de079105"
+SRC_URI[async-process-1.8.1.sha256sum] = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
+SRC_URI[async-recursion-1.0.5.sha256sum] = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
+SRC_URI[async-signal-0.2.5.sha256sum] = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
+SRC_URI[async-stream-0.3.5.sha256sum] = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
+SRC_URI[async-stream-impl-0.3.5.sha256sum] = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
+SRC_URI[async-task-4.5.0.sha256sum] = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1"
+SRC_URI[async-trait-0.1.74.sha256sum] = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+SRC_URI[atomic-waker-1.1.2.sha256sum] = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[axum-0.6.20.sha256sum] = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
+SRC_URI[axum-core-0.3.4.sha256sum] = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
+SRC_URI[backtrace-0.3.69.sha256sum] = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+SRC_URI[base64-0.21.5.sha256sum] = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.4.1.sha256sum] = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+SRC_URI[blocking-1.5.1.sha256sum] = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
+SRC_URI[bumpalo-3.14.0.sha256sum] = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+SRC_URI[bytes-1.5.0.sha256sum] = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+SRC_URI[cc-1.0.83.sha256sum] = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[chrono-0.4.32.sha256sum] = "41daef31d7a747c5c847246f36de49ced6f7403b4cdabc807a97b5cc184cda7a"
+SRC_URI[clap-4.4.12.sha256sum] = "dcfab8ba68f3668e89f6ff60f5b205cea56aa7b769451a59f34b8682f51c056d"
+SRC_URI[clap_builder-4.4.12.sha256sum] = "fb7fb5e4e979aec3be7791562fcba452f94ad85e954da024396433e0e25a79e9"
+SRC_URI[clap_derive-4.4.7.sha256sum] = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+SRC_URI[clap_lex-0.6.0.sha256sum] = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+SRC_URI[concurrent-queue-2.3.0.sha256sum] = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400"
+SRC_URI[core-foundation-sys-0.8.4.sha256sum] = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+SRC_URI[cpufeatures-0.2.11.sha256sum] = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
+SRC_URI[crossbeam-utils-0.8.16.sha256sum] = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
+SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+SRC_URI[data-encoding-2.4.0.sha256sum] = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
+SRC_URI[derivative-2.2.0.sha256sum] = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
+SRC_URI[dhcproto-0.9.0.sha256sum] = "dcee045385d5f7819022821f41209b9945d17550760b0b2349aaef4ecfa14bc3"
+SRC_URI[dhcproto-macros-0.1.0.sha256sum] = "a7993efb860416547839c115490d4951c6d0f8ec04a3594d9dd99d50ed7ec170"
+SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+SRC_URI[either-1.9.0.sha256sum] = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+SRC_URI[enum-as-inner-0.5.1.sha256sum] = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116"
+SRC_URI[enum-as-inner-0.6.0.sha256sum] = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
+SRC_URI[enumflags2-0.7.8.sha256sum] = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939"
+SRC_URI[enumflags2_derive-0.7.8.sha256sum] = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
+SRC_URI[env_filter-0.1.0.sha256sum] = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
+SRC_URI[env_logger-0.11.0.sha256sum] = "9eeb342678d785662fd2514be38c459bb925f02b68dd2a3e0f21d7ef82d979dd"
+SRC_URI[equivalent-1.0.1.sha256sum] = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+SRC_URI[errno-0.3.8.sha256sum] = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+SRC_URI[etherparse-0.13.0.sha256sum] = "827292ea592108849932ad8e30218f8b1f21c0dfd0696698a18b5d0aed62d990"
+SRC_URI[ethtool-0.2.5.sha256sum] = "1d8e04a35517dc77748dc04bf38152799382d3d8f85cb07cb579bb7f4d8d3b5a"
+SRC_URI[event-listener-2.5.3.sha256sum] = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+SRC_URI[event-listener-3.1.0.sha256sum] = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
+SRC_URI[event-listener-strategy-0.3.0.sha256sum] = "d96b852f1345da36d551b9473fa1e2b1eb5c5195585c6c018118bc92a8d91160"
+SRC_URI[fastrand-1.9.0.sha256sum] = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+SRC_URI[fastrand-2.0.1.sha256sum] = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+SRC_URI[fixedbitset-0.4.2.sha256sum] = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+SRC_URI[form_urlencoded-1.2.1.sha256sum] = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+SRC_URI[fs2-0.4.3.sha256sum] = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213"
+SRC_URI[futures-0.3.29.sha256sum] = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
+SRC_URI[futures-channel-0.3.30.sha256sum] = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+SRC_URI[futures-core-0.3.30.sha256sum] = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+SRC_URI[futures-executor-0.3.29.sha256sum] = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
+SRC_URI[futures-io-0.3.30.sha256sum] = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+SRC_URI[futures-lite-1.13.0.sha256sum] = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
+SRC_URI[futures-lite-2.0.1.sha256sum] = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb"
+SRC_URI[futures-macro-0.3.30.sha256sum] = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+SRC_URI[futures-sink-0.3.30.sha256sum] = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+SRC_URI[futures-task-0.3.30.sha256sum] = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+SRC_URI[futures-util-0.3.30.sha256sum] = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+SRC_URI[genetlink-0.2.5.sha256sum] = "1f890076c1faa1298bf747ce3694a8d9e0d2cc4b06fe293f12dd95742bfd079f"
+SRC_URI[getrandom-0.2.11.sha256sum] = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+SRC_URI[gimli-0.28.0.sha256sum] = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+SRC_URI[h2-0.3.24.sha256sum] = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
+SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+SRC_URI[hashbrown-0.14.2.sha256sum] = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156"
+SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+SRC_URI[hermit-abi-0.3.3.sha256sum] = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+SRC_URI[home-0.5.5.sha256sum] = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
+SRC_URI[http-0.2.11.sha256sum] = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+SRC_URI[http-body-0.4.5.sha256sum] = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+SRC_URI[httparse-1.8.0.sha256sum] = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+SRC_URI[httpdate-1.0.3.sha256sum] = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[hyper-0.14.27.sha256sum] = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+SRC_URI[hyper-timeout-0.4.1.sha256sum] = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
+SRC_URI[iana-time-zone-0.1.58.sha256sum] = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
+SRC_URI[iana-time-zone-haiku-0.1.2.sha256sum] = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+SRC_URI[idna-0.2.3.sha256sum] = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+SRC_URI[idna-0.5.0.sha256sum] = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+SRC_URI[indexmap-1.9.3.sha256sum] = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+SRC_URI[indexmap-2.1.0.sha256sum] = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+SRC_URI[ipnet-2.9.0.sha256sum] = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+SRC_URI[iptables-0.5.1.sha256sum] = "d39f0d72d0feb83c9b7f4e1fbde2b4a629886f30841127b3f86383831dba2629"
+SRC_URI[itertools-0.11.0.sha256sum] = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+SRC_URI[itoa-1.0.9.sha256sum] = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+SRC_URI[js-sys-0.3.65.sha256sum] = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.150.sha256sum] = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+SRC_URI[linux-raw-sys-0.4.11.sha256sum] = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
+SRC_URI[log-0.4.20.sha256sum] = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+SRC_URI[matches-0.1.10.sha256sum] = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
+SRC_URI[matchit-0.7.3.sha256sum] = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
+SRC_URI[memchr-2.6.4.sha256sum] = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+SRC_URI[memoffset-0.7.1.sha256sum] = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
+SRC_URI[mime-0.3.17.sha256sum] = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+SRC_URI[miniz_oxide-0.7.1.sha256sum] = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+SRC_URI[mio-0.8.9.sha256sum] = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
+SRC_URI[mozim-0.2.2.sha256sum] = "0c1c15d0df314be0af498b122169739cc873045e431a0cb1a83564f7459ac491"
+SRC_URI[mptcp-pm-0.1.3.sha256sum] = "3eafa8fc63dce407b75e336f9a22f18cf5510a3a5c3a5d83262688eb5cca42d5"
+SRC_URI[multimap-0.8.3.sha256sum] = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a"
+SRC_URI[netlink-packet-core-0.7.0.sha256sum] = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4"
+SRC_URI[netlink-packet-generic-0.3.3.sha256sum] = "1cd7eb8ad331c84c6b8cb7f685b448133e5ad82e1ffd5acafac374af4a5a308b"
+SRC_URI[netlink-packet-route-0.18.1.sha256sum] = "dd9ccdfabb457e05c7c61e66eb39262a204fbb376c53968b5e52dce15b423fc5"
+SRC_URI[netlink-packet-utils-0.5.2.sha256sum] = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34"
+SRC_URI[netlink-proto-0.11.2.sha256sum] = "842c6770fc4bb33dd902f41829c61ef872b8e38de1405aa0b938b27b8fba12c3"
+SRC_URI[netlink-sys-0.8.5.sha256sum] = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411"
+SRC_URI[nftables-0.3.0.sha256sum] = "71d11bb5c74ea03d97b6eaed2a30a81657d9884152c661d28d44b4d22616b652"
+SRC_URI[nispor-1.2.16.sha256sum] = "0c9f198b82210da3f72354fb061ca8b683f274ae137cd6d862758bd9b176d047"
+SRC_URI[nix-0.26.4.sha256sum] = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+SRC_URI[nix-0.27.1.sha256sum] = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+SRC_URI[num-traits-0.2.17.sha256sum] = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+SRC_URI[num_cpus-1.16.0.sha256sum] = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+SRC_URI[object-0.32.1.sha256sum] = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+SRC_URI[once_cell-1.19.0.sha256sum] = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+SRC_URI[ordered-float-2.10.1.sha256sum] = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c"
+SRC_URI[ordered-stream-0.2.0.sha256sum] = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50"
+SRC_URI[parking-2.2.0.sha256sum] = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+SRC_URI[paste-1.0.14.sha256sum] = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+SRC_URI[percent-encoding-2.3.1.sha256sum] = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+SRC_URI[petgraph-0.6.4.sha256sum] = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
+SRC_URI[pin-project-1.1.3.sha256sum] = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
+SRC_URI[pin-project-internal-1.1.3.sha256sum] = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+SRC_URI[pin-project-lite-0.2.13.sha256sum] = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+SRC_URI[piper-0.2.1.sha256sum] = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
+SRC_URI[polling-2.8.0.sha256sum] = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
+SRC_URI[polling-3.3.0.sha256sum] = "e53b6af1f60f36f8c2ac2aad5459d75a5a9b4be1e8cdd40264f315d78193e531"
+SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+SRC_URI[prettyplease-0.2.15.sha256sum] = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d"
+SRC_URI[proc-macro-crate-1.3.1.sha256sum] = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+SRC_URI[proc-macro2-1.0.74.sha256sum] = "2de98502f212cfcea8d0bb305bd0f49d7ebdd75b64ba0a68f937d888f4e0d6db"
+SRC_URI[prost-0.12.2.sha256sum] = "5a5a410fc7882af66deb8d01d01737353cf3ad6204c408177ba494291a626312"
+SRC_URI[prost-build-0.12.2.sha256sum] = "1fa3d084c8704911bfefb2771be2f9b6c5c0da7343a71e0021ee3c665cada738"
+SRC_URI[prost-derive-0.12.2.sha256sum] = "065717a5dfaca4a83d2fe57db3487b311365200000551d7a364e715dbf4346bc"
+SRC_URI[prost-types-0.12.2.sha256sum] = "8339f32236f590281e2f6368276441394fcd1b2133b549cc895d0ae80f2f9a52"
+SRC_URI[quote-1.0.35.sha256sum] = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[redox_syscall-0.4.1.sha256sum] = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+SRC_URI[regex-1.10.2.sha256sum] = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+SRC_URI[regex-automata-0.4.3.sha256sum] = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+SRC_URI[regex-syntax-0.8.2.sha256sum] = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+SRC_URI[rtnetlink-0.14.0.sha256sum] = "bb5bbb61e037711ff30a3657ec537285b2e1ecb5427e4365d275164f0928c884"
+SRC_URI[rustc-demangle-0.1.23.sha256sum] = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+SRC_URI[rustix-0.37.27.sha256sum] = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
+SRC_URI[rustix-0.38.28.sha256sum] = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
+SRC_URI[rustversion-1.0.14.sha256sum] = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+SRC_URI[ryu-1.0.15.sha256sum] = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+SRC_URI[serde-1.0.194.sha256sum] = "0b114498256798c94a0689e1a15fec6005dee8ac1f41de56404b67afc2a4b773"
+SRC_URI[serde-value-0.7.0.sha256sum] = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c"
+SRC_URI[serde_derive-1.0.194.sha256sum] = "a3385e45322e8f9931410f01b3031ec534c3947d0e94c18049af4d9f9907d4e0"
+SRC_URI[serde_json-1.0.111.sha256sum] = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
+SRC_URI[serde_path_to_error-0.1.14.sha256sum] = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335"
+SRC_URI[serde_repr-0.1.17.sha256sum] = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
+SRC_URI[sha1-0.10.6.sha256sum] = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+SRC_URI[sha2-0.10.8.sha256sum] = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+SRC_URI[signal-hook-registry-1.4.1.sha256sum] = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+SRC_URI[slab-0.4.9.sha256sum] = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+SRC_URI[smallvec-1.11.2.sha256sum] = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+SRC_URI[socket2-0.4.10.sha256sum] = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
+SRC_URI[socket2-0.5.5.sha256sum] = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[strum-0.25.0.sha256sum] = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
+SRC_URI[strum_macros-0.25.3.sha256sum] = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[syn-2.0.46.sha256sum] = "89456b690ff72fddcecf231caedbe615c59480c93358a93dfae7fc29e3ebbf0e"
+SRC_URI[sync_wrapper-0.1.2.sha256sum] = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+SRC_URI[sysctl-0.5.5.sha256sum] = "ec7dddc5f0fee506baf8b9fdb989e242f17e4b11c61dfbb0635b705217199eea"
+SRC_URI[tempfile-3.9.0.sha256sum] = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
+SRC_URI[thiserror-1.0.50.sha256sum] = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+SRC_URI[thiserror-impl-1.0.50.sha256sum] = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+SRC_URI[tokio-1.35.0.sha256sum] = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c"
+SRC_URI[tokio-io-timeout-1.2.0.sha256sum] = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf"
+SRC_URI[tokio-macros-2.2.0.sha256sum] = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+SRC_URI[tokio-stream-0.1.14.sha256sum] = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
+SRC_URI[tokio-util-0.7.10.sha256sum] = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+SRC_URI[toml_datetime-0.6.5.sha256sum] = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+SRC_URI[toml_edit-0.19.15.sha256sum] = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+SRC_URI[tonic-0.10.2.sha256sum] = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e"
+SRC_URI[tonic-build-0.10.2.sha256sum] = "9d021fc044c18582b9a2408cd0dd05b1596e3ecdb5c4df822bb0183545683889"
+SRC_URI[tower-0.4.13.sha256sum] = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
+SRC_URI[tower-layer-0.3.2.sha256sum] = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
+SRC_URI[tower-service-0.3.2.sha256sum] = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+SRC_URI[tracing-0.1.40.sha256sum] = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+SRC_URI[tracing-attributes-0.1.27.sha256sum] = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+SRC_URI[tracing-core-0.1.32.sha256sum] = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+SRC_URI[trust-dns-proto-0.22.0.sha256sum] = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26"
+SRC_URI[try-lock-0.2.4.sha256sum] = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+SRC_URI[typenum-1.17.0.sha256sum] = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+SRC_URI[uds_windows-1.0.2.sha256sum] = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d"
+SRC_URI[unicode-bidi-0.3.13.sha256sum] = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+SRC_URI[url-2.5.0.sha256sum] = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[waker-fn-1.1.1.sha256sum] = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
+SRC_URI[walkdir-2.4.0.sha256sum] = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+SRC_URI[want-0.3.1.sha256sum] = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[wasm-bindgen-0.2.88.sha256sum] = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce"
+SRC_URI[wasm-bindgen-backend-0.2.88.sha256sum] = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217"
+SRC_URI[wasm-bindgen-macro-0.2.88.sha256sum] = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2"
+SRC_URI[wasm-bindgen-macro-support-0.2.88.sha256sum] = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907"
+SRC_URI[wasm-bindgen-shared-0.2.88.sha256sum] = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b"
+SRC_URI[which-4.4.2.sha256sum] = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.6.sha256sum] = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-core-0.51.1.sha256sum] = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+SRC_URI[windows-targets-0.52.0.sha256sum] = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+SRC_URI[windows_aarch64_gnullvm-0.52.0.sha256sum] = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+SRC_URI[windows_aarch64_msvc-0.52.0.sha256sum] = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+SRC_URI[windows_i686_gnu-0.52.0.sha256sum] = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+SRC_URI[windows_i686_msvc-0.52.0.sha256sum] = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+SRC_URI[windows_x86_64_gnu-0.52.0.sha256sum] = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+SRC_URI[windows_x86_64_gnullvm-0.52.0.sha256sum] = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+SRC_URI[windows_x86_64_msvc-0.52.0.sha256sum] = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+SRC_URI[winnow-0.5.19.sha256sum] = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b"
+SRC_URI[xdg-home-1.0.0.sha256sum] = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd"
+SRC_URI[zbus-3.14.1.sha256sum] = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948"
+SRC_URI[zbus_macros-3.14.1.sha256sum] = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d"
+SRC_URI[zbus_names-2.6.0.sha256sum] = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9"
+SRC_URI[zvariant-3.15.0.sha256sum] = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c"
+SRC_URI[zvariant_derive-3.15.0.sha256sum] = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd"
+SRC_URI[zvariant_utils-1.0.1.sha256sum] = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200"
diff --git a/recipes-containers/netavark/netavark_1.10.3.bb b/recipes-containers/netavark/netavark_1.10.3.bb
new file mode 100644
index 00000000..b65b73e8
--- /dev/null
+++ b/recipes-containers/netavark/netavark_1.10.3.bb
@@ -0,0 +1,61 @@
+SUMMARY = "A container network stack"
+HOMEPAGE = "https://github.com/containers/netavark"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRCREV = "d9f9fdc116ea3ed72a6eb4e59da33bf5d7c60b38"
+
+# It is possible to fetch the source using the crate fetcher instead:
+#SRC_URI = "crate://crates.io/${BPN}/${PV}"
+SRC_URI = "git://github.com/containers/netavark.git;protocol=https;branch=v1.10 \
+ file://tests.patch \
+ file://run-ptest"
+require ${BPN}-crates.inc
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ?= "aardvark-dns"
+
+# From the documentation of netavark
+# https://github.com/containers/netavark/blob/v1.1.0/DISTRO_PACKAGE.md#dependency-on-aardvark-dns
+# The aardvark-dns will be installed by default with netavark, but
+# netavark will be functional without it.
+PACKAGECONFIG[aardvark-dns]= ",,, aardvark-dns"
+
+inherit cargo cargo-update-recipe-crates features_check ptest
+
+# Cargo installs the binary to bin so move it to where podman expects it
+do_install:append() {
+ install -d ${D}${libexecdir}
+ mv ${D}${bindir} ${D}${libexecdir}/podman
+}
+
+do_install_ptest() {
+ cp -r ${S}/test ${D}${PTEST_PATH}
+}
+
+# rdepends on aardvark-dns which rdepends on slirp4netns
+REQUIRED_DISTRO_FEATURES ?= "seccomp"
+
+
+DEPENDS += "protobuf-c-native protobuf-c"
+
+# bind-utils is used to install dig
+# procps-ps is necessary because the ps from busybox is
+# not having the same behavior
+# iputils is used because busybox ping behaves differently
+RDEPENDS:${PN}-ptest += " \
+ bash \
+ bats \
+ bind-utils \
+ coreutils \
+ dbus-daemon-proxy \
+ iproute2 \
+ iputils \
+ jq \
+ nmap \
+ procps-ps \
+ util-linux-nsenter \
+ util-linux-unshare \
+"
diff --git a/recipes-containers/oci-image-spec/oci-image-spec_git.bb b/recipes-containers/oci-image-spec/oci-image-spec_git.bb
index 58057408..e5422cec 100644
--- a/recipes-containers/oci-image-spec/oci-image-spec_git.bb
+++ b/recipes-containers/oci-image-spec/oci-image-spec_git.bb
@@ -7,10 +7,10 @@ LIC_FILES_CHKSUM = "file://src/${PKG_NAME}/LICENSE;md5=27ef03aa2da6e424307f102e8
SRCNAME = "image-spec"
PKG_NAME = "github.com/opencontainers/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git;destsuffix=git/src/${PKG_NAME}"
+SRC_URI = "git://${PKG_NAME};destsuffix=git/src/${PKG_NAME};branch=main;protocol=https"
-SRCREV = "bd4f8fcb0979a663d8b97a1d4d9b030b3d2ca1fa"
-PV = "v1.0.1+git${SRCPV}"
+SRCREV = "9615142d016838b5dfe7453f80af0be74feb5c7c"
+PV = "v1.1.0-rc3+git"
S = "${WORKDIR}/git"
@@ -36,6 +36,6 @@ image_spec_file_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
CLEANBROKEN = "1"
diff --git a/recipes-containers/oci-image-tools/files/0001-config-make-Config.User-mapping-errors-a-warning.patch b/recipes-containers/oci-image-tools/files/0001-config-make-Config.User-mapping-errors-a-warning.patch
index 78d2b9d0..10371af3 100644
--- a/recipes-containers/oci-image-tools/files/0001-config-make-Config.User-mapping-errors-a-warning.patch
+++ b/recipes-containers/oci-image-tools/files/0001-config-make-Config.User-mapping-errors-a-warning.patch
@@ -7,15 +7,17 @@ Rather than throwing an error if we can't map a user to a uid,
output a warning. We aren't actually running the code, but are
just extracting it .. so the user not existing isn't an issue.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
---
image/config.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/src/import/image/config.go b/src/import/image/config.go
+diff --git a/image/config.go b/image/config.go
index d28b1bc4fe5f..37dfd1f14ef7 100644
---- a/src/import/image/config.go
-+++ b/src/import/image/config.go
+--- a/image/config.go
++++ b/image/config.go
@@ -106,7 +106,7 @@ func (c *config) runtimeSpec(rootfs string) (*specs.Spec, error) {
s.Process.User.UID = uint32(uid)
s.Process.User.GID = uint32(gid)
diff --git a/recipes-containers/oci-image-tools/files/0001-tool-respect-GO-and-GOBUILDFLAGS-when-building.patch b/recipes-containers/oci-image-tools/files/0001-tool-respect-GO-and-GOBUILDFLAGS-when-building.patch
index 7e0b2a11..90337aa4 100644
--- a/recipes-containers/oci-image-tools/files/0001-tool-respect-GO-and-GOBUILDFLAGS-when-building.patch
+++ b/recipes-containers/oci-image-tools/files/0001-tool-respect-GO-and-GOBUILDFLAGS-when-building.patch
@@ -8,15 +8,17 @@ build flags from our environemnt. Otherwise, we'll use the host
settings for each and end up with a binary that cannot be run on
the target.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/src/import/Makefile b/src/import/Makefile
+diff --git a/Makefile b/Makefile
index bacb341..1bfe021 100644
---- a/src/import/Makefile
-+++ b/src/import/Makefile
+--- a/Makefile
++++ b/Makefile
@@ -27,7 +27,7 @@ check-license:
.PHONY: tool
diff --git a/recipes-containers/oci-image-tools/oci-image-tools_git.bb b/recipes-containers/oci-image-tools/oci-image-tools_git.bb
index 799262cb..ade6534d 100644
--- a/recipes-containers/oci-image-tools/oci-image-tools_git.bb
+++ b/recipes-containers/oci-image-tools/oci-image-tools_git.bb
@@ -1,23 +1,14 @@
HOMEPAGE = "https://github.com/opencontainers/image-tools"
SUMMARY = "A collection of tools for working with the OCI image format specification"
-LICENSE = "Apache-2"
-LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
-DEPENDS = "\
- oci-image-spec \
- oci-runtime-spec \
- go-digest \
- go-errors \
- spf13-cobra \
- spf13-pflag \
- "
-
-SRC_URI = "git://github.com/opencontainers/image-tools.git \
+SRC_URI = "git://github.com/opencontainers/image-tools.git;branch=master;protocol=https;destsuffix=git/src/github.com/opencontainers/image-tools \
file://0001-config-make-Config.User-mapping-errors-a-warning.patch \
file://0001-tool-respect-GO-and-GOBUILDFLAGS-when-building.patch"
-SRCREV = "93db3b16e6738bf9b8bee47d86ac93be5340838b"
-PV = "0.2.0-dev+git${SRCPV}"
+SRCREV = "11f9988298305d36f64248a6ee55318e60bf170b"
+PV = "1.0.0-rc3+git"
GO_IMPORT = "import"
inherit goarch
@@ -27,39 +18,34 @@ inherit go
# go package.
EXTRA_OEMAKE="BUILDTAGS=''"
+S = "${WORKDIR}/git/src/github.com/opencontainers/image-tools"
+
+COMPATIBLE_HOST:riscv64 = "null"
+
do_compile() {
export GOARCH="${TARGET_GOARCH}"
- export GOROOT="${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/go"
- # Setup vendor directory so that it can be used in GOPATH.
- #
- # Go looks in a src directory under any directory in GOPATH but riddler
- # uses 'vendor' instead of 'vendor/src'. We can fix this with a symlink.
- #
- # We also need to link in the ipallocator directory as that is not under
- # a src directory.
- ln -sfn . "${S}/src/import/vendor/src"
- mkdir -p "${S}/src/import/vendor/src/github.com/opencontainers/image-tools/"
- ln -sfn "${S}/src/import/image" "${S}/src/import/vendor/src/github.com/opencontainers/image-tools/image"
- ln -sfn "${S}/src/import/version" "${S}/src/import/vendor/src/github.com/opencontainers/image-tools/version"
- export GOPATH="${S}/src/import/vendor"
+ export GOROOT="${STAGING_LIBDIR}/go"
+ export GOPATH="${WORKDIR}/git/"
# Pass the needed cflags/ldflags so that cgo
# can find the needed headers files and libraries
export CGO_ENABLED="1"
export CFLAGS=""
export LDFLAGS=""
- export CGO_CFLAGS="${BUILDSDK_CFLAGS} --sysroot=${STAGING_DIR_TARGET}"
- export CGO_LDFLAGS="${BUILDSDK_LDFLAGS} --sysroot=${STAGING_DIR_TARGET}"
+ export CGO_CFLAGS="${TARGET_CFLAGS}"
+ export CGO_LDFLAGS="${TARGET_LDFLAGS}"
export GO111MODULE=off
- cd ${S}/src/import
+ export GOBUILDFLAGS="-trimpath"
+
+ cd ${S}
oe_runmake tool
}
do_install() {
install -d ${D}/${sbindir}
- install ${S}/src/import/oci-image-tool ${D}/${sbindir}/
+ install ${S}/oci-image-tool ${D}/${sbindir}/
}
-INSANE_SKIP_${PN} += "ldflags textrel"
+INSANE_SKIP:${PN} += "ldflags textrel"
diff --git a/recipes-containers/oci-runtime-spec/oci-runtime-spec_git.bb b/recipes-containers/oci-runtime-spec/oci-runtime-spec_git.bb
index c4083c09..6eccb148 100644
--- a/recipes-containers/oci-runtime-spec/oci-runtime-spec_git.bb
+++ b/recipes-containers/oci-runtime-spec/oci-runtime-spec_git.bb
@@ -7,10 +7,10 @@ LIC_FILES_CHKSUM = "file://src/${PKG_NAME}/LICENSE;md5=b355a61a394a504dacde901c9
SRCNAME = "runtime-spec"
PKG_NAME = "github.com/opencontainers/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git;destsuffix=git/src/${PKG_NAME}"
+SRC_URI = "git://${PKG_NAME};destsuffix=git/src/${PKG_NAME};branch=main;protocol=https"
-SRCREV = "78ab98c0761136f84e6e21b24b4dcd0be68ab782"
-PV = "v1.0.1+git${SRCPV}"
+SRCREV = "720792f25ae6e9ee6b1332db698f37659e69ce8d"
+PV = "v1.1.0-rc2+git"
S = "${WORKDIR}/git"
@@ -36,6 +36,6 @@ runtime_spec_file_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
CLEANBROKEN = "1"
diff --git a/recipes-containers/oci-runtime-tools/files/0001-Revert-implement-add-set-function-for-hooks-items.patch b/recipes-containers/oci-runtime-tools/files/0001-Revert-implement-add-set-function-for-hooks-items.patch
index 99a9310b..abfd0dfb 100644
--- a/recipes-containers/oci-runtime-tools/files/0001-Revert-implement-add-set-function-for-hooks-items.patch
+++ b/recipes-containers/oci-runtime-tools/files/0001-Revert-implement-add-set-function-for-hooks-items.patch
@@ -4,6 +4,9 @@ Date: Wed, 20 Sep 2017 23:28:52 -0400
Subject: [PATCH] Revert "implement add/set function for hooks items"
This reverts commit df3a46feb971386f922c7c2c2822b88301f87cb0.
+
+Upstream-Status: Inappropriate [embedded specific]
+
---
cmd/oci-runtime-tool/generate.go | 12 ++++++------
generate/generate.go | 42 ++++++----------------------------------
diff --git a/recipes-containers/oci-runtime-tools/files/0001-build-use-for-cross-compiler.patch b/recipes-containers/oci-runtime-tools/files/0001-build-use-for-cross-compiler.patch
index fedfad37..06db99fd 100644
--- a/recipes-containers/oci-runtime-tools/files/0001-build-use-for-cross-compiler.patch
+++ b/recipes-containers/oci-runtime-tools/files/0001-build-use-for-cross-compiler.patch
@@ -3,29 +3,28 @@ From: Bruce Ashfield <bruce.ashfield@gmail.com>
Date: Tue, 30 Jun 2020 23:47:08 -0400
Subject: [PATCH] build: use for cross compiler
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
- a/src/import/Makefile | 4 ++--
+ a/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/src/import/Makefile a/src/import/Makefile
-index 77626d2..c3a0760 100644
---- a/src/import/Makefile
-+++ a/src/import/Makefile
-@@ -8,11 +8,11 @@ COMMIT=$(shell git rev-parse HEAD 2> /dev/null || true)
- all: tool runtimetest
+Index: oci-runtime-tools-0.9.0+gitAUTOINC+0105384f68/Makefile
+===================================================================
+--- oci-runtime-tools-0.9.0+gitAUTOINC+0105384f68.orig/Makefile
++++ oci-runtime-tools-0.9.0+gitAUTOINC+0105384f68/Makefile
+@@ -13,11 +13,11 @@
+ all: tool runtimetest validation-executables
tool:
-- go build -tags "$(BUILDTAGS)" -ldflags "-X main.gitCommit=${COMMIT}" -o oci-runtime-tool ./cmd/oci-runtime-tool
-+ ${GO} build -tags "$(BUILDTAGS)" -ldflags "-X main.gitCommit=${COMMIT}" -o oci-runtime-tool ./cmd/oci-runtime-tool
+- go build $(BUILD_FLAGS) -o oci-runtime-tool ./cmd/oci-runtime-tool
++ ${GO} build $(BUILD_FLAGS) -o oci-runtime-tool ./cmd/oci-runtime-tool
.PHONY: runtimetest
runtimetest:
-- CGO_ENABLED=0 go build -installsuffix cgo -tags "$(BUILDTAGS)" -o runtimetest ./cmd/runtimetest
-+ CGO_ENABLED=0 ${GO} build -installsuffix cgo -tags "$(BUILDTAGS)" -o runtimetest ./cmd/runtimetest
+- go build $(STATIC_BUILD_FLAGS) -o runtimetest ./cmd/runtimetest
++ ${GO} build $(STATIC_BUILD_FLAGS) -o runtimetest ./cmd/runtimetest
.PHONY: man
man:
---
-2.19.1
-
diff --git a/recipes-containers/oci-runtime-tools/oci-runtime-tools_git.bb b/recipes-containers/oci-runtime-tools/oci-runtime-tools_git.bb
index 7f194027..81bebfe2 100644
--- a/recipes-containers/oci-runtime-tools/oci-runtime-tools_git.bb
+++ b/recipes-containers/oci-runtime-tools/oci-runtime-tools_git.bb
@@ -1,53 +1,53 @@
HOMEPAGE = "https://github.com/opencontainers/runtime-tools"
SUMMARY = "oci-runtime-tool is a collection of tools for working with the OCI runtime specification"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=b355a61a394a504dacde901c958f662c"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b355a61a394a504dacde901c958f662c"
-SRC_URI = "git://github.com/opencontainers/runtime-tools.git \
- file://0001-Revert-implement-add-set-function-for-hooks-items.patch \
+SRC_URI = "git://github.com/opencontainers/runtime-tools.git;branch=master;protocol=https;destsuffix=git/src/github.com/opencontainers/runtime-tools \
file://0001-build-use-for-cross-compiler.patch \
"
-SRCREV = "6e7da8148f4de2c9e9c9d3b345576898d4f412cb"
-PV = "0.1.0+git${SRCPV}"
+SRCREV = "0105384f68e16803891d0a17d9067b1def6a2778"
+PV = "0.9.0+git"
GO_IMPORT = "import"
-INSANE_SKIP_${PN} += "ldflags textrel"
+INSANE_SKIP:${PN} += "ldflags textrel"
inherit goarch
inherit go
+S = "${WORKDIR}/git/src/github.com/opencontainers/runtime-tools"
+
do_compile() {
export GOARCH="${TARGET_GOARCH}"
- export GOROOT="${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/go"
- export GOPATH="${S}/src/import:${S}/src/import/vendor"
+ export GOPATH="${WORKDIR}/git/"
+ export GOROOT="${STAGING_LIBDIR}/go"
# Pass the needed cflags/ldflags so that cgo
# can find the needed headers files and libraries
export CGO_ENABLED="1"
export CFLAGS=""
export LDFLAGS=""
- export CGO_CFLAGS="${BUILDSDK_CFLAGS} --sysroot=${STAGING_DIR_TARGET}"
- export CGO_LDFLAGS="${BUILDSDK_LDFLAGS} --sysroot=${STAGING_DIR_TARGET}"
+ export CGO_CFLAGS="${TARGET_CFLAGS}"
+ export CGO_LDFLAGS="${TARGET_LDFLAGS}"
export GO111MODULE=off
+ export GOFLAGS="-mod=vendor"
+
+ # fixes:
+ # cannot find package runtime/cgo (using -importcfg)
+ # ... recipe-sysroot-native/usr/lib/aarch64-poky-linux/go/pkg/tool/linux_amd64/link:
+ # cannot open file : open : no such file or directory
+ # export GO_BUILD_FLAGS="-a -pkgdir dontusecurrentpkgs"
+ export EXTRA_FLAGS="-trimpath"
+
+ cd ${S}
- # link fixups for compilation
- rm -f ${S}/src/import/vendor/src
- ln -sf ./ ${S}/src/import/vendor/src
- mkdir -p ${S}/src/import/vendor/github.com/opencontainers/runtime-tools
- ln -sf ../../../../generate ${S}/src/import/vendor/github.com/opencontainers/runtime-tools/generate
- ln -sf ../../../../validate ${S}/src/import/vendor/github.com/opencontainers/runtime-tools/validate
- ln -sf ../../../../cmd ${S}/src/import/vendor/github.com/opencontainers/runtime-tools/cmd
- ln -sf ../../../../error ${S}/src/import/vendor/github.com/opencontainers/runtime-tools/error
- ln -sf ../../../../specerror ${S}/src/import/vendor/github.com/opencontainers/runtime-tools/specerror
- cd ${S}/src/import
-
- oe_runmake
+ oe_runmake tool
}
do_install() {
install -d ${D}/${sbindir}
- install ${S}/src/import/oci-runtime-tool ${D}/${sbindir}/oci-runtime-tool
+ install ${S}/oci-runtime-tool ${D}/${sbindir}/oci-runtime-tool
}
deltask compile_ptest_base
diff --git a/recipes-containers/oci-systemd-hook/oci-systemd-hook/0001-Add-additional-cgroup-mounts-from-root-NS-automatica.patch b/recipes-containers/oci-systemd-hook/oci-systemd-hook/0001-Add-additional-cgroup-mounts-from-root-NS-automatica.patch
index 34f0c09e..388eda3d 100644
--- a/recipes-containers/oci-systemd-hook/oci-systemd-hook/0001-Add-additional-cgroup-mounts-from-root-NS-automatica.patch
+++ b/recipes-containers/oci-systemd-hook/oci-systemd-hook/0001-Add-additional-cgroup-mounts-from-root-NS-automatica.patch
@@ -3,6 +3,8 @@ From: Jason Wessel <jason.wessel@windriver.com>
Date: Tue, 2 Jul 2019 20:51:08 +0000
Subject: [PATCH] Add additional cgroup mounts from root NS automatically
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
---
src/systemdhook.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
diff --git a/recipes-containers/oci-systemd-hook/oci-systemd-hook/0001-configure-drop-selinux-support.patch b/recipes-containers/oci-systemd-hook/oci-systemd-hook/0001-configure-drop-selinux-support.patch
index 510126e4..fc9236b5 100644
--- a/recipes-containers/oci-systemd-hook/oci-systemd-hook/0001-configure-drop-selinux-support.patch
+++ b/recipes-containers/oci-systemd-hook/oci-systemd-hook/0001-configure-drop-selinux-support.patch
@@ -3,6 +3,8 @@ From: Bruce Ashfield <bruce.ashfield@windriver.com>
Date: Tue, 8 Nov 2016 13:16:19 -0500
Subject: [PATCH] configure: drop selinux support
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
---
configure.ac | 1 -
diff --git a/recipes-containers/oci-systemd-hook/oci-systemd-hook/0001-selinux-drop-selinux-support.patch b/recipes-containers/oci-systemd-hook/oci-systemd-hook/0001-selinux-drop-selinux-support.patch
index a3ec57df..d2b19285 100644
--- a/recipes-containers/oci-systemd-hook/oci-systemd-hook/0001-selinux-drop-selinux-support.patch
+++ b/recipes-containers/oci-systemd-hook/oci-systemd-hook/0001-selinux-drop-selinux-support.patch
@@ -3,6 +3,8 @@ From: Bruce Ashfield <bruce.ashfield@windriver.com>
Date: Tue, 8 Nov 2016 13:15:46 -0500
Subject: [PATCH] selinux: drop selinux support
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
---
src/systemdhook.c | 12 ------------
diff --git a/recipes-containers/oci-systemd-hook/oci-systemd-hook_git.bb b/recipes-containers/oci-systemd-hook/oci-systemd-hook_git.bb
index 6734bffe..0d5ce5f5 100644
--- a/recipes-containers/oci-systemd-hook/oci-systemd-hook_git.bb
+++ b/recipes-containers/oci-systemd-hook/oci-systemd-hook_git.bb
@@ -1,19 +1,19 @@
DESCRIPTION = "OCI systemd hook enables users to run systemd in docker and OCI"
SECTION = "console/utils"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504"
PRIORITY = "optional"
DEPENDS = "yajl util-linux"
SRCREV = "05e692346ca73e022754332a7da641230dae2ffe"
-SRC_URI = "git://github.com/projectatomic/oci-systemd-hook \
+SRC_URI = "git://github.com/projectatomic/oci-systemd-hook;branch=master;protocol=https \
file://0001-selinux-drop-selinux-support.patch \
file://0001-configure-drop-selinux-support.patch \
file://0001-Add-additional-cgroup-mounts-from-root-NS-automatica.patch \
"
-PV = "0.2.0+git${SRCPV}"
+PV = "0.2.0+git"
S = "${WORKDIR}/git"
inherit autotools pkgconfig
@@ -32,5 +32,5 @@ do_install() {
oe_runmake 'DESTDIR=${D}' install-exec-am
}
-FILES_${PN} += "${libexecdir}/oci/hooks.d/"
+FILES:${PN} += "${libexecdir}/oci/hooks.d/"
diff --git a/recipes-containers/podman-compose/podman-compose_0.1.5.bb b/recipes-containers/podman-compose/podman-compose_1.0.6.bb
index bf91705a..e055ee45 100644
--- a/recipes-containers/podman-compose/podman-compose_0.1.5.bb
+++ b/recipes-containers/podman-compose/podman-compose_1.0.6.bb
@@ -1,15 +1,18 @@
DESCRIPTION = "An implementation of docker-compose with podman backend"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-inherit setuptools3 pypi
+inherit setuptools3
-SRC_URI = "git://github.com/containers/podman-compose.git;branch=devel"
+SRC_URI = "git://github.com/containers/podman-compose.git;branch=stable;protocol=https"
-SRCREV = "6289d25a42cfdb5dfcac863b1b1b4ace32ce31b7"
+SRCREV = "f6dbce36181c44d0d08b6f4ca166508542875ce1"
S = "${WORKDIR}/git"
-DEPENDS += "${PYTHON_PN}-pyyaml-native"
+DEPENDS += "python3-pyyaml-native"
-RDEPENDS_${PN} += "${PYTHON_PN}-pyyaml"
+RDEPENDS:${PN} += "\
+ python3-pyyaml \
+ python3-dotenv \
+"
diff --git a/recipes-containers/podman-tui/README b/recipes-containers/podman-tui/README
new file mode 100644
index 00000000..661556c1
--- /dev/null
+++ b/recipes-containers/podman-tui/README
@@ -0,0 +1,6 @@
+
+# to get the graphics to draw:
+
+a) export LC_ALL="en_CA.UTF-8"
+b) don't run under screen
+
diff --git a/recipes-containers/podman-tui/podman-tui_git.bb b/recipes-containers/podman-tui/podman-tui_git.bb
new file mode 100644
index 00000000..210f4f5b
--- /dev/null
+++ b/recipes-containers/podman-tui/podman-tui_git.bb
@@ -0,0 +1,74 @@
+HOMEPAGE = "https://github.com/containers/podman-tui"
+SUMMARY = "podman-tui is a Terminal User Interface to interact with podman"
+DESCRIPTION = "podman-tui is a Terminal User Interface to interact with the podman v4. \
+podman bindings has been used to communicate with podman environment through rest api API (unix socket). \
+ "
+
+inherit features_check
+REQUIRED_DISTRO_FEATURES ?= "seccomp ipv6"
+
+DEPENDS = " \
+ libseccomp \
+ libdevmapper \
+ lvm2 \
+ btrfs-tools \
+ gpgme \
+ libassuan \
+ libgpg-error \
+"
+
+SRCREV_FORMAT = "podmantui_storage"
+SRCREV_podmantui = "b4350927babdaa35fbf50424190683aeb9f5f66f"
+SRCREV_storage = "246ba3062e8b551026aef2708eee747014ce5c52"
+SRC_URI = " \
+ git://github.com/containers/podman-tui;protocol=https;name=podmantui;branch=release-v0.17 \
+"
+# Due to some other API changes, we can't directly import containers/storage at
+# the right commit, so we instead extract a patch and apply it to the tree
+#SRC_URI += "git://github.com/containers/storage;protocol=https;name=storage;branch=release-v0.17;destsuffix=git/src/import/vendor/github.com/containers/storage"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+GO_IMPORT = "import"
+
+S = "${WORKDIR}/git"
+
+PV = "v0.17.0+git"
+
+PODMAN_PKG = "github.com/containers/podman-tui"
+
+inherit go goarch
+inherit pkgconfig
+
+COMPATIBLE_HOST = "^(?!mips).*"
+
+do_configure[noexec] = "1"
+
+BUILD_TAGS ?= "exclude_graphdriver_btrfs exclude_graphdriver_devicemapper"
+
+do_compile() {
+ cd ${S}/src
+
+ rm -rf .gopath
+ mkdir -p .gopath/src/"$(dirname "${PODMAN_PKG}")"
+ ln -sf ../../../../import/ .gopath/src/"${PODMAN_PKG}"
+
+ cd ${S}/src/.gopath/src/"${PODMAN_PKG}"
+
+ # Pass the needed cflags/ldflags so that cgo
+ # can find the needed headers files and libraries
+ export GOFLAGS="-mod=vendor"
+
+ # oe_runmake BUILDTAGS="${BUILDTAGS}"
+ ${GO} build -trimpath -tags "$(BUILDTAGS)" ${GO_LDFLAGS} -o bin/podman-tui
+}
+
+do_install() {
+ cd ${S}/src/.gopath/src/"${PODMAN_PKG}"
+
+ install -d ${D}/${bindir}
+ install bin/podman-tui ${D}/${bindir}/
+}
+
+RDEPENDS:${PN} += "podman"
diff --git a/recipes-containers/podman/README b/recipes-containers/podman/README
new file mode 100644
index 00000000..213ac256
--- /dev/null
+++ b/recipes-containers/podman/README
@@ -0,0 +1,41 @@
+rootless podman
+---------------
+
+Basic configuration:
+
+ https://developers.redhat.com/blog/2020/09/25/rootless-containers-with-podman-the-basics#
+
+% echo "user.max_user_namespaces=28633" > /etc/sysctl.d/userns.conf
+% sysctl -p /etc/sysctl.d/userns.conf
+
+% useradd -c "yocto" yocto
+% passwd yocto
+
+% su - yocto
+
+% podman pull alpine
+% podman run alpine cat /etc/os-release
+% podman images
+% podman unshare cat /proc/self/uid_map
+
+
+podman system service
+---------------
+
+The podman system service command creates a listening service that answers API
+calls for Podman, it supports systemd socket activation.
+
+Test with docker-compose (v2):
+
+To be noticed, docker could NOT be installed together with podman, so
+docker-compose should be built as a standalone tool, remove 'docker-plugin'
+from its PACKAGECONFIG at build time:
+
+```
+PACKAGECONFIG:remove:pn-docker-compose = "docker-plugin"
+```
+
+% sudo systemctl start podman.socket
+% git clone https://github.com/docker/awesome-compose.git
+% cd awesome-compose/postgresql-pgadmin; source .env
+% sudo docker-compose up -d
diff --git a/recipes-containers/podman/podman/50-podman-rootless.conf b/recipes-containers/podman/podman/50-podman-rootless.conf
new file mode 100644
index 00000000..aaede0e1
--- /dev/null
+++ b/recipes-containers/podman/podman/50-podman-rootless.conf
@@ -0,0 +1,6 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: MIT
+
+# User namespaces are required for rootless containers.
+user.max_user_namespaces = 15000
diff --git a/recipes-containers/podman/podman/run-ptest b/recipes-containers/podman/podman/run-ptest
new file mode 100644
index 00000000..108ff451
--- /dev/null
+++ b/recipes-containers/podman/podman/run-ptest
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: MIT
+
+#
+# Podman system tests
+#
+
+# The system tests don't need any go related variables. Dummy-define them to
+# avoid useless warnings/errors.
+GOOS=undefined GO=true BUILDTAGS= make localsystem
diff --git a/recipes-containers/podman/podman_git.bb b/recipes-containers/podman/podman_git.bb
index ef4a454f..f69dec16 100644
--- a/recipes-containers/podman/podman_git.bb
+++ b/recipes-containers/podman/podman_git.bb
@@ -6,47 +6,63 @@ DESCRIPTION = "Podman is a daemonless container engine for developing, \
`alias docker=podman`. \
"
+inherit features_check
+REQUIRED_DISTRO_FEATURES ?= "seccomp ipv6"
+
DEPENDS = " \
go-metalinter-native \
- go-md2man-native \
gpgme \
libseccomp \
${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+ gettext-native \
"
-SRCREV = "bd94d84fadda7000da78e36d9865949dc8e7adb4"
+SRCREV = "bb81e85a430fa95d23a15b77c717fd68bf06ebf2"
SRC_URI = " \
- git://github.com/containers/libpod.git;branch=v3.1 \
+ git://github.com/containers/libpod.git;branch=v5.0;protocol=https \
+ ${@bb.utils.contains('PACKAGECONFIG', 'rootless', 'file://50-podman-rootless.conf', '', d)} \
+ file://run-ptest \
"
LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
+LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=3d9b931fa23ab1cacd0087f9e2ee12c0"
GO_IMPORT = "import"
S = "${WORKDIR}/git"
-PV = "3.1.0+git${SRCPV}"
+PV = "5.0.1+git"
+
+CVE_STATUS[CVE-2022-2989] = "fixed-version: fixed since v4.3.0"
+CVE_STATUS[CVE-2023-0778] = "fixed-version: fixed since v4.5.0"
PACKAGES =+ "${PN}-contrib"
PODMAN_PKG = "github.com/containers/libpod"
+
+BUILDTAGS_EXTRA ?= "${@bb.utils.contains('VIRTUAL-RUNTIME_container_networking','cni','cni','',d)}"
BUILDTAGS ?= "seccomp varlink \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
-exclude_graphdriver_btrfs exclude_graphdriver_devicemapper"
+exclude_graphdriver_btrfs exclude_graphdriver_devicemapper ${BUILDTAGS_EXTRA}"
# overide LDFLAGS to allow podman to build without: "flag provided but not # defined: -Wl,-O1
export LDFLAGS=""
+# https://github.com/llvm/llvm-project/issues/53999
+TOOLCHAIN = "gcc"
+
+# podmans Makefile expects BUILDFLAGS to be set but go.bbclass defines them in GOBUILDFLAGS
+export BUILDFLAGS="${GOBUILDFLAGS}"
+
inherit go goarch
-inherit systemd pkgconfig
+inherit systemd pkgconfig ptest
do_configure[noexec] = "1"
EXTRA_OEMAKE = " \
PREFIX=${prefix} BINDIR=${bindir} LIBEXECDIR=${libexecdir} \
ETCDIR=${sysconfdir} TMPFILESDIR=${nonarch_libdir}/tmpfiles.d \
- SYSTEMDDIR=${systemd_unitdir}/system USERSYSTEMDDIR=${systemd_unitdir}/user \
+ SYSTEMDDIR=${systemd_unitdir}/system USERSYSTEMDDIR=${systemd_user_unitdir} \
"
# remove 'docker' from the packageconfig if you don't want podman to
@@ -75,7 +91,11 @@ do_compile() {
export CGO_CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_TARGET}"
export CGO_LDFLAGS="${LDFLAGS} --sysroot=${STAGING_DIR_TARGET}"
- oe_runmake BUILDTAGS="${BUILDTAGS}"
+ # podman now builds go-md2man and requires the host/build details
+ export NATIVE_GOOS=${BUILD_GOOS}
+ export NATIVE_GOARCH=${BUILD_GOARCH}
+
+ oe_runmake NATIVE_GOOS=${BUILD_GOOS} NATIVE_GOARCH=${BUILD_GOARCH} BUILDTAGS="${BUILDTAGS}"
}
do_install() {
@@ -89,23 +109,68 @@ do_install() {
if ${@bb.utils.contains('PACKAGECONFIG', 'docker', 'true', 'false', d)}; then
oe_runmake install.docker DESTDIR="${D}"
fi
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}${systemd_unitdir}/system
- install -m 644 ${S}/src/import/contrib/systemd/system/podman.service ${D}/${systemd_unitdir}/system
- install -m 644 ${S}/src/import/contrib/systemd/system/podman.socket ${D}/${systemd_unitdir}/system
- rm -f ${D}/${systemd_unitdir}/system/docker.service.rpm
+
+ # Silence docker emulation warnings.
+ mkdir -p ${D}/etc/containers
+ touch ${D}/etc/containers/nodocker
+
+ if ${@bb.utils.contains('PACKAGECONFIG', 'rootless', 'true', 'false', d)}; then
+ install -d "${D}${sysconfdir}/sysctl.d"
+ install -m 0644 "${WORKDIR}/50-podman-rootless.conf" "${D}${sysconfdir}/sysctl.d"
fi
}
-FILES_${PN} += " \
+do_install_ptest () {
+ cp ${S}/src/import/Makefile ${D}${PTEST_PATH}
+ install -d ${D}${PTEST_PATH}/test
+ cp -r ${S}/src/import/test/system ${D}${PTEST_PATH}/test
+
+ # Some compatibility links for the Makefile assumptions.
+ install -d ${D}${PTEST_PATH}/bin
+ ln -s ${bindir}/podman ${D}${PTEST_PATH}/bin/podman
+ ln -s ${bindir}/podman-remote ${D}${PTEST_PATH}/bin/podman-remote
+}
+
+FILES:${PN} += " \
${systemd_unitdir}/system/* \
- ${systemd_unitdir}/user/* \
+ ${nonarch_libdir}/systemd/* \
+ ${systemd_user_unitdir/* \
${nonarch_libdir}/tmpfiles.d/* \
+ ${datadir}/user-tmpfiles.d/* \
${sysconfdir}/cni \
"
-SYSTEMD_SERVICE_${PN} = "podman.service podman.socket"
+SYSTEMD_SERVICE:${PN} = "podman.service podman.socket"
+
+# The other option for this is "busybox", since meta-virt ensures
+# that busybox is configured with nsenter
+VIRTUAL-RUNTIME_base-utils-nsenter ?= "util-linux-nsenter"
-RDEPENDS_${PN} += "conmon virtual/runc iptables cni skopeo"
-RRECOMMENDS_${PN} += "slirp4netns kernel-module-xt-masquerade kernel-module-xt-comment"
-RCONFLICTS_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'docker', 'docker', '', d)}"
+COMPATIBLE_HOST = "^(?!mips).*"
+
+RDEPENDS:${PN} += "\
+ conmon ${VIRTUAL-RUNTIME_container_runtime} iptables ${VIRTUAL-RUNTIME_container_networking} skopeo ${VIRTUAL-RUNTIME_base-utils-nsenter} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'rootless', 'fuse-overlayfs slirp4netns', '', d)} \
+"
+RRECOMMENDS:${PN} += "slirp4netns \
+ kernel-module-xt-masquerade \
+ kernel-module-xt-comment \
+ kernel-module-xt-mark \
+ kernel-module-xt-addrtype \
+ kernel-module-xt-conntrack \
+ kernel-module-xt-tcpudp \
+ "
+RCONFLICTS:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'docker', 'docker', '', d)}"
+
+RDEPENDS:${PN}-ptest += " \
+ bash \
+ bats \
+ buildah \
+ catatonit \
+ coreutils \
+ file \
+ gnupg \
+ jq \
+ make \
+ tar \
+"
diff --git a/recipes-containers/riddler/files/0001-build-use-to-select-cross-compiler.patch b/recipes-containers/riddler/files/0001-build-use-to-select-cross-compiler.patch
index 8098562e..9c6c124c 100644
--- a/recipes-containers/riddler/files/0001-build-use-to-select-cross-compiler.patch
+++ b/recipes-containers/riddler/files/0001-build-use-to-select-cross-compiler.patch
@@ -3,26 +3,28 @@ From: Bruce Ashfield <bruce.ashfield@gmail.com>
Date: Tue, 30 Jun 2020 23:58:22 -0400
Subject: [PATCH] build: use to select cross compiler
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
- git/src/import/Makefile | 10 +++++-----
+ git/Makefile | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
-diff --git git/src/import/Makefile git/src/import/Makefile
+diff --git git/Makefile git/Makefile
index c6976af..f3c8d17 100644
---- git/src/import/Makefile
-+++ git/src/import/Makefile
+--- git/Makefile
++++ git/Makefile
@@ -10,11 +10,11 @@ all: clean build static fmt lint test vet
build:
@echo "+ $@"
- @go build -tags "$(BUILDTAGS) cgo" .
-+ @${GO} build -tags "$(BUILDTAGS) cgo" .
++ @${GO} build ${GOBUILDFLAGS} -tags "$(BUILDTAGS) cgo" .
static:
@echo "+ $@"
- CGO_ENABLED=1 go build -tags "$(BUILDTAGS) cgo static_build" -ldflags "-w -extldflags -static" -o riddler .
-+ CGO_ENABLED=1 ${GO} build -tags "$(BUILDTAGS) cgo static_build" -ldflags "-w -extldflags -static" -o riddler .
++ CGO_ENABLED=1 ${GO} build ${GOBUILDFLAGS} -tags "$(BUILDTAGS) cgo static_build" -ldflags "-w -extldflags -static" -o riddler .
fmt:
@echo "+ $@"
diff --git a/recipes-containers/riddler/riddler_git.bb b/recipes-containers/riddler/riddler_git.bb
index 1bdf786a..2b2902b5 100644
--- a/recipes-containers/riddler/riddler_git.bb
+++ b/recipes-containers/riddler/riddler_git.bb
@@ -1,24 +1,24 @@
HOMEPAGE = "https://github.com/jfrazelle/riddler"
SUMMARY = "Convert `docker inspect` to opencontainers (OCI compatible) runc spec."
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=20ce4c6a4f32d6ee4a68e3a7506db3f1"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=20ce4c6a4f32d6ee4a68e3a7506db3f1"
-SRC_URI = "git://github.com/jfrazelle/riddler;branch=master \
+SRC_URI = "git://github.com/jfrazelle/riddler;branch=master;protocol=https;destsuffix=git/src/github.com/jessfraz/riddler \
file://0001-build-use-to-select-cross-compiler.patch \
"
SRCREV = "23befa0b232877b5b502b828e24161d801bd67f6"
-PV = "0.1.0+git${SRCPV}"
-GO_IMPORT = "import"
+PV = "0.1.0+git"
-S = "${WORKDIR}/git"
+S = "${WORKDIR}/git/src/github.com/jessfraz/riddler"
+GO_IMPORT = "github.com/jessfraz/riddler"
inherit goarch
inherit go
# In addition to hosts go does not like, we do not build for mips.
#
-COMPATIBLE_HOST_mipsarch = "null"
+COMPATIBLE_HOST:mipsarch = "null"
# This disables seccomp and apparmor, which are on by default in the
# go package.
@@ -26,34 +26,25 @@ EXTRA_OEMAKE="BUILDTAGS=''"
do_compile() {
export GOARCH="${TARGET_GOARCH}"
- export GOROOT="${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/go"
- # Setup vendor directory so that it can be used in GOPATH.
- #
- # Go looks in a src directory under any directory in GOPATH but riddler
- # uses 'vendor' instead of 'vendor/src'. We can fix this with a symlink.
- #
- # We also need to link in the ipallocator directory as that is not under
- # a src directory.
- ln -sfn . "${S}/src/import/vendor/src"
- mkdir -p "${S}/src/import/vendor/src/github.com/jessfraz/riddler"
- ln -sfn "${S}/src/import/parse" "${S}/src/import/vendor/src/github.com/jessfraz/riddler/parse"
- export GOPATH="${S}/src/import/vendor"
+ export GOROOT="${STAGING_LIBDIR}/go"
+ export GOPATH="${S}/src/import/vendor:${WORKDIR}/git/"
# Pass the needed cflags/ldflags so that cgo
# can find the needed headers files and libraries
export CGO_ENABLED="1"
export CFLAGS=""
export LDFLAGS=""
- export CGO_CFLAGS="${BUILDSDK_CFLAGS} --sysroot=${STAGING_DIR_TARGET}"
- export CGO_LDFLAGS="${BUILDSDK_LDFLAGS} --sysroot=${STAGING_DIR_TARGET}"
+ export CGO_CFLAGS="${TARGET_CFLAGS}"
+ export CGO_LDFLAGS="${TARGET_LDFLAGS}"
export GO111MODULE=off
+ export GOBUILDFLAGS="-trimpath"
- cd ${S}/src/import
+ cd ${S}
oe_runmake static
}
do_install() {
install -d ${D}/${sbindir}
- install ${S}/src/import/riddler ${D}/${sbindir}/riddler
+ install ${S}/riddler ${D}/${sbindir}/riddler
}
diff --git a/recipes-containers/runc/files/0001-Makefile-respect-GOBUILDFLAGS-for-runc-and-remove-re.patch b/recipes-containers/runc/files/0001-Makefile-respect-GOBUILDFLAGS-for-runc-and-remove-re.patch
index 163501ae..9e5a8313 100644
--- a/recipes-containers/runc/files/0001-Makefile-respect-GOBUILDFLAGS-for-runc-and-remove-re.patch
+++ b/recipes-containers/runc/files/0001-Makefile-respect-GOBUILDFLAGS-for-runc-and-remove-re.patch
@@ -1,10 +1,14 @@
-From d2c47a973f354ffd505bb4e809c59e57b543726d Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Tue, 6 Aug 2019 19:01:45 +0800
+From 0fe50d2ca4517f5e3070585040f35ace413acd44 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Tue, 24 Aug 2021 11:38:23 -0400
Subject: [PATCH] Makefile: respect GOBUILDFLAGS for runc and remove recvtty
from static
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+[bva: refreshed for release 1.0.2]
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
Makefile | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
@@ -13,20 +17,12 @@ Index: git/src/import/Makefile
===================================================================
--- git.orig/src/import/Makefile
+++ git/src/import/Makefile
-@@ -21,7 +21,7 @@
- endif
+@@ -24,7 +24,7 @@
+ GO_BUILDMODE := "-buildmode=pie"
endif
endif
--GO_BUILD := $(GO) build -trimpath $(GO_BUILDMODE) $(EXTRA_FLAGS) -tags "$(BUILDTAGS)" \
-+GO_BUILD := $(GO) build $(GOBUILDFLAGS) -trimpath $(GO_BUILDMODE) $(EXTRA_FLAGS) -tags "$(BUILDTAGS)" \
- -ldflags "-X main.gitCommit=$(COMMIT) -X main.version=$(VERSION) $(EXTRA_LDFLAGS)"
- GO_BUILD_STATIC := CGO_ENABLED=1 $(GO) build -trimpath $(EXTRA_FLAGS) -tags "$(BUILDTAGS) netgo osusergo" \
- -ldflags "-w -extldflags -static -X main.gitCommit=$(COMMIT) -X main.version=$(VERSION) $(EXTRA_LDFLAGS)"
-@@ -38,7 +38,6 @@
-
- static:
- $(GO_BUILD_STATIC) -o runc .
-- $(GO_BUILD_STATIC) -o contrib/cmd/recvtty/recvtty ./contrib/cmd/recvtty
+-GO_BUILD := $(GO) build -trimpath $(GO_BUILDMODE) \
++GO_BUILD := $(GO) build $(GOBUILDFLAGS) -trimpath $(GO_BUILDMODE) \
+ $(EXTRA_FLAGS) -tags "$(BUILDTAGS)" \
+ -ldflags "$(LDFLAGS_COMMON) $(EXTRA_LDFLAGS)"
- release:
- script/release.sh -r release/$(VERSION) -v $(VERSION)
diff --git a/recipes-containers/runc/runc-docker/0001-runc-Add-console-socket-dev-null.patch b/recipes-containers/runc/runc-docker/0001-runc-Add-console-socket-dev-null.patch
index bcf4c103..cb0ddc37 100644
--- a/recipes-containers/runc/runc-docker/0001-runc-Add-console-socket-dev-null.patch
+++ b/recipes-containers/runc/runc-docker/0001-runc-Add-console-socket-dev-null.patch
@@ -7,6 +7,8 @@ This allows for setting up a detached session where you do not want to
set the terminal to false in the config.json. More or less this is a
runtime override.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
---
utils_linux.go | 5 +++++
diff --git a/recipes-containers/runc/runc-docker/0001-runc-docker-SIGUSR1-daemonize.patch b/recipes-containers/runc/runc-docker/0001-runc-docker-SIGUSR1-daemonize.patch
index 98b02044..d3d1134b 100644
--- a/recipes-containers/runc/runc-docker/0001-runc-docker-SIGUSR1-daemonize.patch
+++ b/recipes-containers/runc/runc-docker/0001-runc-docker-SIGUSR1-daemonize.patch
@@ -23,6 +23,8 @@ is set.
because it was blocking until runc performed everything it was
required to perform.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
---
signals.go | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++----
@@ -56,11 +58,11 @@ Index: git/src/import/signals.go
@@ -67,12 +66,61 @@
if h.notifySocket != nil {
if detach {
- h.notifySocket.run(pid1)
+ _ = h.notifySocket.run(pid1)
- return 0, nil
}
- h.notifySocket.run(os.Getpid())
- go h.notifySocket.run(0)
+ _ = h.notifySocket.run(os.Getpid())
+ go func() { _ = h.notifySocket.run(0) }()
}
+ if (detach) {
@@ -120,7 +122,7 @@ Index: git/src/import/utils_linux.go
===================================================================
--- git.orig/src/import/utils_linux.go
+++ git/src/import/utils_linux.go
-@@ -349,7 +349,7 @@
+@@ -345,7 +345,7 @@
if err != nil {
r.terminate(process)
}
diff --git a/recipes-containers/runc/runc-docker_git.bb b/recipes-containers/runc/runc-docker_git.bb
index ff142d00..8d078e85 100644
--- a/recipes-containers/runc/runc-docker_git.bb
+++ b/recipes-containers/runc/runc-docker_git.bb
@@ -2,13 +2,13 @@ include runc.inc
# Note: this rev is before the required protocol field, update when all components
# have been updated to match.
-SRCREV_runc-docker = "249bca0a1316129dcd5bd38b5d75572274181cb5"
-SRC_URI = "git://github.com/opencontainers/runc;nobranch=1;name=runc-docker \
+SRCREV_runc-docker = "a9833ff391a71b30069a6c3f816db113379a4346"
+SRC_URI = "git://github.com/opencontainers/runc;branch=release-1.1;name=runc-docker;protocol=https \
file://0001-runc-Add-console-socket-dev-null.patch \
file://0001-Makefile-respect-GOBUILDFLAGS-for-runc-and-remove-re.patch \
file://0001-runc-docker-SIGUSR1-daemonize.patch \
"
-RUNC_VERSION = "1.0.0-rc93"
+RUNC_VERSION = "1.1.12"
CVE_PRODUCT = "runc"
diff --git a/recipes-containers/runc/runc-opencontainers_git.bb b/recipes-containers/runc/runc-opencontainers_git.bb
index 51ba7c9b..188b8440 100644
--- a/recipes-containers/runc/runc-opencontainers_git.bb
+++ b/recipes-containers/runc/runc-opencontainers_git.bb
@@ -1,17 +1,12 @@
include runc.inc
-SRCREV = "fce58ab2d5c488bc573d02712db476a6daa9a60c"
+SRCREV = "a9833ff391a71b30069a6c3f816db113379a4346"
SRC_URI = " \
- git://github.com/opencontainers/runc;branch=master \
+ git://github.com/opencontainers/runc;branch=release-1.1;protocol=https \
file://0001-Makefile-respect-GOBUILDFLAGS-for-runc-and-remove-re.patch \
"
-RUNC_VERSION = "1.0.0-rc93"
+RUNC_VERSION = "1.1.12"
CVE_PRODUCT = "runc"
-# use BFD when ld-is-gold is used to work around:
-# http://errors.yoctoproject.org/Errors/Details/580099/
-# CGO_ENABLED=1 x86_64-oe-linux-go build -trimpath -tags "seccomp seccomp netgo osusergo" -ldflags "-w -extldflags -static -X main.gitCommit="fce58ab2d5c488bc573d02712db476a6daa9a60c-dirty" -X main.version=1.0.0-rc93+dev " -o runc .
-# TOPDIR/tmp-glibc/work/core2-64-oe-linux/runc-opencontainers/1.0.0-rc93+gitAUTOINC+fce58ab2d5-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/11.0.1/ld: internal error in format_file_lineno, at ../../gold/dwarf_reader.cc:2278
-# collect2: error: ld returned 1 exit status
-LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd', '', d)}"
diff --git a/recipes-containers/runc/runc.inc b/recipes-containers/runc/runc.inc
index eb8aa022..c8e74273 100644
--- a/recipes-containers/runc/runc.inc
+++ b/recipes-containers/runc/runc.inc
@@ -26,7 +26,7 @@ PACKAGECONFIG ??= "static \
PROVIDES += "virtual/runc"
-RPROVIDES_${PN} = "virtual/runc"
+RPROVIDES:${PN} = "virtual-runc"
GO_IMPORT = "import"
diff --git a/recipes-containers/singularity/singularity/0001-Use-python3.patch b/recipes-containers/singularity/singularity/0001-Use-python3.patch
index dbfe06e4..5af21719 100644
--- a/recipes-containers/singularity/singularity/0001-Use-python3.patch
+++ b/recipes-containers/singularity/singularity/0001-Use-python3.patch
@@ -8,6 +8,8 @@ Subject: [PATCH] Use python3
| configure: error: Please install python before installing.
| WARNING: exit code 1 from a shell command.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
configure.ac | 6 +++---
diff --git a/recipes-containers/singularity/singularity/0001-configure.ac-drop-2nd-AM_INIT_AUTOMAKE.patch b/recipes-containers/singularity/singularity/0001-configure.ac-drop-2nd-AM_INIT_AUTOMAKE.patch
new file mode 100644
index 00000000..55ee83e4
--- /dev/null
+++ b/recipes-containers/singularity/singularity/0001-configure.ac-drop-2nd-AM_INIT_AUTOMAKE.patch
@@ -0,0 +1,36 @@
+From 13ee3e016490e74868b64e3a07dcccf9feafebdf Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 30 Nov 2021 05:59:06 -0800
+Subject: [PATCH] configure.ac: drop 2nd AM_INIT_AUTOMAKE
+
+* automake-1.16.5 introduced in oe-core:
+ https://git.openembedded.org/openembedded-core/commit/?id=851167b3a41b1728407d331c1666827fb730daa1
+ doesn't like this after:
+ http://git.savannah.gnu.org/cgit/automake.git/commit/?id=f4a3a70f69e1dbccb6578f39ef47835098a04624
+
+ and do_configure fails with:
+ configure.ac:38: error: AM_INIT_AUTOMAKE expanded multiple times
+
+ There is no point in upstreaming this, because singularity-2.3.1 is very old and
+ whole autotools support is removed in version 3 (currently 3.8.5) with:
+ https://github.com/hpcng/singularity/commit/a06e3d13a822080d7a9bc55085ee1bb32026a96e
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ configure.ac | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 8ffa5ab32..a5a35c43a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -35,7 +35,6 @@ AC_GNU_SOURCE
+ AC_PROG_INSTALL
+ AC_PROG_LIBTOOL
+ AC_PROG_CC
+-AM_INIT_AUTOMAKE
+ AM_PROG_CC_C_O
+ AC_ENABLE_SHARED
+ AC_PROG_LIBTOOL(libtool)
diff --git a/recipes-containers/singularity/singularity_git.bb b/recipes-containers/singularity/singularity_git.bb
index 103270dd..72171b39 100644
--- a/recipes-containers/singularity/singularity_git.bb
+++ b/recipes-containers/singularity/singularity_git.bb
@@ -1,19 +1,20 @@
# Skip QA check for library symbolic links (core issue is a packaging problem within
# Singularity build / config: read up on the dev-so test for more info)
-INSANE_SKIP_${PN} += "dev-so"
+INSANE_SKIP:${PN} += "dev-so"
-RDEPENDS_${PN} += "glibc python3 ca-certificates openssl bash e2fsprogs-mke2fs"
+RDEPENDS:${PN} += "python3 ca-certificates openssl bash e2fsprogs-mke2fs"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause | Apache-2.0"
LIC_FILES_CHKSUM = "file://COPYRIGHT.md;md5=be78c34e483dd7d8439358b1e024b294 \
file://LICENSE-LBNL.md;md5=45a007b527e1a9507aa7fa869f8d7ede \
file://LICENSE.md;md5=df4326b473db6424033f1d98a5645e30 \
file://debian/copyright;md5=ed267cf386d9b75ab1f27f407e935b10"
-SRC_URI = "git://github.com/singularityware/singularity.git;protocol=https \
+SRC_URI = "git://github.com/singularityware/singularity.git;protocol=https;branch=master \
file://0001-Use-python3.patch \
+ file://0001-configure.ac-drop-2nd-AM_INIT_AUTOMAKE.patch \
"
-PV = "2.3.1+git${SRCPV}"
+PV = "2.3.1+git"
SRCREV = "e214d4ebf0a1274b1c63b095fd55ae61c7e92947"
S = "${WORKDIR}/git"
@@ -21,7 +22,7 @@ S = "${WORKDIR}/git"
inherit python3native autotools-brokensep
EXTRA_OECONF = "--prefix=/usr/local"
-pkg_postinst_${PN}() {
+pkg_postinst:${PN}() {
# python3 expects CA certificates to be installed in a different place to where
# they are actually installed. These lines link the two locations.
rm -r $D${libdir}/ssl/certs
diff --git a/recipes-containers/skopeo/files/0001-makefile-add-GOBUILDFLAGS-to-go-build-call.patch b/recipes-containers/skopeo/files/0001-makefile-add-GOBUILDFLAGS-to-go-build-call.patch
new file mode 100644
index 00000000..5d313e73
--- /dev/null
+++ b/recipes-containers/skopeo/files/0001-makefile-add-GOBUILDFLAGS-to-go-build-call.patch
@@ -0,0 +1,28 @@
+From 7037cb27718fe23541885684fdacec9c52ee0e30 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Tue, 13 Sep 2022 11:55:45 -0400
+Subject: [PATCH] makefile: add GOBUILDFLAGS to go build call
+
+We may need to specify things like -trimpath, so add $(GOBUILDFLAGS)
+to allow them to be passed from the recipe to the Makefile.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ src/import/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: git/src/import/Makefile
+===================================================================
+--- git.orig/Makefile
++++ git/Makefile
+@@ -126,7 +126,7 @@
+ # Build w/o using containers
+ .PHONY: bin/skopeo
+ bin/skopeo:
+- $(GO) build ${GO_DYN_FLAGS} ${SKOPEO_LDFLAGS} -gcflags "$(GOGCFLAGS)" -tags "$(BUILDTAGS)" -o $@ ./cmd/skopeo
++ $(GO) build $(GOBUILDFLAGS) ${GO_DYN_FLAGS} ${SKOPEO_LDFLAGS} -gcflags "$(GOGCFLAGS)" -tags "$(BUILDTAGS)" -o $@ ./cmd/skopeo
+ bin/skopeo.%:
+ GOOS=$(word 2,$(subst ., ,$@)) GOARCH=$(word 3,$(subst ., ,$@)) $(GO) build ${SKOPEO_LDFLAGS} -tags "containers_image_openpgp $(BUILDTAGS)" -o $@ ./cmd/skopeo
+ local-cross: bin/skopeo.darwin.amd64 bin/skopeo.linux.arm bin/skopeo.linux.arm64 bin/skopeo.windows.386.exe bin/skopeo.windows.amd64.exe
diff --git a/recipes-containers/skopeo/files/storage.conf b/recipes-containers/skopeo/files/storage.conf
deleted file mode 100644
index 818cfe8f..00000000
--- a/recipes-containers/skopeo/files/storage.conf
+++ /dev/null
@@ -1,133 +0,0 @@
-# This file is is the configuration file for all tools
-# that use the containers/storage library.
-# See man 5 containers-storage.conf for more information
-# The "container storage" table contains all of the server options.
-[storage]
-
-# Default Storage Driver
-driver = "overlay"
-
-# Temporary storage location
-runroot = "/var/run/containers/storage"
-
-# Primary Read/Write location of container storage
-graphroot = "/var/lib/containers/storage"
-
-[storage.options]
-# Storage options to be passed to underlying storage drivers
-
-# AdditionalImageStores is used to pass paths to additional Read/Only image stores
-# Must be comma separated list.
-additionalimagestores = [
-]
-
-# Size is used to set a maximum size of the container image. Only supported by
-# certain container storage drivers.
-size = ""
-
-# Path to an helper program to use for mounting the file system instead of mounting it
-# directly.
-#mount_program = "/usr/bin/fuse-overlayfs"
-
-# OverrideKernelCheck tells the driver to ignore kernel checks based on kernel version
-override_kernel_check = "true"
-
-# mountopt specifies comma separated list of extra mount options
-mountopt = "nodev"
-
-# Remap-UIDs/GIDs is the mapping from UIDs/GIDs as they should appear inside of
-# a container, to UIDs/GIDs as they should appear outside of the container, and
-# the length of the range of UIDs/GIDs. Additional mapped sets can be listed
-# and will be heeded by libraries, but there are limits to the number of
-# mappings which the kernel will allow when you later attempt to run a
-# container.
-#
-# remap-uids = 0:1668442479:65536
-# remap-gids = 0:1668442479:65536
-
-# Remap-User/Group is a name which can be used to look up one or more UID/GID
-# ranges in the /etc/subuid or /etc/subgid file. Mappings are set up starting
-# with an in-container ID of 0 and the a host-level ID taken from the lowest
-# range that matches the specified name, and using the length of that range.
-# Additional ranges are then assigned, using the ranges which specify the
-# lowest host-level IDs first, to the lowest not-yet-mapped container-level ID,
-# until all of the entries have been used for maps.
-#
-# remap-user = "storage"
-# remap-group = "storage"
-
-[storage.options.thinpool]
-# Storage Options for thinpool
-
-# autoextend_percent determines the amount by which pool needs to be
-# grown. This is specified in terms of % of pool size. So a value of 20 means
-# that when threshold is hit, pool will be grown by 20% of existing
-# pool size.
-# autoextend_percent = "20"
-
-# autoextend_threshold determines the pool extension threshold in terms
-# of percentage of pool size. For example, if threshold is 60, that means when
-# pool is 60% full, threshold has been hit.
-# autoextend_threshold = "80"
-
-# basesize specifies the size to use when creating the base device, which
-# limits the size of images and containers.
-# basesize = "10G"
-
-# blocksize specifies a custom blocksize to use for the thin pool.
-# blocksize="64k"
-
-# directlvm_device specifies a custom block storage device to use for the
-# thin pool. Required if you setup devicemapper.
-# directlvm_device = ""
-
-# directlvm_device_force wipes device even if device already has a filesystem.
-# directlvm_device_force = "True"
-
-# fs specifies the filesystem type to use for the base device.
-# fs="xfs"
-
-# log_level sets the log level of devicemapper.
-# 0: LogLevelSuppress 0 (Default)
-# 2: LogLevelFatal
-# 3: LogLevelErr
-# 4: LogLevelWarn
-# 5: LogLevelNotice
-# 6: LogLevelInfo
-# 7: LogLevelDebug
-# log_level = "7"
-
-# min_free_space specifies the min free space percent in a thin pool require for
-# new device creation to succeed. Valid values are from 0% - 99%.
-# Value 0% disables
-# min_free_space = "10%"
-
-# mkfsarg specifies extra mkfs arguments to be used when creating the base.
-# device.
-# mkfsarg = ""
-
-# use_deferred_removal marks devicemapper block device for deferred removal.
-# If the thinpool is in use when the driver attempts to remove it, the driver
-# tells the kernel to remove it as soon as possible. Note this does not free
-# up the disk space, use deferred deletion to fully remove the thinpool.
-# use_deferred_removal = "True"
-
-# use_deferred_deletion marks thinpool device for deferred deletion.
-# If the device is busy when the driver attempts to delete it, the driver
-# will attempt to delete device every 30 seconds until successful.
-# If the program using the driver exits, the driver will continue attempting
-# to cleanup the next time the driver is used. Deferred deletion permanently
-# deletes the device and all data stored in device will be lost.
-# use_deferred_deletion = "True"
-
-# xfs_nospace_max_retries specifies the maximum number of retries XFS should
-# attempt to complete IO when ENOSPC (no space) error is returned by
-# underlying storage device.
-# xfs_nospace_max_retries = "0"
-
-# If specified, use OSTree to deduplicate files with the overlay backend
-ostree_repo = ""
-
-# Set to skip a PRIVATE bind mount on the storage home directory. Only supported by
-# certain container storage drivers
-skip_mount_home = "false"
diff --git a/recipes-containers/skopeo/skopeo_git.bb b/recipes-containers/skopeo/skopeo_git.bb
index 05baefb3..5083b658 100644
--- a/recipes-containers/skopeo/skopeo_git.bb
+++ b/recipes-containers/skopeo/skopeo_git.bb
@@ -1,39 +1,46 @@
HOMEPAGE = "https://github.com/containers/skopeo"
SUMMARY = "Work with remote images registries - retrieving information, images, signing content"
LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=7e611105d3e369954840a6668c438584"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7e611105d3e369954840a6668c438584"
DEPENDS = " \
gpgme \
- multipath-tools \
+ libdevmapper \
+ lvm2 \
btrfs-tools \
glib-2.0 \
- ostree \
"
inherit go
-RDEPENDS_${PN} = " \
+COMPATIBLE_HOST = "^(?!mips).*"
+
+RDEPENDS:${PN} = " \
gpgme \
libgpg-error \
libassuan \
"
SRC_URI = " \
- git://github.com/containers/skopeo;branch=release-1.2 \
- file://storage.conf \
- file://registries.conf \
+ git://github.com/containers/skopeo;branch=release-1.14;protocol=https;destsuffix=git/src/github.com/containers/skopeo \
+ file://0001-makefile-add-GOBUILDFLAGS-to-go-build-call.patch \
"
-SRCREV = "e7880c4a8991966f16e367f085d42375ad70197e"
-PV = "v1.2.3-dev+git${SRCPV}"
+SRCREV = "1c2ab995059dd011aad74e2c37305d636ebd2675"
+PV = "v1.14.2+git"
GO_IMPORT = "import"
-S = "${WORKDIR}/git"
+S = "${WORKDIR}/git/src/github.com/containers/skopeo"
inherit goarch
inherit pkgconfig
+inherit container-host
+
+# https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2019-10214
+# https://github.com/containers/image/issues/654
+CVE_STATUS[CVE-2019-10214] = "fixed-version: This CVE was fixed in the container image go library skopeo is using."
+
# This disables seccomp and apparmor, which are on by default in the
# go package.
EXTRA_OEMAKE="BUILDTAGS=''"
@@ -41,27 +48,20 @@ EXTRA_OEMAKE="BUILDTAGS=''"
do_compile() {
export GOARCH="${TARGET_GOARCH}"
- # Setup vendor directory so that it can be used in GOPATH.
- #
- # Go looks in a src directory under any directory in GOPATH but riddler
- # uses 'vendor' instead of 'vendor/src'. We can fix this with a symlink.
- #
- # We also need to link in the ipallocator directory as that is not under
- # a src directory.
- ln -sfn . "${S}/src/import/vendor/src"
- mkdir -p "${S}/src/import/vendor/src/github.com/projectatomic/skopeo"
- ln -sfn "${S}/src/import/skopeo" "${S}/src/import/vendor/src/github.com/projectatomic/skopeo"
- ln -sfn "${S}/src/import/version" "${S}/src/import/vendor/src/github.com/projectatomic/skopeo/version"
- export GOPATH="${S}/src/import/vendor"
+ export GOPATH="${S}/src/import/.gopath:${S}/src/import/vendor:${STAGING_DIR_TARGET}/${prefix}/local/go:${WORKDIR}/git/"
+ cd ${S}
# Pass the needed cflags/ldflags so that cgo
# can find the needed headers files and libraries
export CGO_ENABLED="1"
export CFLAGS=""
export LDFLAGS=""
- export CGO_CFLAGS="${BUILDSDK_CFLAGS} --sysroot=${STAGING_DIR_TARGET}"
- export CGO_LDFLAGS="${BUILDSDK_LDFLAGS} --sysroot=${STAGING_DIR_TARGET}"
- cd ${S}/src/import
+ export CGO_CFLAGS="${TARGET_CFLAGS}"
+ export CGO_LDFLAGS="${TARGET_LDFLAGS}"
+
+ export GO111MODULE=off
+ export GOBUILDFLAGS="-trimpath"
+ export EXTRA_LDFLAGS="-s -w"
oe_runmake bin/skopeo
}
@@ -70,11 +70,22 @@ do_install() {
install -d ${D}/${sbindir}
install -d ${D}/${sysconfdir}/containers
- install ${S}/src/import/bin/skopeo ${D}/${sbindir}/
- install ${S}/src/import/default-policy.json ${D}/${sysconfdir}/containers/policy.json
+ install ${S}/bin/skopeo ${D}/${sbindir}/
+}
- install ${WORKDIR}/storage.conf ${D}/${sysconfdir}/containers/storage.conf
- install ${WORKDIR}/registries.conf ${D}/${sysconfdir}/containers/registries.conf
+do_install:append:class-native() {
+ create_cmdline_wrapper ${D}/${sbindir}/skopeo \
+ --policy ${sysconfdir}/containers/policy.json
+
+ create_wrapper ${D}/${sbindir}/skopeo.real \
+ LD_LIBRARY_PATH=${STAGING_LIBDIR_NATIVE}
+}
+
+do_install:append:class-nativesdk() {
+ create_cmdline_wrapper ${D}/${sbindir}/skopeo \
+ --policy ${sysconfdir}/containers/policy.json
}
-INSANE_SKIP_${PN} += "ldflags"
+INSANE_SKIP:${PN} += "ldflags already-stripped"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/recipes-containers/sloci-image/sloci-image/0001-sloci-image-fix-variant-quoting.patch b/recipes-containers/sloci-image/sloci-image/0001-sloci-image-fix-variant-quoting.patch
index 5cb35830..85aa6205 100644
--- a/recipes-containers/sloci-image/sloci-image/0001-sloci-image-fix-variant-quoting.patch
+++ b/recipes-containers/sloci-image/sloci-image/0001-sloci-image-fix-variant-quoting.patch
@@ -11,6 +11,8 @@ needing to figure out the quote escaping.
No changes in the output, except a properly quoted "variant"
when a variant is defined.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
sloci-image | 3 ++-
diff --git a/recipes-containers/sloci-image/sloci-image-native_git.bb b/recipes-containers/sloci-image/sloci-image_git.bb
index a68c6d9a..4bbf06e2 100644
--- a/recipes-containers/sloci-image/sloci-image-native_git.bb
+++ b/recipes-containers/sloci-image/sloci-image_git.bb
@@ -1,7 +1,7 @@
SUMMARY = "A simple CLI tool for packing rootfs into a single-layer OCI image"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=948cd8e59069fad992b0469af9ad7966"
-SRC_URI = "git://github.com/jirutka/sloci-image.git \
+SRC_URI = "git://github.com/jirutka/sloci-image.git;branch=master;protocol=https \
file://0001-sloci-image-fix-variant-quoting.patch \
"
@@ -9,9 +9,7 @@ SRC_URI = "git://github.com/jirutka/sloci-image.git \
DEPENDS = ""
SRCREV = "4015e49763e5a738026a5bbfcf32b38b5a4fa650"
-PV = "v0.1.0+git${SRCPV}"
-
-inherit native
+PV = "v0.1.0+git"
S = "${WORKDIR}/git"
@@ -25,3 +23,5 @@ do_install() {
}
CLEANBROKEN = "1"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/recipes-containers/tini/tini/0001-tini.c-a-function-declaration-without-a-prototype-is.patch b/recipes-containers/tini/tini/0001-tini.c-a-function-declaration-without-a-prototype-is.patch
new file mode 100644
index 00000000..8834f175
--- /dev/null
+++ b/recipes-containers/tini/tini/0001-tini.c-a-function-declaration-without-a-prototype-is.patch
@@ -0,0 +1,74 @@
+From 66d0b5fd94fafe1e15bf21a1b73618ca23de078f Mon Sep 17 00:00:00 2001
+From: Jose Quaresma <jose.quaresma@foundries.io>
+Date: Fri, 23 Sep 2022 16:31:33 +0000
+Subject: [PATCH] tini.c: a function declaration without a prototype is
+ deprecated in all versions of C
+
+| /srv/oe/build/tmp-lmp/work/corei7-64-lmp-linux/tini/0.19.0-r0/git/src/tini.c:150:18: error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes]
+| int isolate_child() {
+| ^
+| void
+| /srv/oe/build/tmp-lmp/work/corei7-64-lmp-linux/tini/0.19.0-r0/git/src/tini.c:395:14: error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes]
+| int parse_env() {
+| ^
+| void
+| /srv/oe/build/tmp-lmp/work/corei7-64-lmp-linux/tini/0.19.0-r0/git/src/tini.c:416:24: error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes]
+| int register_subreaper () {
+| ^
+| void
+| /srv/oe/build/tmp-lmp/work/corei7-64-lmp-linux/tini/0.19.0-r0/git/src/tini.c:434:19: error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes]
+| void reaper_check () {
+| ^
+| void
+| 4 errors generated.
+
+Upstream-Status: Submitted [https://github.com/krallin/tini/pull/198]
+
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
+---
+ src/tini.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/tini.c b/src/tini.c
+index 2c873f9..7914d3a 100644
+--- a/src/tini.c
++++ b/src/tini.c
+@@ -147,7 +147,7 @@ int restore_signals(const signal_configuration_t* const sigconf_ptr) {
+ return 0;
+ }
+
+-int isolate_child() {
++int isolate_child(void) {
+ // Put the child into a new process group.
+ if (setpgid(0, 0) < 0) {
+ PRINT_FATAL("setpgid failed: %s", strerror(errno));
+@@ -392,7 +392,7 @@ int parse_args(const int argc, char* const argv[], char* (**child_args_ptr_ptr)[
+ return 0;
+ }
+
+-int parse_env() {
++int parse_env(void) {
+ #if HAS_SUBREAPER
+ if (getenv(SUBREAPER_ENV_VAR) != NULL) {
+ subreaper++;
+@@ -413,7 +413,7 @@ int parse_env() {
+
+
+ #if HAS_SUBREAPER
+-int register_subreaper () {
++int register_subreaper (void) {
+ if (subreaper > 0) {
+ if (prctl(PR_SET_CHILD_SUBREAPER, 1)) {
+ if (errno == EINVAL) {
+@@ -431,7 +431,7 @@ int register_subreaper () {
+ #endif
+
+
+-void reaper_check () {
++void reaper_check (void) {
+ /* Check that we can properly reap zombies */
+ #if HAS_SUBREAPER
+ int bit = 0;
+--
+2.34.1
+
diff --git a/recipes-containers/tini/tini_0.19.0.bb b/recipes-containers/tini/tini_0.19.0.bb
index 62e285df..fd90f620 100644
--- a/recipes-containers/tini/tini_0.19.0.bb
+++ b/recipes-containers/tini/tini_0.19.0.bb
@@ -6,8 +6,9 @@ it to exit all the while reaping zombies and performing signal forwarding. "
SRCREV = "b9f42a0e7bb46efea0c9e3d8610c96ab53b467f8"
SRC_URI = " \
- git://github.com/krallin/tini.git \
+ git://github.com/krallin/tini.git;branch=master;protocol=https \
file://0001-Do-not-strip-the-output-binary-allow-yocto-to-do-thi.patch \
+ file://0001-tini.c-a-function-declaration-without-a-prototype-is.patch \
"
LICENSE = "MIT"
@@ -18,7 +19,7 @@ S = "${WORKDIR}/git"
BBCLASSEXTEND = "native"
# tini links with -static, so no PIE for us
-SECURITY_CFLAGS_pn-${PN} = "${SECURITY_NO_PIE_CFLAGS}"
+SECURITY_CFLAGS:pn-${PN} = "${SECURITY_NO_PIE_CFLAGS}"
inherit cmake
@@ -29,4 +30,4 @@ do_install() {
# Tini is the currently the provider for docker-init
PROVIDES += "docker-init"
-RPROVIDES_${PN} = "docker-init"
+RPROVIDES:${PN} = "docker-init"
diff --git a/recipes-containers/umoci/umoci_git.bb b/recipes-containers/umoci/umoci_git.bb
index 5273a70e..2ed0af7d 100644
--- a/recipes-containers/umoci/umoci_git.bb
+++ b/recipes-containers/umoci/umoci_git.bb
@@ -3,48 +3,83 @@ SUMMARY = "umoci modifies Open Container images"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57"
-RDEPENDS_${PN} = "skopeo"
-RDEPENDS_${PN}_class-native = ""
+RDEPENDS:${PN} = "skopeo"
+RDEPENDS:${PN}:class-native = ""
-SRCREV_umoci = "758044fc26ad65eb900143e90d1e22c2d6e4484d"
-SRC_URI = "git://github.com/opencontainers/umoci.git;branch=master;name=umoci;destsuffix=github.com/opencontainers/umoci \
+SRCREV_umoci = "33ec00665c66321f1b1f34ca7e6f370ac35c1233"
+SRC_URI = "git://github.com/opencontainers/umoci.git;branch=main;name=umoci;destsuffix=github.com/opencontainers/umoci;protocol=https \
"
-PV = "v0.4.7-dev+git${SRCPV}"
+PV = "v0.4.7+git"
S = "${WORKDIR}/github.com/opencontainers/umoci"
GO_IMPORT = "github.com/opencontainers/umoci"
inherit goarch
inherit go
+COMPATIBLE_HOST = "^(?!mips).*"
+
# This disables seccomp and apparmor, which are on by default in the
# go package.
EXTRA_OEMAKE="BUILDTAGS=''"
+
+do_compile:class-native () {
+ export GOARCH="${BUILD_GOARCH}"
+
+ # Pass the needed cflags/ldflags so that cgo can find the needed headers files and libraries
+ export CGO_ENABLED="1"
+ export CFLAGS="${BUILD_CFLAGS}"
+ export LDFLAGS="${BUILD_LDFLAGS}"
+ export CGO_CFLAGS="${BUILD_CFLAGS}"
+
+ # as of go 1.15.5, there are some flags the CGO doesn't like. Rather than
+ # clearing them all, we sed away the ones we don't want.
+ # export CGO_LDFLAGS="$(echo ${BUILD_LDFLAGS} | sed 's/-Wl,-O1//g' | sed 's/-Wl,--dynamic-linker.*?( \|$\)//g')"
+ export CC="${BUILD_CC}"
+ export LD="${BUILD_LD}"
+
+ export GOPATH="${WORKDIR}/git/"
+ export GO111MODULE=off
+
+ export STATIC_BUILD_FLAGS="-trimpath"
+
+ cd ${S}
+
+ # why static ? patchelf will be run on dynamic binaries and it breaks
+ # the executable (coredump)
+ # https://forum.snapcraft.io/t/patchelf-broke-my-binary/4928
+ # https://github.com/NixOS/patchelf/issues/146
+ oe_runmake umoci.static
+
+ # so the common install can find our binary
+ cp umoci.static umoci
+}
+
do_compile() {
- export GOARCH="${TARGET_GOARCH}"
- export GOPATH="${WORKDIR}/git/"
+ export GOARCH="${TARGET_GOARCH}"
+ export GOPATH="${WORKDIR}/git/"
- # Pass the needed cflags/ldflags so that cgo
- # can find the needed headers files and libraries
- export CGO_ENABLED="1"
- export CFLAGS=""
- export LDFLAGS=""
- export CGO_CFLAGS="${BUILDSDK_CFLAGS} --sysroot=${STAGING_DIR_TARGET}"
- export CGO_LDFLAGS="${BUILDSDK_LDFLAGS} --sysroot=${STAGING_DIR_TARGET}"
+ # Pass the needed cflags/ldflags so that cgo
+ # can find the needed headers files and libraries
+ export CGO_ENABLED="1"
+ export CFLAGS=""
+ export LDFLAGS=""
+ export CGO_CFLAGS="${TARGET_CFLAGS}"
+ export CGO_LDFLAGS="${TARGET_LDFLAGS}"
- export GO111MODULE=off
+ export GO111MODULE=off
- cd ${S}
+ export BUILD_FLAGS="-trimpath"
+ cd ${S}
- oe_runmake umoci
+ oe_runmake umoci
}
do_install() {
- install -d ${D}/${sbindir}
- install ${S}/umoci ${D}/${sbindir}
+ install -d ${D}/${sbindir}
+ install ${S}/umoci ${D}/${sbindir}
}
-INSANE_SKIP_${PN} += "ldflags already-stripped"
-
-BBCLASSEXTEND = "native"
+INSANE_SKIP:${PN} += "ldflags already-stripped"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/recipes-core/bind/bind_virtualization.inc b/recipes-core/bind/bind_virtualization.inc
index b8f0b3ff..a6e39049 100644
--- a/recipes-core/bind/bind_virtualization.inc
+++ b/recipes-core/bind/bind_virtualization.inc
@@ -1,4 +1,4 @@
-# Tell named not to bother listening on the IP address that lxc handles itself.
-do_install_append() {
- sed -i -e 's,^\( *options *{\)$,\1\n\t// lxc would take care of this address itself\n\tlisten-on { ! 10.0.3.1; any;};\n,' ${D}${sysconfdir}/bind/named.conf.options
+# Tell named not to bother listening on the IP address that lxc and libvirtd handles itself.
+do_install:append() {
+ sed -i -e 's,^\( *options *{\)$,\1\n\t// lxc and libvirtd would take care of this address itself\n\tlisten-on { ! 10.0.3.1; ! 192.168.122.1; any;};\n,' ${D}${sysconfdir}/bind/named.conf.options
}
diff --git a/recipes-core/busybox/busybox-initrd_1.33.0.bb b/recipes-core/busybox/busybox-initrd.bb
index 5ce5fa52..513ed135 100644
--- a/recipes-core/busybox/busybox-initrd_1.33.0.bb
+++ b/recipes-core/busybox/busybox-initrd.bb
@@ -1,4 +1,18 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/busybox-initrd:${COREBASE}/meta/recipes-core/busybox/busybox:${COREBASE}/meta/recipes-core/busybox/files:"
+FILESEXTRAPATHS:prepend := "${THISDIR}/busybox-initrd:${COREBASE}/meta/recipes-core/busybox/busybox:${COREBASE}/meta/recipes-core/busybox/files:"
+
+def get_busybox_pv(d):
+ import re
+ corebase = d.getVar('COREBASE')
+ bb_dir = os.path.join(corebase, 'meta', 'recipes-core', 'busybox')
+ if os.path.isdir(bb_dir):
+ re_bb_name = re.compile(r"busybox_([0-9.]*)\.bb")
+ for bb_file in os.listdir(bb_dir):
+ result = re_bb_name.match(bb_file)
+ if result:
+ return result.group(1)
+ bb.fatal("Cannot find busybox recipe in %s" % bb_dir)
+
+PV := "${@get_busybox_pv(d)}"
require recipes-core/busybox/busybox_${PV}.bb
@@ -18,4 +32,4 @@ SECURITY_STRINGFORMAT = ""
SYSROOT_DIRS += "/bin"
BUSYBOX_SPLIT_SUID = "0"
-FILES_${PN} += "${sysconfdir}/init.d/*"
+FILES:${PN} += "${sysconfdir}/init.d/*"
diff --git a/recipes-core/busybox/busybox_virtualization.inc b/recipes-core/busybox/busybox_virtualization.inc
index 15f19308..652f389d 100644
--- a/recipes-core/busybox/busybox_virtualization.inc
+++ b/recipes-core/busybox/busybox_virtualization.inc
@@ -1,4 +1,4 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/busybox:"
+FILESEXTRAPATHS:prepend := "${THISDIR}/busybox:"
SRC_URI += " \
file://lspci.cfg \
diff --git a/recipes-core/busybox/busybox_vmsep.inc b/recipes-core/busybox/busybox_vmsep.inc
index d4b1e6cc..566cd6d5 100644
--- a/recipes-core/busybox/busybox_vmsep.inc
+++ b/recipes-core/busybox/busybox_vmsep.inc
@@ -1,4 +1,4 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/busybox:"
+FILESEXTRAPATHS:prepend := "${THISDIR}/busybox:"
SRC_URI += " \
file://static.cfg \
"
diff --git a/recipes-core/initscripts/initscripts_virtualization.inc b/recipes-core/initscripts/initscripts_virtualization.inc
index 0600ab2a..db9c5535 100644
--- a/recipes-core/initscripts/initscripts_virtualization.inc
+++ b/recipes-core/initscripts/initscripts_virtualization.inc
@@ -1,4 +1,4 @@
-do_install_append() {
+do_install:append() {
echo >> ${D}${sysconfdir}/init.d/functions
echo success \(\) \{ >> ${D}${sysconfdir}/init.d/functions
diff --git a/recipes-core/kata-containers/kata-agent_git.bb b/recipes-core/kata-containers/kata-agent_git.bb
index 3632ee52..de28235c 100644
--- a/recipes-core/kata-containers/kata-agent_git.bb
+++ b/recipes-core/kata-containers/kata-agent_git.bb
@@ -5,10 +5,12 @@ LIC_FILES_CHKSUM = "file://src/github.com/kata-containers/agent/LICENSE;md5=86d3
GO_IMPORT = "github.com/kata-containers/agent"
SRCREV = "e03f7d7453fabffb17e1540f28666c26178d3cbf"
-SRC_URI = "git://${GO_IMPORT}.git \
+SRC_URI = "git://${GO_IMPORT}.git;branch=master;protocol=https \
"
-RDEPENDS_${PN}-dev_append = "bash"
+RDEPENDS:${PN}-dev:append = "bash"
+
+SKIP_RECIPE[kata-agent] ?= "kata containers are currently broken, patches accepted"
S = "${WORKDIR}/git"
@@ -36,4 +38,4 @@ do_install() {
deltask compile_ptest_base
-FILES_${PN} += "${systemd_unitdir}/*" \ No newline at end of file
+FILES:${PN} += "${systemd_unitdir}/*"
diff --git a/recipes-core/kata-containers/kata-proxy_git.bb b/recipes-core/kata-containers/kata-proxy_git.bb
index 8de0bfcf..d835e4d2 100644
--- a/recipes-core/kata-containers/kata-proxy_git.bb
+++ b/recipes-core/kata-containers/kata-proxy_git.bb
@@ -5,10 +5,13 @@ LIC_FILES_CHKSUM = "file://src/github.com/kata-containers/proxy/LICENSE;md5=86d3
GO_IMPORT = "github.com/kata-containers/proxy"
SRCREV = "1148847739f9a9f47b92e34e4f309dc109d4dba9"
-SRC_URI = "git://${GO_IMPORT}.git \
+SRC_URI = "git://${GO_IMPORT}.git;branch=master;protocol=https \
"
-RDEPENDS_${PN}-dev_append = "bash"
+
+SKIP_RECIPE[kata-proxy] ?= "kata containers are currently broken, patches accepted"
+
+RDEPENDS:${PN}-dev:append = "bash"
S = "${WORKDIR}/git"
diff --git a/recipes-core/kata-containers/kata-runtime/0001-makefile-allow-SKIP_GO_VERSION_CHECK-to-be-overriden.patch b/recipes-core/kata-containers/kata-runtime/0001-makefile-allow-SKIP_GO_VERSION_CHECK-to-be-overriden.patch
index b92abeb3..dde63478 100644
--- a/recipes-core/kata-containers/kata-runtime/0001-makefile-allow-SKIP_GO_VERSION_CHECK-to-be-overriden.patch
+++ b/recipes-core/kata-containers/kata-runtime/0001-makefile-allow-SKIP_GO_VERSION_CHECK-to-be-overriden.patch
@@ -3,6 +3,8 @@ From: Bruce Ashfield <bruce.ashfield@gmail.com>
Date: Wed, 7 Oct 2020 23:29:52 -0400
Subject: [PATCH] makefile: allow SKIP_GO_VERSION_CHECK to be overriden
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
Makefile | 2 +-
diff --git a/recipes-core/kata-containers/kata-runtime_git.bb b/recipes-core/kata-containers/kata-runtime_git.bb
index 403d552e..c0d7c4cb 100644
--- a/recipes-core/kata-containers/kata-runtime_git.bb
+++ b/recipes-core/kata-containers/kata-runtime_git.bb
@@ -5,20 +5,22 @@ LIC_FILES_CHKSUM = "file://src/github.com/kata-containers/runtime/LICENSE;md5=86
GO_IMPORT = "github.com/kata-containers/runtime"
SRCREV = "04c77eb20e9bd603cab5c711bcbe7c69db58b040"
-SRC_URI = "git://${GO_IMPORT}.git \
+SRC_URI = "git://${GO_IMPORT}.git;branch=master;protocol=https \
file://0001-makefile-allow-SKIP_GO_VERSION_CHECK-to-be-overriden.patch \
"
-RDEPENDS_${PN}-dev_append = "bash"
+RDEPENDS:${PN}-dev:append = "bash"
CONTAINER_KERNEL ?= ""
CONTAINER_INITRD ?= ""
-RDEPENDS_${PN} = " \
+RDEPENDS:${PN} = " \
qemu \
${CONTAINER_KERNEL} \
${CONTAINER_INITRD} \
"
DEPENDS += "yq-native"
+SKIP_RECIPE[kata-runtime] ?= "kata containers are currently broken, patches accepted"
+
S = "${WORKDIR}/git"
inherit go
@@ -55,6 +57,6 @@ do_install() {
# fork/exec /usr/libexec/kata-containers/kata-proxy: no such file or directory
}
-FILES_${PN} += "${datadir}/defaults/kata-containers/*"
+FILES:${PN} += "${datadir}/defaults/kata-containers/*"
deltask compile_ptest_base
diff --git a/recipes-core/kata-containers/kata-shim_git.bb b/recipes-core/kata-containers/kata-shim_git.bb
index fb55a8e7..8a7cb78a 100644
--- a/recipes-core/kata-containers/kata-shim_git.bb
+++ b/recipes-core/kata-containers/kata-shim_git.bb
@@ -5,10 +5,12 @@ LIC_FILES_CHKSUM = "file://src/github.com/kata-containers/shim/LICENSE;md5=86d3f
GO_IMPORT = "github.com/kata-containers/shim"
SRCREV = "bcc35aeca3ef6fa0976005c9e93525906aefed2f"
-SRC_URI = "git://${GO_IMPORT}.git \
+SRC_URI = "git://${GO_IMPORT}.git;branch=master;protocol=https \
"
-RDEPENDS_${PN}-dev_append = "bash"
+SKIP_RECIPE[kata-shim] ?= "kata containers are currently broken, patches accepted"
+
+RDEPENDS:${PN}-dev:append = "bash"
S = "${WORKDIR}/git"
diff --git a/recipes-core/libxcrypt/libxcrypt_%.bbappend b/recipes-core/libxcrypt/libxcrypt_%.bbappend
index 0b4fbb3d..55e453d9 100644
--- a/recipes-core/libxcrypt/libxcrypt_%.bbappend
+++ b/recipes-core/libxcrypt/libxcrypt_%.bbappend
@@ -1,4 +1,4 @@
# if vmsep is in distro features, we need a static libxycryp, so we can build
# a static busybox. The end result of this is:
-# EXTRA_OECONF_remove = "--disable-static"
-EXTRA_OECONF_remove = "${@bb.utils.contains('DISTRO_FEATURES', 'vmsep', '--disable-static', '', d)}"
+# EXTRA_OECONF:remove = "--disable-static"
+EXTRA_OECONF:remove = "${@bb.utils.contains('DISTRO_FEATURES', 'vmsep', '--disable-static', '', d)}"
diff --git a/recipes-core/packagegroups/packagegroup-container.bb b/recipes-core/packagegroups/packagegroup-container.bb
index d425ac58..4b1ad009 100644
--- a/recipes-core/packagegroups/packagegroup-container.bb
+++ b/recipes-core/packagegroups/packagegroup-container.bb
@@ -4,43 +4,46 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
inherit packagegroup
+COMPATIBLE_HOST = "^(?!(mips|riscv)).*"
+
PACKAGES = "\
packagegroup-container \
packagegroup-lxc \
packagegroup-docker \
packagegroup-oci \
- packagegroup-podman \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'seccomp ipv6', \
+ 'packagegroup-podman', '', d)} \
packagegroup-containerd \
"
# everything and the kitchen sink, used for building/installing
# many things at once.
-RDEPENDS_${PN} = " \
+RDEPENDS:${PN} = " \
packagegroup-lxc \
packagegroup-docker \
packagegroup-oci \
"
-RDEPENDS_packagegroup-lxc = " \
+RDEPENDS:packagegroup-lxc = " \
lxc \
"
-RDEPENDS_packagegroup-docker = " \
+RDEPENDS:packagegroup-docker = " \
docker \
"
-RDEPENDS_packagegroup-podman = " \
+RDEPENDS:packagegroup-podman = " \
podman \
"
-RDEPENDS_packagegroup-oci = " \
- virtual/runc \
+RDEPENDS:packagegroup-oci = " \
+ virtual-runc \
oci-systemd-hook \
oci-runtime-tools \
oci-image-tools \
"
-RDEPENDS_packagegroup-containerd = " \
- virtual/containerd \
+RDEPENDS:packagegroup-containerd = " \
+ virtual-containerd \
"
diff --git a/recipes-core/packagegroups/packagegroup-kubernetes.bb b/recipes-core/packagegroups/packagegroup-kubernetes.bb
index 237e72e8..d518fc15 100644
--- a/recipes-core/packagegroups/packagegroup-kubernetes.bb
+++ b/recipes-core/packagegroups/packagegroup-kubernetes.bb
@@ -4,6 +4,8 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
inherit packagegroup
+COMPATIBLE_HOST = "(x86_64|arm|aarch64).*-linux"
+
# k3s has this restriction
inherit features_check
REQUIRED_DISTRO_FEATURES ?= "seccomp"
@@ -18,26 +20,29 @@ PACKAGES = "\
KUBERNETES_CRI ?= "containerd"
-RDEPENDS_packagegroup-kubernetes-base = " \
+RDEPENDS:packagegroup-kubernetes-base = " \
packagegroup-${KUBERNETES_CRI} \
packagegroup-oci \
"
-RDEPENDS_packagegroup-k8s-host = " \
+RDEPENDS:packagegroup-k8s-host = " \
packagegroup-kubernetes-base \
+ kubernetes \
"
-RDEPENDS_packagegroup-k8s-node = " \
+RDEPENDS:packagegroup-k8s-node = " \
packagegroup-kubernetes-base \
+ kubeadm \
+ kubernetes-misc \
"
-RDEPENDS_packagegroup-k3s-host = " \
+RDEPENDS:packagegroup-k3s-host = " \
packagegroup-kubernetes-base \
k3s-server \
k3s-cni \
"
-RDEPENDS_packagegroup-k3s-node = " \
+RDEPENDS:packagegroup-k3s-node = " \
packagegroup-kubernetes-base \
k3s-agent \
k3s-cni \
diff --git a/recipes-core/runv/runv_git.bb b/recipes-core/runv/runv_git.bb
index ef94f096..73cd81a6 100644
--- a/recipes-core/runv/runv_git.bb
+++ b/recipes-core/runv/runv_git.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "Hypervisor-based Runtime for OCI"
SRCREV_runv = "b360a686abc6c6e896382990ef1b93ef07c7a677"
SRC_URI = "\
- git://github.com/hyperhq/runv.git;nobranch=1;name=runv \
+ git://github.com/hyperhq/runv.git;nobranch=1;name=runv;protocol=https \
"
LICENSE = "Apache-2.0"
@@ -19,10 +19,16 @@ inherit goarch
inherit pkgconfig
inherit autotools-brokensep
+# accord with qemu
+COMPATIBLE_HOST:mipsarchn32 = "null"
+COMPATIBLE_HOST:mipsarchn64 = "null"
+COMPATIBLE_HOST:riscv32 = "null"
+COMPATIBLE_HOST:powerpc = "null"
+
PACKAGECONFIG[xen] = "--with-xen,--without-xen,"
AUTOTOOLS_SCRIPT_PATH = "${S}/src/import/"
-RDEPENDS_${PN} += " qemu hyperstart"
+RDEPENDS:${PN} += " qemu hyperstart"
do_compile() {
export GOARCH="${TARGET_GOARCH}"
@@ -76,6 +82,6 @@ do_install() {
deltask compile_ptest_base
-FILES_${PN} += "/usr/local/bin/*"
+FILES:${PN} += "/usr/local/bin/*"
-INSANE_SKIP_${PN} += "ldflags already-stripped"
+INSANE_SKIP:${PN} += "ldflags already-stripped"
diff --git a/recipes-core/runx/runx/0001-make-initrd-allow-externally-provided-busybox.patch b/recipes-core/runx/runx/0001-make-initrd-allow-externally-provided-busybox.patch
index 3c7e97c2..3eaa4bf4 100644
--- a/recipes-core/runx/runx/0001-make-initrd-allow-externally-provided-busybox.patch
+++ b/recipes-core/runx/runx/0001-make-initrd-allow-externally-provided-busybox.patch
@@ -3,6 +3,8 @@ From: Bruce Ashfield <bruce.ashfield@gmail.com>
Date: Fri, 26 Mar 2021 10:55:49 -0400
Subject: [PATCH] make-initrd: allow externally provided busybox
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
initrd/make-initrd | 24 ++++++++++++++++++++----
diff --git a/recipes-core/runx/runx/0001-make-kernel-bump-to-v5.4.104-for-gcc10-fixes.patch b/recipes-core/runx/runx/0001-make-kernel-bump-to-v5.4.104-for-gcc10-fixes.patch
index 98c9bcfd..c6f4443e 100644
--- a/recipes-core/runx/runx/0001-make-kernel-bump-to-v5.4.104-for-gcc10-fixes.patch
+++ b/recipes-core/runx/runx/0001-make-kernel-bump-to-v5.4.104-for-gcc10-fixes.patch
@@ -3,6 +3,8 @@ From: Bruce Ashfield <bruce.ashfield@gmail.com>
Date: Fri, 26 Mar 2021 10:15:24 -0400
Subject: [PATCH] make-kernel: bump to v5.4.104 for gcc10+ fixes
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
kernel/make-kernel | 2 +-
diff --git a/recipes-core/runx/runx/0001-make-kernel-cross-compilation-tweaks.patch b/recipes-core/runx/runx/0001-make-kernel-cross-compilation-tweaks.patch
index 2821b61b..798f616a 100644
--- a/recipes-core/runx/runx/0001-make-kernel-cross-compilation-tweaks.patch
+++ b/recipes-core/runx/runx/0001-make-kernel-cross-compilation-tweaks.patch
@@ -3,6 +3,8 @@ From: Bruce Ashfield <bruce.ashfield@xilinx.com>
Date: Mon, 16 Dec 2019 20:42:04 -0800
Subject: [PATCH] make-kernel: cross-compilation tweaks
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@xilinx.com>
---
kernel/make-kernel | 41 +++++++++++++++++++++++++++++++++--------
diff --git a/recipes-core/runx/runx_git.bb b/recipes-core/runx/runx_git.bb
index 89783a0e..831360ba 100644
--- a/recipes-core/runx/runx_git.bb
+++ b/recipes-core/runx/runx_git.bb
@@ -8,7 +8,7 @@ KERNEL_SRC_VER="linux-5.4"
KERNEL_URL_VER="v5.x"
SRC_URI = "\
- git://github.com/lf-edge/runx;nobranch=1;name=runx \
+ git://github.com/lf-edge/runx;nobranch=1;name=runx;protocol=https \
https://www.kernel.org/pub/linux/kernel/${KERNEL_URL_VER}/${KERNEL_SRC_VER}.tar.xz;destsuffix=git/kernel/build \
file://0001-make-kernel-cross-compilation-tweaks.patch \
file://0001-make-kernel-bump-to-v5.4.104-for-gcc10-fixes.patch \
@@ -41,9 +41,9 @@ DEPENDS += "openssl-native coreutils-native util-linux-native xz-native bc-nativ
DEPENDS += "elfutils-native"
DEPENDS += "qemu-native bison-native"
-RDEPENDS_${PN} += " jq bash"
-RDEPENDS_${PN} += " xen-tools-xl go-build socat daemonize"
-RDEPENDS_${PN} += " qemu-system-i386 ca-certificates qemu qemu-keymaps"
+RDEPENDS:${PN} += " jq bash"
+RDEPENDS:${PN} += " xen-tools-xl go-build socat daemonize"
+RDEPENDS:${PN} += " qemu-system-i386 ca-certificates qemu qemu-keymaps"
RUNX_USE_INTERNAL_BUSYBOX ?= ""
@@ -120,7 +120,7 @@ do_install() {
deltask compile_ptest_base
-FILES_${PN} += "${bindir}/* ${datadir}/runX/*"
+FILES:${PN} += "${bindir}/* ${datadir}/runX/*"
INHIBIT_PACKAGE_STRIP = "1"
-INSANE_SKIP_${PN} += "ldflags already-stripped"
+INSANE_SKIP:${PN} += "ldflags already-stripped"
diff --git a/recipes-core/sysvinit/sysvinit-inittab_virtualization.inc b/recipes-core/sysvinit/sysvinit-inittab_virtualization.inc
index 9e796efd..bf52da0e 100644
--- a/recipes-core/sysvinit/sysvinit-inittab_virtualization.inc
+++ b/recipes-core/sysvinit/sysvinit-inittab_virtualization.inc
@@ -1,9 +1,9 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI += "file://getty-wrapper"
-do_install_append() {
+do_install:append() {
install -d ${D}${base_sbindir}
install -m 0755 ${WORKDIR}/getty-wrapper ${D}${base_sbindir}/getty-wrapper
}
-FILES_${PN} += "${base_sbindir}/getty-wrapper"
+FILES:${PN} += "${base_sbindir}/getty-wrapper"
diff --git a/recipes-core/sysvinit/sysvinit-inittab_xen.inc b/recipes-core/sysvinit/sysvinit-inittab_xen.inc
index de0af20b..724f47dc 100644
--- a/recipes-core/sysvinit/sysvinit-inittab_xen.inc
+++ b/recipes-core/sysvinit/sysvinit-inittab_xen.inc
@@ -1,4 +1,10 @@
-do_install_append() {
- echo "" >> ${D}${sysconfdir}/inittab
- echo "X0:12345:respawn:${base_sbindir}/getty-wrapper 115200 hvc0" >> ${D}${sysconfdir}/inittab
+
+
+do_install:append() {
+ # if SERIAL_CONSOLES contains hvc0, it is already added in inittab so do
+ # not add it twice
+ if echo "${SERIAL_CONSOLES}" | grep -vq "hvc0"; then
+ echo "" >> ${D}${sysconfdir}/inittab
+ echo "X0:12345:respawn:${base_sbindir}/getty-wrapper 115200 hvc0" >> ${D}${sysconfdir}/inittab
+ fi
}
diff --git a/recipes-demo/helloworld-flask/helloworld-flask/flask-app b/recipes-demo/helloworld-flask/helloworld-flask/flask-app
new file mode 100755
index 00000000..15ecde93
--- /dev/null
+++ b/recipes-demo/helloworld-flask/helloworld-flask/flask-app
@@ -0,0 +1,21 @@
+#!/usr/bin/python3
+
+# Example flask application for containerization
+#
+# Copyright (C) 2021 Bruce Ashfield <bruce.ashfield@gmail.com>
+# License: MIT (see COPYING.MIT at the root of the repository for terms)
+
+from flask import Flask
+
+app = Flask(__name__)
+
+@app.route('/yocto/', methods=['GET', 'POST'])
+def welcome():
+ return "Hello from Yocto!"
+
+@app.route('/oe/', methods=['GET', 'POST'])
+def welcometooe():
+ return "Hello from OpenEmbedded!"
+
+if __name__ == '__main__':
+ app.run(host='0.0.0.0', port=9000)
diff --git a/recipes-demo/helloworld-flask/helloworld-flask/flask-app-service.yaml b/recipes-demo/helloworld-flask/helloworld-flask/flask-app-service.yaml
new file mode 100644
index 00000000..f2c8bbe2
--- /dev/null
+++ b/recipes-demo/helloworld-flask/helloworld-flask/flask-app-service.yaml
@@ -0,0 +1,32 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: @NAME@
+spec:
+ selector:
+ matchLabels:
+ app: @APPNAME@
+ replicas: 1
+ template:
+ metadata:
+ labels:
+ app: @APPNAME@
+ spec:
+ containers:
+ - name: @CONTAINERNAME@
+ image: @CONTAINERIMAGE@
+ ports:
+ - containerPort: @CONTAINERPORT@
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: yocto-flask-service
+spec:
+ ports:
+ - port: @EXTERNALPORT@
+ targetPort: @CONTAINERPORT@
+ name: http
+ selector:
+ app: @APPNAME@
+
diff --git a/recipes-demo/helloworld-flask/helloworld-flask/flask-app.yaml b/recipes-demo/helloworld-flask/helloworld-flask/flask-app.yaml
new file mode 100644
index 00000000..85c0362e
--- /dev/null
+++ b/recipes-demo/helloworld-flask/helloworld-flask/flask-app.yaml
@@ -0,0 +1,12 @@
+apiVersion: v1
+kind: Pod
+metadata:
+ name: @NAME@
+spec:
+ containers:
+ - name: @CONTAINERNAME@
+ image: @CONTAINERIMAGE@
+ ports:
+ - containerPort: @CONTAINERPORT@
+
+
diff --git a/recipes-demo/helloworld-flask/helloworld-flask_0.1.bb b/recipes-demo/helloworld-flask/helloworld-flask_0.1.bb
new file mode 100644
index 00000000..896e45fd
--- /dev/null
+++ b/recipes-demo/helloworld-flask/helloworld-flask_0.1.bb
@@ -0,0 +1,44 @@
+DESCRIPTION = "Demo flask application"
+HOMEPAGE = "https://yoctoproject.org"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+SRC_URI = "file://flask-app \
+ file://flask-app.yaml \
+ file://flask-app-service.yaml"
+
+DEPLOY_TYPE ?= "pod"
+
+NAME ?= "demo"
+APPNAME ?= "yocto-app"
+CONTAINERNAME ?= "yocto-container"
+CONTAINERIMAGE ?= "zeddii/app-container:latest"
+CONTAINERPORT ?= "9000"
+EXTERNALPORT ?= "10000"
+
+do_install() {
+
+ for tgt in flask-app.yaml flask-app-service.yaml; do
+ sed -i 's%\@NAME\@%${NAME}%g' ${WORKDIR}/$tgt
+ sed -i 's%\@APPNAME\@%${APPNAME}%g' ${WORKDIR}/$tgt
+ sed -i 's%\@CONTAINERNAME\@%${CONTAINERNAME}%g' ${WORKDIR}/$tgt
+ sed -i 's%\@CONTAINERIMAGE\@%${CONTAINERIMAGE}%g' ${WORKDIR}/$tgt
+ sed -i 's%\@CONTAINERPORT\@%${CONTAINERPORT}%g' ${WORKDIR}/$tgt
+ sed -i 's%\@EXTERNALPORT\@%${EXTERNALPORT}%g' ${WORKDIR}/$tgt
+ done
+
+ install -d ${D}${bindir}/
+ install -m 755 ${WORKDIR}/flask-app ${D}${bindir}/
+
+ install -d ${D}${sysconfdir}/deploy
+ install -m 644 ${WORKDIR}/flask-app.yaml ${D}${sysconfdir}/
+ install -m 644 ${WORKDIR}/flask-app-service.yaml ${D}${sysconfdir}/
+}
+
+RDEPENDS:${PN} += "python3-core python3-flask"
+
+PACKAGES:prepend = "${PN}-deploy "
+FILES:${PN}-deploy = "${sysconfdir}/*"
+
+# this rdepends should be conditional on a debug PACKAGECONFIG
+# RDEPENDS:${PN} += "busybox"
diff --git a/recipes-demo/images/app-container-curl.bb b/recipes-demo/images/app-container-curl.bb
new file mode 100644
index 00000000..51451300
--- /dev/null
+++ b/recipes-demo/images/app-container-curl.bb
@@ -0,0 +1,46 @@
+SUMMARY = "Curl Application container image"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+IMAGE_FSTYPES = "container oci"
+inherit image
+inherit image-oci
+
+IMAGE_FEATURES = ""
+IMAGE_LINGUAS = ""
+NO_RECOMMENDATIONS = "1"
+
+IMAGE_INSTALL = " \
+ base-files \
+ base-passwd \
+ netbase \
+ ${CONTAINER_SHELL} \
+"
+
+# If the following is configured in local.conf (or the distro):
+# PACKAGE_EXTRA_ARCHS:append = " container-dummy-provides"
+#
+# it has been explicitly # indicated that we don't want or need a shell, so we'll
+# add the dummy provides.
+#
+# This is required, since there are postinstall scripts in base-files and base-passwd
+# that reference /bin/sh and we'll get a rootfs error if there's no shell or no dummy
+# provider.
+CONTAINER_SHELL ?= "${@bb.utils.contains('PACKAGE_EXTRA_ARCHS', 'container-dummy-provides', 'container-dummy-provides', 'busybox', d)}"
+
+# Allow build with or without a specific kernel
+IMAGE_CONTAINER_NO_DUMMY = "1"
+
+# Workaround /var/volatile for now
+ROOTFS_POSTPROCESS_COMMAND += "rootfs_fixup_var_volatile ; "
+rootfs_fixup_var_volatile () {
+ install -m 1777 -d ${IMAGE_ROOTFS}/${localstatedir}/volatile/tmp
+ install -m 755 -d ${IMAGE_ROOTFS}/${localstatedir}/volatile/log
+}
+
+OCI_IMAGE_ENTRYPOINT = "curl"
+OCI_IMAGE_TAG = "easy"
+OCI_IMAGE_ENTRYPOINT_ARGS = "http://localhost:80"
+CONTAINER_SHELL = "busybox"
+
+IMAGE_INSTALL:append = "curl"
diff --git a/recipes-demo/images/app-container.bb b/recipes-demo/images/app-container.bb
new file mode 100644
index 00000000..22d2ab9f
--- /dev/null
+++ b/recipes-demo/images/app-container.bb
@@ -0,0 +1,46 @@
+SUMMARY = "Basic Application container image"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+#include container-base.bb
+
+OCI_IMAGE_ENTRYPOINT = "/usr/bin/flask-app"
+CONTAINER_SHELL = "busybox"
+
+IMAGE_INSTALL:append = "helloworld-flask"
+
+IMAGE_FSTYPES = "container oci"
+inherit image
+inherit image-oci
+
+IMAGE_FEATURES = ""
+IMAGE_LINGUAS = ""
+NO_RECOMMENDATIONS = "1"
+
+IMAGE_INSTALL = " \
+ base-files \
+ base-passwd \
+ netbase \
+ ${CONTAINER_SHELL} \
+"
+
+# If the following is configured in local.conf (or the distro):
+# PACKAGE_EXTRA_ARCHS:append = " container-dummy-provides"
+#
+# it has been explicitly # indicated that we don't want or need a shell, so we'll
+# add the dummy provides.
+#
+# This is required, since there are postinstall scripts in base-files and base-passwd
+# that reference /bin/sh and we'll get a rootfs error if there's no shell or no dummy
+# provider.
+CONTAINER_SHELL ?= "${@bb.utils.contains('PACKAGE_EXTRA_ARCHS', 'container-dummy-provides', 'container-dummy-provides', 'busybox', d)}"
+
+# Allow build with or without a specific kernel
+IMAGE_CONTAINER_NO_DUMMY = "1"
+
+# Workaround /var/volatile for now
+ROOTFS_POSTPROCESS_COMMAND += "rootfs_fixup_var_volatile ; "
+rootfs_fixup_var_volatile () {
+ install -m 1777 -d ${IMAGE_ROOTFS}/${localstatedir}/volatile/tmp
+ install -m 755 -d ${IMAGE_ROOTFS}/${localstatedir}/volatile/log
+}
diff --git a/recipes-devtools/go/compose-file_git.bb b/recipes-devtools/go/compose-file_git.bb
index bcf8c3d2..7fedc407 100644
--- a/recipes-devtools/go/compose-file_git.bb
+++ b/recipes-devtools/go/compose-file_git.bb
@@ -7,10 +7,10 @@ LIC_FILES_CHKSUM = "file://src/${PKG_NAME}/LICENSE;md5=9cd86830b557232ce55e2a6b4
SRCNAME = "compose-file"
PKG_NAME = "github.com/aanand/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git;destsuffix=git/src/${PKG_NAME}"
+SRC_URI = "git://${PKG_NAME}.git;destsuffix=git/src/${PKG_NAME};branch=master;protocol=https"
SRCREV = "a3e58764f50597b6217fec07e9bff7225c4a1719"
-PV = "3.0+git${SRCPV}"
+PV = "3.0+git"
S = "${WORKDIR}/git"
@@ -36,6 +36,6 @@ go_compose_file_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
-CLEANBROKEN = "1" \ No newline at end of file
+CLEANBROKEN = "1"
diff --git a/recipes-devtools/go/go-build/0001-build-use-instead-of-go.patch b/recipes-devtools/go/go-build/0001-build-use-instead-of-go.patch
index 873d7ab4..eb634f3d 100644
--- a/recipes-devtools/go/go-build/0001-build-use-instead-of-go.patch
+++ b/recipes-devtools/go/go-build/0001-build-use-instead-of-go.patch
@@ -1,11 +1,13 @@
From 4db28c98481056c41097f808335c37e8517fe485 Mon Sep 17 00:00:00 2001
From: Bruce Ashfield <bruce.ashfield@gmail.com>
Date: Fri, 7 Aug 2020 23:39:18 -0400
-Subject: [PATCH] build: use instead of 'go'
+Subject: [PATCH] build: use ${GO} instead of 'go'
While we can get away with 'go' if the host/target arch match, the
new go-binary toolchain blows up in a cross compile situation.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
gobuild/Makefile | 4 ++--
@@ -24,7 +26,7 @@ Index: git/src/import/gobuild/Makefile
${BIN}: ${GODEPPATHS} $(filter %/$@.go, ${MAIN})
- GOPATH=${GOPATH} ${ARCH} go build $(filter %/$@.go, ${MAIN})
-+ GOPATH=${GOPATH} ${ARCH} ${GO} build $(filter %/$@.go, ${MAIN})
++ GOPATH=${GOPATH} ${ARCH} ${GO} build -trimpath $(filter %/$@.go, ${MAIN})
clean:
rm -f ${BIN}
diff --git a/recipes-devtools/go/go-build_git.bb b/recipes-devtools/go/go-build_git.bb
index 64a1c95b..75ea40a8 100644
--- a/recipes-devtools/go/go-build_git.bb
+++ b/recipes-devtools/go/go-build_git.bb
@@ -3,9 +3,12 @@ SUMMARY = "console for runx"
DESCRIPTION = "Xen Runtime for OCI"
SRCREV_runx = "f24efd33fb18469e9cfe4d1bfe8e2c90ec8c4e93"
+SRCREV_runc = "1e7bb5b773162b57333d57f612fd72e3f8612d94"
+SRCREV_FORMAT = "runx_runc"
SRC_URI = "\
- git://github.com/lf-edge/runx;nobranch=1;name=runx \
+ git://github.com/lf-edge/runx;nobranch=1;name=runx;protocol=https \
+ git://github.com/opencontainers/runc;branch=release-1.1;name=runc;protocol=https;destsuffix=git/src/import/gobuild/go/src/github.com/opencontainers/runc \
file://0001-build-use-instead-of-go.patch \
"
SRC_URI[md5sum] = "0d701ac1e2a67d47ce7127432df2c32b"
@@ -26,7 +29,7 @@ inherit pkgconfig
GO_IMPORT = "import"
inherit go
-RDEPENDS_${PN}-dev = "bash"
+RDEPENDS:${PN}-dev = "bash"
do_compile() {
@@ -55,4 +58,4 @@ do_install() {
install -m 755 ${B}/src/import/gobuild/serial_fd_handler ${D}${datadir}/runX/
}
-FILES_${PN} += "${datadir}/runX/*"
+FILES:${PN} += "${datadir}/runX/*"
diff --git a/recipes-devtools/go/go-capability_git.bb b/recipes-devtools/go/go-capability_git.bb
index 8524af62..c2562474 100644
--- a/recipes-devtools/go/go-capability_git.bb
+++ b/recipes-devtools/go/go-capability_git.bb
@@ -7,10 +7,12 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=a7304f5073e7be4ba7bffabbf9f2bbca"
SRCNAME = "gocapability"
PKG_NAME = "github.com/syndtr/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git"
+SRC_URI = "git://${PKG_NAME}.git;branch=master;protocol=https"
SRCREV = "2c00daeb6c3b45114c80ac44119e7b8801fdd852"
-PV = "0.0+git${SRCPV}"
+PV = "0.0+git"
+
+inherit meta-virt-depreciated-warning
S = "${WORKDIR}/git"
@@ -26,4 +28,4 @@ go_capability_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
diff --git a/recipes-devtools/go/go-cli_git.bb b/recipes-devtools/go/go-cli_git.bb
index 434594c9..8a4992bd 100644
--- a/recipes-devtools/go/go-cli_git.bb
+++ b/recipes-devtools/go/go-cli_git.bb
@@ -7,13 +7,15 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=ed9b539ed65d73926f30ff1f1587dc44"
SRCNAME = "cli"
PKG_NAME = "github.com/codegangsta/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git"
+SRC_URI = "git://${PKG_NAME}.git;branch=master;protocol=https"
SRCREV = "27ecc97192df1bf053a22b04463f2b51b8b8373e"
-PV = "1.1.0+git${SRCPV}"
+PV = "1.1.0+git"
S = "${WORKDIR}/git"
+inherit meta-virt-depreciated-warning
+
do_install() {
install -d ${D}${prefix}/local/go/src/${PKG_NAME}
cp -r ${S}/* ${D}${prefix}/local/go/src/${PKG_NAME}/
@@ -26,4 +28,4 @@ go_cli_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
diff --git a/recipes-devtools/go/go-connections_git.bb b/recipes-devtools/go/go-connections_git.bb
index 5d071b0a..33bb83bf 100644
--- a/recipes-devtools/go/go-connections_git.bb
+++ b/recipes-devtools/go/go-connections_git.bb
@@ -7,13 +7,15 @@ LIC_FILES_CHKSUM = "file://src/${PKG_NAME}/LICENSE;md5=04424bc6f5a5be60691b9824d
SRCNAME = "go-connections"
PKG_NAME = "github.com/docker/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git;destsuffix=git/src/${PKG_NAME}"
+SRC_URI = "git://${PKG_NAME}.git;destsuffix=git/src/${PKG_NAME};branch=master;protocol=https"
SRCREV = "4ccf312bf1d35e5dbda654e57a9be4c3f3cd0366"
-PV = "0.2.1+git${SRCPV}"
+PV = "0.2.1+git"
S = "${WORKDIR}/git"
+inherit meta-virt-depreciated-warning
+
# NO-OP the do compile rule because this recipe is source only.
do_compile() {
}
@@ -36,4 +38,4 @@ go_connections_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
diff --git a/recipes-devtools/go/go-context_git.bb b/recipes-devtools/go/go-context_git.bb
index 15f6a8dd..02f57875 100644
--- a/recipes-devtools/go/go-context_git.bb
+++ b/recipes-devtools/go/go-context_git.bb
@@ -2,17 +2,23 @@ DESCRIPTION = "A golang registry for global request variables."
HOMEPAGE = "https://github.com/gorilla/context"
SECTION = "devel/go"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c50f6bd9c1e15ed0bad3bea18e3c1b7f"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c30eee78985cf2584cded5f89ba3d787"
SRCNAME = "context"
PKG_NAME = "github.com/gorilla/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git"
+SRC_URI = "git://${PKG_NAME}.git;branch=main;protocol=https"
-SRCREV = "14f550f51af52180c2eefed15e5fd18d63c0a64a"
+SRCREV = "1cbd4c16de64273a6e63fc710b0d89bfad72cd32"
S = "${WORKDIR}/git"
+inherit meta-virt-depreciated-warning
+
+do_compile() {
+ true
+}
+
do_install() {
install -d ${D}${prefix}/local/go/src/${PKG_NAME}
cp -r ${S}/* ${D}${prefix}/local/go/src/${PKG_NAME}/
@@ -25,4 +31,6 @@ go_context_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+
+CLEANBROKEN = "1"
diff --git a/recipes-devtools/go/go-dbus_git.bb b/recipes-devtools/go/go-dbus_git.bb
index 23908619..bc8691c4 100644
--- a/recipes-devtools/go/go-dbus_git.bb
+++ b/recipes-devtools/go/go-dbus_git.bb
@@ -7,13 +7,15 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=09042bd5c6c96a2b9e45ddf1bc517eed"
SRCNAME = "dbus"
PKG_NAME = "github.com/godbus/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git"
+SRC_URI = "git://${PKG_NAME}.git;branch=master;protocol=https"
SRCREV = "5f6efc7ef2759c81b7ba876593971bfce311eab3"
-PV = "4.0.0+git${SRCPV}"
+PV = "4.0.0+git"
S = "${WORKDIR}/git"
+inherit meta-virt-depreciated-warning
+
do_install() {
install -d ${D}${prefix}/local/go/src/${PKG_NAME}
cp -r ${S}/* ${D}${prefix}/local/go/src/${PKG_NAME}/
@@ -26,4 +28,4 @@ go_dbus_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
diff --git a/recipes-devtools/go/go-distribution_git.bb b/recipes-devtools/go/go-distribution_git.bb
index 9e3f2093..598df964 100644
--- a/recipes-devtools/go/go-distribution_git.bb
+++ b/recipes-devtools/go/go-distribution_git.bb
@@ -7,13 +7,15 @@ LIC_FILES_CHKSUM = "file://src/${PKG_NAME}/LICENSE;md5=d2794c0df5b907fdace235a61
SRCNAME = "distribution"
PKG_NAME = "github.com/docker/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git;branch=docker/1.13;destsuffix=git/src/${PKG_NAME}"
+SRC_URI = "git://${PKG_NAME}.git;branch=docker/1.13;destsuffix=git/src/${PKG_NAME};protocol=https"
SRCREV = "28602af35aceda2f8d571bad7ca37a54cf0250bc"
-PV = "2.6.0+git${SRCPV}"
+PV = "2.6.0+git"
S = "${WORKDIR}/git"
+inherit meta-virt-depreciated-warning
+
# NO-OP the do compile rule because this recipe is source only.
do_compile() {
}
@@ -36,4 +38,4 @@ go_distribution_digeset_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
diff --git a/recipes-devtools/go/go-fsnotify_git.bb b/recipes-devtools/go/go-fsnotify_git.bb
index 0826aa7f..b934ae9a 100644
--- a/recipes-devtools/go/go-fsnotify_git.bb
+++ b/recipes-devtools/go/go-fsnotify_git.bb
@@ -2,18 +2,20 @@ DESCRIPTION = "A golang registry for global request variables."
HOMEPAGE = "https://github.com/go-fsnotify/fsnotify"
SECTION = "devel/go"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c38914c9a7ab03bb2b96d4baaee10769"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=68f2948d3c4943313d07e084a362486c"
SRCNAME = "fsnotify"
PKG_NAME = "github.com/fsnotify/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git"
+SRC_URI = "git://${PKG_NAME}.git;branch=main;protocol=https"
-SRCREV = "836bfd95fecc0f1511dd66bdbf2b5b61ab8b00b6"
-PV = "1.2.11+git${SRCPV}"
+SRCREV = "af855d7e6014ec848882bb2ed7d40d536872d275"
+PV = "v1.5.1+git"
S = "${WORKDIR}/git"
+inherit meta-virt-depreciated-warning
+
do_install() {
install -d ${D}${prefix}/local/go/src/${PKG_NAME}
cp -r ${S}/* ${D}${prefix}/local/go/src/${PKG_NAME}/
@@ -26,4 +28,4 @@ go_fsnotify_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
diff --git a/recipes-devtools/go/go-libtrust_git.bb b/recipes-devtools/go/go-libtrust_git.bb
index 55659464..17199856 100644
--- a/recipes-devtools/go/go-libtrust_git.bb
+++ b/recipes-devtools/go/go-libtrust_git.bb
@@ -7,13 +7,15 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=435b266b3899aa8a959f17d41c56def8"
SRCNAME = "libtrust"
PKG_NAME = "github.com/docker/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git"
+SRC_URI = "git://${PKG_NAME}.git;branch=master;protocol=https"
SRCREV = "9cbd2a1374f46905c68a4eb3694a130610adc62a"
-PV = "0.0+git${SRCPV}"
+PV = "0.0+git"
S = "${WORKDIR}/git"
+inherit meta-virt-depreciated-warning
+
do_install() {
install -d ${D}${prefix}/local/go/src/${PKG_NAME}
cp -r ${S}/* ${D}${prefix}/local/go/src/${PKG_NAME}/
@@ -26,4 +28,4 @@ go_libtrust_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
diff --git a/recipes-devtools/go/go-logrus_git.bb b/recipes-devtools/go/go-logrus_git.bb
index aa89033e..1826b893 100644
--- a/recipes-devtools/go/go-logrus_git.bb
+++ b/recipes-devtools/go/go-logrus_git.bb
@@ -6,14 +6,16 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=8dadfef729c08ec4e631c4f6fc5d43a0"
SRCNAME = "logrus"
-PKG_NAME = "github.com/Sirupsen/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git"
+PKG_NAME = "github.com/sirupsen/${SRCNAME}"
+SRC_URI = "git://${PKG_NAME};branch=master;protocol=https"
SRCREV = "d26492970760ca5d33129d2d799e34be5c4782eb"
-PV = "0.11.0+git${SRCPV}"
+PV = "0.11.0+git"
S = "${WORKDIR}/git"
+inherit meta-virt-depreciated-warning
+
do_install() {
install -d ${D}${prefix}/local/go/src/${PKG_NAME}
cp -r ${S}/* ${D}${prefix}/local/go/src/${PKG_NAME}/
@@ -26,4 +28,4 @@ go_logrus_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
diff --git a/recipes-devtools/go/go-md2man_git.bb b/recipes-devtools/go/go-md2man_git.bb
index a1fcbe9b..1d96bb1b 100644
--- a/recipes-devtools/go/go-md2man_git.bb
+++ b/recipes-devtools/go/go-md2man_git.bb
@@ -9,15 +9,15 @@ BBCLASSEXTEND = "native"
GO_IMPORT = "github.com/cpuguy83/go-md2man"
#GO_INSTALL = "${GO_IMPORT}/bin/go-md2man"
-SRC_URI = "git://${GO_IMPORT}.git"
+SRC_URI = "git://${GO_IMPORT}.git;branch=master;protocol=https"
SRCREV = "f79a8a8ca69da163eee19ab442bedad7a35bba5a"
-PV = "1.0.10+git${SRCPV}"
+PV = "1.0.10+git"
S = "${WORKDIR}/git"
inherit go
-do_compile_prepend() {
+do_compile:prepend() {
export GO111MODULE=off
}
diff --git a/recipes-devtools/go/go-metalinter_git.bb b/recipes-devtools/go/go-metalinter_git.bb
index 668b431a..def3d063 100644
--- a/recipes-devtools/go/go-metalinter_git.bb
+++ b/recipes-devtools/go/go-metalinter_git.bb
@@ -9,10 +9,10 @@ BBCLASSEXTEND = "native"
SRCNAME = "gometalinter"
PKG_NAME = "github.com/alecthomas/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git"
+SRC_URI = "git://${PKG_NAME}.git;branch=master;protocol=https"
SRCREV = "e8d801238da6f0dfd14078d68f9b53fa50a7eeb5"
-PV = "0.0+git${SRCPV}"
+PV = "0.0+git"
S = "${WORKDIR}/git"
@@ -21,4 +21,4 @@ do_install() {
cp -r ${S}/* ${D}${prefix}/local/go/src/${PKG_NAME}/
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
diff --git a/recipes-devtools/go/go-mux_git.bb b/recipes-devtools/go/go-mux_git.bb
index 7a2025a0..0958617a 100644
--- a/recipes-devtools/go/go-mux_git.bb
+++ b/recipes-devtools/go/go-mux_git.bb
@@ -2,17 +2,22 @@ DESCRIPTION = "A powerful URL router and dispatcher for golang."
HOMEPAGE = "https://github.com/gorilla/mux"
SECTION = "devel/go"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c50f6bd9c1e15ed0bad3bea18e3c1b7f"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c30eee78985cf2584cded5f89ba3d787"
SRCNAME = "mux"
PKG_NAME = "github.com/gorilla/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git"
+SRC_URI = "git://${PKG_NAME}.git;branch=main;protocol=https"
-SRCREV = "136d54f81f00414c45c3c68dd47e98cc97519c5e"
+SRCREV = "85123bf20e069b156415b871dea10517f6a8938a"
+
+inherit meta-virt-depreciated-warning
S = "${WORKDIR}/git"
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
do_install() {
install -d ${D}${prefix}/local/go/src/${PKG_NAME}
cp -r ${S}/* ${D}${prefix}/local/go/src/${PKG_NAME}/
@@ -25,4 +30,4 @@ go_mux_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
diff --git a/recipes-devtools/go/go-patricia_git.bb b/recipes-devtools/go/go-patricia_git.bb
index 8c1e10d9..c05da591 100644
--- a/recipes-devtools/go/go-patricia_git.bb
+++ b/recipes-devtools/go/go-patricia_git.bb
@@ -7,13 +7,15 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=9949b99212edd6b1e24ce702376c3baf"
SRCNAME = "go-patricia"
PKG_NAME = "github.com/tchap/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git"
+SRC_URI = "git://${PKG_NAME}.git;branch=master;protocol=https"
SRCREV = "666120de432aea38ab06bd5c818f04f4129882c9"
-PV = "2.2.6+git${SRCPV}"
+PV = "2.2.6+git"
S = "${WORKDIR}/git"
+inherit meta-virt-depreciated-warning
+
do_install() {
install -d ${D}${prefix}/local/go/src/${PKG_NAME}
cp -r ${S}/* ${D}${prefix}/local/go/src/${PKG_NAME}/
@@ -26,4 +28,4 @@ go_patricia_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
diff --git a/recipes-devtools/go/go-pty_git.bb b/recipes-devtools/go/go-pty_git.bb
index 02cef69e..d6aa95f6 100644
--- a/recipes-devtools/go/go-pty_git.bb
+++ b/recipes-devtools/go/go-pty_git.bb
@@ -7,12 +7,14 @@ LIC_FILES_CHKSUM = "file://License;md5=93958070863d769117fa33b129020050"
SRCNAME = "pty"
PKG_NAME = "github.com/creack/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git"
+SRC_URI = "git://${PKG_NAME}.git;branch=master;protocol=https"
SRCREV = "05017fcccf23c823bfdea560dcc958a136e54fb7"
S = "${WORKDIR}/git"
+inherit meta-virt-depreciated-warning
+
do_install() {
install -d ${D}${prefix}/local/go/src/${PKG_NAME}
cp -r ${S}/* ${D}${prefix}/local/go/src/${PKG_NAME}/
@@ -25,4 +27,4 @@ go_pty_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
diff --git a/recipes-devtools/go/go-systemd_git.bb b/recipes-devtools/go/go-systemd_git.bb
index 0f89c0f8..e7e97b9e 100644
--- a/recipes-devtools/go/go-systemd_git.bb
+++ b/recipes-devtools/go/go-systemd_git.bb
@@ -7,15 +7,17 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=19cbd64715b51267a47bf3750cc6a8a5"
SRCNAME = "systemd"
PKG_NAME = "github.com/coreos/go-${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git"
+SRC_URI = "git://${PKG_NAME}.git;branch=main;protocol=https"
SRCREV = "b4a58d95188dd092ae20072bac14cece0e67c388"
-PV = "4+git${SRCPV}"
+PV = "4+git"
-RDEPENDS_${PN} += "bash"
+RDEPENDS:${PN} += "bash"
S = "${WORKDIR}/git"
+inherit meta-virt-depreciated-warning
+
do_install() {
install -d ${D}${prefix}/local/go/src/${PKG_NAME}
cp -r ${S}/* ${D}${prefix}/local/go/src/${PKG_NAME}/
@@ -28,4 +30,4 @@ go_systemd_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
diff --git a/recipes-devtools/go/grpc-go_git.bb b/recipes-devtools/go/grpc-go_git.bb
index 48c42499..7989c02f 100644
--- a/recipes-devtools/go/grpc-go_git.bb
+++ b/recipes-devtools/go/grpc-go_git.bb
@@ -1,16 +1,16 @@
DESCRIPTION = "The Go language implementation of gRPC. HTTP/2 based RPC"
HOMEPAGE = "https://github.com/grpc/grpc-go"
SECTION = "devel/go"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://src/${PKG_NAME}/LICENSE;md5=a4bad33881612090c6035d8393175996"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://src/${PKG_NAME}/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
SRCNAME = "grpc-go"
PKG_NAME = "google.golang.org/grpc"
-SRC_URI = "git://github.com/grpc/${SRCNAME}.git;destsuffix=git/src/${PKG_NAME}"
+SRC_URI = "git://github.com/grpc/${SRCNAME}.git;destsuffix=git/src/${PKG_NAME};branch=v1.59.x;protocol=https"
-SRCREV = "777daa17ff9b5daef1cfdf915088a2ada3332bf0"
-PV = "1.4.0+git${SRCPV}"
+SRCREV = "7765221f4bf6104973db7946d56936cf838cad46"
+PV = "1.59.0+git"
S = "${WORKDIR}/git"
@@ -36,6 +36,10 @@ go_grpc_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += " \
+FILES:${PN} += " \
${prefix}/local/go/src/${PKG_NAME}/* \
"
+
+# some CVEs are reported with "cpe:2.3:a:grpc:grpc:*:*:*:*:*:go:*:*"
+# it's better to have false positives than false negatives
+CVE_PRODUCT += "grpc"
diff --git a/recipes-devtools/go/notary_git.bb b/recipes-devtools/go/notary_git.bb
index 9cfb46ea..ace7174d 100644
--- a/recipes-devtools/go/notary_git.bb
+++ b/recipes-devtools/go/notary_git.bb
@@ -7,13 +7,15 @@ LIC_FILES_CHKSUM = "file://src/${PKG_NAME}/LICENSE;md5=3596b980bb036e0875174ed15
SRCNAME = "notary"
PKG_NAME = "github.com/docker/${SRCNAME}"
-SRC_URI = "git://${PKG_NAME}.git;destsuffix=git/src/${PKG_NAME}"
+SRC_URI = "git://${PKG_NAME}.git;destsuffix=git/src/${PKG_NAME};branch=master;protocol=https"
SRCREV = "d6e1431feb32348e0650bf7551ac5cffd01d857b"
-PV = "0.6.1+git${SRCPV}"
+PV = "0.6.1+git"
S = "${WORKDIR}/git"
+inherit meta-virt-depreciated-warning
+
# NO-OP the do compile rule because this recipe is source only.
do_compile() {
}
@@ -36,4 +38,4 @@ go_notary_sysroot_preprocess () {
cp -r ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}
-FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
+FILES:${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"
diff --git a/recipes-devtools/python/python3-boto3_1.17.51.bb b/recipes-devtools/python/python3-boto3_1.17.51.bb
index 980b6cd2..9c94a34d 100644
--- a/recipes-devtools/python/python3-boto3_1.17.51.bb
+++ b/recipes-devtools/python/python3-boto3_1.17.51.bb
@@ -13,4 +13,4 @@ SRC_URI[sha256sum] = "c45e7d3aef8965ae1b42c9855c31ded19fbb38cfad0a34cc37dc880ded
inherit pypi setuptools3
-RDEPENDS_${PN} += "python3-botocore python3-urllib3 python3-unixadmin"
+RDEPENDS:${PN} += "python3-botocore python3-urllib3 python3-unixadmin"
diff --git a/recipes-devtools/python/python3-botocore/0001-Fix-rejecting-URLs-with-unsafe-characters-in-is_vali.patch b/recipes-devtools/python/python3-botocore/0001-Fix-rejecting-URLs-with-unsafe-characters-in-is_vali.patch
new file mode 100644
index 00000000..95b30a08
--- /dev/null
+++ b/recipes-devtools/python/python3-botocore/0001-Fix-rejecting-URLs-with-unsafe-characters-in-is_vali.patch
@@ -0,0 +1,61 @@
+From 370cdf7d708c92bf21a42f15392f7be330cf8f80 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Fri, 7 May 2021 19:54:16 +0200
+Subject: [PATCH] Fix rejecting URLs with unsafe characters in
+ is_valid_endpoint_url() (#2381)
+
+Detect unsafe characters in is_valid_endpoint_url()
+and is_valid_ipv6_endpoint_url() early, in order to fix rejecting
+invalid URLs with Python 3.9.5+ and other versions carrying bpo-43882
+fix. In these versions, urlsplit() silently strips LF, CR and HT
+characters while splitting the URL, effectively disarming the validator
+in botocore.
+
+The solution is based on a similar fix in Django.
+
+Fixes #2377
+
+Upstream-Status: Backport
+
+---
+ botocore/utils.py | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/botocore/utils.py b/botocore/utils.py
+index 378972248..d35dd64bb 100644
+--- a/botocore/utils.py
++++ b/botocore/utils.py
+@@ -173,6 +173,10 @@ ZONE_ID_PAT = "(?:%25|%)(?:[" + UNRESERVED_PAT + "]|%[a-fA-F0-9]{2})+"
+ IPV6_ADDRZ_PAT = r"\[" + IPV6_PAT + r"(?:" + ZONE_ID_PAT + r")?\]"
+ IPV6_ADDRZ_RE = re.compile("^" + IPV6_ADDRZ_PAT + "$")
+
++# These are the characters that are stripped by post-bpo-43882 urlparse().
++UNSAFE_URL_CHARS = frozenset('\t\r\n')
++
++
+ def ensure_boolean(val):
+ """Ensures a boolean value if a string or boolean is provided
+
+@@ -977,6 +981,8 @@ class ArgumentGenerator(object):
+
+
+ def is_valid_ipv6_endpoint_url(endpoint_url):
++ if UNSAFE_URL_CHARS.intersection(endpoint_url):
++ return False
+ netloc = urlparse(endpoint_url).netloc
+ return IPV6_ADDRZ_RE.match(netloc) is not None
+
+@@ -990,6 +996,10 @@ def is_valid_endpoint_url(endpoint_url):
+ :return: True if the endpoint url is valid. False otherwise.
+
+ """
++ # post-bpo-43882 urlsplit() strips unsafe characters from URL, causing
++ # it to pass hostname validation below. Detect them early to fix that.
++ if UNSAFE_URL_CHARS.intersection(endpoint_url):
++ return False
+ parts = urlsplit(endpoint_url)
+ hostname = parts.hostname
+ if hostname is None:
+--
+2.25.1
+
diff --git a/recipes-devtools/python/python3-botocore_1.20.51.bb b/recipes-devtools/python/python3-botocore_1.20.51.bb
index 93e4eab1..f71db1fc 100644
--- a/recipes-devtools/python/python3-botocore_1.20.51.bb
+++ b/recipes-devtools/python/python3-botocore_1.20.51.bb
@@ -7,4 +7,6 @@ SRC_URI[sha256sum] = "c853d6c2321e2f2328282c7d49d7b1a06201826ba0e7049c6975ab5f22
inherit pypi setuptools3
-RDEPENDS_${PN} += "python3-jmespath python3-dateutil python3-logging"
+RDEPENDS:${PN} += "python3-jmespath python3-dateutil python3-logging"
+
+SRC_URI += "file://0001-Fix-rejecting-URLs-with-unsafe-characters-in-is_vali.patch"
diff --git a/recipes-devtools/python/python3-bugsnag_4.0.2.bb b/recipes-devtools/python/python3-bugsnag_4.1.0.bb
index 96550bb1..595cc8c7 100644
--- a/recipes-devtools/python/python3-bugsnag_4.0.2.bb
+++ b/recipes-devtools/python/python3-bugsnag_4.1.0.bb
@@ -10,7 +10,7 @@ SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
-SRC_URI[sha256sum] = "7a49dacf055a8c6dda4ce714acd91fabe9546f1ad826276918a26603a8b5489a"
+SRC_URI[sha256sum] = "dcbd59cd9edea26cc92efb6518aed83a2f356f81bfd5acc730bfe202fb27c1c1"
inherit pypi setuptools3
diff --git a/recipes-devtools/python/python3-cached-property_1.5.2.bb b/recipes-devtools/python/python3-cached-property_1.5.2.bb
index d7905f8d..1f99115b 100644
--- a/recipes-devtools/python/python3-cached-property_1.5.2.bb
+++ b/recipes-devtools/python/python3-cached-property_1.5.2.bb
@@ -1,5 +1,7 @@
SUMMARY = "A decorator for caching properties in classes."
-HOMEPAGE = "https://github.com/pydanny/cached-property"
+DESCRIPTION = "Makes caching of time or computational expensive properties quick and easy."
+HOMEPAGE = "https://pypi.org/project/cached-property/"
+SECTION = "devel/python"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=db7ff60c4e14f58534201242803d8abc"
diff --git a/recipes-devtools/python/python3-colorama_0.4.4.bb b/recipes-devtools/python/python3-colorama_0.4.4.bb
deleted file mode 100644
index 94468eee..00000000
--- a/recipes-devtools/python/python3-colorama_0.4.4.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Cross-platform colored terminal text."
-HOMEPAGE = "https://github.com/tartley/colorama"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b4936429a56a652b84c5c01280dcaa26"
-
-inherit pypi setuptools3
-
-SRC_URI[md5sum] = "57b22f2597f63df051b69906fbf310cc"
-SRC_URI[sha256sum] = "5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"
diff --git a/recipes-devtools/python/python3-colorama_0.4.6.bb b/recipes-devtools/python/python3-colorama_0.4.6.bb
new file mode 100644
index 00000000..0f364c42
--- /dev/null
+++ b/recipes-devtools/python/python3-colorama_0.4.6.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Cross-platform colored terminal text."
+HOMEPAGE = "https://github.com/tartley/colorama"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b4936429a56a652b84c5c01280dcaa26"
+
+inherit pypi python_setuptools_build_meta
+
+SRC_URI[sha256sum] = "08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"
+
+DEPENDS += " \
+ python3-hatchling-native \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/recipes-devtools/python/python3-docker_5.0.0.bb b/recipes-devtools/python/python3-docker_5.0.0.bb
deleted file mode 100644
index 6b6e844b..00000000
--- a/recipes-devtools/python/python3-docker_5.0.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "A Python library for the Docker Engine API."
-HOMEPAGE = "https://github.com/docker/docker-py"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=34f3846f940453127309b920eeb89660"
-
-SRC_URI[md5sum] = "9cc5156a2ff6458a8f52114b9bbc0d7e"
-SRC_URI[sha256sum] = "3e8bc47534e0ca9331d72c32f2881bb13b93ded0bcdeab3c833fb7cf61c0a9a5"
-
-DEPENDS += "${PYTHON_PN}-pip-native"
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-misc \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-docker-pycreds \
- ${PYTHON_PN}-requests \
- ${PYTHON_PN}-websocket-client \
-"
-
-inherit pypi setuptools3
diff --git a/recipes-devtools/python/python3-docker_7.0.0.bb b/recipes-devtools/python/python3-docker_7.0.0.bb
new file mode 100644
index 00000000..39567c04
--- /dev/null
+++ b/recipes-devtools/python/python3-docker_7.0.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A Python library for the Docker Engine API."
+HOMEPAGE = "https://github.com/docker/docker-py"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=34f3846f940453127309b920eeb89660"
+
+SRC_URI[md5sum] = "b08eeccf6a5efd11c316c08207edfeef"
+SRC_URI[sha256sum] = "323736fb92cd9418fc5e7133bc953e11a9da04f4483f828b527db553f1e7e5a3"
+
+DEPENDS += "python3-pip-native"
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS:${PN} += " \
+ python3-misc \
+ python3-six \
+ python3-docker-pycreds \
+ python3-requests \
+ python3-websocket-client \
+ python3-packaging \
+"
+inherit pypi python_setuptools_build_meta
diff --git a/recipes-devtools/python/python3-dockerpty_0.4.1.bb b/recipes-devtools/python/python3-dockerpty_0.4.1.bb
index cde2d128..e4aa0321 100644
--- a/recipes-devtools/python/python3-dockerpty_0.4.1.bb
+++ b/recipes-devtools/python/python3-dockerpty_0.4.1.bb
@@ -8,9 +8,9 @@ inherit pypi setuptools3
SRC_URI[md5sum] = "028bacb34536f3ee6a2ccd668c27e8e4"
SRC_URI[sha256sum] = "69a9d69d573a0daa31bcd1c0774eeed5c15c295fe719c61aca550ed1393156ce"
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-fcntl \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-terminal \
+RDEPENDS:${PN} += "\
+ python3-fcntl \
+ python3-io \
+ python3-six \
+ python3-terminal \
"
diff --git a/recipes-devtools/python/python3-fastentrypoints_0.12.bb b/recipes-devtools/python/python3-fastentrypoints_0.12.bb
index 53bed187..390a5080 100644
--- a/recipes-devtools/python/python3-fastentrypoints_0.12.bb
+++ b/recipes-devtools/python/python3-fastentrypoints_0.12.bb
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://README.rst;md5=f212a0cb34eb678477972d2011fb365a"
inherit pypi setuptools3
-RDEPENDS_${PN} += "${PYTHON_PN}-setuptools ${PYTHON_PN}-pickle"
+RDEPENDS:${PN} += "python3-setuptools python3-pickle"
SRC_URI[md5sum] = "390ad9a9229164a06156a5b1f0ef1b22"
SRC_URI[sha256sum] = "ff284f1469bd65400599807d2c6284d5b251398e6e28811f5f77fd262292410b"
diff --git a/recipes-devtools/python/python3-flask-cors_3.0.10.bb b/recipes-devtools/python/python3-flask-cors-virt_3.0.10.bb
index 2b2e2ce6..2b2e2ce6 100644
--- a/recipes-devtools/python/python3-flask-cors_3.0.10.bb
+++ b/recipes-devtools/python/python3-flask-cors-virt_3.0.10.bb
diff --git a/recipes-devtools/python/python3-nacl_1.3.0.bb b/recipes-devtools/python/python3-nacl_1.3.0.bb
deleted file mode 100644
index d0a99aef..00000000
--- a/recipes-devtools/python/python3-nacl_1.3.0.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Python binding to the Networking and Cryptography (NaCl) library"
-HOMEPAGE = "https://github.com/pyca/pynacl"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8cc789b082b3d97e1ccc5261f8594d3f"
-
-PYPI_PACKAGE = "PyNaCl"
-
-inherit pypi setuptools3
-
-SRC_URI[md5sum] = "3f3b1272287bc2de8efd8a5fa18bf728"
-SRC_URI[sha256sum] = "0c6100edd16fefd1557da078c7a31e7b7d7a52ce39fdca2bec29d4f7b6e7600c"
-
-DEPENDS += "\
- libsodium \
- python3-cffi-native \
- python3-pip-native \
-"
-
-RDEPENDS_${PN}_class-target += " \
- python3-cffi \
- python3-pycparser \
-"
-
-export SODIUM_INSTALL = "system"
-
-BBCLASSEXTEND = "native"
diff --git a/recipes-devtools/python/python3-newrelic/0001-setup.py-tweak-setuptools_scm-version-dependency.patch b/recipes-devtools/python/python3-newrelic/0001-setup.py-tweak-setuptools_scm-version-dependency.patch
index 7ec705bc..75fb6558 100644
--- a/recipes-devtools/python/python3-newrelic/0001-setup.py-tweak-setuptools_scm-version-dependency.patch
+++ b/recipes-devtools/python/python3-newrelic/0001-setup.py-tweak-setuptools_scm-version-dependency.patch
@@ -9,6 +9,8 @@ not trivial or something we want to do.
So we tweak the version to accept what we have in oe-core.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
setup.py | 2 +-
diff --git a/recipes-devtools/python/python3-newrelic_6.2.0.156.bb b/recipes-devtools/python/python3-newrelic_6.2.0.156.bb
index d3bbd9e4..62371f60 100644
--- a/recipes-devtools/python/python3-newrelic_6.2.0.156.bb
+++ b/recipes-devtools/python/python3-newrelic_6.2.0.156.bb
@@ -16,7 +16,7 @@ DEPENDS += "python3-setuptools-scm-native"
SRC_URI += "file://0001-setup.py-tweak-setuptools_scm-version-dependency.patch"
-FILES_${PN}-dbg += "\
+FILES:${PN}-dbg += "\
${PYTHON_SITEPACKAGES_DIR}/newrelic-${PV}/newrelic/*/.debug \
${PYTHON_SITEPACKAGES_DIR}/newrelic-${PV}/newrelic/packages/*/.debug/ \
"
diff --git a/recipes-devtools/python/python3-sphinx_3.5.4.bb b/recipes-devtools/python/python3-sphinx-420.bb
index 3f541c7a..67ecf416 100644
--- a/recipes-devtools/python/python3-sphinx_3.5.4.bb
+++ b/recipes-devtools/python/python3-sphinx-420.bb
@@ -1,11 +1,15 @@
DESCRIPTION = "Python documentation generator"
HOMEPAGE = "http://sphinx-doc.org/"
SECTION = "devel/python"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause & BSD-3-Clause & MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=82cc7d23060a75a07b820eaaf75abecf"
PYPI_PACKAGE = "Sphinx"
-SRC_URI[sha256sum] = "19010b7b9fa0dc7756a6e105b2aacd3a80f798af3c25c273be64d7beeb482cb1"
+PV = "4.2.0"
+
+RCONFLICTS:${PN} = "python3-sphinx"
+
+SRC_URI[sha256sum] = "94078db9184491e15bce0a56d9186e0aec95f16ac20b12d00e06d4e36f1058a6"
inherit setuptools3 pypi
diff --git a/recipes-devtools/python/python3-udica_git.bb b/recipes-devtools/python/python3-udica_git.bb
new file mode 100644
index 00000000..1d239cba
--- /dev/null
+++ b/recipes-devtools/python/python3-udica_git.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A tool for generating SELinux security policies for containers"
+HOMEPAGE = "https://github.com/containers/udica"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+SRC_URI = "git://github.com/containers/udica;protocol=https;branch=main"
+
+SRCREV = "4a64ff7c1b8116a1894e72eee2a19706e970001f"
+PV = "0.2.7+git"
+
+S = "${WORKDIR}/git"
+
+SRC_URI[md5sum] = "9cc5156a2ff6458a8f52114b9bbc0d7e"
+SRC_URI[sha256sum] = "3e8bc47534e0ca9331d72c32f2881bb13b93ded0bcdeab3c833fb7cf61c0a9a5"
+
+SKIP_RECIPE[python3-udica] ?= "${@bb.utils.contains('BBFILE_COLLECTIONS', 'selinux', '', 'Depends on libselinux from meta-selinux which is not included', d)}"
+
+RDEPENDS:${PN} += " \
+ selinux-python \
+ "
+
+inherit setuptools3
diff --git a/recipes-devtools/python/python3-webob_1.8.7.bb b/recipes-devtools/python/python3-webob_1.8.7.bb
index a51f8ddf..d23ddfd2 100644
--- a/recipes-devtools/python/python3-webob_1.8.7.bb
+++ b/recipes-devtools/python/python3-webob_1.8.7.bb
@@ -10,7 +10,7 @@ SRC_URI[sha256sum] = "b64ef5141be559cfade448f044fa45c2260351edcb6a8ef6b7e00c7dce
inherit setuptools3 pypi
-RDEPENDS_${PN} += " \
+RDEPENDS:${PN} += " \
python3-sphinx \
"
diff --git a/recipes-devtools/python/python3_3.%.bbappend b/recipes-devtools/python/python3_3.%.bbappend
deleted file mode 100644
index 617caccb..00000000
--- a/recipes-devtools/python/python3_3.%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-require ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', '${BPN}_virtualization.inc', '', d)}
diff --git a/recipes-devtools/python/python3_virtualization.inc b/recipes-devtools/python/python3_virtualization.inc
deleted file mode 100644
index 55301c7e..00000000
--- a/recipes-devtools/python/python3_virtualization.inc
+++ /dev/null
@@ -1,8 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-DEPENDS += " ncurses"
-
-do_compile_prepend() {
- export LIBRARY_PATH=${STAGING_DIR_TARGET}/lib
-}
-
diff --git a/recipes-devtools/qemu/qemu-package-split.inc b/recipes-devtools/qemu/qemu-package-split.inc
index 2dec440b..7671d84e 100644
--- a/recipes-devtools/qemu/qemu-package-split.inc
+++ b/recipes-devtools/qemu/qemu-package-split.inc
@@ -1,4 +1,10 @@
-PACKAGES_prepend_class-target = "${PN}-x86_64 \
+# we have our own package splitting for qemu, inhbit the oe-core
+# split by overriding the split function
+python split_qemu_packages () {
+ print( "meta-virtualization: vmsplit: inhibiting core qemu package split" )
+}
+
+PACKAGES:prepend:class-target = "${PN}-x86_64 \
${PN}-aarch64 \
${PN}-arm \
${PN}-i386 \
@@ -9,38 +15,57 @@ PACKAGES_prepend_class-target = "${PN}-x86_64 \
${PN}-firmware \
"
-FILES_${PN}-x86_64_class-target = "${bindir}/qemu-system-x86_64 ${bindir}/qemu-x86_64"
-RDEPENDS_${PN}-x86_64_append_class_target = "${PN}"
-INSANE_SKIP_${PN}-x86_64_class-target = "file-rdeps"
+FILES:${PN}-x86_64:class-target = "${bindir}/qemu-system-x86_64 ${bindir}/qemu-x86_64"
+RDEPENDS:${PN}-x86_64:append:class-target = " ${PN}"
+RPROVIDES:${PN}-x86_64:append:class-target = " ${PN}-system-x86_64"
+RPROVIDES:${PN}-x86_64:append:class-target = " ${PN}-user-x86_64"
+RDEPENDS:${PN}-system-all:append:class-target = " ${PN}-x86_64"
+RDEPENDS:${PN}-user-all:append:class-target = " ${PN}-x86_64"
+INSANE_SKIP:${PN}-x86_64:class-target = "file-rdeps"
-FILES_${PN}-i386_class-target = "${bindir}/qemu-i386"
-RDEPENDS_${PN}-i386_append_class-target = "${PN}"
-INSANE_SKIP_${PN}-i386_class-target = "file-rdeps"
+FILES:${PN}-i386:class-target = "${bindir}/qemu-i386"
+RDEPENDS:${PN}-i386:append:class-target = " ${PN}"
+RPROVIDES:${PN}-i386:append:class-target = " ${PN}-user-i386"
+RDEPENDS:${PN}-user-all:append:class-target = " ${PN}-i386"
+INSANE_SKIP:${PN}-i386:class-target = "file-rdeps"
-FILES_${PN}-system-i386_class-target = "${bindir}/qemu-system-i386"
-RDEPENDS_${PN}-system-i386_append_class-target = "${PN}"
-INSANE_SKIP_${PN}-system-i386_class-target = "file-rdeps"
+FILES:${PN}-system-i386:class-target = "${bindir}/qemu-system-i386"
+RDEPENDS:${PN}-system-i386:append:class-target = " ${PN}"
+RDEPENDS:${PN}-system-all:append:class-target = " ${PN}-system-i386"
+INSANE_SKIP:${PN}-system-i386:class-target = "file-rdeps"
-FILES_${PN}-aarch64_class-target = "${bindir}/qemu-system-aarch64 ${bindir}/qemu-aarch64"
-RDEPENDS_${PN}-aarch64_append_class-target = "${PN}"
-INSANE_SKIP_${PN}-aarch64_class-target = "file-rdeps"
+FILES:${PN}-aarch64:class-target = "${bindir}/qemu-system-aarch64 ${bindir}/qemu-aarch64"
+RDEPENDS:${PN}-aarch64:append:class-target = " ${PN}"
+RPROVIDES:${PN}-aarch64:append:class-target = " ${PN}-system-aarch64"
+RPROVIDES:${PN}-aarch64:append:class-target = " ${PN}-user-aarch64"
+RDEPENDS:${PN}-system-all:append:class-target = " ${PN}-aarch64"
+RDEPENDS:${PN}-user-all:append:class-target = " ${PN}-aarch64"
+INSANE_SKIP:${PN}-aarch64:class-target = "file-rdeps"
-FILES_${PN}-arm_class-target = "${bindir}/qemu-system-arm ${bindir}/qemu-arm"
-RDEPENDS_${PN}-arm_append_class-target = "${PN}"
-INSANE_SKIP_${PN}-arm_class-target = "file-rdeps"
+FILES:${PN}-arm:class-target = "${bindir}/qemu-system-arm ${bindir}/qemu-arm"
+RDEPENDS:${PN}-arm:append:class-target = " ${PN}"
+RPROVIDES:${PN}-arm:append:class-target = " ${PN}-system-arm"
+RPROVIDES:${PN}-arm:append:class-target = " ${PN}-user-arm"
+RDEPENDS:${PN}-system-all:append:class-target = " ${PN}-arm"
+RDEPENDS:${PN}-user-all:append:class-target = " ${PN}-arm"
+INSANE_SKIP:${PN}-arm:class-target = "file-rdeps"
-FILES_${PN}-microblaze_class-target = "${bindir}/qemu-system-microblaze* ${bindir}/qemu-microblaze*"
-RDEPENDS_${PN}-microblaze_append_class-target = "${PN}"
-INSANE_SKIP_${PN}-arm_class-target = "file-rdeps"
+FILES:${PN}-microblaze:class-target = "${bindir}/qemu-system-microblaze* ${bindir}/qemu-microblaze*"
+RDEPENDS:${PN}-microblaze:append:class-target = " ${PN}"
+RPROVIDES:${PN}-microblaze:append:class-target = " ${PN}-system-microblaze"
+RPROVIDES:${PN}-microblaze:append:class-target = " ${PN}-user-microblaze"
+RDEPENDS:${PN}-system-all:append:class-target = " ${PN}-microblaze"
+RDEPENDS:${PN}-user-all:append:class-target = " ${PN}-microblaze"
+INSANE_SKIP:${PN}-arm:class-target = "file-rdeps"
-FILES_${PN}-support_class-target = "${bindir}/* ${libexecdir}/*"
-RDEPENDS_${PN}-support_class-target = "${PN} bash"
+FILES:${PN}-support:class-target = "${bindir}/* ${libexecdir}/*"
+RDEPENDS:${PN}-support:class-target = "${PN} bash"
-FILES_${PN}-firmware_class-target = "${datadir}/${PN}/*.bin ${datadir}/${PN}/*.rom ${datadir}/${PN}/*.img ${datadir}/${PN}/openbios* ${datadir}/${PN}/*.dtb ${datadir}/${PN}/u-boot*"
-RDEPENDS_${PN}-firmware_class-target = "${PN}"
-INSANE_SKIP_${PN}-firmware_class-target = "arch"
+FILES:${PN}-firmware:class-target = "${datadir}/${PN}/*.bin ${datadir}/${PN}/*.rom ${datadir}/${PN}/*.img ${datadir}/${PN}/openbios* ${datadir}/${PN}/*.dtb ${datadir}/${PN}/u-boot*"
+RDEPENDS:${PN}-firmware:class-target = "${PN}"
+INSANE_SKIP:${PN}-firmware:class-target = "arch"
-FILES_${PN}-keymaps_class-target = "${datadir}/${PN}/keymaps/*"
-RDEPENDS_${PN}-keymaps_class-target = "${PN}"
+FILES:${PN}-keymaps:class-target = "${datadir}/${PN}/keymaps/*"
+RDEPENDS:${PN}-keymaps:class-target = "${PN}"
-PACKAGECONFIG_append = " virtfs"
+PACKAGECONFIG:append = " virtfs"
diff --git a/recipes-devtools/yq/files/run-ptest b/recipes-devtools/yq/files/run-ptest
new file mode 100755
index 00000000..3a6876b3
--- /dev/null
+++ b/recipes-devtools/yq/files/run-ptest
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+cd tests
+for i in `ls *.sh`; do
+ if [ ./$i ] ; then
+ echo "PASS: $i"
+ else
+ echo "FAIL: $i"
+ fi
+done
diff --git a/recipes-devtools/yq/yq_git.bb b/recipes-devtools/yq/yq_git.bb
index a89c8338..45f2f970 100644
--- a/recipes-devtools/yq/yq_git.bb
+++ b/recipes-devtools/yq/yq_git.bb
@@ -2,35 +2,55 @@ SUMMARY = "a lightweight and portable command-line YAML processor "
HOMEPAGE = "https://github.com/mikefarah/yq"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=090d381b4b3eb93194e8cbff4aaae2de"
+LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=e40a0dcd62f8269b9bff37fe9aa7dcc2"
-SRCREV_yq = "e0f5cb3c5958e57c7f250a7030e92c768c1b2b19"
+SRCREV_yq = "dd6cf3df146f3e2c0f8c765a6ef9e35780ad8cc1"
SRCREV_color = "daf2830f2741ebb735b21709a520c5f37d642d85"
-SRCREV_lexer = "81f720df2c51e9f1e1d387b17a0af386ed2b257d"
-SRCREV_debug = "fa7b53cdfc9105c70f134574002f406232921437"
-SRCREV_errors = "614d223910a179a466c1767a985424175c39b465"
-SRCREV_cobra = "b97b5ead31f7d34f764ac8666e40c214bb8e06dc"
-SRCREV_pflag = "6971c29c4a22981adeaee7f4b437c0cffe08c031"
+SRCREV_lexer = "6cdefc42e112ac71cbe316e1eed264ea62f58e25"
+SRCREV_cobra = "b43be995ebb4bee335a787bd44498b91aef7619c"
+SRCREV_pflag = "2e9d26c8c37aae03e3f9d4e90b7116f5accb7cab"
SRCREV_logging = "b2cb9fa56473e98db8caba80237377e83fe44db5"
-SRCREV_yaml = "eeeca48fe7764f320e4870d231902bf9c1be2c08"
-
-SRC_URI = "git://${GO_IMPORT};name=yq \
- git://github.com/fatih/color;name=color;destsuffix=build/vendor/src/github.com/fatih/color \
- git://github.com/goccy/go-yaml;name=lexer;destsuffix=build/vendor/src/github.com/goccy/go-yaml/ \
- git://github.com/kylelemons/godebug;name=debug;destsuffix=build/vendor/src/github.com/kylelemons/godebug/ \
- git://github.com/pkg/errors;name=errors;destsuffix=build/vendor/src/github.com/pkg/errors/ \
- git://github.com/spf13/cobra;name=cobra;destsuffix=build/vendor/src/github.com/spf13/cobra \
- git://github.com/spf13/pflag;name=pflag;destsuffix=build/vendor/src/github.com/spf13/pflag \
- git://github.com/op/go-logging.git;name=logging;destsuffix=build/vendor/src/gopkg.in/op/go-logging.v1 \
- git://github.com/go-yaml/yaml.git;name=yaml;branch=v3;destsuffix=build/vendor/src/gopkg.in/yaml.v3 \
+SRCREV_yaml = "f6f7691b1fdeb513f56608cd2c32c51f8194bf51"
+SRCREV_xerrors="65e65417b02f28de84b55f16b46a1e789149973a"
+SRCREV_envsubst = "16035fe3571ad42c7796bf554f978bb2df64231b"
+SRCREV_participle = "49f4822ed012d9818c80ca4fcdeb7e2d55c04806"
+SRCREV_utfbom = "6ae8f945ca96f30defc7e8ab12ec5d10cf86ded4"
+SRCREV_orderedmap = "1e43e194ff533a346bab5f9b66b738256f199c8a"
+SRCREV_go-json = "5efc7d07eeeba186df630d9ab4ac78c761938c27"
+SRCREV_copier = "d132b069fe1a77d09e4c260852b389a730bbe9ba"
+SRCREV_properties = "c9a06e8f8f0164e4e16c0d5c4793cbed4ac90264"
+SRCREV_net = "f3363e06e74cdc304618bf31d898b78590103527"
+SRCREV_text = "434eadcdbc3b0256971992e8c70027278364c72c"
+SRCREV_diff = "20ebb0f2a09e612109b224b32f79370409108bcc"
+
+SRCREV_FORMAT = "yq_color"
+SRC_URI = "git://${GO_IMPORT};name=yq;branch=master;protocol=https \
+ git://github.com/fatih/color;name=color;destsuffix=build/vendor/src/github.com/fatih/color;branch=main;protocol=https \
+ git://github.com/goccy/go-yaml;name=lexer;destsuffix=build/vendor/src/github.com/goccy/go-yaml/;branch=master;protocol=https \
+ git://github.com/spf13/cobra;name=cobra;nobranch=1;destsuffix=build/vendor/src/github.com/spf13/cobra;branch=main;protocol=https \
+ git://github.com/spf13/pflag;name=pflag;destsuffix=build/vendor/src/github.com/spf13/pflag;branch=master;protocol=https \
+ git://github.com/op/go-logging.git;name=logging;destsuffix=build/vendor/src/gopkg.in/op/go-logging.v1;branch=master;protocol=https \
+ git://github.com/go-yaml/yaml.git;name=yaml;branch=v3;destsuffix=build/vendor/src/gopkg.in/yaml.v3;protocol=https \
+ git://github.com/golang/xerrors;name=xerrors;protocol=https;nobranch=1;destsuffix=build/vendor/src/golang.org/x/xerrors \
+ git://github.com/a8m/envsubst;name=envsubst;destsuffix=build/vendor/src/github.com/a8m/envsubst;branch=master;protocol=https \
+ git://github.com/alecthomas/participle;name=participle;destsuffix=build/vendor/src/github.com/alecthomas/participle;branch=master;protocol=https \
+ git://github.com/dimchansky/utfbom;name=utfbom;destsuffix=build/vendor/src/github.com/dimchansky/utfbom;branch=master;protocol=https \
+ git://github.com/elliotchance/orderedmap;name=orderedmap;destsuffix=build/vendor/src/github.com/elliotchance/orderedmap;branch=master;protocol=https \
+ git://github.com/goccy/go-json;name=go-json;destsuffix=build/vendor/src/github.com/goccy/go-json;branch=master;protocol=https \
+ git://github.com/jinzhu/copier;name=copier;destsuffix=build/vendor/src/github.com/jinzhu/copier;branch=master;protocol=https \
+ git://github.com/magiconair/properties;name=properties;destsuffix=build/vendor/src/github.com/magiconair/properties;branch=main;protocol=https \
+ git://github.com/golang/net;name=net;destsuffix=build/vendor/src/golang.org/x/net;branch=master;protocol=https \
+ git://github.com/golang/text;name=text;destsuffix=build/vendor/src/golang.org/x/text;branch=master;protocol=https \
+ git://github.com/pkg/diff;name=diff;destsuffix=build/vendor/src/github.com/pkg/diff;branch=main;protocol=https \
+ file://run-ptest \
"
-PV = "1.13.1+git${SRCREV_yq}"
+PV = "4.30.8+git${SRCREV_yq}"
GO_IMPORT = "github.com/mikefarah/yq"
-inherit go
+inherit go ptest
-do_compile_prepend() {
+do_compile:prepend() {
# arrange for some of the golang built ins to be found
(
cd ${WORKDIR}/build/src/
@@ -42,12 +62,23 @@ do_compile_prepend() {
export GO111MODULE=off
}
-
-do_install_append() {
+do_install:append() {
# these bring in dependencies for the -dev package on bash, and we don't
# need them .. so we remove them to avoid needing that rdepends
- rm -rf ${D}/${prefix}/lib/go/src/${GO_IMPORT}/debian/rules
- rm -rf ${D}/${prefix}/lib/go/src/${GO_IMPORT}/scripts
+ rm -rf ${D}/${libdir}/go/src/${GO_IMPORT}/debian/rules
+ rm -rf ${D}/${libdir}/go/src/${GO_IMPORT}/scripts
+ rm -rf ${D}/${libdir}/go/src/${GO_IMPORT}/acceptance_tests
}
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -r ${S}/src/github.com/mikefarah/yq/scripts/* ${D}${PTEST_PATH}/tests
+ cp -r ${S}/src/github.com/mikefarah/yq/acceptance_tests/* ${D}${PTEST_PATH}/tests
+ cp -r ${S}/src/github.com/mikefarah/yq/examples ${D}${PTEST_PATH}/tests
+}
+
+RDEPENDS:${PN}-ptest += " \
+ bash \
+"
+
BBCLASSEXTEND = "native"
diff --git a/recipes-extended/ceph/ceph/0001-add-missing-include-for-atomic-bool.patch b/recipes-extended/ceph/ceph/0001-add-missing-include-for-atomic-bool.patch
deleted file mode 100644
index ffcbc583..00000000
--- a/recipes-extended/ceph/ceph/0001-add-missing-include-for-atomic-bool.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 502be73be3c3645094525aa552f5e53d8782a004 Mon Sep 17 00:00:00 2001
-From: Sakib Sajal <sakib.sajal@windriver.com>
-Date: Fri, 28 Aug 2020 19:36:19 -0400
-Subject: [PATCH] add missing include for atomic<bool>
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- src/tools/rbd/action/Bench.cc | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/tools/rbd/action/Bench.cc b/src/tools/rbd/action/Bench.cc
-index aa6edbc1..90c551c1 100644
---- a/src/tools/rbd/action/Bench.cc
-+++ b/src/tools/rbd/action/Bench.cc
-@@ -9,6 +9,7 @@
- #include "common/ceph_mutex.h"
- #include "include/types.h"
- #include "global/signal_handler.h"
-+#include <atomic>
- #include <iostream>
- #include <boost/accumulators/accumulators.hpp>
- #include <boost/accumulators/statistics/stats.hpp>
---
-2.27.0
-
diff --git a/recipes-extended/ceph/ceph/0001-avoid-to_string-error.patch b/recipes-extended/ceph/ceph/0001-avoid-to_string-error.patch
new file mode 100644
index 00000000..0b4fc984
--- /dev/null
+++ b/recipes-extended/ceph/ceph/0001-avoid-to_string-error.patch
@@ -0,0 +1,73 @@
+From f807220d13adc0656c30d3207d11c70360b88d06 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Wed, 13 Mar 2024 03:14:55 -0700
+Subject: [PATCH] avoid to_string error
+
+Upstream-Status: Pending
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ src/rgw/rgw_asio_client.cc | 15 ++++++++-------
+ 1 file changed, 8 insertions(+), 7 deletions(-)
+
+diff --git a/src/rgw/rgw_asio_client.cc b/src/rgw/rgw_asio_client.cc
+index a0ec0bf5c..17880eda5 100644
+--- a/src/rgw/rgw_asio_client.cc
++++ b/src/rgw/rgw_asio_client.cc
+@@ -3,6 +3,7 @@
+
+ #include <boost/algorithm/string/predicate.hpp>
+ #include <boost/asio/write.hpp>
++#include <string_view>
+
+ #include "rgw_asio_client.h"
+ #include "rgw_perf_counters.h"
+@@ -39,11 +40,11 @@ int ClientIO::init_env(CephContext *cct)
+ const auto& value = header->value();
+
+ if (field == beast::http::field::content_length) {
+- env.set("CONTENT_LENGTH", value.to_string());
++ env.set("CONTENT_LENGTH", std::string(value));
+ continue;
+ }
+ if (field == beast::http::field::content_type) {
+- env.set("CONTENT_TYPE", value.to_string());
++ env.set("CONTENT_TYPE", std::string(value));
+ continue;
+ }
+
+@@ -62,26 +63,26 @@ int ClientIO::init_env(CephContext *cct)
+ }
+ *dest = '\0';
+
+- env.set(buf, value.to_string());
++ env.set(buf, std::string(value));
+ }
+
+ int major = request.version() / 10;
+ int minor = request.version() % 10;
+ env.set("HTTP_VERSION", std::to_string(major) + '.' + std::to_string(minor));
+
+- env.set("REQUEST_METHOD", request.method_string().to_string());
++ env.set("REQUEST_METHOD", std::string(request.method_string()));
+
+ // split uri from query
+ auto uri = request.target();
+ auto pos = uri.find('?');
+ if (pos != uri.npos) {
+ auto query = uri.substr(pos + 1);
+- env.set("QUERY_STRING", query.to_string());
++ env.set("QUERY_STRING", std::string(query));
+ uri = uri.substr(0, pos);
+ }
+- env.set("SCRIPT_URI", uri.to_string());
++ env.set("SCRIPT_URI", std::string(uri));
+
+- env.set("REQUEST_URI", request.target().to_string());
++ env.set("REQUEST_URI", std::string(request.target()));
+
+ char port_buf[16];
+ snprintf(port_buf, sizeof(port_buf), "%d", local_endpoint.port());
+--
+2.42.0
+
diff --git a/recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch b/recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch
deleted file mode 100644
index 4d54549f..00000000
--- a/recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch
+++ /dev/null
@@ -1,184 +0,0 @@
-From 4712fe18405ffea31405308357a8e7fca358bcce Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@windriver.com>
-Date: Mon, 11 Mar 2019 09:14:09 +0800
-Subject: [PATCH] ceph: fix build errors for cross compile
-
-1. set the cross compile sysroot to find the rocksdb library
-2. correct the install path for library in Distutils.cmake
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
-
-Adjust context for v14.2.3
-
-Signed-off-by: He Zhe <zhe.he@windriver.com>
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- cmake/modules/Distutils.cmake | 25 +++++--------------------
- cmake/modules/FindRocksDB.cmake | 4 ++--
- src/compressor/zstd/CMakeLists.txt | 2 +-
- src/pybind/cephfs/setup.py | 8 --------
- src/pybind/rados/setup.py | 8 --------
- src/pybind/rbd/setup.py | 8 --------
- src/pybind/rgw/setup.py | 8 --------
- 7 files changed, 8 insertions(+), 55 deletions(-)
-
-diff --git a/cmake/modules/Distutils.cmake b/cmake/modules/Distutils.cmake
-index 5fe929499d..802eb37e32 100644
---- a/cmake/modules/Distutils.cmake
-+++ b/cmake/modules/Distutils.cmake
-@@ -18,17 +18,8 @@ function(distutils_install_module name)
- cmake_parse_arguments(DU "" "INSTALL_SCRIPT" "" ${ARGN})
- install(CODE "
- set(options --prefix=${CMAKE_INSTALL_PREFIX})
-- if(DEFINED ENV{DESTDIR})
-- if(EXISTS /etc/debian_version)
-- list(APPEND options --install-layout=deb)
-- endif()
-- list(APPEND options
-- --root=\$ENV{DESTDIR}
-- --single-version-externally-managed)
-- if(NOT \"${DU_INSTALL_SCRIPT}\" STREQUAL \"\")
-- list(APPEND options --install-script=${DU_INSTALL_SCRIPT})
-- endif()
-- endif()
-+ list(APPEND options --root=${CMAKE_DESTDIR})
-+ list(APPEND options --install-lib=${PYTHON_SITEPACKAGES_DIR})
- execute_process(
- COMMAND ${Python3_EXECUTABLE}
- setup.py install \${options}
-@@ -50,7 +41,7 @@ function(distutils_add_cython_module target name src)
- # Note: no quotes, otherwise distutils will execute "/usr/bin/ccache gcc"
- # CMake's implicit conversion between strings and lists is wonderful, isn't it?
- string(REPLACE " " ";" cflags ${CMAKE_C_FLAGS})
-- list(APPEND cflags -iquote${CMAKE_SOURCE_DIR}/src/include -w)
-+ list(APPEND cflags -iquote${CMAKE_SOURCE_DIR}/src/include -w --sysroot=${CMAKE_SYSROOT})
- # This little bit of magic wipes out __Pyx_check_single_interpreter()
- # Note: this is reproduced in distutils_install_cython_module
- list(APPEND cflags -D'void0=dead_function\(void\)')
-@@ -108,14 +99,8 @@ function(distutils_install_cython_module name)
- set(ENV{CEPH_LIBDIR} \"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}\")
-
- set(options --prefix=${CMAKE_INSTALL_PREFIX})
-- if(DEFINED ENV{DESTDIR})
-- if(EXISTS /etc/debian_version)
-- list(APPEND options --install-layout=deb)
-- endif()
-- list(APPEND options --root=\$ENV{DESTDIR})
-- else()
-- list(APPEND options --root=/)
-- endif()
-+ list(APPEND options --root=${CMAKE_DESTDIR})
-+ list(APPEND options --install-lib=${PYTHON_SITEPACKAGES_DIR})
- execute_process(
- COMMAND
- ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/setup.py
-diff --git a/cmake/modules/FindRocksDB.cmake b/cmake/modules/FindRocksDB.cmake
-index c5dd3dfaf6..be38597af2 100644
---- a/cmake/modules/FindRocksDB.cmake
-+++ b/cmake/modules/FindRocksDB.cmake
-@@ -9,9 +9,9 @@
- # ROCKSDB_VERSION_MINOR
- # ROCKSDB_VERSION_PATCH
-
--find_path(ROCKSDB_INCLUDE_DIR rocksdb/db.h)
-+find_path(ROCKSDB_INCLUDE_DIR rocksdb/db.h ${CMAKE_SYSROOT})
-
--find_library(ROCKSDB_LIBRARIES rocksdb)
-+find_library(ROCKSDB_LIBRARIES rocksdb ${CMAKE_SYSROOT})
-
- if(ROCKSDB_INCLUDE_DIR AND EXISTS "${ROCKSDB_INCLUDE_DIR}/rocksdb/version.h")
- foreach(ver "MAJOR" "MINOR" "PATCH")
-diff --git a/src/compressor/zstd/CMakeLists.txt b/src/compressor/zstd/CMakeLists.txt
-index a5ebdaf538..a234068150 100644
---- a/src/compressor/zstd/CMakeLists.txt
-+++ b/src/compressor/zstd/CMakeLists.txt
-@@ -9,7 +9,7 @@ ExternalProject_Add(zstd_ext
- CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
- -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
- -DCMAKE_C_FLAGS=${ZSTD_C_FLAGS}
-- -DCMAKE_AR=${CMAKE_AR}
-+ -DCMAKE_SYSROOT=${CMAKE_SYSROOT}
- -DCMAKE_POSITION_INDEPENDENT_CODE=${ENABLE_SHARED}
- -G${CMAKE_GENERATOR}
- BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/libzstd
-diff --git a/src/pybind/cephfs/setup.py b/src/pybind/cephfs/setup.py
-index 19ae6c329a..c9a25ccfff 100755
---- a/src/pybind/cephfs/setup.py
-+++ b/src/pybind/cephfs/setup.py
-@@ -135,14 +135,6 @@ def check_sanity():
- finally:
- shutil.rmtree(tmp_dir)
-
--
--if 'BUILD_DOC' in os.environ.keys():
-- pass
--elif check_sanity():
-- pass
--else:
-- sys.exit(1)
--
- cmdclass = {}
- try:
- from Cython.Build import cythonize
-diff --git a/src/pybind/rados/setup.py b/src/pybind/rados/setup.py
-index e2c5696404..4e99d26721 100755
---- a/src/pybind/rados/setup.py
-+++ b/src/pybind/rados/setup.py
-@@ -134,14 +134,6 @@ def check_sanity():
- finally:
- shutil.rmtree(tmp_dir)
-
--
--if 'BUILD_DOC' in os.environ.keys():
-- pass
--elif check_sanity():
-- pass
--else:
-- sys.exit(1)
--
- cmdclass = {}
- try:
- from Cython.Build import cythonize
-diff --git a/src/pybind/rbd/setup.py b/src/pybind/rbd/setup.py
-index 634484f140..f5bbbdab4f 100755
---- a/src/pybind/rbd/setup.py
-+++ b/src/pybind/rbd/setup.py
-@@ -133,14 +133,6 @@ def check_sanity():
- finally:
- shutil.rmtree(tmp_dir)
-
--
--if 'BUILD_DOC' in os.environ.keys():
-- pass
--elif check_sanity():
-- pass
--else:
-- sys.exit(1)
--
- cmdclass = {}
- try:
- from Cython.Build import cythonize
-diff --git a/src/pybind/rgw/setup.py b/src/pybind/rgw/setup.py
-index eb1591a460..b9f2428cf9 100755
---- a/src/pybind/rgw/setup.py
-+++ b/src/pybind/rgw/setup.py
-@@ -134,14 +134,6 @@ def check_sanity():
- finally:
- shutil.rmtree(tmp_dir)
-
--
--if 'BUILD_DOC' in os.environ.keys():
-- pass
--elif check_sanity():
-- pass
--else:
-- sys.exit(1)
--
- cmdclass = {}
- try:
- from Cython.Build import cythonize
---
-2.20.1
-
diff --git a/recipes-extended/ceph/ceph/0001-cephadm-build.py-avoid-using-python3-from-sysroot-wh.patch b/recipes-extended/ceph/ceph/0001-cephadm-build.py-avoid-using-python3-from-sysroot-wh.patch
new file mode 100644
index 00000000..a353a2f7
--- /dev/null
+++ b/recipes-extended/ceph/ceph/0001-cephadm-build.py-avoid-using-python3-from-sysroot-wh.patch
@@ -0,0 +1,43 @@
+From b9867e6b744b77d97d22333eca3ab3d23d47e2e2 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Thu, 14 Mar 2024 00:19:19 -0700
+Subject: [PATCH] cephadm/build.py: avoid using python3 from sysroot when
+ creating zipapp archive
+
+ceph has the assumption that the python used during build
+is the python used at target, but this is not true for
+cross compilation. We'll need to use the target python3 here,
+otherwise, the cephadm zipapp cannot be executed.
+
+Upstream-Status: Pending
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ src/cephadm/build.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/cephadm/build.py b/src/cephadm/build.py
+index 4264b814f1e..a4483d6f79d 100755
+--- a/src/cephadm/build.py
++++ b/src/cephadm/build.py
+@@ -93,7 +93,7 @@ def _compile(dest, tempdir):
+ zipapp.create_archive(
+ source=tempdir,
+ target=dest,
+- interpreter=sys.executable,
++ interpreter='/usr/bin/python3',
+ compressed=True,
+ )
+ log.info("Zipapp created with compression")
+@@ -102,7 +102,7 @@ def _compile(dest, tempdir):
+ zipapp.create_archive(
+ source=tempdir,
+ target=dest,
+- interpreter=sys.executable,
++ interpreter='/usr/bin/python3',
+ )
+ log.info("Zipapp created without compression")
+
+--
+2.42.0
+
diff --git a/recipes-extended/ceph/ceph/0001-cmake-add-support-for-python3.9.patch b/recipes-extended/ceph/ceph/0001-cmake-add-support-for-python3.9.patch
deleted file mode 100644
index d9116c4f..00000000
--- a/recipes-extended/ceph/ceph/0001-cmake-add-support-for-python3.9.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 1060f2e4362ebd6db23870d442dcd158d219ee92 Mon Sep 17 00:00:00 2001
-From: Yanfei Xu <yanfei.xu@windriver.com>
-Date: Tue, 10 Nov 2020 17:17:30 +0800
-Subject: [PATCH] cmake: add support for python3.9
-
-add support for python3.9.
-
-Upstream-Status: Pending
-
-Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com>
----
- cmake/modules/FindPython/Support.cmake | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cmake/modules/FindPython/Support.cmake b/cmake/modules/FindPython/Support.cmake
-index 6584699b79..c05bbe3306 100644
---- a/cmake/modules/FindPython/Support.cmake
-+++ b/cmake/modules/FindPython/Support.cmake
-@@ -17,7 +17,7 @@ if (NOT DEFINED _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
- message (FATAL_ERROR "FindPython: INTERNAL ERROR")
- endif()
- if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL 3)
-- set(_${_PYTHON_PREFIX}_VERSIONS 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0)
-+ set(_${_PYTHON_PREFIX}_VERSIONS 3.9 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0)
- elseif (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL 2)
- set(_${_PYTHON_PREFIX}_VERSIONS 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2.0)
- else()
---
-2.18.2
-
diff --git a/recipes-extended/ceph/ceph/0001-delete-install-layout-deb.patch b/recipes-extended/ceph/ceph/0001-delete-install-layout-deb.patch
new file mode 100644
index 00000000..91eacfa9
--- /dev/null
+++ b/recipes-extended/ceph/ceph/0001-delete-install-layout-deb.patch
@@ -0,0 +1,37 @@
+From 903bb882a44eb5567f8b1fc7f7c4857c2f03579d Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Wed, 13 Mar 2024 03:41:47 -0700
+Subject: [PATCH] delete install-layout=deb
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ cmake/modules/Distutils.cmake | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/cmake/modules/Distutils.cmake b/cmake/modules/Distutils.cmake
+index daaae4ba6..e606e3890 100644
+--- a/cmake/modules/Distutils.cmake
++++ b/cmake/modules/Distutils.cmake
+@@ -30,9 +30,6 @@ function(distutils_install_module name)
+ install(CODE "
+ set(options --prefix=${CMAKE_INSTALL_PREFIX})
+ if(DEFINED ENV{DESTDIR})
+- if(EXISTS /etc/debian_version)
+- list(APPEND options --install-layout=deb)
+- endif()
+ list(APPEND options
+ --root=\$ENV{DESTDIR}
+ --single-version-externally-managed)
+@@ -136,9 +133,6 @@ function(distutils_install_cython_module name)
+
+ set(options --prefix=${CMAKE_INSTALL_PREFIX})
+ if(DEFINED ENV{DESTDIR})
+- if(EXISTS /etc/debian_version)
+- list(APPEND options --install-layout=deb)
+- endif()
+ list(APPEND options --root=\$ENV{DESTDIR})
+ else()
+ list(APPEND options --root=/)
+--
+2.42.0
+
diff --git a/recipes-extended/ceph/ceph/0001-fix-host-library-paths-were-used.patch b/recipes-extended/ceph/ceph/0001-fix-host-library-paths-were-used.patch
index 310bfa47..24fd0409 100644
--- a/recipes-extended/ceph/ceph/0001-fix-host-library-paths-were-used.patch
+++ b/recipes-extended/ceph/ceph/0001-fix-host-library-paths-were-used.patch
@@ -15,12 +15,12 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
src/pybind/rgw/setup.py | 6 +++++-
4 files changed, 20 insertions(+), 4 deletions(-)
-diff --git a/src/pybind/cephfs/setup.py b/src/pybind/cephfs/setup.py
-index c9a25ccf..972f936c 100755
---- a/src/pybind/cephfs/setup.py
-+++ b/src/pybind/cephfs/setup.py
-@@ -63,9 +63,13 @@ def get_python_flags(libs):
- distutils.sysconfig.get_config_vars('LIBS', 'SYSLIBS')), [])
+Index: ceph-18.2.0/src/pybind/cephfs/setup.py
+===================================================================
+--- ceph-18.2.0.orig/src/pybind/cephfs/setup.py
++++ ceph-18.2.0/src/pybind/cephfs/setup.py
+@@ -63,9 +63,13 @@
+ filter(lambda lib: lib.startswith('-l'), py_libs)]
compiler = new_compiler()
distutils.sysconfig.customize_compiler(compiler)
+ libpl = distutils.sysconfig.get_config_var('LIBPL')
@@ -31,15 +31,15 @@ index c9a25ccf..972f936c 100755
include_dirs=[distutils.sysconfig.get_python_inc()],
- library_dirs=distutils.sysconfig.get_config_vars('LIBDIR', 'LIBPL'),
+ library_dirs=[distutils.sysconfig.get_config_var('LIBDIR'), libpl],
- libraries=libs + [lib.replace('-l', '') for lib in py_libs],
+ libraries=libs + py_libs,
extra_compile_args=filter_unsupported_flags(
compiler.compiler[0],
-diff --git a/src/pybind/rados/setup.py b/src/pybind/rados/setup.py
-index 4e99d267..de24f766 100755
---- a/src/pybind/rados/setup.py
-+++ b/src/pybind/rados/setup.py
-@@ -66,9 +66,13 @@ def get_python_flags(libs):
- distutils.sysconfig.get_config_vars('LIBS', 'SYSLIBS')), [])
+Index: ceph-18.2.0/src/pybind/rados/setup.py
+===================================================================
+--- ceph-18.2.0.orig/src/pybind/rados/setup.py
++++ ceph-18.2.0/src/pybind/rados/setup.py
+@@ -62,9 +62,13 @@
+ filter(lambda lib: lib.startswith('-l'), py_libs)]
compiler = new_compiler()
distutils.sysconfig.customize_compiler(compiler)
+ libpl = distutils.sysconfig.get_config_var('LIBPL')
@@ -50,15 +50,15 @@ index 4e99d267..de24f766 100755
include_dirs=[distutils.sysconfig.get_python_inc()],
- library_dirs=distutils.sysconfig.get_config_vars('LIBDIR', 'LIBPL'),
+ library_dirs=[distutils.sysconfig.get_config_var('LIBDIR'), libpl],
- libraries=libs + [lib.replace('-l', '') for lib in py_libs],
+ libraries=libs + py_libs,
extra_compile_args=filter_unsupported_flags(
compiler.compiler[0],
-diff --git a/src/pybind/rbd/setup.py b/src/pybind/rbd/setup.py
-index f5bbbdab..a1f70e1d 100755
---- a/src/pybind/rbd/setup.py
-+++ b/src/pybind/rbd/setup.py
-@@ -63,9 +63,13 @@ def get_python_flags(libs):
- distutils.sysconfig.get_config_vars('LIBS', 'SYSLIBS')), [])
+Index: ceph-18.2.0/src/pybind/rbd/setup.py
+===================================================================
+--- ceph-18.2.0.orig/src/pybind/rbd/setup.py
++++ ceph-18.2.0/src/pybind/rbd/setup.py
+@@ -63,9 +63,13 @@
+ filter(lambda lib: lib.startswith('-l'), py_libs)]
compiler = new_compiler()
distutils.sysconfig.customize_compiler(compiler)
+ libpl = distutils.sysconfig.get_config_var('LIBPL')
@@ -69,15 +69,15 @@ index f5bbbdab..a1f70e1d 100755
include_dirs=[distutils.sysconfig.get_python_inc()],
- library_dirs=distutils.sysconfig.get_config_vars('LIBDIR', 'LIBPL'),
+ library_dirs=[distutils.sysconfig.get_config_var('LIBDIR'), libpl],
- libraries=libs + [lib.replace('-l', '') for lib in py_libs],
+ libraries=libs + py_libs,
extra_compile_args=filter_unsupported_flags(
compiler.compiler[0],
-diff --git a/src/pybind/rgw/setup.py b/src/pybind/rgw/setup.py
-index b9f2428c..f5119f73 100755
---- a/src/pybind/rgw/setup.py
-+++ b/src/pybind/rgw/setup.py
-@@ -64,9 +64,13 @@ def get_python_flags(libs):
- distutils.sysconfig.get_config_vars('LIBS', 'SYSLIBS')), [])
+Index: ceph-18.2.0/src/pybind/rgw/setup.py
+===================================================================
+--- ceph-18.2.0.orig/src/pybind/rgw/setup.py
++++ ceph-18.2.0/src/pybind/rgw/setup.py
+@@ -64,9 +64,13 @@
+ filter(lambda lib: lib.startswith('-l'), py_libs)]
compiler = new_compiler()
distutils.sysconfig.customize_compiler(compiler)
+ libpl = distutils.sysconfig.get_config_var('LIBPL')
@@ -88,9 +88,6 @@ index b9f2428c..f5119f73 100755
include_dirs=[distutils.sysconfig.get_python_inc()],
- library_dirs=distutils.sysconfig.get_config_vars('LIBDIR', 'LIBPL'),
+ library_dirs=[distutils.sysconfig.get_config_var('LIBDIR'), libpl],
- libraries=libs + [lib.replace('-l', '') for lib in py_libs],
+ libraries=libs + py_libs,
extra_compile_args=filter_unsupported_flags(
compiler.compiler[0],
---
-2.21.0
-
diff --git a/recipes-extended/ceph/ceph/0006-rocksdb-build-with-rocksdb-7.y.z.patch b/recipes-extended/ceph/ceph/0006-rocksdb-build-with-rocksdb-7.y.z.patch
new file mode 100644
index 00000000..c7ca704f
--- /dev/null
+++ b/recipes-extended/ceph/ceph/0006-rocksdb-build-with-rocksdb-7.y.z.patch
@@ -0,0 +1,109 @@
+From 06f23837c757ff7a8aa8db4e5965e25e9ca69f45 Mon Sep 17 00:00:00 2001
+From: "Kaleb S. KEITHLEY" <kkeithle@redhat.com>
+Date: Mon, 23 May 2022 07:41:26 -0400
+Subject: [PATCH 6/6] rocksdb: build with rocksdb-7.y.z
+
+RocksDB 7, specifically 7.2.2 has landed in Fedora 37/rawhide.
+
+https://tracker.ceph.com/issues/55730
+
+Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
+(cherry picked from commit eea10281e6f4078f261b05b6bd9c9c9aec129201)
+
+Upstream-Status: Backport [be3ca10e60ade9dbe7d3e5cb018f32c7cc97e2ed]
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ src/kv/RocksDBStore.cc | 7 ++-----
+ src/kv/rocksdb_cache/BinnedLRUCache.cc | 2 +-
+ src/kv/rocksdb_cache/BinnedLRUCache.h | 2 +-
+ src/kv/rocksdb_cache/ShardedCache.cc | 2 +-
+ src/kv/rocksdb_cache/ShardedCache.h | 4 ++--
+ 5 files changed, 7 insertions(+), 10 deletions(-)
+
+diff --git a/src/kv/RocksDBStore.cc b/src/kv/RocksDBStore.cc
+index 328277e5..115d28fc 100644
+--- a/src/kv/RocksDBStore.cc
++++ b/src/kv/RocksDBStore.cc
+@@ -728,19 +728,16 @@ int64_t RocksDBStore::estimate_prefix_size(const string& prefix,
+ {
+ auto cf = get_cf_handle(prefix);
+ uint64_t size = 0;
+- uint8_t flags =
+- //rocksdb::DB::INCLUDE_MEMTABLES | // do not include memtables...
+- rocksdb::DB::INCLUDE_FILES;
+ if (cf) {
+ string start = key_prefix + string(1, '\x00');
+ string limit = key_prefix + string("\xff\xff\xff\xff");
+ rocksdb::Range r(start, limit);
+- db->GetApproximateSizes(cf, &r, 1, &size, flags);
++ db->GetApproximateSizes(cf, &r, 1, &size);
+ } else {
+ string start = combine_strings(prefix , key_prefix);
+ string limit = combine_strings(prefix , key_prefix + "\xff\xff\xff\xff");
+ rocksdb::Range r(start, limit);
+- db->GetApproximateSizes(default_cf, &r, 1, &size, flags);
++ db->GetApproximateSizes(default_cf, &r, 1, &size);
+ }
+ return size;
+ }
+diff --git a/src/kv/rocksdb_cache/BinnedLRUCache.cc b/src/kv/rocksdb_cache/BinnedLRUCache.cc
+index 1e6ba7af..c4918355 100644
+--- a/src/kv/rocksdb_cache/BinnedLRUCache.cc
++++ b/src/kv/rocksdb_cache/BinnedLRUCache.cc
+@@ -531,7 +531,7 @@ void BinnedLRUCache::DisownData() {
+ #endif // !__SANITIZE_ADDRESS__
+ }
+
+-#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
++#if (ROCKSDB_MAJOR >= 7 || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 22))
+ DeleterFn BinnedLRUCache::GetDeleter(Handle* handle) const
+ {
+ return reinterpret_cast<const BinnedLRUHandle*>(handle)->deleter;
+diff --git a/src/kv/rocksdb_cache/BinnedLRUCache.h b/src/kv/rocksdb_cache/BinnedLRUCache.h
+index ba0c2720..266667f0 100644
+--- a/src/kv/rocksdb_cache/BinnedLRUCache.h
++++ b/src/kv/rocksdb_cache/BinnedLRUCache.h
+@@ -309,7 +309,7 @@ class BinnedLRUCache : public ShardedCache {
+ virtual size_t GetCharge(Handle* handle) const override;
+ virtual uint32_t GetHash(Handle* handle) const override;
+ virtual void DisownData() override;
+-#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
++#if (ROCKSDB_MAJOR >= 7 || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 22))
+ virtual DeleterFn GetDeleter(Handle* handle) const override;
+ #endif
+ // Retrieves number of elements in LRU, for unit test purpose only
+diff --git a/src/kv/rocksdb_cache/ShardedCache.cc b/src/kv/rocksdb_cache/ShardedCache.cc
+index 6cbd89ad..7d160f9c 100644
+--- a/src/kv/rocksdb_cache/ShardedCache.cc
++++ b/src/kv/rocksdb_cache/ShardedCache.cc
+@@ -109,7 +109,7 @@ size_t ShardedCache::GetPinnedUsage() const {
+ return usage;
+ }
+
+-#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
++#if (ROCKSDB_MAJOR >= 7 || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 22))
+ DeleterFn ShardedCache::GetDeleter(Handle* handle) const
+ {
+ uint32_t hash = GetHash(handle);
+diff --git a/src/kv/rocksdb_cache/ShardedCache.h b/src/kv/rocksdb_cache/ShardedCache.h
+index f98421a0..855912d7 100644
+--- a/src/kv/rocksdb_cache/ShardedCache.h
++++ b/src/kv/rocksdb_cache/ShardedCache.h
+@@ -83,11 +83,11 @@ class ShardedCache : public rocksdb::Cache, public PriorityCache::PriCache {
+ virtual size_t GetUsage(rocksdb::Cache::Handle* handle) const override;
+ virtual size_t GetPinnedUsage() const override;
+ virtual size_t GetCharge(Handle* handle) const = 0;
+-#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
++#if (ROCKSDB_MAJOR >= 7 || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 22))
+ virtual DeleterFn GetDeleter(Handle* handle) const override;
+ #endif
+ virtual void DisownData() override = 0;
+-#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
++#if (ROCKSDB_MAJOR >= 7 || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 22))
+ virtual void ApplyToAllEntries(
+ const std::function<void(const rocksdb::Slice& key, void* value, size_t charge,
+ DeleterFn deleter)>& callback,
+--
+2.33.0
+
diff --git a/recipes-extended/ceph/ceph_15.2.9.bb b/recipes-extended/ceph/ceph_18.2.2.bb
index 0d821f0b..e6c44188 100644
--- a/recipes-extended/ceph/ceph_15.2.9.bb
+++ b/recipes-extended/ceph/ceph_18.2.2.bb
@@ -1,35 +1,40 @@
SUMMARY = "User space components of the Ceph file system"
-LICENSE = "LGPLv2.1 & GPLv2 & Apache-2.0 & MIT"
+LICENSE = "LGPL-2.1-only & GPL-2.0-only & Apache-2.0 & MIT"
LIC_FILES_CHKSUM = "file://COPYING-LGPL2.1;md5=fbc093901857fcd118f065f900982c24 \
file://COPYING-GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING;md5=4eb012c221c5fd4b760029a2981a6754 \
+ file://COPYING;md5=5351120989d78252e65dc1a2a92e3617 \
"
-inherit cmake python3native python3-dir systemd
+inherit cmake pkgconfig python3native python3-dir systemd useradd
# Disable python pybind support for ceph temporary, when corss compiling pybind,
# pybind mix cmake and python setup environment, would case a lot of errors.
SRC_URI = "http://download.ceph.com/tarballs/ceph-${PV}.tar.gz \
- file://0001-ceph-fix-build-errors-for-cross-compile.patch \
file://0001-fix-host-library-paths-were-used.patch \
file://ceph.conf \
- file://0001-add-missing-include-for-atomic-bool.patch \
- file://0001-cmake-add-support-for-python3.9.patch \
+ file://0001-avoid-to_string-error.patch \
+ file://0001-delete-install-layout-deb.patch \
+ file://0001-cephadm-build.py-avoid-using-python3-from-sysroot-wh.patch \
"
-SRC_URI[md5sum] = "5a949b91199efe130bfe2e57f200eacd"
-SRC_URI[sha256sum] = "ea7fa2be68b3570c5c3aa02774dca27de20b6f20a8498f65e5c4ef375a209ace"
-SRC_URI[sha1sum] = "0503649d7c7d9268cb61b03bbe839106988f87d7"
-SRC_URI[sha384sum] = "57208c126ea8e640c3979073fd64ce58606f17b4b7ed2e005b0792bdfd51b13391af325658d0f68f961f94175d93e891"
-SRC_URI[sha512sum] = "1f55b0a13bf06df782831d0c9d5f8617c22442ab97fb186e6ccb08183e02bf1756caf8633fa6b1cf156c3fb7b1bdff90a60a1249adfad0b9450036e2329bf8ff"
+SRC_URI[sha256sum] = "e70bb5246b4a5d7aa78eb548677a05cc21d0d47945ba2937fddc7511134ffb57"
-DEPENDS = "boost bzip2 curl expat gperf-native \
- keyutils libaio libibverbs lz4 \
- nspr nss \
+DEPENDS = "boost bzip2 curl cryptsetup expat gperf-native \
+ keyutils libaio libibverbs lua lz4 \
+ nspr nss ninja-native \
oath openldap openssl \
- python3 python3-cython-native rabbitmq-c rocksdb snappy udev \
- valgrind xfsprogs zlib \
+ python3 python3-native python3-cython-native python3-pyyaml-native \
+ rabbitmq-c rocksdb snappy thrift udev \
+ valgrind xfsprogs zlib libgcc zstd re2 \
"
-SYSTEMD_SERVICE_${PN} = " \
+
+
+OECMAKE_C_COMPILER = "${@oecmake_map_compiler('CC', d)[0]} --sysroot=${RECIPE_SYSROOT}"
+OECMAKE_CXX_COMPILER = "${@oecmake_map_compiler('CXX', d)[0]} --sysroot=${RECIPE_SYSROOT}"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --user-group --home-dir /var/lib/ceph --shell /sbin/nologin ceph"
+
+SYSTEMD_SERVICE:${PN} = " \
ceph-radosgw@.service \
ceph-radosgw.target \
ceph-mon@.service \
@@ -38,6 +43,8 @@ SYSTEMD_SERVICE_${PN} = " \
ceph-mds.target \
ceph-osd@.service \
ceph-osd.target \
+ cephfs-mirror@.service \
+ cephfs-mirror.target \
ceph.target \
ceph-rbd-mirror@.service \
ceph-rbd-mirror.target \
@@ -49,52 +56,65 @@ SYSTEMD_SERVICE_${PN} = " \
ceph-immutable-object-cache@.service \
ceph-immutable-object-cache.target \
"
-OECMAKE_GENERATOR = "Unix Makefiles"
-EXTRA_OECMAKE = "-DWITH_MANPAGE=OFF \
+EXTRA_OECMAKE += "-DWITH_MANPAGE=OFF \
+ -DWITH_JAEGER=OFF \
+ -DWITH_SYSTEM_ZSTD=ON \
-DWITH_FUSE=OFF \
-DWITH_SPDK=OFF \
-DWITH_LEVELDB=OFF \
-DWITH_LTTNG=OFF \
-DWITH_BABELTRACE=OFF \
-DWITH_TESTS=OFF \
+ -DWITH_RADOSGW_SELECT_PARQUET=OFF \
+ -DWITH_RADOSGW_ARROW_FLIGHT=OFF \
-DWITH_MGR=OFF \
-DWITH_MGR_DASHBOARD_FRONTEND=OFF \
-DWITH_SYSTEM_BOOST=ON \
-DWITH_SYSTEM_ROCKSDB=ON \
-DWITH_RDMA=OFF \
-DWITH_RADOSGW_AMQP_ENDPOINT=OFF \
- -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 \
- -DPython3_EXECUTABLE=${PYTHON} \
-DWITH_RADOSGW_KAFKA_ENDPOINT=OFF \
-DWITH_REENTRANT_STRSIGNAL=ON \
-"
-
-export STAGING_DIR_HOST
+ -DWITH_PYTHON3=3.12 \
+ -DPYTHON_DESIRED=3 \
+ -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${WORKDIR}/toolchain.cmake \
+ "
-do_configure_prepend () {
+do_configure:prepend () {
echo "set( CMAKE_SYSROOT \"${RECIPE_SYSROOT}\" )" >> ${WORKDIR}/toolchain.cmake
echo "set( CMAKE_DESTDIR \"${D}\" )" >> ${WORKDIR}/toolchain.cmake
echo "set( PYTHON_SITEPACKAGES_DIR \"${PYTHON_SITEPACKAGES_DIR}\" )" >> ${WORKDIR}/toolchain.cmake
+ # echo "set( CMAKE_C_COMPILER_WORKS TRUE)" >> ${WORKDIR}/toolchain.cmake
+ # echo "set( CMAKE_CXX_COMPILER_FORCED TRUE)" >> ${WORKDIR}/toolchain.cmake
+ echo "set( CMAKE_C_COMPILER_FORCED TRUE )" >> ${WORKDIR}/toolchain.cmake
}
-do_install_append () {
+do_compile:prepend() {
+ export BUILD_DOC=1
+}
+
+do_install:prepend() {
+ export BUILD_DOC=1
+}
+
+do_install:append () {
sed -i -e 's:^#!/usr/bin/python$:&3:' \
-e 's:${WORKDIR}.*python3:${bindir}/python3:' \
${D}${bindir}/ceph ${D}${bindir}/ceph-crash \
- ${D}${bindir}/ceph-volume ${D}${bindir}/ceph-volume-systemd
+ ${D}${bindir}/cephfs-top \
+ ${D}${sbindir}/ceph-volume ${D}${sbindir}/ceph-volume-systemd
find ${D} -name SOURCES.txt | xargs sed -i -e 's:${WORKDIR}::'
install -d ${D}${sysconfdir}/ceph
install -m 644 ${WORKDIR}/ceph.conf ${D}${sysconfdir}/ceph/
install -d ${D}${systemd_unitdir}
- mv ${D}${libexecdir}/systemd/system ${D}${systemd_unitdir}
mv ${D}${libexecdir}/ceph/ceph-osd-prestart.sh ${D}${libdir}/ceph
mv ${D}${libexecdir}/ceph/ceph_common.sh ${D}${libdir}/ceph
# WITH_FUSE is set to OFF, remove ceph-fuse related units
rm ${D}${systemd_unitdir}/system/ceph-fuse.target ${D}${systemd_unitdir}/system/ceph-fuse@.service
}
-do_install_append_class-target () {
+do_install:append:class-target () {
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${sysconfdir}/tmpfiles.d
echo "d /var/lib/ceph/crash/posted 0755 root root - -" > ${D}${sysconfdir}/tmpfiles.d/ceph-placeholder.conf
@@ -106,40 +126,52 @@ do_install_append_class-target () {
fi
}
-pkg_postinst_${PN}() {
+pkg_postinst:${PN}() {
if [ -z "$D" ] && [ -e ${sysconfdir}/init.d/populate-volatile.sh ] ; then
${sysconfdir}/init.d/populate-volatile.sh update
fi
}
-FILES_${PN} += "\
+FILES:${PN} += "\
${libdir}/rados-classes/*.so.* \
${libdir}/ceph/compressor/*.so \
${libdir}/rados-classes/*.so \
${libdir}/ceph/*.so \
+ ${libdir}/libcephsqlite.so \
"
-FILES_${PN} += " \
+FILES:${PN} += " \
/etc/tmpfiles.d/ceph-placeholder.conf \
/etc/default/volatiles/99_ceph-placeholder \
"
-FILES_${PN}-python = "\
+FILES:${PN}-dev = " \
+ ${includedir} \
+ ${libdir}/libcephfs.so \
+ ${libdir}/librados*.so \
+ ${libdir}/librbd.so \
+ ${libdir}/librgw.so \
+"
+
+FILES:${PN}-python = "\
${PYTHON_SITEPACKAGES_DIR}/* \
"
-RDEPENDS_${PN} += "\
+RDEPENDS:${PN} += "\
python3-core \
python3-misc \
python3-modules \
python3-prettytable \
${PN}-python \
+ gawk \
+ bash \
"
COMPATIBLE_HOST = "(x86_64).*"
PACKAGES += " \
${PN}-python \
"
-INSANE_SKIP_${PN}-python += "ldflags"
-INSANE_SKIP_${PN} += "dev-so"
+INSANE_SKIP:${PN}-python += "ldflags buildpaths"
+INSANE_SKIP:${PN} += "dev-so"
+INSANE_SKIP:${PN}-dbg += "buildpaths"
CCACHE_DISABLE = "1"
CVE_PRODUCT = "ceph ceph_storage ceph_storage_mon ceph_storage_osd"
diff --git a/recipes-extended/cloud-init/cloud-init/0001-setup.py-check-for-install-anywhere-in-args.patch b/recipes-extended/cloud-init/cloud-init/0001-setup.py-check-for-install-anywhere-in-args.patch
index f61b82ce..e5b214fe 100644
--- a/recipes-extended/cloud-init/cloud-init/0001-setup.py-check-for-install-anywhere-in-args.patch
+++ b/recipes-extended/cloud-init/cloud-init/0001-setup.py-check-for-install-anywhere-in-args.patch
@@ -11,24 +11,23 @@ So rather than checking for install to be argv[1], we check for it
anywhere in the arguments are trigger the template replacement to
happen.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/setup.py b/setup.py
-index cbacf48e..5f13d9eb 100755
---- a/setup.py
-+++ b/setup.py
-@@ -87,7 +87,7 @@ def render_tmpl(template, mode=None):
+Index: git/setup.py
+===================================================================
+--- git.orig/setup.py
++++ git/setup.py
+@@ -60,7 +60,7 @@
+ that files are different outside of the debian directory."""
- # older versions of tox use bdist (xenial), and then install from there.
# newer versions just use install.
-- if not (sys.argv[1] == 'install' or sys.argv[1].startswith('bdist*')):
+- if "install" not in sys.argv:
+ if not ('install' in sys.argv or sys.argv[1].startswith('bdist*')):
return template
tmpl_ext = ".tmpl"
---
-2.25.1
-
diff --git a/recipes-extended/cloud-init/cloud-init/0001-setup.py-respect-udevdir-variable.patch b/recipes-extended/cloud-init/cloud-init/0001-setup.py-respect-udevdir-variable.patch
deleted file mode 100644
index 94ec98ac..00000000
--- a/recipes-extended/cloud-init/cloud-init/0001-setup.py-respect-udevdir-variable.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From d7a6b8f765e9a08a8811331298e76ebd7a0c7076 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Sat, 7 Nov 2020 15:55:23 +0000
-Subject: [PATCH] setup.py respect udevdir variable
-
-* with usrmerge cloud-init triggers QA error:
- ERROR: cloud-init-20.3-r0 do_package_qa: QA Issue: cloud-init package is not obeying usrmerge distro feature. /lib should be relocated to /usr. [usrmerge]
- ERROR: cloud-init-20.3-r0 do_package_qa: QA run found fatal errors. Please consider fixing them.
- because of:
- /lib/udev/rules.d/66-azure-ephemeral.rules
-
-Upstream-Status: Pending
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- setup.py | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index cbacf48e..5e137a6d 100755
---- a/setup.py
-+++ b/setup.py
-@@ -142,6 +142,7 @@ INITSYS_ROOTS = {
- 'sysvinit_deb': 'etc/init.d',
- 'sysvinit_openrc': 'etc/init.d',
- 'sysvinit_suse': 'etc/init.d',
-+ 'udevdir': pkg_config_read('udev', 'udevdir'),
- 'systemd': pkg_config_read('systemd', 'systemdsystemunitdir'),
- 'systemd.generators': pkg_config_read('systemd',
- 'systemdsystemgeneratordir'),
-@@ -264,7 +265,7 @@ if not platform.system().endswith('BSD'):
- (ETC + '/NetworkManager/dispatcher.d/',
- ['tools/hook-network-manager']),
- (ETC + '/dhcp/dhclient-exit-hooks.d/', ['tools/hook-dhclient']),
-- (LIB + '/udev/rules.d', [f for f in glob('udev/*.rules')])
-+ ('udevdir' + '/rules.d', [f for f in glob('udev/*.rules')])
- ])
- # Use a subclass for install that handles
- # adding on the right init system configuration files
---
-2.27.0
-
diff --git a/recipes-extended/cloud-init/cloud-init/cloud-init-source-local-lsb-functions.patch b/recipes-extended/cloud-init/cloud-init/cloud-init-source-local-lsb-functions.patch
index 869fb311..0b396781 100644
--- a/recipes-extended/cloud-init/cloud-init/cloud-init-source-local-lsb-functions.patch
+++ b/recipes-extended/cloud-init/cloud-init/cloud-init-source-local-lsb-functions.patch
@@ -3,6 +3,8 @@ From: Bruce Ashfield <bruce.ashfield@windriver.com>
Date: Thu, 6 Mar 2014 01:55:09 -0500
Subject: [PATCH] cloud-init: source local lsb functions
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
---
sysvinit/debian/cloud-config | 1 +
diff --git a/recipes-extended/cloud-init/cloud-init_20.3.bb b/recipes-extended/cloud-init/cloud-init_git.bb
index b9efb31f..6cb3d3b5 100644
--- a/recipes-extended/cloud-init/cloud-init_20.3.bb
+++ b/recipes-extended/cloud-init/cloud-init_git.bb
@@ -1,53 +1,64 @@
DESCRIPTION = "Init scripts for use on cloud images"
HOMEPAGE = "https://github.com/canonical/cloud-init"
SECTION = "devel/python"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c6dd79b6ec2130a3364f6fa9d6380408"
+LICENSE = "GPL-3.0-only | Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c6dd79b6ec2130a3364f6fa9d6380408 \
+ file://LICENSE-GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE-Apache2.0;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+"
-SRCREV = "1431c8a1bddaabf85e1bbb32bf316a3aef20036e"
-SRC_URI = "git://github.com/canonical/cloud-init \
+SRCREV = "e982c20875db3750c8dfc1915e7a4cee37376924"
+SRC_URI = "git://github.com/canonical/cloud-init;branch=24.1.x;protocol=https \
file://cloud-init-source-local-lsb-functions.patch \
file://0001-setup.py-check-for-install-anywhere-in-args.patch \
- file://0001-setup.py-respect-udevdir-variable.patch \
"
+PV = "v23.4.1+git"
+
S = "${WORKDIR}/git"
-DISTUTILS_INSTALL_ARGS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '--init-system=sysvinit_deb', '', d)}"
-DISTUTILS_INSTALL_ARGS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--init-system=systemd', '', d)}"
+DISTUTILS_INSTALL_ARGS:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '--init-system=sysvinit_deb', '', d)}"
+DISTUTILS_INSTALL_ARGS:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--init-system=systemd', '', d)}"
-do_install_append() {
+do_install:append() {
ln -s ${libdir}/${BPN}/uncloud-init ${D}${sysconfdir}/cloud/uncloud-init
ln -s ${libdir}/${BPN}/write-ssh-key-fingerprints ${D}${sysconfdir}/cloud/write-ssh-key-fingerprints
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -m 755 -d ${D}${sysconfdir}/init.d/
+ install -m 755 ${S}/sysvinit/debian/* ${D}${sysconfdir}/init.d/
+ fi
+
}
inherit pkgconfig
-inherit setuptools3
+inherit setuptools3_legacy
inherit update-rc.d
inherit systemd
-# setup.py calls "pkg-config systemd --variable=systemdsystemunitdir" and needs to find our systemd
+# setup.py calls "pkg-config systemd --variable=systemdsystemunitdir" and needs to find our dev manager
DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'udev', '', d)}"
inherit python3native
PACKAGES += "${PN}-systemd"
-FILES_${PN} += "${sysconfdir}/* \
- ${datadir}/*"
+FILES:${PN} += "${sysconfdir}/* \
+ ${datadir}/* \
+ ${nonarch_libdir}/${BPN}/*"
-FILES_${PN}-systemd += "${systemd_unitdir}/*"
-RDEPENDS_${PN}-systemd += " ${PN}"
+FILES:${PN}-systemd += "${systemd_unitdir}/*"
+RDEPENDS:${PN}-systemd += " ${PN}"
INITSCRIPT_PACKAGES = "${PN}"
-INITSCRIPT_NAME_${BPN} = "cloud-init"
+INITSCRIPT_NAME:${BPN} = "cloud-init"
DEPENDS += "python3-pyyaml-native \
python3-requests-native \
python3-jinja2-native \
"
-RDEPENDS_${PN} = "python3 \
+RDEPENDS:${PN} = "python3 \
python3-jinja2 \
python3-configobj \
python3-requests \
@@ -55,5 +66,8 @@ RDEPENDS_${PN} = "python3 \
python3-jsonschema \
python3-pyyaml \
python3-oauthlib \
+ python3-netifaces \
+ python3-charset-normalizer \
+ bash \
"
diff --git a/recipes-extended/dev86/dev86/0001-cpp-Makefile-respect-LDFLAGS-when-building-bcc-cpp.patch b/recipes-extended/dev86/dev86/0001-cpp-Makefile-respect-LDFLAGS-when-building-bcc-cpp.patch
new file mode 100644
index 00000000..85f3aef8
--- /dev/null
+++ b/recipes-extended/dev86/dev86/0001-cpp-Makefile-respect-LDFLAGS-when-building-bcc-cpp.patch
@@ -0,0 +1,25 @@
+From 12f3a54801e15f3bdd5222ca1487f2fe36141c5d Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Fri, 14 May 2021 06:30:18 -0700
+Subject: [PATCH] cpp/Makefile: respect LDFLAGS when building bcc-cpp
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ cpp/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cpp/Makefile b/cpp/Makefile
+index 0ea43cc..303b43c 100644
+--- a/cpp/Makefile
++++ b/cpp/Makefile
+@@ -3,7 +3,7 @@ CFLAGS=-Wall -Wstrict-prototypes
+ all: bcc-cpp
+
+ bcc-cpp: main.o cpp.o hash.o token1.o token2.o
+- $(CC) $(CFLAGS) -o bcc-cpp main.o cpp.o hash.o token1.o token2.o
++ $(CC) $(CFLAGS) $(LDFLAGS) -o bcc-cpp main.o cpp.o hash.o token1.o token2.o
+
+ clean realclean:
+ rm -f bcc-cpp main.o cpp.o hash.o token1.o token2.o tmp.h
diff --git a/recipes-extended/dev86/dev86/0001-cpp-fix-race-writing-token.h-files.patch b/recipes-extended/dev86/dev86/0001-cpp-fix-race-writing-token.h-files.patch
new file mode 100644
index 00000000..e009e01a
--- /dev/null
+++ b/recipes-extended/dev86/dev86/0001-cpp-fix-race-writing-token.h-files.patch
@@ -0,0 +1,45 @@
+Upstream-Status: Submitted [https://github.com/jbruchon/dev86/pull/23]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From f507ee398ae20e4e97f01dfbd9a8709a90bc760f Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Fri, 29 Apr 2022 16:44:08 +0100
+Subject: [PATCH] cpp: fix race writing token.h files
+
+The rules for token1.h and token2.h both write to a temporary file tmp.h
+before renaming to token1.h or token2.h. However, in a parallel build
+these will execute at the same time and race.
+
+ gperf -aptTc -N is_ctok -H hash1 token1.tok > tmp.h
+ gperf -aptTc -k1,3 -N is_ckey -H hash2 token2.tok > tmp.h
+ mv tmp.h token1.h
+ mv tmp.h token2.h
+ mv: cannot stat 'tmp.h': No such file or directory
+
+By using gperf --output-file, the race is avoided entirely.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+---
+ cpp/Makefile | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/cpp/Makefile b/cpp/Makefile
+index 0ea43cc..743694f 100644
+--- a/cpp/Makefile
++++ b/cpp/Makefile
+@@ -20,9 +20,7 @@ token1.o: token1.h
+ token2.o: token2.h
+
+ token1.h: token1.tok
+- gperf -aptTc -N is_ctok -H hash1 token1.tok > tmp.h
+- mv tmp.h token1.h
++ gperf -aptTc -N is_ctok -H hash1 --output-file $@ $<
+
+ token2.h: token2.tok
+- gperf -aptTc -k1,3 -N is_ckey -H hash2 token2.tok > tmp.h
+- mv tmp.h token2.h
++ gperf -aptTc -k1,3 -N is_ckey -H hash2 --output-file $@ $<
+--
+2.25.1
+
diff --git a/recipes-extended/dev86/dev86/0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch b/recipes-extended/dev86/dev86/0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch
new file mode 100644
index 00000000..47c283b2
--- /dev/null
+++ b/recipes-extended/dev86/dev86/0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch
@@ -0,0 +1,30 @@
+From e908a3ad04bb40e425542b85fbb3a1eb5a38e194 Mon Sep 17 00:00:00 2001
+From: Tee-Kiah Chia <tkchia@users.noreply.github.com>
+Date: Thu, 27 Feb 2020 00:52:05 +0800
+Subject: [PATCH] [cpp] update token1.tok to make new gperf happy; regen.
+ token1.h
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Upstream-Status: Pending [it was submitted in https://github.com/jbruchon/dev86/pull/19
+but then closed by author]
+
+Remove regenerated token1.h as we'll force it to regenerate in do_compile.
+
+---
+ cpp/token1.h | 170 +++++++++++++++++++++++++++++++++----------------
+ cpp/token1.tok | 2 +-
+ 2 files changed, 115 insertions(+), 57 deletions(-)
+
+diff --git a/cpp/token1.tok b/cpp/token1.tok
+index cd668ce..a98926f 100644
+--- a/cpp/token1.tok
++++ b/cpp/token1.tok
+@@ -7,7 +7,7 @@ struct token_trans { char * name; int token; };
+ -=, TK_SUB_ASSIGN
+ *=, TK_MUL_ASSIGN
+ /=, TK_DIV_ASSIGN
+-%=, TK_MOD_ASSIGN
++"%=", TK_MOD_ASSIGN
+ &=, TK_AND_ASSIGN
+ ^=, TK_XOR_ASSIGN
+ |=, TK_OR_ASSIGN
diff --git a/recipes-extended/dev86/dev86/0004-regen-token2.h-token1.h-with-gperf-3.1.patch b/recipes-extended/dev86/dev86/0004-regen-token2.h-token1.h-with-gperf-3.1.patch
new file mode 100644
index 00000000..4a5bb25e
--- /dev/null
+++ b/recipes-extended/dev86/dev86/0004-regen-token2.h-token1.h-with-gperf-3.1.patch
@@ -0,0 +1,59 @@
+From ce2b9747d51df2a4c358a037950f0464f3f53fe8 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Fri, 14 May 2021 14:31:50 +0000
+Subject: [PATCH] regen token2.h, token1.h with gperf-3.1
+
+* update cc.h, token1.c, token2.c to be compatible with
+ gperf-3.1 output
+
+Upstream-Status: Pending
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+Remove regenerated token2.h as we'll force it to regenerate in do_compile.
+---
+ cpp/cc.h | 4 +-
+ cpp/token1.c | 2 +-
+ cpp/token1.h | 22 ++----
+ cpp/token2.c | 2 +-
+ cpp/token2.h | 211 +++++++++++++++++++++++++++++++--------------------
+ 5 files changed, 140 insertions(+), 101 deletions(-)
+
+diff --git a/cpp/cc.h b/cpp/cc.h
+index 9c298e7..3724543 100644
+--- a/cpp/cc.h
++++ b/cpp/cc.h
+@@ -25,8 +25,8 @@ extern int dialect;
+ extern int gettok P((void));
+
+ struct token_trans { char * name; int token; };
+-struct token_trans * is_ctok P((const char *str, unsigned int len));
+-struct token_trans * is_ckey P((const char *str, unsigned int len));
++struct token_trans * is_ctok P((register const char *str, register size_t len));
++struct token_trans * is_ckey P((register const char *str, register size_t len));
+
+ #define WORDSIZE 128
+ #define TK_WSPACE 256
+diff --git a/cpp/token1.c b/cpp/token1.c
+index f3aa420..cc47f3e 100644
+--- a/cpp/token1.c
++++ b/cpp/token1.c
+@@ -6,6 +6,6 @@
+ #ifdef __GNUC__
+ __inline
+ #endif
+-static unsigned int hash1 P((register const char *, register unsigned int));
++static unsigned int hash1 P((register const char *, register size_t));
+
+ #include "token1.h"
+diff --git a/cpp/token2.c b/cpp/token2.c
+index b4d22b1..fbc790d 100644
+--- a/cpp/token2.c
++++ b/cpp/token2.c
+@@ -6,6 +6,6 @@
+ #ifdef __GNUC__
+ __inline
+ #endif
+-static unsigned int hash2 P((register const char *, register unsigned int));
++static unsigned int hash2 P((register const char *, register size_t));
+
+ #include "token2.h"
diff --git a/recipes-extended/dev86/dev86/cross.patch b/recipes-extended/dev86/dev86/cross.patch
new file mode 100644
index 00000000..fd62c5dd
--- /dev/null
+++ b/recipes-extended/dev86/dev86/cross.patch
@@ -0,0 +1,29 @@
+Build ifdef using BUILD_CC, not CC.
+
+Upstream-Status: Submitted [https://github.com/jbruchon/dev86/pull/22]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/Makefile b/Makefile
+index 8a61b65..99f41de 100644
+--- a/Makefile
++++ b/Makefile
+@@ -22,6 +22,10 @@ CFLAGS= -O
+ IFDEFNAME= ifdef
+ WD=$(shell pwd)
+
++BUILD_CC ?= $(CC)
++BUILD_CFLAGS ?= $(CFLAGS)
++BUILD_LDFLAGS ?= $(LDFLAGS)
++
+ # Some makes take the last of a list as the default ...
+ all: make.fil
+ PATH="`pwd`/bin:$$PATH" $(MAKE) -f make.fil VERSION=$(VERSION) TOPDIR=`pwd` $@
+@@ -65,7 +69,7 @@ make.fil: $(IFDEFNAME) makefile.in
+ @rm -f tmp.mak tmp.sed
+
+ $(IFDEFNAME): ifdef.c
+- $(CC) $(IFDEFARCH) $(CFLAGS) $(IFDEFFLAGS) $(LDFLAGS) -o $(IFDEFNAME) ifdef.c
++ $(BUILD_CC) $(IFDEFARCH) $(BUILD_CFLAGS) $(IFDEFFLAGS) $(BUILD_LDFLAGS) -o $(IFDEFNAME) ifdef.c
+
+ uninstall:
+ @echo 'Sorry, no go; it was just wrong.'
diff --git a/recipes-extended/dev86/dev86_0.16.21.bb b/recipes-extended/dev86/dev86_0.16.21.bb
deleted file mode 100644
index cf64a9d1..00000000
--- a/recipes-extended/dev86/dev86_0.16.21.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-DESCRIPTION = "This is a cross development C compiler, assembler and linker environment for the production of 8086 executables (Optionally MSDOS COM)"
-HOMEPAGE = "http://www.debath.co.uk/dev86/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-SECTION = "console/tools"
-
-SRCREV = "c6f36cbafa979710b809f117562773dbd6825918"
-SRC_URI = "git://github.com/lkundrak/${BPN}.git;protocol=https"
-
-S = "${WORKDIR}/git"
-
-BBCLASSEXTEND = "native"
-EXTRA_OEMAKE = "VERSION=${PV} PREFIX=${prefix} DIST=${D} LDFLAGS='${LDFLAGS}'"
-
-do_compile() {
- # ${S}/Makefile does respect LDFLAGS, but ${S}/cpp/Makefile doesn't when building bcc-cpp
- sed -i 's#$(CC) $(CFLAGS) -o bcc-cpp#$(CC) $(CFLAGS) $(LDFLAGS) -o bcc-cpp#g' ${S}/cpp/Makefile
- oe_runmake make.fil
- oe_runmake -f make.fil bcc86 as86 ld86
-
-}
-
-do_install() {
-
- if [ "${prefix}"=="" ] ; then
- export prefix=/usr
- fi
-
- oe_runmake install-bcc
- ln -s ../lib/bcc/bcc-cpp ${D}${prefix}/bin/bcc-cpp
- ln -s ../lib/bcc/bcc-cc1 ${D}${prefix}/bin/bcc-cc1
-
-}
-COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
-FILES_${PN} += "${libdir}/bcc"
-INSANE_SKIP_${PN} = "already-stripped"
diff --git a/recipes-extended/dev86/dev86_git.bb b/recipes-extended/dev86/dev86_git.bb
new file mode 100644
index 00000000..a3d0fded
--- /dev/null
+++ b/recipes-extended/dev86/dev86_git.bb
@@ -0,0 +1,43 @@
+DESCRIPTION = "This is a cross development C compiler, assembler and linker environment for the production of 8086 executables (Optionally MSDOS COM)"
+HOMEPAGE = "http://www.debath.co.uk/dev86/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+SECTION = "console/tools"
+
+BASE_PV="0.16.21"
+PV = "${BASE_PV}+git"
+SRCREV = "e254e0b19651d3b8a20225b40281c9974a95dec4"
+SRC_URI = "git://github.com/jbruchon/${BPN}.git;protocol=https;branch=master \
+ file://0001-cpp-Makefile-respect-LDFLAGS-when-building-bcc-cpp.patch \
+ file://0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch \
+ file://0004-regen-token2.h-token1.h-with-gperf-3.1.patch \
+ file://cross.patch \
+ file://0001-cpp-fix-race-writing-token.h-files.patch \
+"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "gperf-native"
+
+BBCLASSEXTEND = "native nativesdk"
+EXTRA_OEMAKE = "VERSION=${BASE_PV} PREFIX=${prefix} DIST=${D} LDFLAGS='${LDFLAGS}' INEXE=''"
+
+do_compile() {
+ # always regenerate token1.h, token2.h for deterministic behavior
+ rm -f ${S}/cpp/token1.h ${S}/cpp/token2.h
+ oe_runmake make.fil
+ oe_runmake -f make.fil bcc86 as86 ld86
+}
+
+do_install() {
+
+ if [ "${prefix}"=="" ] ; then
+ export prefix=/usr
+ fi
+
+ oe_runmake install-bcc
+ ln -s ../lib/bcc/bcc-cpp ${D}${prefix}/bin/bcc-cpp
+ ln -s ../lib/bcc/bcc-cc1 ${D}${prefix}/bin/bcc-cc1
+}
+
+FILES:${PN} += "${libdir}/bcc"
diff --git a/recipes-extended/diod/diod_1.0.24.bb b/recipes-extended/diod/diod_1.0.24.bb
index a4a85284..6019fbfb 100644
--- a/recipes-extended/diod/diod_1.0.24.bb
+++ b/recipes-extended/diod/diod_1.0.24.bb
@@ -5,32 +5,30 @@ Although the kernel client supports several 9P variants, diod only supports \
9P2000.L, and only in its feature-complete form, as it appeared in 2.6.38."
SECTION = "console/network"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-PV = "1.0.24+git${SRCPV}"
-SRCREV = "0ea3fe3d829b5085307cd27a512708d99ef48199"
-SRC_URI = "git://github.com/chaos/diod.git;protocol=git \
+PV = "1.0.24+git"
+SRCREV = "b4b5e8e00ed11b21d7fcf05a080dc054a8eac2d6"
+SRC_URI = "git://github.com/chaos/diod.git;protocol=https;branch=master \
file://diod \
file://diod.conf \
- file://0001-build-allow-builds-to-work-with-separate-build-dir.patch \
- file://0002-auto.diod.in-remove-bashisms.patch \
- file://0001-diod-ops.c-add-header-file-for-makedev.patch \
- file://0001-drod-add-option-to-config-systemddir.patch \
- "
+ file://0001-build-Find-lua-with-pkg-config.patch \
+ file://0002-Handle-various-time_t-sizes-in-printf-and-scanf.patch \
+ "
DEPENDS = "libcap ncurses tcp-wrappers lua"
-EXTRA_OECONF = "--with-systemddir=${systemd_unitdir}/system"
+EXTRA_OEMAKE += "systemddir=${systemd_unitdir}/system"
S = "${WORKDIR}/git"
-inherit autotools systemd
+inherit autotools pkgconfig systemd
-do_install_append () {
+do_install:append () {
# install our init based on start-stop-daemon
install -D -m 0755 ${WORKDIR}/diod ${D}${sysconfdir}/init.d/diod
# install a real(not commented) configuration file for diod
install -m 0644 ${WORKDIR}/diod.conf ${D}${sysconfdir}/diod.conf
}
-FILES_${PN} += "${systemd_unitdir}"
+FILES:${PN} += "${systemd_unitdir}"
diff --git a/recipes-extended/diod/files/0001-build-Find-lua-with-pkg-config.patch b/recipes-extended/diod/files/0001-build-Find-lua-with-pkg-config.patch
new file mode 100644
index 00000000..9f61792a
--- /dev/null
+++ b/recipes-extended/diod/files/0001-build-Find-lua-with-pkg-config.patch
@@ -0,0 +1,50 @@
+From 8124eec4e59222f1c3f3dc4d7e6706e13c33755c Mon Sep 17 00:00:00 2001
+From: Ola x Nilsson <olani@axis.com>
+Date: Wed, 6 Mar 2024 18:40:16 +0100
+Subject: [PATCH] build: Find lua with pkg-config
+
+ax_lua.m4 does not support cross compilation.
+
+Upstream-Status: Inappropriate (Embedded specific)
+
+---
+ configure.ac | 26 +++++++++++++++++++++++++-
+ 1 file changed, 25 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index e8fcdb2..f3ebdc5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -121,7 +121,31 @@ AC_ARG_ENABLE([config],
+ [AS_HELP_STRING([--disable-config], [disable lua config file support])])
+
+ AS_IF([test "x$enable_config" != "xno"], [
+- AX_PROG_LUA([5.1],[5.5])
++ dnl Use pkg_config to check for lua settings. This is not standard
++ dnl as lua typically does not distribute a pc file. The
++ dnl OpenEmbedded recipe adds one that can be used. Reuse/replicate
++ dnl as much of AX_PROG_LUA as possible so AX_LUA_HEADERS and
++ dnl AX_LUA_LIBS are still usable.
++ PKG_CHECK_EXISTS([lua], [
++ AS_IF([
++ $PKG_CONFIG --atleast-version=5.1 lua && $PKG_CONFIG --max-version=5.5 lua
++ ],[
++ AC_ARG_VAR([LUA], [The LUA interpreter, e.g. /usr/bin/lua5.1])
++ dnl should really check that the file exists ...
++ AC_SUBST([LUA], [${bindir}/lua])
++ AC_CACHE_CHECK([for $LUA version], [ax_cv_lua_version], [
++ ax_cv_lua_version=[`$PKG_CONFIG --modversion lua | $SED 's/^\([0-9]\+\.[0-9]\+\).*/\1/'`]
++ ])
++ AS_IF([test "x$ax_cv_lua_version" = 'x'],
++ [AC_MSG_ERROR([invalid Lua version number])])
++ AC_SUBST([LUA_VERSION], [$ax_cv_lua_version])
++ AC_SUBST([LUA_SHORT_VERSION], [`echo "$LUA_VERSION" | $SED 's|\.||'`])
++ ],[
++ AC_MSG_ERROR([Incorrect lua version])
++ ])
++ ],[
++ AX_PROG_LUA([5.1],[5.5])
++ ])
+ AX_LUA_HEADERS([],[
+ AC_MSG_ERROR([Install lua headers or configure with --disable-config])
+ ])
diff --git a/recipes-extended/diod/files/0001-build-allow-builds-to-work-with-separate-build-dir.patch b/recipes-extended/diod/files/0001-build-allow-builds-to-work-with-separate-build-dir.patch
deleted file mode 100644
index f40e0eb5..00000000
--- a/recipes-extended/diod/files/0001-build-allow-builds-to-work-with-separate-build-dir.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-From 43403468298ef4167baa5d84de2ee2eaf7f4007a Mon Sep 17 00:00:00 2001
-From: Mark Asselstine <mark.asselstine@windriver.com>
-Date: Fri, 9 Jan 2015 18:34:04 +0000
-Subject: [PATCH 1/2] build: allow builds to work with separate build dir
-
-Remove assumptions in include paths that assume the build
-is happening in the source directories.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
----
- diod/Makefile.am | 2 +-
- libdiod/Makefile.am | 2 +-
- liblsd/Makefile.am | 2 +-
- libnpclient/Makefile.am | 2 +-
- scripts/Makefile.am | 6 +++---
- tests/kern/dbench/Makefile.am | 4 ++--
- utils/Makefile.am | 2 +-
- 7 files changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/diod/Makefile.am b/diod/Makefile.am
-index 7644be7..fdaf130 100644
---- a/diod/Makefile.am
-+++ b/diod/Makefile.am
-@@ -1,7 +1,7 @@
- AM_CFLAGS = @GCCWARN@
-
- AM_CPPFLAGS = \
-- -I../libnpfs -I../liblsd -I../libdiod
-+ -I$(srcdir)/../libnpfs -I$(srcdir)/../liblsd -I$(srcdir)/../libdiod
-
- sbin_PROGRAMS = diod
-
-diff --git a/libdiod/Makefile.am b/libdiod/Makefile.am
-index 4810e14..6905cdd 100644
---- a/libdiod/Makefile.am
-+++ b/libdiod/Makefile.am
-@@ -1,7 +1,7 @@
- AM_CFLAGS = @GCCWARN@
-
- AM_CPPFLAGS = \
-- -I../libnpfs -I../libnpclient -I../liblsd
-+ -I$(srcdir)/../libnpfs -I$(srcdir)/../libnpclient -I$(srcdir)/../liblsd
-
- noinst_LIBRARIES = libdiod.a
-
-diff --git a/liblsd/Makefile.am b/liblsd/Makefile.am
-index c3e5658..7e18bf8 100644
---- a/liblsd/Makefile.am
-+++ b/liblsd/Makefile.am
-@@ -1,6 +1,6 @@
- AM_CFLAGS = @GCCWARN@
-
--AM_CPPFLAGS = -I../libdiod
-+AM_CPPFLAGS = -I$(srcdir)/../libdiod
-
- noinst_LIBRARIES = liblsd.a
-
-diff --git a/libnpclient/Makefile.am b/libnpclient/Makefile.am
-index 5305df9..cbaf266 100644
---- a/libnpclient/Makefile.am
-+++ b/libnpclient/Makefile.am
-@@ -1,7 +1,7 @@
- AM_CFLAGS = @GCCWARN@
-
- AM_CPPFLAGS = \
-- -I../libnpfs
-+ -I$(srcdir)/../libnpfs
-
- noinst_LIBRARIES = libnpclient.a
-
-diff --git a/scripts/Makefile.am b/scripts/Makefile.am
-index 51c24a3..2aba728 100644
---- a/scripts/Makefile.am
-+++ b/scripts/Makefile.am
-@@ -1,9 +1,9 @@
--systemddir=$(sysconfdir)/systemd/system
-+systemddir=/lib/systemd/system
-
- install-data-local:
-- $(top_srcdir)/config/install-sh -m 755 $(srcdir)/auto.diod \
-+ $(top_srcdir)/config/install-sh -m 755 ./auto.diod \
- $(DESTDIR)$(sysconfdir)/auto.diod
-- $(top_srcdir)/config/install-sh -m 755 $(srcdir)/diod.service \
-+ $(top_srcdir)/config/install-sh -m 644 ./diod.service \
- $(DESTDIR)$(systemddir)/diod.service
-
- uninstall-local:
-diff --git a/tests/kern/dbench/Makefile.am b/tests/kern/dbench/Makefile.am
-index e0cdefa..1704f9f 100644
---- a/tests/kern/dbench/Makefile.am
-+++ b/tests/kern/dbench/Makefile.am
-@@ -2,7 +2,7 @@ AM_CFLAGS = -w
-
- # VERSION=4.00
-
--AM_CPPFLAGS = -DDATADIR=\"$(X_DATADIR)\"
-+AM_CPPFLAGS = -I. -DDATADIR=\"$(X_DATADIR)\"
-
- LDADD = $(LIBPOPT)
-
-@@ -25,6 +25,6 @@ BUILT_SOURCES = proto.h
- CLEANFILES = proto.h
-
- proto.h: $(dbench_SOURCES) mkproto.pl
-- perl mkproto.pl $(dbench_SOURCES) > proto.h
-+ $(srcdir)/mkproto.pl $(patsubst %,$(srcdir),$(dbench_SOURCES)) > proto.h
-
- EXTRA_DIST = mkproto.pl
-diff --git a/utils/Makefile.am b/utils/Makefile.am
-index 169b6c4..91d571d 100644
---- a/utils/Makefile.am
-+++ b/utils/Makefile.am
-@@ -1,7 +1,7 @@
- AM_CFLAGS = @GCCWARN@
-
- AM_CPPFLAGS = \
-- -I../libnpfs -I../liblsd -I../libdiod -I../libnpclient
-+ -I$(srcdir)/../libnpfs -I$(srcdir)/../liblsd -I$(srcdir)/../libdiod -I$(srcdir)/../libnpclient
-
- sbin_PROGRAMS = diodmount diodcat dtop diodload diodls diodshowmount dioddate
-
---
-2.11.0
-
diff --git a/recipes-extended/diod/files/0001-diod-ops.c-add-header-file-for-makedev.patch b/recipes-extended/diod/files/0001-diod-ops.c-add-header-file-for-makedev.patch
deleted file mode 100644
index e6f7ece2..00000000
--- a/recipes-extended/diod/files/0001-diod-ops.c-add-header-file-for-makedev.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From f75836731d6051d85e6317eb4c12465bafb4973e Mon Sep 17 00:00:00 2001
-From: "Hongzhi.Song" <hongzhi.song@windriver.com>
-Date: Fri, 31 Aug 2018 05:47:02 -0400
-Subject: [PATCH] diod/ops.c: add header file for makedev
-
-Error:
-diod/ops.c:845: undefined reference to `makedev'
-
-Fixed:
-Glibc removes sys/sysmacros.h which defines makedev from sys/types.h
-since v2.28. [Commit ID: e16deca62e16f]
-
-And then glibc suggestions us to include <sys/sysmacros.h> directly if
-code needs it.
-
-Upstream-Status: Submitted
-[diod:
-mail: v9fs-developer@lists.sourceforge.net
-author: hongzhi.song@windriver.com]
-
-Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com>
----
- diod/ops.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/diod/ops.c b/diod/ops.c
-index c6c8291..469a502 100644
---- a/diod/ops.c
-+++ b/diod/ops.c
-@@ -74,6 +74,7 @@
- #include <pthread.h>
- #include <errno.h>
- #include <sys/types.h>
-+#include <sys/sysmacros.h>
-
- #ifdef __FreeBSD__
- #if !__BSD_VISIBLE
---
-2.8.1
-
diff --git a/recipes-extended/diod/files/0001-drod-add-option-to-config-systemddir.patch b/recipes-extended/diod/files/0001-drod-add-option-to-config-systemddir.patch
deleted file mode 100644
index 8b70d8fa..00000000
--- a/recipes-extended/diod/files/0001-drod-add-option-to-config-systemddir.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 365159534b1981dfe291ecc05d2455f32652a166 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Mon, 26 Aug 2019 18:00:39 +0800
-Subject: [PATCH] drod: add option to config systemddir
-
-Upstream-Status: Pending
-
-Not need to send upstream, since upstream have refactor
-related code, but not released. and this version release
-4 years ago, not proper to just backport one or more
-commits, this patch maybe could be dropped after upgrade.
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- configure.ac | 9 +++++++++
- scripts/Makefile.am | 2 +-
- 2 files changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 1cb8579..3e4a5ec 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -25,6 +25,15 @@ AC_DEFINE([_GNU_SOURCE], 1,
- [Define _GNU_SOURCE so that we get all necessary prototypes])
-
- ##
-+#Add option to config systemddir
-+##
-+AC_ARG_WITH([systemddir],
-+ [AS_HELP_STRING([--with-systemddir=DIR], [systemd dir])],
-+ [systemddir=$withval],
-+ [systemddir="/lib/systemd/system"])
-+AC_SUBST([systemddir], [$systemddir])
-+
-+##
- # Checks for programs
- ##
- AC_PROG_CC
-diff --git a/scripts/Makefile.am b/scripts/Makefile.am
-index 2aba728..40822b7 100644
---- a/scripts/Makefile.am
-+++ b/scripts/Makefile.am
-@@ -1,4 +1,4 @@
--systemddir=/lib/systemd/system
-+systemddir=@systemddir@
-
- install-data-local:
- $(top_srcdir)/config/install-sh -m 755 ./auto.diod \
---
-2.7.4
-
diff --git a/recipes-extended/diod/files/0002-Handle-various-time_t-sizes-in-printf-and-scanf.patch b/recipes-extended/diod/files/0002-Handle-various-time_t-sizes-in-printf-and-scanf.patch
new file mode 100644
index 00000000..3c13c101
--- /dev/null
+++ b/recipes-extended/diod/files/0002-Handle-various-time_t-sizes-in-printf-and-scanf.patch
@@ -0,0 +1,100 @@
+From 04b0c5a5cb9e32090b177ff7327ad3260783abe0 Mon Sep 17 00:00:00 2001
+From: Ola x Nilsson <olani@axis.com>
+Date: Mon, 15 Apr 2024 17:31:44 +0200
+Subject: [PATCH] Handle various time_t sizes in printf and scanf
+
+The members of the timeval struct are both signed (defined by POSIX)
+and typically both 64 bits on a system where time_t is 64 bits. This
+is possible also on 32 bit systems where time_t is larger to handle
+the 2038 problem.
+
+It's practically impossible to find a type and printf format that
+works even on all glibc systems. Play it safe and always use printf
+with intmax_t and explict int64_t variables for scanf.
+
+Upstream-Status: Submitted [https://github.com/chaos/diod/pull/100]
+Signed-off-by: Ola x Nilsson <olani@axis.com>
+---
+ libnpfs/conn.c | 5 +++--
+ libnpfs/ctl.c | 7 ++++---
+ utils/dioddate.c | 8 +++++++-
+ 3 files changed, 14 insertions(+), 6 deletions(-)
+
+diff --git a/libnpfs/conn.c b/libnpfs/conn.c
+index 6e85fff..c34c840 100644
+--- a/libnpfs/conn.c
++++ b/libnpfs/conn.c
+@@ -16,6 +16,7 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <stdint.h>
++#include <inttypes.h>
+ #include <stdarg.h>
+ #include <errno.h>
+ #include <pthread.h>
+@@ -133,8 +134,8 @@ _debug_trace (Npsrv *srv, Npfcall *fc)
+ (void)gettimeofday(&b, NULL);
+ (void)gettimeofday(&a, NULL);
+ timersub(&a, &b, &c);
+- np_logmsg(srv, "[%lu.%-3lu] %s",
+- c.tv_sec, c.tv_usec/1000, s);
++ np_logmsg(srv, "[%"PRIdMAX".%-3"PRIdMAX"] %s",
++ (intmax_t)c.tv_sec, (intmax_t)c.tv_usec/1000, s);
+ } else
+ np_logmsg(srv, "%s", s);
+ }
+diff --git a/libnpfs/ctl.c b/libnpfs/ctl.c
+index f40cde4..317a22e 100644
+--- a/libnpfs/ctl.c
++++ b/libnpfs/ctl.c
+@@ -16,6 +16,7 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <stdint.h>
++#include <inttypes.h>
+ #include <stdarg.h>
+ #include <pthread.h>
+ #include <errno.h>
+@@ -291,9 +292,9 @@ _ctl_get_date (char *name, void *a)
+ np_uerror (errno);
+ goto error;
+ }
+- if (aspf (&s, &len, "%lu.%lu %d.%d\n",
+- tv.tv_sec, tv.tv_usec,
+- tz.tz_minuteswest, tz.tz_dsttime) < 0) {
++ if (aspf (&s, &len, "%"PRIdMAX".%"PRIdMAX" %d.%d\n",
++ (uintmax_t)tv.tv_sec, (uintmax_t)tv.tv_usec,
++ tz.tz_minuteswest, tz.tz_dsttime) < 0) {
+ np_uerror (ENOMEM);
+ goto error;
+ }
+diff --git a/utils/dioddate.c b/utils/dioddate.c
+index bde002f..f392792 100644
+--- a/utils/dioddate.c
++++ b/utils/dioddate.c
+@@ -21,6 +21,7 @@
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <stdint.h>
++#include <inttypes.h>
+ #include <stdarg.h>
+ #include <stdio.h>
+ #if HAVE_GETOPT_H
+@@ -142,11 +143,16 @@ main (int argc, char *argv[])
+ errn (np_rerror (), "error reading date");
+ goto done;
+ }
+- if (sscanf (buf, "%lu.%lu %d.%d", &tv.tv_sec, &tv.tv_usec,
++
++ int64_t sec = 0, usec = 0;
++ if (sscanf (buf, "%"SCNd64".%"SCNd64" %d.%d", &sec, &usec,
+ &tz.tz_minuteswest, &tz.tz_dsttime) != 4) {
+ msg ("error scanning returned date: %s", buf);
+ goto done;
+ }
++ tv.tv_sec = sec;
++ tv.tv_usec = usec;
++
+ if (Sopt) {
+ if (settimeofday (&tv, &tz) < 0)
+ err_exit ("settimeofday");
diff --git a/recipes-extended/diod/files/0002-auto.diod.in-remove-bashisms.patch b/recipes-extended/diod/files/0002-auto.diod.in-remove-bashisms.patch
deleted file mode 100644
index 65d6ff6b..00000000
--- a/recipes-extended/diod/files/0002-auto.diod.in-remove-bashisms.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 5a9e09dc5de833db11607530351cd87cecbfd17e Mon Sep 17 00:00:00 2001
-From: Roy Li <rongqing.li@windriver.com>
-Date: Thu, 22 Jun 2017 06:32:30 +0000
-Subject: [PATCH 2/2] auto.diod.in: remove bashisms
-
-Upstream-Status: Pending
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- scripts/auto.diod.in | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/scripts/auto.diod.in b/scripts/auto.diod.in
-index f63e004..4d5fc3a 100755
---- a/scripts/auto.diod.in
-+++ b/scripts/auto.diod.in
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- #
- # auto.diod - executable automounter map for diod file systems
- #
-@@ -41,15 +41,15 @@ dcatopts="${DIOD_TIMEOUT:+-t $DIOD_TIMEOUT}"
- for server in $DIOD_SERVERS; do
- $DIOD_DIODCAT -s $server $dcatopts exports | awk '{print $1}' |\
- while read path; do
-- if [ "$path" == "/" ]; then
-- if [ "$key" == "ROOT" ]; then
-+ if [ "$path" = "/" ]; then
-+ if [ "$key" = "ROOT" ]; then
- echo "$prefix $server:$path"
- exit 0
- fi
-- elif [ "$key" == "$(echo $path|sed -e's/^\///' -e's/\//./g')" ] \
-- || [ "$key" == "$(echo $path|sed -e's/^\///' -e's/\//_/g')" ] \
-- || [ "$key" == "$(echo $path|sed -e's/^\///' -e's/\//-/g')" ] \
-- || [ "$key" == "$(basename $path)" ]; then
-+ elif [ "$key" = "$(echo $path|sed -e's/^\///' -e's/\//./g')" ] \
-+ || [ "$key" = "$(echo $path|sed -e's/^\///' -e's/\//_/g')" ] \
-+ || [ "$key" = "$(echo $path|sed -e's/^\///' -e's/\//-/g')" ] \
-+ || [ "$key" = "$(basename $path)" ]; then
- echo "$prefix $server:$path"
- exit 0
- fi
---
-2.11.0
-
diff --git a/recipes-extended/fuse-overlayfs/fuse-overlayfs/0001-utils-Add-missing-include-on-limits.h.patch b/recipes-extended/fuse-overlayfs/fuse-overlayfs/0001-utils-Add-missing-include-on-limits.h.patch
new file mode 100644
index 00000000..cd504ce5
--- /dev/null
+++ b/recipes-extended/fuse-overlayfs/fuse-overlayfs/0001-utils-Add-missing-include-on-limits.h.patch
@@ -0,0 +1,36 @@
+From b48e958aaecfdfc3bb48db082a548a09d6487181 Mon Sep 17 00:00:00 2001
+From: Andrei Gherzan <andrei.gherzan@huawei.com>
+Date: Wed, 13 Jul 2022 12:05:07 +0200
+Subject: [PATCH] utils: Add missing include on limits.h
+
+This happens to not be an issue with glibc because it gets indirectly
+included via dirent.h:
+
+.. /usr/include/dirent.h
+[...]
+..... /usr/include/linux/limits.h
+
+When using the musl libc implementation, that is not the case anymore
+and the build fails.
+
+Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
+Upstream-Status: Submitted [https://github.com/containers/fuse-overlayfs/pull/362]
+---
+ utils.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/utils.h b/utils.h
+index 13a177e..6fbc328 100644
+--- a/utils.h
++++ b/utils.h
+@@ -32,6 +32,7 @@
+ # include <sys/types.h>
+ # include <fcntl.h>
+ # include "fuse-overlayfs.h"
++# include <limits.h>
+
+ # define XATTR_OVERRIDE_STAT "user.fuseoverlayfs.override_stat"
+ # define XATTR_PRIVILEGED_OVERRIDE_STAT "security.fuseoverlayfs.override_stat"
+--
+2.25.1
+
diff --git a/recipes-extended/fuse-overlayfs/fuse-overlayfs_0.6.4.bb b/recipes-extended/fuse-overlayfs/fuse-overlayfs_1.9.bb
index a8bbf0f5..31199928 100644
--- a/recipes-extended/fuse-overlayfs/fuse-overlayfs_0.6.4.bb
+++ b/recipes-extended/fuse-overlayfs/fuse-overlayfs_1.9.bb
@@ -2,11 +2,14 @@ SUMMARY = "FUSE implementation of overlayfs."
DESCRIPTION = "An implementation of overlay+shiftfs in FUSE for rootless \
containers."
-LICENSE = "GPLv3+"
+LICENSE = "GPL-3.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-SRCREV = "098d9ad79fdbb8538adde08628408aa32a8b4b17"
-SRC_URI = "git://github.com/containers/fuse-overlayfs.git;nobranch=1"
+SRCREV = "51592ea406f48faeccab288f65dcba6c4a67cd90"
+SRC_URI = " \
+ git://github.com/containers/fuse-overlayfs.git;nobranch=1;protocol=https \
+ file://0001-utils-Add-missing-include-on-limits.h.patch \
+"
DEPENDS = "fuse3"
diff --git a/recipes-extended/hyperstart/hyperstart/0001-container.c-Fix-compiler-errors-that-gcc-8.1.0-repor.patch b/recipes-extended/hyperstart/hyperstart/0001-container.c-Fix-compiler-errors-that-gcc-8.1.0-repor.patch
index 091ce3cf..d48e2647 100644
--- a/recipes-extended/hyperstart/hyperstart/0001-container.c-Fix-compiler-errors-that-gcc-8.1.0-repor.patch
+++ b/recipes-extended/hyperstart/hyperstart/0001-container.c-Fix-compiler-errors-that-gcc-8.1.0-repor.patch
@@ -46,6 +46,8 @@ container.c:176:4: note: 'sprintf' output 9 or more bytes (assuming 520) into a
sprintf(volume, "/%s/_data/%s", path, filevolume);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
---
diff --git a/recipes-extended/hyperstart/hyperstart_git.bb b/recipes-extended/hyperstart/hyperstart_git.bb
index 1126aa1b..e156cdae 100644
--- a/recipes-extended/hyperstart/hyperstart_git.bb
+++ b/recipes-extended/hyperstart/hyperstart_git.bb
@@ -1,16 +1,16 @@
SUMMARY = "The tiny Init service for HyperContainer"
DESCRIPTION = "The init Task for HyperContainer"
-LICENSE = "Apache-2"
+LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc"
inherit autotools-brokensep
-SRC_URI = "git://github.com/hyperhq/hyperstart.git"
+SRC_URI = "git://github.com/hyperhq/hyperstart.git;branch=master;protocol=https"
SRC_URI += "file://0001-container.c-Fix-compiler-errors-that-gcc-8.1.0-repor.patch"
SRCREV = "c0c07d218b482dd07f9068b52a6e7468ae4172ac"
-PV = "v0.2+git${SRCPV}"
+PV = "v0.2+git"
S = "${WORKDIR}/git"
@@ -23,4 +23,4 @@ do_install() {
install -m644 ${S}/build/arch/x86_64/kernel ${D}/var/lib/hyper/
}
-FILES_${PN} += "/var/lib/hyper"
+FILES:${PN} += "/var/lib/hyper"
diff --git a/recipes-extended/images/container-base.bb b/recipes-extended/images/container-base.bb
index acce0411..c9dd32d1 100644
--- a/recipes-extended/images/container-base.bb
+++ b/recipes-extended/images/container-base.bb
@@ -22,7 +22,7 @@ IMAGE_INSTALL = " \
"
# If the following is configured in local.conf (or the distro):
-# PACKAGE_EXTRA_ARCHS_append = " container-dummy-provides"
+# PACKAGE_EXTRA_ARCHS:append = " container-dummy-provides"
#
# it has been explicitly # indicated that we don't want or need a shell, so we'll
# add the dummy provides.
diff --git a/recipes-extended/images/kvm-image-minimal.bb b/recipes-extended/images/kvm-image-minimal.bb
index b28cc309..c6358e17 100644
--- a/recipes-extended/images/kvm-image-minimal.bb
+++ b/recipes-extended/images/kvm-image-minimal.bb
@@ -11,6 +11,9 @@ IMAGE_INSTALL = " \
kernel-module-kvm-amd \
"
+inherit features_check
+REQUIRED_DISTRO_FEATURES ?= "kvm"
+
IMAGE_FEATURES += "ssh-server-openssh"
IMAGE_LINGUAS = " "
diff --git a/recipes-extended/images/xen-guest-image-minimal.bb b/recipes-extended/images/xen-guest-image-minimal.bb
index 63c7510d..fced7639 100644
--- a/recipes-extended/images/xen-guest-image-minimal.bb
+++ b/recipes-extended/images/xen-guest-image-minimal.bb
@@ -4,14 +4,18 @@ inherit core-image features_check
IMAGE_INSTALL += " \
packagegroup-core-boot \
- ${@bb.utils.contains('MACHINE_FEATURES', 'acpi', 'kernel-module-xen-acpi-processor', '', d)} \
+ ${@bb.utils.contains('MACHINE_FEATURES', 'acpi', '${XEN_ACPI_PROCESSOR_MODULE}', '', d)} \
"
+XEN_ACPI_PROCESSOR_MODULE = ""
+XEN_ACPI_PROCESSOR_MODULE:x86 = "kernel-module-xen-acpi-processor"
+XEN_ACPI_PROCESSOR_MODULE:x86-64 = "kernel-module-xen-acpi-processor"
+
IMAGE_INSTALL += "${@bb.utils.contains('IMAGE_FEATURES', 'x11', ' xf86-video-fbdev', '', d)}"
# Install xf86-video-vesa on x86 platforms.
-IMAGE_INSTALL_append_x86-64 = "${@bb.utils.contains('IMAGE_FEATURES', 'x11', ' xf86-video-vesa', '', d)}"
-IMAGE_INSTALL_append_x86 = "${@bb.utils.contains('IMAGE_FEATURES', 'x11', ' xf86-video-vesa', '', d)}"
+IMAGE_INSTALL:append:x86-64 = "${@bb.utils.contains('IMAGE_FEATURES', 'x11', ' xf86-video-vesa', '', d)}"
+IMAGE_INSTALL:append:x86 = "${@bb.utils.contains('IMAGE_FEATURES', 'x11', ' xf86-video-vesa', '', d)}"
REQUIRED_DISTRO_FEATURES += "${@bb.utils.contains('IMAGE_FEATURES', 'x11', ' x11', '', d)} xen"
diff --git a/recipes-extended/images/xen-image-minimal.bb b/recipes-extended/images/xen-image-minimal.bb
index 6733801c..fe79a485 100644
--- a/recipes-extended/images/xen-image-minimal.bb
+++ b/recipes-extended/images/xen-image-minimal.bb
@@ -5,7 +5,7 @@ INITRD_IMAGE = "core-image-minimal-initramfs"
XEN_KERNEL_MODULES ?= "kernel-module-xen-blkback kernel-module-xen-gntalloc \
kernel-module-xen-gntdev kernel-module-xen-netback kernel-module-xen-wdt \
${@bb.utils.contains('MACHINE_FEATURES', 'pci', "${XEN_PCIBACK_MODULE}", '', d)} \
- ${@bb.utils.contains('MACHINE_FEATURES', 'acpi', 'kernel-module-xen-acpi-processor', '', d)} \
+ ${@bb.utils.contains('MACHINE_FEATURES', 'acpi', '${XEN_ACPI_PROCESSOR_MODULE}', '', d)} \
"
IMAGE_INSTALL += " \
@@ -14,6 +14,8 @@ IMAGE_INSTALL += " \
${XEN_KERNEL_MODULES} \
xen-tools \
qemu \
+ kernel-image \
+ kernel-vmlinux \
"
# The hypervisor may not be within the dom0 filesystem image but at least
@@ -21,17 +23,26 @@ IMAGE_INSTALL += " \
do_build[depends] += "xen:do_deploy"
# Networking for HVM-mode guests (x86/64 only) requires the tun kernel module
-IMAGE_INSTALL_append_x86 = "kernel-module-tun"
-IMAGE_INSTALL_append_x86-64 = "kernel-module-tun"
+IMAGE_INSTALL:append:x86 = " kernel-module-tun"
+IMAGE_INSTALL:append:x86-64 = " kernel-module-tun"
# Linux kernel option CONFIG_XEN_PCIDEV_BACKEND depends on X86
XEN_PCIBACK_MODULE = ""
-XEN_PCIBACK_MODULE_x86 = "kernel-module-xen-pciback"
-XEN_PCIBACK_MODULE_x86-64 = "kernel-module-xen-pciback"
+XEN_PCIBACK_MODULE:x86 = "kernel-module-xen-pciback"
+XEN_PCIBACK_MODULE:x86-64 = "kernel-module-xen-pciback"
+XEN_ACPI_PROCESSOR_MODULE = ""
+XEN_ACPI_PROCESSOR_MODULE:x86 = "kernel-module-xen-acpi-processor"
+XEN_ACPI_PROCESSOR_MODULE:x86-64 = "kernel-module-xen-acpi-processor"
LICENSE = "MIT"
+QB_NETWORK_XEN_BRIDGE = "1"
+
inherit core-image
+# Only inherit the qemuboot classes when building for a qemu machine
+QB_QEMU_CLASSES = ""
+QB_QEMU_CLASSES:qemuall = "qemuboot-xen-defaults qemuboot-xen-dtb qemuboot-testimage-network"
+inherit ${QB_QEMU_CLASSES}
do_check_xen_state() {
if [ "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' yes', 'no', d)}" = "no" ]; then
@@ -41,27 +52,32 @@ do_check_xen_state() {
addtask check_xen_state before do_rootfs
-syslinux_iso_populate_append() {
+# note: this may be unused, see the wic plugin
+syslinux_iso_populate:append() {
install -m 0444 ${STAGING_DATADIR}/syslinux/libcom32.c32 ${ISODIR}${ISOLINUXDIR}
install -m 0444 ${STAGING_DATADIR}/syslinux/mboot.c32 ${ISODIR}${ISOLINUXDIR}
}
-syslinux_hddimg_populate_append() {
+# note: this may be unused, see the wic plugin
+syslinux_hddimg_populate:append() {
install -m 0444 ${STAGING_DATADIR}/syslinux/libcom32.c32 ${HDDDIR}${SYSLINUXDIR}
install -m 0444 ${STAGING_DATADIR}/syslinux/mboot.c32 ${HDDDIR}${SYSLINUXDIR}
}
-grubefi_populate_append() {
+# note: this may be unused, see the wic plugin
+grubefi_populate:append() {
install -m 0644 ${DEPLOY_DIR_IMAGE}/xen-${MACHINE}.gz ${DEST}${EFIDIR}/xen.gz
}
-syslinux_populate_append() {
+# note: this may be unused, see the wic plugin
+syslinux_populate:append() {
install -m 0644 ${DEPLOY_DIR_IMAGE}/xen-${MACHINE}.gz ${DEST}/xen.gz
}
SYSLINUX_XEN_ARGS ?= "loglvl=all guest_loglvl=all console=com1,vga com1=115200,8n1"
SYSLINUX_KERNEL_ARGS ?= "ramdisk_size=32768 root=/dev/ram0 rw console=hvc0 earlyprintk=xen console=tty0 panic=10 LABEL=boot debugshell=5"
+# note: this may be unused, see the wic plugin
build_syslinux_cfg () {
echo "ALLOWOPTIONS 1" > ${SYSLINUX_CFG}
echo "DEFAULT boot" >> ${SYSLINUX_CFG}
@@ -73,14 +89,19 @@ build_syslinux_cfg () {
}
# Enable runqemu. eg: runqemu xen-image-minimal nographic slirp
-WKS_FILE_x86-64 = "directdisk-xen.wks"
+WKS_FILE:x86-64 = "directdisk-xen.wks"
+WKS_FILE_DEPENDS_DEFAULT:x86-64 = "syslinux-native"
+WKS_FILE:qemux86-64 = "qemuboot-xen-x86-64.wks"
+WKS_FILE_DEPENDS_DEFAULT:qemux86-64 = "syslinux-native"
QB_MEM ?= "-m 400"
QB_DEFAULT_KERNEL ?= "none"
QB_DEFAULT_FSTYPE ?= "wic"
+QB_DEFAULT_FSTYPE:qemux86-64 = "wic"
QB_FSINFO ?= "wic:kernel-in-fs"
+QB_SERIAL_OPT = "-serial mon:stdio"
# qemux86-64 machine does not include 'wic' in IMAGE_FSTYPES, which is needed
# to boot this image, so add it here:
-IMAGE_FSTYPES_qemux86-64 += "wic"
+IMAGE_FSTYPES:qemux86-64 += "wic"
# Networking: the qemuboot.bbclass default virtio network device works ok
# and so does the emulated e1000 -- choose according to the network device
# drivers that are present in your dom0 Linux kernel. To switch to e1000:
diff --git a/recipes-extended/images/xtf-image.bb b/recipes-extended/images/xtf-image.bb
index 3f9af259..f9ecea91 100644
--- a/recipes-extended/images/xtf-image.bb
+++ b/recipes-extended/images/xtf-image.bb
@@ -11,14 +11,24 @@ DESCRIPTION = "A minimal Xen Test Framework (XTF) image for testing the Xen hype
# ./xtf-runner --list pv
# # run an example test:
# ./xtf-runner test-pv64-livepatch-priv-check
+#
+# This image also supports the OE QA framework, so XTF tests can be
+# run from bitbake by adding the following (or similar) to local.conf:
+#
+# INHERIT += "testimage"
+# QEMU_USE_SLIRP = "1"
+# TEST_SERVER_IP = "127.0.0.1"
+#
+# and the tests that are configured (see the xtf-oeqa-conf package)
+# can be run with: bitbake -c testimage xtf-image
+#
+# For testimage, see the qemu boot log: ${WORKDIR}/testimage/qemu_boot_log.*
+# and the test log: ${WORKDIR}/temp/log.do_testimage
IMAGE_NAME="xtf"
-IMAGE_INSTALL_append = " xtf"
+IMAGE_INSTALL:append = " xtf"
-QB_DEFAULT_FSTYPE = "wic"
+DEFAULT_TEST_SUITES:append = " xtf_minimal"
-# Set the dom0 memory level lower than that assigned to qemu so that Xen has
-# some available memory for allocating to the XTF microkernel guests to run:
-QB_MEM = "-m 400"
-SYSLINUX_XEN_ARGS_append = " dom0_mem=256M"
+QB_DEFAULT_FSTYPE:x86-64 = "wic"
diff --git a/recipes-extended/images/xvisor-image-minimal.bb b/recipes-extended/images/xvisor-image-minimal.bb
index 4c4a2fc2..7c23de5b 100644
--- a/recipes-extended/images/xvisor-image-minimal.bb
+++ b/recipes-extended/images/xvisor-image-minimal.bb
@@ -17,4 +17,4 @@ inherit core-image
# Enable runqemu. eg: runqemu xvisor-image-minimal nographic slirp
QB_DEFAULT_KERNEL = "vmm.bin"
-QB_OPT_APPEND_append_riscv64 = " -cpu rv64,x-h=true "
+QB_OPT_APPEND:append:riscv64 = " -cpu rv64,x-h=true "
diff --git a/recipes-extended/iptables/iptables-meta-virtualization.inc b/recipes-extended/iptables/iptables-meta-virtualization.inc
index 8fd521c9..ac3c7843 100644
--- a/recipes-extended/iptables/iptables-meta-virtualization.inc
+++ b/recipes-extended/iptables/iptables-meta-virtualization.inc
@@ -1,4 +1,4 @@
-RRECOMMENDS_${PN} += "kernel-module-ip6-tables \
+RRECOMMENDS:${PN} += "kernel-module-ip6-tables \
kernel-module-ip-tables \
kernel-module-ip6table-filter \
kernel-module-iptable-filter \
@@ -16,4 +16,5 @@ RRECOMMENDS_${PN} += "kernel-module-ip6-tables \
kernel-module-xt-conntrack \
kernel-module-xt-state \
kernel-module-xt-tcpudp \
+ kernel-module-xt-nat \
"
diff --git a/recipes-extended/ipxe/files/build-be-explicit-about-fcommon-compiler-directive.patch b/recipes-extended/ipxe/files/build-be-explicit-about-fcommon-compiler-directive.patch
index 6fa58580..d4a2c732 100644
--- a/recipes-extended/ipxe/files/build-be-explicit-about-fcommon-compiler-directive.patch
+++ b/recipes-extended/ipxe/files/build-be-explicit-about-fcommon-compiler-directive.patch
@@ -7,7 +7,7 @@ Subject: [PATCH] [build] Be explicit about -fcommon compiler directive
gcc10 switched default behavior from -fcommon to -fno-common. Since
"__shared" relies on the legacy behavior, explicitly specify it.
-Upstream-Status: backport
+Upstream-Status: Backport
Signed-off-by: Bruce Rogers <brogers@suse.com>
Modified-by: Michael Brown <mcb30@ipxe.org>
diff --git a/recipes-extended/ipxe/files/ipxe-fix-hostcc-nopie-cflags.patch b/recipes-extended/ipxe/files/ipxe-fix-hostcc-nopie-cflags.patch
index 865e9bbb..9db7b6a1 100644
--- a/recipes-extended/ipxe/files/ipxe-fix-hostcc-nopie-cflags.patch
+++ b/recipes-extended/ipxe/files/ipxe-fix-hostcc-nopie-cflags.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Inappropriate [embedded specific]
+
diff --git a/src/Makefile.housekeeping b/src/Makefile.housekeeping
index 1dd1479..13f44dd 100644
--- a/Makefile.housekeeping
diff --git a/recipes-extended/ipxe/files/ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch b/recipes-extended/ipxe/files/ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch
index 62e8e9df..8a78e7af 100644
--- a/recipes-extended/ipxe/files/ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch
+++ b/recipes-extended/ipxe/files/ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch
@@ -9,6 +9,8 @@ The flexboot_nodnic code defines nodnic_queue_pair_type with values
identical to those of ib_queue_pair_type, and implicitly casts between
them. Add an explicit cast to fix the warning.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Michael Brown <mcb30@ipxe.org>
---
src/drivers/infiniband/flexboot_nodnic.c | 6 ++++--
diff --git a/recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch b/recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch
index e424d220..c76fe1ce 100644
--- a/recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch
+++ b/recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch
@@ -8,6 +8,8 @@ for the unsized raw dword array in union intelvf_msg.
Avoid the warning by embedding the zero-length array within a struct.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Michael Brown <mcb30@ipxe.org>
---
src/drivers/net/intelvf.c | 18 ++++++++++--------
diff --git a/recipes-extended/ipxe/ipxe_git.bb b/recipes-extended/ipxe/ipxe_git.bb
index 43c8f0ed..08ed519a 100644
--- a/recipes-extended/ipxe/ipxe_git.bb
+++ b/recipes-extended/ipxe/ipxe_git.bb
@@ -1,34 +1,35 @@
DESCRIPTION = "Open source network boot firmware"
HOMEPAGE = "http://ipxe.org"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
DEPENDS = "binutils-native perl-native syslinux mtools-native cdrtools-native xz"
LIC_FILES_CHKSUM = "file://../COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263"
# syslinux has this restriction
-COMPATIBLE_HOST_class-target = '(x86_64|i.86).*-(linux|freebsd.*)'
+COMPATIBLE_HOST:class-target = '(x86_64|i.86).*-(linux|freebsd.*)'
SRCREV = "18dc73d27edb55ebe9cb13c58d59af3da3bd374b"
-PV = "gitr${SRCPV}"
+PV = "1.20.1+git"
PR = "r0"
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI = " \
- git://github.com/ipxe/ipxe.git;protocol=https \
+ git://github.com/ipxe/ipxe.git;protocol=https;branch=master \
file://ipxe-fix-hostcc-nopie-cflags.patch \
file://ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch \
file://ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch \
file://build-be-explicit-about-fcommon-compiler-directive.patch \
"
-FILES_${PN} = "/usr/share/firmware/*.rom"
+FILES:${PN} = "/usr/share/firmware/*.rom"
-EXTRA_OEMAKE = " \
+EXTRA_OEMAKE = ' \
ISOLINUX_BIN="${STAGING_DIR_TARGET}/usr/share/syslinux/isolinux.bin" \
CROSS_COMPILE="${TARGET_PREFIX}" \
EXTRA_HOST_CFLAGS="${BUILD_CFLAGS}" \
EXTRA_HOST_LDFLAGS="${BUILD_LDFLAGS}" \
-"
+ NO_WERROR="1" \
+'
S = "${WORKDIR}/git/src"
@@ -43,3 +44,5 @@ do_install() {
install -d ${D}/usr/share/firmware
install ${S}/bin/*.rom ${D}/usr/share/firmware/
}
+
+TOOLCHAIN = "gcc"
diff --git a/recipes-extended/irqbalance/irqbalance.inc b/recipes-extended/irqbalance/irqbalance.inc
index 53275d12..038cbae3 100644
--- a/recipes-extended/irqbalance/irqbalance.inc
+++ b/recipes-extended/irqbalance/irqbalance.inc
@@ -8,7 +8,7 @@ which can lead to better performance and IO balance on SMP systems."
HOMEPAGE = "http://code.google.com/p/irqbalance/"
BUGTRACKER = "http://code.google.com/p/irqbalance/issues/list"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://irqbalance.c;beginline=6;endline=8;md5=b94e153694672307b503b1bc87dc9e24 \
"
@@ -21,7 +21,7 @@ INITSCRIPT_PARAMS = "defaults"
inherit autotools update-rc.d pkgconfig systemd
SYSTEMD_PACKAGES = "irqbalance"
-SYSTEMD_SERVICE_irqbalance = "irqbalanced.service"
+SYSTEMD_SERVICE:irqbalance = "irqbalanced.service"
EXTRA_OECONF = "--program-transform-name= \
"
@@ -42,6 +42,5 @@ do_install () {
chmod 755 ${D}${sysconfdir}/init.d/irqbalanced
install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/irqbalanced.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/irqbalanced.service
+ install -m 0644 ${S}/misc/irqbalance.service ${D}${systemd_unitdir}/system/irqbalanced.service
}
diff --git a/recipes-extended/irqbalance/irqbalance/add-initscript.patch b/recipes-extended/irqbalance/irqbalance/add-initscript.patch
index b0e608e6..91a79d7e 100644
--- a/recipes-extended/irqbalance/irqbalance/add-initscript.patch
+++ b/recipes-extended/irqbalance/irqbalance/add-initscript.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] irqbalance: add basic init script
The upstream irqbalance release package does not contain an
init script so we create a basic one here.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
---
diff --git a/recipes-extended/irqbalance/irqbalance/irqbalance-Add-status-and-reload-commands.patch b/recipes-extended/irqbalance/irqbalance/irqbalance-Add-status-and-reload-commands.patch
index ec01448f..8591f34c 100644
--- a/recipes-extended/irqbalance/irqbalance/irqbalance-Add-status-and-reload-commands.patch
+++ b/recipes-extended/irqbalance/irqbalance/irqbalance-Add-status-and-reload-commands.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] irqbalance: Add status and reload commands
Add status and reload commands for irqbalanced init script
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Yang Shi <yang.shi@windriver.com>
---
diff --git a/recipes-extended/irqbalance/irqbalance/irqbalanced.service b/recipes-extended/irqbalance/irqbalance/irqbalanced.service
deleted file mode 100644
index 5b284faa..00000000
--- a/recipes-extended/irqbalance/irqbalance/irqbalanced.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=irqbalance daemon
-After=syslog.target
-
-[Service]
-ExecStart=@SBINDIR@/irqbalance --foreground
-
-[Install]
-WantedBy=multi-user.target
diff --git a/recipes-extended/irqbalance/irqbalance_git.bb b/recipes-extended/irqbalance/irqbalance_git.bb
index 1a96c169..aa7f0de9 100644
--- a/recipes-extended/irqbalance/irqbalance_git.bb
+++ b/recipes-extended/irqbalance/irqbalance_git.bb
@@ -4,15 +4,14 @@
require irqbalance.inc
-# commit tagged as version 1.7.0
-#
-SRCREV = "641edc6f5d56f1b3eb8be0fa8a8e9b6a22e53218"
-PV = "1.7.0"
+SRCREV = "b3adb5fd1496833e4e2cebc958d3919178cd5e3d"
+PV = "1.8.0+git"
-SRC_URI = "git://github.com/Irqbalance/irqbalance \
+SRC_URI = "git://github.com/Irqbalance/irqbalance;branch=master;protocol=https \
file://add-initscript.patch \
file://irqbalance-Add-status-and-reload-commands.patch \
- file://irqbalanced.service \
"
S = "${WORKDIR}/git"
+
+CFLAGS += "-Wno-error=format-security"
diff --git a/recipes-extended/kvmtool/files/0001-kvmtool-9p-fixed-compilation-error.patch b/recipes-extended/kvmtool/files/0001-kvmtool-9p-fixed-compilation-error.patch
index 4582285b..36cde0d4 100644
--- a/recipes-extended/kvmtool/files/0001-kvmtool-9p-fixed-compilation-error.patch
+++ b/recipes-extended/kvmtool/files/0001-kvmtool-9p-fixed-compilation-error.patch
@@ -1,10 +1,12 @@
-From 6b864b05b7aea74f375502250e99f54564cfe829 Mon Sep 17 00:00:00 2001
+From e04b44c12402494ef5619205bfff03dab3e3d9cb Mon Sep 17 00:00:00 2001
From: Dariusz Pelowski <dariusz.pelowski@gmail.com>
Date: Sun, 5 Nov 2017 12:39:52 +0100
Subject: [PATCH] kvmtool: 9p: fixed compilation error
makedev is defined in sys/sysmacros.h
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Dariusz Pelowski <dariusz.pelowski@gmail.com>
---
diff --git a/recipes-extended/kvmtool/files/0002-kvmtool-add-EXTRA_CFLAGS-variable.patch b/recipes-extended/kvmtool/files/0002-kvmtool-add-EXTRA_CFLAGS-variable.patch
index dbb2bebe..248d6cc0 100644
--- a/recipes-extended/kvmtool/files/0002-kvmtool-add-EXTRA_CFLAGS-variable.patch
+++ b/recipes-extended/kvmtool/files/0002-kvmtool-add-EXTRA_CFLAGS-variable.patch
@@ -1,4 +1,4 @@
-From 80eb205fd165072724a6e6db1dff8ab0bf2aa667 Mon Sep 17 00:00:00 2001
+From a1c255983169e094c18d82131939b2b66e581000 Mon Sep 17 00:00:00 2001
From: Dariusz Pelowski <dariusz.pelowski@gmail.com>
Date: Sun, 5 Nov 2017 12:39:21 +0100
Subject: [PATCH] kvmtool: add EXTRA_CFLAGS variable
@@ -6,16 +6,18 @@ Subject: [PATCH] kvmtool: add EXTRA_CFLAGS variable
to avoid CFLAGS overriding introduce new EXTRA_CFLAGS variable
for setting via command argument
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Dariusz Pelowski <dariusz.pelowski@gmail.com>
---
Makefile | 2 ++
1 file changed, 2 insertions(+)
-diff --git a/Makefile b/Makefile
-index 3787df2..ece3d2a 100644
---- a/Makefile
-+++ b/Makefile
+Index: git/Makefile
+===================================================================
+--- git.orig/Makefile
++++ git/Makefile
@@ -2,6 +2,8 @@
# Define WERROR=0 to disable -Werror.
#
@@ -23,5 +25,5 @@ index 3787df2..ece3d2a 100644
+CFLAGS += $(EXTRA_CFLAGS)
+
ifeq ($(strip $(V)),)
- ifeq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
+ ifeq ($(findstring s,$(filter-out --%,$(firstword $(MAKEFLAGS)))),)
E = @echo
diff --git a/recipes-extended/kvmtool/files/0003-kvmtool-Werror-disabled.patch b/recipes-extended/kvmtool/files/0003-kvmtool-Werror-disabled.patch
index 7b1b7f6f..fbde7cd4 100644
--- a/recipes-extended/kvmtool/files/0003-kvmtool-Werror-disabled.patch
+++ b/recipes-extended/kvmtool/files/0003-kvmtool-Werror-disabled.patch
@@ -1,23 +1,25 @@
-From 532043e6937b78b12d89d0c6001f0e1853143247 Mon Sep 17 00:00:00 2001
+From 459ebaebf368869ae26eb8031ff44a789e238988 Mon Sep 17 00:00:00 2001
From: Cevat Bostancioglu <bostancioglucevat@gmail.com>
Date: Wed, 19 Jun 2019 20:36:56 +0300
Subject: [PATCH] WERROR override disabled.
WERROR override causes gcc sizeof-pointer-memaccess, format-truncation errors.
+Upstream-Status: Inappropriate [embedded specific]
+
---
Makefile | 1 +
1 file changed, 1 insertion(+)
-diff --git a/Makefile b/Makefile
-index ece3d2a..da6c1f0 100644
---- a/Makefile
-+++ b/Makefile
+Index: git/Makefile
+===================================================================
+--- git.orig/Makefile
++++ git/Makefile
@@ -4,6 +4,7 @@
CFLAGS += $(EXTRA_CFLAGS)
+WERROR = 0
ifeq ($(strip $(V)),)
- ifeq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
+ ifeq ($(findstring s,$(filter-out --%,$(firstword $(MAKEFLAGS)))),)
E = @echo
diff --git a/recipes-extended/kvmtool/files/external-crosscompiler.patch b/recipes-extended/kvmtool/files/external-crosscompiler.patch
index ab030c73..e27ee34b 100644
--- a/recipes-extended/kvmtool/files/external-crosscompiler.patch
+++ b/recipes-extended/kvmtool/files/external-crosscompiler.patch
@@ -1,4 +1,4 @@
-From b89ba4256cb6074aee74ea5386bc5ca8e75d4653 Mon Sep 17 00:00:00 2001
+From 91b7123682c67ec8b0c50147c9ebd59efa563f26 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Tue, 6 Sep 2016 11:51:40 -0700
Subject: [PATCH] kvmtool: add lightweight hypervisor native Linux KVM tool
@@ -13,13 +13,13 @@ be linked against the cross-compiled libfdt library.
Makefile | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
-diff --git a/Makefile b/Makefile
-index 35bb118..3787df2 100644
---- a/Makefile
-+++ b/Makefile
-@@ -18,12 +18,6 @@ export E Q
- include config/utilities.mak
+Index: git/Makefile
+===================================================================
+--- git.orig/Makefile
++++ git/Makefile
+@@ -19,12 +19,6 @@
include config/feature-tests.mak
+ -include $(OUTPUT)KVMTOOLS-VERSION-FILE
-CC := $(CROSS_COMPILE)gcc
-CFLAGS :=
@@ -30,12 +30,12 @@ index 35bb118..3787df2 100644
FIND := find
CSCOPE := cscope
TAGS := ctags
-@@ -319,7 +313,7 @@ $(warning No static libc found. Skipping guest init)
- endif
-
- ifeq (y,$(ARCH_WANT_LIBFDT))
-- ifneq ($(call try-build,$(SOURCE_LIBFDT),$(CFLAGS),-lfdt),y)
-+ ifneq ($(call try-build,$(SOURCE_LIBFDT),$(CPPFLAGS) $(CFLAGS),-lfdt),y)
- $(error No libfdt found. Please install libfdt-dev package)
- else
+@@ -367,7 +361,7 @@
+ CFLAGS_DYNOPT += -DCONFIG_HAS_LIBFDT
+ CFLAGS_STATOPT += -DCONFIG_HAS_LIBFDT
+ CFLAGS += -I $(LIBFDT_DIR)
+- else ifeq ($(call try-build,$(SOURCE_LIBFDT),$(CFLAGS),-lfdt),y)
++ else ifeq ($(call try-build,$(SOURCE_LIBFDT),$(CPPFLAGS) $(CFLAGS),-lfdt),y)
+ LIBFDT_STATIC :=
CFLAGS_DYNOPT += -DCONFIG_HAS_LIBFDT
+ CFLAGS_STATOPT += -DCONFIG_HAS_LIBFDT
diff --git a/recipes-extended/kvmtool/kvmtool.bb b/recipes-extended/kvmtool/kvmtool_git.bb
index 822d97b9..141fb02d 100644
--- a/recipes-extended/kvmtool/kvmtool.bb
+++ b/recipes-extended/kvmtool/kvmtool_git.bb
@@ -1,7 +1,7 @@
SUMMARY = "Native Linux KVM tool"
DESCRIPTION = "kvmtool is a lightweight tool for hosting KVM guests."
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=fcb02dc552a041dee27e4b85c7396067"
DEPENDS = "dtc libaio zlib"
@@ -9,15 +9,15 @@ do_configure[depends] += "virtual/kernel:do_shared_workdir"
inherit kernel-arch
-SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git \
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git;branch=master \
file://external-crosscompiler.patch \
file://0001-kvmtool-9p-fixed-compilation-error.patch \
file://0002-kvmtool-add-EXTRA_CFLAGS-variable.patch \
file://0003-kvmtool-Werror-disabled.patch \
"
-SRCREV = "90b2d3adadf218dfc6bdfdfcefe269843360223c"
-PV = "5.10.0+git${SRCPV}"
+SRCREV = "4d2c017f41533b0e51e00f689050c26190a15318"
+PV = "5.10.0+git"
S = "${WORKDIR}/git"
diff --git a/recipes-extended/libibverbs/libibverbs_1.2.1.bb b/recipes-extended/libibverbs/libibverbs_1.2.1.bb
index fa7eee62..048b6b65 100644
--- a/recipes-extended/libibverbs/libibverbs_1.2.1.bb
+++ b/recipes-extended/libibverbs/libibverbs_1.2.1.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "Libibverbs is a library that allows userspace processes to use In
HOMEPAGE = "http://www.openfabrics.org/downloads/verbs/"
SECTION = "libs/devel"
-LICENSE = "BSD"
+LICENSE = "GPL-2.0-only | BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=7c557f27dd795ba77cc419dddc656b51"
# Official repo is at git://git.kernel.org/pub/scm/libs/infiniband/libibverbs.git
@@ -16,19 +16,19 @@ inherit autotools
DEPENDS = "libnl pkgconfig-native"
PACKAGES += "${PN}-utils"
-FILES_${PN} = "${sysconfdir} ${libdir}/*.so.*"
-FILES_${PN}-utils = "${bindir}"
+FILES:${PN} = "${sysconfdir} ${libdir}/*.so.*"
+FILES:${PN}-utils = "${bindir}"
PACKAGECONFIG ??= ""
PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind,"
-do_install_append() {
+do_install:append() {
mkdir -p ${D}${sysconfdir}/libibverbs.d
rm -f ${D}${libdir}/libibverbs.la
}
PROVIDES = "virtual/libibverbs"
-RPROVIDES_${PN} = "virtual/libibverbs"
+RPROVIDES:${PN} = "virtual-libibverbs"
-COMPATIBLE_HOST_mipsarch = "none"
-COMPATIBLE_HOST_arm = "none"
+COMPATIBLE_HOST:mipsarch = "none"
+COMPATIBLE_HOST:arm = "none"
diff --git a/recipes-extended/libvirt/libvirt-dbus_1.4.1.bb b/recipes-extended/libvirt/libvirt-dbus_1.4.1.bb
new file mode 100644
index 00000000..3f6da334
--- /dev/null
+++ b/recipes-extended/libvirt/libvirt-dbus_1.4.1.bb
@@ -0,0 +1,23 @@
+SUMMARY = "dBus wrapper for libvirt"
+DESCRIPTION = "libvirt-dbus wraps libvirt API to provide a high-level object-oriented API better suited for dbus-based applications."
+AUTHOR = "Lars Karlitski <lars@karlitski.net> Pavel Hrdina <phrdina@redhat.com> Katerina Koukiou <kkoukiou@redhat.com>"
+HOMEPAGE = "https://www.libvirt.org/dbus.html"
+BUGTRACKER = "https://gitlab.com/libvirt/libvirt-dbus/-/issues"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+CVE_PRODUCT = "libvirt-dbus"
+
+DEPENDS += "glib-2.0 libvirt libvirt-glib python3-docutils-native"
+
+SRC_URI = "git://gitlab.com/libvirt/libvirt-dbus.git;nobranch=1;protocol=https"
+
+SRCREV = "0c355bb8921d7cbccf93f41a8615fcd973e64f70"
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig
+
+FILES:${PN} += "\
+ ${datadir}/dbus-1/* \
+ ${datadir}/polkit-1/* \
+"
diff --git a/recipes-extended/libvirt/libvirt-glib/0001-meson.build-allow-crosscompiling-gir-and-doc.patch b/recipes-extended/libvirt/libvirt-glib/0001-meson.build-allow-crosscompiling-gir-and-doc.patch
new file mode 100644
index 00000000..cd17bbbf
--- /dev/null
+++ b/recipes-extended/libvirt/libvirt-glib/0001-meson.build-allow-crosscompiling-gir-and-doc.patch
@@ -0,0 +1,37 @@
+From 019d727990d41b5d7911895b75bcb021e4cca3c6 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Mon, 21 Aug 2023 10:23:08 +0200
+Subject: [PATCH] meson.build: allow crosscompiling gir and doc
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 134feb6..a089f42 100644
+--- a/meson.build
++++ b/meson.build
+@@ -58,7 +58,7 @@ includedir = join_paths(prefix, get_option('includedir'))
+
+ # gobject introspection
+ gir = find_program('g-ir-scanner', required: get_option('introspection'))
+-enable_introspection = gir.found() and not meson.is_cross_build()
++enable_introspection = gir.found()
+
+ # vala
+ vapi_opt = get_option('vapi')
+@@ -73,7 +73,7 @@ endif
+ # gtk-doc
+ if not get_option('docs').disabled()
+ gtk_doc = find_program('gtkdoc-scan', required: get_option('docs'))
+- enable_doc = gtk_doc.found() and not meson.is_cross_build()
++ enable_doc = gtk_doc.found()
+ else
+ enable_doc = false
+ endif
+--
+2.41.0
+
diff --git a/recipes-extended/libvirt/libvirt-glib_5.0.0.bb b/recipes-extended/libvirt/libvirt-glib_5.0.0.bb
new file mode 100644
index 00000000..4435ca0b
--- /dev/null
+++ b/recipes-extended/libvirt/libvirt-glib_5.0.0.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "A toolkit to interact with the virtualization capabilities of recent versions of Linux."
+HOMEPAGE = "http://libvirt.org"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "glib-2.0 libvirt libxml2 libxslt"
+
+SRC_URI = " \
+ git://gitlab.com/libvirt/libvirt-glib;protocol=https;branch=master \
+ file://0001-meson.build-allow-crosscompiling-gir-and-doc.patch \
+"
+
+SRCREV = "9b26bec8828a38fcb3bc0e5f6f33b03fa99c4b68"
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig gobject-introspection gettext vala gtk-doc
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+GTKDOC_MESON_ENABLE_FLAG = 'enabled'
+GTKDOC_MESON_DISABLE_FLAG = 'disabled'
diff --git a/recipes-extended/libvirt/libvirt-python.inc b/recipes-extended/libvirt/libvirt-python.inc
index 0c661af8..6fb2b68c 100644
--- a/recipes-extended/libvirt/libvirt-python.inc
+++ b/recipes-extended/libvirt/libvirt-python.inc
@@ -5,20 +5,22 @@ export STAGING_LIBDIR
export BUILD_SYS
export HOST_SYS
-RDEPENDS_${PN}-python += "python3"
+RDEPENDS:${PN}-python += "python3"
PACKAGECONFIG_${PN}-python[xen] = ",,,xen-python"
PACKAGES += "${PN}-python-staticdev ${PN}-python-dev ${PN}-python-dbg ${PN}-python"
-FILES_${PN}-python-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a"
-FILES_${PN}-python-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la"
-FILES_${PN}-python-dbg += "${PYTHON_SITEPACKAGES_DIR}/.debug/"
-FILES_${PN}-python = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*"
+FILES:${PN}-python-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a"
+FILES:${PN}-python-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la"
+FILES:${PN}-python-dbg += "${PYTHON_SITEPACKAGES_DIR}/.debug/"
+FILES:${PN}-python = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*"
+
+# Currently the libvirt-python debug libraries contain buildpaths
+INSANE_SKIP:${PN}-dbg += "buildpaths"
SRC_URI += "http://libvirt.org/sources/python/libvirt-python-${PV}.tar.gz;name=libvirt_python"
-SRC_URI[libvirt_python.md5sum] = "19bf22414a43d358581b9259b52047a7"
-SRC_URI[libvirt_python.sha256sum] = "c0c3bac54c55622e17927b09cd9843869600d71842fb072c99491fe2608dcee7"
+SRC_URI[libvirt_python.sha256sum] = "a82588f0e7db53eda7b7dbcbc448b0ec43e00a8c77cac69644495299b410c20d"
export LIBVIRT_API_PATH = "${S}/docs/libvirt-api.xml"
export LIBVIRT_CFLAGS = "-I${S}/include"
@@ -38,7 +40,7 @@ python __anonymous () {
d.setVar('LIBVIRT_PYTHON_ENABLE', '0')
}
-do_compile_append() {
+do_compile:append() {
if [ "${LIBVIRT_PYTHON_ENABLE}" = "1" ]; then
# we need the python bindings to look into our source dir, not
# the syroot staged pkgconfig entries. So we clear the sysroot
@@ -49,7 +51,7 @@ do_compile_append() {
fi
}
-do_install_append() {
+do_install:append() {
if [ "${LIBVIRT_PYTHON_ENABLE}" = "1" ]; then
# we need the python bindings to look into our source dir, not
# the syroot staged pkgconfig entries. So we clear the sysroot
diff --git a/recipes-extended/libvirt/libvirt/0001-messon.build-remove-build-path-information-to-avoid-.patch b/recipes-extended/libvirt/libvirt/0001-messon.build-remove-build-path-information-to-avoid-.patch
new file mode 100644
index 00000000..d9bcef0b
--- /dev/null
+++ b/recipes-extended/libvirt/libvirt/0001-messon.build-remove-build-path-information-to-avoid-.patch
@@ -0,0 +1,55 @@
+From 9660b76325c841a5f5c7d5b2fb439a1fd64105c9 Mon Sep 17 00:00:00 2001
+From: Xiangyu Chen <xiangyu.chen@windriver.com>
+Date: Thu, 19 Jan 2023 17:07:37 +0800
+Subject: [PATCH] messon.build: remove build path information to avoid yocto QA
+ buildpath check warnings
+
+libvirt debug trace contains source path, and some utils was located to
+yocto sysroot folder, those full source path cause yocto QA buildpath check failed and report warnings as below:
+
+WARNING: libvirt-8.1.0-r0 do_package_qa: QA Issue: File /usr/libexec/libvirt_lxc in package libvirt contains reference to TMPDIR
+File /usr/lib64/libvirt.so.0.8001.0 in package libvirt contains reference to TMPDIR
+File /usr/lib64/libvirt/lock-driver/lockd.so in package libvirt contains reference to TMPDIR
+File /usr/lib64/libvirt/connection-driver/libvirt_driver_lxc.so in package libvirt contains reference to TMPDIR
+File /usr/lib64/libvirt/connection-driver/libvirt_driver_storage.so in package libvirt contains reference to TMPDIR
+File /usr/lib64/libvirt/connection-driver/libvirt_driver_network.so in package libvirt contains reference to TMPDIR
+File /usr/lib64/libvirt/storage-backend/libvirt_storage_backend_fs.so in package libvirt contains reference to TMPDIR
+File /usr/lib64/libvirt/storage-backend/libvirt_storage_backend_disk.so in package libvirt contains reference to TMPDIR
+File /usr/bin/virt-ssh-helper in package libvirt contains reference to TMPDIR [buildpaths]
+
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+---
+ meson.build | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+Index: libvirt-9.2.0/meson.build
+===================================================================
+--- libvirt-9.2.0.orig/meson.build
++++ libvirt-9.2.0/meson.build
+@@ -26,8 +26,8 @@
+ conf = configuration_data()
+
+ conf.set('_GNU_SOURCE', 1)
+-conf.set_quoted('abs_top_builddir', meson.project_build_root())
+-conf.set_quoted('abs_top_srcdir', meson.project_source_root())
++conf.set_quoted('abs_top_builddir', ' ')
++conf.set_quoted('abs_top_srcdir', ' ')
+ conf.set_quoted('PACKAGE', meson.project_name())
+ conf.set_quoted('PACKAGE_NAME', meson.project_name())
+ conf.set_quoted('PACKAGE_VERSION', meson.project_version())
+@@ -1770,9 +1770,9 @@
+ use_storage = true
+
+ conf.set('WITH_STORAGE_FS', 1)
+- conf.set_quoted('MOUNT', mount_prog.full_path())
+- conf.set_quoted('UMOUNT', umount_prog.full_path())
+- conf.set_quoted('MKFS', mkfs_prog.full_path())
++ conf.set_quoted('MOUNT', '/usr/bin/mount')
++ conf.set_quoted('UMOUNT', '/usr/bin/umount')
++ conf.set_quoted('MKFS', '/usr/sbin/mkfs')
+
+ showmount_prog = find_program('showmount', required: false, dirs: libvirt_sbin_path)
+ showmount_path = ''
diff --git a/recipes-extended/libvirt/libvirt/0001-prevent-gendispatch.pl-generating-build-path-in-code.patch b/recipes-extended/libvirt/libvirt/0001-prevent-gendispatch.pl-generating-build-path-in-code.patch
new file mode 100644
index 00000000..defbd7ee
--- /dev/null
+++ b/recipes-extended/libvirt/libvirt/0001-prevent-gendispatch.pl-generating-build-path-in-code.patch
@@ -0,0 +1,43 @@
+From ba915b13b92f3a625633ede43789c1ba780371af Mon Sep 17 00:00:00 2001
+From: Xiangyu Chen <xiangyu.chen@windriver.com>
+Date: Wed, 18 Jan 2023 03:19:07 +0000
+Subject: [PATCH] prevent gendispatch.pl generating build path in code comments
+
+gendispatch.pl will add build dir in code comments which was generated
+by itself. those build dir information would cause yocto qa report
+warnings like:
+
+WARNING: libvirt-8.1.0-r0 do_package_qa:
+QA Issue: File /usr/src/debug/libvirt/8.1.0-r0/src/access/viraccessapicheckqemu.h in package libvirt-src contains reference to TMPDIR
+File /usr/src/debug/libvirt/8.1.0-r0/src/access/viraccessapichecklxc.h in package libvirt-src contains reference to TMPDIR
+File /usr/src/debug/libvirt/8.1.0-r0/src/access/viraccessapicheckqemu.c in package libvirt-src contains reference to TMPDIR
+File /usr/src/debug/libvirt/8.1.0-r0/src/access/viraccessapichecklxc.c in package libvirt-src contains reference to TMPDIR
+File /usr/src/debug/libvirt/8.1.0-r0/src/access/viraccessapicheck.h in package libvirt-src contains reference to TMPDIR
+File /usr/src/debug/libvirt/8.1.0-r0/src/access/viraccessapicheck.c in package libvirt-src contains reference to TMPDIR [buildpaths]
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+---
+ src/rpc/gendispatch.pl | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+Index: libvirt-9.2.0/src/rpc/gendispatch.pl
+===================================================================
+--- libvirt-9.2.0.orig/src/rpc/gendispatch.pl
++++ libvirt-9.2.0/src/rpc/gendispatch.pl
+@@ -449,12 +449,12 @@
+
+ if ($mode eq "aclsym") {
+ print <<__EOF__;
+-# Automatically generated from $protocol by gendispatch.pl.
++# Automatically generated by gendispatch.pl.
+ # Do not edit this file. Any changes you make will be lost.
+ __EOF__
+ } else {
+ print <<__EOF__;
+-/* Automatically generated from $protocol by gendispatch.pl.
++/* Automatically generated by gendispatch.pl.
+ * Do not edit this file. Any changes you make will be lost.
+ */
+ __EOF__
diff --git a/recipes-extended/libvirt/libvirt/0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch b/recipes-extended/libvirt/libvirt/0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch
index abb0b1af..cabc4cb6 100644
--- a/recipes-extended/libvirt/libvirt/0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch
+++ b/recipes-extended/libvirt/libvirt/0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] ptest: Remove Windows-1252 check from esxutilstest
Currently we use iconv from glibc-locale and it does not support
Windows-1252 and we don't need support windows character encoding.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: He Zhe <zhe.he@windriver.com>
---
diff --git a/recipes-extended/libvirt/libvirt_7.2.0.bb b/recipes-extended/libvirt/libvirt_10.0.0.bb
index 24748efa..6b19b700 100644
--- a/recipes-extended/libvirt/libvirt_7.2.0.bb
+++ b/recipes-extended/libvirt/libvirt_10.0.0.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "A toolkit to interact with the virtualization capabilities of recent versions of Linux."
HOMEPAGE = "http://libvirt.org"
-LICENSE = "LGPLv2.1+ & GPLv2+"
+LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.LESSER;md5=4b54a1fd55a448865a0b32d41598759d"
SECTION = "console/tools"
@@ -13,14 +13,16 @@ DEPENDS = "bridge-utils gnutls libxml2 lvm2 avahi parted curl libpcap util-linux
# libvirt-guests.sh needs gettext.sh
#
-RDEPENDS_${PN} = "gettext-runtime"
+RDEPENDS:${PN} = "gettext-runtime"
-RDEPENDS_libvirt-libvirtd += "bridge-utils iptables pm-utils dnsmasq netcat-openbsd ebtables"
-RDEPENDS_libvirt-libvirtd_append_x86-64 = " dmidecode"
-RDEPENDS_libvirt-libvirtd_append_x86 = " dmidecode"
+RDEPENDS:libvirt-libvirtd += "bridge-utils iptables pm-utils dnsmasq netcat-openbsd ebtables"
+RDEPENDS:libvirt-libvirtd:append:x86-64 = " dmidecode"
+RDEPENDS:libvirt-libvirtd:append:x86 = " dmidecode"
+RDEPENDS:libvirt-libvirtd:append:arm = " dmidecode"
+RDEPENDS:libvirt-libvirtd:append:aarch64 = " dmidecode"
#connman blocks the 53 port and libvirtd can't start its DNS service
-RCONFLICTS_${PN}_libvirtd = "connman"
+RCONFLICTS:${PN}_libvirtd = "connman"
SRC_URI = "http://libvirt.org/sources/libvirt-${PV}.tar.xz;name=libvirt \
file://libvirtd.sh \
@@ -28,19 +30,20 @@ SRC_URI = "http://libvirt.org/sources/libvirt-${PV}.tar.xz;name=libvirt \
file://dnsmasq.conf \
file://hook_support.py \
file://gnutls-helper.py \
+ file://0001-prevent-gendispatch.pl-generating-build-path-in-code.patch \
+ file://0001-messon.build-remove-build-path-information-to-avoid-.patch \
"
-SRC_URI[libvirt.md5sum] = "92044b629216e44adce63224970a54a3"
-SRC_URI[libvirt.sha256sum] = "01f459d0c7ba5009622a628dba1a026200e8f4a299fea783b936a71d7e0ed1d0"
+SRC_URI[libvirt.sha256sum] = "8ba2e72ec8bdd2418554a1474c42c35704c30174b7611eaf9a16544b71bcf00a"
inherit meson gettext update-rc.d pkgconfig systemd useradd perlnative
USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "-r qemu; -r kvm"
-USERADD_PARAM_${PN} = "-r -g qemu -G kvm qemu"
+GROUPADD_PARAM:${PN} = "-r qemu; -r kvm"
+USERADD_PARAM:${PN} = "-r -g qemu -G kvm qemu"
EXTRA_OEMESON += "--cross-file ${WORKDIR}/meson-${PN}.cross"
-do_write_config_append() {
+do_write_config:append() {
cat >${WORKDIR}/meson-${PN}.cross <<EOF
[binaries]
iptables = '/usr/sbin/iptables'
@@ -51,58 +54,60 @@ dnsmasq = '/usr/bin/dnsmasq'
EOF
}
-ALLOW_EMPTY_${PN} = "1"
+ALLOW_EMPTY:${PN} = "1"
+INSANE_SKIP:${PN} += "empty-dirs"
PACKAGES =+ "${PN}-libvirtd ${PN}-virsh"
-ALLOW_EMPTY_${PN}-libvirtd = "1"
+ALLOW_EMPTY:${PN}-libvirtd = "1"
-FILES_${PN}-libvirtd = " \
+FILES:${PN}-libvirtd = " \
${sysconfdir}/init.d \
${sysconfdir}/sysctl.d \
${sysconfdir}/logrotate.d \
${sysconfdir}/libvirt/libvirtd.conf \
/usr/lib/sysctl.d/60-libvirtd.conf \
+ /usr/lib/sysctl.d/60-qemu-postcopy-migration.conf \
${sbindir}/libvirtd \
- ${systemd_unitdir}/system/* \
+ ${systemd_system_unitdir} \
${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', '${libexecdir}/libvirt-guests.sh', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'gnutls', '${sysconfdir}/pki/libvirt/* ${sysconfdir}/pki/CA/*', '', d)} \
"
-FILES_${PN}-virsh = " \
+FILES:${PN}-virsh = " \
${bindir}/virsh \
${datadir}/bash-completion/completions/virsh \
"
-FILES_${PN} += "${libdir}/libvirt/connection-driver \
+FILES:${PN} += "${libdir}/libvirt/connection-driver \
${datadir}/augeas \
${@bb.utils.contains('PACKAGECONFIG', 'polkit', '${datadir}/polkit-1', '', d)} \
${datadir}/bash-completion/completions/vsh \
${datadir}/bash-completion/completions/virt-admin \
- /usr/lib/firewalld/zones/libvirt.xml \
+ /usr/lib/firewalld/ \
"
-FILES_${PN}-dbg += "${libdir}/libvirt/connection-driver/.debug ${libdir}/libvirt/lock-driver/.debug"
-FILES_${PN}-staticdev += "${libdir}/*.a ${libdir}/libvirt/connection-driver/*.a ${libdir}/libvirt/lock-driver/*.a"
+FILES:${PN}-dbg += "${libdir}/libvirt/connection-driver/.debug ${libdir}/libvirt/lock-driver/.debug"
+FILES:${PN}-staticdev += "${libdir}/*.a ${libdir}/libvirt/connection-driver/*.a ${libdir}/libvirt/lock-driver/*.a"
-CONFFILES_${PN} += "${sysconfdir}/libvirt/libvirt.conf \
+CONFFILES:${PN} += "${sysconfdir}/libvirt/libvirt.conf \
${sysconfdir}/libvirt/lxc.conf \
${sysconfdir}/libvirt/qemu-lockd.conf \
${sysconfdir}/libvirt/qemu.conf \
${sysconfdir}/libvirt/virt-login-shell.conf \
${sysconfdir}/libvirt/virtlockd.conf"
-CONFFILES_${PN}-libvirtd = "${sysconfdir}/logrotate.d/libvirt ${sysconfdir}/logrotate.d/libvirt.lxc \
+CONFFILES:${PN}-libvirtd = "${sysconfdir}/logrotate.d/libvirt ${sysconfdir}/logrotate.d/libvirt.lxc \
${sysconfdir}/logrotate.d/libvirt.qemu ${sysconfdir}/logrotate.d/libvirt.uml \
${sysconfdir}/libvirt/libvirtd.conf \
/usr/lib/sysctl.d/libvirtd.conf"
INITSCRIPT_PACKAGES = "${PN}-libvirtd"
-INITSCRIPT_NAME_${PN}-libvirtd = "libvirtd"
-INITSCRIPT_PARAMS_${PN}-libvirtd = "defaults 72"
+INITSCRIPT_NAME:${PN}-libvirtd = "libvirtd"
+INITSCRIPT_PARAMS:${PN}-libvirtd = "defaults 72"
SYSTEMD_PACKAGES = "${PN}-libvirtd"
-SYSTEMD_SERVICE_${PN}-libvirtd = " \
+SYSTEMD_SERVICE:${PN}-libvirtd = " \
libvirtd.service \
virtlockd.service \
libvirt-guests.service \
@@ -120,13 +125,15 @@ PACKAGECONFIG ??= "gnutls qemu yajl openvz vmware vbox esx lxc test remote \
${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'polkit', '', d)} \
"
-# qemu is NOT compatible with mips64
-PACKAGECONFIG_remove_mipsarchn32 = "qemu"
-PACKAGECONFIG_remove_mipsarchn64 = "qemu"
+# qemu is NOT compatible with mips64, powerpc and riscv32
+PACKAGECONFIG:remove:mipsarchn32 = "qemu"
+PACKAGECONFIG:remove:mipsarchn64 = "qemu"
+PACKAGECONFIG:remove:powerpc = "qemu"
+PACKAGECONFIG:remove:riscv32 = "qemu"
# numactl is NOT compatible with arm
-PACKAGECONFIG_remove_arm = "numactl"
-PACKAGECONFIG_remove_armeb = "numactl"
+PACKAGECONFIG:remove:arm = "numactl"
+PACKAGECONFIG:remove:armeb = "numactl"
# enable,disable,depends,rdepends
#
@@ -151,11 +158,11 @@ PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux,"
PACKAGECONFIG[python] = ",,python3,"
PACKAGECONFIG[sasl] = "-Dsasl=enabled,-Dsasl=disabled,cyrus-sasl,cyrus-sasl"
PACKAGECONFIG[numactl] = "-Dnumactl=enabled,-Dnumactl=disabled,numactl,"
-PACKAGECONFIG[fuse] = "-Dfuse=enabled,-Dfuse=disabled,fuse,"
+PACKAGECONFIG[fuse] = "-Dfuse=enabled,-Dfuse=disabled,fuse3,"
PACKAGECONFIG[audit] = "-Daudit=enabled,-Daudit=disabled,audit,"
PACKAGECONFIG[libcap-ng] = "-Dcapng=enabled,-Dcapng=disabled,libcap-ng,"
PACKAGECONFIG[wireshark] = "-Dwireshark_dissector=enabled,-Dwireshark_dissector=disabled,wireshark libwsutil,"
-PACKAGECONFIG[apparmor_profiles] = "-Dapparmor_profiles=true, -Dapparmor_profiles=false,"
+PACKAGECONFIG[apparmor_profiles] = "-Dapparmor_profiles=enabled, -Dapparmor_profiles=disabled,"
PACKAGECONFIG[firewalld] = "-Dfirewalld=enabled, -Dfirewalld=disabled,"
PACKAGECONFIG[libpcap] = "-Dlibpcap=enabled, -Dlibpcap=disabled,libpcap,libpcap"
PACKAGECONFIG[numad] = "-Dnumad=enabled, -Dnumad=disabled,"
@@ -178,12 +185,12 @@ do_compile() {
ninja all
}
-do_install_prepend() {
+do_install:prepend() {
# so the install routines can find the libvirt.pc in the source dir
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:${B}/src:"
}
-do_install_append() {
+do_install:append() {
install -d ${D}/etc/init.d
install -d ${D}/etc/libvirt
install -d ${D}/etc/dnsmasq.d
@@ -198,17 +205,20 @@ do_install_append() {
fi
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- mkdir -p ${D}/lib
- mv ${D}/usr/lib/systemd ${D}/lib
- # This variable is used by libvirtd.service to start libvirtd in the right mode
- sed -i '/#LIBVIRTD_ARGS="--listen"/a LIBVIRTD_ARGS="--listen --daemon"' ${D}/${sysconfdir}/sysconfig/libvirtd
+ if [ "${systemd_system_unitdir}" != "${prefix}/lib/systemd/system" ] ; then
+ # ./src/meson.build: systemd_unit_dir = prefix / 'lib' / 'systemd' / 'system'
+ # ./tools/meson.build: install_dir: prefix / 'lib' / 'systemd' / 'system',
+ mkdir -p ${D}${systemd_system_unitdir}
+ mv ${D}${prefix}/lib/systemd/system/* ${D}${systemd_system_unitdir}
+ rmdir ${D}${prefix}/lib/systemd/system ${D}${prefix}/lib/systemd
+ fi
# We can't use 'notify' when we don't support 'sd_notify' dbus capabilities.
+ # Change default LIBVIRTD_ARGS to start libvirtd in the right mode.
sed -i -e 's/Type=notify/Type=forking/' \
-e '/Type=forking/a PIDFile=/run/libvirtd.pid' \
- ${D}/${systemd_unitdir}/system/libvirtd.service
- else
- rm -rf ${D}/usr/lib/systemd
+ -e 's/\(Environment=LIBVIRTD_ARGS="--timeout 120"\)/#\1\nEnvironment=LIBVIRTD_ARGS="--listen --daemon"/' \
+ ${D}/${systemd_system_unitdir}/libvirtd.service
fi
# The /run/libvirt directories created by the Makefile are
@@ -301,17 +311,17 @@ do_install_append() {
}
EXTRA_OEMESON += " \
- -Dinit_script=systemd \
+ -Dinit_script=${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','none', d)} \
-Drunstatedir=/run \
-Dtests=enabled \
"
# gcc9 end up mis-compiling qemuxml2argvtest.o with Og which then
# crashes on target, so remove -Og and use -O2 as workaround
-SELECTED_OPTIMIZATION_remove_virtclass-multilib-lib32_mipsarch = "-Og"
-SELECTED_OPTIMIZATION_append_virtclass-multilib-lib32_mipsarch = " -O2"
+SELECTED_OPTIMIZATION:remove:virtclass-multilib-lib32:mipsarch = "-Og"
+SELECTED_OPTIMIZATION:append:virtclass-multilib-lib32:mipsarch = " -O2"
-pkg_postinst_${PN}() {
+pkg_postinst:${PN}() {
if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
/etc/init.d/populate-volatile.sh update
fi
diff --git a/recipes-extended/libvmi/files/0001-Build-vbd-only-when-xen-is-enabled.patch b/recipes-extended/libvmi/files/0001-Build-vbd-only-when-xen-is-enabled.patch
new file mode 100644
index 00000000..bf6e9f0e
--- /dev/null
+++ b/recipes-extended/libvmi/files/0001-Build-vbd-only-when-xen-is-enabled.patch
@@ -0,0 +1,76 @@
+From fb7a1493c7d4a30ae930d8cb7dcb84c83c0cacce Mon Sep 17 00:00:00 2001
+From: He Zhe <zhe.he@windriver.com>
+Date: Wed, 13 Apr 2022 09:26:01 +0000
+Subject: [PATCH] Build vbd only when xen is enabled
+
+vbd was added for xen based VMs since
+bdee00fac9b4 ("Disk reading interface for Xen based VMs and example")
+and should be built only when xen is enabled, otherwise there would not be
+necessary xen headers and cause the following failure.
+
+xen_private.h:38:10: fatal error: xenctrl.h: No such file or directory
+
+Upstream-Status: Pending
+
+Signed-off-by: He Zhe <zhe.he@windriver.com>
+---
+ Makefile.am | 8 ++++----
+ libvmi/CMakeLists.txt | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 097c23c..c560a1d 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -17,8 +17,7 @@ h_private = \
+ libvmi/os/os_interface.h \
+ libvmi/driver/driver_interface.h \
+ libvmi/driver/driver_wrapper.h \
+- libvmi/driver/memory_cache.h \
+- libvmi/disk/vbd_private.h
++ libvmi/driver/memory_cache.h
+
+ c_sources = \
+ libvmi/accessors.c \
+@@ -39,8 +38,7 @@ c_sources = \
+ libvmi/arch/ept.c \
+ libvmi/driver/driver_interface.c \
+ libvmi/driver/memory_cache.c \
+- libvmi/os/os_interface.c \
+- libvmi/disk/vbd.c
++ libvmi/os/os_interface.c
+
+ if ENABLE_ADDRESS_CACHE
+ c_sources += libvmi/cache.c
+@@ -104,6 +102,8 @@ if WITH_XEN
+ libvmi/driver/xen/libxc_wrapper.h \
+ libvmi/driver/xen/libxs_wrapper.c \
+ libvmi/driver/xen/libxs_wrapper.h
++ h_private += libvmi/disk/vbd_private.h
++ c_sources += libvmi/disk/vbd.c
+ endif
+
+ if WITH_BAREFLANK
+diff --git a/libvmi/CMakeLists.txt b/libvmi/CMakeLists.txt
+index ac57d79..7e87751 100644
+--- a/libvmi/CMakeLists.txt
++++ b/libvmi/CMakeLists.txt
+@@ -18,7 +18,6 @@ set(libvmi_src
+ driver/driver_interface.c
+ driver/memory_cache.c
+ os/os_interface.c
+- disk/vbd.c
+ )
+
+ add_library(vmi OBJECT ${libvmi_src})
+@@ -169,6 +168,7 @@ add_subdirectory(os)
+
+
+ if (ENABLE_XEN)
++ list(APPEND libvmi_src disk/vbd.c)
+ find_package(Xen REQUIRED)
+ list(APPEND VMI_PUBLIC_HEADERS events.h)
+ # CMAKE_DL_LIBS -> dlopen* lib
+--
+2.32.0
+
diff --git a/recipes-extended/libvmi/libvmi_git.bb b/recipes-extended/libvmi/libvmi_git.bb
index b8e35669..c812cf17 100644
--- a/recipes-extended/libvmi/libvmi_git.bb
+++ b/recipes-extended/libvmi/libvmi_git.bb
@@ -1,17 +1,18 @@
DESCRIPTION = "An introspection library, written in C, focused on reading \
and writing memory from virtual machines (VM's)."
HOMEPAGE = "https://github.com/libvmi/libvmi"
-LICENSE = "LGPLv3"
+LICENSE = "LGPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02"
SECTION = "console/tools"
-PV = "0.12.0"
+PV = "0.14.0+git"
-DEPENDS = "libvirt libcheck bison fuse byacc-native"
+DEPENDS = "libvirt libcheck bison fuse bison-native flex-native autoconf-archive-native"
-SRC_URI = "git://github.com/libvmi/libvmi.git \
+SRC_URI = "git://github.com/libvmi/libvmi.git;branch=master;protocol=https \
+ file://0001-Build-vbd-only-when-xen-is-enabled.patch \
"
-SRCREV = "e8c2061d11c42e5868cbf48229f59b5e7071395a"
+SRCREV = "df8547ff075d4352db2eb802775b7fa7a92756db"
S = "${WORKDIR}/git"
@@ -21,8 +22,8 @@ inherit autotools-brokensep pkgconfig
# bitbake should be able to properly populate the -dev package and the main
# packages. Since libvmi uses the form libXX.1.0.0.so it breaks this automatic
# packaging so we need to be more explicit about what goes where.
-FILES_${PN} += "${libdir}/libvmi-0.9.so"
-FILES_${PN}-dev = "${includedir} ${libdir}/${BPN}.so ${libdir}/*.la \
+FILES:${PN} += "${libdir}/libvmi-0.9.so"
+FILES:${PN}-dev = "${includedir} ${libdir}/${BPN}.so ${libdir}/*.la \
${libdir}/*.o ${libdir}/pkgconfig ${datadir}/pkgconfig \
${datadir}/aclocal ${base_libdir}/*.o \
${libdir}/${BPN}/*.la ${base_libdir}/*.la"
@@ -33,7 +34,7 @@ PACKAGECONFIG[kvm] = "--disable-kvm-legacy,--enable-kvm-legacy,kvm,"
PACKAGECONFIG[json-c] = ",,json-c,"
# We include a sample conf file to which we have added
-do_install_append () {
+do_install:append () {
mkdir ${D}${sysconfdir}
cp etc/*.conf ${D}${sysconfdir}
}
diff --git a/recipes-extended/nagios/nagios-common.inc b/recipes-extended/nagios/nagios-common.inc
index c173041c..bfbe188b 100644
--- a/recipes-extended/nagios/nagios-common.inc
+++ b/recipes-extended/nagios/nagios-common.inc
@@ -11,16 +11,16 @@ EXTRA_OECONF += "--sysconfdir=${NAGIOS_CONF_DIR} \
--localstatedir=${NAGIOS_STATE_DIR} \
"
-FILES_${PN}-dbg += "${NAGIOS_PLUGIN_DIR}/.debug"
+FILES:${PN}-dbg += "${NAGIOS_PLUGIN_DIR}/.debug"
DEPENDS = "nagios-core"
-COMPATIBLE_HOST_aarch64 = "null"
+COMPATIBLE_HOST:aarch64 = "null"
inherit useradd
USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "-r ${NAGIOS_GROUP}; -r nagcmd"
-USERADD_PARAM_${PN} = "-r -M -g ${NAGIOS_GROUP} ${NAGIOS_USER}"
+GROUPADD_PARAM:${PN} = "-r ${NAGIOS_GROUP}; -r nagcmd"
+USERADD_PARAM:${PN} = "-r -M -g ${NAGIOS_GROUP} ${NAGIOS_USER}"
-FILESYSTEM_PERMS_TABLES_append = " files/fs-perms-nagios.txt"
+FILESYSTEM_PERMS_TABLES:append = " files/fs-perms-nagios.txt"
diff --git a/recipes-extended/nagios/nagios-core/eventhandlers_nagioscmd_path.patch b/recipes-extended/nagios/nagios-core/eventhandlers_nagioscmd_path.patch
index c767162c..5c1f3303 100644
--- a/recipes-extended/nagios/nagios-core/eventhandlers_nagioscmd_path.patch
+++ b/recipes-extended/nagios/nagios-core/eventhandlers_nagioscmd_path.patch
@@ -3,6 +3,8 @@ change eventhandlers nagioscmd path
Modify nagios.cmd path to the right location
at "/var/nagios/rw/nagios.cmd"
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Rickard Engberg <rickard.engberg@windriver.com>
Signed-off-by: Vu Tran <vu.tran@windriver.com>
diff --git a/recipes-extended/nagios/nagios-core_4.4.6.bb b/recipes-extended/nagios/nagios-core_4.4.6.bb
index fc3d2c5a..59b70895 100644
--- a/recipes-extended/nagios/nagios-core_4.4.6.bb
+++ b/recipes-extended/nagios/nagios-core_4.4.6.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "A host/service/network monitoring and management system core file
HOMEPAGE = "http://www.nagios.org"
SECTION = "console/network"
PRIORITY = "optional"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4c4203caac58013115c9ca4b85f296ae"
@@ -29,7 +29,7 @@ inherit autotools-brokensep update-rc.d systemd update-alternatives
DEPENDS = "gd unzip-native"
-RDEPENDS_${PN} += "\
+RDEPENDS:${PN} += "\
gd \
libpng \
fontconfig \
@@ -38,7 +38,7 @@ RDEPENDS_${PN} += "\
nagios-base \
"
-PNBLACKLIST[nagios-core] ?= "${@bb.utils.contains('BBFILE_COLLECTIONS', 'webserver', '', 'Depends on apache2 from meta-webserver which is not included', d)}"
+SKIP_RECIPE[nagios-core] ?= "${@bb.utils.contains('BBFILE_COLLECTIONS', 'webserver', '', 'Depends on apache2 from meta-webserver which is not included', d)}"
acpaths = "-I ${S}/autoconf-macros"
@@ -65,12 +65,12 @@ EXTRA_OECONF += "ac_cv_header_ltdl_h=no"
EXTRA_OECONF += "ac_cv_path_PERL=${bindir}/perl"
# Fix build failure for gcc-10
-CFLAGS_append = " -fcommon"
+CFLAGS:append = " -fcommon"
# Set to "1" to allow nagios-core post-init to modify Apache configuration
NAGIOS_MODIFY_APACHE ??= "1"
-do_configure_prepend() {
+do_configure:prepend() {
# rename these macros to have .m4 suffix so that autoreconf could recognize them
for macro in `ls ${S}/autoconf-macros/ax_nagios_get_*`; do
mv $macro $macro.m4
@@ -117,7 +117,7 @@ do_install() {
fi
}
-pkg_postinst_ontarget_${PN}-setup () {
+pkg_postinst_ontarget:${PN}-setup () {
# Set password for nagiosadmin user
if [ -z "${NAGIOS_DEFAULT_ADMINUSER_PASSWORD}" ]; then
htpasswd -c ${NAGIOS_CONF_DIR}/htpasswd.users nagiosadmin
@@ -134,23 +134,23 @@ pkg_postinst_ontarget_${PN}-setup () {
PACKAGES += "${SRCNAME}-base ${PN}-setup"
-FILES_${PN} += "${datadir} \
+FILES:${PN} += "${datadir} \
${NAGIOS_PLUGIN_DIR} \
${NAGIOS_CGIBIN_DIR} \
"
-FILES_${PN}-dbg += "${NAGIOS_CGIBIN_DIR}/.debug"
+FILES:${PN}-dbg += "${NAGIOS_CGIBIN_DIR}/.debug"
-ALLOW_EMPTY_${SRCNAME}-base = "1"
-ALLOW_EMPTY_${PN}-setup = "1"
+ALLOW_EMPTY:${SRCNAME}-base = "1"
+ALLOW_EMPTY:${PN}-setup = "1"
SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "nagios-core.service"
-SYSTEMD_AUTO_ENABLE_${PN} = "enable"
+SYSTEMD_SERVICE:${PN} = "nagios-core.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "enable"
USERADD_PACKAGES += "${SRCNAME}-base"
-GROUPADD_PARAM_${SRCNAME}-base = "-r ${NAGIOS_GROUP}"
-USERADD_PARAM_${SRCNAME}-base = "-r -M -g ${NAGIOS_GROUP} ${NAGIOS_USER}"
+GROUPADD_PARAM:${SRCNAME}-base = "-r ${NAGIOS_GROUP}"
+USERADD_PARAM:${SRCNAME}-base = "-r -M -g ${NAGIOS_GROUP} ${NAGIOS_USER}"
INITSCRIPT_NAME = "nagios"
INITSCRIPT_PARAMS = "defaults"
@@ -158,5 +158,5 @@ INITSCRIPT_PARAMS = "defaults"
CVE_PRODUCT = "nagios_core"
ALTERNATIVE_PRIORITY_${PN} = '20'
-ALTERNATIVE_${PN} = "nagios"
+ALTERNATIVE:${PN} = "nagios"
ALTERNATIVE_LINK_NAME[nagios] = "${localstatedir}/nagios"
diff --git a/recipes-extended/nagios/nagios-nrpe/0001-Should-fix-235-nasty_metachars-was-not-being-returne.patch b/recipes-extended/nagios/nagios-nrpe/0001-Should-fix-235-nasty_metachars-was-not-being-returne.patch
index 7a12e730..fb34c5c7 100644
--- a/recipes-extended/nagios/nagios-nrpe/0001-Should-fix-235-nasty_metachars-was-not-being-returne.patch
+++ b/recipes-extended/nagios/nagios-nrpe/0001-Should-fix-235-nasty_metachars-was-not-being-returne.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Should fix #235 (nasty_metachars was not being returned when
specified in cfg file
CVE: CVE-2020-6581
-Upstream Status: Backport [4f7dd1199f1f3f72f9197e8565da339a4a2490b7]
+Upstream-Status: Backport [4f7dd1199f1f3f72f9197e8565da339a4a2490b7]
Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
---
diff --git a/recipes-extended/nagios/nagios-nrpe/fix-compile-without-openssl.patch b/recipes-extended/nagios/nagios-nrpe/fix-compile-without-openssl.patch
index ab913a8f..1e57d02a 100644
--- a/recipes-extended/nagios/nagios-nrpe/fix-compile-without-openssl.patch
+++ b/recipes-extended/nagios/nagios-nrpe/fix-compile-without-openssl.patch
@@ -6,6 +6,8 @@ this error:
error: unknown type name 'SSL'
void complete_SSL_shutdown( SSL *);
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Rickard Engberg <rickard.engberg@windriver.com>
Signed-off-by: Vu Tran <vu.tran@windriver.com>
diff --git a/recipes-extended/nagios/nagios-nrpe/fix-configure-uses-host-openssl.patch b/recipes-extended/nagios/nagios-nrpe/fix-configure-uses-host-openssl.patch
index 920aabfc..9342826b 100644
--- a/recipes-extended/nagios/nagios-nrpe/fix-configure-uses-host-openssl.patch
+++ b/recipes-extended/nagios/nagios-nrpe/fix-configure-uses-host-openssl.patch
@@ -6,6 +6,8 @@ openssl dhparam -C 512
just do not use openssl from host.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Rickard Engberg <rickard.engberg@windriver.com>
Signed-off-by: Vu Tran <vu.tran@windriver.com>
diff --git a/recipes-extended/nagios/nagios-nrpe_4.0.2.bb b/recipes-extended/nagios/nagios-nrpe_4.0.2.bb
index 7f81172e..ac54469b 100644
--- a/recipes-extended/nagios/nagios-nrpe_4.0.2.bb
+++ b/recipes-extended/nagios/nagios-nrpe_4.0.2.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "Nagios Remote Plugin Executor"
HOMEPAGE = "http://www.nagios.com"
SECTION = "console/network"
PRIORITY = "optional"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://src/nrpe.c;beginline=1;endline=35;md5=0dadd78599abbc737af81432702e9161"
@@ -26,7 +26,7 @@ S = "${WORKDIR}/${SRCNAME}-${PV}"
inherit autotools-brokensep update-rc.d systemd update-alternatives
-PNBLACKLIST[nagios-nrpe] ?= "${@bb.utils.contains('BBFILE_COLLECTIONS', 'webserver', '', 'Depends on nagios-core which depends on apache2 from meta-webserver which is not included', d)}"
+SKIP_RECIPE[nagios-nrpe] ?= "${@bb.utils.contains('BBFILE_COLLECTIONS', 'webserver', '', 'Depends on nagios-core which depends on apache2 from meta-webserver which is not included', d)}"
# IP address of server which proxy should connect to
MONITORING_PROXY_SERVER_IP ??= "192.168.7.2"
@@ -59,7 +59,7 @@ do_compile() {
oe_runmake all
}
-do_install_append() {
+do_install:append() {
oe_runmake 'DESTDIR=${D}' install-daemon
oe_runmake 'DESTDIR=${D}' install-config
@@ -83,26 +83,26 @@ do_install_append() {
PACKAGES = "${PN}-dbg ${PN}-plugin ${PN}-daemon"
-FILES_${PN}-plugin = "${NAGIOS_PLUGIN_DIR} \
+FILES:${PN}-plugin = "${NAGIOS_PLUGIN_DIR} \
${NAGIOS_PLUGIN_CONF_DIR} \
"
-FILES_${PN}-daemon = "${sysconfdir} \
+FILES:${PN}-daemon = "${sysconfdir} \
${bindir} \
${nonarch_libdir}/tmpfiles.d/ \
${localstatedir} \
"
-RDEPENDS_${PN}-daemon = "nagios-base"
-RDEPENDS_${PN}-plugin = "nagios-base"
+RDEPENDS:${PN}-daemon = "nagios-base"
+RDEPENDS:${PN}-plugin = "nagios-base"
SYSTEMD_PACKAGES = "${PN}-daemon"
-SYSTEMD_SERVICE_${PN}-daemon = "nagios-nrpe.service"
-SYSTEMD_AUTO_ENABLE_${PN}-daemon = "enable"
+SYSTEMD_SERVICE:${PN}-daemon = "nagios-nrpe.service"
+SYSTEMD_AUTO_ENABLE:${PN}-daemon = "enable"
INITSCRIPT_PACKAGES = "${PN}-daemon"
-INITSCRIPT_NAME_${PN}-daemon = "nrpe"
-INITSCRIPT_PARAMS_${PN}-daemon = "defaults"
+INITSCRIPT_NAME:${PN}-daemon = "nrpe"
+INITSCRIPT_PARAMS:${PN}-daemon = "defaults"
-ALTERNATIVE_${PN}-daemon = "nagios"
+ALTERNATIVE:${PN}-daemon = "nagios"
ALTERNATIVE_LINK_NAME[nagios] = "${localstatedir}/nagios"
diff --git a/recipes-extended/nagios/nagios-nsca_2.9.2.bb b/recipes-extended/nagios/nagios-nsca_2.9.2.bb
index 1fce1983..2db51238 100644
--- a/recipes-extended/nagios/nagios-nsca_2.9.2.bb
+++ b/recipes-extended/nagios/nagios-nsca_2.9.2.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "Nagios Service Check Acceptor"
HOMEPAGE = "http://exchange.nagios.org"
SECTION = "console/network"
PRIORITY = "optional"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://src/nsca.c;beginline=1;endline=16;md5=dd7a195cc7d8a3ebcfabd65360d0cab4"
@@ -22,7 +22,7 @@ S = "${WORKDIR}/${SRCNAME}-${PV}"
inherit update-rc.d autotools-brokensep systemd dos2unix
-PNBLACKLIST[nagios-nsca] ?= "${@bb.utils.contains('BBFILE_COLLECTIONS', 'webserver', '', 'Rdepends on nagios-base provided by nagios-core which depends on apache2 from meta-webserver which is not included', d)}"
+SKIP_RECIPE[nagios-nsca] ?= "${@bb.utils.contains('BBFILE_COLLECTIONS', 'webserver', '', 'Rdepends on nagios-base provided by nagios-core which depends on apache2 from meta-webserver which is not included', d)}"
DEPENDS = "libmcrypt"
@@ -61,28 +61,26 @@ do_install() {
PACKAGES = "${PN}-dbg ${PN}-daemon ${PN}-client"
-FILES_${PN}-daemon = "${sysconfdir}/init.d \
+FILES:${PN}-daemon = "${sysconfdir}/init.d \
${NAGIOS_CONF_DIR}/nsca.cfg \
${bindir}/nsca \
"
-FILES_${PN}-client = "${NAGIOS_CONF_DIR}/send_nsca.cfg \
+FILES:${PN}-client = "${NAGIOS_CONF_DIR}/send_nsca.cfg \
${bindir}/send_nsca \
"
-RDEPENDS_${PN}-daemon += "libmcrypt \
+RDEPENDS:${PN}-daemon += "libmcrypt \
nagios-base \
"
-RDEPENDS_${PN}-client += "libmcrypt \
+RDEPENDS:${PN}-client += "libmcrypt \
nagios-base \
"
SYSTEMD_PACKAGES = "${PN}-daemon"
-SYSTEMD_SERVICE_${PN}-daemon = "nagios-nsca.service"
-SYSTEMD_AUTO_ENABLE_${PN}-daemon = "enable"
+SYSTEMD_SERVICE:${PN}-daemon = "nagios-nsca.service"
+SYSTEMD_AUTO_ENABLE:${PN}-daemon = "enable"
INITSCRIPT_PACKAGES = "${PN}-daemon"
-INITSCRIPT_NAME_${PN}-daemon = "nsca"
-INITSCRIPT_PARAMS_${PN}-daemon = "defaults"
-
-PNBLACKLIST[nagios-nsca] ?= "Depends on libmcrypt, which is considered abandonware"
+INITSCRIPT_NAME:${PN}-daemon = "nsca"
+INITSCRIPT_PARAMS:${PN}-daemon = "defaults"
diff --git a/recipes-extended/nagios/nagios-plugins_2.2.1.bb b/recipes-extended/nagios/nagios-plugins_2.2.1.bb
index b97d80cb..471d4b42 100644
--- a/recipes-extended/nagios/nagios-plugins_2.2.1.bb
+++ b/recipes-extended/nagios/nagios-plugins_2.2.1.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "A host/service/network monitoring and management system plugins"
HOMEPAGE = "http://www.nagios-plugins.org"
SECTION = "console/network"
PRIORITY = "optional"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
@@ -18,7 +18,7 @@ S = "${WORKDIR}/${BPN}-${PV}"
inherit autotools gettext
-PNBLACKLIST[nagios-plugins] ?= "${@bb.utils.contains('BBFILE_COLLECTIONS', 'webserver', '', 'Depends on nagios-core which depends on apache2 from meta-webserver which is not included', d)}"
+SKIP_RECIPE[nagios-plugins] ?= "${@bb.utils.contains('BBFILE_COLLECTIONS', 'webserver', '', 'Depends on nagios-core which depends on apache2 from meta-webserver which is not included', d)}"
EXTRA_OECONF += "--with-sysroot=${STAGING_DIR_HOST} \
--with-nagios-user=${NAGIOS_USER} \
@@ -59,17 +59,17 @@ do_configure() {
oe_runconf || die "make failed"
}
-do_install_append() {
+do_install:append() {
sed -i '1s,#! /usr/bin/perl -w.*,#! ${bindir}/env perl,' ${D}${libdir}/nagios/plugins/*
}
-RDEPENDS_${PN} += "\
+RDEPENDS:${PN} += "\
iputils \
nagios-base \
perl \
bash \
"
-FILES_${PN} += "${datadir} \
+FILES:${PN} += "${datadir} \
${NAGIOS_PLUGIN_DIR} \
"
diff --git a/recipes-extended/oath/oath/0001-oath-fix-macro-definition-error.patch b/recipes-extended/oath/oath/0001-oath-fix-macro-definition-error.patch
index 37f9d753..0d606ade 100644
--- a/recipes-extended/oath/oath/0001-oath-fix-macro-definition-error.patch
+++ b/recipes-extended/oath/oath/0001-oath-fix-macro-definition-error.patch
@@ -3,6 +3,8 @@ From: Dengke Du <dengke.du@windriver.com>
Date: Thu, 27 Sep 2018 09:37:08 +0800
Subject: [PATCH] oath: fix macro definition error
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Dengke Du <dengke.du@windriver.com>
---
oathtool/gl/intprops.h | 6 +++---
diff --git a/recipes-extended/oath/oath_2.6.2.bb b/recipes-extended/oath/oath_2.6.2.bb
index f4230449..84d42dff 100644
--- a/recipes-extended/oath/oath_2.6.2.bb
+++ b/recipes-extended/oath/oath_2.6.2.bb
@@ -1,4 +1,4 @@
-LICENSE = "GPLv3 & LGPLv2.1"
+LICENSE = "GPL-3.0-only & LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=62e1e33aebac5b1bc9fc48a866e2f61b \
file://oathtool/COPYING;md5=d32239bcb673463ab874e80d47fae504 \
file://liboath/COPYING;md5=4fbd65380cdd255951079008b364516c \
@@ -12,7 +12,7 @@ S = "${WORKDIR}/${BPN}-toolkit-${PV}"
SRC_URI[md5sum] = "4a05cd4768764843bd5493609a6bdb17"
SRC_URI[sha256sum] = "b03446fa4b549af5ebe4d35d7aba51163442d255660558cd861ebce536824aa0"
-inherit autotools
+inherit autotools pkgconfig
# Specify any options you want to pass to the configure script using EXTRA_OECONF:
EXTRA_OECONF = ""
diff --git a/recipes-extended/seabios/seabios/hostcc.patch b/recipes-extended/seabios/seabios/hostcc.patch
index f665e1a3..dcc0c0bb 100644
--- a/recipes-extended/seabios/seabios/hostcc.patch
+++ b/recipes-extended/seabios/seabios/hostcc.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Inappropriate [embedded specific]
+
diff -ur a/Makefile b/Makefile
--- a/Makefile 2015-02-02 22:02:58.651041951 -0500
+++ b/Makefile 2015-02-02 23:08:13.884514003 -0500
diff --git a/recipes-extended/seabios/seabios/python3.patch b/recipes-extended/seabios/seabios/python3.patch
index a2786fd7..f401d7b9 100644
--- a/recipes-extended/seabios/seabios/python3.patch
+++ b/recipes-extended/seabios/seabios/python3.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Inappropriate [embedded specific]
+
diff --git a/Makefile b/Makefile
index 516cb38..7f6acaa 100644
--- a/Makefile
diff --git a/recipes-extended/seabios/seabios_1.14.0.bb b/recipes-extended/seabios/seabios_1.16.0.bb
index 1591cb62..ebab54bf 100644
--- a/recipes-extended/seabios/seabios_1.14.0.bb
+++ b/recipes-extended/seabios/seabios_1.16.0.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "SeaBIOS"
HOMEPAGE = "http://www.coreboot.org/SeaBIOS"
-LICENSE = "LGPLv3"
+LICENSE = "LGPL-3.0-only"
SECTION = "firmware"
inherit python3native
@@ -15,11 +15,9 @@ S = "${WORKDIR}/${PN}-${PV}"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6 \
"
+SRC_URI[sha256sum] = "d44d8e97ad56f3fd23ed3076077a770d37a5e7bae22daa59656ff41c3334fb34"
-SRC_URI[md5sum] = "9df3b7de6376850d09161137e7a9b61f"
-SRC_URI[sha256sum] = "eb70cc62b29aa83e10a653233acebf4bb154d00d0c87dc2a2c6e2da75e5e81fd"
-
-FILES_${PN} = "/usr/share/firmware"
+FILES:${PN} = "/usr/share/firmware"
DEPENDS += "util-linux-native file-native bison-native flex-native gettext-native acpica-native"
@@ -27,6 +25,9 @@ TUNE_CCARGS = ""
EXTRA_OEMAKE += "HOSTCC='${BUILD_CC}'"
EXTRA_OEMAKE += "CROSS_PREFIX=${TARGET_PREFIX}"
+# Can not yet compile with clang e.g.
+TOOLCHAIN = "gcc"
+
COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
do_configure() {
diff --git a/recipes-extended/upx/libucl/Reproducible-build.patch b/recipes-extended/upx/libucl/Reproducible-build.patch
index 8398fe02..23acf565 100644
--- a/recipes-extended/upx/libucl/Reproducible-build.patch
+++ b/recipes-extended/upx/libucl/Reproducible-build.patch
@@ -5,6 +5,9 @@ Subject: 03 Reproducible build
Introduced BUILD_DATETIME pre-processor variable to
be used instead of __DATE__ __TIME__ to make build
reproducible.
+
+Upstream-Status: Inappropriate [embedded specific]
+
---
src/ucl_util.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/recipes-extended/upx/libucl/use-static-assert.patch b/recipes-extended/upx/libucl/use-static-assert.patch
index bdf49003..50e9da5f 100644
--- a/recipes-extended/upx/libucl/use-static-assert.patch
+++ b/recipes-extended/upx/libucl/use-static-assert.patch
@@ -4,6 +4,9 @@ Subject: Switch to _Static_assert
Use _Static_assert for compile-time assertion to fix
build failures with gcc-6 (closes: #811707)
+
+Upstream-Status: Inappropriate [embedded specific]
+
---
acc/acc_defs.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/recipes-extended/upx/libucl_1.03.bb b/recipes-extended/upx/libucl_1.03.bb
index b611a968..57a5602e 100644
--- a/recipes-extended/upx/libucl_1.03.bb
+++ b/recipes-extended/upx/libucl_1.03.bb
@@ -1,6 +1,6 @@
HOMEPAGE = "http://www.oberhumer.com/opensource/ucl/"
SUMMARY = "Data compression library"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=dfeaf3dc4beef4f5a7bdbc35b197f39e"
SRC_URI = "http://www.oberhumer.com/opensource/ucl/download/ucl-1.03.tar.gz \
diff --git a/recipes-extended/upx/upx_git.bb b/recipes-extended/upx/upx_git.bb
index b77e6589..02e70ffe 100644
--- a/recipes-extended/upx/upx_git.bb
+++ b/recipes-extended/upx/upx_git.bb
@@ -1,33 +1,16 @@
-HOMEPAGE = "http://upx.sourceforge.net"
SUMMARY = "Ultimate executable compressor."
-
-SRCREV = "4e1ae22a1a07be5135c68b25ff05058ae8ae48e1"
-SRC_URI = "gitsm://github.com/upx/upx;branch=devel"
-
-LICENSE = "GPLv2"
+HOMEPAGE = "https://upx.github.io/"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=353753597aa110e0ded3508408c6374a"
+SRCREV_upx = "099c3d829e80488af7395a4242b318877e980da4"
+PV = "4.2.2+git${SRCPV}"
-DEPENDS = "zlib libucl xz"
+# Note: DO NOT use released tarball in favor of the git repository with submodules.
+# it makes maintenance easier for CVEs or other issues.
+SRC_URI = "gitsm://github.com/upx/upx;protocol=https;;name=upx;branch=devel"
S = "${WORKDIR}/git"
-PV = "3.96+${SRCPV}"
-
-EXTRA_OEMAKE += " \
- UPX_UCLDIR=${STAGING_DIR_TARGET} \
- UPX_LZMADIR=${STAGING_DIR_TARGET} \
-"
-
-# FIXME: The build fails if security flags are enabled
-SECURITY_CFLAGS = ""
-
-do_compile() {
- oe_runmake -C src all
-}
-
-do_install_append() {
- install -d ${D}${bindir}
- install -m 755 ${B}/src/upx.out ${D}${bindir}/upx
-}
+inherit pkgconfig cmake
BBCLASSEXTEND = "native"
diff --git a/recipes-extended/uxen/uxen-guest-tools/0001-vm-support-fix-build-for-kernel-s-5.4.patch b/recipes-extended/uxen/uxen-guest-tools/0001-vm-support-fix-build-for-kernel-s-5.4.patch
new file mode 100644
index 00000000..be187e79
--- /dev/null
+++ b/recipes-extended/uxen/uxen-guest-tools/0001-vm-support-fix-build-for-kernel-s-5.4.patch
@@ -0,0 +1,86 @@
+From 21bb6953a64390dd1c5a8b7520eb5e2c18ea3ff1 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Mon, 29 Nov 2021 21:01:03 -0500
+Subject: [PATCH] vm-support: fix build for kernel's > 5.4
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ a/uxenhc/hypercall.c | 10 +++++++++-
+ a/v4vvsock/v4v_vsock.c | 2 ++
+ a/vmdiagnostics/vm_diagnostics.c | 9 ++++++++-
+ 3 files changed, 19 insertions(+), 2 deletions(-)
+
+diff --git a/uxenhc/hypercall.c b/uxenhc/hypercall.c
+index 0b9ef3f..04957a8 100644
+--- a/uxenhc/hypercall.c
++++ b/uxenhc/hypercall.c
+@@ -10,6 +10,7 @@
+ #include <linux/mm.h>
+ #include <linux/spinlock.h>
+ #include <linux/compiler.h>
++#include <linux/version.h>
+
+ #include <xen/xen.h>
+ #include <xen/version.h>
+@@ -124,7 +125,11 @@ static int __init uxen_hypercall_init(void)
+ printk(KERN_INFO "using uxen hypervisor\n");
+
+ if (!uxen_hcbase) {
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,8,0))
+ uxen_hcbase = __vmalloc(PAGE_SIZE, GFP_KERNEL, PAGE_KERNEL_EXEC);
++#else
++ uxen_hcbase = __vmalloc(PAGE_SIZE, GFP_KERNEL);
++#endif
+ if (!uxen_hcbase) {
+ ret = -ENOMEM;
+ goto out;
+diff --git a/v4vvsock/v4v_vsock.c b/v4vvsock/v4v_vsock.c
+index 8d80d7d..cd7e8ce 100644
+--- a/v4vvsock/v4v_vsock.c
++++ b/v4vvsock/v4v_vsock.c
+@@ -578,8 +578,10 @@ static const struct proto_ops vsock_dgram_ops = {
+ .ioctl = sock_no_ioctl,
+ .listen = sock_no_listen,
+ .shutdown = sock_no_shutdown,
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,10,0))
+ .setsockopt = sock_no_setsockopt,
+ .getsockopt = sock_no_getsockopt,
++#endif
+ .sendmsg = vsock_sendmsg,
+ .recvmsg = vsock_recvmsg,
+ .mmap = sock_no_mmap,
+diff --git a/vmdiagnostics/vm_diagnostics.c b/vmdiagnostics/vm_diagnostics.c
+index 9ff94fb..db14e57 100644
+--- a/vmdiagnostics/vm_diagnostics.c
++++ b/vmdiagnostics/vm_diagnostics.c
+@@ -22,6 +22,7 @@
+ #include <linux/timekeeping.h>
+ #include <linux/types.h>
+ #include <linux/vmstat.h>
++#include <linux/version.h>
+
+ #include <uxen-v4vlib.h>
+
+@@ -403,10 +404,16 @@ static void vm_handle_request_stat_task(struct vm_diagnostics_context *context,
+
+ task_payload.state = task_state_to_char(task);
+ task_payload.num_threads = get_nr_threads(task);
++
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,5,0))
+ task_payload.start_time_nsec = task->real_start_time;
++#else
++ task_payload.start_time_nsec = task->start_boottime;
++#endif
++
+ task_payload.last_run_cpu_id = task_cpu(task);
+
+- thread_group_cputime_adjusted(task, &user_nsec, &system_nsec);
++ //thread_group_cputime_adjusted(task, &user_nsec, &system_nsec);
+ task_payload.user_nsec = user_nsec;
+ task_payload.system_nsec = system_nsec;
+
+--
+2.19.1
+
diff --git a/recipes-extended/uxen/uxen-guest-tools/0002-vm-support-fix-build-for-kernel-s-5.15.patch b/recipes-extended/uxen/uxen-guest-tools/0002-vm-support-fix-build-for-kernel-s-5.15.patch
new file mode 100644
index 00000000..22c5cd57
--- /dev/null
+++ b/recipes-extended/uxen/uxen-guest-tools/0002-vm-support-fix-build-for-kernel-s-5.15.patch
@@ -0,0 +1,48 @@
+From f8a33a209498b32b0fc06d80baa071f0902b9a85 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 30 Nov 2021 06:45:34 -0800
+Subject: [PATCH] vm-support: fix build for kernel's > 5.15
+
+* remove callback was changed to return void instead of int in:
+ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fc7a6209d5710618eb4f72a77cd81b8d694ecf89
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ uxenplatform/platform.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/uxenplatform/platform.c b/uxenplatform/platform.c
+index 99fc76a..5225a00 100644
+--- a/uxenplatform/platform.c
++++ b/uxenplatform/platform.c
+@@ -4,6 +4,7 @@
+ #include <linux/random.h>
+ #include <linux/kthread.h>
+ #include <linux/delay.h>
++#include <linux/version.h>
+
+ #include <uxen-hypercall.h>
+ #include <uxen-platform.h>
+@@ -32,14 +33,20 @@ static int bus_probe(struct device *_dev)
+ return drv && drv->probe ? drv->probe(dev) : -ENODEV;
+ }
+
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0))
+ static int bus_remove(struct device *_dev)
++#else
++static void bus_remove(struct device *_dev)
++#endif
+ {
+ struct uxen_device *dev = dev_to_uxen(_dev);
+ struct uxen_driver *drv = drv_to_uxen(_dev->driver);
+
+ if (dev && drv && drv->remove)
+ drv->remove(dev);
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0))
+ return 0;
++#endif
+ }
+
+ static int bus_suspend(struct device *_dev, pm_message_t state)
diff --git a/recipes-extended/uxen/uxen-guest-tools/0003-vm-support-fix-build-for-kernel-s-5.14.patch b/recipes-extended/uxen/uxen-guest-tools/0003-vm-support-fix-build-for-kernel-s-5.14.patch
new file mode 100644
index 00000000..f775b2e6
--- /dev/null
+++ b/recipes-extended/uxen/uxen-guest-tools/0003-vm-support-fix-build-for-kernel-s-5.14.patch
@@ -0,0 +1,34 @@
+From 59986e91d807591f05dfbd57b459ba71670874f9 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 30 Nov 2021 15:04:31 +0000
+Subject: [PATCH] vm-support: fix build for kernel's > 5.14
+
+* remove set_driver_byte call
+* not sure if it's still necessary here, but set_driver_byte as well as DRIVER_SENSE was killed in 5.14 with:
+ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=464a00c9e0ad45e3f42ff6ea705491a356df818e
+
+ in some cases it was replaced with set_status_byte(sc, SAM_STAT_CHECK_CONDITION), but I didn't
+ read the implementation carefully enough to decide if this is still needed, I was only interested
+ in fixing the build failure (and I don't use this at all to test it in runtime)
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ uxenstor/stor.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/uxenstor/stor.c b/uxenstor/stor.c
+index e07b08e..6bf2184 100644
+--- a/uxenstor/stor.c
++++ b/uxenstor/stor.c
+@@ -109,7 +109,9 @@ static void uxenstor_softirq(unsigned long opaque)
+ sc->sense_buffer,
+ sizeof(hdr) + hdr.sense_size,
+ 0, sizeof(hdr));
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,14,0))
+ set_driver_byte(sc, DRIVER_SENSE);
++#endif
+ }
+
+ set_host_byte(sc, DID_ERROR);
diff --git a/recipes-extended/uxen/uxen-guest-tools/0004-uxenhc-fix-DMODULE-not-working-on-module-build-comma.patch b/recipes-extended/uxen/uxen-guest-tools/0004-uxenhc-fix-DMODULE-not-working-on-module-build-comma.patch
new file mode 100644
index 00000000..627a12f0
--- /dev/null
+++ b/recipes-extended/uxen/uxen-guest-tools/0004-uxenhc-fix-DMODULE-not-working-on-module-build-comma.patch
@@ -0,0 +1,58 @@
+From 732791cb353289e37448d84503a7d62ca156f29f Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 30 Nov 2021 16:33:14 +0000
+Subject: [PATCH] uxenhc: fix -DMODULE not working on module build command line
+
+* ATTOXEN_API_INC isn't defined anywhere in our OE builds, so the command line ends like this:
+
+ x86_64-oe-linux-gcc -fuse-ld=bfd -fmacro-prefix-map=/OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0=/usr/src/debug/uxen-guest-tools/4.1.8-r0 -fdebug-prefix-map=/OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0=/usr/src/debug/uxen-guest-tools/4.1.8-r0 -fdebug-prefix-map=/OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/recipe-sysroot= -fdebug-prefix-map=/OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/recipe-sysroot-native= -fdebug-prefix-map=/OE/work-shared/qemux86-64/kernel-source=/usr/src/kernel -Wp,-MMD,/OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/uxen-4.1.8-72a4af9/vm-support/linux/uxenhc/.hypercall.o.d -I/OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/uxen-4.1.8-72a4af9/vm-support/linux/include/ -I/OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/uxen-4.1.8-72a4af9/vm-support/linux/include/uxen -I/OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/uxen-4.1.8-72a4af9/vm-support/linux/include/uxen/xen -I/OE/work-shared/qemux86-64/kernel-source/arch/x86/include -I./arch/x86/include/generated -I/OE/work-shared/qemux86-64/kernel-source/include -I./include -I/OE/work-shared/qemux86-64/kernel-source/arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I/OE/work-shared/qemux86-64/kernel-source/include/uapi -I./include/generated/uapi -include /OE/work-shared/qemux86-64/kernel-source/include/linux/compiler-version.h -include /OE/work-shared/qemux86-64/kernel-source/include/linux/kconfig.h -include /OE/work-shared/qemux86-64/kernel-source/include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=/OE/work-shared/qemux86-64/kernel-source/= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -march=core2 -mno-red-zone -mcmodel=kernel -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 -fno-allow-store-data-races -Wframe-larger-than=2048 -fstack-protector-strong -Wimplicit-fallthrough=5 -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-stack-clash-protection -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-zero-length-bounds -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -DLX_TARGET_STANDARDVM -g -Wall -I -DMODULE -DKBUILD_BASENAME='"hypercall"' -DKBUILD_MODNAME='"uxenhc"' -D__KBUILD_MODNAME=kmod_uxenhc -c -o /OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/uxen-4.1.8-72a4af9/vm-support/linux/uxenhc/hypercall.o /OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/uxen-4.1.8-72a4af9/vm-support/linux/uxenhc/hypercall.c
+
+ the important part is "-I -DMODULE" which breaks include/linux/module.h behavior:
+
+ /*
+ * MODULE_FILE is used for generating modules.builtin
+ * So, make it no-op when this is being built as a module
+ */
+ #ifdef MODULE
+ #define MODULE_FILE
+ #else
+ #define MODULE_FILE MODULE_INFO(file, KBUILD_MODFILE);
+ #endif
+
+ resulting in:
+
+ In file included from /OE/work-shared/qemux86-64/kernel-source/include/linux/module.h:22,
+ from /OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/uxen-4.1.8-72a4af9/vm-support/linux/uxenhc/hypercall.c:3:
+ /OE/work-shared/qemux86-64/kernel-source/include/linux/module.h:183:43: error: expected ',' or ';' before 'KBUILD_MODFILE'
+ 183 | #define MODULE_FILE MODULE_INFO(file, KBUILD_MODFILE);
+ | ^~~~~~~~~~~~~~
+ /OE/work-shared/qemux86-64/kernel-source/include/linux/moduleparam.h:26:61: note: in definition of macro '__MODULE_INFO'
+ 26 | = __MODULE_INFO_PREFIX __stringify(tag) "=" info
+ | ^~~~
+ /OE/work-shared/qemux86-64/kernel-source/include/linux/module.h:183:25: note: in expansion of macro 'MODULE_INFO'
+ 183 | #define MODULE_FILE MODULE_INFO(file, KBUILD_MODFILE);
+ | ^~~~~~~~~~~
+ /OE/work-shared/qemux86-64/kernel-source/include/linux/module.h:230:34: note: in expansion of macro 'MODULE_FILE'
+ 230 | #define MODULE_LICENSE(_license) MODULE_FILE MODULE_INFO(license, _license)
+ | ^~~~~~~~~~~
+ /OE/work/qemux86_64-oe-linux/uxen-guest-tools/4.1.8-r0/uxen-4.1.8-72a4af9/vm-support/linux/uxenhc/hypercall.c:161:1: note: in expansion of macro 'MODULE_LICENSE'
+ 161 | MODULE_LICENSE("GPL");
+ | ^~~~~~~~~~~~~~
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ uxenhc/Kbuild | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/uxenhc/Kbuild b/uxenhc/Kbuild
+index e418096..ef1b145 100644
+--- a/uxenhc/Kbuild
++++ b/uxenhc/Kbuild
+@@ -1,4 +1,3 @@
+ obj-m += uxenhc.o
+
+ uxenhc-y := hypercall.o
+-CFLAGS_hypercall.o := -I$(ATTOXEN_API_INC)
+\ No newline at end of file
diff --git a/recipes-extended/uxen/uxen-guest-tools/fix-Makefile-for-OE-kernel-build.patch b/recipes-extended/uxen/uxen-guest-tools/fix-Makefile-for-OE-kernel-build.patch
index db4c53f5..09a43754 100644
--- a/recipes-extended/uxen/uxen-guest-tools/fix-Makefile-for-OE-kernel-build.patch
+++ b/recipes-extended/uxen/uxen-guest-tools/fix-Makefile-for-OE-kernel-build.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Inappropriate [embedded specific]
+
# OpenEmbedded uses KERNEL_SRC instead of KDIR
# and enable the modules_install target.
# Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com>
diff --git a/recipes-extended/uxen/uxen-guest-tools_4.1.7.bb b/recipes-extended/uxen/uxen-guest-tools_4.1.7.bb
deleted file mode 100644
index 757f1e3b..00000000
--- a/recipes-extended/uxen/uxen-guest-tools_4.1.7.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "uXen type-2 Open Source hypervisor Linux guest tools"
-DESCRIPTION = "Linux guest virtual machine tools for the uXen hypervisor"
-HOMEPAGE = "https://www.bromium.com/opensource"
-LICENSE = "GPLv2"
-
-COMPATIBLE_HOST = '(x86_64.*).*-linux'
-
-SRC_URI = " \
- https://www.bromium.com/wp-content/uploads/2019/06/uxen-vmsupport-linux-${PV}.zip;name=uxen \
- https://www.bromium.com/wp-content/uploads/2019/11/Bromium-4.1.8-Open-Source-Software.pdf;name=license \
- file://fix-Makefile-for-OE-kernel-build.patch \
- "
-
-SRC_URI[uxen.sha384sum] = "d9d7a1fa5c44ac77eea3d8d4756f9e07fc02acfe12606325ff0bb8a60c07abc3e9ddb80c2039797fb2122d750219722f"
-SRC_URI[license.sha384sum] = "92e48c614df3094cb52321d4c4e01f6df5526d46aee5c6fa36c43ee23d4c33f03baa1fc5f6f29efafff636b6d13bc92c"
-
-# The software license is GPLv2: please see page 199 of the pdf document
-LIC_FILES_CHKSUM = "file://../Bromium-4.1.8-Open-Source-Software.pdf;md5=cf120df6ffa417b36f870a9997650049"
-
-S = "${WORKDIR}/uxen-vmsupport-linux-${PV}"
-
-inherit module
diff --git a/recipes-extended/uxen/uxen-guest-tools_4.1.8.bb b/recipes-extended/uxen/uxen-guest-tools_4.1.8.bb
new file mode 100644
index 00000000..c2f3464c
--- /dev/null
+++ b/recipes-extended/uxen/uxen-guest-tools_4.1.8.bb
@@ -0,0 +1,26 @@
+SUMMARY = "uXen type-2 Open Source hypervisor Linux guest tools"
+DESCRIPTION = "Linux guest virtual machine tools for the uXen hypervisor"
+HOMEPAGE = "https://www.bromium.com/opensource"
+LICENSE = "GPL-2.0-only"
+
+COMPATIBLE_HOST = '(x86_64.*).*-linux'
+
+SRC_URI = " \
+ https://www.bromium.com/wp-content/uploads/2019/11/uxen-${PV}.zip;name=uxen \
+ https://www.bromium.com/wp-content/uploads/2019/11/Bromium-4.1.8-Open-Source-Software.pdf;name=license \
+ file://fix-Makefile-for-OE-kernel-build.patch \
+ file://0001-vm-support-fix-build-for-kernel-s-5.4.patch \
+ file://0002-vm-support-fix-build-for-kernel-s-5.15.patch \
+ file://0003-vm-support-fix-build-for-kernel-s-5.14.patch \
+ file://0004-uxenhc-fix-DMODULE-not-working-on-module-build-comma.patch \
+"
+
+SRC_URI[uxen.sha384sum] = "be2233bc6506a23350d76c03ac28ea7ea381e1dc6ed5ce996e8ac71e6a3316fcaa2ed070c622618bd226f43a4d6db5d4"
+SRC_URI[license.sha384sum] = "92e48c614df3094cb52321d4c4e01f6df5526d46aee5c6fa36c43ee23d4c33f03baa1fc5f6f29efafff636b6d13bc92c"
+
+# The software license is GPLv2: please see page 199 of the pdf document
+LIC_FILES_CHKSUM = "file://${WORKDIR}/Bromium-4.1.8-Open-Source-Software.pdf;md5=cf120df6ffa417b36f870a9997650049"
+
+S = "${WORKDIR}/uxen-${PV}-72a4af9/vm-support/linux"
+
+inherit module dos2unix
diff --git a/recipes-extended/vgabios/biossums_0.7a.bb b/recipes-extended/vgabios/biossums_0.7a.bb
deleted file mode 100644
index e66bade7..00000000
--- a/recipes-extended/vgabios/biossums_0.7a.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-DESCRIPTION = "biossums tool for building Plex86/Bochs LGPL VGABios"
-HOMEPAGE = "http://www.nongnu.org/vgabios/"
-LICENSE = "LGPLv2.1"
-SECTION = "firmware"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589"
-
-SRC_URI = "http://savannah.gnu.org/download/vgabios/vgabios-${PV}.tgz"
-
-SRC_URI[md5sum] = "2c0fe5c0ca08082a9293e3a7b23dc900"
-SRC_URI[sha256sum] = "9d24c33d4bfb7831e2069cf3644936a53ef3de21d467872b54ce2ea30881b865"
-
-BBCLASSEXTEND = "native"
-
-FILES_${PN} = "${bindir}/biossums"
-
-S = "${WORKDIR}/vgabios-${PV}"
-
-do_configure() {
- # Don't override the compiler or its flags:
- sed 's,^CC,DISABLED_CC,' -i Makefile
- sed 's,^CFLAGS,DISABLED_CFLAGS,' -i Makefile
- sed 's,^LDFLAGS,DISABLED_LDFLAGS,' -i Makefile
- # Supply the C flags to the compiler:
- sed 's,-o biossums,$(CFLAGS) -o biossums,' -i Makefile
-}
-
-do_compile() {
- # clean removes binaries distributed with source
- oe_runmake clean
- oe_runmake biossums
-}
-
-do_install() {
- mkdir -p "${D}${bindir}"
- install -m 0755 biossums "${D}${bindir}"
-}
diff --git a/recipes-extended/vgabios/files/build-cc.patch b/recipes-extended/vgabios/files/build-cc.patch
new file mode 100644
index 00000000..01fd8b97
--- /dev/null
+++ b/recipes-extended/vgabios/files/build-cc.patch
@@ -0,0 +1,31 @@
+Use the host compiler to build the tools we need at runtime.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+Index: Makefile
+===================================================================
+--- a/Makefile (revision 298)
++++ b/Makefile (working copy)
+@@ -5,6 +5,7 @@
+ SHELL = /bin/sh
+
+ CC = gcc
++HOSTCC = gcc
+ CFLAGS = -g -O2 -Wall -Wstrict-prototypes
+ LDFLAGS =
+
+@@ -79,10 +80,10 @@
+ tar czvf ../$(RELEASE).tgz --exclude .svn -C .. $(RELEASE)/
+
+ biossums: biossums.c
+- $(CC) -o biossums biossums.c
++ $(HOSTCC) -o biossums biossums.c
+
+ vbetables-gen: vbetables-gen.c
+- $(CC) -o vbetables-gen vbetables-gen.c
++ $(HOSTCC) -o vbetables-gen vbetables-gen.c
+
+ vbetables.h: vbetables-gen
+ ./vbetables-gen > $@
diff --git a/recipes-extended/vgabios/vgabios_0.7a.bb b/recipes-extended/vgabios/vgabios_0.7a.bb
deleted file mode 100644
index 3394173c..00000000
--- a/recipes-extended/vgabios/vgabios_0.7a.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-DESCRIPTION = "Plex86/Bochs LGPL VGABios"
-HOMEPAGE = "http://www.nongnu.org/vgabios/"
-LICENSE = "LGPLv2.1"
-SECTION = "firmware"
-
-DEPENDS = "dev86-native biossums-native"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589"
-
-SRC_URI = "http://savannah.gnu.org/download/vgabios/${BPN}-${PV}.tgz"
-
-SRC_URI[md5sum] = "2c0fe5c0ca08082a9293e3a7b23dc900"
-SRC_URI[sha256sum] = "9d24c33d4bfb7831e2069cf3644936a53ef3de21d467872b54ce2ea30881b865"
-
-PR = "r0"
-
-FILES_${PN} = "/usr/share/firmware/${PN}-${PV}*.bin"
-FILES_${PN}-dbg = "/usr/share/firmware/${PN}-${PV}*.debug.bin"
-
-S = "${WORKDIR}/${PN}-${PV}"
-
-do_configure() {
- # Override to use the native-built biossums tool:
- sed 's,./biossums,biossums,' -i Makefile
- sed 's,$(CC) -o biossums biossums.c,touch biossums,' -i Makefile
-}
-
-do_install() {
- install -d ${D}/usr/share/firmware
- install -m 0644 VGABIOS-lgpl-latest.bin ${D}/usr/share/firmware/${PN}-${PV}.bin
- install -m 0644 VGABIOS-lgpl-latest.cirrus.bin ${D}/usr/share/firmware/${PN}-${PV}.cirrus.bin
-}
-
diff --git a/recipes-extended/vgabios/vgabios_0.8a.bb b/recipes-extended/vgabios/vgabios_0.8a.bb
new file mode 100644
index 00000000..044bb4ec
--- /dev/null
+++ b/recipes-extended/vgabios/vgabios_0.8a.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Plex86/Bochs LGPL VGABios"
+HOMEPAGE = "http://www.nongnu.org/vgabios/"
+LICENSE = "LGPL-2.1-only"
+SECTION = "firmware"
+
+DEPENDS = "dev86-native"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=fae731a3adbc92fd8bb1730d1f2455bc"
+
+SRC_URI = "http://savannah.gnu.org/download/vgabios/${BP}.tgz \
+ file://build-cc.patch"
+SRC_URI[sha256sum] = "481042240ef0f1c918780c92a6bb42ad4d3f5d989b29502fa7ee7faf13a041b9"
+
+EXTRA_OEMAKE = "HOSTCC="${BUILD_CC}""
+
+do_install() {
+ install -d ${D}${datadir}/firmware
+ for file in VGABIOS*.bin; do
+ target=$(echo $file | sed s/VGABIOS-lgpl-latest/${BP}/)
+ install -m0644 $file ${D}${datadir}/firmware/$target
+ done
+}
+
+FILES:${PN} = "${datadir}/firmware/${BP}*.bin"
+FILES:${PN}-dbg = "${datadir}/firmware/${BP}*.debug.bin"
diff --git a/recipes-extended/vhost-device/README.md b/recipes-extended/vhost-device/README.md
new file mode 100644
index 00000000..dd79b484
--- /dev/null
+++ b/recipes-extended/vhost-device/README.md
@@ -0,0 +1,14 @@
+# vhost-device: A collection of vhost-user devices
+
+[vhost-device](https://github.com/rust-vmm/vhost-device) provides a series of
+daemons that implement the
+[vhost-user protocol](https://qemu-project.gitlab.io/qemu/interop/vhost-user.html)
+for various virtio device types.
+
+## Updating the recipes
+
+1. Bump the version number to the newly published version listed on crates.io
+2. Regenerate the .inc file that list the dependencies:
+ `bitbake -c update_crates vhost-device-<type>`
+3. Review, build and test the changes
+
diff --git a/recipes-extended/vhost-device/vhost-device-gpio-crates.inc b/recipes-extended/vhost-device/vhost-device-gpio-crates.inc
new file mode 100644
index 00000000..4d73c1fd
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-gpio-crates.inc
@@ -0,0 +1,184 @@
+# Autogenerated with 'bitbake -c update_crates vhost-device-gpio'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/aho-corasick/1.0.2 \
+ crate://crates.io/anstream/0.3.2 \
+ crate://crates.io/anstyle/1.0.1 \
+ crate://crates.io/anstyle-parse/0.2.1 \
+ crate://crates.io/anstyle-query/1.0.0 \
+ crate://crates.io/anstyle-wincon/1.0.1 \
+ crate://crates.io/arc-swap/1.6.0 \
+ crate://crates.io/assert_matches/1.5.0 \
+ crate://crates.io/bindgen/0.63.0 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/bitflags/2.3.3 \
+ crate://crates.io/cc/1.0.79 \
+ crate://crates.io/cexpr/0.6.0 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/clang-sys/1.6.1 \
+ crate://crates.io/clap/4.3.19 \
+ crate://crates.io/clap_builder/4.3.19 \
+ crate://crates.io/clap_derive/4.3.12 \
+ crate://crates.io/clap_lex/0.5.0 \
+ crate://crates.io/colorchoice/1.0.0 \
+ crate://crates.io/either/1.8.1 \
+ crate://crates.io/env_logger/0.10.0 \
+ crate://crates.io/errno/0.2.8 \
+ crate://crates.io/errno/0.3.1 \
+ crate://crates.io/errno-dragonfly/0.1.2 \
+ crate://crates.io/glob/0.3.1 \
+ crate://crates.io/heck/0.3.3 \
+ crate://crates.io/heck/0.4.1 \
+ crate://crates.io/hermit-abi/0.3.2 \
+ crate://crates.io/humantime/2.1.0 \
+ crate://crates.io/intmap/2.0.0 \
+ crate://crates.io/is-terminal/0.4.9 \
+ crate://crates.io/lazy_static/1.4.0 \
+ crate://crates.io/lazycell/1.3.0 \
+ crate://crates.io/libc/0.2.147 \
+ crate://crates.io/libgpiod/0.1.0 \
+ crate://crates.io/libgpiod-sys/0.1.0 \
+ crate://crates.io/libloading/0.7.4 \
+ crate://crates.io/linux-raw-sys/0.4.3 \
+ crate://crates.io/log/0.4.19 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/minimal-lexical/0.2.1 \
+ crate://crates.io/nom/7.1.3 \
+ crate://crates.io/once_cell/1.18.0 \
+ crate://crates.io/peeking_take_while/0.1.2 \
+ crate://crates.io/pkg-config/0.3.27 \
+ crate://crates.io/proc-macro2/1.0.63 \
+ crate://crates.io/quote/1.0.29 \
+ crate://crates.io/regex/1.9.1 \
+ crate://crates.io/regex-automata/0.3.2 \
+ crate://crates.io/regex-syntax/0.7.4 \
+ crate://crates.io/rustc-hash/1.1.0 \
+ crate://crates.io/rustix/0.38.3 \
+ crate://crates.io/serde/1.0.168 \
+ crate://crates.io/shlex/1.1.0 \
+ crate://crates.io/strsim/0.10.0 \
+ crate://crates.io/strum/0.20.0 \
+ crate://crates.io/strum_macros/0.20.1 \
+ crate://crates.io/syn/1.0.109 \
+ crate://crates.io/syn/2.0.23 \
+ crate://crates.io/system-deps/2.0.3 \
+ crate://crates.io/termcolor/1.2.0 \
+ crate://crates.io/thiserror/1.0.41 \
+ crate://crates.io/thiserror-impl/1.0.41 \
+ crate://crates.io/toml/0.5.11 \
+ crate://crates.io/unicode-ident/1.0.11 \
+ crate://crates.io/unicode-segmentation/1.10.1 \
+ crate://crates.io/utf8parse/0.2.1 \
+ crate://crates.io/version-compare/0.0.11 \
+ crate://crates.io/vhost/0.8.0 \
+ crate://crates.io/vhost-user-backend/0.10.0 \
+ crate://crates.io/virtio-bindings/0.2.1 \
+ crate://crates.io/virtio-queue/0.9.0 \
+ crate://crates.io/vm-memory/0.12.0 \
+ crate://crates.io/vmm-sys-util/0.11.1 \
+ crate://crates.io/which/4.4.0 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+ crate://crates.io/windows-sys/0.48.0 \
+ crate://crates.io/windows-targets/0.48.1 \
+ crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
+ crate://crates.io/windows_aarch64_msvc/0.48.0 \
+ crate://crates.io/windows_i686_gnu/0.48.0 \
+ crate://crates.io/windows_i686_msvc/0.48.0 \
+ crate://crates.io/windows_x86_64_gnu/0.48.0 \
+ crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
+ crate://crates.io/windows_x86_64_msvc/0.48.0 \
+"
+
+SRC_URI[aho-corasick-1.0.2.sha256sum] = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
+SRC_URI[anstyle-1.0.1.sha256sum] = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
+SRC_URI[anstyle-parse-0.2.1.sha256sum] = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+SRC_URI[anstyle-wincon-1.0.1.sha256sum] = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
+SRC_URI[arc-swap-1.6.0.sha256sum] = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+SRC_URI[assert_matches-1.5.0.sha256sum] = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
+SRC_URI[bindgen-0.63.0.sha256sum] = "36d860121800b2a9a94f9b5604b332d5cffb234ce17609ea479d723dbc9d3885"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.3.3.sha256sum] = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+SRC_URI[cexpr-0.6.0.sha256sum] = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clang-sys-1.6.1.sha256sum] = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
+SRC_URI[clap-4.3.19.sha256sum] = "5fd304a20bff958a57f04c4e96a2e7594cc4490a0e809cbd48bb6437edaa452d"
+SRC_URI[clap_builder-4.3.19.sha256sum] = "01c6a3f08f1fe5662a35cfe393aec09c4df95f60ee93b7556505260f75eee9e1"
+SRC_URI[clap_derive-4.3.12.sha256sum] = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
+SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+SRC_URI[either-1.8.1.sha256sum] = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+SRC_URI[env_logger-0.10.0.sha256sum] = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+SRC_URI[errno-0.2.8.sha256sum] = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+SRC_URI[errno-0.3.1.sha256sum] = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+SRC_URI[heck-0.3.3.sha256sum] = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
+SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+SRC_URI[hermit-abi-0.3.2.sha256sum] = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[intmap-2.0.0.sha256sum] = "ee87fd093563344074bacf24faa0bb0227fb6969fb223e922db798516de924d6"
+SRC_URI[is-terminal-0.4.9.sha256sum] = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[lazycell-1.3.0.sha256sum] = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+SRC_URI[libgpiod-0.1.0.sha256sum] = "9e9fdf4b437063f5697151f9ead12bafa223958e243f2f736107ec68c2b88231"
+SRC_URI[libgpiod-sys-0.1.0.sha256sum] = "aa282e1da652deaeed776f6ef36d443689aeda19e5c0a3a2335c50b4611ce489"
+SRC_URI[libloading-0.7.4.sha256sum] = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+SRC_URI[linux-raw-sys-0.4.3.sha256sum] = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
+SRC_URI[log-0.4.19.sha256sum] = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+SRC_URI[peeking_take_while-0.1.2.sha256sum] = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+SRC_URI[pkg-config-0.3.27.sha256sum] = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+SRC_URI[proc-macro2-1.0.63.sha256sum] = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+SRC_URI[quote-1.0.29.sha256sum] = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+SRC_URI[regex-1.9.1.sha256sum] = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+SRC_URI[regex-automata-0.3.2.sha256sum] = "83d3daa6976cffb758ec878f108ba0e062a45b2d6ca3a2cca965338855476caf"
+SRC_URI[regex-syntax-0.7.4.sha256sum] = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+SRC_URI[rustc-hash-1.1.0.sha256sum] = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+SRC_URI[rustix-0.38.3.sha256sum] = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4"
+SRC_URI[serde-1.0.168.sha256sum] = "d614f89548720367ded108b3c843be93f3a341e22d5674ca0dd5cd57f34926af"
+SRC_URI[shlex-1.1.0.sha256sum] = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[strum-0.20.0.sha256sum] = "7318c509b5ba57f18533982607f24070a55d353e90d4cae30c467cdb2ad5ac5c"
+SRC_URI[strum_macros-0.20.1.sha256sum] = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[syn-2.0.23.sha256sum] = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
+SRC_URI[system-deps-2.0.3.sha256sum] = "1b59b8aafd652f3c1469f16e6c223121e8a8dbe40c71475209c1401cff3a67ef"
+SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+SRC_URI[thiserror-1.0.41.sha256sum] = "c16a64ba9387ef3fdae4f9c1a7f07a0997fce91985c0336f1ddc1822b3b37802"
+SRC_URI[thiserror-impl-1.0.41.sha256sum] = "d14928354b01c4d6a4f0e549069adef399a284e7995c7ccca94e8a07a5346c59"
+SRC_URI[toml-0.5.11.sha256sum] = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+SRC_URI[unicode-ident-1.0.11.sha256sum] = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+SRC_URI[unicode-segmentation-1.10.1.sha256sum] = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+SRC_URI[version-compare-0.0.11.sha256sum] = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b"
+SRC_URI[vhost-0.8.0.sha256sum] = "73832f4d8d636d63d9b145e8ef22a2c50b93f4d24eb7a99c9e6781b1b08549cf"
+SRC_URI[vhost-user-backend-0.10.0.sha256sum] = "e3ea9d5e8ec847cde4df1c04e586698a479706fd6beca37323f9d425b24b4c2f"
+SRC_URI[virtio-bindings-0.2.1.sha256sum] = "c18d7b74098a946470ea265b5bacbbf877abc3373021388454de0d47735a5b98"
+SRC_URI[virtio-queue-0.9.0.sha256sum] = "35aca00da06841bd99162c381ec65893cace23ca0fb89254302cfe4bec4c300f"
+SRC_URI[vm-memory-0.12.0.sha256sum] = "a77c7a0891cbac53618f5f6eec650ed1dc4f7e506bbe14877aff49d94b8408b0"
+SRC_URI[vmm-sys-util-0.11.1.sha256sum] = "dd64fe09d8e880e600c324e7d664760a17f56e9672b7495a86381b49e4f72f46"
+SRC_URI[which-4.4.0.sha256sum] = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+SRC_URI[windows-targets-0.48.1.sha256sum] = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
diff --git a/recipes-extended/vhost-device/vhost-device-gpio_0.1.0.bb b/recipes-extended/vhost-device/vhost-device-gpio_0.1.0.bb
new file mode 100644
index 00000000..79931163
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-gpio_0.1.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "vhost gpio backend device"
+DESCRIPTION = "A vhost-user backend that emulates a VirtIO GPIO device"
+HOMEPAGE = "https://github.com/rust-vmm/vhost-device"
+LICENSE = "Apache-2.0 | BSD-3-Clause"
+LIC_FILES_CHKSUM = "\
+ file://LICENSE-APACHE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+ file://LICENSE-BSD-3-Clause;md5=2489db1359f496fff34bd393df63947e \
+"
+DEPENDS += "libgpiod"
+# libgpiod-sys generates bindings using bindgen, which depends on clang
+DEPENDS += "clang-native"
+
+SKIP_RECIPE[vhost-device-gpio] ?= "${@bb.utils.contains('BBFILE_COLLECTIONS', 'clang-layer', '', 'Depends on clang-native from meta-clang which is not included', d)}"
+
+SRC_URI += "crate://crates.io/vhost-device-gpio/0.1.0"
+SRC_URI[vhost-device-gpio-0.1.0.sha256sum] = "f4789dd127ce746d4f702d50256ff09e47b19fdb2bfee88a254b7e48efbf1100"
+
+inherit cargo
+inherit cargo-update-recipe-crates
+inherit pkgconfig
+
+include vhost-device-gpio-crates.inc
diff --git a/recipes-extended/vhost-device/vhost-device-i2c-crates.inc b/recipes-extended/vhost-device/vhost-device-i2c-crates.inc
new file mode 100644
index 00000000..ba6a757d
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-i2c-crates.inc
@@ -0,0 +1,126 @@
+# Autogenerated with 'bitbake -c update_crates vhost-device-i2c'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/aho-corasick/1.0.2 \
+ crate://crates.io/anstream/0.3.2 \
+ crate://crates.io/anstyle/1.0.1 \
+ crate://crates.io/anstyle-parse/0.2.1 \
+ crate://crates.io/anstyle-query/1.0.0 \
+ crate://crates.io/anstyle-wincon/1.0.1 \
+ crate://crates.io/arc-swap/1.6.0 \
+ crate://crates.io/assert_matches/1.5.0 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/bitflags/2.3.3 \
+ crate://crates.io/cc/1.0.79 \
+ crate://crates.io/clap/4.3.19 \
+ crate://crates.io/clap_builder/4.3.19 \
+ crate://crates.io/clap_derive/4.3.12 \
+ crate://crates.io/clap_lex/0.5.0 \
+ crate://crates.io/colorchoice/1.0.0 \
+ crate://crates.io/env_logger/0.10.0 \
+ crate://crates.io/errno/0.3.1 \
+ crate://crates.io/errno-dragonfly/0.1.2 \
+ crate://crates.io/heck/0.4.1 \
+ crate://crates.io/hermit-abi/0.3.2 \
+ crate://crates.io/humantime/2.1.0 \
+ crate://crates.io/is-terminal/0.4.9 \
+ crate://crates.io/libc/0.2.147 \
+ crate://crates.io/linux-raw-sys/0.4.3 \
+ crate://crates.io/log/0.4.19 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/once_cell/1.18.0 \
+ crate://crates.io/proc-macro2/1.0.63 \
+ crate://crates.io/quote/1.0.29 \
+ crate://crates.io/regex/1.9.1 \
+ crate://crates.io/regex-automata/0.3.2 \
+ crate://crates.io/regex-syntax/0.7.4 \
+ crate://crates.io/rustix/0.38.3 \
+ crate://crates.io/strsim/0.10.0 \
+ crate://crates.io/syn/2.0.23 \
+ crate://crates.io/termcolor/1.2.0 \
+ crate://crates.io/thiserror/1.0.41 \
+ crate://crates.io/thiserror-impl/1.0.41 \
+ crate://crates.io/unicode-ident/1.0.11 \
+ crate://crates.io/utf8parse/0.2.1 \
+ crate://crates.io/vhost/0.8.0 \
+ crate://crates.io/vhost-user-backend/0.10.0 \
+ crate://crates.io/virtio-bindings/0.2.1 \
+ crate://crates.io/virtio-queue/0.9.0 \
+ crate://crates.io/vm-memory/0.12.0 \
+ crate://crates.io/vmm-sys-util/0.11.1 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+ crate://crates.io/windows-sys/0.48.0 \
+ crate://crates.io/windows-targets/0.48.1 \
+ crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
+ crate://crates.io/windows_aarch64_msvc/0.48.0 \
+ crate://crates.io/windows_i686_gnu/0.48.0 \
+ crate://crates.io/windows_i686_msvc/0.48.0 \
+ crate://crates.io/windows_x86_64_gnu/0.48.0 \
+ crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
+ crate://crates.io/windows_x86_64_msvc/0.48.0 \
+"
+
+SRC_URI[aho-corasick-1.0.2.sha256sum] = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
+SRC_URI[anstyle-1.0.1.sha256sum] = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
+SRC_URI[anstyle-parse-0.2.1.sha256sum] = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+SRC_URI[anstyle-wincon-1.0.1.sha256sum] = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
+SRC_URI[arc-swap-1.6.0.sha256sum] = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+SRC_URI[assert_matches-1.5.0.sha256sum] = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.3.3.sha256sum] = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+SRC_URI[clap-4.3.19.sha256sum] = "5fd304a20bff958a57f04c4e96a2e7594cc4490a0e809cbd48bb6437edaa452d"
+SRC_URI[clap_builder-4.3.19.sha256sum] = "01c6a3f08f1fe5662a35cfe393aec09c4df95f60ee93b7556505260f75eee9e1"
+SRC_URI[clap_derive-4.3.12.sha256sum] = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
+SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+SRC_URI[env_logger-0.10.0.sha256sum] = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+SRC_URI[errno-0.3.1.sha256sum] = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+SRC_URI[hermit-abi-0.3.2.sha256sum] = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[is-terminal-0.4.9.sha256sum] = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+SRC_URI[linux-raw-sys-0.4.3.sha256sum] = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
+SRC_URI[log-0.4.19.sha256sum] = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+SRC_URI[proc-macro2-1.0.63.sha256sum] = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+SRC_URI[quote-1.0.29.sha256sum] = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+SRC_URI[regex-1.9.1.sha256sum] = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+SRC_URI[regex-automata-0.3.2.sha256sum] = "83d3daa6976cffb758ec878f108ba0e062a45b2d6ca3a2cca965338855476caf"
+SRC_URI[regex-syntax-0.7.4.sha256sum] = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+SRC_URI[rustix-0.38.3.sha256sum] = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[syn-2.0.23.sha256sum] = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
+SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+SRC_URI[thiserror-1.0.41.sha256sum] = "c16a64ba9387ef3fdae4f9c1a7f07a0997fce91985c0336f1ddc1822b3b37802"
+SRC_URI[thiserror-impl-1.0.41.sha256sum] = "d14928354b01c4d6a4f0e549069adef399a284e7995c7ccca94e8a07a5346c59"
+SRC_URI[unicode-ident-1.0.11.sha256sum] = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+SRC_URI[vhost-0.8.0.sha256sum] = "73832f4d8d636d63d9b145e8ef22a2c50b93f4d24eb7a99c9e6781b1b08549cf"
+SRC_URI[vhost-user-backend-0.10.0.sha256sum] = "e3ea9d5e8ec847cde4df1c04e586698a479706fd6beca37323f9d425b24b4c2f"
+SRC_URI[virtio-bindings-0.2.1.sha256sum] = "c18d7b74098a946470ea265b5bacbbf877abc3373021388454de0d47735a5b98"
+SRC_URI[virtio-queue-0.9.0.sha256sum] = "35aca00da06841bd99162c381ec65893cace23ca0fb89254302cfe4bec4c300f"
+SRC_URI[vm-memory-0.12.0.sha256sum] = "a77c7a0891cbac53618f5f6eec650ed1dc4f7e506bbe14877aff49d94b8408b0"
+SRC_URI[vmm-sys-util-0.11.1.sha256sum] = "dd64fe09d8e880e600c324e7d664760a17f56e9672b7495a86381b49e4f72f46"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+SRC_URI[windows-targets-0.48.1.sha256sum] = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
diff --git a/recipes-extended/vhost-device/vhost-device-i2c_0.1.0.bb b/recipes-extended/vhost-device/vhost-device-i2c_0.1.0.bb
new file mode 100644
index 00000000..c9179da3
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-i2c_0.1.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "vhost i2c backend device"
+DESCRIPTION = "A vhost-user backend that emulates a VirtIO I2C device"
+HOMEPAGE = "https://github.com/rust-vmm/vhost-device"
+LICENSE = "Apache-2.0 | BSD-3-Clause"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE-APACHE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+ file://LICENSE-BSD-3-Clause;md5=2489db1359f496fff34bd393df63947e \
+"
+
+SRC_URI += "crate://crates.io/vhost-device-i2c/0.1.0"
+SRC_URI[vhost-device-i2c-0.1.0.sha256sum] = "a77923a4f161887ca2a19ead2d2f2271d62d1268e774265c42c277367f019a3f"
+
+inherit cargo
+inherit cargo-update-recipe-crates
+
+include vhost-device-i2c-crates.inc
diff --git a/recipes-extended/vhost-device/vhost-device-rng-crates.inc b/recipes-extended/vhost-device/vhost-device-rng-crates.inc
new file mode 100644
index 00000000..5a50da3e
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-rng-crates.inc
@@ -0,0 +1,158 @@
+# Autogenerated with 'bitbake -c update_crates vhost-device-rng'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/aho-corasick/1.0.2 \
+ crate://crates.io/anstream/0.3.2 \
+ crate://crates.io/anstyle/1.0.1 \
+ crate://crates.io/anstyle-parse/0.2.1 \
+ crate://crates.io/anstyle-query/1.0.0 \
+ crate://crates.io/anstyle-wincon/1.0.1 \
+ crate://crates.io/arc-swap/1.6.0 \
+ crate://crates.io/assert_matches/1.5.0 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/bitflags/2.3.3 \
+ crate://crates.io/cc/1.0.79 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/clap/4.3.19 \
+ crate://crates.io/clap_builder/4.3.19 \
+ crate://crates.io/clap_derive/4.3.12 \
+ crate://crates.io/clap_lex/0.5.0 \
+ crate://crates.io/colorchoice/1.0.0 \
+ crate://crates.io/env_logger/0.10.0 \
+ crate://crates.io/epoll/4.3.3 \
+ crate://crates.io/errno/0.3.1 \
+ crate://crates.io/errno-dragonfly/0.1.2 \
+ crate://crates.io/fastrand/1.9.0 \
+ crate://crates.io/getrandom/0.2.10 \
+ crate://crates.io/heck/0.4.1 \
+ crate://crates.io/hermit-abi/0.3.2 \
+ crate://crates.io/humantime/2.1.0 \
+ crate://crates.io/instant/0.1.12 \
+ crate://crates.io/io-lifetimes/1.0.11 \
+ crate://crates.io/is-terminal/0.4.9 \
+ crate://crates.io/libc/0.2.147 \
+ crate://crates.io/linux-raw-sys/0.3.8 \
+ crate://crates.io/linux-raw-sys/0.4.3 \
+ crate://crates.io/log/0.4.19 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/once_cell/1.18.0 \
+ crate://crates.io/ppv-lite86/0.2.17 \
+ crate://crates.io/proc-macro2/1.0.63 \
+ crate://crates.io/quote/1.0.29 \
+ crate://crates.io/rand/0.8.5 \
+ crate://crates.io/rand_chacha/0.3.1 \
+ crate://crates.io/rand_core/0.6.4 \
+ crate://crates.io/redox_syscall/0.3.5 \
+ crate://crates.io/regex/1.9.1 \
+ crate://crates.io/regex-automata/0.3.2 \
+ crate://crates.io/regex-syntax/0.7.4 \
+ crate://crates.io/rustix/0.37.23 \
+ crate://crates.io/rustix/0.38.3 \
+ crate://crates.io/strsim/0.10.0 \
+ crate://crates.io/syn/2.0.23 \
+ crate://crates.io/tempfile/3.6.0 \
+ crate://crates.io/termcolor/1.2.0 \
+ crate://crates.io/thiserror/1.0.41 \
+ crate://crates.io/thiserror-impl/1.0.41 \
+ crate://crates.io/unicode-ident/1.0.11 \
+ crate://crates.io/utf8parse/0.2.1 \
+ crate://crates.io/vhost/0.8.0 \
+ crate://crates.io/vhost-user-backend/0.10.0 \
+ crate://crates.io/virtio-bindings/0.2.1 \
+ crate://crates.io/virtio-queue/0.9.0 \
+ crate://crates.io/vm-memory/0.12.0 \
+ crate://crates.io/vmm-sys-util/0.11.1 \
+ crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+ crate://crates.io/windows-sys/0.48.0 \
+ crate://crates.io/windows-targets/0.48.1 \
+ crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
+ crate://crates.io/windows_aarch64_msvc/0.48.0 \
+ crate://crates.io/windows_i686_gnu/0.48.0 \
+ crate://crates.io/windows_i686_msvc/0.48.0 \
+ crate://crates.io/windows_x86_64_gnu/0.48.0 \
+ crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
+ crate://crates.io/windows_x86_64_msvc/0.48.0 \
+"
+
+SRC_URI[aho-corasick-1.0.2.sha256sum] = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
+SRC_URI[anstyle-1.0.1.sha256sum] = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
+SRC_URI[anstyle-parse-0.2.1.sha256sum] = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+SRC_URI[anstyle-wincon-1.0.1.sha256sum] = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
+SRC_URI[arc-swap-1.6.0.sha256sum] = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+SRC_URI[assert_matches-1.5.0.sha256sum] = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.3.3.sha256sum] = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clap-4.3.19.sha256sum] = "5fd304a20bff958a57f04c4e96a2e7594cc4490a0e809cbd48bb6437edaa452d"
+SRC_URI[clap_builder-4.3.19.sha256sum] = "01c6a3f08f1fe5662a35cfe393aec09c4df95f60ee93b7556505260f75eee9e1"
+SRC_URI[clap_derive-4.3.12.sha256sum] = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
+SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+SRC_URI[env_logger-0.10.0.sha256sum] = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+SRC_URI[epoll-4.3.3.sha256sum] = "74351c3392ea1ff6cd2628e0042d268ac2371cb613252ff383b6dfa50d22fa79"
+SRC_URI[errno-0.3.1.sha256sum] = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+SRC_URI[fastrand-1.9.0.sha256sum] = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+SRC_URI[getrandom-0.2.10.sha256sum] = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+SRC_URI[hermit-abi-0.3.2.sha256sum] = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+SRC_URI[is-terminal-0.4.9.sha256sum] = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+SRC_URI[linux-raw-sys-0.4.3.sha256sum] = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
+SRC_URI[log-0.4.19.sha256sum] = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+SRC_URI[proc-macro2-1.0.63.sha256sum] = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+SRC_URI[quote-1.0.29.sha256sum] = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+SRC_URI[regex-1.9.1.sha256sum] = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+SRC_URI[regex-automata-0.3.2.sha256sum] = "83d3daa6976cffb758ec878f108ba0e062a45b2d6ca3a2cca965338855476caf"
+SRC_URI[regex-syntax-0.7.4.sha256sum] = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+SRC_URI[rustix-0.37.23.sha256sum] = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
+SRC_URI[rustix-0.38.3.sha256sum] = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[syn-2.0.23.sha256sum] = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
+SRC_URI[tempfile-3.6.0.sha256sum] = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+SRC_URI[thiserror-1.0.41.sha256sum] = "c16a64ba9387ef3fdae4f9c1a7f07a0997fce91985c0336f1ddc1822b3b37802"
+SRC_URI[thiserror-impl-1.0.41.sha256sum] = "d14928354b01c4d6a4f0e549069adef399a284e7995c7ccca94e8a07a5346c59"
+SRC_URI[unicode-ident-1.0.11.sha256sum] = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+SRC_URI[vhost-0.8.0.sha256sum] = "73832f4d8d636d63d9b145e8ef22a2c50b93f4d24eb7a99c9e6781b1b08549cf"
+SRC_URI[vhost-user-backend-0.10.0.sha256sum] = "e3ea9d5e8ec847cde4df1c04e586698a479706fd6beca37323f9d425b24b4c2f"
+SRC_URI[virtio-bindings-0.2.1.sha256sum] = "c18d7b74098a946470ea265b5bacbbf877abc3373021388454de0d47735a5b98"
+SRC_URI[virtio-queue-0.9.0.sha256sum] = "35aca00da06841bd99162c381ec65893cace23ca0fb89254302cfe4bec4c300f"
+SRC_URI[vm-memory-0.12.0.sha256sum] = "a77c7a0891cbac53618f5f6eec650ed1dc4f7e506bbe14877aff49d94b8408b0"
+SRC_URI[vmm-sys-util-0.11.1.sha256sum] = "dd64fe09d8e880e600c324e7d664760a17f56e9672b7495a86381b49e4f72f46"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+SRC_URI[windows-targets-0.48.1.sha256sum] = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
diff --git a/recipes-extended/vhost-device/vhost-device-rng_0.1.0.bb b/recipes-extended/vhost-device/vhost-device-rng_0.1.0.bb
new file mode 100644
index 00000000..6e4cf824
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-rng_0.1.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "vhost rng backend device"
+DESCRIPTION = "A vhost-user backend that emulates a VirtIO random number \
+ generator device"
+HOMEPAGE = "https://github.com/rust-vmm/vhost-device"
+LICENSE = "Apache-2.0 | BSD-3-Clause"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE-APACHE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+ file://LICENSE-BSD-3-Clause;md5=2489db1359f496fff34bd393df63947e \
+"
+
+SRC_URI += "crate://crates.io/vhost-device-rng/0.1.0"
+SRC_URI[vhost-device-rng-0.1.0.sha256sum] = "51e0af4acaaefc19a3d6c2e2cb00caf2130d728d857494c857662781da9f1329"
+
+inherit cargo
+inherit cargo-update-recipe-crates
+
+include vhost-device-rng-crates.inc
diff --git a/recipes-extended/vhost-device/vhost-device-scsi-crates.inc b/recipes-extended/vhost-device/vhost-device-scsi-crates.inc
new file mode 100644
index 00000000..3f9a08b4
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-scsi-crates.inc
@@ -0,0 +1,166 @@
+# Autogenerated with 'bitbake -c update_crates vhost-device-scsi'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/aho-corasick/1.0.2 \
+ crate://crates.io/anstream/0.3.2 \
+ crate://crates.io/anstyle/1.0.1 \
+ crate://crates.io/anstyle-parse/0.2.1 \
+ crate://crates.io/anstyle-query/1.0.0 \
+ crate://crates.io/anstyle-wincon/1.0.1 \
+ crate://crates.io/arc-swap/1.6.0 \
+ crate://crates.io/assert_matches/1.5.0 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/bitflags/2.3.3 \
+ crate://crates.io/cc/1.0.79 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/clap/4.3.19 \
+ crate://crates.io/clap_builder/4.3.19 \
+ crate://crates.io/clap_derive/4.3.12 \
+ crate://crates.io/clap_lex/0.5.0 \
+ crate://crates.io/colorchoice/1.0.0 \
+ crate://crates.io/env_logger/0.10.0 \
+ crate://crates.io/epoll/4.3.3 \
+ crate://crates.io/equivalent/1.0.0 \
+ crate://crates.io/errno/0.3.1 \
+ crate://crates.io/errno-dragonfly/0.1.2 \
+ crate://crates.io/fastrand/1.9.0 \
+ crate://crates.io/hashbrown/0.14.0 \
+ crate://crates.io/heck/0.4.1 \
+ crate://crates.io/hermit-abi/0.3.2 \
+ crate://crates.io/humantime/2.1.0 \
+ crate://crates.io/indexmap/2.0.0 \
+ crate://crates.io/instant/0.1.12 \
+ crate://crates.io/io-lifetimes/1.0.11 \
+ crate://crates.io/is-terminal/0.4.9 \
+ crate://crates.io/libc/0.2.147 \
+ crate://crates.io/linux-raw-sys/0.3.8 \
+ crate://crates.io/linux-raw-sys/0.4.3 \
+ crate://crates.io/log/0.4.19 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/num_enum/0.5.11 \
+ crate://crates.io/num_enum_derive/0.5.11 \
+ crate://crates.io/once_cell/1.18.0 \
+ crate://crates.io/proc-macro-crate/1.3.1 \
+ crate://crates.io/proc-macro2/1.0.63 \
+ crate://crates.io/quote/1.0.29 \
+ crate://crates.io/redox_syscall/0.3.5 \
+ crate://crates.io/regex/1.9.1 \
+ crate://crates.io/regex-automata/0.3.2 \
+ crate://crates.io/regex-syntax/0.7.4 \
+ crate://crates.io/rustix/0.37.23 \
+ crate://crates.io/rustix/0.38.3 \
+ crate://crates.io/strsim/0.10.0 \
+ crate://crates.io/syn/1.0.109 \
+ crate://crates.io/syn/2.0.23 \
+ crate://crates.io/tempfile/3.6.0 \
+ crate://crates.io/termcolor/1.2.0 \
+ crate://crates.io/thiserror/1.0.41 \
+ crate://crates.io/thiserror-impl/1.0.41 \
+ crate://crates.io/toml_datetime/0.6.3 \
+ crate://crates.io/toml_edit/0.19.12 \
+ crate://crates.io/unicode-ident/1.0.11 \
+ crate://crates.io/utf8parse/0.2.1 \
+ crate://crates.io/vhost/0.8.0 \
+ crate://crates.io/vhost-user-backend/0.10.0 \
+ crate://crates.io/virtio-bindings/0.2.1 \
+ crate://crates.io/virtio-queue/0.9.0 \
+ crate://crates.io/vm-memory/0.12.0 \
+ crate://crates.io/vmm-sys-util/0.11.1 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+ crate://crates.io/windows-sys/0.48.0 \
+ crate://crates.io/windows-targets/0.48.1 \
+ crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
+ crate://crates.io/windows_aarch64_msvc/0.48.0 \
+ crate://crates.io/windows_i686_gnu/0.48.0 \
+ crate://crates.io/windows_i686_msvc/0.48.0 \
+ crate://crates.io/windows_x86_64_gnu/0.48.0 \
+ crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
+ crate://crates.io/windows_x86_64_msvc/0.48.0 \
+ crate://crates.io/winnow/0.4.7 \
+"
+
+SRC_URI[aho-corasick-1.0.2.sha256sum] = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
+SRC_URI[anstyle-1.0.1.sha256sum] = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
+SRC_URI[anstyle-parse-0.2.1.sha256sum] = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+SRC_URI[anstyle-wincon-1.0.1.sha256sum] = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
+SRC_URI[arc-swap-1.6.0.sha256sum] = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+SRC_URI[assert_matches-1.5.0.sha256sum] = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.3.3.sha256sum] = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clap-4.3.19.sha256sum] = "5fd304a20bff958a57f04c4e96a2e7594cc4490a0e809cbd48bb6437edaa452d"
+SRC_URI[clap_builder-4.3.19.sha256sum] = "01c6a3f08f1fe5662a35cfe393aec09c4df95f60ee93b7556505260f75eee9e1"
+SRC_URI[clap_derive-4.3.12.sha256sum] = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
+SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+SRC_URI[env_logger-0.10.0.sha256sum] = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+SRC_URI[epoll-4.3.3.sha256sum] = "74351c3392ea1ff6cd2628e0042d268ac2371cb613252ff383b6dfa50d22fa79"
+SRC_URI[equivalent-1.0.0.sha256sum] = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1"
+SRC_URI[errno-0.3.1.sha256sum] = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+SRC_URI[fastrand-1.9.0.sha256sum] = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+SRC_URI[hashbrown-0.14.0.sha256sum] = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+SRC_URI[hermit-abi-0.3.2.sha256sum] = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[indexmap-2.0.0.sha256sum] = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+SRC_URI[is-terminal-0.4.9.sha256sum] = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+SRC_URI[linux-raw-sys-0.4.3.sha256sum] = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
+SRC_URI[log-0.4.19.sha256sum] = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[num_enum-0.5.11.sha256sum] = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9"
+SRC_URI[num_enum_derive-0.5.11.sha256sum] = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
+SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+SRC_URI[proc-macro-crate-1.3.1.sha256sum] = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+SRC_URI[proc-macro2-1.0.63.sha256sum] = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+SRC_URI[quote-1.0.29.sha256sum] = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+SRC_URI[regex-1.9.1.sha256sum] = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+SRC_URI[regex-automata-0.3.2.sha256sum] = "83d3daa6976cffb758ec878f108ba0e062a45b2d6ca3a2cca965338855476caf"
+SRC_URI[regex-syntax-0.7.4.sha256sum] = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+SRC_URI[rustix-0.37.23.sha256sum] = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
+SRC_URI[rustix-0.38.3.sha256sum] = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[syn-2.0.23.sha256sum] = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
+SRC_URI[tempfile-3.6.0.sha256sum] = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+SRC_URI[thiserror-1.0.41.sha256sum] = "c16a64ba9387ef3fdae4f9c1a7f07a0997fce91985c0336f1ddc1822b3b37802"
+SRC_URI[thiserror-impl-1.0.41.sha256sum] = "d14928354b01c4d6a4f0e549069adef399a284e7995c7ccca94e8a07a5346c59"
+SRC_URI[toml_datetime-0.6.3.sha256sum] = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+SRC_URI[toml_edit-0.19.12.sha256sum] = "c500344a19072298cd05a7224b3c0c629348b78692bf48466c5238656e315a78"
+SRC_URI[unicode-ident-1.0.11.sha256sum] = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+SRC_URI[vhost-0.8.0.sha256sum] = "73832f4d8d636d63d9b145e8ef22a2c50b93f4d24eb7a99c9e6781b1b08549cf"
+SRC_URI[vhost-user-backend-0.10.0.sha256sum] = "e3ea9d5e8ec847cde4df1c04e586698a479706fd6beca37323f9d425b24b4c2f"
+SRC_URI[virtio-bindings-0.2.1.sha256sum] = "c18d7b74098a946470ea265b5bacbbf877abc3373021388454de0d47735a5b98"
+SRC_URI[virtio-queue-0.9.0.sha256sum] = "35aca00da06841bd99162c381ec65893cace23ca0fb89254302cfe4bec4c300f"
+SRC_URI[vm-memory-0.12.0.sha256sum] = "a77c7a0891cbac53618f5f6eec650ed1dc4f7e506bbe14877aff49d94b8408b0"
+SRC_URI[vmm-sys-util-0.11.1.sha256sum] = "dd64fe09d8e880e600c324e7d664760a17f56e9672b7495a86381b49e4f72f46"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+SRC_URI[windows-targets-0.48.1.sha256sum] = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+SRC_URI[winnow-0.4.7.sha256sum] = "ca0ace3845f0d96209f0375e6d367e3eb87eb65d27d445bdc9f1843a26f39448"
diff --git a/recipes-extended/vhost-device/vhost-device-scsi_0.1.0.bb b/recipes-extended/vhost-device/vhost-device-scsi_0.1.0.bb
new file mode 100644
index 00000000..6c9b49fa
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-scsi_0.1.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "vhost scsi backend device"
+DESCRIPTION = "A vhost-user backend that emulates a VirtIO SCSI block device"
+HOMEPAGE = "https://github.com/rust-vmm/vhost-device"
+LICENSE = "Apache-2.0 | BSD-3-Clause"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE-APACHE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+ file://LICENSE-BSD-3-Clause;md5=2489db1359f496fff34bd393df63947e \
+"
+
+SRC_URI += "crate://crates.io/vhost-device-scsi/0.1.0"
+SRC_URI[vhost-device-scsi-0.1.0.sha256sum] = "85e4abd5a07cb6abfe07b92e49c5cc81437058d7ec7beea441039e829cf82c22"
+
+inherit cargo
+inherit cargo-update-recipe-crates
+
+include vhost-device-scsi-crates.inc
diff --git a/recipes-extended/vhost-device/vhost-device-vsock-crates.inc b/recipes-extended/vhost-device/vhost-device-vsock-crates.inc
new file mode 100644
index 00000000..4ea2baa0
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-vsock-crates.inc
@@ -0,0 +1,258 @@
+# Autogenerated with 'bitbake -c update_crates vhost-device-vsock'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/ahash/0.7.6 \
+ crate://crates.io/aho-corasick/1.0.2 \
+ crate://crates.io/anstream/0.3.2 \
+ crate://crates.io/anstyle/1.0.1 \
+ crate://crates.io/anstyle-parse/0.2.1 \
+ crate://crates.io/anstyle-query/1.0.0 \
+ crate://crates.io/anstyle-wincon/1.0.1 \
+ crate://crates.io/arc-swap/1.6.0 \
+ crate://crates.io/async-trait/0.1.71 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/base64/0.13.1 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/bitflags/2.3.3 \
+ crate://crates.io/block-buffer/0.10.4 \
+ crate://crates.io/byteorder/1.4.3 \
+ crate://crates.io/cc/1.0.79 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/clap/4.3.19 \
+ crate://crates.io/clap_builder/4.3.19 \
+ crate://crates.io/clap_derive/4.3.12 \
+ crate://crates.io/clap_lex/0.5.0 \
+ crate://crates.io/colorchoice/1.0.0 \
+ crate://crates.io/config/0.13.3 \
+ crate://crates.io/cpufeatures/0.2.9 \
+ crate://crates.io/crypto-common/0.1.6 \
+ crate://crates.io/digest/0.10.7 \
+ crate://crates.io/dlv-list/0.3.0 \
+ crate://crates.io/env_logger/0.10.0 \
+ crate://crates.io/epoll/4.3.3 \
+ crate://crates.io/equivalent/1.0.0 \
+ crate://crates.io/errno/0.3.1 \
+ crate://crates.io/errno-dragonfly/0.1.2 \
+ crate://crates.io/fastrand/1.9.0 \
+ crate://crates.io/futures/0.3.28 \
+ crate://crates.io/futures-channel/0.3.28 \
+ crate://crates.io/futures-core/0.3.28 \
+ crate://crates.io/futures-executor/0.3.28 \
+ crate://crates.io/futures-io/0.3.28 \
+ crate://crates.io/futures-macro/0.3.28 \
+ crate://crates.io/futures-sink/0.3.28 \
+ crate://crates.io/futures-task/0.3.28 \
+ crate://crates.io/futures-util/0.3.28 \
+ crate://crates.io/generic-array/0.14.7 \
+ crate://crates.io/getrandom/0.2.10 \
+ crate://crates.io/hashbrown/0.12.3 \
+ crate://crates.io/hashbrown/0.14.0 \
+ crate://crates.io/heck/0.4.1 \
+ crate://crates.io/hermit-abi/0.3.2 \
+ crate://crates.io/humantime/2.1.0 \
+ crate://crates.io/indexmap/2.0.0 \
+ crate://crates.io/instant/0.1.12 \
+ crate://crates.io/io-lifetimes/1.0.11 \
+ crate://crates.io/is-terminal/0.4.9 \
+ crate://crates.io/itoa/1.0.8 \
+ crate://crates.io/json5/0.4.1 \
+ crate://crates.io/lazy_static/1.4.0 \
+ crate://crates.io/libc/0.2.147 \
+ crate://crates.io/linked-hash-map/0.5.6 \
+ crate://crates.io/linux-raw-sys/0.3.8 \
+ crate://crates.io/linux-raw-sys/0.4.3 \
+ crate://crates.io/log/0.4.19 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/minimal-lexical/0.2.1 \
+ crate://crates.io/nom/7.1.3 \
+ crate://crates.io/num_cpus/1.16.0 \
+ crate://crates.io/once_cell/1.18.0 \
+ crate://crates.io/ordered-multimap/0.4.3 \
+ crate://crates.io/pathdiff/0.2.1 \
+ crate://crates.io/pest/2.7.1 \
+ crate://crates.io/pest_derive/2.7.0 \
+ crate://crates.io/pest_generator/2.7.0 \
+ crate://crates.io/pest_meta/2.7.0 \
+ crate://crates.io/pin-project-lite/0.2.10 \
+ crate://crates.io/pin-utils/0.1.0 \
+ crate://crates.io/proc-macro2/1.0.63 \
+ crate://crates.io/quote/1.0.29 \
+ crate://crates.io/redox_syscall/0.3.5 \
+ crate://crates.io/regex/1.9.1 \
+ crate://crates.io/regex-automata/0.3.2 \
+ crate://crates.io/regex-syntax/0.7.4 \
+ crate://crates.io/ron/0.7.1 \
+ crate://crates.io/rust-ini/0.18.0 \
+ crate://crates.io/rustix/0.37.23 \
+ crate://crates.io/rustix/0.38.3 \
+ crate://crates.io/ryu/1.0.15 \
+ crate://crates.io/serde/1.0.168 \
+ crate://crates.io/serde_derive/1.0.168 \
+ crate://crates.io/serde_json/1.0.100 \
+ crate://crates.io/serde_yaml/0.9.22 \
+ crate://crates.io/sha2/0.10.7 \
+ crate://crates.io/slab/0.4.8 \
+ crate://crates.io/strsim/0.10.0 \
+ crate://crates.io/syn/2.0.23 \
+ crate://crates.io/tempfile/3.6.0 \
+ crate://crates.io/termcolor/1.2.0 \
+ crate://crates.io/thiserror/1.0.41 \
+ crate://crates.io/thiserror-impl/1.0.41 \
+ crate://crates.io/toml/0.5.11 \
+ crate://crates.io/typenum/1.16.0 \
+ crate://crates.io/ucd-trie/0.1.6 \
+ crate://crates.io/unicode-ident/1.0.11 \
+ crate://crates.io/unsafe-libyaml/0.2.8 \
+ crate://crates.io/utf8parse/0.2.1 \
+ crate://crates.io/version_check/0.9.4 \
+ crate://crates.io/vhost/0.8.0 \
+ crate://crates.io/vhost-user-backend/0.10.0 \
+ crate://crates.io/virtio-bindings/0.2.1 \
+ crate://crates.io/virtio-queue/0.9.0 \
+ crate://crates.io/virtio-vsock/0.3.1 \
+ crate://crates.io/vm-memory/0.12.0 \
+ crate://crates.io/vmm-sys-util/0.11.1 \
+ crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+ crate://crates.io/windows-sys/0.48.0 \
+ crate://crates.io/windows-targets/0.48.1 \
+ crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
+ crate://crates.io/windows_aarch64_msvc/0.48.0 \
+ crate://crates.io/windows_i686_gnu/0.48.0 \
+ crate://crates.io/windows_i686_msvc/0.48.0 \
+ crate://crates.io/windows_x86_64_gnu/0.48.0 \
+ crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
+ crate://crates.io/windows_x86_64_msvc/0.48.0 \
+ crate://crates.io/yaml-rust/0.4.5 \
+"
+
+SRC_URI[ahash-0.7.6.sha256sum] = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+SRC_URI[aho-corasick-1.0.2.sha256sum] = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
+SRC_URI[anstyle-1.0.1.sha256sum] = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
+SRC_URI[anstyle-parse-0.2.1.sha256sum] = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+SRC_URI[anstyle-wincon-1.0.1.sha256sum] = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
+SRC_URI[arc-swap-1.6.0.sha256sum] = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+SRC_URI[async-trait-0.1.71.sha256sum] = "a564d521dd56509c4c47480d00b80ee55f7e385ae48db5744c67ad50c92d2ebf"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[base64-0.13.1.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.3.3.sha256sum] = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clap-4.3.19.sha256sum] = "5fd304a20bff958a57f04c4e96a2e7594cc4490a0e809cbd48bb6437edaa452d"
+SRC_URI[clap_builder-4.3.19.sha256sum] = "01c6a3f08f1fe5662a35cfe393aec09c4df95f60ee93b7556505260f75eee9e1"
+SRC_URI[clap_derive-4.3.12.sha256sum] = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
+SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+SRC_URI[config-0.13.3.sha256sum] = "d379af7f68bfc21714c6c7dea883544201741d2ce8274bb12fa54f89507f52a7"
+SRC_URI[cpufeatures-0.2.9.sha256sum] = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+SRC_URI[dlv-list-0.3.0.sha256sum] = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257"
+SRC_URI[env_logger-0.10.0.sha256sum] = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+SRC_URI[epoll-4.3.3.sha256sum] = "74351c3392ea1ff6cd2628e0042d268ac2371cb613252ff383b6dfa50d22fa79"
+SRC_URI[equivalent-1.0.0.sha256sum] = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1"
+SRC_URI[errno-0.3.1.sha256sum] = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+SRC_URI[fastrand-1.9.0.sha256sum] = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+SRC_URI[futures-0.3.28.sha256sum] = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+SRC_URI[futures-channel-0.3.28.sha256sum] = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+SRC_URI[futures-core-0.3.28.sha256sum] = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+SRC_URI[futures-executor-0.3.28.sha256sum] = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+SRC_URI[futures-io-0.3.28.sha256sum] = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+SRC_URI[futures-macro-0.3.28.sha256sum] = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+SRC_URI[futures-sink-0.3.28.sha256sum] = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+SRC_URI[futures-task-0.3.28.sha256sum] = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+SRC_URI[futures-util-0.3.28.sha256sum] = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+SRC_URI[getrandom-0.2.10.sha256sum] = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+SRC_URI[hashbrown-0.14.0.sha256sum] = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+SRC_URI[hermit-abi-0.3.2.sha256sum] = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[indexmap-2.0.0.sha256sum] = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+SRC_URI[is-terminal-0.4.9.sha256sum] = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+SRC_URI[itoa-1.0.8.sha256sum] = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a"
+SRC_URI[json5-0.4.1.sha256sum] = "96b0db21af676c1ce64250b5f40f3ce2cf27e4e47cb91ed91eb6fe9350b430c1"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+SRC_URI[linked-hash-map-0.5.6.sha256sum] = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+SRC_URI[linux-raw-sys-0.4.3.sha256sum] = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
+SRC_URI[log-0.4.19.sha256sum] = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+SRC_URI[num_cpus-1.16.0.sha256sum] = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+SRC_URI[ordered-multimap-0.4.3.sha256sum] = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a"
+SRC_URI[pathdiff-0.2.1.sha256sum] = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+SRC_URI[pest-2.7.1.sha256sum] = "0d2d1d55045829d65aad9d389139882ad623b33b904e7c9f1b10c5b8927298e5"
+SRC_URI[pest_derive-2.7.0.sha256sum] = "aef623c9bbfa0eedf5a0efba11a5ee83209c326653ca31ff019bec3a95bfff2b"
+SRC_URI[pest_generator-2.7.0.sha256sum] = "b3e8cba4ec22bada7fc55ffe51e2deb6a0e0db2d0b7ab0b103acc80d2510c190"
+SRC_URI[pest_meta-2.7.0.sha256sum] = "a01f71cb40bd8bb94232df14b946909e14660e33fc05db3e50ae2a82d7ea0ca0"
+SRC_URI[pin-project-lite-0.2.10.sha256sum] = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57"
+SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+SRC_URI[proc-macro2-1.0.63.sha256sum] = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+SRC_URI[quote-1.0.29.sha256sum] = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+SRC_URI[regex-1.9.1.sha256sum] = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+SRC_URI[regex-automata-0.3.2.sha256sum] = "83d3daa6976cffb758ec878f108ba0e062a45b2d6ca3a2cca965338855476caf"
+SRC_URI[regex-syntax-0.7.4.sha256sum] = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+SRC_URI[ron-0.7.1.sha256sum] = "88073939a61e5b7680558e6be56b419e208420c2adb92be54921fa6b72283f1a"
+SRC_URI[rust-ini-0.18.0.sha256sum] = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df"
+SRC_URI[rustix-0.37.23.sha256sum] = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
+SRC_URI[rustix-0.38.3.sha256sum] = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4"
+SRC_URI[ryu-1.0.15.sha256sum] = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+SRC_URI[serde-1.0.168.sha256sum] = "d614f89548720367ded108b3c843be93f3a341e22d5674ca0dd5cd57f34926af"
+SRC_URI[serde_derive-1.0.168.sha256sum] = "d4fe589678c688e44177da4f27152ee2d190757271dc7f1d5b6b9f68d869d641"
+SRC_URI[serde_json-1.0.100.sha256sum] = "0f1e14e89be7aa4c4b78bdbdc9eb5bf8517829a600ae8eaa39a6e1d960b5185c"
+SRC_URI[serde_yaml-0.9.22.sha256sum] = "452e67b9c20c37fa79df53201dc03839651086ed9bbe92b3ca585ca9fdaa7d85"
+SRC_URI[sha2-0.10.7.sha256sum] = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+SRC_URI[slab-0.4.8.sha256sum] = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[syn-2.0.23.sha256sum] = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
+SRC_URI[tempfile-3.6.0.sha256sum] = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+SRC_URI[thiserror-1.0.41.sha256sum] = "c16a64ba9387ef3fdae4f9c1a7f07a0997fce91985c0336f1ddc1822b3b37802"
+SRC_URI[thiserror-impl-1.0.41.sha256sum] = "d14928354b01c4d6a4f0e549069adef399a284e7995c7ccca94e8a07a5346c59"
+SRC_URI[toml-0.5.11.sha256sum] = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+SRC_URI[typenum-1.16.0.sha256sum] = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+SRC_URI[ucd-trie-0.1.6.sha256sum] = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
+SRC_URI[unicode-ident-1.0.11.sha256sum] = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+SRC_URI[unsafe-libyaml-0.2.8.sha256sum] = "1865806a559042e51ab5414598446a5871b561d21b6764f2eabb0dd481d880a6"
+SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[vhost-0.8.0.sha256sum] = "73832f4d8d636d63d9b145e8ef22a2c50b93f4d24eb7a99c9e6781b1b08549cf"
+SRC_URI[vhost-user-backend-0.10.0.sha256sum] = "e3ea9d5e8ec847cde4df1c04e586698a479706fd6beca37323f9d425b24b4c2f"
+SRC_URI[virtio-bindings-0.2.1.sha256sum] = "c18d7b74098a946470ea265b5bacbbf877abc3373021388454de0d47735a5b98"
+SRC_URI[virtio-queue-0.9.0.sha256sum] = "35aca00da06841bd99162c381ec65893cace23ca0fb89254302cfe4bec4c300f"
+SRC_URI[virtio-vsock-0.3.1.sha256sum] = "c92d1d0c0db339e03dc275e86e5de2654ed94b351f02d405a3a0260dfc1b839f"
+SRC_URI[vm-memory-0.12.0.sha256sum] = "a77c7a0891cbac53618f5f6eec650ed1dc4f7e506bbe14877aff49d94b8408b0"
+SRC_URI[vmm-sys-util-0.11.1.sha256sum] = "dd64fe09d8e880e600c324e7d664760a17f56e9672b7495a86381b49e4f72f46"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+SRC_URI[windows-targets-0.48.1.sha256sum] = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+SRC_URI[yaml-rust-0.4.5.sha256sum] = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
diff --git a/recipes-extended/vhost-device/vhost-device-vsock_0.1.0.bb b/recipes-extended/vhost-device/vhost-device-vsock_0.1.0.bb
new file mode 100644
index 00000000..12ef88f5
--- /dev/null
+++ b/recipes-extended/vhost-device/vhost-device-vsock_0.1.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "vhost vsock backend device"
+DESCRIPTION = "A vhost-user backend that emulates a VirtIO socket device"
+HOMEPAGE = "https://github.com/rust-vmm/vhost-device"
+LICENSE = "Apache-2.0 | BSD-3-Clause"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE-APACHE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+ file://LICENSE-BSD-3-Clause;md5=2489db1359f496fff34bd393df63947e \
+"
+
+SRC_URI += "crate://crates.io/vhost-device-vsock/0.1.0"
+SRC_URI[vhost-device-vsock-0.1.0.sha256sum] = "b1b22596359e46c3986574707a0f616c6e200a6751adeaa353db8cfdbc0472f6"
+
+inherit cargo
+inherit cargo-update-recipe-crates
+
+include vhost-device-vsock-crates.inc
diff --git a/recipes-extended/virt-manager/virt-manager/0001-setup.py-move-global-args-to-install-args.patch b/recipes-extended/virt-manager/virt-manager/0001-setup.py-move-global-args-to-install-args.patch
new file mode 100644
index 00000000..f0bbf73b
--- /dev/null
+++ b/recipes-extended/virt-manager/virt-manager/0001-setup.py-move-global-args-to-install-args.patch
@@ -0,0 +1,78 @@
+From bcdb3555b924573e85039b54d63d6173ad99b846 Mon Sep 17 00:00:00 2001
+From: Paul Le Guen de Kerneizon <paul.leguendekerneizon@savoirfairelinux.com>
+Date: Wed, 28 Feb 2024 10:24:00 +0100
+Subject: [PATCH] setup.py: move global args to install args
+
+Presently, during the installation process, global arguments such as
+`no-update-icon-cache` and `no-compile-schemas` are utilized to
+prevent the installation of specific graphical components. These
+arguments are essential, for instance, when installing virt-manager
+without any GUI dependencies on the target system. However, these
+global arguments must be set before the install command, yet they only
+take effect during the execution of the command.
+
+Since the Yocto `setuptools3_legacy` class parses arguments after the
+command, this commit aims to make these arguments applicable locally to
+the install command.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Paul Le Guen de Kerneizon <paul.leguendekerneizon@savoirfairelinux.com>
+---
+ setup.py | 20 ++++++++++++--------
+ 1 file changed, 12 insertions(+), 8 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index cd6cd83e..faca546a 100755
+--- a/setup.py
++++ b/setup.py
+@@ -242,6 +242,16 @@ class my_egg_info(setuptools.command.install_egg_info.install_egg_info):
+
+
+ class my_install(setuptools.command.install.install):
++ setuptools.command.install.install.user_options += [
++ ("no-update-icon-cache", None, "Don't run gtk-update-icon-cache"),
++ ("no-compile-schemas", None, "Don't compile gsettings schemas"),
++ ]
++
++ def initialize_options(self):
++ setuptools.command.install.install.initialize_options(self)
++ self.no_update_icon_cache = None
++ self.no_compile_schemas = None
++
+ """
+ Error if we weren't 'configure'd with the correct install prefix
+ """
+@@ -266,12 +276,12 @@ class my_install(setuptools.command.install.install):
+ def run(self):
+ setuptools.command.install.install.run(self)
+
+- if not self.distribution.no_update_icon_cache:
++ if not self.no_update_icon_cache:
+ print("running gtk-update-icon-cache")
+ icon_path = os.path.join(self.install_data, "share/icons/hicolor")
+ self.spawn(["gtk-update-icon-cache", "-q", "-t", icon_path])
+
+- if not self.distribution.no_compile_schemas:
++ if not self.no_compile_schemas:
+ print("compiling gsettings schemas")
+ gschema_install = os.path.join(self.install_data,
+ "share/glib-2.0/schemas")
+@@ -421,14 +431,8 @@ class CheckPylint(setuptools.Command):
+
+
+ class VMMDistribution(setuptools.dist.Distribution):
+- global_options = setuptools.dist.Distribution.global_options + [
+- ("no-update-icon-cache", None, "Don't run gtk-update-icon-cache"),
+- ("no-compile-schemas", None, "Don't compile gsettings schemas"),
+- ]
+
+ def __init__(self, *args, **kwargs):
+- self.no_update_icon_cache = False
+- self.no_compile_schemas = False
+ setuptools.dist.Distribution.__init__(self, *args, **kwargs)
+
+
+--
+2.34.1
+
diff --git a/recipes-extended/virt-manager/virt-manager_4.1.0.bb b/recipes-extended/virt-manager/virt-manager_4.1.0.bb
new file mode 100644
index 00000000..a2395012
--- /dev/null
+++ b/recipes-extended/virt-manager/virt-manager_4.1.0.bb
@@ -0,0 +1,54 @@
+DESCRIPTION = "virt-manager is a graphical tool for managing virtual machines via libvirt"
+HOMEPAGE = "https://virt-manager.org/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS += "python3-docutils-native"
+SRCREV = "6710ca6969b7d9c4e8344acd0fe3d50b24adc8ec"
+
+SRC_URI = " \
+ git://github.com/virt-manager/virt-manager;branch=main;protocol=https \
+ file://0001-setup.py-move-global-args-to-install-args.patch \
+"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= "gui"
+PACKAGECONFIG[gui] = ",--no-update-icon-cache --no-compile-schemas,python3-pygobject"
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'gui', 'gtk-icon-cache', '', d)}
+inherit bash-completion gettext pkgconfig setuptools3_legacy
+
+PACKAGES += " \
+ ${PN}-common \
+ ${PN}-install \
+"
+
+RDEPENDS:${PN}-common += " \
+ libvirt-python \
+ libosinfo \
+"
+
+RDEPENDS:${PN} = "${PN}-common"
+RDEPENDS:${PN}-install = "${PN}-common"
+
+SETUPTOOLS_INSTALL_ARGS += "${PACKAGECONFIG_CONFARGS}"
+
+FILES:${PN} = " \
+ ${bindir}/virt-manager \
+ ${datadir}/icons/* \
+"
+
+FILES:${PN}-common = " \
+ ${libdir}/* \
+ ${libdir}/python3.10/* \
+ ${datadir}/applications \
+ ${datadir}/virt-manager \
+ ${datadir}/glib-2.0/* \
+ ${datadir}/metainfo/* \
+"
+
+FILES:${PN}-install = " \
+ ${bindir}/virt-clone \
+ ${bindir}/virt-install \
+ ${bindir}/virt-xml \
+"
diff --git a/recipes-extended/virt-viewer/virt-viewer_11.0.bb b/recipes-extended/virt-viewer/virt-viewer_11.0.bb
new file mode 100644
index 00000000..273e1fc5
--- /dev/null
+++ b/recipes-extended/virt-viewer/virt-viewer_11.0.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Virtual Machine Viewer"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+# for ovirt support librest-0.7 and libgovirt would be needed
+DEPENDS = " \
+ desktop-file-utils-native \
+ glib-2.0 \
+ gtk+3 \
+ libxml2 \
+"
+
+SRC_URI = "git://gitlab.com/virt-viewer/virt-viewer.git;protocol=https;branch=master"
+
+SRCREV = "de864c14146c120b46d435949b1d8d0b11e57b85"
+PV = "11.0+git"
+S = "${WORKDIR}/git"
+
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+PACKAGECONFIG ?= "libvirt spice vte"
+
+PACKAGECONFIG[libvirt] = "-Dlibvirt=enabled,-Dlibvirt=disabled,libvirt libvirt-glib"
+PACKAGECONFIG[spice] = "-Dspice=enabled,-Dspice=disabled,spice-gtk spice-protocol"
+PACKAGECONFIG[vnc] = "-Dvnc=enabled,-Dvnc=disabled,gtk-vnc"
+PACKAGECONFIG[vte] = "-Dvte=enabled,-Dvte=disabled,vte"
+
+inherit meson pkgconfig gtk-icon-cache mime mime-xdg gobject-introspection features_check
+
+FILES:${PN} += "${datadir}"
+GIR_MESON_OPTION = ''
+
+do_compile:append() {
+ # glib-mkenums is embedding full paths into this file. There's no
+ # option to it to use a sysroot style variable. So to avoid QA
+ # errors, we sed WORKDIR out and make its includes relative
+ sed -i "s,${WORKDIR}/build/,," src/virt-viewer-enums.c
+}
diff --git a/recipes-extended/virt-what/virt-what_1.21.bb b/recipes-extended/virt-what/virt-what_1.21.bb
new file mode 100644
index 00000000..aa235b32
--- /dev/null
+++ b/recipes-extended/virt-what/virt-what_1.21.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Detect if we are running in a virtual machine"
+HOMEPAGE = "https://people.redhat.com/~rjones/virt-what/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "https://people.redhat.com/~rjones/virt-what/files/${BP}.tar.gz"
+SRC_URI[sha256sum] = "12cb455334aa4cfd53ab78f27e2252e94d1f676dd093f48327ed94d8080d1f7b"
+
+DEPENDS = "perl-native"
+
+inherit autotools
diff --git a/recipes-extended/virtiofsd/README.md b/recipes-extended/virtiofsd/README.md
new file mode 100644
index 00000000..4bd96a0a
--- /dev/null
+++ b/recipes-extended/virtiofsd/README.md
@@ -0,0 +1,14 @@
+# virtiofsd: A virtio-fs vhost-user daemon
+
+[virtiofsd](https://gitlab.com/virtio-fs/virtiofsd) implements the
+[vhost-user protocol](https://qemu-project.gitlab.io/qemu/interop/vhost-user.html)
+and provides a virtio-fs virtio device that can share host directories with
+guests.
+
+## Updating the recipe
+
+1. Bump the version number to the newly published version listed on crates.io
+2. Regenerate the .inc file that lists the dependencies:
+ `bitbake -c update_crates virtiofsd`
+3. Review, build and test the changes
+
diff --git a/recipes-extended/virtiofsd/virtiofsd-crates.inc b/recipes-extended/virtiofsd/virtiofsd-crates.inc
new file mode 100644
index 00000000..c33e9a57
--- /dev/null
+++ b/recipes-extended/virtiofsd/virtiofsd-crates.inc
@@ -0,0 +1,142 @@
+# Autogenerated with 'bitbake -c update_crates virtiofsd'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/aho-corasick/0.7.18 \
+ crate://crates.io/ansi_term/0.12.1 \
+ crate://crates.io/arc-swap/1.5.0 \
+ crate://crates.io/atty/0.2.14 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/capng/0.2.2 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/clap/2.34.0 \
+ crate://crates.io/env_logger/0.8.4 \
+ crate://crates.io/error-chain/0.12.4 \
+ crate://crates.io/futures/0.3.21 \
+ crate://crates.io/futures-channel/0.3.21 \
+ crate://crates.io/futures-core/0.3.21 \
+ crate://crates.io/futures-executor/0.3.21 \
+ crate://crates.io/futures-io/0.3.21 \
+ crate://crates.io/futures-macro/0.3.21 \
+ crate://crates.io/futures-sink/0.3.21 \
+ crate://crates.io/futures-task/0.3.21 \
+ crate://crates.io/futures-util/0.3.21 \
+ crate://crates.io/heck/0.3.3 \
+ crate://crates.io/hermit-abi/0.1.19 \
+ crate://crates.io/hostname/0.3.1 \
+ crate://crates.io/humantime/2.1.0 \
+ crate://crates.io/itoa/1.0.2 \
+ crate://crates.io/lazy_static/1.4.0 \
+ crate://crates.io/libc/0.2.139 \
+ crate://crates.io/libseccomp-sys/0.2.1 \
+ crate://crates.io/log/0.4.17 \
+ crate://crates.io/match_cfg/0.1.0 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/num_cpus/1.13.1 \
+ crate://crates.io/num_threads/0.1.6 \
+ crate://crates.io/pin-project-lite/0.2.9 \
+ crate://crates.io/pin-utils/0.1.0 \
+ crate://crates.io/proc-macro-error/1.0.4 \
+ crate://crates.io/proc-macro-error-attr/1.0.4 \
+ crate://crates.io/proc-macro2/1.0.63 \
+ crate://crates.io/quote/1.0.29 \
+ crate://crates.io/regex/1.6.0 \
+ crate://crates.io/regex-syntax/0.6.27 \
+ crate://crates.io/slab/0.4.7 \
+ crate://crates.io/strsim/0.8.0 \
+ crate://crates.io/structopt/0.3.26 \
+ crate://crates.io/structopt-derive/0.4.18 \
+ crate://crates.io/syn/1.0.98 \
+ crate://crates.io/syn/2.0.23 \
+ crate://crates.io/syslog/6.0.1 \
+ crate://crates.io/termcolor/1.1.3 \
+ crate://crates.io/textwrap/0.11.0 \
+ crate://crates.io/thiserror/1.0.41 \
+ crate://crates.io/thiserror-impl/1.0.41 \
+ crate://crates.io/time/0.3.11 \
+ crate://crates.io/unicode-ident/1.0.2 \
+ crate://crates.io/unicode-segmentation/1.9.0 \
+ crate://crates.io/unicode-width/0.1.9 \
+ crate://crates.io/vec_map/0.8.2 \
+ crate://crates.io/version_check/0.9.4 \
+ crate://crates.io/vhost/0.8.1 \
+ crate://crates.io/vhost-user-backend/0.10.0 \
+ crate://crates.io/virtio-bindings/0.2.1 \
+ crate://crates.io/virtio-queue/0.9.0 \
+ crate://crates.io/vm-memory/0.12.0 \
+ crate://crates.io/vmm-sys-util/0.11.1 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+"
+
+SRC_URI[aho-corasick-0.7.18.sha256sum] = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+SRC_URI[ansi_term-0.12.1.sha256sum] = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+SRC_URI[arc-swap-1.5.0.sha256sum] = "c5d78ce20460b82d3fa150275ed9d55e21064fc7951177baacf86a145c4a4b1f"
+SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[capng-0.2.2.sha256sum] = "f6f8e9448233603643e42606121d95f5f8d4e015b3e7619a51593864dd902575"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clap-2.34.0.sha256sum] = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+SRC_URI[env_logger-0.8.4.sha256sum] = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
+SRC_URI[error-chain-0.12.4.sha256sum] = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
+SRC_URI[futures-0.3.21.sha256sum] = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e"
+SRC_URI[futures-channel-0.3.21.sha256sum] = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"
+SRC_URI[futures-core-0.3.21.sha256sum] = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
+SRC_URI[futures-executor-0.3.21.sha256sum] = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6"
+SRC_URI[futures-io-0.3.21.sha256sum] = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b"
+SRC_URI[futures-macro-0.3.21.sha256sum] = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512"
+SRC_URI[futures-sink-0.3.21.sha256sum] = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868"
+SRC_URI[futures-task-0.3.21.sha256sum] = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
+SRC_URI[futures-util-0.3.21.sha256sum] = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"
+SRC_URI[heck-0.3.3.sha256sum] = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
+SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+SRC_URI[hostname-0.3.1.sha256sum] = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[itoa-1.0.2.sha256sum] = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.139.sha256sum] = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
+SRC_URI[libseccomp-sys-0.2.1.sha256sum] = "9a7cbbd4ad467251987c6e5b47d53b11a5a05add08f2447a9e2d70aef1e0d138"
+SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+SRC_URI[match_cfg-0.1.0.sha256sum] = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[num_cpus-1.13.1.sha256sum] = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+SRC_URI[num_threads-0.1.6.sha256sum] = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+SRC_URI[pin-project-lite-0.2.9.sha256sum] = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+SRC_URI[proc-macro2-1.0.63.sha256sum] = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+SRC_URI[quote-1.0.29.sha256sum] = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+SRC_URI[regex-1.6.0.sha256sum] = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+SRC_URI[regex-syntax-0.6.27.sha256sum] = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+SRC_URI[slab-0.4.7.sha256sum] = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
+SRC_URI[strsim-0.8.0.sha256sum] = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+SRC_URI[structopt-0.3.26.sha256sum] = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
+SRC_URI[structopt-derive-0.4.18.sha256sum] = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
+SRC_URI[syn-1.0.98.sha256sum] = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
+SRC_URI[syn-2.0.23.sha256sum] = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
+SRC_URI[syslog-6.0.1.sha256sum] = "978044cc68150ad5e40083c9f6a725e6fd02d7ba1bcf691ec2ff0d66c0b41acc"
+SRC_URI[termcolor-1.1.3.sha256sum] = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+SRC_URI[textwrap-0.11.0.sha256sum] = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+SRC_URI[thiserror-1.0.41.sha256sum] = "c16a64ba9387ef3fdae4f9c1a7f07a0997fce91985c0336f1ddc1822b3b37802"
+SRC_URI[thiserror-impl-1.0.41.sha256sum] = "d14928354b01c4d6a4f0e549069adef399a284e7995c7ccca94e8a07a5346c59"
+SRC_URI[time-0.3.11.sha256sum] = "72c91f41dcb2f096c05f0873d667dceec1087ce5bcf984ec8ffb19acddbb3217"
+SRC_URI[unicode-ident-1.0.2.sha256sum] = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7"
+SRC_URI[unicode-segmentation-1.9.0.sha256sum] = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
+SRC_URI[unicode-width-0.1.9.sha256sum] = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
+SRC_URI[vec_map-0.8.2.sha256sum] = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[vhost-0.8.1.sha256sum] = "61957aeb36daf0b00b87fff9c10dd28a161bd35ab157553d340d183b3d8756e6"
+SRC_URI[vhost-user-backend-0.10.0.sha256sum] = "e3ea9d5e8ec847cde4df1c04e586698a479706fd6beca37323f9d425b24b4c2f"
+SRC_URI[virtio-bindings-0.2.1.sha256sum] = "c18d7b74098a946470ea265b5bacbbf877abc3373021388454de0d47735a5b98"
+SRC_URI[virtio-queue-0.9.0.sha256sum] = "35aca00da06841bd99162c381ec65893cace23ca0fb89254302cfe4bec4c300f"
+SRC_URI[vm-memory-0.12.0.sha256sum] = "a77c7a0891cbac53618f5f6eec650ed1dc4f7e506bbe14877aff49d94b8408b0"
+SRC_URI[vmm-sys-util-0.11.1.sha256sum] = "dd64fe09d8e880e600c324e7d664760a17f56e9672b7495a86381b49e4f72f46"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/recipes-extended/virtiofsd/virtiofsd_1.7.0.bb b/recipes-extended/virtiofsd/virtiofsd_1.7.0.bb
new file mode 100644
index 00000000..b8a93820
--- /dev/null
+++ b/recipes-extended/virtiofsd/virtiofsd_1.7.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "virtio-fs vhost-user daemon"
+DESCRIPTION = "A daemon that allows sharing of folders with a VM via virtio-fs"
+HOMEPAGE = "https://gitlab.com/virtio-fs/virtiofsd"
+LICENSE = "Apache-2.0 | BSD-3-Clause"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE-APACHE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+ file://LICENSE-BSD-3-Clause;md5=b1ed361f9fc790c1054d81a7ef041a34 \
+"
+
+DEPENDS = "libseccomp libcap-ng"
+
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "seccomp"
+
+SRC_URI += "crate://crates.io/virtiofsd/1.7.0"
+SRC_URI[virtiofsd-1.7.0.sha256sum] = "6f043afa23aedbb18f36084b9df831796a9e4c62e73a16fe557de0cf30d7708d"
+
+inherit cargo
+inherit cargo-update-recipe-crates
+
+include virtiofsd-crates.inc
diff --git a/recipes-extended/xen/files/0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch b/recipes-extended/xen/files/0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch
deleted file mode 100644
index 7b062b7b..00000000
--- a/recipes-extended/xen/files/0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch
+++ /dev/null
@@ -1,178 +0,0 @@
-From 73b13705af7c3bb8fdf11932eb68788d090a443f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
-Date: Thu, 4 Mar 2021 16:49:00 +0100
-Subject: [PATCH] firmware: provide a stand alone set of headers
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The current build of the firmware relies on having 32bit compatible
-headers installed in order to build some of the 32bit firmware.
-Usually this can be solved by using the -ffreestanding compiler option
-which drops the usage of the system headers in favor of a private set
-of freestanding headers provided by the compiler itself that are not
-tied to libc.
-
-However such option is broken at least in the gcc compiler provided in
-Alpine Linux, as the system include path (ie: /usr/include) takes
-precedence over the gcc private include path:
-
-#include <...> search starts here:
- /usr/include
- /usr/lib/gcc/x86_64-alpine-linux-musl/10.2.1/include
-
-And the headers in /usr/include are exclusively 64bit.
-
-Since -ffreestanding is currently broken on at least that distro, and
-for resilience against future compilers also having the option broken
-provide a set of stand alone 32bit headers required for the firmware
-build.
-
-Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
-Reviewed-by: Jan Beulich <jbeulich@suse.com>
-Release-Acked-by: Ian Jackson <iwj@xenproject.org>
-Applied to Xen 4.14 by: Christopher Clark <christopher.w.clark@gmail.com>
----
- tools/firmware/Rules.mk | 13 +++++++
- tools/firmware/include/stdarg.h | 10 +++++
- tools/firmware/include/stdbool.h | 9 +++++
- tools/firmware/include/stddef.h | 10 +++++
- tools/firmware/include/stdint.h | 39 +++++++++++++++++++
- tools/firmware/rombios/32bit/rombios_compat.h | 4 +-
- 6 files changed, 82 insertions(+), 3 deletions(-)
- create mode 100644 tools/firmware/include/stdarg.h
- create mode 100644 tools/firmware/include/stdbool.h
- create mode 100644 tools/firmware/include/stddef.h
- create mode 100644 tools/firmware/include/stdint.h
-
-diff --git a/tools/firmware/include/stdarg.h b/tools/firmware/include/stdarg.h
-new file mode 100644
-index 0000000000..c5e3761cd2
---- /dev/null
-+++ b/tools/firmware/include/stdarg.h
-@@ -0,0 +1,10 @@
-+#ifndef _STDARG_H_
-+#define _STDARG_H_
-+
-+typedef __builtin_va_list va_list;
-+#define va_copy(dest, src) __builtin_va_copy(dest, src)
-+#define va_start(ap, last) __builtin_va_start(ap, last)
-+#define va_end(ap) __builtin_va_end(ap)
-+#define va_arg __builtin_va_arg
-+
-+#endif
-diff --git a/tools/firmware/include/stdbool.h b/tools/firmware/include/stdbool.h
-new file mode 100644
-index 0000000000..0cf76b106c
---- /dev/null
-+++ b/tools/firmware/include/stdbool.h
-@@ -0,0 +1,9 @@
-+#ifndef _STDBOOL_H_
-+#define _STDBOOL_H_
-+
-+#define bool _Bool
-+#define true 1
-+#define false 0
-+#define __bool_true_false_are_defined 1
-+
-+#endif
-diff --git a/tools/firmware/include/stddef.h b/tools/firmware/include/stddef.h
-new file mode 100644
-index 0000000000..c7f974608a
---- /dev/null
-+++ b/tools/firmware/include/stddef.h
-@@ -0,0 +1,10 @@
-+#ifndef _STDDEF_H_
-+#define _STDDEF_H_
-+
-+typedef __SIZE_TYPE__ size_t;
-+
-+#define NULL ((void*)0)
-+
-+#define offsetof(t, m) __builtin_offsetof(t, m)
-+
-+#endif
-diff --git a/tools/firmware/include/stdint.h b/tools/firmware/include/stdint.h
-new file mode 100644
-index 0000000000..16a0b6de19
---- /dev/null
-+++ b/tools/firmware/include/stdint.h
-@@ -0,0 +1,39 @@
-+#ifndef _STDINT_H_
-+#define _STDINT_H_
-+
-+#if defined(__LP64__) || defined(__P64__)
-+#error "32bit only header"
-+#endif
-+
-+typedef unsigned char uint8_t;
-+typedef signed char int8_t;
-+
-+typedef unsigned short uint16_t;
-+typedef signed short int16_t;
-+
-+typedef unsigned int uint32_t;
-+typedef signed int int32_t;
-+
-+typedef unsigned long long uint64_t;
-+typedef signed long long int64_t;
-+
-+#define INT8_MIN (-0x7f-1)
-+#define INT16_MIN (-0x7fff-1)
-+#define INT32_MIN (-0x7fffffff-1)
-+#define INT64_MIN (-0x7fffffffffffffffll-1)
-+
-+#define INT8_MAX 0x7f
-+#define INT16_MAX 0x7fff
-+#define INT32_MAX 0x7fffffff
-+#define INT64_MAX 0x7fffffffffffffffll
-+
-+#define UINT8_MAX 0xff
-+#define UINT16_MAX 0xffff
-+#define UINT32_MAX 0xffffffffu
-+#define UINT64_MAX 0xffffffffffffffffull
-+
-+typedef uint32_t uintptr_t;
-+
-+#define UINTPTR_MAX UINT32_MAX
-+
-+#endif
-diff --git a/tools/firmware/rombios/32bit/rombios_compat.h b/tools/firmware/rombios/32bit/rombios_compat.h
-index 3fe7d67721..8ba4c17ffd 100644
---- a/tools/firmware/rombios/32bit/rombios_compat.h
-+++ b/tools/firmware/rombios/32bit/rombios_compat.h
-@@ -8,9 +8,7 @@
-
- #define ADDR_FROM_SEG_OFF(seg, off) (void *)((((uint32_t)(seg)) << 4) + (off))
-
--typedef unsigned char uint8_t;
--typedef unsigned short int uint16_t;
--typedef unsigned int uint32_t;
-+#include <stdint.h>
-
- typedef uint8_t Bit8u;
- typedef uint16_t Bit16u;
-diff --git a/tools/firmware/Rules.mk b/tools/firmware/Rules.mk
-index 26bbddccd4..cb388b7011 100644
---- a/tools/firmware/Rules.mk
-+++ b/tools/firmware/Rules.mk
-@@ -17,3 +17,16 @@ $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
-
- # Extra CFLAGS suitable for an embedded type of environment.
- CFLAGS += -fno-builtin -msoft-float
-+
-+# Use our own set of stand alone headers to build firmware.
-+#
-+# Ideally using -ffreestanding should be enough, but that relies on the
-+# compiler having the right order for include paths (ie: compiler private
-+# headers before system ones) or the libc headers having proper arch-agnostic
-+# freestanding support. This is not the case in Alpine at least which searches
-+# system headers before compiler ones and has arch-specific libc headers. This
-+# has been reported upstream:
-+# https://gitlab.alpinelinux.org/alpine/aports/-/issues/12477
-+# In the meantime (and for resilience against broken systems) use our own set
-+# of headers that provide what's needed for the firmware build.
-+CFLAGS += -nostdinc -I$(XEN_ROOT)/tools/firmware/include
---
-2.25.1
-
diff --git a/recipes-extended/xen/files/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch b/recipes-extended/xen/files/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch
index 135860ab..b8711756 100644
--- a/recipes-extended/xen/files/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch
+++ b/recipes-extended/xen/files/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch
@@ -3,8 +3,8 @@ From: Bruce Ashfield <bruce.ashfield@windriver.com>
Date: Mon, 2 Jul 2018 23:10:28 -0400
Subject: [PATCH] xen: Fix menuconfig and add support for config fragments and
-Upstream-Status: Xen: Inappropriate [oe specific, cross compile issue]
-Upstream-Status: Kernel: Pending
+Upstream-Status: Inappropriate [oe specific, cross compile issue]
+
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
commit e6972e689a980ab28637e94e48c77eeace6abde5
diff --git a/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.14.patch b/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.14.patch
deleted file mode 100644
index f0688fd9..00000000
--- a/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.14.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From d79dcc2002008c58683de82f06c168d6eea57991 Mon Sep 17 00:00:00 2001
-From: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
-Date: Fri, 19 Oct 2018 11:01:37 +0200
-Subject: [PATCH] python,pygrub: pass DISTUTILS env vars as setup.py args
-
-Allow to respect the target install dir (PYTHON_SITEPACKAGES_DIR)
-as well as other parameters set by the OpenEmbedded build system.
-This is especially useful when the target libdir is not the default one
-(/usr/lib), but for example /usr/lib64.
-
-Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
-
-Forward-ported to Xen 4.12.0
-Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com>
-
-Modified to support pygrub installation with python 3
-Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com>
-
-Forward-ported to Xen 4.14.0
-Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com>
-diff --git a/tools/pygrub/Makefile b/tools/pygrub/Makefile
-index 3063c49..513314b 100644
---- a/tools/pygrub/Makefile
-+++ b/tools/pygrub/Makefile
-@@ -10,14 +10,17 @@ INSTALL_LOG = build/installed_files.txt
- all: build
- .PHONY: build
- build:
-- CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) setup.py build
-+ CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) setup.py build $(DISTUTILS_BUILD_ARGS)
-
- .PHONY: install
- install: all
- $(INSTALL_DIR) $(DESTDIR)/$(bindir)
- CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) \
- setup.py install --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \
-- --root="$(DESTDIR)" --install-scripts=$(LIBEXEC_BIN) --force
-+ --root="$(DESTDIR)" --install-scripts=$(LIBEXEC_BIN) --force \
-+ $(DISTUTILS_INSTALL_ARGS)
-+ rm -f $(DESTDIR)/$(LIBEXEC_BIN)/pygrub
-+ $(INSTALL_PYTHON_PROG) src/pygrub $(DESTDIR)/$(LIBEXEC_BIN)/pygrub
- set -e; if [ $(bindir) != $(LIBEXEC_BIN) -a \
- "`readlink -f $(DESTDIR)/$(bindir)`" != \
- "`readlink -f $(LIBEXEC_BIN)`" ]; then \
-diff --git a/tools/python/Makefile b/tools/python/Makefile
-index 541858e..4d4a344 100644
---- a/tools/python/Makefile
-+++ b/tools/python/Makefile
-@@ -10,7 +10,7 @@ INSTALL_LOG = build/installed_files.txt
-
- .PHONY: build
- build:
-- CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build
-+ CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build $(DISTUTILS_BUILD_ARGS)
-
- .PHONY: install
- install:
-@@ -18,7 +18,7 @@ install:
-
- CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) \
- setup.py install --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \
-- --root="$(DESTDIR)" --force
-+ --root="$(DESTDIR)" --force $(DISTUTILS_INSTALL_ARGS)
-
- $(INSTALL_PYTHON_PROG) scripts/convert-legacy-stream $(DESTDIR)$(LIBEXEC_BIN)
- $(INSTALL_PYTHON_PROG) scripts/verify-stream-v2 $(DESTDIR)$(LIBEXEC_BIN)
diff --git a/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.15.patch b/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.15.patch
index 35cd9a81..476f5ddc 100644
--- a/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.15.patch
+++ b/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.15.patch
@@ -4,7 +4,7 @@ From: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
Date: Fri, 19 Oct 2018 11:01:37 +0200
Subject: [PATCH] python,pygrub: pass DISTUTILS env vars as setup.py args
-Upstream-Status: Xen: Inappropriate [oe specific, python install issues]
+Upstream-Status: Inappropriate [oe specific, python install issues]
Allow to respect the target install dir (PYTHON_SITEPACKAGES_DIR)
as well as other parameters set by the OpenEmbedded build system.
diff --git a/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.18.patch b/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.18.patch
new file mode 100644
index 00000000..7ac1a399
--- /dev/null
+++ b/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen-4.18.patch
@@ -0,0 +1,43 @@
+Upstream-Status: Pending
+
+diff --git a/tools/pygrub/Makefile b/tools/pygrub/Makefile
+index 4963bc89c6..c1c05eb421 100644
+--- a/tools/pygrub/Makefile
++++ b/tools/pygrub/Makefile
+@@ -13,14 +13,14 @@ setup.py = CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDSHARED="$(CC)" LDFLAGS="$(PY_LDFLA
+ all: build
+ .PHONY: build
+ build:
+- $(setup.py) build
++ $(setup.py) build $(DISTUTILS_BUILD_ARGS)
+
+ .PHONY: install
+ install: all
+ $(INSTALL_DIR) $(DESTDIR)/$(bindir)
+ $(INSTALL_DIR) $(DESTDIR)/$(LIBEXEC_BIN)
+ $(setup.py) install --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \
+- --root="$(DESTDIR)" --force
++ --root="$(DESTDIR)" --force $(DISTUTILS_INSTALL_ARGS)
+ $(INSTALL_PYTHON_PROG) src/pygrub $(DESTDIR)/$(LIBEXEC_BIN)/pygrub
+ set -e; if [ $(bindir) != $(LIBEXEC_BIN) -a \
+ "`readlink -f $(DESTDIR)/$(bindir)`" != \
+diff --git a/tools/python/Makefile b/tools/python/Makefile
+index 437431c48e..0a99c2067e 100644
+--- a/tools/python/Makefile
++++ b/tools/python/Makefile
+@@ -16,13 +16,13 @@ setup.py = CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDSHARED="$(CC)" LDFLAGS="$(PY_LDFLA
+
+ .PHONY: build
+ build:
+- $(setup.py) build
++ $(setup.py) build $(DISTUTILS_BUILD_ARGS)
+
+ .PHONY: install
+ install:
+ $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
+ $(setup.py) install --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \
+- --root="$(DESTDIR)" --force
++ --root="$(DESTDIR)" --force $(DISTUTILS_INSTALL_ARGS)
+ $(INSTALL_PYTHON_PROG) scripts/convert-legacy-stream $(DESTDIR)$(LIBEXEC_BIN)
+ $(INSTALL_PYTHON_PROG) scripts/verify-stream-v2 $(DESTDIR)$(LIBEXEC_BIN)
+
diff --git a/recipes-extended/xen/files/0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch b/recipes-extended/xen/files/0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch
deleted file mode 100644
index 001b196d..00000000
--- a/recipes-extended/xen/files/0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From 0eae016b6e3dce69e3fb86aca5c4f221591a2f12 Mon Sep 17 00:00:00 2001
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-Date: Thu, 25 Feb 2021 19:15:08 +0000
-Subject: [PATCH] tools/firmware: Build firmware as -ffreestanding
-
-firmware should always have been -ffreestanding, as it doesn't execute in the
-host environment. -ffreestanding implies -fno-builtin, so replace the option.
-
-inttypes.h isn't a freestanding header, but the 32bitbios_support.c only wants
-the stdint.h types so switch to the more appropriate include.
-
-This removes the build time dependency on a 32bit libc just to compile the
-hvmloader and friends.
-
-Update README and the TravisCI configuration.
-
-Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
-Reviewed-by: Jan Beulich <jbeulich@suse.com>
-Reviewed-by: Ian Jackson <iwj@xenproject.org>
-Release-Acked-by: Ian Jackson <iwj@xenproject.org>
-Applied to m-v Xen 4.14 series: Christopher Clark <christopher.w.clark@gmail.com>
----
- .travis.yml | 1 -
- README | 3 ---
- tools/firmware/Rules.mk | 2 +-
- tools/firmware/hvmloader/32bitbios_support.c | 2 +-
- 4 files changed, 2 insertions(+), 6 deletions(-)
-
-diff --git a/.travis.yml b/.travis.yml
-index 15ca9e9047..2362475f7a 100644
---- a/.travis.yml
-+++ b/.travis.yml
-@@ -58,7 +58,6 @@ addons:
- - acpica-tools
- - bin86
- - bcc
-- - libc6-dev-i386
- - libnl-3-dev
- - ocaml-nox
- - libfindlib-ocaml-dev
-diff --git a/README b/README
-index 6e15242ae1..8c99c30986 100644
---- a/README
-+++ b/README
-@@ -62,9 +62,6 @@ provided by your OS distributor:
- * GNU bison and GNU flex
- * GNU gettext
- * ACPI ASL compiler (iasl)
-- * Libc multiarch package (e.g. libc6-dev-i386 / glibc-devel.i686).
-- Required when building on a 64-bit platform to build
-- 32-bit components which are enabled on a default build.
-
- In addition to the above there are a number of optional build
- prerequisites. Omitting these will cause the related features to be
-diff --git a/tools/firmware/Rules.mk b/tools/firmware/Rules.mk
-index cb388b7011..9f78a7dec9 100644
---- a/tools/firmware/Rules.mk
-+++ b/tools/firmware/Rules.mk
-@@ -16,7 +16,7 @@ CFLAGS += -Werror
- $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
-
- # Extra CFLAGS suitable for an embedded type of environment.
--CFLAGS += -fno-builtin -msoft-float
-+CFLAGS += -ffreestanding -msoft-float
-
- # Use our own set of stand alone headers to build firmware.
- #
-diff --git a/tools/firmware/hvmloader/32bitbios_support.c b/tools/firmware/hvmloader/32bitbios_support.c
-index 114135022e..ef681d4f57 100644
---- a/tools/firmware/hvmloader/32bitbios_support.c
-+++ b/tools/firmware/hvmloader/32bitbios_support.c
-@@ -20,7 +20,7 @@
- * this program; If not, see <http://www.gnu.org/licenses/>.
- */
-
--#include <inttypes.h>
-+#include <stdint.h>
- #include <elf.h>
- #ifdef __sun__
- #include <sys/machelf.h>
---
-2.25.1
-
diff --git a/recipes-extended/xen/files/0001-tools-xenstore-xenstored_control.c-correctly-print-t.patch b/recipes-extended/xen/files/0001-tools-xenstore-xenstored_control.c-correctly-print-t.patch
new file mode 100644
index 00000000..bf99f5e8
--- /dev/null
+++ b/recipes-extended/xen/files/0001-tools-xenstore-xenstored_control.c-correctly-print-t.patch
@@ -0,0 +1,34 @@
+From c7c43c4531fe1cd188f62d9905c3f5c7a29a6fb0 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Wed, 12 Apr 2023 10:30:18 +0200
+Subject: [PATCH] tools/xenstore/xenstored_control.c: correctly print time_t
+
+On 32 bit systems with 64 bit time_t (hello, Y2038 problem),
+the following error occurs otherwise:
+
+| xenstored_control.c: In function 'lu_reject_reason':
+| xenstored_control.c:646:70: error: format '%ld' expects argument of type 'long int', but argument 5 has type 'time_t' {aka 'long long int'} [-Werror=format=]
+
+Upstream-Status: Submitted [by email to xen-devel@lists.xenproject.org and maintainers as suggested by add_maintainers.pl script]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ tools/xenstore/xenstored_control.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tools/xenstore/xenstored_control.c b/tools/xenstore/xenstored_control.c
+index d1aaa00bf4..8d318c0399 100644
+--- a/tools/xenstore/xenstored_control.c
++++ b/tools/xenstore/xenstored_control.c
+@@ -643,10 +643,10 @@ static const char *lu_reject_reason(const void *ctx)
+ list_for_each_entry(conn, &connections, list) {
+ if (conn->ta_start_time &&
+ (now - conn->ta_start_time >= lu_status->timeout)) {
+- ret = talloc_asprintf(ctx, "%s\nDomain %u: %ld s",
++ ret = talloc_asprintf(ctx, "%s\nDomain %u: %jd s",
+ ret ? : "Domains with long running transactions:",
+ conn->id,
+- now - conn->ta_start_time);
++ (intmax_t)now - conn->ta_start_time);
+ }
+ }
+
diff --git a/recipes-extended/xen/files/xen-arm64-implement-atomic-fetch-add.patch b/recipes-extended/xen/files/xen-arm64-implement-atomic-fetch-add.patch
deleted file mode 100644
index 6e957a50..00000000
--- a/recipes-extended/xen/files/xen-arm64-implement-atomic-fetch-add.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Christopher Clark <christopher.w.clark@gmail.com>
-Date: Fri, 26 June 2020 16:34:00 -0800
-Subject: [PATCH] xen: implement atomic op to fix arm64 compilation
-
-Xen's ARM implementation of arch_fetch_and_add since f9cc3cd9
-uses a builtin, despite the build being performed with -fno-builtin.
-With gcc 10.1.0, this now breaks prelinking spinlock.c, so
-implement the one atomic operation that is required with logic
-derived from Linux's atomic_ll_sc.h: ATOMIC_FETCH_OP and comparison with
-the binary produced with and without the patch with gcc 9.2.0.
-
-Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
-diff --git a/xen/include/asm-arm/system.h b/xen/include/asm-arm/system.h
-index e5d062667d..c46dd3ac71 100644
---- a/xen/include/asm-arm/system.h
-+++ b/xen/include/asm-arm/system.h
-@@ -55,7 +55,32 @@ static inline int local_abort_is_enabled(void)
- return !(flags & PSR_ABT_MASK);
- }
-
-+#ifdef CONFIG_ARM_64
-+
-+/* see atomic_ll_sc.h: ATOMIC_FETCH_OP(name, mb, acq, rel, cl, op, asm_op, constraint) */
-+static inline int arch_fetch_and_add(unsigned int *ptr, unsigned long i)
-+{
-+ int register lptr asm("x0");
-+ int register result asm("w1");
-+ int register newval asm("w2");
-+ int register status asm("w3");
-+
-+ asm volatile(
-+ " mov %[lptr], %[ptr]\n"
-+ "1: ldxr %w[result], [%[lptr]]\n"
-+ " add %w[newval], %w[result], %w[i]\n"
-+ " stlxr %w[status], %w[newval], [%[lptr]]\n"
-+ " cbnz %w[status], 1b\n"
-+ " dmb ish\n"
-+ : [result] "=&r" (result), [lptr] "=&r" (lptr), [newval] "=&r" (newval), [status] "=&r" (status), [i] "+r" (i), "+Q" (*ptr)
-+ : [ptr] "r" (ptr), "r" (i)
-+ : "memory");
-+
-+ return result;
-+}
-+#else
- #define arch_fetch_and_add(x, v) __sync_fetch_and_add(x, v)
-+#endif
-
- extern struct vcpu *__context_switch(struct vcpu *prev, struct vcpu *next);
-
diff --git a/recipes-extended/xen/xen-blktap.inc b/recipes-extended/xen/xen-blktap.inc
index 5f385ddc..2c8cb1fd 100644
--- a/recipes-extended/xen/xen-blktap.inc
+++ b/recipes-extended/xen/xen-blktap.inc
@@ -20,45 +20,45 @@ BLKTAP_PROVIDES ?= " \
"
BLKTAP_RRECOMMENDS ?= " \
- virtual/blktap \
- virtual/libblktap \
- virtual/libblktapctl \
- virtual/libvhd \
+ virtual-blktap \
+ virtual-libblktap \
+ virtual-libblktapctl \
+ virtual-libvhd \
"
-RPROVIDES_${PN}-blktap = "virtual/blktap"
-RPROVIDES_${PN}-libblktap = "virtual/libblktap"
-RPROVIDES_${PN}-libblktapctl = "virtual/libblktapctl"
-RPROVIDES_${PN}-libvhd = "virtual/libvhd"
+RPROVIDES:${PN}-blktap = "virtual-blktap"
+RPROVIDES:${PN}-libblktap = "virtual-libblktap"
+RPROVIDES:${PN}-libblktapctl = "virtual-libblktapctl"
+RPROVIDES:${PN}-libvhd = "virtual-libvhd"
-FILES_${PN}-blktap-staticdev += "\
+FILES:${PN}-blktap-staticdev += "\
${libdir}/libblktapctl.a \
${libdir}/libvhd.a \
${libdir}/libblktap.a \
"
-FILES_${PN}-libblktapctl = "${libdir}/libblktapctl.so.*"
-FILES_${PN}-libblktapctl-dev = " \
+FILES:${PN}-libblktapctl = "${libdir}/libblktapctl.so.*"
+FILES:${PN}-libblktapctl-dev = " \
${libdir}/libblktapctl.so \
${libdir}/pkgconfig/xenblktapctl.pc \
${datadir}/pkgconfig/xenblktapctl.pc \
"
-FILES_${PN}-libvhd = "${libdir}/libvhd.so.*"
-FILES_${PN}-libvhd-dev = " \
+FILES:${PN}-libvhd = "${libdir}/libvhd.so.*"
+FILES:${PN}-libvhd-dev = " \
${libdir}/libvhd.so \
${libdir}/pkgconfig/vhd.pc \
${datadir}/pkgconfig/vhd.pc \
"
-FILES_${PN}-libblktap = "${libdir}/libblktap.so.*"
-FILES_${PN}-libblktap-dev = " \
+FILES:${PN}-libblktap = "${libdir}/libblktap.so.*"
+FILES:${PN}-libblktap-dev = " \
${libdir}/libblktap.so \
${libdir}/pkgconfig/blktap.pc \
${datadir}/pkgconfig/blktap.pc \
"
-FILES_${PN}-blktap = "\
+FILES:${PN}-blktap = "\
${sbindir}/blktapctrl \
${sbindir}/img2qcow \
${sbindir}/lock-util \
diff --git a/recipes-extended/xen/xen-hypervisor.inc b/recipes-extended/xen/xen-hypervisor.inc
index 916bd3ce..6f3d24d0 100644
--- a/recipes-extended/xen/xen-hypervisor.inc
+++ b/recipes-extended/xen/xen-hypervisor.inc
@@ -17,7 +17,7 @@ PACKAGES = " \
${PN}-efi \
"
-FILES_${PN} = " \
+FILES:${PN} = " \
/boot/xen-* \
/boot/xen \
/boot/xen-*.gz \
@@ -25,9 +25,9 @@ FILES_${PN} = " \
/boot/xen-syms-* \
"
-FILES_${PN}-dbg += "${libdir}/debug/*"
+FILES:${PN}-dbg += "${libdir}/debug/*"
-FILES_${PN}-efi = " \
+FILES:${PN}-efi = " \
/boot/xen.efi \
${exec_prefix}/lib64/efi/xen* \
"
@@ -48,8 +48,17 @@ do_configure() {
fi
}
+# The hypervisor binary for arm must not be built with the hard floating point
+# ABI. Override CC and CPP when invoking make so that they do not contain
+# TUNE_CCARGS.
+EXTRA_OEMAKE:arm += "CC='${CCACHE}${HOST_PREFIX}gcc ${TOOLCHAIN_OPTIONS} \
+ ${CC_REPRODUCIBLE_OPTIONS}' \
+ CPP='${CCACHE}${HOST_PREFIX}gcc -E ${TOOLCHAIN_OPTIONS} \
+ ${CC_REPRODUCIBLE_OPTIONS}'"
+
do_compile() {
- oe_runmake xen PYTHON="${PYTHON}"
+ oe_runmake xen PYTHON="${PYTHON}" \
+ EXTRA_CFLAGS_XEN_CORE="${EXTRA_CFLAGS_XEN_CORE}"
}
do_install() {
@@ -102,3 +111,7 @@ CROSS_CURSES_LIB += "-L${STAGING_LIBDIR_NATIVE}"
# Specify the root dir of the .config file for do_menuconfig and do_diffconfig
# tasks
KCONFIG_CONFIG_ROOTDIR = "${S}/xen"
+
+# Xen is setting all CC flags on its own. Make sure that they are not modified
+# for aarch64, e.g. with architecture-specific optimizations.
+TUNE_CCARGS:aarch64=""
diff --git a/recipes-extended/xen/xen-tools.inc b/recipes-extended/xen/xen-tools.inc
index e939c459..5f010a5d 100644
--- a/recipes-extended/xen/xen-tools.inc
+++ b/recipes-extended/xen/xen-tools.inc
@@ -6,7 +6,7 @@ COMPATIBLE_HOST = 'i686-.*-linux|(x86_64.*).*-linux|aarch64.*-linux|arm-.*-linux
inherit setuptools3 update-rc.d systemd deploy
require xen-blktap.inc
-RDEPENDS_${PN} = "\
+RDEPENDS:${PN} = "\
bash perl xz \
${PN}-console \
${PN}-libxenguest \
@@ -24,20 +24,16 @@ RDEPENDS_${PN} = "\
${PN}-xencommons \
${PN}-xendomains \
${PN}-xenstore \
- virtual/xenstored \
+ virtual-xenstored \
${PN}-xl \
"
-RDEPENDS_${PN}-dev = ""
+RDEPENDS:${PN}-dev = ""
-# Qemu is necessary on ARM platforms, and to support HVM guests on x86
-QEMU = "${@bb.utils.contains('PACKAGECONFIG', 'hvm', 'qemu', '', d)}"
-QEMU_arm = "qemu"
-QEMU_aarch64 = "qemu"
-
-RRECOMMENDS_${PN} = " \
- ${QEMU} \
- ${@bb.utils.contains('PACKAGECONFIG', 'hvm', 'seabios', '', d)} \
+RRECOMMENDS:${PN} = " \
+ qemu \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'vmsep', 'qemu-x86_64 qemu-i386', '', d)} \
+ ${@bb.utils.contains('XEN_TARGET_ARCH', 'x86_64', 'seabios ipxe vgabios', '', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'externalblktap', '', '${BLKTAP_RRECOMMENDS}', d)} \
${PN}-flask \
${PN}-hvmloader \
@@ -49,87 +45,88 @@ RRECOMMENDS_${PN} = " \
${PN}-xenhypfs \
"
-RDEPENDS_${PN}-devd = " \
+RDEPENDS:${PN}-devd = " \
${PN}-xl \
"
-RDEPENDS_${PN}-fsimage = " \
+RDEPENDS:${PN}-fsimage = " \
libext2fs \
"
-RDEPENDS_${PN}-misc = " \
+RDEPENDS:${PN}-misc = " \
perl \
python3 \
${PN}-xencov \
"
-RSUGGESTS_${PN}-misc = " \
+RSUGGESTS:${PN}-misc = " \
${PN}-xencons \
${PN}-xenpvnetboot \
"
-RDEPENDS_${PN}-python = " \
+RDEPENDS:${PN}-python = " \
python3 \
"
-RDEPENDS_${PN}-pygrub = " \
+RDEPENDS:${PN}-pygrub = " \
python3 \
${PN}-python \
"
-RDEPENDS_${PN}-remus = "bash"
+RDEPENDS:${PN}-remus = "bash"
-RDEPENDS_${PN}-scripts-block = "\
+RDEPENDS:${PN}-scripts-block = "\
bash \
${PN}-scripts-common \
${PN}-volatiles \
"
-RDEPENDS_${PN}-scripts-common = "bash"
+RDEPENDS:${PN}-scripts-common = "bash"
-RDEPENDS_${PN}-scripts-network = "\
+RDEPENDS:${PN}-scripts-network = "\
bash \
bridge-utils \
${PN}-scripts-common \
${PN}-volatiles \
"
-RSUGGESTS_${PN}-scripts-network = "\
+RRECOMMENDS:${PN}-scripts-network = "\
ifupdown \
"
-RSUGGESTS_${PN}-xencov = "${PN}-xencov-split"
+RSUGGESTS:${PN}-xencov = "${PN}-xencov-split"
-RDEPENDS_${PN}-xencommons = "\
+RDEPENDS:${PN}-xencommons = "\
bash \
+ util-linux-prlimit \
${PN}-console \
${PN}-xenstore \
- virtual/xenstored \
+ virtual-xenstored \
${PN}-xl \
${PN}-scripts-common \
"
-RDEPENDS_${PN}-xendomains = "\
+RDEPENDS:${PN}-xendomains = "\
bash \
${PN}-console \
${PN}-scripts-block \
${PN}-scripts-common \
- virtual/xenstored \
+ virtual-xenstored \
"
-RDEPENDS_${PN}-xenhypfs = " \
+RDEPENDS:${PN}-xenhypfs = " \
${PN}-libxenhypfs \
"
-RDEPENDS_${PN}-xl = "libgcc"
+RDEPENDS:${PN}-xl = "libgcc"
-RDEPENDS_${PN}-xenmon = " \
+RDEPENDS:${PN}-xenmon = " \
python3 \
"
-RSUGGESTS_${PN}-xentrace = "${PN}-xentrace-format"
+RSUGGESTS:${PN}-xentrace = "${PN}-xentrace-format"
-RDEPENDS_${PN}-xen-watchdog = "bash"
+RDEPENDS:${PN}-xen-watchdog = "bash"
PACKAGES = " \
${PN} \
@@ -213,18 +210,21 @@ PACKAGES = " \
${PN}-xm-examples \
${PN}-xen-access \
${PN}-xen-memshare \
+ ${PN}-test \
+ ${PN}-xen-vmtrace \
+ ${PN}-xen-mceinj \
"
PROVIDES =+ " \
- virtual/xenstored \
+ virtual-xenstored \
${@bb.utils.contains('PACKAGECONFIG', 'externalblktap', '', '${BLKTAP_PROVIDES}', d)} \
"
# There are multiple implementations of the XenStore daemon, so we use a
# virtual package to allow for substitution.
-RPROVIDES_${PN}-xenstored = "virtual/xenstored"
+RPROVIDES:${PN}-xenstored = "virtual-xenstored"
-FILES_${PN}-dbg += "\
+FILES:${PN}-dbg += "\
${libdir}/xen/bin/.debug \
${nonarch_libdir}/${PYTHON_DIR}/site-packages/.debug \
${nonarch_libdir}/${PYTHON_DIR}/site-packages/xen/lowlevel/.debug \
@@ -244,18 +244,18 @@ FILES_${PN}-dbg += "\
${nonarch_libdir}/${PYTHON_DIR}/dist-packages/xen/lowlevel/.debug \
"
-FILES_${PN}-dev = "\
+FILES:${PN}-dev = "\
${includedir} \
"
-FILES_${PN}-doc = "\
+FILES:${PN}-doc = "\
${sysconfdir}/xen/README \
${sysconfdir}/xen/README.incompatibilities \
${datadir}/doc \
${datadir}/man \
"
-FILES_${PN}-staticdev += "\
+FILES:${PN}-staticdev += "\
${libdir}/libxenguest.a \
${libdir}/libxenlight.a \
${libdir}/libxenvchan.a \
@@ -265,122 +265,122 @@ FILES_${PN}-staticdev += "\
${libdir}/libxenstore.a \
"
-FILES_${PN}-libxencall = "${libdir}/libxencall.so.*"
-FILES_${PN}-libxencall-dev = " \
+FILES:${PN}-libxencall = "${libdir}/libxencall.so.*"
+FILES:${PN}-libxencall-dev = " \
${libdir}/libxencall.so \
${libdir}/pkgconfig/xencall.pc \
${datadir}/pkgconfig/xencall.pc \
"
-FILES_${PN}-libxenctrl = "${libdir}/libxenctrl.so.*"
-FILES_${PN}-libxenctrl-dev = " \
+FILES:${PN}-libxenctrl = "${libdir}/libxenctrl.so.*"
+FILES:${PN}-libxenctrl-dev = " \
${libdir}/libxenctrl.so \
${libdir}/pkgconfig/xencontrol.pc \
${datadir}/pkgconfig/xencontrol.pc \
"
-FILES_${PN}-libxendevicemodel = "${libdir}/libxendevicemodel.so.*"
-FILES_${PN}-libxendevicemodel-dev = " \
+FILES:${PN}-libxendevicemodel = "${libdir}/libxendevicemodel.so.*"
+FILES:${PN}-libxendevicemodel-dev = " \
${libdir}/libxendevicemodel.so \
${libdir}/pkgconfig/xendevicemodel.pc \
${datadir}/pkgconfig/xendevicemodel.pc \
"
-FILES_${PN}-libxenevtchn = "${libdir}/libxenevtchn.so.*"
-FILES_${PN}-libxenevtchn-dev = " \
+FILES:${PN}-libxenevtchn = "${libdir}/libxenevtchn.so.*"
+FILES:${PN}-libxenevtchn-dev = " \
${libdir}/libxenevtchn.so \
${libdir}/pkgconfig/xenevtchn.pc \
${datadir}/pkgconfig/xenevtchn.pc \
"
-FILES_${PN}-libxenforeignmemory = "${libdir}/libxenforeignmemory.so.*"
-FILES_${PN}-libxenforeignmemory-dev = " \
+FILES:${PN}-libxenforeignmemory = "${libdir}/libxenforeignmemory.so.*"
+FILES:${PN}-libxenforeignmemory-dev = " \
${libdir}/libxenforeignmemory.so \
${libdir}/pkgconfig/xenforeignmemory.pc \
${datadir}/pkgconfig/xenforeignmemory.pc \
"
-FILES_${PN}-libxengnttab = "${libdir}/libxengnttab.so.*"
-FILES_${PN}-libxengnttab-dev = " \
+FILES:${PN}-libxengnttab = "${libdir}/libxengnttab.so.*"
+FILES:${PN}-libxengnttab-dev = " \
${libdir}/libxengnttab.so \
${libdir}/pkgconfig/xengnttab.pc \
${datadir}/pkgconfig/xengnttab.pc \
"
-FILES_${PN}-libxenguest = "${libdir}/libxenguest.so.*"
-FILES_${PN}-libxenguest-dev = " \
+FILES:${PN}-libxenguest = "${libdir}/libxenguest.so.*"
+FILES:${PN}-libxenguest-dev = " \
${libdir}/libxenguest.so \
${libdir}/pkgconfig/xenguest.pc \
${datadir}/pkgconfig/xenguest.pc \
"
-FILES_${PN}-libxenhypfs = "${libdir}/libxenhypfs.so.*"
-FILES_${PN}-libxenhypfs-dev = " \
+FILES:${PN}-libxenhypfs = "${libdir}/libxenhypfs.so.*"
+FILES:${PN}-libxenhypfs-dev = " \
${libdir}/libxenhypfs.so \
${libdir}/pkgconfig/xenhypfs.pc \
"
-FILES_${PN}-libxenlight = "${libdir}/libxenlight.so.*"
-FILES_${PN}-libxenlight-dev = " \
+FILES:${PN}-libxenlight = "${libdir}/libxenlight.so.*"
+FILES:${PN}-libxenlight-dev = " \
${libdir}/libxenlight.so \
${libdir}/pkgconfig/xenlight.pc \
${datadir}/pkgconfig/xenlight.pc \
"
-FILES_${PN}-libxenstat = "${libdir}/libxenstat.so.*"
-FILES_${PN}-libxenstat-dev = " \
+FILES:${PN}-libxenstat = "${libdir}/libxenstat.so.*"
+FILES:${PN}-libxenstat-dev = " \
${libdir}/libxenstat.so \
${libdir}/pkgconfig/xenstat.pc \
${datadir}/pkgconfig/xenstat.pc \
"
-FILES_${PN}-libxenstore = "${libdir}/libxenstore.so.*"
-FILES_${PN}-libxenstore-dev = " \
+FILES:${PN}-libxenstore = "${libdir}/libxenstore.so.*"
+FILES:${PN}-libxenstore-dev = " \
${libdir}/libxenstore.so \
${libdir}/pkgconfig/xenstore.pc \
${datadir}/pkgconfig/xenstore.pc \
"
-FILES_${PN}-libxentoolcore = "${libdir}/libxentoolcore.so.*"
-FILES_${PN}-libxentoolcore-dev = " \
+FILES:${PN}-libxentoolcore = "${libdir}/libxentoolcore.so.*"
+FILES:${PN}-libxentoolcore-dev = " \
${libdir}/libxentoolcore.so \
${libdir}/pkgconfig/xentoolcore.pc \
${datadir}/pkgconfig/xentoolcore.pc \
"
-FILES_${PN}-libxentoollog = "${libdir}/libxentoollog.so.*"
-FILES_${PN}-libxentoollog-dev = " \
+FILES:${PN}-libxentoollog = "${libdir}/libxentoollog.so.*"
+FILES:${PN}-libxentoollog-dev = " \
${libdir}/libxentoollog.so \
${libdir}/pkgconfig/xentoollog.pc \
${datadir}/pkgconfig/xentoollog.pc \
"
-FILES_${PN}-libxenvchan = "${libdir}/libxenvchan.so.*"
-FILES_${PN}-libxenvchan-dev = " \
+FILES:${PN}-libxenvchan = "${libdir}/libxenvchan.so.*"
+FILES:${PN}-libxenvchan-dev = " \
${libdir}/libxenvchan.so \
${libdir}/pkgconfig/xenvchan.pc \
${datadir}/pkgconfig/xenvchan.pc \
"
-FILES_${PN}-libxlutil = "${libdir}/libxlutil.so.*"
-FILES_${PN}-libxlutil-dev = " \
+FILES:${PN}-libxlutil = "${libdir}/libxlutil.so.*"
+FILES:${PN}-libxlutil-dev = " \
${libdir}/libxlutil.so \
${libdir}/pkgconfig/xlutil.pc \
${datadir}/pkgconfig/xlutil.pc \
"
-FILES_${PN}-libvhd = "${libdir}/libvhd.so.*"
-FILES_${PN}-libvhd-dev = " \
+FILES:${PN}-libvhd = "${libdir}/libvhd.so.*"
+FILES:${PN}-libvhd-dev = " \
${libdir}/libvhd.so \
${libdir}/pkgconfig/vhd.pc \
${datadir}/pkgconfig/vhd.pc \
"
-FILES_${PN}-libfsimage = " \
+FILES:${PN}-libfsimage = " \
${libdir}/libfsimage.so.* \
${libdir}/libxenfsimage.so.* \
"
-FILES_${PN}-libfsimage-dev = " \
+FILES:${PN}-libfsimage-dev = " \
${libdir}/libfsimage.so \
${libdir}/libxenfsimage.so \
${libdir}/pkgconfig/fsimage.pc \
@@ -389,38 +389,38 @@ FILES_${PN}-libfsimage-dev = " \
${datadir}/pkgconfig/xenfsimage.pc \
"
-FILES_${PN}-fsimage = " \
+FILES:${PN}-fsimage = " \
${libdir}/fs/**/[a-z]*fsimage.so \
${libdir}/xenfsimage/**/fsimage.so \
"
-FILES_${PN}-init-xenstore-dom = "${libdir}/xen/bin/init-xenstore-domain"
+FILES:${PN}-init-xenstore-dom = "${libdir}/xen/bin/init-xenstore-domain"
-FILES_${PN} = "\
+FILES:${PN} = "\
${sysconfdir}/xen/auto \
${sysconfdir}/xen/cpupool \
${localstatedir}/xen/dump \
"
-FILES_${PN}-console = "\
+FILES:${PN}-console = "\
${libdir}/xen/bin/xenconsole \
${sbindir}/xenconsoled \
"
-FILES_${PN}-cpuid = "\
+FILES:${PN}-cpuid = "\
${bindir}/xen-cpuid \
"
-FILES_${PN}-devd = "\
+FILES:${PN}-devd = "\
${sysconfdir}/init.d/xendriverdomain \
${systemd_unitdir}/system/xendriverdomain.service \
"
-FILES_${PN}-flask = "\
+FILES:${PN}-flask = "\
/boot/xenpolicy-* \
"
-FILES_${PN}-flask-tools = "\
+FILES:${PN}-flask-tools = "\
${sbindir}/flask-get-bool \
${sbindir}/flask-getenforce \
${sbindir}/flask-label-pci \
@@ -429,25 +429,25 @@ FILES_${PN}-flask-tools = "\
${sbindir}/flask-setenforce \
"
-FILES_${PN}-gdbsx = "\
+FILES:${PN}-gdbsx = "\
${sbindir}/gdbsx \
"
-INSANE_SKIP_${PN}-hvmloader = "arch"
-FILES_${PN}-hvmloader = "\
+INSANE_SKIP:${PN}-hvmloader = "arch"
+FILES:${PN}-hvmloader = "\
${libdir}/xen/boot/hvmloader \
"
-FILES_${PN}-kdd = "\
+FILES:${PN}-kdd = "\
${sbindir}/kdd \
${sbindir}/xen-kdd \
"
-FILES_${PN}-livepatch += " \
+FILES:${PN}-livepatch += " \
${sbindir}/xen-livepatch \
"
-FILES_${PN}-misc = "\
+FILES:${PN}-misc = "\
${bindir}/xen-detect \
${libdir}/xen/bin/depriv-fd-checker \
${sbindir}/gtracestat \
@@ -470,22 +470,22 @@ FILES_${PN}-misc = "\
${libdir}/xen/bin/convert-legacy-stream \
"
-FILES_${PN}-pygrub = "\
+FILES:${PN}-pygrub = "\
${bindir}/pygrub \
${libdir}/xen/bin/pygrub \
"
# Depending on the version of Xen libdir or nonarch libdir is used
-FILES_${PN}-python = "\
+FILES:${PN}-python = "\
${libdir}/${PYTHON_DIR} \
${nonarch_libdir}/${PYTHON_DIR} \
"
-FILES_${PN}-remus = "\
+FILES:${PN}-remus = "\
${sysconfdir}/xen/scripts/remus-netbuf-setup \
"
-FILES_${PN}-scripts-network = " \
+FILES:${PN}-scripts-network = " \
${sysconfdir}/xen/scripts/colo-proxy-setup \
${sysconfdir}/xen/scripts/network-bridge \
${sysconfdir}/xen/scripts/network-nat \
@@ -500,7 +500,7 @@ FILES_${PN}-scripts-network = " \
${sysconfdir}/xen/scripts/vif-setup \
"
-FILES_${PN}-scripts-block = " \
+FILES:${PN}-scripts-block = " \
${sysconfdir}/xen/scripts/blktap \
${sysconfdir}/xen/scripts/block \
${sysconfdir}/xen/scripts/block-common.sh \
@@ -513,7 +513,7 @@ FILES_${PN}-scripts-block = " \
${sysconfdir}/xen/scripts/vscsi \
"
-FILES_${PN}-scripts-common = " \
+FILES:${PN}-scripts-common = " \
${sysconfdir}/xen/scripts/external-device-migrate \
${sysconfdir}/xen/scripts/hotplugpath.sh \
${sysconfdir}/xen/scripts/locking.sh \
@@ -524,59 +524,59 @@ FILES_${PN}-scripts-common = " \
${sysconfdir}/xen/scripts/xen-script-common.sh \
"
-INSANE_SKIP_${PN}-shim = "arch"
-FILES_${PN}-shim = " \
+INSANE_SKIP:${PN}-shim = "arch"
+FILES:${PN}-shim = " \
${libdir}/xen/boot/xen-shim \
"
-FILES_${PN}-ucode = "\
+FILES:${PN}-ucode = "\
${sbindir}/xen-ucode \
"
-FILES_${PN}-vchan = "\
+FILES:${PN}-vchan = "\
${bindir}/vchan-socket-proxy \
"
-FILES_${PN}-volatiles = "\
+FILES:${PN}-volatiles = "\
${sysconfdir}/default/volatiles/99_xen \
${sysconfdir}/tmpfiles.d/xen.conf \
"
-FILES_${PN}-xcutils = "\
+FILES:${PN}-xcutils = "\
${libdir}/xen/bin/lsevtchn \
${libdir}/xen/bin/readnotes \
${libdir}/xen/bin/xc_restore \
${libdir}/xen/bin/xc_save \
"
-FILES_${PN}-xencov = "\
+FILES:${PN}-xencov = "\
${sbindir}/xencov \
"
-FILES_${PN}-xend-examples = "\
+FILES:${PN}-xend-examples = "\
${sysconfdir}/xen/xend-config.sxp \
${sysconfdir}/xen/xend-pci-permissive.sxp \
${sysconfdir}/xen/xend-pci-quirks.sxp \
"
-FILES_${PN}-xenhypfs = "\
+FILES:${PN}-xenhypfs = "\
${sbindir}/xenhypfs \
"
-FILES_${PN}-xenpaging = "\
+FILES:${PN}-xenpaging = "\
${libdir}/xen/bin/xenpaging \
${localstatedir}/lib/xen/xenpaging \
"
-FILES_${PN}-xenpmd = "\
+FILES:${PN}-xenpmd = "\
${sbindir}/xenpmd \
"
-FILES_${PN}-xenstat = "\
+FILES:${PN}-xenstat = "\
${sbindir}/xentop \
"
-FILES_${PN}-xenstore = "\
+FILES:${PN}-xenstore = "\
${bindir}/xenstore \
${bindir}/xenstore-chmod \
${bindir}/xenstore-control \
@@ -589,12 +589,12 @@ FILES_${PN}-xenstore = "\
${bindir}/xenstore-write \
"
-FILES_${PN}-xenstored = "\
+FILES:${PN}-xenstored = "\
${sbindir}/xenstored \
${localstatedir}/lib/xenstored \
"
-FILES_${PN}-xentrace = "\
+FILES:${PN}-xentrace = "\
${bindir}/xentrace \
${bindir}/xentrace_setsize \
${libdir}/xen/bin/xenctx \
@@ -604,28 +604,29 @@ FILES_${PN}-xentrace = "\
${sbindir}/xentrace_setmask \
"
-FILES_${PN}-xen-watchdog = "\
+FILES:${PN}-xen-watchdog = "\
${sbindir}/xenwatchdogd \
${sysconfdir}/init.d/xen-watchdog \
${systemd_unitdir}/system/xen-watchdog.service \
"
-FILES_${PN}-xl = "\
+FILES:${PN}-xl = "\
${sysconfdir}/bash_completion.d/xl.sh \
${sysconfdir}/bash_completion.d/xl \
${sysconfdir}/xen/xl.conf \
${libdir}/xen/bin/libxl-save-helper \
${sbindir}/xl \
${libdir}/xen/bin/xen-init-dom0 \
+ ${libdir}/xen/bin/init-dom0less \
"
-FILES_${PN}-xl-examples = "\
+FILES:${PN}-xl-examples = "\
${sysconfdir}/xen/xlexample.hvm \
${sysconfdir}/xen/xlexample.pvlinux \
${sysconfdir}/xen/xlexample.pvhlinux \
"
-FILES_${PN}-xm-examples = "\
+FILES:${PN}-xm-examples = "\
${sysconfdir}/xen/xmexample1 \
${sysconfdir}/xen/xmexample2 \
${sysconfdir}/xen/xmexample3 \
@@ -636,86 +637,112 @@ FILES_${PN}-xm-examples = "\
${sysconfdir}/xen/xmexample.vti \
"
-FILES_${PN}-xenmon = "\
+FILES:${PN}-xenmon = "\
${sbindir}/xenbaked \
${sbindir}/xenmon.py \
${sbindir}/xenmon \
"
-FILES_${PN}-xm = "\
+FILES:${PN}-xm = "\
${sysconfdir}/xen/xm-config.xml \
${datadir}/xen/create.dtd \
${sbindir}/xm \
"
-FILES_${PN}-xencommons += "\
+FILES:${PN}-xencommons += "\
+ ${nonarch_libdir}/modules-load.d/xen.conf \
${sysconfdir}/default/xencommons \
- ${sysconfdir}/init.d/xencommons \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', '${sysconfdir}/init.d/xencommons', d)} \
${sysconfdir}/xen/scripts/launch-xenstore \
- ${systemd_unitdir}/modules-load.d/xen.conf \
${systemd_unitdir}/system/proc-xen.mount \
- ${systemd_unitdir}/system/xen-qemu-dom0-disk-backend.service \
- ${systemd_unitdir}/system/xenconsoled.service \
- ${systemd_unitdir}/system/xen-init-dom0.service \
- ${systemd_unitdir}/system/xenstored.service \
- ${systemd_unitdir}/system/var-lib-xenstored.mount \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/xen-qemu-dom0-disk-backend.service', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/xenconsoled.service', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/xen-init-dom0.service', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/xenstored.service', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/var-lib-xenstored.mount', '', d)} \
+ ${localstatedir} \
"
-FILES_${PN}-xend += " \
+FILES:${PN}-xend += " \
${sysconfdir}/init.d/xend \
${sbindir}/xend \
"
-FILES_${PN}-xendomains += "\
+FILES:${PN}-xendomains += "\
${libdir}/xen/bin/xendomains \
${sysconfdir}/default/xendomains \
${sysconfdir}/init.d/xendomains \
${sysconfdir}/sysconfig/xendomains \
${systemd_unitdir}/system/xendomains.service \
"
-FILES_${PN}-xen-access += "\
+FILES:${PN}-xen-access += "\
${sbindir}/xen-access \
"
-FILES_${PN}-xen-memshare += "\
+FILES:${PN}-xen-memshare += "\
${sbindir}/xen-memshare \
"
# memshare is only built for x86, so allow empty package for other archs
-ALLOW_EMPTY_${PN}-xen-memshare = "1"
+ALLOW_EMPTY:${PN}-xen-memshare = "1"
+
+FILES:${PN}-test += "\
+ ${libdir}/xen/bin/test-xenstore \
+ ${libdir}/xen/bin/test-resource \
+ ${libdir}/xen/bin/test-cpu-policy \
+ ${libdir}/xen/bin/test-tsx \
+ ${libdir}/xen/bin/test-paging-mempool \
+ "
+
+# test-xenstore and test-resource currently only exist in 4.16
+# test-cpu-policy and test-tsx only exist in 4.16 for x86
+ALLOW_EMPTY:${PN}-test = "1"
+
+FILES:${PN}-xen-mceinj +="\
+ ${sbindir}/xen-mceinj \
+ "
+
+# xen-mceinj is only built for x86 4.16, so allow empty package
+ALLOW_EMPTY:${PN}-xen-mceinj = "1"
-INSANE_SKIP_${PN} = "already-stripped"
+FILES:${PN}-xen-vmtrace +="\
+ ${sbindir}/xen-vmtrace \
+ "
+
+# xen-vmtrace is only built for x86 4.16, so allow empty package
+ALLOW_EMPTY:${PN}-xen-vmtrace = "1"
+
+INSANE_SKIP:${PN} = "already-stripped"
# configure init.d scripts
-INITSCRIPT_PACKAGES = "${PN}-xend ${PN}-xencommons ${PN}-xen-watchdog ${PN}-xendomains ${PN}-devd"
-INITSCRIPT_NAME_${PN}-xencommons = "xencommons"
-INITSCRIPT_PARAMS_${PN}-xencommons = "defaults 80"
-INITSCRIPT_NAME_${PN}-xen-watchdog = "xen-watchdog"
-INITSCRIPT_PARAMS_${PN}-xen-watchdog = "defaults 81"
-INITSCRIPT_NAME_${PN}-xend = "xend"
-INITSCRIPT_PARAMS_${PN}-xend = "defaults 82"
-INITSCRIPT_NAME_${PN}-xendomains = "xendomains"
-INITSCRIPT_PARAMS_${PN}-xendomains = "defaults 83"
-INITSCRIPT_NAME_${PN}-devd = "xendriverdomain"
-INITSCRIPT_PARAMS_${PN}-devd = "defaults 82"
+INITSCRIPT_PACKAGES = "${PN}-xend ${PN}-xen-watchdog ${PN}-xendomains ${PN}-devd"
+INITSCRIPT_PACKAGES += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', '${PN}-xencommons', d)}"
+INITSCRIPT_NAME:${PN}-xencommons = "xencommons"
+INITSCRIPT_PARAMS:${PN}-xencommons = "defaults 80"
+INITSCRIPT_NAME:${PN}-xen-watchdog = "xen-watchdog"
+INITSCRIPT_PARAMS:${PN}-xen-watchdog = "defaults 81"
+INITSCRIPT_NAME:${PN}-xend = "xend"
+INITSCRIPT_PARAMS:${PN}-xend = "defaults 82"
+INITSCRIPT_NAME:${PN}-xendomains = "xendomains"
+INITSCRIPT_PARAMS:${PN}-xendomains = "defaults 83"
+INITSCRIPT_NAME:${PN}-devd = "xendriverdomain"
+INITSCRIPT_PARAMS:${PN}-devd = "defaults 82"
# systemd packages
SYSTEMD_PACKAGES = "${PN}-xen-watchdog ${PN}-xencommons ${PN}-xendomains ${PN}-devd"
-SYSTEMD_SERVICE_${PN}-devd = "xendriverdomain.service"
-SYSTEMD_SERVICE_${PN}-xen-watchdog = "xen-watchdog.service"
-SYSTEMD_SERVICE_${PN}-xencommons = " \
+SYSTEMD_SERVICE:${PN}-devd = "xendriverdomain.service"
+SYSTEMD_SERVICE:${PN}-xen-watchdog = "xen-watchdog.service"
+SYSTEMD_SERVICE:${PN}-xencommons = " \
proc-xen.mount \
- var-lib-xenstored.mount \
xen-qemu-dom0-disk-backend.service \
xenconsoled.service \
xen-init-dom0.service \
xenstored.service \
"
-SYSTEMD_SERVICE_${PN}-xendomains = "xendomains.service"
+SYSTEMD_SERVICE:${PN}-xendomains = "xendomains.service"
EXTRA_OECONF += " \
--with-systemd=${systemd_unitdir}/system \
- --with-systemd-modules-load=${systemd_unitdir}/modules-load.d \
--with-initddir=${INIT_D_DIR} \
--with-sysconfig-leaf-dir=default \
--with-system-qemu=${bindir}/qemu-system-i386 \
@@ -725,12 +752,10 @@ do_configure() {
do_configure_common
}
-# Workaround when compiling with gcc-11
-EXTRA_CFLAGS_XEN_TOOLS_append = " -Wno-vla-parameter"
-
do_compile() {
cd ${S}
- oe_runmake tools EXTRA_CFLAGS_XEN_TOOLS="${EXTRA_CFLAGS_XEN_TOOLS}" PYTHON="${PYTHON}"
+ oe_runmake tools PYTHON="${PYTHON}" \
+ EXTRA_CFLAGS_XEN_TOOLS="${EXTRA_CFLAGS_XEN_TOOLS}"
}
do_install() {
@@ -781,16 +806,27 @@ do_install() {
done
fi
- # fixup default path to qemu-system-i386
- sed -i 's#\(test -z "$QEMU_XEN" && QEMU_XEN=\).*$#\1"/usr/bin/qemu-system-i386"#' ${D}/etc/init.d/xencommons
-
if [ -e ${D}${systemd_unitdir}/system/xen-qemu-dom0-disk-backend.service ]; then
sed -i 's#ExecStart=.*qemu-system-i386\(.*\)$#ExecStart=/usr/bin/qemu-system-i386\1#' \
${D}${systemd_unitdir}/system/xen-qemu-dom0-disk-backend.service
fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ rm -f ${D}/${sysconfdir}/init.d/xencommons
+ else
+ # fixup default path to qemu-system-i386
+ sed -i 's#\(test -z "$QEMU_XEN" && QEMU_XEN=\).*$#\1"/usr/bin/qemu-system-i386"#' ${D}/etc/init.d/xencommons
+
+ # remove the uncondiontally installed systemd service files
+ rm -f ${D}/${systemd_unitdir}/system/xen-qemu-dom0-disk-backend.service
+ rm -f ${D}/${systemd_unitdir}/system/xenconsoled.service
+ rm -f ${D}/${systemd_unitdir}/system/xen-init-dom0.service
+ rm -f ${D}/${systemd_unitdir}/system/xenstored.service
+ rm -f ${D}/${systemd_unitdir}/system/var-lib-xenstored.mount
+ fi
}
-pkg_postinst_${PN}-volatiles() {
+pkg_postinst:${PN}-volatiles() {
if [ -z "$D" ]; then
if command -v systemd-tmpfiles >/dev/null; then
systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/xen.conf
diff --git a/recipes-extended/xen/xen-tools_4.14.bb b/recipes-extended/xen/xen-tools_4.14.bb
deleted file mode 100644
index 10982a2c..00000000
--- a/recipes-extended/xen/xen-tools_4.14.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SRCREV ?= "ad844aa352559a8b1f36e391a27d9d7dbddbdc36"
-
-XEN_REL ?= "4.14"
-XEN_BRANCH ?= "stable-${XEN_REL}"
-
-SRC_URI = " \
- git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
- file://0001-python-pygrub-pass-DISTUTILS-xen-4.14.patch \
- file://0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch \
- file://0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch \
- "
-
-LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5"
-
-PV = "${XEN_REL}+stable${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-require xen.inc
-require xen-tools.inc
diff --git a/recipes-extended/xen/xen-tools_4.15.bb b/recipes-extended/xen/xen-tools_4.15.bb
deleted file mode 100644
index 314dc52e..00000000
--- a/recipes-extended/xen/xen-tools_4.15.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SRCREV ?= "e25aa9939ae0cd8317605be3d5c5611b76bc4ab4"
-
-XEN_REL ?= "4.15"
-XEN_BRANCH ?= "stable-${XEN_REL}"
-
-SRC_URI = " \
- git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
- file://0001-python-pygrub-pass-DISTUTILS-xen-4.15.patch \
- "
-
-LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5"
-
-PV = "${XEN_REL}+stable${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-require xen.inc
-require xen-tools.inc
diff --git a/recipes-extended/xen/xen-tools_4.17.bb b/recipes-extended/xen/xen-tools_4.17.bb
new file mode 100644
index 00000000..72deed01
--- /dev/null
+++ b/recipes-extended/xen/xen-tools_4.17.bb
@@ -0,0 +1,19 @@
+# xen 4.17.2 release sha
+SRCREV ?= "0ebd2e49bcd0f566ba6b9158555942aab8e41332"
+
+XEN_REL ?= "4.17"
+XEN_BRANCH ?= "stable-${XEN_REL}"
+
+SRC_URI = "git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
+ file://0001-python-pygrub-pass-DISTUTILS-xen-4.15.patch \
+ file://0001-tools-xenstore-xenstored_control.c-correctly-print-t.patch \
+ "
+
+LIC_FILES_CHKSUM ?= "file://COPYING;md5=d1a1e216f80b6d8da95fec897d0dbec9"
+
+PV = "${XEN_REL}+stable"
+
+S = "${WORKDIR}/git"
+
+require xen.inc
+require xen-tools.inc
diff --git a/recipes-extended/xen/xen-tools_4.18.bb b/recipes-extended/xen/xen-tools_4.18.bb
new file mode 100644
index 00000000..5dbe180a
--- /dev/null
+++ b/recipes-extended/xen/xen-tools_4.18.bb
@@ -0,0 +1,21 @@
+# tag: RELEASE-4.18.0
+SRCREV ?= "4da8ca9cb9cfdb92c9dd09d5270ae16a3b2dbc89"
+
+XEN_REL ?= "4.18"
+XEN_BRANCH ?= "stable-4.18"
+
+SRC_URI = " \
+ git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
+ file://0001-python-pygrub-pass-DISTUTILS-xen-4.18.patch \
+ "
+
+LIC_FILES_CHKSUM ?= "file://COPYING;md5=d1a1e216f80b6d8da95fec897d0dbec9"
+
+PV = "${XEN_REL}+stable"
+
+S = "${WORKDIR}/git"
+
+DEFAULT_PREFERENCE ??= "-1"
+
+require xen.inc
+require xen-tools.inc
diff --git a/recipes-extended/xen/xen-tools_git.bb b/recipes-extended/xen/xen-tools_git.bb
index 0188bddf..8397178e 100644
--- a/recipes-extended/xen/xen-tools_git.bb
+++ b/recipes-extended/xen/xen-tools_git.bb
@@ -1,16 +1,17 @@
-SRCREV ?= "e680cc48b7184d3489873d6776f84ba1fc238ced"
+# master status on 2023-05-26
+SRCREV ?= "03cf7ca23e0e876075954c558485b267b7d02406"
-XEN_REL ?= "4.16"
+XEN_REL ?= "4.18"
XEN_BRANCH ?= "master"
SRC_URI = " \
git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
- file://0001-python-pygrub-pass-DISTUTILS-xen-4.15.patch \
+ file://0001-python-pygrub-pass-DISTUTILS-xen-4.18.patch \
"
-LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5"
+LIC_FILES_CHKSUM ?= "file://COPYING;md5=d1a1e216f80b6d8da95fec897d0dbec9"
-PV = "${XEN_REL}+git${SRCPV}"
+PV = "${XEN_REL}+git"
S = "${WORKDIR}/git"
diff --git a/recipes-extended/xen/xen.inc b/recipes-extended/xen/xen.inc
index 2fbdb3a4..dcd281b5 100644
--- a/recipes-extended/xen/xen.inc
+++ b/recipes-extended/xen/xen.inc
@@ -1,21 +1,20 @@
HOMEPAGE = "http://xen.org"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
SECTION = "console/tools"
-inherit autotools-brokensep
+TOOLCHAIN = "gcc"
+
+inherit autotools-brokensep pkgconfig
require xen-arch.inc
PACKAGECONFIG ??= " \
- sdl \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
- ${@bb.utils.contains('XEN_TARGET_ARCH', 'x86_64', 'hvm', '', d)} \
"
-PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,virtual/libsdl,"
+PACKAGECONFIG[lzo] = ",,lzo"
PACKAGECONFIG[xsm] = "--enable-xsmpolicy,--disable-xsmpolicy,checkpolicy-native,"
PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd,"
-PACKAGECONFIG[hvm] = "--with-system-seabios="/usr/share/firmware/bios.bin",--disable-seabios,seabios ipxe vgabios,"
PACKAGECONFIG[externalblktap] = ",,,"
DEPENDS = " \
@@ -43,7 +42,6 @@ DEPENDS = " \
procps \
python3 \
libaio \
- lzo \
util-linux \
xz \
yajl \
@@ -90,8 +88,19 @@ export CROSS_COMPILE="${TARGET_PREFIX}"
# overide LDFLAGS to allow xen to build without: "x86_64-oe-linux-ld: unrecognized option '-Wl,-O1'"
export LDFLAGS=""
-# Pass through the Yocto distro compiler flags via the Xen-provided variables.
-# Special handling:
+# No additional C flags for the main hypervisor build
+EXTRA_CFLAGS_XEN_CORE ?= ""
+# Add prefix maps to support buildpaths QA test and reproducibility
+DEBUG_PREFIX_MAP:append = " \
+ -ffile-prefix-map=${S}=${PN}-source \
+ -fdebug-prefix-map=${WORKDIR}=${PN} \
+ "
+
+# - The Xen tools build for x86 systems with HVM-mode enabled includes hvmloader
+# which fails to build when "-m64" is included in flags set via the
+# EXTRA_CFLAGS_XEN_TOOLS: so clear TUNE_CCARGS on x86 to prevent that.
+TUNE_CCARGS:x86-64=""
+
# - Yocto supplies the _FORTIFY_SOURCE flag via CC/CPP/CXX but then passes the
# optimization -O via C*FLAGS which is problematic when the CFLAGS are cleared
# within the build because compilation fails with the compiler stating
@@ -101,18 +110,15 @@ export LDFLAGS=""
# It must not be compiled with SSE compiler options enabled and the Xen build
# explicitly clears CFLAGS to ensure that, so such options must not be passed
# in via the tool variable. hvmloader is required to run HVM-mode guest VMs.
-CC="${CCACHE}${HOST_PREFIX}gcc ${TOOLCHAIN_OPTIONS} ${CC_REPRODUCIBLE_OPTIONS}"
-EXTRA_CFLAGS_XEN_CORE="${HOST_CC_ARCH} ${CFLAGS}"
+CC="${CCACHE}${HOST_PREFIX}gcc ${TOOLCHAIN_OPTIONS} ${DEBUG_PREFIX_MAP} ${CC_REPRODUCIBLE_OPTIONS}"
EXTRA_CFLAGS_XEN_TOOLS="${HOST_CC_ARCH} ${CFLAGS}"
# 32-bit ARM needs the TUNE_CCARGS component of HOST_CC_ARCH to be passed
# in CC to ensure that configure can compile binaries for the right arch.
-CC_arm="${CCACHE}${HOST_PREFIX}gcc ${TUNE_CCARGS} ${TOOLCHAIN_OPTIONS} ${CC_REPRODUCIBLE_OPTIONS}"
-EXTRA_CFLAGS_XEN_CORE_arm="${SECURITY_CFLAGS} ${CFLAGS}"
-EXTRA_CFLAGS_XEN_TOOLS_arm="${SECURITY_CFLAGS} ${CFLAGS}"
+CC:arm="${CCACHE}${HOST_PREFIX}gcc ${TUNE_CCARGS} ${TOOLCHAIN_OPTIONS} ${DEBUG_PREFIX_MAP} ${CC_REPRODUCIBLE_OPTIONS}"
# There are no Xen-provided variables for C++, so append to the tool variables:
-CPP_append = " ${CPPFLAGS}"
-CXX_append = " ${CXXFLAGS}"
+CPP:append = " ${CPPFLAGS}"
+CXX:append = " ${CXXFLAGS}"
EXTRA_OECONF += " \
--exec-prefix=${prefix} \
@@ -125,11 +131,13 @@ EXTRA_OECONF += " \
--disable-rombios \
--disable-ocamltools \
--disable-qemu-traditional \
- ${@bb.utils.contains('XEN_TARGET_ARCH', 'x86_64', '--enable-pvshim', '--disable-pvshim', d)} \
+ ${@bb.utils.contains('XEN_TARGET_ARCH', 'x86_64', \
+ '--enable-pvshim --with-system-seabios="/usr/share/firmware/bios.bin"', \
+ '--disable-pvshim --disable-seabios', d)} \
"
-EXTRA_OEMAKE += "STDVGA_ROM=${STAGING_DIR_HOST}/usr/share/firmware/vgabios-0.7a.bin"
-EXTRA_OEMAKE += "CIRRUSVGA_ROM=${STAGING_DIR_HOST}/usr/share/firmware/vgabios-0.7a.cirrus.bin"
+EXTRA_OEMAKE += "STDVGA_ROM=${STAGING_DIR_HOST}/usr/share/firmware/vgabios-0.8a.bin"
+EXTRA_OEMAKE += "CIRRUSVGA_ROM=${STAGING_DIR_HOST}/usr/share/firmware/vgabios-0.8a.cirrus.bin"
EXTRA_OEMAKE += "SEABIOS_ROM=${STAGING_DIR_HOST}/usr/share/firmware/bios.bin"
EXTRA_OEMAKE += "ETHERBOOT_ROMS=${STAGING_DIR_HOST}/usr/share/firmware/rtl8139.rom"
@@ -151,9 +159,7 @@ EXTRA_OEMAKE += "${@['', 'XEN_WHOAMI=${PF} XEN_DOMAIN=${DISTRO} XEN_BUILD_HOST=$
[d.getVar('BUILD_REPRODUCIBLE_BINARIES') == '1']}${@get_build_time_vars(d)}"
# Improve build reproducibility: compiler flags to remove filesystem differences.
-CC_REPRODUCIBLE_OPTIONS = "${@['', '-gno-record-gcc-switches ' + \
- '-ffile-prefix-map=${S}=${PN}-source ' + \
- '-fdebug-prefix-map=${WORKDIR}=${PN}'] \
+CC_REPRODUCIBLE_OPTIONS = "${@['', '-gno-record-gcc-switches'] \
[d.getVar('BUILD_REPRODUCIBLE_BINARIES') == '1']}"
# check for XSM in package config to allow XSM_ENABLE to be set
@@ -186,12 +192,6 @@ do_post_patch() {
fi
}
-do_post_patch_append_arm() {
- # The hypervisor binary must not be built with the hard floating point ABI.
- echo "CC := \$(filter-out ${TUNE_CCARGS},\$(CC))" >> ${S}/xen/arch/arm/Rules.mk
- echo "CPP := \$(filter-out ${TUNE_CCARGS},\$(CPP))" >> ${S}/xen/arch/arm/Rules.mk
-}
-
addtask post_patch after do_patch before do_configure
# Allow all hypervisor settings in a defconfig
@@ -222,13 +222,13 @@ do_configure_common() {
PYTHON="${PYTHON}"
}
-do_compile_prepend() {
+do_compile:prepend() {
# workaround for build bug when CFLAGS is exported
# https://www.mail-archive.com/xen-devel@lists.xen.org/msg67822.html
unset CFLAGS
}
-do_install_prepend() {
+do_install:prepend() {
# CFLAGS is used to set PY_CFLAGS which affects the pygrub install
# so also need to unset CFLAGS here:
unset CFLAGS
diff --git a/recipes-extended/xen/xen_4.14.bb b/recipes-extended/xen/xen_4.14.bb
deleted file mode 100644
index 653e3b63..00000000
--- a/recipes-extended/xen/xen_4.14.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SRCREV ?= "ad844aa352559a8b1f36e391a27d9d7dbddbdc36"
-
-XEN_REL ?= "4.14"
-XEN_BRANCH ?= "stable-${XEN_REL}"
-
-SRC_URI = " \
- git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
- file://xen-arm64-implement-atomic-fetch-add.patch \
- file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch \
- "
-
-LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5"
-
-PV = "${XEN_REL}+stable${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-require xen.inc
-require xen-hypervisor.inc
diff --git a/recipes-extended/xen/xen_4.15.bb b/recipes-extended/xen/xen_4.17.bb
index 2842c0af..d83fa97f 100644
--- a/recipes-extended/xen/xen_4.15.bb
+++ b/recipes-extended/xen/xen_4.17.bb
@@ -1,19 +1,22 @@
-SRCREV ?= "e25aa9939ae0cd8317605be3d5c5611b76bc4ab4"
+# xen 4.17.2 release sha
+SRCREV ?= "0ebd2e49bcd0f566ba6b9158555942aab8e41332"
-XEN_REL ?= "4.15"
+XEN_REL ?= "4.17"
XEN_BRANCH ?= "stable-${XEN_REL}"
SRC_URI = " \
git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
- file://xen-arm64-implement-atomic-fetch-add.patch \
file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch \
"
-LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5"
+LIC_FILES_CHKSUM ?= "file://COPYING;md5=d1a1e216f80b6d8da95fec897d0dbec9"
-PV = "${XEN_REL}+stable${SRCPV}"
+PV = "${XEN_REL}+stable"
S = "${WORKDIR}/git"
require xen.inc
require xen-hypervisor.inc
+
+TOOLCHAIN = "gcc"
+LDFLAGS:remove = "-fuse-ld=lld"
diff --git a/recipes-extended/xen/xen_4.18.bb b/recipes-extended/xen/xen_4.18.bb
new file mode 100644
index 00000000..2ad7704e
--- /dev/null
+++ b/recipes-extended/xen/xen_4.18.bb
@@ -0,0 +1,21 @@
+# tag: RELEASE-4.18.0
+SRCREV ?= "4da8ca9cb9cfdb92c9dd09d5270ae16a3b2dbc89"
+
+XEN_REL ?= "4.18"
+XEN_BRANCH ?= "stable-4.18"
+
+SRC_URI = " \
+ git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
+ file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch \
+ "
+
+LIC_FILES_CHKSUM ?= "file://COPYING;md5=d1a1e216f80b6d8da95fec897d0dbec9"
+
+PV = "${XEN_REL}+stable"
+
+S = "${WORKDIR}/git"
+
+DEFAULT_PREFERENCE ??= "-1"
+
+require xen.inc
+require xen-hypervisor.inc
diff --git a/recipes-extended/xen/xen_git.bb b/recipes-extended/xen/xen_git.bb
index eaf39566..79078878 100644
--- a/recipes-extended/xen/xen_git.bb
+++ b/recipes-extended/xen/xen_git.bb
@@ -1,17 +1,17 @@
-SRCREV ?= "e680cc48b7184d3489873d6776f84ba1fc238ced"
+# master status on 2023-11-24
+SRCREV ?= "03cf7ca23e0e876075954c558485b267b7d02406"
-XEN_REL ?= "4.16"
+XEN_REL ?= "4.19"
XEN_BRANCH ?= "master"
SRC_URI = " \
git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
- file://xen-arm64-implement-atomic-fetch-add.patch \
file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch \
"
-LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5"
+LIC_FILES_CHKSUM ?= "file://COPYING;md5=d1a1e216f80b6d8da95fec897d0dbec9"
-PV = "${XEN_REL}+git${SRCPV}"
+PV = "${XEN_REL}+git"
S = "${WORKDIR}/git"
diff --git a/recipes-extended/xen/xtf_git.bb b/recipes-extended/xen/xtf_git.bb
index 35803241..f1e76f7b 100644
--- a/recipes-extended/xen/xtf_git.bb
+++ b/recipes-extended/xen/xtf_git.bb
@@ -5,14 +5,14 @@ LICENSE = "BSD-2-Clause"
# For additional reference on XTF, please see:
# https://static.sched.com/hosted_files/xendeveloperanddesignsummit2017/79/xtf.pdf
-SRC_URI = "git://xenbits.xen.org/xtf"
-SRCREV = "b0bc49846c154b79243f39d461a4515804bcaf53"
+SRC_URI = "git://xenbits.xen.org/xtf;branch=master"
+SRCREV = "3e800027016ea4eb19887bf626b46f45fc43fa5d"
COMPATIBLE_HOST = '(x86_64.*).*-linux'
LIC_FILES_CHKSUM = "file://COPYING;md5=a5680865974e05cf0510615ee1d745d8"
-PV = "0+git${SRCPV}"
+PV = "0+git"
S = "${WORKDIR}/git"
@@ -20,18 +20,19 @@ inherit python3native
PACKAGES = "${PN}"
-FILES_${PN} = " \
+FILES:${PN} = " \
${libexecdir}/* \
"
-RDEPENDS_${PN} = " \
+RDEPENDS:${PN} = " \
xen-tools-xl \
python3 \
"
do_compile() {
- oe_runmake CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}" \
+ oe_runmake CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS} ${DEBUG_PREFIX_MAP}" \
CPP="${CPP}" \
+ LD="${LD}" \
OBJCOPY="${OBJCOPY}" \
PYTHON="${PYTHON}"
# switch the shebang to python3
@@ -50,6 +51,6 @@ do_install() {
INSANE_SKIP = "arch"
# xen-tools-xl is a runtime but not build time dependency
-INSANE_SKIP_${PN} = "build-deps"
+INSANE_SKIP:${PN} = "build-deps"
INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
diff --git a/recipes-extended/xvisor/files/0001-EMULATORS-Allow-Xvisor-to-compile-with-gcc-10.patch b/recipes-extended/xvisor/files/0001-EMULATORS-Allow-Xvisor-to-compile-with-gcc-10.patch
deleted file mode 100644
index 221a314c..00000000
--- a/recipes-extended/xvisor/files/0001-EMULATORS-Allow-Xvisor-to-compile-with-gcc-10.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 417184cc41cfd33ae7b4c11c8396e0f47f43e2ba Mon Sep 17 00:00:00 2001
-From: Jean-Christophe Dubois <jcd@tribudubois.net>
-Date: Fri, 8 May 2020 15:17:36 +0200
-Subject: [PATCH] EMULATORS: Allow Xvisor to compile with gcc 10.
-
-With gcc 10 because some header files do not declare some variable
-definition as extern, the variable get duplicated in all files
-using it.
-
-This patch allow xvisor to compile with the latest gcc.
-
-Signed-off-by: Jean-Christophe Dubois <jcd@tribudubois.net>
-Reviewed-by: Anup Patel <anup@brainfault.org>
----
- drivers/mmc/core/core.h | 2 +-
- emulators/display/drawfn.h | 10 +++++-----
- 2 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/mmc/core/core.h b/drivers/mmc/core/core.h
-index d75d135a..e2ca3141 100644
---- a/drivers/mmc/core/core.h
-+++ b/drivers/mmc/core/core.h
-@@ -64,7 +64,7 @@ int mmc_go_idle(struct mmc_host *host);
- * Note: Must be called with host->lock held.
- */
- extern struct vmm_bus sdio_bus_type;
--struct vmm_device_type sdio_func_type;
-+extern struct vmm_device_type sdio_func_type;
-
- int __sdio_attach(struct mmc_host *host);
-
-diff --git a/emulators/display/drawfn.h b/emulators/display/drawfn.h
-index f9163cff..385deaf6 100644
---- a/emulators/display/drawfn.h
-+++ b/emulators/display/drawfn.h
-@@ -69,14 +69,14 @@ typedef void (*drawfn)(struct vmm_surface *,
- DRAWFN_ORDER_MAX * \
- DRAWFN_FORMAT_MAX)
-
--drawfn drawfn_surface_fntable_8[DRAWFN_FNTABLE_SIZE];
-+extern drawfn drawfn_surface_fntable_8[DRAWFN_FNTABLE_SIZE];
-
--drawfn drawfn_surface_fntable_15[DRAWFN_FNTABLE_SIZE];
-+extern drawfn drawfn_surface_fntable_15[DRAWFN_FNTABLE_SIZE];
-
--drawfn drawfn_surface_fntable_16[DRAWFN_FNTABLE_SIZE];
-+extern drawfn drawfn_surface_fntable_16[DRAWFN_FNTABLE_SIZE];
-
--drawfn drawfn_surface_fntable_24[DRAWFN_FNTABLE_SIZE];
-+extern drawfn drawfn_surface_fntable_24[DRAWFN_FNTABLE_SIZE];
-
--drawfn drawfn_surface_fntable_32[DRAWFN_FNTABLE_SIZE];
-+extern drawfn drawfn_surface_fntable_32[DRAWFN_FNTABLE_SIZE];
-
- #endif
diff --git a/recipes-extended/xvisor/files/0001-build-use-usr-bin-env-for-python-scripts.patch b/recipes-extended/xvisor/files/0001-build-use-usr-bin-env-for-python-scripts.patch
new file mode 100644
index 00000000..1e37c49e
--- /dev/null
+++ b/recipes-extended/xvisor/files/0001-build-use-usr-bin-env-for-python-scripts.patch
@@ -0,0 +1,38 @@
+From eb351ca63a86f53cfb18987284a1445d543dfe56 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Mon, 29 Nov 2021 17:20:00 -0500
+Subject: [PATCH] build: use /usr/bin/env for python scripts
+
+Without this, we break on hosts without /usr/bin/python
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ tools/scripts/d2c.py | 2 +-
+ tools/scripts/memimg.py | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tools/scripts/d2c.py b/tools/scripts/d2c.py
+index b46a7bc4..0a6bce08 100755
+--- a/tools/scripts/d2c.py
++++ b/tools/scripts/d2c.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/env python3
+ #/**
+ # Copyright (c) 2013 Anup Patel.
+ # All rights reserved.
+diff --git a/tools/scripts/memimg.py b/tools/scripts/memimg.py
+index 423c9c33..ba2f06cb 100755
+--- a/tools/scripts/memimg.py
++++ b/tools/scripts/memimg.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/env python3
+ #/**
+ # Copyright (c) 2011 Anup Patel.
+ # All rights reserved.
+--
+2.19.1
+
diff --git a/recipes-extended/xvisor/xvisor-configs.inc b/recipes-extended/xvisor/xvisor-configs.inc
index f53bba25..cd873cb3 100644
--- a/recipes-extended/xvisor/xvisor-configs.inc
+++ b/recipes-extended/xvisor/xvisor-configs.inc
@@ -9,7 +9,7 @@ def get_oemake_config(a, d):
elif re.match('riscv32(eb|)$', a): return 'generic-32b-defconfig'
elif re.match('riscv64(eb|)$', a): return 'generic-64b-defconfig'
else:
- bb.error("cannot map '%s' to a Xvisor defconfig" % a)
+ bb.note("cannot map '%s' to a Xvisor defconfig" % a)
def map_xvisor_arch(a, d):
import re
@@ -22,4 +22,4 @@ def map_xvisor_arch(a, d):
elif re.match('aarch64_be_ilp32$', a): return 'arm'
elif re.match('riscv(32|64|)(eb|)$', a): return 'riscv'
else:
- bb.error("cannot map '%s' to a Xvisor architecture" % a)
+ bb.note("cannot map '%s' to a Xvisor architecture" % a)
diff --git a/recipes-extended/xvisor/xvisor_git.bb b/recipes-extended/xvisor/xvisor_git.bb
index 831c943b..205951e9 100644
--- a/recipes-extended/xvisor/xvisor_git.bb
+++ b/recipes-extended/xvisor/xvisor_git.bb
@@ -1,6 +1,6 @@
SUMMARY = "Xvisor is an open-source type-1 hypervisor, which aims at providing a monolithic, light-weight, portable, and flexible virtualization solution."
DESCRIPTION = "Xvisor primarily supports Full virtualization hence, supports a wide range of unmodified guest operating systems. Paravirtualization is optional for Xvisor and will be supported in an architecture independent manner (such as VirtIO PCI/MMIO devices) to ensure no-change in guest OS for using paravirtualization."
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
DEPENDS += "dtc-native dosfstools-native mtools-native"
@@ -8,11 +8,13 @@ require xvisor-configs.inc
inherit autotools-brokensep
+PV = "0.3.0+git"
+
# This version support the RISC-V v0.5.0 Hypervisor extensions
-SRCREV = "b3dac5b1f61f23f21dc59b3880897cff78f3b618"
-SRC_URI = "git://github.com/avpatel/xvisor-next.git \
+SRCREV = "6b23764a1439f9d08b2ed2f363da522460d8a22b"
+SRC_URI = "git://github.com/avpatel/xvisor-next.git;branch=master;protocol=https \
file://0001-TESTS-Don-t-specify-mabi-or-march-for-RISC-V.patch \
- file://0001-EMULATORS-Allow-Xvisor-to-compile-with-gcc-10.patch \
+ file://0001-build-use-usr-bin-env-for-python-scripts.patch \
"
S = "${WORKDIR}/git"
@@ -25,7 +27,7 @@ do_configure() {
oe_runmake ${CONFIG}
}
-do_install_append() {
+do_install:append() {
install -d ${D}
install -m 755 ${B}/build/vmm.* ${D}/
@@ -44,12 +46,12 @@ do_deploy () {
addtask deploy after do_install
-FILES_${PN} += "/vmm.*"
-FILES_${PN} += "/*.dtb"
+FILES:${PN} += "/vmm.*"
+FILES:${PN} += "/*.dtb"
COMPATIBLE_HOST = "(aarch64|riscv64|riscv32).*"
INHIBIT_PACKAGE_STRIP = "1"
# ERROR: xvisor-git-r0 do_package_qa: QA Issue: File /vmm.elf in package xvisor doesn't have GNU_HASH (didn't pass LDFLAGS?) [ldflags]
# ERROR: xvisor-git-r0 do_package_qa: QA Issue: xvisor: ELF binary /vmm.elf has relocations in .text [textrel]
-INSANE_SKIP_${PN} += "ldflags textrel"
+INSANE_SKIP:${PN} += "ldflags textrel"
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg_xen.inc b/recipes-graphics/xorg-xserver/xserver-xorg_xen.inc
index 95034045..1b7e06b2 100644
--- a/recipes-graphics/xorg-xserver/xserver-xorg_xen.inc
+++ b/recipes-graphics/xorg-xserver/xserver-xorg_xen.inc
@@ -5,9 +5,9 @@
# REMOVED_OPENGL_PKGCONFIGS = ""
XEN_REMOVED_OPENGL_PKGCONFIGS ?= "glamor"
-XEN_REMOVED_OPENGL_PKGCONFIGS_x86 = ""
-XEN_REMOVED_OPENGL_PKGCONFIGS_x86-64 = ""
+XEN_REMOVED_OPENGL_PKGCONFIGS:x86 = ""
+XEN_REMOVED_OPENGL_PKGCONFIGS:x86-64 = ""
REMOVED_OPENGL_PKGCONFIGS ?= "${@bb.utils.contains('DISTRO_FEATURES', 'xen', "${XEN_REMOVED_OPENGL_PKGCONFIGS}", '', d)}"
-OPENGL_PKGCONFIGS_remove = "${REMOVED_OPENGL_PKGCONFIGS}"
+OPENGL_PKGCONFIGS:remove = "${REMOVED_OPENGL_PKGCONFIGS}"
diff --git a/recipes-kernel/linux/linux-%.bbappend b/recipes-kernel/linux/linux-%.bbappend
index 5f315787..dbae9b14 100644
--- a/recipes-kernel/linux/linux-%.bbappend
+++ b/recipes-kernel/linux/linux-%.bbappend
@@ -4,7 +4,35 @@
LINUX_MAJOR = "${@(d.getVar('LINUX_VERSION') or "x.y").split('.')[0]}"
LINUX_MINOR = "${@(d.getVar('LINUX_VERSION') or "x.y").split('.')[1]}"
-
-KERNEL_META_TYPE = "${@'yocto' if d.getVar('SRC_URI').find('type=kmeta') > 0 else 'none'}"
+KERNEL_META_TYPE = "${@'yocto' if d.getVar('SRC_URI').find('type=kmeta') > 0 and d.getVar('SKIP_META_VIRT_KERNEL_INCLUDE') == None else 'none'}"
include ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', 'linux-${KERNEL_META_TYPE}_${LINUX_MAJOR}.${LINUX_MINOR}_virtualization.inc', '', d)}
+
+python __anonymous () {
+ # Gather the variables
+ virt_enabled = bb.utils.contains('DISTRO_FEATURES', 'virtualization', 'True', '', d )
+ skip_kernel_include_enabled = d.getVar('SKIP_META_VIRT_KERNEL_INCLUDE')
+ kmeta_type = d.getVar('SRC_URI').find('type=kmeta')
+ inhibit_skip_kernel_check_warning = d.getVar('META_VIRT_KERNEL_CHECK_WARNING_INHIBIT')
+
+ #
+ # We warn if:
+ # - the kernel has the capability of merging fragments
+ # - virtualiation is enabled
+ # - and the user has decided to force skip the include
+ #
+ # .. because they have knowingly opted-out of our tested
+ # kernel configurations, and need to be warned.
+ #
+ # BUT, it can also be annoying to get a warning when you
+ # have explcitly opted out. So we have one more warning
+ # that indicates that the impacts are understood and this
+ # really is on purpse. If META_VIRT_KERNEL_CHECK_WARNING_INHIBIT
+ # is set, we won't do the warning.
+ #
+ if virt_enabled and kmeta_type > 0 and skip_kernel_include_enabled:
+ if not inhibit_skip_kernel_check_warning:
+ bb.warn( "You have a kernel-yocto enabled kernel, but have inhibited \
+virtualization kernel features. Some runtime issues may be present in \
+your final image" )
+}
diff --git a/recipes-kernel/linux/linux-yocto-dev.bbappend b/recipes-kernel/linux/linux-yocto-dev.bbappend
deleted file mode 100644
index 20eeba95..00000000
--- a/recipes-kernel/linux/linux-yocto-dev.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-require ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', 'linux-yocto_virtualization.inc', '', d)}
diff --git a/recipes-kernel/linux/linux-yocto/cgroup-hugetlb.cfg b/recipes-kernel/linux/linux-yocto/cgroup-hugetlb.cfg
deleted file mode 100644
index 417ca249..00000000
--- a/recipes-kernel/linux/linux-yocto/cgroup-hugetlb.cfg
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-License-Identifier: MIT
-#
-# This requires CONFIG_HUGETLBFS
-
-CONFIG_CGROUP_HUGETLB=y
diff --git a/recipes-kernel/linux/linux-yocto/cgroup-hugetlb.scc b/recipes-kernel/linux/linux-yocto/cgroup-hugetlb.scc
deleted file mode 100644
index 7d1f9997..00000000
--- a/recipes-kernel/linux/linux-yocto/cgroup-hugetlb.scc
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-License-Identifier: MIT
-define KFEATURE_DESCRIPTION "Enable hugetlb cgroup"
-define KFEATURE_COMPATIBILITY all
-
-kconf non-hardware cgroup-hugetlb.cfg
diff --git a/recipes-kernel/linux/linux-yocto/docker.cfg b/recipes-kernel/linux/linux-yocto/docker.cfg
deleted file mode 100644
index 79012a6a..00000000
--- a/recipes-kernel/linux/linux-yocto/docker.cfg
+++ /dev/null
@@ -1,12 +0,0 @@
-CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_NF_NAT=m
-CONFIG_NF_CONNTRACK=y
-
-CONFIG_DM_THIN_PROVISIONING=m
-
-
-CONFIG_IP_NF_NAT=m
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-
-CONFIG_OVERLAY_FS=y
diff --git a/recipes-kernel/linux/linux-yocto/docker.scc b/recipes-kernel/linux/linux-yocto/docker.scc
deleted file mode 100644
index e317456c..00000000
--- a/recipes-kernel/linux/linux-yocto/docker.scc
+++ /dev/null
@@ -1,4 +0,0 @@
-define KFEATURE_DESCRIPTION "Enable Features needed by docker in addition to LXC features"
-define KFEATURE_COMPATIBILITY board
-
-kconf non-hardware docker.cfg
diff --git a/recipes-kernel/linux/linux-yocto/ebtables.cfg b/recipes-kernel/linux/linux-yocto/ebtables.cfg
deleted file mode 100644
index a3c514e1..00000000
--- a/recipes-kernel/linux/linux-yocto/ebtables.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-CONFIG_BRIDGE_NF_EBTABLES=m
-CONFIG_BRIDGE_EBT_T_NAT=m
diff --git a/recipes-kernel/linux/linux-yocto/ebtables.scc b/recipes-kernel/linux/linux-yocto/ebtables.scc
deleted file mode 100644
index b3895e58..00000000
--- a/recipes-kernel/linux/linux-yocto/ebtables.scc
+++ /dev/null
@@ -1,4 +0,0 @@
-define KFEATURE_DESCRIPTION "Enable ebtables support"
-define KFEATURE_COMPATIBILITY board
-
-kconf non-hardware ebtables.cfg
diff --git a/recipes-kernel/linux/linux-yocto/extra-configs.cfg b/recipes-kernel/linux/linux-yocto/extra-configs.cfg
new file mode 100644
index 00000000..a43bbcbc
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto/extra-configs.cfg
@@ -0,0 +1 @@
+# placeholder config fragment for local enable and debug \ No newline at end of file
diff --git a/recipes-kernel/linux/linux-yocto/kubernetes.cfg b/recipes-kernel/linux/linux-yocto/kubernetes.cfg
deleted file mode 100644
index c3e90d43..00000000
--- a/recipes-kernel/linux/linux-yocto/kubernetes.cfg
+++ /dev/null
@@ -1,19 +0,0 @@
-CONFIG_BLK_CGROUP=y
-CONFIG_BLK_DEV_THROTTLING=y
-CONFIG_CGROUP_PERF=y
-CONFIG_CGROUP_HUGETLB=y
-CONFIG_NET_CLS_CGROUP=y
-CONFIG_CFS_BANDWIDTH=y
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_RT_GROUP_SCHED=y
-CONFIG_IP_NF_TARGET_REDIRECT=y
-CONFIG_IP_SET=m
-CONFIG_IP_VS=y
-CONFIG_IP_VS_NFCT=y
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_RR=m
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_MARK=m
-CONFIG_NETFILTER_XT_CONNMARK=m
-
diff --git a/recipes-kernel/linux/linux-yocto/kubernetes.scc b/recipes-kernel/linux/linux-yocto/kubernetes.scc
deleted file mode 100644
index 1e93b704..00000000
--- a/recipes-kernel/linux/linux-yocto/kubernetes.scc
+++ /dev/null
@@ -1,2 +0,0 @@
-include docker.scc
-kconf non-hardware kubernetes.cfg
diff --git a/recipes-kernel/linux/linux-yocto/lxc.cfg b/recipes-kernel/linux/linux-yocto/lxc.cfg
deleted file mode 100644
index e195c15b..00000000
--- a/recipes-kernel/linux/linux-yocto/lxc.cfg
+++ /dev/null
@@ -1,32 +0,0 @@
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CPUSETS=y
-CONFIG_PROC_PID_CPUSET=y
-CONFIG_MEMCG=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-
-CONFIG_NET_CLS_CGROUP=m
-CONFIG_BLK_CGROUP=y
-CONFIG_CGROUP_NET_PRIO=y
-
-# Virtual drivers
-CONFIG_HVC_DRIVER=y
-
-# Base support for live boot
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_VFAT_FS=y
-CONFIG_RD_GZIP=y
-
-# Support for virtual ethernet and LXC
-CONFIG_VETH=y
-CONFIG_MACVLAN=y
-CONFIG_VXLAN=m
diff --git a/recipes-kernel/linux/linux-yocto/lxc.scc b/recipes-kernel/linux/linux-yocto/lxc.scc
deleted file mode 100644
index ee518835..00000000
--- a/recipes-kernel/linux/linux-yocto/lxc.scc
+++ /dev/null
@@ -1,4 +0,0 @@
-define KFEATURE_DESCRIPTION "Enable Features needed by LxC, namespaces, cgroups et.c."
-define KFEATURE_COMPATIBILITY board
-
-kconf non-hardware lxc.cfg
diff --git a/recipes-kernel/linux/linux-yocto/vswitch.cfg b/recipes-kernel/linux/linux-yocto/vswitch.cfg
deleted file mode 100644
index b1fefc0c..00000000
--- a/recipes-kernel/linux/linux-yocto/vswitch.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-CONFIG_OPENVSWITCH=m
-CONFIG_NET_SCH_INGRESS=m
-CONFIG_NET_ACT_POLICE=m
diff --git a/recipes-kernel/linux/linux-yocto/vswitch.scc b/recipes-kernel/linux/linux-yocto/vswitch.scc
deleted file mode 100644
index 2790b4fe..00000000
--- a/recipes-kernel/linux/linux-yocto/vswitch.scc
+++ /dev/null
@@ -1,4 +0,0 @@
-define KFEATURE_DESCRIPTION "Enable in kernel OpenvSwitch module"
-define KFEATURE_COMPATIBILITY board
-
-kconf non-hardware vswitch.cfg
diff --git a/recipes-kernel/linux/linux-yocto/xen.cfg b/recipes-kernel/linux/linux-yocto/xen.cfg
deleted file mode 100644
index af821d2f..00000000
--- a/recipes-kernel/linux/linux-yocto/xen.cfg
+++ /dev/null
@@ -1,49 +0,0 @@
-CONFIG_HYPERVISOR_GUEST=y
-CONFIG_PARAVIRT=y
-CONFIG_XEN=y
-CONFIG_XEN_DOM0=y
-CONFIG_XEN_PVHVM=y
-CONFIG_XEN_SAVE_RESTORE=y
-# CONFIG_XEN_DEBUG_FS is not set
-CONFIG_XEN_PVH=y
-CONFIG_MMU_NOTIFIER=y
-CONFIG_HIBERNATE_CALLBACKS=y
-CONFIG_PCI_XEN=y
-CONFIG_XEN_PCIDEV_FRONTEND=y
-CONFIG_SYS_HYPERVISOR=y
-CONFIG_XEN_BLKDEV_FRONTEND=y
-CONFIG_XEN_BLKDEV_BACKEND=m
-CONFIG_XEN_SCSI_FRONTEND=m
-CONFIG_XEN_NETDEV_FRONTEND=y
-CONFIG_XEN_NETDEV_BACKEND=m
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
-CONFIG_HVC_IRQ=y
-CONFIG_HVC_XEN=y
-CONFIG_HVC_XEN_FRONTEND=y
-CONFIG_XEN_WDT=m
-CONFIG_FB_SYS_FILLRECT=y
-CONFIG_FB_SYS_COPYAREA=y
-CONFIG_FB_SYS_IMAGEBLIT=y
-CONFIG_FB_SYS_FOPS=y
-CONFIG_FB_DEFERRED_IO=y
-CONFIG_XEN_FBDEV_FRONTEND=y
-CONFIG_XEN_BALLOON=y
-CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
-CONFIG_XEN_DEV_EVTCHN=y
-CONFIG_XEN_BACKEND=y
-CONFIG_XENFS=y
-CONFIG_XEN_COMPAT_XENFS=y
-CONFIG_XEN_SYS_HYPERVISOR=y
-CONFIG_XEN_XENBUS_FRONTEND=y
-CONFIG_XEN_GNTDEV=m
-CONFIG_XEN_GRANT_DEV_ALLOC=m
-CONFIG_SWIOTLB_XEN=y
-CONFIG_XEN_PCIDEV_BACKEND=m
-CONFIG_XEN_PRIVCMD=y
-CONFIG_XEN_ACPI_PROCESSOR=m
-CONFIG_XEN_MCE_LOG=y
-CONFIG_XEN_HAVE_PVMMU=y
-CONFIG_XEN_EFI=y
-CONFIG_XEN_AUTO_XLATE=y
-CONFIG_XEN_ACPI=y
diff --git a/recipes-kernel/linux/linux-yocto/xen.scc b/recipes-kernel/linux/linux-yocto/xen.scc
deleted file mode 100644
index b588e5df..00000000
--- a/recipes-kernel/linux/linux-yocto/xen.scc
+++ /dev/null
@@ -1,4 +0,0 @@
-define KFEATURE_DESCRIPTION "Xen Kernel Support"
-define KFEATURE_COMPATIBILITY arch
-
-kconf non-hardware xen.cfg
diff --git a/recipes-kernel/linux/linux-yocto/xt-checksum.cfg b/recipes-kernel/linux/linux-yocto/xt-checksum.cfg
deleted file mode 100644
index 58afbff6..00000000
--- a/recipes-kernel/linux/linux-yocto/xt-checksum.cfg
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
diff --git a/recipes-kernel/linux/linux-yocto/xt-checksum.scc b/recipes-kernel/linux/linux-yocto/xt-checksum.scc
deleted file mode 100644
index d3804f0c..00000000
--- a/recipes-kernel/linux/linux-yocto/xt-checksum.scc
+++ /dev/null
@@ -1,4 +0,0 @@
-define KFEATURE_DESCRIPTION "Add extra iptables modules"
-define KFEATURE_COMPATIBILITY board
-
-kconf non-hardware xt-checksum.cfg
diff --git a/recipes-kernel/linux/linux-yocto_5.4_virtualization.inc b/recipes-kernel/linux/linux-yocto_5.4_virtualization.inc
deleted file mode 100644
index 59311487..00000000
--- a/recipes-kernel/linux/linux-yocto_5.4_virtualization.inc
+++ /dev/null
@@ -1,4 +0,0 @@
-# include the baseline meta virtualization configuration options
-# after this include, we can do version specific things
-
-include linux-yocto_virtualization.inc
diff --git a/recipes-kernel/linux/linux-yocto_5.10_virtualization.inc b/recipes-kernel/linux/linux-yocto_6.6_virtualization.inc
index 59311487..59311487 100644
--- a/recipes-kernel/linux/linux-yocto_5.10_virtualization.inc
+++ b/recipes-kernel/linux/linux-yocto_6.6_virtualization.inc
diff --git a/recipes-kernel/linux/linux-yocto_virtualization.inc b/recipes-kernel/linux/linux-yocto_virtualization.inc
index 321dda20..9a6554d1 100644
--- a/recipes-kernel/linux/linux-yocto_virtualization.inc
+++ b/recipes-kernel/linux/linux-yocto_virtualization.inc
@@ -1,25 +1,61 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/linux-yocto:"
+FILESEXTRAPATHS:prepend := "${THISDIR}/linux-yocto:"
-SRC_URI += "file://xt-checksum.scc \
- file://ebtables.scc \
- file://vswitch.scc \
- file://lxc.scc \
- file://docker.scc \
- file://cgroup-hugetlb.scc \
- "
-KERNEL_FEATURES_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'kvm', 'features/kvm/qemu-kvm-enable.scc', '', d)}"
+KERNEL_FEATURES:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'kvm', ' features/kvm/qemu-kvm-enable.scc', '', d)}"
KERNEL_MODULE_AUTOLOAD += "nf_conntrack_ipv6 openvswitch"
KERNEL_MODULE_AUTOLOAD += "${@bb.utils.contains('DISTRO_FEATURES', 'kvm', 'kvm', '', d)}"
# aufs kernel support required for xen-image-minimal
-KERNEL_FEATURES_append += "${@bb.utils.contains('DISTRO_FEATURES', 'aufs', ' features/aufs/aufs-enable.scc', '', d)}"
+KERNEL_FEATURES:append = "${@bb.utils.contains('DISTRO_FEATURES', 'aufs', ' features/aufs/aufs-enable.scc', '', d)}"
-KERNEL_FEATURES_append = " cfg/virtio.scc"
+# Always add a local/layer fragment for easy debug and enabling of options
+SRC_URI += "file://extra-configs.cfg"
+
+# if the kernel-yocto meta-data routine automatically starts to add the
+# recipe-sysroot-native, we can do away with this conditional, since all
+# features will be found at the same relative offset from a search
+# directory
+def kernel_cache_cond_feature(src_uri,feature):
+ import re
+ kernel_cache = re.search("kernel-cache", src_uri )
+ if kernel_cache:
+ return feature
+
+ return "../recipe-sysroot-native/kcfg/" + feature
+
+# no conditional, just use the yocto-kernel-cache addition, yes
+# the src_uri isn't used, but we may need to check it in the future
+def kernel_cache_feature(src_uri,feature):
+ return "../recipe-sysroot-native/kcfg/" + feature
+
+def distro_cond_feature(feature_fragment,distro_feature,d):
+ import bb
+ feat = kernel_cache_feature("",feature_fragment)
+ return bb.utils.contains('DISTRO_FEATURES', distro_feature, ' ' + feat, ' ', d)
+
+KERNEL_CACHE_FEATURES ?= "${@kernel_cache_feature(d.getVar('SRC_URI'),'cfg/virtio.scc')} \
+ ${@kernel_cache_feature(d.getVar('SRC_URI'),'cfg/xt-checksum.scc')} \
+ ${@kernel_cache_feature(d.getVar('SRC_URI'),'cfg/vswitch.scc')} \
+ ${@kernel_cache_feature(d.getVar('SRC_URI'),'cfg/lxc.scc')} \
+ ${@kernel_cache_feature(d.getVar('SRC_URI'),'cfg/docker.scc')} \
+ ${@kernel_cache_feature(d.getVar('SRC_URI'),'cfg/cgroup-hugetlb.scc')} \
+ ${@kernel_cache_feature(d.getVar('SRC_URI'),'cfg/criu.scc')} \
+ "
+KERNEL_FEATURES:append = " ${KERNEL_CACHE_FEATURES}"
+
+# if kernel-yocto has been inherited (how we can check for configuration
+# fragment merging suport at the moment, then add a dependency on the
+# configuration fragment repository. This allows us to be sure that our
+# features can be enabled via the fragments
+do_kernel_metadata[depends] += "${@['', 'yocto-cfg-fragments-native:do_populate_sysroot'][(bb.data.inherits_class('kernel-yocto', d))]}"
# xen kernel support
-SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' file://xen.scc', '', d)}"
+# SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' file://xen.scc', '', d)}"
+KERNEL_FEATURES:append = "${@distro_cond_feature('cfg/xen.scc', 'xen', d )}"
# k8s and k3s kernel support
-SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'k8s', ' file://kubernetes.scc', '', d)}"
-SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'k3s', ' file://kubernetes.scc', '', d)}" \ No newline at end of file
+# SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'k8s', ' file://kubernetes.scc', '', d)}"
+# SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'k3s', ' file://kubernetes.scc', '', d)}"
+KERNEL_FEATURES:append = "${@distro_cond_feature('cfg/kubernetes.scc', 'k8s', d )}"
+KERNEL_FEATURES:append = "${@distro_cond_feature('cfg/kubernetes.scc', 'k3s', d )}"
+
diff --git a/recipes-kernel/linux/yocto-cfg-fragments.bb b/recipes-kernel/linux/yocto-cfg-fragments.bb
new file mode 100644
index 00000000..e6815715
--- /dev/null
+++ b/recipes-kernel/linux/yocto-cfg-fragments.bb
@@ -0,0 +1,37 @@
+HOMEPAGE = "https://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/"
+SUMMARY = "Kernel configuration fragments"
+DESCRIPTION = "Typically used as part of a kernel clone, this is the standalone \
+fragment repository. Making it available to other fragment management schemes \
+"
+SECTION = "devel"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+INHIBIT_DEFAULT_DEPS = "1"
+
+LINUX_VERSION ?= "6.6"
+PV = "v${LINUX_VERSION}+git${SRCREV}"
+
+SRCREV = "eb283ea577df80542d48f0c498365960b4c4ecd9"
+SRC_URI = "\
+ git://git.yoctoproject.org/yocto-kernel-cache;branch=yocto-${LINUX_VERSION} \
+ "
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ install -d ${D}${base_prefix}/kcfg
+
+ # copy the configuration fragments over to the native deploy
+ cp -r ${S}/* ${D}${base_prefix}/kcfg
+ # scripts bring in a bash dependency we don't want
+ rm -rf ${D}${base_prefix}/kcfg/scripts
+}
+
+FILES:${PN} += "kcfg/"
+SYSROOT_DIRS += "${base_prefix}/kcfg"
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/recipes-kernel/lopper/lopper_git.bb b/recipes-kernel/lopper/lopper_git.bb
new file mode 100644
index 00000000..5e2ca69a
--- /dev/null
+++ b/recipes-kernel/lopper/lopper_git.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Device Tree Lopper"
+DESCRIPTION = "Tool for manipulation of system device tree files"
+LICENSE = "BSD-3-Clause"
+SECTION = "bootloader"
+
+SRC_URI = "git://github.com/devicetree-org/lopper.git;branch=master;protocol=https"
+SRCREV = "9159040dab25e2f1e7b447fcbfcd5397b1d618e8"
+S = "${WORKDIR}/git"
+
+BASEVERSION = "1.0.2"
+PV = "v${BASEVERSION}+git"
+
+PYPA_WHEEL = "${PIP_INSTALL_DIST_PATH}/${BPN}-${BASEVERSION}-*.whl"
+
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=8e5f5f691f01c9fdfa7a7f2d535be619"
+
+RDEPENDS:${PN} = " \
+ python3-core \
+ python3-dtc \
+ python3-humanfriendly \
+ "
+
+inherit setuptools3
+
+INHIBIT_PACKAGE_STRIP = "1"
+
+do_install:append() {
+ # we have to remove the vendor'd libfdt, since an attempt to strip it
+ # will be made, and it will fail in a cross environment.
+ rm -rf ${D}/${PYTHON_SITEPACKAGES_DIR}/${BPN}/vendor
+}
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/recipes-networking/cni/README.md b/recipes-networking/cni/README.md
new file mode 100644
index 00000000..3f5f6401
--- /dev/null
+++ b/recipes-networking/cni/README.md
@@ -0,0 +1,3 @@
+# CNI debug tip:
+
+CNI_PATH=/opt/cni/bin /opt/cni/bin/cnitool add uniquename /var/run/netns/testingns \ No newline at end of file
diff --git a/recipes-networking/cni/cni_git.bb b/recipes-networking/cni/cni_git.bb
index f7bead08..fda7af60 100644
--- a/recipes-networking/cni/cni_git.bb
+++ b/recipes-networking/cni/cni_git.bb
@@ -9,35 +9,58 @@ Because of this focus, CNI has a wide range of support and the specification \
is simple to implement. \
"
-SRCREV_cni = "b5ab16f010e822936eb974690ecec38ba69afc01"
-# Version 0.8.5
-SRCREV_plugins = "fa48f7515b50272b7106702a662fadbf2ead3d18"
+SRCREV_cni = "b62753aa2bfa365c1ceaff6f25774a8047c896b5"
+SRCREV_plugins = "b6a0e0bc96906f0d3bd6bfcaab0b5ae72292f46c"
+SRCREV_flannel_plugin = "6464faacf5c00e25321573225d74638455ef03a0"
+SRCREV_FORMAT = "cni_plugins"
SRC_URI = "\
- git://github.com/containernetworking/cni.git;nobranch=1;name=cni \
- git://github.com/containernetworking/plugins.git;nobranch=1;destsuffix=${S}/src/github.com/containernetworking/plugins;name=plugins \
+ git://github.com/containernetworking/cni.git;branch=main;name=cni;protocol=https \
+ git://github.com/containernetworking/plugins.git;branch=main;destsuffix=${S}/src/github.com/containernetworking/plugins;name=plugins;protocol=https \
+ git://github.com/flannel-io/cni-plugin;branch=main;name=flannel_plugin;protocol=https;destsuffix=${S}/src/github.com/containernetworking/plugins/plugins/meta/flannel \
+ file://modules.txt \
"
-RPROVIDES_${PN} += "kubernetes-cni"
+# generated via:
+# ./scripts/oe-go-mod-autogen.py --repo https://github.com/containernetworking/cni.git --rev <insert your rev here>
+include src_uri.inc
+
+DEPENDS = " \
+ rsync-native \
+ "
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc"
GO_IMPORT = "import"
-PV = "v0.8.0+git${SRCREV_cni}"
+PV = "v1.2.0-rc0+git${SRCREV_cni}"
inherit go
inherit goarch
+# https://github.com/llvm/llvm-project/issues/53999
+TOOLCHAIN = "gcc"
+
+# sets the "sites" variable.
+include relocation.inc
+
do_compile() {
mkdir -p ${S}/src/github.com/containernetworking
ln -sfr ${S}/src/import ${S}/src/github.com/containernetworking/cni
+ # our copied .go files are to be used for the build
+ ln -sf vendor.copy vendor
+
+ # inform go that we know what we are doing
+ cp ${WORKDIR}/modules.txt vendor/
+
+ export GO111MODULE=off
+
cd ${B}/src/github.com/containernetworking/cni/libcni
- ${GO} build
+ ${GO} build ${GOBUILDFLAGS}
cd ${B}/src/github.com/containernetworking/cni/cnitool
- ${GO} build
+ ${GO} build ${GOBUILDFLAGS}
cd ${B}/src/github.com/containernetworking/plugins
PLUGINS="$(ls -d plugins/meta/*; ls -d plugins/ipam/*; ls -d plugins/main/* | grep -v windows)"
@@ -45,10 +68,12 @@ do_compile() {
for p in $PLUGINS; do
plugin="$(basename "$p")"
echo "building: $p"
- ${GO} build -mod=vendor -o ${B}/plugins/bin/$plugin github.com/containernetworking/plugins/$p
+ ${GO} build ${GOBUILDFLAGS} -o ${B}/plugins/bin/$plugin github.com/containernetworking/plugins/$p
done
}
+do_compile[cleandirs] = "${B}/plugins"
+
do_install() {
localbindir="${libexecdir}/cni/"
@@ -63,10 +88,10 @@ do_install() {
ln -sf ${libexecdir}/cni/ ${D}/opt/cni/bin
}
-FILES_${PN} += "${libexecdir}/cni/* /opt/cni/bin"
+FILES:${PN} += "${libexecdir}/cni/* /opt/cni/bin"
-INSANE_SKIP_${PN} += "ldflags already-stripped"
+INSANE_SKIP:${PN} += "ldflags already-stripped"
deltask compile_ptest_base
-RDEPENDS_${PN} += " ca-certificates" \ No newline at end of file
+RDEPENDS:${PN} += " ca-certificates"
diff --git a/recipes-networking/cni/files/modules.txt b/recipes-networking/cni/files/modules.txt
new file mode 100644
index 00000000..38217c96
--- /dev/null
+++ b/recipes-networking/cni/files/modules.txt
@@ -0,0 +1,26 @@
+# github.com/Masterminds/semver/v3 v3.2.1
+## explicit
+# github.com/onsi/ginkgo/v2 v2.13.2
+## explicit
+# github.com/onsi/gomega v1.30.0
+## explicit
+# github.com/vishvananda/netns v0.0.4
+## explicit
+# github.com/go-logr/logr v1.3.0
+## explicit
+# github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572
+## explicit
+# github.com/google/go-cmp v0.6.0
+## explicit
+# github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38
+## explicit
+# golang.org/x/net v0.17.0
+## explicit
+# golang.org/x/sys v0.14.0
+## explicit
+# golang.org/x/text v0.13.0
+## explicit
+# golang.org/x/tools v0.14.0
+## explicit
+# gopkg.in/yaml.v3 v3.0.1
+## explicit
diff --git a/recipes-networking/cni/relocation.inc b/recipes-networking/cni/relocation.inc
new file mode 100644
index 00000000..456e2c8a
--- /dev/null
+++ b/recipes-networking/cni/relocation.inc
@@ -0,0 +1,30 @@
+export sites="golang.org/x/net:golang.org/x/net:force \
+ golang.org/x/sys:golang.org/x/sys:force \
+ gopkg.in/yaml.v3:gopkg.in/yaml.v3:force \
+ golang.org/x/text:golang.org/x/text:force \
+ golang.org/x/tools:golang.org/x/tools:force \
+ github.com/onsi/gomega:github.com/onsi/gomega:force \
+ github.com/go-logr/logr:github.com/go-logr/logr:force \
+ github.com/google/pprof:github.com/google/pprof:force \
+ github.com/google/go-cmp:github.com/google/go-cmp:force \
+ github.com/onsi/ginkgo/v2:github.com/onsi/ginkgo/v2:force \
+ github.com/vishvananda/netns:github.com/vishvananda/netns:force \
+ github.com/go-task/slim-sprig:github.com/go-task/slim-sprig:force \
+ github.com/Masterminds/semver/v3:github.com/Masterminds/semver/v3:force"
+
+do_compile:prepend() {
+ cd ${S}/src/import
+ for s in $sites; do
+ site_dest=$(echo $s | cut -d: -f1)
+ site_source=$(echo $s | cut -d: -f2)
+ force_flag=$(echo $s | cut -d: -f3)
+ mkdir -p vendor.copy/$site_dest
+ if [ -n "$force_flag" ]; then
+ echo "[INFO] $site_dest: force copying .go files"
+ rm -rf vendor.copy/$site_dest
+ rsync -a --exclude='vendor/' --exclude='.git/' vendor.fetch/$site_source/ vendor.copy/$site_dest
+ else
+ [ -n "$(ls -A vendor.copy/$site_dest/*.go 2> /dev/null)" ] && { echo "[INFO] vendor.fetch/$site_source -> $site_dest: go copy skipped (files present)" ; true ; } || { echo "[INFO] $site_dest: copying .go files" ; rsync -a --exclude='vendor/' --exclude='.git/' vendor.fetch/$site_source/ vendor.copy/$site_dest ; }
+ fi
+ done
+}
diff --git a/recipes-networking/cni/src_uri.inc b/recipes-networking/cni/src_uri.inc
new file mode 100644
index 00000000..6cda91ab
--- /dev/null
+++ b/recipes-networking/cni/src_uri.inc
@@ -0,0 +1,65 @@
+# golang.org/x/net v0.17.0
+# [1] git ls-remote https://go.googlesource.com/net b225e7ca6dde1ef5a5ae5ce922861bda011cfabd
+SRCREV_net="b225e7ca6dde1ef5a5ae5ce922861bda011cfabd"
+SRC_URI += "git://go.googlesource.com/net;name=net;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/net"
+
+# golang.org/x/sys v0.14.0
+# [1] git ls-remote https://go.googlesource.com/sys cb378ae1ff8cd45e69d4f172df8370bc844e1f86
+SRCREV_sys="cb378ae1ff8cd45e69d4f172df8370bc844e1f86"
+SRC_URI += "git://go.googlesource.com/sys;name=sys;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/sys"
+
+# gopkg.in/yaml.v3 v3.0.1
+# [1] git ls-remote https://github.com/go-yaml/yaml f6f7691b1fdeb513f56608cd2c32c51f8194bf51
+SRCREV_yaml.v3="f6f7691b1fdeb513f56608cd2c32c51f8194bf51"
+SRC_URI += "git://github.com/go-yaml/yaml;name=yaml.v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/yaml.v3"
+
+# golang.org/x/text v0.13.0
+# [1] git ls-remote https://go.googlesource.com/text f488e191e67ed95a5b9b7b39024e5a5f5f1ffd02
+SRCREV_text="f488e191e67ed95a5b9b7b39024e5a5f5f1ffd02"
+SRC_URI += "git://go.googlesource.com/text;name=text;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/text"
+
+# golang.org/x/tools v0.14.0
+# [1] git ls-remote https://go.googlesource.com/tools 3f4194ee29d7db9b59757dfff729ef55cf89661c
+SRCREV_tools="3f4194ee29d7db9b59757dfff729ef55cf89661c"
+SRC_URI += "git://go.googlesource.com/tools;name=tools;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/tools"
+
+# github.com/onsi/gomega v1.30.0
+# [1] git ls-remote https://github.com/onsi/gomega f804ac6ada8d36164ecae0513295de8affce1245
+SRCREV_gomega="f804ac6ada8d36164ecae0513295de8affce1245"
+SRC_URI += "git://github.com/onsi/gomega;name=gomega;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/onsi/gomega"
+
+# github.com/go-logr/logr v1.3.0
+# [1] git ls-remote https://github.com/go-logr/logr 8adefbede0fe82bdee4fb8c9c9bdc7bc5d91388f
+SRCREV_logr="8adefbede0fe82bdee4fb8c9c9bdc7bc5d91388f"
+SRC_URI += "git://github.com/go-logr/logr;name=logr;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-logr/logr"
+
+# github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38
+# [1] git ls-remote https://github.com/google/pprof 94a9f03dee38882adc8bdfc42cdd6a04f8e7056e
+SRCREV_pprof="94a9f03dee38882adc8bdfc42cdd6a04f8e7056e"
+SRC_URI += "git://github.com/google/pprof;name=pprof;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/pprof"
+
+# github.com/google/go-cmp v0.6.0
+# [1] git ls-remote https://github.com/google/go-cmp c3ad8435e7bef96af35732bc0789e5a2278c6d5f
+SRCREV_go-cmp="c3ad8435e7bef96af35732bc0789e5a2278c6d5f"
+SRC_URI += "git://github.com/google/go-cmp;name=go-cmp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/go-cmp"
+
+# github.com/onsi/ginkgo/v2 v2.13.2
+# [1] git ls-remote https://github.com/onsi/ginkgo 931dc0b144749710bd085d4eb7cd4192a22972d7
+SRCREV_v2="931dc0b144749710bd085d4eb7cd4192a22972d7"
+SRC_URI += "git://github.com/onsi/ginkgo;name=v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/onsi/ginkgo/v2"
+
+# github.com/vishvananda/netns v0.0.4
+# [1] git ls-remote https://github.com/vishvananda/netns 7a452d2d15292b2bfb2a2d88e6bdeac156a761b9
+SRCREV_netns="7a452d2d15292b2bfb2a2d88e6bdeac156a761b9"
+SRC_URI += "git://github.com/vishvananda/netns;name=netns;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/vishvananda/netns"
+
+# github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572
+# [1] git ls-remote https://github.com/go-task/slim-sprig 52ccab3ef572c7e1a2c258be183f9a9296d60152
+SRCREV_slim-sprig="52ccab3ef572c7e1a2c258be183f9a9296d60152"
+SRC_URI += "git://github.com/go-task/slim-sprig;name=slim-sprig;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-task/slim-sprig"
+
+# github.com/Masterminds/semver/v3 v3.2.1
+# [1] git ls-remote https://github.com/Masterminds/semver e06051f8fcc4c8b4a4990c337b9862a2448722e5
+SRCREV_v3="e06051f8fcc4c8b4a4990c337b9862a2448722e5"
+SRC_URI += "git://github.com/Masterminds/semver;name=v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Masterminds/semver/v3"
+
diff --git a/recipes-networking/netns/netns_git.bb b/recipes-networking/netns/netns_git.bb
index da6aac21..357275c1 100644
--- a/recipes-networking/netns/netns_git.bb
+++ b/recipes-networking/netns/netns_git.bb
@@ -1,13 +1,13 @@
HOMEPAGE = "https://github.com/jfrazelle/netns"
SUMMARY = "Runc hook for setting up default bridge networking."
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=48ef0979a2bcc3fae14ff30b8a7f5dbf"
+LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=7bac31faf84a2d7e88972f562a3ebbe5"
-SRC_URI = "git://github.com/genuinetools/netns;branch=master \
+SRC_URI = "git://github.com/genuinetools/netns;branch=master;protocol=https \
file://Makefile-force-rebuilding-all-packages-to-avoid-cgo.patch \
"
-SRCREV = "9b103a19b917cc3762a33b7d78244b1d5e45ccfd"
-PV = "0.5.3"
+SRCREV = "00d5d07ab1c8afcf481ffa5958719943b6ecfde4"
+PV = "0.5.3+git"
GO_IMPORT = "import"
S = "${WORKDIR}/git"
@@ -19,7 +19,7 @@ EXTRA_OEMAKE = "GO='${GO}'"
do_compile() {
export GOARCH="${TARGET_GOARCH}"
- export GOROOT="${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/go"
+ export GOROOT="${STAGING_LIBDIR}/go"
# Setup vendor directory so that it can be used in GOPATH.
#
# Go looks in a src directory under any directory in GOPATH but netns
@@ -29,8 +29,7 @@ do_compile() {
# they are not under the src directory.
ln -sfn . "${S}/src/import/vendor/src"
mkdir -p "${S}/src/import/vendor/src/github.com/genuinetools/netns"
- ln -sfn "${S}/src/import/ipallocator" "${S}/src/import/vendor/src/github.com/genuinetools/netns/ipallocator"
- ln -sfn "${S}/src/import/version" "${S}/src/import/vendor/src/github.com/genuinetools/netns/version"
+
export GOPATH="${S}/src/import/vendor"
# Pass the needed cflags/ldflags so that cgo
@@ -38,8 +37,9 @@ do_compile() {
export CGO_ENABLED="1"
export CFLAGS=""
export LDFLAGS=""
- export CGO_CFLAGS="${BUILDSDK_CFLAGS} --sysroot=${STAGING_DIR_TARGET}"
- export CGO_LDFLAGS="${BUILDSDK_LDFLAGS} --sysroot=${STAGING_DIR_TARGET}"
+ export CGO_CFLAGS="${TARGET_CFLAGS}"
+ export CGO_LDFLAGS="${TARGET_LDFLAGS}"
+ export GOFLAGS="-mod=vendor -trimpath"
cd ${S}/src/import
# Static builds work but are not recommended. See Makefile*cgo patch.
diff --git a/recipes-networking/openvswitch/files/0001-ovs-use-run-instead-of-var-run-for-in-systemd-units.patch b/recipes-networking/openvswitch/files/0001-ovs-use-run-instead-of-var-run-for-in-systemd-units.patch
deleted file mode 100644
index f7ec3fa0..00000000
--- a/recipes-networking/openvswitch/files/0001-ovs-use-run-instead-of-var-run-for-in-systemd-units.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-From ae55fa8168b4b9692ad757c54255a89f935c587e Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Thu, 11 Mar 2021 11:35:24 +0800
-Subject: [PATCH] ovs: use /run instead of /var/run for in systemd units
-
-Upstream-Status: Pending
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- rhel/etc_logrotate.d_openvswitch | 4 ++--
- rhel/usr_lib_systemd_system_openvswitch-ipsec.service | 2 +-
- ...sr_lib_systemd_system_ovs-delete-transient-ports.service | 2 +-
- rhel/usr_lib_systemd_system_ovs-vswitchd.service.in | 6 +++---
- rhel/usr_lib_systemd_system_ovsdb-server.service | 6 +++---
- 5 files changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/rhel/etc_logrotate.d_openvswitch b/rhel/etc_logrotate.d_openvswitch
-index f4302ffbc..c0f476744 100644
---- a/rhel/etc_logrotate.d_openvswitch
-+++ b/rhel/etc_logrotate.d_openvswitch
-@@ -13,8 +13,8 @@
- missingok
- postrotate
- # Tell Open vSwitch daemons to reopen their log files
-- if [ -d /var/run/openvswitch ]; then
-- for ctl in /var/run/openvswitch/*.ctl; do
-+ if [ -d /run/openvswitch ]; then
-+ for ctl in /run/openvswitch/*.ctl; do
- ovs-appctl -t "$ctl" vlog/reopen 2>/dev/null || :
- done
- fi
-diff --git a/rhel/usr_lib_systemd_system_openvswitch-ipsec.service b/rhel/usr_lib_systemd_system_openvswitch-ipsec.service
-index d8f47af68..92dad44f9 100644
---- a/rhel/usr_lib_systemd_system_openvswitch-ipsec.service
-+++ b/rhel/usr_lib_systemd_system_openvswitch-ipsec.service
-@@ -5,7 +5,7 @@ After=openvswitch.service
-
- [Service]
- Type=forking
--PIDFile=/var/run/openvswitch/ovs-monitor-ipsec.pid
-+PIDFile=/run/openvswitch/ovs-monitor-ipsec.pid
- ExecStart=/usr/share/openvswitch/scripts/ovs-ctl \
- --ike-daemon=libreswan start-ovs-ipsec
- ExecStop=/usr/share/openvswitch/scripts/ovs-ctl stop-ovs-ipsec
-diff --git a/rhel/usr_lib_systemd_system_ovs-delete-transient-ports.service b/rhel/usr_lib_systemd_system_ovs-delete-transient-ports.service
-index 4cd4d7f57..d4d7b204b 100644
---- a/rhel/usr_lib_systemd_system_ovs-delete-transient-ports.service
-+++ b/rhel/usr_lib_systemd_system_ovs-delete-transient-ports.service
-@@ -2,7 +2,7 @@
- Description=Open vSwitch Delete Transient Ports
- After=ovsdb-server.service
- Before=ovs-vswitchd.service
--AssertPathExists=/var/run/openvswitch/db.sock
-+AssertPathExists=/run/openvswitch/db.sock
-
- [Service]
- Type=oneshot
-diff --git a/rhel/usr_lib_systemd_system_ovs-vswitchd.service.in b/rhel/usr_lib_systemd_system_ovs-vswitchd.service.in
-index f88b57cae..82748bf2d 100644
---- a/rhel/usr_lib_systemd_system_ovs-vswitchd.service.in
-+++ b/rhel/usr_lib_systemd_system_ovs-vswitchd.service.in
-@@ -4,14 +4,14 @@ After=ovsdb-server.service network-pre.target systemd-udev-settle.service
- Before=network.target network.service
- Requires=ovsdb-server.service
- ReloadPropagatedFrom=ovsdb-server.service
--AssertPathIsReadWrite=/var/run/openvswitch/db.sock
-+AssertPathIsReadWrite=/run/openvswitch/db.sock
- PartOf=openvswitch.service
-
- [Service]
- Type=forking
--PIDFile=/var/run/openvswitch/ovs-vswitchd.pid
-+PIDFile=/run/openvswitch/ovs-vswitchd.pid
- Restart=on-failure
--Environment=XDG_RUNTIME_DIR=/var/run/openvswitch
-+Environment=XDG_RUNTIME_DIR=/run/openvswitch
- EnvironmentFile=/etc/openvswitch/default.conf
- EnvironmentFile=-/etc/sysconfig/openvswitch
- EnvironmentFile=-/run/openvswitch.useropts
-diff --git a/rhel/usr_lib_systemd_system_ovsdb-server.service b/rhel/usr_lib_systemd_system_ovsdb-server.service
-index 74e5acb7f..39698f238 100644
---- a/rhel/usr_lib_systemd_system_ovsdb-server.service
-+++ b/rhel/usr_lib_systemd_system_ovsdb-server.service
-@@ -7,7 +7,7 @@ PartOf=openvswitch.service
-
- [Service]
- Type=forking
--PIDFile=/var/run/openvswitch/ovsdb-server.pid
-+PIDFile=/run/openvswitch/ovsdb-server.pid
- Restart=on-failure
- EnvironmentFile=/etc/openvswitch/default.conf
- EnvironmentFile=-/etc/sysconfig/openvswitch
-@@ -17,8 +17,8 @@ EnvironmentFile=-/run/openvswitch.useropts
- # remove openvswitch.useropts first to reload a fresh
- # OVS_USER_ID from default.conf or sysconfig.
- ExecStartPre=/bin/rm -f /run/openvswitch.useropts
--ExecStartPre=-/bin/mkdir /var/run/openvswitch /var/log/openvswitch
--ExecStartPre=-/bin/chown ${OVS_USER_ID} /var/run/openvswitch /var/log/openvswitch
-+ExecStartPre=-/bin/mkdir /run/openvswitch /var/log/openvswitch
-+ExecStartPre=-/bin/chown ${OVS_USER_ID} /run/openvswitch /var/log/openvswitch
- ExecStartPre=/bin/sh -c '/bin/echo "OVS_USER_ID=${OVS_USER_ID}" > /run/openvswitch.useropts'
- ExecStartPre=/bin/sh -c 'if [ "$${OVS_USER_ID/:*/}" != "root" ]; then /bin/echo "OVS_USER_OPT=--ovs-user=${OVS_USER_ID}" >> /run/openvswitch.useropts; fi'
- ExecStart=/usr/share/openvswitch/scripts/ovs-ctl \
---
-2.17.1
-
diff --git a/recipes-networking/openvswitch/files/openvswitch-add-ptest.patch b/recipes-networking/openvswitch/files/openvswitch-add-ptest.patch
index cb708dea..4fe3abd8 100644
--- a/recipes-networking/openvswitch/files/openvswitch-add-ptest.patch
+++ b/recipes-networking/openvswitch/files/openvswitch-add-ptest.patch
@@ -1,5 +1,7 @@
Add test-install rule to support ptest execution
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Radu Patriu <radu.patriu@enea.com>
Index: openvswitch-2.1.2/Makefile.am
diff --git a/recipes-networking/openvswitch/files/python-switch-remaining-scripts-to-use-python3.patch b/recipes-networking/openvswitch/files/python-switch-remaining-scripts-to-use-python3.patch
index 113bc91d..ffa8af0e 100644
--- a/recipes-networking/openvswitch/files/python-switch-remaining-scripts-to-use-python3.patch
+++ b/recipes-networking/openvswitch/files/python-switch-remaining-scripts-to-use-python3.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] python: switch remaining scripts to use python3
Work to remove the main openvswitch package's dependency on python 2.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
---
diff --git a/recipes-networking/openvswitch/openvswitch-git/Makefile.am-set-the-python3-interpreter-with-usr-bin.patch b/recipes-networking/openvswitch/openvswitch-git/Makefile.am-set-the-python3-interpreter-with-usr-bin.patch
new file mode 100644
index 00000000..472ecb57
--- /dev/null
+++ b/recipes-networking/openvswitch/openvswitch-git/Makefile.am-set-the-python3-interpreter-with-usr-bin.patch
@@ -0,0 +1,43 @@
+From 5053d98f6595653dc02485810fda94348b6e8a1b Mon Sep 17 00:00:00 2001
+From: Xiangyu Chen <xiangyu.chen@windriver.com>
+Date: Fri, 21 Jul 2023 08:47:51 +0000
+Subject: [PATCH] Makefile.am: set the python3 interpreter with /usr/bin/env
+
+The variable "PYTHON3" just python3, this cause the following scripts error:
+/usr/sbin/ovs-bugtool Not found the interpreter python3
+/usr/bin/ovs-pcap Not found the interpreter python3
+/usr/bin/ovs-test Not found the interpreter python3
+/usr/bin/ovs-tcpdump Not found the interpreter python3
+/usr/bin/ovs-tcpundump Not found the interpreter python3
+/usr/bin/ovs-vlan-test Not found the interpreter python3
+/usr/bin/ovs-l3ping Not found the interpreter python3
+/usr/bin/ovs-parse-backtrace Not found the interpreter python3
+/usr/bin/ovs-dpctl-top Not found the interpreter python3
+/usr/share/openvswitch/scripts/ovs-check-dead-ifs Not found the interpreter python3
+/usr/share/openvswitch/scripts/ovs-check-dead-ifs Not found the interpreter python3
+/usr/share/openvswitch/scripts/ovs-monitor-ipsec Not found the interpreter python3
+/usr/share/openvswitch/scripts/ovs-vtep Not found the interpreter python3
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 28e85d422..031bbf39c 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -154,7 +154,7 @@ SUFFIXES += .in
+ -e 's,[@]PKIDIR[@],$(PKIDIR),g' \
+ -e 's,[@]LOGDIR[@],$(LOGDIR),g' \
+ -e 's,[@]DBDIR[@],$(DBDIR),g' \
+- -e 's,[@]PYTHON3[@],$(PYTHON3),g' \
++ -e 's,[@]PYTHON3[@],/usr/bin/env $(PYTHON3),g' \
+ -e 's,[@]RUNDIR[@],$(RUNDIR),g' \
+ -e 's,[@]VERSION[@],$(VERSION),g' \
+ -e 's,[@]localstatedir[@],$(localstatedir),g' \
+--
+2.35.5
+
diff --git a/recipes-networking/openvswitch/openvswitch-git/disable_m4_check.patch b/recipes-networking/openvswitch/openvswitch-git/disable_m4_check.patch
index 711a1487..43735132 100644
--- a/recipes-networking/openvswitch/openvswitch-git/disable_m4_check.patch
+++ b/recipes-networking/openvswitch/openvswitch-git/disable_m4_check.patch
@@ -3,17 +3,19 @@ From: Amy Fong <amy.fong@windriver.com>
Date: Thu, 29 Jan 2015 09:56:03 -0500
Subject: [PATCH] Disable m4 file test where sources are built from git.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Amy Fong <amy.fong@windriver.com>
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/Makefile.am b/Makefile.am
-index ff7d70a..2fc1f13 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -187,7 +187,7 @@ CLEAN_LOCAL += clean-pycov
+Index: git/Makefile.am
+===================================================================
+--- git.orig/Makefile.am
++++ git/Makefile.am
+@@ -194,7 +194,7 @@
# If we're checked out from a Git repository, make sure that every
# file that is in Git is distributed.
@@ -21,4 +23,4 @@ index ff7d70a..2fc1f13 100644
+# ALL_LOCAL += dist-hook-git
dist-hook-git: distfiles
@if test -e $(srcdir)/.git && (git --version) >/dev/null 2>&1; then \
- (cd datapath && $(MAKE) distfiles); \
+ (cd $(srcdir) && git ls-files) | grep -v '\.gitignore$$' | \
diff --git a/recipes-networking/openvswitch/openvswitch-git/kernel_module.patch b/recipes-networking/openvswitch/openvswitch-git/kernel_module.patch
deleted file mode 100644
index 5e5a38d9..00000000
--- a/recipes-networking/openvswitch/openvswitch-git/kernel_module.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 9b7fb1346702d59af67435487254ef35940bc16a Mon Sep 17 00:00:00 2001
-From: "Hongzhi.Song" <hongzhi.song@windriver.com>
-Date: Wed, 23 Jan 2019 03:41:30 -0500
-Subject: [PATCH] datapatch/linux: Specify install path for kernel module
-
-Signed-off-by: Amy Fong <amy.fong@windriver.com>
-Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com>
----
- datapath/linux/Makefile.main.in | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/datapath/linux/Makefile.main.in b/datapath/linux/Makefile.main.in
-index 328bbfb..6dcc8d0 100644
---- a/datapath/linux/Makefile.main.in
-+++ b/datapath/linux/Makefile.main.in
-@@ -71,8 +71,8 @@ default:
- $(MAKE) -C $(KSRC) $(if @KARCH@,ARCH=@KARCH@) M=$(builddir) modules
-
- modules_install:
-- $(MAKE) -C $(KSRC) $(if @KARCH@,ARCH=@KARCH@) M=$(builddir) modules_install
-- /sbin/depmod `sed -n 's/#define UTS_RELEASE "\([^"]*\)"/\1/p' $(KSRC)/include/generated/utsrelease.h`
-+ $(MAKE) -C $(KSRC) $(if @KARCH@,ARCH=@KARCH@) M=$(builddir) modules_install INSTALL_MOD_PATH=${INSTALL_MOD_PATH}
-+ #/sbin/depmod `sed -n 's/#define UTS_RELEASE "\([^"]*\)"/\1/p' $(KSRC)/include/generated/utsrelease.h`
- endif
-
- # Much of the kernel build system in this file is derived from Intel's
---
-2.8.1
-
diff --git a/recipes-networking/openvswitch/openvswitch-git/openvswitch-add-ptest-71d553b995d0bd527d3ab1e9fbaf5a2ae34de2f3.patch b/recipes-networking/openvswitch/openvswitch-git/openvswitch-add-ptest-71d553b995d0bd527d3ab1e9fbaf5a2ae34de2f3.patch
index fc74debb..571753a5 100644
--- a/recipes-networking/openvswitch/openvswitch-git/openvswitch-add-ptest-71d553b995d0bd527d3ab1e9fbaf5a2ae34de2f3.patch
+++ b/recipes-networking/openvswitch/openvswitch-git/openvswitch-add-ptest-71d553b995d0bd527d3ab1e9fbaf5a2ae34de2f3.patch
@@ -15,6 +15,8 @@ Signed-off-by: He Zhe <zhe.he@windriver.com>
refresh patch to fix patch-fuzz warning
Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+Upstream-Status: Inappropriate [embedded specific]
---
Makefile.am | 1 +
test.mk | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
diff --git a/recipes-networking/openvswitch/openvswitch-git/systemd-create-runtime-dirs.patch b/recipes-networking/openvswitch/openvswitch-git/systemd-create-runtime-dirs.patch
index 12b9e17a..1505d47a 100644
--- a/recipes-networking/openvswitch/openvswitch-git/systemd-create-runtime-dirs.patch
+++ b/recipes-networking/openvswitch/openvswitch-git/systemd-create-runtime-dirs.patch
@@ -9,24 +9,23 @@ upstream service file uses 'chown' we will match this by using
'mkdir'. Without this the service will fail to start since these
directories won't exist.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
---
rhel/usr_lib_systemd_system_ovsdb-server.service | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/rhel/usr_lib_systemd_system_ovsdb-server.service b/rhel/usr_lib_systemd_system_ovsdb-server.service
-index 5002ddf10..74e5acb7f 100644
---- a/rhel/usr_lib_systemd_system_ovsdb-server.service
-+++ b/rhel/usr_lib_systemd_system_ovsdb-server.service
-@@ -17,7 +17,7 @@ EnvironmentFile=-/run/openvswitch.useropts
+Index: git/rhel/usr_lib_systemd_system_ovsdb-server.service
+===================================================================
+--- git.orig/rhel/usr_lib_systemd_system_ovsdb-server.service
++++ git/rhel/usr_lib_systemd_system_ovsdb-server.service
+@@ -17,7 +17,7 @@
# remove openvswitch.useropts first to reload a fresh
# OVS_USER_ID from default.conf or sysconfig.
ExecStartPre=/bin/rm -f /run/openvswitch.useropts
-
+ExecStartPre=-/bin/mkdir /var/run/openvswitch /var/log/openvswitch
- ExecStartPre=-/bin/chown ${OVS_USER_ID} /var/run/openvswitch /var/log/openvswitch
+ ExecStartPre=-/bin/chown ${OVS_USER_ID} /run/openvswitch /var/log/openvswitch
ExecStartPre=/bin/sh -c '/bin/echo "OVS_USER_ID=${OVS_USER_ID}" > /run/openvswitch.useropts'
ExecStartPre=/bin/sh -c 'if [ "$${OVS_USER_ID/:*/}" != "root" ]; then /bin/echo "OVS_USER_OPT=--ovs-user=${OVS_USER_ID}" >> /run/openvswitch.useropts; fi'
---
-2.17.1
-
diff --git a/recipes-networking/openvswitch/openvswitch-git/systemd-update-tool-paths.patch b/recipes-networking/openvswitch/openvswitch-git/systemd-update-tool-paths.patch
index be6fa5d9..7fe0236e 100644
--- a/recipes-networking/openvswitch/openvswitch-git/systemd-update-tool-paths.patch
+++ b/recipes-networking/openvswitch/openvswitch-git/systemd-update-tool-paths.patch
@@ -6,17 +6,19 @@ Subject: [PATCH 1/2] systemd: update tool paths
We are using the rhel files but we install our tools in a slightly
different path, update accordingly.
+Upstream-Status: Inappropriate [embedded specific]
+
Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
---
rhel/usr_lib_systemd_system_ovs-vswitchd.service.in | 4 ++--
rhel/usr_lib_systemd_system_ovsdb-server.service | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
-diff --git a/rhel/usr_lib_systemd_system_ovs-vswitchd.service.in b/rhel/usr_lib_systemd_system_ovs-vswitchd.service.in
-index ff43dae96..f88b57cae 100644
---- a/rhel/usr_lib_systemd_system_ovs-vswitchd.service.in
-+++ b/rhel/usr_lib_systemd_system_ovs-vswitchd.service.in
-@@ -17,8 +17,8 @@ EnvironmentFile=-/etc/sysconfig/openvswitch
+Index: git/rhel/usr_lib_systemd_system_ovs-vswitchd.service.in
+===================================================================
+--- git.orig/rhel/usr_lib_systemd_system_ovs-vswitchd.service.in
++++ git/rhel/usr_lib_systemd_system_ovs-vswitchd.service.in
+@@ -17,8 +17,8 @@
EnvironmentFile=-/run/openvswitch.useropts
LimitSTACK=2M
@begin_dpdk@
@@ -27,26 +29,23 @@ index ff43dae96..f88b57cae 100644
@end_dpdk@
ExecStart=/usr/share/openvswitch/scripts/ovs-ctl \
--no-ovsdb-server --no-monitor --system-id=random \
-diff --git a/rhel/usr_lib_systemd_system_ovsdb-server.service b/rhel/usr_lib_systemd_system_ovsdb-server.service
-index 98338b9df..5002ddf10 100644
---- a/rhel/usr_lib_systemd_system_ovsdb-server.service
-+++ b/rhel/usr_lib_systemd_system_ovsdb-server.service
-@@ -16,11 +16,11 @@ EnvironmentFile=-/run/openvswitch.useropts
+Index: git/rhel/usr_lib_systemd_system_ovsdb-server.service
+===================================================================
+--- git.orig/rhel/usr_lib_systemd_system_ovsdb-server.service
++++ git/rhel/usr_lib_systemd_system_ovsdb-server.service
+@@ -16,11 +16,11 @@
# Environment is reloaded for each Exec*, make sure to
# remove openvswitch.useropts first to reload a fresh
# OVS_USER_ID from default.conf or sysconfig.
-ExecStartPre=/usr/bin/rm -f /run/openvswitch.useropts
+ExecStartPre=/bin/rm -f /run/openvswitch.useropts
-
--ExecStartPre=-/usr/bin/chown ${OVS_USER_ID} /var/run/openvswitch /var/log/openvswitch
+
+-ExecStartPre=-/usr/bin/chown ${OVS_USER_ID} /run/openvswitch /var/log/openvswitch
-ExecStartPre=/bin/sh -c '/usr/bin/echo "OVS_USER_ID=${OVS_USER_ID}" > /run/openvswitch.useropts'
-ExecStartPre=/bin/sh -c 'if [ "$${OVS_USER_ID/:*/}" != "root" ]; then /usr/bin/echo "OVS_USER_OPT=--ovs-user=${OVS_USER_ID}" >> /run/openvswitch.useropts; fi'
-+ExecStartPre=-/bin/chown ${OVS_USER_ID} /var/run/openvswitch /var/log/openvswitch
++ExecStartPre=-/bin/chown ${OVS_USER_ID} /run/openvswitch /var/log/openvswitch
+ExecStartPre=/bin/sh -c '/bin/echo "OVS_USER_ID=${OVS_USER_ID}" > /run/openvswitch.useropts'
+ExecStartPre=/bin/sh -c 'if [ "$${OVS_USER_ID/:*/}" != "root" ]; then /bin/echo "OVS_USER_OPT=--ovs-user=${OVS_USER_ID}" >> /run/openvswitch.useropts; fi'
ExecStart=/usr/share/openvswitch/scripts/ovs-ctl \
--no-ovs-vswitchd --no-monitor --system-id=random \
${OVS_USER_OPT} \
---
-2.17.1
-
diff --git a/recipes-networking/openvswitch/openvswitch.inc b/recipes-networking/openvswitch/openvswitch.inc
index 37fbe5ab..767a41e6 100644
--- a/recipes-networking/openvswitch/openvswitch.inc
+++ b/recipes-networking/openvswitch/openvswitch.inc
@@ -9,22 +9,22 @@ DESCRIPTION = "\
HOMEPAGE = "http://openvswitch.org/"
SECTION = "networking"
-LICENSE = "Apache-2"
+LICENSE = "Apache-2.0"
DEPENDS += "bridge-utils openssl python3 perl python3-six-native coreutils-native"
-RDEPENDS_${PN} += "util-linux-uuidgen util-linux-libuuid coreutils \
+RDEPENDS:${PN} += "util-linux-uuidgen util-linux-libuuid coreutils \
python3 perl perl-module-strict ${PN}-switch \
bash python3-twisted python3-six"
-RDEPENDS_${PN}-testcontroller = "${PN} ${PN}-pki"
-RDEPENDS_${PN}-switch = "${PN} openssl procps util-linux-uuidgen"
-RDEPENDS_${PN}-pki = "${PN}"
-RDEPENDS_${PN}-brcompat = "${PN} ${PN}-switch"
+RDEPENDS:${PN}-testcontroller = "${PN} ${PN}-pki"
+RDEPENDS:${PN}-switch = "${PN} openssl procps util-linux-uuidgen"
+RDEPENDS:${PN}-pki = "${PN}"
+RDEPENDS:${PN}-brcompat = "${PN} ${PN}-switch"
# Some installers will fail because of an install order based on
# rdeps. E.g. ovs-pki calls sed in the postinstall. sed may be
# queued for install later.
-RDEPENDS_${PN} += "sed gawk grep"
+RDEPENDS:${PN} += "sed gawk grep"
SRC_URI = "\
file://openvswitch-switch \
@@ -45,19 +45,19 @@ CONFIGUREOPT_DEPTRACK = ""
# distro layers can enable with EXTRA_OECONF_pn_openvswitch += ""
# EXTRA_OECONF = "--with-linux=${STAGING_KERNEL_DIR} KARCH=${TARGET_ARCH}"
-ALLOW_EMPTY_${PN}-pki = "1"
+ALLOW_EMPTY:${PN}-pki = "1"
PACKAGES =+ "${PN}-testcontroller ${PN}-switch ${PN}-brcompat ${PN}-pki"
-FILES_${PN}-testcontroller = "\
+FILES:${PN}-testcontroller = "\
${sysconfdir}/init.d/openvswitch-testcontroller \
${sysconfdir}/default/openvswitch-testcontroller \
${sysconfdir}/openvswitch-testcontroller \
${bindir}/ovs-testcontroller \
"
-FILES_${PN}-brcompat = "${sbindir}/ovs-brcompatd"
+FILES:${PN}-brcompat = "${sbindir}/ovs-brcompatd"
-FILES_${PN}-switch = "\
+FILES:${PN}-switch = "\
${sysconfdir}/init.d/openvswitch-switch \
${sysconfdir}/default/openvswitch-switch \
${systemd_unitdir}/system/ovs-vswitchd.service \
@@ -68,33 +68,33 @@ FILES_${PN}-switch = "\
"
# silence a warning
-FILES_${PN} += "${datadir}/ovsdbmonitor"
-FILES_${PN} += "/run"
+FILES:${PN} += "${datadir}/ovsdbmonitor"
+FILES:${PN} += "/run"
-FILES_${PN} += "${libdir}/python${PYTHON_BASEVERSION}/"
-inherit autotools update-rc.d systemd python3native
+FILES:${PN} += "${libdir}/python${PYTHON_BASEVERSION}/"
+inherit pkgconfig autotools update-rc.d systemd python3native
SYSTEMD_PACKAGES = "${PN}-switch"
-SYSTEMD_SERVICE_${PN}-switch = " \
+SYSTEMD_SERVICE:${PN}-switch = " \
ovsdb-server.service \
ovs-vswitchd.service \
openvswitch.service \
"
INITSCRIPT_PACKAGES = "${PN}-switch ${PN}-testcontroller"
-INITSCRIPT_NAME_${PN}-switch = "openvswitch-switch"
-INITSCRIPT_PARAMS_${PN}-switch = "defaults 71"
+INITSCRIPT_NAME:${PN}-switch = "openvswitch-switch"
+INITSCRIPT_PARAMS:${PN}-switch = "defaults 71"
-INITSCRIPT_NAME_${PN}-testcontroller = "openvswitch-testcontroller"
-INITSCRIPT_PARAMS_${PN}-testcontroller = "defaults 72"
+INITSCRIPT_NAME:${PN}-testcontroller = "openvswitch-testcontroller"
+INITSCRIPT_PARAMS:${PN}-testcontroller = "defaults 72"
-do_configure_prepend() {
+do_configure:prepend() {
# Work around the for Makefile CC=$(if ....) by swapping out any
# "-Wa," assembly directives with "-Xassembler
CC=`echo '${CC}' | sed 's/-Wa,/-Xassembler /g'`
}
-do_install_prepend() {
+do_install:prepend() {
SERVICE_FILE="${S}/rhel/usr_lib_systemd_system_ovs-vswitchd.service"
${S}/build-aux/dpdkstrip.py \
${@bb.utils.contains('PACKAGECONFIG','dpdk','--dpdk','--nodpdk',d)} \
@@ -102,7 +102,7 @@ do_install_prepend() {
> ${SERVICE_FILE}
}
-do_install_append() {
+do_install:append() {
install -d ${D}/${sysconfdir}/default/
install -m 660 ${WORKDIR}/openvswitch-switch-setup ${D}/${sysconfdir}/default/openvswitch-switch
install -d ${D}/${sysconfdir}/openvswitch-testcontroller
@@ -132,18 +132,17 @@ do_install_append() {
install -d ${D}/usr/share/openvswitch/scripts/
install -m 755 ${S}/rhel/usr_share_openvswitch_scripts_ovs-systemd-reload ${D}/usr/share/openvswitch/scripts/ovs-systemd-reload
- oe_runmake modules_install INSTALL_MOD_PATH=${D}
install -d ${D}${libdir}/python${PYTHON_BASEVERSION}/site-packages
cp -r ${S}/python/ovstest/ ${D}${libdir}/python${PYTHON_BASEVERSION}/site-packages/
}
-pkg_postinst_ontarget_${PN}-pki () {
+pkg_postinst_ontarget:${PN}-pki () {
if test ! -d $D/${datadir}/${PN}/pki; then
ovs-pki init --dir=$D/${datadir}/${PN}/pki
fi
}
-pkg_postinst_ontarget_${PN}-testcontroller () {
+pkg_postinst_ontarget:${PN}-testcontroller () {
if test ! -d $D/${datadir}/${PN}/pki; then
ovs-pki init --dir=$D/${datadir}/${PN}/pki
fi
diff --git a/recipes-networking/openvswitch/openvswitch_git.bb b/recipes-networking/openvswitch/openvswitch_git.bb
index 616bc277..b7d9b8dd 100644
--- a/recipes-networking/openvswitch/openvswitch_git.bb
+++ b/recipes-networking/openvswitch/openvswitch_git.bb
@@ -4,7 +4,7 @@ DEPENDS += "virtual/kernel"
PACKAGE_ARCH = "${MACHINE_ARCH}"
-RDEPENDS_${PN}-ptest += "\
+RDEPENDS:${PN}-ptest += "\
python3-logging python3-syslog python3-io python3-core \
python3-fcntl python3-shell python3-xml python3-math \
python3-datetime python3-netclient python3 sed \
@@ -14,28 +14,25 @@ RDEPENDS_${PN}-ptest += "\
"
S = "${WORKDIR}/git"
-PV = "2.15+${SRCPV}"
-CVE_VERSION = "2.13.0"
+PV = "3.3.0"
+CVE_VERSION = "3.3.0"
-FILESEXTRAPATHS_append := "${THISDIR}/${PN}-git:"
+FILESEXTRAPATHS:append := "${THISDIR}/${PN}-git:"
-SRCREV = "8dc1733eaea866dce033b3c44853e1b09bf59fc7"
-SRC_URI += "git://github.com/openvswitch/ovs.git;protocol=git;branch=branch-2.15 \
+SRCREV = "1c1f173ce8a8534e262083bc4db3ee15f05231c0"
+SRC_URI += "git://github.com/openvswitch/ovs.git;protocol=https;branch=branch-3.3 \
file://openvswitch-add-ptest-71d553b995d0bd527d3ab1e9fbaf5a2ae34de2f3.patch \
file://run-ptest \
file://disable_m4_check.patch \
- file://kernel_module.patch \
file://systemd-update-tool-paths.patch \
file://systemd-create-runtime-dirs.patch \
- file://0001-ovs-use-run-instead-of-var-run-for-in-systemd-units.patch \
+ file://Makefile.am-set-the-python3-interpreter-with-usr-bin.patch \
"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1ce5d23a6429dff345518758f13aaeab"
-DPDK_INSTALL_DIR ?= "/opt/dpdk"
-
PACKAGECONFIG ?= "libcap-ng"
-PACKAGECONFIG[dpdk] = "--with-dpdk=${STAGING_DIR_TARGET}${DPDK_INSTALL_DIR}/share/${TARGET_ARCH}-native-linuxapp-gcc,,dpdk,dpdk"
+PACKAGECONFIG[dpdk] = "--with-dpdk=shared,,dpdk,dpdk"
PACKAGECONFIG[libcap-ng] = "--enable-libcapng,--disable-libcapng,libcap-ng,"
PACKAGECONFIG[ssl] = ",--disable-ssl,openssl,"
@@ -45,7 +42,7 @@ PACKAGECONFIG[ssl] = ",--disable-ssl,openssl,"
# EXTRA_OECONF += "--with-linux=${STAGING_KERNEL_BUILDDIR} --with-linux-source=${STAGING_KERNEL_DIR} KARCH=${TARGET_ARCH}"
# silence a warning
-FILES_${PN} += "/lib/modules"
+FILES:${PN} += "/lib/modules"
inherit ptest
@@ -55,6 +52,3 @@ do_install_ptest() {
oe_runmake test-install
}
-do_install_append() {
- oe_runmake modules_install INSTALL_MOD_PATH=${D}
-}
diff --git a/recipes-networking/slirp4netns/slirp4netns_0.4.1.bb b/recipes-networking/slirp4netns/slirp4netns_git.bb
index b47df968..33a5636a 100644
--- a/recipes-networking/slirp4netns/slirp4netns_0.4.1.bb
+++ b/recipes-networking/slirp4netns/slirp4netns_git.bb
@@ -3,14 +3,21 @@ DESCRIPTION = "slirp4netns allows connecting a network namespace to the \
Internet in a completely unprivileged way, by connecting a TAP device in a \
network namespace to the usermode TCP/IP stack ("slirp")."
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=1e2efd29c201480c6be2744d9edade26"
-SRCREV = "4d38845e2e311b684fc8d1c775c725bfcd5ddc27"
-SRC_URI = "git://github.com/rootless-containers/slirp4netns.git;nobranch=1"
+SRCREV = "323aa69a68362a432f15d5e8050e74a0637aaf1e"
+SRC_URI = "git://github.com/rootless-containers/slirp4netns.git;nobranch=1;protocol=https"
-DEPENDS = "glib-2.0 libcap libseccomp"
+PV = "1.2.0+git"
+
+inherit features_check
+REQUIRED_DISTRO_FEATURES ?= "seccomp"
+
+DEPENDS = "glib-2.0 libcap libseccomp libslirp"
S = "${WORKDIR}/git"
+RRECOMMENDS:${PN} += "kernel-module-tun"
+
inherit autotools pkgconfig
diff --git a/scripts/README-oe-go-mod-autogen.txt b/scripts/README-oe-go-mod-autogen.txt
new file mode 100644
index 00000000..80a35e52
--- /dev/null
+++ b/scripts/README-oe-go-mod-autogen.txt
@@ -0,0 +1,120 @@
+Description:
+
+ oe-go-mod-autogen.py is a helper script for go mod recipes. It is based
+ on intiial efforts to use only the git fetcher versus golangs module
+ infrastructure.
+
+ Example:
+
+ a) generate
+
+ cmd: <path_to>/meta-virtualization/scripts/oe-go-mod-autogen.py \
+ --repo https://github.com/docker/compose --rev v2.20.3
+ output: src_uri.inc, relocation.inc, modules.txt
+
+ b) Copy the three generated files to replace the original ones.
+
+ c) update SRCREV
+
+ Edit the recipe to update PV and the main SRCREV, and
+ docker-compose is upgraded.
+
+ See --help for more explanations and examples.
+
+ Below are some technical details.
+
+ * get module's repo from module name
+
+ This script checks the following two URLs to determine the module's repo.
+ 1. https://<module_name_tweaked>?=go-get=1
+ 2. https://pkg.go.dev/<module_name_tweaked>
+
+ The module_name_tweaked is derived from module_name, with the last components
+ removed one by one. Let me use two examples to explain this.
+
+ For module_name sigs.k8s.io/json, the sigs.k8s.io/json is first used as
+ module_name_tweaked for searching. And we can correctly get the repo URL, so
+ the search stops.
+
+ For module_name github.com/k3s-io/etcd/api/v3, the following ones are used
+ as module_name_tweaked:
+ github.com/k3s-io/etcd/api/v3
+ github.com/k3s-io/etcd/api
+ github.com/k3s-io/etcd
+ And when searching 'github.com/k3s-io/etcd', we get the repo URL, so the search
+ stops.
+
+ * determine the srcdir:destdir mapping in 'vendor' creation
+
+ To correctly form the 'vendor' directory, the mapping is critical.
+ This script makes use of tag matching and path matching to determine
+ the subpath in the repo for the module.
+
+ * avoid subpath being overriden by parent path
+
+ We need to avoid subpath being overriden by parent path. This is needed
+ for both SRC_URI ordering in src_uri.inc and the sites mapping ordering
+ in relocation.inc. This script simply uses the length as the ordering key,
+ simply for the reason that if a path is a subpath of another path, it must
+ be longer.
+
+ * the .git suffix is removed to sync with each other
+
+ Unlike normal recipes, go mod recipe usually have many SRC_URIs. This script
+ remove the '.git' suffix from repo URL so that the repo URLs are in sync
+ with each.
+
+ * basic directory hierarchy and caching mechanism
+
+ <cwd>/repos: hold the repos downloaded and checked
+ <cwd>/wget-contents: hold the contents to determine the module's repo
+ <cwd>/wget-contents/<module_name>.repo_url.cache: the repo value cache
+ This is to avoid unnecessary URL fetching and repo cloning.
+
+ * the ERROR_OUT_ON_FETCH_AND_CHECKOUT_FAILURE switch in script
+
+ The script must get the correct repo_url, fullsrc_rev and subpath for
+ each required module in go.mod to correctly generate the src_uri.inc and
+ relocation.inc files. If this process fails for any required module, this
+ script stop immediately, as I deliberately set ERROR_OUT_ON_FETCH_AND_CHECKOUT_FAILURE
+ to True in this script. The purpose is to encourage people to report
+ problems to meta-virt so that we can improve this script according to
+ these feedbacks. But this variable can set to False, then the script
+ only records the failed modules in self.modules_unhandled with reasons
+ added, people can modify the generated src_uri.inc and relocation.inc
+ to manually handle these unhandled modules if they are urgent to
+ add/upgrade some go mod recipes.
+
+
+Debug tips:
+
+If the do_compile task exits with a go mod / fetch error, this is due
+to some sort of compilation error during the go build. The log file
+can be huge. To figure out what broke, try the following:
+
+ % cd ${S}/src/import
+ % grep -v ^HASH ../../../temp/log.do_compile
+
+This will likely highlight what broke. It is often that either the wrong
+revision was used (and there will be go build errors) or that a fetched
+repository used the wrong source or destination. Seeing what module
+couldn't be found, will allow you to locate the SRC_URI fetch in question,
+how it was relocated. Either the source or destination may be wrong.
+
+As an example, k3s was failing with the following error:
+
+ go: finding module for package sigs.k8s.io/kustomize/kustomize/v5/commands/build
+ vendor/k8s.io/kubectl/pkg/cmd/kustomize/kustomize.go:25:2: cannot query module due to -mod=vendor
+ WARNING: exit code 1 from a shell command.
+
+Which leads to looking at the SRC_URI and vendor fetch, which was not
+using the proper source for kustomize.
+
+ sigs.k8s.io/kustomize/kustomize/v5:sigs.k8s.io/kustomize/kustomize:force \
+
+had to be changed to:
+
+ sigs.k8s.io/kustomize/kustomize/v5:sigs.k8s.io/kustomize/kustomize/v5/kustomize:force \
+
+To get the commands/build subirectory from the source into the proper
+vendor location.
diff --git a/scripts/oe-go-mod-autogen.py b/scripts/oe-go-mod-autogen.py
new file mode 100755
index 00000000..c44c096a
--- /dev/null
+++ b/scripts/oe-go-mod-autogen.py
@@ -0,0 +1,800 @@
+#!/usr/bin/env python3
+
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# go-dep processor
+#
+# Copyright (C) 2022 Bruce Ashfield
+# Copyright (C) 2023 Chen Qi
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+import os
+import sys
+import logging
+import argparse
+from collections import OrderedDict
+import subprocess
+import textwrap
+
+# This switch is used to make this script error out ASAP, mainly for debugging purpose
+ERROR_OUT_ON_FETCH_AND_CHECKOUT_FAILURE = True
+
+logger = logging.getLogger('oe-go-mod-autogen')
+loggerhandler = logging.StreamHandler()
+loggerhandler.setFormatter(logging.Formatter("%(levelname)s: %(message)s"))
+logger.addHandler(loggerhandler)
+logger.setLevel(logging.INFO)
+
+class GoModTool(object):
+ def __init__(self, repo, rev, workdir):
+ self.repo = repo
+ self.rev = rev
+ self.workdir = workdir
+
+ # Stores the actual module name and its related information
+ # {module: (repo_url, repo_dest_dir, fullsrcrev)}
+ self.modules_repoinfo = {}
+
+ # {module_name: (url, version, destdir, fullsrcrev)}
+ #
+ # url: place to get the source codes, we only support git repo
+ # version: module version, git tag or git rev
+ # destdir: place to put the fetched source codes
+ # fullsrcrev: full src rev which is the value of SRC_REV
+ #
+ # e.g.
+ # For 'github.com/Masterminds/semver/v3 v3.1.1' in go.mod:
+ # module_name = github.com/Masterminds/semver/v3
+ # url = https://github.com/Masterminds/semver
+ # version = v3.1.1
+ # destdir = ${WORKDIR}/${BP}/src/${GO_IMPORT}/vendor/github.com/Masterminds/semver/v3
+ # fullsrcrev = d387ce7889a157b19ad7694dba39a562051f41b0
+ self.modules_require = OrderedDict()
+
+ # {orig_module: (actual_module, actual_version)}
+ self.modules_replace = OrderedDict()
+
+ # Unhandled modules
+ self.modules_unhandled = OrderedDict()
+
+ # store subpaths used to form srcpath
+ # {actual_module_name: subpath}
+ self.modules_subpaths = OrderedDict()
+
+ # modules's actual source paths, record those that are not the same with the module itself
+ self.modules_srcpaths = OrderedDict()
+
+ # store lines, comment removed
+ self.require_lines = []
+ self.replace_lines = []
+
+ # fetch repo
+ self.fetch_and_checkout_repo(self.repo.split('://')[1], self.repo, self.rev, checkout=True, get_subpath=False)
+
+ def show_go_mod_info(self):
+ # Print modules_require, modules_replace and modules_unhandled
+ print("modules required:")
+ for m in self.modules_require:
+ url, version, destdir, fullrev = self.modules_require[m]
+ print("%s %s %s %s" % (m, version, url, fullrev))
+
+ print("modules replace:")
+ for m in self.modules_replace:
+ actual_module, actual_version = self.modules_replace[m]
+ print("%s => %s %s" % (m, actual_module, actual_version))
+
+ print("modules unhandled:")
+ for m in self.modules_unhandled:
+ reason = self.modules_unhandled[m]
+ print("%s unhandled: %s" % (m, reason))
+
+ def parse(self):
+ # check if this repo needs autogen
+ repo_url, repo_dest_dir, repo_fullrev = self.modules_repoinfo[self.repo.split('://')[1]]
+ if os.path.isdir(os.path.join(repo_dest_dir, 'vendor')):
+ logger.info("vendor direcotry has already existed for %s, no need to add other repos" % self.repo)
+ return
+ go_mod_file = os.path.join(repo_dest_dir, 'go.mod')
+ if not os.path.exists(go_mod_file):
+ logger.info("go.mod file does not exist for %s, no need to add otehr repos" % self.repo)
+ return
+ self.parse_go_mod(go_mod_file)
+ self.show_go_mod_info()
+
+ def fetch_and_checkout_repo(self, module_name, repo_url, rev, default_protocol='https://', checkout=False, get_subpath=True):
+ """
+ Fetch repo_url to <workdir>/repos/repo_base_name
+ """
+ protocol = default_protocol
+ if '://' in repo_url:
+ repo_url_final = repo_url
+ else:
+ repo_url_final = default_protocol + repo_url
+ logger.debug("fetch and checkout %s %s" % (repo_url_final, rev))
+ repos_dir = os.path.join(self.workdir, 'repos')
+ if not os.path.exists(repos_dir):
+ os.makedirs(repos_dir)
+ repo_basename = repo_url.split('/')[-1].split('.git')[0]
+ repo_dest_dir = os.path.join(repos_dir, repo_basename)
+ module_last_name = module_name.split('/')[-1]
+ git_action = "fetch"
+ if os.path.exists(repo_dest_dir):
+ if checkout:
+ # check if current HEAD is rev
+ try:
+ headrev = subprocess.check_output('git rev-list -1 HEAD', shell=True, cwd=repo_dest_dir).decode('utf-8').strip()
+ requiredrev = subprocess.check_output('git rev-list -1 %s 2>/dev/null || git rev-list -1 %s/%s' % (rev, module_last_name, rev), shell=True, cwd=repo_dest_dir).decode('utf-8').strip()
+ if headrev == requiredrev:
+ logger.info("%s has already been fetched and checked out as required, skipping" % repo_url)
+ self.modules_repoinfo[module_name] = (repo_url, repo_dest_dir, requiredrev)
+ return
+ else:
+ logger.info("HEAD of %s is not %s, will do a clean clone" % (repo_dest_dir, requiredrev))
+ git_action = "clone"
+ except:
+ logger.info("'git rev-list' in %s failed, will do a clean clone" % repo_dest_dir)
+ git_action = "clone"
+ else:
+ # determine if the current repo points to the desired remote repo
+ try:
+ remote_origin_url = subprocess.check_output('git config --get remote.origin.url', shell=True, cwd=repo_dest_dir).decode('utf-8').strip()
+ if remote_origin_url.endswith('.git'):
+ if not repo_url_final.endswith('.git'):
+ remote_origin_url = remote_origin_url[:-4]
+ else:
+ if repo_url_final.endswith('.git'):
+ remote_origin_url = remote_origin_url + '.git'
+ if remote_origin_url != repo_url_final:
+ logger.info("remote.origin.url for %s is not %s, will do a clean clone" % (repo_dest_dir, repo_url_final))
+ git_action = "clone"
+ except:
+ logger.info("'git config --get remote.origin.url' in %s failed, will do a clean clone" % repo_dest_dir)
+ git_action = "clone"
+ else:
+ # No local repo, clone it.
+ git_action = "clone"
+
+ if git_action == "clone":
+ logger.info("Removing %s" % repo_dest_dir)
+ subprocess.check_call('rm -rf %s' % repo_dest_dir, shell=True)
+
+ # clone/fetch repo
+ try:
+ git_cwd = repos_dir if git_action == "clone" else repo_dest_dir
+ logger.info("git %s %s in %s" % (git_action, repo_url_final, git_cwd))
+ subprocess.check_call('git %s %s >/dev/null 2>&1' % (git_action, repo_url_final), shell=True, cwd=git_cwd)
+ except:
+ logger.warning("Failed to %s %s in %s" % (git_action, repo_url_final, git_cwd))
+ return
+
+ def get_requiredrev(get_subpath):
+ import re
+ # check if rev is a revision or a version
+ if len(rev) == 12 and re.match('[0-9a-f]+', rev):
+ rev_is_version = False
+ else:
+ rev_is_version = True
+
+ # if rev is not a version, 'git rev-list -1 <rev>' should just succeed!
+ if not rev_is_version:
+ try:
+ rev_return = subprocess.check_output('git rev-list -1 %s 2>/dev/null' % rev, shell=True, cwd=repo_dest_dir).decode('utf-8').strip()
+ if get_subpath:
+ cmd = 'git branch -M toremove && git checkout -b check_subpath %s && git branch -D toremove' % rev_return
+ subprocess.check_call(cmd, shell=True, cwd=repo_dest_dir)
+ # try to get the subpath for this module
+ module_name_parts = module_name.split('/')
+ while (len(module_name_parts) > 0):
+ subpath = '/'.join(module_name_parts)
+ dir_to_check = repo_dest_dir + '/' + '/'.join(module_name_parts)
+ if os.path.isdir(dir_to_check):
+ self.modules_subpaths[module_name] = subpath
+ break
+ else:
+ module_name_parts.pop(0)
+ return rev_return
+ except:
+ logger.warning("Revision (%s) not in repo(%s)" % (rev, repo_dest_dir))
+ return None
+
+ # the following codes deals with case where rev is a version
+ # determine the longest match tag, in this way, we can get the current srcpath to be used in relocation.inc
+ # we first get the initial tag, which is formed from module_name and rev
+ module_parts = module_name.split('/')
+ if rev.startswith(module_parts[-1] + '.'):
+ tag = '/'.join(module_parts[:-1]) + '/' + rev
+ last_module_part_replaced = True
+ else:
+ tag = '/'.join(module_parts) + '/' + rev
+ last_module_part_replaced = False
+ logger.debug("use %s as the initial tag for %s" % (tag, module_name))
+ tag_parts = tag.split('/')
+ while(len(tag_parts) > 0):
+ try:
+ rev_return = subprocess.check_output('git rev-list -1 %s 2>/dev/null' % tag, shell=True, cwd=repo_dest_dir).decode('utf-8').strip()
+ if len(tag_parts) > 1:
+ # ensure that the subpath exists
+ if get_subpath:
+ cmd = 'git branch -M toremove && git checkout -b check_subpath %s && git branch -D toremove' % rev_return
+ subprocess.check_call(cmd, shell=True, cwd=repo_dest_dir)
+ # get subpath for the actual_module_name
+ if last_module_part_replaced:
+ subpath = '/'.join(tag_parts[:-1]) + '/' + module_parts[-1]
+ if not os.path.isdir(repo_dest_dir + '/' + subpath):
+ subpath = '/'.join(tag_parts[:-1])
+ else:
+ subpath = '/'.join(tag_parts[:-1])
+ if not os.path.isdir(repo_dest_dir + '/' + subpath):
+ logger.warning("subpath (%s) derived from tag matching does not exist in %s" % (subpath, repo_dest_dir))
+ return None
+ self.modules_subpaths[module_name] = subpath
+ logger.info("modules_subpath[%s] = %s" % (module_name, subpath))
+ return rev_return
+ except:
+ tag_parts.pop(0)
+ tag = '/'.join(tag_parts)
+ logger.warning("No tag matching %s" % rev)
+ return None
+
+ requiredrev = get_requiredrev(get_subpath)
+ if requiredrev:
+ logger.info("Got module(%s) requiredrev: %s" % (module_name, requiredrev))
+ if checkout:
+ subprocess.check_call('git checkout -b gomodautogen %s' % requiredrev, shell=True, cwd=repo_dest_dir)
+ self.modules_repoinfo[module_name] = (repo_url, repo_dest_dir, requiredrev)
+ else:
+ logger.warning("Failed to get requiredrev, repo_url = %s, rev = %s, module_name = %s" % (repo_url, rev, module_name))
+
+ def parse_go_mod(self, go_mod_path):
+ """
+ Parse go.mod file to get the modules info
+ """
+ # First we get the require and replace lines
+ # The parsing logic assumes the replace lines come *after* the require lines
+ inrequire = False
+ inreplace = False
+ with open(go_mod_path, 'r') as f:
+ lines = f.readlines()
+ for line in lines:
+ if line.startswith('require ('):
+ inrequire = True
+ continue
+ if line.startswith(')'):
+ inrequire = False
+ continue
+ if line.startswith('require ') or inrequire:
+ # we have one line require
+ require_line = line.lstrip('require ').split('//')[0].strip()
+ if require_line:
+ self.require_lines.append(require_line)
+ continue
+ # we can deal with requires and replaces separately because go.mod always writes requires before replaces
+ if line.startswith('replace ('):
+ inreplace = True
+ continue
+ if line.startswith(')'):
+ inreplace = False
+ continue
+ if line.startswith('replace ') or inreplace:
+ replace_line = line.lstrip('replace ').split('//')[0].strip()
+ if replace_line:
+ self.replace_lines.append(replace_line)
+ continue
+ #
+ # parse the require_lines and replace_lines to form self.modules_require and self.modules_replace
+ #
+ logger.debug("Parsing require_lines and replace_lines ...")
+ # A typical replace line is as below:
+ # github.com/hashicorp/golang-lru => github.com/ktock/golang-lru v0.5.5-0.20211029085301-ec551be6f75c
+ # It means that the github.com/hashicorp/golang-lru module is replaced by github.com/ktock/golang-lru
+ # with the version 'v0.5.5-0.20211029085301-ec551be6f75c'.
+ # So the destdir is vendor/github.com/hashicorp/golang-lru while the contents are from github.com/ktock/golang-lru
+ for line in self.replace_lines:
+ orig_module, actual = line.split('=>')
+ actual_module, actual_version = actual.split()
+ orig_module = orig_module.strip()
+ actual_module = actual_module.strip()
+ actual_version = actual_version.strip()
+ self.modules_replace[orig_module] = (actual_module, actual_version)
+ #
+ # Typical require lines are as below:
+ # github.com/Masterminds/semver/v3 v3.1.1
+ # golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064
+ #
+ # We need to first try https://<module_name>?=go-get=1 to see it contains
+ # line starting with '<meta name="go-import" content='.
+ #
+ # If so, get root-path vcs repo-url from content. See https://go.dev/ref/mod#vcs-find
+ # For example, the above 'wget https://golang.org/x/crypto?go-get=1' gives you
+ # <meta name="go-import" content="golang.org/x/crypto git https://go.googlesource.com/crypto">
+ # In such case, the self.modules_require has the following contents:
+ # module_name: golang.org/x/crypto
+ # url: https://go.googlesource.com/crypto
+ # version: v0.0.0-20220321153916-2c7772ba3064
+ # destdir: ${WORKDIR}/${BP}/src/import/vendor.fetch/golang.org/x/crypto
+ # fullsrcrev: 2c7772ba30643b7a2026cbea938420dce7c6384d (git rev-list -1 2c7772ba3064)
+ #
+ # If not, try https://pkg.go.dev/<module_name>, and find the 'Repository'.
+ # For example, 'wget https://pkg.go.dev/github.com/Masterminds/semver/v3' gives:
+ # github.com/Masterminds/semver
+ # In such case, the self.modules has the following contents:
+ # module_name: github.com/Masterminds/semver/v3
+ # url: https://github.com/Masterminds/semver
+ # version: v3.1.1
+ # destdir: ${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/Masterminds/semver/v3
+ # fullsrcrev: 7bb0c843b53d6ad21a3f619cb22c4b442bb3ef3e (git rev-list -1 v3.1.1)
+ #
+ # As a last resort, if the last component of <module_name> matches 'v[0-9]+',
+ # remove the last component and try wget https://<module_name_with_last_component_removed>?go-get=1,
+ # then try using the above matching method.
+ #
+ for line in self.require_lines:
+ module_name, version = line.strip().split()
+ logger.debug("require line: %s" % line)
+ logger.debug("module_name = %s; version = %s" % (module_name, version))
+ # take the modules_replace into consideration to get the actual version and actual module name
+ # note that the module_name is used in destdir, and the actual_module_name and actual_version
+ # are used to determine the url and fullsrcrev
+ destdir = '${WORKDIR}/${BP}/src/import/vendor.fetch/%s' % module_name
+ actual_module_name = module_name
+ actual_version = version
+ if module_name in self.modules_replace:
+ actual_module_name, actual_version = self.modules_replace[module_name]
+ logger.debug("actual_module_name = %s; actual_version = %s" % (actual_module_name, actual_version))
+ url, fullsrcrev = self.get_url_srcrev(actual_module_name, actual_version)
+ logger.debug("url = %s; fullsrcrev = %s" % (url, fullsrcrev))
+ if url and fullsrcrev:
+ self.modules_require[module_name] = (url, version, destdir, fullsrcrev)
+ # form srcpath, actual_module_name/<subpath>
+ if actual_module_name in self.modules_subpaths:
+ subpath = self.modules_subpaths[actual_module_name]
+ srcpath = '%s/%s' % (actual_module_name, subpath)
+ self.modules_srcpaths[module_name] = srcpath
+ logger.info("self.modules_srcpaths[%s] = %s" % (module_name, srcpath))
+ else:
+ self.modules_srcpaths[module_name] = actual_module_name
+ else:
+ logger.warning("get_url_srcrev(%s, %s) failed" % (actual_module_name, actual_version))
+ if ERROR_OUT_ON_FETCH_AND_CHECKOUT_FAILURE:
+ sys.exit(1)
+
+ def use_wget_to_get_repo_url(self, wget_content_file, url_cache_file, module_name):
+ """
+ Use wget to get repo_url for module_name, return None if not found
+ """
+ try:
+ logger.info("wget -O %s https://%s?=go-get=1" % (wget_content_file, module_name))
+ subprocess.check_call('wget -O %s https://%s?=go-get=1' % (wget_content_file, module_name), shell=True)
+ with open(wget_content_file, 'r') as f:
+ for line in f.readlines():
+ if '<meta name="go-import" content=' in line:
+ logger.info("Succeed to find go-import content for %s" % module_name)
+ logger.debug("The line is %s" % line)
+ root_path, vcs, repo_url = line.split('content=')[1].split('"')[1].split()
+ logger.info("%s: %s %s %s" % (module_name, root_path, vcs, repo_url))
+ if vcs != 'git':
+ logger.warning('%s unhandled as its vcs is %s which is not supported by this script.' % (module_name, vcs))
+ unhandled_reason = 'vcs %s is not supported by this script' % vcs
+ self.modules_unhandled[module_name] = unhandled_reason
+ return None
+ with open(url_cache_file, 'w') as f:
+ f.write(repo_url)
+ return repo_url
+ except:
+ logger.info("wget -O %s https://%s?=go-get=1 failed" % (wget_content_file, module_name))
+ # if we cannot find repo url from https://<module_name>?=go-get=1, try https://pkg.go/dev/<module_name>
+ try:
+ logger.info("wget -O %s https://pkg.go.dev/%s" % (wget_content_file, module_name))
+ subprocess.check_call("wget -O %s https://pkg.go.dev/%s" % (wget_content_file, module_name), shell=True)
+ repo_url_found = False
+ with open(wget_content_file, 'r') as f:
+ in_repo_section = False
+ for line in f.readlines():
+ if '>Repository<' in line:
+ in_repo_section = True
+ continue
+ if in_repo_section:
+ newline = line.strip()
+ if newline != '' and not newline.startswith('<'):
+ repo_url = newline
+ repo_url_found = True
+ break
+ if repo_url_found:
+ logger.info("repo url for %s: %s" % (module_name, repo_url))
+ with open(url_cache_file, 'w') as f:
+ f.write(repo_url)
+ return repo_url
+ else:
+ unhandled_reason = 'cannot determine repo_url for %s' % module_name
+ self.modules_unhandled[module_name] = unhandled_reason
+ return None
+ except:
+ logger.info("wget -O %s https://pkg.go.dev/%s failed" % (wget_content_file, module_name))
+ return None
+
+
+ def get_repo_url_rev(self, module_name, version):
+ """
+ Return (repo_url, rev)
+ """
+ import re
+ # First get rev from version
+ v = version.split('+incompatible')[0]
+ version_components = v.split('-')
+ if len(version_components) == 1:
+ rev = v
+ elif len(version_components) == 3:
+ if len(version_components[2]) == 12:
+ rev = version_components[2]
+ else:
+ rev = v
+ else:
+ rev = v
+
+ #
+ # Get repo_url
+ # We put a cache mechanism here, <wget_content_file>.repo_url.cache is used to store the repo url fetch before
+ #
+ wget_dir = os.path.join(self.workdir, 'wget-contents')
+ if not os.path.exists(wget_dir):
+ os.makedirs(wget_dir)
+ wget_content_file = os.path.join(wget_dir, module_name.replace('/', '_'))
+ url_cache_file = "%s.repo_url.cache" % wget_content_file
+ if os.path.exists(url_cache_file):
+ with open(url_cache_file, 'r') as f:
+ repo_url = f.readline().strip()
+ return (repo_url, rev)
+ module_name_parts = module_name.split('/')
+ while (len(module_name_parts) > 0):
+ module_name_to_check = '/'.join(module_name_parts)
+ logger.info("module_name_to_check: %s" % module_name_to_check)
+ repo_url = self.use_wget_to_get_repo_url(wget_content_file, url_cache_file, module_name_to_check)
+ if repo_url:
+ return (repo_url, rev)
+ else:
+ if module_name in self.modules_unhandled:
+ return (None, rev)
+ else:
+ module_name_parts.pop(-1)
+
+ unhandled_reason = 'cannot determine the repo for %s' % module_name
+ self.modules_unhandled[module_name] = unhandled_reason
+ return (None, rev)
+
+ def get_url_srcrev(self, module_name, version):
+ """
+ Return url and fullsrcrev according to module_name and version
+ """
+ repo_url, rev = self.get_repo_url_rev(module_name, version)
+ if not repo_url or not rev:
+ return (None, None)
+ self.fetch_and_checkout_repo(module_name, repo_url, rev)
+ if module_name in self.modules_repoinfo:
+ repo_url, repo_dest_dir, repo_fullrev = self.modules_repoinfo[module_name]
+ # remove the .git suffix to sync repos across modules with different versions and across recipes
+ if repo_url.endswith('.git'):
+ repo_url = repo_url[:-len('.git')]
+ return (repo_url, repo_fullrev)
+ else:
+ unhandled_reason = 'fetch_and_checkout_repo(%s, %s, %s) failed' % (module_name, repo_url, rev)
+ self.modules_unhandled[module_name] = unhandled_reason
+ return (None, None)
+
+ def gen_src_uri_inc(self):
+ """
+ Generate src_uri.inc file containing SRC_URIs
+ """
+ src_uri_inc_file = os.path.join(self.workdir, 'src_uri.inc')
+ # record the <name> after writting SRCREV_<name>, this is to avoid modules having the same basename resulting in same SRCREV_xxx
+ srcrev_name_recorded = []
+ template = """# %s %s
+# [1] git ls-remote %s %s
+SRCREV_%s="%s"
+SRC_URI += "git://%s;name=%s;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/%s"
+
+"""
+ # We can't simply write SRC_URIs one by one in the order that go.mod specify them.
+ # Because the latter one might clean things up for the former one if the former one is a subpath of the latter one.
+ def take_first_len(elem):
+ return len(elem[0])
+
+ src_uri_contents = []
+ with open(src_uri_inc_file, 'w') as f:
+ for module in self.modules_require:
+ # {module_name: (url, version, destdir, fullsrcrev)}
+ repo_url, version, destdir, fullrev = self.modules_require[module]
+ if module in self.modules_replace:
+ actual_module_name, actual_version = self.modules_replace[module]
+ else:
+ actual_module_name, actual_version = (module, version)
+ if '://' in repo_url:
+ repo_url_noprotocol = repo_url.split('://')[1]
+ else:
+ repo_url_noprotocol = repo_url
+ if not repo_url.startswith('https://'):
+ repo_url = 'https://' + repo_url
+ name = module.split('/')[-1]
+ if name in srcrev_name_recorded:
+ name = '-'.join(module.split('/')[-2:])
+ src_uri_contents.append((actual_module_name, actual_version, repo_url, fullrev, name, fullrev, repo_url_noprotocol, name, actual_module_name))
+ srcrev_name_recorded.append(name)
+ # sort the src_uri_contents and then write it
+ src_uri_contents.sort(key=take_first_len)
+ for content in src_uri_contents:
+ f.write(template % content)
+ logger.info("%s generated" % src_uri_inc_file)
+
+ def gen_relocation_inc(self):
+ """
+ Generate relocation.inc file
+ """
+ relocation_inc_file = os.path.join(self.workdir, 'relocation.inc')
+ template = """export sites="%s"
+
+do_compile:prepend() {
+ cd ${S}/src/import
+ for s in $sites; do
+ site_dest=$(echo $s | cut -d: -f1)
+ site_source=$(echo $s | cut -d: -f2)
+ force_flag=$(echo $s | cut -d: -f3)
+ mkdir -p vendor.copy/$site_dest
+ if [ -n "$force_flag" ]; then
+ echo "[INFO] $site_dest: force copying .go files"
+ rm -rf vendor.copy/$site_dest
+ rsync -a --exclude='vendor/' --exclude='.git/' vendor.fetch/$site_source/ vendor.copy/$site_dest
+ else
+ [ -n "$(ls -A vendor.copy/$site_dest/*.go 2> /dev/null)" ] && { echo "[INFO] vendor.fetch/$site_source -> $site_dest: go copy skipped (files present)" ; true ; } || { echo "[INFO] $site_dest: copying .go files" ; rsync -a --exclude='vendor/' --exclude='.git/' vendor.fetch/$site_source/ vendor.copy/$site_dest ; }
+ fi
+ done
+}
+"""
+ sites = []
+ for module in self.modules_require:
+ # <dest>:<source>[:force]
+ if module in self.modules_srcpaths:
+ srcpath = self.modules_srcpaths[module]
+ logger.debug("Using %s as srcpath of module (%s)" % (srcpath, module))
+ else:
+ srcpath = module
+ sites.append("%s:%s:force" % (module, srcpath))
+ # To avoid the former one being overriden by the latter one when the former one is a subpath of the latter one, sort sites
+ sites.sort(key=len)
+ with open(relocation_inc_file, 'w') as f:
+ sites_str = ' \\\n '.join(sites)
+ f.write(template % sites_str)
+ logger.info("%s generated" % relocation_inc_file)
+
+ def gen_modules_txt(self):
+ """
+ Generate modules.txt file
+ """
+ modules_txt_file = os.path.join(self.workdir, 'modules.txt')
+ with open(modules_txt_file, 'w') as f:
+ for l in self.require_lines:
+ f.write('# %s\n' % l)
+ f.write('## explicit\n')
+ for l in self.replace_lines:
+ f.write('# %s\n' %l)
+ logger.info("%s generated" % modules_txt_file)
+
+ def sanity_check(self):
+ """
+ Various anity checks
+ """
+ sanity_check_ok = True
+ #
+ # Sanity Check 1:
+ # For modules having the same repo, at most one is allowed to not have subpath.
+ # This check operates on self.modules_repoinfo and self.modules_subpaths
+ #
+ repo_modules = {}
+ for module in self.modules_repoinfo:
+ # first form {repo: [module1, module2, ...]}
+ repo_url, repo_dest_dir, fullsrcrev = self.modules_repoinfo[module]
+ if repo_url not in repo_modules:
+ repo_modules[repo_url] = [module]
+ else:
+ repo_modules[repo_url].append(module)
+ for repo in repo_modules:
+ modules = repo_modules[repo]
+ if len(modules) == 1:
+ continue
+ # for modules sharing the same repo, at most one is allowed to not have subpath
+ nosubpath_modules = []
+ for m in modules:
+ if m not in self.modules_subpaths:
+ nosubpath_modules.append(m)
+ if len(nosubpath_modules) == 0:
+ continue
+ if len(nosubpath_modules) > 1:
+ logger.warning("Multiple modules sharing %s, but they don't have subpath: %s. Please double check." % (repo, nosubpath_modules))
+ if len(nosubpath_modules) == 1:
+ # do further check, OK if the module is the prefix for other modules sharing the same repo
+ module_to_check = nosubpath_modules[0]
+ for m in modules:
+ if module_to_check == m:
+ continue
+ if not m.startswith('%s/' % module_to_check):
+ logger.warning("%s is sharing repo (%s) with other modules, and it might need a subpath. Please double check: %s and: %s" % (module_to_check, repo, nosubpath_modules,m))
+ continue
+
+ #
+ # End of Sanity Check
+ #
+ if not sanity_check_ok:
+ sys.exit(1)
+ return
+
+def main():
+ parser = argparse.ArgumentParser(
+ description="go mod dependency -> SRC_URI procesing",
+ formatter_class=argparse.RawDescriptionHelpFormatter,
+ epilog=textwrap.dedent('''\
+
+ Overview:
+ =========
+
+ go-mod-oe is a tool for processing go dependencies to generate
+ dependencies suitable for OE fetcher consumption.
+
+ In particular, it creates a build structure suitable for
+ '-mod="vendor"' go builds. Once complete all go mod dependencies
+ are in the vendor/ directory, so no golang specific fetching or
+ network access happens during the build.
+
+ The files src_uri.inc, relocation.inc and modules.txt are generated
+ and suitable for recipe inclusion.
+
+ A recipe build can then use these files to leverage the git fetcher
+ and related functionality (mirrors, sstate, etc).
+
+ Note 1: --rev does not have to be a tag, if you want to track the tip of
+ a branch specify the latest git has on that branch, and it will
+ be used.
+
+ Note 2: This script does not generate an entire recipe, the way the
+ the outputs are used can be modified as required.
+
+ Note 3: if a go.mod has a bad revision, or needs to be manually updated
+ to fetch fixes: go.mod in the main repository (see the repos/
+ directory). If go.mod is edited, modules.txt also has to be
+ updated to match the revision information.
+
+ How to use in a recipe:
+ =======================
+
+ There are examples in meta-virtualization of recipes that use this
+ script and stragegy for builds: docker-compose, nerdcli, k3s
+
+ 1) The recipe should set the master repository SRCREV details, and then include
+ the src_uri.inc file:
+
+ SRCREV_nerdcli = "e084a2df4a8861eb5f0b0d32df0643ef24b81093"
+ SRC_URI = "git://github.com/containerd/nerdctl.git;name=nerdcli;branch=master;protocol=https"
+
+ include src_uri.inc
+
+ This results in the SRC_URI being fully populated with the main
+ repository and all dependencies.
+
+ 2) The recipe should either copy, or include the relocation.inc file. It sets
+ a variable "sites" that is a list of source locations (where the src_uri.inc
+ fetches) and destination in a vendor directory, it also has a do_compile:prepend()
+ that contains a loop which relocates the fetches into a vendor.copy directory.
+
+ It is expected to be processed as follows, before compilation starts:
+
+ # sets the "sites" variable and copies files
+ include relocation.inc
+
+ The do_compile:prepend, contains the following loop:
+
+ cd ${S}/src/import
+ # this moves all the fetches into the proper vendor structure
+ # expected for build
+ for s in ${sites}; do
+ site_dest=$(echo $s | cut -d: -f1)
+ site_source=$(echo $s | cut -d: -f2)
+ force_flag=$(echo $s | cut -d: -f3)
+ mkdir -p vendor.copy/$site_dest
+ if [ -n "$force_flag" ]; then
+ echo "[INFO] $site_dest: force copying .go files"
+ rm -rf vendor.copy/$site_dest
+ rsync -a --exclude='vendor/' --exclude='.git/' vendor.fetch/$site_source/ vendor.copy/$site_dest
+ else
+ [ -n "$(ls -A vendor.copy/$site_dest/*.go 2> /dev/null)" ] && { echo "[INFO] vendor.fetch/$site_source -> $site_dest: go copy skipped (files present)" ; true ; } || { echo "[INFO] $site_dest: copying .go files" ; rsync -a --exclude='vendor/' --exclude='.git/' vendor.fetch/$site_source/ vendor.copy/$site_dest ; }
+ fi
+ done
+
+ The main compile() function, should set the appropriate GO variables,
+ copy modules.txt and build the appripriate target:
+
+ # our copied .go files are to be used for the build
+ ln -sf vendor.copy vendor
+
+ 3) The modules.txt file should be copied into the recipe directory, included
+ on the SRC_URI and copied into place after the relocation has been
+ processed.
+
+ # patches and config
+ SRC_URI += "file://0001-Makefile-allow-external-specification-of-build-setti.patch \\
+ file://modules.txt \
+ "
+
+ .....
+
+ cp ${WORKDIR}/modules.txt vendor/
+
+ Example: Updating the K3S recipe
+ ================================
+
+ % cd meta-virtualization/recipe-containers/k3s/
+ # produces src_uri.inc, relocation.inc and modules.txt in the current directory
+ % ../../scripts/oe-go-mod-autogen.py --repo https://github.com/rancher/k3s.git --rev v1.27.5+k3s1
+
+ % cp modules.txt k3s/
+
+ ... add and commit files.
+
+
+ '''))
+ parser.add_argument("--repo", help = "Repo for the recipe.", required=True)
+ parser.add_argument("--rev", help = "Revision for the recipe.", required=True)
+ parser.add_argument("--module", help = "Go module name. To be used with '--test'")
+ parser.add_argument("--version", help = "Go module version. To be used with '--test'")
+ parser.add_argument("--test", help = "Test to get repo url and fullsrcrev, used together with --module and --version.", action="store_true")
+ parser.add_argument("--workdir", help = "Working directory to hold intermediate results and output.", default=os.getcwd())
+ parser.add_argument("-d", "--debug",
+ help = "Enable debug output",
+ action="store_const", const=logging.DEBUG, dest="loglevel", default=logging.INFO)
+ parser.add_argument("-q", "--quiet",
+ help = "Hide all output except error messages",
+ action="store_const", const=logging.ERROR, dest="loglevel")
+ parser.add_argument("-v", action='store_true', dest="verbose",
+ help="verbose")
+
+ args = parser.parse_args()
+
+ if args.verbose:
+ args.loglevel = args.verbose
+ args = parser.parse_args()
+
+ logger.setLevel(args.loglevel)
+ logger.debug("oe-go-mod-autogen.py running for %s:%s in %s" % (args.repo, args.rev, args.workdir))
+ gomodtool = GoModTool(args.repo, args.rev, args.workdir)
+ if args.test:
+ if not args.module or not args.version:
+ print("Please specify --module and --version")
+ sys.exit(1)
+ url, srcrev = gomodtool.get_url_srcrev(args.module, args.version)
+ print("url = %s, srcrev = %s" % (url, srcrev))
+ if not url or not srcrev:
+ print("Failed to get url & srcrev for %s:%s" % (args.module, args.version))
+ else:
+ gomodtool.parse()
+ gomodtool.sanity_check()
+ gomodtool.gen_src_uri_inc()
+ gomodtool.gen_relocation_inc()
+ gomodtool.gen_modules_txt()
+
+
+if __name__ == "__main__":
+ try:
+ ret = main()
+ except Exception as esc:
+ ret = 1
+ import traceback
+ traceback.print_exc()
+ sys.exit(ret)
diff --git a/wic/qemuboot-xen-x86-64.cfg b/wic/qemuboot-xen-x86-64.cfg
new file mode 100644
index 00000000..94fb0890
--- /dev/null
+++ b/wic/qemuboot-xen-x86-64.cfg
@@ -0,0 +1,8 @@
+DEFAULT boot
+TIMEOUT 0
+PROMPT 0
+SERIAL 0 115200
+
+LABEL boot
+ KERNEL mboot.c32
+ APPEND /xen.gz console=com1,vga com1=115200,8n1 loglvl=all guest_loglvl=all --- /bZimage console=hvc0 earlyprintk=xen root=/dev/sda2 pmtmr=0
diff --git a/wic/qemuboot-xen-x86-64.wks b/wic/qemuboot-xen-x86-64.wks
new file mode 100644
index 00000000..593e0a66
--- /dev/null
+++ b/wic/qemuboot-xen-x86-64.wks
@@ -0,0 +1,12 @@
+# short-description: Create a 'pcbios' direct disk image with Xen hypervisor and bootloader config
+# long-description: Creates a partitioned legacy BIOS disk image to boot Xen
+# with a bootloader config that the user can directly dd to boot media.
+# Boot files are located on the first vfat partition.
+
+part /boot --source bootimg-biosxen --ondisk sda --label boot --active --align 1024
+
+# For the main partition, it can be useful to add additional space for VMs;
+# eg. increase partition size by appending: --size 10G
+part / --source rootfs --ondisk sda --use-uuid --fstype=ext4 --label root --align 1024
+
+bootloader --configfile="qemuboot-xen-x86-64.cfg"