Cargo allows license-file = "../LICENSE" in Cargo.toml, but it does not include such out-of-tree files in the package when publishing. This leads to creation of .crate files on crates-io that have no licensing information.
For example:
https://github.com/PsichiX/Oxygengine/blob/2022ae7d9d1d95929527d34101fd2af8bd2405f3/oxygengine-ignite/Cargo.toml
crates-io shows "License: non-standard" https://crates.io/crates/oxygengine-ignite/0.6.0
and there's no LICENSE file in the crate tarball on crates-io.
There's a similar issue #3537 about enforcing inclusion of a license file in general. This is a more specific case where Cargo allows omission of license property believing that license-file provides that information instead, but fails to preserve that file.
READMEs are also affected by out-of-tree paths #5911, but they're uploaded separately to crates-io, at least they're not completely lost.
Cargo allows
license-file = "../LICENSE"inCargo.toml, but it does not include such out-of-tree files in the package when publishing. This leads to creation of.cratefiles on crates-io that have no licensing information.For example:
https://github.com/PsichiX/Oxygengine/blob/2022ae7d9d1d95929527d34101fd2af8bd2405f3/oxygengine-ignite/Cargo.toml
crates-io shows "License: non-standard" https://crates.io/crates/oxygengine-ignite/0.6.0
and there's no LICENSE file in the crate tarball on crates-io.
There's a similar issue #3537 about enforcing inclusion of a license file in general. This is a more specific case where Cargo allows omission of
licenseproperty believing thatlicense-fileprovides that information instead, but fails to preserve that file.READMEs are also affected by out-of-tree paths #5911, but they're uploaded separately to crates-io, at least they're not completely lost.