diff --git a/0001-Allow-building-with-Java-8.patch b/0001-Allow-building-with-Java-8.patch
new file mode 100644
index 0000000..bb157c8
--- /dev/null
+++ b/0001-Allow-building-with-Java-8.patch
@@ -0,0 +1,174 @@
+From 23b6064d830de573a50dcbc480c54b58dcf99e5a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
+Date: Fri, 1 Mar 2024 13:36:42 +0100
+Subject: [PATCH] Allow building with Java 8
+
+Change-Id: Ib1af1a98993aabb8a03f4ef19d8da4d9a71fdbc0
+---
+ config_host.mk.in             |  1 +
+ configure.ac                  | 20 +++++++++++++++-----
+ ridljar/Jar_libreoffice.mk    |  6 +++---
+ ridljar/Jar_unoloader.mk      |  8 ++++----
+ solenv/gbuild/JavaClassSet.mk |  6 +++---
+ 5 files changed, 26 insertions(+), 15 deletions(-)
+
+diff --git a/config_host.mk.in b/config_host.mk.in
+index 04745d508fc3..00dc7aa1f898 100644
+--- a/config_host.mk.in
++++ b/config_host.mk.in
+@@ -483,6 +483,7 @@ export MERGELIBS_MORE=@MERGELIBS_MORE@
+ export ML_EXE=@ML_EXE@
+ export MOC5=@MOC5@
+ export MOC6=@MOC6@
++MODULAR_JAVA=@MODULAR_JAVA@
+ export MPL_SUBSET=@MPL_SUBSET@
+ export MSGFMT=@MSGFMT@
+ export MSGUNIQ=@MSGUNIQ@
+diff --git a/configure.ac b/configure.ac
+index dd4ed7107aa8..b218120773d1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2570,7 +2570,7 @@ AC_ARG_WITH(linker-hash-style,
+ 
+ AC_ARG_WITH(jdk-home,
+     AS_HELP_STRING([--with-jdk-home=<absolute path to JDK home>],
+-        [If you have installed JDK 17 or later on your system please supply the
++        [If you have installed JDK 8 or later on your system please supply the
+          path here. Note that this is not the location of the java command but the
+          location of the entire distribution. In case of cross-compiling, this
+          is the JDK of the host os. Use --with-build-platform-configure-options
+@@ -8647,7 +8647,7 @@ if test "$ENABLE_JAVA" != ""; then
+         fi
+ 
+         if ! test -f "$with_jdk_home/lib/jvm.lib" -a -f "$with_jdk_home/bin/java.exe"; then
+-            AC_MSG_ERROR([No JDK found, pass the --with-jdk-home option (or fix the path) pointing to a $WIN_HOST_BITS-bit JDK >= 17])
++            AC_MSG_ERROR([No JDK found, pass the --with-jdk-home option (or fix the path) pointing to a $WIN_HOST_BITS-bit JDK >= 8])
+         fi
+     fi
+ 
+@@ -8712,6 +8712,7 @@ dnl ===================================================================
+ # Whether all the complexity here actually is needed any more or not, no idea.
+ 
+ JDK_SECURITYMANAGER_DISALLOWED=
++MODULAR_JAVA=
+ if test "$ENABLE_JAVA" != "" -a "$cross_compiling" != "yes"; then
+     _gij_longver=0
+     AC_MSG_CHECKING([the installed JDK])
+@@ -8732,8 +8733,8 @@ if test "$ENABLE_JAVA" != "" -a "$cross_compiling" != "yes"; then
+             _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED '/^$/d' | $SED s/[[-A-Za-z]]*//`
+             _jdk_ver=`echo "$_jdk" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'`
+ 
+-            if test "$_jdk_ver" -lt 170000; then
+-                AC_MSG_ERROR([JDK is too old, you need at least 17 ($_jdk_ver < 170000)])
++            if test "$_jdk_ver" -lt 10800; then
++                AC_MSG_ERROR([JDK is too old, you need at least 8 ($_jdk_ver < 10800)])
+             fi
+             dnl TODO: Presumably, the Security Manager will not merely be disallowed, but be
+             dnl completely removed in some Java version > 18 (see
+@@ -8748,13 +8749,21 @@ if test "$ENABLE_JAVA" != "" -a "$cross_compiling" != "yes"; then
+             fi
+             AC_MSG_RESULT([found $JAVA_HOME (JDK $_jdk)])
+ 
++            dnl Check whether the build Java supports modules
++            if test "$_jdk_ver" -ge 90000; then
++                MODULAR_JAVA=TRUE
++            else
++                AC_MSG_WARN([Modular jars will not be built. They need at least Java 9 ($_jdk_ver < 90000)])
++                add_warning "Modular jars will not be built. They need at least Java 9 ($_jdk_ver < 90000)"
++            fi
++
+             # set to limit VM usage for JunitTests
+             JAVAIFLAGS=-Xmx64M
+             # set to limit VM usage for javac
+             JAVACFLAGS=-J-Xmx128M
+         fi
+     else
+-        AC_MSG_ERROR([Java not found. You need at least JDK 17])
++        AC_MSG_ERROR([Java not found. You need at least JDK 8])
+     fi
+ else
+     if test -z "$ENABLE_JAVA"; then
+@@ -9058,6 +9067,7 @@ AC_SUBST(JDK_FOR_BUILD)
+ AC_SUBST(JDK_SECURITYMANAGER_DISALLOWED_FOR_BUILD)
+ AC_SUBST(JAVA_SOURCE_VER)
+ AC_SUBST(JAVA_TARGET_VER)
++AC_SUBST(MODULAR_JAVA)
+ 
+ 
+ dnl ===================================================================
+diff --git a/ridljar/Jar_libreoffice.mk b/ridljar/Jar_libreoffice.mk
+index 76a56eedc078..77397bc246ee 100644
+--- a/ridljar/Jar_libreoffice.mk
++++ b/ridljar/Jar_libreoffice.mk
+@@ -36,12 +36,12 @@ $(eval $(call gb_Jar_add_manifest_classpath,libreoffice, \
+ $(eval $(call gb_Jar_add_packagedirs,libreoffice,\
+     $(call gb_CustomTarget_get_workdir,ridljar/javamaker)/com \
+     $(call gb_CustomTarget_get_workdir,unoil/javamaker)/com \
+-	$(call gb_JavaClassSet_get_classdir,$(call gb_Jar_get_classsetname,libreoffice))/module-info.class \
++	$(if $(MODULAR_JAVA),$(call gb_JavaClassSet_get_classdir,$(call gb_Jar_get_classsetname,libreoffice))/module-info.class) \
+ ))
+ 
+-$(eval $(call gb_Jar_add_sourcefiles_java9,libreoffice,\
++$(if $(MODULAR_JAVA),$(eval $(call gb_Jar_add_sourcefiles_java9,libreoffice,\
+     ridljar/source/libreoffice/module-info \
+-))
++)))
+ 
+ $(eval $(call gb_Jar_add_sourcefiles,libreoffice,\
+     ridljar/com/sun/star/comp/bridgefactory/BridgeFactory \
+diff --git a/ridljar/Jar_unoloader.mk b/ridljar/Jar_unoloader.mk
+index 2acf20b5b289..b7fcbc105dc1 100644
+--- a/ridljar/Jar_unoloader.mk
++++ b/ridljar/Jar_unoloader.mk
+@@ -14,13 +14,13 @@ $(eval $(call gb_Jar_set_packageroot,unoloader,com))
+ $(eval $(call gb_Jar_set_manifest,unoloader,$(SRCDIR)/ridljar/source/unoloader/com/sun/star/lib/unoloader/manifest))
+ 
+ # the module-info.class is manually added here since it's not in "com" dir
+-$(eval $(call gb_Jar_add_packagedirs,unoloader,\
++$(if $(MODULAR_JAVA),$(eval $(call gb_Jar_add_packagedirs,unoloader,\
+ 	$(call gb_JavaClassSet_get_classdir,$(call gb_Jar_get_classsetname,unoloader))/module-info.class \
+-))
++)))
+ 
+-$(eval $(call gb_Jar_add_sourcefiles_java9,unoloader,\
++$(if $(MODULAR_JAVA),$(eval $(call gb_Jar_add_sourcefiles_java9,unoloader,\
+     ridljar/source/unoloader/module-info \
+-))
++)))
+ 
+ $(eval $(call gb_Jar_add_sourcefiles,unoloader,\
+     ridljar/source/unoloader/com/sun/star/lib/unoloader/UnoClassLoader \
+diff --git a/solenv/gbuild/JavaClassSet.mk b/solenv/gbuild/JavaClassSet.mk
+index 84fbcc13c32d..8acf120dd615 100644
+--- a/solenv/gbuild/JavaClassSet.mk
++++ b/solenv/gbuild/JavaClassSet.mk
+@@ -19,7 +19,7 @@
+ 
+ gb_JavaClassSet_JAVACCOMMAND = $(ICECREAM_RUN) $(JAVACOMPILER) $(JAVACFLAGS) \
+     -encoding utf8 \
+-    --release $(1) \
++    $(if $(MODULAR_JAVA),--release $(1),-source $(1) -target $(1)) \
+     -Xlint:-options \
+     -Xlint:unchecked
+ 
+@@ -51,7 +51,7 @@ $(call gb_Helper_abbreviate_dirs,\
+ 			-d $(call gb_JavaClassSet_get_classdir,$(2)) \
+ 			@$$RESPONSEFILE &&) \
+ 		rm -f $$RESPONSEFILE &&) \
+-		$(if $(T_MODULENAME),\
++		$(if $(MODULAR_JAVA),$(if $(T_MODULENAME),\
+ 			RESPONSEFILE=$(call gb_var2file,$(shell $(gb_MKTEMP)),\
+ 				$(T_JAVA9FILES)) && \
+ 			$(if $(3),$(call gb_JavaClassSet_JAVACCOMMAND,9) \
+@@ -61,7 +61,7 @@ $(call gb_Helper_abbreviate_dirs,\
+ 				$(if $(T_MODULENAME),--patch-module $(T_MODULENAME)="$(subst $(WHITESPACE),$(gb_CLASSPATHSEP),$(strip $(dir $(PACKAGEDIRS))))") \
+ 				-d $(call gb_JavaClassSet_get_classdir,$(2)) \
+ 				@$$RESPONSEFILE &&) \
+-			rm -f $$RESPONSEFILE &&) \
++			rm -f $$RESPONSEFILE &&)) \
+ 	touch $(1))
+ 
+ endef
+-- 
+2.44.0
+
diff --git a/0001-Revert-java-17-changes.patch b/0001-Revert-java-17-changes.patch
deleted file mode 100644
index 4b09a36..0000000
--- a/0001-Revert-java-17-changes.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From b8dd74fa811af7a1a8cf7f93b49ed63c828232a8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
-Date: Fri, 1 Mar 2024 07:31:27 +0100
-Subject: [PATCH 1/2] Revert java 17 changes
-
----
- README.md    |  4 +++-
- configure.ac | 10 +++++-----
- 2 files changed, 8 insertions(+), 6 deletions(-)
-
-diff --git a/README.md b/README.md
-index f529e48d4714..6afb8000b0e1 100644
---- a/README.md
-+++ b/README.md
-@@ -57,7 +57,9 @@ Java is required for building many parts of LibreOffice. In TDF Wiki article
- [Development/Java](https://wiki.documentfoundation.org/Development/Java), the
- exact modules that depend on Java are listed.
- 
--The baseline for Java is Java Development Kit (JDK) Version 17 or later.
-+The baseline for Java is Java Development Kit (JDK) Version 17 or later. It is
-+possible to build LibreOffice with JDK version 9, but it is no longer supported
-+by the JDK vendors, thus it should be avoided.
- 
- If you want to use Clang with the LibreOffice compiler plugins, the minimal
- version of Clang is 12.0.1. Since Xcode doesn't provide the compiler plugin
-diff --git a/configure.ac b/configure.ac
-index ae808e69c5b0..932abe65b353 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2570,7 +2570,7 @@ AC_ARG_WITH(linker-hash-style,
- 
- AC_ARG_WITH(jdk-home,
-     AS_HELP_STRING([--with-jdk-home=<absolute path to JDK home>],
--        [If you have installed JDK 17 or later on your system please supply the
-+        [If you have installed JDK 9 or later on your system please supply the
-          path here. Note that this is not the location of the java command but the
-          location of the entire distribution. In case of cross-compiling, this
-          is the JDK of the host os. Use --with-build-platform-configure-options
-@@ -8647,7 +8647,7 @@ if test "$ENABLE_JAVA" != ""; then
-         fi
- 
-         if ! test -f "$with_jdk_home/lib/jvm.lib" -a -f "$with_jdk_home/bin/java.exe"; then
--            AC_MSG_ERROR([No JDK found, pass the --with-jdk-home option (or fix the path) pointing to a $WIN_HOST_BITS-bit JDK >= 17])
-+            AC_MSG_ERROR([No JDK found, pass the --with-jdk-home option (or fix the path) pointing to a $WIN_HOST_BITS-bit JDK >= 9])
-         fi
-     fi
- 
-@@ -8732,8 +8732,8 @@ if test "$ENABLE_JAVA" != "" -a "$cross_compiling" != "yes"; then
-             _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED '/^$/d' | $SED s/[[-A-Za-z]]*//`
-             _jdk_ver=`echo "$_jdk" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'`
- 
--            if test "$_jdk_ver" -lt 170000; then
--                AC_MSG_ERROR([JDK is too old, you need at least 17 ($_jdk_ver < 170000)])
-+            if test "$_jdk_ver" -lt 90000; then
-+                AC_MSG_ERROR([JDK is too old, you need at least 9 ($_jdk_ver < 90000)])
-             fi
-             dnl TODO: Presumably, the Security Manager will not merely be disallowed, but be
-             dnl completely removed in some Java version > 18 (see
-@@ -8754,7 +8754,7 @@ if test "$ENABLE_JAVA" != "" -a "$cross_compiling" != "yes"; then
-             JAVACFLAGS=-J-Xmx128M
-         fi
-     else
--        AC_MSG_ERROR([Java not found. You need at least JDK 17])
-+        AC_MSG_ERROR([Java not found. You need at least JDK 9])
-     fi
- else
-     if test -z "$ENABLE_JAVA"; then
--- 
-2.44.0
-
diff --git a/0002-Revert-java-9-changes.patch b/0002-Revert-java-9-changes.patch
deleted file mode 100644
index cc0c1d5..0000000
--- a/0002-Revert-java-9-changes.patch
+++ /dev/null
@@ -1,193 +0,0 @@
-From afb38683e746c475e68b0883566b5593fc5babff Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
-Date: Fri, 1 Mar 2024 08:02:56 +0100
-Subject: [PATCH 2/2] Revert java 9 changes
-
----
- configure.ac                  |  8 ++++----
- ridljar/Jar_libreoffice.mk    |  8 +-------
- ridljar/Jar_unoloader.mk      | 11 +----------
- solenv/gbuild/Jar.mk          |  3 +--
- solenv/gbuild/JavaClassSet.mk | 23 ++---------------------
- 5 files changed, 9 insertions(+), 44 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 932abe65b353..153137c7ff7c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2570,7 +2570,7 @@ AC_ARG_WITH(linker-hash-style,
- 
- AC_ARG_WITH(jdk-home,
-     AS_HELP_STRING([--with-jdk-home=<absolute path to JDK home>],
--        [If you have installed JDK 9 or later on your system please supply the
-+        [If you have installed JDK 8 or later on your system please supply the
-          path here. Note that this is not the location of the java command but the
-          location of the entire distribution. In case of cross-compiling, this
-          is the JDK of the host os. Use --with-build-platform-configure-options
-@@ -8732,8 +8732,8 @@ if test "$ENABLE_JAVA" != "" -a "$cross_compiling" != "yes"; then
-             _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED '/^$/d' | $SED s/[[-A-Za-z]]*//`
-             _jdk_ver=`echo "$_jdk" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'`
- 
--            if test "$_jdk_ver" -lt 90000; then
--                AC_MSG_ERROR([JDK is too old, you need at least 9 ($_jdk_ver < 90000)])
-+            if test "$_jdk_ver" -lt 10800; then
-+                AC_MSG_ERROR([JDK is too old, you need at least 8 ($_jdk_ver < 10800)])
-             fi
-             dnl TODO: Presumably, the Security Manager will not merely be disallowed, but be
-             dnl completely removed in some Java version > 18 (see
-@@ -8754,7 +8754,7 @@ if test "$ENABLE_JAVA" != "" -a "$cross_compiling" != "yes"; then
-             JAVACFLAGS=-J-Xmx128M
-         fi
-     else
--        AC_MSG_ERROR([Java not found. You need at least JDK 9])
-+        AC_MSG_ERROR([Java not found. You need at least JDK 8])
-     fi
- else
-     if test -z "$ENABLE_JAVA"; then
-diff --git a/ridljar/Jar_libreoffice.mk b/ridljar/Jar_libreoffice.mk
-index 76a56eedc078..133d664e9459 100644
---- a/ridljar/Jar_libreoffice.mk
-+++ b/ridljar/Jar_libreoffice.mk
-@@ -7,7 +7,7 @@
- # file, You can obtain one at http://mozilla.org/MPL/2.0/.
- #
- 
--$(eval $(call gb_Jar_Jar,libreoffice,org.libreoffice.uno))
-+$(eval $(call gb_Jar_Jar,libreoffice))
- 
- $(eval $(call gb_Jar_use_customtargets,libreoffice,\
-     ridljar/javamaker \
-@@ -32,15 +32,9 @@ $(eval $(call gb_Jar_add_manifest_classpath,libreoffice, \
-     $(if $(filter MACOSX,$(OS)),../../Frameworks/,../) \
- ))
- 
--# ugly: the module-info.class is manually added here since it's not in "com" dir
- $(eval $(call gb_Jar_add_packagedirs,libreoffice,\
-     $(call gb_CustomTarget_get_workdir,ridljar/javamaker)/com \
-     $(call gb_CustomTarget_get_workdir,unoil/javamaker)/com \
--	$(call gb_JavaClassSet_get_classdir,$(call gb_Jar_get_classsetname,libreoffice))/module-info.class \
--))
--
--$(eval $(call gb_Jar_add_sourcefiles_java9,libreoffice,\
--    ridljar/source/libreoffice/module-info \
- ))
- 
- $(eval $(call gb_Jar_add_sourcefiles,libreoffice,\
-diff --git a/ridljar/Jar_unoloader.mk b/ridljar/Jar_unoloader.mk
-index 2acf20b5b289..50b32e8f0f88 100644
---- a/ridljar/Jar_unoloader.mk
-+++ b/ridljar/Jar_unoloader.mk
-@@ -7,21 +7,12 @@
- # file, You can obtain one at http://mozilla.org/MPL/2.0/.
- #
- 
--$(eval $(call gb_Jar_Jar,unoloader,org.libreoffice.unoloader))
-+$(eval $(call gb_Jar_Jar,unoloader))
- 
- $(eval $(call gb_Jar_set_packageroot,unoloader,com))
- 
- $(eval $(call gb_Jar_set_manifest,unoloader,$(SRCDIR)/ridljar/source/unoloader/com/sun/star/lib/unoloader/manifest))
- 
--# the module-info.class is manually added here since it's not in "com" dir
--$(eval $(call gb_Jar_add_packagedirs,unoloader,\
--	$(call gb_JavaClassSet_get_classdir,$(call gb_Jar_get_classsetname,unoloader))/module-info.class \
--))
--
--$(eval $(call gb_Jar_add_sourcefiles_java9,unoloader,\
--    ridljar/source/unoloader/module-info \
--))
--
- $(eval $(call gb_Jar_add_sourcefiles,unoloader,\
-     ridljar/source/unoloader/com/sun/star/lib/unoloader/UnoClassLoader \
-     ridljar/source/unoloader/com/sun/star/lib/unoloader/UnoLoader \
-diff --git a/solenv/gbuild/Jar.mk b/solenv/gbuild/Jar.mk
-index d1a84cebaabe..a6abe2996446 100644
---- a/solenv/gbuild/Jar.mk
-+++ b/solenv/gbuild/Jar.mk
-@@ -94,7 +94,6 @@ endef
- # creates a class set and a dependency to it
- # registers target and clean target
- # adds jar files to DeliverLogTarget
--# call gb_Jar_Jar,jarname,java9modulename
- define gb_Jar_Jar
- ifeq (,$$(findstring $(1),$$(gb_Jar_KNOWN)))
- $$(eval $$(call gb_Output_info,Currently known jars are: $(sort $(gb_Jar_KNOWN)),ALL))
-@@ -107,7 +106,7 @@ $(call gb_Jar_get_target,$(1)) : PACKAGEDIRS :=
- $(call gb_Jar_get_target,$(1)) : PACKAGEFILES :=
- $(call gb_Jar_get_target,$(1)) : \
- 	$(call gb_JavaClassSet_get_target,$(call gb_Jar_get_classsetname,$(1)))
--$(call gb_JavaClassSet_JavaClassSet,$(call gb_Jar_get_classsetname,$(1)),$(2))
-+$(call gb_JavaClassSet_JavaClassSet,$(call gb_Jar_get_classsetname,$(1)))
- $(eval $(call gb_Module_register_target,$(call gb_Jar_get_target,$(1)),$(call gb_Jar_get_clean_target,$(1))))
- $(call gb_Helper_make_userfriendly_targets,$(1),Jar,$(call gb_Jar_get_target,$(1)))
- 
-diff --git a/solenv/gbuild/JavaClassSet.mk b/solenv/gbuild/JavaClassSet.mk
-index 84fbcc13c32d..3b8e48414c73 100644
---- a/solenv/gbuild/JavaClassSet.mk
-+++ b/solenv/gbuild/JavaClassSet.mk
-@@ -19,7 +19,7 @@
- 
- gb_JavaClassSet_JAVACCOMMAND = $(ICECREAM_RUN) $(JAVACOMPILER) $(JAVACFLAGS) \
-     -encoding utf8 \
--    --release $(1) \
-+    -source $(1) -target $(1) \
-     -Xlint:-options \
-     -Xlint:unchecked
- 
-@@ -33,35 +33,19 @@ ifneq ($(gb_DEBUGLEVEL),0)
- gb_JavaClassSet_JAVACDEBUG := -g
- endif
- 
--# $(PACKAGEDIRS) inherited from Jar -- assumption is the last part of the path
--# is top-level java package directory
--# for Java 9 modules, invoke javac another time, with --patch-module so that
--# it finds all the class files for whose packages the module-info contains a
--# declaration
- define gb_JavaClassSet__command
- $(call gb_Helper_abbreviate_dirs,\
- 	mkdir -p $(dir $(1)) && \
- 	$(if $(filter-out $(JARDEPS),$(4)), \
- 		rm -rf $(call gb_JavaClassSet_get_classdir,$(2))/* && \
- 		RESPONSEFILE=$(call gb_var2file,$(shell $(gb_MKTEMP)),\
--			$(filter-out $(JARDEPS) $(T_JAVA9FILES),$(4))) && \
-+			$(filter-out $(JARDEPS),$(4))) && \
- 		$(if $(3),$(call gb_JavaClassSet_JAVACCOMMAND,$(JAVA_TARGET_VER)) \
- 			$(gb_JavaClassSet_JAVACDEBUG) \
- 			-classpath "$(T_CP)$(gb_CLASSPATHSEP)$(call gb_JavaClassSet_get_classdir,$(2))" \
- 			-d $(call gb_JavaClassSet_get_classdir,$(2)) \
- 			@$$RESPONSEFILE &&) \
- 		rm -f $$RESPONSEFILE &&) \
--		$(if $(T_MODULENAME),\
--			RESPONSEFILE=$(call gb_var2file,$(shell $(gb_MKTEMP)),\
--				$(T_JAVA9FILES)) && \
--			$(if $(3),$(call gb_JavaClassSet_JAVACCOMMAND,9) \
--				$(gb_JavaClassSet_JAVACDEBUG) \
--				-classpath "$(T_CP)$(gb_CLASSPATHSEP)$(call gb_JavaClassSet_get_classdir,$(2))" \
--				--module-path "$(T_CP)$(gb_CLASSPATHSEP)$(call gb_JavaClassSet_get_classdir,$(2))" \
--				$(if $(T_MODULENAME),--patch-module $(T_MODULENAME)="$(subst $(WHITESPACE),$(gb_CLASSPATHSEP),$(strip $(dir $(PACKAGEDIRS))))") \
--				-d $(call gb_JavaClassSet_get_classdir,$(2)) \
--				@$$RESPONSEFILE &&) \
--			rm -f $$RESPONSEFILE &&) \
- 	touch $(1))
- 
- endef
-@@ -82,7 +66,6 @@ $(call gb_JavaClassSet_get_preparation_target,%) :
- 	mkdir -p $(dir $@) && touch $@
- 
- # depend on makefile to enforce a rebuild if files are removed from the classset
--# call gb_JavaClassSet_JavaClassSet,csname,java9modulename
- define gb_JavaClassSet_JavaClassSet
- $(call gb_JavaClassSet_get_target,$(1)) : \
- 	$(gb_Module_CURRENTMAKEFILE) \
-@@ -90,8 +73,6 @@ $(call gb_JavaClassSet_get_target,$(1)) : \
- $(call gb_JavaClassSet_get_target,$(1)) : JARDEPS := \
- 	$(gb_Module_CURRENTMAKEFILE) \
- 	$(call gb_JavaClassSet_get_preparation_target,$(1))
--$(call gb_JavaClassSet_get_target,$(1)) : T_MODULENAME := $(2)
--$(call gb_JavaClassSet_get_target,$(1)) : T_JAVA9FILES :=
- 
- endef
- 
--- 
-2.44.0
-
diff --git a/libreoffice.changes b/libreoffice.changes
index 77fcfef..9ca65a3 100644
--- a/libreoffice.changes
+++ b/libreoffice.changes
@@ -1,3 +1,14 @@
+-------------------------------------------------------------------
+Fri Mar  1 08:59:56 UTC 2024 - Fridrich Strba <fstrba@suse.com>
+
+- Added patch:
+  * 0001-Allow-building-with-Java-8.patch
+    + patch submitted upstream restoring the possibility to build
+      with JDK >= 8
+- Removed patch:
+  * 0001-Revert-java-9-changes.patch
+    + not needed with the new patch above
+
 -------------------------------------------------------------------
 Wed Feb 21 18:45:44 UTC 2024 - Cor Blom <cornelis@solcon.nl>
 
diff --git a/libreoffice.spec b/libreoffice.spec
index f8d501b..8114b03 100644
--- a/libreoffice.spec
+++ b/libreoffice.spec
@@ -114,10 +114,8 @@ Patch11:        fix_webp_on_sle12_sp5.patch
 Patch14:        use-fixmath-shared-library.patch
 # PATCH-FIX-SUSE Fix make distro-pack-install
 Patch15:        fix-sdk-idl.patch
-# Useless upstream bump for java 17
-Patch100:       0001-Revert-java-17-changes.patch
-# Build with java 8
-Patch101:       0002-Revert-java-9-changes.patch
+# Patch submitted upstream to allow building with any Java >= 8
+Patch100:       0001-Allow-building-with-Java-8.patch
 # try to save space by using hardlinks
 Patch990:       install-with-hardlinks.diff
 # save time by relying on rpm check rather than doing stupid find+grep
@@ -312,31 +310,21 @@ BuildRequires:  pkgconfig(poppler-cpp)
 Source2021:     %{external_url}/icu4c-73_2-src.tgz
 Source2022:     %{external_url}/icu4c-73_2-data.zip
 Provides:       bundled(icu) = 73.2
-BuildRequires:  java-devel >= 1.8
 BuildRequires:  libBox2D-devel
 BuildRequires:  libmysqlclient-devel
-BuildConflicts: java < 1.8
-BuildConflicts: java >= 9
-BuildConflicts: java-devel < 1.8
-BuildConflicts: java-devel >= 9
-BuildConflicts: java-headless < 1.8
-BuildConflicts: java-headless >= 9
 Requires(post): update-desktop-files
 Requires(postun): update-desktop-files
 %else
 # genbrk binary is required
 BuildRequires:  icu
-BuildRequires:  java-devel >= 9
 BuildRequires:  libbox2d-devel
 BuildRequires:  libmariadb-devel
 BuildRequires:  pkgconfig(icu-i18n)
-BuildConflicts: java < 9
-BuildConflicts: java-devel < 9
-BuildConflicts: java-headless < 9
 BuildRequires:  pkgconfig(libopenjp2)
 %endif
 BuildRequires:  gcc12
 BuildRequires:  gcc12-c++
+BuildRequires:  java-devel >= 1.8
 %if 0%{?suse_version}
 # needed by python3_sitelib
 BuildRequires:  python-rpm-macros
@@ -1037,7 +1025,6 @@ Provides %{langname} translations and additional resources (help files, etc.) fo
 %if 0%{?suse_version} < 1500
 %patch -P 10 -p1
 %patch -P 11 -p1
-%patch -P 101 -p1
 %endif
 %patch -P 14 -p1
 %patch -P 15 -p1
@@ -1131,7 +1118,6 @@ export NOCONFIGURE=yes
         --with-system-headers \
         --with-system-libs \
         --with-system-jars \
-        --with-system-ucpp \
         --with-system-dicts \
         --with-system-libpng \
         --with-system-dragonbox \
@@ -1208,7 +1194,6 @@ export NOCONFIGURE=yes
 %endif
         --enable-evolution2 \
         --enable-dbus \
-        --enable-ext-ct2n \
         --enable-ext-nlpsolver \
         --enable-ext-numbertext \
         --enable-ext-wiki-publisher \