packaging: use fenix for dev shell

This commit is contained in:
Qyriad 2026-02-16 18:02:39 +01:00
parent f46c2a9934
commit 26397ccf37
4 changed files with 32 additions and 4 deletions

17
flake.lock generated
View file

@ -1,5 +1,21 @@
{ {
"nodes": { "nodes": {
"fenix": {
"flake": false,
"locked": {
"lastModified": 1771226183,
"narHash": "sha256-AbaMtaLbe37l2VI/KSRk63PuBnX/YDDFL0G1eFMbvwI=",
"owner": "nix-community",
"repo": "fenix",
"rev": "2e3759c5ef51f320eb0aaf83f2a32baae33db237",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "fenix",
"type": "github"
}
},
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems"
@ -53,6 +69,7 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"fenix": "fenix",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"qyriad-nur": "qyriad-nur" "qyriad-nur": "qyriad-nur"

View file

@ -5,6 +5,10 @@
flake = false; flake = false;
}; };
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";
fenix = {
url = "github:nix-community/fenix";
flake = false;
};
qyriad-nur = { qyriad-nur = {
url = "github:Qyriad/nur-packages"; url = "github:Qyriad/nur-packages";
flake = false; flake = false;
@ -15,11 +19,13 @@
self, self,
nixpkgs, nixpkgs,
flake-utils, flake-utils,
fenix,
qyriad-nur, qyriad-nur,
}: flake-utils.lib.eachDefaultSystem (system: let }: flake-utils.lib.eachDefaultSystem (system: let
pkgs = import nixpkgs { inherit system; }; pkgs = import nixpkgs { inherit system; };
qpkgs = import qyriad-nur { inherit pkgs; }; qpkgs = import qyriad-nur { inherit pkgs; };
inherit (qpkgs) lib; inherit (qpkgs) lib;
fenixLib = import fenix { inherit pkgs; };
dynix = import ./default.nix { inherit pkgs qpkgs; }; dynix = import ./default.nix { inherit pkgs qpkgs; };
extraVersions = lib.mapAttrs' (stdenvName: value: { extraVersions = lib.mapAttrs' (stdenvName: value: {
@ -27,7 +33,7 @@
inherit value; inherit value;
}) dynix.byStdenv; }) dynix.byStdenv;
devShell = import ./shell.nix { inherit pkgs qpkgs dynix; }; devShell = import ./shell.nix { inherit pkgs qpkgs dynix fenixLib; };
extraDevShells = lib.mapAttrs' (stdenvName: value: { extraDevShells = lib.mapAttrs' (stdenvName: value: {
name = "${stdenvName}-dynix"; name = "${stdenvName}-dynix";
inherit value; inherit value;

View file

@ -77,6 +77,7 @@ in {
path, path,
mkShell, mkShell,
python3Packages, python3Packages,
fenixToolchain,
}: let }: let
mkShell' = mkShell.override { inherit stdenv; }; mkShell' = mkShell.override { inherit stdenv; };
pyEnv = python3Packages.python.withPackages (p: [ pyEnv = python3Packages.python.withPackages (p: [
@ -87,8 +88,8 @@ in {
inputsFrom = [ self ]; inputsFrom = [ self ];
packages = [ packages = [
pyEnv pyEnv
rustPackages.rustc stdenv.cc
rustPackages.rustfmt fenixToolchain
]; ];
env.PYTHONPATH = [ env.PYTHONPATH = [
"${pyEnv}/${pyEnv.sitePackages}" "${pyEnv}/${pyEnv.sitePackages}"

View file

@ -9,10 +9,14 @@
src = fetchTarball "https://github.com/Qyriad/nur-packages/archive/main.tar.gz"; src = fetchTarball "https://github.com/Qyriad/nur-packages/archive/main.tar.gz";
in import src { inherit pkgs; }, in import src { inherit pkgs; },
dynix ? import ./default.nix { inherit pkgs qpkgs; }, dynix ? import ./default.nix { inherit pkgs qpkgs; },
fenixLib ? let
src = fetchTarball "https://github.com/nix-community/fenix/archive/main.tar.gz";
in import src { inherit pkgs; },
fenixToolchain ? fenixLib.latest.toolchain,
}: let }: let
inherit (pkgs) lib; inherit (pkgs) lib;
mkDevShell = dynix: qpkgs.callPackage dynix.mkDevShell { }; mkDevShell = dynix: qpkgs.callPackage dynix.mkDevShell { inherit fenixToolchain; };
devShell = mkDevShell dynix; devShell = mkDevShell dynix;
byStdenv = lib.mapAttrs (lib.const mkDevShell) dynix.byStdenv; byStdenv = lib.mapAttrs (lib.const mkDevShell) dynix.byStdenv;