# Generated by go2rpm 1.19.0 %bcond check 1 # https://github.com/containerd/containerd %global goipath github.com/containerd/containerd/v2 Version: 2.3.0~beta.0 %{lua: local version0 = rpm.expand("%{version}"):gsub("~", "-") rpm.define("tag " .. "v" .. version0) rpm.define("origversion " .. version0) } %gometa -L -f Name: containerd Release: %autorelease Summary: An open and reliable container runtime # Generated by go-vendor-tools License: Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0 URL: %{gourl} Source0: %{gosource} # Generated by go-vendor-tools Source1: %{archivename}-vendor.tar.bz2 Source2: go-vendor-tools.toml Source3: containerd.toml BuildRequires: /usr/bin/go-md2man BuildRequires: btrfs-progs-devel BuildRequires: go-vendor-tools BuildRequires: make BuildRequires: systemd-rpm-macros BuildRequires: procps-ng BuildRequires: git-core %description An open and reliable container runtime. %prep %goprep -p1 tar -xf %{S:1} # Replace default bin directory sed -i "s|/usr/local/bin/containerd|/usr/bin/containerd|" containerd.service cp -p %{S:3} . %generate_buildrequires %go_vendor_license_buildrequires -c %{S:2} %build %global gomodulesmode GO111MODULE=on # buildtag as set in MAKEFILE export GO_BUILDTAGS="urfave_cli_no_docs" # generate GO_LDFLAGS and drop go macro settings for version, tag, commit export GO_LDFLAGS=" -X %{goipath}/version.Version=%{version} -X %{goipath}/version.Revision=%{release} -X %{goipath}/version.Package=%{goipath} " %global currentgoldflags %{nil} # commands to build for cmd in \ ctr \ containerd \ containerd-stress ; do %gobuild -o %{gobuilddir}/bin/$cmd %{goipath}/cmd/$cmd done # create man pages # drop gen-manpages utility in temp ./man dir mkdir -p man GO_BUILDTAGS="" %gobuild -o man/gen-manpages %{goipath}/cmd/gen-manpages man/gen-manpages ctr.8 man man/gen-manpages containerd.8 man go-md2man -in "docs/man/containerd-config.8.md" -out "man/containerd-config.8" go-md2man -in "docs/man/containerd-config.toml.5.md" -out "man/containerd-config.toml.5" rm man/gen-manpages # shim explicity build with static; mimic makefile settings export CGO_ENABLED=0 GO_BUILDTAGS="urfave_cli_no_docs no_grpc" GO_LDFLAGS="$GO_LDFLAGS -extldflags \"-static\" -s -w" go build \ %{gobuild_baseflags} \ -ldflags "$GO_LDFLAGS " \ -o %{gobuilddir}/bin/containerd-shim-runc-v2 \ %{goipath}/cmd/containerd-shim-runc-v2 # # %%(echo -n %%{gobuild_ldflags}|sed 's/-linkmode=external //') " \ %install %go_vendor_license_install -c %{S:2} # binaries install -m 0755 -vd %{buildroot}%{_bindir} install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}/ # systemd service file install -d -m 0755 %{buildroot}%{_unitdir} install -p -m 0644 containerd.service %{buildroot}%{_unitdir}/containerd.service # /etc/containerd/config.toml install -d -m 0755 %{buildroot}%{_sysconfdir}/containerd install -p -m 0644 containerd.toml %{buildroot}%{_sysconfdir}/containerd/config.toml # man pages install -d -m 0755 %{buildroot}%{_mandir}/man5 install -p -m 0644 man/containerd-config.toml.5 %{buildroot}%{_mandir}/man5 install -d -m 0755 %{buildroot}%{_mandir}/man8 install -p -m 0644 man/ctr.8 %{buildroot}%{_mandir}/man8 install -p -m 0644 man/containerd.8 %{buildroot}%{_mandir}/man8 install -p -m 0644 man/containerd-config.8 %{buildroot}%{_mandir}/man8 %check %go_vendor_license_check -c %{S:2} %if %{with check} %global test_ignores %{shrink: %dnl tests below fail with create tmp file: open ... invalid argument -s "TestWriterTruncateRecoversFromIncompleteWrite" -s "TestWriteReadEmptyFileTimestamp" -s "TestWalkBlobs" -s "TestContentWriter" -s "TestContent" -s "TestSkipNonDistributableBlobs" -s "TestMetadataCollector" -s "TestIngestLeased" -s "TestContentLeased" -s "TestContent" -s "TestUsageCalculation" %dnl integration tests need network -t integration %dnl api is a separate module -d api } %gocheck2 %{test_ignores} %endif %post %systemd_post containerd.service %preun %systemd_preun containerd.service %postun %systemd_postun_with_restart containerd.service %files -f %{go_vendor_license_filelist} %doc ROADMAP.md ADOPTERS.md BUILDING.md README.md RELEASES.md SCOPE.md %{_bindir}/ctr %{_bindir}/containerd %{_bindir}/containerd-stress %{_bindir}/containerd-shim* %{_mandir}/man5/containerd-config.toml.5* %{_mandir}/man8/ctr.8* %{_mandir}/man8/containerd.8* %{_mandir}/man8/containerd-config.8* %dir %{_sysconfdir}/containerd %config(noreplace) %{_sysconfdir}/containerd/config.toml %{_unitdir}/containerd.service %changelog %autochangelog