aboutsummaryrefslogtreecommitdiff
path: root/flake.nix
blob: 3c3f16fd3df376fbb7a4834d950c430d00210c3b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{
	description = "Yerba Linux";

	inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";

	outputs = { self, nixpkgs }: let
		system = "x86_64-linux";
		pkgs = nixpkgs.legacyPackages.${system};
		pkgsStatic = nixpkgs.legacyPackages.${system}.pkgsStatic;
		pkgsMusl = nixpkgs.legacyPackages.${system}.pkgsMusl;
	in {
		devShells.${system}.default = pkgs.mkShell {
			buildInputs = with pkgs; [ gcc clang gnumake xorriso cpio ];
		};

		packages.${system} = {
			kernel = pkgs.callPackage ./nix/kernel.nix {};
			busybox = pkgs.callPackage ./nix/busybox.nix {
				inherit (pkgs) pkgsStatic;
			};
			runit = pkgsStatic.runit;
			limine = pkgs.callPackage ./nix/limine.nix {};
			initramfs = pkgs.callPackage ./nix/initramfs.nix {
				inherit (self.packages.${system}) kernel busybox;
			};
			rootfs = pkgs.callPackage ./nix/rootfs.nix {
				inherit (self.packages.${system}) busybox runit;
				inherit (pkgsMusl) musl;
			};
			iso = pkgs.callPackage ./nix/iso.nix {
				inherit (self.packages.${system}) kernel limine initramfs rootfs;
			};
			default = self.packages.${system}.iso;
		};
	};
}