From 8043b204720428f51247dd10e416f2f0326bc822 Mon Sep 17 00:00:00 2001 From: chrysos349 Date: Sat, 20 Apr 2024 21:31:56 +0300 Subject: [PATCH 1/2] cJSON: update to 1.7.17 --- srcpkgs/cJSON/patches/fix-cross.patch | 97 +++++++++++++++++++++ srcpkgs/cJSON/patches/fix-memory-leak.patch | 21 ----- srcpkgs/cJSON/template | 6 +- 3 files changed, 100 insertions(+), 24 deletions(-) create mode 100644 srcpkgs/cJSON/patches/fix-cross.patch delete mode 100644 srcpkgs/cJSON/patches/fix-memory-leak.patch diff --git a/srcpkgs/cJSON/patches/fix-cross.patch b/srcpkgs/cJSON/patches/fix-cross.patch new file mode 100644 index 00000000000000..33340bd827c38f --- /dev/null +++ b/srcpkgs/cJSON/patches/fix-cross.patch @@ -0,0 +1,97 @@ +help cmake find headers when cross-compiling +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0d807ea62..aa2057c43 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -146,25 +146,25 @@ endif() + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/library_config/libcjson.pc.in" + "${CMAKE_CURRENT_BINARY_DIR}/libcjson.pc" @ONLY) + +-install(FILES cJSON.h DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}/cjson") +-install (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcjson.pc" DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig") ++install(FILES cJSON.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/cjson") ++install (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcjson.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") + install(TARGETS "${CJSON_LIB}" + EXPORT "${CJSON_LIB}" +- ARCHIVE DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}" +- LIBRARY DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}" +- RUNTIME DESTINATION "${CMAKE_INSTALL_FULL_BINDIR}" +- INCLUDES DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}" ++ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ++ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ++ INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + ) + if (BUILD_SHARED_AND_STATIC_LIBS) + install(TARGETS "${CJSON_LIB}-static" + EXPORT "${CJSON_LIB}" +- ARCHIVE DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}" +- INCLUDES DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}" ++ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" ++ INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + ) + endif() + if(ENABLE_TARGET_EXPORT) + # export library information for CMake projects +- install(EXPORT "${CJSON_LIB}" DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/cmake/cJSON") ++ install(EXPORT "${CJSON_LIB}" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cJSON") + endif() + + if(ENABLE_CJSON_VERSION_SO) +@@ -199,23 +199,23 @@ if(ENABLE_CJSON_UTILS) + + install(TARGETS "${CJSON_UTILS_LIB}" + EXPORT "${CJSON_UTILS_LIB}" +- ARCHIVE DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}" +- LIBRARY DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}" +- RUNTIME DESTINATION "${CMAKE_INSTALL_FULL_BINDIR}" +- INCLUDES DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}" ++ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ++ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ++ INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + ) + if (BUILD_SHARED_AND_STATIC_LIBS) + install(TARGETS "${CJSON_UTILS_LIB}-static" + EXPORT "${CJSON_UTILS_LIB}" +- ARCHIVE DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}" +- INCLUDES DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}" ++ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" ++ INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + ) + endif() +- install(FILES cJSON_Utils.h DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}/cjson") +- install (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcjson_utils.pc" DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig") ++ install(FILES cJSON_Utils.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/cjson") ++ install (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcjson_utils.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") + if(ENABLE_TARGET_EXPORT) + # export library information for CMake projects +- install(EXPORT "${CJSON_UTILS_LIB}" DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/cmake/cJSON") ++ install(EXPORT "${CJSON_UTILS_LIB}" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cJSON") + endif() + + if(ENABLE_CJSON_VERSION_SO) +@@ -238,7 +238,7 @@ if(ENABLE_TARGET_EXPORT) + # Install package config files + install(FILES ${PROJECT_BINARY_DIR}/cJSONConfig.cmake + ${PROJECT_BINARY_DIR}/cJSONConfigVersion.cmake +- DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/cmake/cJSON") ++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cJSON") + endif() + + option(ENABLE_CJSON_TEST "Enable building cJSON test" ON) +diff --git a/library_config/cJSONConfig.cmake.in b/library_config/cJSONConfig.cmake.in +index 909f7a9ae..206566b39 100644 +--- a/library_config/cJSONConfig.cmake.in ++++ b/library_config/cJSONConfig.cmake.in +@@ -2,8 +2,8 @@ + set(CJSON_UTILS_FOUND @ENABLE_CJSON_UTILS@) + + # The include directories used by cJSON +-set(CJSON_INCLUDE_DIRS "@CMAKE_INSTALL_FULL_INCLUDEDIR@") +-set(CJSON_INCLUDE_DIR "@CMAKE_INSTALL_FULL_INCLUDEDIR@") ++set(CJSON_INCLUDE_DIRS "@CMAKE_INSTALL_INCLUDEDIR@") ++set(CJSON_INCLUDE_DIR "@CMAKE_INSTALL_INCLUDEDIR@") + + get_filename_component(_dir "${CMAKE_CURRENT_LIST_FILE}" PATH) + diff --git a/srcpkgs/cJSON/patches/fix-memory-leak.patch b/srcpkgs/cJSON/patches/fix-memory-leak.patch deleted file mode 100644 index 01556a6eb8e00e..00000000000000 --- a/srcpkgs/cJSON/patches/fix-memory-leak.patch +++ /dev/null @@ -1,21 +0,0 @@ -From f50dafc7d0bfd4f45449ab5665bfea831a82f2eb Mon Sep 17 00:00:00 2001 -From: Alan Wang <948467222@qq.com> -Date: Thu, 26 Aug 2021 14:13:42 +0800 -Subject: [PATCH] fix: potential memory leak in merge_patch() (#611) - ---- - cJSON_Utils.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/cJSON_Utils.c b/cJSON_Utils.c -index c7c64391..63651dfb 100644 ---- a/cJSON_Utils.c -+++ b/cJSON_Utils.c -@@ -1367,6 +1367,7 @@ static cJSON *merge_patch(cJSON *target, const cJSON * const patch, const cJSON_ - replacement = merge_patch(replace_me, patch_child, case_sensitive); - if (replacement == NULL) - { -+ cJSON_Delete(target); - return NULL; - } - diff --git a/srcpkgs/cJSON/template b/srcpkgs/cJSON/template index 63235062a77cb6..43a51a1be2d524 100644 --- a/srcpkgs/cJSON/template +++ b/srcpkgs/cJSON/template @@ -1,14 +1,14 @@ # Template file for 'cJSON' pkgname=cJSON -version=1.7.15 -revision=2 +version=1.7.17 +revision=1 build_style=cmake short_desc="Ultralightweight JSON parser in ANSI C" maintainer="Orphaned " license="MIT" homepage="https://github.com/DaveGamble/cJSON" distfiles="https://github.com/DaveGamble/cJSON/archive/v${version}.tar.gz" -checksum=5308fd4bd90cef7aa060558514de6a1a4a0819974a26e6ed13973c5f624c24b2 +checksum=c91d1eeb7175c50d49f6ba2a25e69b46bd05cffb798382c19bfb202e467ec51c post_install() { vlicense LICENSE From e65ccfe0b49d28d4d347ab9ca3bdc444c85a670a Mon Sep 17 00:00:00 2001 From: chrysos349 Date: Sat, 20 Apr 2024 21:36:30 +0300 Subject: [PATCH 2/2] New package: freerdp3-3.5.1 --- common/shlibs | 8 + srcpkgs/freerdp3-devel | 1 + srcpkgs/freerdp3-server | 1 + srcpkgs/freerdp3/patches/fix-cross.patch | 27 ++++ .../freerdp3/patches/use-webkit2gtk41.patch | 25 ++++ srcpkgs/freerdp3/template | 137 ++++++++++++++++++ srcpkgs/libfreerdp3 | 1 + srcpkgs/libfreerdp3-server | 1 + 8 files changed, 201 insertions(+) create mode 120000 srcpkgs/freerdp3-devel create mode 120000 srcpkgs/freerdp3-server create mode 100644 srcpkgs/freerdp3/patches/fix-cross.patch create mode 100644 srcpkgs/freerdp3/patches/use-webkit2gtk41.patch create mode 100644 srcpkgs/freerdp3/template create mode 120000 srcpkgs/libfreerdp3 create mode 120000 srcpkgs/libfreerdp3-server diff --git a/common/shlibs b/common/shlibs index 61a28fdc5b7436..1e42374740f8bc 100644 --- a/common/shlibs +++ b/common/shlibs @@ -1584,6 +1584,14 @@ libuwac0.so.0 libfreerdp-2.2.0_3 libfreerdp-server2.so.2 libfreerdp-server-2.4.0_1 libfreerdp-shadow-subsystem2.so.2 libfreerdp-server-2.4.0_1 libfreerdp-shadow2.so.2 libfreerdp-server-2.4.0_1 +libfreerdp-client3.so.3 libfreerdp3-3.5.1_1 +libfreerdp-server-proxy3.so.3 libfreerdp3-server-3.5.1_1 +libfreerdp-server3.so.3 libfreerdp3-server-3.5.1_1 +libfreerdp-shadow-subsystem3.so.3 libfreerdp3-server-3.5.1_1 +libfreerdp-shadow3.so.3 libfreerdp3-server-3.5.1_1 +libfreerdp3.so.3 libfreerdp3-3.5.1_1 +libwinpr-tools3.so.3 libfreerdp3-3.5.1_1 +libwinpr3.so.3 libfreerdp3-3.5.1_1 libcppunit-1.15.so.1 libcppunit-1.15.1_1 libcalc.so.2.14.3.5 libcalc-2.14.3.5_1 libcustcalc.so.2.14.3.5 libcalc-2.14.3.5_1 diff --git a/srcpkgs/freerdp3-devel b/srcpkgs/freerdp3-devel new file mode 120000 index 00000000000000..d8e6da3ebcadf3 --- /dev/null +++ b/srcpkgs/freerdp3-devel @@ -0,0 +1 @@ +freerdp3 \ No newline at end of file diff --git a/srcpkgs/freerdp3-server b/srcpkgs/freerdp3-server new file mode 120000 index 00000000000000..d8e6da3ebcadf3 --- /dev/null +++ b/srcpkgs/freerdp3-server @@ -0,0 +1 @@ +freerdp3 \ No newline at end of file diff --git a/srcpkgs/freerdp3/patches/fix-cross.patch b/srcpkgs/freerdp3/patches/fix-cross.patch new file mode 100644 index 00000000000000..7aea0e91a92908 --- /dev/null +++ b/srcpkgs/freerdp3/patches/fix-cross.patch @@ -0,0 +1,27 @@ +help cmake run executables when cross-compiling +diff --git a/cmake/InstallFreeRDPMan.cmake b/cmake/InstallFreeRDPMan.cmake +index c333f6497..2dff84966 100644 +--- a/cmake/InstallFreeRDPMan.cmake ++++ b/cmake/InstallFreeRDPMan.cmake +@@ -57,7 +57,7 @@ function(generate_and_install_freerdp_man_from_xml name_base section api depende + + add_custom_command( + OUTPUT "${manpage}" +- COMMAND ${CMAKE_BINARY_DIR}/client/common/man/generate_argument_docbook ++ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${CMAKE_BINARY_DIR}/client/common/man/generate_argument_docbook + COMMAND ${XSLTPROC_EXECUTABLE} --path "${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}" ${DOCBOOKXSL_DIR}/manpages/docbook.xsl ${manpage}.xml + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS +diff --git a/client/SDL/dialogs/res/CMakeLists.txt b/client/SDL/dialogs/res/CMakeLists.txt +index 5591e4af6..0b0946534 100644 +--- a/client/SDL/dialogs/res/CMakeLists.txt ++++ b/client/SDL/dialogs/res/CMakeLists.txt +@@ -33,7 +33,7 @@ macro(convert_to_bin FILE FILE_TYPE) + add_custom_command( + OUTPUT ${FILE_BYPRODUCTS} + COMMAND ${CMAKE_COMMAND} -E make_directory ${FILE_BIN_DIR} +- COMMAND $ ${FILE} ${FILE_TYPE} ${TARGET_NAME} ${FILE_BIN_DIR} ++ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $ ${FILE} ${FILE_TYPE} ${TARGET_NAME} ${FILE_BIN_DIR} + COMMENT "create image resources" + DEPENDS freerdp-res2bin + DEPENDS ${FILE} diff --git a/srcpkgs/freerdp3/patches/use-webkit2gtk41.patch b/srcpkgs/freerdp3/patches/use-webkit2gtk41.patch new file mode 100644 index 00000000000000..432d9fdf414c62 --- /dev/null +++ b/srcpkgs/freerdp3/patches/use-webkit2gtk41.patch @@ -0,0 +1,25 @@ +From 3de172e7da393e8d544b7eb38ce9db7d18c468b1 Mon Sep 17 00:00:00 2001 +From: Christian Hesse +Date: Mon, 25 Mar 2024 20:12:08 +0100 +Subject: [PATCH 1/1] Use webkit2gtk-4.1 + +--- + client/SDL/aad/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/client/SDL/aad/CMakeLists.txt b/client/SDL/aad/CMakeLists.txt +index 228654262..d13fb907e 100644 +--- a/client/SDL/aad/CMakeLists.txt ++++ b/client/SDL/aad/CMakeLists.txt +@@ -44,7 +44,7 @@ if (WITH_WEBVIEW) + ) + else() + find_package(PkgConfig REQUIRED) +- pkg_check_modules(WEBVIEW_GTK webkit2gtk-4.0 REQUIRED) ++ pkg_check_modules(WEBVIEW_GTK webkit2gtk-4.1 REQUIRED) + include_directories(${WEBVIEW_GTK_INCLUDE_DIRS}) + list(APPEND LIBS + ${WEBVIEW_GTK_LIBRARIES} +-- +2.44.0 + diff --git a/srcpkgs/freerdp3/template b/srcpkgs/freerdp3/template new file mode 100644 index 00000000000000..ec7217660627a8 --- /dev/null +++ b/srcpkgs/freerdp3/template @@ -0,0 +1,137 @@ +# Template file for 'freerdp3' +pkgname=freerdp3 +version=3.5.1 +revision=1 +build_style=cmake +build_helper=qemu +configure_args=" + -DCHANNEL_URBDRC_CLIENT=ON + -DPKG_CONFIG_RELOCATABLE=OFF + -DRDTK_FORCE_STATIC_BUILD=ON + -DWITH_BINARY_VERSIONING=ON + -DDOCBOOKXSL_DIR=/usr/share/xsl/docbook + -DPROXY_PLUGINDIR=/usr/lib/${pkgname}/server/proxy/plugins + -DXSLTPROC_EXECUTABLE=/usr/bin/xsltproc + -DWAYLAND_SCANNER=/usr/bin/wayland-scanner + + -DUWAC_FORCE_STATIC_BUILD=$(vopt_if wayland ON OFF) + -DWITH_AAD=$(vopt_if aad ON OFF) + -DWITH_ALSA=ON + -DWITH_CAIRO=$(vopt_if ffmpeg OFF ON) + -DWITH_CHANNELS=ON + -DWITH_CLIENT_CHANNELS=ON + -DWITH_CLIENT_SDL=$(vopt_if sdl2 ON OFF) + -DWITH_CUPS=ON + -DWITH_DSP_FFMPEG=$(vopt_if ffmpeg ON OFF) + -DWITH_FFMPEG=$(vopt_if ffmpeg ON OFF) + -DWITH_FREERDP_DEPRECATED_COMMANDLINE=ON + -DWITH_FUSE=ON + -DWITH_GSTREAMER_1_0=OFF + -DWITH_ICU=ON + -DWITH_JPEG=ON + -DWITH_LIBSYSTEMD=OFF + -DWITH_PCSC=$(vopt_if smartcard ON OFF) + -DWITH_PKCS11=$(vopt_if smartcard ON OFF) + -DWITH_PULSE=ON + -DWITH_SAMPLE=OFF + -DWITH_SERVER=ON + -DWITH_SERVER_CHANNELS=ON + -DWITH_SWSCALE=$(vopt_if ffmpeg ON OFF) + -DWITH_WAYLAND=$(vopt_if wayland ON OFF) + -DWITH_WEBVIEW=$(vopt_if webview ON OFF) + -DWITH_WINPR_TOOLS=ON + -DWITH_X11=ON + -DWITH_XCURSOR=ON + -DWITH_XEXT=ON + -DWITH_XI=ON + -DWITH_XINERAMA=ON + -DWITH_XKBFILE=ON + -DWITH_XRENDER=ON + -DWITH_XV=ON" +hostmakedepends="pkg-config xmlto $(vopt_if wayland wayland-devel)" +makedepends="alsa-lib-devel cups-devel fuse3-devel icu-devel libXcursor-devel + libXdamage-devel libXinerama-devel libXrandr-devel libXv-devel + libjpeg-turbo-devel libusb-devel libxkbfile-devel mit-krb5-devel openssl-devel + pulseaudio-devel uriparser-devel + $(vopt_if aad cJSON-devel) + $(vopt_if ffmpeg ffmpeg-devel cairo-devel) + $(vopt_if smartcard 'pcsclite-devel pkcs11-helper-devel') + $(vopt_if sdl2 SDL2_ttf-devel) + $(vopt_if wayland 'libxkbcommon-devel wayland-devel') + $(vopt_if webview libwebkit2gtk41-devel)" +short_desc="Free RDP (Remote Desktop Protocol) client" +maintainer="chrysos349 " +license="Apache-2.0" +homepage="https://www.freerdp.com/" +changelog="https://raw.githubusercontent.com/FreeRDP/FreeRDP/master/ChangeLog" +distfiles="https://github.com/FreeRDP/FreeRDP/archive/${version}.tar.gz" +checksum=bb40028c90c156799bc26a8b5837754a62805ee371e988efc61903c7263843b1 +CFLAGS="-Wno-dev" + +# wayland - deprecated, sdl2 - experimental +build_options="aad ffmpeg sdl2 smartcard wayland webview" +build_options_default="aad ffmpeg sdl2 smartcard" + +desc_option_aad="Compile with support for Azure AD authentication" +desc_option_smartcard="Build with smartcard support" +desc_option_webview="Build with WebView support for AAD login popup browser" + +if [ "$build_option_webview" -a -z "$build_option_sdl2" ]; then + broken="WebView requires SDL" +fi + +case "$XBPS_TARGET_MACHINE" in + i686*|x86_64*) configure_args+=" -DWITH_SSE2=ON";; + armv5tel*) configure_args+=" -DWITH_NEON=OFF";; +esac + +if [ "$CROSS_BUILD" ]; then + configure_args+=" + -DCMAKE_CXX_COMPILER_AR=/usr/bin/${XBPS_CROSS_TRIPLET}-ar + -DCMAKE_CXX_COMPILER_RANLIB=/usr/bin/${XBPS_CROSS_TRIPLET}-ranlib" + + pre_configure() { + export CXX="$XBPS_WRAPPERDIR/${XBPS_CROSS_TRIPLET}-c++" + } +fi + +# first we want to separate -server, everything else then goes to client +subpackages="libfreerdp3-server freerdp3-server libfreerdp3 freerdp3-devel" + +libfreerdp3_package() { + short_desc+=" - runtime libraries" + pkg_install() { + vmove "usr/lib/*.so.*" + } +} + +freerdp3-devel_package() { + short_desc+=" - development files" + depends="cJSON-devel libfreerdp3-server>=${version}_${revision} + libfreerdp3>=${version}_${revision} openssl-devel" + pkg_install() { + vmove "usr/lib/*.so" + vmove usr/include + vmove usr/lib/cmake + vmove usr/lib/pkgconfig + } +} + +libfreerdp3-server_package() { + short_desc="Free RDP (Remote Desktop Protocol) server - runtime libraries" + pkg_install() { + vmove "usr/lib/freerdp3/server/proxy/plugins" + vmove "usr/lib/libfreerdp-server*.so.*" + vmove "usr/lib/libfreerdp-shadow*.so.*" + } +} + +freerdp3-server_package() { + short_desc="Free RDP (Remote Desktop Protocol) server" + pkg_install() { + vmove usr/bin/freerdp-proxy3 + vmove usr/bin/freerdp-shadow-cli3 + vmove usr/share/man/man1/freerdp-proxy3.1 + vmove usr/share/man/man1/freerdp-shadow-cli3.1 + } +} diff --git a/srcpkgs/libfreerdp3 b/srcpkgs/libfreerdp3 new file mode 120000 index 00000000000000..d8e6da3ebcadf3 --- /dev/null +++ b/srcpkgs/libfreerdp3 @@ -0,0 +1 @@ +freerdp3 \ No newline at end of file diff --git a/srcpkgs/libfreerdp3-server b/srcpkgs/libfreerdp3-server new file mode 120000 index 00000000000000..d8e6da3ebcadf3 --- /dev/null +++ b/srcpkgs/libfreerdp3-server @@ -0,0 +1 @@ +freerdp3 \ No newline at end of file