Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ci: get bpf clang from pinned nixpkgs
This PR represents a move towards reproducible builds starting with the clang version, which causes possible complications due to subtle differences in BPF assembly generation. This specifically moves us from `18.1.3 (ubuntu)`, bundled with the CI system, to `18.1.8` (Nix's version). Moreover, it pins the version in perpetuity. If the Nix caches dry up for some reason, we will build clang and its dependencies from source, making this specific part of our CI fully reproducible. This PR does not go any further in making the build reproducible, only the BPF ASM generation part of the meson build. We can see this version reported correctly in the CI logs. The BPF generation is very specific to clang version and this change pulls a more recently patched version & ensures it never changes on old commits. While this change doesn't force any user of the repository to use Nix in the build, it begins to offer the option. Other open source repositories[1] are taking advantage of Nix's ability to offer devshells in a more complete way, which enable reproducible builds regardless of the end user's operating system and package setup, that don't interfere with whatever they have setup already. This is future work - one of the most frustrating things as a developer is when the CI fails and you can't reproduce it locally. `nix develop` fixes this, and should come down the line to make our builds fully reproducible. Test plan: - CI [1] https://github.com/bpftrace/bpftrace/blob/master/flake.nix
- Loading branch information