summaryrefslogtreecommitdiff
path: root/app-emulation
diff options
context:
space:
mode:
authorBlackNoxis <steven.darklight@gmail.com>2016-04-02 12:17:01 +0300
committerBlackNoxis <steven.darklight@gmail.com>2016-04-02 12:17:01 +0300
commit3c1016376d4761ecca61e5d4c43bbd3e4ba180bc (patch)
tree0e6966b6a2922aea7b28c506d79345aa3923968c /app-emulation
parent9a2f8110322c3c3b3beb6e16f1d5253da1f53e89 (diff)
[docker] added docker to the repo. included support for our binary kernel and systemd
Diffstat (limited to 'app-emulation')
-rw-r--r--app-emulation/docker/ChangeLog152
-rw-r--r--app-emulation/docker/ChangeLog-2015283
-rw-r--r--app-emulation/docker/Manifest29
-rw-r--r--app-emulation/docker/docker-1.10.0.ebuild270
-rw-r--r--app-emulation/docker/docker-1.6.1.ebuild246
-rw-r--r--app-emulation/docker/docker-1.6.2.ebuild246
-rw-r--r--app-emulation/docker/docker-1.7.1.ebuild268
-rw-r--r--app-emulation/docker/docker-1.8.1.ebuild268
-rw-r--r--app-emulation/docker/docker-1.8.2.ebuild270
-rw-r--r--app-emulation/docker/docker-1.9.0.ebuild268
-rw-r--r--app-emulation/docker/docker-1.9.1.ebuild265
-rw-r--r--app-emulation/docker/docker-9999.ebuild267
-rw-r--r--app-emulation/docker/files/15404-fix-go14_15.patch85
-rw-r--r--app-emulation/docker/files/18074-disable-journald-arm.patch30
-rw-r--r--app-emulation/docker/files/7179-add-audit_write-cap.patch29
-rw-r--r--app-emulation/docker/files/docker-1.7.1-service-patch.patch12
-rw-r--r--app-emulation/docker/files/docker-r2.confd18
-rw-r--r--app-emulation/docker/files/docker-r2.initd54
-rw-r--r--app-emulation/docker/files/docker-r3.confd13
-rw-r--r--app-emulation/docker/files/docker-r3.initd31
-rw-r--r--app-emulation/docker/files/docker.initd31
-rw-r--r--app-emulation/docker/files/docker.service13
22 files changed, 3148 insertions, 0 deletions
diff --git a/app-emulation/docker/ChangeLog b/app-emulation/docker/ChangeLog
new file mode 100644
index 00000000..521e992b
--- /dev/null
+++ b/app-emulation/docker/ChangeLog
@@ -0,0 +1,152 @@
+# ChangeLog for app-emulation/docker
+# Copyright 1999-2016 Gentoo Foundation; Distributed under the GPL v2
+# (auto-generated from git log)
+
+*docker-1.7.1 (09 Aug 2015)
+*docker-1.6.2 (09 Aug 2015)
+*docker-1.6.1 (09 Aug 2015)
+
+ 09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org> +docker-1.6.1.ebuild,
+ +docker-1.6.2.ebuild, +docker-1.7.1.ebuild,
+ +files/7179-add-audit_write-cap.patch, +files/docker-r2.confd,
+ +files/docker-r2.initd, +files/docker-r3.confd, +files/docker-r3.initd,
+ +files/docker.initd, +files/docker.service, +metadata.xml:
+ proj/gentoo: Initial commit
+
+ This commit represents a new era for Gentoo:
+ Storing the gentoo-x86 tree in Git, as converted from CVS.
+
+ This commit is the start of the NEW history.
+ Any historical data is intended to be grafted onto this point.
+
+ Creation process:
+ 1. Take final CVS checkout snapshot
+ 2. Remove ALL ChangeLog* files
+ 3. Transform all Manifests to thin
+ 4. Remove empty Manifests
+ 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
+ 5.1. Do not touch files with -kb/-ko keyword flags.
+
+ Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+ X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration
+ tests
+ X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this
+ project
+ X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo
+ developer, wrote Git features for the migration
+ X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve
+ cvs2svn
+ X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
+ X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014
+ work in migration
+ X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
+ X-Thanks: All of other Gentoo developers - many ideas and lots of paint on
+ the bikeshed
+
+ 09 Aug 2015; Ulrich Müller <ulm@gentoo.org> files/docker-r2.initd,
+ files/docker-r3.initd, files/docker.initd:
+ [QA] Remove executable bit from files, bug 550434.
+
+ 24 Aug 2015; Justin Lecher <jlec@gentoo.org> metadata.xml:
+ Use https by default
+
+ Convert all URLs for sites supporting encrypted connections from http to
+ https
+
+ Signed-off-by: Justin Lecher <jlec@gentoo.org>
+
+ 24 Aug 2015; Mike Gilbert <floppym@gentoo.org> metadata.xml:
+ Revert DOCTYPE SYSTEM https changes in metadata.xml
+
+ repoman does not yet accept the https version.
+ This partially reverts eaaface92ee81f30a6ac66fe7acbcc42c00dc450.
+
+ Bug: https://bugs.gentoo.org/552720
+
+ 25 Aug 2015; William Hubbs <williamh@gentoo.org> metadata.xml:
+ add myself as a maintainer
+
+ This was approved by both alunduil and xarthisius.
+
+*docker-1.8.1 (25 Aug 2015)
+
+ 25 Aug 2015; William Hubbs <williamh@gentoo.org> +docker-1.8.1.ebuild:
+ version bump for 1.8.1
+
+ This is for bug #557972.
+
+*docker-9999 (25 Aug 2015)
+
+ 25 Aug 2015; William Hubbs <williamh@gentoo.org> +docker-9999.ebuild:
+ add live ebuild
+
+ 27 Aug 2015; Kacper Kowalik <xarthisius@gentoo.org> docker-1.8.1.ebuild,
+ +files/15404-fix-go14_15.patch:
+ Apply upstream patch fixing issue with go>=1.4. Fixes #558344
+
+ Package-Manager: portage-2.2.20
+
+ 19 Sep 2015; Agostino Sarubbo <ago@gentoo.org> docker-1.7.1.ebuild:
+ amd64 stable wrt bug #550894
+
+ Package-Manager: portage-2.2.20.1
+ RepoMan-Options: --include-arches="amd64"
+
+*docker-1.8.2 (28 Sep 2015)
+
+ 28 Sep 2015; Kacper Kowalik <xarthisius@gentoo.org> +docker-1.8.2.ebuild:
+ Version bump for 1.8.2. Ebuild ported from Tianon's overlay
+
+ Package-Manager: portage-2.2.20
+
+ 29 Sep 2015; Justin Lecher <jlec@gentoo.org> docker-1.8.2.ebuild:
+ Apply compat patch for go-1.5
+
+ Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=558344
+
+ Package-Manager: portage-2.2.22
+ Signed-off-by: Justin Lecher <jlec@gentoo.org>
+
+ 29 Sep 2015; Justin Lecher <jlec@gentoo.org> docker-1.6.2.ebuild,
+ docker-1.7.1.ebuild, docker-1.8.2.ebuild, docker-9999.ebuild:
+ Inherit eutils.eclass for epatch_user
+
+ Package-Manager: portage-2.2.22
+ Signed-off-by: Justin Lecher <jlec@gentoo.org>
+
+*docker-1.9.0 (03 Nov 2015)
+
+ 03 Nov 2015; Kacper Kowalik <xarthisius@gentoo.org> +docker-1.9.0.ebuild:
+ version bump to 1.9.0. Ebuild ported from Tianon's overlay
+
+ Package-Manager: portage-2.2.20
+
+*docker-1.9.1 (24 Nov 2015)
+
+ 24 Nov 2015; Kacper Kowalik <xarthisius@gentoo.org> +docker-1.9.1.ebuild,
+ +files/18074-disable-journald-arm.patch:
+ version bump, fixes #566432
+
+ 24 Jan 2016; Michał Górny <mgorny@gentoo.org> metadata.xml:
+ Replace all herds with appropriate projects (GLEP 67)
+
+ Replace all uses of herd with appropriate project maintainers, or no
+ maintainers in case of herds requested to be disbanded.
+
+ 24 Jan 2016; Michał Górny <mgorny@gentoo.org> metadata.xml:
+ Set appropriate maintainer types in metadata.xml (GLEP 67)
+
+*docker-1.10.0 (08 Feb 2016)
+
+ 08 Feb 2016; Kacper Kowalik <xarthisius@gentoo.org> +docker-1.10.0.ebuild:
+ version bump to 1.10.0
+
+ Fixes bug 574086 reported by RAPHEAD <raphead@gmx.net>
+ Ported from Tianon's overlay with following modifications:
+
+ * dropped ~arm ~x86 keywords
+ * simplified gcc-specs-pie sed invocation
+ * moved libseccomp to CDEPEND (*.h required for build)
+
+ Package-Manager: portage-2.2.27
+
diff --git a/app-emulation/docker/ChangeLog-2015 b/app-emulation/docker/ChangeLog-2015
new file mode 100644
index 00000000..477d682e
--- /dev/null
+++ b/app-emulation/docker/ChangeLog-2015
@@ -0,0 +1,283 @@
+# ChangeLog for app-emulation/docker
+# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/docker/ChangeLog,v 1.58 2015/08/07 04:53:18 vapier Exp $
+
+ 07 Aug 2015; Mike Frysinger <vapier@gentoo.org> docker-1.7.1.ebuild:
+ Make UTS_NS check non-fatal too #555434 by Deniss Gaplevsky.
+
+ 28 Jul 2015; Kacper Kowalik <xarthisius@gentoo.org> docker-1.7.1.ebuild:
+ Make kernel checks non fatal. Thanks to Tianon <admwiggin@gmail.com> for the
+ patch. Fixes #555434 by Deniss Gaplevsky <slim@inbox.lv>
+
+*docker-1.7.1 (24 Jul 2015)
+
+ 24 Jul 2015; Kacper Kowalik <xarthisius@gentoo.org> +docker-1.7.1.ebuild,
+ -docker-1.7.0-r1.ebuild, -docker-1.7.0.ebuild:
+ Version bump, grabbed from tianon's docker overlay. Fixes #554306. Drop old
+
+*docker-1.7.0-r1 (07 Jul 2015)
+
+ 07 Jul 2015; William Hubbs <williamh@gentoo.org> +docker-1.7.0-r1.ebuild:
+ add slot dependency on dev-lang/go, approved by all maintainers
+
+ 05 Jul 2015; Manuel Rüger <mrueg@gentoo.org> docker-1.6.2.ebuild,
+ docker-1.7.0.ebuild:
+ [QA] Install zsh-completion unconditionally.
+
+*docker-1.7.0 (04 Jul 2015)
+
+ 04 Jul 2015; Alex Brandt <alunduil@gentoo.org> +docker-1.7.0.ebuild,
+ files/docker-r2.confd, files/docker.initd, metadata.xml:
+ add version 1.7.0 * from tianon's docker-overlay * fixes bug #553708
+
+*docker-1.6.2 (04 Jul 2015)
+
+ 04 Jul 2015; Alex Brandt <alunduil@gentoo.org> +docker-1.6.2.ebuild,
+ +files/7179-add-audit_write-cap.patch, +files/docker-r3.confd,
+ +files/docker-r3.initd, +files/docker.initd, files/docker-r2.confd,
+ files/docker-r2.initd, files/docker.service:
+ add version 1.6.2 fixes bug #553706
+
+ 04 Jul 2015; Alex Brandt <alunduil@gentoo.org> metadata.xml:
+ add alunduil to maintainers
+
+ 30 Jun 2015; Manuel Rüger <mrueg@gentoo.org> docker-1.6.1.ebuild:
+ Install zsh-completions unconditionally.
+
+ 07 Jun 2015; Justin Lecher <jlec@gentoo.org> docker-1.6.1.ebuild:
+ Add missing eclass
+
+ 07 Jun 2015; Justin Lecher <jlec@gentoo.org> metadata.xml:
+ Add github to remote-id in metadata.xml
+
+ 08 May 2015; Kacper Kowalik <xarthisius@gentoo.org> -docker-1.5.0.ebuild:
+ drop old wrt #548884
+
+*docker-1.6.1 (08 May 2015)
+
+ 08 May 2015; Kacper Kowalik <xarthisius@gentoo.org> +docker-1.6.1.ebuild,
+ -docker-1.6.0.ebuild:
+ Version bump, drop old wrt #548884
+
+ 04 May 2015; Justin Lecher <jlec@gentoo.org> docker-1.6.0.ebuild:
+ Add missing dependency on aufs4, thanks jbergstroem for the report
+
+ 29 Apr 2015; Kacper Kowalik <xarthisius@gentoo.org> docker-1.6.0.ebuild:
+ Drop ~CFS_BANDWIDTH as it's not yet used by 1.6.0, add warning message for
+ CONFIG_MEMCG_SWAP_ENABLED. Thanks to Thomas Capricelli for the report
+
+*docker-1.6.0 (28 Apr 2015)
+
+ 28 Apr 2015; Kacper Kowalik <xarthisius@gentoo.org> +docker-1.6.0.ebuild:
+ Version bump, grabbed from tianon's docker overlay. Fixes #547316
+
+ 14 Mar 2015; Kacper Kowalik <xarthisius@gentoo.org> docker-1.5.0.ebuild:
+ Check if CPUSETS are enabled in kernel wrt bug #536546 by Dirk Best <mail
+ @dirk-best.de>. Thanks to Tianon <admwiggin@gmail.com> for reporting and
+ fixing it upstream
+
+ 03 Mar 2015; Kacper Kowalik <xarthisius@gentoo.org> docker-1.5.0.ebuild,
+ metadata.xml:
+ Port changes from Tianon's overlay. Fixes bug #541742 by Thomas Capricelli
+ <orzel@freehackers.org>
+
+ 19 Feb 2015; Patrick Lauer <patrick@gentoo.org> -docker-1.3.3-r1.ebuild,
+ -docker-1.4.1.ebuild:
+ Remove old versions with unsatisfiable dependencies
+
+ 15 Feb 2015; Patrick Lauer <patrick@gentoo.org> docker-1.3.3-r1.ebuild,
+ docker-1.4.1.ebuild, docker-1.5.0.ebuild:
+ Make kernel checks nonfatal to allow building (binpkgs etc.)
+
+*docker-1.5.0 (11 Feb 2015)
+
+ 11 Feb 2015; Kacper Kowalik <xarthisius@gentoo.org> +docker-1.5.0.ebuild:
+ Version bump, grabbed from tianon's docker overlay
+
+*docker-1.4.1 (23 Dec 2014)
+
+ 23 Dec 2014; Kacper Kowalik <xarthisius@gentoo.org> +docker-1.4.1.ebuild,
+ -docker-1.4.0.ebuild:
+ Version bump, drop old
+
+*docker-1.3.3-r1 (16 Dec 2014)
+
+ 16 Dec 2014; Alex Brandt <alunduil@gentoo.org> +docker-1.3.3-r1.ebuild:
+ add version 1.3.3-r1 from tianon's docker overlay
+
+ Version 1.4.0 of docker has a nasty bug when using volumes that are bind
+ mounts. Thus, I've added 1.3.3-r1 until 1.4.1 is released and fixes this
+ issue, or longer that's OK too.
+
+*docker-1.4.0 (12 Dec 2014)
+
+ 12 Dec 2014; Kacper Kowalik <xarthisius@gentoo.org> +docker-1.4.0.ebuild,
+ -docker-1.3.2.ebuild:
+ Version bump, drop vulnerable versions wrt #532344
+
+ 26 Nov 2014; Kacper Kowalik <xarthisius@gentoo.org> docker-1.3.2.ebuild:
+ Update with ebuild from Tianon's overlay
+
+ 26 Nov 2014; Kacper Kowalik <xarthisius@gentoo.org> metadata.xml:
+ Add myself as co-maintainer
+
+*docker-1.3.2 (26 Nov 2014)
+
+ 26 Nov 2014; Kacper Kowalik <xarthisius@gentoo.org> +docker-1.3.2.ebuild,
+ -docker-1.3.1.ebuild:
+ Version bump, drop old wrt bug #530518
+
+ 19 Nov 2014; Yixun Lan <dlan@gentoo.org> -docker-1.0.0.ebuild,
+ -docker-1.0.1.ebuild, -docker-1.1.0.ebuild, -docker-1.2.0.ebuild:
+ clean vulnerable versions due to security bug 529670, proxy for maintainer
+
+*docker-1.3.1 (31 Oct 2014)
+
+ 31 Oct 2014; Kacper Kowalik <xarthisius@gentoo.org> +docker-1.3.1.ebuild:
+ 1.3.1 version bump
+
+*docker-1.2.0 (09 Sep 2014)
+
+ 09 Sep 2014; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-1.2.0.ebuild:
+ 1.2.0 version bump
+
+ 06 Aug 2014; Patrick Lauer <patrick@gentoo.org> docker-1.0.0.ebuild,
+ docker-1.0.1.ebuild, docker-1.1.0.ebuild:
+ Make description more repoman-happy
+
+ 04 Jul 2014; Greg Kroah-Hartman <gregkh@gentoo.org> -docker-0.10.0.ebuild,
+ -docker-0.11.1.ebuild, -docker-0.7.1-r1.ebuild, -docker-0.7.1.ebuild,
+ -docker-0.7.2.ebuild, -docker-0.7.3.ebuild, -docker-0.7.4.ebuild,
+ -docker-0.7.5.ebuild, -docker-0.7.6.ebuild, -docker-0.8.0.ebuild,
+ -docker-0.8.1.ebuild, -docker-0.9.0.ebuild, -docker-0.9.1.ebuild:
+ remove obsolete ebuilds
+
+*docker-1.1.0 (04 Jul 2014)
+
+ 04 Jul 2014; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-1.1.0.ebuild:
+ 1.1.0 update
+
+*docker-1.0.1 (29 Jun 2014)
+
+ 29 Jun 2014; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-1.0.1.ebuild:
+ 1.0.1 version bump
+
+ 25 Jun 2014; Patrick Lauer <patrick@gentoo.org> -docker-0.7.0.ebuild:
+ Remove ebuild that fetches from live git
+
+*docker-1.0.0 (09 Jun 2014)
+
+ 09 Jun 2014; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-1.0.0.ebuild:
+ 1.0.0 release
+
+ 03 Jun 2014; Jeroen Roovers <jer@gentoo.org> metadata.xml:
+ Add proxy-maint herd.
+
+*docker-0.11.1 (09 May 2014)
+
+ 09 May 2014; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-0.11.1.ebuild,
+ metadata.xml:
+ 0.11.1 version bump
+
+*docker-0.10.0 (09 Apr 2014)
+
+ 09 Apr 2014; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-0.10.0.ebuild:
+ 0.10.0 bump
+
+*docker-0.9.1 (26 Mar 2014)
+
+ 26 Mar 2014; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-0.9.1.ebuild:
+ 0.9.1 bump
+
+*docker-0.9.0 (11 Mar 2014)
+
+ 11 Mar 2014; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-0.9.0.ebuild,
+ metadata.xml:
+ 0.9.0 version bump
+
+*docker-0.8.1 (21 Feb 2014)
+
+ 21 Feb 2014; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-0.8.1.ebuild:
+ 0.8.1 bump
+
+*docker-0.8.0 (05 Feb 2014)
+
+ 05 Feb 2014; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-0.8.0.ebuild,
+ metadata.xml:
+ 0.8.0 bump
+
+*docker-0.7.6 (16 Jan 2014)
+
+ 16 Jan 2014; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-0.7.6.ebuild:
+ 0.7.6 version bump
+
+ 10 Jan 2014; Greg Kroah-Hartman <gregkh@gentoo.org> -docker-0.6.3-r1.ebuild,
+ -docker-0.6.3.ebuild, -docker-0.6.5.ebuild, -docker-0.6.6.ebuild,
+ -docker-0.6.7.ebuild:
+ remove 0.6.* versions
+
+*docker-0.7.5 (10 Jan 2014)
+
+ 10 Jan 2014; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-0.7.5.ebuild:
+ 0.7.5 bump
+
+*docker-0.7.4 (10 Jan 2014)
+
+ 10 Jan 2014; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-0.7.4.ebuild:
+ 0.7.4 bump
+
+*docker-0.7.3 (04 Jan 2014)
+
+ 04 Jan 2014; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-0.7.3.ebuild:
+ 0.7.3 version bump
+
+ 31 Dec 2013; Tom Wijsman <TomWij@gentoo.org> -files/docker.initd,
+ metadata.xml:
+ [QA] Remove unused files. Added proxy-maintainers to metadata.xml due to non-
+ gorg e-mail address.
+
+*docker-0.7.2 (17 Dec 2013)
+*docker-0.7.1-r1 (17 Dec 2013)
+
+ 17 Dec 2013; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-0.7.1-r1.ebuild,
+ +docker-0.7.2.ebuild:
+ 0.7.1-rc1 and 0.7.2 version bump
+
+*docker-0.7.1 (10 Dec 2013)
+
+ 10 Dec 2013; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-0.7.1.ebuild:
+ 0.7.1 bump
+
+*docker-0.7.0 (26 Nov 2013)
+
+ 26 Nov 2013; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-0.7.0.ebuild,
+ metadata.xml:
+ add 0.7.0 release
+
+*docker-0.6.7 (23 Nov 2013)
+
+ 23 Nov 2013; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-0.6.7.ebuild:
+ 0.6.7 version bump
+
+*docker-0.6.6 (11 Nov 2013)
+
+ 11 Nov 2013; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-0.6.6.ebuild:
+ 0.6.6 version bump
+
+*docker-0.6.5 (31 Oct 2013)
+
+ 31 Oct 2013; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-0.6.5.ebuild:
+ version bump to 0.6.5
+
+*docker-0.6.3-r1 (05 Oct 2013)
+
+ 05 Oct 2013; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-0.6.3-r1.ebuild:
+ add dependancy on app-arch/xz-utils as it is needed
+
+*docker-0.6.3 (25 Sep 2013)
+
+ 25 Sep 2013; Greg Kroah-Hartman <gregkh@gentoo.org> +docker-0.6.3.ebuild,
+ +files/docker-r2.confd, +files/docker-r2.initd, +files/docker.initd,
+ +files/docker.service, +metadata.xml:
+ initial docker ebuild taken (with permission) from git@github.com:tianon
+ /docker-overlay.git
diff --git a/app-emulation/docker/Manifest b/app-emulation/docker/Manifest
new file mode 100644
index 00000000..1075f099
--- /dev/null
+++ b/app-emulation/docker/Manifest
@@ -0,0 +1,29 @@
+AUX 15404-fix-go14_15.patch 2545 SHA256 343ff859cc237cb190e60ed083c83b68ea93fbb6aabccefe3777a49588708ed5 SHA512 f064498fd8d12372c81489fd41959ff3ee24f31e9e16821ffc33a884cb7194c32d3ad980c2bfcc81769fc33b9769e9d6bac839c1f83c46c06ab76acf5ee8a938 WHIRLPOOL c3bdc7650ff538d0739e958398a6aa861901b5dae48f34117713c155237cd432cb9d13f683301ec34a566cc4fba5e6501ac7b50b8516b4092fc587e7b59ad09e
+AUX 18074-disable-journald-arm.patch 1017 SHA256 c02469b8329018cdb054a256a1cf51d8dc58a2cabaca5aea93904c9ed88d3222 SHA512 04fe749cbef896fe039f0967c792d1b06418194e61acafd2f41be7aff1dc5408c16869241ddc823e30019291106efc8a12d1d910faf8340e2da1de10988505f6 WHIRLPOOL 3722fa9b0ed7690ee4208e58ca12513ca262629831c4b69ea4976004ecd85c83912400163bf7a05c53aee88b3d37b365295d52de433b75a7932f2f15ae50d66d
+AUX 7179-add-audit_write-cap.patch 901 SHA256 a776377cf2aae6f832eda127153817b9bd8564295a02a4ffe1cc75a13b3f4828 SHA512 59c6859e3e843c44650706d359cded1fce42033c13e9c332abd28f8d6434bc4396559ec7d204a5da78535b388546797b2edb03dd765a25f346db33a925d2a734 WHIRLPOOL 6ceecfda3af9de7e31c03716a65c91d228b2ec99cf76e0e8dfdebc59c73ce1ca82b0880259f50566b935c48551b2897c817b72fd002c8ebd550aec5630bdbfb6
+AUX docker-1.7.1-service-patch.patch 423 SHA256 23018c3c64dbd6e71a843510d58c41ce9ab03c19cec4c742760279e180c0b201 SHA512 e199d2dfe2b52f7b74a97465b10840b7cf0eee669ba39a988d936a4a46b82525afdc45da3e9a64ba1db20d6c432d05b0668eb5ec00c310eec1898840c55488c9 WHIRLPOOL 203338c29a87090c9affc39c015aa5765969268d26c235821239bfe20c4501342582b8468ef6428838c7da3f8777107597e5cc57398a06efc81286c92e93804d
+AUX docker-r2.confd 581 SHA256 94e1c07b09701f3b0b1c4f6f917206da3b32f8d7e961c3850c4391ebd59df0b4 SHA512 5838270ff9ce7b9a562b2449ba5f4ad72db956dd03f6a1b006c8019ff43fea1c4ae1e2a4818fb092b6096cff6bd9ce539b05b7940412c55b3bb3e30c356da944 WHIRLPOOL a8e3759b6c86855afa7e784d50a7926fc888d50ec03dc2d9dcd70c3f2dd11caf6670196d91f383cab1d603f32a968bed4b3a0668ec1a38d41dc1142ec92235cc
+AUX docker-r2.initd 1620 SHA256 17c2a455f5bc1cc73e2c37d93d9a0cb94c6c77244fa553993578ec3ca1701a80 SHA512 fe5555782f795d5edf0309a6c57a58a623dd9789e44de52f36d9509b710558059c3731e6ccc44e163f056698b5cbe50b2013870a493dfaac56a8e0f3f28e8562 WHIRLPOOL 95158b66bdbc8a5cad73dec62aa8a9cc8c2a09cf62c698f1beff8bfb175c91dfb53279c435f47d0aae2861efcf74ea4589b683f15d16521f3f9c8d19d8208e83
+AUX docker-r3.confd 356 SHA256 be66cae5c678687ad989e8b8409b98e99c6f7dc484babb6018907ce53a01c33d SHA512 3fed48b59ca329f755f883fe794556179fb85c093342716f0455b716c0408e3e7a074ba32fe66579f0ca79b7a0cc82718a1d05c84c5d69f53a474b6f1e167eb0 WHIRLPOOL fef81b13617bba43a31f32c0df8a25173556ddb4accf8a985435cf374cf939c5f2da657a3435d03cf9e551858a4c1bcc714e2a1744a7e4abb3d097df8fbb7c8c
+AUX docker-r3.initd 783 SHA256 ad5b136feeda30b7357263da628760c3edde5c4cac4344835dc2631f607cb534 SHA512 8d0d38985fd1efbb0449b068587293396945744aac0512828da040d81874018a19a9c06119b92d5dd55f44a8a6184c4cfd55f8751d0dc15c840c2fe1f70687b2 WHIRLPOOL 78bbb5716d631e009938ed7ef23e7ba121ac52f1b5926e4a2723dee766b2decdcfe1dc0bf8aaf4e8bff3904c14d742d1f1b059a667a2e870d022922b04febf4b
+AUX docker.initd 774 SHA256 acffd404e1ffee5142efa59096c1e4e2e44dae6c5eedcf143948e3fd3421fa70 SHA512 ce016bdffe246abc2e763c9ec8f959876a3a042977d38adb224dedd8b2c3e4f820a30f03914fa04813cc58f23e93f82e14905c4576e2c33b52c792e380a0dd05 WHIRLPOOL c4631c099b49c0e8a714d841235ebd6622bf90560408ecff0fe857d7f8aec91616a07b57a6cb4174c5934fd5c317a8f114caf5f2549f1494ec3db4009274d697
+AUX docker.service 337 SHA256 09dbd144ed916d2b80916785109936d51eea13f59fef3d06b3a910c403dd9eea SHA512 9d9e571d4650668956e0344bdbcddb00803a87cf7bbf5d27ec5889691533407705b0531c3d9ce3fe686d57d5f3c6dc24ceaf3c7b9173262538b4fb90182a8472 WHIRLPOOL 27a201e507c24c78854e6ecb4d2e727de21adce7b3f212d8a5ef8c4295e518dd6a80c5f0f38a83ae514f94ace1eb6c4dcd1615678851358564a4646b36cfd20a
+DIST docker-1.10.0.tar.gz 9966458 SHA256 4321baec0839a0f57b9bb3a20d84f2ab1ff045fbe631c3aa76bbc1db67012635 SHA512 dc8c421e704990882dce26d23929d71dffeac605e07d595872f1fa5c0920f214a368c902ecd7c739f32a468c276001acf3cef1676aeaeffc8e4530ec028db070 WHIRLPOOL 583f186e338624ddb8d67941e62c5cc9f12af99a13939b20739dbe2d46eff0b3aa21fc8dec508d7b6f8dd13c4ff4e0f52cf7afd174d5289f7966c2cfefa3a081
+DIST docker-1.6.1.tar.gz 5713944 SHA256 aa3534277d11b32bc3564b801aeed0502f067317e7e111bd91ce2d989d34c51e SHA512 d2647f191fd295c8a9326e11ddbf6e77f33b70f14e3ebd37db3c9fa1f4946e0e3f426078ee847f52d7c57fc7783d26afe3e5d2e7ff17d8e6bb4f71609e8f5ef2 WHIRLPOOL e12c799ef63a0646f7393b00b6c1e200f350f7089445c58819ae5b53d66d18d985cb9f8fde1cd3ecfa55c2f0186064fc7080b7ebba132404aa15502029881602
+DIST docker-1.6.2.tar.gz 5714121 SHA256 f3a031b23ea9ff0fdbf3ffb9449c64ec51bb053491b47b28000eb4cce9f23203 SHA512 c27bdafabcb8ad2e49bee9e1529141a25596ba2b59435fb9368fc406950d0d7d1cbd876f1f4248dfc7089a22b8a2d13009dd164bde87e37b95a8e502bb49cac9 WHIRLPOOL aea4105ba30104d751203153b6208e363ce0abb3145ee134e675c4bc640e888afb281e7ba9009a30b9af37e829185684427a33b947d8710b49562e3352526c06
+DIST docker-1.7.1.tar.gz 6853527 SHA256 9cd26415d68a88d3cf576e7e78c2fe97f42af795404f552728acc5b41dccf4ef SHA512 9b32c3deab77a27a4322a3ccbb3759a2c2a5627605090c4517c3754e6821407abcf5ffa227bad1fdafcbba068cdcaab586015dd8cfe9aed7e8a221d0615463f1 WHIRLPOOL 41b1afd8ea08c3452e5658d73e85c3b79a64f85fb4cb99c4c6a2ce1ab49836cebbe14724afe47898cb8d9bb9d4d69c64ff1c061895f3b9534150bc7ab50e2b22
+DIST docker-1.8.1.tar.gz 7562594 SHA256 7f22e88a994dc1bc143f87215de01ccd902450e6e8d747467d042a56db792b03 SHA512 6c015b236914da945d9e5bf2fed3e8a0a4d1e0c44ee02bf6edc04b2bb48b626353e37de45cd99c486b7ced70807e606d5eac2f1bdb3f8a7ba86cd9b71e4f5504 WHIRLPOOL 8d514fb309f0ddbb92bcf84f4d79320e18c26211536919bbed68888f5af77247f14f93239e5c890c5214cf0a9663acc48a45545a87227f0fe4bf8866ac7d7c5c
+DIST docker-1.8.2.tar.gz 7563667 SHA256 457569ca8edd70293132789bfe51636f86cd8a46a60c6d02d5ee8600cf79f74b SHA512 c44f3cc0e0b7db463730620c0ec4b1aa1ea4a42f6528c891914318cb945aaa906e8eeaf91d32fb2d87a11ea1be428d1cf0de7d3ce4681c7db37390e4e1f79c67 WHIRLPOOL 2023f433ae25cc11fed6e4109a81dd949765daf342011f08a0ce8c1a8572ced595273ab78c45ac09abe895766c4443ff5a3219c5fce37725503bcdc39f49a947
+DIST docker-1.9.0.tar.gz 7815144 SHA256 1c06baea61971a711f9e510800fb4de5e0d8a6560963cfdc891e0037b40dc974 SHA512 16c7fd900ff1122ccd62ce93b84209b026a165ff647cd4875e32c16251098c05e9e7de834cc6f27d164b5be168f8fd16323ec60593287a787f6fa8fcef144291 WHIRLPOOL 4031e3aa03f74afaf395a412668d7142f867e6279a9d0ac5334a6b1d8b3ad5cccc93961d0e1c63aa7fc46179555a6f106ce6e8acbec774d21a7af37a147a2ea0
+DIST docker-1.9.1.tar.gz 7824414 SHA256 ff0ad9647b756381758a16440a48e6f3c8615bbc903e53680569aac0b0a85157 SHA512 db9db1d5095b2afe2285265414c36026d2b42d5547301d7d462151b81553f33e242b403b566e7835727d51b77e3176c049f1e9f37f60b59b3c66b95403c97b9d WHIRLPOOL 93118093947c8a490a2007003e45974d7923afae4111c59e2f026787cf57f99b275be1be4a9e69b17cddf576f2d2af7fadcaa1f7ebc0ca08ce0e42a055ace22b
+EBUILD docker-1.10.0.ebuild 7363 SHA256 bf9f3d39cbfb4aaac127be898ffa7e3869329bc32319fc25c6d5eb0684133efc SHA512 3d257d060f5deed1df7af15a6a1e25af6b4524d7d191e0a6d3cbcb018e7ba7058df3531373d9163e258516d0ca39f5a22d790a8c348911d20e2d3d318bbd499e WHIRLPOOL 1090068305004b1c2d1a9f1c2af6f63052f106a705b9358654d8347aabd6208dee7289d7efd7d4629e5f7a29e35f240a15ce2732b3c09f61c61f30425821befa
+EBUILD docker-1.6.1.ebuild 6882 SHA256 69e4c5b1372fdc8fdaa310fe283fbae71329d025d10abf228dacb80add61e35d SHA512 c00b17fd41800d8d2074ff4e6e2c19b02e75f3222d1041bc94add7816e9af73c0e26a15b99e1858ad86ed2a9e6a12249bacf07fc345cc4f786ba5c3d49c509b5 WHIRLPOOL 89c1ba35977df8016e684e7bc2b779c4f42bc816cffb79bc43d1b48eda6d7829f5b23c8dc4614c1f9736f850e40fa45186ded2f9ff8ea55be15650ac3ba1a225
+EBUILD docker-1.6.2.ebuild 6885 SHA256 53a3b6b54dea0e5d57fb8b42be40a2464904223eae6b7a7cd69ae7dbbb366599 SHA512 830c702cff169d747cffae97adf8f93431f9d6d7d46f46979657fd315cba270c4a0fe2e395d472b54cfb939ddfd2855b368edca9ae78e9ead64cea244c4c664e WHIRLPOOL 609c1ab3645778ca6d770cfb5fcc2fcb0fbd6e7d6f3b4c2b4df0a945347b6316477fa6ead5346779b46e571f1e8457e981fdbd4b3844f476e0b1946efc4a498b
+EBUILD docker-1.7.1.ebuild 7292 SHA256 707edb93d5b326565284c5e8f7fafdad5dea6fabf7cd31a8408a2830feb97109 SHA512 573bade239b1f97d136d0662d1d9a59d831ac60c7070e7ab559a9417853cc70c7e01efae171a7bf0c66386dca6c8128d986f79108b2f237556d98cb857d4d8ce WHIRLPOOL 400cbffc8799714453a89f3eeb59102e5b6638ead616e95acf559810809bb2a28c4d466ca3d357595e742903262d391ecea35ff5245245b0f5d14da882ed5298
+EBUILD docker-1.8.1.ebuild 7315 SHA256 2d5738f5a69ab4e3bdf8970a900a2c10754482dbe51f85b68ee0b74b129667ed SHA512 17b8fcbefc5b7438007a8d3454aa53db7f7b6bad877d6583da2eb323199f29cd076e534ece3eabaa776e95c45314ba006427fb040eea2190a4bb9a32dcf89c3c WHIRLPOOL 66a2c2ae7f0fc32af6abce88bdace33b313e37b8e8e384e2a090ca2c34fb79b24c619eea4c090180ea5f66ab02014eebe51a4b4639d8ff5f3eb4a04e1af16641
+EBUILD docker-1.8.2.ebuild 7383 SHA256 a16b32bf15666273ed7c8f7ff45e10d126f8b463fe233f9dbaff6d06c27b2a28 SHA512 9534e43c1a3c9d2886763381909d3eded7b563b1ec90fbd85156f337d508dc59019e4d428f4475ae8b040b8dadae655d6ca1ad1c377abdaa0a9aa7ccb14fb1b0 WHIRLPOOL b19227bdda570876220130ab45a04603b08a98ac123d3e5a383431473409ea64b9f266b9b1749d6e0cff1d77c3892524dc375ba0e18eb2b797dbf6827d35d1b0
+EBUILD docker-1.9.0.ebuild 7364 SHA256 5a00d49343f2e6ceec9d3a0285cf5dc0f671a13381c7bccf0e6b4961fff9e4d2 SHA512 fce1ad73f291194ff0dd7f0782b23246759943aa52c91bb99e1cb7c70ab00e0a649e2886343bb3b82cf814c2282be44774f8721a15705c8901cf142c129a7d46 WHIRLPOOL 97cb543e96cf223e5a3278b641b6be0a6d7e01701e12b9143efda572b56f600c77d02c80c437e0f8fe841b2ac24e71e491811012b6e18399cdfe28d631b2ec2d
+EBUILD docker-1.9.1.ebuild 7375 SHA256 b5433bc1b52afa90cc5e7479d2c14cd77897115e6d404fc1b466c2132a813200 SHA512 a71555a6a9bc4ca35baf0321e44a9c97c44da34ef1fdc6176c28306b4386ec238bdf744a7684dac00c28c5d23432e687d97b62a72a0c9d372a33f12f792e1111 WHIRLPOOL 086dca81c002e13ed7fcbedae8d1412ba4707d734aabc14c2f7f5ab4b58899b8289abe943470e267bad7c3ac2a62405bd1b9777816c3d46a6ad0a3c7a68b1a07
+EBUILD docker-9999.ebuild 7269 SHA256 9fa2f0cdaf271dd1e50758ecf2bbbdb2fd3ce32e1d093f121457926877aaf5f4 SHA512 6f7c94e24519dafafb2a32878c9a0a0453ff9a68b1a9512a9377ed52e0ac962db65de2e32020f43c756c711b08441694dcda7b69e384a00bd019cee12893aee5 WHIRLPOOL c2c90d17e8c8eeae89ee796e7647c4d3ec4681edda8aca6be1b6734e7003349db7f03dc45166d3aa7a9f8a2447ae2f2f286d2f5a8e1deee8ddaccbf448b6dc58
+MISC ChangeLog 5211 SHA256 ad8de34781ddb6d4df1a5873f3fcafbb9368a615b46ddef5b796c57b5ee336af SHA512 4b3463d71bf3b32ea8903ba5f87c1c7a65aa3e7b19bf26067b5e3a52e56feb9581f2299d4455dc21f31969bedc0a13ddc99ec8e76cb131d4305b9c5e6dae8c2a WHIRLPOOL 50f430ee87bc9dc32ada8fdba94cbfb4d90f7ae321ae58a79d708cd837d88419d3305089aa1c5fbd053c4483d5fbe646e8effa9b95b3c05330ee5e055ad6f6d1
+MISC ChangeLog-2015 9435 SHA256 36770420e0a23ee8b09a9028adc801e536c3735e355134a7d3c8185642453d44 SHA512 dde3d12dae10732a3822e0c84909285afcf325df948c61bae83852157b14d75e10151577eb3eef9af6ee94e8c292e7faac54e82565bceaf858702cd1e81c72aa WHIRLPOOL 5a3b5916981d5ec1d653b26a2789303301c103d1013d4c28fe11f926b88f200c40d1f59ac8ad750e4c55a70806b1f9c5da028e8966972c84a7ccca7820f9a294
diff --git a/app-emulation/docker/docker-1.10.0.ebuild b/app-emulation/docker/docker-1.10.0.ebuild
new file mode 100644
index 00000000..4cb61f60
--- /dev/null
+++ b/app-emulation/docker/docker-1.10.0.ebuild
@@ -0,0 +1,270 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+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="590d510"
+ EGIT_COMMIT="v${MY_PV}"
+ 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 linux-info multilib systemd udev user
+
+DESCRIPTION="Docker complements kernel namespacing with a high-level API which operates at the process level"
+HOMEPAGE="https://dockerproject.org"
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="apparmor aufs btrfs +device-mapper experimental overlay seccomp"
+
+# https://github.com/docker/docker/blob/master/hack/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]
+ )
+"
+
+DEPEND="
+ ${CDEPEND}
+
+ dev-go/go-md2man
+
+ btrfs? (
+ >=sys-fs/btrfs-progs-3.8
+ )
+"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#runtime-dependencies
+# https://github.com/docker/docker/blob/master/hack/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
+
+ apparmor? (
+ sys-libs/libapparmor[static-libs]
+ )
+"
+
+RESTRICT="installsources strip"
+
+# see "contrib/check-config.sh" from upstream's sources
+CONFIG_CHECK="
+ ~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS
+ ~DEVPTS_MULTIPLE_INSTANCES
+ ~CGROUPS ~CGROUP_CPUACCT ~CGROUP_DEVICE ~CGROUP_FREEZER ~CGROUP_SCHED ~CPUSETS ~MEMCG
+ ~MACVLAN ~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
+
+ ~MEMCG_KMEM ~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
+
+ ~BLK_CGROUP ~IOSCHED_CFQ
+ ~CGROUP_PERF
+ ~CGROUP_HUGETLB
+ ~NET_CLS_CGROUP
+ ~CFS_BANDWIDTH ~FAIR_GROUP_SCHED ~RT_GROUP_SCHED
+"
+
+ERROR_MEMCG_KMEM="CONFIG_MEMCG_KMEM: is optional"
+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"
+
+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/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 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
+ "
+ 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_prepare() {
+ cd "src/${EGO_PN}" || die
+ # allow user patches (use sparingly - upstream won't support them)
+ epatch_user
+}
+
+src_compile() {
+ cd "src/${EGO_PN}" || die
+ 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 zip, 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 || die
+ grep -q -- '-fno-PIC' hack/make/dynbinary || 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 seccomp; do
+ if use $tag; then
+ DOCKER_BUILDTAGS+=" $tag"
+ fi
+ done
+
+ # https://github.com/docker/docker/pull/13338
+ if use experimental; then
+ export DOCKER_EXPERIMENTAL=1
+ else
+ unset DOCKER_EXPERIMENTAL
+ fi
+
+ # 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() {
+ cd "src/${EGO_PN}" || die
+ VERSION="$(cat VERSION)"
+ newbin "bundles/$VERSION/dynbinary/docker-$VERSION" docker
+ exeinto /usr/libexec/docker
+ newexe "bundles/$VERSION/dynbinary/dockerinit-$VERSION" dockerinit
+
+ 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
+ mkdir -p "${D}/usr/share/${PN}/contrib"
+ cp -R contrib/* "${D}/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
+}
diff --git a/app-emulation/docker/docker-1.6.1.ebuild b/app-emulation/docker/docker-1.6.1.ebuild
new file mode 100644
index 00000000..adabf385
--- /dev/null
+++ b/app-emulation/docker/docker-1.6.1.ebuild
@@ -0,0 +1,246 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="Docker complements kernel namespacing with a high-level API which operates at the process level"
+HOMEPAGE="https://www.docker.com"
+
+GITHUB_URI="github.com/docker/docker"
+
+if [[ ${PV} == *9999 ]]; then
+ SRC_URI=""
+ EGIT_REPO_URI="git://${GITHUB_URI}.git"
+ inherit git-2
+else
+ MY_PV="${PV/_/-}"
+ MY_P="${PN}-${MY_PV}"
+ SRC_URI="https://${GITHUB_URI}/archive/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
+ S="${WORKDIR}/${MY_P}"
+ DOCKER_GITCOMMIT="97cd073"
+ KEYWORDS="~amd64"
+ [ "$DOCKER_GITCOMMIT" ] || die "DOCKER_GITCOMMIT must be added manually for each bump!"
+fi
+
+inherit bash-completion-r1 eutils linux-info multilib systemd udev user
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="aufs btrfs +contrib +device-mapper doc lxc overlay vim-syntax"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#build-dependencies
+CDEPEND="
+ >=dev-db/sqlite-3.7.9:3
+ device-mapper? (
+ >=sys-fs/lvm2-2.02.89[thin]
+ )
+"
+
+DEPEND="
+ ${CDEPEND}
+ >=dev-lang/go-1.3
+ btrfs? (
+ >=sys-fs/btrfs-progs-3.16.1
+ )
+"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#runtime-dependencies
+# https://github.com/docker/docker/blob/master/hack/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
+
+ lxc? (
+ >=app-emulation/lxc-1.0.7
+ )
+ aufs? (
+ || (
+ sys-fs/aufs3
+ sys-fs/aufs4
+ sys-kernel/aufs-sources
+ )
+ )
+"
+
+RESTRICT="installsources strip"
+
+# see "contrib/check-config.sh" from upstream's sources
+CONFIG_CHECK="
+ NAMESPACES NET_NS PID_NS IPC_NS UTS_NS
+ DEVPTS_MULTIPLE_INSTANCES
+ CGROUPS CGROUP_CPUACCT CGROUP_DEVICE CGROUP_FREEZER CGROUP_SCHED CPUSETS
+ MACVLAN VETH BRIDGE
+ 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
+
+ ~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
+ ~RESOURCE_COUNTERS
+ ~CGROUP_PERF
+ ~CFS_BANDWIDTH
+"
+
+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_CGROUP_PERF="CONFIG_CGROUP_PERF: is optional for container statistics gathering"
+ERROR_CFS_BANDWIDTH="CONFIG_CFS_BANDWIDTH: is optional for container statistics gathering"
+
+pkg_setup() {
+ if kernel_is lt 3 8; then
+ eerror ""
+ eerror "Using Docker with kernels older than 3.8 is unstable and unsupported."
+ eerror " - http://docs.docker.com/installation/binaries/#check-kernel-dependencies"
+ die 'Kernel is too old - need 3.8 or above'
+ 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 use aufs; then
+ CONFIG_CHECK+="
+ ~AUFS_FS
+ ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY
+ "
+ # TODO there must be a way to detect "sys-kernel/aufs-sources" so we don't warn "sys-fs/aufs3" users about this
+ # an even better solution would be to check if the current kernel sources include CONFIG_AUFS_FS as an option, but that sounds hairy and error-prone
+ ERROR_AUFS_FS="CONFIG_AUFS_FS: is required to be set if and only if aufs-sources are used"
+ fi
+
+ if use btrfs; then
+ CONFIG_CHECK+="
+ ~BTRFS_FS
+ "
+ 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
+}
+
+src_prepare() {
+ # allow user patches (use sparingly - upstream won't support them)
+ epatch_user
+}
+
+src_compile() {
+ # if we treat them right, Docker's build scripts will set up a
+ # reasonable GOPATH for us
+ export AUTO_GOPATH=1
+
+ # 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 zip, we need the GITCOMMIT value
+ [ "$DOCKER_GITCOMMIT" ] && export DOCKER_GITCOMMIT
+
+ if gcc-specs-pie; then
+ sed -i "s/EXTLDFLAGS_STATIC='/EXTLDFLAGS_STATIC='-fno-PIC /" hack/make.sh || die
+ grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed'
+
+ sed -i "s/LDFLAGS_STATIC_DOCKER='/LDFLAGS_STATIC_DOCKER='-extldflags -fno-PIC /" hack/make/dynbinary || die
+ grep -q -- '-fno-PIC' hack/make/dynbinary || 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
+
+ # time to build!
+ ./hack/make.sh dynbinary || die 'dynbinary failed'
+
+ # TODO get go-md2man and then include the man pages using docs/man/md2man-all.sh
+}
+
+src_install() {
+ VERSION=$(cat VERSION)
+ newbin bundles/$VERSION/dynbinary/docker-$VERSION docker
+ exeinto /usr/libexec/docker
+ newexe bundles/$VERSION/dynbinary/dockerinit-$VERSION dockerinit
+
+ 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
+ if use doc; then
+ # TODO doman contrib/man/man*/*
+
+ docompress -x /usr/share/doc/${PF}/md
+ docinto md
+ dodoc -r docs/sources/*
+ fi
+
+ dobashcomp contrib/completion/bash/*
+
+ insinto /usr/share/zsh/site-functions
+ doins contrib/completion/zsh/*
+
+ if use vim-syntax; then
+ insinto /usr/share/vim/vimfiles
+ doins -r contrib/syntax/vim/ftdetect
+ doins -r contrib/syntax/vim/syntax
+ fi
+
+ if use contrib; then
+ mkdir -p "${D}/usr/share/${PN}/contrib"
+ cp -R contrib/* "${D}/usr/share/${PN}/contrib"
+ fi
+}
+
+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 ""
+
+ # create docker group if the code checking for it in /etc/group exists
+ enewgroup docker
+
+ elog "To use Docker as a non-root user, add yourself to the 'docker' group:"
+ elog " usermod -aG docker youruser"
+ elog ""
+}
diff --git a/app-emulation/docker/docker-1.6.2.ebuild b/app-emulation/docker/docker-1.6.2.ebuild
new file mode 100644
index 00000000..1eb4f5fc
--- /dev/null
+++ b/app-emulation/docker/docker-1.6.2.ebuild
@@ -0,0 +1,246 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="Docker complements kernel namespacing with a high-level API which operates at the process level"
+HOMEPAGE="https://www.docker.com"
+
+GITHUB_URI="github.com/docker/docker"
+
+if [[ ${PV} == *9999 ]]; then
+ SRC_URI=""
+ EGIT_REPO_URI="git://${GITHUB_URI}.git"
+ inherit git-2
+else
+ MY_PV="${PV/_/-}"
+ MY_P="${PN}-${MY_PV}"
+ SRC_URI="https://${GITHUB_URI}/archive/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
+ S="${WORKDIR}/${MY_P}"
+ DOCKER_GITCOMMIT="7c8fca2"
+ KEYWORDS="~amd64"
+ [ "$DOCKER_GITCOMMIT" ] || die "DOCKER_GITCOMMIT must be added manually for each bump!"
+fi
+
+inherit bash-completion-r1 eutils linux-info multilib systemd udev user
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="aufs btrfs +contrib +device-mapper doc lxc overlay vim-syntax"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#build-dependencies
+CDEPEND="
+ >=dev-db/sqlite-3.7.9:3
+ device-mapper? (
+ >=sys-fs/lvm2-2.02.89[thin]
+ )
+"
+
+DEPEND="
+ ${CDEPEND}
+ >=dev-lang/go-1.3
+ btrfs? (
+ >=sys-fs/btrfs-progs-3.16.1
+ )
+"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#runtime-dependencies
+# https://github.com/docker/docker/blob/master/hack/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
+
+ lxc? (
+ >=app-emulation/lxc-1.0.7
+ )
+ aufs? (
+ || (
+ sys-fs/aufs3
+ sys-fs/aufs4
+ sys-kernel/aufs-sources
+ )
+ )
+"
+
+RESTRICT="installsources strip"
+
+# see "contrib/check-config.sh" from upstream's sources
+CONFIG_CHECK="
+ NAMESPACES NET_NS PID_NS IPC_NS UTS_NS
+ DEVPTS_MULTIPLE_INSTANCES
+ CGROUPS CGROUP_CPUACCT CGROUP_DEVICE CGROUP_FREEZER CGROUP_SCHED CPUSETS
+ MACVLAN VETH BRIDGE
+ 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
+
+ ~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
+ ~RESOURCE_COUNTERS
+ ~CGROUP_PERF
+ ~CFS_BANDWIDTH
+"
+
+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_CGROUP_PERF="CONFIG_CGROUP_PERF: is optional for container statistics gathering"
+ERROR_CFS_BANDWIDTH="CONFIG_CFS_BANDWIDTH: is optional for container statistics gathering"
+
+pkg_setup() {
+ if kernel_is lt 3 10; then
+ eerror ""
+ eerror "Using Docker with kernels older than 3.10 is unstable and unsupported."
+ eerror " - http://docs.docker.com/installation/binaries/#check-kernel-dependencies"
+ die 'Kernel is too old - need 3.10 or above'
+ 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 use aufs; then
+ CONFIG_CHECK+="
+ ~AUFS_FS
+ ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY
+ "
+ # TODO there must be a way to detect "sys-kernel/aufs-sources" so we don't warn "sys-fs/aufs3" users about this
+ # an even better solution would be to check if the current kernel sources include CONFIG_AUFS_FS as an option, but that sounds hairy and error-prone
+ ERROR_AUFS_FS="CONFIG_AUFS_FS: is required to be set if and only if aufs-sources are used"
+ fi
+
+ if use btrfs; then
+ CONFIG_CHECK+="
+ ~BTRFS_FS
+ "
+ 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
+}
+
+src_prepare() {
+ # allow user patches (use sparingly - upstream won't support them)
+ epatch_user
+}
+
+src_compile() {
+ # if we treat them right, Docker's build scripts will set up a
+ # reasonable GOPATH for us
+ export AUTO_GOPATH=1
+
+ # 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 zip, we need the GITCOMMIT value
+ [ "$DOCKER_GITCOMMIT" ] && export DOCKER_GITCOMMIT
+
+ if gcc-specs-pie; then
+ sed -i "s/EXTLDFLAGS_STATIC='/EXTLDFLAGS_STATIC='-fno-PIC /" hack/make.sh || die
+ grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed'
+
+ sed -i "s/LDFLAGS_STATIC_DOCKER='/LDFLAGS_STATIC_DOCKER='-extldflags -fno-PIC /" hack/make/dynbinary || die
+ grep -q -- '-fno-PIC' hack/make/dynbinary || 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
+
+ # time to build!
+ ./hack/make.sh dynbinary || die 'dynbinary failed'
+
+ # TODO get go-md2man and then include the man pages using docs/man/md2man-all.sh
+}
+
+src_install() {
+ VERSION=$(cat VERSION)
+ newbin bundles/$VERSION/dynbinary/docker-$VERSION docker
+ exeinto /usr/libexec/docker
+ newexe bundles/$VERSION/dynbinary/dockerinit-$VERSION dockerinit
+
+ 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
+ if use doc; then
+ # TODO doman contrib/man/man*/*
+
+ docompress -x /usr/share/doc/${PF}/md
+ docinto md
+ dodoc -r docs/sources/*
+ fi
+
+ dobashcomp contrib/completion/bash/*
+
+ insinto /usr/share/zsh/site-functions
+ doins contrib/completion/zsh/*
+
+ if use vim-syntax; then
+ insinto /usr/share/vim/vimfiles
+ doins -r contrib/syntax/vim/ftdetect
+ doins -r contrib/syntax/vim/syntax
+ fi
+
+ if use contrib; then
+ mkdir -p "${D}/usr/share/${PN}/contrib"
+ cp -R contrib/* "${D}/usr/share/${PN}/contrib"
+ fi
+}
+
+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 ""
+
+ # create docker group if the code checking for it in /etc/group exists
+ enewgroup docker
+
+ elog "To use Docker as a non-root user, add yourself to the 'docker' group:"
+ elog " usermod -aG docker youruser"
+ elog ""
+}
diff --git a/app-emulation/docker/docker-1.7.1.ebuild b/app-emulation/docker/docker-1.7.1.ebuild
new file mode 100644
index 00000000..cff5ab96
--- /dev/null
+++ b/app-emulation/docker/docker-1.7.1.ebuild
@@ -0,0 +1,268 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="Docker complements kernel namespacing with a high-level API which operates at the process level"
+HOMEPAGE="https://www.docker.com"
+
+GITHUB_URI="github.com/docker/docker"
+
+if [[ ${PV} == *9999 ]]; then
+ SRC_URI=""
+ EGIT_REPO_URI="git://${GITHUB_URI}.git"
+ inherit git-2
+else
+ MY_PV="${PV/_/-}"
+ MY_P="${PN}-${MY_PV}"
+ SRC_URI="https://${GITHUB_URI}/archive/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
+ S="${WORKDIR}/${MY_P}"
+ DOCKER_GITCOMMIT="786b29d"
+ KEYWORDS="amd64"
+ [ "$DOCKER_GITCOMMIT" ] || die "DOCKER_GITCOMMIT must be added manually for each bump!"
+fi
+
+inherit bash-completion-r1 eutils linux-info multilib systemd udev user
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="apparmor aufs btrfs +contrib +device-mapper doc experimental lxc overlay vim-syntax"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#build-dependencies
+CDEPEND="
+ >=dev-db/sqlite-3.7.9:3
+ device-mapper? (
+ >=sys-fs/lvm2-2.02.89[thin]
+ )
+"
+
+DEPEND="
+ ${CDEPEND}
+ >=dev-lang/go-1.4:0 <dev-lang/go-1.5
+ btrfs? (
+ >=sys-fs/btrfs-progs-3.8
+ )
+"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#runtime-dependencies
+# https://github.com/docker/docker/blob/master/hack/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
+
+ lxc? (
+ >=app-emulation/lxc-1.0.7
+ )
+ aufs? (
+ || (
+ >=sys-kernel/linux-argent-3.18
+ >=sys-kernel/linux-kogaion-3.14
+ )
+ )
+
+ apparmor? (
+ sys-libs/libapparmor[static-libs]
+ )
+"
+
+RESTRICT="installsources strip"
+
+# see "contrib/check-config.sh" from upstream's sources
+CONFIG_CHECK="
+ ~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS
+ ~DEVPTS_MULTIPLE_INSTANCES
+ ~CGROUPS ~CGROUP_CPUACCT ~CGROUP_DEVICE ~CGROUP_FREEZER ~CGROUP_SCHED ~CPUSETS
+ ~MACVLAN ~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
+
+ ~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
+
+ ~BLK_CGROUP
+ ~IOSCHED_CFQ
+ ~CGROUP_PERF
+ ~CFS_BANDWIDTH
+"
+
+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_CGROUP_PERF="CONFIG_CGROUP_PERF: is optional for container statistics gathering"
+ERROR_CFS_BANDWIDTH="CONFIG_CFS_BANDWIDTH: is optional for container statistics gathering"
+
+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/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 use aufs; then
+ CONFIG_CHECK+="
+ ~AUFS_FS
+ ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY
+ "
+ # TODO there must be a way to detect "sys-kernel/aufs-sources" so we don't warn "sys-fs/aufs3" users about this
+ # an even better solution would be to check if the current kernel sources include CONFIG_AUFS_FS as an option, but that sounds hairy and error-prone
+ ERROR_AUFS_FS="CONFIG_AUFS_FS: is required to be set if and only if aufs-sources are used"
+ fi
+
+ if use btrfs; then
+ CONFIG_CHECK+="
+ ~BTRFS_FS
+ "
+ 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
+}
+
+src_prepare() {
+ # allow user patches (use sparingly - upstream won't support them)
+ epatch_user
+ epatch "${FILESDIR}"/${P}-service-patch.patch
+}
+
+src_compile() {
+ # if we treat them right, Docker's build scripts will set up a
+ # reasonable GOPATH for us
+ export AUTO_GOPATH=1
+
+ # 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 zip, we need the GITCOMMIT value
+ [ "$DOCKER_GITCOMMIT" ] && export DOCKER_GITCOMMIT
+
+ if gcc-specs-pie; then
+ sed -i "s/EXTLDFLAGS_STATIC='/EXTLDFLAGS_STATIC='-fno-PIC /" hack/make.sh || die
+ grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed'
+
+ sed -i "s/LDFLAGS_STATIC_DOCKER='/LDFLAGS_STATIC_DOCKER='-extldflags -fno-PIC /" hack/make/dynbinary || die
+ grep -q -- '-fno-PIC' hack/make/dynbinary || 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
+
+ if use apparmor; then
+ DOCKER_BUILDTAGS+=' apparmor'
+ fi
+
+ # https://github.com/docker/docker/pull/13338
+ if use experimental; then
+ export DOCKER_EXPERIMENTAL=1
+ else
+ unset DOCKER_EXPERIMENTAL
+ fi
+
+ # time to build!
+ ./hack/make.sh dynbinary || die 'dynbinary failed'
+
+ # TODO get go-md2man and then include the man pages using man/md2man-all.sh
+}
+
+src_install() {
+ VERSION=$(cat VERSION)
+ newbin bundles/$VERSION/dynbinary/docker-$VERSION docker
+ exeinto /usr/libexec/docker
+ newexe bundles/$VERSION/dynbinary/dockerinit-$VERSION dockerinit
+
+ 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
+ if use doc; then
+ # TODO doman man/man*/*
+
+ docompress -x /usr/share/doc/${PF}/md
+ docinto md
+ dodoc -r docs/*
+ fi
+
+ dobashcomp contrib/completion/bash/*
+
+ insinto /usr/share/zsh/site-functions
+ doins contrib/completion/zsh/*
+
+ if use vim-syntax; then
+ insinto /usr/share/vim/vimfiles
+ doins -r contrib/syntax/vim/ftdetect
+ doins -r contrib/syntax/vim/syntax
+ fi
+
+ if use contrib; then
+ mkdir -p "${D}/usr/share/${PN}/contrib"
+ cp -R contrib/* "${D}/usr/share/${PN}/contrib"
+ fi
+}
+
+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 ""
+
+ # create docker group if the code checking for it in /etc/group exists
+ enewgroup docker
+
+ elog "To use Docker as a non-root user, add yourself to the 'docker' group:"
+ elog " usermod -aG docker youruser"
+ elog ""
+}
diff --git a/app-emulation/docker/docker-1.8.1.ebuild b/app-emulation/docker/docker-1.8.1.ebuild
new file mode 100644
index 00000000..73cc01d8
--- /dev/null
+++ b/app-emulation/docker/docker-1.8.1.ebuild
@@ -0,0 +1,268 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+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="d12ea79"
+ EGIT_COMMIT="v${MY_PV}"
+ 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 eutils bash-completion-r1 linux-info multilib systemd udev user
+
+DESCRIPTION="Docker complements kernel namespacing with a high-level API which operates at the process level"
+HOMEPAGE="https://dockerproject.org"
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="apparmor aufs btrfs +device-mapper experimental lxc overlay"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#build-dependencies
+CDEPEND="
+ >=dev-db/sqlite-3.7.9:3
+ device-mapper? (
+ >=sys-fs/lvm2-2.02.89[thin]
+ )
+"
+
+DEPEND="
+ ${CDEPEND}
+
+ dev-go/go-md2man
+
+ btrfs? (
+ >=sys-fs/btrfs-progs-3.8
+ )
+"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#runtime-dependencies
+# https://github.com/docker/docker/blob/master/hack/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
+
+ lxc? (
+ >=app-emulation/lxc-1.0.7
+ )
+
+ apparmor? (
+ sys-libs/libapparmor[static-libs]
+ )
+"
+
+RESTRICT="installsources strip"
+
+# see "contrib/check-config.sh" from upstream's sources
+CONFIG_CHECK="
+ ~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS
+ ~DEVPTS_MULTIPLE_INSTANCES
+ ~CGROUPS ~CGROUP_CPUACCT ~CGROUP_DEVICE ~CGROUP_FREEZER ~CGROUP_SCHED ~CPUSETS ~MEMCG
+ ~MACVLAN ~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
+
+ ~MEMCG_KMEM ~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
+
+ ~BLK_CGROUP ~IOSCHED_CFQ
+ ~CGROUP_PERF
+ ~CGROUP_HUGETLB
+ ~NET_CLS_CGROUP
+ ~CFS_BANDWIDTH ~FAIR_GROUP_SCHED ~RT_GROUP_SCHED
+"
+
+ERROR_MEMCG_KMEM="CONFIG_MEMCG_KMEM: is optional"
+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"
+
+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/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 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
+ "
+ 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_prepare() {
+ cd "src/${EGO_PN}" || die
+ epatch "${FILESDIR}"/15404-fix-go14_15.patch
+ # allow user patches (use sparingly - upstream won't support them)
+ epatch_user
+}
+
+src_compile() {
+ cd "src/${EGO_PN}" || die
+ export GOPATH="${WORKDIR}/${P}:${PWD}/vendor:$(get_golibdir_gopath)"
+
+ # 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 zip, we need the GITCOMMIT value
+ [ "$DOCKER_GITCOMMIT" ] && export DOCKER_GITCOMMIT
+
+ if gcc-specs-pie; then
+ sed -i "s/EXTLDFLAGS_STATIC='/EXTLDFLAGS_STATIC='-fno-PIC /" hack/make.sh || die
+ grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed'
+
+ sed -i "s/LDFLAGS_STATIC_DOCKER='/LDFLAGS_STATIC_DOCKER='-extldflags -fno-PIC /" hack/make/dynbinary || die
+ grep -q -- '-fno-PIC' hack/make/dynbinary || 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
+
+ if use apparmor; then
+ DOCKER_BUILDTAGS+=' apparmor'
+ fi
+
+ # https://github.com/docker/docker/pull/13338
+ if use experimental; then
+ export DOCKER_EXPERIMENTAL=1
+ else
+ unset DOCKER_EXPERIMENTAL
+ fi
+
+ # 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() {
+ cd "src/${EGO_PN}" || die
+ VERSION="$(cat VERSION)"
+ newbin "bundles/$VERSION/dynbinary/docker-$VERSION" docker
+ exeinto /usr/libexec/docker
+ newexe "bundles/$VERSION/dynbinary/dockerinit-$VERSION" dockerinit
+
+ 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
+
+ insinto "/usr/share/${PN}/contrib"
+ doins -r 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
+}
diff --git a/app-emulation/docker/docker-1.8.2.ebuild b/app-emulation/docker/docker-1.8.2.ebuild
new file mode 100644
index 00000000..031c7497
--- /dev/null
+++ b/app-emulation/docker/docker-1.8.2.ebuild
@@ -0,0 +1,270 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+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="0a8c2e3"
+ EGIT_COMMIT="v${MY_PV}"
+ 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 eutils linux-info multilib systemd udev user
+
+DESCRIPTION="Docker complements kernel namespacing with a high-level API which operates at the process level"
+HOMEPAGE="https://dockerproject.org"
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="apparmor aufs btrfs +device-mapper experimental lxc overlay"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#build-dependencies
+CDEPEND="
+ >=dev-db/sqlite-3.7.9:3
+ device-mapper? (
+ >=sys-fs/lvm2-2.02.89[thin]
+ )
+"
+
+DEPEND="
+ ${CDEPEND}
+
+ dev-go/go-md2man
+
+ btrfs? (
+ >=sys-fs/btrfs-progs-3.8
+ )
+"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#runtime-dependencies
+# https://github.com/docker/docker/blob/master/hack/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
+
+ lxc? (
+ >=app-emulation/lxc-1.0.7
+ )
+
+ apparmor? (
+ sys-libs/libapparmor[static-libs]
+ )
+"
+
+RESTRICT="installsources strip"
+
+# see "contrib/check-config.sh" from upstream's sources
+CONFIG_CHECK="
+ ~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS
+ ~DEVPTS_MULTIPLE_INSTANCES
+ ~CGROUPS ~CGROUP_CPUACCT ~CGROUP_DEVICE ~CGROUP_FREEZER ~CGROUP_SCHED ~CPUSETS ~MEMCG
+ ~MACVLAN ~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
+
+ ~MEMCG_KMEM ~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
+
+ ~BLK_CGROUP ~IOSCHED_CFQ
+ ~CGROUP_PERF
+ ~CGROUP_HUGETLB
+ ~NET_CLS_CGROUP
+ ~CFS_BANDWIDTH ~FAIR_GROUP_SCHED ~RT_GROUP_SCHED
+"
+
+ERROR_MEMCG_KMEM="CONFIG_MEMCG_KMEM: is optional"
+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"
+
+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/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 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
+ "
+ 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_prepare() {
+ cd "src/${EGO_PN}" || die
+ epatch "${FILESDIR}"/15404-fix-go14_15.patch
+ # allow user patches (use sparingly - upstream won't support them)
+ epatch_user
+}
+
+src_compile() {
+ cd "src/${EGO_PN}" || die
+ export GOPATH="${WORKDIR}/${P}:${PWD}/vendor:$(get_golibdir_gopath)"
+
+ # 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 zip, we need the GITCOMMIT value
+ [ "$DOCKER_GITCOMMIT" ] && export DOCKER_GITCOMMIT
+
+ if gcc-specs-pie; then
+ sed -i "s/EXTLDFLAGS_STATIC='/EXTLDFLAGS_STATIC='-fno-PIC /" hack/make.sh || die
+ grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed'
+
+ sed -i "s/LDFLAGS_STATIC_DOCKER='/LDFLAGS_STATIC_DOCKER='-extldflags -fno-PIC /" hack/make/dynbinary || die
+ grep -q -- '-fno-PIC' hack/make/dynbinary || 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
+
+ if use apparmor; then
+ DOCKER_BUILDTAGS+=' apparmor'
+ fi
+
+ # https://github.com/docker/docker/pull/13338
+ if use experimental; then
+ export DOCKER_EXPERIMENTAL=1
+ else
+ unset DOCKER_EXPERIMENTAL
+ fi
+
+ # 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() {
+ cd "src/${EGO_PN}" || die
+ VERSION="$(cat VERSION)"
+ newbin "bundles/$VERSION/dynbinary/docker-$VERSION" docker
+ exeinto /usr/libexec/docker
+ newexe "bundles/$VERSION/dynbinary/dockerinit-$VERSION" dockerinit
+
+ 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
+
+ exeinto /usr/share/${PN}/contrib
+ doexe contrib/*.{sh,pl}
+ insinto /usr/share/${PN}/contrib
+ doins contrib/*.{conf,sample}
+}
+
+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
+}
diff --git a/app-emulation/docker/docker-1.9.0.ebuild b/app-emulation/docker/docker-1.9.0.ebuild
new file mode 100644
index 00000000..0be94044
--- /dev/null
+++ b/app-emulation/docker/docker-1.9.0.ebuild
@@ -0,0 +1,268 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+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="76d6bc9"
+ EGIT_COMMIT="v${MY_PV}"
+ 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 linux-info multilib systemd udev user
+
+DESCRIPTION="Docker complements kernel namespacing with a high-level API which operates at the process level"
+HOMEPAGE="https://dockerproject.org"
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="apparmor aufs btrfs +device-mapper experimental lxc overlay"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#build-dependencies
+CDEPEND="
+ >=dev-db/sqlite-3.7.9:3
+ device-mapper? (
+ >=sys-fs/lvm2-2.02.89[thin]
+ )
+"
+
+DEPEND="
+ ${CDEPEND}
+
+ dev-go/go-md2man
+
+ btrfs? (
+ >=sys-fs/btrfs-progs-3.8
+ )
+"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#runtime-dependencies
+# https://github.com/docker/docker/blob/master/hack/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
+
+ lxc? (
+ >=app-emulation/lxc-1.0.7
+ )
+
+ apparmor? (
+ sys-libs/libapparmor[static-libs]
+ )
+"
+
+RESTRICT="installsources strip"
+
+# see "contrib/check-config.sh" from upstream's sources
+CONFIG_CHECK="
+ ~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS
+ ~DEVPTS_MULTIPLE_INSTANCES
+ ~CGROUPS ~CGROUP_CPUACCT ~CGROUP_DEVICE ~CGROUP_FREEZER ~CGROUP_SCHED ~CPUSETS ~MEMCG
+ ~MACVLAN ~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
+
+ ~MEMCG_KMEM ~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
+
+ ~BLK_CGROUP ~IOSCHED_CFQ
+ ~CGROUP_PERF
+ ~CGROUP_HUGETLB
+ ~NET_CLS_CGROUP
+ ~CFS_BANDWIDTH ~FAIR_GROUP_SCHED ~RT_GROUP_SCHED
+"
+
+ERROR_MEMCG_KMEM="CONFIG_MEMCG_KMEM: is optional"
+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"
+
+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/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 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
+ "
+ 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_prepare() {
+ cd "src/${EGO_PN}" || die
+ # allow user patches (use sparingly - upstream won't support them)
+ epatch_user
+}
+
+src_compile() {
+ cd "src/${EGO_PN}" || die
+ export GOPATH="${WORKDIR}/${P}:${PWD}/vendor:$(get_golibdir_gopath)"
+
+ # 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 zip, we need the GITCOMMIT value
+ [ "$DOCKER_GITCOMMIT" ] && export DOCKER_GITCOMMIT
+
+ if gcc-specs-pie; then
+ sed -i "s/EXTLDFLAGS_STATIC='/EXTLDFLAGS_STATIC='-fno-PIC /" hack/make.sh || die
+ grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed'
+
+ sed -i "s/LDFLAGS_STATIC_DOCKER='/LDFLAGS_STATIC_DOCKER='-extldflags -fno-PIC /" hack/make/dynbinary || die
+ grep -q -- '-fno-PIC' hack/make/dynbinary || 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
+
+ if use apparmor; then
+ DOCKER_BUILDTAGS+=' apparmor'
+ fi
+
+ # https://github.com/docker/docker/pull/13338
+ if use experimental; then
+ export DOCKER_EXPERIMENTAL=1
+ else
+ unset DOCKER_EXPERIMENTAL
+ fi
+
+ # 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() {
+ cd "src/${EGO_PN}" || die
+ VERSION="$(cat VERSION)"
+ newbin "bundles/$VERSION/dynbinary/docker-$VERSION" docker
+ exeinto /usr/libexec/docker
+ newexe "bundles/$VERSION/dynbinary/dockerinit-$VERSION" dockerinit
+
+ 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
+ mkdir -p "${D}/usr/share/${PN}/contrib"
+ cp -R contrib/* "${D}/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
+}
diff --git a/app-emulation/docker/docker-1.9.1.ebuild b/app-emulation/docker/docker-1.9.1.ebuild
new file mode 100644
index 00000000..f490eac0
--- /dev/null
+++ b/app-emulation/docker/docker-1.9.1.ebuild
@@ -0,0 +1,265 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+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="a34a1d5"
+ EGIT_COMMIT="v${MY_PV}"
+ 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 linux-info multilib systemd udev user
+
+DESCRIPTION="Docker complements kernel namespacing with a high-level API which operates at the process level"
+HOMEPAGE="https://dockerproject.org"
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="apparmor aufs btrfs +device-mapper experimental overlay"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#build-dependencies
+CDEPEND="
+ >=dev-db/sqlite-3.7.9:3
+ device-mapper? (
+ >=sys-fs/lvm2-2.02.89[thin]
+ )
+"
+
+DEPEND="
+ ${CDEPEND}
+
+ dev-go/go-md2man
+
+ btrfs? (
+ >=sys-fs/btrfs-progs-3.8
+ )
+"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#runtime-dependencies
+# https://github.com/docker/docker/blob/master/hack/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
+
+ apparmor? (
+ sys-libs/libapparmor[static-libs]
+ )
+"
+
+RESTRICT="installsources strip"
+
+# see "contrib/check-config.sh" from upstream's sources
+CONFIG_CHECK="
+ ~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS
+ ~DEVPTS_MULTIPLE_INSTANCES
+ ~CGROUPS ~CGROUP_CPUACCT ~CGROUP_DEVICE ~CGROUP_FREEZER ~CGROUP_SCHED ~CPUSETS ~MEMCG
+ ~MACVLAN ~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
+
+ ~MEMCG_KMEM ~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
+
+ ~BLK_CGROUP ~IOSCHED_CFQ
+ ~CGROUP_PERF
+ ~CGROUP_HUGETLB
+ ~NET_CLS_CGROUP
+ ~CFS_BANDWIDTH ~FAIR_GROUP_SCHED ~RT_GROUP_SCHED
+"
+
+ERROR_MEMCG_KMEM="CONFIG_MEMCG_KMEM: is optional"
+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"
+
+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/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 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
+ "
+ 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_prepare() {
+ cd "src/${EGO_PN}" || die
+ epatch "${FILESDIR}"/18074-disable-journald-arm.patch
+ # allow user patches (use sparingly - upstream won't support them)
+ epatch_user
+}
+
+src_compile() {
+ cd "src/${EGO_PN}" || die
+ export GOPATH="${WORKDIR}/${P}:${PWD}/vendor:$(get_golibdir_gopath)"
+
+ # 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 zip, we need the GITCOMMIT value
+ [ "$DOCKER_GITCOMMIT" ] && export DOCKER_GITCOMMIT
+
+ if gcc-specs-pie; then
+ sed -i "s/EXTLDFLAGS_STATIC='/EXTLDFLAGS_STATIC='-fno-PIC /" hack/make.sh || die
+ grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed'
+
+ sed -i "s/LDFLAGS_STATIC_DOCKER='/LDFLAGS_STATIC_DOCKER='-extldflags -fno-PIC /" hack/make/dynbinary || die
+ grep -q -- '-fno-PIC' hack/make/dynbinary || 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
+
+ if use apparmor; then
+ DOCKER_BUILDTAGS+=' apparmor'
+ fi
+
+ # https://github.com/docker/docker/pull/13338
+ if use experimental; then
+ export DOCKER_EXPERIMENTAL=1
+ else
+ unset DOCKER_EXPERIMENTAL
+ fi
+
+ # 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() {
+ cd "src/${EGO_PN}" || die
+ VERSION="$(cat VERSION)"
+ newbin "bundles/$VERSION/dynbinary/docker-$VERSION" docker
+ exeinto /usr/libexec/docker
+ newexe "bundles/$VERSION/dynbinary/dockerinit-$VERSION" dockerinit
+
+ 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
+ mkdir -p "${D}/usr/share/${PN}/contrib"
+ cp -R contrib/* "${D}/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
+}
diff --git a/app-emulation/docker/docker-9999.ebuild b/app-emulation/docker/docker-9999.ebuild
new file mode 100644
index 00000000..02a19fec
--- /dev/null
+++ b/app-emulation/docker/docker-9999.ebuild
@@ -0,0 +1,267 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+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="d12ea79"
+ EGIT_COMMIT="v${MY_PV}"
+ 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 eutils linux-info multilib systemd udev user
+
+DESCRIPTION="Docker complements kernel namespacing with a high-level API which operates at the process level"
+HOMEPAGE="https://dockerproject.org"
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="apparmor aufs btrfs +device-mapper experimental lxc overlay"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#build-dependencies
+CDEPEND="
+ >=dev-db/sqlite-3.7.9:3
+ device-mapper? (
+ >=sys-fs/lvm2-2.02.89[thin]
+ )
+"
+
+DEPEND="
+ ${CDEPEND}
+
+ dev-go/go-md2man
+
+ btrfs? (
+ >=sys-fs/btrfs-progs-3.8
+ )
+"
+
+# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#runtime-dependencies
+# https://github.com/docker/docker/blob/master/hack/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
+
+ lxc? (
+ >=app-emulation/lxc-1.0.7
+ )
+
+ apparmor? (
+ sys-libs/libapparmor[static-libs]
+ )
+"
+
+RESTRICT="installsources strip"
+
+# see "contrib/check-config.sh" from upstream's sources
+CONFIG_CHECK="
+ ~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS
+ ~DEVPTS_MULTIPLE_INSTANCES
+ ~CGROUPS ~CGROUP_CPUACCT ~CGROUP_DEVICE ~CGROUP_FREEZER ~CGROUP_SCHED ~CPUSETS ~MEMCG
+ ~MACVLAN ~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
+
+ ~MEMCG_KMEM ~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
+
+ ~BLK_CGROUP ~IOSCHED_CFQ
+ ~CGROUP_PERF
+ ~CGROUP_HUGETLB
+ ~NET_CLS_CGROUP
+ ~CFS_BANDWIDTH ~FAIR_GROUP_SCHED ~RT_GROUP_SCHED
+"
+
+ERROR_MEMCG_KMEM="CONFIG_MEMCG_KMEM: is optional"
+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"
+
+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/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 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
+ "
+ 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_prepare() {
+ cd "src/${EGO_PN}" || die
+ # allow user patches (use sparingly - upstream won't support them)
+ epatch_user
+}
+
+src_compile() {
+ cd "src/${EGO_PN}" || die
+ export GOPATH="${WORKDIR}/${P}:${PWD}/vendor:$(get_golibdir_gopath)"
+
+ # 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 zip, we need the GITCOMMIT value
+ [ "$DOCKER_GITCOMMIT" ] && export DOCKER_GITCOMMIT
+
+ if gcc-specs-pie; then
+ sed -i "s/EXTLDFLAGS_STATIC='/EXTLDFLAGS_STATIC='-fno-PIC /" hack/make.sh || die
+ grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed'
+
+ sed -i "s/LDFLAGS_STATIC_DOCKER='/LDFLAGS_STATIC_DOCKER='-extldflags -fno-PIC /" hack/make/dynbinary || die
+ grep -q -- '-fno-PIC' hack/make/dynbinary || 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
+
+ if use apparmor; then
+ DOCKER_BUILDTAGS+=' apparmor'
+ fi
+
+ # https://github.com/docker/docker/pull/13338
+ if use experimental; then
+ export DOCKER_EXPERIMENTAL=1
+ else
+ unset DOCKER_EXPERIMENTAL
+ fi
+
+ # 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() {
+ cd "src/${EGO_PN}" || die
+ VERSION="$(cat VERSION)"
+ newbin "bundles/$VERSION/dynbinary/docker-$VERSION" docker
+ exeinto /usr/libexec/docker
+ newexe "bundles/$VERSION/dynbinary/dockerinit-$VERSION" dockerinit
+
+ 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
+
+ insinto "/usr/share/${PN}/contrib"
+ doins -r 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
+}
diff --git a/app-emulation/docker/files/15404-fix-go14_15.patch b/app-emulation/docker/files/15404-fix-go14_15.patch
new file mode 100644
index 00000000..7cda1f93
--- /dev/null
+++ b/app-emulation/docker/files/15404-fix-go14_15.patch
@@ -0,0 +1,85 @@
+From f83d05c3be3c3bcc84f6fa229504848ee8078321 Mon Sep 17 00:00:00 2001
+From: Vincent Batts <vbatts@redhat.com>
+Date: Fri, 7 Aug 2015 10:18:20 -0400
+Subject: [PATCH] devicemapper: fix zero-sized field access
+
+Fixes: #15279
+
+Due to
+https://github.com/golang/go/commit/7904946eeb35faece61bbf6f5b3cc8be2f519c17
+the devices field is dropped.
+
+This solution works on go1.4 and go1.5
+
+Signed-off-by: Vincent Batts <vbatts@redhat.com>
+---
+ daemon/graphdriver/devmapper/deviceset.go | 14 +++++++++-----
+ pkg/devicemapper/devmapper_wrapper.go | 18 +++++++++++++++---
+ 2 files changed, 24 insertions(+), 8 deletions(-)
+
+diff --git a/daemon/graphdriver/devmapper/deviceset.go b/daemon/graphdriver/devmapper/deviceset.go
+index 6dddeb1..97e2032 100644
+--- a/daemon/graphdriver/devmapper/deviceset.go
++++ b/daemon/graphdriver/devmapper/deviceset.go
+@@ -1509,12 +1509,16 @@ func (devices *DeviceSet) deactivatePool() error {
+ if err != nil {
+ return err
+ }
+- if d, err := devicemapper.GetDeps(devname); err == nil {
+- // Access to more Debug output
+- logrus.Debugf("[devmapper] devicemapper.GetDeps() %s: %#v", devname, d)
++
++ if devinfo.Exists == 0 {
++ return nil
+ }
+- if devinfo.Exists != 0 {
+- return devicemapper.RemoveDevice(devname)
++ if err := devicemapper.RemoveDevice(devname); err != nil {
++ return err
++ }
++
++ if d, err := devicemapper.GetDeps(devname); err == nil {
++ logrus.Warnf("[devmapper] device %s still has %d active dependents", devname, d.Count)
+ }
+
+ return nil
+diff --git a/pkg/devicemapper/devmapper_wrapper.go b/pkg/devicemapper/devmapper_wrapper.go
+index 87c2003..44ca772 100644
+--- a/pkg/devicemapper/devmapper_wrapper.go
++++ b/pkg/devicemapper/devmapper_wrapper.go
+@@ -38,7 +38,10 @@ static void log_with_errno_init()
+ */
+ import "C"
+
+-import "unsafe"
++import (
++ "reflect"
++ "unsafe"
++)
+
+ type (
+ CDmTask C.struct_dm_task
+@@ -184,12 +187,21 @@ func dmTaskGetDepsFct(task *CDmTask) *Deps {
+ if Cdeps == nil {
+ return nil
+ }
++
++ // golang issue: https://github.com/golang/go/issues/11925
++ hdr := reflect.SliceHeader{
++ Data: uintptr(unsafe.Pointer(uintptr(unsafe.Pointer(Cdeps)) + unsafe.Sizeof(*Cdeps))),
++ Len: int(Cdeps.count),
++ Cap: int(Cdeps.count),
++ }
++ devices := *(*[]C.uint64_t)(unsafe.Pointer(&hdr))
++
+ deps := &Deps{
+ Count: uint32(Cdeps.count),
+ Filler: uint32(Cdeps.filler),
+ }
+- for _, device := range Cdeps.device {
+- deps.Device = append(deps.Device, (uint64)(device))
++ for _, device := range devices {
++ deps.Device = append(deps.Device, uint64(device))
+ }
+ return deps
+ }
diff --git a/app-emulation/docker/files/18074-disable-journald-arm.patch b/app-emulation/docker/files/18074-disable-journald-arm.patch
new file mode 100644
index 00000000..e7c9a2f6
--- /dev/null
+++ b/app-emulation/docker/files/18074-disable-journald-arm.patch
@@ -0,0 +1,30 @@
+diff --git a/daemon/logger/journald/journald.go b/daemon/logger/journald/journald.go
+index c729b56..97c379c 100644
+--- a/daemon/logger/journald/journald.go
++++ b/daemon/logger/journald/journald.go
+@@ -1,4 +1,4 @@
+-// +build linux
++// +build linux,!arm
+
+ // Package journald provides the log driver for forwarding server logs
+ // to endpoints that receive the systemd format.
+diff --git a/daemon/logger/journald/journald_unsupported.go b/daemon/logger/journald/journald_unsupported.go
+index d52ca92..8e9034a 100644
+--- a/daemon/logger/journald/journald_unsupported.go
++++ b/daemon/logger/journald/journald_unsupported.go
+@@ -1,4 +1,4 @@
+-// +build !linux
++// +build !linux linux,arm
+
+ package journald
+
+diff --git a/daemon/logger/journald/read.go b/daemon/logger/journald/read.go
+index 80c1fbd..0477c04 100644
+--- a/daemon/logger/journald/read.go
++++ b/daemon/logger/journald/read.go
+@@ -1,4 +1,4 @@
+-// +build linux,cgo,!static_build,journald
++// +build linux,cgo,!static_build,journald,!arm
+
+ package journald
+
diff --git a/app-emulation/docker/files/7179-add-audit_write-cap.patch b/app-emulation/docker/files/7179-add-audit_write-cap.patch
new file mode 100644
index 00000000..6263698c
--- /dev/null
+++ b/app-emulation/docker/files/7179-add-audit_write-cap.patch
@@ -0,0 +1,29 @@
+From 29ecc95c31ecfe15e3b3d8db94cea1c555e526a3 Mon Sep 17 00:00:00 2001
+From: Alexandr Morozov <lk4d4math@gmail.com>
+Date: Wed, 23 Jul 2014 09:57:41 +0400
+Subject: [PATCH] Add AUDIT_WRITE cap
+
+Fixes #6345
+
+Thanks @larsks for outstanding investigation
+
+Docker-DCO-1.1-Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com> (github: LK4D4)
+---
+ daemon/execdriver/native/template/default_template.go | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/daemon/execdriver/native/template/default_template.go b/daemon/execdriver/native/template/default_template.go
+index cc5cc4f..be3dd5a 100644
+--- a/daemon/execdriver/native/template/default_template.go
++++ b/daemon/execdriver/native/template/default_template.go
+@@ -23,6 +23,7 @@ func New() *libcontainer.Config {
+ "NET_BIND_SERVICE",
+ "SYS_CHROOT",
+ "KILL",
++ "AUDIT_WRITE",
+ },
+ Namespaces: map[string]bool{
+ "NEWNS": true,
+--
+2.0.3
+
diff --git a/app-emulation/docker/files/docker-1.7.1-service-patch.patch b/app-emulation/docker/files/docker-1.7.1-service-patch.patch
new file mode 100644
index 00000000..10f1002c
--- /dev/null
+++ b/app-emulation/docker/files/docker-1.7.1-service-patch.patch
@@ -0,0 +1,12 @@
+--- docker-1.7.1/contrib/init/systemd/docker.service.orig 2015-07-14 21:41:25.000000000 +0300
++++ docker-1.7.1/contrib/init/systemd/docker.service 2016-03-31 23:38:11.461808109 +0300
+@@ -5,7 +5,8 @@
+ Requires=docker.socket
+
+ [Service]
+-ExecStart=/usr/bin/docker -d -H fd://
++EnvironmentFile=/etc/default/docker
++ExecStart=/usr/bin/docker -d $DOCKER_OPTS -H fd://
+ MountFlags=slave
+ LimitNOFILE=1048576
+ LimitNPROC=1048576
diff --git a/app-emulation/docker/files/docker-r2.confd b/app-emulation/docker/files/docker-r2.confd
new file mode 100644
index 00000000..5436b233
--- /dev/null
+++ b/app-emulation/docker/files/docker-r2.confd
@@ -0,0 +1,18 @@
+# /etc/conf.d/docker: config file for /etc/init.d/docker
+
+# where the docker daemon output gets piped
+#DOCKER_LOGFILE="/var/log/docker.log"
+
+# where docker's pid get stored
+#DOCKER_PIDFILE="/run/docker.pid"
+
+# where the docker daemon itself is run from
+#DOCKER_BINARY="/usr/bin/docker"
+
+# uncomment this for a simple workaround to
+# https://github.com/dotcloud/docker/issues/1422
+#DOCKER_WORKAROUND_1422="1"
+
+# if you find that the default DOCKER_WORKAROUND_1422 delay of one second
+# is not sufficient, try uncommenting and increasing this value
+#DOCKER_WORKAROUND_1422_DELAY="1"
diff --git a/app-emulation/docker/files/docker-r2.initd b/app-emulation/docker/files/docker-r2.initd
new file mode 100644
index 00000000..b081d9c7
--- /dev/null
+++ b/app-emulation/docker/files/docker-r2.initd
@@ -0,0 +1,54 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+DOCKER_LOGFILE=${DOCKER_LOGFILE:-/var/log/${SVCNAME}.log}
+DOCKER_PIDFILE=${DOCKER_PIDFILE:-/run/${SVCNAME}.pid}
+DOCKER_BINARY=${DOCKER_BINARY:-/usr/bin/docker}
+DOCKER_WORKAROUND_1422=${DOCKER_WORKAROUND_1422:-0}
+DOCKER_WORKAROUND_1422_DELAY=${DOCKER_WORKAROUND_1422_DELAY:-1}
+
+start() {
+ checkpath -f -m 0644 -o root:docker "$DOCKER_LOGFILE"
+
+ ebegin "Starting docker daemon"
+ start-stop-daemon --start --background \
+ --exec "$DOCKER_BINARY" \
+ --pidfile "$DOCKER_PIDFILE" \
+ --stdout "$DOCKER_LOGFILE" \
+ --stderr "$DOCKER_LOGFILE" \
+ -- -d -p "$DOCKER_PIDFILE"
+ eend $?
+ ret=$?
+
+ if [ $ret -eq 0 ] \
+ && [ "$DOCKER_WORKAROUND_1422" ] \
+ && [ "$DOCKER_WORKAROUND_1422" -gt 0 ] \
+ ; then
+ # see https://github.com/dotcloud/docker/issues/1422
+ ewarn "Working around gh#1422 (via busybox image); this may take a moment"
+
+ # we were calling "docker run" more quickly than "docker -d" could get
+ # fired up, so our workaround wasn't successful without a short delay
+ sleep $DOCKER_WORKAROUND_1422_DELAY
+
+ # TODO when we get https://github.com/dotcloud/docker/pull/1589, these
+ # both need -rm so we clean up after ourselves (thanks, @eliasp!)
+ docker run -i -t busybox true &> /dev/null || true
+ # first run will fail, so we ignore its output and result and run again
+ docker run -i -t busybox true
+
+ ewend $?
+ fi
+
+ return $ret
+}
+
+stop() {
+ ebegin "Stopping docker daemon"
+ start-stop-daemon --stop \
+ --exec "$DOCKER_BINARY" \
+ --pidfile "$DOCKER_PIDFILE"
+ eend $?
+}
diff --git a/app-emulation/docker/files/docker-r3.confd b/app-emulation/docker/files/docker-r3.confd
new file mode 100644
index 00000000..ae247c00
--- /dev/null
+++ b/app-emulation/docker/files/docker-r3.confd
@@ -0,0 +1,13 @@
+# /etc/conf.d/docker: config file for /etc/init.d/docker
+
+# where the docker daemon output gets piped
+#DOCKER_LOGFILE="/var/log/docker.log"
+
+# where docker's pid get stored
+#DOCKER_PIDFILE="/run/docker.pid"
+
+# where the docker daemon itself is run from
+#DOCKER_BINARY="/usr/bin/docker"
+
+# any other random options you want to pass to docker
+DOCKER_OPTS=""
diff --git a/app-emulation/docker/files/docker-r3.initd b/app-emulation/docker/files/docker-r3.initd
new file mode 100644
index 00000000..a3031850
--- /dev/null
+++ b/app-emulation/docker/files/docker-r3.initd
@@ -0,0 +1,31 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+DOCKER_LOGFILE=${DOCKER_LOGFILE:-/var/log/${SVCNAME}.log}
+DOCKER_PIDFILE=${DOCKER_PIDFILE:-/run/${SVCNAME}.pid}
+DOCKER_BINARY=${DOCKER_BINARY:-/usr/bin/docker}
+DOCKER_OPTS=${DOCKER_OPTS:-}
+
+start() {
+ checkpath -f -m 0644 -o root:docker "$DOCKER_LOGFILE"
+
+ ebegin "Starting docker daemon"
+ start-stop-daemon --start --background \
+ --exec "$DOCKER_BINARY" \
+ --pidfile "$DOCKER_PIDFILE" \
+ --stdout "$DOCKER_LOGFILE" \
+ --stderr "$DOCKER_LOGFILE" \
+ -- -d -p "$DOCKER_PIDFILE" \
+ $DOCKER_OPTS
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping docker daemon"
+ start-stop-daemon --stop \
+ --exec "$DOCKER_BINARY" \
+ --pidfile "$DOCKER_PIDFILE"
+ eend $?
+}
diff --git a/app-emulation/docker/files/docker.initd b/app-emulation/docker/files/docker.initd
new file mode 100644
index 00000000..18ca8ab9
--- /dev/null
+++ b/app-emulation/docker/files/docker.initd
@@ -0,0 +1,31 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+DOCKER_LOGFILE=${DOCKER_LOGFILE:-/var/log/${SVCNAME}.log}
+DOCKER_PIDFILE=${DOCKER_PIDFILE:-/run/${SVCNAME}.pid}
+DOCKER_BINARY=${DOCKER_BINARY:-/usr/bin/docker}
+
+start() {
+ touch "$DOCKER_LOGFILE"
+ chown root:docker "$DOCKER_LOGFILE"
+ chmod 0644 "$DOCKER_LOGFILE"
+
+ ebegin "Starting docker daemon"
+ start-stop-daemon --start --background \
+ --exec "$DOCKER_BINARY" \
+ --pidfile "$DOCKER_PIDFILE" \
+ --stdout "$DOCKER_LOGFILE" \
+ --stderr "$DOCKER_LOGFILE" \
+ -- -d -p "$DOCKER_PIDFILE"
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping docker daemon"
+ start-stop-daemon --stop \
+ --exec "$DOCKER_BINARY" \
+ --pidfile "$DOCKER_PIDFILE"
+ eend $?
+}
diff --git a/app-emulation/docker/files/docker.service b/app-emulation/docker/files/docker.service
new file mode 100644
index 00000000..bd53c520
--- /dev/null
+++ b/app-emulation/docker/files/docker.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Easily create lightweight, portable, self-sufficient containers from any application!
+Requires=network.target
+After=multi-user.target
+
+[Service]
+Type=simple
+EnvironmentFile=-/etc/default/docker
+ExecStartPre=/bin/mount --make-rprivate /
+ExecStart=/usr/bin/docker -d ${DOCKER_OPTS}
+
+[Install]
+WantedBy=multi-user.target