From 59db0c7954ae5b4378acd247a69f5d0946867a13626098b06cea567c77acd5de Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Wed, 19 Mar 2025 12:28:08 +0000 Subject: [PATCH] - 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) OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyelftools?expand=0&rev=23 --- .gitattributes | 23 ++++++ .gitignore | 1 + pyelftools-0.31.tar.gz | 3 + pyelftools-0.32.tar.gz | 3 + python-pyelftools.changes | 149 ++++++++++++++++++++++++++++++++++++++ python-pyelftools.spec | 74 +++++++++++++++++++ 6 files changed, 253 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 pyelftools-0.31.tar.gz create mode 100644 pyelftools-0.32.tar.gz create mode 100644 python-pyelftools.changes create mode 100644 python-pyelftools.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/pyelftools-0.31.tar.gz b/pyelftools-0.31.tar.gz new file mode 100644 index 0000000..4e1d5d7 --- /dev/null +++ b/pyelftools-0.31.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c774416b10310156879443b81187d182d8d9ee499660380e645918b50bc88f99 +size 14108889 diff --git a/pyelftools-0.32.tar.gz b/pyelftools-0.32.tar.gz new file mode 100644 index 0000000..5c23cba --- /dev/null +++ b/pyelftools-0.32.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6de90ee7b8263e740c8715a925382d4099b354f29ac48ea40d840cf7aa14ace5 +size 15047199 diff --git a/python-pyelftools.changes b/python-pyelftools.changes new file mode 100644 index 0000000..e107e5a --- /dev/null +++ b/python-pyelftools.changes @@ -0,0 +1,149 @@ +------------------------------------------------------------------- +Wed Mar 19 10:02:03 UTC 2025 - John Paul Adrian Glaubitz + +- 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 16:59:56 UTC 2024 - Dirk Müller + +- 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 17:04:54 UTC 2024 - Daniel Garcia + +- Add %{?sle15_python_module_pythons} + +------------------------------------------------------------------- +Thu Dec 14 20:57:11 UTC 2023 - Dirk Müller + +- 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 00:06:09 UTC 2022 - Yogalakshmi Arunachalam + +- 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 08:09:29 UTC 2022 - Dirk Müller + +- 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 04 21:40:51 UTC 2021 - Mustafa Çalışkan + +- 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 07:26:24 UTC 2020 - Petr Gajdos + +- %python3_only -> %python_alternative + +------------------------------------------------------------------- +Thu Mar 19 14:07:18 UTC 2020 - Marketa Calabkova + +- 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 09:32:46 UTC 2019 - Tomáš Chvátal + +- 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 13:24:57 UTC 2018 - yousaf.kaukab@suse.com + +- Intial package diff --git a/python-pyelftools.spec b/python-pyelftools.spec new file mode 100644 index 0000000..375a570 --- /dev/null +++ b/python-pyelftools.spec @@ -0,0 +1,74 @@ +# +# 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: 0 +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