Import docker.io_1.8.3~ds1-2.debian.tar.xz
authorTianon Gravi <tianon@debian.org>
Wed, 4 Nov 2015 08:09:02 +0000 (08:09 +0000)
committerTianon Gravi <tianon@debian.org>
Wed, 4 Nov 2015 08:09:02 +0000 (08:09 +0000)
[dgit import tarball docker.io 1.8.3~ds1-2 docker.io_1.8.3~ds1-2.debian.tar.xz]

41 files changed:
Dockerfile [new file with mode: 0644]
README.Debian [new file with mode: 0644]
changelog [new file with mode: 0644]
compat [new file with mode: 0644]
control [new file with mode: 0644]
copyright [new file with mode: 0644]
docker.io.bash-completion [new file with mode: 0644]
docker.io.docker.default [new symlink]
docker.io.docker.init [new symlink]
docker.io.docker.upstart [new symlink]
docker.io.install [new file with mode: 0644]
docker.io.lintian-overrides [new file with mode: 0644]
docker.io.maintscript [new file with mode: 0644]
docker.io.manpages [new file with mode: 0644]
docker.io.postinst [new file with mode: 0644]
docker.io.udev [new symlink]
docs [new file with mode: 0644]
gbp.conf [new file with mode: 0644]
helpers/download-libcontainer [new file with mode: 0755]
helpers/gitcommit.sh [new file with mode: 0755]
patches/15404.patch [new file with mode: 0644]
patches/cgroupdriver-cgroupfs.patch [new file with mode: 0644]
patches/cgroupfs-mount-convenience-copy.patch [new file with mode: 0644]
patches/change-system-unit-env-file.patch [new file with mode: 0644]
patches/check-v1.patch [new file with mode: 0644]
patches/distribution-2.1.1.patch [new file with mode: 0644]
patches/fatal-error-old-kernels.patch [new file with mode: 0644]
patches/overlay.patch [new file with mode: 0644]
patches/runc-0.0.4.patch [new file with mode: 0644]
patches/series [new file with mode: 0644]
repack.sh [new file with mode: 0755]
repack/prune/vendor [new file with mode: 0644]
rules [new file with mode: 0755]
source.lintian-overrides [new file with mode: 0644]
source/format [new file with mode: 0644]
tests/control [new file with mode: 0644]
tests/integration [new file with mode: 0755]
upstream-version-gitcommits [new file with mode: 0644]
vim-syntax-docker.install [new file with mode: 0644]
vim-syntax-docker.yaml [new file with mode: 0644]
watch [new file with mode: 0644]

diff --git a/Dockerfile b/Dockerfile
new file mode 100644 (file)
index 0000000..80639c6
--- /dev/null
@@ -0,0 +1,21 @@
+FROM tianon/debian-devel
+
+RUN echo 'deb http://incoming.debian.org/debian-buildd buildd-unstable main contrib non-free' > /etc/apt/sources.list.d/incoming.list
+
+# start by adding just "debian/control" so we can get mk-build-deps with maximum caching
+COPY control /usr/src/docker.io/debian/
+WORKDIR /usr/src/docker.io
+
+# get all the build deps of _this_ package in a nice repeatable way
+RUN apt-get update && mk-build-deps -irt'apt-get --no-install-recommends -yV' debian/control && dpkg-checkbuilddeps
+
+# need our debian/ directory to compile _this_ package
+COPY . /usr/src/docker.io/debian
+
+# go download and unpack our upstream source
+RUN uscan --force-download --verbose --download-current-version
+RUN DOCKER_TARBALLS=.. ./debian/helpers/download-libcontainer
+RUN /tianon/extract-origtargz.sh
+
+# tianon is _really_ lazy, and likes a preseeded bash history
+RUN echo '/tianon/extract-origtargz.sh && dpkg-buildpackage -us -uc && lintian -EvIL+pedantic' >> /root/.bash_history
diff --git a/README.Debian b/README.Debian
new file mode 100644 (file)
index 0000000..2f41e35
--- /dev/null
@@ -0,0 +1,34 @@
+Docker on Debian
+================
+
+To enable docker memory limitation, the kernel needs to be loaded with
+boot parameters: cgroup_enable=memory swapaccount=1.
+
+This is because enabling memory cgroup support has some run-time overhead,
+and kernel maintainers don't want to slow down systems unnecessarily.
+
+http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg764104.html
+https://github.com/docker/docker/issues/396
+
+To instruct the kernel to enable memory cgroup support, edit
+/etc/default/grub and extend GRUB_CMDLINE_LINUX_DEFAULT like:
+
+GRUB_CMDLINE_LINUX_DEFAULT="cgroup_enable=memory swapaccount=1"
+
+Then run update-grub, and reboot.
+
+
+As noted in the upstream documentation (https://docs.docker.io), Docker will
+allow non-root users in the "docker" group to access "docker.sock" and thus
+communicate with the daemon.  To add yourself to the "docker" group, use
+something like:
+
+adduser YOURUSER docker
+
+As also noted in the upstream documentation, the "docker" group (and any other
+means of accessing the Docker API) is root-equivalent.  If you don't trust a
+user with root on your box, you shouldn't trust them with Docker either.  If you
+are interested in further information about the security aspects of Docker,
+please be sure to read the "Docker Security"
+(http://docs.docker.io/en/latest/articles/security/) article in the
+upstream documentation.
diff --git a/changelog b/changelog
new file mode 100644 (file)
index 0000000..bd72cc5
--- /dev/null
+++ b/changelog
@@ -0,0 +1,343 @@
+docker.io (1.8.3~ds1-2) unstable; urgency=medium
+
+  * Move "overlay" higher in priority (Closes: #799087)
+  * Adjust "native.cgroupdriver" to default to "cgroupfs" (Closes: #798778)
+
+ -- Tianon Gravi <tianon@debian.org>  Wed, 04 Nov 2015 00:09:02 -0800
+
+docker.io (1.8.3~ds1-1) unstable; urgency=medium
+
+  * Update to 1.8.3 upstream release (CVE-2014-8178, CVE-2014-8179)
+
+ -- Tianon Gravi <tianon@debian.org>  Thu, 29 Oct 2015 19:40:51 -0700
+
+docker.io (1.8.2~ds1-2) unstable; urgency=medium
+
+  * Swap Build-Depends order to appease buildds (Closes: #803136)
+
+ -- Tianon Gravi <tianon@debian.org>  Thu, 29 Oct 2015 07:23:10 -0700
+
+docker.io (1.8.2~ds1-1) unstable; urgency=medium
+
+  * Update to 1.8.2 upstream release
+  * Rename golang-docker-dev package to golang-github-docker-docker-dev
+  * Add SELinux support (Closes: #799620)
+
+ -- Tianon Gravi <tianon@debian.org>  Wed, 28 Oct 2015 14:21:00 -0700
+
+docker.io (1.7.1~dfsg1-1) unstable; urgency=medium
+
+  * Update to 1.7.1 upstream release
+  * Remove patches applied upstream; refresh other patches
+  * Update Build-Depends
+
+ -- Tianon Gravi <tianon@debian.org>  Wed, 26 Aug 2015 10:13:48 -0700
+
+docker.io (1.6.2~dfsg1-2) unstable; urgency=medium
+
+  * Add DEP8 tests
+    - integration: runs upstream's integration tests
+  * Replace "code.google.com/p/go.net" with canonical "golang.org/x/net"
+    (Closes: #789736)
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Wed, 01 Jul 2015 07:45:19 -0600
+
+docker.io (1.6.2~dfsg1-1) unstable; urgency=medium
+
+  * Update to 1.6.2 upstream release
+  * Update deps in d/control to match upstream's hack/vendor.sh specifications
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Thu, 21 May 2015 00:47:43 -0600
+
+docker.io (1.6.1+dfsg1-2) unstable; urgency=medium
+
+  * Add --no-restart-on-upgrade to dh_installinit so that we don't force
+    a stop on upgrade, which can cause other units to fall over. Many thanks
+    to Michael Stapelberg (sECuRE) for the tip!
+
+ -- Paul Tagliamonte <paultag@debian.org>  Sun, 10 May 2015 13:02:54 -0400
+
+docker.io (1.6.1+dfsg1-1) unstable; urgency=high
+
+  * Update to 1.6.1 upstream release (Closes: #784726)
+    - CVE-2015-3627
+      Insecure opening of file-descriptor 1 leading to privilege escalation
+    - CVE-2015-3629
+      Symlink traversal on container respawn allows local privilege escalation
+    - CVE-2015-3630
+      Read/write proc paths allow host modification & information disclosure
+    - CVE-2015-3631
+      Volume mounts allow LSM profile escalation
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Fri, 08 May 2015 17:57:10 -0600
+
+docker.io (1.6.0+dfsg1-1) unstable; urgency=medium
+
+  * Upload to unstable
+  * Backport PR 12943 to support golang-go-patricia 2.*
+  * Remove convenience copies of cgroupfs-mount in init.d / upstart scripts
+    (Re: #783143)
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Tue, 05 May 2015 15:10:49 -0600
+
+docker.io (1.6.0+dfsg1-1~exp1) experimental; urgency=medium
+
+  * Update to 1.6.0 upstream release
+  * Adjust "repack.sh" to be more tolerant of "dfsg" suffixes
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Thu, 16 Apr 2015 18:00:21 -0600
+
+docker.io (1.6.0~rc7~dfsg1-1~exp1) experimental; urgency=low
+
+  * Update to 1.6.0-rc7 upstream release
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Wed, 15 Apr 2015 19:35:46 -0600
+
+docker.io (1.6.0~rc4~dfsg1-1) experimental; urgency=low
+
+  [ Tianon Gravi ]
+  * Update to 1.6.0-rc4 upstream release
+    - drop golang 1.2 support (no longer supported upstream)
+    - update Homepage to https://dockerproject.com
+    - add check-config.sh to /usr/share/docker.io/contrib
+    - add "distribution" as a new multitarball orig
+    - backport auto "btrfs_noversion" patch from
+      https://github.com/docker/docker/pull/12048
+      (simplifying our logic for detecting whether to use it)
+    - switch from dh-golang to direct install since we're not actually using the
+      features it offers (due to upstream's build system)
+    - enable "docker.service" on boot by default for restart policies to work
+
+  [ Felipe Sateler ]
+  * Add Built-Using for glibc (Closes: #769351).
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Mon, 06 Apr 2015 17:11:33 -0600
+
+docker.io (1.5.0~dfsg1-1) experimental; urgency=low
+
+  * Update to 1.5.0 upstream release (Closes: #773495)
+  * Remove several patches applied upstream!
+    - 9637-fix-nuke-bashism.patch
+    - enable-non-amd64-arches.patch
+  * Fix btrfs-tools handling to allow for building with btrfs-tools < 1.16.1
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Tue, 10 Mar 2015 22:58:49 -0600
+
+docker.io (1.3.3~dfsg1-2) unstable; urgency=medium
+
+  * Add fatal-error-old-kernels.patch to make Docker refuse to start on old,
+    unsupported kernels (Closes: #774376)
+  * Fix dh_auto_clean to clean up after the build properly, especially to avoid
+    FTBFS when built twice (Closes: #774482)
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Sat, 03 Jan 2015 00:11:47 -0700
+
+docker.io (1.3.3~dfsg1-1) unstable; urgency=medium
+
+  [ Tianon Gravi ]
+  * Update to 1.3.3 upstream release (Closes: #772909)
+    - Fix for CVE-2014-9356 (Path traversal during processing of absolute
+      symlinks)
+    - Fix for CVE-2014-9357 (Escalation of privileges during decompression of
+      LZMA (.xz) archives)
+    - Fix for CVE-2014-9358 (Path traversal and spoofing opportunities presented
+      through image identifiers)
+  * Fix bashism in nuke-graph-directory.sh (Closes: #772261)
+
+  [ Didier Roche ]
+  * Support starting systemd service without /etc/default/docker
+    (Closes: #770293)
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Thu, 18 Dec 2014 21:54:12 -0700
+
+docker.io (1.3.2~dfsg1-1) unstable; urgency=high
+
+  * Severity is set to high due to the sensitive nature of the CVEs this
+    upload fixes.
+  * Update to 1.3.2 upstream release
+    - Fix for CVE-2014-6407 (Archive extraction host privilege escalation)
+    - Fix for CVE-2014-6408 (Security options applied to image could lead
+                             to container escalation)
+  * Remove Daniel Mizyrycki from Uploaders. Thanks for all your work!
+
+ -- Paul Tagliamonte <paultag@debian.org>  Mon, 24 Nov 2014 19:14:28 -0500
+
+docker.io (1.3.1~dfsg1-2) unstable; urgency=medium
+
+  * Remove deprecated /usr/bin/docker.io symlink
+    - added as a temporary shim in 1.0.0~dfsg1-1 (13 Jun 2014)
+    - unused by package-installed files in 1.2.0~dfsg1-1 (13 Sep 2014)
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Fri, 07 Nov 2014 13:11:34 -0700
+
+docker.io (1.3.1~dfsg1-1) unstable; urgency=high
+
+  * Update to 1.3.1 upstream release
+    - fix for CVE-2014-5277
+    - https://groups.google.com/d/topic/docker-user/oYm0i3xShJU/discussion
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Mon, 03 Nov 2014 08:26:29 -0700
+
+docker.io (1.3.0~dfsg1-1) unstable; urgency=medium
+
+  * Updated to 1.3.0 upstream release.
+  * Enable systemd socket activation (Closes: #752555).
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Fri, 17 Oct 2014 00:56:07 -0600
+
+docker.io (1.2.0~dfsg1-2) unstable; urgency=medium
+
+  * Added "golang-docker-dev" package for the reusable bits of Docker's source.
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Thu, 09 Oct 2014 00:08:11 +0000
+
+docker.io (1.2.0~dfsg1-1) unstable; urgency=medium
+
+  * Updated to 1.2.0 upstream release (Closes: #757183, #757023, #757024).
+  * Added upstream man pages.
+  * Updated bash and zsh completions to be installed as "docker" and "_docker".
+  * Updated init scripts to also be installed as "docker".
+  * Fixed "equivalent" typo in README.Debian (Closes: #756395). Thanks Reuben!
+  * Removed "docker.io" mention in README.Debian (Closes: #756290). Thanks
+    Olivier!
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Sat, 13 Sep 2014 11:43:17 -0600
+
+docker.io (1.0.0~dfsg1-1) unstable; urgency=medium
+
+  * Updated to 1.0.0 upstream release. Huzzah!
+  * I've removed what is commonly called a `button' of patches against
+    the docker package. Exact patches:
+     - bash-completion-docker.io.patch
+     - systemd-docker.io.patch
+     - sysvinit-provides-docker.io.patch
+     - zsh-completion-docker.io.patch
+     - mkimage-docker.io.patch
+  * I know y'all are guessing why; and the answer's pretty simple -- we're
+    no longer docker.io(1). Since the src:docker package now ships wmdocker(1),
+    we can safely declare a breaks/replaces on the pre-wmdocker version of the
+    package, allowing existing users to safely update, both src:docker and
+    src:docker.io side. This brings us into line with other distros, which
+    now ship wmdocker(1) and docker(1).
+  * As a stop-gap, I'm still shipping a docker.io(1) symlink to allow
+    migration away.
+
+ -- Paul Tagliamonte <paultag@debian.org>  Fri, 13 Jun 2014 21:04:53 -0400
+
+docker.io (0.11.1~dfsg1-1) unstable; urgency=medium
+
+  [ Paul Tagliamonte ]
+  * Use EnvironmentFile with the systemd unit file. (Closes: #746774)
+  * Patch out version checking code. (Closes: #747140)
+  * Remove all host checking for non-amd64 host arches. Let docker build
+    and run on all platforms now. (Closes: #747139, #739914)
+
+  [ Tianon Gravi ]
+  * Updated to 0.11.1 upstream release.
+  * Added backported upstream patch for removing RemoteAddr assumptions
+    that cause events to not be delivered to more than one unix socket
+    listener.
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Fri, 09 May 2014 17:30:45 -0400
+
+docker.io (0.9.1~dfsg1-2) unstable; urgency=medium
+
+  * Added upstream apparmor patch to fix newer apparmor versions (such as the
+    version appearing in Ubuntu 14.04).
+  * Added mkimage-* docker.io binary name patches (Closes: #740855).
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Tue, 08 Apr 2014 23:19:08 -0400
+
+docker.io (0.9.1~dfsg1-1) unstable; urgency=medium
+
+  * Updated to 0.9.1 upstream release (Closes: #743424).
+  * Added cgroupfs-mount dependency (Closes: #742641).
+  * Added Suggests entries for optional features, chiefly lxc (Closes: #742081).
+  * Added notes about "root-equivalence" to README.Debian (Closes: #742387).
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Thu, 03 Apr 2014 21:38:30 -0400
+
+docker.io (0.9.0+dfsg1-1) unstable; urgency=medium
+
+  * Updated README.Debian to not be quite so outdated (Closes: #740850).
+  * Updated to 0.9.0 upstream release.
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Tue, 11 Mar 2014 22:24:31 -0400
+
+docker.io (0.8.1+dfsg1-1) unstable; urgency=medium
+
+  * Updated to 0.8.1 upstream release.
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Tue, 25 Feb 2014 20:56:31 -0500
+
+docker.io (0.8.0+dfsg1-2) unstable; urgency=medium
+
+  [ Tianon Gravi ]
+  * Added more license notes to debian/copyright (Closes: #738627).
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Sat, 15 Feb 2014 17:51:58 -0500
+
+docker.io (0.8.0+dfsg1-1) unstable; urgency=medium
+
+  [ Prach Pongpanich ]
+  * Added zsh completion.
+
+  [ Tianon Gravi ]
+  * Updated to 0.8.0 upstream release.
+  * Added vim syntax files in new vim-syntax-docker package.
+  * Added note about minimum recommended kernel version to Description.
+  * Added contrib/*-integration files in /usr/share/docker.io/contrib.
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Mon, 10 Feb 2014 20:41:10 -0500
+
+docker.io (0.7.6+dfsg1-1) unstable; urgency=medium
+
+  [ Johan Euphrosine ]
+  * Updated to 0.7.6.
+  * Added dependency to gocapability.
+  * Clean patches.
+
+  [ Tianon Gravi ]
+  * Added contrib/mk* scripts from upstream into /usr/share/docker.io/contrib
+    (Closes: #736068).
+  * Added upstream udev rules file to stop device-mapper devices and mounts from
+    appearing in desktop environments through udisks.
+
+ -- Johan Euphrosine <proppy@google.com>  Wed, 22 Jan 2014 22:50:47 -0500
+
+docker.io (0.7.1+dfsg1-1) unstable; urgency=medium
+
+  [ Prach Pongpanich ]
+  * Fixed "docker: command not found" errors while using bash tab completion
+    (Closes: #735372).
+
+  [ Tianon Gravi ]
+  * Updated to 0.7.1 upstream release (while we wait for gocapability to be
+    packaged).
+  * Added xz-utils recommend which is required for decompressing certain images
+    from the index.
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Wed, 15 Jan 2014 20:22:34 -0500
+
+docker.io (0.6.7+dfsg1-3) unstable; urgency=medium
+
+  * Fixed FTBFS on non-amd64 platforms by setting the correct GOPATH.
+  * Fixed issues with Docker finding a valid dockerinit (Closes: #734758).
+  * Added aufs-tools dependency.
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Thu, 09 Jan 2014 20:10:20 -0500
+
+docker.io (0.6.7+dfsg1-2) unstable; urgency=medium
+
+  * Added iptables dependency required for Docker to start.
+  * Added ca-certificates recommend required for pulling from the index.
+
+ -- Tianon Gravi <admwiggin@gmail.com>  Wed, 08 Jan 2014 19:14:02 -0500
+
+docker.io (0.6.7+dfsg1-1) unstable; urgency=medium
+
+  * Initial release (Closes: #706060, #730569)
+  * Document missing licenses in the source tree. Bad, paultag. Thanks
+    alteholz.
+
+ -- Paul Tagliamonte <paultag@debian.org>  Tue, 07 Jan 2014 21:06:10 -0500
diff --git a/compat b/compat
new file mode 100644 (file)
index 0000000..ec63514
--- /dev/null
+++ b/compat
@@ -0,0 +1 @@
+9
diff --git a/control b/control
new file mode 100644 (file)
index 0000000..b7e15dd
--- /dev/null
+++ b/control
@@ -0,0 +1,109 @@
+Source: docker.io
+Section: admin
+Priority: optional
+Maintainer: Paul Tagliamonte <paultag@debian.org>
+Uploaders: Docker Packaging Team <docker-maint@lists.alioth.debian.org>,
+           Tianon Gravi <tianon@debian.org>,
+           Johan Euphrosine <proppy@google.com>
+# partially generated via https://gist.github.com/tianon/92ebbd1793864b9586bc
+Build-Depends: bash-completion,
+               btrfs-tools,
+               debhelper (>=9),
+               dh-systemd,
+               go-md2man (>= 1.0.3~),
+               golang-context-dev (>= 0.0~git20140604~) | golang-github-gorilla-context-dev (>= 0.0~git20140604~),
+               golang-dbus-dev (>= 2~) | golang-github-godbus-dbus-dev (>= 2~),
+               golang-etcd-dev (>= 2.0.0~) | golang-github-coreos-go-etcd-dev (>= 2.0.0~),
+               golang-fsnotify-dev (>= 1.2.0~) | golang-gopkg-fsnotify.v1-dev (>= 1.2.0~),
+               golang-github-armon-go-metrics-dev (>= 0.0~git20150106~),
+               golang-github-coreos-go-systemd-dev (>= 2~),
+               golang-github-docker-distribution-dev (>= 0.0~git20150827~),
+               golang-github-docker-libkv-dev (>= 0.0~git20150619~),
+               golang-github-docker-libtrust-dev (>= 0.0~git20150526~),
+               golang-github-docker-notary-dev (>= 0.0~git20150801~),
+               golang-github-endophage-gotuf-dev (>= 0.0~git20150811~),
+               golang-github-fluent-fluent-logger-golang-dev (>= 1.0.0~),
+               golang-github-gorilla-mux-dev (>= 0.0~git20140926~),
+               golang-github-graylog2-go-gelf-dev (>= 0.0~git20150610~),
+               golang-github-hashicorp-go-msgpack-dev (>= 0.0~git20140221~),
+               golang-github-hashicorp-serf-dev (>= 0.0~git20150212~),
+               golang-github-mattn-go-sqlite3-dev (>= 0.0~git20150629~),
+               golang-github-opencontainers-runc-dev (>= 0.0.2.1~),
+               golang-github-samuel-go-zookeeper-dev (>= 0.0~git20150415~),
+               golang-github-sirupsen-logrus-dev (>= 0.8.2~),
+               golang-github-tent-canonical-json-go-dev (>= 0.0~git20130607~),
+               golang-github-vbatts-tar-split-dev (>= 0.9.6~),
+               golang-github-vishvananda-netlink-dev (>= 0.0~git20150815~),
+               golang-github-vishvananda-netns-dev (>= 0.0~git20150630~),
+               golang-go-patricia-dev (>= 2.1.0~) | golang-github-tchap-go-patricia-dev (>= 2.1.0~),
+               golang-go-zfs-dev (>= 2.1.1~) | golang-github-mistifyio-go-zfs-dev (>= 2.1.1~),
+               golang-gocapability-dev (>= 0.0~git20150506~) | golang-github-syndtr-gocapability-dev (>= 0.0~git20150506~),
+               golang-golang-x-net-dev (>= 0.0~git20150610~),
+               golang-goprotobuf-dev (>= 0.0~git20150325~) | golang-github-golang-protobuf-dev (>= 0.0~git20150325~),
+               golang-gosqlite-dev (>= 0.0~hg20130530~) | golang-code.google-p-gosqlite-dev (>= 0.0~hg20130530~),
+               golang-pty-dev (>= 0.0~git20150511~) | golang-github-kr-pty-dev (>= 0.0~git20150511~),
+               golang-toml-dev (>= 0.0~git20150127~) | golang-github-burntsushi-toml-dev (>= 0.0~git20150127~),
+               libapparmor-dev,
+               libdevmapper-dev (>= 2:1.02.68~)
+Standards-Version: 3.9.6
+Homepage: https://dockerproject.com
+Vcs-Git: git://anonscm.debian.org/docker/docker.io.git
+Vcs-Browser: http://anonscm.debian.org/cgit/docker/docker.io.git
+
+Package: docker.io
+Architecture: linux-any
+Depends: adduser, iptables, ${misc:Depends}, ${perl:Depends}, ${shlibs:Depends}
+Recommends: ca-certificates,
+            cgroupfs-mount | cgroup-lite,
+            git,
+            xz-utils,
+            ${apparmor:Recommends}
+Replaces: docker (<< 1.5~)
+Breaks: docker (<< 1.5~)
+Suggests: aufs-tools, btrfs-tools, debootstrap, lxc, rinse, zfs-fuse | zfsutils
+Built-Using: ${misc:Built-Using}, ${libc:Built-Using}
+Description: Linux container runtime
+ Docker complements kernel namespacing with a high-level API which operates at
+ the process level. It runs unix processes with strong guarantees of isolation
+ and repeatability across servers.
+ .
+ Docker is a great building block for automating distributed systems:
+ large-scale web deployments, database clusters, continuous deployment systems,
+ private PaaS, service-oriented architectures, etc.
+ .
+ This package contains the daemon and client. Using docker.io on non-amd64 hosts
+ is not supported at this time. Please be careful when using it on anything
+ besides amd64.
+ .
+ Also, note that kernel version 3.8 or above is required for proper operation of
+ the daemon process, and that any lower versions may have subtle and/or glaring
+ issues.
+
+Package: vim-syntax-docker
+Architecture: all
+Depends: vim, ${misc:Depends}
+Recommends: vim-addon-manager
+Suggests: docker.io
+Description: Docker container engine - Vim highlighting syntax files
+ This package provides syntax files for the Vim editor for editing Dockerfiles
+ from the Docker container engine.
+
+Package: golang-github-docker-docker-dev
+Architecture: all
+Depends: ${misc:Depends}
+Built-Using: ${misc:Built-Using}
+Replaces: golang-docker-dev (<< 1.8.2~ds1-1~)
+Breaks: golang-docker-dev (<< 1.8.2~ds1-1~)
+Provides: golang-docker-dev
+Description: Externally reusable Go packages included with Docker
+ These packages are intentionally developed by upstream in such a way that they
+ are reusable to projects outside Docker and only rely on each other or other
+ external dependencies to be built.
+
+Package: golang-docker-dev
+Section: oldlibs
+Architecture: all
+Depends: golang-github-docker-docker-dev, ${misc:Depends}
+Description: Transitional package for golang-github-docker-docker-dev
+ This is a transitional package to ease upgrades to the
+ golang-github-docker-docker-dev package. It can safely be removed.
diff --git a/copyright b/copyright
new file mode 100644 (file)
index 0000000..a00f78e
--- /dev/null
+++ b/copyright
@@ -0,0 +1,137 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: Docker
+Upstream-Contact: Docker, Inc. <support@docker.com>
+Source: https://github.com/docker/docker
+
+Files: *
+Copyright: 2012-2014 Docker, Inc. <support@docker.com>
+License: Apache-2.0
+
+Files: debian/*
+Copyright: 2013-2014 Daniel Mizyrycki <daniel@docker.com>
+           2013-2014 Paul Tagliamonte <paultag@debian.org>
+           2012-2014 Michael Stapelberg <stapelberg@debian.org>
+           2013-2014 Tianon Gravi <tianon@debian.org>
+           2013-2014 Johan Euphrosine <proppy@google.com>
+           2014 Prach Pongpanich <prachpub@gmail.com>
+License: Apache-2.0
+
+Files: contrib/init/openrc/docker.initd
+Copyright: 1999-2013 Gentoo Foundation
+License: GPL-2
+
+Files: contrib/syntax/vim/*
+Copyright: 2013 Honza Pokorny
+License: BSD-2-clause
+
+Files: pkg/mflag/*
+Copyright: 2014 The Docker & Go Authors
+License: BSD-3-clause-Google
+
+Files: contrib/completion/zsh/*
+Copyright: 2013-2014 Felix Riedel
+License: BSD-3-clause-Generic
+
+License: Apache-2.0
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ .
+ http://www.apache.org/licenses/LICENSE-2.0
+ .
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ .
+ On Debian systems, the complete text of the Apache version 2.0 license
+ can be found in "/usr/share/common-licenses/Apache-2.0".
+
+License: GPL-2
+ This file is part of Buildbot.  Buildbot is free software: you can
+ redistribute it and/or modify it under the terms of the GNU General Public
+ License as published by the Free Software Foundation, version 2.
+ .
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+ details.
+ .
+ You should have received a copy of the GNU General Public License along with
+ this program; if not, write to the Free Software Foundation, Inc., 51
+ Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ .
+ On Debian systems, the complete text of the Apache version 2.0 license
+ can be found in "/usr/share/common-licenses/GPL-2".
+
+License: BSD-2-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License: BSD-3-clause-Google
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ .
+    * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following disclaimer
+ in the documentation and/or other materials provided with the
+ distribution.
+    * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License: BSD-3-clause-Generic
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+     * Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+     * Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+     * Neither the name of the <organization> nor the
+       names of its contributors may be used to endorse or promote products
+       derived from this software without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/docker.io.bash-completion b/docker.io.bash-completion
new file mode 100644 (file)
index 0000000..6ea1119
--- /dev/null
@@ -0,0 +1 @@
+contrib/completion/bash/docker
diff --git a/docker.io.docker.default b/docker.io.docker.default
new file mode 120000 (symlink)
index 0000000..4312e35
--- /dev/null
@@ -0,0 +1 @@
+../contrib/init/sysvinit-debian/docker.default
\ No newline at end of file
diff --git a/docker.io.docker.init b/docker.io.docker.init
new file mode 120000 (symlink)
index 0000000..e27f049
--- /dev/null
@@ -0,0 +1 @@
+../contrib/init/sysvinit-debian/docker
\ No newline at end of file
diff --git a/docker.io.docker.upstart b/docker.io.docker.upstart
new file mode 120000 (symlink)
index 0000000..4df3220
--- /dev/null
@@ -0,0 +1 @@
+../contrib/init/upstart/docker.conf
\ No newline at end of file
diff --git a/docker.io.install b/docker.io.install
new file mode 100644 (file)
index 0000000..f9735ac
--- /dev/null
@@ -0,0 +1,7 @@
+contrib/*-integration usr/share/docker.io/contrib/
+contrib/check-config.sh usr/share/docker.io/contrib/
+contrib/completion/zsh/_docker usr/share/zsh/vendor-completions/
+contrib/init/systemd/docker.service lib/systemd/system/
+contrib/init/systemd/docker.socket lib/systemd/system/
+contrib/mk* usr/share/docker.io/contrib/
+contrib/nuke-graph-directory.sh usr/share/docker.io/contrib/
diff --git a/docker.io.lintian-overrides b/docker.io.lintian-overrides
new file mode 100644 (file)
index 0000000..37dde6a
--- /dev/null
@@ -0,0 +1,2 @@
+docker.io binary: statically-linked-binary usr/lib/docker.io/dockerinit
+# Yes, I assure you this is normal. Damnit, go.
diff --git a/docker.io.maintscript b/docker.io.maintscript
new file mode 100644 (file)
index 0000000..adf69fc
--- /dev/null
@@ -0,0 +1,4 @@
+mv_conffile /etc/bash_completion.d/docker.io /etc/bash_completion.d/docker 1.2.0~
+mv_conffile /etc/default/docker.io /etc/default/docker 1.2.0~
+mv_conffile /etc/init.d/docker.io /etc/init.d/docker 1.2.0~
+mv_conffile /etc/init/docker.io.conf /etc/init/docker.conf 1.2.0~
diff --git a/docker.io.manpages b/docker.io.manpages
new file mode 100644 (file)
index 0000000..1aa6218
--- /dev/null
@@ -0,0 +1 @@
+man/man*/*
diff --git a/docker.io.postinst b/docker.io.postinst
new file mode 100644 (file)
index 0000000..5fd8847
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh
+set -e
+
+case "$1" in
+       configure)
+               if [ -z "$2" ]; then
+                       addgroup --system docker
+               fi
+               ;;
+       abort-*)
+               # How'd we get here??
+               exit 1
+               ;;
+       *)
+               ;;
+esac
+
+#DEBHELPER#
diff --git a/docker.io.udev b/docker.io.udev
new file mode 120000 (symlink)
index 0000000..d7fd2eb
--- /dev/null
@@ -0,0 +1 @@
+../contrib/udev/80-docker.rules
\ No newline at end of file
diff --git a/docs b/docs
new file mode 100644 (file)
index 0000000..b43bf86
--- /dev/null
+++ b/docs
@@ -0,0 +1 @@
+README.md
diff --git a/gbp.conf b/gbp.conf
new file mode 100644 (file)
index 0000000..09ea3f1
--- /dev/null
+++ b/gbp.conf
@@ -0,0 +1,13 @@
+[DEFAULT]
+cleaner = fakeroot debian/rules clean
+pristine-tar = False
+
+[git-buildpackage]
+export-dir = ../build-area/
+tarball-dir = ../tarballs/
+
+[git-dch]
+id-length = 7
+meta = True
+auto = True
+full = True
diff --git a/helpers/download-libcontainer b/helpers/download-libcontainer
new file mode 100755 (executable)
index 0000000..bd1cdc3
--- /dev/null
@@ -0,0 +1,60 @@
+#!/bin/bash
+set -e
+
+mkdir -p "${DOCKER_TARBALLS:=../tarballs}"
+
+# MUST STAY IN SYNC WITH LIST IN "debian/rules"
+multiOrigGopkgs=(
+       github.com/docker/libnetwork
+)
+
+pkg="$(dpkg-parsechangelog -SSource)"
+ver="$(dpkg-parsechangelog -SVersion)"
+origVer="${ver%-*}" # strip everything from the last dash
+origVer="$(echo "$origVer" | sed -r 's/^[0-9]+://')" # strip epoch
+upstreamVer="${origVer%%[+~]ds*}"
+origTarballPrefix="${DOCKER_TARBALLS}/${pkg}_${origVer}.orig"
+unprunedTarballPrefix="${DOCKER_TARBALLS}/${pkg}_${upstreamVer}.orig"
+
+if command -v curl &> /dev/null; then
+       curl='curl -fsSL'
+elif command -v wget &> /dev/null; then
+       curl='wget -qO-'
+else
+       echo >&2 'error: missing "curl" or "wget" - install one or the other'
+       exit 1
+fi
+
+get_hack_vendor() {
+       for path in hack/vendor.sh project/vendor.sh; do
+               if [ -e "${origTarballPrefix}.tar.gz" ]; then
+                       # if we have the main orig tarball handy, let's prefer that
+                       if tar -xzOf "${origTarballPrefix}.tar.gz" --wildcards '*/'"$path"; then
+                               return
+                       fi
+               else
+                       # but fall back to grabbing it raw from github otherwise
+                       if $curl "https://raw.githubusercontent.com/docker/docker/v${upstreamVer}/$path"; then
+                               return
+                       fi
+               fi
+       done
+}
+
+ret=0
+for gopkg in "${multiOrigGopkgs[@]}"; do
+       commit="$(get_hack_vendor | awk '$1 == "clone" && $2 == "git" && $3 == "'"$gopkg"'" { print $4 }')"
+       if [ "$commit" ]; then
+               origTar="$unprunedTarballPrefix-$(basename "$gopkg").tar.gz"
+               $curl "https://$gopkg/archive/$commit.tar.gz" > "$origTar"
+
+               echo "successfully fetched $origTar"
+               echo "  (from $gopkg commit $commit)"
+
+               "$(dirname "$(readlink -f "$BASH_SOURCE")")/../repack.sh" --upstream-version "$upstreamVer" "$origTar"
+       else
+               echo >&2 "error: cannot find $gopkg commit!"
+               ret=1
+       fi
+done
+exit $ret
diff --git a/helpers/gitcommit.sh b/helpers/gitcommit.sh
new file mode 100755 (executable)
index 0000000..3ca038d
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/bash
+set -e
+
+uVersion="$1"
+dVersion="$2"
+
+if [ -z "$uVersion" ]; then
+       uVersion="$(cat VERSION)"
+fi
+if [ -z "$dVersion" ]; then
+       dVersion="$(dpkg-parsechangelog --show-field Version)"
+fi
+
+if [ "${uVersion%-dev}" = "$uVersion" ]; then
+       # this is a straight-up release!  easy-peasy
+       exec awk -F ': ' '$1 == "'"$uVersion"'" { print $2 }' debian/upstream-version-gitcommits
+fi
+
+# must be a nightly, so let's look for clues about what the git commit is
+
+if git rev-parse &> /dev/null; then
+       # well, this will be easy ;)
+       exec git rev-parse --short HEAD
+fi
+
+if [ "${dVersion#*+*+}" != "$dVersion" ]; then
+       # must be something like "1.1.2+10013+8c38a3d-1~utopic1" (nightly!)
+       commit="${dVersion#*+*+}"
+       commit="${commit%%-*}"
+       exec echo "$commit"
+fi
+
+# unknown...
+echo >&2 'warning: unable to determine DOCKER_GITCOMMIT'
diff --git a/patches/15404.patch b/patches/15404.patch
new file mode 100644 (file)
index 0000000..7cda1f9
--- /dev/null
@@ -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/patches/cgroupdriver-cgroupfs.patch b/patches/cgroupdriver-cgroupfs.patch
new file mode 100644 (file)
index 0000000..97d08ba
--- /dev/null
@@ -0,0 +1,22 @@
+Description: adjust "native.cgroupdriver" default value to always be "cgroupfs" irrespective of systemd since Docker cannot handle the new unified hierarchy
+Author: Tianon Gravi <tianon@debian.org>
+Bug: https://github.com/docker/docker/issues/16256
+Bug-Debian: https://bugs.debian.org/798778
+
+diff --git a/daemon/execdriver/native/driver.go b/daemon/execdriver/native/driver.go
+index 94f200a..b09c86c 100644
+--- a/daemon/execdriver/native/driver.go
++++ b/daemon/execdriver/native/driver.go
+@@ -74,9 +74,9 @@ func NewDriver(root, initPath string, options []string) (*Driver, error) {
+       // this makes sure there are no breaking changes to people
+       // who upgrade from versions without native.cgroupdriver opt
+       cgm := libcontainer.Cgroupfs
+-      if systemd.UseSystemd() {
+-              cgm = libcontainer.SystemdCgroups
+-      }
++      //if systemd.UseSystemd() {
++      //      cgm = libcontainer.SystemdCgroups
++      //}
+       // parse the options
+       for _, option := range options {
diff --git a/patches/cgroupfs-mount-convenience-copy.patch b/patches/cgroupfs-mount-convenience-copy.patch
new file mode 100644 (file)
index 0000000..938a55c
--- /dev/null
@@ -0,0 +1,81 @@
+Author: Tianon Gravi <admwiggin@gmail.com>
+Description: remove convenience copies of cgroupfs-mount in init.d / upstart
+Forwarded: not-needed
+Bug-Debian: https://bugs.debian.org/783143
+
+diff --git a/contrib/init/sysvinit-debian/docker b/contrib/init/sysvinit-debian/docker
+index 11500a0..3ad9e2e 100755
+--- a/contrib/init/sysvinit-debian/docker
++++ b/contrib/init/sysvinit-debian/docker
+@@ -59,37 +59,12 @@ fail_unless_root() {
+       fi
+ }
+-cgroupfs_mount() {
+-      # see also https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount
+-      if grep -v '^#' /etc/fstab | grep -q cgroup \
+-              || [ ! -e /proc/cgroups ] \
+-              || [ ! -d /sys/fs/cgroup ]; then
+-              return
+-      fi
+-      if ! mountpoint -q /sys/fs/cgroup; then
+-              mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
+-      fi
+-      (
+-              cd /sys/fs/cgroup
+-              for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do
+-                      mkdir -p $sys
+-                      if ! mountpoint -q $sys; then
+-                              if ! mount -n -t cgroup -o $sys cgroup $sys; then
+-                                      rmdir $sys || true
+-                              fi
+-                      fi
+-              done
+-      )
+-}
+-
+ case "$1" in
+       start)
+               check_init
+               
+               fail_unless_root
+-              cgroupfs_mount
+-
+               touch "$DOCKER_LOGFILE"
+               chgrp docker "$DOCKER_LOGFILE"
+diff --git a/contrib/init/upstart/docker.conf b/contrib/init/upstart/docker.conf
+index ec50b35..75858f8 100644
+--- a/contrib/init/upstart/docker.conf
++++ b/contrib/init/upstart/docker.conf
+@@ -9,29 +9,6 @@ respawn
+ kill timeout 20
+-pre-start script
+-      # see also https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount
+-      if grep -v '^#' /etc/fstab | grep -q cgroup \
+-              || [ ! -e /proc/cgroups ] \
+-              || [ ! -d /sys/fs/cgroup ]; then
+-              exit 0
+-      fi
+-      if ! mountpoint -q /sys/fs/cgroup; then
+-              mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
+-      fi
+-      (
+-              cd /sys/fs/cgroup
+-              for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do
+-                      mkdir -p $sys
+-                      if ! mountpoint -q $sys; then
+-                              if ! mount -n -t cgroup -o $sys cgroup $sys; then
+-                                      rmdir $sys || true
+-                              fi
+-                      fi
+-              done
+-      )
+-end script
+-
+ script
+       # modify these in /etc/default/$UPSTART_JOB (/etc/default/docker)
+       DOCKER=/usr/bin/$UPSTART_JOB
diff --git a/patches/change-system-unit-env-file.patch b/patches/change-system-unit-env-file.patch
new file mode 100644 (file)
index 0000000..5503c4a
--- /dev/null
@@ -0,0 +1,20 @@
+Author: Paul R. Tagliamonte <paultag@debian.org>
+Last-Update: 2014-05-07
+Description: Use EnvironmentFile with the systemd unit file.
+Bug-Debian: http://bugs.debian.org/746774
+Forwarded: no
+
+diff --git a/contrib/init/systemd/docker.service b/contrib/init/systemd/docker.service
+index f09c2d3..8370631 100644
+--- a/contrib/init/systemd/docker.service
++++ b/contrib/init/systemd/docker.service
+@@ -6,7 +6,8 @@ Requires=docker.socket
+ [Service]
+ Type=notify
+-ExecStart=/usr/bin/docker daemon -H fd://
++EnvironmentFile=-/etc/default/docker
++ExecStart=/usr/bin/docker daemon -H fd:// $DOCKER_OPTS
+ MountFlags=slave
+ LimitNOFILE=1048576
+ LimitNPROC=1048576
diff --git a/patches/check-v1.patch b/patches/check-v1.patch
new file mode 100644 (file)
index 0000000..e194cac
--- /dev/null
@@ -0,0 +1,1053 @@
+diff --git a/integration-cli/check_test.go b/integration-cli/check_test.go
+index defa02e..f9e2c67 100644
+--- a/integration-cli/check_test.go
++++ b/integration-cli/check_test.go
+@@ -3,7 +3,7 @@ package main
+ import (
+       "testing"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func Test(t *testing.T) {
+diff --git a/integration-cli/docker_api_attach_test.go b/integration-cli/docker_api_attach_test.go
+index 06a1c48..001631e 100644
+--- a/integration-cli/docker_api_attach_test.go
++++ b/integration-cli/docker_api_attach_test.go
+@@ -8,7 +8,7 @@ import (
+       "strings"
+       "time"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+       "golang.org/x/net/websocket"
+ )
+diff --git a/integration-cli/docker_api_containers_test.go b/integration-cli/docker_api_containers_test.go
+index d8dc448..571af60 100644
+--- a/integration-cli/docker_api_containers_test.go
++++ b/integration-cli/docker_api_containers_test.go
+@@ -17,7 +17,7 @@ import (
+       "github.com/docker/docker/api/types"
+       "github.com/docker/docker/pkg/stringid"
+       "github.com/docker/docker/runconfig"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestContainerApiGetAll(c *check.C) {
+diff --git a/integration-cli/docker_api_events_test.go b/integration-cli/docker_api_events_test.go
+index 8ae7bf7..9120aa0 100644
+--- a/integration-cli/docker_api_events_test.go
++++ b/integration-cli/docker_api_events_test.go
+@@ -4,7 +4,7 @@ import (
+       "net/http"
+       "time"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestEventsApiEmptyOutput(c *check.C) {
+diff --git a/integration-cli/docker_api_exec_resize_test.go b/integration-cli/docker_api_exec_resize_test.go
+index 01061ca..817c734 100644
+--- a/integration-cli/docker_api_exec_resize_test.go
++++ b/integration-cli/docker_api_exec_resize_test.go
+@@ -4,7 +4,7 @@ import (
+       "net/http"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestExecResizeApiHeightWidthNoInt(c *check.C) {
+diff --git a/integration-cli/docker_api_exec_test.go b/integration-cli/docker_api_exec_test.go
+index 3d99fe6..0446230 100644
+--- a/integration-cli/docker_api_exec_test.go
++++ b/integration-cli/docker_api_exec_test.go
+@@ -8,7 +8,7 @@ import (
+       "fmt"
+       "net/http"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // Regression test for #9414
+diff --git a/integration-cli/docker_api_images_test.go b/integration-cli/docker_api_images_test.go
+index 339a2f4..ab21d4b 100644
+--- a/integration-cli/docker_api_images_test.go
++++ b/integration-cli/docker_api_images_test.go
+@@ -7,7 +7,7 @@ import (
+       "strings"
+       "github.com/docker/docker/api/types"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestApiImagesFilter(c *check.C) {
+diff --git a/integration-cli/docker_api_info_test.go b/integration-cli/docker_api_info_test.go
+index 4084289..1616e0e 100644
+--- a/integration-cli/docker_api_info_test.go
++++ b/integration-cli/docker_api_info_test.go
+@@ -4,7 +4,7 @@ import (
+       "net/http"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestInfoApi(c *check.C) {
+diff --git a/integration-cli/docker_api_inspect_test.go b/integration-cli/docker_api_inspect_test.go
+index 2287e7d..a57e687 100644
+--- a/integration-cli/docker_api_inspect_test.go
++++ b/integration-cli/docker_api_inspect_test.go
+@@ -6,7 +6,7 @@ import (
+       "net/http"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestInspectApiContainerResponse(c *check.C) {
+diff --git a/integration-cli/docker_api_logs_test.go b/integration-cli/docker_api_logs_test.go
+index d478447..d22f363 100644
+--- a/integration-cli/docker_api_logs_test.go
++++ b/integration-cli/docker_api_logs_test.go
+@@ -8,7 +8,7 @@ import (
+       "strings"
+       "time"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestLogsApiWithStdout(c *check.C) {
+diff --git a/integration-cli/docker_api_network_test.go b/integration-cli/docker_api_network_test.go
+index 44d2b31..2da958f 100644
+--- a/integration-cli/docker_api_network_test.go
++++ b/integration-cli/docker_api_network_test.go
+@@ -7,7 +7,7 @@ import (
+       "fmt"
+       "net/http"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func isNetworkAvailable(c *check.C, name string) bool {
+diff --git a/integration-cli/docker_api_resize_test.go b/integration-cli/docker_api_resize_test.go
+index c7a577b..e421403 100644
+--- a/integration-cli/docker_api_resize_test.go
++++ b/integration-cli/docker_api_resize_test.go
+@@ -4,7 +4,7 @@ import (
+       "net/http"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestResizeApiResponse(c *check.C) {
+diff --git a/integration-cli/docker_api_service_test.go b/integration-cli/docker_api_service_test.go
+index df07219..27b63c8 100644
+--- a/integration-cli/docker_api_service_test.go
++++ b/integration-cli/docker_api_service_test.go
+@@ -7,7 +7,7 @@ import (
+       "fmt"
+       "net/http"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func isServiceAvailable(c *check.C, name string, network string) bool {
+diff --git a/integration-cli/docker_api_stats_test.go b/integration-cli/docker_api_stats_test.go
+index f019e00..d1868fd 100644
+--- a/integration-cli/docker_api_stats_test.go
++++ b/integration-cli/docker_api_stats_test.go
+@@ -10,7 +10,7 @@ import (
+       "time"
+       "github.com/docker/docker/api/types"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestCliStatsNoStreamGetCpu(c *check.C) {
+diff --git a/integration-cli/docker_api_test.go b/integration-cli/docker_api_test.go
+index 6cbf301..0572583 100644
+--- a/integration-cli/docker_api_test.go
++++ b/integration-cli/docker_api_test.go
+@@ -8,7 +8,7 @@ import (
+       "time"
+       "github.com/docker/docker/api"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestApiOptionsRoute(c *check.C) {
+diff --git a/integration-cli/docker_api_version_test.go b/integration-cli/docker_api_version_test.go
+index b756794..42fb872 100644
+--- a/integration-cli/docker_api_version_test.go
++++ b/integration-cli/docker_api_version_test.go
+@@ -6,7 +6,7 @@ import (
+       "github.com/docker/docker/api/types"
+       "github.com/docker/docker/autogen/dockerversion"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestGetVersion(c *check.C) {
+diff --git a/integration-cli/docker_cli_attach_test.go b/integration-cli/docker_cli_attach_test.go
+index f45f775..90e389c 100644
+--- a/integration-cli/docker_cli_attach_test.go
++++ b/integration-cli/docker_cli_attach_test.go
+@@ -9,7 +9,7 @@ import (
+       "sync"
+       "time"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ const attachWait = 5 * time.Second
+diff --git a/integration-cli/docker_cli_attach_unix_test.go b/integration-cli/docker_cli_attach_unix_test.go
+index 9718dc0..c30ff45 100644
+--- a/integration-cli/docker_cli_attach_unix_test.go
++++ b/integration-cli/docker_cli_attach_unix_test.go
+@@ -9,7 +9,7 @@ import (
+       "time"
+       "github.com/docker/docker/pkg/stringid"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+       "github.com/kr/pty"
+ )
+diff --git a/integration-cli/docker_cli_build_test.go b/integration-cli/docker_cli_build_test.go
+index 6dc24df..ad56d5d 100644
+--- a/integration-cli/docker_cli_build_test.go
++++ b/integration-cli/docker_cli_build_test.go
+@@ -21,7 +21,7 @@ import (
+       "github.com/docker/docker/builder/command"
+       "github.com/docker/docker/pkg/archive"
+       "github.com/docker/docker/pkg/stringutils"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestBuildJSONEmptyRun(c *check.C) {
+diff --git a/integration-cli/docker_cli_build_unix_test.go b/integration-cli/docker_cli_build_unix_test.go
+index fc7bd92..c246dbd 100644
+--- a/integration-cli/docker_cli_build_unix_test.go
++++ b/integration-cli/docker_cli_build_unix_test.go
+@@ -7,7 +7,7 @@ import (
+       "strings"
+       "github.com/docker/docker/pkg/ulimit"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestBuildResourceConstraintsAreUsed(c *check.C) {
+diff --git a/integration-cli/docker_cli_by_digest_test.go b/integration-cli/docker_cli_by_digest_test.go
+index 71f8b1a..a53e3db 100644
+--- a/integration-cli/docker_cli_by_digest_test.go
++++ b/integration-cli/docker_cli_by_digest_test.go
+@@ -9,7 +9,7 @@ import (
+       "github.com/docker/distribution/digest"
+       "github.com/docker/distribution/manifest"
+       "github.com/docker/docker/utils"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ var (
+diff --git a/integration-cli/docker_cli_commit_test.go b/integration-cli/docker_cli_commit_test.go
+index 125b2e3..7e0d6f5 100644
+--- a/integration-cli/docker_cli_commit_test.go
++++ b/integration-cli/docker_cli_commit_test.go
+@@ -3,7 +3,7 @@ package main
+ import (
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestCommitAfterContainerIsDone(c *check.C) {
+diff --git a/integration-cli/docker_cli_config_test.go b/integration-cli/docker_cli_config_test.go
+index 2b08f47..1b574fb 100644
+--- a/integration-cli/docker_cli_config_test.go
++++ b/integration-cli/docker_cli_config_test.go
+@@ -11,7 +11,7 @@ import (
+       "github.com/docker/docker/autogen/dockerversion"
+       "github.com/docker/docker/pkg/homedir"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestConfigHttpHeader(c *check.C) {
+diff --git a/integration-cli/docker_cli_cp_from_container_test.go b/integration-cli/docker_cli_cp_from_container_test.go
+index 945a34f..f6f3159 100644
+--- a/integration-cli/docker_cli_cp_from_container_test.go
++++ b/integration-cli/docker_cli_cp_from_container_test.go
+@@ -4,7 +4,7 @@ import (
+       "os"
+       "path/filepath"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // docker cp CONTAINER:PATH LOCALPATH
+diff --git a/integration-cli/docker_cli_cp_test.go b/integration-cli/docker_cli_cp_test.go
+index 64ae0b5..94f6935 100644
+--- a/integration-cli/docker_cli_cp_test.go
++++ b/integration-cli/docker_cli_cp_test.go
+@@ -10,7 +10,7 @@ import (
+       "path/filepath"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ const (
+diff --git a/integration-cli/docker_cli_cp_to_container_test.go b/integration-cli/docker_cli_cp_to_container_test.go
+index 341121d..a705ad1 100644
+--- a/integration-cli/docker_cli_cp_to_container_test.go
++++ b/integration-cli/docker_cli_cp_to_container_test.go
+@@ -3,7 +3,7 @@ package main
+ import (
+       "os"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // docker cp LOCALPATH CONTAINER:PATH
+diff --git a/integration-cli/docker_cli_cp_utils.go b/integration-cli/docker_cli_cp_utils.go
+index c26ebfd..9ed8a7d 100644
+--- a/integration-cli/docker_cli_cp_utils.go
++++ b/integration-cli/docker_cli_cp_utils.go
+@@ -10,7 +10,7 @@ import (
+       "strings"
+       "github.com/docker/docker/pkg/archive"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ type fileType uint32
+diff --git a/integration-cli/docker_cli_create_test.go b/integration-cli/docker_cli_create_test.go
+index 482e96f..9a0ad7e 100644
+--- a/integration-cli/docker_cli_create_test.go
++++ b/integration-cli/docker_cli_create_test.go
+@@ -13,7 +13,7 @@ import (
+       "io/ioutil"
+       "github.com/docker/docker/pkg/nat"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // Make sure we can create a simple container with some args
+diff --git a/integration-cli/docker_cli_daemon_experimental_test.go b/integration-cli/docker_cli_daemon_experimental_test.go
+index dc4f792..51c51d2 100644
+--- a/integration-cli/docker_cli_daemon_experimental_test.go
++++ b/integration-cli/docker_cli_daemon_experimental_test.go
+@@ -6,7 +6,7 @@ import (
+       "os/exec"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func assertNetwork(c *check.C, d *Daemon, name string) {
+diff --git a/integration-cli/docker_cli_daemon_test.go b/integration-cli/docker_cli_daemon_test.go
+index 992cd83..2dec0ec 100644
+--- a/integration-cli/docker_cli_daemon_test.go
++++ b/integration-cli/docker_cli_daemon_test.go
+@@ -17,7 +17,7 @@ import (
+       "github.com/docker/libnetwork/iptables"
+       "github.com/docker/libtrust"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerDaemonSuite) TestDaemonRestartWithRunningContainersPorts(c *check.C) {
+diff --git a/integration-cli/docker_cli_diff_test.go b/integration-cli/docker_cli_diff_test.go
+index b5fc1bd..4041620 100644
+--- a/integration-cli/docker_cli_diff_test.go
++++ b/integration-cli/docker_cli_diff_test.go
+@@ -3,7 +3,7 @@ package main
+ import (
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // ensure that an added file shows up in docker diff
+diff --git a/integration-cli/docker_cli_events_test.go b/integration-cli/docker_cli_events_test.go
+index 6742ea4..2bcbfcd 100644
+--- a/integration-cli/docker_cli_events_test.go
++++ b/integration-cli/docker_cli_events_test.go
+@@ -13,7 +13,7 @@ import (
+       "sync"
+       "time"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestEventsTimestampFormats(c *check.C) {
+diff --git a/integration-cli/docker_cli_events_unix_test.go b/integration-cli/docker_cli_events_unix_test.go
+index 1a08f2b..fd6dcd6 100644
+--- a/integration-cli/docker_cli_events_unix_test.go
++++ b/integration-cli/docker_cli_events_unix_test.go
+@@ -10,7 +10,7 @@ import (
+       "os/exec"
+       "unicode"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+       "github.com/kr/pty"
+ )
+diff --git a/integration-cli/docker_cli_exec_test.go b/integration-cli/docker_cli_exec_test.go
+index 8e85988..a626a7d 100644
+--- a/integration-cli/docker_cli_exec_test.go
++++ b/integration-cli/docker_cli_exec_test.go
+@@ -15,7 +15,7 @@ import (
+       "sync"
+       "time"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestExec(c *check.C) {
+diff --git a/integration-cli/docker_cli_exec_unix_test.go b/integration-cli/docker_cli_exec_unix_test.go
+index 28c202c..fa0b274 100644
+--- a/integration-cli/docker_cli_exec_unix_test.go
++++ b/integration-cli/docker_cli_exec_unix_test.go
+@@ -9,7 +9,7 @@ import (
+       "strings"
+       "time"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+       "github.com/kr/pty"
+ )
+diff --git a/integration-cli/docker_cli_experimental_test.go b/integration-cli/docker_cli_experimental_test.go
+index 694222b..100b6c4 100644
+--- a/integration-cli/docker_cli_experimental_test.go
++++ b/integration-cli/docker_cli_experimental_test.go
+@@ -5,7 +5,7 @@ package main
+ import (
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestExperimentalVersion(c *check.C) {
+diff --git a/integration-cli/docker_cli_export_import_test.go b/integration-cli/docker_cli_export_import_test.go
+index a9e75de..f227755 100644
+--- a/integration-cli/docker_cli_export_import_test.go
++++ b/integration-cli/docker_cli_export_import_test.go
+@@ -5,7 +5,7 @@ import (
+       "os/exec"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // export an image and try to import it into a new one
+diff --git a/integration-cli/docker_cli_help_test.go b/integration-cli/docker_cli_help_test.go
+index 3113083..2c83671 100644
+--- a/integration-cli/docker_cli_help_test.go
++++ b/integration-cli/docker_cli_help_test.go
+@@ -8,7 +8,7 @@ import (
+       "unicode"
+       "github.com/docker/docker/pkg/homedir"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestHelpTextVerify(c *check.C) {
+diff --git a/integration-cli/docker_cli_history_test.go b/integration-cli/docker_cli_history_test.go
+index 355e4c8..7faac52 100644
+--- a/integration-cli/docker_cli_history_test.go
++++ b/integration-cli/docker_cli_history_test.go
+@@ -6,7 +6,7 @@ import (
+       "strconv"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // This is a heisen-test.  Because the created timestamp of images and the behavior of
+diff --git a/integration-cli/docker_cli_images_test.go b/integration-cli/docker_cli_images_test.go
+index fe12f02..1bc04ef 100644
+--- a/integration-cli/docker_cli_images_test.go
++++ b/integration-cli/docker_cli_images_test.go
+@@ -8,7 +8,7 @@ import (
+       "time"
+       "github.com/docker/docker/pkg/stringid"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestImagesEnsureImageIsListed(c *check.C) {
+diff --git a/integration-cli/docker_cli_import_test.go b/integration-cli/docker_cli_import_test.go
+index ccfc452..5d25068 100644
+--- a/integration-cli/docker_cli_import_test.go
++++ b/integration-cli/docker_cli_import_test.go
+@@ -7,7 +7,7 @@ import (
+       "os/exec"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestImportDisplay(c *check.C) {
+diff --git a/integration-cli/docker_cli_info_test.go b/integration-cli/docker_cli_info_test.go
+index 86719f4..134c5c6 100644
+--- a/integration-cli/docker_cli_info_test.go
++++ b/integration-cli/docker_cli_info_test.go
+@@ -4,7 +4,7 @@ import (
+       "strings"
+       "github.com/docker/docker/utils"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // ensure docker info succeeds
+diff --git a/integration-cli/docker_cli_inspect_experimental_test.go b/integration-cli/docker_cli_inspect_experimental_test.go
+index fada86e..4c4f98b 100644
+--- a/integration-cli/docker_cli_inspect_experimental_test.go
++++ b/integration-cli/docker_cli_inspect_experimental_test.go
+@@ -4,7 +4,7 @@ package main
+ import (
+       "github.com/docker/docker/api/types"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestInspectNamedMountPoint(c *check.C) {
+diff --git a/integration-cli/docker_cli_inspect_test.go b/integration-cli/docker_cli_inspect_test.go
+index 3e42d0c..c52c2c8 100644
+--- a/integration-cli/docker_cli_inspect_test.go
++++ b/integration-cli/docker_cli_inspect_test.go
+@@ -8,7 +8,7 @@ import (
+       "time"
+       "github.com/docker/docker/api/types"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestInspectImage(c *check.C) {
+diff --git a/integration-cli/docker_cli_kill_test.go b/integration-cli/docker_cli_kill_test.go
+index 685f4f5..a3989b0 100644
+--- a/integration-cli/docker_cli_kill_test.go
++++ b/integration-cli/docker_cli_kill_test.go
+@@ -5,7 +5,7 @@ import (
+       "net/http"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestKillContainer(c *check.C) {
+diff --git a/integration-cli/docker_cli_links_test.go b/integration-cli/docker_cli_links_test.go
+index 568f20a..e76f83d 100644
+--- a/integration-cli/docker_cli_links_test.go
++++ b/integration-cli/docker_cli_links_test.go
+@@ -2,7 +2,7 @@ package main
+ import (
+       "fmt"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+       "reflect"
+       "regexp"
+       "strings"
+diff --git a/integration-cli/docker_cli_links_unix_test.go b/integration-cli/docker_cli_links_unix_test.go
+index 67a4464..bb886df 100644
+--- a/integration-cli/docker_cli_links_unix_test.go
++++ b/integration-cli/docker_cli_links_unix_test.go
+@@ -7,7 +7,7 @@ import (
+       "os"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestLinksEtcHostsRegularFile(c *check.C) {
+diff --git a/integration-cli/docker_cli_login_test.go b/integration-cli/docker_cli_login_test.go
+index 3b4431d..409a007 100644
+--- a/integration-cli/docker_cli_login_test.go
++++ b/integration-cli/docker_cli_login_test.go
+@@ -4,7 +4,7 @@ import (
+       "bytes"
+       "os/exec"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestLoginWithoutTTY(c *check.C) {
+diff --git a/integration-cli/docker_cli_logs_test.go b/integration-cli/docker_cli_logs_test.go
+index 6c94217..076e227 100644
+--- a/integration-cli/docker_cli_logs_test.go
++++ b/integration-cli/docker_cli_logs_test.go
+@@ -11,7 +11,7 @@ import (
+       "time"
+       "github.com/docker/docker/pkg/timeutils"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // This used to work, it test a log of PageSize-1 (gh#4851)
+diff --git a/integration-cli/docker_cli_nat_test.go b/integration-cli/docker_cli_nat_test.go
+index a0773fe..d1044f5 100644
+--- a/integration-cli/docker_cli_nat_test.go
++++ b/integration-cli/docker_cli_nat_test.go
+@@ -6,7 +6,7 @@ import (
+       "net"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func startServerContainer(c *check.C, msg string, port int) string {
+diff --git a/integration-cli/docker_cli_network_test.go b/integration-cli/docker_cli_network_test.go
+index 08b225d..d931add 100644
+--- a/integration-cli/docker_cli_network_test.go
++++ b/integration-cli/docker_cli_network_test.go
+@@ -5,7 +5,7 @@ package main
+ import (
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func assertNwIsAvailable(c *check.C, name string) {
+diff --git a/integration-cli/docker_cli_pause_test.go b/integration-cli/docker_cli_pause_test.go
+index 4e32dfc..72c9b4c 100644
+--- a/integration-cli/docker_cli_pause_test.go
++++ b/integration-cli/docker_cli_pause_test.go
+@@ -4,7 +4,7 @@ import (
+       "fmt"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestPause(c *check.C) {
+diff --git a/integration-cli/docker_cli_port_test.go b/integration-cli/docker_cli_port_test.go
+index 63bfc9a..4eb5d44 100644
+--- a/integration-cli/docker_cli_port_test.go
++++ b/integration-cli/docker_cli_port_test.go
+@@ -6,7 +6,7 @@ import (
+       "sort"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestPortList(c *check.C) {
+diff --git a/integration-cli/docker_cli_port_unix_test.go b/integration-cli/docker_cli_port_unix_test.go
+index 0988ca9..4cbf0ee 100644
+--- a/integration-cli/docker_cli_port_unix_test.go
++++ b/integration-cli/docker_cli_port_unix_test.go
+@@ -6,7 +6,7 @@ import (
+       "net"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestPortHostBinding(c *check.C) {
+diff --git a/integration-cli/docker_cli_proxy_test.go b/integration-cli/docker_cli_proxy_test.go
+index 8b55c67..45737f0 100644
+--- a/integration-cli/docker_cli_proxy_test.go
++++ b/integration-cli/docker_cli_proxy_test.go
+@@ -5,7 +5,7 @@ import (
+       "os/exec"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestCliProxyDisableProxyUnixSock(c *check.C) {
+diff --git a/integration-cli/docker_cli_ps_test.go b/integration-cli/docker_cli_ps_test.go
+index 3b8f6f9..25a2e87 100644
+--- a/integration-cli/docker_cli_ps_test.go
++++ b/integration-cli/docker_cli_ps_test.go
+@@ -11,7 +11,7 @@ import (
+       "strings"
+       "time"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestPsListContainers(c *check.C) {
+diff --git a/integration-cli/docker_cli_pull_test.go b/integration-cli/docker_cli_pull_test.go
+index 8bfca8d..581366b 100644
+--- a/integration-cli/docker_cli_pull_test.go
++++ b/integration-cli/docker_cli_pull_test.go
+@@ -11,7 +11,7 @@ import (
+       "time"
+       "github.com/docker/distribution/digest"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // See issue docker/docker#8141
+diff --git a/integration-cli/docker_cli_push_test.go b/integration-cli/docker_cli_push_test.go
+index 111e9f3..a087258 100644
+--- a/integration-cli/docker_cli_push_test.go
++++ b/integration-cli/docker_cli_push_test.go
+@@ -9,7 +9,7 @@ import (
+       "strings"
+       "time"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // Pushing an image to a private registry.
+diff --git a/integration-cli/docker_cli_rename_test.go b/integration-cli/docker_cli_rename_test.go
+index cac9f3a..3ecc814 100644
+--- a/integration-cli/docker_cli_rename_test.go
++++ b/integration-cli/docker_cli_rename_test.go
+@@ -4,7 +4,7 @@ import (
+       "strings"
+       "github.com/docker/docker/pkg/stringid"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestRenameStoppedContainer(c *check.C) {
+diff --git a/integration-cli/docker_cli_restart_test.go b/integration-cli/docker_cli_restart_test.go
+index 4cabeb9..c558c3d 100644
+--- a/integration-cli/docker_cli_restart_test.go
++++ b/integration-cli/docker_cli_restart_test.go
+@@ -4,7 +4,7 @@ import (
+       "strings"
+       "time"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestRestartStoppedContainer(c *check.C) {
+diff --git a/integration-cli/docker_cli_rm_test.go b/integration-cli/docker_cli_rm_test.go
+index 0e57551..69104bf 100644
+--- a/integration-cli/docker_cli_rm_test.go
++++ b/integration-cli/docker_cli_rm_test.go
+@@ -4,7 +4,7 @@ import (
+       "os"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestRmContainerWithRemovedVolume(c *check.C) {
+diff --git a/integration-cli/docker_cli_rmi_test.go b/integration-cli/docker_cli_rmi_test.go
+index 8d9f94f..48faf9c 100644
+--- a/integration-cli/docker_cli_rmi_test.go
++++ b/integration-cli/docker_cli_rmi_test.go
+@@ -5,7 +5,7 @@ import (
+       "os/exec"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestRmiWithContainerFails(c *check.C) {
+diff --git a/integration-cli/docker_cli_run_test.go b/integration-cli/docker_cli_run_test.go
+index 9288957..a04d03f 100644
+--- a/integration-cli/docker_cli_run_test.go
++++ b/integration-cli/docker_cli_run_test.go
+@@ -20,7 +20,7 @@ import (
+       "github.com/docker/docker/pkg/nat"
+       "github.com/docker/libnetwork/resolvconf"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // "test123" should be printed by docker run
+diff --git a/integration-cli/docker_cli_run_unix_test.go b/integration-cli/docker_cli_run_unix_test.go
+index 295bace..140b2ba 100644
+--- a/integration-cli/docker_cli_run_unix_test.go
++++ b/integration-cli/docker_cli_run_unix_test.go
+@@ -14,7 +14,7 @@ import (
+       "time"
+       "github.com/docker/docker/pkg/mount"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+       "github.com/kr/pty"
+ )
+diff --git a/integration-cli/docker_cli_save_load_test.go b/integration-cli/docker_cli_save_load_test.go
+index 5b4b64d..eb0d63f 100644
+--- a/integration-cli/docker_cli_save_load_test.go
++++ b/integration-cli/docker_cli_save_load_test.go
+@@ -10,7 +10,7 @@ import (
+       "sort"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // save a repo using gz compression and try to load it using stdout
+diff --git a/integration-cli/docker_cli_save_load_unix_test.go b/integration-cli/docker_cli_save_load_unix_test.go
+index 2bca3b8..991b940 100644
+--- a/integration-cli/docker_cli_save_load_unix_test.go
++++ b/integration-cli/docker_cli_save_load_unix_test.go
+@@ -8,7 +8,7 @@ import (
+       "os"
+       "os/exec"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+       "github.com/kr/pty"
+ )
+diff --git a/integration-cli/docker_cli_search_test.go b/integration-cli/docker_cli_search_test.go
+index d89c05c..40db0df 100644
+--- a/integration-cli/docker_cli_search_test.go
++++ b/integration-cli/docker_cli_search_test.go
+@@ -3,7 +3,7 @@ package main
+ import (
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // search for repos named  "registry" on the central registry
+diff --git a/integration-cli/docker_cli_service_test.go b/integration-cli/docker_cli_service_test.go
+index aaf5e81..91b7b8b 100644
+--- a/integration-cli/docker_cli_service_test.go
++++ b/integration-cli/docker_cli_service_test.go
+@@ -6,7 +6,7 @@ import (
+       "fmt"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func assertSrvIsAvailable(c *check.C, sname, name string) {
+diff --git a/integration-cli/docker_cli_start_test.go b/integration-cli/docker_cli_start_test.go
+index ce5c48e..8027735 100644
+--- a/integration-cli/docker_cli_start_test.go
++++ b/integration-cli/docker_cli_start_test.go
+@@ -5,7 +5,7 @@ import (
+       "strings"
+       "time"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // Regression test for https://github.com/docker/docker/issues/7843
+diff --git a/integration-cli/docker_cli_start_volume_driver_unix_test.go b/integration-cli/docker_cli_start_volume_driver_unix_test.go
+index 71f9f2d..1fddee0 100644
+--- a/integration-cli/docker_cli_start_volume_driver_unix_test.go
++++ b/integration-cli/docker_cli_start_volume_driver_unix_test.go
+@@ -12,7 +12,7 @@ import (
+       "path/filepath"
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func init() {
+diff --git a/integration-cli/docker_cli_stats_test.go b/integration-cli/docker_cli_stats_test.go
+index 2504028..7cd6367 100644
+--- a/integration-cli/docker_cli_stats_test.go
++++ b/integration-cli/docker_cli_stats_test.go
+@@ -5,7 +5,7 @@ import (
+       "strings"
+       "time"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestCliStatsNoStream(c *check.C) {
+diff --git a/integration-cli/docker_cli_tag_test.go b/integration-cli/docker_cli_tag_test.go
+index 23f2aef..109dae3 100644
+--- a/integration-cli/docker_cli_tag_test.go
++++ b/integration-cli/docker_cli_tag_test.go
+@@ -4,7 +4,7 @@ import (
+       "strings"
+       "github.com/docker/docker/pkg/stringutils"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // tagging a named image in a new unprefixed repo should work
+diff --git a/integration-cli/docker_cli_top_test.go b/integration-cli/docker_cli_top_test.go
+index 667a6c8..cbca969 100644
+--- a/integration-cli/docker_cli_top_test.go
++++ b/integration-cli/docker_cli_top_test.go
+@@ -3,7 +3,7 @@ package main
+ import (
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func (s *DockerSuite) TestTopMultipleArgs(c *check.C) {
+diff --git a/integration-cli/docker_cli_v2_only.go b/integration-cli/docker_cli_v2_only.go
+index aa3d6a2..539f459 100644
+--- a/integration-cli/docker_cli_v2_only.go
++++ b/integration-cli/docker_cli_v2_only.go
+@@ -6,7 +6,7 @@ import (
+       "net/http"
+       "os"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ func makefile(contents string) (string, func(), error) {
+diff --git a/integration-cli/docker_cli_version_test.go b/integration-cli/docker_cli_version_test.go
+index f2d8b65..b1ea96c 100644
+--- a/integration-cli/docker_cli_version_test.go
++++ b/integration-cli/docker_cli_version_test.go
+@@ -3,7 +3,7 @@ package main
+ import (
+       "strings"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // ensure docker version works
+diff --git a/integration-cli/docker_cli_wait_test.go b/integration-cli/docker_cli_wait_test.go
+index 167ea1a..0503fbb 100644
+--- a/integration-cli/docker_cli_wait_test.go
++++ b/integration-cli/docker_cli_wait_test.go
+@@ -6,7 +6,7 @@ import (
+       "strings"
+       "time"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // non-blocking wait with 0 exit code
+diff --git a/integration-cli/docker_utils.go b/integration-cli/docker_utils.go
+index e80015d..fcb3242 100644
+--- a/integration-cli/docker_utils.go
++++ b/integration-cli/docker_utils.go
+@@ -24,7 +24,7 @@ import (
+       "github.com/docker/docker/opts"
+       "github.com/docker/docker/pkg/ioutils"
+       "github.com/docker/docker/pkg/stringutils"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ // Daemon represents a Docker daemon for the testing framework.
+diff --git a/integration-cli/registry.go b/integration-cli/registry.go
+index 35e1b4e..4aee021 100644
+--- a/integration-cli/registry.go
++++ b/integration-cli/registry.go
+@@ -9,7 +9,7 @@ import (
+       "path/filepath"
+       "github.com/docker/distribution/digest"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ const v2binary = "registry-v2"
+diff --git a/integration-cli/registry_mock.go b/integration-cli/registry_mock.go
+index e5fb64c..9599eb2 100644
+--- a/integration-cli/registry_mock.go
++++ b/integration-cli/registry_mock.go
+@@ -7,7 +7,7 @@ import (
+       "strings"
+       "sync"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ type handlerFunc func(w http.ResponseWriter, r *http.Request)
+diff --git a/integration-cli/requirements.go b/integration-cli/requirements.go
+index ce080d5..a08febe 100644
+--- a/integration-cli/requirements.go
++++ b/integration-cli/requirements.go
+@@ -10,7 +10,7 @@ import (
+       "strings"
+       "time"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ type testCondition func() bool
+diff --git a/integration-cli/trust_server.go b/integration-cli/trust_server.go
+index 89d88a8..dcd245d 100644
+--- a/integration-cli/trust_server.go
++++ b/integration-cli/trust_server.go
+@@ -12,7 +12,7 @@ import (
+       "time"
+       "github.com/docker/docker/pkg/tlsconfig"
+-      "github.com/go-check/check"
++      "gopkg.in/check.v1"
+ )
+ var notaryBinary = "notary-server"
diff --git a/patches/distribution-2.1.1.patch b/patches/distribution-2.1.1.patch
new file mode 100644 (file)
index 0000000..1cc421b
--- /dev/null
@@ -0,0 +1,17 @@
+Description: Minor changes for github.com/docker/distribution 2.1.1
+Forwarded: not-needed
+Author: Tianon Gravi <tianon@debian.org>
+
+Index: pkg/registry/registry.go
+===================================================================
+--- pkg.orig/registry/registry.go
++++ pkg/registry/registry.go
+@@ -185,7 +185,7 @@ func addRequiredHeadersToRedirectedReque
+ func shouldV2Fallback(err errcode.Error) bool {
+       logrus.Debugf("v2 error: %T %v", err, err)
+       switch err.Code {
+-      case v2.ErrorCodeUnauthorized, v2.ErrorCodeManifestUnknown:
++      case errcode.ErrorCodeUnauthorized, v2.ErrorCodeManifestUnknown:
+               return true
+       }
+       return false
diff --git a/patches/fatal-error-old-kernels.patch b/patches/fatal-error-old-kernels.patch
new file mode 100644 (file)
index 0000000..83cb247
--- /dev/null
@@ -0,0 +1,18 @@
+Description: Docker is unsupported on kernels < 3.10, so this turns the warning into a fatal error (hard failure)
+Forwarded: not-needed
+Author: Tianon Gravi <admwiggin@gmail.com>
+Reviewed-by: Paul Tagliamonte <paultag@debian.org>
+
+diff --git a/daemon/daemon_unix.go b/daemon/daemon_unix.go
+index 1bc394c..96e3e62 100644
+--- a/daemon/daemon_unix.go
++++ b/daemon/daemon_unix.go
+@@ -110,7 +110,7 @@ func checkKernel() error {
+       } else {
+               if kernel.CompareKernelVersion(k, &kernel.KernelVersionInfo{Kernel: 3, Major: 10, Minor: 0}) < 0 {
+                       if os.Getenv("DOCKER_NOWARN_KERNEL_VERSION") == "" {
+-                              logrus.Warnf("You are running linux kernel version %s, which might be unstable running docker. Please upgrade your kernel to 3.10.0.", k.String())
++                              logrus.Fatalf("ERROR: You are running Linux kernel version %s, which is unsupported for running Docker. Please upgrade your kernel to 3.10+.", k.String())
+                       }
+               }
+       }
diff --git a/patches/overlay.patch b/patches/overlay.patch
new file mode 100644 (file)
index 0000000..df6db67
--- /dev/null
@@ -0,0 +1,18 @@
+Description: move "overlay" to a higher priority (now that AUFS is not supported in Debian kernels)
+Author: Tianon Gravi <tianon@debian.org>
+Forwarded: no
+
+diff --git a/daemon/graphdriver/driver_linux.go b/daemon/graphdriver/driver_linux.go
+index 410a62f..eab78e7 100644
+--- a/daemon/graphdriver/driver_linux.go
++++ b/daemon/graphdriver/driver_linux.go
+@@ -48,8 +48,8 @@ var (
+               "aufs",
+               "btrfs",
+               "zfs",
+-              "devicemapper",
+               "overlay",
++              "devicemapper",
+               "vfs",
+       }
diff --git a/patches/runc-0.0.4.patch b/patches/runc-0.0.4.patch
new file mode 100644 (file)
index 0000000..9d50b56
--- /dev/null
@@ -0,0 +1,68 @@
+Description: Minor changes for github.com/opencontainers/runc 0.0.4
+Origin: https://github.com/docker/docker/pull/16244
+Author: David Calavera <david.calavera@gmail.com>, Tianon Gravi <tianon@debian.org>
+
+diff --git a/daemon/container.go b/daemon/container.go
+index 49c1f41..727bd69 100644
+--- a/daemon/container.go
++++ b/daemon/container.go
+@@ -1088,12 +1088,9 @@ func copyEscapable(dst io.Writer, src io.ReadCloser) (written int64, err error)
+ func (container *Container) networkMounts() []execdriver.Mount {
+       var mounts []execdriver.Mount
+-      mode := "Z"
+-      if container.hostConfig.NetworkMode.IsContainer() {
+-              mode = "z"
+-      }
++      shared := container.hostConfig.NetworkMode.IsContainer()
+       if container.ResolvConfPath != "" {
+-              label.Relabel(container.ResolvConfPath, container.MountLabel, mode)
++              label.Relabel(container.ResolvConfPath, container.MountLabel, shared)
+               mounts = append(mounts, execdriver.Mount{
+                       Source:      container.ResolvConfPath,
+                       Destination: "/etc/resolv.conf",
+@@ -1102,7 +1099,7 @@ func (container *Container) networkMounts() []execdriver.Mount {
+               })
+       }
+       if container.HostnamePath != "" {
+-              label.Relabel(container.HostnamePath, container.MountLabel, mode)
++              label.Relabel(container.HostnamePath, container.MountLabel, shared)
+               mounts = append(mounts, execdriver.Mount{
+                       Source:      container.HostnamePath,
+                       Destination: "/etc/hostname",
+@@ -1111,7 +1108,7 @@ func (container *Container) networkMounts() []execdriver.Mount {
+               })
+       }
+       if container.HostsPath != "" {
+-              label.Relabel(container.HostsPath, container.MountLabel, mode)
++              label.Relabel(container.HostsPath, container.MountLabel, shared)
+               mounts = append(mounts, execdriver.Mount{
+                       Source:      container.HostsPath,
+                       Destination: "/etc/hosts",
+diff --git a/daemon/create.go b/daemon/create.go
+index a4a740f..655bd8f 100644
+--- a/daemon/create.go
++++ b/daemon/create.go
+@@ -123,7 +123,7 @@ func (daemon *Daemon) Create(config *runconfig.Config, hostConfig *runconfig.Hos
+               if err != nil {
+                       return nil, nil, err
+               }
+-              if err := label.Relabel(v.Path(), container.MountLabel, "z"); err != nil {
++              if err := label.Relabel(v.Path(), container.MountLabel, true); err != nil {
+                       return nil, nil, err
+               }
+diff --git a/daemon/volumes.go b/daemon/volumes.go
+index 556e304..ba2b017 100644
+--- a/daemon/volumes.go
++++ b/daemon/volumes.go
+@@ -231,7 +231,8 @@ func (daemon *Daemon) registerMountPoints(container *Container, hostConfig *runc
+                       }
+               }
+-              if err := label.Relabel(bind.Source, container.MountLabel, bind.Relabel); err != nil {
++              shared := label.IsShared(bind.Relabel)
++              if err := label.Relabel(bind.Source, container.MountLabel, shared); err != nil {
+                       return err
+               }
+               binds[bind.Destination] = true
diff --git a/patches/series b/patches/series
new file mode 100644 (file)
index 0000000..b7b4fdf
--- /dev/null
@@ -0,0 +1,19 @@
+cgroupfs-mount-convenience-copy.patch
+
+# If upstream ever resolves https://github.com/docker/docker/issues/8969 in a
+# reasonable way, remove this patch.
+fatal-error-old-kernels.patch
+
+# Once upstream adds EnvFile, remove this patch.
+change-system-unit-env-file.patch
+# See also https://github.com/docker/docker/pull/7220#issuecomment-50076589
+
+# change "github.com/go-check/check" to "gopkg.in/check.v1"
+check-v1.patch
+
+15404.patch
+distribution-2.1.1.patch
+runc-0.0.4.patch
+
+overlay.patch
+cgroupdriver-cgroupfs.patch
diff --git a/repack.sh b/repack.sh
new file mode 100755 (executable)
index 0000000..0429d35
--- /dev/null
+++ b/repack.sh
@@ -0,0 +1,53 @@
+#!/bin/bash
+# Taken from the X Strike Force Build System
+
+set -e
+
+debDir="$(pwd)/debian"
+
+if [ ! -d "$debDir/repack/prune" ]; then
+       exit 0
+fi
+
+if [ '--upstream-version' != "$1" ]; then
+       exit 1
+fi
+
+version="$2"
+filename="$3"
+
+if [ -z "$version" ] || [ ! -f "$filename" ]; then
+       exit 1
+fi
+
+dir="$(dirname "$filename")"
+filename="$(basename "$filename")"
+dir="$(readlink -f "$dir")"
+tempdir="$(mktemp -d)"
+
+cd "$tempdir"
+tar xf "$dir/$filename"
+cat "$debDir"/repack/prune/* | while read file; do
+       if [ -e */"$file" ]; then
+               echo "Pruning $file"
+               rm -rf */"$file"
+       fi
+done
+
+dfsgfilename="$filename"
+if [[ "$dfsgfilename" != *[~+]ds* ]]; then
+       pkg="$(dpkg-parsechangelog -l"$debDir/changelog" -SSource)"
+       ver="$(dpkg-parsechangelog -l"$debDir/changelog" -SVersion)"
+       origVer="${ver%-*}" # strip everything from the last dash
+       origVer="$(echo "$origVer" | sed -r 's/^[0-9]+://')" # strip epoch
+       upstreamVer="${origVer%%[+~]ds*}"
+       dfsgBits="${origVer#$upstreamVer}"
+       
+       dfsgfilename="${dfsgfilename/.orig/$dfsgBits.orig}"
+fi
+tar -czf "$dir/$dfsgfilename" *
+cd "$dir"
+rm -rf "$tempdir"
+echo "Done pruning upstream tarball into $dfsgfilename"
+
+exit 0
diff --git a/repack/prune/vendor b/repack/prune/vendor
new file mode 100644 (file)
index 0000000..1acf52e
--- /dev/null
@@ -0,0 +1,2 @@
+./vendor
+./Godeps/_workspace
diff --git a/rules b/rules
new file mode 100755 (executable)
index 0000000..d258365
--- /dev/null
+++ b/rules
@@ -0,0 +1,122 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+
+DOCKER_GOPKG = github.com/docker/docker
+
+# MUST STAY IN SYNC WITH LIST IN "debian/helpers/download-libcontainer"
+MULTI_ORIG_GOPKGS = \
+       github.com/docker/libnetwork
+
+# the list of Go packages to include in golang-github-docker-docker-dev
+DEV_GOPKGS = \
+       github.com/docker/docker/autogen/dockerversion \
+       github.com/docker/docker/pkg
+
+# temporary build path (see http://golang.org/doc/code.html#GOPATH)
+export GOPATH = $(CURDIR)/.gopath
+GOPATH_PACKAGED = /usr/share/gocode
+
+# a few helpful variables for deduplication
+DOCKER_BINPATH = /usr/bin/docker
+DOCKER_VERSION = $(shell cat VERSION)
+
+export DOCKER_GITCOMMIT = $(shell ./debian/helpers/gitcommit.sh $(DOCKER_VERSION))
+export DOCKER_INITPATH = /usr/lib/docker.io/dockerinit
+
+# AppArmor can be optionally used in Debian and is there by default in Ubuntu, so we need support for it compiled into our binary
+# same story with SELinux
+export DOCKER_BUILDTAGS = apparmor selinux
+
+
+APPARMOR_RECOMMENDS = $(shell dpkg-vendor --is Ubuntu && echo apparmor)
+BUILT_LIBC := $(shell dpkg-query -f '$${source:Package} (= $${source:Version})' -W libc-dev-bin)
+
+override_dh_gencontrol:
+       echo 'apparmor:Recommends=$(APPARMOR_RECOMMENDS)' >> debian/docker.io.substvars
+       echo 'libc:Built-Using=$(BUILT_LIBC)' >> debian/docker.io.substvars
+       dh_gencontrol
+
+
+setup-gopath:
+       # make sure we have our multitarball deps (from tarballs or from vendor/ in nightlies)
+       @set -ex; \
+               for package in $(MULTI_ORIG_GOPKGS); do \
+                       [ -d $$(basename $$package) ] || { [ -d vendor/src/$$package ] && ln -sf vendor/src/$$package $$(basename $$package); }; \
+               done
+       
+       # we need to make sure all deps are in our GOPATH
+       mkdir -p "$(GOPATH)"
+       @set -ex; \
+               for package in $(DOCKER_GOPKG) $(MULTI_ORIG_GOPKGS); do \
+                       [ $$package = $(DOCKER_GOPKG) ] \
+                               && src=. \
+                               || src=$$(basename $$package); \
+                       mkdir -p "$$GOPATH/src/$$(dirname $$package)"; \
+                       ln -sfT "$$(readlink -f "$$src")" "$$GOPATH/src/$$package"; \
+               done
+
+override_dh_auto_build:
+       @bash -c '{ [ "$$DOCKER_GITCOMMIT" ]; } || { echo; echo "error: missing DOCKER_GITCOMMIT - see debian/upstream-version-gitcommits"; echo; exit 2; } >&2'
+       
+       ./debian/rules setup-gopath
+       
+       # build "docker" and "dockerinit"
+       GOPATH="$$GOPATH:$(GOPATH_PACKAGED)" \
+       ./hack/make.sh dynbinary
+       
+       # compile man pages
+       ./man/md2man-all.sh -q
+
+
+override_dh_auto_install:
+       # install docker binary
+       mkdir -p debian/docker.io/$(dir $(DOCKER_BINPATH))
+       cp -aT bundles/$(DOCKER_VERSION)/dynbinary/docker-$(DOCKER_VERSION) debian/docker.io/$(DOCKER_BINPATH)
+       
+       # install dockerinit binary
+       mkdir -p debian/docker.io/$(dir $(DOCKER_INITPATH))
+       cp -aT bundles/$(DOCKER_VERSION)/dynbinary/dockerinit-$(DOCKER_VERSION) debian/docker.io/$(DOCKER_INITPATH)
+       
+       # Most of the source of docker does not make a library,
+       #   so only ship the reusable parts (and in a separate package).
+       @set -ex; \
+               for package in $(DEV_GOPKGS); do \
+                       mkdir -p "debian/golang-github-docker-docker-dev/$(GOPATH_PACKAGED)/src/$$package"; \
+                       cp -aT "$$(readlink -f "$$GOPATH/src/$$package")" "debian/golang-github-docker-docker-dev/$(GOPATH_PACKAGED)/src/$$package"; \
+               done
+
+
+override_dh_strip:
+       # the SHA1 of dockerinit is important: don't strip it
+       # also, Go has lots of problems with stripping, so just don't
+
+
+override_dh_auto_test:
+
+
+override_dh_installinit:
+       dh_installinit --name=docker --no-restart-on-upgrade
+
+
+override_dh_installudev:
+       # use priority z80 to match the upstream priority of 80
+       dh_installudev --priority=z80
+
+
+override_dh_auto_clean:
+       dh_auto_clean
+       
+       # GOPATH is created by us
+       rm -rf "$(GOPATH)"
+       
+       # autogen is created by hack/make.sh
+       # bundles is created by hack/make.sh
+       # man/man*/ is created by man/md2man-all.sh
+       rm -rf autogen bundles man/man*/
+       
+       # TODO FIGURE OUT WHY THIS IS CREATED AND SEND A PR UPSTREAM!!!
+       rm -f a.out
+
+
+%:
+       dh $@ --with=systemd,bash-completion
diff --git a/source.lintian-overrides b/source.lintian-overrides
new file mode 100644 (file)
index 0000000..8b17d44
--- /dev/null
@@ -0,0 +1,6 @@
+docker.io source: source-contains-unsafe-symlink utils/testdata/fs/g
+docker.io source: source-contains-unsafe-symlink utils/testdata/fs/a/d
+# Hilariously, these are used to test unsafe symlinks.
+#                      much testing
+#                                        wow
+#     very unsafe
diff --git a/source/format b/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/tests/control b/tests/control
new file mode 100644 (file)
index 0000000..30e7631
--- /dev/null
@@ -0,0 +1,3 @@
+Tests: integration
+Depends: ca-certificates, curl, git, golang-check.v1-dev, @, @builddeps@
+Restrictions: allow-stderr isolation-machine needs-root rw-build-tree
diff --git a/tests/integration b/tests/integration
new file mode 100755 (executable)
index 0000000..7c8c8d4
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/bash
+set -e
+
+# apply patches
+dpkg-source --before-build .
+
+# prepare the environment
+./debian/rules setup-gopath
+export GOPATH="$PWD/.gopath:/usr/share/gocode"
+export DOCKER_GITCOMMIT="$(./debian/helpers/gitcommit.sh)"
+
+# docker's tests need an unprivileged user available at this username
+useradd --system --gid docker --comment 'Docker Test Suite Unprivileged User' unprivilegeduser
+
+# run the tests
+./hack/make.sh test-integration-cli
+
+# clean up cruft we've created
+./debian/rules clean
+userdel --force unprivilegeduser
+
+# unapply patches
+dpkg-source --after-build .
diff --git a/upstream-version-gitcommits b/upstream-version-gitcommits
new file mode 100644 (file)
index 0000000..423cef9
--- /dev/null
@@ -0,0 +1,77 @@
+# To determine the proper value for this, download
+# https://get.docker.io/builds/Linux/x86_64/docker-VERSION, chmod +x, and then
+# run ./docker-VERSION -v, which will list the exact build hash needed.
+
+0.5.3: 17c92b8
+0.6.0: f4a4f1c
+0.6.1: 5105263
+0.6.2: 081543c
+0.6.3: b0a49a3
+0.6.4: 2f74b1c
+0.6.5: 3ff8459
+0.6.6: 6d42040
+0.6.7: cb48ecc
+0.7.0: 0d078b6
+0.7.1: 88df052
+0.7.2: 28b162e
+0.7.3: 8502ad4
+0.7.4: 010d74e
+0.7.5: c348c04
+0.7.6: bc3b2ec
+0.8.0: cc3a8c8
+0.8.1: a1598d1
+0.9.0: 2b3fdf2
+0.9.1: 3600720
+0.10.0: dc9c28f
+0.11.0: 15209c3
+0.11.1: fb99f99
+0.12.0: 14680bf
+1.0.0: 63fe64c
+1.0.1: 990021a
+1.1.0: 79812e3
+1.1.1: bd609d2
+1.1.2: d84a070
+1.2.0: fa7b24f
+1.3.0: c78088f
+1.3.1: 4e9bbfa
+1.3.2: 39fa2fa
+1.3.3: d344625
+1.4.0: 4595d4f
+1.4.1: 5bc2ff8
+1.5.0-rc2: a393450
+1.5.0-rc3: c02092d
+1.5.0-rc4: a1cae77
+1.5.0: a8a31ef
+1.6.0-rc1: 746e830
+1.6.0-rc2: c5ee149
+1.6.0-rc3: 20d4e6f
+1.6.0-rc4: e2e39fc
+1.6.0-rc6: f181f77
+1.6.0-rc7: 7e26e41
+1.6.0: 4749651
+1.6.1: 97cd073
+1.6.2: 7c8fca2
+1.7.0-rc1: 395cced
+1.7.0-rc2: 7ddecf7
+1.7.0-rc3: 94159c9
+1.7.0-rc4: cc5c791
+1.7.0-rc5: f417602
+1.7.0: 0baf609
+1.7.1-rc1: f8f912a
+1.7.1-rc2: 3ff5c86
+1.7.1-rc3: c2e658d
+1.7.1: 786b29d
+1.8.0-rc1: 4f1c66a
+1.8.0-rc2: 8a9d4ea
+1.8.0-rc3: 696147b
+1.8.0: 0d03096
+1.8.1: d12ea79
+1.8.2-rc1: 28220ac
+1.8.2: 0a8c2e3
+1.8.3: f4bf5c7
+1.9.0-rc1: 9291a0e
+1.9.0-rc2: 60d36f7
+1.9.0-rc3: 2100b94
+1.9.0-rc4: e6f5a3c
+1.9.0-rc5: 9318004
+1.9.0: 76d6bc9
diff --git a/vim-syntax-docker.install b/vim-syntax-docker.install
new file mode 100644 (file)
index 0000000..bcc58c5
--- /dev/null
@@ -0,0 +1,4 @@
+contrib/syntax/vim/doc/* /usr/share/vim/addons/doc/
+contrib/syntax/vim/ftdetect/* /usr/share/vim/addons/ftdetect/
+contrib/syntax/vim/syntax/* /usr/share/vim/addons/syntax/
+debian/vim-syntax-docker.yaml /usr/share/vim/registry/
diff --git a/vim-syntax-docker.yaml b/vim-syntax-docker.yaml
new file mode 100644 (file)
index 0000000..517b591
--- /dev/null
@@ -0,0 +1,6 @@
+addon: dockerfile
+description: "Addon to highlight Docker's Dockerfiles"
+files:
+  - doc/dockerfile.txt
+  - ftdetect/dockerfile.vim
+  - syntax/dockerfile.vim
diff --git a/watch b/watch
new file mode 100644 (file)
index 0000000..05c1f00
--- /dev/null
+++ b/watch
@@ -0,0 +1,6 @@
+version=3
+opts=\
+dversionmangle=s/[+~](debian|dfsg|ds|deb)\d*$//,\
+uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha)\d*)$/$1~$2/,\
+filenamemangle=s/.+\/v(\d\S*)\.tar\.gz/docker.io_$1.orig.tar.gz/ \
+  https://github.com/docker/docker/tags .*/v(\d\S*)\.tar\.gz debian ./debian/repack.sh