about summary refs log tree commit diff
path: root/pkgs/applications/virtualization
diff options
context:
space:
mode:
authorAndreas Rammhold <andreas@rammhold.de>2021-01-26 13:01:50 +0100
committerAndreas Rammhold <andreas@rammhold.de>2021-01-26 13:08:25 +0100
commited46383416a21ef496c6b52bc89d80f28c2efcad (patch)
treebda116a61d4d0e1a1cbc0d0620205a0b452b9921 /pkgs/applications/virtualization
parent13a6565c4c5fd34c4dcaf3fc06471a49e100b8ab (diff)
downloadnixlib-ed46383416a21ef496c6b52bc89d80f28c2efcad.tar
nixlib-ed46383416a21ef496c6b52bc89d80f28c2efcad.tar.gz
nixlib-ed46383416a21ef496c6b52bc89d80f28c2efcad.tar.bz2
nixlib-ed46383416a21ef496c6b52bc89d80f28c2efcad.tar.lz
nixlib-ed46383416a21ef496c6b52bc89d80f28c2efcad.tar.xz
nixlib-ed46383416a21ef496c6b52bc89d80f28c2efcad.tar.zst
nixlib-ed46383416a21ef496c6b52bc89d80f28c2efcad.zip
docker: allow overriding package inputs per docker package
Previously we could not override the input packages to docker at all as
that had been shadowed due to the usage of inherit in all-package.nix.

We are now mixing the "variable" variables for the build and the
dependency declarations for the package and using callPackage as if each
of the docker packages would be separate files that we evaluate.

This now enables overriding e.g. iptables for a single verison of
docker which previously was not feasible without importing the
default.nix again (and passing different arguments).

> pkgs.docker.override { iptables = pkgs.iptables-nftables-compat; }
Diffstat (limited to 'pkgs/applications/virtualization')
-rw-r--r--pkgs/applications/virtualization/docker/default.nix25
1 files changed, 12 insertions, 13 deletions
diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix
index e9496247f06d..207ebdf2211f 100644
--- a/pkgs/applications/virtualization/docker/default.nix
+++ b/pkgs/applications/virtualization/docker/default.nix
@@ -1,12 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, buildGoPackage
-, makeWrapper, installShellFiles, pkg-config
-, go-md2man, go, containerd, runc, docker-proxy, tini, libtool
-, sqlite, iproute, lvm2, systemd, docker-buildx
-, btrfs-progs, iptables, e2fsprogs, xz, util-linux, xfsprogs, git
-, procps, libseccomp
-, nixosTests
-, buildxSupport ? false
-}:
+{ lib, callPackage }:
 
 with lib;
 
@@ -16,8 +8,16 @@ rec {
       , mobyRev, mobySha256
       , runcRev, runcSha256
       , containerdRev, containerdSha256
-      , tiniRev, tiniSha256, buildxSupport
-    } :
+      , tiniRev, tiniSha256, buildxSupport ? false
+      # package dependencies
+      , stdenv, fetchFromGitHub, fetchpatch, buildGoPackage
+      , makeWrapper, installShellFiles, pkg-config
+      , go-md2man, go, containerd, runc, docker-proxy, tini, libtool
+      , sqlite, iproute, lvm2, systemd, docker-buildx
+      , btrfs-progs, iptables, e2fsprogs, xz, util-linux, xfsprogs, git
+      , procps, libseccomp
+      , nixosTests
+    }:
   let
     docker-runc = runc.overrideAttrs (oldAttrs: {
       name = "docker-runc-${version}";
@@ -215,7 +215,7 @@ rec {
 
   # Get revisions from
   # https://github.com/moby/moby/tree/${version}/hack/dockerfile/install/*
-  docker_20_10 = makeOverridable dockerGen rec {
+  docker_20_10 = callPackage dockerGen rec {
     version = "20.10.2";
     rev = "v${version}";
     sha256 = "0z0hpm5hrqh7p8my8lmiwpym2shs48my6p0zv2cc34wym0hcly51";
@@ -227,6 +227,5 @@ rec {
     containerdSha256 = "09xvhjg5f8h90w1y94kqqnqzhbhd62dcdd9wb9sdqakisjk6zrl0";
     tiniRev = "de40ad007797e0dcd8b7126f27bb87401d224240"; # v0.19.0
     tiniSha256 = "1h20i3wwlbd8x4jr2gz68hgklh0lb0jj7y5xk1wvr8y58fip1rdn";
-    inherit buildxSupport;
   };
 }