15
0

- Convert to libalternatives on SLE-16-based and newer systems

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyelftools?expand=0&rev=25
This commit is contained in:
2025-08-25 12:08:21 +00:00
committed by Git OBS Bridge
commit 973ba68e82
6 changed files with 271 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@@ -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

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.osc

BIN
pyelftools-0.31.tar.gz LFS Normal file

Binary file not shown.

BIN
pyelftools-0.32.tar.gz LFS Normal file

Binary file not shown.

154
python-pyelftools.changes Normal file
View File

@@ -0,0 +1,154 @@
-------------------------------------------------------------------
Mon Aug 25 12:08:01 UTC 2025 - Markéta Machová <mmachova@suse.com>
- Convert to libalternatives on SLE-16-based and newer systems
-------------------------------------------------------------------
Wed Mar 19 10:02:03 UTC 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 16:59:56 UTC 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 17:04:54 UTC 2024 - Daniel Garcia <daniel.garcia@suse.com>
- Add %{?sle15_python_module_pythons}
-------------------------------------------------------------------
Thu Dec 14 20:57:11 UTC 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 00:06:09 UTC 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 08:09:29 UTC 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 04 21:40:51 UTC 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 07:26:24 UTC 2020 - Petr Gajdos <pgajdos@suse.com>
- %python3_only -> %python_alternative
-------------------------------------------------------------------
Thu Mar 19 14:07:18 UTC 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 09:32:46 UTC 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 13:24:57 UTC 2018 - yousaf.kaukab@suse.com
- Intial package

87
python-pyelftools.spec Normal file
View File

@@ -0,0 +1,87 @@
#
# spec file for package python-pyelftools
#
# Copyright (c) 2025 SUSE LLC and contributors
#
# 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/
#
%if 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
%{?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
BuildArch: noarch
%if %{with libalternatives}
BuildRequires: alts
Requires: alts
%else
Requires(post): update-alternatives
Requires(postun): update-alternatives
%endif
%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
%pre
%python_libalternatives_reset_alternative readelf.py
%files %{python_files}
%license LICENSE
%doc CHANGES
%python_alternative %{_bindir}/readelf.py
%{python_sitelib}/elftools
%{python_sitelib}/pyelftools-%{version}*-info
%changelog