From: Tianon Gravi Date: Wed, 4 Nov 2015 08:09:02 +0000 (+0000) Subject: Import docker.io_1.8.3~ds1-2.debian.tar.xz X-Git-Tag: archive/raspbian/18.09.1+dfsg1-7+rpi1~1^2^2^2~10^3 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=0fd12048f20a754c144f093e5a8a04a6731a5a47;p=docker.io.git Import docker.io_1.8.3~ds1-2.debian.tar.xz [dgit import tarball docker.io 1.8.3~ds1-2 docker.io_1.8.3~ds1-2.debian.tar.xz] --- 0fd12048f20a754c144f093e5a8a04a6731a5a47 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..80639c66 --- /dev/null +++ b/Dockerfile @@ -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 index 00000000..2f41e350 --- /dev/null +++ b/README.Debian @@ -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 index 00000000..bd72cc54 --- /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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Tue, 07 Jan 2014 21:06:10 -0500 diff --git a/compat b/compat new file mode 100644 index 00000000..ec635144 --- /dev/null +++ b/compat @@ -0,0 +1 @@ +9 diff --git a/control b/control new file mode 100644 index 00000000..b7e15ddb --- /dev/null +++ b/control @@ -0,0 +1,109 @@ +Source: docker.io +Section: admin +Priority: optional +Maintainer: Paul Tagliamonte +Uploaders: Docker Packaging Team , + Tianon Gravi , + Johan Euphrosine +# 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 index 00000000..a00f78e2 --- /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. +Source: https://github.com/docker/docker + +Files: * +Copyright: 2012-2014 Docker, Inc. +License: Apache-2.0 + +Files: debian/* +Copyright: 2013-2014 Daniel Mizyrycki + 2013-2014 Paul Tagliamonte + 2012-2014 Michael Stapelberg + 2013-2014 Tianon Gravi + 2013-2014 Johan Euphrosine + 2014 Prach Pongpanich +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 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 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 index 00000000..6ea11193 --- /dev/null +++ b/docker.io.bash-completion @@ -0,0 +1 @@ +contrib/completion/bash/docker diff --git a/docker.io.docker.default b/docker.io.docker.default new file mode 120000 index 00000000..4312e355 --- /dev/null +++ b/docker.io.docker.default @@ -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 index 00000000..e27f0495 --- /dev/null +++ b/docker.io.docker.init @@ -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 index 00000000..4df3220e --- /dev/null +++ b/docker.io.docker.upstart @@ -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 index 00000000..f9735ac7 --- /dev/null +++ b/docker.io.install @@ -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 index 00000000..37dde6ad --- /dev/null +++ b/docker.io.lintian-overrides @@ -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 index 00000000..adf69fc1 --- /dev/null +++ b/docker.io.maintscript @@ -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 index 00000000..1aa62186 --- /dev/null +++ b/docker.io.manpages @@ -0,0 +1 @@ +man/man*/* diff --git a/docker.io.postinst b/docker.io.postinst new file mode 100644 index 00000000..5fd88472 --- /dev/null +++ b/docker.io.postinst @@ -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 index 00000000..d7fd2eb6 --- /dev/null +++ b/docker.io.udev @@ -0,0 +1 @@ +../contrib/udev/80-docker.rules \ No newline at end of file diff --git a/docs b/docs new file mode 100644 index 00000000..b43bf86b --- /dev/null +++ b/docs @@ -0,0 +1 @@ +README.md diff --git a/gbp.conf b/gbp.conf new file mode 100644 index 00000000..09ea3f17 --- /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 index 00000000..bd1cdc34 --- /dev/null +++ b/helpers/download-libcontainer @@ -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 index 00000000..3ca038d1 --- /dev/null +++ b/helpers/gitcommit.sh @@ -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 index 00000000..7cda1f93 --- /dev/null +++ b/patches/15404.patch @@ -0,0 +1,85 @@ +From f83d05c3be3c3bcc84f6fa229504848ee8078321 Mon Sep 17 00:00:00 2001 +From: Vincent Batts +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 +--- + 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 index 00000000..97d08bac --- /dev/null +++ b/patches/cgroupdriver-cgroupfs.patch @@ -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 +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 index 00000000..938a55c3 --- /dev/null +++ b/patches/cgroupfs-mount-convenience-copy.patch @@ -0,0 +1,81 @@ +Author: Tianon Gravi +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 index 00000000..5503c4aa --- /dev/null +++ b/patches/change-system-unit-env-file.patch @@ -0,0 +1,20 @@ +Author: Paul R. Tagliamonte +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 index 00000000..e194cac6 --- /dev/null +++ b/patches/check-v1.patch @@ -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 index 00000000..1cc421b2 --- /dev/null +++ b/patches/distribution-2.1.1.patch @@ -0,0 +1,17 @@ +Description: Minor changes for github.com/docker/distribution 2.1.1 +Forwarded: not-needed +Author: Tianon Gravi + +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 index 00000000..83cb2472 --- /dev/null +++ b/patches/fatal-error-old-kernels.patch @@ -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 +Reviewed-by: Paul Tagliamonte + +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 index 00000000..df6db677 --- /dev/null +++ b/patches/overlay.patch @@ -0,0 +1,18 @@ +Description: move "overlay" to a higher priority (now that AUFS is not supported in Debian kernels) +Author: Tianon Gravi +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 index 00000000..9d50b56e --- /dev/null +++ b/patches/runc-0.0.4.patch @@ -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 , Tianon Gravi + +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 index 00000000..b7b4fdf2 --- /dev/null +++ b/patches/series @@ -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 index 00000000..0429d355 --- /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 index 00000000..1acf52e9 --- /dev/null +++ b/repack/prune/vendor @@ -0,0 +1,2 @@ +./vendor +./Godeps/_workspace diff --git a/rules b/rules new file mode 100755 index 00000000..d2583651 --- /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 index 00000000..8b17d44d --- /dev/null +++ b/source.lintian-overrides @@ -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 index 00000000..163aaf8d --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/tests/control b/tests/control new file mode 100644 index 00000000..30e76317 --- /dev/null +++ b/tests/control @@ -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 index 00000000..7c8c8d4a --- /dev/null +++ b/tests/integration @@ -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 index 00000000..423cef91 --- /dev/null +++ b/upstream-version-gitcommits @@ -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 index 00000000..bcc58c5d --- /dev/null +++ b/vim-syntax-docker.install @@ -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 index 00000000..517b5914 --- /dev/null +++ b/vim-syntax-docker.yaml @@ -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 index 00000000..05c1f00e --- /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