From ffe3e84e7ebdfe6397ed03f15997f5fcd7af3fe8 Mon Sep 17 00:00:00 2001 From: Travis Hathaway Date: Thu, 30 Jan 2025 13:43:08 +0100 Subject: [PATCH 1/3] Bumping version of conda-sphinx-theme to 0.2.3 (25.1.x) (#5606) --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index 62b7b85792..877daf63a2 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,7 +1,7 @@ Pillow==10.0.1 PyYAML==6.0.1 Sphinx==8.1.3 -conda-sphinx-theme==0.2.2 +conda-sphinx-theme==0.2.3 linkify-it-py==2.0.2 myst-parser==4.0.0 pylint==2.17.5 From a330c4d38e931e883826c8d9817b62a87730c382 Mon Sep 17 00:00:00 2001 From: Tony Kelman Date: Mon, 3 Feb 2025 18:23:35 -0800 Subject: [PATCH 2/3] handle lief 0.15 renaming of LOAD_COMMAND_TYPES and ELF_CLASS (#5595) * handle lief 0.15 renaming of LOAD_COMMAND_TYPES https://lief.re/doc/stable/changelog.html#july-21th-2024 * Create 5595-more-lief-compat * adapt rpath tests for LOAD_COMMAND_TYPES renaming * lief.ELF.ELF_CLASS was moved to lief.ELF.Header.CLASS in lief 0.15 * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- conda_build/os_utils/liefldd.py | 29 +++++++++++-------- news/5595-more-lief-compat | 19 ++++++++++++ tests/test-recipes/metadata/_rpath/meta.yaml | 2 +- .../metadata/_rpath_symlink/meta.yaml | 2 +- 4 files changed, 38 insertions(+), 14 deletions(-) create mode 100644 news/5595-more-lief-compat diff --git a/conda_build/os_utils/liefldd.py b/conda_build/os_utils/liefldd.py index b3b155c6c5..c1938590e3 100644 --- a/conda_build/os_utils/liefldd.py +++ b/conda_build/os_utils/liefldd.py @@ -44,6 +44,16 @@ except AttributeError: # Fallback for lief<0.15. ELF_DYNAMIC_TAGS = lief.ELF.DYNAMIC_TAGS + try: + LOAD_COMMAND_TYPES = lief.MachO.LoadCommand.TYPE + except AttributeError: + # Fallback for lief<0.15. + LOAD_COMMAND_TYPES = lief.MachO.LOAD_COMMAND_TYPES + try: + ELF_CLASS = lief.ELF.Header.CLASS + except AttributeError: + # Fallback for lief<0.15. + ELF_CLASS = lief.ELF.ELF_CLASS except ImportError: have_lief = False @@ -134,7 +144,7 @@ def get_libraries(file): binary_name = [ command.name for command in binary.commands - if command.command == lief.MachO.LOAD_COMMAND_TYPES.ID_DYLIB + if command.command == LOAD_COMMAND_TYPES.ID_DYLIB ] binary_name = binary_name[0] if len(binary_name) else None result = [ @@ -193,10 +203,7 @@ def get_rpathy_thing_raw_partial(file, elf_attribute, elf_dyn_tag): binary_format = binary.format if binary_format == EXE_FORMATS.ELF: binary_type = binary.type - if ( - binary_type == lief.ELF.ELF_CLASS.CLASS32 - or binary_type == lief.ELF.ELF_CLASS.CLASS64 - ): + if binary_type == ELF_CLASS.CLASS32 or binary_type == ELF_CLASS.CLASS64: rpaths = _get_elf_rpathy_thing(binary, elf_attribute, elf_dyn_tag) elif ( binary_format == EXE_FORMATS.MACHO @@ -207,7 +214,7 @@ def get_rpathy_thing_raw_partial(file, elf_attribute, elf_dyn_tag): [ command.path for command in binary.commands - if command.command == lief.MachO.LOAD_COMMAND_TYPES.RPATH + if command.command == LOAD_COMMAND_TYPES.RPATH ] ) return rpaths, binary_format, binary_type @@ -250,8 +257,7 @@ def set_rpath(old_matching, new_rpath, file): if not binary: return if binary.format == EXE_FORMATS.ELF and ( - binary.type == lief.ELF.ELF_CLASS.CLASS32 - or binary.type == lief.ELF.ELF_CLASS.CLASS64 + binary.type == ELF_CLASS.CLASS32 or binary.type == ELF_CLASS.CLASS64 ): if _set_elf_rpathy_thing( binary, old_matching, new_rpath, set_rpath=True, set_runpath=False @@ -339,7 +345,7 @@ def from_os_varnames(binary_format, binary_type, input_): .replace("@rpath", "$RPATH") ) elif binary_format == EXE_FORMATS.ELF: - if binary_type == lief.ELF.ELF_CLASS.CLASS64: + if binary_type == ELF_CLASS.CLASS64: libdir = "/lib64" else: libdir = "/lib" @@ -365,8 +371,7 @@ def get_uniqueness_key(filename, file): elif binary.format == EXE_FORMATS.MACHO: return filename elif binary.format == EXE_FORMATS.ELF and ( # noqa - binary.type == lief.ELF.ELF_CLASS.CLASS32 - or binary.type == lief.ELF.ELF_CLASS.CLASS64 + binary.type == ELF_CLASS.CLASS32 or binary.type == ELF_CLASS.CLASS64 ): dynamic_entries = binary.dynamic_entries result = [e.name for e in dynamic_entries if e.tag == ELF_DYNAMIC_TAGS.SONAME] @@ -483,7 +488,7 @@ def inspect_linkages_lief( if not binary: default_paths = [] elif binary.format == EXE_FORMATS.ELF: - if binary.type == lief.ELF.ELF_CLASS.CLASS64: + if binary.type == ELF_CLASS.CLASS64: default_paths = [ "$SYSROOT/lib64", "$SYSROOT/usr/lib64", diff --git a/news/5595-more-lief-compat b/news/5595-more-lief-compat new file mode 100644 index 0000000000..7e4fe53bed --- /dev/null +++ b/news/5595-more-lief-compat @@ -0,0 +1,19 @@ +### Enhancements + +* Additional compatibility fixes for LIEF>=0.15. (#5594 via #5595) + +### Bug fixes + +* + +### Deprecations + +* + +### Docs + +* + +### Other + +* diff --git a/tests/test-recipes/metadata/_rpath/meta.yaml b/tests/test-recipes/metadata/_rpath/meta.yaml index 1a9ba6a97f..87459cfce6 100755 --- a/tests/test-recipes/metadata/_rpath/meta.yaml +++ b/tests/test-recipes/metadata/_rpath/meta.yaml @@ -19,4 +19,4 @@ test: commands: - python -c "import lief; binary = lief.parse(\"${PREFIX}/bin/rpath\"); print([e.rpath for e in binary.dynamic_entries if e.tag == getattr(lief.ELF, 'DYNAMIC_TAGS', getattr(lief.ELF.DynamicEntry, 'TAG', None)).RPATH])" # [linux] - python -c "import lief; binary = lief.parse(\"${PREFIX}/bin/rpath\"); print([e.rpath for e in binary.dynamic_entries if e.tag == getattr(lief.ELF, 'DYNAMIC_TAGS', getattr(lief.ELF.DynamicEntry, 'TAG', None)).RPATH])" | grep \$ORIGIN/../previous:\$ORIGIN/../lib:\$ORIGIN/../plugins:\$ORIGIN/../successive # [linux] - - python -c "import lief; binary = lief.parse(\"${PREFIX}/bin/rpath\"); print(':'.join([command.path.rstrip('/') for command in binary.commands if command.command == lief.MachO.LOAD_COMMAND_TYPES.RPATH]))" | grep ${PREFIX}/../previous:${PREFIX}/../lib:${PREFIX}/plugins:${PREFIX}/../successive # [osx] + - python -c "import lief; binary = lief.parse(\"${PREFIX}/bin/rpath\"); print(':'.join([command.path.rstrip('/') for command in binary.commands if command.command == getattr(lief.MachO, 'LOAD_COMMAND_TYPES', getattr(lief.MachO.LoadCommand, 'TYPE', None)).RPATH]))" | grep ${PREFIX}/../previous:${PREFIX}/../lib:${PREFIX}/plugins:${PREFIX}/../successive # [osx] diff --git a/tests/test-recipes/metadata/_rpath_symlink/meta.yaml b/tests/test-recipes/metadata/_rpath_symlink/meta.yaml index 8d50f711ab..ef7ec6a27b 100644 --- a/tests/test-recipes/metadata/_rpath_symlink/meta.yaml +++ b/tests/test-recipes/metadata/_rpath_symlink/meta.yaml @@ -35,5 +35,5 @@ test: import os, lief lib = lief.parse(os.environ["PREFIX"] + "/lib/{{ lib_file }}") assert {"$ORIGIN/."} == {e.rpath for e in lib.dynamic_entries if e.tag == getattr(lief.ELF, "DYNAMIC_TAGS", getattr(lief.ELF.DynamicEntry, "TAG", None)).RPATH} # [linux] - assert {"@loader_path/"} == {command.path for command in lib.commands if command.command == lief.MachO.LOAD_COMMAND_TYPES.RPATH} # [osx] + assert {"@loader_path/"} == {command.path for command in lib.commands if command.command == getattr(lief.MachO, "LOAD_COMMAND_TYPES", getattr(lief.MachO.LoadCommand, "TYPE", None)).RPATH} # [osx] ' From a54844e3bcee7ccbe688e11778c32f312c48d1eb Mon Sep 17 00:00:00 2001 From: Mahe Iram Khan <65779580+ForgottenProgramme@users.noreply.github.com> Date: Wed, 5 Feb 2025 18:04:25 +0100 Subject: [PATCH 3/3] Changelog 25.1.2 (#5615) * Update CHANGELOG.md --------- Co-authored-by: Ken Odegard --- .authors.yml | 8 ++++---- CHANGELOG.md | 12 ++++++++++++ news/5595-more-lief-compat | 19 ------------------- 3 files changed, 16 insertions(+), 23 deletions(-) delete mode 100644 news/5595-more-lief-compat diff --git a/.authors.yml b/.authors.yml index 4fa8b8586f..a8e040788f 100644 --- a/.authors.yml +++ b/.authors.yml @@ -1202,7 +1202,7 @@ alternate_emails: - clee@anaconda.com - name: Ken Odegard - num_commits: 232 + num_commits: 231 email: kodegard@anaconda.com first_commit: 2020-09-08 19:53:41 github: kenodegard @@ -1281,7 +1281,7 @@ - name: Travis Hathaway email: travis.j.hathaway@gmail.com github: travishathaway - num_commits: 7 + num_commits: 8 first_commit: 2022-05-12 05:53:02 - name: Kyle Leaders email: remkade@users.noreply.github.com @@ -1479,7 +1479,7 @@ - name: Tony Kelman email: tony@kelman.net github: tkelman - num_commits: 1 + num_commits: 2 first_commit: 2025-01-08 09:50:24 - name: Yoann Cédric Pradat email: yoannpradat@live.fr @@ -1489,7 +1489,7 @@ - name: Mahe Iram Khan email: forgotten.programme@gmail.com github: ForgottenProgramme - num_commits: 1 + num_commits: 2 first_commit: 2025-01-13 18:15:05 alternate_emails: - 65779580+ForgottenProgramme@users.noreply.github.com diff --git a/CHANGELOG.md b/CHANGELOG.md index 9335c2b015..6e6ccf0bab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ [//]: # (current developments) +## 25.1.2 (2025-02-05) + +### Enhancements + +* Fix LIEF>=0.15 compatibility. (#5594 via #5595) + +### Contributors + +* @tkelman + + + ## 25.1.1 (2025-01-14) ### Deprecations diff --git a/news/5595-more-lief-compat b/news/5595-more-lief-compat deleted file mode 100644 index 7e4fe53bed..0000000000 --- a/news/5595-more-lief-compat +++ /dev/null @@ -1,19 +0,0 @@ -### Enhancements - -* Additional compatibility fixes for LIEF>=0.15. (#5594 via #5595) - -### Bug fixes - -* - -### Deprecations - -* - -### Docs - -* - -### Other - -*