Build musl static binaries & update dependencies #15

Merged
Armael merged 2 commits from Armael/tricot:musl into main 2024-11-09 20:32:27 +00:00
4 changed files with 2375 additions and 1352 deletions
Showing only changes of commit d20f819582 - Show all commits

1204
Cargo.lock generated

File diff suppressed because it is too large Load diff

2405
Cargo.nix

File diff suppressed because it is too large Load diff

View file

@ -10,17 +10,17 @@
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1666087781, "lastModified": 1713199118,
"narHash": "sha256-trKVdjMZ8mNkGfLcY5LsJJGtdV3xJDZnMVrkFjErlcs=", "narHash": "sha256-MlLdAvk+zXCFUy280sY6LqtykqWXIkKVXo72J7a6HlU=",
"owner": "Alexis211", "owner": "cargo2nix",
"repo": "cargo2nix", "repo": "cargo2nix",
"rev": "a7a61179b66054904ef6a195d8da736eaaa06c36", "rev": "1efb03f2f794ad5eed17e807e858c4da001dbc3e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "Alexis211", "owner": "cargo2nix",
"repo": "cargo2nix", "repo": "cargo2nix",
"rev": "a7a61179b66054904ef6a195d8da736eaaa06c36", "rev": "1efb03f2f794ad5eed17e807e858c4da001dbc3e",
"type": "github" "type": "github"
} }
}, },
@ -55,93 +55,47 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_2": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1696234590, "lastModified": 1731094700,
"narHash": "sha256-mgOzQYTvaTT4bFopVOadlndy2RPwLy60rDjIWOGujwo=", "narHash": "sha256-lSiVjHP7sgnCt2hZabnq+tCLmBerDKmAdd2CS6BrBjw=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "f902cb49892d300ff15cb237e48aa1cad79d68c3", "rev": "551ba0fa7653afb9d590db225c3bcbccf68931c0",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1665657542,
"narHash": "sha256-mojxNyzbvmp8NtVtxqiHGhRfjCALLfk9i/Uup68Y5q8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a3073c49bc0163fea6a121c276f526837672b555",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a3073c49bc0163fea6a121c276f526837672b555", "rev": "551ba0fa7653afb9d590db225c3bcbccf68931c0",
"type": "github" "type": "github"
} }
}, },
"root": { "root": {
"inputs": { "inputs": {
"cargo2nix": "cargo2nix", "cargo2nix": "cargo2nix",
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs"
} }
}, },
"rust-overlay": { "rust-overlay": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_2", "nixpkgs": [
"nixpkgs": "nixpkgs" "cargo2nix",
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1682389182, "lastModified": 1731032894,
"narHash": "sha256-8t2nmFnH+8V48+IJsf8AK51ebXNlVbOSVYOpiqJKvJE=", "narHash": "sha256-dQSyYPmrQiPr+PGEd+K8038rubFGz7G/dNXVeaGWE0w=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "74f1a64dd28faeeb85ef081f32cad2989850322c", "rev": "d52f2a4c103a0acf09ded857b9e2519ae2360e59",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"type": "github" "rev": "d52f2a4c103a0acf09ded857b9e2519ae2360e59",
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github" "type": "github"
} }
} }

View file

@ -1,31 +1,43 @@
{ {
description = "A very basic flake"; description = "Tricot, a reverse proxy with consul integration";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/a3073c49bc0163fea6a121c276f526837672b555"; # Nixpkgs 24.05 as of 2024-11-08, has rustc v1.77.2
inputs.nixpkgs.url =
"github:NixOS/nixpkgs/551ba0fa7653afb9d590db225c3bcbccf68931c0";
inputs.cargo2nix = { inputs.cargo2nix = {
# As of 2022-10-18: two small patches over unstable branch, one for clippy and one to fix feature detection # cargo2nix as of 2024-04-25
url = "github:Alexis211/cargo2nix/a7a61179b66054904ef6a195d8da736eaaa06c36"; # NB: upgrading to a more recent commit of cargo2nix will not work (as of 2024-11-08),
# because the patch making openssl-sys cross-compilation work has been reverted.
# (patch: https://github.com/cargo2nix/cargo2nix/pull/237,
# revert: https://github.com/cargo2nix/cargo2nix/commit/cfd086deb565314f3a11b5bb25807a3ce17315d4)
url = "github:cargo2nix/cargo2nix/1efb03f2f794ad5eed17e807e858c4da001dbc3e";
# Rust overlay as of 2023-04-25 # Rust overlay as of 2024-11-08
inputs.rust-overlay.url = inputs.rust-overlay.url =
"github:oxalica/rust-overlay/74f1a64dd28faeeb85ef081f32cad2989850322c"; "github:oxalica/rust-overlay/d52f2a4c103a0acf09ded857b9e2519ae2360e59";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = { self, nixpkgs, cargo2nix }: outputs = { self, nixpkgs, cargo2nix }:
let let
targetHost = "x86_64-unknown-linux-musl";
pkgs = import nixpkgs { pkgs = import nixpkgs {
system = "x86_64-linux"; system = "x86_64-linux";
crossSystem = {
config = targetHost;
isStatic = true;
};
overlays = [ cargo2nix.overlays.default ]; overlays = [ cargo2nix.overlays.default ];
}; };
packageFun = import ./Cargo.nix; packageFun = import ./Cargo.nix;
rustVersion = "1.68.0"; rustVersion = "1.77.2";
compile = args: compileMode: compile = args: compileMode:
let let
packageSet = pkgs.rustBuilder.makePackageSet ({ packageSet = pkgs.rustBuilder.makePackageSet ({
inherit packageFun rustVersion; inherit packageFun rustVersion;
target = targetHost;
} // args); } // args);
in in
packageSet.workspace.tricot { packageSet.workspace.tricot {
@ -37,5 +49,13 @@
debug.x86_64-linux.tricot = compile { release = false; } "build"; debug.x86_64-linux.tricot = compile { release = false; } "build";
packages.x86_64-linux.tricot = compile { release = true; } "build"; packages.x86_64-linux.tricot = compile { release = true; } "build";
packages.x86_64-linux.default = self.packages.x86_64-linux.tricot; packages.x86_64-linux.default = self.packages.x86_64-linux.tricot;
docker = pkgs.dockerTools.buildImage {
name = "tricot";
config = {
contents = [ pkgs.cacert ];
Cmd = [ "${self.packages.x86_64-linux.default}/bin/tricot" ];
};
};
}; };
} }