Upgrade to release 1.0.0:
- Add Android JNI Analyzer
- The DWARF import plugin now supports comments
- Add support for generating DWARF from firmware or binaries
without a precise format or architecture
- Add support for accessing the bit size of bit-field declarations
- Add support for accessing Enum entries:
lief.dwarf.types.Enum.entries()
- Add support for reading from or assigning a register to a function
parameter
- Add support for reading from or assigning a description
(DW_AT_description) to a lief.dwarf.Function, lief.dwarf.Variable,
or lief.dwarf.LexicalBlock:
lief.dwarf.Function.description()
lief.dwarf.Variable.description()
lief.dwarf.LexicalBlock.description()
- Enable the creation of nested lief.dwarf.editor.Function.LexicalBlock
- Add support for generating a C/C++ definition for a whole
lief.dwarf.CompilationUnit ( lief.dwarf.CompilationUnit.to_decl()).
The output of the following to_decl() functions can now be
configured through the new lief.DeclOpt structure:
lief.dwarf.Function.to_decl()
lief.dwarf.Variable.to_decl()
lief.dwarf.Type.to_decl()
lief.dwarf.CompilationUnit.to_decl()
- Improve support and the API for LF_ENUM: lief.pdb.types.Enum
- Improve support and the API for LF_PROCEDURE: lief.pdb.types.Function
- Improve support and the API for LF_ARRAY: lief.pdb.types.Array
- Improve support and the API for simple types: lief.pdb.types.Simple
- Improve support and the API for LF_ONEMETHOD: lief.pdb.types.Method
- Add support for generating a C/C++ definition for a lief.pdb.Function
( lief.pdb.Function.to_decl()) and a lief.pdb.CompilationUnit
( lief.pdb.CompilationUnit.to_decl()), configurable with the new
lief.DeclOpt structure.
- Add support for DT_AUXILIARY tag: lief.ELF.DynamicEntryAuxiliary
- Add support for DT_FILTER tag: lief.ELF.DynamicEntryFilter
- Add lief.ELF.parse_from_dump() to parse an ELF binary from a
memory dump
- Add lief.COFF.Section.coff_string for accessing the full section
name when this name does not fit in 8 bytes.
- Add support for writing big-endian Mach-O binaries
- Introduce an API for selecting a specific Mach-O binary by
architecture from a FAT binary
- Add lief.MachO.FatBinary.create() to create a FAT binary from a
list of lief.MachO.Binary objects targeting different architectures
- Add support for lief.MachO.ThreadLocalVariables
- Fix an extra byte being written after the thread state of an
LC_UNIXTHREAD/LC_THREAD command, which shifted the following load
commands by one byte
- Add support for editing the runtime tables of the
LC_FUNCTION_VARIANTS command and committing the changes on write:
lief.MachO.FunctionVariants
- Add a structured parser, editing API and writer for the
LC_FUNCTION_VARIANT_FIXUPS command:
lief.MachO.FunctionVariantFixups
- Add support for the LC_LAZY_LOAD_DYLIB_INFO command:
lief.MachO.LazyLoadDylibInfo
- Add lief.MachO.parse_from_dump() to parse a Mach-O binary from a
memory dump
- Add setters for lief.PE.ImportEntry.iat_value and
lief.PE.ImportEntry.ilt_value
- Add lief.PE.Binary.offset_to_rva() to convert a raw offset into a RVA
- Add lief.PE.parse_from_dump() to parse a PE binary from a memory dump
- Update lief.Binary.offset_to_virtual_address() for PE binaries
to return an absolute virtual address instead of a RVA
- Add support for adding an lief.PE.Import at a specific position:
lief.PE.Binary.add_import()
- Improve support for EFI binaries, such as bzImage
- Add support for Objective-C categories: lief.ObjC.Category,
accessible through lief.ObjC.Metadata.categories
- Add support for iterating over the operands of MIPS, PowerPC,
eBPF and RISC-V instructions (Register, Immediate, Memory and
PCRelative):
lief.assembly.mips.Instruction.operands()
lief.assembly.powerpc.Instruction.operands()
lief.assembly.ebpf.Instruction.operands()
lief.assembly.riscv.Instruction.operands()
- The Rust FFI no longer relies on autocxx and bindgen. It is now
built on top of plain cxx, which simplifies the bindings and
reduces the iteration time
- The Rust bindings directory has been renamed from api/rust/cargo/
to api/rust/crates/
- Add support for the aarch64-linux-android and x86_64-linux-android
targets
- Add LIEF_LIFETIMEBOUND annotations wrapping [[clang::lifetimebound]]
to leverage Clang's lifetime analysis. This helps detect dangling
references at compile time for methods that return references or
iterators tied to an object's lifetime
This work was sponsored by GOVCERT.LU.
License-Update: Update years
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 1.0.3:
Fixes:
- Complete the setuptools SubCommand protocol
- Thread config_settings to the build command
- Keep source tree clean in strict editable mode
Documentation:
- Put uv first in installer tabs and add it to config-settings
- List choices for Literal options in the README table
- Touch up README options tables, setuptools docs
- Show the projects list as a card grid with language/binding badges
- Add high-star projects to the known projects list
CI and testing:
- Make linkcheck retry timeouts from slow hosts
- Forward -C config-settings in downstream editable install
Include a patch to rename directory name from ${module} __module__
to avoid error due to an unexpanded bitbake variable.
This work was sponsored by GOVCERT.LU.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Changelog: https://webkitgtk.org/2026/07/09/webkitgtk2.52.5-released.html
Note that while the changelog suggests that this is just a bugfix release,
there are a lot of CVEs which have been addressed in this release.
CVE-2024-4367, CVE-2026-39872, CVE-2026-43663, CVE-2026-43676, CVE-2026-43699,
CVE-2026-43701, CVE-2026-43705, CVE-2026-43707, CVE-2026-43712, CVE-2026-43713,
CVE-2026-43715, CVE-2026-43716, CVE-2026-43720, CVE-2026-43721, CVE-2026-43725,
CVE-2026-43726, CVE-2026-43727, CVE-2026-43731, CVE-2026-43732, CVE-2026-43734,
CVE-2026-43740, CVE-2026-43742, CVE-2026-43745
See : https://webkitgtk.org/security/WSA-2026-0004.html for details.
Signed-off-by: Jason Schonberg <schonm@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Since mainline version has been deleted, devtool tries to upgrade stable
recipe to mainline version.
Prevent it by telling it that even version needs to be used.
Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Use the newer setuptools build class to avoid an AttributeError thrown
after warnings about setuptools and related build modules:
|/home/tgamblin/workspace/ypbuilds/oe-nodistro-master-patchtest/build/tmp/work/x86-64-v3-oe-linux/python3-ukkonen/1.1.0/recipe-sysroot-native/usr/lib/python3.14/site-packages/setuptools/__init__.py:92: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated.
|!!
|
| ********************************************************************************
| Requirements should be satisfied by a PEP 517 installer.
| If you are using pip, you can try `pip install --use-pep517`.
|
| This deprecation is overdue, please update your project and remove deprecated
| calls to avoid build errors in the future.
| ********************************************************************************
|
|!!
...
| File "/home/tgamblin/workspace/ypbuilds/oe-nodistro-master-patchtest/build/tmp/work/x86-64-v3-oe-linux/python3-ukkonen/1.1.0/recipe-sysroot-native/usr/lib/python3.14/site-packages/packaging/utils.py", line 96, in canonicalize_name
| value = name.lower().replace("_", "-").replace(".", "-")
| ^^^^^^^^^^
|AttributeError: 'NoneType' object has no attribute 'lower'
Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 2.13.4:
- Bump libc from 0.2.155 to 0.2.185
- Adapt pydantic-core linker flags on macOS
This work was sponsored by GOVCERT.LU.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade pydantic-core to version 2.46.4 as it required for newer
Pydantic versions.
This work was sponsored by GOVCERT.LU.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Add two new recipes from the CentOS Automotive SIG
boot-time-analysis-tools project to enable boot time profiling
and measurement.
boot-time-analysis-tools:
Python-based toolset for collecting, analyzing and visualizing system
boot timing data from the systemd journal. Provides the 'boot_timings'
CLI utility which queries D-Bus and the systemd journal to produce
structured boot time reports. Depends on python3-dbus and python3-systemd
for runtime journal and D-Bus access.
cntvct-log:
Userspace C utility built with Meson that logs ARM CNTVCT_EL0 virtual
counter timestamps to correlate hardware-level timing with systemd boot
events. Installs cntvct@.service as a systemd template unit (disabled
by default) for on-demand per-instance activation. The service preset
file (98-cntvct-log.preset) is installed for system-preset-based enablement.
Both recipes fetch from the same upstream git repository:
https://gitlab.com/CentOS/automotive/src/boot-time-analysis-tools
Signed-off-by: Chitti Babu Theegala <ctheegal@qti.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Changelog:
=============
- Register the "benchmark" pytest mark to avoid PytestUnknownMarkWarning
- Update C extension docstrings and remove stale comments
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Changelog:
===========
- trim to ncols even when '{bar}' not in bar_format
- fix tqdm.write when stdout=None
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Changelog:
==========
- Remove self signed certificate from production.
- Correct inequality in validation error message
- Fix non-deterministic convert_from_registers
- Fix swapped SimDevice in ModbusDeviceContext
- Update CI actions and pyproject.
- Add ruff format check to ci.yml
- Remove 'useless-suppression' pylint
- Format test_client.py with ruff
- Update clean_workflows CI (node@20 problem).
- Ruff format (due to ruff upgrade).
- Fix ModbusServerContext initialization with dict devices parameter
- Support configured ASCII input delimiter
- Fix default no-response behavior for force listen only
- Use correct format character for DataType.REGISTERS 'h' -> 'H'
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Changelog:
==========
- asyncio: detect cross-instance reentrant deadlocks before the poll loop
- fix(soft_rw): evict non-regular write marker without reading it
- _util: drop the dead st_mtime=0 short-circuit in raise_on_not_writable_file
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Changelog:
===========
* add '.rotate()' method, rotate bitarray in-place by 'k' positions
* expose the 'decodeiterator' class, and add '.skipbits()' method
as well as '.index' data descriptor, see #252
* fix 'random_p()' silently producing all-zero bitarrays for small 'n'
when 'p=float("nan")'
* improve integer argument handling in 'util.random_k()',
'util.gen_primes()', 'util.pprint()' and 'util.int2ba()'
* add 'python_requires >= 3.7' to package metadata
* improve testing - use more of 'unittest''s functionality
* add [Rule 90 example](../examples/rule90.py)
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Changelog:
===========
- Changed ByteReceiveStream.receive() implementations to raise a ValueError
when max_bytes is not a positive integer
- Fixed CapacityLimiter.total_tokens rejecting float("inf") when the limiter
was instantiated outside of an event loop. The adapter setter checked for
infinity by identity (value is math.inf), so only the exact math.inf singleton
was accepted, while every backend setter (using math.isinf()) accepts any
positive infinity
- Fixed to_process.run_sync() deadlocking when the worker function writes
enough data to sys.stderr to fill the (undrained) pipe buffer. The worker
process now redirects sys.stderr to os.devnull as well, matching the documented
behavior
- Fixed TLSStream.wrap() matching an internationalized (unicode) host name
against the peer certificate using IDNA 2003 (via the standard library)
instead of IDNA 2008, which could cause the host name to be matched against the
wrong certificate
- Fixed anyio.open_process() (and run_process()) ignoring the extra_groups
argument, as it mistakenly passed the value of the group argument instead
- Fixed CapacityLimiter.acquire_nowait() and
CapacityLimiter.acquire_nowait_on_behalf_of() raising trio.WouldBlock instead
of anyio.WouldBlock on the trio backend when there are no tokens available
- Fixed CapacityLimiter on the asyncio backend over-granting tokens
(borrowed_tokens exceeding total_tokens and available_tokens going negative)
when a non-blocking acquire was made in the window between a token being
released and the notified waiter resuming. The freed token is now reserved for
the woken waiter right away, so the non-blocking acquire correctly raises
WouldBlock
- Fixed unnecessary CPU spin when delivering cancellation from CancelScope on
asyncio under certain conditions, including improper cancel scope nesting
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Changelog:
===========
- Issue 2135 - ExecEnviron values not passed due to regression since 1.3.8.d.
- Issue 2146 - Stack buffer overflow in MLSD/MLST handling for long path names.
- Issue 2158 - MaxTransfersPerUser no longer enforces configured limits.
- Issue 2163 - AdminControlsACLs for config, get actions not honored as they
should be.
- Issue 2166 - Memcached/Redis-cached JSON TLS session/OCSP entries decoded
into fixed buffers without bounds checking.
- Issue 2173 - RewriteMap unescape builtin use causes one-byte out-of-bounds
write, fails to reject illegal characters.
- Issue 2188 - SQL group name lookup concatenates client-provided group names
without escaping.
- Issue 2190 - Authenticated SFTP sessions can overflow the SFTP packet buffer.
- Issue 2210 - Default Controls socket ACLs unintentionally allow all users
access for sending Controls requests.
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>