slint-ui/slint · error
No license info for " " available
Error message
No license info for "{}" available What it means
While parsing `reuse spdx` output, the `insert` helper rejects a file entry that has an empty license list — i.e. the REUSE tool reported the file with no license information at all. The bail names the file so the gap can be fixed.
Solutions
- Add SPDX-License-Identifier and copyright headers to the named file, or a `.reuse/<name>.license` companion file
- Add an entry for the file to `.reuse/dep5`
- Re-run `reuse spdx` to confirm the file now reports a license before running the xtask check
Example fix
// before: image.png with no licensing info // after: add image.png.license containing: // Copyright © 2026 Author // SPDX-License-Identifier: MIT
Defensive patterns
Strategy: validation
Validate before calling
reuse spdx | grep -i "$FILE" # confirm the file reports license(s)
Prevention
- Annotate every tracked file, including assets, with license info
- Use .reuse/dep5 for files that cannot carry headers
- Re-run reuse spdx after mass renames or file additions
When it happens
Trigger: A file in the repository is tracked by reuse but carries no license tags at all (no SPDX identifier, no dep5 coverage), so its license vector is empty when building the BTreeMap.
Common situations: Binary/generated files added without a `.license` companion file or dep5 entry; files matched by reuse's parser but not annotated; ignoring rules in .reuse that skip annotation checks.
Understand the failure class
Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.
Related errors
- License ` ` of crate is not in the accepted list
- LICENSE symlink " " is not necessary
- Missing LICENSES directory for published crate
- Missing tag
- No license file found in root LICENSES/ for SPDX id
AI-assisted analysis of slint-ui/slint@bb937076de (2026-09-16).
Data as JSON: /api/errors/9ddc04027e5b3715.
Report an issue: GitHub.
Appendix: source
Thrown at xtask/src/reuse_compliance_check.rs:48
if !output.status.success() {
let stdout = String::from_utf8(output.stdout)?;
println!("{stdout}");
anyhow::bail!("Project is not reuse compliant!");
}
Ok(())
}
fn parse_spdx_data(sh: &Shell, reuse: &Path) -> Result<BTreeMap<PathBuf, Vec<String>>> {
let output = cmd(sh, reuse, &["spdx"])?.read()?;
let mut current_filename = String::new();
let mut licenses = Vec::new();
let mut result = BTreeMap::new();
fn insert(v: &mut BTreeMap<PathBuf, Vec<String>>, f: &str, l: Vec<String>) -> Result<()> {
if l.is_empty() {
anyhow::bail!("No license info for \"{}\" available", f);
}
v.insert(PathBuf::from(f), l);
Ok(())
}
for line in output.lines() {
if line.starts_with("FileName: ") {
if !current_filename.is_empty() {
insert(&mut result, ¤t_filename, licenses)?;
licenses = Vec::new();
}
if let Some(stripped) = line.strip_prefix("FileName: ") {
current_filename = stripped.into();
}
} else if line.starts_with("LicenseInfoInFile: ")
&& let Some(stripped) = line.strip_prefix("LicenseInfoInFile: ")
{View on GitHub (pinned to bb937076de)