286 lines
9.6 KiB
Makefile
286 lines
9.6 KiB
Makefile
PORTNAME= freerdp
|
|
DISTVERSION= 3.32.1
|
|
CATEGORIES= net comms
|
|
MASTER_SITES= https://pub.freerdp.com/releases/:freerdp \
|
|
https://github.com/FreeRDP/FreeRDP/releases/download/${DISTVERSION}/:freerdp
|
|
PKGNAMESUFFIX= 3
|
|
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:freerdp
|
|
|
|
PATCH_SITES= https://github.com/FreeRDP/FreeRDP/commit/
|
|
PATCHFILES= e3596595b86ea27c38de4ecf47045f989cea039a.patch:-p1 \
|
|
6682e9ca667271b8ba148a301b4a2f9ac78be2b9.patch:-p1 \
|
|
d15a71e0a2ef264093514934553586c12192dbda.patch:-p1 \
|
|
e47f3880177b8680ab76bf75aba0732ae1fa5ccd.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_AAUDIO 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}" \
|
|
MAJORVERSION="${DISTVERSION:R:R}"
|
|
|
|
OPTIONS_DEFINE= ALSA AOM BROKENFOCUS CUPS DAV1D FAAC FAAD \
|
|
FDKAAC FFMPEG FFMPEG_HWACCEL GSM ICU JPEG LAME \
|
|
MANPAGES OPENH264 OPUS PCSC PKCS11 PULSEAUDIO \
|
|
RDPECAM SDL2 SDL3 SNDIO SOXR URIPARSER WAYLAND \
|
|
WEBVIEW X11 YUV
|
|
OPTIONS_DEFINE_aarch64= SIMD
|
|
OPTIONS_DEFINE_amd64= SIMD
|
|
OPTIONS_DEFINE_armv7= SIMD
|
|
OPTIONS_DEFINE_i386= SIMD
|
|
OPTIONS_DEFAULT= AAD AOM CUPS FFMPEG FFMPEG_HWACCEL DAV1D \
|
|
GSSAPI_MIT ICU JPEG JPEG_CB JSON_C \
|
|
KEYBOARD_LAYOUT MANPAGES PNG RDPECAM SDL2 SDL3 \
|
|
SNDIO SWSCALE TIMEZONE_FILE WAYLAND WEBP \
|
|
WEBVIEW X11 YUV
|
|
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
|
|
OPTIONS_RADIO_GSSAPI= GSSAPI_HEIMDAL GSSAPI_MIT
|
|
OPTIONS_RADIO_JSON= CJSON JANSSON JSON_C
|
|
OPTIONS_SINGLE= SCALE
|
|
OPTIONS_SINGLE_SCALE= CAIRO SWSCALE
|
|
OPTIONS_SUB= yes
|
|
|
|
AAD_DESC= Compile with support for Azure AD authentication (require SDL and WEBVIEW)
|
|
AOM_DESC= Enable AV1 support for GFX channel encoding/decoding via AOM (experimental)
|
|
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
|
|
DAV1D_DESC= Use dav1d for decode AV1 (require AOM for encode, experimental)
|
|
FDKAAC_DESC= Support for FDK-AAC for sound and microphone redirection
|
|
FFMPEG_HWACCEL_DESC= Use FFMPEG hardware acceleration (experimental, require FFMPEG)
|
|
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 + CAIRO or 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
|
|
YUV_DESC= Use graphics/libyuv
|
|
|
|
AAD_IMPLIES= SDL3 WEBVIEW
|
|
AAD_CMAKE_BOOL= WITH_AAD
|
|
|
|
ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
|
|
ALSA_CMAKE_BOOL= WITH_ALSA
|
|
|
|
AOM_LIB_DEPENDS= libaom.so:multimedia/aom
|
|
AOM_CMAKE_BOOL= WITH_AOM WITH_GFX_AV1
|
|
|
|
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
|
|
|
|
DAV1D_IMPLIES= AOM
|
|
DAV1D_LIB_DEPENDS= libdav1d.so:multimedia/dav1d
|
|
DAV1D_CMAKE_BOOL= WITH_DAV1D
|
|
|
|
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 WITH_VIDEO_FFMPEG
|
|
|
|
FFMPEG_HWACCEL_IMPLIES= FFMPEG
|
|
FFMPEG_HWACCEL_CMAKE_BOOL= WITH_FFMPEG_HWACCEL
|
|
|
|
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
|
|
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
|
|
|
|
SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio
|
|
SNDIO_CMAKE_BOOL= WITH_SNDIO
|
|
|
|
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
|
|
|
|
YUV_LIB_DEPENDS= libyuv.so:graphics/libyuv
|
|
YUV_CMAKE_BOOL= WITH_YUV
|
|
|
|
.include <bsd.port.options.mk>
|
|
|
|
.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-GSM-on:
|
|
@${REINPLACE_CMD} -e 's|gsm/gsm.h|gsm.h|' \
|
|
${WRKSRC}/cmake/FindGSM.cmake \
|
|
${WRKSRC}/libfreerdp/codec/dsp.c
|
|
|
|
.include <bsd.port.mk>
|