summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-06-07 11:33:36 +0100
committerSam James <sam@gentoo.org>2023-06-07 11:33:36 +0100
commitda38705a58769604bc1561a23fc7bcd4f60d0056 (patch)
treec362c6cf40063ec1cfbfe8a9108e5981313aad49 /net-misc/freerdp
parentsys-block/ndctl: Stabilize 76.1 amd64, #907991 (diff)
downloadgentoo-da38705a58769604bc1561a23fc7bcd4f60d0056.tar.gz
gentoo-da38705a58769604bc1561a23fc7bcd4f60d0056.tar.bz2
gentoo-da38705a58769604bc1561a23fc7bcd4f60d0056.zip
net-misc/freerdp: fix build w/ ffmpeg 6
Closes: https://bugs.gentoo.org/901003 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'net-misc/freerdp')
-rw-r--r--net-misc/freerdp/files/freerdp-2.10.0-ffmpeg-6.patch37
-rw-r--r--net-misc/freerdp/freerdp-2.10.0-r3.ebuild137
2 files changed, 174 insertions, 0 deletions
diff --git a/net-misc/freerdp/files/freerdp-2.10.0-ffmpeg-6.patch b/net-misc/freerdp/files/freerdp-2.10.0-ffmpeg-6.patch
new file mode 100644
index 000000000000..586ae641b58e
--- /dev/null
+++ b/net-misc/freerdp/files/freerdp-2.10.0-ffmpeg-6.patch
@@ -0,0 +1,37 @@
+https://bugs.gentoo.org/901003
+https://github.com/FreeRDP/FreeRDP/issues/8686
+https://github.com/FreeRDP/FreeRDP/commit/7f55c97d60453738323e0ecafe6d357019528227
+
+From 7f55c97d60453738323e0ecafe6d357019528227 Mon Sep 17 00:00:00 2001
+From: akallabeth <akallabeth@posteo.net>
+Date: Tue, 14 Feb 2023 07:48:54 +0100
+Subject: [PATCH] Fixed #8686: Update h264 to use new FFMPEG API
+
+--- a/channels/tsmf/client/ffmpeg/tsmf_ffmpeg.c
++++ b/channels/tsmf/client/ffmpeg/tsmf_ffmpeg.c
+@@ -235,8 +235,10 @@ static BOOL tsmf_ffmpeg_init_stream(ITSMFDecoder* decoder, const TS_AM_MEDIA_TYP
+ }
+ }
+
++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(59, 18, 100)
+ if (mdecoder->codec->capabilities & AV_CODEC_CAP_TRUNCATED)
+ mdecoder->codec_context->flags |= AV_CODEC_FLAG_TRUNCATED;
++#endif
+
+ return TRUE;
+ }
+--- a/libfreerdp/codec/h264_ffmpeg.c
++++ b/libfreerdp/codec/h264_ffmpeg.c
+@@ -529,10 +529,12 @@ static BOOL libavcodec_init(H264_CONTEXT* h264)
+ goto EXCEPTION;
+ }
+
++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(59, 18, 100)
+ if (sys->codecDecoder->capabilities & AV_CODEC_CAP_TRUNCATED)
+ {
+ sys->codecDecoderContext->flags |= AV_CODEC_FLAG_TRUNCATED;
+ }
++#endif
+
+ #ifdef WITH_VAAPI
+
diff --git a/net-misc/freerdp/freerdp-2.10.0-r3.ebuild b/net-misc/freerdp/freerdp-2.10.0-r3.ebuild
new file mode 100644
index 000000000000..7e92eb90ea30
--- /dev/null
+++ b/net-misc/freerdp/freerdp-2.10.0-r3.ebuild
@@ -0,0 +1,137 @@
+# Copyright 2011-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/FreeRDP/FreeRDP.git"
+ case ${PV} in
+ 2.*) EGIT_BRANCH="stable-2.0";;
+ esac
+else
+ MY_P=${P/_/-}
+ S="${WORKDIR}/${MY_P}"
+ SRC_URI="https://pub.freerdp.com/releases/${MY_P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+fi
+
+DESCRIPTION="Free implementation of the Remote Desktop Protocol"
+HOMEPAGE="http://www.freerdp.com/"
+
+LICENSE="Apache-2.0"
+SLOT="0/2"
+IUSE="alsa cpu_flags_arm_neon cups debug doc +ffmpeg gstreamer jpeg kerberos openh264 pulseaudio server smartcard systemd test usb valgrind wayland X xinerama xv"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-libs/openssl:0=
+ sys-libs/zlib:0
+ alsa? ( media-libs/alsa-lib )
+ cups? ( net-print/cups )
+ usb? (
+ virtual/libudev:0=
+ sys-apps/util-linux:0=
+ dev-libs/dbus-glib:0=
+ virtual/libusb:1=
+ )
+ X? (
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXrender
+ xinerama? ( x11-libs/libXinerama )
+ xv? ( x11-libs/libXv )
+ )
+ ffmpeg? ( media-video/ffmpeg:0= )
+ !ffmpeg? (
+ x11-libs/cairo:0=
+ )
+ gstreamer? (
+ media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0
+ x11-libs/libXrandr
+ )
+ jpeg? ( media-libs/libjpeg-turbo:0= )
+ kerberos? ( virtual/krb5 )
+ openh264? ( media-libs/openh264:0= )
+ pulseaudio? ( media-libs/libpulse )
+ server? (
+ X? (
+ x11-libs/libXcursor
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXrandr
+ x11-libs/libXtst
+ xinerama? ( x11-libs/libXinerama )
+ )
+ )
+ smartcard? ( sys-apps/pcsc-lite )
+ systemd? ( sys-apps/systemd:0= )
+ wayland? (
+ dev-libs/wayland
+ x11-libs/libxkbcommon
+ )
+ X? (
+ x11-libs/libX11
+ x11-libs/libxkbfile
+ )
+"
+DEPEND="
+ ${RDEPEND}
+ valgrind? ( dev-util/valgrind )
+"
+BDEPEND="
+ virtual/pkgconfig
+ X? ( doc? (
+ app-text/docbook-xml-dtd:4.1.2
+ app-text/xmlto
+ ) )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-ffmpeg-6.patch
+)
+
+src_configure() {
+ # bug #881695
+ filter-lto
+
+ local mycmakeargs=(
+ -DBUILD_TESTING=$(usex test ON OFF)
+ -DCHANNEL_URBDRC=$(usex usb ON OFF)
+ -DWITH_ALSA=$(usex alsa ON OFF)
+ -DWITH_CCACHE=OFF
+ -DWITH_CUPS=$(usex cups ON OFF)
+ -DWITH_DEBUG_ALL=$(usex debug ON OFF)
+ -DWITH_MANPAGES=$(usex doc ON OFF)
+ -DWITH_FFMPEG=$(usex ffmpeg ON OFF)
+ -DWITH_SWSCALE=$(usex ffmpeg ON OFF)
+ -DWITH_CAIRO=$(usex ffmpeg OFF ON)
+ -DWITH_DSP_FFMPEG=$(usex ffmpeg ON OFF)
+ -DWITH_GSTREAMER_1_0=$(usex gstreamer ON OFF)
+ -DWITH_JPEG=$(usex jpeg ON OFF)
+ -DWITH_GSSAPI=$(usex kerberos ON OFF)
+ -DWITH_NEON=$(usex cpu_flags_arm_neon ON OFF)
+ -DWITH_OPENH264=$(usex openh264 ON OFF)
+ -DWITH_PULSE=$(usex pulseaudio ON OFF)
+ -DWITH_SERVER=$(usex server ON OFF)
+ -DWITH_PCSC=$(usex smartcard ON OFF)
+ -DWITH_LIBSYSTEMD=$(usex systemd ON OFF)
+ -DWITH_VALGRIND_MEMCHECK=$(usex valgrind ON OFF)
+ -DWITH_X11=$(usex X ON OFF)
+ -DWITH_XINERAMA=$(usex xinerama ON OFF)
+ -DWITH_XV=$(usex xv ON OFF)
+ -DWITH_WAYLAND=$(usex wayland ON OFF)
+ )
+ cmake_src_configure
+}
+
+src_test() {
+ local myctestargs=()
+ use elibc_musl && myctestargs+=( -E TestBacktrace )
+ cmake_src_test
+}