Skip to content

Cargo allows invalid paths in license-file property, makes packages without identifiable license #7830

Closed
@kornelski

Description

@kornelski

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions