← all maintainers

169 port(s) -- uncheck a status to hide it
What do these statuses mean?
StatusAction neededMeaning
mismatchmanual reviewThe 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.
undeclaredmanual reviewLICENSE= isn't set on this port at all. Needs a license identifier added before anything else here is possible.
no matchmanual reviewThe 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.
unresolvedmanual reviewNo 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 licensemanual reviewThe 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.
closemanual reviewSame 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.
retageasy fixLicense 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.
exactnoneVerbatim match against the SPDX canonical text, and LICENSE= already uses the correct SPDX spelling. Nothing to do.
PortFreeBSD LICENSEDeclared SPDXDetected SPDXStatusSPDX tags in source
archivers/deutexGPLv2GPL-2.0-onlyGPL-2.0-only99.9%extra licenseGPL-2.0-or-later,LGPL-2.1-or-later
LGPL20LGPL-2.0-onlyLGPL-2.1-or-later100.0%mismatchGPL-2.0-or-later,LGPL-2.1-or-later
MITMITGPL-2.0-only99.9%mismatchGPL-2.0-or-later,LGPL-2.1-or-later
converters/py-svglibLGPL3LGPL-3.0-onlyLGPL-3.0-only31.4%retag
converters/py-text-unidecodeART10Artistic-1.0Artistic-dist93.3%mismatch
GPLv1+GPL-1.0-or-laterArtistic-dist93.3%mismatch
databases/py-minidbISCLISCISC0.0%retag
devel/py-banalMITMITMITexact
devel/py-binaryornotBSD3CLAUSEBSD-3-ClauseMIT100.0%mismatch
devel/py-boolean.pyBSD2CLAUSEBSD-2-ClauseBSD-2-Clause99.2%retagBSD-2-Clause
devel/py-dj60-django-rqMITMITMITexact
devel/py-dj60-strawberry-graphqlMITMITMITexact
devel/py-flakyAPACHE20Apache-2.0Apache-2.098.2%retag
devel/py-flexMITMITMITexact
devel/py-funcyBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.7%retag
devel/py-hatch-nodejs-versionMITMITMITexactMIT
devel/py-hatch-requirements-txtMITMITMITexact
devel/py-inflectionMITMITMITexact
devel/py-inline-snapshotMITMITMITexact
devel/py-intbitsetLGPL3LGPL-3.0-onlyLGPL-3.0-only31.4%extra licenseLGPL-3.0-or-later
devel/py-javapropertiesMITMITMITexact
devel/py-keystone-engineBSD3CLAUSEBSD-3-ClauseBSD-3-Clause95.3%retag
devel/py-maturinAPACHE20Apache-2.0Apache-2.098.2%extra licenseApache-2.0,CAL-1.0,CAL-1.0-Combined-Work-Exception,CC-BY-4.0,GPL-2.0+,MIT,MPL-2.0,Unicode-3.0
MITMITMIT100.0%extra licenseApache-2.0,CAL-1.0,CAL-1.0-Combined-Work-Exception,CC-BY-4.0,GPL-2.0+,MIT,MPL-2.0,Unicode-3.0
devel/py-mergedeepMITMITMITexact
devel/py-os-service-typesAPACHE20Apache-2.0Apache-2.098.1%retag
devel/py-oslotestAPACHE20Apache-2.0Apache-2.098.1%retag
devel/py-pymaven-patchAPACHE20Apache-2.0Apache-2.098.1%retag
devel/py-python-subunitAPACHE20Apache-2.0no match
BSD3CLAUSEBSD-3-Clauseno match
devel/py-saneyamlAPACHE20Apache-2.0Apache-2.098.2%extra licenseApache-2.0,Apache-2.0^M,BSD-2-Clause-Views
devel/py-schematics-patchedBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.5%retag
devel/py-strawberry-graphqlMITMITMITexact
devel/py-strict-rfc3339GPLv3GPL-3.0-onlyGPL-3.0-only99.5%retag
devel/py-swagger-spec-validatorAPACHE20Apache-2.0no match
devel/py-testrepositoryAPACHE20Apache-2.0Apache-2.098.1%retag
BSD3CLAUSEBSD-3-ClauseBSD-3-Clause95.8%close
devel/py-tzdataAPACHE20Apache-2.0no match
devel/py-yamlloaderMITMITno match
emulators/ucon64GPLv2+GPL-2.0-or-laterGPL-2.0+94.0%mismatch
finance/py-python-bitcoinlibLGPL3+LGPL-3.0-or-laterno match
games/ankiAGPLv3+AGPL-3.0-or-laterunresolved
games/pysolfcGPLv2+GPL-2.0-or-laterno match
GPLv3+GPL-3.0-or-laterGPL-3.0-or-later99.5%retag
games/scummvmGPLv3+GPL-3.0-or-laterGPL-3.0-or-later99.5%extra license(WTFPL,Apache-2.0,MIT
games/scummvm-toolsGPLv3+GPL-3.0-or-laterGPL-3.0-or-later99.5%retag
graphics/impressiveGPLv2GPL-2.0-onlyGPL-2.0+99.7%mismatch
graphics/py-dj60-sorl-thumbnailBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.4%close
graphics/py-django-easy-thumbnailsBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.3%close
graphics/py-img2pdfLGPL3+LGPL-3.0-or-laterLGPL-3.0-or-later31.4%retag
graphics/py-py_svg_hushMITMITMIT100.0%extra licenseApache-2.0
graphics/py-rlpycairoBSD3CLAUSEBSD-3-Clauseunresolved
graphics/unpaperGPLv2GPL-2.0-onlyGPL-2.0-only100.0%extra license0BSD,Apache-2.0,GPL-2.0-only,MIT
mail/py-validate_emailLGPL3+LGPL-3.0-or-laterno match
math/py-random2PSFLPSF-2.0unresolved
net-mgmt/netboxAPACHE20Apache-2.0Apache-2.098.1%retag
net-mgmt/py-ciscoconfparseGPLv3+GPL-3.0-or-laterGPL-3.0-or-later99.5%retag
net-mgmt/py-ciscoconfparse2GPLv3+GPL-3.0-or-laterGPL-3.0-or-later99.5%retag
net-mgmt/py-hier-configMITMITMITexact
net-mgmt/py-napalmAPACHE20Apache-2.0Apache-2.098.2%retag
net-mgmt/py-napalm-logsAPACHE20Apache-2.0Pixar99.2%mismatch
net-mgmt/py-netutilsAPACHE20Apache-2.0no match
net-mgmt/py-phonebox-pluginMITMITMITexact
net-mgmt/py-pyeapiBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.8%retag
net-mgmt/py-pynetboxAPACHE20Apache-2.0Pixar99.3%mismatch
net/py-ldappoolMPL20MPL-2.0unresolved
net/py-macaddressBSD0CLAUSE0BSD0BSD99.6%close0BSD
science/py-ruffusMITMITMITexact
security/py-netbox-secretsAPACHE20Apache-2.0Apache-2.098.1%retag
security/py-netmikoMITMITMITexact
security/py-social-auth-core4BSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.6%retag
textproc/py-backrefsMITMITMITexact
textproc/py-docstring_parserMITMITMITexact
textproc/py-dparseMITMITMITexact
textproc/py-fingerprintsMITMITMITexact
textproc/py-griffeISCLISCISC100.0%retagISC
textproc/py-griffecliISCLISCISC100.0%retagISC
textproc/py-griffelibISCLISCISC100.0%retagISC
textproc/py-license-expressionAPACHE20Apache-2.0no matchApache-2.0,Apache-2.0^M,BSD-2-Clause-Views,LicenseRef-scancode-public-domain
textproc/py-markdown-calloutsMITMITMITexact
textproc/py-markdown-includeGPLv3+GPL-3.0-or-laterGPL-3.0+99.9%mismatch
textproc/py-mkdocsBSD2CLAUSEBSD-2-ClauseBSD-2-Clause100.0%retag
textproc/py-mkdocs-autorefsISCLISCISC100.0%retag
textproc/py-mkdocs-get-depsMITMITMITexact
textproc/py-mkdocs-materialMITMITMITexact
textproc/py-mkdocs-material-extensionsMITMITMITexact
textproc/py-mkdocs-natureBSD2CLAUSEBSD-2-Clauseno match
textproc/py-mkdocs-rss-pluginMITMITMITexact
textproc/py-mkdocstringsISCLISCISC100.0%retag
textproc/py-mkdocstrings-crystalMITMITMITexact
textproc/py-mkdocstrings-pythonISCLISCISC100.0%retag
textproc/py-mkdocstrings-python-legacyISCLISCISC100.0%retag
textproc/py-normalityMITMITMITexact
textproc/py-ntc-templatesAPACHE20Apache-2.0no match
textproc/py-ocrmypdfMPL20MPL-2.0MPL-2.0100.0%extra licenseAGPL-3.0-or-later,CC-BY-SA-4.0,MIT,MPL-2.0
textproc/py-openstackdocsthemeAPACHE20Apache-2.0Apache-2.098.1%retag
textproc/py-os-api-refAPACHE20Apache-2.0Apache-2.098.1%retag
textproc/py-packageurl-pythonMITMITMITexactMIT
textproc/py-paginateMITMITMITexact
textproc/py-pdfminer.sixMITMITMITexact
textproc/py-pyahocorasickBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.5%retag
textproc/py-pymdown-extensionsMITMITno match
textproc/py-pypa-docs-themePSFLPSF-2.0PSF-2.098.7%retag
textproc/py-python-docs-themePSFLPSF-2.0PSF-2.098.7%retag
textproc/py-python-xmp-toolkitBSD3CLAUSEBSD-3-ClauseBSD-3-Clause-HP95.1%mismatch
textproc/py-pytkdocsISCLISCISC100.0%retag
textproc/py-readtimeBSD2CLAUSEBSD-2-ClauseBSD-2-Clause98.0%close
textproc/py-renoAPACHE20Apache-2.0Apache-2.098.1%retag
textproc/py-tablibMITMITMITexact
textproc/py-textfsmAPACHE20Apache-2.0Apache-2.098.1%retag
textproc/py-ttp-templatesMITMITMITexact
textproc/py-wavedromMITMITMITexactMIT
textproc/py-zensicalMITMITMIT99.8%extra licenseApache-2.0,BSD-2-Clause,MIT,Unicode-3.0
www/py-cross-webMITMITMITexact
www/py-dj-database-urlBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.6%retag
www/py-dj60-channelsBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.6%retag
www/py-dj60-django-auth-ldapBSD2CLAUSEBSD-2-ClauseBSD-2-Clause99.0%retag
www/py-dj60-django-choices-fieldMITMITMITexact
www/py-dj60-django-cors-headersMITMITMITexact
www/py-dj60-django-debug-toolbarBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.6%retag
www/py-dj60-django-filterBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.1%retag
www/py-dj60-django-htmxMITMITMITexact
www/py-dj60-django-js-assetBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.5%retag
www/py-dj60-django-mpttMITMITMITexact
www/py-dj60-django-prometheusAPACHE20Apache-2.0Pixar99.2%mismatch
www/py-dj60-django-redisBSD3CLAUSEBSD-3-ClauseBSD-3-Clause95.2%retag
www/py-dj60-django-richMITMITMITexact
www/py-dj60-django-storagesBSD3CLAUSEBSD-3-ClauseBSD-3-Clause99.3%retag
www/py-dj60-django-tables2BSD2CLAUSEBSD-2-ClauseBSD-2-Clause90.7%retag
www/py-dj60-django-taggitBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.5%retag
www/py-dj60-django-timezone-fieldBSD2CLAUSEBSD-2-ClauseBSD-2-Clause99.2%retag
www/py-dj60-djangorestframeworkBSD2CLAUSEBSD-2-ClauseBSD-3-Clause99.3%mismatch
www/py-dj60-drf-spectacularBSD3CLAUSEBSD-3-ClauseBSD-3-Clause99.3%retag
www/py-dj60-drf-spectacular-sidecarBSD3CLAUSEBSD-3-ClauseBSD-3-Clause99.3%retag
www/py-dj60-social-auth-app-djangoBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.6%retag
www/py-dj60-strawberry-graphql-djangoMITMITMITexact
www/py-django-assetsBSD2CLAUSEBSD-2-ClauseBSD-2-Clause99.2%retag
www/py-django-auth-ldapBSD2CLAUSEBSD-2-ClauseBSD-2-Clause99.0%retag
www/py-django-bootstrap3BSD3CLAUSEBSD-3-ClauseBSD-3-Clause99.3%retag
www/py-django-cacheopsBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.8%retag
www/py-django-choices-fieldMITMITMITexact
www/py-django-configuratorBSD3CLAUSEBSD-3-ClauseBSD-3-Clause100.0%retag
www/py-django-cors-headersMITMITMITexact
www/py-django-cspBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.5%retag
www/py-django-debreachBSD2CLAUSEBSD-2-ClauseBSD-2-Clause99.2%retag
www/py-django-filerBSD2CLAUSEBSD-2-ClauseBSD-3-Clause95.3%mismatch
www/py-django-filterBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.1%retag
www/py-django-graphiql-debug-toolbarMITMITMITexact
www/py-django-htmxMITMITMITexact
www/py-django-js-assetBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.5%retag
www/py-django-mpttMITMITMITexact
www/py-django-netfieldsBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.6%retag
www/py-django-pglocksMITMITno match
www/py-django-prometheusAPACHE20Apache-2.0Pixar99.2%mismatch
www/py-django-radiusBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.9%retag
www/py-django-ranged-responseMITMITunresolved
www/py-django-reversionBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.5%retag
www/py-django-richMITMITMITexact
www/py-django-tables2BSD2CLAUSEBSD-2-ClauseBSD-2-Clause90.7%retag
www/py-django-taggitBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.5%retag
www/py-django-tastypieBSD3CLAUSEBSD-3-ClauseBSD-3-Clause97.3%retag
www/py-django-timezone-fieldBSD2CLAUSEBSD-2-ClauseBSD-2-Clause99.2%retag
www/py-django-tinymceMITMITMITexact
www/py-django-tree-queriesBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.6%retag
www/py-django-treebeardAPACHE20Apache-2.0Pixar99.3%mismatch
www/py-djangocms-admin-styleBSD3CLAUSEBSD-3-ClauseBSD-3-Clause97.0%retag
www/py-djangorestframeworkBSD2CLAUSEBSD-2-ClauseBSD-3-Clause99.3%mismatch
www/py-drf-spectacularBSD3CLAUSEBSD-3-ClauseBSD-3-Clause99.3%retag
www/py-drf-spectacular-sidecarBSD3CLAUSEBSD-3-ClauseBSD-3-Clause99.3%retag
www/py-drf-yasgBSD3CLAUSEBSD-3-ClauseBSD-3-Clause96.2%retag
www/py-livereloadBSD3CLAUSEBSD-3-ClauseBSD-3-Clause99.3%retag
www/py-nh3MITMITMIT100.0%extra licenseApache-2.0,Unicode-3.0
www/py-social-auth-app-djangoBSD3CLAUSEBSD-3-ClauseBSD-3-Clause98.6%retag
www/py-strawberry-graphql-djangoMITMITMITexact
www/py-urlwatchBSD3CLAUSEBSD-3-ClauseBSD-3-Clause95.2%retag
www/py-webassetsBSD2CLAUSEBSD-2-ClauseBSD-2-Clause99.2%retag