fix(tools/magrathea): isolate from environment packages

This makes magrathea use the repostory version of nix and git. This is
done in the pursuit of enforcing guaranteed unified experience of
magrathea tool across all users of a `tvl-kit`-based
repository. Especially among ubuntu users with uncontrolled set of
packages and versions installed on their system.

Not having this was giving build problems for `mg build` as one of the
users has 2.17 version of nix that had inconsistent hash computation
with 2.3.

Change-Id: I3182faf4c545ac61f6cc1cc862dc23d51c1cd397
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9892
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
This commit is contained in:
Evgeny Zemtsov 2023-11-01 12:58:06 +01:00 committed by ezemtsov
parent 99f618bcb4
commit e3fe6826f8

View file

@ -3,21 +3,37 @@
# it is a tool for working with monorepos in the style of tvl's depot
{ pkgs, ... }:
pkgs.stdenv.mkDerivation {
let
inherit (pkgs)
stdenv
chicken
chickenPackages
makeWrapper
git
nix
lib
;
in
stdenv.mkDerivation {
name = "magrathea";
src = ./.;
dontInstall = true;
nativeBuildInputs = [ pkgs.chicken ];
buildInputs = with pkgs.chickenPackages.chickenEggs; [
nativeBuildInputs = [ chicken makeWrapper ];
buildInputs = with chickenPackages.chickenEggs; [
matchable
srfi-13
];
propagatedBuildInputs = [ pkgs.git ];
propagatedBuildInputs = [ git ];
buildPhase = ''
mkdir -p $out/bin
csc -o $out/bin/mg -host -static ${./mg.scm}
'';
fixupPhase = ''
wrapProgram $out/bin/mg --prefix PATH ${lib.makeBinPath [ nix ]}
'';
}