{ stdenv, lib, fetchFromGitHub, go-md2man , go, pkgconfig, libapparmor, apparmor-parser, libseccomp }: with lib; stdenv.mkDerivation rec { name = "runc-${version}"; version = "1.0.0-rc2"; src = fetchFromGitHub { owner = "opencontainers"; repo = "runc"; rev = "v${version}"; sha256 = "06bxc4g3frh4i1lkzvwdcwmzmr0i52rz4a4pij39s15zaigm79wk"; }; outputs = [ "out" "man" ]; hardeningDisable = ["fortify"]; buildInputs = [ go-md2man go pkgconfig libseccomp libapparmor apparmor-parser ]; makeFlags = ''BUILDTAGS+=seccomp BUILDTAGS+=apparmor''; preBuild = '' patchShebangs . substituteInPlace libcontainer/apparmor/apparmor.go \ --replace /sbin/apparmor_parser ${apparmor-parser}/bin/apparmor_parser ''; installPhase = '' install -Dm755 runc $out/bin/runc # Include contributed man pages man/md2man-all.sh -q manRoot="$man/share/man" mkdir -p "$manRoot" for manDir in man/man?; do manBase="$(basename "$manDir")" # "man1" for manFile in "$manDir"/*; do manName="$(basename "$manFile")" # "docker-build.1" mkdir -p "$manRoot/$manBase" gzip -c "$manFile" > "$manRoot/$manBase/$manName.gz" done done ''; preFixup = '' # remove references to go compiler while read file; do sed -ri "s,${go},$(echo "${go}" | sed "s,$NIX_STORE/[^-]*,$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,"),g" $file done < <(find $out/bin -type f 2>/dev/null) ''; meta = { homepage = https://runc.io/; description = "A CLI tool for spawning and running containers according to the OCI specification"; license = licenses.asl20; maintainers = with maintainers; [ offline ]; platforms = platforms.linux; }; }