Uthar / nix-cl

Utilities for packaging ASDF systems using Nix
BSD 2-Clause "Simplified" License
15 stars 6 forks source link

Which nixpkgs version? #29

Open lukego opened 1 year ago

lukego commented 1 year ago

Hey I don't quite understand which nixpkgs version nix-cl is supposed to use for libraries?

In practice the chain of dependencies seems to be github:uthar/nix-cl -> github:uthar/dev -> nixpkgs i.e. that the nixpkgs version will be determined by the contents of https://github.com/Uthar/dev/blob/master/flake.lock.

That seems a bit random, though? Is it just that using flakes means pinning everything by default anyway?

I ask because I need to make a not-quite-trivial update to the Vulkan shaderc library in nixpkgs (https://github.com/lukego/nixpkgs/commit/059fb3863bf3ceb1f670ee70919db7a9260cf8fc) in order to fix an obscure runtime incompatibility in the Lisp vk library that only shows up when running real application code (not during build.) I'm planning to upstream that change to nixpkgs but I don't really understand the flow for landing it in nix-cl where it is needed e.g. when I make a PR to package vk.

Tips welcome, I don't know how understood all this flakes stuff is really in general :)

Uthar commented 1 year ago

Hmm, You can use something like this in flake.nix

 inputs.nixpkgs.url = "nixpkgs/release-22.11";

  inputs.dev.url = "github:uthar/dev";
  inputs.dev.inputs.nixpkgs.follows = "nixpkgs";

  inputs.nix-cl.url = "github:uthar/nix-cl";
  inputs.nix-cl.inputs.dev.follows = "dev";
Uthar commented 1 year ago

this "dev" flake is used to get clasp, which is not in nixpkgs, rest should come from nixpkgs itself

lukego commented 1 year ago

I see! Thanks for the tip on follows I didn't know that one.

Just in case it's useful information at any point the nixpkgs patch that's needed for vk is this one https://github.com/NixOS/nixpkgs/pull/204643.