[Git][reproducible-builds/reproducible-website][master] 3 commits: Tidy the JVM page a little.
Chris Lamb
gitlab at salsa.debian.org
Tue Apr 21 10:16:22 UTC 2020
Chris Lamb pushed to branch master at Reproducible Builds / reproducible-website
Commits:
c93eb81a by Chris Lamb at 2020-04-21T11:01:45+01:00
Tidy the JVM page a little.
- - - - -
31a76a2a by Chris Lamb at 2020-04-21T11:04:00+01:00
Add the JVM page to the documentation index. (Closes: reproducible-builds/reproducible-website#17)
- - - - -
8e01958b by Chris Lamb at 2020-04-21T11:09:46+01:00
Add GNU Libtool pointer to the "archives" documentation page. Thanks, Carl Dong.
- - - - -
3 changed files:
- _data/docs.yml
- _docs/archives.md
- _docs/jvm.md
Changes:
=====================================
_data/docs.yml
=====================================
@@ -20,6 +20,7 @@
- randomness
- build-path
- system-images
+ - jvm
- title: Define a build environment
docs:
- perimeter
=====================================
_docs/archives.md
=====================================
@@ -201,3 +201,7 @@ echo ucode.bin |
Note that other issues such as timestamps may still require rectification prior
to archival.
+
+## GNU Libtool
+
+[GNU Libtool](https://www.gnu.org/software/libtool/) prior to `74c8993c` (first included in version 2.2.7b) did not sort the find output. It appears that many packages (including all [GNU GCC](https://gcc.gnu.org/) versions so far) are bootstrapped with a version prior to this.
=====================================
_docs/jvm.md
=====================================
@@ -12,8 +12,7 @@ Since the JVM is not reproducible-friendly from the beginning
-- jar/zip files are a first natural source of variation, with files order and timestamp --,
each build tool requires some work to provide Reproducible Builds.
-Buildinfo File
---------------
+## `.buildinfo` file
Whatever the build tool is, binary JVM artifacts are generally published in artifact repositories
that use the Maven2 repository format (using groupId/artifactId/version coordinates)
@@ -81,8 +80,7 @@ Source tarballs, intended for building, are not always published in repositories
- `${artifactId}-${version}-source-release.zip` (see [artifacts in Central providing such source tarballs](https://search.maven.org/search?q=l:source-release))
- `${artifactId}-${version}-src.zip` (see [artifacts in Central providing such source tarballs](https://search.maven.org/search?q=l:src))
-Auditing a Build
-----------------
+## Auditing a Build
Builds that are publishing a Buildinfo file are expected to be reproducible and the Buildinfo
file is expected to contain everything required to rebuild and get the same output:
@@ -104,8 +102,7 @@ Notice that if you didn't use the same JDK major version, you'll see many differ
Improving the build to get reproducible build will then be specific with each build tool.
You may discuss issues and fixes on [Reproducible Builds mailinglist]({{ "/docs/contribute/" | prepend: site.baseurl }}).
-Reproducible Builds for Maven
------------------------------
+## Reproducible Builds for Maven
Getting reproducible builds with Maven requires some plugins configuration: see
[Maven - Guide to Configuring for Reproducible Builds](https://maven.apache.org/guides/mini/guide-reproducible-builds.html)
@@ -133,15 +130,13 @@ For multi-module builds, each produced artifact will have its
own buildinfo file with `mvn.build-root` property defined, to know the root from which the
rebuild must happen.
-Reproducible Builds for Gradle
----------------------------
+## Reproducible Builds for Gradle
Gradle supports [reproducible archives](https://docs.gradle.org/current/userguide/working_with_files.html#sec:reproducible_archives) as of v3.4
Tasks which generate archives, such as ZIPs or JARs, can enforce preserved file timestamps and reproducible file order which fix two of the main sources of non-determinism in JVM artifacts.
-Reproducible Builds for sbt
----------------------------
+## Reproducible Builds for `sbt`
When using [sbt](https://www.scala-sbt.org/), a build tool popular with Scala
projects, you can use the
View it on GitLab: https://salsa.debian.org/reproducible-builds/reproducible-website/-/compare/421517532f4ae3192f5b3a98eff9bb9b7ab1faa0...8e01958bb0a9cbdd1703f806a3c0c30c31ea11cc
--
View it on GitLab: https://salsa.debian.org/reproducible-builds/reproducible-website/-/compare/421517532f4ae3192f5b3a98eff9bb9b7ab1faa0...8e01958bb0a9cbdd1703f806a3c0c30c31ea11cc
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.reproducible-builds.org/pipermail/rb-commits/attachments/20200421/e13eae1b/attachment.htm>
More information about the rb-commits
mailing list