apache / apache/pulsar

[Enhancement] Make Apache Pulsar build reproducible to increase the security and integrity of the software supply chain

Open
#23,477 0 comments 1 reaction 0 assignees View on GitHub
type/enhancement
Dominant language
Java
Stars
15.3k
Forks
3.8k
Avg merge
1d 14h
Merged PRs (30d)
160

Description

### Search before asking

- [X] I searched in the [issues](https://github.com/apache/pulsar/issues) and found nothing similar.

### Motivation

[Reproducible builds](https://reproducible-builds.org/) increase the security and integrity of the software supply chain. They allow verification that no vulnerabilities or backdoors have been introduced during the compilation process. This is particularly important for privacy and security-focused software like Apache Pulsar.

### Solution

Implement reproducible builds for Apache Pulsar by:
1. Making the build system deterministic (e.g., removing timestamps, ordering output consistently)
2. Defining or recording the build environment and tools
3. Providing a way for users to recreate the build environment and validate the output
4. Ensure that the checks pass at https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/apache/pulsar/README.md

### Alternatives

No direct alternatives considered. Not implementing reproducible builds leaves the project more vulnerable to potential supply chain attacks.

### Anything else?

This enhancement aligns with industry best practices and recommendations from security organizations like the NSA and CISA for improving software supply chain security.

### Are you willing to submit a PR?

- [X] I'm willing to submit a PR!

Contributor guide

Open the contributing guide

Research direction

Start by reading the reproducible-central Apache Pulsar README linked in the issue and reviewing the project's build system. Identify sources of nondeterminism, the required build environment and tools, and how output validation is performed. Done means the reproducible-central checks pass and users have a documented way to recreate and verify the build.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.