{ lib, stdenv , fetchFromGitHub , zlib }: let version = "0.10"; tag = "v${version}"; rev = "b364724f15fd6fce8234ad8add68107c23a22151"; in stdenv.mkDerivation rec { pname = "mrustc"; inherit version; # Always update minicargo.nix and bootstrap.nix in lockstep with this src = fetchFromGitHub { owner = "thepowersgang"; repo = "mrustc"; rev = tag; sha256 = "0f7kh4n2663sn0z3xib8gzw0s97qpvwag40g2vs3bfjlrbpgi9z0"; }; postPatch = '' sed -i 's/\$(shell git show --pretty=%H -s)/${rev}/' Makefile sed -i 's/\$(shell git symbolic-ref -q --short HEAD || git describe --tags --exact-match)/${tag}/' Makefile sed -i 's/\$(shell git diff-index --quiet HEAD; echo $$?)/0/' Makefile sed '1i#include ' -i src/trans/codegen_c.cpp ''; strictDeps = true; buildInputs = [ zlib ]; enableParallelBuilding = true; installPhase = '' runHook preInstall mkdir -p $out/bin cp bin/mrustc $out/bin runHook postInstall ''; meta = with lib; { description = "Mutabah's Rust Compiler"; longDescription = '' In-progress alternative rust compiler, written in C++. Capable of building a fully-working copy of rustc, but not yet suitable for everyday use. ''; inherit (src.meta) homepage; license = licenses.mit; maintainers = with maintainers; [ progval r-burns ]; platforms = [ "x86_64-linux" ]; }; }