| Status | Action needed | Meaning |
|---|---|---|
| mismatch | manual review | The actual license text doesn't match what's declared at all -- it verbatim-matches (or closely resembles) a different SPDX license entirely. LICENSE= is very likely wrong. |
| undeclared | manual review | LICENSE= isn't set on this port at all. Needs a license identifier added before anything else here is possible. |
| no match | manual review | The license text doesn't resemble any license in the SPDX corpus closely enough to identify. Could be a heavily modified license, a custom license, or extraction picked up the wrong file. |
| unresolved | manual review | No license file could be located at all (no LICENSE_FILE set, and nothing matching LICENSE*/COPYING*/COPYRIGHT* found by searching the extracted source). Add LICENSE_FILE, or investigate why none exists. |
| extra license | manual review | The declared license's own text checks out, but the port's source also contains SPDX-License-Identifier tags for a different license nowhere reflected in LICENSE=. Check whether LICENSE= needs to become a multi-license declaration. |
| close | manual review | Same license family as declared, but the text doesn't verbatim-match the canonical SPDX wording (drifted, or has minor unauthorized changes). Compare against "Detected SPDX" and decide whether to fix the text or the tag. |
| retag | easy fix | License text is verbatim-correct, but LICENSE= still uses FreeBSD's old-style token instead of the SPDX identifier shown in "Declared SPDX". Just update the Makefile -- no text investigation needed. |
| exact | none | Verbatim match against the SPDX canonical text, and LICENSE= already uses the correct SPDX spelling. Nothing to do. |
| Port | FreeBSD LICENSE | Declared SPDX | Detected SPDX | Status | SPDX tags in source | |
|---|---|---|---|---|---|---|
| benchmarks/ddosify | AGPLv3 | AGPL-3.0-only | AGPL-3.0-or-later | 99.9% | mismatch | BSD-2-Clause-FreeBSD |
| converters/dos2ansi | BSD2CLAUSE | BSD-2-Clause | BSD-2-Clause | 99.2% | retag | |
| converters/py-gotenberg-client | MPL20 | MPL-2.0 | MPL-2.0 | 100.0% | extra license | MIT,MPL-2.0 |
| deskutils/py-paperless-ngx | GPLv3 | GPL-3.0-only | GPL-3.0+ | 99.9% | mismatch | |
| devel/arcanist | APACHE20 | Apache-2.0 | Apache-2.0 | 98.2% | retag | |
| devel/arcanist-lib | APACHE20 | Apache-2.0 | Apache-2.0 | 98.2% | retag | |
| devel/ice | GPLv2 | GPL-2.0-only | GPL-2.0+ | 99.9% | mismatch | |
| devel/ice37 | GPLv2 | GPL-2.0-only | GPL-2.0+ | 99.9% | mismatch | |
| devel/phabricator | APACHE20 | Apache-2.0 | Apache-2.0 | 98.2% | retag | |
| devel/phorgeit-arcanist | APACHE20 | Apache-2.0 | Apache-2.0 | 98.2% | retag | |
| devel/phorgeit-arcanist-lib | APACHE20 | Apache-2.0 | Apache-2.0 | 98.2% | retag | |
| devel/phorgeit-phorge | APACHE20 | Apache-2.0 | Apache-2.0 | 98.2% | retag | |
| devel/php-ice37 | GPLv2 | GPL-2.0-only | GPL-2.0+ | 99.9% | mismatch | |
| devel/py-dateparser | BSD3CLAUSE | BSD-3-Clause | BSD-3-Clause | 98.5% | retag | |
| devel/py-ice | GPLv2 | GPL-2.0-only | GPL-2.0+ | 99.9% | mismatch | |
| devel/py-ice37 | GPLv2 | GPL-2.0-only | GPL-2.0+ | 99.9% | mismatch | |
| devel/py-inotify-simple | BSD2CLAUSE | BSD-2-Clause | BSD-2-Clause | 99.0% | close | |
| devel/py-inotifyrecursive | LGPL3 | LGPL-3.0-only | unresolved | |||
| devel/py-jsonref | APACHE20 | Apache-2.0 | MIT | 100.0% | mismatch | |
| devel/py-pathvalidate | MIT | MIT | MIT | exact | ||
| devel/py-pytest-httpx | MIT | MIT | MIT | exact | ||
| devel/py-ramlfications | APACHE20 | Apache-2.0 | Apache-2.0 | 98.1% | retag | |
| devel/py-uhid-freebsd | BSD2CLAUSE | BSD-2-Clause | BSD-2-Clause | 99.2% | retag | |
| graphics/py-pdf2image | MIT | MIT | MIT | exact | ||
| graphics/py-pyzbar | MIT | MIT | MIT | exact | ||
| mail/py-imap-tools | APACHE20 | Apache-2.0 | Apache-2.0 | 98.1% | retag | |
| net/py-python-ipware | MIT | MIT | MIT | exact | ||
| net/rinetd | GPLv2 | GPL-2.0-only | unresolved | |||
| print/shrinkpdf | BSD3CLAUSE | BSD-3-Clause | unresolved | |||
| security/periodic-filter-vuxml | BSD3CLAUSE | BSD-3-Clause | unresolved | |||
| security/spm | GPLv3 | GPL-3.0-only | GPL-3.0-only | 99.5% | retag | |
| sysutils/bhyve-rc | ||||||
| sysutils/iocage | BSD2CLAUSE | BSD-2-Clause | BSD-2-Clause-pos-unchanged | 98.5% | mismatch | |
| sysutils/nomad-driver-podman | APACHE20 | Apache-2.0 | MPL-2.0 | 97.6% | mismatch | BSD-3-Clause,BUSL-1.1,MIT,MPL-2.0 |
| sysutils/pftop | BSD2CLAUSE | BSD-2-Clause | unresolved | |||
| sysutils/py-py-consul | MIT | MIT | MIT | exact | ||
| textproc/py-langdetect | APACHE20 | Apache-2.0 | no match | |||
| textproc/py-pdftotext | MIT | MIT | MIT | exact | ||
| textproc/py-tika-client | MPL20 | MPL-2.0 | MPL-2.0 | 100.0% | extra license | GPL-3.0-only,MPL-2.0 |
| www/py-channels-redis | BSD3CLAUSE | BSD-3-Clause | BSD-3-Clause | 98.6% | retag | |
| www/py-django-auditlog | MIT | MIT | MIT | exact | ||
| www/py-django-celery-results | BSD3CLAUSE | BSD-3-Clause | no match | |||
| www/py-django-compression-middleware | MPL20 | MPL-2.0 | MPL-2.0 | 100.0% | retag | |
| www/py-django-multiselectfield | LGPL3 | LGPL-3.0-only | LGPL-3.0-only | 31.4% | retag | |
| www/py-django-soft-delete | MIT | MIT | MIT | exact | ||
| www/py-django-treenode | MIT | MIT | MIT | exact | ||
| www/py-djangoql | MIT | MIT | MIT | exact | ||
| www/py-djangorestframework-guardian | BSD3CLAUSE | BSD-3-Clause | BSD-3-Clause | 99.3% | retag | |
| www/py-drf-writable-nested | BSD2CLAUSE | BSD-2-Clause | BSD-2-Clause | 99.2% | retag | |
| www/py-flower | BSD3CLAUSE | BSD-3-Clause | BSD-3-Clause | 98.7% | retag | |
| www/py-granian | BSD3CLAUSE | BSD-3-Clause | BSD-3-Clause | 100.0% | extra license | Apache-2.0,BSD-2-Clause |
| x11-themes/gtk-equinox-engine | GPLv2 | GPL-2.0-only | GPL-2.0+ | 99.7% | mismatch |