public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Mattias Ellert <mattias.ellert@physics.uu.se>
To: git-commits@fedoraproject.org
Subject: [rpms/globus-gssapi-gsi] rawhide: Compile with OpenSSL 4
Date: Sun, 14 Jun 2026 08:53:52 GMT	[thread overview]
Message-ID: <178142723272.1.15106319173368203000.rpms-globus-gssapi-gsi-d093bb582ee5@fedoraproject.org> (raw)

            A new commit has been pushed.

            Repo   : rpms/globus-gssapi-gsi
            Branch : rawhide
            Commit : d093bb582ee5417f40b65047fc7dd99bd416ff7d
            Author : Mattias Ellert <mattias.ellert@physics.uu.se>
            Date   : 2026-06-14T10:39:13+02:00
            Stats  : +1986/-1 in 4 file(s)
            URL    : https://src.fedoraproject.org/rpms/globus-gssapi-gsi/c/d093bb582ee5417f40b65047fc7dd99bd416ff7d?branch=rawhide

            Log:
            Compile with OpenSSL 4
Fix compiler warnings

---
diff --git a/0001-Untabify-and-remove-trailing-white-space.patch b/0001-Untabify-and-remove-trailing-white-space.patch
new file mode 100644
index 0000000..f293299
--- /dev/null
+++ b/0001-Untabify-and-remove-trailing-white-space.patch
@@ -0,0 +1,1306 @@
+From 3ccdaa0236230bbcbcbf339e7dfdfaf23c10bd6f Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert@physics.uu.se>
+Date: Wed, 20 May 2026 00:15:37 +0200
+Subject: [PATCH 1/3] Untabify and remove trailing white-space
+
+---
+ gsi/gssapi/source/library/compare_name.c      |  20 +-
+ gsi/gssapi/source/library/display_name.c      |  20 +-
+ .../source/library/globus_i_gsi_gss_utils.h   |   4 +-
+ gsi/gssapi/source/library/import_name.c       |  18 +-
+ .../source/library/inquire_cred_by_oid.c      |  16 +-
+ .../library/inquire_sec_context_by_oid.c      |  34 +-
+ gsi/gssapi/source/test/alpn-test.c            |   2 +-
+ gsi/gssapi/source/test/duplicate_name_test.c  |  24 +-
+ gsi/gssapi/source/test/gssapi_test_utils.c    | 306 +++++++++---------
+ gsi/gssapi/source/test/indicate_mechs_test.c  |   6 +-
+ gsi/gssapi/source/test/release_name_test.c    |  14 +-
+ 11 files changed, 232 insertions(+), 232 deletions(-)
+
+diff --git a/gsi/gssapi/source/library/compare_name.c b/gsi/gssapi/source/library/compare_name.c
+index 5ddc5aebb..f5cdd9d36 100644
+--- a/gsi/gssapi/source/library/compare_name.c
++++ b/gsi/gssapi/source/library/compare_name.c
+@@ -37,7 +37,7 @@
+ #endif
+ 
+ /* Comparison types */
+-typedef enum 
++typedef enum
+ {
+     GSS_I_COMPARE_NT_ANONYMOUS,
+     GSS_I_COMPARE_NT_X509,
+@@ -174,7 +174,7 @@ gss_l_get_oid_type(
+  * @ingroup globus_gsi_gssapi
+  * @details
+  * Compare two names. GSSAPI names in this implementation
+- * are pointers to X.509 names. 
++ * are pointers to X.509 names.
+  *
+  * @param minor_status
+  *        currently is always set to GLOBUS_SUCCESS
+@@ -185,7 +185,7 @@ gss_l_get_oid_type(
+  * @return
+  *        currently always returns GSS_S_COMPLETE
+  */
+-OM_uint32 
++OM_uint32
+ GSS_CALLCONV gss_compare_name(
+     OM_uint32 *                         minor_status,
+     const gss_name_t                    name1_P,
+@@ -272,7 +272,7 @@ GSS_CALLCONV gss_compare_name(
+                                       _GGSL("Name 2 is of type %s:\n"),
+                                       gss_l_name_types[type2]));
+ 
+-    /* Normalize order of name1 and name2 so we can have fewer comparisons 
++    /* Normalize order of name1 and name2 so we can have fewer comparisons
+      * below
+      */
+     if (type1 > type2)
+@@ -377,7 +377,7 @@ GSS_CALLCONV gss_compare_name(
+     GLOBUS_I_GSI_GSSAPI_DEBUG_EXIT;
+     return major_status;
+ 
+-} 
++}
+ /* gss_compare_name */
+ 
+ static
+@@ -911,7 +911,7 @@ gss_l_compare_hostbased_service_to_hostbased_service(
+     ns1 = name1->host_name;
+     ns2 = name2->host_name;
+ 
+-    /* In strict mode, we compare service names, for backward compatibility, 
++    /* In strict mode, we compare service names, for backward compatibility,
+      * we ignore them.
+      */
+     if (gss_i_name_compatibility_mode == GSS_I_COMPATIBILITY_STRICT_RFC2818 &&
+@@ -1012,7 +1012,7 @@ gss_l_compare_host_ip_to_host_ip(
+     {
+         *name_equal = GSS_NAMES_EQUAL;
+     }
+-    else if (gss_i_name_compatibility_mode != GSS_I_COMPATIBILITY_STRICT_RFC2818) 
++    else if (gss_i_name_compatibility_mode != GSS_I_COMPATIBILITY_STRICT_RFC2818)
+     {
+         ns1 = name1->ip_name;
+         major_status = gss_l_compare_hostnames_with_wildcards(
+@@ -1182,7 +1182,7 @@ gss_l_compare_hostnames_with_wildcards(
+             }
+ 
+         }
+-        else if (wildcards2 == GSS_I_WILDCARD_GT2 && *tok2 == '-' 
++        else if (wildcards2 == GSS_I_WILDCARD_GT2 && *tok2 == '-'
+             && first_token)
+         {
+             if (*tok1 != '\0')
+@@ -1243,7 +1243,7 @@ gss_l_strsep(char **stringp, const char * delim)
+ /* Convert oid struct to integer
+  *
+  * @param oid
+- *     OID to convert to a gss_l_compare_type_t (or -1 if the 
++ *     OID to convert to a gss_l_compare_type_t (or -1 if the
+  *     name type is not supported.
+  */
+ static
+@@ -1259,7 +1259,7 @@ gss_l_get_oid_type(
+     {
+         return GSS_I_COMPARE_NT_X509;
+     }
+-    else if (g_OID_equal(oid, GSS_C_NO_OID) || 
++    else if (g_OID_equal(oid, GSS_C_NO_OID) ||
+              g_OID_equal(oid, GSS_C_NT_USER_NAME))
+     {
+         return GSS_I_COMPARE_NT_NO_OID;
+diff --git a/gsi/gssapi/source/library/display_name.c b/gsi/gssapi/source/library/display_name.c
+index 0a3d76a2e..235bb427b 100644
+--- a/gsi/gssapi/source/library/display_name.c
++++ b/gsi/gssapi/source/library/display_name.c
+@@ -34,15 +34,15 @@
+  * @details
+  * Produces a single line version of the internal X.509 name
+  *
+- * @param minor_status 
++ * @param minor_status
+  * @param input_name_P
+  * @param output_name
+  * @param output_name_type
+  *
+- * @return 
++ * @return
+  */
+-OM_uint32 
+-GSS_CALLCONV 
++OM_uint32
++GSS_CALLCONV
+ gss_display_name(
+     OM_uint32 *                         minor_status,
+     const gss_name_t                    input_name_P,
+@@ -51,7 +51,7 @@ gss_display_name(
+ {
+     OM_uint32                           major_status = GSS_S_COMPLETE;
+ 
+-    const gss_name_desc*                input_name = 
++    const gss_name_desc*                input_name =
+                                         (gss_name_desc*) input_name_P;
+ 
+     GLOBUS_I_GSI_GSSAPI_DEBUG_ENTER;
+@@ -62,7 +62,7 @@ gss_display_name(
+     {
+         major_status = GSS_S_FAILURE;
+         GLOBUS_GSI_GSSAPI_ERROR_RESULT(
+-            minor_status, 
++            minor_status,
+             GLOBUS_GSI_GSSAPI_ERROR_BAD_ARGUMENT,
+             ("Bad argument"));
+         goto exit;
+@@ -174,7 +174,7 @@ gss_display_name(
+         {
+             major_status = GSS_S_BAD_NAME;
+             GLOBUS_GSI_GSSAPI_ERROR_RESULT(
+-                minor_status, 
++                minor_status,
+                 GLOBUS_GSI_GSSAPI_ERROR_BAD_NAME,
+                 ("X.509 Name contains no SubjectName and no dNSName."));
+             goto exit;
+@@ -184,12 +184,12 @@ gss_display_name(
+     {
+         major_status = GSS_S_FAILURE;
+         GLOBUS_GSI_GSSAPI_ERROR_RESULT(
+-            minor_status, 
++            minor_status,
+             GLOBUS_GSI_GSSAPI_ERROR_BAD_NAME,
+             ("Bad Name"));
+         goto exit;
+     }
+-  
++
+     if(output_name_type)
+     {
+         *output_name_type = input_name->name_oid;
+@@ -199,5 +199,5 @@ gss_display_name(
+ 
+     GLOBUS_I_GSI_GSSAPI_DEBUG_EXIT;
+     return major_status;
+-} 
++}
+ /* gss_display_name */
+diff --git a/gsi/gssapi/source/library/globus_i_gsi_gss_utils.h b/gsi/gssapi/source/library/globus_i_gsi_gss_utils.h
+index c8b81e399..9f7fe143f 100644
+--- a/gsi/gssapi/source/library/globus_i_gsi_gss_utils.h
++++ b/gsi/gssapi/source/library/globus_i_gsi_gss_utils.h
+@@ -128,7 +128,7 @@ extern globus_bool_t                    globus_i_gssapi_active;
+     {                                                         \
+         globus_libc_fprintf _MESSAGE_;                        \
+     }                                                         \
+-} 
++}
+ 
+ #define GLOBUS_I_GSI_GSSAPI_DEBUG_FNPRINTF(_LEVEL_, _MESSAGE_) \
+ { \
+@@ -151,7 +151,7 @@ extern globus_bool_t                    globus_i_gssapi_active;
+             "%s", _MESSAGE_);                               \
+     }                                                       \
+ }
+- 
++
+ #define GLOBUS_I_GSI_GSSAPI_DEBUG_PRINT_OBJECT(_LEVEL_, _TYPE_, _OBJ_) \
+ {                                                                      \
+     if (GLOBUS_I_GSI_GSSAPI_DEBUG(_LEVEL_))                            \
+diff --git a/gsi/gssapi/source/library/import_name.c b/gsi/gssapi/source/library/import_name.c
+index f13e34505..791535526 100644
+--- a/gsi/gssapi/source/library/import_name.c
++++ b/gsi/gssapi/source/library/import_name.c
+@@ -41,7 +41,7 @@ gss_l_resolve_ip(
+  *
+  * Creates a new gss_name_t which contains a mechanism-specific representation
+  * of the input name. GSSAPI OpenSSL implements the following name types, based
+- * on the input_name_type OID: 
++ * on the input_name_type OID:
+  *
+  * - GSS_C_NT_ANONYMOUS (input_name_buffer is ignored)
+  * - GSS_C_NT_HOSTBASED_SERVICE (input_name_buffer contains a string
+@@ -84,7 +84,7 @@ gss_l_resolve_ip(
+  *     indicates that the requested operation could not be performed for
+  *     reasons unspecified at the GSS-API level.
+  */
+-OM_uint32 
++OM_uint32
+ GSS_CALLCONV gss_import_name(
+     OM_uint32 *                         minor_status,
+     const gss_buffer_t                  input_name_buffer,
+@@ -119,14 +119,14 @@ GSS_CALLCONV gss_import_name(
+     *minor_status = (OM_uint32) GLOBUS_SUCCESS;
+ 
+     output_name = calloc(1, sizeof(gss_name_desc));
+-    
++
+     if (output_name == NULL)
+     {
+         GLOBUS_GSI_GSSAPI_MALLOC_ERROR(minor_status);
+         major_status = GSS_S_FAILURE;
+         goto out;
+-    } 
+-    
++    }
++
+     output_name->name_oid = input_name_type;
+     output_name->x509n = X509_NAME_new();
+     if (output_name->x509n == NULL)
+@@ -289,7 +289,7 @@ GSS_CALLCONV gss_import_name(
+             goto release_name_out;
+         }
+         memcpy(output_name->user_name,
+-               input_name_buffer->value, 
++               input_name_buffer->value,
+                input_name_buffer->length);
+         output_name->user_name[input_name_buffer->length] = '\0';
+ 
+@@ -493,7 +493,7 @@ GSS_CALLCONV gss_import_name(
+     else
+     {
+         GLOBUS_GSI_GSSAPI_ERROR_RESULT(
+-                minor_status, 
++                minor_status,
+                 GLOBUS_GSI_GSSAPI_ERROR_BAD_NAME,
+                 (_GGSL("Bad name type")));
+ 
+@@ -510,12 +510,12 @@ release_name_out:
+     }
+ 
+     *output_name_P = output_name;
+-    
++
+  out:
+ 
+     GLOBUS_I_GSI_GSSAPI_DEBUG_EXIT;
+     return major_status;
+-} 
++}
+ /* gss_import_name */
+ 
+ 
+diff --git a/gsi/gssapi/source/library/inquire_cred_by_oid.c b/gsi/gssapi/source/library/inquire_cred_by_oid.c
+index 668b93b9e..1aa39e63c 100644
+--- a/gsi/gssapi/source/library/inquire_cred_by_oid.c
++++ b/gsi/gssapi/source/library/inquire_cred_by_oid.c
+@@ -31,8 +31,8 @@
+ /**
+  * @brief Inquire Cred By OID
+  * @ingroup globus_gsi_gssapi_extensions
+- * @details 
+- * NOTE: Checks both the cert in the credential and 
++ * @details
++ * NOTE: Checks both the cert in the credential and
+  * the certs in the cert chain for a valid extension
+  * that matches the desired OID.  The first one found
+  * is used, starting with the endpoint cert, and then
+@@ -66,13 +66,13 @@ GSS_CALLCONV gss_inquire_cred_by_oid(
+     globus_result_t                     local_result = GLOBUS_SUCCESS;
+ 
+     GLOBUS_I_GSI_GSSAPI_DEBUG_ENTER;
+-    
++
+     if(minor_status == NULL)
+     {
+         major_status = GSS_S_FAILURE;
+         goto exit;
+     }
+-    
++
+     *minor_status = (OM_uint32) GLOBUS_SUCCESS;
+ 
+     /* parameter checking goes here */
+@@ -121,7 +121,7 @@ GSS_CALLCONV gss_inquire_cred_by_oid(
+     }
+ 
+     major_status = gss_create_empty_buffer_set(
+-        &local_minor_status, 
++        &local_minor_status,
+         data_set);
+ 
+     if(GSS_ERROR(major_status))
+@@ -201,7 +201,7 @@ GSS_CALLCONV gss_inquire_cred_by_oid(
+ 
+             data_set_buffer.value = asn1_oct_string->data;
+             data_set_buffer.length = asn1_oct_string->length;
+-        
++
+             major_status = gss_add_buffer_set_member(
+                 &local_minor_status,
+                 &data_set_buffer,
+@@ -224,9 +224,9 @@ GSS_CALLCONV gss_inquire_cred_by_oid(
+     {
+         sk_X509_pop_free(cert_chain, X509_free);
+     }
+-    
++
+     GLOBUS_I_GSI_GSSAPI_DEBUG_EXIT;
+     return major_status;
+ }
+-    
++
+ #endif /* _HAVE_GSI_EXTENDED_GSSAPI */
+diff --git a/gsi/gssapi/source/library/inquire_sec_context_by_oid.c b/gsi/gssapi/source/library/inquire_sec_context_by_oid.c
+index ebd3cefc1..f8ceb8542 100644
+--- a/gsi/gssapi/source/library/inquire_sec_context_by_oid.c
++++ b/gsi/gssapi/source/library/inquire_sec_context_by_oid.c
+@@ -69,7 +69,7 @@ GSS_CALLCONV gss_inquire_sec_context_by_oid(
+         major_status = GSS_S_FAILURE;
+         goto exit;
+     }
+-    
++
+     if(context_handle == GSS_C_NO_CONTEXT)
+     {
+         GLOBUS_GSI_GSSAPI_ERROR_RESULT(
+@@ -108,7 +108,7 @@ GSS_CALLCONV gss_inquire_sec_context_by_oid(
+     /* lock the context mutex */
+     globus_mutex_lock(&context->mutex);
+ 
+-    local_result = 
++    local_result =
+         globus_gsi_callback_get_cert_depth(context->callback_data,
+                                            &cert_count);
+     if(local_result != GLOBUS_SUCCESS)
+@@ -124,7 +124,7 @@ GSS_CALLCONV gss_inquire_sec_context_by_oid(
+     {
+         goto unlock_exit;
+     }
+-    
++
+     major_status = gss_create_empty_buffer_set(&local_minor_status, data_set);
+ 
+     if(GSS_ERROR(major_status))
+@@ -134,7 +134,7 @@ GSS_CALLCONV gss_inquire_sec_context_by_oid(
+             GLOBUS_GSI_GSSAPI_ERROR_WITH_BUFFER);
+         goto unlock_exit;
+     }
+-    
++
+     local_result = globus_gsi_callback_get_cert_chain(
+         context->callback_data,
+         &cert_chain);
+@@ -260,7 +260,7 @@ GSS_CALLCONV gss_inquire_sec_context_by_oid(
+               gss_ext_x509_cert_chain_oid->length))
+     {
+         /* figure out what object was asked for */
+-        
++
+         asn1_desired_obj = ASN1_OBJECT_create(
+             NID_undef,
+             desired_object->elements,
+@@ -285,10 +285,10 @@ GSS_CALLCONV gss_inquire_sec_context_by_oid(
+             data_set_buffer.value = NULL;
+             data_set_buffer.length = 0;
+ 
+-            found_index = X509_get_ext_by_OBJ(cert, 
+-                                              asn1_desired_obj, 
++            found_index = X509_get_ext_by_OBJ(cert,
++                                              asn1_desired_obj,
+                                               found_index);
+-        
++
+             if(found_index >= 0)
+             {
+                 extension = X509_get_ext(cert, found_index);
+@@ -331,7 +331,7 @@ GSS_CALLCONV gss_inquire_sec_context_by_oid(
+                 data_set_buffer.length = asn1_oct_string->length;
+ 
+                 OPENSSL_free(asn1_oct_string);
+-            
++
+                 major_status = gss_add_buffer_set_member(
+                     &local_minor_status,
+                     &data_set_buffer,
+@@ -344,7 +344,7 @@ GSS_CALLCONV gss_inquire_sec_context_by_oid(
+                     goto unlock_exit;
+                 }
+             }
+-        } 
++        }
+     }
+     else
+     {
+@@ -363,9 +363,9 @@ GSS_CALLCONV gss_inquire_sec_context_by_oid(
+                     GLOBUS_GSI_GSSAPI_ERROR_WITH_OPENSSL,
+                     (_GGSL("Failed to serialize certificate")));
+                 major_status = GSS_S_FAILURE;
+-                goto unlock_exit;                
++                goto unlock_exit;
+             }
+-            
++
+             tmp_ptr = realloc(data_set_buffer.value,
+                               data_set_buffer.length);
+ 
+@@ -373,11 +373,11 @@ GSS_CALLCONV gss_inquire_sec_context_by_oid(
+             {
+                 GLOBUS_GSI_GSSAPI_MALLOC_ERROR(minor_status);
+                 major_status = GSS_S_FAILURE;
+-                goto unlock_exit;                
++                goto unlock_exit;
+             }
+ 
+             data_set_buffer.value = tmp_ptr;
+-            
++
+             if(i2d_X509(cert,&tmp_ptr) < 0)
+             {
+                 free(data_set_buffer.value);
+@@ -386,7 +386,7 @@ GSS_CALLCONV gss_inquire_sec_context_by_oid(
+                     GLOBUS_GSI_GSSAPI_ERROR_WITH_OPENSSL,
+                     (_GGSL("Failed to serialize certificate")));
+                 major_status = GSS_S_FAILURE;
+-                goto unlock_exit;                
++                goto unlock_exit;
+             }
+ 
+             major_status = gss_add_buffer_set_member(
+@@ -401,7 +401,7 @@ GSS_CALLCONV gss_inquire_sec_context_by_oid(
+                 goto unlock_exit;
+             }
+         }
+-        
++
+         if(data_set_buffer.value != NULL)
+         {
+             free(data_set_buffer.value);
+@@ -421,7 +421,7 @@ exit:
+     {
+         sk_X509_pop_free(cert_chain, X509_free);
+     }
+-    
++
+     GLOBUS_I_GSI_GSSAPI_DEBUG_EXIT;
+     return major_status;
+ }
+diff --git a/gsi/gssapi/source/test/alpn-test.c b/gsi/gssapi/source/test/alpn-test.c
+index a0870b5e7..561495410 100644
+--- a/gsi/gssapi/source/test/alpn-test.c
++++ b/gsi/gssapi/source/test/alpn-test.c
+@@ -1095,7 +1095,7 @@ main(int argc, char *argv[])
+         fprintf(stderr, "ALPN not supported\n");
+         exit(77);
+     }
+-    
++
+     size_t num_test_cases = sizeof(test_cases)/sizeof(test_cases[0]);
+ 
+     printf("1..%zu\n", num_test_cases);
+diff --git a/gsi/gssapi/source/test/duplicate_name_test.c b/gsi/gssapi/source/test/duplicate_name_test.c
+index 97ac37334..59840495e 100644
+--- a/gsi/gssapi/source/test/duplicate_name_test.c
++++ b/gsi/gssapi/source/test/duplicate_name_test.c
+@@ -37,7 +37,7 @@ duplicate_bad_params_test(void)
+     name_tok.value = subject;
+     name_tok.length = strlen(subject) + 1;
+     name_type = GSS_C_NT_HOSTBASED_SERVICE;
+-    
++
+     major_status = gss_import_name(&minor_status,
+                                    &name_tok,
+                                    name_type,
+@@ -96,7 +96,7 @@ duplicate_username_test(void)
+     name_tok.value = subject;
+     name_tok.length = strlen(subject) + 1;
+     name_type = GSS_C_NO_OID;
+-    
++
+     major_status = gss_import_name(&minor_status,
+                                    &name_tok,
+                                    name_type,
+@@ -165,7 +165,7 @@ duplicate_anonymous_test(void)
+     name_tok.value = NULL;
+     name_tok.length = 0;
+     name_type = GSS_C_NT_ANONYMOUS;
+-    
++
+     major_status = gss_import_name(&minor_status,
+                                    &name_tok,
+                                    name_type,
+@@ -178,7 +178,7 @@ duplicate_anonymous_test(void)
+         return 1;
+     }
+ 
+-    
++
+     major_status = gss_duplicate_name(&minor_status, gss_name, &name_copy);
+     if(major_status != GSS_S_COMPLETE)
+     {
+@@ -191,7 +191,7 @@ duplicate_anonymous_test(void)
+                                     name_copy,
+                                     &name_tok,
+                                     NULL);
+-    
++
+     if(major_status != GSS_S_COMPLETE)
+     {
+         globus_gsi_gssapi_test_print_error(stderr, major_status, minor_status);
+@@ -253,7 +253,7 @@ duplicate_hostbase_service_test(void)
+     name_tok.value = subject;
+     name_tok.length = strlen(subject) + 1;
+     name_type = GSS_C_NT_HOSTBASED_SERVICE;
+-    
++
+     major_status = gss_import_name(&minor_status,
+                                    &name_tok,
+                                    name_type,
+@@ -325,7 +325,7 @@ duplicate_host_ip_test(void)
+     name_tok.value = subject;
+     name_tok.length = strlen(subject) + 1;
+     name_type = GLOBUS_GSS_C_NT_HOST_IP;
+-    
++
+     major_status = gss_import_name(&minor_status,
+                                    &name_tok,
+                                    name_type,
+@@ -407,7 +407,7 @@ duplicate_x509_test(void)
+     for (i = 0; i < SIZEOF_ARRAY(test_certs); i++)
+     {
+         char * test_cert;
+-        
++
+         if (test_cert_dir)
+         {
+             test_cert = globus_common_create_string("%s/%s",
+@@ -417,15 +417,15 @@ duplicate_x509_test(void)
+         {
+             test_cert = test_certs[i];
+         }
+-        
++
+         result = globus_gsi_cred_handle_init(&cred_handle, NULL);
+         if (result != GLOBUS_SUCCESS)
+         {
+             globus_gsi_gssapi_test_print_result(stderr, result);
+ 
+             if (test_cert_dir)
+-	    {
+-	        free(test_cert);
++            {
++                free(test_cert);
+             }
+ 
+             return 2;
+@@ -454,7 +454,7 @@ duplicate_x509_test(void)
+         name_tok.value = x509;
+         name_tok.length = sizeof(x509);
+         name_type = GLOBUS_GSS_C_NT_X509;
+-        
++
+         major_status = gss_import_name(&minor_status,
+                                        &name_tok,
+                                        name_type,
+diff --git a/gsi/gssapi/source/test/gssapi_test_utils.c b/gsi/gssapi/source/test/gssapi_test_utils.c
+index 0a87c3489..10d08a1c1 100644
+--- a/gsi/gssapi/source/test/gssapi_test_utils.c
++++ b/gsi/gssapi/source/test/gssapi_test_utils.c
+@@ -72,13 +72,13 @@ init_sec_context(
+     gss_ctx_id_t *                      context);
+ 
+ 
+-gss_cred_id_t 
++gss_cred_id_t
+ globus_gsi_gssapi_test_acquire_credential()
+ {
+     gss_cred_id_t                       credential = GSS_C_NO_CREDENTIAL;
+     OM_uint32                           major_status = GSS_S_COMPLETE;
+     OM_uint32                           minor_status;
+-    
++
+     major_status = gss_acquire_cred(&minor_status,
+                                     GSS_C_NO_NAME,
+                                     GSS_C_INDEFINITE,
+@@ -87,18 +87,18 @@ globus_gsi_gssapi_test_acquire_credential()
+                                     &credential,
+                                     NULL,
+                                     NULL);
+-    
++
+     if(major_status != GSS_S_COMPLETE)
+     {
+         globus_gsi_gssapi_test_print_error(stderr, major_status, minor_status);
+         globus_gsi_gssapi_test_print_result(stderr, minor_status);
+         return GSS_C_NO_CREDENTIAL;
+     }
+-    
++
+     return credential;
+ }
+ 
+-void 
++void
+ globus_gsi_gssapi_test_release_credential(
+     gss_cred_id_t *                     credential)
+ {
+@@ -110,27 +110,27 @@ globus_gsi_gssapi_test_release_credential(
+ globus_bool_t
+ globus_gsi_gssapi_test_authenticate(
+     int                                 fd,
+-    globus_bool_t                       server, 
+-    gss_cred_id_t                       credential, 
+-    gss_ctx_id_t *                      context_handle, 
+-    char **                             user_id, 
++    globus_bool_t                       server,
++    gss_cred_id_t                       credential,
++    gss_ctx_id_t *                      context_handle,
++    char **                             user_id,
+     gss_cred_id_t *                     delegated_cred)
+ {
+     OM_uint32                           major_status = GSS_S_COMPLETE;
+-    
+-    if (server == GLOBUS_TRUE) 
++
++    if (server == GLOBUS_TRUE)
+     {
+-        major_status = accept_sec_context(fd, 
+-					  user_id,
+-					  context_handle, 
+-					  delegated_cred, 
+-					  credential);
++        major_status = accept_sec_context(fd,
++                                          user_id,
++                                          context_handle,
++                                          delegated_cred,
++                                          credential);
+     }
+-    else 
++    else
+     {
+         major_status = init_sec_context(fd,
+-					credential,
+-					context_handle);
++                                        credential,
++                                        context_handle);
+     }
+ 
+     return major_status == GSS_S_COMPLETE ? GLOBUS_TRUE : GLOBUS_FALSE;
+@@ -144,7 +144,7 @@ test_establish_contexts_with_mechs(
+     OM_uint32                           flags,
+     OM_uint32                          *major_status,
+     OM_uint32                          *minor_status)
+-    
++
+ {
+     int                                 rc = 0;
+     OM_uint32                           init_major_status;
+@@ -225,7 +225,7 @@ test_establish_contexts_with_mechs(
+     }
+     while (init_major_status == GSS_S_CONTINUE_NEEDED &&
+            accept_major_status == GSS_S_CONTINUE_NEEDED);
+-    
++
+     if (rc != 0)
+     {
+ init_fail:
+@@ -261,7 +261,7 @@ test_establish_contexts(
+     OM_uint32                           flags,
+     OM_uint32                          *major_status,
+     OM_uint32                          *minor_status)
+-    
++
+ {
+     return test_establish_contexts_with_mechs(
+             init_context,
+@@ -273,18 +273,18 @@ test_establish_contexts(
+ }
+ 
+ 
+-void 
++void
+ globus_gsi_gssapi_test_cleanup(
+     gss_ctx_id_t *                      context_handle,
+     char *                              userid,
+     gss_cred_id_t *                     delegated_cred)
+ {
+     OM_uint32                           minor_status;
+-    
++
+     free(userid);
+-    
++
+     gss_delete_sec_context(&minor_status, context_handle, GSS_C_NO_BUFFER);
+-    
++
+     if (delegated_cred != NULL)
+     {
+         gss_release_cred(&minor_status, delegated_cred);
+@@ -321,11 +321,11 @@ globus_gsi_gssapi_test_export_context(
+                 __LINE__);
+         gss_release_buffer(&minor_status, &export_token);
+         result = GLOBUS_FALSE;
+-        goto exit;        
++        goto exit;
+     }
+ 
+     gss_release_buffer(&minor_status, &export_token);
+-    
++
+  exit:
+     return result;
+ }
+@@ -346,7 +346,7 @@ globus_gsi_gssapi_test_import_context(
+     import_token.value = malloc(import_token.length);
+ 
+     fread(import_token.value, import_token.length, 1, context_file);
+-    
++
+     major_status = gss_import_sec_context(
+         &minor_status,
+         (gss_buffer_t) & import_token,
+@@ -360,9 +360,9 @@ globus_gsi_gssapi_test_import_context(
+         result = GLOBUS_FALSE;
+         goto exit;
+     }
+-    
++
+     gss_release_buffer(&minor_status, &import_token);
+-    
++
+  exit:
+ 
+     return result;
+@@ -381,10 +381,10 @@ globus_gsi_gssapi_test_send_hello(
+     gss_buffer_desc                     input_token;
+     long                                rc;
+     long                                written = 0;
+-    
++
+     input_token.length = 11;
+     input_token.value = hello;
+-    
++
+     major_status = gss_wrap(&minor_status,
+                             context,
+                             0,
+@@ -392,7 +392,7 @@ globus_gsi_gssapi_test_send_hello(
+                             (gss_buffer_t) &input_token,
+                             NULL,
+                             (gss_buffer_t) &send_token);
+-    
++
+     if(GSS_ERROR(major_status))
+     {
+         globus_gsi_gssapi_test_print_error(
+@@ -412,10 +412,10 @@ globus_gsi_gssapi_test_send_hello(
+     }
+ 
+     /*printf("Wrote %d out of %d bytes\n", written, send_token.length); */
+-    
++
+     gss_release_buffer(&minor_status, &send_token);
+ 
+-    
++
+  exit:
+     return result;
+ }
+@@ -432,7 +432,7 @@ globus_gsi_gssapi_test_receive_hello(
+     long                                rc;
+     gss_buffer_desc                     recv_token = GSS_C_EMPTY_BUFFER;
+     gss_buffer_desc                     output_token = GSS_C_EMPTY_BUFFER;
+-    
++
+     while((rc = recv(fd,&buffer[recv_token.length],128,0)) > 0 &&
+           (recv_token.length += rc));
+ 
+@@ -444,7 +444,7 @@ globus_gsi_gssapi_test_receive_hello(
+     }
+ 
+     /* printf("Read %d bytes\n", recv_token.length); */
+-    
++
+     recv_token.value = buffer;
+ 
+     major_status = gss_unwrap(&minor_status,
+@@ -466,7 +466,7 @@ globus_gsi_gssapi_test_receive_hello(
+         result = GLOBUS_FALSE;
+     }
+ 
+-    gss_release_buffer(&minor_status, &output_token);    
++    gss_release_buffer(&minor_status, &output_token);
+ 
+  exit:
+     return result;
+@@ -483,11 +483,11 @@ globus_gsi_gssapi_test_dump_cert_chain(
+     globus_bool_t                       result = GLOBUS_TRUE;
+     FILE *                              dump_file;
+     gss_OID_desc                        cert_chain_oid =
+-        {11, "\x2b\x06\x01\x04\x01\x9b\x50\x01\x01\x01\x08"}; 
++        {11, "\x2b\x06\x01\x04\x01\x9b\x50\x01\x01\x01\x08"};
+     gss_buffer_set_t                    cert_chain_buffers;
+     X509 *                              cert;
+     const unsigned char *                   tmp_ptr;
+-    
++
+     dump_file = fopen(filename,"w");
+ 
+     if(dump_file == NULL)
+@@ -526,7 +526,7 @@ globus_gsi_gssapi_test_dump_cert_chain(
+                                    &cert_chain_buffers);
+             goto exit;
+         }
+-        
++
+         X509_print_fp(dump_file,
+                       cert);
+         X509_free(cert);
+@@ -539,7 +539,7 @@ globus_gsi_gssapi_test_dump_cert_chain(
+     {
+         fclose(dump_file);
+     }
+-    
++
+     return result;
+ }
+ 
+@@ -562,20 +562,20 @@ get_token(
+         if(n_read < 0)
+         {
+             if(errno == EINTR)
+-            { 
++            {
+                 continue;
+             }
+             else
+-            { 
++            {
+                 return errno;
+             }
+         }
+         else
+-        { 
++        {
+             num_read += n_read;
+         }
+     }
+-    
++
+     /* decode the token length from network byte order: 4 byte, big endian */
+ 
+     *token_length  = (((size_t) token_length_buffer[0]) << 24) & 0xffff;
+@@ -588,7 +588,7 @@ get_token(
+         /* token too large */
+         return 1;
+     }
+-    
++
+     *token = malloc(*token_length);
+ 
+     if(*token == NULL)
+@@ -607,20 +607,20 @@ get_token(
+         if(n_read < 0)
+         {
+             if(errno == EINTR)
+-            { 
++            {
+                 continue;
+             }
+             else
+-            { 
++            {
+                 return errno;
+             }
+         }
+         else
+-        { 
++        {
+             num_read += n_read;
+         }
+     }
+-    
++
+     return 0;
+ }
+ 
+@@ -649,20 +649,20 @@ put_token(
+         if(n_written < 0)
+         {
+             if(errno == EINTR)
+-            { 
++            {
+                 continue;
+             }
+             else
+-            { 
++            {
+                 return errno;
+             }
+         }
+         else
+-        { 
++        {
+             num_written += n_written;
+         }
+     }
+-    
++
+     num_written = 0;
+ 
+     while(num_written < token_length)
+@@ -673,16 +673,16 @@ put_token(
+         if(n_written < 0)
+         {
+             if(errno == EINTR)
+-            { 
++            {
+                 continue;
+             }
+             else
+-            { 
++            {
+                 return errno;
+             }
+         }
+         else
+-        { 
++        {
+             num_written += n_written;
+         }
+     }
+@@ -710,7 +710,7 @@ accept_sec_context(
+     gss_buffer_desc                     name_buffer;
+     gss_OID                             mech_type = GSS_C_NO_OID;
+     OM_uint32                           time_ret;
+-    
++
+     if(credential == GSS_C_NO_CREDENTIAL)
+     {
+         globus_libc_printf("Failed to acquire credentials\n");
+@@ -740,9 +740,9 @@ accept_sec_context(
+                                               &time_ret,
+                                               delegated_cred);
+ 
+-	if(major_status != GSS_S_COMPLETE &&
+-	   major_status != GSS_S_CONTINUE_NEEDED)
+-	{
++        if(major_status != GSS_S_COMPLETE &&
++           major_status != GSS_S_CONTINUE_NEEDED)
++        {
+             char *                      error_string = NULL;
+             globus_object_t *           error_obj = NULL;
+ 
+@@ -751,8 +751,8 @@ accept_sec_context(
+             fprintf(stderr, "ERROR CHAIN:\n%s\n", error_string);
+             free(error_string);
+             globus_object_free(error_obj);
+-	    abort();
+-	}
++            abort();
++        }
+ 
+         if(output_token.length != 0)
+         {
+@@ -764,7 +764,7 @@ accept_sec_context(
+                 major_status =
+                     GSS_S_DEFECTIVE_TOKEN|GSS_S_CALL_INACCESSIBLE_WRITE;
+             }
+-	    
++
+             gss_release_buffer(&minor_status2,
+                                &output_token);
+         }
+@@ -799,9 +799,9 @@ accept_sec_context(
+     /* authentication succeeded, figure out who it is */
+ 
+     major_status = gss_display_name(&minor_status,
+-				    client_name,
+-				    &name_buffer,
+-				    NULL);
++                                    client_name,
++                                    &name_buffer,
++                                    NULL);
+ 
+     *name = (char *)name_buffer.value;
+ 
+@@ -817,50 +817,50 @@ init_sec_context(
+     gss_cred_id_t                       credential,
+     gss_ctx_id_t *                      context)
+ {
+-    OM_uint32			        minor_status2 = 0;
+-    OM_uint32			        minor_status = 0;
+-    OM_uint32			        major_status = GSS_S_COMPLETE;
+-    OM_uint32			        req_flags  = GSS_C_MUTUAL_FLAG|GSS_C_DELEG_FLAG;
+-    OM_uint32			        ret_flags  = 0;
+-    int				        token_status = 0;
+-    gss_name_t			        target_name = GSS_C_NO_NAME;
+-    globus_bool_t		        context_established = GLOBUS_FALSE;
+-    gss_OID *			        actual_mech_type = NULL;
+-    OM_uint32			        time_ret;
+-    gss_buffer_desc		        input_token = GSS_C_EMPTY_BUFFER;
+-    gss_buffer_desc 		        output_token = GSS_C_EMPTY_BUFFER;
++    OM_uint32                           minor_status2 = 0;
++    OM_uint32                           minor_status = 0;
++    OM_uint32                           major_status = GSS_S_COMPLETE;
++    OM_uint32                           req_flags  = GSS_C_MUTUAL_FLAG|GSS_C_DELEG_FLAG;
++    OM_uint32                           ret_flags  = 0;
++    int                                 token_status = 0;
++    gss_name_t                          target_name = GSS_C_NO_NAME;
++    globus_bool_t                       context_established = GLOBUS_FALSE;
++    gss_OID *                           actual_mech_type = NULL;
++    OM_uint32                           time_ret;
++    gss_buffer_desc                     input_token = GSS_C_EMPTY_BUFFER;
++    gss_buffer_desc                     output_token = GSS_C_EMPTY_BUFFER;
+ 
+     major_status = gss_inquire_cred(&minor_status,
+-				    credential,
+-				    &target_name,
+-				    NULL,
+-				    NULL,
+-				    NULL);
++                                    credential,
++                                    &target_name,
++                                    NULL,
++                                    NULL,
++                                    NULL);
+ 
+     if(major_status != GSS_S_COMPLETE)
+     {
+-	globus_libc_printf("Failed to determine my name\n");
+-	return 1;
++        globus_libc_printf("Failed to determine my name\n");
++        return 1;
+     }
+ 
+     while(!context_established)
+     {
+-	major_status = gss_init_sec_context(&minor_status,
+-					    credential,
+-					    context,
+-					    target_name,
+-					    GSS_C_NO_OID, /*mech_type*/
+-					    req_flags,
+-					    0, /* default time */
+-					    GSS_C_NO_CHANNEL_BINDINGS,
+-					    &input_token,
+-					    actual_mech_type,
+-					    &output_token,
+-					    &ret_flags,
+-					    &time_ret);
+-	if(major_status != GSS_S_COMPLETE &&
+-	   major_status != GSS_S_CONTINUE_NEEDED)
+-	{
++        major_status = gss_init_sec_context(&minor_status,
++                                            credential,
++                                            context,
++                                            target_name,
++                                            GSS_C_NO_OID, /*mech_type*/
++                                            req_flags,
++                                            0, /* default time */
++                                            GSS_C_NO_CHANNEL_BINDINGS,
++                                            &input_token,
++                                            actual_mech_type,
++                                            &output_token,
++                                            &ret_flags,
++                                            &time_ret);
++        if(major_status != GSS_S_COMPLETE &&
++           major_status != GSS_S_CONTINUE_NEEDED)
++        {
+             char *                      error_string = NULL;
+             globus_object_t *           error_obj = NULL;
+ 
+@@ -869,61 +869,61 @@ init_sec_context(
+             fprintf(stderr, "ERROR CHAIN:\n%s\n", error_string);
+             free(error_string);
+             globus_object_free(error_obj);
+-	    abort();
+-	}
+-	/* free any token we've just processed */
+-	if(input_token.length > 0)
+-	{
+-	    gss_release_buffer(&minor_status2,
++            abort();
++        }
++        /* free any token we've just processed */
++        if(input_token.length > 0)
++        {
++            gss_release_buffer(&minor_status2,
+                                &input_token);
+-	}
+-	
+-	/* and send any new token to the server */
+-	if(output_token.length != 0)
+-	{
+-	    token_status = put_token(client_fd,
+-				     output_token.value,
+-				     output_token.length);
+-	    if(token_status != 0)
+-	    {
+-		major_status =
+-		    GSS_S_DEFECTIVE_TOKEN|GSS_S_CALL_INACCESSIBLE_WRITE;
+-	    }
++        }
++
++        /* and send any new token to the server */
++        if(output_token.length != 0)
++        {
++            token_status = put_token(client_fd,
++                                     output_token.value,
++                                     output_token.length);
++            if(token_status != 0)
++            {
++                major_status =
++                    GSS_S_DEFECTIVE_TOKEN|GSS_S_CALL_INACCESSIBLE_WRITE;
++            }
+             gss_release_buffer(&minor_status,
+                                &output_token);
+-	}
+-	
+-	if (GSS_ERROR(major_status))
+-	{
+-	    printf("    Failed to establish security context (init).\n");
++        }
++
++        if (GSS_ERROR(major_status))
++        {
++            printf("    Failed to establish security context (init).\n");
+             globus_gsi_gssapi_test_print_error(
+                 stderr, major_status, minor_status);
+ 
+-	    if (*context != GSS_C_NO_CONTEXT)
+-	    {
+-		gss_delete_sec_context(&minor_status2,
+-				       context,
+-				       GSS_C_NO_BUFFER);
+-		break;
+-	    }
+-	}
+-	
+-	if(major_status & GSS_S_CONTINUE_NEEDED)
+-	{
+-	    token_status = get_token(client_fd,
+-				     (unsigned char **) &input_token.value,
+-				     &input_token.length);
+-	    if(token_status != 0)
+-	    {
+-		major_status = 
+-		    GSS_S_DEFECTIVE_TOKEN | GSS_S_CALL_INACCESSIBLE_READ;
+-		break;
+-	    }
+-	}
+-	else
+-	{
+-	    context_established = 1;
+-	}
++            if (*context != GSS_C_NO_CONTEXT)
++            {
++                gss_delete_sec_context(&minor_status2,
++                                       context,
++                                       GSS_C_NO_BUFFER);
++                break;
++            }
++        }
++
++        if(major_status & GSS_S_CONTINUE_NEEDED)
++        {
++            token_status = get_token(client_fd,
++                                     (unsigned char **) &input_token.value,
++                                     &input_token.length);
++            if(token_status != 0)
++            {
++                major_status =
++                    GSS_S_DEFECTIVE_TOKEN | GSS_S_CALL_INACCESSIBLE_READ;
++                break;
++            }
++        }
++        else
++        {
++            context_established = 1;
++        }
+     } /* while() */
+ 
+     if (target_name != GSS_C_NO_NAME)
+diff --git a/gsi/gssapi/source/test/indicate_mechs_test.c b/gsi/gssapi/source/test/indicate_mechs_test.c
+index 2cd888e44..a325a5365 100644
+--- a/gsi/gssapi/source/test/indicate_mechs_test.c
++++ b/gsi/gssapi/source/test/indicate_mechs_test.c
+@@ -69,7 +69,7 @@ indicate_mechs_test(void)
+ 
+     for (i = 0; i < oids->count; i++)
+     {
+-    static gss_OID_desc                 gssapi_mech_gsi = 
++    static gss_OID_desc                 gssapi_mech_gsi =
+             {9, "\x2b\x06\x01\x04\x01\x9b\x50\x01\x01"};
+         if (oids->elements[i].length == gssapi_mech_gsi.length &&
+             memcmp(oids->elements[i].elements,
+@@ -105,8 +105,8 @@ indicate_mechs_v2_test(void)
+     OM_uint32                           major_status = 0;
+     OM_uint32                           minor_status = 0;
+     int                                 i;
+-    static gss_OID_desc                 gssapi_mech_gsi = 
+-	{10, "\x2b\x06\x01\x04\x01\x9b\x50\x01\x01\x01"};
++    static gss_OID_desc                 gssapi_mech_gsi =
++        {10, "\x2b\x06\x01\x04\x01\x9b\x50\x01\x01\x01"};
+ 
+     if (OPENSSL_VERSION_NUMBER < 0x10001000L)
+     {
+diff --git a/gsi/gssapi/source/test/release_name_test.c b/gsi/gssapi/source/test/release_name_test.c
+index 5a30a43f4..1568bafe2 100644
+--- a/gsi/gssapi/source/test/release_name_test.c
++++ b/gsi/gssapi/source/test/release_name_test.c
+@@ -36,7 +36,7 @@ release_bad_params(void)
+     name_tok.value = subject;
+     name_tok.length = strlen(subject) + 1;
+     name_type = GSS_C_NT_HOSTBASED_SERVICE;
+-    
++
+     major_status = gss_import_name(&minor_status,
+                                    &name_tok,
+                                    name_type,
+@@ -90,7 +90,7 @@ release_username(void)
+     name_tok.value = subject;
+     name_tok.length = strlen(subject) + 1;
+     name_type = GSS_C_NO_OID;
+-    
++
+     major_status = gss_import_name(&minor_status,
+                                    &name_tok,
+                                    name_type,
+@@ -127,7 +127,7 @@ release_anonymous(void)
+     name_tok.value = NULL;
+     name_tok.length = 0;
+     name_type = GSS_C_NT_ANONYMOUS;
+-    
++
+     major_status = gss_import_name(&minor_status,
+                                    &name_tok,
+                                    name_type,
+@@ -166,7 +166,7 @@ release_hostbase_service(void)
+     name_tok.value = subject;
+     name_tok.length = strlen(subject) + 1;
+     name_type = GSS_C_NT_HOSTBASED_SERVICE;
+-    
++
+     major_status = gss_import_name(&minor_status,
+                                    &name_tok,
+                                    name_type,
+@@ -205,7 +205,7 @@ release_host_ip(void)
+     name_tok.value = subject;
+     name_tok.length = strlen(subject) + 1;
+     name_type = GSS_C_NT_HOSTBASED_SERVICE;
+-    
++
+     major_status = gss_import_name(&minor_status,
+                                    &name_tok,
+                                    name_type,
+@@ -258,7 +258,7 @@ release_x509(void)
+     for (i = 0; i < SIZEOF_ARRAY(test_certs); i++)
+     {
+         char * test_cert;
+-        
++
+         test_cert = globus_common_create_string("%s/%s",
+             test_cert_dir, test_certs[i]);
+ 
+@@ -290,7 +290,7 @@ release_x509(void)
+         name_tok.value = x509;
+         name_tok.length = sizeof(x509);
+         name_type = GLOBUS_GSS_C_NT_X509;
+-        
++
+         major_status = gss_import_name(&minor_status,
+                                        &name_tok,
+                                        name_type,
+-- 
+2.54.0
+

diff --git a/0002-Build-with-OpenSSL-4.patch b/0002-Build-with-OpenSSL-4.patch
new file mode 100644
index 0000000..5b7aa42
--- /dev/null
+++ b/0002-Build-with-OpenSSL-4.patch
@@ -0,0 +1,269 @@
+From 24375b8503d2a4373600b14d03700b697415737b Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert@physics.uu.se>
+Date: Wed, 20 May 2026 00:15:37 +0200
+Subject: [PATCH 2/3] Build with OpenSSL 4
+
+---
+ gsi/gssapi/source/library/compare_name.c         | 12 ++++++------
+ gsi/gssapi/source/library/display_name.c         |  6 +++---
+ .../source/library/globus_i_gsi_gss_utils.c      | 16 +++++++++++-----
+ .../source/library/globus_i_gsi_gss_utils.h      |  6 ++++++
+ gsi/gssapi/source/library/import_name.c          |  4 ++--
+ gsi/gssapi/source/library/inquire_cred_by_oid.c  |  8 ++++----
+ .../source/library/inquire_sec_context_by_oid.c  | 13 +++++++------
+ 7 files changed, 39 insertions(+), 26 deletions(-)
+
+diff --git a/gsi/gssapi/source/library/compare_name.c b/gsi/gssapi/source/library/compare_name.c
+index f5cdd9d36..d08528d3b 100644
+--- a/gsi/gssapi/source/library/compare_name.c
++++ b/gsi/gssapi/source/library/compare_name.c
+@@ -415,7 +415,7 @@ gss_l_compare_x509_to_x509(
+             {
+                 dns_alt_name_found1 = GLOBUS_TRUE;
+ 
+-                ns1 = (char *) ASN1_STRING_data(gn1->d.dNSName);
++                ns1 = (char *) ASN1_STRING_get0_data(gn1->d.dNSName);
+ 
+                 for (i2 = 0; i2 < name_count2; i2++)
+                 {
+@@ -423,7 +423,7 @@ gss_l_compare_x509_to_x509(
+ 
+                     if (gn2->type == GEN_DNS)
+                     {
+-                        ns2 = (char *) ASN1_STRING_data(gn2->d.dNSName);
++                        ns2 = (char *) ASN1_STRING_get0_data(gn2->d.dNSName);
+                         dns_alt_name_found2 = GLOBUS_TRUE;
+ 
+                         major_status = gss_l_compare_hostnames_with_wildcards(
+@@ -472,7 +472,7 @@ gss_l_compare_x509_to_x509(
+ 
+                     if (gn2->type == GEN_DNS)
+                     {
+-                        ns2 = (char *) ASN1_STRING_data(gn2->d.dNSName);
++                        ns2 = (char *) ASN1_STRING_get0_data(gn2->d.dNSName);
+ 
+                         major_status = gss_l_compare_hostnames_with_wildcards(
+                                 minor_status,
+@@ -596,7 +596,7 @@ gss_l_compare_x509_to_hostbased_service(
+             gn1 = sk_GENERAL_NAME_value(name1->subjectAltNames, i1);
+             if (gn1->type == GEN_DNS)
+             {
+-                ns1 = (char *) ASN1_STRING_data(gn1->d.dNSName);
++                ns1 = (char *) ASN1_STRING_get0_data(gn1->d.dNSName);
+ 
+                 /* In strict RFC mode, we're going to require the service
+                  * portion of the hostbased service name to be "host" (the
+@@ -691,7 +691,7 @@ gss_l_compare_x509_to_host_ip(
+             gn1 = sk_GENERAL_NAME_value(name1->subjectAltNames, i1);
+             if (gn1->type == GEN_DNS)
+             {
+-                ns1 = (char *) ASN1_STRING_data(gn1->d.dNSName);
++                ns1 = (char *) ASN1_STRING_get0_data(gn1->d.dNSName);
+ 
+                 major_status = gss_l_compare_hostnames_with_wildcards(
+                         minor_status,
+@@ -714,7 +714,7 @@ gss_l_compare_x509_to_host_ip(
+             {
+                 int ip_as_ints[16], j;
+                 int len = ASN1_STRING_length(gn1->d.iPAddress);
+-                ns1 = (char *) ASN1_STRING_data(gn1->d.iPAddress);
++                ns1 = (char *) ASN1_STRING_get0_data(gn1->d.iPAddress);
+ 
+                 for (j = 0; j < len; j++)
+                 {
+diff --git a/gsi/gssapi/source/library/display_name.c b/gsi/gssapi/source/library/display_name.c
+index 235bb427b..f1523be29 100644
+--- a/gsi/gssapi/source/library/display_name.c
++++ b/gsi/gssapi/source/library/display_name.c
+@@ -146,7 +146,7 @@ gss_display_name(
+         {
+             int                         name_length;
+             GENERAL_NAME *              name;
+-            unsigned char *             dns;
++            const unsigned char *       dns;
+             int                         i;
+ 
+             name_length = sk_GENERAL_NAME_num(input_name->subjectAltNames);
+@@ -156,9 +156,9 @@ gss_display_name(
+ 
+                 if (name->type == GEN_DNS)
+                 {
+-                    dns = ASN1_STRING_data(name->d.dNSName);
++                    dns = ASN1_STRING_get0_data(name->d.dNSName);
+                     output_name->value =
+-                            globus_common_create_string("/CN=%s", (char *) dns);
++                            globus_common_create_string("/CN=%s", (const char *) dns);
+                     if (output_name->value == NULL)
+                     {
+                         GLOBUS_GSI_GSSAPI_MALLOC_ERROR(minor_status);
+diff --git a/gsi/gssapi/source/library/globus_i_gsi_gss_utils.c b/gsi/gssapi/source/library/globus_i_gsi_gss_utils.c
+index 6e40d8aa1..b234d08b4 100644
+--- a/gsi/gssapi/source/library/globus_i_gsi_gss_utils.c
++++ b/gsi/gssapi/source/library/globus_i_gsi_gss_utils.c
+@@ -2690,12 +2690,18 @@ globus_i_gsi_gss_get_context_goodtill(
+  *
+  * @return
+  */
++#if OPENSSL_VERSION_NUMBER < 0x40000000L
+ int globus_i_gsi_gss_verify_extensions_callback(
+     globus_gsi_callback_data_t          callback_data,
+     X509_EXTENSION *                    extension)
++#else
++int globus_i_gsi_gss_verify_extensions_callback(
++    globus_gsi_callback_data_t          callback_data,
++    const X509_EXTENSION *              extension)
++#endif
+ {
+     gss_OID_set                         extension_oids;
+-    ASN1_OBJECT *                       extension_obj;
++    const ASN1_OBJECT *                 extension_obj;
+     int                                 index;
+     int                                 return_val = 0;
+     globus_result_t                     local_result;
+@@ -2756,9 +2762,9 @@ globus_i_gsi_gssapi_get_hostname(
+     int                                 common_name_NID;
+     int                                 index;
+     unsigned int                        length;
+-    unsigned char *                     data;
++    const unsigned char *               data;
+     unsigned char *                     p;
+-    X509_NAME_ENTRY *                   name_entry = NULL;
++    const X509_NAME_ENTRY *             name_entry = NULL;
+ 
+     name->service_name = name->host_name = NULL;
+     *minor_status = GLOBUS_SUCCESS;
+@@ -2769,9 +2775,9 @@ globus_i_gsi_gssapi_get_hostname(
+         name_entry = X509_NAME_get_entry(name->x509n, index);
+         if (OBJ_obj2nid(X509_NAME_ENTRY_get_object(name_entry)) == common_name_NID)
+         {
+-            ASN1_STRING *s = X509_NAME_ENTRY_get_data(name_entry);
++            const ASN1_STRING *s = X509_NAME_ENTRY_get_data(name_entry);
+             length = ASN1_STRING_length(s);
+-            data = ASN1_STRING_data(s);
++            data = ASN1_STRING_get0_data(s);
+ 
+             p = memchr(data, '/', length);
+ 
+diff --git a/gsi/gssapi/source/library/globus_i_gsi_gss_utils.h b/gsi/gssapi/source/library/globus_i_gsi_gss_utils.h
+index 9f7fe143f..9a136162c 100644
+--- a/gsi/gssapi/source/library/globus_i_gsi_gss_utils.h
++++ b/gsi/gssapi/source/library/globus_i_gsi_gss_utils.h
+@@ -245,9 +245,15 @@ globus_i_gsi_gss_create_cred(
+     globus_gsi_cred_handle_t *          cred_handle,
+     globus_bool_t                       sni_context);
+ 
++#if OPENSSL_VERSION_NUMBER < 0x40000000L
+ int globus_i_gsi_gss_verify_extensions_callback(
+     globus_gsi_callback_data_t          callback_data,
+     X509_EXTENSION *                    extension);
++#else
++int globus_i_gsi_gss_verify_extensions_callback(
++    globus_gsi_callback_data_t          callback_data,
++    const X509_EXTENSION *              extension);
++#endif
+ 
+ OM_uint32
+ globus_i_gsi_gss_handshake(
+diff --git a/gsi/gssapi/source/library/import_name.c b/gsi/gssapi/source/library/import_name.c
+index 791535526..d873ae1fb 100644
+--- a/gsi/gssapi/source/library/import_name.c
++++ b/gsi/gssapi/source/library/import_name.c
+@@ -411,7 +411,7 @@ GSS_CALLCONV gss_import_name(
+     }
+     else if (g_OID_equal(GLOBUS_GSS_C_NT_X509, input_name_type))
+     {
+-        X509_NAME                      *n;
++        const X509_NAME                *n;
+         X509                           *x509_input;
+         GENERAL_NAMES                  *subject_alt_name;
+         int                             idx;
+@@ -465,7 +465,7 @@ GSS_CALLCONV gss_import_name(
+              idx != -1;
+              idx = X509_get_ext_by_NID(x509_input, NID_subject_alt_name, idx))
+         {
+-            X509_EXTENSION * ext_value;
++            const X509_EXTENSION * ext_value;
+ 
+             ext_value = X509_get_ext(x509_input, idx);
+             if (!ext_value)
+diff --git a/gsi/gssapi/source/library/inquire_cred_by_oid.c b/gsi/gssapi/source/library/inquire_cred_by_oid.c
+index 1aa39e63c..a22ebd17c 100644
+--- a/gsi/gssapi/source/library/inquire_cred_by_oid.c
++++ b/gsi/gssapi/source/library/inquire_cred_by_oid.c
+@@ -55,11 +55,11 @@ GSS_CALLCONV gss_inquire_cred_by_oid(
+ {
+     OM_uint32                           major_status = GSS_S_COMPLETE;
+     OM_uint32                           local_minor_status;
+-    X509_EXTENSION *                    extension;
++    const X509_EXTENSION *              extension;
+     X509 *                              cert = NULL;
+     STACK_OF(X509) *                    cert_chain = NULL;
+     ASN1_OBJECT *                       desired_asn1_obj;
+-    ASN1_OCTET_STRING *                 asn1_oct_string;
++    const ASN1_OCTET_STRING *           asn1_oct_string;
+     gss_buffer_desc                     data_set_buffer;
+     int                                 chain_index;
+     int                                 found_index;
+@@ -199,8 +199,8 @@ GSS_CALLCONV gss_inquire_cred_by_oid(
+                 goto exit;
+             }
+ 
+-            data_set_buffer.value = asn1_oct_string->data;
+-            data_set_buffer.length = asn1_oct_string->length;
++            data_set_buffer.value = (unsigned char *) ASN1_STRING_get0_data(asn1_oct_string);
++            data_set_buffer.length = ASN1_STRING_length(asn1_oct_string);
+ 
+             major_status = gss_add_buffer_set_member(
+                 &local_minor_status,
+diff --git a/gsi/gssapi/source/library/inquire_sec_context_by_oid.c b/gsi/gssapi/source/library/inquire_sec_context_by_oid.c
+index f8ceb8542..4f33cdee1 100644
+--- a/gsi/gssapi/source/library/inquire_sec_context_by_oid.c
++++ b/gsi/gssapi/source/library/inquire_sec_context_by_oid.c
+@@ -47,11 +47,12 @@ GSS_CALLCONV gss_inquire_sec_context_by_oid(
+     int                                 found_index;
+     int                                 chain_index;
+     int                                 cert_count;
+-    X509_EXTENSION *                    extension;
++    const X509_EXTENSION *              extension;
+     X509 *                              cert = NULL;
+     STACK_OF(X509) *                    cert_chain = NULL;
+     ASN1_OBJECT *                       asn1_desired_obj = NULL;
+     ASN1_OCTET_STRING *                 asn1_oct_string;
++    const ASN1_OCTET_STRING *           asn1_oct_string_c;
+     gss_buffer_desc                     data_set_buffer = GSS_C_EMPTY_BUFFER;
+     globus_result_t                     local_result = GLOBUS_SUCCESS;
+     unsigned char *                     tmp_ptr;
+@@ -303,8 +304,8 @@ GSS_CALLCONV gss_inquire_sec_context_by_oid(
+                     goto unlock_exit;
+                 }
+ 
+-                asn1_oct_string = X509_EXTENSION_get_data(extension);
+-                if(!asn1_oct_string)
++                asn1_oct_string_c = X509_EXTENSION_get_data(extension);
++                if(!asn1_oct_string_c)
+                 {
+                     GLOBUS_GSI_GSSAPI_OPENSSL_ERROR_RESULT(
+                         minor_status,
+@@ -315,7 +316,7 @@ GSS_CALLCONV gss_inquire_sec_context_by_oid(
+                     goto unlock_exit;
+                 }
+ 
+-                asn1_oct_string = ASN1_OCTET_STRING_dup(asn1_oct_string);
++                asn1_oct_string = ASN1_OCTET_STRING_dup(asn1_oct_string_c);
+ 
+                 if(!asn1_oct_string)
+                 {
+@@ -327,8 +328,8 @@ GSS_CALLCONV gss_inquire_sec_context_by_oid(
+                     goto unlock_exit;
+                 }
+ 
+-                data_set_buffer.value = asn1_oct_string->data;
+-                data_set_buffer.length = asn1_oct_string->length;
++                data_set_buffer.value = (unsigned char *) ASN1_STRING_get0_data(asn1_oct_string);
++                data_set_buffer.length = ASN1_STRING_length(asn1_oct_string);
+ 
+                 OPENSSL_free(asn1_oct_string);
+ 
+-- 
+2.54.0
+

diff --git a/0003-Fix-compiler-and-doxygen-warnings.patch b/0003-Fix-compiler-and-doxygen-warnings.patch
new file mode 100644
index 0000000..75f2b55
--- /dev/null
+++ b/0003-Fix-compiler-and-doxygen-warnings.patch
@@ -0,0 +1,400 @@
+From 4ee08d13e2963309e2063dc45dedd067337d3b76 Mon Sep 17 00:00:00 2001
+From: Mattias Ellert <mattias.ellert@physics.uu.se>
+Date: Wed, 20 May 2026 00:15:37 +0200
+Subject: [PATCH 3/3] Fix compiler and doxygen warnings
+
+---
+ .../source/library/globus_i_gsi_gss_utils.c   |  2 +-
+ gsi/gssapi/source/test/alpn-test.c            | 45 -------------------
+ gsi/gssapi/source/test/duplicate_name_test.c  |  6 +--
+ gsi/gssapi/source/test/gssapi_test_utils.c    |  2 +-
+ gsi/gssapi/source/test/indicate_mechs_test.c  |  3 +-
+ gsi/gssapi/source/test/release_name_test.c    |  6 +--
+ 6 files changed, 5 insertions(+), 59 deletions(-)
+
+diff --git a/gsi/gssapi/source/library/globus_i_gsi_gss_utils.c b/gsi/gssapi/source/library/globus_i_gsi_gss_utils.c
+index b234d08b4..5a3a79e8e 100644
+--- a/gsi/gssapi/source/library/globus_i_gsi_gss_utils.c
++++ b/gsi/gssapi/source/library/globus_i_gsi_gss_utils.c
+@@ -2763,7 +2763,7 @@ globus_i_gsi_gssapi_get_hostname(
+     int                                 index;
+     unsigned int                        length;
+     const unsigned char *               data;
+-    unsigned char *                     p;
++    const unsigned char *               p;
+     const X509_NAME_ENTRY *             name_entry = NULL;
+ 
+     name->service_name = name->host_name = NULL;
+diff --git a/gsi/gssapi/source/test/alpn-test.c b/gsi/gssapi/source/test/alpn-test.c
+index 561495410..87ad9968c 100644
+--- a/gsi/gssapi/source/test/alpn-test.c
++++ b/gsi/gssapi/source/test/alpn-test.c
+@@ -54,7 +54,6 @@ init_no_client_alpn(void)
+     {
+         3, 'g', 's', 'i',
+     };
+-    const char                         *why = "";
+ 
+     major_status = gss_set_sec_context_option(
+             &minor_status,
+@@ -67,9 +66,7 @@ init_no_client_alpn(void)
+             });
+     if (major_status != GSS_S_COMPLETE)
+     {
+-        why = "gss_set_sec_context_option";
+         result = false;
+-
+         goto fail;
+     }
+     do
+@@ -95,7 +92,6 @@ init_no_client_alpn(void)
+ 
+         if (GSS_ERROR(major_status))
+         {
+-            why = "gss_init_sec_context";
+             result = false;
+             break;
+         }
+@@ -120,7 +116,6 @@ init_no_client_alpn(void)
+ 
+             if (GSS_ERROR(major_status))
+             {
+-                why = "accept_sec_context";
+                 result = false;
+             }
+         }
+@@ -139,15 +134,12 @@ init_no_client_alpn(void)
+ 
+         if (major_status != GSS_S_COMPLETE)
+         {
+-            why = "inquire_context_by_oid";
+             result = false;
+-
+             goto fail;
+         }
+ 
+         if (data->count != 0)
+         {
+-            why = "inquire_result";
+             result = false;
+             goto fail;
+         }
+@@ -212,7 +204,6 @@ init_no_server_alpn(void)
+     gss_buffer_desc                     accept_generated_token = {0};
+     bool                                result = true;
+     OM_uint32                           ignore_minor_status = 0;
+-    const char                         *why = "";
+     unsigned char                       client_alpn[] =
+     {
+         3, 'g', 's', 'i',
+@@ -229,9 +220,7 @@ init_no_server_alpn(void)
+         });
+     if (major_status != GSS_S_COMPLETE)
+     {
+-        why = "gss_set_sec_context_option";
+         result = false;
+-
+         goto fail;
+     }
+     do
+@@ -257,7 +246,6 @@ init_no_server_alpn(void)
+ 
+         if (GSS_ERROR(major_status))
+         {
+-            why = "gss_init_sec_context";
+             result = false;
+             break;
+         }
+@@ -282,7 +270,6 @@ init_no_server_alpn(void)
+ 
+             if (GSS_ERROR(major_status))
+             {
+-                why = "accept_sec_context";
+                 result = false;
+             }
+         }
+@@ -300,15 +287,12 @@ init_no_server_alpn(void)
+             &data);
+         if (major_status != GSS_S_COMPLETE)
+         {
+-            why = "inquire_context_by_oid";
+             result = false;
+-
+             goto fail;
+         }
+ 
+         if (data->count != 0)
+         {
+-            why = "inquire_result";
+             result = false;
+             goto fail;
+         }
+@@ -387,7 +371,6 @@ init_alpn1(void)
+     gss_buffer_desc                     accept_generated_token = {0};
+     bool                                result = true;
+     OM_uint32                           ignore_minor_status = 0;
+-    const char                         *why = "";
+     unsigned char                       server_alpn[] =
+     {
+         3, 'g', 's', 'i',
+@@ -408,9 +391,7 @@ init_alpn1(void)
+         });
+     if (major_status != GSS_S_COMPLETE)
+     {
+-        why = "gss_set_sec_context_option";
+         result = false;
+-
+         goto fail;
+     }
+     major_status = gss_set_sec_context_option(
+@@ -424,9 +405,7 @@ init_alpn1(void)
+         });
+     if (major_status != GSS_S_COMPLETE)
+     {
+-        why = "gss_set_sec_context_option";
+         result = false;
+-
+         goto fail;
+     }
+ 
+@@ -453,7 +432,6 @@ init_alpn1(void)
+ 
+         if (GSS_ERROR(major_status))
+         {
+-            why = "gss_init_sec_context";
+             result = false;
+             break;
+         }
+@@ -478,7 +456,6 @@ init_alpn1(void)
+ 
+             if (GSS_ERROR(major_status))
+             {
+-                why = "accept_sec_context";
+                 result = false;
+             }
+         }
+@@ -495,9 +472,7 @@ init_alpn1(void)
+             &data);
+         if (major_status != GSS_S_COMPLETE)
+         {
+-            why = "inquire_context_by_oid";
+             result = false;
+-
+             goto fail;
+         }
+ 
+@@ -508,7 +483,6 @@ init_alpn1(void)
+                 &server_alpn[1],
+                 server_alpn[0]) != 0)
+         {
+-            why = "inquire_result";
+             result = false;
+             goto fail;
+         }
+@@ -521,9 +495,7 @@ init_alpn1(void)
+             &data);
+         if (major_status != GSS_S_COMPLETE)
+         {
+-            why = "inquire_context_by_oid";
+             result = false;
+-
+             goto fail;
+         }
+ 
+@@ -534,7 +506,6 @@ init_alpn1(void)
+                 &client_alpn[1],
+                 client_alpn[0]) != 0)
+         {
+-            why = "inquire_result";
+             result = false;
+             goto fail;
+         }
+@@ -611,7 +582,6 @@ init_alpn_secondary_match(void)
+     gss_buffer_desc                     accept_generated_token = {0};
+     bool                                result = true;
+     OM_uint32                           ignore_minor_status = 0;
+-    const char                         *why = "";
+     unsigned char                       server_alpn[] =
+     {
+         3, 'g', 's', 's',
+@@ -633,9 +603,7 @@ init_alpn_secondary_match(void)
+         });
+     if (major_status != GSS_S_COMPLETE)
+     {
+-        why = "gss_set_sec_context_option";
+         result = false;
+-
+         goto fail;
+     }
+ 
+@@ -650,9 +618,7 @@ init_alpn_secondary_match(void)
+         });
+     if (major_status != GSS_S_COMPLETE)
+     {
+-        why = "gss_set_sec_context_option";
+         result = false;
+-
+         goto fail;
+     }
+     do
+@@ -678,7 +644,6 @@ init_alpn_secondary_match(void)
+ 
+         if (GSS_ERROR(major_status))
+         {
+-            why = "gss_init_sec_context";
+             result = false;
+             break;
+         }
+@@ -703,7 +668,6 @@ init_alpn_secondary_match(void)
+ 
+             if (GSS_ERROR(major_status))
+             {
+-                why = "accept_sec_context";
+                 result = false;
+             }
+         }
+@@ -721,9 +685,7 @@ init_alpn_secondary_match(void)
+             &data);
+         if (major_status != GSS_S_COMPLETE)
+         {
+-            why = "inquire_context_by_oid";
+             result = false;
+-
+             goto fail;
+         }
+ 
+@@ -734,7 +696,6 @@ init_alpn_secondary_match(void)
+                 &server_alpn[5],
+                 server_alpn[4]) != 0)
+         {
+-            why = "inquire_result";
+             result = false;
+             goto fail;
+         }
+@@ -747,9 +708,7 @@ init_alpn_secondary_match(void)
+             &data);
+         if (major_status != GSS_S_COMPLETE)
+         {
+-            why = "inquire_context_by_oid";
+             result = false;
+-
+             goto fail;
+         }
+ 
+@@ -760,7 +719,6 @@ init_alpn_secondary_match(void)
+                 &client_alpn[1],
+                 client_alpn[0]) != 0)
+         {
+-            why = "inquire_result";
+             result = false;
+             goto fail;
+         }
+@@ -856,7 +814,6 @@ init_alpn_nomatch(void)
+     {
+         why = "gss_set_sec_context_option";
+         result = false;
+-
+         goto fail;
+     }
+ 
+@@ -873,7 +830,6 @@ init_alpn_nomatch(void)
+     {
+         why = "gss_set_sec_context_option";
+         result = false;
+-
+         goto fail;
+     }
+     do
+@@ -946,7 +902,6 @@ init_alpn_nomatch(void)
+         {
+             why = "inquire_context_by_oid";
+             result = false;
+-
+             goto fail;
+         }
+ 
+diff --git a/gsi/gssapi/source/test/duplicate_name_test.c b/gsi/gssapi/source/test/duplicate_name_test.c
+index 59840495e..68d0743b0 100644
+--- a/gsi/gssapi/source/test/duplicate_name_test.c
++++ b/gsi/gssapi/source/test/duplicate_name_test.c
+@@ -532,7 +532,7 @@ duplicate_x509_test(void)
+ 
+ int main()
+ {
+-    int                                 i, rc = 0, failed = 0;
++    int                                 i, rc = 0;
+     globus_module_descriptor_t         *modules[] =
+     {
+         GLOBUS_COMMON_MODULE,
+@@ -562,10 +562,6 @@ int main()
+     {
+         rc = (*(tests[i].func))();
+ 
+-        if (rc != 0)
+-        {
+-            failed++;
+-        }
+         printf("%s %s\n", rc == 0 ? "ok" : "not ok", tests[i].name);
+     }
+ 
+diff --git a/gsi/gssapi/source/test/gssapi_test_utils.c b/gsi/gssapi/source/test/gssapi_test_utils.c
+index 10d08a1c1..62aff0080 100644
+--- a/gsi/gssapi/source/test/gssapi_test_utils.c
++++ b/gsi/gssapi/source/test/gssapi_test_utils.c
+@@ -379,7 +379,7 @@ globus_gsi_gssapi_test_send_hello(
+     static char *                       hello = "HelloHello";
+     gss_buffer_desc                     send_token = GSS_C_EMPTY_BUFFER;
+     gss_buffer_desc                     input_token;
+-    long                                rc;
++    long                                rc = 0;
+     long                                written = 0;
+ 
+     input_token.length = 11;
+diff --git a/gsi/gssapi/source/test/indicate_mechs_test.c b/gsi/gssapi/source/test/indicate_mechs_test.c
+index a325a5365..a6bf4489e 100644
+--- a/gsi/gssapi/source/test/indicate_mechs_test.c
++++ b/gsi/gssapi/source/test/indicate_mechs_test.c
+@@ -150,7 +150,7 @@ indicate_mechs_v2_test(void)
+ 
+ int main()
+ {
+-    int                                 i, rc = 0, failed = 0;
++    int                                 i, rc = 0;
+     globus_module_descriptor_t         *modules[] =
+     {
+         GLOBUS_COMMON_MODULE,
+@@ -189,7 +189,6 @@ int main()
+         }
+         else
+         {
+-            failed++;
+             format = "not ok %d - %s\n";
+         }
+ 
+diff --git a/gsi/gssapi/source/test/release_name_test.c b/gsi/gssapi/source/test/release_name_test.c
+index 1568bafe2..60b203fc9 100644
+--- a/gsi/gssapi/source/test/release_name_test.c
++++ b/gsi/gssapi/source/test/release_name_test.c
+@@ -326,7 +326,7 @@ release_x509(void)
+ 
+ int main()
+ {
+-    int                                 i, rc = 0, failed = 0;
++    int                                 i, rc = 0;
+     globus_module_descriptor_t         *modules[] =
+     {
+         GLOBUS_COMMON_MODULE,
+@@ -356,10 +356,6 @@ int main()
+     {
+         rc = (*(tests[i].func))();
+ 
+-        if (rc != 0)
+-        {
+-            failed++;
+-        }
+         printf("%s %s\n", rc == 0 ? "ok" : "not ok", tests[i].name);
+     }
+ 
+-- 
+2.54.0
+

diff --git a/globus-gssapi-gsi.spec b/globus-gssapi-gsi.spec
index 7243628..8417122 100644
--- a/globus-gssapi-gsi.spec
+++ b/globus-gssapi-gsi.spec
@@ -1,13 +1,16 @@
 Name:		globus-gssapi-gsi
 %global _name %(tr - _ <<< %{name})
 Version:	14.20
-Release:	10%{?dist}
+Release:	11%{?dist}
 Summary:	Grid Community Toolkit - GSSAPI library
 
 License:	Apache-2.0
 URL:		https://github.com/gridcf/gct/
 Source:		https://repo.gridcf.org/gct6/sources/%{_name}-%{version}.tar.gz
 Source8:	README
+Patch0:		0001-Untabify-and-remove-trailing-white-space.patch
+Patch1:		0002-Build-with-OpenSSL-4.patch
+Patch2:		0003-Fix-compiler-and-doxygen-warnings.patch
 
 BuildRequires:	make
 BuildRequires:	gcc
@@ -75,6 +78,9 @@ GSSAPI library Documentation Files
 
 %prep
 %setup -q -n %{_name}-%{version}
+%patch -P0 -p4
+%patch -P1 -p4
+%patch -P2 -p4
 
 %build
 # Reduce overlinking
@@ -127,6 +133,10 @@ rm %{buildroot}%{_pkgdocdir}/GLOBUS_LICENSE
 %license GLOBUS_LICENSE
 
 %changelog
+* Sun Jun 14 2026 Mattias Ellert <mattias.ellert@physics.uu.se> - 14.20-11
+- Compile with OpenSSL 4
+- Fix compiler warnings
+
 * Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 14.20-10
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
 

                 reply	other threads:[~2026-06-14  8:53 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178142723272.1.15106319173368203000.rpms-globus-gssapi-gsi-d093bb582ee5@fedoraproject.org \
    --to=mattias.ellert@physics.uu.se \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox