diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/docker/Manifest b/sdk_container/src/third_party/coreos-overlay/app-emulation/docker/Manifest
new file mode 100644
index 0000000000..924b6e7011
--- /dev/null
+++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/docker/Manifest
@@ -0,0 +1 @@
+DIST docker-17.06.1.tar.gz 9682381 SHA256 2ca8615162873b32d9565f95a4b2977d025fd44c69e087046e004f5dfb1ce30c SHA512 0a7dd578b3f5aa2be9e8df270b74cc5ad698b9c00ed4c314ecfea588cddddef26c0696265978d09abc5799f22f8bd8013b4f1a818e78eb7f7a4e7c15e082b5d0 WHIRLPOOL f6cf32cca15b36b4fa17239ee800d7e9347fc5f97050eca3590c75a76ab4d36ffff676508e7240aef5bd440795a870aa4349f7cede4e9fb4d610a3146693f8d7
diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/docker/docker-17.05.0-r1.ebuild b/sdk_container/src/third_party/coreos-overlay/app-emulation/docker/docker-17.06.1.ebuild
similarity index 100%
rename from sdk_container/src/third_party/coreos-overlay/app-emulation/docker/docker-17.05.0-r1.ebuild
rename to sdk_container/src/third_party/coreos-overlay/app-emulation/docker/docker-17.06.1.ebuild
diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/docker/docker-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/app-emulation/docker/docker-9999.ebuild
index 156995c21d..2b63b648bb 100644
--- a/sdk_container/src/third_party/coreos-overlay/app-emulation/docker/docker-9999.ebuild
+++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/docker/docker-9999.ebuild
@@ -1,39 +1,45 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-EAPI=5
+EAPI=6
-CROS_WORKON_PROJECT="coreos/docker"
-CROS_WORKON_LOCALNAME="docker"
-CROS_WORKON_REPO="git://github.com"
-COREOS_GO_VERSION="go1.7"
+COREOS_GO_PACKAGE="github.com/docker/docker-ce"
+COREOS_GO_VERSION="go1.8"
-if [[ ${PV} == *9999 ]]; then
- DOCKER_GITCOMMIT="unknown"
+if [[ ${PV} = *9999* ]]; then
+ # Docker cannot be fetched via "go get", thanks to autogenerated code
+ EGIT_REPO_URI="https://${COREOS_GO_PACKAGE}.git"
+ EGIT_CHECKOUT_DIR="${WORKDIR}/${P}/src/${COREOS_GO_PACKAGE}"
+ inherit git-r3
KEYWORDS="~amd64 ~arm64"
else
- CROS_WORKON_COMMIT="89658bed64c2a8fe05a978e5b87dbec409d57a0f" # coreos-17.05.0-ce
- DOCKER_GITCOMMIT="${CROS_WORKON_COMMIT:0:7}"
+ inherit versionator
+ if [ "$(get_version_component_count)" = 4 ]; then
+ MY_PV="$(replace_version_separator 3 '-ce-')"
+ else
+ MY_PV="$PV-ce"
+ fi
+ DOCKER_GITCOMMIT="874a737"
+ SRC_URI="https://${COREOS_GO_PACKAGE}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="amd64 arm64"
+ [ "$DOCKER_GITCOMMIT" ] || die "DOCKER_GITCOMMIT must be added manually for each bump!"
fi
+inherit bash-completion-r1 coreos-go-depend linux-info systemd udev user
-inherit bash-completion-r1 eutils linux-info multilib systemd udev user cros-workon coreos-go-depend
-
-DESCRIPTION="Docker complements kernel namespacing with a high-level API which operates at the process level"
+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 +overlay pkcs11 +journald seccomp +selinux vim-syntax zsh-completion"
+IUSE="apparmor aufs +btrfs +container-init +device-mapper hardened +overlay pkcs11 seccomp +journald +selinux"
-# https://github.com/docker/docker/blob/v17.05.0-ce/project/PACKAGERS.md#build-dependencies
+# 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[static-libs]
- )
+ seccomp? ( >=sys-libs/libseccomp-2.2.1[static-libs] )
+ apparmor? ( sys-libs/libapparmor )
"
DEPEND="
@@ -49,26 +55,25 @@ DEPEND="
# or an explicit copy when installing binary packages. See coreos-kernel.eclass
DEPEND+="sys-kernel/coreos-kernel"
-# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#runtime-dependencies
-# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#optional-dependencies
+# 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}
-
- !app-emulation/docker-bin
>=net-firewall/iptables-1.4
sys-process/procps
>=dev-vcs/git-1.7
>=app-arch/xz-utils-4.9
- >=sys-apps/shadow-4.4
- >=app-emulation/containerd-0.2.7_p2-r1[seccomp?]
- =app-emulation/runc-1.0.0_rc2_p137[apparmor?,seccomp?]
+ =app-emulation/containerd-0.2.9_p7[seccomp?]
+ =app-emulation/docker-runc-1.0.0_rc3_p53[apparmor?,seccomp?]
app-emulation/docker-proxy
container-init? ( >=sys-process/tini-0.13.1 )
"
RESTRICT="installsources strip"
+S="${WORKDIR}/${P}/src/${COREOS_GO_PACKAGE}"
+
# see "contrib/check-config.sh" from upstream's sources
CONFIG_CHECK="
~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS
@@ -193,34 +198,30 @@ pkg_setup() {
enewgroup docker
}
-src_prepare() {
- # allow user patches (use sparingly - upstream won't support them)
- epatch_user
-
- # remove the .git directory so that hack/make.sh uses DOCKER_GITCOMMIT
- # for the commit hash.
- rm --recursive --force .git
+src_unpack() {
+ if [ -n "$DOCKER_GITCOMMIT" ]; then
+ mkdir -p "${S}"
+ tar --strip-components=1 -C "${S}" -xf "${DISTDIR}/${A}"
+ else
+ git-r3_src_unpack
+ DOCKER_GITCOMMIT=$(git -C "${S}" rev-parse HEAD | head -c 7)
+ fi
}
src_compile() {
- # if we treat them right, Docker's build scripts will set up a
- # reasonable GOPATH for us
- export AUTO_GOPATH=1
+ export GOPATH="${WORKDIR}/${P}"
- # if we're building from a zip, we need the GITCOMMIT value
+ # 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 gcc-specs-pie; 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
+ # 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=''
@@ -236,24 +237,42 @@ src_compile() {
fi
done
- go_export
+ pushd components/engine || die
- # verbose building
- export BUILDFLAGS="-x -v"
+ if use hardened; then
+ sed -i "s#EXTLDFLAGS_STATIC='#&-fno-PIC $LDFLAGS #" hack/make.sh || die
+ grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed'
+ sed "s#LDFLAGS_STATIC_DOCKER='#&-extldflags \"-fno-PIC $LDFLAGS\" #" \
+ -i hack/make/dynbinary-daemon || die
+ grep -q -- '-fno-PIC' hack/make/dynbinary-daemon || die 'hardened sed failed'
+ fi
- # time to build!
+ # build daemon
./hack/make.sh dynbinary || die 'dynbinary failed'
+
+ popd || die # components/engine
+
+ pushd components/cli || die
+
+ # build cli
+ emake \
+ LDFLAGS="$(usex hardened "-extldflags \"-fno-PIC $LDFLAGS\"" '')" \
+ VERSION="$(cat ../../VERSION)" \
+ GITCOMMIT="${DOCKER_GITCOMMIT}" \
+ dynbinary || die
+
+ popd || die # components/cli
}
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
+ 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
@@ -273,18 +292,19 @@ src_install() {
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
+ popd || die # components/engine
+
+ pushd components/cli || die
+
+ newbin build/docker-* docker
+
dobashcomp contrib/completion/bash/*
-
- if use zsh-completion; then
- insinto /usr/share/zsh/site-functions
- doins contrib/completion/zsh/*
- fi
-
- if use vim-syntax; then
- insinto /usr/share/vim/vimfiles
- doins -r contrib/syntax/vim/ftdetect
- doins -r contrib/syntax/vim/syntax
- fi
+ insinto /usr/share/zsh/site-functions
+ doins contrib/completion/zsh/_*
+ popd || die # components/cli
}
pkg_postinst() {
diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/docker/metadata.xml b/sdk_container/src/third_party/coreos-overlay/app-emulation/docker/metadata.xml
index 907d5d1da2..16f7009d5e 100644
--- a/sdk_container/src/third_party/coreos-overlay/app-emulation/docker/metadata.xml
+++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/docker/metadata.xml
@@ -8,23 +8,18 @@
scale, in production, on VMs, bare metal, OpenStack clusters, public
clouds and more.
- proxy-maintainers
-
+
admwiggin@gmail.com
Tianon
-
- xarthisius@gentoo.org
- Kacper Kowalik
-
-
- alunduil@gentoo.org
- Alex Brandt
-
-
+
williamh@gentoo.org
William Hubbs
+
+ mrueg@gentoo.org
+ Manuel RĂ¼ger
+