commit a9edbe3f83e7585894a3e66b1e366e55e0500bf09b5b9581cdd19cdd92c96614 Author: Adrian Schröter Date: Fri May 3 11:42:35 2024 +0200 Sync from SUSE:SLFO:Main cni revision 2f7877d974ac4e17d77ef611d670faf0 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/0001-fix-upstream-CVE-2021-38561.patch b/0001-fix-upstream-CVE-2021-38561.patch new file mode 100644 index 0000000..e249ffd --- /dev/null +++ b/0001-fix-upstream-CVE-2021-38561.patch @@ -0,0 +1,167 @@ +From 383b2e75a7a4198c42f8f87833eefb772868a56f Mon Sep 17 00:00:00 2001 +From: Russ Cox +Date: Mon, 9 Aug 2021 15:09:12 -0400 +Subject: [PATCH] language: turn parsing panics into ErrSyntax + +We keep finding new panics in the language parser. +Limit the damage by reporting those inputs as syntax errors. + +Change-Id: I786fe127c3df7e4c8e042d15095d3acf3c4e4a50 +Reviewed-on: https://go-review.googlesource.com/c/text/+/340830 +Trust: Russ Cox +Run-TryBot: Russ Cox +TryBot-Result: Go Bot +Reviewed-by: Roland Shoemaker +--- + internal/language/language.go | 43 +++++++++++++++++++++++++++++++---- + internal/language/parse.go | 7 ++++++ + language/parse.go | 22 ++++++++++++++++++ + 3 files changed, 68 insertions(+), 4 deletions(-) + +diff --git a/internal/language/language.go b/internal/language/language.go +index f41aedcfc..6105bc7fa 100644 +--- a/internal/language/language.go ++++ b/internal/language/language.go +@@ -251,6 +251,13 @@ func (t Tag) Parent() Tag { + + // ParseExtension parses s as an extension and returns it on success. + func ParseExtension(s string) (ext string, err error) { ++ defer func() { ++ if recover() != nil { ++ ext = "" ++ err = ErrSyntax ++ } ++ }() ++ + scan := makeScannerString(s) + var end int + if n := len(scan.token); n != 1 { +@@ -461,7 +468,14 @@ func (t Tag) findTypeForKey(key string) (start, sep, end int, hasExt bool) { + // ParseBase parses a 2- or 3-letter ISO 639 code. + // It returns a ValueError if s is a well-formed but unknown language identifier + // or another error if another error occurred. +-func ParseBase(s string) (Language, error) { ++func ParseBase(s string) (l Language, err error) { ++ defer func() { ++ if recover() != nil { ++ l = 0 ++ err = ErrSyntax ++ } ++ }() ++ + if n := len(s); n < 2 || 3 < n { + return 0, ErrSyntax + } +@@ -472,7 +486,14 @@ func ParseBase(s string) (Language, error) { + // ParseScript parses a 4-letter ISO 15924 code. + // It returns a ValueError if s is a well-formed but unknown script identifier + // or another error if another error occurred. +-func ParseScript(s string) (Script, error) { ++func ParseScript(s string) (scr Script, err error) { ++ defer func() { ++ if recover() != nil { ++ scr = 0 ++ err = ErrSyntax ++ } ++ }() ++ + if len(s) != 4 { + return 0, ErrSyntax + } +@@ -489,7 +510,14 @@ func EncodeM49(r int) (Region, error) { + // ParseRegion parses a 2- or 3-letter ISO 3166-1 or a UN M.49 code. + // It returns a ValueError if s is a well-formed but unknown region identifier + // or another error if another error occurred. +-func ParseRegion(s string) (Region, error) { ++func ParseRegion(s string) (r Region, err error) { ++ defer func() { ++ if recover() != nil { ++ r = 0 ++ err = ErrSyntax ++ } ++ }() ++ + if n := len(s); n < 2 || 3 < n { + return 0, ErrSyntax + } +@@ -578,7 +606,14 @@ type Variant struct { + + // ParseVariant parses and returns a Variant. An error is returned if s is not + // a valid variant. +-func ParseVariant(s string) (Variant, error) { ++func ParseVariant(s string) (v Variant, err error) { ++ defer func() { ++ if recover() != nil { ++ v = Variant{} ++ err = ErrSyntax ++ } ++ }() ++ + s = strings.ToLower(s) + if id, ok := variantIndex[s]; ok { + return Variant{id, s}, nil +diff --git a/internal/language/parse.go b/internal/language/parse.go +index c696fd0bd..47ee0fed1 100644 +--- a/internal/language/parse.go ++++ b/internal/language/parse.go +@@ -232,6 +232,13 @@ func Parse(s string) (t Tag, err error) { + if s == "" { + return Und, ErrSyntax + } ++ defer func() { ++ if recover() != nil { ++ t = Und ++ err = ErrSyntax ++ return ++ } ++ }() + if len(s) <= maxAltTaglen { + b := [maxAltTaglen]byte{} + for i, c := range s { +diff --git a/language/parse.go b/language/parse.go +index 11acfd885..59b041008 100644 +--- a/language/parse.go ++++ b/language/parse.go +@@ -43,6 +43,13 @@ func Parse(s string) (t Tag, err error) { + // https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. + // The resulting tag is canonicalized using the canonicalization type c. + func (c CanonType) Parse(s string) (t Tag, err error) { ++ defer func() { ++ if recover() != nil { ++ t = Tag{} ++ err = language.ErrSyntax ++ } ++ }() ++ + tt, err := language.Parse(s) + if err != nil { + return makeTag(tt), err +@@ -79,6 +86,13 @@ func Compose(part ...interface{}) (t Tag, err error) { + // tag is returned after canonicalizing using CanonType c. If one or more errors + // are encountered, one of the errors is returned. + func (c CanonType) Compose(part ...interface{}) (t Tag, err error) { ++ defer func() { ++ if recover() != nil { ++ t = Tag{} ++ err = language.ErrSyntax ++ } ++ }() ++ + var b language.Builder + if err = update(&b, part...); err != nil { + return und, err +@@ -142,6 +156,14 @@ var errInvalidWeight = errors.New("ParseAcceptLanguage: invalid weight") + // Tags with a weight of zero will be dropped. An error will be returned if the + // input could not be parsed. + func ParseAcceptLanguage(s string) (tag []Tag, q []float32, err error) { ++ defer func() { ++ if recover() != nil { ++ tag = nil ++ q = nil ++ err = language.ErrSyntax ++ } ++ }() ++ + var entry string + for s != "" { + if entry, s = split(s, ','); entry == "" { diff --git a/99-loopback.conf b/99-loopback.conf new file mode 100644 index 0000000..8568414 --- /dev/null +++ b/99-loopback.conf @@ -0,0 +1,4 @@ +{ + "cniVersion": "0.4.0", + "type": "loopback" +} diff --git a/_service b/_service new file mode 100644 index 0000000..ffd2781 --- /dev/null +++ b/_service @@ -0,0 +1,20 @@ + + + https://github.com/containernetworking/cni.git + git + cni + .git + @PARENT_TAG@ + v1.1.2 + v(.*) + enable + + + cni-*.tar + gz + + + cni + + + diff --git a/_servicedata b/_servicedata new file mode 100644 index 0000000..4baeda2 --- /dev/null +++ b/_servicedata @@ -0,0 +1,4 @@ + + + https://github.com/containernetworking/cni.git + 3363d143688bb83ca18489ac8b9dc204c1d49c4a \ No newline at end of file diff --git a/cni-1.1.2.tar.gz b/cni-1.1.2.tar.gz new file mode 100644 index 0000000..01c3fdf --- /dev/null +++ b/cni-1.1.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:105ee0fcde31f65af37b0ca4f51c75144873c9f0d0b23f60d7d4b4d73d4718e0 +size 119566 diff --git a/cni.changes b/cni.changes new file mode 100644 index 0000000..1fde50a --- /dev/null +++ b/cni.changes @@ -0,0 +1,310 @@ +------------------------------------------------------------------- +Mon Oct 9 09:40:04 UTC 2023 - Dan Čermák + +- Bump BuildRequired golang version to >= 1.21, fixes bsc#1216006 + +------------------------------------------------------------------- +Fri Dec 30 11:08:28 UTC 2022 - Andrea Manzini + +- added patch 0001-fix-upstream-CVE-2021-38561.patch for [bsc#1206711] + +------------------------------------------------------------------- +Thu Dec 29 14:06:02 UTC 2022 - andrea.manzini@suse.com + +- Update to version 1.1.2: + * Fix successfully unmarshalled nil raw result + * spec: fix format + * invoke: if Result CNIVersion is empty use netconf CNIVersion + * cnitool: address golint error + * libcni: handle empty version when parsing version + * Switch to ginkgo/v2 + * add security heading to README + * Maintainers: add Mike Zappa + * introduce hybridnet to thrid-party plugins + * Fix incorrect pointer inputs to `json.Unmarshal` + * fix version of cni v0.8.1 does not have a directory of github.com/containernetworking/cni/pkg/types/100 refer to https://github.com/containernetworking/cni/tree/v0.8.1/pkg/types + * Spec: Container runtime shall tear down namespaces + * Update README.md + * Updated README.md to include Netlox loxilight CNI + * documentation: update Multus link in README.md to point to the k8snetworkplumbingwg repository + * [exec-plugins]: support plugin lists + * skel: remove superfluous err nil check in (*dispatcher).pluginMain + * Remove Gabe Rosenhouse as maintainer + * skel: print out CNI versions supported in help text. + +------------------------------------------------------------------- +Thu Nov 10 14:06:19 UTC 2022 - Andrea Manzini + +- Update to version 1.1.2: + * spec: fix format + * libcni: handle empty version when parsing version + * [exec-plugins]: support plugin lists + + This is a minor update to the CNI libraries and tooling. + This does not bump the protocol / spec version, which remains at v1.0.0 + +------------------------------------------------------------------- +Fri Mar 26 11:05:40 UTC 2022 - Enrico Belleri + +- Update to version v1.0.1: + * Rewritten spec + + non-List configurations are removed + + the version field in the interfaces array was redundant and + is removed + * libcni improvements +- Employ RPM macros.go where feasible +- Use vendor tarball +- Remove ./build.sh + +------------------------------------------------------------------- +Mon May 31 10:38:40 UTC 2021 - John Paul Adrian Glaubitz + +- Update to version 0.8.1: + * This is a security release that fixes a single bug: bsc#1181961 aka CVE-2021-20206 + - Tighten up plugin-finding logic (#811). + +------------------------------------------------------------------- +Sat Apr 24 09:19:04 UTC 2021 - Dirk Müller + +- use buildmode=pie (cnitool is installed into sbindir) + +------------------------------------------------------------------- +Tue Mar 16 05:16:27 UTC 2021 - Jeff Kowalczyk + +- Set GO111MODULE=auto to build with go1.16+ + * Default changed to GO111MODULE=on in go1.16 + * Set temporarily until using upstream release with go.mod + * Drop BuildRequires: golang-packaging not currently using macros + * Add BuildRequires: golang(API) >= 1.13 recommended dependency expression + +------------------------------------------------------------------- +Thu Oct 1 12:47:37 UTC 2020 - John Paul Adrian Glaubitz + +- Update to version 0.8.0: + * Specification and Conventions changes + + docs: add ips and mac to well-known capabilities + + add interface name validation + + Add GUID to well known Capabilities + + Add DeviceID attribute to RuntimeConfig + + Typo fixes for infiniband GUID + + Fix linting issues in docs, add headers to json example, update errors into table + * Documentation changes + + Update cnitool docs + + Remove extra ',' chars which makes conflist examples invalid. + * libcni changes + + Remove Result.String method + + libcni: add config caching [v2] + + clean up : fix staticcheck warnings + + libcni: add InitCNIConfigWithCacheDir() and deprecate RuntimeConfig.CacheDir + + skel: clean up errors in skel and add some well-known error codes + + libcni: find plugin in exec + + validate containerID and networkName + + skel: remove needless functions and types + + libcni: also cache IfName + + libcni: fix cache file 'result' key name + + Bump Go version to 1.13 + + When CNI version isn't supplied in config, use default. + + intercept netplugin std error + + invoke: capture and return stderr if plugin exits unexpectedly + + Retry exec commands on text file busy + +------------------------------------------------------------------- +Mon Jan 13 10:32:53 UTC 2020 - Sascha Grunert + +- Set correct CNI version for 99-loopback.conf + +------------------------------------------------------------------- +Tue Jul 16 07:36:57 UTC 2019 - John Paul Adrian Glaubitz + +- Update to version 0.7.1 (bsc#1160460): + * Library changes: + + invoke : ensure custom envs of CNIArgs are prepended to process envs + + add GetNetworkListCachedResult to CNI interface + + delegate : allow delegation funcs override CNI_COMMAND env automatically in heritance + * Documentation & Convention changes: + + Update cnitool documentation for spec v0.4.0 + + Add cni-route-override to CNI plugin list + * Build and test changes: + + Release: bump go to v1.12 + +------------------------------------------------------------------- +Fri May 17 12:26:06 UTC 2019 - John Paul Adrian Glaubitz + +- Update to version 0.7.0: + * Spec changes: + + Use more RFC2119 style language in specification (must, should...) + + add notes about ADD/DEL ordering + + Make the container ID required and unique. + + remove the version parameter from ADD and DEL commands. + + Network interface name matters + + be explicit about optional and required structure members + + add CHECK method + + Add a well-known error for "try again" + + SPEC.md: clarify meaning of 'routes' + * Library changes: + + pkg/types: Makes IPAM concrete type + + libcni: return error if Type is empty + + skel: VERSION shouldn't block on stdin + + non-pointer instances of types.Route now correctly marshal to JSON + + libcni: add ValidateNetwork and ValidateNetworkList functions + + pkg/skel: return error if JSON config has no network name + + skel: add support for plugin version string + + libcni: make exec handling an interface for better downstream testing + + libcni: api now takes a Context to allow operations to be timed out or cancelled + + types/version: add helper to parse PrevResult + + skel: only print about message, not errors + + skel,invoke,libcni: implementation of CHECK method + + cnitool: Honor interface name supplied via CNI_IFNAME environment variable. + + cnitool: validate correct number of args + + Don't copy gw from IP4.Gateway to Route.GW When converting from 0.2.0 + + add PrintTo method to Result interface + + Return a better error when the plugin returns none +- Install sleep binary into CNI plugin directory +- Restore build.sh script which was removed upstream + +------------------------------------------------------------------- +Tue Jun 5 08:21:05 UTC 2018 - dcassany@suse.com + +- Refactor %license usage to a simpler form + +------------------------------------------------------------------- +Mon Jun 4 11:27:31 UTC 2018 - dcassany@suse.com + +- Make use of %license macro + +------------------------------------------------------------------- +Wed Apr 4 11:32:32 UTC 2018 - jmassaguerpla@suse.com + +- Remove creating subvolumes. This should be in another package (kubernetes-kubelet) + +------------------------------------------------------------------- +Mon Jan 29 11:12:16 UTC 2018 - kmacinnes@suse.com + +- Use full/absolute path for mksubvolume +- Change snapper Requires to a Requires(post) + +------------------------------------------------------------------- +Thu Jan 18 14:46:16 UTC 2018 - kmacinnes@suse.com + +- Add snapper as a requirement, to provide mksubvolume + +------------------------------------------------------------------- +Mon Jan 15 16:58:15 UTC 2018 - alvaro.saurin@suse.com + +- Make /var/lib/cni writable + +------------------------------------------------------------------- +Tue Dec 19 13:04:22 UTC 2017 - alvaro.saurin@suse.com + +- Remove the dependency with the cni-plugins +- Recommend the cni-plugins + +------------------------------------------------------------------- +Mon Aug 28 15:15:11 UTC 2017 - opensuse-packaging@opensuse.org + +- Update to version 0.6.0: + * Conventions: add convention around chaining interfaces + * pkg/types: safer typecasting for TextUnmarshaler when loading args + * pkg/types: modify LoadArgs to return a named error when an unmarshalable condition is detected + * Update note about next Community Sync, 2017-06-21 + * types: fix marshalling of omitted "interfaces" key in IPConfig JSON + * Update and document release process + * scripts/release.sh: Add in s390x architecture + * cnitool: add support for CNI_ARGS + * README plugins list: add Linen CNI plugin + +------------------------------------------------------------------- +Mon Apr 10 12:23:00 UTC 2017 - opensuse-packaging@opensuse.org + +- Update to version 0.5.2: + * Rename build script to avoid conflict with bazel + * Enable s390x build + * Update community sync detail + * Added entry for CNI-Genie + * travis: shift forward to Go 1.8 and 1.7 + * spec/plugins: fix 'ip'->'ips' in the spec, bump to 0.3.1 + * libcni: Improved error messages. + * libcni: Fixed tests that were checking error strings. + * Documentation: Added documentation for `cnitool`. + +------------------------------------------------------------------- +Thu Mar 23 10:20:35 UTC 2017 - opensuse-packaging@opensuse.org + +- Update to version 0.5.1: + * readme.md: Add link to community sync + * pkg/ip: do not leak types from vendored netlink package + * pkg/ip: SetupVeth returns net.Interface + * pkg/ip: improve docstring for SetupVeth + * Added Romana to list of CNI providers... + * plugins/meta/flannel: If net config is missing do not return err on DEL + * plugins/*: Don't error if the device doesn't exist + +------------------------------------------------------------------- +Wed Mar 22 15:35:19 UTC 2017 - alvaro.saurin@suse.com + +- Update to version 0.5.0: + * Documentation: Add conventions doc + * noop: allow specifying debug file in config JSON + * Spec/Conventions: Update to include plugin config + * spec: add network configuration list specification + * api,libcni: add network config list-based plugin chaining + * Update CONVENTIONS.md + * skel: adds PluginMainWithError which returns a *types.Error + * testutils: pass netConf in for version operations; pass raw result out for tests + * types: make Result an interface and move existing Result to separate package + * macvlan/ipvlan: use common RenameLink method + * plugins/flannel: organize test JSON alphabetically + * pkg/ipam: add testcases + * spec/plugins: return interface details and multiple IP addresses to runtime + * spec, libcni, pkg/invoke: Use OS-agnostic separator when parsing CNI_PATH + * pkg/utils/sysctl/sysctl_linux.go: fix build tag. + * pkg/utils/sysctl/sysctl_linux.go: fix typo. + * invoke: Enable plugin file names with extensions + * CONVENTIONS.md: Update details on port-mappings + * Update with feedback + * More markups + * spec: Remove `routes` from Network Configuration + * docs: consolidate host-local documentation + * pkg/ns: refactored so that builds succeed on non-linux platforms + * Fix grammar + * plugins/main/ptp: set the Sandbox property on the response + * README: List multus as 3rd party plugin + * Replace Michael Bridgen with Bryan Boreham + * pkg/ns, pkg/types: refactored non linux build fix code to + * pkg/ip: refactored so that builds succeed on non-linux platforms + * vendor: Update vishvanana/netlink dependency + * libcni: up-convert a Config to a ConfigList when no other configs are found. + * docs: CNI versioning for 0.3.0 upgrade + * docs: Edits to v0.3.0 upgrade guidance + * docs: minor improvements to 0.3.0 upgrade guidance + * docs: add small upgrade instructions + * docs: minor improvements to spec-upgrades + * docs: fill-out and correct version conversion table + * docs: table formatting is hard + * pkg/testutils: return errors after restoring stdout + * pkg/types: misc current types testcase cleanups + * Minor rewording about default config version + * spec,libcni: add support for injecting runtimeConfig into plugin stdin data + * Check n.IPAM before use it in LoadIPAMConfig function + * do not error if last_reserved_ip is missing for host local ipam + * add test for ensuring initial subnet creation does not contain an error + * fix unrelated failing tests + +------------------------------------------------------------------- +Wed Mar 01 08:52:47 UTC 2017 - opensuse-packaging@opensuse.org + +- Update to version 0.4.0: + * plugins/noop: return a helpful message for test authors + * host-local: trim whitespace from container IDs and disk file contents + * travis: roll forward the versions of Go that we test + * MAINTAINERS: hi CaseyC! + * ipam/host-local: Move allocator and config to backend + * ipam/host-local: add ResolvConf argument for DNS configuration + * spec: notice of version + +------------------------------------------------------------------- +Thu Feb 23 12:17:48 UTC 2017 - alvaro.saurin@suse.com + +- Initial version + + diff --git a/cni.spec b/cni.spec new file mode 100644 index 0000000..6427089 --- /dev/null +++ b/cni.spec @@ -0,0 +1,102 @@ +# +# spec file for package cni +# +# Copyright (c) 2023 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global provider_prefix github.com/containernetworking/cni +%global import_path %{provider_prefix} +%define cni_etc_dir %{_sysconfdir}/cni +%define cni_bin_dir %{_libexecdir}/cni +%define cni_doc_dir %{_docdir}/cni +Name: cni +Version: 1.1.2 +Release: 0 +Summary: Container Network Interface - networking for Linux containers +License: Apache-2.0 +Group: System/Management +URL: https://github.com/containernetworking/cni +Source0: %{name}-%{version}.tar.gz +Source1: 99-loopback.conf +Source2: vendor.tar.gz +# PATCH-FIX-UPSTREAM bsc#1206711 +Patch0: 0001-fix-upstream-CVE-2021-38561.patch +BuildRequires: golang-packaging +BuildRequires: shadow +BuildRequires: systemd-rpm-macros +BuildRequires: golang(API) >= 1.21 +Requires(post): %fillup_prereq +Recommends: cni-plugins +%{?systemd_requires} + +%description +The CNI (Container Network Interface) project consists of a +specification and libraries for writing plugins to configure +network interfaces in Linux containers, along with a number of +supported plugins. CNI concerns itself only with network +connectivity of containers and removing allocated resources when +the container is deleted. Because of this focus, CNI has a wide +range of support and the specification is simple to implement. + +%prep +%autosetup -a2 -N +pushd vendor/golang.org/x/text +%autopatch -p1 +popd + +%build +export GOFLAGS=-mod=vendor +%goprep %{import_path} +%gobuild libcni +%gobuild cnitool +for d in plugins/test/*; do + if [ -d $d ]; then + %gobuild $d + fi +done + +%install +# install the plugins +install -m 755 -d %{buildroot}%{cni_bin_dir} +install -D %{_builddir}/go/bin/noop %{buildroot}%{cni_bin_dir}/ +install -D %{_builddir}/go/bin/sleep %{buildroot}%{cni_bin_dir}/ + +# undo a copy: cnitool must go to sbin/ +install -m 755 -d %{buildroot}%{_sbindir} +install -D %{_builddir}/go/bin/cnitool %{buildroot}%{_sbindir}/ + +# config +install -m 755 -d %{buildroot}%{cni_etc_dir} +install -m 755 -d %{buildroot}%{cni_etc_dir}/net.d +install -D -p -m 0644 %{SOURCE1} %{buildroot}%{cni_etc_dir}/net.d/99-loopback.conf.sample + +# documentation +install -m 755 -d "%{buildroot}%{cni_doc_dir}" + +%post +%{fillup_only -n %{name}} + +%files +%doc CONTRIBUTING.md README.md DCO +%license LICENSE +%dir %{cni_etc_dir} +%dir %{cni_etc_dir}/net.d +%config %{cni_etc_dir}/net.d/* +%dir %{cni_bin_dir} +%dir %{cni_doc_dir} +%{cni_bin_dir}/{noop,sleep} +%{_sbindir}/cnitool + +%changelog diff --git a/vendor.tar.gz b/vendor.tar.gz new file mode 100644 index 0000000..e1a4272 --- /dev/null +++ b/vendor.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10a58222af4f7590f69085fff3391c09efb199ae94313ed184e76f0504f08e39 +size 2016341