diff --git a/485be65581341430f9106a194a98f0f2412245fb.tar.gz b/485be65581341430f9106a194a98f0f2412245fb.tar.gz deleted file mode 100644 index 6cf25cef30df744724166aa329f67744a69602d3..0000000000000000000000000000000000000000 Binary files a/485be65581341430f9106a194a98f0f2412245fb.tar.gz and /dev/null differ diff --git a/containernetworking-plugins.spec b/containernetworking-plugins.spec index fa2f5841caf49f9dea7b0343c34b5914f261b409..dcf2589be8b2e75e79bf72e9ea435d9cdf1c3590 100644 --- a/containernetworking-plugins.spec +++ b/containernetworking-plugins.spec @@ -1,148 +1,285 @@ +%global with_devel 1 +%global with_bundled 1 %global with_check 0 +%global with_unit_test 1 + +%global debug_package %{nil} -Name: containernetworking-plugins -Version: 0.8.2 -Release: 4.git485be65 -Summary: Library for use by writing CNI plugin -License: ASL 2.0 -URL: https://github.com/containernetworking/plugins -Source0: https://github.com/containernetworking/plugins/archive/485be65581341430f9106a194a98f0f2412245fb.tar.gz - -BuildRequires: golang git - -Obsoletes: containernetworking-cni < 0.7.1-2 -Provides: containernetworking-cni = %{version}-%{release} kubernetes-cni +%global project containernetworking +%global repo plugins +%global import_path github.com/%{project}/%{repo} + +# Used for comparing with latest upstream tag +# to decide whether to autobuild +%global built_tag v1.0.1 +%global built_tag_strip %(b=%{built_tag}; echo ${b:1}) + +Name: %{project}-%{repo} +Version: 1.0.1 +Release: 1 +Summary: Libraries for use by writing CNI plugin +License: ASL 2.0 +URL: https://github.com/containernetworking/plugins +Source0: https://github.com/containernetworking/plugins/archive/%{built_tag}.tar.gz +BuildRequires: golang >= 1.16.6 +BuildRequires: git +BuildRequires: systemd-devel +Requires: systemd + +%if ! 0%{?with_bundled} +BuildRequires: go-bindata +BuildRequires: golang(github.com/vishvananda/netlink) +BuildRequires: golang(github.com/coreos/go-systemd/activation) +BuildRequires: golang(github.com/d2g/dhcp4) +BuildRequires: golang(github.com/d2g/dhcp4client) +BuildRequires: golang(github.com/vishvananda/netlink) +BuildRequires: golang(golang.org/x/sys/unix) +BuildRequires: golang(github.com/coreos/go-iptables/iptables) +%endif + +Obsoletes: %{project}-cni < 0.7.1-2 +Provides: %{project}-cni = %{version}-%{release} +Provides: kubernetes-cni + %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. - - +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. + +%if 0%{?with_devel} %package devel -Summary: Library for use by writing CNI plugin -BuildArch:noarch - +Summary: %{summary} +BuildArch: noarch + +%if 0%{?with_check} && ! 0%{?with_bundled} +BuildRequires: golang(github.com/coreos/go-iptables/iptables) +BuildRequires: golang(github.com/vishvananda/netlink) +BuildRequires: golang(golang.org/x/sys/unix) +%endif + +Requires: golang(github.com/coreos/go-iptables/iptables) +Requires: golang(github.com/vishvananda/netlink) +Requires: golang(golang.org/x/sys/unix) + +Provides: golang(%{import_path}/libcni) = %{version}-%{release} +Provides: golang(%{import_path}/pkg/invoke) = %{version}-%{release} +Provides: golang(%{import_path}/pkg/invoke/fakes) = %{version}-%{release} +Provides: golang(%{import_path}/pkg/ip) = %{version}-%{release} +Provides: golang(%{import_path}/pkg/ipam) = %{version}-%{release} +Provides: golang(%{import_path}/pkg/ns) = %{version}-%{release} +Provides: golang(%{import_path}/pkg/skel) = %{version}-%{release} +Provides: golang(%{import_path}/pkg/testutils) = %{version}-%{release} +Provides: golang(%{import_path}/pkg/types) = %{version}-%{release} +Provides: golang(%{import_path}/pkg/types/020) = %{version}-%{release} +Provides: golang(%{import_path}/pkg/types/current) = %{version}-%{release} +Provides: golang(%{import_path}/pkg/utils) = %{version}-%{release} +Provides: golang(%{import_path}/pkg/utils/hwaddr) = %{version}-%{release} +Provides: golang(%{import_path}/pkg/utils/sysctl) = %{version}-%{release} +Provides: golang(%{import_path}/pkg/version) = %{version}-%{release} +Provides: golang(%{import_path}/pkg/version/legacy_examples) = %{version}-%{release} +Provides: golang(%{import_path}/pkg/version/testhelpers) = %{version}-%{release} +Provides: golang(%{import_path}/plugins/ipam/host-local/backend) = %{version}-%{release} +Provides: golang(%{import_path}/plugins/ipam/host-local/backend/allocator) = %{version}-%{release} +Provides: golang(%{import_path}/plugins/ipam/host-local/backend/disk) = %{version}-%{release} +Provides: golang(%{import_path}/plugins/ipam/host-local/backend/testing) = %{version}-%{release} +Provides: golang(%{import_path}/plugins/test/noop/debug) = %{version}-%{release} + %description devel -%{name}-devel provides libraries for those packages with the "github.com/containernetworking/plugins" -prefix to be used at build time. - +This package contains library source intended for +building other packages which use import path with +%{import_path} prefix. +%endif + +%if 0%{?with_unit_test} && 0%{?with_devel} %package unit-test-devel -Summary: Unit tests for containernetworking-plugins package - +Summary: Unit tests for %{name} package +%if 0%{?with_check} +%endif + Requires: %{name}-devel = %{version}-%{release} - + +%if 0%{?with_check} && ! 0%{?with_bundled} +BuildRequires: golang(github.com/d2g/dhcp4) +BuildRequires: golang(github.com/onsi/ginkgo) +BuildRequires: golang(github.com/onsi/ginkgo/config) +BuildRequires: golang(github.com/onsi/ginkgo/extensions/table) +BuildRequires: golang(github.com/onsi/gomega) +BuildRequires: golang(github.com/onsi/gomega/gbytes) +BuildRequires: golang(github.com/onsi/gomega/gexec) +BuildRequires: golang(github.com/vishvananda/netlink/nl) +%endif + +Requires: golang(github.com/d2g/dhcp4) +Requires: golang(github.com/onsi/ginkgo) +Requires: golang(github.com/onsi/ginkgo/config) +Requires: golang(github.com/onsi/ginkgo/extensions/table) +Requires: golang(github.com/onsi/gomega) +Requires: golang(github.com/onsi/gomega/gbytes) +Requires: golang(github.com/onsi/gomega/gexec) +Requires: golang(github.com/vishvananda/netlink/nl) + %description unit-test-devel -%{name}-devel provides libraries for those packages with the "github.com/containernetworking/plugins" -prefix to be used at build time. - +This package contains unit tests for project +providing packages with %{import_path} prefix. +%endif + %prep -%autosetup -Sgit -n plugins-485be65581341430f9106a194a98f0f2412245fb -p1 +%autosetup -Sgit -n %{repo}-%{built_tag_strip} rm -rf plugins/main/windows - + +# Use correct paths in cni-dhcp unitfiles +sed -i 's/\/opt\/cni\/bin/\%{_prefix}\/libexec\/cni/' plugins/ipam/dhcp/systemd/cni-dhcp.service + %build -export ORG_PATH="github.com/containernetworking" -export REPO_PATH="github.com/containernetworking/plugins" - -if [ ! -h gopath/src/github.com/containernetworking/plugins ]; then - mkdir -p gopath/src/github.com/containernetworking - ln -s ../../../.. gopath/src/github.com/containernetworking/plugins || exit 255 +export ORG_PATH="github.com/%{project}" +export REPO_PATH="$ORG_PATH/%{repo}" + +if [ ! -h gopath/src/${REPO_PATH} ]; then + mkdir -p gopath/src/${ORG_PATH} + ln -s ../../../.. gopath/src/${REPO_PATH} || exit 255 fi - + export GOPATH=$(pwd)/gopath mkdir -p $(pwd)/bin export GO111MODULE=off + +echo "Building plugins" export PLUGINS="plugins/meta/* plugins/main/* plugins/ipam/* plugins/sample" - -for dirpath in $PLUGINS; do - if [ -d "$dirpath" ]; then - plugin="$(basename "$dirpath")" - go build -buildmode pie -compiler gc -tags="rpm_crashtraceback ${BUILDTAGS:-}" -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -extldflags '%__global_ldflags %{?__golang_extldflags}'" -a -v -x -o "${PWD}/bin/$plugin" "$@" github.com/containernetworking/plugins/$dirpath - fi +for d in $PLUGINS; do + if [ -d "$d" ]; then + plugin="$(basename "$d")" + echo " $plugin" + go build -buildmode pie -compiler gc -tags="rpm_crashtraceback ${BUILDTAGS:-}" -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -extldflags '%__global_ldflags %{?__golang_extldflags}'" -a -v -x -o "${PWD}/bin/$plugin" "$@" github.com/containernetworking/plugins/$d + fi done - + %install -install -d -p %{buildroot}%{_libexecdir}/cni/ -install -p -m755 bin/* %{buildroot}/%{_libexecdir}/cni +install -d -p %{buildroot}%{_libexecdir}/cni/ +install -p -m 0755 bin/* %{buildroot}/%{_libexecdir}/cni install -d -p %{buildroot}/%{gopath}/src/github.com/containernetworking/plugins/ - -echo "%%dir %%{gopath}/src/github.com/containernetworking/plugins/." >> devel.file-list + +install -dp %{buildroot}%{_unitdir} +install -p plugins/ipam/dhcp/systemd/cni-dhcp.service %{buildroot}%{_unitdir} +install -p plugins/ipam/dhcp/systemd/cni-dhcp.socket %{buildroot}%{_unitdir} + +# source codes for building projects +%if 0%{?with_devel} +install -d -p %{buildroot}/%{gopath}/src/%{import_path}/ +echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list +# find all *.go but no *_test.go files and generate devel.file-list for file in $(find . \( -iname "*.go" -or -iname "*.s" \) \! -iname "*_test.go" | grep -v "vendor") ; do dirprefix=$(dirname $file) - install -d -p %{buildroot}/%{gopath}/src/github.com/containernetworking/plugins/$dirprefix - cp -pav $file %{buildroot}/%{gopath}/src/github.com/containernetworking/plugins/$file - echo "%%{gopath}/src/github.com/containernetworking/plugins/$file" >> devel.file-list - + install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$dirprefix + cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file + echo "%%{gopath}/src/%%{import_path}/$file" >> devel.file-list + while [ "$dirprefix" != "." ]; do - echo "%%dir %%{gopath}/src/github.com/containernetworking/plugins/$dirprefix" >> devel.file-list + echo "%%dir %%{gopath}/src/%%{import_path}/$dirprefix" >> devel.file-list dirprefix=$(dirname $dirprefix) done done - -install -d -p %{buildroot}/%{gopath}/src/github.com/containernetworking/plugins/ - +%endif + +# testing files for this project +%if 0%{?with_unit_test} && 0%{?with_devel} +install -d -p %{buildroot}/%{gopath}/src/%{import_path}/ +# find all *_test.go files and generate unit-test-devel.file-list for file in $(find . -iname "*_test.go" | grep -v "vendor") ; do dirprefix=$(dirname $file) - install -d -p %{buildroot}/%{gopath}/src/github.com/containernetworking/plugins/$dirprefix - cp -pav $file %{buildroot}/%{gopath}/src/github.com/containernetworking/plugins/$file - echo "%%{gopath}/src/github.com/containernetworking/plugins/$file" >> unit-test-devel.file-list - + install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$dirprefix + cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file + echo "%%{gopath}/src/%%{import_path}/$file" >> unit-test-devel.file-list + while [ "$dirprefix" != "." ]; do - echo "%%dir %%{gopath}/src/github.com/containernetworking/plugins/$dirprefix" >> devel.file-list + echo "%%dir %%{gopath}/src/%%{import_path}/$dirprefix" >> devel.file-list dirprefix=$(dirname $dirprefix) done done - +%endif + +%if 0%{?with_devel} sort -u -o devel.file-list devel.file-list - +%endif + %check -%if 0%(?with_check) -ln -s ./ ./vendor/src +%if 0%{?with_check} && 0%{?with_unit_test} && 0%{?with_devel} +%if ! 0%{?with_bundled} +export GOPATH=%{buildroot}/%{gopath}:%{gopath} +%else +# Since we aren't packaging up the vendor directory we need to link +# back to it somehow. Hack it up so that we can add the vendor +# directory from BUILD dir as a gopath to be searched when executing +# tests from the BUILDROOT dir. +ln -s ./ ./vendor/src # ./vendor/src -> ./vendor + export GOPATH=%{buildroot}/%{gopath}:$(pwd)/vendor:%{gopath} - -%gotest github.com/containernetworking/plugins/libcni -%gotest github.com/containernetworking/plugins/pkg/invoke -%gotest github.com/containernetworking/plugins/pkg/ip -%gotest github.com/containernetworking/plugins/pkg/ipam -%gotest github.com/containernetworking/plugins/pkg/ns -%gotest github.com/containernetworking/plugins/pkg/skel -%gotest github.com/containernetworking/plugins/pkg/types -%gotest github.com/containernetworking/plugins/pkg/types/020 -%gotest github.com/containernetworking/plugins/pkg/types/current -%gotest github.com/containernetworking/plugins/pkg/utils -%gotest github.com/containernetworking/plugins/pkg/utils/hwaddr -%gotest github.com/containernetworking/plugins/pkg/version -%gotest github.com/containernetworking/plugins/pkg/version/legacy_examples -%gotest github.com/containernetworking/plugins/pkg/version/testhelpers -%gotest github.com/containernetworking/plugins/plugins/ipam/dhcp -%gotest github.com/containernetworking/plugins/plugins/ipam/host-local -%gotest github.com/containernetworking/plugins/plugins/ipam/host-local/backend/allocator -%gotest github.com/containernetworking/plugins/plugins/main/bridge -%gotest github.com/containernetworking/plugins/plugins/main/ipvlan -%gotest github.com/containernetworking/plugins/plugins/main/loopback -%gotest github.com/containernetworking/plugins/plugins/main/macvlan -%gotest github.com/containernetworking/plugins/plugins/main/ptp -%gotest github.com/containernetworking/plugins/plugins/meta/flannel -%gotest github.com/containernetworking/plugins/plugins/test/noop %endif - + +%if ! 0%{?gotest:1} +%global gotest go test +%endif + +%gotest %{import_path}/libcni +%gotest %{import_path}/pkg/invoke +%gotest %{import_path}/pkg/ip +%gotest %{import_path}/pkg/ipam +%gotest %{import_path}/pkg/ns +%gotest %{import_path}/pkg/skel +%gotest %{import_path}/pkg/types +%gotest %{import_path}/pkg/types/020 +%gotest %{import_path}/pkg/types/current +%gotest %{import_path}/pkg/utils +%gotest %{import_path}/pkg/utils/hwaddr +%gotest %{import_path}/pkg/version +%gotest %{import_path}/pkg/version/legacy_examples +%gotest %{import_path}/pkg/version/testhelpers +%gotest %{import_path}/plugins/ipam/dhcp +%gotest %{import_path}/plugins/ipam/host-local +%gotest %{import_path}/plugins/ipam/host-local/backend/allocator +%gotest %{import_path}/plugins/main/bridge +%gotest %{import_path}/plugins/main/ipvlan +%gotest %{import_path}/plugins/main/loopback +%gotest %{import_path}/plugins/main/macvlan +%gotest %{import_path}/plugins/main/ptp +%gotest %{import_path}/plugins/meta/flannel +%gotest %{import_path}/plugins/test/noop +%endif + +#define license tag if not already defined +%{!?_licensedir:%global license %doc} + %files %license LICENSE %doc *.md %dir %{_libexecdir}/cni %{_libexecdir}/cni/* - +%{_unitdir}/cni-dhcp.service +%{_unitdir}/cni-dhcp.socket + +%if 0%{?with_devel} %files devel -f devel.file-list %license LICENSE %doc *.md -%dir %{gopath}/src/github.com/containernetworking - +%dir %{gopath}/src/github.com/%{project} +%endif + +%if 0%{?with_unit_test} && 0%{?with_devel} %files unit-test-devel -f unit-test-devel.file-list %license LICENSE %doc *.md +%endif + %changelog +* Fri Dec 10 2021 haozi007 - 1.0.1-1 +- Type:sync +- ID:NA +- SUG:NA +- DESC: update to 1.0.1 + * Mon Feb 8 2021 lingsheng - 0.8.2-4.git485be65 - Change BuildRequires to golang diff --git a/v1.0.1.tar.gz b/v1.0.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..9c8295316f8507576c164d352364c9544d0ee526 Binary files /dev/null and b/v1.0.1.tar.gz differ