Daleq4py is presented and evaluated, a tool to establish the equivalence of Python wheels through the kernel of a normalisation function that is based on provenance-preserving datalog rules, and results show that daleq4py substantially expands the set of rebuilds that can be accepted as equivalent.
Abstract
Python has become the default language for interacting with AI, with packages being distributed through registries like the Python Package Index (PyPI). This creates a need to analyse supply chains comprising such packages. One such analysis is to rebuild packages in order to identify compromised builds injecting malware. Independent rebuilds in hardened environments have the added advantage that they can generate and record provenance in order to increase the trustworthiness of packages. Two tools that are designed to automate such rebuilds and run them at scale are macaron and oss-rebuild. We study 12,180 popular releases from PyPI and find that the byte-for-byte equivalence rate is generally low. We analyse the reasons why they produce different wheels, and find that equivalence between the original and rebuilt wheels can often still be established, preserving most of the guarantees users expect from rebuildable releases. We present and evaluate daleq4py, a tool to establish the equivalence of Python wheels through the kernel of a normalisation function that is based on provenance-preserving datalog rules. Experimental results show that daleq4py substantially expands the set of rebuilds that can be accepted as equivalent. Although only 15.4% of macaron rebuilds and 19.1% of oss-rebuild rebuilds are byte-for-byte identical to the published PyPI wheels, daleq4py establishes wheel equivalence for 60.2% and 78.9% of source-equivalent rebuilds, respectively.
Java bytecode is an important target for program analysis and transformation, but its compact binary format is difficult to manipulate directly. ModBEAM represents Java class files as Ecore models, providing higher-level abstractions for model-based analysis and transformation while retaining the information required t...
F. Ancona· Proceedings of the ACM/IEEE...· 0 citations
Static program analysis finds bugs before software ships, and modern checkers for C/C++ depend on whole-program infrastructure: pointer analysis, value-flow tracking, taint analysis, and IFDS-based data flow on top of LLVM. Today’s LLVM-IR frameworks fall short. SVF, Phasar, and Lotus expose their analyses through C++...
Yue-Kang Li, Wei Li, Wei Song et al.· Proceedings of the 41st IEEE...· 0 citations
BLIP is presented, a bolt-on framework for efficiently inferring a small-sized verifiable provenance for any LLM-powered data processing task, with any LLM, and eight strategies, each guaranteed to find a minimal verifiable provenance are introduced.
Yi-Ming Lin, Sepanta Zeighami, Aditya G. Parameswaran· Proceedings of the VLDB Endo...· 0 citations
A study of import-related bugs and security vulnerabilities in Python software, which combines security advisories with PyPI project histories and uses source and patch evidence to confirm how import activates cases, why the problem occurs, how developers fix it, and what program information is needed to explain the be...
WebAssembly code executes within a host environment, such as JavaScript running on Node.js. Despite the increasing popularity of mixed JavaScript-WebAssembly applications, the interactions between these two languages and the effect of WebAssembly usage on the NPM ecosystem, are currently not well understood. As a resul...
Michelle Thalakottur, Maxwell Bernstein, Daniel Lehmann et al.· Proceedings of the 2026 IEEE...· 1 citation
It is worthwhile to make institutional repositories interoperable with Web-based computational reproducibility tools to foster the reuse of scholarship. While repositories excel at long-term preservation, they were not made with the interactive capabilities required to execute complex code or analyze dynamic data direc...
Vicky Rampin· IASSIST Quarterly· 0 citations
We use cookies to run the site and, with your consent, for analytics and to show ads.
See our Cookie Policy.