Merge master into staging-next
This commit is contained in:
67
pkgs/build-support/docker-slim/default.nix
Normal file
67
pkgs/build-support/docker-slim/default.nix
Normal file
@@ -0,0 +1,67 @@
|
||||
{ stdenv
|
||||
, buildGoPackage
|
||||
, fetchFromGitHub
|
||||
, makeWrapper
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
version = "1.26.1";
|
||||
rev = "2ec04e169b12a87c5286aa09ef44eac1cea2c7a1";
|
||||
|
||||
in buildGoPackage rec {
|
||||
pname = "docker-slim";
|
||||
inherit version;
|
||||
|
||||
goPackagePath = "github.com/docker-slim/docker-slim";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "docker-slim";
|
||||
repo = "docker-slim";
|
||||
inherit rev;
|
||||
# fetchzip yields a different hash on Darwin because `use-case-hack`
|
||||
sha256 =
|
||||
if stdenv.isDarwin
|
||||
then "0j72rn6qap78qparrnslxm3yv83mzy1yc7ha0crb4frwkzmspyvf"
|
||||
else "01bjb14z7yblm7qdqrx1j2pw5x5da7a6np4rkzay931gly739gbh";
|
||||
};
|
||||
|
||||
subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
# docker-slim vendorized logrus files in different directories, which
|
||||
# conflicts on case-sensitive filesystems
|
||||
preBuild = stdenv.lib.optionalString stdenv.isLinux ''
|
||||
mv go/src/${goPackagePath}/vendor/github.com/Sirupsen/logrus/* \
|
||||
go/src/${goPackagePath}/vendor/github.com/sirupsen/logrus/
|
||||
'';
|
||||
|
||||
buildFlagsArray =
|
||||
let
|
||||
ldflags = "-ldflags=-s -w " +
|
||||
"-X ${goPackagePath}/pkg/version.appVersionTag=${version} " +
|
||||
"-X ${goPackagePath}/pkg/version.appVersionRev=${rev}";
|
||||
in
|
||||
[ ldflags ];
|
||||
|
||||
# docker-slim tries to create its state dir next to the binary (inside the nix
|
||||
# store), so we set it to use the working directory at the time of invocation
|
||||
postInstall = ''
|
||||
wrapProgram "$bin/bin/docker-slim" --add-flags '--state-path "$(pwd)"'
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Minify and secure Docker containers";
|
||||
homepage = "https://dockersl.im/";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ filalex77 marsam mbrgm ];
|
||||
# internal/app/sensor/monitors/ptrace/monitor.go:151:16: undefined:
|
||||
# system.CallNumber
|
||||
# internal/app/sensor/monitors/ptrace/monitor.go:161:15: undefined:
|
||||
# system.CallReturnValue
|
||||
badPlatforms = [ "aarch64-linux" ];
|
||||
};
|
||||
}
|
||||
@@ -425,8 +425,8 @@
|
||||
|
||||
# Maven Central
|
||||
maven = [
|
||||
http://repo1.maven.org/maven2/
|
||||
http://central.maven.org/maven2/
|
||||
https://repo1.maven.org/maven2/
|
||||
https://central.maven.org/maven2/
|
||||
];
|
||||
|
||||
# Alsa Project
|
||||
|
||||
@@ -61,7 +61,11 @@ static const char * rewrite(const char * path, char * buf)
|
||||
|
||||
static int open_needs_mode(int flags)
|
||||
{
|
||||
#ifdef O_TMPFILE
|
||||
return (flags & O_CREAT) || (flags & O_TMPFILE) == O_TMPFILE;
|
||||
#else
|
||||
return flags & O_CREAT;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* The following set of Glibc library functions is very incomplete -
|
||||
|
||||
@@ -55,9 +55,6 @@
|
||||
elif [[ -e src/lib.rs ]]; then
|
||||
build_lib src/lib.rs
|
||||
${lib.optionalString buildTests "build_lib_test src/lib.rs"}
|
||||
elif [[ -e "src/$LIB_NAME.rs" ]]; then
|
||||
build_lib src/$LIB_NAME.rs
|
||||
${lib.optionalString buildTests ''build_lib_test "src/$LIB_NAME.rs"''}
|
||||
fi
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ lib, buildRustCrate, runCommand, writeTextFile, symlinkJoin, callPackage }:
|
||||
{ lib, buildRustCrate, runCommand, writeTextFile, symlinkJoin, callPackage, releaseTools }:
|
||||
let
|
||||
mkCrate = args: let
|
||||
p = {
|
||||
@@ -92,7 +92,17 @@ let
|
||||
cases = {
|
||||
libPath = { libPath = "src/my_lib.rs"; src = mkLib "src/my_lib.rs"; };
|
||||
srcLib = { src = mkLib "src/lib.rs"; };
|
||||
customLibName = { libName = "test_lib"; src = mkLib "src/test_lib.rs"; };
|
||||
|
||||
# This used to be supported by cargo but as of 1.40.0 I can't make it work like that with just cargo anymore.
|
||||
# This might be a regression or deprecated thing they finally removed…
|
||||
# customLibName = { libName = "test_lib"; src = mkLib "src/test_lib.rs"; };
|
||||
# rustLibTestsCustomLibName = {
|
||||
# libName = "test_lib";
|
||||
# src = mkTestFile "src/test_lib.rs" "foo";
|
||||
# buildTests = true;
|
||||
# expectedTestOutputs = [ "test foo ... ok" ];
|
||||
# };
|
||||
|
||||
customLibNameAndLibPath = { libName = "test_lib"; libPath = "src/best-lib.rs"; src = mkLib "src/best-lib.rs"; };
|
||||
crateBinWithPath = { crateBin = [{ name = "test_binary1"; path = "src/foobar.rs"; }]; src = mkBin "src/foobar.rs"; };
|
||||
crateBinNoPath1 = { crateBin = [{ name = "my-binary2"; }]; src = mkBin "src/my_binary2.rs"; };
|
||||
@@ -122,12 +132,6 @@ let
|
||||
buildTests = true;
|
||||
expectedTestOutputs = [ "test baz ... ok" ];
|
||||
};
|
||||
rustLibTestsCustomLibName = {
|
||||
libName = "test_lib";
|
||||
src = mkTestFile "src/test_lib.rs" "foo";
|
||||
buildTests = true;
|
||||
expectedTestOutputs = [ "test foo ... ok" ];
|
||||
};
|
||||
rustLibTestsCustomLibPath = {
|
||||
libPath = "src/test_path.rs";
|
||||
src = mkTestFile "src/test_path.rs" "bar";
|
||||
@@ -207,9 +211,12 @@ let
|
||||
test -e ${pkg}/bin/brotli-decompressor && touch $out
|
||||
'';
|
||||
};
|
||||
test = runCommand "run-buildRustCrate-tests" {
|
||||
nativeBuildInputs = builtins.attrValues tests;
|
||||
} "
|
||||
touch $out
|
||||
";
|
||||
test = releaseTools.aggregate {
|
||||
name = "buildRustCrate-tests";
|
||||
meta = {
|
||||
description = "Test cases for buildRustCrate";
|
||||
maintainers = [ lib.maintainers.andir ];
|
||||
};
|
||||
constituents = builtins.attrValues tests;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user