rootasrole 4.0.3

A better alternative to sudo(-rs)/su
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.93.0"
name = "rootasrole"
version = "4.0.3"
authors = ["Eddie Billoir <lechatp@outlook.fr>"]
build = false
exclude = [
    "sudoers-reader/*",
    "book/*",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "dosr"
description = "A better alternative to sudo(-rs)/su"
homepage = "https://lechatp.github.io/RootAsRole/"
readme = "README.md"
keywords = [
    "sudo",
    "capabilities",
    "rbac",
    "linux",
    "security",
]
categories = [
    "command-line-utilities",
    "os::linux-apis",
    "config",
]
license = "LGPL-3.0-or-later"
repository = "https://github.com/LeChatP/RootAsRole"

[package.metadata.clippy]
allow-unwrap-in-tests = true

[badges.maintenance]
status = "actively-maintained"

[features]
editor = [
    "dep:landlock",
    "dep:libseccomp",
    "dep:pest",
    "dep:pest_derive",
    "dep:indexmap",
    "dep:konst",
]
finder = [
    "plugins",
    "timeout",
    "pcre2",
    "glob",
    "landlock",
    "rootasrole-core/finder",
    "dep:nonstick2",
    "dep:libpam-sys",
    "dep:indexmap",
]
fuzzing = []
glob = ["rootasrole-core/glob"]
hashchecker = [
    "dep:hex",
    "dep:sha2",
]
hierarchy = []
landlock = [
    "dep:landlock",
    "dep:bitflags",
    "dep:glob",
]
pcre2 = [
    "dep:pcre2",
    "rootasrole-core/pcre2",
]
plugins = [
    "hashchecker",
    "ssd",
    "hierarchy",
]
ssd = []
timeout = []

[[bin]]
name = "chsr"
path = "src/chsr/main.rs"
required-features = ["editor"]

[[bin]]
name = "dosr"
path = "src/dosr/main.rs"
required-features = ["finder"]

[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
required-features = ["finder"]

[dependencies.bitflags]
version = ">=2.9, <2.14"
optional = true
default-features = false

[dependencies.bon]
version = "3"
default-features = false

[dependencies.capctl]
version = "0.2"
features = ["serde"]
default-features = false

[dependencies.cbor4ii]
version = "1.2"
features = [
    "serde",
    "serde1",
    "use_std",
]
default-features = false

[dependencies.const_format]
version = "0.2"
default-features = false

[dependencies.glob]
version = "0.3"
optional = true
default-features = false

[dependencies.hex]
version = "0.4"
features = ["alloc"]
optional = true
default-features = false

[dependencies.indexmap]
version = "2.14"
features = ["std"]
optional = true
default-features = false

[dependencies.jiff]
version = "0.2"
features = ["std"]
default-features = false

[dependencies.konst]
version = "0.4"
features = [
    "parsing_proc",
    "iter",
]
optional = true
default-features = false

[dependencies.landlock]
version = "0.4"
optional = true

[dependencies.libc]
version = "0.2"
features = ["std"]
default-features = false

[dependencies.libpam-sys]
version = "0.2"
optional = true
default-features = false

[dependencies.libseccomp]
version = "0.4"
optional = true

[dependencies.log]
version = "0.4"
features = ["std"]
default-features = false

[dependencies.nix]
version = ">=0.30, <0.32"
features = [
    "user",
    "process",
    "signal",
    "fs",
    "time",
]

[dependencies.nonstick2]
version = "0.1"
optional = true

[dependencies.pcre2]
version = "0.2"
optional = true
default-features = false

[dependencies.pest]
version = "2.9"
features = ["std"]
optional = true
default-features = false

[dependencies.pest_derive]
version = "2.9"
features = ["std"]
optional = true
default-features = false

[dependencies.rootasrole-core]
version = "4.0.2"

[dependencies.rootasrole-exec]
version = "4.0.2"

[dependencies.serde]
version = "1.0"
features = [
    "std",
    "rc",
    "derive",
]
default-features = false

[dependencies.serde_json]
version = "1.0"
features = ["std"]
default-features = false

[dependencies.sha2]
version = "0.11"
optional = true
default-features = false

[dependencies.shell-words]
version = "1.1"
features = ["std"]
default-features = false

[dev-dependencies.env_logger]
version = "0.11"
default-features = false

[dev-dependencies.log]
version = "0.4"
features = ["std"]
default-features = false

[dev-dependencies.test-log]
version = "0.2"
default-features = false

[lints.clippy.nursery]
level = "warn"
priority = 1

[lints.clippy.pedantic]
level = "warn"
priority = 1

[lints.clippy.should_implement_trait]
level = "allow"
priority = 2

[lints.clippy.similar_names]
level = "allow"
priority = 2

[lints.clippy.undocumented_unsafe_blocks]
level = "warn"
priority = 2

[lints.clippy.unwrap_used]
level = "deny"
priority = 2

[lints.rust]
unexpected_cfgs = "allow"

[profile.profiling]
opt-level = 1
lto = false
debug = 2
inherits = "release"
strip = "none"

[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = "symbols"