From 132b4ae76f6f45f520007e6cdf8e29ffa29cf0e8 Mon Sep 17 00:00:00 2001 From: Wang Mingyu Date: Mon, 11 Sep 2023 17:07:03 +0800 Subject: freerdp: upgrade 2.10.0 -> 2.11.0 0001-Fix-const-qualifier-error.patch added to fix error with clang Changelog: =========== Noteworthy changes: * Various input validation fixes * Added various CMake options #9317 * LibreSSL build fixes #8709 Fixed issues: * Backported #9233: Big endian support * Backported #9099: Mouse grabbing support * Backported #6851: wayland scrolling fix * Backported #8690: Update h264 to use new FFMPEG API * Backported #7306: early bail from update_read_window_state_order breaks protocol * Backported #8903: rdpecam/server: Remove wrong assertion * Backported #8994: bounds checks for gdi/gfx rectangles * Backported #9023: enforce rdpdr client side state checks * Backported #6331: deactivate mouse grabbing by default * Cherry-pick out of #9172: channels/cliprdr: Fix writing incorrect PDU type for unlock PDUs Signed-off-by: Wang Mingyu Signed-off-by: Khem Raj --- .../freerdp/0001-Fix-const-qualifier-error.patch | 57 ++++++++++++++ meta-oe/recipes-support/freerdp/freerdp_2.10.0.bb | 91 --------------------- meta-oe/recipes-support/freerdp/freerdp_2.11.0.bb | 92 ++++++++++++++++++++++ 3 files changed, 149 insertions(+), 91 deletions(-) create mode 100644 meta-oe/recipes-support/freerdp/freerdp/0001-Fix-const-qualifier-error.patch delete mode 100644 meta-oe/recipes-support/freerdp/freerdp_2.10.0.bb create mode 100644 meta-oe/recipes-support/freerdp/freerdp_2.11.0.bb (limited to 'meta-oe/recipes-support/freerdp') diff --git a/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-const-qualifier-error.patch b/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-const-qualifier-error.patch new file mode 100644 index 0000000000..87a456d16d --- /dev/null +++ b/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-const-qualifier-error.patch @@ -0,0 +1,57 @@ +From 761b4df04a141cc8c9507c741e4046c6c6b00491 Mon Sep 17 00:00:00 2001 +From: Wang Mingyu +Date: Mon, 11 Sep 2023 09:00:39 +0000 +Subject: [PATCH] Fix const qualifier error + +Fixes clang error +error: incompatible function pointer types assigning to 'OBJECT_NEW_FN' (aka 'void *(*)(void *)') from 'void *(const void *)' [-Wincompatible-function-pointer-types] +| obj->fnObjectNew = uwac_event_clone; +| ^ ~~~~~~~~~~~~~~~~ + +https://github.com/FreeRDP/FreeRDP/commit/6e3c00725aae99d03a0baa65430eceddebd9dee8 +Upstream-Status: Backport + +Signed-off-by: Wang Mingyu +--- + libfreerdp/codec/rfx.c | 4 ++-- + winpr/include/winpr/collections.h | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libfreerdp/codec/rfx.c b/libfreerdp/codec/rfx.c +index ccbc5af..eec7365 100644 +--- a/libfreerdp/codec/rfx.c ++++ b/libfreerdp/codec/rfx.c +@@ -153,7 +153,7 @@ static void rfx_tile_init(void* obj) + } + } + +-static void* rfx_decoder_tile_new(void* val) ++static void* rfx_decoder_tile_new(const void* val) + { + RFX_TILE* tile = NULL; + WINPR_UNUSED(val); +@@ -184,7 +184,7 @@ static void rfx_decoder_tile_free(void* obj) + } + } + +-static void* rfx_encoder_tile_new(void* val) ++static void* rfx_encoder_tile_new(const void* val) + { + WINPR_UNUSED(val); + return calloc(1, sizeof(RFX_TILE)); +diff --git a/winpr/include/winpr/collections.h b/winpr/include/winpr/collections.h +index 807f011..b8c8d9d 100644 +--- a/winpr/include/winpr/collections.h ++++ b/winpr/include/winpr/collections.h +@@ -36,7 +36,7 @@ extern "C" + { + #endif + +- typedef void* (*OBJECT_NEW_FN)(void* val); ++ typedef void* (*OBJECT_NEW_FN)(const void* val); + typedef void (*OBJECT_INIT_FN)(void* obj); + typedef void (*OBJECT_UNINIT_FN)(void* obj); + typedef void (*OBJECT_FREE_FN)(void* obj); +-- +2.34.1 + diff --git a/meta-oe/recipes-support/freerdp/freerdp_2.10.0.bb b/meta-oe/recipes-support/freerdp/freerdp_2.10.0.bb deleted file mode 100644 index 4cb452608e..0000000000 --- a/meta-oe/recipes-support/freerdp/freerdp_2.10.0.bb +++ /dev/null @@ -1,91 +0,0 @@ -# Copyright (C) 2010-2012 O.S. Systems Software Ltda. All Rights Reserved -# Released under the MIT license - -DESCRIPTION = "FreeRDP RDP client & server library" -HOMEPAGE = "http://www.freerdp.com" -DEPENDS = "openssl alsa-lib libusb1" -SECTION = "net" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" - -inherit pkgconfig cmake gitpkgv - -PE = "1" -PKGV = "${GITPKGVTAG}" - -SRCREV = "7471ae383e7b7a613f275e19f7b54958a193c891" -SRC_URI = "git://github.com/FreeRDP/FreeRDP.git;branch=stable-2.0;protocol=https \ - file://winpr-makecert-Build-with-install-RPATH.patch \ - " - -S = "${WORKDIR}/git" - -EXTRA_OECMAKE += " \ - -DWITH_ALSA=ON \ - -DWITH_FFMPEG=OFF \ - -DWITH_CUNIT=OFF \ - -DWITH_NEON=OFF \ - -DBUILD_STATIC_LIBS=OFF \ - -DCMAKE_POSITION_INDEPENDANT_CODE=ON \ - -DWITH_MANPAGES=OFF \ - -DPROXY_PLUGINDIR=${libdir}/freerdp/proxy/plugins \ -" - -PACKAGECONFIG ??= " \ - ${@bb.utils.filter('DISTRO_FEATURES', 'directfb pam pulseaudio wayland x11', d)}\ - gstreamer cups pcsc server \ -" - -X11_DEPS = "virtual/libx11 libxinerama libxext libxcursor libxv libxi libxrender libxfixes libxdamage libxrandr libxkbfile" -PACKAGECONFIG[x11] = "-DWITH_X11=ON -DWITH_XINERAMA=ON -DWITH_XEXT=ON -DWITH_XCURSOR=ON -DWITH_XV=ON -DWITH_XI=ON -DWITH_XRENDER=ON -DWITH_XFIXES=ON -DWITH_XDAMAGE=ON -DWITH_XRANDR=ON -DWITH_XKBFILE=ON,-DWITH_X11=OFF,${X11_DEPS}" -PACKAGECONFIG[wayland] = "-DWITH_WAYLAND=ON,-DWITH_WAYLAND=OFF,wayland wayland-native libxkbcommon" -PACKAGECONFIG[directfb] = "-DWITH_DIRECTFB=ON,-DWITH_DIRECTFB=OFF,directfb" -PACKAGECONFIG[pam] = "-DWITH_PAM=ON,-DWITH_PAM=OFF,libpam" -PACKAGECONFIG[pcsc] = "-DWITH_PCSC=ON,-DWITH_PCSC=OFF,pcsc-lite" -PACKAGECONFIG[pulseaudio] = "-DWITH_PULSEAUDIO=ON,-DWITH_PULSEAUDIO=OFF,pulseaudio" -PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER_1_0=ON,-DWITH_GSTREAMER_1_0=OFF,gstreamer1.0 gstreamer1.0-plugins-base" -PACKAGECONFIG[cups] = "-DWITH_CUPS=ON,-DWITH_CUPS=OFF,cups" -PACKAGECONFIG[server] = "-DWITH_SERVER=ON,-DWITH_SERVER=OFF" - -PACKAGES =+ "libfreerdp" - -LEAD_SONAME = "libfreerdp.so" -FILES:libfreerdp = "${libdir}/lib*${SOLIBS}" - -PACKAGES_DYNAMIC += "^libfreerdp-plugin-.*" - -do_configure:append() { - sed -i -e 's|${WORKDIR}||g' ${B}/buildflags.h -} - -# we will need winpr-makecert to generate TLS certificates -do_install:append () { - install -d ${D}${bindir} - install -m755 winpr/tools/makecert-cli/winpr-makecert ${D}${bindir} - rm -rf ${D}${libdir}/cmake - rm -rf ${D}${libdir}/freerdp -} - -python populate_packages:prepend () { - freerdp_root = d.expand('${libdir}/freerdp') - - do_split_packages(d, freerdp_root, r'^(audin_.*)\.so$', - output_pattern='libfreerdp-plugin-%s', - description='FreeRDP plugin %s', - prepend=True, extra_depends='libfreerdp-plugin-audin') - - do_split_packages(d, freerdp_root, r'^(rdpsnd_.*)\.so$', - output_pattern='libfreerdp-plugin-%s', - description='FreeRDP plugin %s', - prepend=True, extra_depends='libfreerdp-plugin-rdpsnd') - - do_split_packages(d, freerdp_root, r'^(tsmf_.*)\.so$', - output_pattern='libfreerdp-plugin-%s', - description='FreeRDP plugin %s', - prepend=True, extra_depends='libfreerdp-plugin-tsmf') - - do_split_packages(d, freerdp_root, r'^([^-]*)\.so$', - output_pattern='libfreerdp-plugin-%s', - description='FreeRDP plugin %s', - prepend=True, extra_depends='') -} diff --git a/meta-oe/recipes-support/freerdp/freerdp_2.11.0.bb b/meta-oe/recipes-support/freerdp/freerdp_2.11.0.bb new file mode 100644 index 0000000000..4a5a763c8e --- /dev/null +++ b/meta-oe/recipes-support/freerdp/freerdp_2.11.0.bb @@ -0,0 +1,92 @@ +# Copyright (C) 2010-2012 O.S. Systems Software Ltda. All Rights Reserved +# Released under the MIT license + +DESCRIPTION = "FreeRDP RDP client & server library" +HOMEPAGE = "http://www.freerdp.com" +DEPENDS = "openssl alsa-lib libusb1" +SECTION = "net" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +inherit pkgconfig cmake gitpkgv + +PE = "1" +PKGV = "${GITPKGVTAG}" + +SRCREV = "1384b3c33b9bd7599633cc54bf20cf20ec6be83c" +SRC_URI = "git://github.com/FreeRDP/FreeRDP.git;branch=stable-2.0;protocol=https \ + file://winpr-makecert-Build-with-install-RPATH.patch \ + file://0001-Fix-const-qualifier-error.patch \ + " + +S = "${WORKDIR}/git" + +EXTRA_OECMAKE += " \ + -DWITH_ALSA=ON \ + -DWITH_FFMPEG=OFF \ + -DWITH_CUNIT=OFF \ + -DWITH_NEON=OFF \ + -DBUILD_STATIC_LIBS=OFF \ + -DCMAKE_POSITION_INDEPENDANT_CODE=ON \ + -DWITH_MANPAGES=OFF \ + -DPROXY_PLUGINDIR=${libdir}/freerdp/proxy/plugins \ +" + +PACKAGECONFIG ??= " \ + ${@bb.utils.filter('DISTRO_FEATURES', 'directfb pam pulseaudio wayland x11', d)}\ + gstreamer cups pcsc server \ +" + +X11_DEPS = "virtual/libx11 libxinerama libxext libxcursor libxv libxi libxrender libxfixes libxdamage libxrandr libxkbfile" +PACKAGECONFIG[x11] = "-DWITH_X11=ON -DWITH_XINERAMA=ON -DWITH_XEXT=ON -DWITH_XCURSOR=ON -DWITH_XV=ON -DWITH_XI=ON -DWITH_XRENDER=ON -DWITH_XFIXES=ON -DWITH_XDAMAGE=ON -DWITH_XRANDR=ON -DWITH_XKBFILE=ON,-DWITH_X11=OFF,${X11_DEPS}" +PACKAGECONFIG[wayland] = "-DWITH_WAYLAND=ON,-DWITH_WAYLAND=OFF,wayland wayland-native libxkbcommon" +PACKAGECONFIG[directfb] = "-DWITH_DIRECTFB=ON,-DWITH_DIRECTFB=OFF,directfb" +PACKAGECONFIG[pam] = "-DWITH_PAM=ON,-DWITH_PAM=OFF,libpam" +PACKAGECONFIG[pcsc] = "-DWITH_PCSC=ON,-DWITH_PCSC=OFF,pcsc-lite" +PACKAGECONFIG[pulseaudio] = "-DWITH_PULSEAUDIO=ON,-DWITH_PULSEAUDIO=OFF,pulseaudio" +PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER_1_0=ON,-DWITH_GSTREAMER_1_0=OFF,gstreamer1.0 gstreamer1.0-plugins-base" +PACKAGECONFIG[cups] = "-DWITH_CUPS=ON,-DWITH_CUPS=OFF,cups" +PACKAGECONFIG[server] = "-DWITH_SERVER=ON,-DWITH_SERVER=OFF" + +PACKAGES =+ "libfreerdp" + +LEAD_SONAME = "libfreerdp.so" +FILES:libfreerdp = "${libdir}/lib*${SOLIBS}" + +PACKAGES_DYNAMIC += "^libfreerdp-plugin-.*" + +do_configure:append() { + sed -i -e 's|${WORKDIR}||g' ${B}/buildflags.h +} + +# we will need winpr-makecert to generate TLS certificates +do_install:append () { + install -d ${D}${bindir} + install -m755 winpr/tools/makecert-cli/winpr-makecert ${D}${bindir} + rm -rf ${D}${libdir}/cmake + rm -rf ${D}${libdir}/freerdp +} + +python populate_packages:prepend () { + freerdp_root = d.expand('${libdir}/freerdp') + + do_split_packages(d, freerdp_root, r'^(audin_.*)\.so$', + output_pattern='libfreerdp-plugin-%s', + description='FreeRDP plugin %s', + prepend=True, extra_depends='libfreerdp-plugin-audin') + + do_split_packages(d, freerdp_root, r'^(rdpsnd_.*)\.so$', + output_pattern='libfreerdp-plugin-%s', + description='FreeRDP plugin %s', + prepend=True, extra_depends='libfreerdp-plugin-rdpsnd') + + do_split_packages(d, freerdp_root, r'^(tsmf_.*)\.so$', + output_pattern='libfreerdp-plugin-%s', + description='FreeRDP plugin %s', + prepend=True, extra_depends='libfreerdp-plugin-tsmf') + + do_split_packages(d, freerdp_root, r'^([^-]*)\.so$', + output_pattern='libfreerdp-plugin-%s', + description='FreeRDP plugin %s', + prepend=True, extra_depends='') +} -- cgit 1.2.3-korg