2022-03-15 01:34:39 +08:00
|
|
|
# For automatic rebuilds in COPR
|
|
|
|
|
|
|
|
# The following tag is to get correct syntax highlighting for this file in vim text editor
|
|
|
|
# vim: syntax=spec
|
|
|
|
|
|
|
|
# Any additinoal comments should go below this line or else syntax highlighting
|
|
|
|
# may not work.
|
|
|
|
|
|
|
|
# CAUTION: This is not a replacement for RPMs provided by your distro.
|
|
|
|
# Only intended to build and test the latest unreleased changes.
|
|
|
|
|
|
|
|
%global with_debug 1
|
|
|
|
|
|
|
|
%if 0%{?with_debug}
|
|
|
|
%global _find_debuginfo_dwz_opts %{nil}
|
|
|
|
%global _dwz_low_mem_die_limit 0
|
|
|
|
%else
|
|
|
|
%global debug_package %{nil}
|
|
|
|
%endif
|
|
|
|
|
|
|
|
%if ! 0%{?gobuild:1}
|
|
|
|
%define gobuild(o:) GO111MODULE=off 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 '-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld '" -a -v -x %{?**};
|
|
|
|
%endif
|
|
|
|
|
|
|
|
%global provider github
|
|
|
|
%global provider_tld com
|
|
|
|
%global project containers
|
|
|
|
%global repo %{name}
|
|
|
|
# https://github.com/containers/%%{name}
|
|
|
|
%global import_path %{provider}.%{provider_tld}/%{project}/%{repo}
|
|
|
|
%global git0 https://%{import_path}
|
|
|
|
|
|
|
|
Name: {{{ git_dir_name }}}
|
|
|
|
Epoch: 101
|
|
|
|
Version: {{{ git_dir_version }}}
|
|
|
|
Release: 1%{?dist}
|
|
|
|
Summary: Manage Pods, Containers and Container Images
|
|
|
|
License: ASL 2.0
|
|
|
|
URL: https://github.com/containers/buildah
|
|
|
|
VCS: {{{ git_dir_vcs }}}
|
|
|
|
Source: {{{ git_dir_pack }}}
|
|
|
|
BuildRequires: device-mapper-devel
|
|
|
|
BuildRequires: git-core
|
|
|
|
BuildRequires: golang
|
|
|
|
BuildRequires: glib2-devel
|
|
|
|
BuildRequires: glibc-static
|
|
|
|
BuildRequires: go-md2man
|
|
|
|
%if 0%{?fedora} || 0%{?rhel} >= 9
|
|
|
|
BuildRequires: go-rpm-macros
|
|
|
|
%endif
|
|
|
|
BuildRequires: gpgme-devel
|
|
|
|
BuildRequires: libassuan-devel
|
|
|
|
BuildRequires: make
|
|
|
|
BuildRequires: ostree-devel
|
2022-06-24 23:26:38 +08:00
|
|
|
BuildRequires: shadow-utils-subid-devel
|
2022-03-15 01:34:39 +08:00
|
|
|
%if 0%{?fedora} && ! 0%{?rhel}
|
|
|
|
BuildRequires: btrfs-progs-devel
|
|
|
|
%endif
|
|
|
|
%if 0%{?fedora} <= 35
|
|
|
|
Requires: containers-common >= 4:1-39
|
|
|
|
%else
|
2022-10-17 18:39:38 +08:00
|
|
|
Requires: containers-common-extra
|
2022-03-15 01:34:39 +08:00
|
|
|
%endif
|
|
|
|
%if 0%{?rhel}
|
|
|
|
BuildRequires: libseccomp-devel
|
|
|
|
%else
|
|
|
|
BuildRequires: libseccomp-static
|
|
|
|
%endif
|
|
|
|
Requires: libseccomp
|
|
|
|
Suggests: cpp
|
|
|
|
Suggests: qemu-user-static
|
|
|
|
|
|
|
|
%description
|
|
|
|
The %{name} package provides a command line tool which can be used to
|
|
|
|
* create a working container from scratch
|
|
|
|
or
|
|
|
|
* create a working container from an image as a starting point
|
|
|
|
* mount/umount a working container's root file system for manipulation
|
|
|
|
* save container's root file system layer to create a new image
|
|
|
|
* delete a working container or an image.
|
|
|
|
|
|
|
|
%package tests
|
|
|
|
Summary: Tests for %{name}
|
|
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
Requires: bats
|
|
|
|
Requires: bzip2
|
|
|
|
Requires: podman
|
|
|
|
Requires: golang
|
|
|
|
Requires: jq
|
|
|
|
Requires: httpd-tools
|
|
|
|
Requires: openssl
|
|
|
|
Requires: nmap-ncat
|
|
|
|
Requires: git-daemon
|
|
|
|
|
|
|
|
%description tests
|
|
|
|
%{summary}
|
|
|
|
|
|
|
|
This package contains system tests for %{name}
|
|
|
|
|
|
|
|
%prep
|
|
|
|
{{{ git_dir_setup_macro }}}
|
|
|
|
|
|
|
|
%build
|
|
|
|
%set_build_flags
|
|
|
|
export GO111MODULE=off
|
|
|
|
export GOPATH=$(pwd)/_build:$(pwd)
|
|
|
|
export CGO_CFLAGS=$CFLAGS
|
|
|
|
# These extra flags present in $CFLAGS have been skipped for now as they break the build
|
|
|
|
CGO_CFLAGS=$(echo $CGO_CFLAGS | sed 's/-flto=auto//g')
|
|
|
|
CGO_CFLAGS=$(echo $CGO_CFLAGS | sed 's/-Wp,D_GLIBCXX_ASSERTIONS//g')
|
|
|
|
CGO_CFLAGS=$(echo $CGO_CFLAGS | sed 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-annobin-cc1//g')
|
|
|
|
|
|
|
|
%ifarch x86_64
|
|
|
|
export CGO_CFLAGS+=" -m64 -mtune=generic -fcf-protection=full"
|
|
|
|
%endif
|
|
|
|
mkdir _build
|
|
|
|
pushd _build
|
|
|
|
mkdir -p src/%{provider}.%{provider_tld}/%{project}
|
|
|
|
ln -s $(dirs +1 -l) src/%{import_path}
|
|
|
|
popd
|
|
|
|
|
|
|
|
mv vendor src
|
|
|
|
|
|
|
|
export CNI_VERSION=`grep '^# github.com/containernetworking/cni ' src/modules.txt | sed 's,.* ,,'`
|
|
|
|
export LDFLAGS="-X main.buildInfo=`date +%s` -X main.cniVersion=${CNI_VERSION}"
|
|
|
|
|
2022-06-24 23:26:38 +08:00
|
|
|
export BUILDTAGS='seccomp libsubid selinux'
|
2022-03-15 01:34:39 +08:00
|
|
|
%if 0%{?rhel}
|
|
|
|
export BUILDTAGS='$BUILDTAGS exclude_graphdriver_btrfs btrfs_noversion'
|
|
|
|
%endif
|
|
|
|
|
|
|
|
%gobuild -o bin/%{name} %{import_path}/cmd/%{name}
|
|
|
|
%gobuild -o bin/imgtype %{import_path}/tests/imgtype
|
|
|
|
%gobuild -o bin/copy %{import_path}/tests/copy
|
|
|
|
GOMD2MAN=go-md2man %{__make} -C docs
|
|
|
|
|
|
|
|
# This will copy the files generated by the `make` command above into
|
|
|
|
# the installable rpm package.
|
|
|
|
%install
|
|
|
|
export GOPATH=$(pwd)/_build:$(pwd):%{gopath}
|
|
|
|
make DESTDIR=%{buildroot} PREFIX=%{_prefix} install install.completions
|
|
|
|
make DESTDIR=%{buildroot} PREFIX=%{_prefix} -C docs install
|
|
|
|
|
|
|
|
install -d -p %{buildroot}/%{_datadir}/%{name}/test/system
|
|
|
|
cp -pav tests/. %{buildroot}/%{_datadir}/%{name}/test/system
|
|
|
|
cp bin/imgtype %{buildroot}/%{_bindir}/%{name}-imgtype
|
|
|
|
cp bin/copy %{buildroot}/%{_bindir}/%{name}-copy
|
|
|
|
|
|
|
|
rm -f %{buildroot}%{_mandir}/man5/{Containerfile.5*,containerignore.5*}
|
|
|
|
|
|
|
|
|
|
|
|
%files
|
|
|
|
%license LICENSE
|
|
|
|
%doc README.md
|
|
|
|
%{_bindir}/%{name}
|
|
|
|
%{_mandir}/man1/%{name}*
|
|
|
|
%dir %{_datadir}/bash-completion
|
|
|
|
%dir %{_datadir}/bash-completion/completions
|
|
|
|
%{_datadir}/bash-completion/completions/%{name}
|
|
|
|
|
|
|
|
%files tests
|
|
|
|
%license LICENSE
|
|
|
|
%{_bindir}/%{name}-imgtype
|
|
|
|
%{_bindir}/%{name}-copy
|
|
|
|
%{_datadir}/%{name}/test
|
|
|
|
|
|
|
|
%changelog
|
|
|
|
{{{ git_dir_changelog }}}
|