forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug: https://bugs.gentoo.org/870931 Signed-off-by: Zac Medico <[email protected]>
- Loading branch information
Showing
2 changed files
with
166 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
DIST podman-4.1.0.tar.gz 10904727 BLAKE2B 6d01a65b13494dc948c0667147eca6f250a81056f1bcf6eda6285566b8aa7aa526794ea96a571aecad642a8b1d3d1877cd31683ccf46662f8681a2afac083b5a SHA512 4d5f240423f21b1224ce44853a2265359dacee0d921f0ea53a7fca34f9076ebfaa49f4327a59ac51f5bf5b9dafb47dda3a9bb8e609237cc69f833b42b95bcd0a | ||
DIST podman-4.2.1.tar.gz 13047683 BLAKE2B 968dc88164c846108d920dfbd3796078b6e7cde6c6d884ac5ea3379abe9a3d0ea72a78b10eea644a1040d1d564c13f05fe69112c49084344e95095c50ff537d5 SHA512 a8a6e3228c1cb6860bb27515bd081b5c395a17bd69fab8797758b84631d08d2389e554621080e66ecc04818c1c4d132ea6ed0edfedcfea6d7886a70ebc95297d | ||
DIST podman-4.3.0.tar.gz 12672944 BLAKE2B 530b5484abe774aacdb107162a68d98f15c0b5af7cf5c8a862fe9cb701cc3a57d2ed2bafe09517d3a3f9e09fa196b28eed6c6e2dabadaf663ad5ff0d1de97475 SHA512 b5b70e83a67ccfea149cb7df87a452d51fbb5e87ab3d1c6b4f623ba0f8f8a25442cee6ae8b8d31ea844f08c3ea4962e865ddb90e61c185dfad29d3b23aa8338f |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,165 @@ | ||
# Copyright 1999-2022 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=7 | ||
EGIT_COMMIT="ad42af94903ce4f3c3cd0693e4e17e4286bf094b" | ||
|
||
inherit bash-completion-r1 flag-o-matic go-module tmpfiles | ||
|
||
DESCRIPTION="Library and podman tool for running OCI-based containers in Pods" | ||
HOMEPAGE="https://github.com/containers/podman/" | ||
MY_PN=podman | ||
MY_P=${MY_PN}-${PV} | ||
SRC_URI="https://github.com/containers/podman/archive/v${PV}.tar.gz -> ${MY_P}.tar.gz" | ||
LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0" | ||
SLOT="0" | ||
|
||
KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv" | ||
IUSE="apparmor btrfs cgroup-hybrid +fuse +init +rootless selinux" | ||
RESTRICT+=" test" | ||
|
||
COMMON_DEPEND=" | ||
app-crypt/gpgme:= | ||
>=app-containers/conmon-2.0.0 | ||
cgroup-hybrid? ( >=app-containers/runc-1.0.0_rc6 ) | ||
!cgroup-hybrid? ( app-containers/crun ) | ||
dev-libs/libassuan:= | ||
dev-libs/libgpg-error:= | ||
>=app-containers/cni-plugins-0.8.6 | ||
sys-apps/shadow:= | ||
sys-fs/lvm2 | ||
sys-libs/libseccomp:= | ||
apparmor? ( sys-libs/libapparmor ) | ||
btrfs? ( sys-fs/btrfs-progs ) | ||
init? ( app-containers/catatonit ) | ||
rootless? ( app-containers/slirp4netns ) | ||
selinux? ( sys-libs/libselinux:= ) | ||
" | ||
DEPEND=" | ||
${COMMON_DEPEND} | ||
dev-go/go-md2man" | ||
RDEPEND="${COMMON_DEPEND} | ||
fuse? ( sys-fs/fuse-overlayfs ) | ||
selinux? ( sec-policy/selinux-podman )" | ||
|
||
S=${WORKDIR}/${MY_P} | ||
|
||
src_prepare() { | ||
default | ||
|
||
# Disable installation of python modules here, since those are | ||
# installed by separate ebuilds. | ||
local makefile_sed_args=( | ||
-e '/^GIT_.*/d' | ||
-e 's/$(GO) build/$(GO) build -v -work -x/' | ||
-e 's/^\(install:.*\) install\.python$/\1/' | ||
-e 's|^pkg/varlink/iopodman.go: .gopathok pkg/varlink/io.podman.varlink$|pkg/varlink/iopodman.go: pkg/varlink/io.podman.varlink|' | ||
) | ||
|
||
has_version -b '>=dev-lang/go-1.13.9' || makefile_sed_args+=(-e 's:GO111MODULE=off:GO111MODULE=on:') | ||
|
||
sed "${makefile_sed_args[@]}" -i Makefile || die | ||
} | ||
|
||
src_compile() { | ||
local git_commit=${EGIT_COMMIT} | ||
|
||
# Filter unsupported linker flags | ||
filter-flags '-Wl,*' | ||
|
||
[[ -f hack/apparmor_tag.sh ]] || die | ||
if use apparmor; then | ||
echo -e "#!/bin/sh\necho apparmor" > hack/apparmor_tag.sh || die | ||
else | ||
echo -e "#!/bin/sh\ntrue" > hack/apparmor_tag.sh || die | ||
fi | ||
|
||
[[ -f hack/btrfs_installed_tag.sh ]] || die | ||
if use btrfs; then | ||
echo -e "#!/bin/sh\ntrue" > hack/btrfs_installed_tag.sh || die | ||
else | ||
echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \ | ||
hack/btrfs_installed_tag.sh || die | ||
fi | ||
|
||
[[ -f hack/selinux_tag.sh ]] || die | ||
if use selinux; then | ||
echo -e "#!/bin/sh\necho selinux" > hack/selinux_tag.sh || die | ||
else | ||
echo -e "#!/bin/sh\ntrue" > hack/selinux_tag.sh || die | ||
fi | ||
|
||
# Avoid this error when generating pkg/varlink/iopodman.go: | ||
# cannot find package "github.com/varlink/go/varlink/idl" | ||
mkdir -p _output || die | ||
ln -snf ../vendor _output/src || die | ||
GO111MODULE=off GOPATH=${PWD}/_output go generate ./pkg/varlink/... || die | ||
rm _output/src || die | ||
|
||
export -n GOCACHE GOPATH XDG_CACHE_HOME | ||
GOBIN="${S}/bin" \ | ||
emake all \ | ||
GIT_BRANCH=master \ | ||
GIT_BRANCH_CLEAN=master \ | ||
COMMIT_NO="${git_commit}" \ | ||
GIT_COMMIT="${git_commit}" | ||
} | ||
|
||
src_install() { | ||
emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install | ||
|
||
insinto /etc/containers | ||
newins test/registries.conf registries.conf.example | ||
newins test/policy.json policy.json.example | ||
|
||
insinto /usr/share/containers | ||
doins vendor/github.com/containers/common/pkg/seccomp/seccomp.json | ||
|
||
newconfd "${FILESDIR}"/podman.confd podman | ||
newinitd "${FILESDIR}"/podman.initd podman | ||
|
||
insinto /etc/logrotate.d | ||
newins "${FILESDIR}/podman.logrotated" podman | ||
|
||
dobashcomp completions/bash/* | ||
|
||
insinto /usr/share/zsh/site-functions | ||
doins completions/zsh/* | ||
|
||
insinto /usr/share/fish/vendor_completions.d | ||
doins completions/fish/* | ||
|
||
keepdir /var/lib/containers | ||
} | ||
|
||
pkg_preinst() { | ||
PODMAN_ROOTLESS_UPGRADE=false | ||
if use rootless; then | ||
has_version 'app-containers/podman[rootless]' || PODMAN_ROOTLESS_UPGRADE=true | ||
fi | ||
} | ||
|
||
pkg_postinst() { | ||
tmpfiles_process podman.conf | ||
|
||
local want_newline=false | ||
if [[ ! ( -e ${EROOT%/*}/etc/containers/policy.json && -e ${EROOT%/*}/etc/containers/registries.conf ) ]]; then | ||
elog "You need to create the following config files:" | ||
elog "/etc/containers/registries.conf" | ||
elog "/etc/containers/policy.json" | ||
elog "To copy over default examples, use:" | ||
elog "cp /etc/containers/registries.conf{.example,}" | ||
elog "cp /etc/containers/policy.json{.example,}" | ||
want_newline=true | ||
fi | ||
if [[ ${PODMAN_ROOTLESS_UPGRADE} == true ]] ; then | ||
${want_newline} && elog "" | ||
elog "For rootless operation, you need to configure subuid/subgid" | ||
elog "for user running podman. In case subuid/subgid has only been" | ||
elog "configured for root, run:" | ||
elog "usermod --add-subuids 1065536-1131071 <user>" | ||
elog "usermod --add-subgids 1065536-1131071 <user>" | ||
want_newline=true | ||
fi | ||
} |