use SOURCE_DATE_EPOCH for jars created by gbuild

the date option requires OpenJDK 17.0.3 or Oracle JDK 17.0.6 or newer
(see https://bugs.openjdk.org/browse/JDK-8276766 )

furthermore using long switches don't work with the shorthand notation
of the options, so use dedicated/separate -c -f & other options

Change-Id: I37e458f0e250be24a035cd72abf9a201ced0c46f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207245
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
This commit is contained in:
Christian Lohmaier
2026-07-14 15:14:49 +02:00
parent 725b107b1d
commit 65297c52ac
3 changed files with 11 additions and 5 deletions
+7 -1
View File
@@ -9287,7 +9287,13 @@ if test "$ENABLE_JAVA" != "" -a "$cross_compiling" != "yes"; then
if test "$_jdk_ver" -ge 180000 && test "$_jdk_ver" -lt 240000; then
JDK_SECURITYMANAGER_DISALLOWED=TRUE
fi
# reproducible builds make use of jar --date and that was introduced in jdk19
# and backported to openJDK 17.0.3/oracle JDK 17.0.6 respectively
if test "$_jdk_ver" -lt 170006 || test "$_jdk_ver" -ge 180000 && test "$_jdk_ver" -lt 190000; then
AC_MSG_WARN([JDK too old for reproducible builds, needs jar --date support (see https://bugs.openjdk.org/browse/JDK-8276766 )])
add_warning "JDK too old for reproducible builds, needs jar --date support (see https://bugs.openjdk.org/browse/JDK-8276766 )"
SOURCE_DATE_EPOCH=""
fi
JAVA_HOME=`echo $JAVAINTERPRETER | $SED -n "s,//*bin//*java,,p"`
if test "$_os" = "WINNT"; then
JAVA_HOME=`echo $JAVA_HOME | $SED "s,\.[[eE]][[xX]][[eE]]$,,"`
+1 -1
View File
@@ -27,7 +27,7 @@ $(call gb_ExternalProject_get_state_target,rhino,build) :
$(gb_UnpackedTarball_workdir)/rhino/NOTICE-tools.txt \
$(gb_UnpackedTarball_workdir)/rhino/NOTICE.txt \
$(gb_UnpackedTarball_workdir)/rhino/build/content/META-INF/ \
&& $(gb_Jar_JARCOMMAND) -cf $(gb_UnpackedTarball_workdir)/rhino/build/js.jar \
&& $(gb_Jar_JARCOMMAND) -c -f $(gb_UnpackedTarball_workdir)/rhino/build/js.jar \
-C $(gb_UnpackedTarball_workdir)/rhino/build/content . \
-C $(gb_UnpackedTarball_workdir)/rhino/src \
org/mozilla/javascript/commonjs/module/package.html \
+3 -3
View File
@@ -19,7 +19,7 @@
# Jar class
gb_Jar_JARCOMMAND := jar
gb_Jar_JARCOMMAND := jar $(if $(SOURCE_DATE_EPOCH),--date="$(shell date $(if $(filter $(OS),MACOSX),-r ,-d @)$(SOURCE_DATE_EPOCH) -u +'%FT%T+00:00')")
gb_Jar_LAYER_DIRS := \
URE:$(INSTROOT)/$(LIBO_URE_SHARE_JAVA_FOLDER) \
@@ -61,9 +61,9 @@ define gb_Jar__command
echo "Solar-Version: $(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO).$(LIBO_VERSION_PATCH)" >> $(call gb_Jar_get_manifest_target,$(1)) && \
$(if $(MANIFEST),cat $(MANIFEST) >> $(call gb_Jar_get_manifest_target,$(1)) &&) \
mkdir -p $(dir $(2)) && cd $(call gb_Jar_get_workdir,$(1)) && \
$(gb_Jar_JARCOMMAND) cfm $(2) $(call gb_Jar_get_manifest_target,$(1)) \
$(gb_Jar_JARCOMMAND) -c -f $(2) -m $(call gb_Jar_get_manifest_target,$(1)) \
META-INF $(PACKAGEROOTS) $(PACKAGEFILES) \
$(foreach root,$(PACKAGEDIRS),&& cd $(dir $(root)) && $(gb_Jar_JARCOMMAND) uf $(2) $(notdir $(root))) \
$(foreach root,$(PACKAGEDIRS),&& cd $(dir $(root)) && $(gb_Jar_JARCOMMAND) -u -f $(2) $(notdir $(root))) \
|| (rm -f $(2); false) )
endef