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