diff --git a/flake.lock b/flake.lock index b2c2de9..2713aa2 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,21 @@ { "nodes": { + "cargo-deb": { + "flake": false, + "locked": { + "lastModified": 1627137192, + "narHash": "sha256-zDAwiETJquiViEvBKMuI9WWgSGhVDscL/m1ufKJENBw=", + "owner": "mmstick", + "repo": "cargo-deb", + "rev": "f603d105b4641e00640e46b189c6ee0c8f084de2", + "type": "github" + }, + "original": { + "owner": "mmstick", + "repo": "cargo-deb", + "type": "github" + } + }, "naersk": { "inputs": { "nixpkgs": [ @@ -7,11 +23,11 @@ ] }, "locked": { - "lastModified": 1612192764, - "narHash": "sha256-7EnLtZQWP6511G1ZPA7FmJlqAr3hWsAYb24tvTvJ/ec=", + "lastModified": 1623927034, + "narHash": "sha256-sGxlmfp5eXL5sAMNqHSb04Zq6gPl+JeltIZ226OYN0w=", "owner": "nmattia", "repo": "naersk", - "rev": "6e149bfd726a8ebefa415f2d713ba6d942435abd", + "rev": "e09c320446c5c2516d430803f7b19f5833781337", "type": "github" }, "original": { @@ -22,11 +38,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1613208951, - "narHash": "sha256-pxDu+9KZBnZkMcKBqSAqw1oQwTIbxTeIwcMtygLsWio=", + "lastModified": 1627245147, + "narHash": "sha256-CQzH/4Mbhcx1HD+dtD7pZ0dHUZvX4eKN9b8Ifzz4gC4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2118cf551b9944cfdb929b8ea03556f097dd0381", + "rev": "23098f20376cd1c874af476e5d8ef9169105b020", "type": "github" }, "original": { @@ -36,6 +52,7 @@ }, "root": { "inputs": { + "cargo-deb": "cargo-deb", "naersk": "naersk", "nixpkgs": "nixpkgs", "utils": "utils" @@ -43,11 +60,11 @@ }, "utils": { "locked": { - "lastModified": 1610051610, - "narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=", + "lastModified": 1623875721, + "narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=", "owner": "numtide", "repo": "flake-utils", - "rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc", + "rev": "f7e004a55b120c02ecb6219596820fcd32ca8772", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index c9f1d05..96a886a 100644 --- a/flake.nix +++ b/flake.nix @@ -3,13 +3,17 @@ inputs = { utils.url = "github:numtide/flake-utils"; + cargo-deb = { + flake = false; + url = "github:mmstick/cargo-deb"; + }; naersk = { url = "github:nmattia/naersk"; inputs.nixpkgs.follows = "nixpkgs"; }; }; - outputs = { self, nixpkgs, utils, naersk }: + outputs = { self, nixpkgs, utils, naersk, cargo-deb }: let root = ./.; pname = (builtins.fromTOML (builtins.readFile ./Cargo.toml)).package.name; @@ -28,6 +32,45 @@ packages.${pname} = naersk-lib.buildPackage { inherit pname root buildInputs nativeBuildInputs LIBCLANG_PATH; }; + + packages."${pname}-deb" = + let + cargoDeb = naersk-lib.buildPackage { + pname = "cargo-deb"; + root = cargo-deb; + }; + pkg = packages.${pname}; + vm = pkgs.vmTools.diskImageFuns.ubuntu1804x86_64 { extraPackages = [ "cargo" "cryptsetup" "libclang-dev" "libcryptsetup-dev" ]; }; + makefile = pkgs.writeText "Makefile" " + .PHONY: install + + cargo-deb: + cargo install --debug --path cargo-deb + + install: cargo-deb + cargo-deb + mkdir -p debs + cp target/debian/*.deb debs/ + + "; + src = pkgs.runCommandLocal "${pname}-vendored" {} '' + mkdir -p $out/.cargo $out/cargo-deb/.cargo + printf '${pkg.cargoconfig}' > $out/.cargo/config.toml; + printf '${cargoDeb.cargoconfig}' > $out/cargo-deb/.cargo/config.toml; + printf '.PHONY: install\ninstall:\n\tcargo install --debug --path cargo-deb\n\tcargo-deb\n\tmkdir -p debs\n\tcp target/debian/*.deb debs/' > $out/Makefile + cp -r ${pkg.src}/. $out/ + cp -r ${cargoDeb.src}/. $out/cargo-deb/ + ''; + args = { + diskImage = vm; + inherit src; + name = pname; + buildInputs = [ ]; + meta.description = "No descr"; + }; + in + pkgs.releaseTools.debBuild args; + defaultPackage = packages.${pname}; # `nix run`