Submitted By: Douglas R. Reno Date: 2026-04-29 Initial Package Version: 3.25.0 Upstream Status: Applied Origin: Upstream Commits 8b9c6316 and 22f722f Description: Fixes compatibility problems with gnome-connections that cause it to be unable to connect to systems. The errors cause authentication to instantaneously fail. The issue was known upstream and Pierre put the two commits that fix it in BLFS Ticket #23188. diff -Naurp FreeRDP-3.25.0.orig/include/freerdp/freerdp.h FreeRDP-3.25.0/include/freerdp/freerdp.h --- FreeRDP-3.25.0.orig/include/freerdp/freerdp.h 2026-04-22 12:51:09.000000000 -0500 +++ FreeRDP-3.25.0/include/freerdp/freerdp.h 2026-04-29 13:25:49.241652687 -0500 @@ -95,6 +95,7 @@ extern "C" typedef BOOL (*pConnectCallback)(freerdp* instance); typedef void (*pPostDisconnect)(freerdp* instance); +#if !defined(WITHOUT_FREERDP_3x_DEPRECATED) /** \brief Authentication callback function pointer definition * * \param instance A pointer to the instance to work on @@ -110,6 +111,7 @@ extern "C" typedef BOOL (*pAuthenticate)(freerdp* instance, char** username, char** password, char** domain); +#endif /** @brief Extended authentication callback function pointer definition * @@ -220,7 +222,7 @@ extern "C" * @return 1 to accept and store a certificate, 2 to accept * a certificate only for this session, 0 otherwise. */ -#if defined(WITH_FREERDP_DEPRECATED) +#if !defined(WITHOUT_FREERDP_3x_DEPRECATED) WINPR_DEPRECATED_VAR("Use pVerifyCertificateEx", typedef DWORD (*pVerifyCertificate)( freerdp* instance, const char* common_name, const char* subject, @@ -261,7 +263,7 @@ extern "C" * @return 1 to accept and store a certificate, 2 to accept * a certificate only for this session, 0 otherwise. */ -#if defined(WITH_FREERDP_DEPRECATED) +#if !defined(WITHOUT_FREERDP_3x_DEPRECATED) WINPR_DEPRECATED_VAR("Use pVerifyChangedCertificateEx", typedef DWORD (*pVerifyChangedCertificate)( freerdp* instance, const char* common_name, const char* subject, @@ -504,7 +506,7 @@ owned by rdpRdp */ Can be set before calling freerdp_connect() to have it executed after the actual connection has succeeded. Must be set to nullptr if not needed. */ -#if defined(WITH_FREERDP_DEPRECATED) +#if !defined(WITHOUT_FREERDP_3x_DEPRECATED) WINPR_DEPRECATED_VAR("[since 3.25.0] Use AuthenticateEx instead", WINPR_ATTR_NODISCARD ALIGN64 pAuthenticate Authenticate); /**< (offset 50) @@ -537,7 +539,7 @@ owned by rdpRdp */ This will be called before disconnecting and cleaning up the channels. */ -#if defined(WITH_FREERDP_DEPRECATED) +#if !defined(WITHOUT_FREERDP_3x_DEPRECATED) WINPR_DEPRECATED_VAR("[since 3.25.0] Use AuthenticateEx instead", WINPR_ATTR_NODISCARD ALIGN64 pAuthenticate GatewayAuthenticate); /**< (offset 56) diff -Naurp FreeRDP-3.25.0.orig/libfreerdp/core/utils.c FreeRDP-3.25.0/libfreerdp/core/utils.c --- FreeRDP-3.25.0.orig/libfreerdp/core/utils.c 2026-04-22 12:51:09.000000000 -0500 +++ FreeRDP-3.25.0/libfreerdp/core/utils.c 2026-04-29 13:25:51.119907155 -0500 @@ -94,7 +94,7 @@ auth_status utils_authenticate_gateway(f return AUTH_SKIP; } -#if !defined(WITH_FREERDP_DEPRECATED) +#if defined(WITHOUT_FREERDP_3x_DEPRECATED) if (!instance->AuthenticateEx) return AUTH_NO_CREDENTIALS; #else @@ -110,7 +110,7 @@ auth_status utils_authenticate_gateway(f if (!proceed) return AUTH_CANCELLED; } -#if defined(WITH_FREERDP_DEPRECATED) +#if !defined(WITHOUT_FREERDP_3x_DEPRECATED) else { proceed = @@ -198,7 +198,7 @@ auth_status utils_authenticate(freerdp* } /* If no callback is specified still continue connection */ -#if !defined(WITH_FREERDP_DEPRECATED) +#if defined(WITHOUT_FREERDP_3x_DEPRECATED) if (!instance->AuthenticateEx) return AUTH_NO_CREDENTIALS; #else @@ -212,7 +212,7 @@ auth_status utils_authenticate(freerdp* if (!proceed) return AUTH_CANCELLED; } -#if defined(WITH_FREERDP_DEPRECATED) +#if !defined(WITHOUT_FREERDP_3x_DEPRECATED) else { proceed = instance->Authenticate(instance, &settings->Username, &settings->Password, diff -Naurp FreeRDP-3.25.0.orig/libfreerdp/crypto/tls.c FreeRDP-3.25.0/libfreerdp/crypto/tls.c --- FreeRDP-3.25.0.orig/libfreerdp/crypto/tls.c 2026-04-22 12:51:09.000000000 -0500 +++ FreeRDP-3.25.0/libfreerdp/crypto/tls.c 2026-04-29 13:25:51.120562279 -0500 @@ -1864,7 +1864,7 @@ int tls_verify_certificate(rdpTls* tls, if (!use_pem) free(fp); } -#if defined(WITH_FREERDP_DEPRECATED) +#if !defined(WITHOUT_FREERDP_3x_DEPRECATED) else if (instance->VerifyCertificate) { char* fp = freerdp_certificate_get_fingerprint(cert); @@ -1939,7 +1939,7 @@ int tls_verify_certificate(rdpTls* tls, if (fpIsAllocated) free(fp); } -#if defined(WITH_FREERDP_DEPRECATED) +#if !defined(WITHOUT_FREERDP_3x_DEPRECATED) else if (instance->VerifyChangedCertificate) { char* fp = freerdp_certificate_get_fingerprint(cert);