aboutsummaryrefslogtreecommitdiffstats
path: root/flake.nix
blob: b8f9ce58d01f413fd2c6ca8dbfe47c6674e3b6b8 (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
37
38
39
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.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;
          }) { };
      });
}