Towards Build Verifiability for Java-based Systems
Jiawen Xiong, Yong Shi, Boyuan Chen, Filipe R. Cogo, Zhen Ming (Jack), Jiang

TL;DR
This paper proposes a systematic approach to enhance build verifiability in Java-based systems, addressing non-determinism and artifact equivalence issues to improve trustworthiness and reproducibility.
Contribution
It introduces a unified build process and tools for controlling non-determinism and post-processing artifacts, specifically tailored for Java-based systems, with extensive empirical validation.
Findings
91% of open source projects verified successfully
Identified 14 patterns causing non-equivalences in build artifacts
78% of patterns are unique to Java-based systems
Abstract
Build verifiability refers to the property that the build of a software system can be verified by independent third parties and it is crucial for the trustworthiness of a software system. Various efforts towards build verifiability have been made to C/C++-based systems, yet the techniques for Java-based systems are not systematic and are often specific to a particular build tool (e.g., Maven). In this study, we present a systematic approach towards build verifiability on Java-based systems. Our approach consists of three parts: a unified build process, a tool that dynamically controls non-determinism during the build process, and another tool that eliminates non-equivalences by post-processing the build artifacts. We apply our approach on 46 unverified open source projects from Reproducible Central and 13 open source projects that are widely used by Huawei commercial products. As a…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
