@@ -516,17 +516,23 @@ def validate(licenses, verbose=False, no_dupe_urls=False):
516516 errors = defaultdict (list )
517517
518518 # used for global dedupe of texts
519- by_spdx_key = defaultdict (list )
519+ by_spdx_key_lowered = defaultdict (list )
520520 by_text = defaultdict (list )
521- by_short_name = defaultdict (list )
522- by_name = defaultdict (list )
521+ by_short_name_lowered = defaultdict (list )
522+ by_name_lowered = defaultdict (list )
523523
524524 for key , lic in licenses .items ():
525525 warn = warnings [key ].append
526526 info = infos [key ].append
527527 error = errors [key ].append
528- by_name [lic .name ].append (lic )
529- by_short_name [lic .short_name ].append (lic )
528+ if lic .name :
529+ by_name_lowered [lic .name .lower ()].append (lic )
530+ else :
531+ by_name_lowered [lic .name ].append (lic )
532+ if lic .short_name :
533+ by_short_name_lowered [lic .short_name .lower ()].append (lic )
534+ else :
535+ by_short_name_lowered [lic .short_name ].append (lic )
530536
531537 if lic .key != lic .key .lower ():
532538 error ('Incorrect license key case. Should be lowercase.' )
@@ -608,17 +614,17 @@ def validate(licenses, verbose=False, no_dupe_urls=False):
608614 if len (lic .spdx_license_key ) > 50 :
609615 error ('spdx_license_key must be 50 characters or less.' )
610616
611- by_spdx_key [lic .spdx_license_key ].append (key )
617+ by_spdx_key_lowered [lic .spdx_license_key . lower () ].append (key )
612618 else :
613619 # SPDX license key is now mandatory
614620 error ('No SPDX license key' )
615621
616622 for oslk in lic .other_spdx_license_keys :
617- by_spdx_key [oslk ].append (key )
623+ by_spdx_key_lowered [oslk ].append (key )
618624
619625 # global SPDX consistency
620626 multiple_spdx_keys_used = {
621- k : v for k , v in by_spdx_key .items ()
627+ k : v for k , v in by_spdx_key_lowered .items ()
622628 if len (v ) > 1
623629 }
624630
@@ -638,20 +644,20 @@ def validate(licenses, verbose=False, no_dupe_urls=False):
638644 )
639645
640646 # global short_name dedupe
641- for short_name , licenses in by_short_name .items ():
647+ for short_name , licenses in by_short_name_lowered .items ():
642648 if len (licenses ) == 1 :
643649 continue
644650 errors ['GLOBAL' ].append (
645- f'Duplicate short name: { short_name } in licenses: ' +
651+ f'Duplicate short name (ignoring case) : { short_name } in licenses: ' +
646652 ', ' .join (l .key for l in licenses )
647653 )
648654
649655 # global name dedupe
650- for name , licenses in by_name .items ():
656+ for name , licenses in by_name_lowered .items ():
651657 if len (licenses ) == 1 :
652658 continue
653659 errors ['GLOBAL' ].append (
654- f'Duplicate name: { name } in licenses: ' +
660+ f'Duplicate name (ignoring case) : { name } in licenses: ' +
655661 ', ' .join (l .key for l in licenses )
656662 )
657663
@@ -837,7 +843,6 @@ def build_rule_from_license(license_obj):
837843 )
838844
839845
840-
841846def get_all_spdx_keys (licenses_db ):
842847 """
843848 Return an iterable of SPDX license keys collected from a `licenses_db`
0 commit comments