Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
Re: freerdp fails on latest snapshot
To:
Fred <openbsd@crowsons.com>, mike@marcott.net, ports@openbsd.org
Date:
Fri, 7 Nov 2025 14:18:29 +0000

Download raw body.

Thread
On 2025/11/07 14:11, Stuart Henderson wrote:
> On 2025/11/07 13:57, Fred wrote:
> > I'm not the op but I tried your patch and it failed with the following
> 
> there was a call missing, try this

actually, I'll just commit it, along with USE_NOBTCFI for now.

> ? ktrace.out
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/x11/freerdp/Makefile,v
> diff -u -p -r1.73 Makefile
> --- Makefile	21 May 2024 08:40:53 -0000	1.73
> +++ Makefile	7 Nov 2025 14:11:13 -0000
> @@ -1,5 +1,6 @@
>  COMMENT =		client for Microsoft RDP (remote desktop protocol)
>  DISTNAME =		freerdp-2.11.7
> +REVISION =		0
>  DPB_PROPERTIES =	parallel
>  CATEGORIES =		x11 net
>  
> @@ -27,6 +28,8 @@ PERMIT_PACKAGE =	Yes
>  WANTLIB += X11 Xcursor Xext Xfixes Xi Xinerama Xrandr Xrender Xv
>  WANTLIB += avcodec avutil c crypto cups epoll-shim execinfo m pthread sndio
>  WANTLIB += ssl swresample usb-1.0 xkbfile
> +
> +DEBUG_PACKAGES =	${BUILD_PACKAGES}
>  
>  # thread-local storage; C11
>  COMPILER =		base-clang ports-gcc
> Index: patches/patch-channels_tsmf_client_ffmpeg_tsmf_ffmpeg_c
> ===================================================================
> RCS file: patches/patch-channels_tsmf_client_ffmpeg_tsmf_ffmpeg_c
> diff -N patches/patch-channels_tsmf_client_ffmpeg_tsmf_ffmpeg_c
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-channels_tsmf_client_ffmpeg_tsmf_ffmpeg_c	7 Nov 2025 14:11:13 -0000
> @@ -0,0 +1,22 @@
> +Index: channels/tsmf/client/ffmpeg/tsmf_ffmpeg.c
> +--- channels/tsmf/client/ffmpeg/tsmf_ffmpeg.c.orig
> ++++ channels/tsmf/client/ffmpeg/tsmf_ffmpeg.c
> +@@ -624,11 +624,18 @@ static void tsmf_ffmpeg_free(ITSMFDecoder* decoder)
> + 
> + 	if (mdecoder->codec_context)
> + 	{
> ++
> ++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55, 69, 100)
> + 		if (mdecoder->prepared)
> + 			avcodec_close(mdecoder->codec_context);
> ++#endif
> + 
> + 		free(mdecoder->codec_context->extradata);
> ++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55, 69, 100)
> ++		avcodec_free_context(&mdecoder->codec_context);
> ++#else
> + 		av_free(mdecoder->codec_context);
> ++#endif
> + 	}
> + 
> + 	free(decoder);
> Index: patches/patch-libfreerdp_codec_h264_ffmpeg_c
> ===================================================================
> RCS file: patches/patch-libfreerdp_codec_h264_ffmpeg_c
> diff -N patches/patch-libfreerdp_codec_h264_ffmpeg_c
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-libfreerdp_codec_h264_ffmpeg_c	7 Nov 2025 14:11:13 -0000
> @@ -0,0 +1,27 @@
> +Index: libfreerdp/codec/h264_ffmpeg.c
> +--- libfreerdp/codec/h264_ffmpeg.c.orig
> ++++ libfreerdp/codec/h264_ffmpeg.c
> +@@ -100,10 +100,10 @@ static void libavcodec_destroy_encoder(H264_CONTEXT* h
> + 
> + 	if (sys->codecEncoderContext)
> + 	{
> +-		avcodec_close(sys->codecEncoderContext);
> + #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55, 69, 100)
> + 		avcodec_free_context(&sys->codecEncoderContext);
> + #else
> ++		avcodec_close(sys->codecEncoderContext);
> + 		av_free(sys->codecEncoderContext);
> + #endif
> + 	}
> +@@ -430,10 +430,10 @@ static void libavcodec_uninit(H264_CONTEXT* h264)
> + 
> + 	if (sys->codecDecoderContext)
> + 	{
> +-		avcodec_close(sys->codecDecoderContext);
> + #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55, 69, 100)
> + 		avcodec_free_context(&sys->codecDecoderContext);
> + #else
> ++		avcodec_close(sys->codecDecoderContext);
> + 		av_free(sys->codecDecoderContext);
> + #endif
> + 	}
>