As an explainer, the cause for the reproducibility check failing looks
to be from a difference in umask between Justin's env and those used
for previous releases and in turn the Reproducible Central buildspec
used to verify the reproducibility.

On previous systems that did the release, a umask of [0]022 was in
effect. On Justins, a umask of [0]002 was in effect. When I changed
umask to [0]002 I was then able to do a 100% reproduction of the
build.

I'm not yet clear on why, but for the 3 war files in the build, the
permissions on the embedded maven detail files (but none of the actual
content files) are influenced by the umask:
META-INF/maven/<groupId>/<artifact-id>/pom.xml
META-INF/maven/<groupId>/<artifact-id>/pom.properties

The war files contents then in turn influence the binary assembly and
related checksum files, giving a total of 7 differences in the overall
build. None of the 'actual content' differs as such, just the
permissions, the metadata for which throws off the overall assembly.

The same type of generated files are also embedded in all the jar
files, but are not influenced by the differing umasks so the jars all
came out the same regardless.

We could either proceed and try to update the buildspec at
Reproducible Central to compensate (and then need to update it again
to switch back in future if we make things consistent). Or we could
redeploy the build to make this consistent with prior releases, the
binary assembly and sig+checksum would get updated, as would the sig
for the source release (embedded timestamp) though not the source
archive itself.

Thoughts, Justin?

On Fri, 18 Oct 2024 at 17:26, Robbie Gemmell <robbie.gemm...@gmail.com> wrote:
>
> -1, for now at least.
>
> The deployed convenience binaries failed a reproducibility check, even
> though all the sub-content in them ultimately seems to be the same as
> in the rebuild. A permissions difference in a few modules (the 3
> console war files) META-INF files seems to be the cause, which in turn
> rippled through to the binary assembly archives as a whole.
>
> I'd like to try some redeployments on Monday to see whether we could
> resolve the issue, or at least isolate a reason/env-difference that
> prompts it.
>
> Note -1's are not a veto on releases, and even with my -1 it still
> meets the criteria necessary to proceed, i.e can currently still be
> released as-is if so desired.
>
> I checked things over as follows:
> - Verified the signature + checksum files.
> - Checked for LICENCE + NOTICE files in the archives.
> - Checked licence headers in the source archive by running:
>   "mvn apache-rat:check"
> - Ran the Qpid JMS 2.6.1 HelloWorld against a broker from the binary
> archive on JDK 17.
> - Ran the source build and the AMQP integration tests on JDK 17 with:
>   "mvn clean install -DskipTests && cd tests/integration-tests/ && mvn
> -Ptests -Dtest=org.apache.activemq.artemis.tests.integration.amqp.**
> test"
> - Verified the build reproducibility using the tooling at Reproducible
> Central, which failed as per above.
>
> Robbie
>
> On Wed, 16 Oct 2024 at 17:13, Justin Bertram <jbert...@apache.org> wrote:
> >
> > I would like to propose an Apache ActiveMQ Artemis 2.38.0 release.
> >
> > Highlights include:
> >
> > - WebSocket compression is now supported. This compression can be used
> > transparently for AMQP, STOMP, or MQTT when communication is over
> > WebSockets.
> > - The ActiveMQServerMessagePlugin now has a messageMoved() callback.
> > - Core bridge configuration now supports client-id which will make it much
> > easier to identify bridge connections on remote brokers.
> > - The consumer CLI command now supports consuming messages "forever."
> > - The authentication & authorization caches now have detailed debug logging.
> > - There’s been a handful of updates to broker management including:
> >     - The documentation has been improved with more examples for Jolokia
> > and a new sub-section on management method option syntax.
> >     - It’s now possible to pass empty "options" to the management methods
> > that accept them.
> >     - The management methods which return paged results can now return all
> > the results together by specifying -1 for either the page or the pageSize.
> >     - The management method option syntax now supports the NOT_EQUALS
> > operator for greater flexibility with filtering results of management
> > operations.
> >     - Configuration for diverts created via management can now be done via
> > JSON.
> >
> > The release notes can be found here:
> > https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315920&version=12355013
> >
> > Ths git commit report is here:
> > https://activemq.apache.org/components/artemis/download/commit-report-2.38.0
> >
> > Source and binary distributions can be found here:
> > https://dist.apache.org/repos/dist/dev/activemq/activemq-artemis/2.38.0/
> >
> > The Maven staging repository is here:
> > https://repository.apache.org/content/repositories/orgapacheactivemq-1410
> >
> > If you would like to validate the release:
> > https://activemq.apache.org/components/artemis/documentation/hacking-guide/#validating-releases
> >
> > It is tagged in the git repo as <version>
> >
> > [ ] +1 approve this release
> > [ ] +0 no opinion
> > [ ] -1 disapprove (and reason why)
> >
> > Here's my +1
> >
> >
> > Justin

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@activemq.apache.org
For additional commands, e-mail: dev-h...@activemq.apache.org
For further information, visit: https://activemq.apache.org/contact


Reply via email to