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.
app-emulation/docker: Version bump to 18.09.1
Package-Manager: Portage-2.3.54, Repoman-2.3.12 Signed-off-by: Manuel Rüger <[email protected]>
- Loading branch information
Showing
2 changed files
with
300 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,3 +1,4 @@ | ||
DIST docker-18.03.1.tar.gz 12758590 BLAKE2B 98213af07b945fda536e321ef5cc9e272848aab97dcadb7a6b1433b9310fa78015794b5ee4f255448251366a7811e97248b9cc90b0225c528249188768f344ab SHA512 48c4916421cd500ada1bfc2207123a29870939a15a1c7c4a0c082f61c1e3e063381e2345ee9df645dbaca49e002dbfaba70cf6fe233b39a4e1f44fb015807e10 | ||
DIST docker-18.06.1.tar.gz 13672693 BLAKE2B 7aed2f409914471b3e0eec4f3d024bf59e6505060c1da9c4bb68f0d6efdb5286a8e9e5ee0de19b3f0165c965db27d409f72fceb3f792fc91b9b8dddc8a2b01f0 SHA512 7375452669bf6576e1f8d193cd7f421cf39a26d575351f2b4e433c7fc89384f441547417dbe8c12a12a0937c9fea3800b5c541f0ba8b58ceffe7445183ceeef1 | ||
DIST docker-18.09.0.tar.gz 15196102 BLAKE2B 99b791da6351268ccd54424f1ec1d0b1246d7283e5bf8f41f604f0437202a0c494f7017d68c58f01782eea8539fcc189c290f494125878eb3ca368f3d8cdd57d SHA512 a6173d9e2dde33c6059b3464720207a3bc0f4d6d79af65ad10cd30b4b437134ad45fc2039cebcaa41b2dfb68a21963010d63a4051ade6a6d25fcd93c8d560c67 | ||
DIST docker-18.09.1.tar.gz 15247155 BLAKE2B 5c9a6c0d6e383da2b99341812b0cc1d1498e46decc3b3aaa418607d5f4d725a6842a4462c06357685a32312b90978b0349aaceb69907324761589e68cfae7bca SHA512 9813d3bd41eff63a089495a976226b93d5d43544530aea0ebce78b96e6b4b38389fe3ad1117f1ca95c38727047a24211ad2c2b44217935c26ffb5496cf90407e |
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,299 @@ | ||
# Copyright 1999-2019 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=6 | ||
|
||
EGO_PN="github.com/docker/docker-ce" | ||
|
||
if [[ ${PV} = *9999* ]]; then | ||
# Docker cannot be fetched via "go get", thanks to autogenerated code | ||
EGIT_REPO_URI="https://${EGO_PN}.git" | ||
EGIT_CHECKOUT_DIR="${WORKDIR}/${P}/src/${EGO_PN}" | ||
inherit git-r3 | ||
else | ||
DOCKER_GITCOMMIT="4c52b90" | ||
SRC_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" | ||
KEYWORDS="~amd64 ~arm ~arm64" | ||
[ "$DOCKER_GITCOMMIT" ] || die "DOCKER_GITCOMMIT must be added manually for each bump!" | ||
inherit golang-vcs-snapshot | ||
fi | ||
inherit bash-completion-r1 golang-base linux-info systemd udev user | ||
|
||
DESCRIPTION="The core functions you need to create Docker images and run Docker containers" | ||
HOMEPAGE="https://dockerproject.org" | ||
LICENSE="Apache-2.0" | ||
SLOT="0" | ||
IUSE="apparmor aufs btrfs +container-init device-mapper hardened +overlay pkcs11 seccomp" | ||
|
||
# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#build-dependencies | ||
CDEPEND=" | ||
>=dev-db/sqlite-3.7.9:3 | ||
device-mapper? ( | ||
>=sys-fs/lvm2-2.02.89[thin] | ||
) | ||
seccomp? ( >=sys-libs/libseccomp-2.2.1 ) | ||
apparmor? ( sys-libs/libapparmor ) | ||
" | ||
|
||
DEPEND=" | ||
${CDEPEND} | ||
dev-go/go-md2man | ||
btrfs? ( | ||
>=sys-fs/btrfs-progs-3.16.1 | ||
) | ||
" | ||
|
||
# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#runtime-dependencies | ||
# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#optional-dependencies | ||
RDEPEND=" | ||
${CDEPEND} | ||
>=net-firewall/iptables-1.4 | ||
sys-process/procps | ||
>=dev-vcs/git-1.7 | ||
>=app-arch/xz-utils-4.9 | ||
dev-libs/libltdl | ||
~app-emulation/containerd-1.2.2 | ||
~app-emulation/runc-1.0.0_rc6_p20181203[apparmor?,seccomp?] | ||
~app-emulation/docker-proxy-0.8.0_p20181207 | ||
container-init? ( >=sys-process/tini-0.18.0[static] ) | ||
" | ||
|
||
RESTRICT="installsources strip" | ||
|
||
S="${WORKDIR}/${P}/src/${EGO_PN}" | ||
|
||
# see "contrib/check-config.sh" from upstream's sources | ||
CONFIG_CHECK=" | ||
~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS | ||
~CGROUPS ~CGROUP_CPUACCT ~CGROUP_DEVICE ~CGROUP_FREEZER ~CGROUP_SCHED ~CPUSETS ~MEMCG | ||
~KEYS | ||
~VETH ~BRIDGE ~BRIDGE_NETFILTER | ||
~NF_NAT_IPV4 ~IP_NF_FILTER ~IP_NF_TARGET_MASQUERADE | ||
~NETFILTER_XT_MATCH_ADDRTYPE ~NETFILTER_XT_MATCH_CONNTRACK ~NETFILTER_XT_MATCH_IPVS | ||
~IP_NF_NAT ~NF_NAT ~NF_NAT_NEEDED | ||
~POSIX_MQUEUE | ||
~USER_NS | ||
~SECCOMP | ||
~CGROUP_PIDS | ||
~MEMCG_SWAP ~MEMCG_SWAP_ENABLED | ||
~BLK_CGROUP ~BLK_DEV_THROTTLING ~IOSCHED_CFQ ~CFQ_GROUP_IOSCHED | ||
~CGROUP_PERF | ||
~CGROUP_HUGETLB | ||
~NET_CLS_CGROUP | ||
~CFS_BANDWIDTH ~FAIR_GROUP_SCHED ~RT_GROUP_SCHED | ||
~IP_VS ~IP_VS_PROTO_TCP ~IP_VS_PROTO_UDP ~IP_VS_NFCT ~IP_VS_RR | ||
~VXLAN | ||
~CRYPTO ~CRYPTO_AEAD ~CRYPTO_GCM ~CRYPTO_SEQIV ~CRYPTO_GHASH ~XFRM_ALGO ~XFRM_USER | ||
~IPVLAN | ||
~MACVLAN ~DUMMY | ||
" | ||
|
||
ERROR_KEYS="CONFIG_KEYS: is mandatory" | ||
ERROR_MEMCG_SWAP="CONFIG_MEMCG_SWAP: is required if you wish to limit swap usage of containers" | ||
ERROR_RESOURCE_COUNTERS="CONFIG_RESOURCE_COUNTERS: is optional for container statistics gathering" | ||
|
||
ERROR_BLK_CGROUP="CONFIG_BLK_CGROUP: is optional for container statistics gathering" | ||
ERROR_IOSCHED_CFQ="CONFIG_IOSCHED_CFQ: is optional for container statistics gathering" | ||
ERROR_CGROUP_PERF="CONFIG_CGROUP_PERF: is optional for container statistics gathering" | ||
ERROR_CFS_BANDWIDTH="CONFIG_CFS_BANDWIDTH: is optional for container statistics gathering" | ||
ERROR_XFRM_ALGO="CONFIG_XFRM_ALGO: is optional for secure networks" | ||
ERROR_XFRM_USER="CONFIG_XFRM_USER: is optional for secure networks" | ||
|
||
pkg_setup() { | ||
if kernel_is lt 3 10; then | ||
ewarn "" | ||
ewarn "Using Docker with kernels older than 3.10 is unstable and unsupported." | ||
ewarn " - http://docs.docker.com/engine/installation/binaries/#check-kernel-dependencies" | ||
fi | ||
|
||
if kernel_is le 3 18; then | ||
CONFIG_CHECK+=" | ||
~RESOURCE_COUNTERS | ||
" | ||
fi | ||
|
||
if kernel_is le 3 13; then | ||
CONFIG_CHECK+=" | ||
~NETPRIO_CGROUP | ||
" | ||
else | ||
CONFIG_CHECK+=" | ||
~CGROUP_NET_PRIO | ||
" | ||
fi | ||
|
||
if kernel_is lt 4 5; then | ||
CONFIG_CHECK+=" | ||
~MEMCG_KMEM | ||
" | ||
ERROR_MEMCG_KMEM="CONFIG_MEMCG_KMEM: is optional" | ||
fi | ||
|
||
if kernel_is lt 4 7; then | ||
CONFIG_CHECK+=" | ||
~DEVPTS_MULTIPLE_INSTANCES | ||
" | ||
fi | ||
|
||
if use aufs; then | ||
CONFIG_CHECK+=" | ||
~AUFS_FS | ||
~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY | ||
" | ||
ERROR_AUFS_FS="CONFIG_AUFS_FS: is required to be set if and only if aufs-sources are used instead of aufs4/aufs3" | ||
fi | ||
|
||
if use btrfs; then | ||
CONFIG_CHECK+=" | ||
~BTRFS_FS | ||
~BTRFS_FS_POSIX_ACL | ||
" | ||
fi | ||
|
||
if use device-mapper; then | ||
CONFIG_CHECK+=" | ||
~BLK_DEV_DM ~DM_THIN_PROVISIONING ~EXT4_FS ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY | ||
" | ||
fi | ||
|
||
if use overlay; then | ||
CONFIG_CHECK+=" | ||
~OVERLAY_FS ~EXT4_FS_SECURITY ~EXT4_FS_POSIX_ACL | ||
" | ||
fi | ||
|
||
linux-info_pkg_setup | ||
|
||
# create docker group for the code checking for it in /etc/group | ||
enewgroup docker | ||
} | ||
|
||
src_compile() { | ||
export GOPATH="${WORKDIR}/${P}" | ||
|
||
# setup CFLAGS and LDFLAGS for separate build target | ||
# see https://github.com/tianon/docker-overlay/pull/10 | ||
export CGO_CFLAGS="-I${ROOT}/usr/include" | ||
export CGO_LDFLAGS="-L${ROOT}/usr/$(get_libdir)" | ||
|
||
# if we're building from a tarball, we need the GITCOMMIT value | ||
[ "$DOCKER_GITCOMMIT" ] && export DOCKER_GITCOMMIT | ||
|
||
# fake golang layout | ||
ln -s docker-ce/components/engine ../docker || die | ||
ln -s docker-ce/components/cli ../cli || die | ||
|
||
# let's set up some optional features :) | ||
export DOCKER_BUILDTAGS='' | ||
for gd in aufs btrfs device-mapper overlay; do | ||
if ! use $gd; then | ||
DOCKER_BUILDTAGS+=" exclude_graphdriver_${gd//-/}" | ||
fi | ||
done | ||
|
||
for tag in apparmor pkcs11 seccomp; do | ||
if use $tag; then | ||
DOCKER_BUILDTAGS+=" $tag" | ||
fi | ||
done | ||
|
||
pushd components/engine || die | ||
|
||
if use hardened; then | ||
sed -i "s/EXTLDFLAGS_STATIC='/&-fno-PIC /" hack/make.sh || die | ||
grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed' | ||
sed "s/LDFLAGS_STATIC_DOCKER='/&-extldflags -fno-PIC /" \ | ||
-i hack/make/dynbinary-daemon || die | ||
grep -q -- '-fno-PIC' hack/make/dynbinary-daemon || die 'hardened sed failed' | ||
fi | ||
|
||
# build daemon | ||
VERSION="$(cat ../../VERSION)" \ | ||
./hack/make.sh dynbinary || die 'dynbinary failed' | ||
|
||
popd || die # components/engine | ||
|
||
pushd components/cli || die | ||
|
||
# build cli | ||
emake \ | ||
LDFLAGS="$(usex hardened '-extldflags -fno-PIC' '')" \ | ||
VERSION="$(cat ../../VERSION)" \ | ||
GITCOMMIT="${DOCKER_GITCOMMIT}" \ | ||
DISABLE_WARN_OUTSIDE_CONTAINER=1 \ | ||
dynbinary || die | ||
|
||
# build man pages | ||
go build -o gen-manpages github.com/docker/cli/man || die | ||
./gen-manpages --root . --target ./man/man1 || die | ||
./man/md2man-all.sh -q || die | ||
rm gen-manpages || die | ||
# see "components/cli/scripts/docs/generate-man.sh" (which also does "go get" for go-md2man) | ||
|
||
popd || die # components/cli | ||
} | ||
|
||
src_install() { | ||
dosym containerd /usr/bin/docker-containerd | ||
dosym containerd-shim /usr/bin/docker-containerd-shim | ||
dosym runc /usr/bin/docker-runc | ||
use container-init && dosym tini /usr/bin/docker-init | ||
|
||
pushd components/engine || die | ||
newbin "$(readlink -f bundles/latest/dynbinary-daemon/dockerd)" dockerd | ||
|
||
newinitd contrib/init/openrc/docker.initd docker | ||
newconfd contrib/init/openrc/docker.confd docker | ||
|
||
systemd_dounit contrib/init/systemd/docker.{service,socket} | ||
|
||
udev_dorules contrib/udev/*.rules | ||
|
||
dodoc AUTHORS CONTRIBUTING.md CHANGELOG.md NOTICE README.md | ||
dodoc -r docs/* | ||
|
||
insinto /usr/share/vim/vimfiles | ||
doins -r contrib/syntax/vim/ftdetect | ||
doins -r contrib/syntax/vim/syntax | ||
|
||
# note: intentionally not using "doins" so that we preserve +x bits | ||
dodir /usr/share/${PN}/contrib | ||
cp -R contrib/* "${ED}/usr/share/${PN}/contrib" | ||
popd || die # components/engine | ||
|
||
pushd components/cli || die | ||
|
||
newbin build/docker-* docker | ||
|
||
doman man/man*/* | ||
|
||
dobashcomp contrib/completion/bash/* | ||
insinto /usr/share/fish/vendor_completions.d/ | ||
doins contrib/completion/fish/docker.fish | ||
insinto /usr/share/zsh/site-functions | ||
doins contrib/completion/zsh/_* | ||
popd || die # components/cli | ||
} | ||
|
||
pkg_postinst() { | ||
udev_reload | ||
|
||
elog | ||
elog "To use Docker, the Docker daemon must be running as root. To automatically" | ||
elog "start the Docker daemon at boot, add Docker to the default runlevel:" | ||
elog " rc-update add docker default" | ||
elog "Similarly for systemd:" | ||
elog " systemctl enable docker.service" | ||
elog | ||
elog "To use Docker as a non-root user, add yourself to the 'docker' group:" | ||
elog " usermod -aG docker youruser" | ||
elog | ||
|
||
elog " Devicemapper storage driver has been deprecated" | ||
elog " It will be removed in a future release" | ||
} |