diff --git a/contrib/flake.nix b/contrib/flake.nix index a6ffc2ac1..30a087d00 100644 --- a/contrib/flake.nix +++ b/contrib/flake.nix @@ -6,125 +6,113 @@ # $ nix develop # $ nix build '.#darkfi-ircd' # $ nix run '.#darkfi-ircd' - { description = "DarkFi"; - inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-22.11"; + inputs.nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; inputs.utils.url = "github:numtide/flake-utils"; - inputs.rust-overlay.url = "github:oxalica/rust-overlay"; + inputs.crane.url = "github:ipetkov/crane"; + inputs.crane.inputs.nixpkgs.follows = "nixpkgs"; - outputs = { self, nixpkgs, utils, rust-overlay }: - utils.lib.eachDefaultSystem (system: - let - overlays = [ - (import rust-overlay) - ]; - pkgs = import nixpkgs rec { - inherit system overlays; - }; - rust-bin = pkgs.rust-bin.stable."1.66.0".default.override { - extensions = [ "rust-src" ]; - }; - buildRustPackage = (pkgs.makeRustPlatform { - cargo = rust-bin; - rustc = rust-bin; - }).buildRustPackage; - myNativeBuildInputs = with pkgs; [ - pkg-config - gnumake - cmake - clang - libclang - llvm - ]; - myBuildInputs = with pkgs; [ - expat - fontconfig - freetype - openssl - ]; - myBuildRustPackage = attrs: - buildRustPackage ({ - version = "0.3.0"; + outputs = { + self, + nixpkgs, + utils, + crane, + }: + utils.lib.eachDefaultSystem (system: let + craneLib = crane.lib.${system}; + pkgs = import nixpkgs { + inherit system; + }; + myNativeBuildInputs = with pkgs; [ + pkg-config + gnumake + cmake + clang + libclang + llvm + ]; + myBuildInputs = with pkgs; [ + expat + fontconfig + freetype + openssl + ]; + myBuildRustPackage = attrs: + craneLib.buildPackage ({ src = ../.; - cargoLock = { - lockFile = ../Cargo.lock; - outputHashes = { - "term_grid-0.2.0" = "sha256-wl4ZlFjY34xPuMpXdX1a/g9YUomKLIYp2U8r9/goti0="; - "halo2_proofs-0.2.0" = "sha256-WkDg1SgGPH9KyEAgwyl+OXrPk+w9Rd+8ZC+bbGx0Yek="; - #"dashu-0.2.0" = "sha256-gD1eb0N6sxEm6vpaQWqdodRGPvAlsPcV2Jxp63VQZZ4="; - }; - }; nativeBuildInputs = myNativeBuildInputs; buildInputs = myBuildInputs; #RUST_BACKTRACE=1; #RUST_LOG="trace"; - } // attrs); - in rec { - packages = rec { - darkfi-drk = myBuildRustPackage rec { - pname = "darkfi-drk"; - buildAndTestSubdir = "./bin/drk"; - }; - darkfi-darkfid = myBuildRustPackage rec { - pname = "darkfi-darkfid"; - buildAndTestSubdir = "./bin/darkfid"; - }; - darkfi-dnetview = myBuildRustPackage rec { - pname = "darkfi-dnetview"; - buildAndTestSubdir = "./bin/dnetview"; - }; - darkfi-ircd = myBuildRustPackage rec { - pname = "darkfi-ircd"; - buildAndTestSubdir = "./bin/ircd"; - }; - darkfi-tau = myBuildRustPackage rec { - pname = "darkfi-tau"; - buildAndTestSubdir = "./bin/tau"; - }; - darkfi-taud = myBuildRustPackage rec { - pname = "darkfi-taud"; - buildAndTestSubdir = "./bin/taud"; - }; - darkfi-zkas = myBuildRustPackage rec { - pname = "darkfi-zkas"; - buildAndTestSubdir = "./bin/zkas"; - }; - default = darkfi-drk; + } + // attrs); + in rec { + packages = rec { + darkfi-drk = myBuildRustPackage { + pname = "darkfi-drk"; + buildAndTestSubdir = "./bin/drk"; }; - defaultPackage = packages.default; # compat + darkfi-darkfid = myBuildRustPackage { + pname = "darkfi-darkfid"; + buildAndTestSubdir = "./bin/darkfid"; + }; + darkfi-dnetview = myBuildRustPackage { + pname = "darkfi-dnetview"; + buildAndTestSubdir = "./bin/dnetview"; + }; + darkfi-ircd = myBuildRustPackage { + pname = "darkfi-ircd"; + cargoExtraArgs = "--package=ircd"; + buildAndTestSubdir = "./bin/ircd"; + }; + darkfi-tau = myBuildRustPackage { + pname = "darkfi-tau"; + buildAndTestSubdir = "./bin/tau"; + }; + darkfi-taud = myBuildRustPackage { + pname = "darkfi-taud"; + buildAndTestSubdir = "./bin/taud"; + }; + darkfi-zkas = myBuildRustPackage { + pname = "darkfi-zkas"; + buildAndTestSubdir = "./bin/zkas"; + }; + default = darkfi-drk; + }; + defaultPackage = packages.default; # compat - apps = rec { - darkfi-drk = utils.lib.mkApp { - drv = packages.darkfi-drk; - exePath = "/bin/drk"; - }; - darkfi-darkfid = utils.lib.mkApp { - drv = packages.darkfi-darkfid; - exePath = "/bin/darkfid"; - }; - darkfi-dnetview = utils.lib.mkApp { - drv = packages.darkfi-dnetview; - exePath = "/bin/dnetview"; - }; - darkfi-ircd = utils.lib.mkApp { - drv = packages.darkfi-ircd; - exePath = "/bin/ircd"; - }; - darkfi-tau = utils.lib.mkApp { - drv = packages.darkfi-tau; - exePath = "/bin/tau"; - }; - darkfi-taud = utils.lib.mkApp { - drv = packages.darkfi-taud; - exePath = "/bin/taud"; - }; - darkfi-zkas = utils.lib.mkApp { - drv = packages.darkfi-zkas; - exePath = "/bin/zkas"; - }; - default = darkfi-drk; + apps = rec { + darkfi-drk = utils.lib.mkApp { + drv = packages.darkfi-drk; + exePath = "/bin/drk"; }; - }); + darkfi-darkfid = utils.lib.mkApp { + drv = packages.darkfi-darkfid; + exePath = "/bin/darkfid"; + }; + darkfi-dnetview = utils.lib.mkApp { + drv = packages.darkfi-dnetview; + exePath = "/bin/dnetview"; + }; + darkfi-ircd = utils.lib.mkApp { + drv = packages.darkfi-ircd; + exePath = "/bin/ircd"; + }; + darkfi-tau = utils.lib.mkApp { + drv = packages.darkfi-tau; + exePath = "/bin/tau"; + }; + darkfi-taud = utils.lib.mkApp { + drv = packages.darkfi-taud; + exePath = "/bin/taud"; + }; + darkfi-zkas = utils.lib.mkApp { + drv = packages.darkfi-zkas; + exePath = "/bin/zkas"; + }; + default = darkfi-drk; + }; + }); }