Update shell.nix to work with stable nixpkgs ()

The existing shell.nix uses whatever versions of rustc and cargo are in
the system nixpkgs. In the current stable nixpkgs version (24.11), this
is rustc 1.82.0. Unfortunately, we depend on the `strict_provenance`
feature, which was unstable before 1.84.0. (See: )

This patch makes minimal changes to shell.nix to overlay nixpkgs with
the rustc version defined in rust-toolchain.toml, enabling Kanidm to
build locally on stable versions of NixOS.

Co-authored-by: Firstyear <william@blackhats.net.au>
This commit is contained in:
Katherina Walshe-Grey 2025-03-20 03:06:51 +00:00 committed by GitHub
parent f86bc03a93
commit ef638a62e9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,14 +1,13 @@
{ pkgs ? import <nixpkgs> {} }: let
let rust-overlay = (import (builtins.fetchTarball "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"));
overrides = (builtins.fromTOML (builtins.readFile ./rust-toolchain.toml));
in in
pkgs.mkShellNoCC rec { { pkgs ? import <nixpkgs> { overlays = [ rust-overlay ]; } }:
pkgs.mkShellNoCC {
# Kanidm dependencies # Kanidm dependencies
buildInputs = with pkgs; [ buildInputs = with pkgs; [
pkg-config pkg-config
cargo (rust-bin.fromRustupToolchainFile ./rust-toolchain.toml)
rustc
clang clang
llvmPackages.bintools llvmPackages.bintools
@ -19,7 +18,6 @@ pkgs.mkShellNoCC rec {
linux-pam linux-pam
]; ];
RUSTC_VERSION = overrides.toolchain.channel;
# https://github.com/rust-lang/rust-bindgen#environment-variables # https://github.com/rust-lang/rust-bindgen#environment-variables
LIBCLANG_PATH = pkgs.lib.makeLibraryPath [ pkgs.llvmPackages_latest.libclang.lib ]; LIBCLANG_PATH = pkgs.lib.makeLibraryPath [ pkgs.llvmPackages_latest.libclang.lib ];
} }