about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorVincent Demeester <vincent@sbr.pm>2017-01-17 15:49:32 +0100
committerVincent Demeester <vincent@sbr.pm>2017-01-18 21:33:37 +0100
commit74d4d3e4f9bec56e20bb0adcb6dd8df6c4d14247 (patch)
tree29a612d555493227e7aab5788801430bae3bae31 /pkgs
parente9109b1b979d8ce9385431b38d0f2eda693cbaf3 (diff)
downloadnixlib-74d4d3e4f9bec56e20bb0adcb6dd8df6c4d14247.tar
nixlib-74d4d3e4f9bec56e20bb0adcb6dd8df6c4d14247.tar.gz
nixlib-74d4d3e4f9bec56e20bb0adcb6dd8df6c4d14247.tar.bz2
nixlib-74d4d3e4f9bec56e20bb0adcb6dd8df6c4d14247.tar.lz
nixlib-74d4d3e4f9bec56e20bb0adcb6dd8df6c4d14247.tar.xz
nixlib-74d4d3e4f9bec56e20bb0adcb6dd8df6c4d14247.tar.zst
nixlib-74d4d3e4f9bec56e20bb0adcb6dd8df6c4d14247.zip
docker: 1.12.6 -> 1.13.0
- Update docker version to 1.13.0.
- Introduce now docker-proxy package (from libnetmork).
- Use overrideDerivation to set the correct version for docker.
- Update tini to make sure we can build it static.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/virtualization/docker/default.nix53
-rw-r--r--pkgs/applications/virtualization/docker/proxy.nix36
-rw-r--r--pkgs/applications/virtualization/tini/default.nix14
-rw-r--r--pkgs/top-level/all-packages.nix1
4 files changed, 91 insertions, 13 deletions
diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix
index ba21a23f8ad8..2391775af42a 100644
--- a/pkgs/applications/virtualization/docker/default.nix
+++ b/pkgs/applications/virtualization/docker/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper, pkgconfig, go-md2man
-, go, containerd, runc
+, go, containerd, runc, docker-proxy, tini
 , sqlite, iproute, bridge-utils, devicemapper, systemd
 , btrfs-progs, iptables, e2fsprogs, xz, utillinux, xfsprogs
 , procps
@@ -11,15 +11,53 @@ with lib;
 
 stdenv.mkDerivation rec {
   name = "docker-${version}";
-  version = "1.12.6";
+  version = "1.13.0";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = "docker";
     rev = "v${version}";
-    sha256 = "10jhjas07xxlxjsxby8865rr0d0zsc5azy16rsz1idmy7f7lk6jh";
+    sha256 = "03b181xiqgnwanc567w9p6rbdgdvrfv0lk4r7b604ksm0fr4cz23";
   };
 
+  docker-runc = runc.overrideAttrs (oldAttrs: rec {
+    name = "docker-runc";
+    src = fetchFromGitHub {
+      owner = "docker";
+      repo = "runc";
+      rev = "2f7393a47307a16f8cee44a37b262e8b81021e3e";
+      sha256 = "1s5nfnbinzmcnm8avhvsniz0ihxyva4w5qz1hzzyqdyr0w2scnbj";
+    };
+    # docker/runc already include these patches / are not applicable
+    patches = [];
+  });
+  docker-containerd = containerd.overrideAttrs (oldAttrs: rec {
+    name = "docker-containerd";
+    src = fetchFromGitHub {
+      owner = "docker";
+      repo = "containerd";
+      rev = "03e5862ec0d8d3b3f750e19fca3ee367e13c090e";
+      sha256 = "184sd9dwkcba3zhxnz9grw8p81x05977p36cif2dgkhjdhv12map";
+    };
+  });
+  docker-tini = tini.overrideAttrs  (oldAttrs: rec {
+    name = "docker-init";
+    src = fetchFromGitHub {
+      owner = "krallin";
+      repo = "tini";
+      rev = "949e6facb77383876aeff8a6944dde66b3089574";
+      sha256 = "0zj4kdis1vvc6dwn4gplqna0bs7v6d1y2zc8v80s3zi018inhznw";
+    };
+
+    # Do not remove static from make files as we want a static binary
+    patchPhase = ''
+    '';
+
+    NIX_CFLAGS_COMPILE = [
+      "-DMINIMAL=ON"
+    ];
+  });
+
   buildInputs = [
     makeWrapper pkgconfig go-md2man go
     sqlite devicemapper btrfs-progs systemd
@@ -52,16 +90,17 @@ stdenv.mkDerivation rec {
   installPhase = ''
     install -Dm755 ./bundles/${version}/dynbinary-client/docker-${version} $out/libexec/docker/docker
     install -Dm755 ./bundles/${version}/dynbinary-daemon/dockerd-${version} $out/libexec/docker/dockerd
-    install -Dm755 ./bundles/${version}/dynbinary-daemon/docker-proxy-${version} $out/libexec/docker/docker-proxy
     makeWrapper $out/libexec/docker/docker $out/bin/docker \
       --prefix PATH : "$out/libexec/docker:$extraPath"
     makeWrapper $out/libexec/docker/dockerd $out/bin/dockerd \
       --prefix PATH : "$out/libexec/docker:$extraPath"
 
     # docker uses containerd now
-    ln -s ${containerd}/bin/containerd $out/libexec/docker/docker-containerd
-    ln -s ${containerd}/bin/containerd-shim $out/libexec/docker/docker-containerd-shim
-    ln -s ${runc}/bin/runc $out/libexec/docker/docker-runc
+    ln -s ${docker-containerd}/bin/containerd $out/libexec/docker/docker-containerd
+    ln -s ${docker-containerd}/bin/containerd-shim $out/libexec/docker/docker-containerd-shim
+    ln -s ${docker-runc}/bin/runc $out/libexec/docker/docker-runc
+    ln -s ${docker-proxy}/bin/docker-proxy $out/libexec/docker/docker-proxy
+    ln -s ${docker-tini}/bin/tini-static $out/libexec/docker/docker-init
 
     # systemd
     install -Dm644 ./contrib/init/systemd/docker.service $out/etc/systemd/system/docker.service
diff --git a/pkgs/applications/virtualization/docker/proxy.nix b/pkgs/applications/virtualization/docker/proxy.nix
new file mode 100644
index 000000000000..a9f278c4d2a8
--- /dev/null
+++ b/pkgs/applications/virtualization/docker/proxy.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, fetchFromGitHub, go, docker }:
+
+with lib;
+
+stdenv.mkDerivation rec {
+  name = "docker-proxy-${rev}";
+  rev = "0f534354b813003a754606689722fe253101bc4e";
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "docker";
+    repo = "libnetwork";
+    sha256 = "1ah7h417llcq0xzdbp497pchb9m9qvjhrwajcjb0ybrs8v889m31";
+  };
+
+  buildInputs = [ go ];
+
+  buildPhase = ''
+    mkdir -p .gopath/src/github.com/docker
+    ln -sf $(pwd) .gopath/src/github.com/docker/libnetwork
+    GOPATH="$(pwd)/.gopath:$(pwd)/Godeps/_workspace" go build -ldflags="$PROXY_LDFLAGS" -o docker-proxy ./cmd/proxy
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp docker-proxy $out/bin
+  '';
+
+  meta = {
+    description = "Docker proxy binary to forward traffic between host and containers";
+    license = licenses.asl20;
+    homepage = https://github.com/docker/libnetwork;
+    maintainers = with maintainers; [vdemeester];
+    platforms = docker.meta.platforms;
+  };
+}
diff --git a/pkgs/applications/virtualization/tini/default.nix b/pkgs/applications/virtualization/tini/default.nix
index 535ca551785f..2a7b4810a24f 100644
--- a/pkgs/applications/virtualization/tini/default.nix
+++ b/pkgs/applications/virtualization/tini/default.nix
@@ -1,18 +1,20 @@
-{ stdenv, fetchurl, cmake }:
+{ stdenv, fetchFromGitHub, cmake, glibc }:
 
 stdenv.mkDerivation rec {
-  version = "0.8.3";
+  version = "0.13.1";
   name = "tini-${version}";
-  src = fetchurl {
-    url = "https://github.com/krallin/tini/archive/v0.8.3.tar.gz";
-    sha256 ="1w7rj4crrcyv25idmh4asbp2sxzwyihy5mbpw384bzxjzaxn9xpa";
+  src = fetchFromGitHub {
+    owner = "krallin";
+    repo = "tini";
+    rev = "v${version}";
+    sha256 ="1g4n8v5d197zcb41fcpbhip2x342383zw1d2zkv57w73vkqgv6z6";
   };
   patchPhase = "sed -i /tini-static/d CMakeLists.txt";
   NIX_CFLAGS_COMPILE = [
     "-DPR_SET_CHILD_SUBREAPER=36"
     "-DPR_GET_CHILD_SUBREAPER=37"
   ];
-  buildInputs = [ cmake ];
+  buildInputs = [ cmake glibc glibc.static ];
   meta = with stdenv.lib; {
     description = "A tiny but valid init for containers";
     homepage = https://github.com/krallin/tini;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 1c148094f311..e4c04b7f0b07 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -12802,6 +12802,7 @@ in
   };
 
   docker = callPackage ../applications/virtualization/docker { };
+  docker-proxy = callPackage ../applications/virtualization/docker/proxy.nix { };
 
   docker-gc = callPackage ../applications/virtualization/docker/gc.nix { };