]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - flake.nix
Update bcachefs sources to f638850417 bcachefs: bch2_trans_log_msg()
[bcachefs-tools-debian] / flake.nix
index 36dda0ec8479272b81c0004c3bf40452260e4948..b52bc7e5c3b92306f92af6706d362a96774e05db 100644 (file)
--- a/flake.nix
+++ b/flake.nix
                        version = "${builtins.substring 0 8 self.lastModifiedDate}-${self.shortRev or "dirty"}";
 
                        overlay = import ./nix/overlay.nix inputs;
+                       nixosModule = self.nixosModules.bcachefs;
+                       nixosModules.bcachefs = import ./rust-src/mount/module.nix;
+                       nixosModules.bcachefs-enable-boot = ({config, pkgs, lib, ... }:{
+                               # Disable Upstream NixOS Module when this is in use
+                               disabledModules = [ "tasks/filesystems/bcachefs.nix" ];
+                               # Import needed packages
+                               nixpkgs.overlays = [ self.overlay ];
+
+                               # Add bcachefs to boot and kernel
+                               boot.initrd.supportedFilesystems = [ "bcachefs" ];
+                               boot.supportedFilesystems = [ "bcachefs" ];
+                       });
+
+                       nixosConfigurations.netboot-bcachefs = self.systems.netboot-bcachefs "x86_64-linux";
+                       systems.netboot-bcachefs = system: (nixpkgs.lib.nixosSystem { 
+                                       inherit system; modules = [
+                                               self.nixosModule 
+                                               self.nixosModules.bcachefs-enable-boot
+                                               ("${nixpkgs}/nixos/modules/installer/netboot/netboot-minimal.nix")
+                                               ({ lib, pkgs, config, ... }: {
+                                                       # installation disk autologin
+                                                       services.getty.autologinUser = lib.mkForce "root";
+                                                       users.users.root.initialPassword = "toor";
+                                                       
+                                                       # Symlink everything together
+                                                       system.build.netboot = pkgs.symlinkJoin {
+                                                               name = "netboot";
+                                                               paths = with config.system.build; [
+                                                                       netbootRamdisk
+                                                                       kernel
+                                                                       netbootIpxeScript
+                                                               ];
+                                                               preferLocalBuild = true;
+                                                       };
+                                               })
+                                       ]; 
+                               });
                }
                // utils.lib.eachSystem supportedSystems (system: 
                let pkgs = import nixpkgs { 
                                        tools
                                        toolsValgrind
                                        toolsDebug
+                                       mount
+                                       bch_bindgen
                                        kernel;
 
-                               musl-tools = pkgs.pkgsMusl.bcachefs.tools;
-                               musl-mount = pkgs.pkgsMusl.bcachefs.mount;
+                               tools-musl = pkgs.pkgsMusl.bcachefs.tools;
+                               mount-musl = pkgs.pkgsMusl.bcachefs.mount;
                        };
 
                        checks = { 
                                kernelSrc = packages.kernel.src;
                                inherit (packages) 
+                                       mount
+                                       bch_bindgen
                                        toolsValgrind;
+
+                               # Build and test initrd with bcachefs and bcachefs.mount installed
+                               # Disabled Test because it takes a while to build the kernel
+                               # bootStage1Module = self.nixosConfigurations.netboot-bcachefs.config.system.build.bootStage1;
                        };
 
                        devShell = devShells.tools;
                        devShells.tools = pkgs.bcachefs.tools.override { inShell = true; };
+                       devShells.mount = pkgs.bcachefs.mount.override { inShell = true; };
                });
 }