TIL: How to Pull Submodules in a Nix Derivation
Recently, I was trying to create a derivation which needed to pull git submodules as well. I was getting an error which look something like this:
data/meson.build:76:0: ERROR: Nonexistent build file 'data/submodules/meson.build'
It was coming from this derivation https://gitlab.com/hmajid2301/dotfiles/-/blob/c153de146a3bf9339cbef013ac65bc32e6305c8e/packages/gradience/default.nix for building the latest version of gradience.
It turns out when we do a fetchFromGitHub
we need to explicitly tell it to also pull submodules, which makes sense.
So I was able to fix this. I had to add the fetchSubmodules
argument:
{
pkgs,
lib,
fetchFromGitHub,
...
}:
pkgs.python3Packages.buildPythonApplication {
pname = "gradience";
version = "0.8.0-beta1";
src = fetchFromGitHub {
owner = "GradienceTeam";
repo = "Gradience";
rev = "90b774174da0e3c6b5314e38226bea653a5bf57a";
sha256 = "sha256-C0GV6vOEZ0wTaKO7BgGuFvHsHeaVwH0W1U8yKUMrO9c=";
fetchSubmodules = true;
};
}
That’s it! A simple fix, but took me longer than it should’ve done to figure it out.