binwalk fails to build with Python 3.14.0a3. 4 tests fail with the same traceback FAILED test_firmware_gzip.py::test_firmware_gzip - AssertionError FAILED test_firmware_jffs2.py::test_firmware_jffs2 - AssertionError FAILED test_firmware_squashfs.py::test_firmware_squashfs - AssertionError FAILED test_firmware_zip.py::test_firmware_zip - AssertionError Example failure: ______________________________ test_firmware_gzip ______________________________ def test_firmware_gzip(): ''' Test: Open firmware.gzip, scan for signatures. Verify that only one gzip signature was detected. ''' input_vector_file = os.path.join(os.path.dirname(__file__), "input-vectors", "firmware.gzip") scan_result = binwalk.scan(input_vector_file, signature=True, quiet=True) # Test number of modules used eq_(len(scan_result), 1) # There should be only one result > eq_(len(scan_result[0].results), 1) test_firmware_gzip.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ a = 0, b = 1 def eq_(a, b): > assert a == b E AssertionError _nose_shim.py:2: AssertionError ----------------------------- Captured stderr call ----------------------------- Signature Exception: unsupported operand type(s) for +=: 'NoneType' and 'int' ---------------------------------------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILD/binwalk-2.3.4-build/BUILDROOT/usr/lib/python3.14/site-packages/binwalk/core/module.py", line 595, in main retval = self.run() File "/builddir/build/BUILD/binwalk-2.3.4-build/BUILDROOT/usr/lib/python3.14/site-packages/binwalk/modules/signature.py", line 192, in run self.scan_file(fp) ~~~~~~~~~~~~~~^^^^ File "/builddir/build/BUILD/binwalk-2.3.4-build/BUILDROOT/usr/lib/python3.14/site-packages/binwalk/modules/signature.py", line 150, in scan_file for r in self.magic.scan(data, dlen): ~~~~~~~~~~~~~~~^^^^^^^^^^^^ File "/builddir/build/BUILD/binwalk-2.3.4-build/BUILDROOT/usr/lib/python3.14/site-packages/binwalk/core/magic.py", line 827, in scan tags = self._analyze(signature, offset) File "/builddir/build/BUILD/binwalk-2.3.4-build/BUILDROOT/usr/lib/python3.14/site-packages/binwalk/core/magic.py", line 584, in _analyze line_offset = self._do_math(offset, line_offset_text) File "/builddir/build/BUILD/binwalk-2.3.4-build/BUILDROOT/usr/lib/python3.14/site-packages/binwalk/core/magic.py", line 505, in _do_math o += offset TypeError: unsupported operand type(s) for +=: 'NoneType' and 'int' ---------------------------------------------------------------------------------------------------- https://docs.python.org/3.14/whatsnew/3.14.html For the build logs, see: https://copr-be.cloud.fedoraproject.org/results/@python/python3.14/fedora-rawhide-x86_64/08480129-binwalk/ For all our attempts to build binwalk with Python 3.14, see: https://copr.fedorainfracloud.org/coprs/g/python/python3.14/package/binwalk/ Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.14: https://copr.fedorainfracloud.org/coprs/g/python/python3.14/ Let us know here if you have any questions. Python 3.14 is planned to be included in Fedora 43. To make that update smoother, we're building Fedora packages with all pre-releases of Python 3.14. A build failure prevents us from testing all dependent packages (transitive [Build]Requires), so if this package is required a lot, it's important for us to get it fixed soon. We'd appreciate help from the people who know this package best, but if you don't want to work on this now, let us know so we can try to work around it on our side.
This bug appears to have been reported against 'rawhide' during the Fedora Linux 42 development cycle. Changing version to 42.
*** Bug 2371682 has been marked as a duplicate of this bug. ***