packages/flake.nix

102 lines
3.3 KiB
Nix
Raw Normal View History

2023-11-11 23:03:50 +00:00
{
description = "artemist's NixOS packages and shells for development";
2023-11-12 01:16:34 +00:00
2023-11-11 23:03:50 +00:00
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
};
2024-06-06 00:11:34 +00:00
outputs =
2024-07-15 20:15:52 +00:00
{ self, nixpkgs }:
let
inherit (nixpkgs) lib;
makePkgs =
system:
import nixpkgs {
2023-11-12 05:10:09 +00:00
inherit system;
2023-12-02 00:57:07 +00:00
overlays = [ self.overlays.default ];
2023-11-12 05:10:09 +00:00
};
2024-07-15 20:15:52 +00:00
forAllSystems =
f:
lib.listToAttrs (
map (system: {
name = system;
value = f (makePkgs system);
}) lib.systems.flakeExposed
);
makeDummy =
pkg:
if lib.isDerivation pkg then
pkg
else
pkg
// {
type = "derivation";
name = "dummy-attrset";
};
in
{
formatter = forAllSystems (pkgs: pkgs.nixfmt-rfc-style);
2023-11-12 05:10:09 +00:00
2024-07-15 20:15:52 +00:00
devShells = forAllSystems (pkgs: {
2024-08-09 03:13:34 +00:00
armTrustedFirmware = pkgs.callPackage ./shells/armTrustedFirmware { };
2024-07-15 20:15:52 +00:00
plotter = pkgs.callPackage ./shells/plotter { };
2024-08-27 18:23:26 +00:00
rust = pkgs.callPackage ./shells/rust { };
2024-07-15 20:15:52 +00:00
ryujinx = pkgs.callPackage ./shells/ryujinx { };
2024-08-09 05:42:11 +00:00
uboot = pkgs.callPackage ./shells/uboot { };
2024-07-15 20:15:52 +00:00
zephyr = pkgs.callPackage ./shells/zephyr { };
});
packages = forAllSystems (
pkgs:
builtins.listToAttrs (
let
names = builtins.attrNames (self.overlays.default pkgs pkgs);
in
2024-06-06 00:11:34 +00:00
lib.concatMap (
name:
2024-07-15 20:15:52 +00:00
lib.optional (builtins.typeOf pkgs.${name} == "set") {
2024-06-06 00:11:34 +00:00
inherit name;
2024-07-15 20:15:52 +00:00
value = makeDummy pkgs.${name};
2024-06-06 00:11:34 +00:00
}
) names
2024-07-15 20:15:52 +00:00
)
);
2024-06-06 00:11:34 +00:00
overlays.default = final: prev: {
2024-06-06 01:20:58 +00:00
apotris = final.callPackage ./packages/apotris { };
2024-06-06 00:11:34 +00:00
attic = final.callPackage ./packages/attic { };
attic-client = final.attic.override { clientOnly = true; };
cups-dymo-patched = final.callPackage ./packages/cups-dymo { };
2024-07-10 01:46:37 +00:00
cynthion = final.callPackage ./packages/cynthion { };
2024-07-22 23:39:31 +00:00
gbeplus = final.callPackage ./packages/gbeplus { };
2024-06-06 00:11:34 +00:00
hactoolnet = final.callPackage ./packages/hactoolnet { };
ipsw = final.callPackage ./packages/ipsw { };
jlink = final.callPackage ./packages/jlink { };
2024-07-10 04:01:10 +00:00
packetry = final.callPackage ./packages/packetry { };
2024-06-06 00:11:34 +00:00
stlink-tool = final.callPackage ./packages/stlink-tool { };
2024-08-18 00:52:35 +00:00
xwin = final.callPackage ./packages/xwin { };
2024-06-06 00:11:34 +00:00
zephyrPackages = final.callPackage ./packages/zephyr { };
2024-01-15 15:55:17 +00:00
2024-06-06 00:11:34 +00:00
inherit (final.python3.pkgs) axicli vpype;
2024-01-15 15:55:17 +00:00
2024-06-06 00:11:34 +00:00
inkscape-extensions = prev.inkscape-extensions // {
axidraw = final.callPackage ./packages/axidraw/inkscape.nix { };
};
2024-01-15 15:55:17 +00:00
2024-06-06 00:11:34 +00:00
kernelPatches = prev.kernelPatches // final.callPackage ./packages/kernelPatches { };
2024-01-15 15:55:17 +00:00
2024-06-06 00:11:34 +00:00
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
(
pythonFinal: pythonPrev:
{
pnoise = final.callPackage ./packages/pnoise { python3 = pythonFinal; };
vpype = final.callPackage ./packages/vpype { python3 = pythonFinal; };
vpype-gcode = final.callPackage ./packages/vpype-gcode { python3 = pythonFinal; };
}
// (final.callPackage ./packages/axidraw/modules.nix { python3 = pythonFinal; })
)
];
2023-12-02 00:57:07 +00:00
};
2024-06-06 00:11:34 +00:00
};
2023-11-12 01:16:34 +00:00
}