Bug#948471: libconfig-model-dpkg-perl: `value 'BSD~unspecified and/or CC0' does not match grammar from model` on scikit-learn/0.22.1:examples/cluster/plot_agglomerative_clustering_metrics.py

Dominique Dumont dod at debian.org
Sun Jan 12 18:23:54 GMT 2020


On Wed, 08 Jan 2020 20:00:02 -0500 Sandro Tosi <morph at debian.org> wrote:
> Error: Data extracted from source file is corrupted:
> Configuration item 'Files:"examples/cluster/plot_agglomerative_clustering_metrics.py" License short_name' has a wrong value:
>         value 'BSD~unspecified and/or CC0' does not match grammar from model
> This usually mean that cme or licensecheck (or both) have a bug. You may work-around this issue by adding an override entry in fill.copyright.blanks file. See https://github.com/dod38fr/config-model/wiki/Updating-debian-copyright-file-with-cme for instructions. Last but not least, please file a bug against libconfig-model-dpkg-perl.
> ```

This error is triggered by the "and/or" string in the license short_name. This "and/or" is produced by licensecheck (used by cme when updating copyright data). 

Since libconfig-model-dpkg-perl 2.124 (released in July 2019),  cme contains code to replace 'and/or' with plain 'or' so the resulting license short name complies with debian copyright format.

If possible, please upgrade  libconfig-model-dpkg-perl.

I've tried 'cme update dpkg-copyright' on scikit-learn commit debian~2 and the update finishes, but the result is not correct.


First,  licensecheck does not parse correctly the files containing this style of license specification:
 # License: BSD 3 clause

licensecheck should produce 'BSD (3 clause)' instead of 'BSD (unspecified)'

Second, "licensecheck --encoding utf8" exits on error when parsing binary files (png files in this case):

$ licensecheck --encoding utf8 --copyright --machine --deb-fmt --recursive .
[snip]
./whats_new/v0.21.rst   UNKNOWN *No copyright*
./whats_new/v0.22.rst   UNKNOWN *No copyright*
utf8 "\xFF" does not map to Unicode at /usr/share/licensecheck/App/Licensecheck.pm line 358.
$ echo $?
130

Unfortunately, cme does not detect this error so the entries not parsed by licensecheck are missing. I'm going to fix this bug so cme also exit on error when licensecheck fails.

Jonas, can you check what's going on with licensecheck ?

All the best

Dod



More information about the pkg-perl-maintainers mailing list