diff options
author | Frederik Rietdijk <freddyrietdijk@fridh.nl> | 2020-08-24 12:09:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-24 12:09:27 +0200 |
commit | 6d122d67fa3ae31f36405ecad6bf0cbfc156ed79 (patch) | |
tree | a17dc014603c0fed7d25dec613f5d1d75d8d4dc8 /pkgs/applications/virtualization | |
parent | 2de48c3533ef88c07c745eec133fde245f0acad1 (diff) | |
parent | 0e305341fdc062d39ad62d5b8b2d08eb447d2f36 (diff) |
Merge pull request #92140 from betaboon/docker-cross-compile-fixes
Docker cross compile fixes v2
Diffstat (limited to 'pkgs/applications/virtualization')
-rw-r--r-- | pkgs/applications/virtualization/docker/default.nix | 33 | ||||
-rw-r--r-- | pkgs/applications/virtualization/tini/default.nix | 3 |
2 files changed, 25 insertions, 11 deletions
diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix index e9fc96986a8e4..6b76ea24e3da8 100644 --- a/pkgs/applications/virtualization/docker/default.nix +++ b/pkgs/applications/virtualization/docker/default.nix @@ -1,4 +1,5 @@ -{ stdenv, lib, fetchFromGitHub, makeWrapper, removeReferencesTo, installShellFiles, pkgconfig +{ stdenv, lib, fetchFromGitHub, fetchpatch, buildGoPackage +, makeWrapper, removeReferencesTo, installShellFiles, pkgconfig , go-md2man, go, containerd, runc, docker-proxy, tini, libtool , sqlite, iproute, lvm2, systemd , btrfs-progs, iptables, e2fsprogs, xz, utillinux, xfsprogs, git @@ -56,7 +57,7 @@ rec { NIX_CFLAGS_COMPILE = "-DMINIMAL=ON"; }); in - stdenv.mkDerivation ((optionalAttrs (stdenv.isLinux) { + buildGoPackage ((optionalAttrs (stdenv.isLinux) { inherit docker-runc docker-containerd docker-proxy docker-tini; @@ -66,7 +67,7 @@ rec { ++ optional (lvm2 == null) "exclude_graphdriver_devicemapper" ++ optional (libseccomp != null) "seccomp"; - }) // { + }) // rec { inherit version rev; name = "docker-${version}"; @@ -78,9 +79,19 @@ rec { sha256 = sha256; }; - nativeBuildInputs = [ installShellFiles pkgconfig ]; + patches = [ + # Replace hard-coded cross-compiler with $CC + (fetchpatch { + url = https://github.com/docker/docker-ce/commit/2fdfb4404ab811cb00227a3de111437b829e55cf.patch; + sha256 = "1af20bzakhpfhaixc29qnl9iml9255xdinxdnaqp4an0n1xa686a"; + }) + ]; + + goPackagePath = "github.com/docker/docker-ce"; + + nativeBuildInputs = [ pkgconfig go-md2man go libtool removeReferencesTo installShellFiles ]; buildInputs = [ - makeWrapper removeReferencesTo go-md2man go libtool + makeWrapper ] ++ optionals (stdenv.isLinux) [ sqlite lvm2 btrfs-progs systemd libseccomp ]; @@ -91,7 +102,7 @@ rec { export GOCACHE="$TMPDIR/go-cache" '' + (optionalString (stdenv.isLinux) '' # build engine - cd ./components/engine + cd ./go/src/${goPackagePath}/components/engine export AUTO_GOPATH=1 export DOCKER_GITCOMMIT="${rev}" export VERSION="${version}" @@ -99,7 +110,7 @@ rec { cd - '') + '' # build cli - cd ./components/cli + cd ./go/src/${goPackagePath}/components/cli # Mimic AUTO_GOPATH mkdir -p .gopath/src/github.com/docker/ ln -sf $PWD .gopath/src/github.com/docker/cli @@ -113,7 +124,7 @@ rec { ''; # systemd 230 no longer has libsystemd-journal as a separate entity from libsystemd - patchPhase = '' + postPatch = '' substituteInPlace ./components/cli/scripts/build/.variables --replace "set -eu" "" '' + optionalString (stdenv.isLinux) '' patchShebangs . @@ -126,6 +137,7 @@ rec { extraPath = optionals (stdenv.isLinux) (makeBinPath [ iproute iptables e2fsprogs xz xfsprogs procps utillinux git ]); installPhase = optionalString (stdenv.isLinux) '' + cd ./go/src/${goPackagePath} install -Dm755 ./components/engine/bundles/dynbinary-daemon/dockerd $out/libexec/docker/dockerd makeWrapper $out/libexec/docker/dockerd $out/bin/dockerd \ @@ -152,13 +164,14 @@ rec { installShellCompletion --zsh ./components/cli/contrib/completion/zsh/_docker # Include contributed man pages (cli) + cd ./components/cli + '' + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' # Generate man pages from cobra commands echo "Generate man pages from cobra" - cd ./components/cli mkdir -p ./man/man1 go build -o ./gen-manpages github.com/docker/cli/man ./gen-manpages --root . --target ./man/man1 - + '' + '' # Generate legacy pages from markdown echo "Generate legacy manpages" ./man/md2man-all.sh -q diff --git a/pkgs/applications/virtualization/tini/default.nix b/pkgs/applications/virtualization/tini/default.nix index db3fb1c96eb33..e3b1ccd4ce242 100644 --- a/pkgs/applications/virtualization/tini/default.nix +++ b/pkgs/applications/virtualization/tini/default.nix @@ -15,7 +15,8 @@ stdenv.mkDerivation rec { NIX_CFLAGS_COMPILE = "-DPR_SET_CHILD_SUBREAPER=36 -DPR_GET_CHILD_SUBREAPER=37"; - buildInputs = [ cmake glibc glibc.static ]; + nativeBuildInputs = [ cmake ]; + buildInputs = [ glibc glibc.static ]; meta = with stdenv.lib; { description = "A tiny but valid init for containers"; |