X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=flake.nix;h=b8f9ce58d01f413fd2c6ca8dbfe47c6674e3b6b8;hb=HEAD;hp=35015fb71d046c3fece74b56ebcf397ad359a177;hpb=c229fa707544449f266022644782b951a8d204d9;p=bcachefs-tools-debian diff --git a/flake.nix b/flake.nix index 35015fb..b8f9ce5 100644 --- a/flake.nix +++ b/flake.nix @@ -1,92 +1,40 @@ { - description = "Userspace tools for bcachefs"; - - # Nixpkgs / NixOS version to use. - inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - inputs.utils.url = "github:numtide/flake-utils"; - inputs.filter.url = "github:numtide/nix-filter"; - - outputs = { self, nixpkgs, utils, filter, ... }@inputs: - let - # System types to support. - supportedSystems = [ "x86_64-linux" ]; - in - { - 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 { - inherit system; - overlays = [ self.overlay ]; - }; - in rec { - - # A Nixpkgs overlay. - - # Provide some binary packages for selected system types. - defaultPackage = pkgs.bcachefs.tools; - packages = { - inherit (pkgs.bcachefs) - tools - toolsValgrind - toolsDebug - mount - bch_bindgen - kernel; - - tools-musl = pkgs.pkgsMusl.bcachefs.tools; - mount-musl = pkgs.pkgsMusl.bcachefs.mount; - }; - - checks = { - kernelSrc = packages.kernel.src; - inherit (packages) - mount - bch_bindgen - toolsValgrind; - }; - - devShell = devShells.tools; - devShells.tools = pkgs.bcachefs.tools.override { inShell = true; }; - devShells.mount = pkgs.bcachefs.mount.override { inShell = true; }; - }); + description = "Userspace tools for bcachefs"; + + # Nixpkgs / NixOS version to use. + inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + inputs.utils.url = "github:numtide/flake-utils"; + inputs.flake-compat = { + url = "github:edolstra/flake-compat"; + flake = false; + }; + + outputs = { self, nixpkgs, utils, ... }: + { + overlays.default = final: prev: { + bcachefs = final.callPackage ./build.nix { }; + }; + } // utils.lib.eachDefaultSystem (system: + let + pkgs = import nixpkgs { + inherit system; + overlays = [ self.overlays.default ]; + }; + in { + packages = { + inherit (pkgs) bcachefs; + bcachefs-fuse = pkgs.bcachefs.override { fuseSupport = true; }; + default = pkgs.bcachefs; + }; + + formatter = pkgs.nixfmt; + + devShells.default = pkgs.callPackage ({ mkShell, rustc, cargo, gnumake + , gcc, clang, pkg-config, libuuid, libsodium, keyutils, liburcu, zlib + , libaio, zstd, lz4, udev, bcachefs }: + mkShell { + LIBCLANG_PATH = "${clang.cc.lib}/lib"; + inherit (bcachefs) nativeBuildInputs buildInputs; + }) { }; + }); }