bin/check-elf-dynamic-objects         |    9 ++++++++-
 configure.ac                          |   14 ++++++++++++++
 external/curl/ExternalProject_curl.mk |    3 ++-
 3 files changed, 24 insertions(+), 2 deletions(-)

New commits:
commit 6a1ce1ecfd2608252eb8e60df58f7926d4235639
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Fri Jul 19 13:10:51 2024 +0200
Commit:     Adolfo Jayme Barrientos <fit...@ubuntu.com>
CommitDate: Wed Aug 7 01:20:33 2024 +0200

    configure,curl: enable GSSAPI on Linux/MacOS/etc.
    
    This will link libgssapi_krb5.so.2 which is in krb5-libs (ABI CL1 in
    RHEL8, ABI CL2 in RHEL9).
    
    Change-Id: I2dbaa64e70f4502c5a47c6c85123c94b9ad41277
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170758
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit 46e21942bf412eda1750f850c328cb41f1ff70ca)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171212
    Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com>

diff --git a/bin/check-elf-dynamic-objects b/bin/check-elf-dynamic-objects
index 415dea8f46ee..ba47ea591c5d 100755
--- a/bin/check-elf-dynamic-objects
+++ b/bin/check-elf-dynamic-objects
@@ -189,8 +189,15 @@ local file="$1"
         */libofficebean.so)
             allowlist="${allowlist} libjawt.so"
         ;;
+        */libcurl.so.4)
+            if [ "$WITH_GSSAPI" = TRUE ]; then
+                allowlist="${allowlist} ${kerberosallowlist}"
+            fi
+        ;;
         */libpostgresql-sdbc-impllo.so)
-            allowlist="${allowlist} ${kerberosallowlist}"
+            if [ "$WITH_GSSAPI" = TRUE ]; then
+                allowlist="${allowlist} ${kerberosallowlist}"
+            fi
         ;;
         */libconfigmgrlo.so)
             if [ "$ENABLE_DCONF" = TRUE ]; then
diff --git a/configure.ac b/configure.ac
index 2fdee1d7d416..80c2d764941a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1006,6 +1006,7 @@ ios*) # iOS
     test_libcmis=no
     test_openldap=no
     test_webdav=no
+    with_gssapi=no
     if test -n "$LODE_HOME" ; then
         mac_sanitize_path
         AC_MSG_NOTICE([sanitized the PATH to $PATH])
@@ -1103,6 +1104,7 @@ linux-android*)
     test_openldap=no
     test_system_freetype=no
     test_webdav=no
+    with_gssapi=no
     disable_database_connectivity_dependencies
     enable_lotuswordpro=no
     enable_mpl_subset=yes
@@ -2718,6 +2720,7 @@ AC_ARG_WITH(locales,
 ,)
 
 # Kerberos and GSSAPI used only by PostgreSQL as of LibO 3.5
+# and also by libcurl since LibO 24.2.6
 libo_FUZZ_ARG_WITH(krb5,
     AS_HELP_STRING([--with-krb5],
         [Enable MIT Kerberos 5 support in modules that support it.
@@ -10569,6 +10572,17 @@ dnl Check for system curl
 dnl ===================================================================
 libo_CHECK_SYSTEM_MODULE([curl],[CURL],[libcurl >= 7.68.0],enabled)
 
+if test "$enable_curl" = "yes" -a "$with_system_curl" != "yes" -a 
"$with_gssapi" != "no"; then
+    if test "$_os" != "WINNT"; then
+        WITH_GSSAPI=TRUE
+        save_LIBS=$LIBS
+        AC_SEARCH_LIBS(gss_init_sec_context, [gssapi_krb5 gss 'gssapi -lkrb5 
-lcrypto'], [],
+            [AC_MSG_ERROR([could not find function 'gss_init_sec_context' 
required for GSSAPI])])
+        GSSAPI_LIBS=$LIBS
+        LIBS=$save_LIBS
+    fi
+fi
+
 dnl ===================================================================
 dnl Check for system boost
 dnl ===================================================================
diff --git a/external/curl/ExternalProject_curl.mk 
b/external/curl/ExternalProject_curl.mk
index c63a8e0465ce..a7cd72e6bae3 100644
--- a/external/curl/ExternalProject_curl.mk
+++ b/external/curl/ExternalProject_curl.mk
@@ -43,7 +43,8 @@ $(call gb_ExternalProject_get_state_target,curl,build):
                        --without-libssh2 --without-nghttp2 \
                        --without-libssh --without-brotli \
                        --without-ngtcp2 --without-quiche \
-                       --without-zstd --without-hyper --without-libgsasl 
--without-gssapi \
+                       --without-zstd --without-hyper --without-libgsasl \
+                       $(if $(WITH_GSSAPI),--with-gssapi,--without-gssapi) \
                        --disable-mqtt --disable-ares \
                        --disable-dict --disable-file --disable-gopher 
--disable-imap \
                        --disable-ldap --disable-ldaps --disable-manual 
--disable-pop3 \

Reply via email to