1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
[]
= "stuffr-cli"
= true
= "The stuffr command line interface"
= true
= true
# Not the workspace's MIT alone: `compat` ports code from bzip2.c and
# bzip2recover.c, whose licence ships as LICENSE-bzip2, and from Apple's
# (FreeBSD's, NetBSD's) gzip.c and its decoders, whose notices ship as
# LICENSE-gzip-bsd: BSD-2-Clause for all but zuncompress.c (the Regents
# of the University of California's BSD-3-Clause), which the `.Z` reader
# ports. SPDX deprecated `BSD-2-Clause-NetBSD` and `-FreeBSD` for
# `BSD-2-Clause`, whose text they share.
# One caveat: the Lzd notice in unlz.c is BSD-style but not word for word the
# SPDX BSD-2-Clause text; the full notice ships in LICENSE-gzip-bsd.
# The xz family ports XZ Utils 5.8.4's `src/xz/` (0BSD), whose licence
# ships as LICENSE-xz.
= "MIT AND bzip2-1.0.6 AND BSD-2-Clause AND BSD-3-Clause AND 0BSD"
= true
= ["compression", "archive", "cli", "unzip", "extract"]
= ["command-line-utilities", "compression"]
= "README.md"
[[]]
= "stuffr"
= "src/main.rs"
# The binary's docs would land in `target/doc/stuffr/`, the facade library's
# directory: a filename collision that rustdoc warned about and, on CI
# 38291091507, raced into an I/O error. The library docs are the ones wanted.
= false
# Passthroughs to the facade, and they exist for one reason: `cargo install
# stuffr-cli --features <x>` is what the documentation tells a user to type,
# and Cargo resolves `<x>` against THIS package, not against its dependency.
# Until Phase 3b's fix wave there was no `[features]` section here at all, so
# every documented install command failed with "the package 'stuffr-cli' does
# not contain this feature" — `--features c-backed` had shipped that way since
# before `legacy` existed, printed as a copyable line in both READMEs. The only
# working spelling was `--features stuffr/legacy`, which appeared nowhere.
#
# One entry per name any document tells a user to install with: the two build
# tiers, the `legacy` bundle, `full`, and the three legacy formats the README
# names individually. `cargo install stuffr-cli` on its own still gets the
# facade's own `default = ["pure"]` — nothing here is a default, so adding a
# feature never silently changes what a plain install builds.
# `documented_install_commands_name_features_this_crate_declares` in
# `tests/cli.rs` fails the build if a README grows a `--features` spelling this
# table does not carry.
[]
= ["stuffr/pure"]
# `zlib-c` is a passthrough so this crate's own `cfg(feature = "zlib-c")` and
# its integration tests can see it; `c-backed` implies it, and `full` names
# `c-backed` itself — `stuffr/full` alone would turn on stuffr's `zlib-c` but
# not this crate's, and the byte suite would silently run the compatible tier.
= ["stuffr/c-backed", "zlib-c", "xz-c"]
= ["stuffr/zlib-c"]
# The Apple gzip personality's `unxz` runs over liblzma itself on the C
# tier (`stuffr::xz_stream`), as Apple's does; elsewhere over the
# registry's xz decoder.
= ["stuffr/xz-c"]
= ["stuffr/legacy"]
= ["stuffr/full", "c-backed"]
= ["stuffr/lha"]
= ["stuffr/arj"]
= ["stuffr/compress"]
= ["stuffr/arc"]
= ["stuffr/zoo"]
# Note the absence of `default-features = false` here: this edge always
# requests `stuffr`'s own `default` feature set (`pure` and, since the commit
# that added `legacy` to it, `legacy` too) regardless of any
# `--no-default-features`/`--features` passed to `stuffr-cli` itself —
# `stuffr-cli` declares no `[features] default` of its own for that flag to
# disable. Verified directly: `cargo build -p stuffr-cli
# --no-default-features` (no `--features` at all) still ships `lha`, `arj`
# and `compress` in `stuffr formats`. Consequence: there is no CLI-flag-only
# way to build the `stuffr` binary without `legacy` any more — see the dead
# projection this made in `crates/stuffr-cli/tests/cli.rs`.
[]
= { = "../stuffr", = "0.13.0", = ["serde"] }
= { = true }
= "1"
# The gzip compatibility family's member layer: raw deflate/inflate and CRC32.
# Already in every build's graph through stuffr-formats; the backend is never
# changed here (no zlib/zlib-ng/zlib-rs feature anywhere).
= { = true }
# The bzip2 compatibility mode restores `SIGPIPE`'s default action, so a
# closed pipe ends it the way it ends bzip2. Already in the lock (a
# transitive dependency, and this crate's own unix dev-dependency).
[]
= "0.2"
[]
# The same facade with `testing` on, for `stuffr::testing::COMPAT_NAMES`: a
# unit test holds the fuzz target's name table to `compat::names()`.
= { = "../stuffr", = ["testing"] }
# Fixture builders for the `list`/`test` integration tests: real tar and
# real gzip, independent of `stuffr-formats`' own `Tar`/gzip implementations,
# so a read-side bug there cannot also hide in the fixture that exercises it.
= { = true }
# `compat_harness` opens a pseudo-terminal with `openpty` so a differential
# case can make stdin or stdout a tty. `libc` is already in the lock (a
# transitive dependency), so this adds a manifest edge, not a new crate.
[]
= "0.2"