feat: Add reproducible Debian package builds and distribution - #7617
feat: Add reproducible Debian package builds and distribution#7617MoeMahhouk wants to merge 50 commits into
Conversation
| @@ -0,0 +1,188 @@ | |||
| name: reproducible-build | |||
There was a problem hiding this comment.
I'd avoid imposing a responsibility for verifying reproducibility to third-parties (Lighthouse team in this case). Those who have reproducibility requirements should independently verify it relying on their infra.
There was a problem hiding this comment.
The variance in the environment is not sufficient to say that the builds are reproducible. Check out how Debian independently verify reproducibility by building on different OSes with a variable set of tools.
There was a problem hiding this comment.
I also followed here the steps of reth and how they are doing it here https://github.com/paradigmxyz/reth/blob/main/.github/workflows/reproducible-build.yml
However, good point on if the lighthouse team would want this to be as part of their workflow or not. I would leave it for them to decide and then we can re-iterate on what the best way to do it
| @@ -0,0 +1,142 @@ | |||
| name: release-reproducible | |||
There was a problem hiding this comment.
Can we make reproducible builds a default for Lighthouse? Not an additional target requiring extra effort to support
There was a problem hiding this comment.
I created a separate workflow for the reproducible container builds as separation of concerns similar to what the reth team did here https://github.com/paradigmxyz/reth/blob/main/.github/workflows/release-reproducible.yml
d950bee to
1519838
Compare
1519838 to
211063a
Compare
simplified the lighthouse systemd service
|
cargo sort CI is failing, can you fix this?
cargo sort CI is failing, can you fix this? |
Done |
|
I have a look at this PR, from my understanding, this will include a I am wondering what is the use case here? |
The use case here is that those reproducibly built debian packages can be utilized to accelerate workflows that require building images that includes lighthouse. For example, BuilderNet VM image. In mkosi, you could use debian packages during the image build process which would reduce the build time substantially. Beside that use case, there are also other use-cases for such users that prefer downloading and installing lighthouse using debian packages. In addition, the binary within is built reproducibly for security purposes. |
|
@chong-he I agree with what Moe described regarding the use-cases for a *.deb package. It also makes easier for people running nodes to install a *.deb package that comes with a systemd service definition baking in basic CLI options of Lighthouse simplifying managing the service. |
|
This pull request has merge conflicts. Could you please resolve them @MoeMahhouk? 🙏 |
|
Cleaned up unrelated changes that were pulled into the PR diff by merging Merged latest upstream
|
|
Could we get this merged before next release? We would really love to use |
|
@MoeMahhouk sorry for the silence on this, but it's been on my mind, and I'd like to propose a different direction: see #9147 |
@antondlr No problems, thanks for revisiting this PR back. |
Issue Addressed
This pull request introduces workflows and configuration updates to automate the building, testing, and releasing of reproducible Debian packages for the Lighthouse project. Below are the key changes grouped by theme:
New GitHub Actions Workflows
.github/workflows/release-deb.ymlto automate the building, testing, and releasing of reproducible Debian packages for multiple architectures (x86_64andaarch64). Includes steps for dry-run testing, artifact uploads, and checksum generation.Proposed Changes
Additional Info
This is an incremental work on #7614 and requires it to be merged first
close #7618