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 17.03.1
Package-Manager: Portage-2.3.4, Repoman-2.3.2
- Loading branch information
Showing
2 changed files
with
293 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-1.12.6.tar.gz 13694205 SHA256 0413f3513c2a6842ed9cf837154c8a722e9b34cb36b33430348489baa183707e SHA512 98e0fa0ec0dad4d392188b0d2cf42b2b564403463c369e1fe060f1abc2e97d97375a88587080671ef905e6a34b991d83265f43c3112575af019cf85eef0c2c25 WHIRLPOOL 55d10e4c4ab960320094637a847768ad85dc1fccaa6cc77ea0ca82f2d23b27e92e2f2c0cbc03f53676012c95883f65c6fa16d26970138fa129d37bf278fc8c0b | ||
DIST docker-1.13.1.tar.gz 7788075 SHA256 2730e7cc15492de8f1d6f9510c64620fc9004c8afc1410bf3ebac9fc3f9f83c6 SHA512 e480a884d7bb4f41f5c036afd5fae878e03aa740297dd3dd4df0eb8766efa6426ba636453513b423666eea21ba99f162ec27885828f8348d8746424944a3cfb4 WHIRLPOOL 8c0bfadf4102f6f41c182d8443276aa68ca1242d8321ce8fda639f0ad2162ae62d7310dbbb0967269d466207e54131b0a829bf6365f87fceb7114bbc1832dcfe | ||
DIST docker-17.03.0.tar.gz 7769578 SHA256 d8e91af5b2799cafac113a400d4db9c6abe01ae823f378d2f4d3d3e55e48eaf6 SHA512 042d94143f8867e8165e4c306188fc8e5801faaa9901716a509c5a9f380e460ab54b4c48ee223909c0bf9360ec023b765e6258acbe1f03e6513a8fc364663970 WHIRLPOOL 452ae7ea3329e3fe08ce76fba479502c5150218747c9d2a65495c9c4de1046ba9ac97be748535112022b665398bbb4581f8ae2bd6cb28d4462882055b15c9398 | ||
DIST docker-17.03.1.tar.gz 7773296 SHA256 a8f1eefadf3966885ad0579facfc2017cca7dd3a0b20d086dfd798168716cb83 SHA512 51e2a9d6ca529ac67d63794b9fd257f962278019ae1a36a39ff635c742d6ca16286cc164470333ff6cd88d709ecf2cb90343b2dd94bb3939747550f74fb442d5 WHIRLPOOL 9178bdf5b13851650e31d95370a090a72c8c70b53416e83693ffbdbc549d3992f3004908c1db5b26c013552f02293dddf9f761b8b5b9d2e0f0bf7cfab5330ca9 |
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,292 @@ | ||
# Copyright 1999-2017 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=6 | ||
|
||
EGO_PN="github.com/docker/docker" | ||
|
||
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 | ||
MY_PV="${PV/_/-}" | ||
DOCKER_GITCOMMIT="c6d412e" | ||
EGIT_COMMIT="v${MY_PV}-ce" | ||
SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" | ||
KEYWORDS="~amd64" | ||
[ "$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 | ||
# Runc/Containerd: Unfortunately docker does not version the releases, in order to avoid | ||
# incompatiblities we depend on snapshots | ||
RDEPEND=" | ||
${CDEPEND} | ||
!app-emulation/docker-bin | ||
>=net-firewall/iptables-1.4 | ||
sys-process/procps | ||
>=dev-vcs/git-1.7 | ||
>=app-arch/xz-utils-4.9 | ||
~app-emulation/containerd-0.2.3_p20170308 | ||
~app-emulation/docker-runc-1.0.0_rc2_p20170308[apparmor?,seccomp?] | ||
app-emulation/docker-proxy | ||
container-init? ( >=sys-process/tini-0.13.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 | ||
~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 | ||
~VXLAN | ||
~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" | ||
|
||
PATCHES=( | ||
"${FILESDIR}"/1.13.1-split-openrc-log.patch | ||
) | ||
|
||
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 | ||
|
||
# for where these kernel versions come from, see: | ||
# https://www.google.com/search?q=945b2b2d259d1a4364a2799e80e8ff32f8c6ee6f+site%3Akernel.org%2Fpub%2Flinux%2Fkernel+file%3AChangeLog* | ||
if ! { | ||
kernel_is ge 3 16 \ | ||
|| { kernel_is 3 15 && kernel_is ge 3 15 5; } \ | ||
|| { kernel_is 3 14 && kernel_is ge 3 14 12; } \ | ||
|| { kernel_is 3 12 && kernel_is ge 3 12 25; } | ||
}; then | ||
ewarn "" | ||
ewarn "There is a serious Docker-related kernel panic that has been fixed in 3.16+" | ||
ewarn " (and was backported to 3.15.5+, 3.14.12+, and 3.12.25+)" | ||
ewarn "" | ||
ewarn "See also https://github.com/docker/docker/issues/2960" | ||
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}:${PWD}/vendor" | ||
|
||
# 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 | ||
|
||
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-client || die | ||
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' | ||
grep -q -- '-fno-PIC' hack/make/dynbinary-client || die 'hardened sed failed' | ||
fi | ||
|
||
# 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 | ||
|
||
# time to build! | ||
./hack/make.sh dynbinary || die 'dynbinary failed' | ||
|
||
# build the man pages too | ||
./man/md2man-all.sh || die "unable to generate man pages" | ||
} | ||
|
||
src_install() { | ||
VERSION="$(cat VERSION)" | ||
newbin "bundles/$VERSION/dynbinary-client/docker-$VERSION" docker | ||
newbin "bundles/$VERSION/dynbinary-daemon/dockerd-$VERSION" dockerd | ||
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 | ||
|
||
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/* | ||
doman man/man*/* | ||
|
||
dobashcomp contrib/completion/bash/* | ||
|
||
insinto /usr/share/zsh/site-functions | ||
doins contrib/completion/zsh/_* | ||
|
||
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" | ||
} | ||
|
||
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 | ||
} |