From 2b571a394acc3e006f0207c2152f3f895816c695 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Thu, 18 Nov 2021 18:51:41 +0100 Subject: freerdp: Upgrade 2.3.0 -> 2.4.1 Upgrade freerdp to latest stable 2.x version and drop OpenSSL 3.x backports which are already upstream. Signed-off-by: Marek Vasut Cc: Alexander Kanavin Cc: Khem Raj Signed-off-by: Khem Raj --- ...S-mode-support-and-build-with-OpenSSL-3.0.patch | 43 ----------- ...-avoid-calling-FIPS_mode-with-OpenSSL-3.0.patch | 28 ------- meta-oe/recipes-support/freerdp/freerdp_2.3.0.bb | 87 ---------------------- meta-oe/recipes-support/freerdp/freerdp_2.4.1.bb | 85 +++++++++++++++++++++ 4 files changed, 85 insertions(+), 158 deletions(-) delete mode 100644 meta-oe/recipes-support/freerdp/freerdp/0001-Fix-FIPS-mode-support-and-build-with-OpenSSL-3.0.patch delete mode 100644 meta-oe/recipes-support/freerdp/freerdp/0002-winpr-avoid-calling-FIPS_mode-with-OpenSSL-3.0.patch delete mode 100644 meta-oe/recipes-support/freerdp/freerdp_2.3.0.bb create mode 100644 meta-oe/recipes-support/freerdp/freerdp_2.4.1.bb diff --git a/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-FIPS-mode-support-and-build-with-OpenSSL-3.0.patch b/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-FIPS-mode-support-and-build-with-OpenSSL-3.0.patch deleted file mode 100644 index 04fe644d47..0000000000 --- a/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-FIPS-mode-support-and-build-with-OpenSSL-3.0.patch +++ /dev/null @@ -1,43 +0,0 @@ -From f703b1184229796d504a2e833f72ace4cc605d15 Mon Sep 17 00:00:00 2001 -From: Ondrej Holy -Date: Wed, 12 May 2021 12:48:15 +0200 -Subject: [PATCH 1/2] Fix FIPS mode support and build with OpenSSL 3.0 - -FreeRDP fails to build with OpenSSL 3.0 because of usage of the `FIPS_mode` -and `FIPS_mode_set` functions, which were removed there. Just a note that -the FIPS mode is not supported by OpenSSL 1.1.* although the mentioned -functions are still there (see https://wiki.openssl.org/index.php/FIPS_modules). -Let's make FreeRDP build with OpenSSL 3.0 and fix the FIPS mode support. - -See: https://bugzilla.redhat.com/show_bug.cgi?id=1952937 -Upstream-Status: Backport -Signed-off-by: Alexander Kanavin ---- - winpr/libwinpr/utils/ssl.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/winpr/libwinpr/utils/ssl.c b/winpr/libwinpr/utils/ssl.c -index 3a8590390..03b23af43 100644 ---- a/winpr/libwinpr/utils/ssl.c -+++ b/winpr/libwinpr/utils/ssl.c -@@ -244,9 +244,17 @@ static BOOL winpr_enable_fips(DWORD flags) - #else - WLog_DBG(TAG, "Ensuring openssl fips mode is ENabled"); - -+#if defined(OPENSSL_VERSION_MAJOR) && (OPENSSL_VERSION_MAJOR >= 3) -+ if (!EVP_default_properties_is_fips_enabled(NULL)) -+#else - if (FIPS_mode() != 1) -+#endif - { -+#if defined(OPENSSL_VERSION_MAJOR) && (OPENSSL_VERSION_MAJOR >= 3) -+ if (EVP_set_default_properties(NULL, "fips=yes")) -+#else - if (FIPS_mode_set(1)) -+#endif - WLog_INFO(TAG, "Openssl fips mode ENabled!"); - else - { --- -2.20.1 - diff --git a/meta-oe/recipes-support/freerdp/freerdp/0002-winpr-avoid-calling-FIPS_mode-with-OpenSSL-3.0.patch b/meta-oe/recipes-support/freerdp/freerdp/0002-winpr-avoid-calling-FIPS_mode-with-OpenSSL-3.0.patch deleted file mode 100644 index 728638e15d..0000000000 --- a/meta-oe/recipes-support/freerdp/freerdp/0002-winpr-avoid-calling-FIPS_mode-with-OpenSSL-3.0.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 4dbf108c0ae5e997d5c432f3da4b4c5fd7b35373 Mon Sep 17 00:00:00 2001 -From: Mike Gilbert -Date: Sun, 1 Aug 2021 12:14:43 -0400 -Subject: [PATCH 2/2] winpr: avoid calling FIPS_mode() with OpenSSL 3.0 - -Fixes: 26bf2816c3e0daeaf524c47cf0fcda8ae13b65ad -Upstream-Status: Backport -Signed-off-by: Alexander Kanavin ---- - winpr/libwinpr/utils/ssl.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/winpr/libwinpr/utils/ssl.c b/winpr/libwinpr/utils/ssl.c -index 03b23af43..74ef156e7 100644 ---- a/winpr/libwinpr/utils/ssl.c -+++ b/winpr/libwinpr/utils/ssl.c -@@ -364,6 +364,8 @@ BOOL winpr_FIPSMode(void) - { - #if (OPENSSL_VERSION_NUMBER < 0x10001000L) || defined(LIBRESSL_VERSION_NUMBER) - return FALSE; -+#elif defined(OPENSSL_VERSION_MAJOR) && (OPENSSL_VERSION_MAJOR >= 3) -+ return (EVP_default_properties_is_fips_enabled(NULL) == 1); - #else - return (FIPS_mode() == 1); - #endif --- -2.20.1 - diff --git a/meta-oe/recipes-support/freerdp/freerdp_2.3.0.bb b/meta-oe/recipes-support/freerdp/freerdp_2.3.0.bb deleted file mode 100644 index 6f9dc780b7..0000000000 --- a/meta-oe/recipes-support/freerdp/freerdp_2.3.0.bb +++ /dev/null @@ -1,87 +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 pcsc-lite" -SECTION = "net" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" - -inherit pkgconfig cmake gitpkgv - -PE = "1" -PKGV = "${GITPKGVTAG}" - -SRCREV = "14c7f7aed7dd4e2454ee0cd81028b9f790885021" -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-FIPS-mode-support-and-build-with-OpenSSL-3.0.patch \ - file://0002-winpr-avoid-calling-FIPS_mode-with-OpenSSL-3.0.patch \ -" - -S = "${WORKDIR}/git" - -EXTRA_OECMAKE += " \ - -DWITH_ALSA=ON \ - -DWITH_PCSC=ON \ - -DWITH_FFMPEG=OFF \ - -DWITH_CUNIT=OFF \ - -DWITH_NEON=OFF \ - -DBUILD_STATIC_LIBS=OFF \ - -DCMAKE_POSITION_INDEPENDANT_CODE=ON \ - -DWITH_MANPAGES=OFF \ -" - -PACKAGECONFIG ??= " \ - ${@bb.utils.filter('DISTRO_FEATURES', 'directfb pam pulseaudio wayland x11', d)}\ - gstreamer cups \ -" - -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[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" - -PACKAGES =+ "libfreerdp" - -LEAD_SONAME = "libfreerdp.so" -FILES:libfreerdp = "${libdir}/lib*${SOLIBS}" - -PACKAGES_DYNAMIC += "^libfreerdp-plugin-.*" - -# 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, '^(audin_.*)\.so$', - output_pattern='libfreerdp-plugin-%s', - description='FreeRDP plugin %s', - prepend=True, extra_depends='libfreerdp-plugin-audin') - - do_split_packages(d, freerdp_root, '^(rdpsnd_.*)\.so$', - output_pattern='libfreerdp-plugin-%s', - description='FreeRDP plugin %s', - prepend=True, extra_depends='libfreerdp-plugin-rdpsnd') - - do_split_packages(d, freerdp_root, '^(tsmf_.*)\.so$', - output_pattern='libfreerdp-plugin-%s', - description='FreeRDP plugin %s', - prepend=True, extra_depends='libfreerdp-plugin-tsmf') - - do_split_packages(d, freerdp_root, '^([^-]*)\.so$', - output_pattern='libfreerdp-plugin-%s', - description='FreeRDP plugin %s', - prepend=True, extra_depends='') -} diff --git a/meta-oe/recipes-support/freerdp/freerdp_2.4.1.bb b/meta-oe/recipes-support/freerdp/freerdp_2.4.1.bb new file mode 100644 index 0000000000..6582b2e7d4 --- /dev/null +++ b/meta-oe/recipes-support/freerdp/freerdp_2.4.1.bb @@ -0,0 +1,85 @@ +# 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 pcsc-lite" +SECTION = "net" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +inherit pkgconfig cmake gitpkgv + +PE = "1" +PKGV = "${GITPKGVTAG}" + +SRCREV = "d39a7ba5c38e3ba3b99b1558dc2ab0970cbfb0c5" +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_PCSC=ON \ + -DWITH_FFMPEG=OFF \ + -DWITH_CUNIT=OFF \ + -DWITH_NEON=OFF \ + -DBUILD_STATIC_LIBS=OFF \ + -DCMAKE_POSITION_INDEPENDANT_CODE=ON \ + -DWITH_MANPAGES=OFF \ +" + +PACKAGECONFIG ??= " \ + ${@bb.utils.filter('DISTRO_FEATURES', 'directfb pam pulseaudio wayland x11', d)}\ + gstreamer cups \ +" + +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[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" + +PACKAGES =+ "libfreerdp" + +LEAD_SONAME = "libfreerdp.so" +FILES:libfreerdp = "${libdir}/lib*${SOLIBS}" + +PACKAGES_DYNAMIC += "^libfreerdp-plugin-.*" + +# 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, '^(audin_.*)\.so$', + output_pattern='libfreerdp-plugin-%s', + description='FreeRDP plugin %s', + prepend=True, extra_depends='libfreerdp-plugin-audin') + + do_split_packages(d, freerdp_root, '^(rdpsnd_.*)\.so$', + output_pattern='libfreerdp-plugin-%s', + description='FreeRDP plugin %s', + prepend=True, extra_depends='libfreerdp-plugin-rdpsnd') + + do_split_packages(d, freerdp_root, '^(tsmf_.*)\.so$', + output_pattern='libfreerdp-plugin-%s', + description='FreeRDP plugin %s', + prepend=True, extra_depends='libfreerdp-plugin-tsmf') + + do_split_packages(d, freerdp_root, '^([^-]*)\.so$', + output_pattern='libfreerdp-plugin-%s', + description='FreeRDP plugin %s', + prepend=True, extra_depends='') +} -- cgit v1.2.3-54-g00ecf