public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
From: Brian Inglis <Brian.Inglis@SystematicSW.ab.ca>
To: Cygwin Apps <cygwin-apps@cygwin.com>
Subject: [ITP] python-license-expression and cygport PoC patch
Date: Thu, 6 Jun 2024 13:03:53 -0600	[thread overview]
Message-ID: <d4887188-6196-4257-a83b-e682a83d4ee7@SystematicSW.ab.ca> (raw)

[-- Attachment #1: Type: text/plain, Size: 1759 bytes --]

I found github/nexB/license-expression Python package to do SPDX licence checks 
developed by the same team doing SPDX-toolkit for SPDX, using the same current 
data, by and working with Fedora folks et al.

Successful attempt to package Python license-expression (without tests):

	https://cygwin.com/cgi-bin2/jobs.cgi?id=8210

log at:

	https://github.com/cygwin/scallywag/actions/runs/9293093201

cygport attached and at:

https://cygwin.com/cgit/cygwin-packages/playground/commit/?id=3626386b10c967f780547d1703ad23bd50f6331a

The package installs and runs using PoC attached in spdx-license-expression.py 
script hooked into /usr/share/cygport/lib/pkg_pkg.cygpart license hint addition 
patch attached.

I also ran a test of the Python script and module against all package source 
cygport files declaring licences which I maintain or ever looked at, including a 
git/cygwin-packages/*.cygport download from 2023-02, showing the results in the 
attached log.
I also attempted to trap the exceptions in the script, but that does not seem to 
work in any documented obvious manner, but I do not know enough Python to 
address this fully.

If someone else who knows python cared to adopt and improve this in a more 
normal manner, and incorporate this more smoothly into cygport, we could all 
appreciate that.
Alternatively, some candid comments and frank feedback might allow me to do so! ;^>

-- 
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer     but when there is no more to cut
                                 -- Antoine de Saint-Exupéry

[-- Attachment #2: python-license-expression.cygport --]
[-- Type: text/plain, Size: 705 bytes --]

#|/usr/bin/cygport
# python-license-expression.cygport - Python license-expression Cygwin package build control script definitions

inherit python-wheel

NAME=python-license-expression
VERSION=30.3.0
RELEASE=1

BASE=${NAME#python-}

CATEGORY=Python
SUMMARY="Python license expression utility library"
DESCRIPTION="Python utility library to parse, compare, simplify and normalize
license expressions (such as SPDX license expressions)."

ARCH=noarch

LICENSE=Apache-2.0
LICENSE_SPDX="SPDX-License-Identifier: $LICENSE"
# SPDX-License-Identifier: Apache-2.0
LICENSE_URI="NOTICE apache-2.0.LICENSE"

DOCS="
	license-expression.ABOUT
	AUTHORS.rst CHANGELOG.rst CODE_OF_CONDUCT.rst README.rst
	$LICENSE_URI
"


[-- Attachment #3: spdx-license-expression.py --]
[-- Type: text/x-python, Size: 889 bytes --]

#!/usr/bin/python
"""spdx-license-expression.py - validate SPDX licence expression

Usage: spdx-license-expression.py <SPDX-License-Identifier Expression>

Author: Brian Inglis <Brian.Inglis@SystematicSW.ab.ca>
"""

from license_expression import get_spdx_licensing
import sys

def main(args):
    if len(args) != 1:
        print("usage: " + sys.argv[0] + " <SPDX-License-Identifier Expression>",
              file=sys.stderr)
        return 1

    licensing = get_spdx_licensing()
    expression = args[0]
    errs = licensing.validate(expression).errors
#ExpressionInfo(
#   original_expression='... and MIT and GPL-2.0+',
#   normalized_expression=None,
#   errors=['Unknown license key(s): ...'],
#   invalid_symbols=['...']
#)
    for e in errs:
        print(e, file=sys.stderr)
    if len(errs) >= 1:
        return 2

if __name__ == "__main__":
    sys.exit(main(sys.argv[1:]))


[-- Attachment #4: cygport-lib-pkg_pkg-cygpart-spdx-license-expression-check.patch --]
[-- Type: text/plain, Size: 344 bytes --]

--- origsrc/lib/pkg_pkg.cygpart.orig	2023-03-08 06:07:57.000000000 -0700
+++ src/lib/pkg_pkg.cygpart	2024-05-29 14:18:46.534998000 -0600
@@ -625,6 +641,7 @@ _EOF
 			fi
 			if [ -n "${LICENSE}" ]
 			then
+				spdx-license-expression.py "${LICENSE}" || true
 				cat >> ${distdir}/${PN}/${PN}-${PVR}-src.hint <<-_EOF
 license: ${LICENSE}
 _EOF

[-- Attachment #5: spdx-license-expression-test.log --]
[-- Type: text/plain, Size: 40361 bytes --]

$ for licp in $(grep -l '^LICENSE=.\+$' */*.cygport)
  do
    pkg=${licp%/*}
    cp=${licp#*/}
    cd $pkg/
    eval $(cygport $cp vars LICENSE)
    echo $pkg $cp "$LICENSE"
    spdx-license-expression.py "$LICENSE" && \
	echo SPDX licence validated: "$LICENSE"
    cd -
  done

a2ps a2ps.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

asr-manpages asr-manpages.cygport Authors
Unknown license key(s): Authors

bash-completion bash-completion.cygport GPL-2.0-or-later
SPDX licence validated: GPL-2.0-or-later

bash-completion bash-completion-spec.cygport GPL-2.0-or-later
SPDX licence validated: GPL-2.0-or-later

bind bind.cygport MPL-2.0 AND ISC AND MIT AND BSD-3-Clause AND BSD-2-Clause
SPDX licence validated: MPL-2.0 AND ISC AND MIT AND BSD-3-Clause AND BSD-2-Clause

bison bison.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

ca-certificates ca-certificates.cygport Mozilla Public Licence 2.0
Unknown license key(s): Mozilla Public Licence 2.0

calm calm.cygport MIT
SPDX licence validated: MIT

c-ares c-ares.cygport MIT
SPDX licence validated: MIT

coreutils coreutils.cygport GPL-3.0-or-later AND GFDL-1.3-or-later
SPDX licence validated: GPL-3.0-or-later AND GFDL-1.3-or-later

cpuid cpuid.cygport GPL-2.0-or-later
SPDX licence validated: GPL-2.0-or-later

cpuid cpuid-spec-fedora.cygport GPLv2+
Unknown license key(s): GPLv2+

cpuid cpuid-spec-opensuse.cygport GPL-2.0-or-later
SPDX licence validated: GPL-2.0-or-later

curl curl.cygport curl
SPDX licence validated: curl

curl curl-spec-fedora.cygport MIT
SPDX licence validated: MIT

curl curl-spec-opensuse.cygport curl
SPDX licence validated: curl

curl mingw64-i686-curl.cygport curl
SPDX licence validated: curl

curl mingw64-x86_64-curl.cygport curl
SPDX licence validated: curl

cygport t.cygport GPL
Unknown license key(s): GPL

cygwin cygwin.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

dash dash.cygport BSD-3-Clause AND GPL-2.0-or-later
SPDX licence validated: BSD-3-Clause AND GPL-2.0-or-later

dateutils dateutils.cygport BSD-3-Clause
SPDX licence validated: BSD-3-Clause

dialog dialog.cygport LGPL-2.1-only
SPDX licence validated: LGPL-2.1-only

diffstat diffstat.cygport MIT-CMU
SPDX licence validated: MIT-CMU

diffutils diffutils.cygport GPL-3.0-or-later AND GFDL-1.3-or-later
SPDX licence validated: GPL-3.0-or-later AND GFDL-1.3-or-later

expat expat.cygport MIT
SPDX licence validated: MIT

fontconfig fontconfig.cygport MIT/PD/UCD
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 778, in validate
    parsed_expression = self.parse(expression, strict=strict)
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 540, in parse
    tokens = list(self.tokenize(
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 604, in tokenize
    for token in tokens:
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 997, in replace_with_subexpression_by_license_symbol
    for token_group in token_groups:
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 936, in build_token_groups_for_with_subexpression
    tokens = list(tokens)
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 598, in <genexpr>
    tokens = (t for t in tokens if t.string and t.string.strip())
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 922, in build_symbols_from_unknown_tokens
    for symtok in build_token_with_symbol():
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 902, in build_token_with_symbol
    toksym = LicenseSymbol(string)
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 1214, in __init__
    raise ExpressionError(
license_expression.ExpressionError: Invalid license key: the valid characters are: letters and numbers, underscore, dot, colon or hyphen signs and spaces: 'MIT/PD/UCD'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/BWI/bin/spdx-license-expression.py", line 33, in <module>
    sys.exit(main(sys.argv[1:]))
  File "/home/BWI/bin/spdx-license-expression.py", line 20, in main
    errs = licensing.validate(expression).errors
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 781, in validate
    expression_info.invalid_symbols.append(e.token_string)
AttributeError: 'ExpressionError' object has no attribute 'token_string'

fortune-mod fortune-mod.cygport BSD-4-Clause
SPDX licence validated: BSD-4-Clause

funny-manpages funny-manpages.cygport Authors
Unknown license key(s): Authors

gawkextlib gawkextlib.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

gcl gcl.cygport LGPL-2.0-or-later AND GPL-1.0-or-later AND MIT-Modern-Variant AND LOOP
SPDX licence validated: LGPL-2.0-or-later AND GPL-1.0-or-later AND MIT-Modern-Variant AND LOOP

gcl gclisp.cygport GPL-1.0-or-later
SPDX licence validated: GPL-1.0-or-later

GeoIP GeoIP.cygport LGPL-2.1-or-later
SPDX licence validated: LGPL-2.1-or-later

GeoIP-database GeoIP-database.cygport CC-BY-SA-4.0
SPDX licence validated: CC-BY-SA-4.0

getent getent.cygport LGPL-2.1-or-later
SPDX licence validated: LGPL-2.1-or-later

gettext gettext.cygport GPL-3.0-or-later AND LGPL-2.1-or-later AND GFDL-1.3-or-later AND MIT
SPDX licence validated: GPL-3.0-or-later AND LGPL-2.1-or-later AND GFDL-1.3-or-later AND MIT

gnutls gnutls.cygport LGPL-2.1-or-later AND GPL-3.0-only AND GFDL-1.3-only
SPDX licence validated: LGPL-2.1-or-later AND GPL-3.0-only AND GFDL-1.3-only

gpgme gpgme.cygport GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT
SPDX licence validated: GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT

grap grap.cygport BSD-2-Clause
SPDX licence validated: BSD-2-Clause

grep grep.cygport GPL-2.0-or-later
SPDX licence validated: GPL-2.0-or-later

groff groff.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

gsasl gsasl.cygport LGPL-2.1-or-later AND GPL-3.0-or-later AND GFDL-1.3-or-later
SPDX licence validated: LGPL-2.1-or-later AND GPL-3.0-or-later AND GFDL-1.3-or-later

gtk-doc gtk-doc.cygport GPL-2.0-only AND GFDL-1.1-only
SPDX licence validated: GPL-2.0-only AND GFDL-1.1-only

guile3.0 guile3.0.cygport GPL-3.0-only
SPDX licence validated: GPL-3.0-only

gzip gzip.cygport GPL-2.0-or-later
SPDX licence validated: GPL-2.0-or-later

help2man help2man.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

htop htop.cygport GPL-2.0-or-later
SPDX licence validated: GPL-2.0-or-later

jq jq.cygport MIT AND CC-BY-3.0 AND dtoa AND ICU
SPDX licence validated: MIT AND CC-BY-3.0 AND dtoa AND ICU

last-resort-font last-resort-font.cygport OFL-1.1
SPDX licence validated: OFL-1.1

libevent libevent.cygport BSD-3-Clause
SPDX licence validated: BSD-3-Clause

libgcrypt libgcrypt.cygport LGPL-2.1-or-later AND GPL-2.0-or-later AND (GPL-2.0-only OR BSD-3-Clause) AND BSD-3-Clause
SPDX licence validated: LGPL-2.1-or-later AND GPL-2.0-or-later AND (GPL-2.0-only OR BSD-3-Clause) AND BSD-3-Clause

libhsts libhsts.cygport MIT BSD-3-Clause
Invalid symbols sequence such as (A B) for token: "BSD-3-Clause" at position: 4
libidn libidn.cygport LGPL-3.0-or-later AND GPL-2.0-or-later AND GPL-3.0-or-later AND GFDL-1.3-or-later
SPDX licence validated: LGPL-3.0-or-later AND GPL-2.0-or-later AND GPL-3.0-or-later AND GFDL-1.3-or-later

libidn2 libidn2.cygport LGPL-3.0-or-later AND GPL-2.0-or-later AND GPL-3.0-or-later AND Unicode-TOU AND Unicode-DFS-2016
SPDX licence validated: LGPL-3.0-or-later AND GPL-2.0-or-later AND GPL-3.0-or-later AND Unicode-TOU AND Unicode-DFS-2016

libmetalink libmetalink.cygport MIT
SPDX licence validated: MIT

libpsl libpsl.cygport MIT
SPDX licence validated: MIT

libssh2 libssh2.cygport BSD-3-Clause
SPDX licence validated: BSD-3-Clause

libunistring libunistring.cygport (LGPL-3.0-or-later OR GPL-2.0-or-later) AND (GFDL-1.2-no-invariants-or-later OR GPL-3.0-or-later)
SPDX licence validated: (LGPL-3.0-or-later OR GPL-2.0-or-later) AND (GFDL-1.2-no-invariants-or-later OR GPL-3.0-or-later)

libvpx libvpx.cygport BSD-3-Clause AND LicenseRef-Google-WebM-Additional-IP-Rights-Grant-Patents
Unknown license key(s): LicenseRef-Google-WebM-Additional-IP-Rights-Grant-Patents

libwebp libwebp.cygport BSD-3-Clause AND LicenseRef-Google-WebM-Additional-IP-Rights-Grant-Patents
Unknown license key(s): LicenseRef-Google-WebM-Additional-IP-Rights-Grant-Patents

m4 m4.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

make make.cygport GPL-3.0-only
SPDX licence validated: GPL-3.0-only

mandoc mandoc.cygport ISC
SPDX licence validated: ISC

man-pages-linux man-pages-linux.cygport MIT     AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause-UC   AND Linux-man-pages-1-para AND Linux-man-pages-copyleft         AND Linux-man-pages-copyleft-var AND Linux-man-pages-copyleft-2-para   AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later       AND LGPL-3.0-or-later WITH LGPL-3.0-linking-exception
SPDX licence validated: MIT     AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause-UC   AND Linux-man-pages-1-para AND Linux-man-pages-copyleft         AND Linux-man-pages-copyleft-var AND Linux-man-pages-copyleft-2-para    AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later      AND LGPL-3.0-or-later WITH LGPL-3.0-linking-exception

man-pages-posix man-pages-posix.cygport Linux-man-pages-copyleft
SPDX licence validated: Linux-man-pages-copyleft

ncompress ncompress.cygport Unlicense
SPDX licence validated: Unlicense

ncurses ncurses.cygport MIT
SPDX licence validated: MIT

nghttp2 nghttp2.cygport MIT
SPDX licence validated: MIT

nghttp3 nghttp3.cygport MIT
SPDX licence validated: MIT

num-utils num-utils.cygport GPL2+
Unknown license key(s): GPL2+

openssl mingw64-i686-openssl.cygport OpenSSL
SPDX licence validated: OpenSSL

openssl mingw64-x86_64-openssl.cygport OpenSSL
SPDX licence validated: OpenSSL

openssl openssl.cygport OpenSSL
SPDX licence validated: OpenSSL

openssl openssl1.0.cygport OpenSSL
SPDX licence validated: OpenSSL

openssl openssl3.cygport Apache-2.0
SPDX licence validated: Apache-2.0

patch patch.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

perl-App-XML-DocBook-Builder perl-App-XML-DocBook-Builder.cygport MIT
SPDX licence validated: MIT

procps-ng procps-ng-4.0.2-1.cygport GPL-2.0-or-later AND LGPL-2.1-or-later
SPDX licence validated: GPL-2.0-or-later AND LGPL-2.1-or-later

publicsuffix-list publicsuffix-list.cygport MPL-2.0
SPDX licence validated: MPL-2.0

python-license-expression python-license-expression.cygport Apache-2.0
SPDX licence validated: Apache-2.0

python-pytz python-pytz.cygport MIT
SPDX licence validated: MIT

readline readline.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

rman rman.cygport Artistic
Unknown license key(s): Artistic

scancode-toolkit python-scancode-toolkit.cygport Apache-2.0 AND CC-by-4.0
SPDX licence validated: Apache-2.0 AND CC-by-4.0

scancode-toolkit scancode-toolkit.cygport Apache-2.0 AND CC-BY-4.0 AND LicenseRef-scancode-other-permissive AND LicenseRef-scancode-other-copyleft
SPDX licence validated: Apache-2.0 AND CC-BY-4.0 AND LicenseRef-scancode-other-permissive AND LicenseRef-scancode-other-copyleft

scowl scowl.cygport Public Domain AND BSD-3-Clause-Modification
Unknown license key(s): Public Domain

sed sed.cygport GPL-2.0-or-later
SPDX licence validated: GPL-2.0-or-later

tack tack.cygport GPL-2.0-only
SPDX licence validated: GPL-2.0-only

tek4010 tek4010.cygport GPL3
Unknown license key(s): GPL3

terminator terminator.cygport GPL-2.0-only
SPDX licence validated: GPL-2.0-only

THE the.cygport GPL2
Unknown license key(s): GPL2

tnef tnef.cygport GPLv2
Unknown license key(s): GPLv2

txt2man txt2man.cygport GPLv2
Unknown license key(s): GPLv2

tzcode tzcode.cygport LicenceRef-IANA-TZ-Public-Domain
Unknown license key(s): LicenceRef-IANA-TZ-Public-Domain

tzcode tzdata.cygport LicenceRef-IANA-TZ-Public-Domain
Unknown license key(s): LicenceRef-IANA-TZ-Public-Domain

tzdata tzcode.cygport LicenceRef-IANA-TZ-Public-Domain
Unknown license key(s): LicenceRef-IANA-TZ-Public-Domain

tzdata tzdata.cygport LicenceRef-IANA-TZ-Public-Domain
Unknown license key(s): LicenceRef-IANA-TZ-Public-Domain

tzdata tzdata-spec-fedora.cygport LicenceRef-IANA-TZ-Public-Domain
Unknown license key(s): LicenceRef-IANA-TZ-Public-Domain

tzdata tzdata-spec-opensuse.cygport GPL-2.0-with-classpath-exception
Unknown license key(s): GPL-2.0-with-classpath-exception

unicode-ucd unicode-ucd.cygport MIT
SPDX licence validated: MIT

unifont unifont.cygport (GPL-2.0-or-later WITH Font-exception-2.0 OR OFL-1.1) AND GPL-2.0-or-later AND LicenseRef-Unifoundry-Unifont-Public-Domain
Unknown license key(s): LicenseRef-Unifoundry-Unifont-Public-Domain

units units.cygport GPL-3.0-only AND GFDL-1.3-only
SPDX licence validated: GPL-3.0-only AND GFDL-1.3-only

units units-spec-fedora.cygport GPLv3+
Unknown license key(s): GPLv3+

units units-spec-opensuse.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

unrar unrar.cygport LicenseRef-RARlab-Unrar
Unknown license key(s): LicenseRef-RARlab-Unrar

util-linux util-linux.cygport GPL-2.0-or-later AND GPL-2.0 AND GPL-3.0-or-later AND LGPL-2.1-or-later AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause-UC AND License-Ref-Public-Domain
Unknown license key(s): License-Ref-Public-Domain

vim vim.cygport Vim
SPDX licence validated: Vim

vim vim9.cygport Vim AND LGPL-2.1-or-later AND MIT AND GPL-1.0-only AND (GPL-2.0-only OR Vim) AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND GPL-2.0-or-later AND GPL-3.0-or-later AND OPUBL-1.0
SPDX licence validated: Vim AND LGPL-2.1-or-later AND MIT AND GPL-1.0-only AND (GPL-2.0-only OR Vim) AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND GPL-2.0-or-later AND GPL-3.0-or-later AND OPUBL-1.0

vttest vttest.cygport BSD-Source-Code
SPDX licence validated: BSD-Source-Code

vttest vttest-spec-fedora.cygport MIT
SPDX licence validated: MIT

wget wget.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

wget wget-spec-fedora.cygport GPLv3+
Unknown license key(s): GPLv3+

wget wget-spec-opensuse.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

wget2 wget2.cygport LGPL-3.0-or-later
SPDX licence validated: LGPL-3.0-or-later

wget2 wget2-spec-opensuse.cygport LGPL-3.0-or-later
SPDX licence validated: LGPL-3.0-or-later

xlsx2csv xlsx2csv.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages alacarte.cygport LGPL-2.0-or-later
SPDX licence validated: LGPL-2.0-or-later

git-cygwin-packages attr.cygport GPL-2.0-or-later AND LGPL-2.1-or-later
SPDX licence validated: GPL-2.0-or-later AND LGPL-2.1-or-later

git-cygwin-packages avahi.cygport LGPL-2.1-or-later
SPDX licence validated: LGPL-2.1-or-later

git-cygwin-packages base-cygwin.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages bison.cygport GPLv3+
Unknown license key(s): GPLv3+

git-cygwin-packages buildbot-worker.cygport GNU General Public License, Version 2
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 778, in validate
    parsed_expression = self.parse(expression, strict=strict)
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 540, in parse
    tokens = list(self.tokenize(
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 604, in tokenize
    for token in tokens:
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 997, in replace_with_subexpression_by_license_symbol
    for token_group in token_groups:
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 936, in build_token_groups_for_with_subexpression
    tokens = list(tokens)
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 598, in <genexpr>
    tokens = (t for t in tokens if t.string and t.string.strip())
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 922, in build_symbols_from_unknown_tokens
    for symtok in build_token_with_symbol():
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 902, in build_token_with_symbol
    toksym = LicenseSymbol(string)
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 1214, in __init__
    raise ExpressionError(
license_expression.ExpressionError: Invalid license key: the valid characters are: letters and numbers, underscore, dot, colon or hyphen signs and spaces: 'GNU General Public License, Version 2'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/BWI/bin/spdx-license-expression.py", line 33, in <module>
    sys.exit(main(sys.argv[1:]))
  File "/home/BWI/bin/spdx-license-expression.py", line 20, in main
    errs = licensing.validate(expression).errors
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 781, in validate
    expression_info.invalid_symbols.append(e.token_string)
AttributeError: 'ExpressionError' object has no attribute 'token_string'

git-cygwin-packages calm.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages cfitsio.cygport ISC
SPDX licence validated: ISC

git-cygwin-packages cpio.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages cpuid.cygport GPL-2.0-or-later
SPDX licence validated: GPL-2.0-or-later

git-cygwin-packages csih.cygport LGPL-2.1-or-later AND BSD-2-Clause AND MIT
SPDX licence validated: LGPL-2.1-or-later AND BSD-2-Clause AND MIT

git-cygwin-packages curl.cygport curl
SPDX licence validated: curl

git-cygwin-packages cygrunsrv.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages cygwin.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages dash.cygport BSD-3-Clause AND GPL-2.0-or-later
SPDX licence validated: BSD-3-Clause AND GPL-2.0-or-later

git-cygwin-packages dialog.cygport LGPL-2.1
SPDX licence validated: LGPL-2.1

git-cygwin-packages diffstat.cygport MIT-CMU
SPDX licence validated: MIT-CMU

git-cygwin-packages diffutils.cygport GPL-3.0-or-later AND GFDL-1.3-or-later
SPDX licence validated: GPL-3.0-or-later AND GFDL-1.3-or-later

git-cygwin-packages dmalloc.cygport ISC
SPDX licence validated: ISC

git-cygwin-packages double-conversion.cygport BSD-3-Clause
SPDX licence validated: BSD-3-Clause

git-cygwin-packages doxygen.cygport GPL-2.0-only
SPDX licence validated: GPL-2.0-only

git-cygwin-packages duplicity.cygport GPL-2.0-only
SPDX licence validated: GPL-2.0-only

git-cygwin-packages editrights.cygport BSD-3-Clause
SPDX licence validated: BSD-3-Clause

git-cygwin-packages exiv2.cygport GPL-2.0-or-later
SPDX licence validated: GPL-2.0-or-later

git-cygwin-packages extractpdfmark.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages file.cygport BSD-2-Clause
SPDX licence validated: BSD-2-Clause

git-cygwin-packages fish.cygport GPL-2.0-only AND LGPL-2.0-only AND ISC AND BSD-2-Clause
SPDX licence validated: GPL-2.0-only AND LGPL-2.0-only AND ISC AND BSD-2-Clause

git-cygwin-packages fortune-mod.cygport BSD-4-Clause
SPDX licence validated: BSD-4-Clause

git-cygwin-packages freeglut.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages gawk.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages getent.cygport LGPL-2.1-or-later
SPDX licence validated: LGPL-2.1-or-later

git-cygwin-packages gettext.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages ghostscript.cygport AGPL-3.0-or-later
SPDX licence validated: AGPL-3.0-or-later

git-cygwin-packages gnuplot.cygport gnuplot
SPDX licence validated: gnuplot

git-cygwin-packages gobject-introspection.cygport GPL-2.0-or-later AND LGPL-2.0-or-later AND MIT
SPDX licence validated: GPL-2.0-or-later AND LGPL-2.0-or-later AND MIT

git-cygwin-packages grep.cygport GPL-2.0-or-later
SPDX licence validated: GPL-2.0-or-later

git-cygwin-packages gzip.cygport GPLv2+
Unknown license key(s): GPLv2+

git-cygwin-packages harfbuzz.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages help2man.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages icu.cygport Unicode-DFS-2016
SPDX licence validated: Unicode-DFS-2016

git-cygwin-packages ipc-utils.cygport BSD-3-Clause AND BSD-4-Clause
SPDX licence validated: BSD-3-Clause AND BSD-4-Clause

git-cygwin-packages khronos-opengl-registry.cygport SGI Free Software License B
Unknown license key(s): SGI Free Software License B

git-cygwin-packages lftp.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages libcbor.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages libcerf.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages libdeflate.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages libedit.cygport BSD-3-Clause AND BSD-2-Clause AND ISC
SPDX licence validated: BSD-3-Clause AND BSD-2-Clause AND ISC

git-cygwin-packages libffi.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages libfido2.cygport BSD-2-Clause
SPDX licence validated: BSD-2-Clause

git-cygwin-packages libgcrypt.cygport LGPLv2.1+/GPLv2+
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 778, in validate
    parsed_expression = self.parse(expression, strict=strict)
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 540, in parse
    tokens = list(self.tokenize(
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 604, in tokenize
    for token in tokens:
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 997, in replace_with_subexpression_by_license_symbol
    for token_group in token_groups:
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 936, in build_token_groups_for_with_subexpression
    tokens = list(tokens)
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 598, in <genexpr>
    tokens = (t for t in tokens if t.string and t.string.strip())
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 922, in build_symbols_from_unknown_tokens
    for symtok in build_token_with_symbol():
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 902, in build_token_with_symbol
    toksym = LicenseSymbol(string)
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 1214, in __init__
    raise ExpressionError(
license_expression.ExpressionError: Invalid license key: the valid characters are: letters and numbers, underscore, dot, colon or hyphen signs and spaces: 'LGPLv2.1+/GPLv2+'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/BWI/bin/spdx-license-expression.py", line 33, in <module>
    sys.exit(main(sys.argv[1:]))
  File "/home/BWI/bin/spdx-license-expression.py", line 20, in main
    errs = licensing.validate(expression).errors
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 781, in validate
    expression_info.invalid_symbols.append(e.token_string)
AttributeError: 'ExpressionError' object has no attribute 'token_string'

git-cygwin-packages libidn.cygport LGPLv3+/GPLv2+/GPLv3+/GFDLv1.3+
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 778, in validate
    parsed_expression = self.parse(expression, strict=strict)
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 540, in parse
    tokens = list(self.tokenize(
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 604, in tokenize
    for token in tokens:
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 997, in replace_with_subexpression_by_license_symbol
    for token_group in token_groups:
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 936, in build_token_groups_for_with_subexpression
    tokens = list(tokens)
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 598, in <genexpr>
    tokens = (t for t in tokens if t.string and t.string.strip())
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 922, in build_symbols_from_unknown_tokens
    for symtok in build_token_with_symbol():
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 902, in build_token_with_symbol
    toksym = LicenseSymbol(string)
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 1214, in __init__
    raise ExpressionError(
license_expression.ExpressionError: Invalid license key: the valid characters are: letters and numbers, underscore, dot, colon or hyphen signs and spaces: 'LGPLv3+/GPLv2+/GPLv3+/GFDLv1.3+'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/BWI/bin/spdx-license-expression.py", line 33, in <module>
    sys.exit(main(sys.argv[1:]))
  File "/home/BWI/bin/spdx-license-expression.py", line 20, in main
    errs = licensing.validate(expression).errors
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 781, in validate
    expression_info.invalid_symbols.append(e.token_string)
AttributeError: 'ExpressionError' object has no attribute 'token_string'

git-cygwin-packages libidn2.cygport LGPL-3.0-or-later AND GPL-2.0-or-later AND GPL-3.0-or-later AND Unicode-TOU AND Unicode-DFS-2016
SPDX licence validated: LGPL-3.0-or-later AND GPL-2.0-or-later AND GPL-3.0-or-later AND Unicode-TOU AND Unicode-DFS-2016

git-cygwin-packages libjpeg-turbo.cygport IJG AND BSD-3-Clause AND Zlib
SPDX licence validated: IJG AND BSD-3-Clause AND Zlib

git-cygwin-packages libmetalink.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages libpsl.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages libsolv.cygport BSD-3-Clause
SPDX licence validated: BSD-3-Clause

git-cygwin-packages libspectre.cygport GPL-2.0-or-later
SPDX licence validated: GPL-2.0-or-later

git-cygwin-packages libssh2.cygport BSD-3-Clause
SPDX licence validated: BSD-3-Clause

git-cygwin-packages libuninameslist.cygport BSD-3-Clause
SPDX licence validated: BSD-3-Clause

git-cygwin-packages libwebp.cygport BSD-3-Clause WITH LicenseRef-Google-WebM-Additional-IP-Rights-Grant-Patents
A plain license symbol cannot be used as an exception in a "WITH symbol" statement. for token: "LicenseRef-Google-WebM-Additional-IP-Rights-Grant-Patents" at position: 18

git-cygwin-packages lighttpd.cygport BSD-3-Clause
SPDX licence validated: BSD-3-Clause

git-cygwin-packages lua-lxp.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages lz4.cygport BSD-2-Clause AND GPL-2.0
SPDX licence validated: BSD-2-Clause AND GPL-2.0

git-cygwin-packages m4.cygport GPLv3+
Unknown license key(s): GPLv3+

git-cygwin-packages man-db.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages man-pages-linux.cygport Linux-man-pages-copyleft
SPDX licence validated: Linux-man-pages-copyleft

git-cygwin-packages man-pages-posix.cygport MIT-like
Unknown license key(s): MIT-like

git-cygwin-packages maxima.cygport GPLv2+
Unknown license key(s): GPLv2+

git-cygwin-packages meson.cygport Apache-2.0
SPDX licence validated: Apache-2.0

git-cygwin-packages mingw64-i686-curl.cygport MIT-like
Unknown license key(s): MIT-like

git-cygwin-packages mingw64-i686-gettext.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages mingw64-i686-libidn2.cygport LGPL-3.0-or-later AND GPL-2.0-or-later AND GPL-3.0-or-later AND Unicode-TOU AND Unicode-DFS-2016
SPDX licence validated: LGPL-3.0-or-later AND GPL-2.0-or-later AND GPL-3.0-or-later AND Unicode-TOU AND Unicode-DFS-2016

git-cygwin-packages mingw64-i686-libsolv.cygport BSD-3-Clause
SPDX licence validated: BSD-3-Clause

git-cygwin-packages mingw64-i686-libssh2.cygport BSD-3-Clause
SPDX licence validated: BSD-3-Clause

git-cygwin-packages mingw64-i686-lz4.cygport BSD-2-Clause AND GPL-2.0
SPDX licence validated: BSD-2-Clause AND GPL-2.0

git-cygwin-packages mingw64-i686-nghttp2.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages mingw64-x86_64-curl.cygport curl
SPDX licence validated: curl

git-cygwin-packages mingw64-x86_64-gettext.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages mingw64-x86_64-libidn2.cygport LGPL-3.0-or-later AND GPL-2.0-or-later AND GPL-3.0-or-later AND Unicode-TOU AND Unicode-DFS-2016
SPDX licence validated: LGPL-3.0-or-later AND GPL-2.0-or-later AND GPL-3.0-or-later AND Unicode-TOU AND Unicode-DFS-2016

git-cygwin-packages mingw64-x86_64-libsolv.cygport BSD-3-Clause
SPDX licence validated: BSD-3-Clause

git-cygwin-packages mingw64-x86_64-libssh2.cygport BSD-3-Clause
SPDX licence validated: BSD-3-Clause

git-cygwin-packages mingw64-x86_64-lz4.cygport BSD-2-Clause AND GPL-2.0
SPDX licence validated: BSD-2-Clause AND GPL-2.0

git-cygwin-packages mingw64-x86_64-nghttp2.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages minisign.cygport ISC
SPDX licence validated: ISC

git-cygwin-packages mosh.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages mpfr.cygport LGPL-3.0-or-later
SPDX licence validated: LGPL-3.0-or-later

git-cygwin-packages mt.cygport GPL-2.0-or-later
SPDX licence validated: GPL-2.0-or-later

git-cygwin-packages net-snmp.cygport BSD
Unknown license key(s): BSD

git-cygwin-packages nghttp2.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages ninja.cygport Apache-2.0
SPDX licence validated: Apache-2.0

git-cygwin-packages ocaml.cygport LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception
SPDX licence validated: LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception

git-cygwin-packages openldap.cygport OLDAP-2.8
SPDX licence validated: OLDAP-2.8

git-cygwin-packages openssh.cygport BSD-2-Clause
SPDX licence validated: BSD-2-Clause

git-cygwin-packages openssl.cygport OpenSSL
SPDX licence validated: OpenSSL

git-cygwin-packages osslsigncode.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages passwdqc.cygport BSD-3-Clause
SPDX licence validated: BSD-3-Clause

git-cygwin-packages patch.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages perl-Alien-Build.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages perl-App-XML-DocBook-Builder.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages perl-B-COW.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages perl-Clone.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages perl-DateTime.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages perl-DateTime-Locale.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages perl-DateTime-TimeZone.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages perl-DBD-SQLite.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages perl-Exporter-Tiny.cygport (Artistic-1.0-Perl OR GPL-1.0-or-later)
SPDX licence validated: (Artistic-1.0-Perl OR GPL-1.0-or-later)

git-cygwin-packages perl-HTML-Parser.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages perl-HTTP-Message.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages perl-Image-ExifTool.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages perl-IO-Socket-SSL.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages perl-IO-Tty.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages perl-Log-Log4perl.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages perl-Mojolicious.cygport Artistic-2.0
SPDX licence validated: Artistic-2.0

git-cygwin-packages perl-Mozilla-CA.cygport unknownORunknown
Unknown license key(s): unknownORunknown

git-cygwin-packages perl-Params-Validate.cygport unknownORunknown
Unknown license key(s): unknownORunknown

git-cygwin-packages perl-Path-Tiny.cygport Apache-2.0
SPDX licence validated: Apache-2.0

git-cygwin-packages perl-PerlIO-utf8_strict.cygport Apache-2.0
SPDX licence validated: Apache-2.0

git-cygwin-packages perl-String-Util.cygport Apache-2.0
SPDX licence validated: Apache-2.0

git-cygwin-packages perl-Term-ReadLine-Gnu.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages perl-Test-Needs.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages perl-Test-Simple.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages perl-Text-BibTeX.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages perl-URI.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages perl-XML-LibXSLT.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages perl-YAML-LibYAML.cygport Artistic-1.0-Perl OR GPL-1.0-or-later
SPDX licence validated: Artistic-1.0-Perl OR GPL-1.0-or-later

git-cygwin-packages picocom.cygport GPL-2.0
SPDX licence validated: GPL-2.0

git-cygwin-packages pl.cygport BSD-2-Clause
SPDX licence validated: BSD-2-Clause

git-cygwin-packages procps-ng.cygport GPL-2.0-or-later AND LGPL-2.1-or-later
SPDX licence validated: GPL-2.0-or-later AND LGPL-2.1-or-later

git-cygwin-packages protobuf.cygport BSD-3-Clause
SPDX licence validated: BSD-3-Clause

git-cygwin-packages psmisc.cygport GPL-2.0-or-later
SPDX licence validated: GPL-2.0-or-later

git-cygwin-packages publicsuffix-list.cygport MPL-2.0
SPDX licence validated: MPL-2.0

git-cygwin-packages python-future.cygport MPL-2.0
SPDX licence validated: MPL-2.0

git-cygwin-packages readline.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages recode.cygport GPL-3.0-or-later AND LGPL-3.0-or-later AND BSD AND OFSFDL
Unknown license key(s): BSD, OFSFDL

git-cygwin-packages rlwrap.cygport GPL-2.0-or-later
SPDX licence validated: GPL-2.0-or-later

git-cygwin-packages rng-tools.cygport GPL-2.0-or-later
SPDX licence validated: GPL-2.0-or-later

git-cygwin-packages rsync.cygport GPL-3.0-or-later
SPDX licence validated: GPL-3.0-or-later

git-cygwin-packages schroedinger-coordgenlibs.cygport BSD-3-Clause
SPDX licence validated: BSD-3-Clause

git-cygwin-packages schroedinger-maeparser.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages scowl.cygport PD/BSD-3-Mod
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 778, in validate
    parsed_expression = self.parse(expression, strict=strict)
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 540, in parse
    tokens = list(self.tokenize(
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 604, in tokenize
    for token in tokens:
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 997, in replace_with_subexpression_by_license_symbol
    for token_group in token_groups:
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 936, in build_token_groups_for_with_subexpression
    tokens = list(tokens)
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 598, in <genexpr>
    tokens = (t for t in tokens if t.string and t.string.strip())
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 922, in build_symbols_from_unknown_tokens
    for symtok in build_token_with_symbol():
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 902, in build_token_with_symbol
    toksym = LicenseSymbol(string)
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 1214, in __init__
    raise ExpressionError(
license_expression.ExpressionError: Invalid license key: the valid characters are: letters and numbers, underscore, dot, colon or hyphen signs and spaces: 'PD/BSD-3-Mod'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/BWI/bin/spdx-license-expression.py", line 33, in <module>
    sys.exit(main(sys.argv[1:]))
  File "/home/BWI/bin/spdx-license-expression.py", line 20, in main
    errs = licensing.validate(expression).errors
  File "/usr/lib/python3.9/site-packages/license_expression/__init__.py", line 781, in validate
    expression_info.invalid_symbols.append(e.token_string)
AttributeError: 'ExpressionError' object has no attribute 'token_string'

git-cygwin-packages screen.cygport GPL-3.0-only
SPDX licence validated: GPL-3.0-only

git-cygwin-packages sed.cygport GPLv2+
Unknown license key(s): GPLv2+

git-cygwin-packages stunnel.cygport GPL-2.0-or-later
SPDX licence validated: GPL-2.0-or-later

git-cygwin-packages tack.cygport GPL-2.0-only
SPDX licence validated: GPL-2.0-only

git-cygwin-packages tcsh.cygport BSD-3-Clause
SPDX licence validated: BSD-3-Clause

git-cygwin-packages texinfo.cygport GPL-3.0-only
SPDX licence validated: GPL-3.0-only

git-cygwin-packages tiff.cygport libtiff
SPDX licence validated: libtiff

git-cygwin-packages tin.cygport BSD-3-Clause
SPDX licence validated: BSD-3-Clause

git-cygwin-packages tree-sitter.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages tzcode.cygport Public-Domain
Unknown license key(s): Public-Domain

git-cygwin-packages tzdata.cygport Public-Domain
Unknown license key(s): Public-Domain

git-cygwin-packages unison.cygport GPL-3.0-only
SPDX licence validated: GPL-3.0-only

git-cygwin-packages units.cygport GPL
Unknown license key(s): GPL

git-cygwin-packages upx.cygport GPL-2.0-or-later
SPDX licence validated: GPL-2.0-or-later

git-cygwin-packages vttest.cygport BSD-Source-Code
SPDX licence validated: BSD-Source-Code

git-cygwin-packages wget.cygport GPLv3+
Unknown license key(s): GPLv3+

git-cygwin-packages windows-default-manifest.cygport FSFAP
SPDX licence validated: FSFAP

git-cygwin-packages xcb-util-cursor.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages xcb-util-errors.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages xcb-util-image.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages xcb-util-keysyms.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages xcb-util-renderutil.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages xcb-util-wm.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages xkeyboard-config.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages xorg-server.cygport MIT
SPDX licence validated: MIT

git-cygwin-packages xview.cygport Sun OpenLook
Unknown license key(s): Sun OpenLook

git-cygwin-packages xz.cygport GPL-2.0-or-later AND LGPL-2.1-or-later
SPDX licence validated: GPL-2.0-or-later AND LGPL-2.1-or-later

git-cygwin-packages zlib.cygport Zlib
SPDX licence validated: Zlib

git-cygwin-packages zstd.cygport BSD-3-Clause AND GPL-2.0-only
SPDX licence validated: BSD-3-Clause AND GPL-2.0-only

git-cygwin-packages zziplib.cygport LGPL-2.0-only or MPL-1.1
SPDX licence validated: LGPL-2.0-only or MPL-1.1


             reply	other threads:[~2024-06-06 19:04 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-06 19:03 Brian Inglis [this message]
2024-06-06 19:28 ` Brian Inglis
2024-06-08 16:04   ` Brian Inglis
2024-06-23 14:26 ` Jon Turney
2024-06-23 20:12   ` Brian Inglis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d4887188-6196-4257-a83b-e682a83d4ee7@SystematicSW.ab.ca \
    --to=brian.inglis@systematicsw.ab.ca \
    --cc=cygwin-apps@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).