diff --git a/net/freerdp/Makefile b/net/freerdp/Makefile index 44842d48f360..086dba47649b 100644 --- a/net/freerdp/Makefile +++ b/net/freerdp/Makefile @@ -1,97 +1,105 @@ # Created by: Alexander Logvinov # $FreeBSD$ PORTNAME= freerdp DISTVERSION= 2.0.0-rc0 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= net comms ipv6 MAINTAINER= kevans@FreeBSD.org COMMENT= Free implementation of Remote Desktop Protocol LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE USE_GITHUB= yes GH_ACCOUNT= FreeRDP GH_PROJECT= ${GH_ACCOUNT} USES= alias cmake:outsource compiler:c++11-lib cpe gettext localbase pathfix pkgconfig ssl USE_LDCONFIG= yes CPE_VENDOR= freerdp_project -CMAKE_ARGS+= -DWITH_LIBSYSTEMD=OFF -DWITH_WAYLAND=OFF -DWITH_GSTREAMER_0_10=OFF ${CMAKE_ARGS_${ARCH}} +CMAKE_ARGS+= -DWITH_LIBSYSTEMD=OFF -DWITH_GSTREAMER_0_10=OFF ${CMAKE_ARGS_${ARCH}} CMAKE_ARGS_aarch64= -DWITH_NEON=ON CFLAGS_aarch64= -D__ARM_NEON__=__ARM_NEON # clang -OPTIONS_DEFINE= ALSA CUPS FFMPEG GSTREAMER PULSEAUDIO X11 -OPTIONS_DEFAULT= CUPS GSTREAMER X11 +OPTIONS_DEFINE= ALSA CUPS FFMPEG GSTREAMER PULSEAUDIO WAYLAND X11 +OPTIONS_DEFAULT= CUPS GSTREAMER WAYLAND X11 OPTIONS_SUB= yes OPTIONS_DEFINE_armv6= NEON OPTIONS_DEFINE_armv7= NEON OPTIONS_DEFINE_amd64= SSE OPTIONS_DEFINE_i386= SSE OPTIONS_DEFAULT_amd64= SSE ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_CMAKE_BOOL= WITH_ALSA CUPS_LIB_DEPENDS= libcups.so:print/cups CUPS_CMAKE_BOOL= WITH_CUPS FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg \ libavutil.so:multimedia/ffmpeg FFMPEG_CMAKE_BOOL= WITH_FFMPEG GSTREAMER_CMAKE_BOOL= WITH_GSTREAMER_1_0 -GSTREAMER_USE= gnome=glib20 gstreamer1=yes xorg=x11,xextproto,xext,xrandr +GSTREAMER_USE= gnome=glib20 gstreamer1=yes xorg=x11,xext,xextproto,xrandr GSTREAMER_LIB_DEPENDS= libgstbase-1.0.so:multimedia/gstreamer1 NEON_DESC= Enable Media Processing Engine instructions NEON_CMAKE_BOOL= WITH_NEON .if ! ${CFLAGS:M-march*} NEON_CFLAGS= -march=armv7-a .endif PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_CMAKE_BOOL= WITH_PULSE SSE_CMAKE_BOOL= WITH_SSE2 +WAYLAND_DESC= Build FreeRDP Wayland client +WAYLAND_BUILD_DEPENDS= ${LOCALBASE}/include/linux/input.h:multimedia/v4l_compat +WAYLAND_LIB_DEPENDS= libepoll-shim.so:devel/libepoll-shim \ + libwayland-client.so:graphics/wayland \ + libwayland-cursor.so:graphics/wayland \ + libxkbcommon.so:x11/libxkbcommon +WAYLAND_CMAKE_BOOL= WITH_WAYLAND + X11_DESC= Build FreeRDP X11 client X11_BUILD_DEPENDS= xmlto:textproc/xmlto X11_CMAKE_BOOL= WITH_X11 X11_CMAKE_OFF= -DWITH_XKBFILE=OFF -X11_USE= xorg=x11,xkbfile,xcursor,xextproto,xv,xinerama,xext,xrandr,xi,xfixes,xrender +X11_USE= xorg=x11,xcursor,xext,xextproto,xfixes,xi,xinerama,xkbfile,xrandr,xrender,xv .include .if ${OPSYS} == "FreeBSD" && ${ARCH} == "armv6" .if ${OSVERSION} < 1100500 || \ (${OSVERSION} >= 1100500 && ${OSVERSION} < 1100504) || \ (${OSVERSION} >= 1200000 && ${OSVERSION} < 1200008) BROKEN= Fails to build on ARMv6 (libm bug). See: r305380 (HEAD), r305971 (stable/11) [\#199422, \#211965] \ Please update to a later (fixed) version. .endif .endif post-patch: @${REINPLACE_CMD} -e '/CMAKE_INSTALL_RPATH /d' \ ${WRKSRC}/CMakeLists.txt @${REINPLACE_CMD} -e 's/OPENBSD/BSD/' \ ${WRKSRC}/winpr/CMakeLists.txt \ ${WRKSRC}/client/X11/CMakeLists.txt @${REINPLACE_CMD} -e 's/NetBSD__)/NetBSD__) || defined(__FreeBSD__)/' \ ${WRKSRC}/winpr/libwinpr/utils/trio/triodef.h @${RM} ${WRKSRC}/cmake/FindOpenSSL.cmake @${REINPLACE_CMD} -e 's|$${CMAKE_INSTALL_LIBDIR}/cmake|$${CMAKE_INSTALL_PREFIX}/share/cmake/Modules|' \ ${WRKSRC}/client/CMakeLists.txt \ ${WRKSRC}/winpr/CMakeLists.txt \ ${WRKSRC}/uwac/CMakeLists.txt \ ${WRKSRC}/server/CMakeLists.txt \ ${WRKSRC}/server/shadow/CMakeLists.txt \ ${WRKSRC}/libfreerdp/CMakeLists.txt .include diff --git a/net/freerdp/files/patch-uwac_libuwac_CMakeLists.txt b/net/freerdp/files/patch-uwac_libuwac_CMakeLists.txt new file mode 100644 index 000000000000..fa5e346d84e0 --- /dev/null +++ b/net/freerdp/files/patch-uwac_libuwac_CMakeLists.txt @@ -0,0 +1,21 @@ +--- uwac/libuwac/CMakeLists.txt.orig 2017-11-27 16:59:34 UTC ++++ uwac/libuwac/CMakeLists.txt +@@ -40,6 +40,9 @@ generate_protocol_file(xdg-shell) + generate_protocol_file(ivi-application) + generate_protocol_file(fullscreen-shell) + ++find_path(EPOLLSHIM_INCLUDE_DIR NAMES sys/epoll.h sys/timerfd.h HINTS /usr/local/include/libepoll-shim) ++find_library(EPOLLSHIM_LIBS NAMES epoll-shim libepoll-shim HINTS /usr/local/lib) ++include_directories(${EPOLLSHIM_INCLUDE_DIR}) + include_directories(${WAYLAND_INCLUDE_DIR}) + include_directories(${XKBCOMMON_INCLUDE_DIR}) + include_directories("${CMAKE_SOURCE_DIR}/uwac/include") +@@ -69,7 +72,7 @@ if (WITH_LIBRARY_VERSIONING) + set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${UWAC_VERSION} SOVERSION ${UWAC_API_VERSION}) + endif() + +-target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS} ${PRIVATE_KEYWORD} ${WAYLAND_LIBS} ${XKBCOMMON_LIBS} freerdp) ++target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS} ${PRIVATE_KEYWORD} ${WAYLAND_LIBS} ${XKBCOMMON_LIBS} ${EPOLLSHIM_LIBS} freerdp) + + install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT uwac) + diff --git a/net/freerdp/files/patch-uwac_libuwac_uwac-os.c b/net/freerdp/files/patch-uwac_libuwac_uwac-os.c new file mode 100644 index 000000000000..541d6e07aeb4 --- /dev/null +++ b/net/freerdp/files/patch-uwac_libuwac_uwac-os.c @@ -0,0 +1,29 @@ +--- uwac/libuwac/uwac-os.c.orig 2017-11-27 16:54:50 UTC ++++ uwac/libuwac/uwac-os.c +@@ -31,6 +31,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -153,17 +154,7 @@ static int create_tmpfile_cloexec(char *tmpname) + { + int fd; + +-#ifdef HAVE_MKOSTEMP +- fd = mkostemp(tmpname, O_CLOEXEC); +- if (fd >= 0) +- unlink(tmpname); +-#else +- fd = mkstemp(tmpname); +- if (fd >= 0) { +- fd = set_cloexec_or_close(fd); +- unlink(tmpname); +- } +-#endif ++ fd = shm_open(SHM_ANON, O_CREAT | O_RDWR, 0600); + + return fd; + } diff --git a/net/freerdp/pkg-plist b/net/freerdp/pkg-plist index c98718c810a3..b08d4d8baf7f 100644 --- a/net/freerdp/pkg-plist +++ b/net/freerdp/pkg-plist @@ -1,224 +1,236 @@ bin/winpr-hash bin/winpr-makecert +%%WAYLAND%%bin/wlfreerdp %%X11%%bin/xfreerdp include/freerdp2/freerdp/addin.h include/freerdp2/freerdp/altsec.h include/freerdp2/freerdp/api.h include/freerdp2/freerdp/assistance.h include/freerdp2/freerdp/autodetect.h include/freerdp2/freerdp/build-config.h include/freerdp2/freerdp/cache/bitmap.h include/freerdp2/freerdp/cache/brush.h include/freerdp2/freerdp/cache/cache.h include/freerdp2/freerdp/cache/glyph.h include/freerdp2/freerdp/cache/nine_grid.h include/freerdp2/freerdp/cache/offscreen.h include/freerdp2/freerdp/cache/palette.h include/freerdp2/freerdp/cache/pointer.h include/freerdp2/freerdp/channels/audin.h include/freerdp2/freerdp/channels/channels.h include/freerdp2/freerdp/channels/cliprdr.h include/freerdp2/freerdp/channels/encomsp.h include/freerdp2/freerdp/channels/log.h include/freerdp2/freerdp/channels/rail.h include/freerdp2/freerdp/channels/rdpdr.h include/freerdp2/freerdp/channels/rdpei.h include/freerdp2/freerdp/channels/rdpgfx.h include/freerdp2/freerdp/channels/rdpsnd.h include/freerdp2/freerdp/channels/remdesk.h include/freerdp2/freerdp/channels/tsmf.h include/freerdp2/freerdp/channels/wtsvc.h include/freerdp2/freerdp/client.h include/freerdp2/freerdp/client/audin.h include/freerdp2/freerdp/client/channels.h include/freerdp2/freerdp/client/cliprdr.h include/freerdp2/freerdp/client/cmdline.h include/freerdp2/freerdp/client/disp.h include/freerdp2/freerdp/client/drdynvc.h include/freerdp2/freerdp/client/encomsp.h include/freerdp2/freerdp/client/file.h include/freerdp2/freerdp/client/rail.h include/freerdp2/freerdp/client/rdpei.h include/freerdp2/freerdp/client/rdpgfx.h include/freerdp2/freerdp/client/rdpsnd.h include/freerdp2/freerdp/client/remdesk.h include/freerdp2/freerdp/client/tsmf.h include/freerdp2/freerdp/codec/audio.h include/freerdp2/freerdp/codec/bitmap.h include/freerdp2/freerdp/codec/bulk.h include/freerdp2/freerdp/codec/clear.h include/freerdp2/freerdp/codec/color.h include/freerdp2/freerdp/codec/dsp.h include/freerdp2/freerdp/codec/h264.h include/freerdp2/freerdp/codec/interleaved.h include/freerdp2/freerdp/codec/jpeg.h include/freerdp2/freerdp/codec/mppc.h include/freerdp2/freerdp/codec/ncrush.h include/freerdp2/freerdp/codec/nsc.h include/freerdp2/freerdp/codec/planar.h include/freerdp2/freerdp/codec/progressive.h include/freerdp2/freerdp/codec/region.h include/freerdp2/freerdp/codec/rfx.h include/freerdp2/freerdp/codec/xcrush.h include/freerdp2/freerdp/codec/zgfx.h include/freerdp2/freerdp/codecs.h include/freerdp2/freerdp/constants.h include/freerdp2/freerdp/crypto/ber.h include/freerdp2/freerdp/crypto/certificate.h include/freerdp2/freerdp/crypto/crypto.h include/freerdp2/freerdp/crypto/der.h include/freerdp2/freerdp/crypto/er.h include/freerdp2/freerdp/crypto/per.h include/freerdp2/freerdp/crypto/tls.h include/freerdp2/freerdp/dvc.h include/freerdp2/freerdp/error.h include/freerdp2/freerdp/event.h include/freerdp2/freerdp/extension.h include/freerdp2/freerdp/freerdp.h include/freerdp2/freerdp/gdi/bitmap.h include/freerdp2/freerdp/gdi/dc.h include/freerdp2/freerdp/gdi/gdi.h include/freerdp2/freerdp/gdi/gfx.h include/freerdp2/freerdp/gdi/pen.h include/freerdp2/freerdp/gdi/region.h include/freerdp2/freerdp/gdi/shape.h include/freerdp2/freerdp/graphics.h include/freerdp2/freerdp/input.h include/freerdp2/freerdp/listener.h include/freerdp2/freerdp/locale/keyboard.h include/freerdp2/freerdp/locale/locale.h include/freerdp2/freerdp/log.h include/freerdp2/freerdp/message.h include/freerdp2/freerdp/metrics.h include/freerdp2/freerdp/peer.h include/freerdp2/freerdp/pointer.h include/freerdp2/freerdp/primary.h include/freerdp2/freerdp/primitives.h include/freerdp2/freerdp/rail.h include/freerdp2/freerdp/scancode.h include/freerdp2/freerdp/secondary.h include/freerdp2/freerdp/server/audin.h include/freerdp2/freerdp/server/channels.h include/freerdp2/freerdp/server/cliprdr.h include/freerdp2/freerdp/server/drdynvc.h include/freerdp2/freerdp/server/echo.h include/freerdp2/freerdp/server/encomsp.h include/freerdp2/freerdp/server/rdpdr.h include/freerdp2/freerdp/server/rdpei.h include/freerdp2/freerdp/server/rdpgfx.h include/freerdp2/freerdp/server/rdpsnd.h include/freerdp2/freerdp/server/remdesk.h include/freerdp2/freerdp/server/shadow.h include/freerdp2/freerdp/session.h include/freerdp2/freerdp/settings.h include/freerdp2/freerdp/svc.h include/freerdp2/freerdp/types.h include/freerdp2/freerdp/update.h include/freerdp2/freerdp/utils/msusb.h include/freerdp2/freerdp/utils/passphrase.h include/freerdp2/freerdp/utils/pcap.h include/freerdp2/freerdp/utils/profiler.h include/freerdp2/freerdp/utils/ringbuffer.h include/freerdp2/freerdp/utils/signal.h include/freerdp2/freerdp/utils/stopwatch.h include/freerdp2/freerdp/version.h include/freerdp2/freerdp/window.h +%%WAYLAND%%include/uwac0/uwac/uwac-tools.h +%%WAYLAND%%include/uwac0/uwac/uwac.h include/winpr2/winpr/asn1.h include/winpr2/winpr/bcrypt.h include/winpr2/winpr/bitstream.h include/winpr2/winpr/clipboard.h include/winpr2/winpr/cmdline.h include/winpr2/winpr/collections.h include/winpr2/winpr/comm.h include/winpr2/winpr/credentials.h include/winpr2/winpr/credui.h include/winpr2/winpr/crt.h include/winpr2/winpr/crypto.h include/winpr2/winpr/debug.h include/winpr2/winpr/dsparse.h include/winpr2/winpr/endian.h include/winpr2/winpr/environment.h include/winpr2/winpr/error.h include/winpr2/winpr/file.h include/winpr2/winpr/handle.h include/winpr2/winpr/heap.h include/winpr2/winpr/image.h include/winpr2/winpr/ini.h include/winpr2/winpr/input.h include/winpr2/winpr/interlocked.h include/winpr2/winpr/intrin.h include/winpr2/winpr/io.h include/winpr2/winpr/library.h include/winpr2/winpr/locale.h include/winpr2/winpr/memory.h include/winpr2/winpr/midl.h include/winpr2/winpr/ndr.h include/winpr2/winpr/nt.h include/winpr2/winpr/ntlm.h include/winpr2/winpr/pack.h include/winpr2/winpr/path.h include/winpr2/winpr/pipe.h include/winpr2/winpr/platform.h include/winpr2/winpr/pool.h include/winpr2/winpr/print.h include/winpr2/winpr/registry.h include/winpr2/winpr/rpc.h include/winpr2/winpr/sam.h include/winpr2/winpr/schannel.h include/winpr2/winpr/security.h include/winpr2/winpr/shell.h include/winpr2/winpr/smartcard.h include/winpr2/winpr/spec.h include/winpr2/winpr/ssl.h include/winpr2/winpr/sspi.h include/winpr2/winpr/sspicli.h include/winpr2/winpr/stream.h include/winpr2/winpr/string.h include/winpr2/winpr/synch.h include/winpr2/winpr/sysinfo.h include/winpr2/winpr/tchar.h include/winpr2/winpr/thread.h include/winpr2/winpr/timezone.h include/winpr2/winpr/tools/makecert.h include/winpr2/winpr/user.h include/winpr2/winpr/version.h include/winpr2/winpr/windows.h include/winpr2/winpr/winhttp.h include/winpr2/winpr/winpr.h include/winpr2/winpr/winsock.h include/winpr2/winpr/wlog.h include/winpr2/winpr/wnd.h include/winpr2/winpr/wtsapi.h include/winpr2/winpr/wtypes.h lib/libfreerdp-client2.so lib/libfreerdp-client2.so.2 lib/libfreerdp-client2.so.2.0.0 lib/libfreerdp2.so lib/libfreerdp2.so.2 lib/libfreerdp2.so.2.0.0 +%%WAYLAND%%lib/libuwac0.so +%%WAYLAND%%lib/libuwac0.so.0 +%%WAYLAND%%lib/libuwac0.so.0.0.1 lib/libwinpr-tools2.so lib/libwinpr-tools2.so.2 lib/libwinpr-tools2.so.2.0.0 lib/libwinpr2.so lib/libwinpr2.so.2 lib/libwinpr2.so.2.0.0 libdata/pkgconfig/freerdp-client2.pc libdata/pkgconfig/freerdp2.pc +%%WAYLAND%%libdata/pkgconfig/uwac0.pc libdata/pkgconfig/winpr-tools2.pc libdata/pkgconfig/winpr2.pc share/cmake/Modules/FreeRDP-Client2/FreeRDP-ClientConfig.cmake share/cmake/Modules/FreeRDP-Client2/FreeRDP-ClientConfigVersion.cmake share/cmake/Modules/FreeRDP-Client2/FreeRDP-ClientTargets-%%CMAKE_BUILD_TYPE%%.cmake share/cmake/Modules/FreeRDP-Client2/FreeRDP-ClientTargets.cmake share/cmake/Modules/FreeRDP2/FreeRDPConfig.cmake share/cmake/Modules/FreeRDP2/FreeRDPConfigVersion.cmake share/cmake/Modules/FreeRDP2/FreeRDPTargets-%%CMAKE_BUILD_TYPE%%.cmake share/cmake/Modules/FreeRDP2/FreeRDPTargets.cmake +%%WAYLAND%%share/cmake/Modules/uwac0/uwac-%%CMAKE_BUILD_TYPE%%.cmake +%%WAYLAND%%share/cmake/Modules/uwac0/uwac.cmake +%%WAYLAND%%share/cmake/Modules/uwac0/uwacConfig.cmake +%%WAYLAND%%share/cmake/Modules/uwac0/uwacConfigVersion.cmake share/cmake/Modules/WinPR2/WinPRConfig.cmake share/cmake/Modules/WinPR2/WinPRConfigVersion.cmake share/cmake/Modules/WinPR2/WinPRTargets-%%CMAKE_BUILD_TYPE%%.cmake share/cmake/Modules/WinPR2/WinPRTargets.cmake share/man/man1/winpr-hash.1 share/man/man1/winpr-makecert.1 +%%WAYLAND%%share/man/man1/wlfreerdp.1 %%X11%%share/man/man1/xfreerdp.1 share/man/man7/wlog.7