Sync from SUSE:ALP:Source:Standard:1.0 cni revision 2f7877d974ac4e17d77ef611d670faf0

This commit is contained in:
Adrian Schröter 2023-12-22 12:02:09 +01:00
commit e88a07bebe
9 changed files with 636 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

View File

@ -0,0 +1,167 @@
From 383b2e75a7a4198c42f8f87833eefb772868a56f Mon Sep 17 00:00:00 2001
From: Russ Cox <rsc@golang.org>
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 <rsc@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Roland Shoemaker <roland@golang.org>
---
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 == "" {

4
99-loopback.conf Normal file
View File

@ -0,0 +1,4 @@
{
"cniVersion": "0.4.0",
"type": "loopback"
}

20
_service Normal file
View File

@ -0,0 +1,20 @@
<services>
<service name="tar_scm" mode="disabled">
<param name="url">https://github.com/containernetworking/cni.git</param>
<param name="scm">git</param>
<param name="filename">cni</param>
<param name="exclude">.git</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="revision">v1.1.2</param>
<param name="versionrewrite-pattern">v(.*)</param>
<param name="changesgenerate">enable</param>
</service>
<service name="recompress" mode="disabled">
<param name="file">cni-*.tar</param>
<param name="compression">gz</param>
</service>
<service name="set_version" mode="disabled">
<param name="basename">cni</param>
</service>
<service name="go_modules" mode="disabled"/>
</services>

4
_servicedata Normal file
View File

@ -0,0 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/containernetworking/cni.git</param>
<param name="changesrevision">3363d143688bb83ca18489ac8b9dc204c1d49c4a</param></service></servicedata>

BIN
cni-1.1.2.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

310
cni.changes Normal file
View File

@ -0,0 +1,310 @@
-------------------------------------------------------------------
Mon Oct 9 09:40:04 UTC 2023 - Dan Čermák <dcermak@suse.com>
- Bump BuildRequired golang version to >= 1.21, fixes bsc#1216006
-------------------------------------------------------------------
Fri Dec 30 11:08:28 UTC 2022 - Andrea Manzini <andrea.manzini@suse.com>
- 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 <andrea.manzini@suse.com>
- 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 <idesmi@protonmail.com>
- 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 <adrian.glaubitz@suse.com>
- 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 <dmueller@suse.com>
- use buildmode=pie (cnitool is installed into sbindir)
-------------------------------------------------------------------
Tue Mar 16 05:16:27 UTC 2021 - Jeff Kowalczyk <jkowalczyk@suse.com>
- 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 <adrian.glaubitz@suse.com>
- 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 <sgrunert@suse.com>
- Set correct CNI version for 99-loopback.conf
-------------------------------------------------------------------
Tue Jul 16 07:36:57 UTC 2019 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- 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 <adrian.glaubitz@suse.com>
- 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

102
cni.spec Normal file
View File

@ -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

BIN
vendor.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.