The project's only runtime dependency is PyUSB (BSD-3-Clause) and it bundles no third-party code (the PWA's DES/3DES is written from the FIPS 46-3 tables, AES uses WebCrypto, the decoders come from the ISO 7816/ETSI/3GPP specs), so nothing forced GPL; the GPL-2.0-or-later declaration is replaced with MIT. - LICENSE: the MIT text, Copyright (c) 2026 Anton Troshin. - pyproject: license = "MIT" + license-files = ["LICENSE"] (PEP 639), and the build requirement moves to setuptools>=77 for the SPDX form. The wheel now carries dist-info/licenses/LICENSE and License-Expression: MIT, the sdist and the runtime zip carry LICENSE at the top. - READMEs (EN/RU): a License section (original decoders/DES implementation, PyUSB as the only runtime dependency). - tests: the packaging test pins the MIT declaration and the LICENSE text; the release-zip test requires LICENSE in the archive. - version 2.7.13; SW cache v95. Copies published before this tag (v2.7.10-v2.7.12) remain under the license they were released with.
This commit is contained in:
1 parent
e00a96b918
commit
5fcd8e9fd6
12 files changed
+62
-13
No files matched your search
@@ -70,6 +70,15 @@ class TestDistributionMetadata(unittest.TestCase):
|
||||
# The sdist carries frontend/, so a wheel built from it has the PWA.
|
||||
self.assertIn('graft frontend', self._read('MANIFEST.in'))
|
||||
|
||||
def test_license_is_mit(self):
|
||||
# The project is MIT; the metadata and the file must not drift apart.
|
||||
pyproject = self._read('pyproject.toml')
|
||||
self.assertIn('license = "MIT"', pyproject)
|
||||
self.assertIn('license-files = ["LICENSE"]', pyproject)
|
||||
license_text = self._read('LICENSE')
|
||||
self.assertTrue(license_text.startswith('MIT License\n'))
|
||||
self.assertIn('Permission is hereby granted, free of charge', license_text)
|
||||
|
||||
def test_setup_py_bundles_the_pwa(self):
|
||||
setup_py = self._read('setup.py')
|
||||
self.assertIn('frontend', setup_py)
|
||||
|
||||
@@ -224,7 +224,7 @@ class TestImportEndpoint(unittest.TestCase):
|
||||
class TestVersion(unittest.TestCase):
|
||||
def test_package_version(self):
|
||||
from simtrace2_pysniff import __version__
|
||||
self.assertEqual(__version__, '2.7.12')
|
||||
self.assertEqual(__version__, '2.7.13')
|
||||
|
||||
def test_status_includes_version(self):
|
||||
import os
|
||||
|
||||
@@ -51,6 +51,7 @@ class TestReleaseZip(unittest.TestCase):
|
||||
'sniff-start.sh',
|
||||
'sniff-start.bat',
|
||||
'70-simtrace2-pysniff.rules',
|
||||
'LICENSE',
|
||||
'README.md'):
|
||||
self.assertIn('%s/%s' % (top, rel), self.names)
|
||||
|
||||
|
||||
Reference in new issue
Block a user