Date
1 - 5 of 5
[PATCH] netavark: init at 1.1.0
Pascal Bach
From: Pascal Bach <pascal.bach@...>
Netavark is replaces cni for podman. The recipe is generated via cargo-bitbake. Modifications are done in netavark.inc to allow re-genrating the recipe for future updates. Signed-off-by: Pascal Bach <pascal.bach@...> --- recipes-containers/netavark/netavark.inc | 6 + recipes-containers/netavark/netavark_1.1.0.bb | 203 ++++++++++++++++++ 2 files changed, 209 insertions(+) create mode 100644 recipes-containers/netavark/netavark.inc create mode 100644 recipes-containers/netavark/netavark_1.1.0.bb diff --git a/recipes-containers/netavark/netavark.inc b/recipes-containers/netavark/netavark.inc new file mode 100644 index 0000000..4123a2d --- /dev/null +++ b/recipes-containers/netavark/netavark.inc @@ -0,0 +1,6 @@ +# Cargo installs the binary to bin so move it to where podman expects it +do_install:append() { + install -d ${D}${libexecdir}/podman/ + mv ${D}${bindir}/* ${D}${libexecdir}/podman/ + rm -rf ${D}${bindir}/ +} diff --git a/recipes-containers/netavark/netavark_1.1.0.bb b/recipes-containers/netavark/netavark_1.1.0.bb new file mode 100644 index 0000000..3bbbad5 --- /dev/null +++ b/recipes-containers/netavark/netavark_1.1.0.bb @@ -0,0 +1,203 @@ +# Auto-Generated by cargo-bitbake 0.3.16-alpha.0 +# +inherit cargo + +# If this is git based prefer versioned ones if they exist +# DEFAULT_PREFERENCE = "-1" + +# how to get netavark could be as easy as but default to a git checkout: +# SRC_URI += "crate://crates.io/netavark/1.1.0" +SRC_URI += "git://github.com/containers/netavark.git;protocol=https;nobranch=1" +SRCREV = "5d2b799537d080a82ed46725705cfcbcb36417f1" +S = "${WORKDIR}/git" +CARGO_SRC_DIR = "" + + +# please note if you have entries that do not begin with crate:// +# you must change them to how that package can be fetched +SRC_URI += " \ + crate://crates.io/aho-corasick/0.7.18 \ + crate://crates.io/anyhow/1.0.58 \ + crate://crates.io/async-broadcast/0.4.0 \ + crate://crates.io/async-channel/1.6.1 \ + crate://crates.io/async-executor/1.4.1 \ + crate://crates.io/async-io/1.7.0 \ + crate://crates.io/async-lock/2.5.0 \ + crate://crates.io/async-recursion/0.3.2 \ + crate://crates.io/async-task/4.3.0 \ + crate://crates.io/async-trait/0.1.56 \ + crate://crates.io/atty/0.2.14 \ + crate://crates.io/autocfg/1.1.0 \ + crate://crates.io/bitflags/1.3.2 \ + crate://crates.io/block-buffer/0.10.2 \ + crate://crates.io/byteorder/1.4.3 \ + crate://crates.io/bytes/1.1.0 \ + crate://crates.io/cache-padded/1.2.0 \ + crate://crates.io/cc/1.0.73 \ + crate://crates.io/cfg-if/1.0.0 \ + crate://crates.io/chrono/0.4.19 \ + crate://crates.io/clap/3.2.8 \ + crate://crates.io/clap_derive/3.2.7 \ + crate://crates.io/clap_lex/0.2.4 \ + crate://crates.io/concurrent-queue/1.2.2 \ + crate://crates.io/cpufeatures/0.2.2 \ + crate://crates.io/crypto-common/0.1.5 \ + crate://crates.io/derivative/2.2.0 \ + crate://crates.io/digest/0.10.3 \ + crate://crates.io/dirs-sys/0.3.7 \ + crate://crates.io/dirs/4.0.0 \ + crate://crates.io/easy-parallel/3.2.0 \ + crate://crates.io/enumflags2/0.7.5 \ + crate://crates.io/enumflags2_derive/0.7.4 \ + crate://crates.io/env_logger/0.9.0 \ + crate://crates.io/event-listener/2.5.2 \ + crate://crates.io/fastrand/1.7.0 \ + crate://crates.io/form_urlencoded/1.0.1 \ + 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-lite/1.12.0 \ + 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/futures/0.3.21 \ + crate://crates.io/generic-array/0.14.5 \ + crate://crates.io/getrandom/0.2.7 \ + crate://crates.io/hashbrown/0.12.2 \ + crate://crates.io/heck/0.4.0 \ + crate://crates.io/hermit-abi/0.1.19 \ + crate://crates.io/hex/0.4.3 \ + crate://crates.io/humantime/2.1.0 \ + crate://crates.io/idna/0.2.3 \ + crate://crates.io/indexmap/1.9.1 \ + crate://crates.io/instant/0.1.12 \ + crate://crates.io/ipnet/2.5.0 \ + crate://crates.io/iptables/0.5.0 \ + crate://crates.io/itoa/1.0.2 \ + crate://crates.io/lazy_static/1.4.0 \ + crate://crates.io/libc/0.2.126 \ + crate://crates.io/lock_api/0.4.7 \ + crate://crates.io/log/0.4.17 \ + crate://crates.io/matches/0.1.9 \ + crate://crates.io/memchr/2.5.0 \ + crate://crates.io/memoffset/0.6.5 \ + crate://crates.io/mio/0.8.4 \ + crate://crates.io/netlink-packet-core/0.4.2 \ + crate://crates.io/netlink-packet-route/0.13.0 \ + crate://crates.io/netlink-packet-utils/0.5.1 \ + crate://crates.io/netlink-proto/0.10.0 \ + crate://crates.io/netlink-sys/0.8.3 \ + crate://crates.io/nix/0.23.1 \ + crate://crates.io/nix/0.24.2 \ + crate://crates.io/num-integer/0.1.45 \ + crate://crates.io/num-traits/0.2.15 \ + crate://crates.io/num_cpus/1.13.1 \ + crate://crates.io/once_cell/1.13.0 \ + crate://crates.io/ordered-float/2.10.0 \ + crate://crates.io/ordered-stream/0.0.1 \ + crate://crates.io/os_str_bytes/6.1.0 \ + crate://crates.io/parking/2.0.0 \ + crate://crates.io/parking_lot/0.11.2 \ + crate://crates.io/parking_lot/0.12.1 \ + crate://crates.io/parking_lot_core/0.8.5 \ + crate://crates.io/parking_lot_core/0.9.3 \ + crate://crates.io/paste/1.0.7 \ + crate://crates.io/percent-encoding/2.1.0 \ + crate://crates.io/pin-project-lite/0.2.9 \ + crate://crates.io/pin-utils/0.1.0 \ + crate://crates.io/polling/2.2.0 \ + crate://crates.io/ppv-lite86/0.2.16 \ + crate://crates.io/proc-macro-crate/1.1.3 \ + crate://crates.io/proc-macro-error-attr/1.0.4 \ + crate://crates.io/proc-macro-error/1.0.4 \ + crate://crates.io/proc-macro2/1.0.40 \ + crate://crates.io/quote/1.0.20 \ + crate://crates.io/rand/0.8.5 \ + crate://crates.io/rand_chacha/0.3.1 \ + crate://crates.io/rand_core/0.6.3 \ + crate://crates.io/redox_syscall/0.2.13 \ + crate://crates.io/redox_users/0.4.3 \ + crate://crates.io/regex-syntax/0.6.27 \ + crate://crates.io/regex/1.6.0 \ + crate://crates.io/remove_dir_all/0.5.3 \ + crate://crates.io/rtnetlink/0.11.0 \ + crate://crates.io/ryu/1.0.10 \ + crate://crates.io/same-file/1.0.6 \ + crate://crates.io/scopeguard/1.1.0 \ + crate://crates.io/serde-value/0.7.0 \ + crate://crates.io/serde/1.0.140 \ + crate://crates.io/serde_derive/1.0.140 \ + crate://crates.io/serde_json/1.0.82 \ + crate://crates.io/serde_repr/0.1.8 \ + crate://crates.io/sha1/0.6.1 \ + crate://crates.io/sha1_smol/1.0.0 \ + crate://crates.io/sha2/0.10.2 \ + crate://crates.io/signal-hook-registry/1.4.0 \ + crate://crates.io/slab/0.4.6 \ + crate://crates.io/smallvec/1.9.0 \ + crate://crates.io/socket2/0.4.4 \ + crate://crates.io/static_assertions/1.1.0 \ + crate://crates.io/strsim/0.10.0 \ + crate://crates.io/syn/1.0.98 \ + crate://crates.io/sysctl/0.4.4 \ + crate://crates.io/tempfile/3.3.0 \ + crate://crates.io/termcolor/1.1.3 \ + crate://crates.io/textwrap/0.15.0 \ + crate://crates.io/thiserror-impl/1.0.31 \ + crate://crates.io/thiserror/1.0.31 \ + crate://crates.io/time/0.1.44 \ + crate://crates.io/tinyvec/1.6.0 \ + crate://crates.io/tinyvec_macros/0.1.0 \ + crate://crates.io/tokio-macros/1.8.0 \ + crate://crates.io/tokio/1.20.0 \ + crate://crates.io/toml/0.5.9 \ + crate://crates.io/tracing-attributes/0.1.22 \ + crate://crates.io/tracing-core/0.1.28 \ + crate://crates.io/tracing/0.1.35 \ + crate://crates.io/typenum/1.15.0 \ + crate://crates.io/uds_windows/1.0.2 \ + crate://crates.io/unicode-bidi/0.3.8 \ + crate://crates.io/unicode-ident/1.0.1 \ + crate://crates.io/unicode-normalization/0.1.21 \ + crate://crates.io/url/2.2.2 \ + crate://crates.io/version_check/0.9.4 \ + crate://crates.io/waker-fn/1.1.0 \ + crate://crates.io/walkdir/2.3.2 \ + crate://crates.io/wasi/0.10.0+wasi-snapshot-preview1 \ + crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \ + crate://crates.io/wepoll-ffi/0.1.2 \ + 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/winapi/0.3.9 \ + crate://crates.io/windows-sys/0.36.1 \ + crate://crates.io/windows_aarch64_msvc/0.36.1 \ + crate://crates.io/windows_i686_gnu/0.36.1 \ + crate://crates.io/windows_i686_msvc/0.36.1 \ + crate://crates.io/windows_x86_64_gnu/0.36.1 \ + crate://crates.io/windows_x86_64_msvc/0.36.1 \ + crate://crates.io/zbus/2.3.2 \ + crate://crates.io/zbus_macros/2.3.2 \ + crate://crates.io/zbus_names/2.1.0 \ + crate://crates.io/zvariant/3.4.1 \ + crate://crates.io/zvariant_derive/3.4.1 \ +" + + + +# FIXME: update generateme with the real MD5 of the license file +LIC_FILES_CHKSUM = " \ + file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327 \ +" + +SUMMARY = "A container network stack" +HOMEPAGE = "https://github.com/containers/netavark" +LICENSE = "Apache-2.0" + +# includes this file if it exists but does not fail +# this is useful for anything you may want to override from +# what cargo-bitbake generates. +include netavark-${PV}.inc +include netavark.inc -- 2.37.2
|
|
Bruce Ashfield
On Thu, Aug 18, 2022 at 5:43 AM Pascal Bach <pascal.bach@...> wrote:
s/is replaces/is a replacement/ Since this can replace CNI, can they co-exist at the same time ? We should mention that in the commit message. If they both can't be active on the target at the same time, then we should have a RCONFLICTS in the recipe to make sure they aren't both installed. Bruce The recipe is generated via cargo-bitbake. Modifications are done -- - Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end - "Use the force Harry" - Gandalf, Star Trek II
|
|
Pascal Bach
Both can be installed in parallel. And from what I have seen if both are installeds/is replaces/is a replacement/ podman seems to prefer netavark. The backend can be mahually selected in the podman config https://github.com/containers/common/blob/main/docs/containers.conf.5.md#network-table but only one can be used at a time. Pascal
|
|
Bruce Ashfield
On Thu, Aug 18, 2022 at 9:17 AM Bach, Pascal <pascal.bach@...> wrote:
likewise, that is what I was seeing as well. But I've been avoiding itBoth can be installed in parallel. And from what I have seen if both are installeds/is replaces/is a replacement/ (netavark) for CNI so far :) The backend can be mahually selected in the podman configI can run my multi-container, multi-runtime tests against it at some point (I put all the runtimes, all the frameworks and all the networking on a single image to see what breaks), and then document the results. Bruce
-- - Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end - "Use the force Harry" - Gandalf, Star Trek II
|
|
Yocto
On Thursday 18 August 2022 20:45:42 PM (+07:00), Bruce Ashfield wrote:
On Thu, Aug 18, 2022 at 9:17 AM Bach, Pascal <pascal.bach@...>wrote: shoulds/is replaces/is a replacement/ themention that in the commit message. If they both can't be active on recipe totarget at the same time, then we should have a RCONFLICTS in the are installedmake sure they aren't both installed.Both can be installed in parallel. And from what I have seen if both They can be installed together and should, netavark is and will be the primary, and you must configure manually to use cnipodman seems to prefer netavark. yet CNI and Netavark cannot be used simultaneously in order to avoid conflicts in the configurations the two create. https://github.com/containers/common/blob/main/docs/containers.conf.5.md#network-table --but only one can be used at a time.I can run my multi-container, multi-runtime tests against it at some Sent with Vivaldi Mail. Download Vivaldi for free at vivaldi.com
|
|