@ -5,12 +5,8 @@
%global with_check 0
%global with_check 0
%global with_unit_test 0
%global with_unit_test 0
%if 0%{?fedora} >= 28
%bcond_without varlink
%bcond_without varlink
%define gogenerate go generate
%define gogenerate go generate
%else
%bcond_with varlink
%endif
%if 0%{?with_debug}
%if 0%{?with_debug}
%global _find_debuginfo_dwz_opts %{nil}
%global _find_debuginfo_dwz_opts %{nil}
@ -27,32 +23,23 @@
%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
%global import_path %{provider_prefix}
%global import_path %{provider_prefix}
%global git0 https://%{provider}.%{provider_tld}/%{project}/%{repo}
%global git0 https://%{provider}.%{provider_tld}/%{project}/%{repo}
%global commit0 537c382f5bd098bc89a457554db9bd0b08eab3c2
%global commit0 b3f10c8be229bcc58c1673b0431285fd5fce1293
%global shortcommit0 %(c=%{commit0}; echo ${c:0:7})
%global shortcommit0 %(c=%{commit0}; echo ${c:0:7})
%global import_path_conmon github.com/kubernetes-sigs/cri-o
%global import_path_conmon github.com/containers/conmon
%global git_conmon https://%{import_path_conmon}
%global git_conmon https://%{import_path_conmon}
%global commit_conmon a30f93ca229c7fc68fb1d8c7a3342de3c3f54ae5
%global commit_conmon 1de71ad51b9f390451eb37029ae913b0a86f1a5b
%global shortcommit_conmon %(c=%{commit_conmon}; echo ${c:0:7})
%global shortcommit_conmon %(c=%{commit_conmon}; echo ${c:0:7})
Name: podman
Name: podman
# Epoch is 2 for f30 (rawhide), 1 for f28 and f29
# BEWARE while using on other distros
%if 0%{?fedora} >= 30
Epoch: 2
Epoch: 2
%else
Version: 1.4.4
Epoch: 1
Release: 4%{?dist}
%endif
Version: 1.2.0
Release: 21.dev.git%{shortcommit0}%{?dist}
Summary: Manage Pods, Containers and Container Images
Summary: Manage Pods, Containers and Container Images
License: ASL 2.0
License: ASL 2.0
URL: https://podman.io/
URL: https://%{name}.io/
Source0: %{git0}/archive/%{commit0}/%{repo}-%{shortcommit0}.tar.gz
Source0: %{git0}/archive/%{commit0}/%{repo}-%{shortcommit0}.tar.gz
Source1: %{git_conmon}/archive/%{commit_conmon}/cri-o-%{shortcommit_conmon}.tar.gz
Source1: %{git_conmon}/archive/%{commit_conmon}/conmon-%{shortcommit_conmon}.tar.gz
# e.g. el6 has ppc64 arch without gcc-go, so EA tag is required
#ExclusiveArch: %%{?go_arches:%%{go_arches}}%%{!?go_arches:%%{ix86} x86_64 aarch64 %%{arm}}
ExclusiveArch: aarch64 %{arm} ppc64le s390x x86_64 ppc64
# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
BuildRequires: btrfs-progs-devel
BuildRequires: btrfs-progs-devel
@ -70,18 +57,18 @@ BuildRequires: ostree-devel
BuildRequires: pkgconfig
BuildRequires: pkgconfig
BuildRequires: make
BuildRequires: make
BuildRequires: systemd
BuildRequires: systemd
BuildRequires: systemd-devel
Requires: runc >= 2:1.0.0-57
Requires: runc >= 2:1.0.0-57
Requires: containers-common
Requires: containers-common
Requires: containernetworking-plugins >= 0.7.3-2
Requires: containernetworking-plugins >= 0.7.5-1
Requires: iptables
Requires: iptables
Requires: nftables
Requires: nftables
# #1686813 - conmon hasn't been made independent yet
Requires: libseccomp >= 2.4.1
#Requires: conmon
#Recommends: %{name}-manpages = %{epoch}:%{version}-%{release}
Requires: container-selinux
Requires: container-selinux
Requires: slirp4netns >= 0.3-0
Requires: slirp4netns >= 0.3.0-2
%if 0%{?fedora} > 28
#Recommends: fuse-overlayfs >= 0.3-8
Requires: fuse-overlayfs
#Recommends: libvarlink-util >= 18-1
%endif
# vendored libraries
# vendored libraries
# awk '{print "Provides: bundled(golang("$1")) = "$2}' vendor.conf | sort
# awk '{print "Provides: bundled(golang("$1")) = "$2}' vendor.conf | sort
@ -186,12 +173,15 @@ Provides: bundled(golang(k8s.io/kube-openapi)) = 275e2ce91dec4c05a4094a7b1daee55
Provides: bundled(golang(k8s.io/utils)) = 258e2a2fa64568210fbd6267cf1d8fd87c3cb86e
Provides: bundled(golang(k8s.io/utils)) = 258e2a2fa64568210fbd6267cf1d8fd87c3cb86e
%description
%description
%{name} (Pod Manager) is a fully featured container engine that is a simple daemonless tool. %{name} provides a Docker-CLI comparable command line that eases the transition from other container engines and allows the management of pods, containers and images. Simply put: alias docker=%{name}. Most %{name} commands can be run as a regular user, without requiring additional privileges.
%{name} uses Buildah(1) internally to create container images. Both tools share image (not container) storage, hence each can use or manipulate images (but not containers) created by the other.
%{summary}
%{summary}
%{repo} provides a library for applications looking to use
%{repo} Simple management tool for pods, containers and images
the Container Pod concept popularized by Kubernetes.
%package docker
%package docker
Summary: Emulate Docker CLI using podman
Summary: Emulate Docker CLI using %{name}
BuildArch: noarch
BuildArch: noarch
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: %{name} = %{epoch}:%{version}-%{release}
Conflicts: docker
Conflicts: docker
@ -202,8 +192,32 @@ Conflicts: moby-engine
%description docker
%description docker
This package installs a script named docker that emulates the Docker CLI by
This package installs a script named docker that emulates the Docker CLI by
executes podman commands, it also creates links between all Docker CLI man
executes %{name} commands, it also creates links between all Docker CLI man
pages and podman.
pages and %{name}.
%package manpages
Summary: Man pages for the %{name} commands
BuildArch: noarch
%description manpages
Man pages for the %{name} commands
%files manpages
%{_mandir}/man1/%{name}*.1*
%package remote
Summary: (Experimental) Remote client for managing %{name} containers
#Recommends: %{name}-manpages = %{epoch}:%{version}-%{release}
%description remote
Remote client for managing %{name} containers.
This experimental remote client is under heavy development. Please do not
run %{name}-remote in production.
%{name}-remote uses the varlink connection to connect to a %{name} client to
manage pods, containers and container images. %{name}-remote supports ssh
connections as well.
%if 0%{?with_devel}
%if 0%{?with_devel}
%package devel
%package devel
@ -340,7 +354,7 @@ building other packages which use import path with
%if 0%{?with_unit_test} && 0%{?with_devel}
%if 0%{?with_unit_test} && 0%{?with_devel}
%package unit-test-devel
%package unit-test-devel
Summary: Unit tests for %{name} package
Summary: Unit tests for %{name} package
%if 0%{?with_check}
%if 0%{?with_check}
#Here comes all BuildRequires: PACKAGE the unit tests
#Here comes all BuildRequires: PACKAGE the unit tests
#in %%check section need for running
#in %%check section need for running
@ -366,7 +380,7 @@ providing packages with %{import_path} prefix.
%endif
%endif
%package tests
%package tests
Summary: Tests for %{name}
Summary: Tests for %{name}
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: bats
Requires: bats
@ -391,31 +405,30 @@ ln -s ../../../../ src/%{import_path}
popd
popd
ln -s vendor src
ln -s vendor src
export GOPATH=$(pwd)/_build:$(pwd)
export GOPATH=$(pwd)/_build:$(pwd)
export BUILDTAGS="varlink seccomp exclude_graphdriver_devicemapper $(hack/btrfs_installed_tag.sh) $(hack/btrfs_tag.sh) $(hack/libdm_tag.sh) $(hack/ostree_tag.sh) $(hack/selinux_tag.sh)"
export CGO_ENABLED=1
export GO111MODULE=off
go generate ./cmd/%{name}/varlink/...
%gogenerate ./cmd/%{name}/varlink/...
go build -o bin/%{name} %{import_path}/cmd/%{name}
# build %%{name}
export BUILDTAGS="systemd varlink seccomp exclude_graphdriver_devicemapper $(hack/btrfs_installed_tag.sh) $(hack/btrfs_tag.sh) $(hack/libdm_tag.sh) $(hack/ostree_tag.sh) $(hack/selinux_tag.sh)"
export GO111MODULE=off
%gobuild -o bin/%{name} %{import_path}/cmd/%{name}
# build %%{name}-remote
export BUILDTAGS="remoteclient systemd varlink seccomp exclude_graphdriver_devicemapper $(hack/btrfs_installed_tag.sh) $(hack/btrfs_tag.sh) $(hack/libdm_tag.sh) $(hack/ostree_tag.sh) $(hack/selinux_tag.sh)"
export GO111MODULE=off
%gobuild -o bin/%{name}-remote %{import_path}/cmd/%{name}
# build conmon
# build conmon
pushd cri-o-%{commit_conmon}
pushd conmon-%{commit_conmon}
mkdir _output
%{__make} all
pushd _output
mkdir -p src/%{provider}.%{provider_tld}/{kubernetes-sigs,opencontainers}
ln -s $(dirs +1 -l) src/%{import_path_conmon}
popd
ln -s vendor src
export GOPATH=$(pwd)/_output:$(pwd)
export BUILDTAGS="selinux seccomp $(hack/btrfs_installed_tag.sh) $(hack/btrfs_tag.sh) containers_image_ostree_stub"
%ifarch ppc64
export CGO_ENABLED=0
%endif
BUILDTAGS=$BUILDTAGS make -C conmon
popd
popd
%install
%install
install -dp %{buildroot}%{_unitdir}
install -dp %{buildroot}%{_unitdir}
PODMAN_VERSION=%{version} %{__make} PREFIX=%{buildroot}%{_prefix} ETCDIR=%{buildroot}%{_sysconfdir} \
PODMAN_VERSION=%{version} %{__make} PREFIX=%{buildroot}%{_prefix} ETCDIR=%{buildroot}%{_sysconfdir} \
install.bin \
install.bin \
install.remote \
install.man \
install.man \
install.cni \
install.cni \
install.systemd \
install.systemd \
@ -429,8 +442,9 @@ install -dp %{buildroot}%{_datadir}/containers
install -p -m 644 %{repo}.conf %{buildroot}%{_datadir}/containers
install -p -m 644 %{repo}.conf %{buildroot}%{_datadir}/containers
# install conmon
# install conmon
install -dp %{buildroot}%{_libexecdir}/%{name}
pushd conmon-%{commit_conmon}
install -p -m 755 cri-o-%{commit_conmon}/bin/conmon %{buildroot}%{_libexecdir}/%{name}
%{__make} LIBEXECDIR=%{buildroot}%{_libexecdir} install.%{name}
popd
# source codes for building projects
# source codes for building projects
%if 0%{?with_devel}
%if 0%{?with_devel}
@ -499,6 +513,10 @@ export GOPATH=%{buildroot}/%{gopath}:$(pwd)/vendor:%{gopath}
install -d -p %{buildroot}/%{_datadir}/%{name}/test/system
install -d -p %{buildroot}/%{_datadir}/%{name}/test/system
cp -pav test/system %{buildroot}/%{_datadir}/%{name}/test/
cp -pav test/system %{buildroot}/%{_datadir}/%{name}/test/
%triggerpostun -- %{name} < 1.1
%{_bindir}/%{name} system renumber
exit 0
#define license tag if not already defined
#define license tag if not already defined
%{!?_licensedir:%global license %doc}
%{!?_licensedir:%global license %doc}
@ -506,12 +524,12 @@ cp -pav test/system %{buildroot}/%{_datadir}/%{name}/test/
%license LICENSE
%license LICENSE
%doc README.md CONTRIBUTING.md pkg/hooks/README-hooks.md install.md code-of-conduct.md transfer.md
%doc README.md CONTRIBUTING.md pkg/hooks/README-hooks.md install.md code-of-conduct.md transfer.md
%{_bindir}/%{name}
%{_bindir}/%{name}
%{_mandir}/man1/podman*.1*
%{_mandir}/man5/*.5*
%{_mandir}/man5/*.5*
%{_datadir}/bash-completion/completions/*
%{_datadir}/bash-completion/completions/*
# By "owning" the site-functions dir, we don't need to Require zsh
# By "owning" the site-functions dir, we don't need to Require zsh
%{_datadir}/zsh/site-functions
%{_datadir}/zsh/site-functions
%{_datadir}/zsh/site-functions/*
%{_datadir}/zsh/site-functions/*
%dir %{_libexecdir}/%{name}
%{_libexecdir}/%{name}/conmon
%{_libexecdir}/%{name}/conmon
%config(noreplace) %{_sysconfdir}/cni/net.d/87-%{name}-bridge.conflist
%config(noreplace) %{_sysconfdir}/cni/net.d/87-%{name}-bridge.conflist
%{_datadir}/containers/%{repo}.conf
%{_datadir}/containers/%{repo}.conf
@ -536,97 +554,59 @@ cp -pav test/system %{buildroot}/%{_datadir}/%{name}/test/
%doc README.md CONTRIBUTING.md pkg/hooks/README-hooks.md install.md code-of-conduct.md transfer.md
%doc README.md CONTRIBUTING.md pkg/hooks/README-hooks.md install.md code-of-conduct.md transfer.md
%endif
%endif
%triggerpostun -- %{name} < 1.1
%files remote
podman system renumber
%{_bindir}/%{name}-remote
exit 0
%files tests
%files tests
%license LICENSE
%license LICENSE
%{_datadir}/%{name}/test
%{_datadir}/%{name}/test
%changelog
%changelog
* Wed Mar 20 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.2.0-21.dev.git537c382
* Wed Jul 17 2019 Lokesh Mandvekar <lsm5@fedoraproject.org> - 2:1.4.4-4
- autobuilt 537c382
- use conmon v1.0.0-rc2
* Tue Mar 19 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.2.0-20.dev.gitac523cb
- autobuilt ac523cb
* Mon Mar 18 2019 Eduardo Santiago <santiago@redhat.com> - 2:1.2.0-19.dev.git6aa8078
* Mon Jul 08 2019 bbaude <bbaude@redhat.com> - 2:1.4.4-3
- include zsh completion
- correct 1.4.4 commit
* Fri Mar 15 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.2.0-18.dev.git31f11a8
- autobuilt 31f11a8
* Thu Mar 14 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.2.0-17.dev.git7426d4f
- autobuilt 7426d4f
* Wed Mar 13 2019 Eduardo Santiago <santiago@redhat.com> - 2:1.2.0-16.dev.git883566f
- new -tests subpackage
* Wed Mar 13 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.2.0-15.dev.git883566f
* Mon Jul 08 2019 bbaude <bbaude@redhat.com> - 2:1.4.4-2
- autobuilt 883566f
- add runtime depend for libssecomp
* Tue Mar 12 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.2.0-14.dev.gitde0192a
* Tue Jul 02 2019 bbaude <bbaude@redhat.com> - 2:1.4.4-1
- autobuilt de0192a
- Bump to v1.4.4
* Sun Mar 10 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.2.0-13.dev.gitd95f97a
* Wed Jun 26 2019 Dan Walsh <dwalsh@redhat.com> - 2:1.4.3-1
- autobuilt d95f97a
- Bump to v1.4.3
* Sat Mar 09 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.2.0-12.dev.git9b21f14
* Wed Jun 19 2019 Dan Walsh <dwalsh@redhat.com> - 2:1.4.2-1
- autobuilt 9b21f14
- Bump to v1.4.2
* Fri Mar 08 2019 Lokesh Mandvekar <lsm5@fedoraproject.org> - 2:1.2.0-11.dev.git1b2f867
* Tue Jun 11 2019 Lokesh Mandvekar <lsm5@fedoraproject.org> - 2:1.4.0-2
- Resolves: #1686813 - conmon bundled inside podman rpm
- do not install /usr/libexec/crio - conflicts with crio
* Fri Mar 08 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.2.0-10.dev.git1b2f867
* Mon Jun 10 2019 Lokesh Mandvekar <lsm5@fedoraproject.org> - 2:1.4.0-1
- autobuilt 1b2f867
- Resolves: #1715668 - CVE-2019-10152
- bump to v1.4.0
* Thu Mar 07 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.2.0-9.dev.git614409f
* Fri May 17 2019 Dan Walsh <dwalsh@redhat.com> - 2:1.3.1-1.git7210727
- autobuilt 614409f
- New Release of podman
* Wed Mar 06 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.2.0-8.dev.git40f7843
* Mon Apr 1 2019 Dan Walsh <dwalsh@redhat.com> - 2:1.2.0-2.git6aa8078
- autobuilt 40f7843
- New Release of podman
* Tue Mar 05 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.2.0-7.dev.git4b80517
* Mon Mar 18 2019 Eduardo Santiago <santiago@redhat.com> - 2:1.1.2-4.dev.git6aa8078
- autobuilt 4b80517
- include zsh completion
* Mon Mar 04 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.2.0-6.dev.gitf3a3d8e
- autobuilt f3a3d8e
* Sat Mar 02 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.2.0-5.dev.git9adcda7
- autobuilt 9adcda7
* Fri Mar 01 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.2.0-4.dev.git9137315
- autobuilt 9137315
* Thu Feb 28 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.2.0-3.dev.git5afae0b
- autobuilt 5afae0b
* Wed Feb 27 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.2.0-2.dev.git623fcfa
- bump to 1.2.0
- autobuilt 623fcfa
* Tue Feb 26 2019 Dan Walsh <dwalsh@fedoraproject.org> - 2:1.0.1-39.dev.gitcf52144
* Tue Feb 26 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.0.1-38.dev.gitcf52144
- autobuilt cf52144
* Mon Feb 25 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.0.1-37.dev.git553ac80
- autobuilt 553ac80
* Sun Feb 24 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.0.1-36.dev.gitcc4addd
- autobuilt cc4addd
* Sat Feb 23 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.0.1-35.dev.gitb223d4e
* Wed Mar 13 2019 Eduardo Santiago <santiago@redhat.com> - 2:1.1.2-3.dev.gitb33a00e
- autobuilt b223d4e
- new -tests subpackage
* Fri Feb 22 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.0.1-34.dev.git1788add
* Tue Mar 12 2019 Lokesh Mandvekar <lsm5@fedoraproject.org> - 2:1.1.2-2.dev.git0ad9b6b
- autobuilt 1788add
- missed the system renumber scriptlet in the previous build
* Thu Feb 21 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.0.1-33.dev.git4934bf2
* Tue Mar 12 2019 Lokesh Mandvekar <lsm5@fedoraproject.org> - 2:1.1.2-1.dev.git0ad9b6b
- autobuilt 4934bf2
- bump to v1.1.2
* Wed Feb 20 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.0.1-32.dev.git3b88c73
* Tue Mar 12 2019 Lokesh Mandvekar <lsm5@fedoraproject.org> - 2:1.0.1-32.dev.git228d1cb
- autobuilt 3b88c73
- Resolves: #1686636 - do not depend on conmon (conmon moved to modules)
* Tue Feb 19 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.0.1-31.dev.git228d1cb
* Tue Feb 19 2019 Lokesh Mandvekar (Bot) <lsm5+bot@fedoraproject.org> - 2:1.0.1-31.dev.git228d1cb
- autobuilt 228d1cb
- autobuilt 228d1cb