Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reproducible Arch Linux builds #753

Open
networkException opened this issue Jan 7, 2022 · 1 comment
Open

Reproducible Arch Linux builds #753

networkException opened this issue Jan 7, 2022 · 1 comment

Comments

@networkException
Copy link

Currently binaries compiled for Arch Linux cannot get reproduced using their tooling. repro expects the build process to have taken place in a clean chroot environment.

Digging into extra-x86_64-build, which can be used to run the build process using a single command given PKGBUILD in a working directory with other files required for the build, reveals that makechrootpkg uses a wrapper around systemd-nspawn to prepare and build in the chroot.

I've experimented with build-pkg-arch using only preinstall dependencies to setup $BUILDROOT and let it install all other dependencies into a seperate $ARCH_ROOT which matches the requirements of makechrootpkg (run in build-recipe-arch) as a predefined chroot directory.

I'm not sure however if this is the best approach, as it forces the build process to use nspawn regardless of the build-vm.

I would be great to have some guidance on how this could be achived.

(See archlinux/archlinux-repro#104)

@mlschroe
Copy link
Member

I think it could be done by using the official devtools as "build engine". As an example from the Fedora world, you can use the "mock" tool as build engine (see "build-recipe-mock").
In that case, OBS will prepare a ".build.binaries" directory containing all the arch packages needed for the build and the setup of the build environment is then done by the official build tool.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants