# 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: buildah Epoch: 101 Version: 0.0.git.4577.faf0d4fc Release: 1%{?dist} Summary: Manage Pods, Containers and Container Images License: ASL 2.0 URL: https://github.com/containers/buildah VCS: git+https://github.com/containers/buildah#faf0d4fcbaede00f4e615dc5cc2ccc816f240cfe: Source: buildah-faf0d4fc.tar.gz 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 BuildRequires: shadow-utils-subid-devel %if 0%{?fedora} && ! 0%{?rhel} BuildRequires: btrfs-progs-devel %endif %if 0%{?fedora} <= 35 Requires: containers-common >= 4:1-39 %else Requires: containers-common-extra %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 %setup -T -b 0 -q -n buildah %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}" export BUILDTAGS='seccomp libsubid selinux' %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