You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
128 lines
3.8 KiB
128 lines
3.8 KiB
%global with_bundled 1 |
|
%global with_debug 1 |
|
%global _find_debuginfo_dwz_opts %{nil} |
|
%global _dwz_low_mem_die_limit 0 |
|
%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 %{?**}; |
|
%ifarch ppc64 |
|
%define gobuild(o:) GO111MODULE=off go build -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 |
|
%define provider github |
|
%define provider_tld com |
|
%define project containers |
|
%define repo buildah |
|
# https://github.com/containers/buildah |
|
%define import_path %{provider}.%{provider_tld}/%{project}/%{repo} |
|
%define git0 https://%{import_path} |
|
|
|
|
|
Name: %{repo} |
|
Version: 1.14.8 |
|
%define commit0 155ce56a2cd2d5608cf43c998f1728af5e7a499b |
|
%define built_tag v%{version} |
|
Release: 1%{?dist} |
|
Summary: A command line tool used for creating OCI Images |
|
License: ASL 2.0 |
|
URL: https://%{name}.io |
|
%define download_url https://github.com/containers/%{name}/archive/%{built_tag}.tar.gz |
|
Source: %{download_url} |
|
BuildRequires: golang |
|
BuildRequires: git |
|
BuildRequires: glib2-devel |
|
BuildRequires: glibc-static |
|
BuildRequires: go-md2man |
|
BuildRequires: gpgme-devel |
|
BuildRequires: libassuan-devel |
|
BuildRequires: make |
|
Requires: containers-common |
|
BuildRequires: btrfs-progs-devel |
|
BuildRequires: device-mapper-devel |
|
BuildRequires: ostree-devel |
|
BuildRequires: libseccomp-static |
|
Requires: container-selinux |
|
Requires: slirp4netns >= 0.3-0 |
|
Requires: fuse-overlayfs |
|
BuildRequires: libseccomp-devel |
|
Requires: libseccomp |
|
Requires: container-selinux |
|
Requires: runc |
|
%define shortcommit0 %(c=%{commit0}; echo ${c:0:7}) |
|
%define built_tag_strip %(b=%{built_tag}; echo ${b:1}) |
|
|
|
|
|
%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 |
|
%description tests |
|
%{summary} |
|
This package contains system tests for %{name} |
|
|
|
|
|
%prep |
|
%autosetup -Sgit -n %{name}-%{built_tag_strip} |
|
sed -i 's/GOMD2MAN =/GOMD2MAN ?=/' docs/Makefile |
|
sed -i '/docs install/d' Makefile |
|
|
|
|
|
%build |
|
mkdir _build |
|
pushd _build |
|
mkdir -p src/%{provider}.%{provider_tld}/%{project} |
|
ln -s $(dirs +1 -l) src/%{import_path} |
|
popd |
|
mv vendor src |
|
export GOPATH=$(pwd)/_build:$(pwd) |
|
export BUILDTAGS='seccomp selinux' |
|
export GO111MODULE=off |
|
%ifarch ppc64 |
|
export CGO_ENABLED=1 |
|
%endif |
|
%gobuild -o %{name} %{import_path}/cmd/%{name} |
|
%gobuild -o imgtype %{import_path}/tests/imgtype |
|
GOMD2MAN=go-md2man %{__make} -C docs |
|
%ifarch ppc64 |
|
unset CGO_ENABLED |
|
%endif |
|
|
|
%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 imgtype %{buildroot}/%{_bindir}/%{name}-imgtype |
|
#define license tag if not already defined |
|
%{!?_licensedir:%global license %doc} |
|
|
|
|
|
%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 |
|
%{_datadir}/%{name}/test |
|
|
|
|
|
%changelog
|
|
|