[arch-commits] Commit in junit-system-rules/trunk (2 files)

Jonas Witschel diabonas at archlinux.org
Tue Jul 7 12:39:17 UTC 2020


    Date: Tuesday, July 7, 2020 @ 12:39:17
  Author: diabonas
Revision: 658171

upgpkg: junit-system-rules 1.19.0-7: replace strip-nondeterminism by project.build.outputTimestamp

This is the officially supported way for reproducible builds with Apache Maven,
see https://maven.apache.org/guides/mini/guide-reproducible-builds.html
However it needs a patch to update maven-jar-plugin to a version supporting this
property.

Added:
  junit-system-rules/trunk/junit-system-rules-1.19.0_update-maven-jar-plugin.patch
Modified:
  junit-system-rules/trunk/PKGBUILD

---------------------------------------------------------+
 PKGBUILD                                                |   22 ++++++----
 junit-system-rules-1.19.0_update-maven-jar-plugin.patch |   29 ++++++++++++++
 2 files changed, 42 insertions(+), 9 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2020-07-07 12:39:04 UTC (rev 658170)
+++ PKGBUILD	2020-07-07 12:39:17 UTC (rev 658171)
@@ -2,15 +2,17 @@
 pkgname=junit-system-rules
 pkgver=1.19.0
 _commit=f4782ebfd72c08bd3f00aa04ad20fe499c5463b4 # signed commit corresponding to tag "system-rules-$pkgver"
-pkgrel=6
+pkgrel=7
 pkgdesc='A collection of JUnit rules for testing code that uses java.lang.System'
 arch=('any')
 url='https://stefanbirkner.github.io/system-rules/'
 license=('CPL')
 depends=('junit')
-makedepends=('git' 'jdk8-openjdk' 'maven' 'strip-nondeterminism')
-source=("$pkgname::git+https://github.com/stefanbirkner/system-rules.git?signed#commit=$_commit")
-sha512sums=('SKIP')
+makedepends=('git' 'jdk8-openjdk' 'maven')
+source=("$pkgname::git+https://github.com/stefanbirkner/system-rules.git?signed#commit=$_commit"
+        'junit-system-rules-1.19.0_update-maven-jar-plugin.patch')
+sha512sums=('SKIP'
+            'ec9fb99770b406ac3e56c49820e33ff255958566724534f0d6afc340ebfb1fbbd7043fc188d39d553ca230058ff7d592ede8729feb8434c6090849bb26a7dea4')
 validpgpkeys=('F4AF40991AECE57728B0034F9ECE1F68817F4996') # Stefan Birkner <mail at stefan-birkner.de>
 
 pkgver() {
@@ -18,6 +20,12 @@
 	git describe --tags | sed 's/^system-rules-//;s/\([^-]*-g\)/r\1/;s/-/./g'
 }
 
+prepare() {
+	cd "$pkgname"
+	# Update the plugin generating the JAR file to a version supporting reproducible builds
+	patch --strip=1 --input="$srcdir/junit-system-rules-1.19.0_update-maven-jar-plugin.patch"
+}
+
 build() {
 	cd "$pkgname"
 
@@ -25,11 +33,7 @@
 	# (https://github.com/stefanbirkner/system-rules/issues/65#issuecomment-402837535)
 	export PATH="/usr/lib/jvm/java-8-openjdk/bin:$PATH"
 
-	mvn -DskipTests=true clean package
-
-	# Timestamps in JAR files generated by Maven do not honour SOURCE_DATE_EPOCH
-	# (https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=74682318)
-	strip-nondeterminism --timestamp "$SOURCE_DATE_EPOCH" "target/system-rules-$pkgver.jar"
+	mvn -Dproject.build.outputTimestamp="$SOURCE_DATE_EPOCH" -DskipTests=true clean package
 }
 
 check() {

Added: junit-system-rules-1.19.0_update-maven-jar-plugin.patch
===================================================================
--- junit-system-rules-1.19.0_update-maven-jar-plugin.patch	                        (rev 0)
+++ junit-system-rules-1.19.0_update-maven-jar-plugin.patch	2020-07-07 12:39:17 UTC (rev 658171)
@@ -0,0 +1,29 @@
+From 13fd4bb331dae0ae99c97c5b7bdaa7eb7247a57b Mon Sep 17 00:00:00 2001
+From: Jonas Witschel <diabonas at archlinux.org>
+Date: Tue, 7 Jul 2020 14:09:37 +0200
+Subject: [PATCH] Update maven-jar-plugin to version 3.2.0
+
+This is the minimal plugin version to support reproducible builds using the
+"project.build.outputTimestamp" property.
+---
+ pom.xml | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/pom.xml b/pom.xml
+index e764bd9..596e3cc 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -121,6 +121,10 @@
+ 					<forkMode>always</forkMode>
+ 				</configuration>
+ 			</plugin>
++			<plugin>
++				<artifactId>maven-jar-plugin</artifactId>
++				<version>3.2.0</version>
++			</plugin>
+ 		</plugins>
+ 	</build>
+ 
+-- 
+2.27.0
+



More information about the arch-commits mailing list