From 3de3f660af5afad6f4a78cc021ed20dada936bbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Fri, 20 Sep 2024 12:25:11 +0100 Subject: [PATCH] add a --with-system-java-websocket MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit there was a system Java-WebSocket in Fedora 35, f.e. but unaware if this is actively packaged standalone in contemporary distros, but useful for the coverity build case. Change-Id: Id6393dbfb1c449b75391752a8bb5e5ea4481a084 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173725 Tested-by: Jenkins Reviewed-by: Caolán McNamara --- RepositoryExternal.mk | 12 ++++++++- config_host.mk.in | 2 ++ configure.ac | 34 +++++++++++++++++++++++-- distro-configs/LibreOfficeCoverity.conf | 2 ++ 4 files changed, 47 insertions(+), 3 deletions(-) diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index 2d35152eb0b8..4a421d6f08e6 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -3967,7 +3967,15 @@ endef endif # SYSTEM_JFREEREPORT -# no known distro packaged Java-Websocket at present +# As a guide, Java-Websocket was packaged for Fedora 35 +# https://src.fedoraproject.org/rpms/Java-WebSocket/tree/f35 +ifneq ($(SYSTEM_JAVA_WEBSOCKET),) + +define gb_Jar__use_java_websocket +$(call gb_Jar_use_system_jar,$(1),$(JAVA_WEBSOCKET_JAR)) +endef + +else # !SYSTEM_JAVA_WEBSOCKET ifeq ($(ENABLE_JAVA),TRUE) $(eval $(call gb_Helper_register_jars_for_install,URE,ure, \ @@ -3979,6 +3987,8 @@ define gb_Jar__use_java_websocket $(call gb_Jar_use_jar,$(1),java_websocket) endef +endif # SYSTEM_JAVA_WEBSOCKET + # Executables define gb_Executable__register_bestreversemap diff --git a/config_host.mk.in b/config_host.mk.in index 315642b8dd35..fcc5a8b904a1 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -386,6 +386,7 @@ export KF5_LIBS=$(gb_SPACE)@KF5_LIBS@ export KF6_CFLAGS=$(gb_SPACE)@KF6_CFLAGS@ export KF6_LIBS=$(gb_SPACE)@KF6_LIBS@ export KRB5_LIBS=@KRB5_LIBS@ +export JAVA_WEBSOCKET_JAR=@JAVA_WEBSOCKET_JAR@ export LCMS2_CFLAGS=$(gb_SPACE)@LCMS2_CFLAGS@ export LCMS2_LIBS=$(gb_SPACE)@LCMS2_LIBS@ export LD=@LD@ @@ -677,6 +678,7 @@ SYSTEM_EBOOK=@SYSTEM_EBOOK@ SYSTEM_ETONYEK=@SYSTEM_ETONYEK@ SYSTEM_EPUBGEN=@SYSTEM_EPUBGEN@ SYSTEM_FREEHAND=@SYSTEM_FREEHAND@ +SYSTEM_JAVA_WEBSOCKET=@SYSTEM_JAVA_WEBSOCKET@ SYSTEM_LIBATOMIC_OPS=@SYSTEM_LIBATOMIC_OPS@ SYSTEM_LIBEOT=@SYSTEM_LIBEOT@ SYSTEM_LIBEXTTEXTCAT=@SYSTEM_LIBEXTTEXTCAT@ diff --git a/configure.ac b/configure.ac index 25324da03940..698fadaf1940 100644 --- a/configure.ac +++ b/configure.ac @@ -13155,17 +13155,47 @@ AC_SUBST(LIBASSUAN_LIBS) AC_SUBST(GPGMEPP_CFLAGS) AC_SUBST(GPGMEPP_LIBS) +AC_ARG_WITH(system-java-websocket, + AS_HELP_STRING([--with-system-java-websocket], + [Use Java-WebSocket already on system.]),, + [with_system_java_websocket="$with_system_jars"]) + +AC_ARG_WITH(java-websocket-jar, + AS_HELP_STRING([--with-java-websocket-jar=JARFILE], + [Specify path to jarfile manually.]), + JAVA_WEBSOCKET_JAR=$withval) + AC_MSG_CHECKING([whether to build Java Websocket for the UNO remote websocket client]) if test "$with_java" != "no"; then AC_MSG_RESULT([yes]) ENABLE_JAVA_WEBSOCKET=TRUE - BUILD_TYPE="$BUILD_TYPE JAVA_WEBSOCKET" - NEED_ANT=TRUE + + dnl =================================================================== + dnl Check for system Java-WebSocket + dnl =================================================================== + AC_MSG_CHECKING([which Java-WebSocket to use]) + if test "$with_system_java_websocket" = "yes"; then + AC_MSG_RESULT([external]) + SYSTEM_JAVA_WEBSOCKET=TRUE + if test -z $JAVA_WEBSOCKET_JAR; then + JAVA_WEBSOCKET_JAR=/usr/share/java/Java-WebSocket/Java-WebSocket.jar + fi + if ! test -f $JAVA_WEBSOCKET_JAR; then + AC_MSG_ERROR(Java-WebSocket.jar not found.) + fi + else + AC_MSG_RESULT([internal]) + SYSTEM_JAVA_WEBSOCKET= + BUILD_TYPE="$BUILD_TYPE JAVA_WEBSOCKET" + NEED_ANT=TRUE + fi else AC_MSG_RESULT([no]) ENABLE_JAVA_WEBSOCKET= fi AC_SUBST(ENABLE_JAVA_WEBSOCKET) +AC_SUBST(SYSTEM_JAVA_WEBSOCKET) +AC_SUBST(JAVA_WEBSOCKET_JAR) AC_MSG_CHECKING([whether to build the Wiki Publisher extension]) if test "x$enable_ext_wiki_publisher" = "xyes" -a "x$enable_extension_integration" != "xno" -a "$with_java" != "no"; then diff --git a/distro-configs/LibreOfficeCoverity.conf b/distro-configs/LibreOfficeCoverity.conf index 29959e007812..4133558a89e2 100644 --- a/distro-configs/LibreOfficeCoverity.conf +++ b/distro-configs/LibreOfficeCoverity.conf @@ -29,5 +29,7 @@ --with-hsqldb-jar=/home/coverity/hsqldb.jar --with-system-rhino --with-rhino-jar=/home/coverity/js.jar +--with-system-java-websocket +--with-java-websocket-jar=/home/coverity/Java-WebSocket.jar --with-system-lockfile --enable-odk