# # spec file for package python-pyelftools # # Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %{?sle15_python_module_pythons} Name: python-pyelftools Version: 0.32 Release: 1.1 Summary: Library for analyzing ELF files and DWARF debugging information License: SUSE-Public-Domain Group: Development/Languages/Python URL: https://github.com/eliben/pyelftools Source: https://files.pythonhosted.org/packages/source/p/pyelftools/pyelftools-%{version}.tar.gz BuildRequires: %{python_module pip} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module wheel} BuildRequires: fdupes BuildRequires: python-rpm-macros Requires(post): update-alternatives Requires(postun): update-alternatives BuildArch: noarch %python_subpackages %description pyelftools is a pure python library for analyzing ELF files and DWARF debugging information %prep %autosetup -p1 -n pyelftools-%{version} %build %pyproject_wheel %install %pyproject_install %python_clone -a %{buildroot}%{_bindir}/readelf.py %python_expand %fdupes %{buildroot}%{$python_sitelib} %check # Tests fails due to missing files. # https://github.com/eliben/pyelftools/issues/349 #%%python_exec test/run_all_unittests.py %python_exec test/run_examples_test.py # May fail due to minor differences in the output of readelf # https://github.com/eliben/pyelftools/wiki/Hacking-guide#tests %python_exec test/run_readelf_tests.py || : %post %python_install_alternative readelf.py %postun %python_uninstall_alternative readelf.py %files %{python_files} %license LICENSE %doc CHANGES %python_alternative %{_bindir}/readelf.py %{python_sitelib}/elftools %{python_sitelib}/pyelftools-%{version}*-info %changelog * Wed Mar 19 2025 John Paul Adrian Glaubitz <adrian.glaubitz@suse.com> - Update to 0.32 * Fix minor typos in README.rst (#546) * DW_FORM_implicit_const is an integer const (#547) * Fix for crash on CUs with no lineprograms (#549) * Update action versions (#550) * GNU readelf 2.42, released April 2024 (#551) * Exceptions on malformed ELF header contents (#552) * 24 bit integer support, forms strx3, addrx3 (#553) * cfi: fix not parsing DW_CFA_def_cfa_offset_sf (#555) * Parser performanc test (#556) * Performance enhancements (#557) * Missed some CPU specific section types (#559) * Add missing riscv attributes (#560) * CIEv4 and FDE ahead of its CIE (#563) * Addding relocation type for PPC 32 EABI (#532) * Support for .gnu_debuglink DWARF5 Section (#525) * Clean up whitespace * Added XHASH to ENUM_D_TAG_MIPS (#571) * Section type check on dynamic to strtab link (#573) * Check for SHN_UNDEF during symbol dumping (#574) * PAGESIZE replaced with a constant (#578) * examples: Support DWARF5 filename decoding (#582) * Fix for parsing error encountered when pyelftools tries to parse non GNU notes that conflicting with known GNU note types. (#584) * [RISCV] Add GNU note property and CFI support (#587) * No crash on note with zero length name (#592) * Support for parsing .debug_types section introduced in DWARF version 4 (#520) * DW_FORM_ref_sig8 support (#595) * Describing volatile C++ datatypes (#597) * Stripped file and gnu_debuglink support take 2 (#596) * Thu Mar 21 2024 Dirk Müller <dmueller@suse.com> - update to 0.31: * Fix iter_notes to handle > 4byte segment alignment * Fix buffer overrun in NT_GNU_PROPERTY_TYPE_0 parser * add enum for v850 relocations * support for the gnu note with the aarch64 features * full changes see https://github.com/eliben/pyelftools/compare/v0.30...v0.31 * Tue Jan 16 2024 Daniel Garcia <daniel.garcia@suse.com> - Add %%{?sle15_python_module_pythons} * Thu Dec 14 2023 Dirk Müller <dmueller@suse.com> - update to update to 0.30: * Optimization: cache instantiation of DWARF structs * DWARFv5 CU headers * Bug fix in attribute reporting for DWA_FORM_indirect * Support for RISC-V attributes * Readelf used for testing upgraded to 2.41 * Support for MIPS64 object files * LoongArch support * Wed Oct 5 2022 Yogalakshmi Arunachalam <yarunachalam@suse.com> - Update to version 0.29 (2022.08.09) - Lots of improvements to DWARFv5 support (#400, #411, #418, #419, #429 and additional PRs) - Support for compressed relocation sections (#395) - Support for supplementary object files - debug fission (#426) - Improved support for corrupted ELF headers (#434) - Readelf used for testing upgraded to 2.38 (#420) - Add auto-testing vs. llvm-dwarfdump (#428) * Mon Mar 21 2022 Dirk Müller <dmueller@suse.com> - update to 0.28: * Added a method for returning the index of a section by name * Allow filtering by section types in iter_sections * Support Android compressed rel/rela sections * Initial support for PPC64LE * Initial DWARF v5 support * Fixed parsing for structures containing uids or gids in core dumps * Allow filtering by segment types in iter_segments * Add support for .note.gnu.property * Update readelf tests to work with more recent version of readelf * Add support for note GNU_PROPERTY_X86_FEATURE_1_AND * Sun Apr 4 2021 Mustafa Çalışkan <musfay@protonmail.com> - Update to version 0.27: * Add a bit more details to dwarf_pubnames_types example * Make dwarf_pubnames_types example a bit more general * Replace field access with property name access * DebugSectionDescriptor.size initialized with decompressed section size (#339) * hash.py: observe endianness when reading hashes (#338) * DWARFv1 constants in enums, DW_FORM_ref parsing (#335) * elf: support for ELF files with a large number of sections (#333) * Remove Travis config * Wed May 20 2020 Petr Gajdos <pgajdos@suse.com> - %%python3_only -> %%python_alternative * Thu Mar 19 2020 Marketa Calabkova <mcalabkova@suse.com> - Update to 0.26 * Call relocation for ARM v3 (#194) * More complete architecture coverage for ENUM_E_MACHINE (#206) * Support for .debug_pubtypes and .debug_pubnames sections (#208) * Support for DWARF v4 location lists (#214) * Decode strings in dynamic string tables (#217) * Improve symbol table handling in dynamic segments (#219) * Improved handling of location information (#225) * Avoid deprecation warnings in Python 3.7+ * Add DWARF v5 OPs (#240) * Handle many new translation forms and constants * Lazy DIE parsing to speed up partial parsing of DWARF info (#249) * Sat May 25 2019 Tomáš Chvátal <tchvatal@suse.com> - Update to 0.25: - Make parsing of SH_TYPE and PT_TYPE fields dependent on the machine (e_machine header field), making it possible to support conflicting type enums between different machines (#71 and #121). - Add parsing and readelf dumping for .eh_frame (#155) - Support compressed sections (#152) - Better support for parsing core dumps (#147) - More comprehensive handling of ARM relocations (#121) - Convert all ascii encoding to utf-8 encoding (#182) - Don't attempt to hex/string dump SHT_NOBITS sections in readelf (#119). - Test with Python 3.6 - Minor bugfixes (#118) - Cleanup: Use argparse instead of optparse - Make readelf comparison tests run in parallel using multiprocessing; cuts testing time 3-5x - Improvements in MIPS flags handling (#165) * Fri May 18 2018 yousaf.kaukab@suse.com - Intial package