Merge pull request #132626 from zowoq/tarsum

tarsum: init

authored by

Robert Hensing and committed by
GitHub
1c4b1018 7a8f6028

+45 -19
+2 -19
pkgs/build-support/docker/default.nix
··· 5 5 callPackage, 6 6 closureInfo, 7 7 coreutils, 8 - docker, 9 8 e2fsprogs, 10 9 fakeroot, 11 10 findutils, ··· 17 16 moreutils, 18 17 nix, 19 18 pigz, 19 + pkgs, 20 20 rsync, 21 21 runCommand, 22 22 runtimeShell, ··· 123 123 124 124 # We need to sum layer.tar, not a directory, hence tarsum instead of nix-hash. 125 125 # And we cannot untar it, because then we cannot preserve permissions etc. 126 - tarsum = runCommand "tarsum" { 127 - nativeBuildInputs = [ go ]; 128 - } '' 129 - mkdir tarsum 130 - cd tarsum 131 - 132 - cp ${./tarsum.go} tarsum.go 133 - export GOPATH=$(pwd) 134 - export GOCACHE="$TMPDIR/go-cache" 135 - export GO111MODULE=off 136 - mkdir -p src/github.com/docker/docker/pkg 137 - ln -sT ${docker.moby-src}/pkg/tarsum src/github.com/docker/docker/pkg/tarsum 138 - go build 139 - 140 - mkdir -p $out/bin 141 - 142 - cp tarsum $out/bin/ 143 - ''; 126 + tarsum = pkgs.tarsum; 144 127 145 128 # buildEnv creates symlinks to dirs, which is hard to edit inside the overlay VM 146 129 mergeDrvs = {
+42
pkgs/build-support/docker/tarsum.nix
··· 1 + { stdenv, go, docker, nixosTests }: 2 + 3 + stdenv.mkDerivation { 4 + name = "tarsum"; 5 + 6 + nativeBuildInputs = [ go ]; 7 + disallowedReferences = [ go ]; 8 + 9 + dontUnpack = true; 10 + 11 + CGO_ENABLED = 0; 12 + GOFLAGS = "-trimpath"; 13 + GO111MODULE = "off"; 14 + 15 + buildPhase = '' 16 + runHook preBuild 17 + mkdir tarsum 18 + cd tarsum 19 + cp ${./tarsum.go} tarsum.go 20 + export GOPATH=$(pwd) 21 + export GOCACHE="$TMPDIR/go-cache" 22 + mkdir -p src/github.com/docker/docker/pkg 23 + ln -sT ${docker.moby-src}/pkg/tarsum src/github.com/docker/docker/pkg/tarsum 24 + go build 25 + runHook postBuild 26 + ''; 27 + 28 + installPhase = '' 29 + runHook preInstall 30 + mkdir -p $out/bin 31 + cp tarsum $out/bin/ 32 + runHook postInstall 33 + ''; 34 + 35 + passthru = { 36 + tests = { 37 + dockerTools = nixosTests.docker-tools; 38 + }; 39 + }; 40 + 41 + meta.platforms = go.meta.platforms; 42 + }
+1
pkgs/top-level/all-packages.nix
··· 369 369 dockerTools = callPackage ../build-support/docker { 370 370 writePython3 = buildPackages.writers.writePython3; 371 371 }; 372 + tarsum = callPackage ../build-support/docker/tarsum.nix { }; 372 373 373 374 snapTools = callPackage ../build-support/snap { }; 374 375