diff --git a/net/freerdp3/Makefile b/net/freerdp3/Makefile index d3599268b225..b2f053d672dd 100644 --- a/net/freerdp3/Makefile +++ b/net/freerdp3/Makefile @@ -1,258 +1,261 @@ PORTNAME= freerdp -DISTVERSION= 3.21.0 +DISTVERSION= 3.22.0 CATEGORIES= net comms -MASTER_SITES+= https://pub.freerdp.com/releases/:freerdp \ +MASTER_SITES= https://pub.freerdp.com/releases/:freerdp \ https://github.com/FreeRDP/FreeRDP/releases/download/${DISTVERSION}/:freerdp PKGNAMESUFFIX= 3 -DISTFILES+= ${DISTNAME}${EXTRACT_SUFX}:freerdp +DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:freerdp + +PATCH_SITES= https://github.com/FreeRDP/FreeRDP/commit/ +PATCHFILES= df87645e4977a9d3943828fec5fc0ba54ed57222.patch:-p1 \ + 031597d172245198ff0ab7640d43eab1f1bc6863.patch:-p1 \ + c3c6e694e7ad3f461015c8bbef82d0ad5fe2770e.patch:-p1 \ + 1825fa82142ac12214217020151032f7c25fc7f5.patch:-p1 \ + 5c7aae27d0417b42b4806c2a5c583ca39dd9ef1e.patch:-p1 MAINTAINER= vvd@FreeBSD.org COMMENT= Free implementation of Remote Desktop Protocol WWW= https://www.freerdp.com/ LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE LIB_DEPENDS= libepoll-shim.so:devel/libepoll-shim USES= cmake compiler:c++11-lib cpe desktop-file-utils \ localbase:ldflags pathfix pkgconfig ssl xorg BROKEN_SSL= libressl-devel BROKEN_SSL_REASON_libressl-devel= fails to compile: no member named 'alert_dispatch' in 'struct ssl3_state_st' USE_GITHUB= nodefault GH_TUPLE= akallabeth:webview:2a0a130:webview/../.build/_deps/webview-src USE_LDCONFIG= yes USE_XORG= ice sm x11 xext CMAKE_ON= CHANNEL_RDP2TCP CHANNEL_SERIAL CHANNEL_URBDRC_CLIENT \ RDTK_FORCE_STATIC_BUILD UWAC_FORCE_STATIC_BUILD \ WITH_BINARY_VERSIONING WITH_CHANNELS WITH_CLIENT_SDL_VERSIONED \ WITH_FREERDP_DEPRECATED WITH_FREERDP_DEPRECATED_COMMANDLINE \ WITH_INSTALL_CLIENT_DESKTOP_FILES WITH_OPENSSL WITH_OSS \ WITH_WINPR_DEPRECATED WITH_ZLIB CMAKE_OFF= CHANNEL_TSMF WITH_DSP_EXPERIMENTAL WITH_FUSE WITH_GPROF \ WITH_GSTREAMER_0_10 WITH_GSTREAMER_1_0 WITH_IPP WITH_LIBSYSTEMD \ WITH_MBEDTLS WITH_OPENCL WITH_OPENSLES WITH_PROFILER WITH_SAMPLE \ WITH_SANITIZE_ADDRESS WITH_SANITIZE_MEMORY WITH_SANITIZE_THREAD \ WITH_SERVER WITH_SERVER_CHANNELS WITH_SERVER_INTERFACE \ WITH_SMARTCARD_INSPECT WITH_THIRD_PARTY WITH_VALGRIND_MEMCHECK -PLIST_SUB+= PATCHVERSION="${DISTVERSION}" -PLIST_SUB+= MAJORVERSION="${DISTVERSION:R:R}" +PLIST_SUB= PATCHVERSION="${DISTVERSION}" \ + MAJORVERSION="${DISTVERSION:R:R}" OPTIONS_DEFINE= ALSA BROKENFOCUS CUPS FAAC FAAD FDKAAC FFMPEG \ GSM ICU JPEG LAME MANPAGES OPENH264 OPUS PCSC \ PKCS11 PULSEAUDIO RDPECAM SDL2 SDL3 SOXR \ URIPARSER WAYLAND WEBVIEW X11 OPTIONS_DEFINE_aarch64= SIMD OPTIONS_DEFINE_amd64= SIMD OPTIONS_DEFINE_armv7= SIMD OPTIONS_DEFINE_i386= SIMD OPTIONS_DEFAULT= AAD CUPS FFMPEG GSSAPI_MIT ICU JSON_C \ KEYBOARD_LAYOUT MANPAGES RDPECAM SDL2 SDL3 \ SWSCALE TIMEZONE_FILE WAYLAND WEBVIEW X11 OPTIONS_DEFAULT_aarch64= SIMD OPTIONS_DEFAULT_amd64= SIMD OPTIONS_DEFAULT_armv7= SIMD OPTIONS_GROUP= CLIPBOARD_IMAGE REQUIRE_JSON OPTIONS_GROUP_CLIPBOARD_IMAGE= JPEG_CB PNG WEBP OPTIONS_GROUP_REQUIRE_JSON= AAD KEYBOARD_LAYOUT TIMEZONE_FILE OPTIONS_RADIO= GSSAPI JSON SCALE OPTIONS_RADIO_GSSAPI= GSSAPI_HEIMDAL GSSAPI_MIT OPTIONS_RADIO_JSON= CJSON JANSSON JSON_C OPTIONS_RADIO_SCALE= CAIRO SWSCALE OPTIONS_SUB= yes AAD_DESC= Compile with support for Azure AD authentication (require SDL and WEBVIEW) BROKENFOCUS_DESC= Work around focus bug in some WMs (PR \#254908) CAIRO_DESC= Use CAIRO image library for screen resizing CJSON_DESC= ${JSON_DESC} via cJSON CLIPBOARD_IMAGE_DESC= Add "to/from" BMP conversion support to clipboard (experimental) FDKAAC_DESC= Support for FDK-AAC for sound and microphone redirection JANSSON_DESC= ${JSON_DESC} via jansson JPEG_CB_DESC= ${JPEG_DESC} KEYBOARD_LAYOUT_DESC= Use keyboard definitions from JSON file OPENH264_DESC= H.264 video codec support via OpenH264 PCSC_DESC= Smart card support (smart card device redirection) PKCS11_DESC= Use security/pkcs11-helper RDPECAM_DESC= RDP webcam redirection (require FFMPEG and SWSCALE) REQUIRE_JSON_DESC= Options that require JSON SDL2_DESC= Build FreeRDP SDL 2 client SDL3_DESC= Build FreeRDP SDL 3 client SWSCALE_DESC= Use SWScale image library for screen resizing (recommended) TIMEZONE_FILE_DESC= Support timezones as JSON resources (if OFF, compiled in is used) URIPARSER_DESC= Use uriparser RFC 3986 URI parsing library to handle URIs WAYLAND_DESC= Build FreeRDP Wayland client WEBVIEW_DESC= Build with WebView support for AAD login popup browser X11_DESC= Build FreeRDP X11 client AAD_IMPLIES= SDL3 WEBVIEW AAD_CMAKE_BOOL= WITH_AAD ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_CMAKE_BOOL= WITH_ALSA BROKENFOCUS_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-focusbug.diff CAIRO_USES= gnome CAIRO_USE= gnome=cairo CAIRO_CMAKE_BOOL= WITH_CAIRO CJSON_LIB_DEPENDS= libcjson.so:devel/libcjson \ libcjson_utils.so:devel/libcjson CJSON_CMAKE_BOOL= WITH_CJSON_REQUIRED CUPS_LIB_DEPENDS= libcups.so:print/cups CUPS_CMAKE_BOOL= WITH_CUPS FAAC_LIB_DEPENDS= libfaac.so:audio/faac FAAC_CMAKE_BOOL= WITH_FAAC FAAD_LIB_DEPENDS= libfaad.so:audio/faad FAAD_CMAKE_BOOL= WITH_FAAD2 FDKAAC_LIB_DEPENDS= libfdk-aac.so:audio/fdk-aac FDKAAC_CMAKE_BOOL= WITH_FDK_AAC FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg \ libavutil.so:multimedia/ffmpeg FFMPEG_CMAKE_BOOL= WITH_FFMPEG WITH_DSP_FFMPEG GSM_LIB_DEPENDS= libgsm.so:audio/gsm GSM_CMAKE_BOOL= WITH_GSM GSSAPI_HEIMDAL_USES= gssapi:heimdal GSSAPI_MIT_USES= gssapi:mit ICU_LIB_DEPENDS= libicuuc.so:devel/icu ICU_CMAKE_ON= -DWITH_UNICODE_BUILTIN=OFF ICU_CMAKE_OFF= -DWITH_UNICODE_BUILTIN=ON JANSSON_LIB_DEPENDS= libjansson.so:devel/jansson JANSSON_CMAKE_BOOL= WITH_JANSSON_REQUIRED JPEG_USES= jpeg JPEG_CMAKE_BOOL= WITH_JPEG JPEG_CB_USES= jpeg JPEG_CB_CMAKE_BOOL= WINPR_UTILS_IMAGE_JPEG JSON_C_LIB_DEPENDS= libjson-c.so:devel/json-c JSON_C_CMAKE_BOOL= WITH_JSONC_REQUIRED KEYBOARD_LAYOUT_CMAKE_BOOL= WITH_KEYBOARD_LAYOUT_FROM_FILE LAME_LIB_DEPENDS= libmp3lame.so:audio/lame LAME_CMAKE_BOOL= WITH_LAME MANPAGES_CMAKE_BOOL= WITH_MANPAGES OPENH264_LIB_DEPENDS= libopenh264.so:multimedia/openh264 OPENH264_CMAKE_BOOL= WITH_OPENH264 OPUS_LIB_DEPENDS= libopus.so:audio/opus OPUS_CMAKE_BOOL= WITH_OPUS # LoadLibraryA("libpcsclite.so") PCSC_RUN_DEPENDS= ${LOCALBASE}/lib/libpcsclite.so:devel/pcsc-lite PCSC_CMAKE_BOOL= WITH_PCSC PKCS11_BUILD_DEPENDS= ${LOCALBASE}/include/pkcs11-helper-1.0/pkcs11.h:security/pkcs11-helper PKCS11_CMAKE_BOOL= WITH_PKCS11 PNG_LIB_DEPENDS= libpng.so:graphics/png PNG_CMAKE_BOOL= WINPR_UTILS_IMAGE_PNG PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_CMAKE_BOOL= WITH_PULSE RDPECAM_IMPLIES= FFMPEG SWSCALE RDPECAM_BUILD_DEPENDS= ${LOCALBASE}/include/linux/uvcvideo.h:multimedia/v4l_compat \ ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat RDPECAM_LIB_DEPENDS= libv4l2.so:multimedia/libv4l \ libv4lconvert.so:multimedia/libv4l RDPECAM_CMAKE_BOOL= CHANNEL_RDPECAM_CLIENT SDL2_LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader SDL2_USES= sdl SDL2_USE= sdl=sdl2,ttf2,image2 SDL2_CMAKE_BOOL= WITH_CLIENT_SDL2 WITH_SDL_IMAGE_DIALOGS SDL3_USES= sdl SDL3_USE= sdl=sdl3,ttf3,image3 SDL3_CMAKE_BOOL= WITH_CLIENT_SDL3 WITH_SDL_IMAGE_DIALOGS SIMD_CMAKE_BOOL= WITH_SIMD SOXR_LIB_DEPENDS= libsoxr.so:audio/libsoxr SOXR_CMAKE_BOOL= WITH_SOXR SWSCALE_LIB_DEPENDS= libswscale.so:multimedia/ffmpeg SWSCALE_CMAKE_BOOL= WITH_SWSCALE TIMEZONE_FILE_CMAKE_BOOL= WITH_TIMEZONE_FROM_FILE TIMEZONE_FILE_CMAKE_ON= -DWITH_TIMEZONE_COMPILED=OFF TIMEZONE_FILE_CMAKE_OFF= -DWITH_TIMEZONE_COMPILED=ON URIPARSER_LIB_DEPENDS= liburiparser.so:net/uriparser URIPARSER_CMAKE_BOOL= WITH_URIPARSER WAYLAND_CATEGORIES= wayland WAYLAND_BUILD_DEPENDS= ${LOCALBASE}/include/linux/input.h:devel/evdev-proto \ wayland-scanner:graphics/wayland WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland \ libwayland-cursor.so:graphics/wayland \ libxkbcommon.so:x11/libxkbcommon WAYLAND_RUN_DEPENDS= wayland-scanner:graphics/wayland WAYLAND_CMAKE_BOOL= WITH_WAYLAND WEBP_LIB_DEPENDS= libwebp.so:graphics/webp WEBP_CMAKE_BOOL= WINPR_UTILS_IMAGE_WEBP WEBVIEW_LIB_DEPENDS= libsoup-3.0.so:devel/libsoup3 \ libharfbuzz.so:print/harfbuzz \ libwebkitgtk-6.0.so:www/webkit2-gtk@60 \ libgraphene-1.0.so:graphics/graphene WEBVIEW_USES= gnome WEBVIEW_USE= gnome=cairo,gdkpixbuf,glib20,gtk40,pango WEBVIEW_CMAKE_BOOL= WITH_WEBVIEW X11_USE= xorg=xcursor,xfixes,xi,xinerama,xkbfile,xorgproto,xrandr,xrender,xv X11_CMAKE_ON= -DWITH_X11:BOOL=ON -DWITH_XCURSOR:BOOL=ON \ -DWITH_XEXT:BOOL=ON -DWITH_XFIXES:BOOL=ON \ -DWITH_XI:BOOL=ON -DWITH_XINERAMA:BOOL=ON \ -DWITH_XKBFILE:BOOL=ON -DWITH_XRANDR:BOOL=ON \ -DWITH_XRENDER:BOOL=ON -DWITH_XSHM:BOOL=ON \ -DWITH_XV:BOOL=ON X11_CMAKE_OFF= -DWITH_X11:BOOL=OFF -DWITH_XKBFILE:BOOL=OFF .include .if ${PORT_OPTIONS:MGSSAPI_HEIMDAL} || ${PORT_OPTIONS:MGSSAPI_MIT} CMAKE_ON+= WITH_KRB5 .else CMAKE_OFF+= WITH_KRB5 .endif .if ${PORT_OPTIONS:MCJSON} || ${PORT_OPTIONS:MJANSSON} || ${PORT_OPTIONS:MJSON_C} CMAKE_ON+= WITH_WINPR_JSON CMAKE_OFF+= WITH_JSON_DISABLED PLIST_SUB+= JSON="" .else CMAKE_ON+= WITH_JSON_DISABLED CMAKE_OFF+= WITH_AAD WITH_WINPR_JSON PLIST_SUB+= JSON="@comment " .endif post-patch: @${REINPLACE_CMD} -e 's|gsm/gsm.h|gsm.h|' \ ${WRKSRC}/cmake/FindGSM.cmake \ ${WRKSRC}/libfreerdp/codec/dsp.c -pre-configure: - ${CP} ${FILESDIR}/mntent.h ${WRKSRC}/winpr/include - ${CP} ${FILESDIR}/mntent_compat.c ${WRKSRC}/channels/rdpdr/client - .include diff --git a/net/freerdp3/distinfo b/net/freerdp3/distinfo index 3f38c668846b..9c42258d7ff2 100644 --- a/net/freerdp3/distinfo +++ b/net/freerdp3/distinfo @@ -1,5 +1,15 @@ -TIMESTAMP = 1768888888 -SHA256 (freerdp-3.21.0.tar.gz) = ec1409ce88020eeebc54e20cc0766cbe7d2e2f4bd382c7061c86f89231a9f44d -SIZE (freerdp-3.21.0.tar.gz) = 11379178 +TIMESTAMP = 1770500000 +SHA256 (freerdp-3.22.0.tar.gz) = 656670f3aac2c995cb4b1ba181549cc122cc9c95ec31be68a582c1182f474376 +SIZE (freerdp-3.22.0.tar.gz) = 11387311 SHA256 (akallabeth-webview-2a0a130_GH0.tar.gz) = 22448da4658b73cc20e6944d9a351ab6c40d1a50026997f8278f63713f5f7c07 SIZE (akallabeth-webview-2a0a130_GH0.tar.gz) = 185888 +SHA256 (df87645e4977a9d3943828fec5fc0ba54ed57222.patch) = 287f05dabc29a9eeb64877d44b008a68c99b8d8cd41418b32473542cd458714f +SIZE (df87645e4977a9d3943828fec5fc0ba54ed57222.patch) = 33425 +SHA256 (031597d172245198ff0ab7640d43eab1f1bc6863.patch) = e657976512122245da32ae567ab0e34fd28fced1dea106ef27fd0fb741f2f301 +SIZE (031597d172245198ff0ab7640d43eab1f1bc6863.patch) = 984 +SHA256 (c3c6e694e7ad3f461015c8bbef82d0ad5fe2770e.patch) = 225f4d6874c8230552ccc27ee914c3c913ab0b71e6e7288ad38574370a76b6b0 +SIZE (c3c6e694e7ad3f461015c8bbef82d0ad5fe2770e.patch) = 6175 +SHA256 (1825fa82142ac12214217020151032f7c25fc7f5.patch) = 230a9af2ca42667f96e13bdcfc5abd9da15e5aabdc2f711c5c1ee7fbf65549d5 +SIZE (1825fa82142ac12214217020151032f7c25fc7f5.patch) = 5023 +SHA256 (5c7aae27d0417b42b4806c2a5c583ca39dd9ef1e.patch) = 67e030f2e81885c11710d3a4e3bdf7d2d9b3487a812e3ff3431f06f9894d33c4 +SIZE (5c7aae27d0417b42b4806c2a5c583ca39dd9ef1e.patch) = 4396 diff --git a/net/freerdp3/files/mntent.h b/net/freerdp3/files/mntent.h deleted file mode 100644 index e61cddd89c82..000000000000 --- a/net/freerdp3/files/mntent.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * mntent - * mntent.h - compatability header for FreeBSD - * - * Copyright (c) 2001 David Rufino - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(HAVE_MNTENT_H) -#include -#else -#ifndef _MNTENT_H -#define _MNTENT_H -#include - -#define MOUNTED "dummy" - -#define MNTTYPE_NFS "nfs" - -struct mntent { - char *mnt_fsname; - char *mnt_dir; - char *mnt_type; - char *mnt_opts; - int mnt_freq; - int mnt_passno; -}; - -#define setmntent(x,y) ((FILE *)0x1) -#ifdef __cplusplus -extern "C" { -#endif -struct mntent *getmntent __P ((FILE *fp)); -char *hasmntopt __P ((const struct mntent *mnt, const char *option)); -#ifdef __cplusplus -}; // extern "C" -#endif -#define endmntent(x) ((int)1) - -#endif /* _MNTENT_H */ -#endif /* HAVE_MNTENT_H */ diff --git a/net/freerdp3/files/mntent_compat.c b/net/freerdp3/files/mntent_compat.c deleted file mode 100644 index 2c1eec3c3977..000000000000 --- a/net/freerdp3/files/mntent_compat.c +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Copyright (c) 1980, 1989, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * Copyright (c) 2001 - * David Rufino - * Copyright (c) 2006 - * Stanislav Sedov - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* most of this was ripped from the mount(3) source */ - -#include "mntent.h" -#include -#include -#include -#include -#include - -static int pos = -1; -static int mntsize = -1; -static struct mntent _mntent; - -struct { - int m_flag; - const char *m_option; -} mntoptions[] = { - { MNT_ASYNC, "async" }, - { MNT_NOATIME, "noatime"}, - { MNT_NOEXEC, "noexec"}, - { MNT_NOSUID, "nosuid"}, - { MNT_NOSYMFOLLOW, "nosymfollow"}, - { MNT_SYNCHRONOUS, "sync"}, - { MNT_UNION, "union"}, - { MNT_NOCLUSTERR, "noclusterr"}, - { MNT_NOCLUSTERW, "noclusterw"}, - { MNT_SUIDDIR, "suiddir"}, -#ifdef MNT_SNAPSHOT - { MNT_SNAPSHOT, "snapshot"}, -#endif -#ifdef MNT_MULTILABEL - { MNT_MULTILABEL, "multilabel"}, -#endif -#ifdef MNT_ACLS - { MNT_ACLS, "acls"}, -#endif -#ifdef MNT_NODEV - { MNT_NODEV, "nodev"}, -#endif -}; - -#define N_OPTS (sizeof(mntoptions) / sizeof(*mntoptions)) - -char * -hasmntopt (const struct mntent *mnt, const char *option) -{ - int found; - char *opt, *optbuf; - - optbuf = strdup(mnt->mnt_opts); - found = 0; - for (opt = optbuf; (opt = strtok(opt, " ")) != NULL; opt = NULL) { - if (!strcasecmp(opt, option)) { - opt = opt - optbuf + mnt->mnt_opts; - free (optbuf); - return (opt); - } - } - free (optbuf); - return (NULL); -} - -static char * -catopt (char *s0, const char *s1) -{ - size_t newlen; - char *cp; - - if (s1 == NULL || *s1 == '\0') - return s0; - - if (s0 != NULL) { - newlen = strlen(s0) + strlen(s1) + 1 + 1; - if ((cp = (char *)realloc(s0, newlen)) == NULL) - return (NULL); - - (void)strcat(cp, " "); - (void)strcat(cp, s1); - } else - cp = strdup(s1); - - return (cp); -} - - -static char * -flags2opts (int flags) -{ - char *res = NULL; - int i; - - res = catopt(res, (flags & MNT_RDONLY) ? "ro" : "rw"); - - for (i = 0; i < N_OPTS; i++) - if (flags & mntoptions[i].m_flag) - res = catopt(res, mntoptions[i].m_option); - return res; -} - -static struct mntent * -statfs_to_mntent (struct statfs *mntbuf) -{ - static char opts_buf[40], *tmp; - - _mntent.mnt_fsname = mntbuf->f_mntfromname; - _mntent.mnt_dir = mntbuf->f_mntonname; - _mntent.mnt_type = mntbuf->f_fstypename; - tmp = flags2opts (mntbuf->f_flags); - if (tmp) { - opts_buf[sizeof(opts_buf) - 1] = '\0'; - strncpy (opts_buf, tmp, sizeof(opts_buf)-1); - free (tmp); - } else { - *opts_buf = '\0'; - } - _mntent.mnt_opts = opts_buf; - _mntent.mnt_freq = _mntent.mnt_passno = 0; - return (&_mntent); -} - -struct mntent * -getmntent (FILE *fp) -{ - struct statfs *mntbuf; - - if (pos == -1 || mntsize == -1) - mntsize = getmntinfo (&mntbuf, MNT_NOWAIT); - - ++pos; - if (pos == mntsize) { - pos = mntsize = -1; - return (NULL); - } - - return (statfs_to_mntent (&mntbuf[pos])); -} diff --git a/net/freerdp3/files/patch-channels_rdpdr_client_CMakeLists.txt b/net/freerdp3/files/patch-channels_rdpdr_client_CMakeLists.txt deleted file mode 100644 index 8ed389eb1d8c..000000000000 --- a/net/freerdp3/files/patch-channels_rdpdr_client_CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ ---- channels/rdpdr/client/CMakeLists.txt.orig 2024-12-13 18:46:44 UTC -+++ channels/rdpdr/client/CMakeLists.txt -@@ -30,6 +30,7 @@ set(${MODULE_PREFIX}_SRCS - irp.h - devman.c - devman.h -+ mntent_compat.c - rdpdr_main.c - rdpdr_main.h - rdpdr_capabilities.c