lix-installer/Cargo.toml
Artemis Tosini e8a1fcf537
Support downloading nix from substituters
Currently lix-installer requires a lix distribution tarball
downloaded over HTTP or on the system, meaning releases
require manual effort to place files in the correct place.

Add an option to download lix instead from standard nix substituters,
such as cache.nixos.org and cache.lix.systems.
Priority and nar parsing code do not exactly match lix,
but are sufficient to securely download and install nars.

Co-authored-by: Skye <me@skye-c.at>
Change-Id: Ia8a771ad2a99ac461cf5839a52e45f9dca65f3c8
2024-07-19 20:19:58 +00:00

77 lines
4 KiB
TOML

[package]
name = "lix-installer"
description = "The Determinate Nix Installer"
version = "0.17.1"
edition = "2021"
resolver = "2"
license = "LGPL-2.1"
repository = "https://git.lix.systems/lix-project/lix-installer"
documentation = "https://docs.rs/lix-installer/latest/lix_installer"
[package.metadata.riff.targets.aarch64-apple-darwin]
build-inputs = ["darwin.apple_sdk.frameworks.Security"]
[package.metadata.riff.targets.x86_64-apple-darwin]
build-inputs = ["darwin.apple_sdk.frameworks.Security"]
[features]
default = ["cli"]
cli = ["eyre", "color-eyre", "clap", "tracing-subscriber", "tracing-error"]
[[bin]]
name = "lix-installer"
required-features = [ "cli" ]
[dependencies]
async-trait = { version = "0.1.57", default-features = false }
bytes = { version = "1.2.1", default-features = false, features = ["std", "serde"] }
clap = { version = "4", features = ["std", "color", "usage", "help", "error-context", "suggestions", "derive", "env"], optional = true }
color-eyre = { version = "0.6.2", default-features = false, features = [ "track-caller", "issue-url", "tracing-error", "capture-spantrace", "color-spantrace" ], optional = true }
eyre = { version = "0.6.8", default-features = false, features = [ "track-caller" ], optional = true }
glob = { version = "0.3.0", default-features = false }
nix = { version = "0.28.0", default-features = false, features = ["user", "fs", "process", "term"] }
owo-colors = { version = "4.0.0", default-features = false, features = [ "supports-colors" ] }
reqwest = { version = "0.12.5", default-features = false, features = ["rustls-tls-native-roots", "stream", "socks", "zstd"] }
serde = { version = "1.0.144", default-features = false, features = [ "std", "derive" ] }
serde_json = { version = "1.0.85", default-features = false, features = [ "std" ] }
serde_with = { version = "3", default-features = false, features = [ "std", "macros" ] }
tar = { version = "0.4.38", default-features = false, features = [ "xattr" ] }
target-lexicon = { version = "0.12.4", default-features = false, features = [ "std" ] }
thiserror = { version = "1.0.33", default-features = false }
tokio = { version = "1.21.0", default-features = false, features = ["time", "io-std", "process", "fs", "signal", "tracing", "rt-multi-thread", "macros", "io-util", "parking_lot" ] }
tracing = { version = "0.1.36", default-features = false, features = [ "std", "attributes" ] }
tracing-error = { version = "0.2.0", default-features = false, optional = true, features = ["traced-error"] }
tracing-subscriber = { version = "0.3.15", default-features = false, features = [ "std", "registry", "fmt", "json", "ansi", "env-filter" ], optional = true }
url = { version = "2.3.1", default-features = false, features = ["serde"] }
xz2 = { version = "0.1.7", default-features = false, features = ["static", "tokio"] }
plist = { version = "1.3.1", default-features = false, features = [ "serde" ]}
dirs = { version = "5.0.0", default-features = false }
typetag = { version = "0.2.3", default-features = false }
dyn-clone = { version = "1.0.9", default-features = false }
rand = { version = "0.8.5", default-features = false, features = [ "std", "std_rng" ] }
semver = { version = "1.0.14", default-features = false, features = ["serde", "std"] }
term = { version = "0.7.0", default-features = false }
uuid = { version = "1.2.2", features = ["serde"] }
os-release = { version = "0.1.0", default-features = false }
is_ci = { version = "1.1.1", default-features = false, optional = true }
strum = { version = "0.26.1", features = ["derive"] }
nix-config-parser = { version = "0.2", features = ["serde"] }
which = "6.0.0"
sysctl = "0.5.4"
walkdir = "2.3.3"
indexmap = { version = "2.0.2", features = ["serde"] }
nix-nar = "0.3.0"
zstd = { version = "0.13.2", default-features = false }
sha2 = "0.10.8"
ed25519-dalek = { version = "2.1.1", features = ["serde"] }
base64 = "0.22.1"
[dev-dependencies]
eyre = { version = "0.6.8", default-features = false, features = [ "track-caller" ] }
tempfile = "3.3.0"
[profile.release]
strip = true # Automatically strip symbols from the binary.
opt-level = "z" # Optimize for size.
lto = true