diff --git c/net/freerdp/Makefile i/net/freerdp/Makefile index e30e7585170a..2764eab290b0 100644 --- c/net/freerdp/Makefile +++ i/net/freerdp/Makefile @@ -20,13 +20,13 @@ USES= alias cmake:outsource compiler:c++11-lib cpe gettext localbase pathfix pk 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 X11 WAYLAND +OPTIONS_DEFAULT= CUPS GSTREAMER X11 WAYLAND OPTIONS_SUB= yes OPTIONS_DEFINE_armv6= NEON @@ -65,6 +65,13 @@ 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 +WAYLAND_DESC= Build FreeRDP Wayland client +WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland \ + libwayland-cursor.so:graphics/wayland \ + libxkbcommon.so:x11/libxkbcommon \ + libepoll-shim.so:devel/libepoll-shim +WAYLAND_CMAKE_BOOL= WITH_WAYLAND + .include .if ${OPSYS} == "FreeBSD" && ${ARCH} == "armv6" diff --git c/net/freerdp/files/patch-uwac_libuwac_CMakeLists.txt i/net/freerdp/files/patch-uwac_libuwac_CMakeLists.txt new file mode 100644 index 000000000000..fa5e346d84e0 --- /dev/null +++ i/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 c/net/freerdp/files/patch-uwac_libuwac_uwac-os.c i/net/freerdp/files/patch-uwac_libuwac_uwac-os.c new file mode 100644 index 000000000000..541d6e07aeb4 --- /dev/null +++ i/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 c/net/freerdp/pkg-plist i/net/freerdp/pkg-plist index c98718c810a3..267277c223fe 100644 --- c/net/freerdp/pkg-plist +++ i/net/freerdp/pkg-plist @@ -1,5 +1,6 @@ bin/winpr-hash bin/winpr-makecert +%%WAYLAND%%bin/wlfreerdp %%X11%%bin/xfreerdp include/freerdp2/freerdp/addin.h include/freerdp2/freerdp/altsec.h @@ -196,6 +197,9 @@ 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 @@ -220,5 +224,6 @@ 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