Open ethindp opened 2 years ago
@fluffynukeit Okay, so actually doing this just breaks gnat. This ridiculous recursive gnat requirement is preventing the build from actually working. So we can't upgrade gnat, or I can't, anyway, which means I can't test changes that I've made to ensure that they actually work, even if I revert back to gnat 10.
I've been thinking about revisiting this old repo for a few reasons:
@fluffynukeit You can integrate cargo/alire into nix if you (don't) install it through the package manager, I think. Maybe alire will work even if installed through nix? I haven't tried much Rust through Nix, myself, but I'm very interested in getting a full Ada environment running on Nix, GPS included. I'm not, however, very good with flakes, so...
Hi @ethindp , I took a crack at this. See the branch nix_21.11. Newer releases of nixpkgs now include the gprbuild tool, so my flake does not need that any longer. This was the main source of complexity in my flake, although there's a bug in 22.05 preventing me from updating to that version. The other simplification is that alire will likely be the de facto project management tool in the community going forward, and it has the ability to install what you need in a project environment. This limits the applicability of nix for Ada development generally. As a result of both of these, the flake now just provides alire, which allows you to install and declare crate dependencies like gnatprove on a project by project basis.
Check out the flake and see if it fills your niche. I think the value of such a flake is quite limited now. I expect alire will make it into nixpkgs in due time, and this flake will be deprecated thereafter.
@fluffynukeit the flake is completely broken now I think :<
I was doing this, but I ran into a problem for the SPARK tools: I don't know what version of GCC corresponds to what SPARK tools release. I can submit a PR once I figure that out. Is there a guide somewhere?