# util-linux (uutils) # * see the repository LICENSE, README, and CONTRIBUTING files for more information # spell-checker:ignore (libs) bigdecimal datetime fundu gethostid kqueue libselinux mangen memmap procfs uuhelp [package] name = "util-linux" version = "0.0.1" authors = ["uutils developers"] license = "MIT" description = "util-linux ~ GNU util-linux (updated); implemented as universal (cross-platform) utils, written in Rust" default-run = "util-linux" homepage = "https://github.com/uutils/util-linux" repository = "https://github.com/uutils/util-linux" readme = "README.md" keywords = ["util-linux", "uutils", "cross-platform", "cli", "utility"] categories = ["command-line-utilities"] rust-version = "1.70.0" edition = "2021" build = "build.rs" [features] default = ["feat_common_core"] ## OS feature shortcodes nightly = [] test_unimplemented = [] # * only build `uudoc` when `--feature uudoc` is activated ## features # "feat_acl" == enable support for ACLs (access control lists; by using`--features feat_acl`) # NOTE: # * On linux, the posix-acl/acl-sys crate requires `libacl` headers and shared library to be accessible in the C toolchain at compile time. # * On FreeBSD and macOS this is not required. ## ## feature sets ## (common/core and Tier1) feature sets # "feat_common_core" == baseline core set of utilities which can be built/run on most targets feat_common_core = [ "uu_pwdx", "uu_renice", "uu_lscpu", ] [workspace.dependencies] bigdecimal = "0.4" binary-heap-plus = "0.5.0" bstr = "1.9" bytecount = "0.6.7" byteorder = "1.5.0" chrono = { version = "^0.4.31", default-features = false, features = [ "std", "alloc", "clock", ] } clap = { version = "4.4", features = ["wrap_help", "cargo"] } clap_complete = "4.4" clap_mangen = "0.2" compare = "0.1.0" coz = { version = "0.1.3" } crossterm = ">=0.27.0" ctrlc = { version = "3.4", features = ["termination"] } exacl = "0.11.0" file_diff = "1.0.0" filetime = "0.2" fnv = "1.0.7" fs_extra = "1.3.0" fts-sys = "0.2" fundu = "2.0.0" gcd = "2.3" glob = "0.3.1" half = "2.3" hostname = "0.3" indicatif = "0.17" itertools = "0.12.0" libc = "0.2.152" lscolors = { version = "0.16.0", default-features = false, features = [ "gnu_legacy", ] } memchr = "2" memmap2 = "0.9" nix = { version = "0.27", default-features = false } nom = "7.1.3" notify = { version = "=6.0.1", features = ["macos_kqueue"] } num-bigint = "0.4.4" num-traits = "0.2.17" number_prefix = "0.4" once_cell = "1.19.0" onig = { version = "~6.4", default-features = false } parse_datetime = "0.5.0" phf = "0.11.2" phf_codegen = "0.11.2" platform-info = "2.0.2" quick-error = "2.0.1" rand = { version = "0.8", features = ["small_rng"] } rand_core = "0.6" rayon = "1.8" redox_syscall = "0.4" regex = "1.10.2" rstest = "0.18.2" rust-ini = "0.19.0" same-file = "1.0.6" self_cell = "1.0.3" selinux = "0.4" signal-hook = "0.3.17" smallvec = { version = "1.11", features = ["union"] } tempfile = "3.9.0" uutils_term_grid = "0.3" terminal_size = "0.3.0" textwrap = { version = "0.16.0", features = ["terminal_size"] } thiserror = "1.0" time = { version = "0.3" } unicode-segmentation = "1.10.1" unicode-width = "0.1.11" utf-8 = "0.7.6" walkdir = "2.4" winapi-util = "0.1.6" windows-sys = { version = "0.48.0", default-features = false } xattr = "1.2.0" zip = { version = "0.6.6", default-features = false, features = ["deflate"] } sysinfo = "0.30" hex = "0.4.3" md-5 = "0.10.6" sha1 = "0.10.6" sha2 = "0.10.8" sha3 = "0.10.8" blake2b_simd = "1.0.2" blake3 = "1.5.0" sm3 = "0.4.2" digest = "0.10.7" [dependencies] clap = { workspace = true } once_cell = { workspace = true } clap_complete = { workspace = true } clap_mangen = { workspace = true } phf = { workspace = true } selinux = { workspace = true, optional = true } textwrap = { workspace = true } zip = { workspace = true, optional = true } # uu_pwdx = { optional = true, version = "0.0.1", package = "uu_pwdx", path = "src/uu/pwdx" } uu_lscpu = { optional = true, version = "0.0.1", package = "uu_lscpu", path = "src/uu/lscpu" } uu_renice = { optional = true, version = "0.0.1", package = "uu_renice", path = "src/uu/renice" } uu_mountpoint = { optional = true, version = "0.0.1", package = "uu_mountpoint", path = "src/uu/mountpoint" } # this breaks clippy linting with: "tests/by-util/test_factor_benches.rs: No such file or directory (os error 2)" # factor_benches = { optional = true, version = "0.0.0", package = "uu_factor_benches", path = "tests/benches/factor" } # # * pinned transitive dependencies # Not needed for now. Keep as examples: #pin_cc = { version="1.0.61, < 1.0.62", package="cc" } ## cc v1.0.62 has compiler errors for MinRustV v1.32.0, requires 1.34 (for `std::str::split_ascii_whitespace()`) [dev-dependencies] chrono = { workspace = true } conv = "0.3" filetime = { workspace = true } glob = { workspace = true } libc = { workspace = true } pretty_assertions = "1" rand = { workspace = true } regex = { workspace = true } sha1 = { version = "0.10", features = ["std"] } tempfile = { workspace = true } time = { workspace = true, features = ["local-offset"] } unindent = "0.2" walkdir = { workspace = true } hex-literal = "0.4.1" rstest = { workspace = true } [target.'cfg(any(target_os = "linux", target_os = "android"))'.dev-dependencies] procfs = { version = "0.16", default-features = false } rlimit = "0.10.1" [target.'cfg(unix)'.dev-dependencies] nix = { workspace = true, features = ["process", "signal", "user"] } rand_pcg = "0.3" [build-dependencies] phf_codegen = { workspace = true } [[bin]] name = "util-linux" path = "src/bin/util-linux.rs" [[bin]] name = "uudoc" path = "src/bin/uudoc.rs" required-features = ["uudoc"] # The default release profile. It contains all optimizations, without # sacrificing debug info. With this profile (like in the standard # release profile), the debug info and the stack traces will still be available. [profile.release] lto = true # A release-like profile that is tuned to be fast, even when being fast # compromises on binary size. This includes aborting on panic. [profile.release-fast] inherits = "release" panic = "abort" # A release-like profile that is as small as possible. [profile.release-small] inherits = "release" opt-level = "z" panic = "abort" strip = true