aboutsummaryrefslogtreecommitdiff
path: root/x11-servers
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2017-01-29 23:04:45 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2017-01-29 23:04:45 +0000
commit7dc166606b9e5b155f45ee2f6cac61ac9ab04da9 (patch)
tree6b35b83e514ea208d1c7de1955b63e15a0bc7a3b /x11-servers
parent1a8c14a698805c423849e71432146cbc4b81b474 (diff)
downloadports-7dc166606b9e5b155f45ee2f6cac61ac9ab04da9.tar.gz
ports-7dc166606b9e5b155f45ee2f6cac61ac9ab04da9.zip
Move wayland to a better location
Notes
Notes: svn path=/head/; revision=432804
Diffstat (limited to 'x11-servers')
-rw-r--r--x11-servers/Makefile1
-rw-r--r--x11-servers/wayland/Makefile47
-rw-r--r--x11-servers/wayland/distinfo3
-rw-r--r--x11-servers/wayland/files/patch-Makefile.am29
-rw-r--r--x11-servers/wayland/files/patch-configure.ac56
-rw-r--r--x11-servers/wayland/files/patch-src_wayland-os.c114
-rw-r--r--x11-servers/wayland/files/patch-src_wayland-os.h28
-rw-r--r--x11-servers/wayland/files/patch-src_wayland-server.c82
-rw-r--r--x11-servers/wayland/files/patch-src_wayland-shm.c147
-rw-r--r--x11-servers/wayland/files/patch-tests_client-test.c19
-rw-r--r--x11-servers/wayland/files/patch-tests_connection-test.c29
-rw-r--r--x11-servers/wayland/files/patch-tests_event-loop-test.c40
-rw-r--r--x11-servers/wayland/files/patch-tests_os-wrappers-test.c185
-rw-r--r--x11-servers/wayland/files/patch-tests_queue-test.c21
-rw-r--r--x11-servers/wayland/files/patch-tests_sanity-test.c22
-rw-r--r--x11-servers/wayland/files/patch-tests_test-helpers.c52
-rw-r--r--x11-servers/wayland/files/patch-tests_test-runner.c170
-rw-r--r--x11-servers/wayland/pkg-descr13
-rw-r--r--x11-servers/wayland/pkg-plist32
19 files changed, 0 insertions, 1090 deletions
diff --git a/x11-servers/Makefile b/x11-servers/Makefile
index 374c6e3ca433..84ed43583146 100644
--- a/x11-servers/Makefile
+++ b/x11-servers/Makefile
@@ -3,7 +3,6 @@
COMMENT = X11 servers
- SUBDIR += wayland
SUBDIR += Xfstt
SUBDIR += x11rdp
SUBDIR += x2vnc
diff --git a/x11-servers/wayland/Makefile b/x11-servers/wayland/Makefile
deleted file mode 100644
index 6935f5785a1f..000000000000
--- a/x11-servers/wayland/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-# Created by: kwm@FreeBSD.org
-# $FreeBSD$
-
-# NOTE
-# Changes made by kwm to use kevent instead of epoll
-# are still in place. However, since libinput depends
-# on libepoll-shim the simplest to do was to have Wayland
-# also use it. Currently build will fail if epoll-shim
-# is not available but can be built without epoll-shim
-# if EPOLLSHIM_LIBS is cleared (configure.ac)
-#
-# TODO: Add condition for this in configure
-#
-# If we want to build Wayland with kwm's kevent patches
-# and use epoll-shim for libinput we have to change it
-# so that Wayland ignore epoll headers installed by
-# epoll-shim.
-# Maybe best is to use epoll-shim if it is good enough
-# and keep diff with upstream minimal.
-
-PORTNAME= wayland
-PORTVERSION= 1.12.0
-CATEGORIES= x11-servers wayland
-MASTER_SITES= http://wayland.freedesktop.org/releases/
-
-MAINTAINER= x11@FreeBSD.org
-COMMENT= Wayland composite "server"
-
-LICENSE= MIT
-LICENSE_FILE= ${WRKSRC}/COPYING
-
-LIB_DEPENDS= libexpat.so:textproc/expat2 \
- libffi.so:devel/libffi \
- libepoll-shim.so:devel/libepoll-shim
-
-CFLAGS+= "-I${LOCALBASE}/include/libepoll-shim"
-
-WITH_DEBUG= 1
-
-USES= autoreconf gmake libtool localbase pathfix pkgconfig tar:xz
-USE_GNOME= libxslt:build
-USE_LDCONFIG= yes
-GNU_CONFIGURE= yes
-CONFIGURE_ARGS= --disable-documentation
-INSTALL_TARGET= install-strip
-
-.include <bsd.port.mk>
diff --git a/x11-servers/wayland/distinfo b/x11-servers/wayland/distinfo
deleted file mode 100644
index 1217bc965ee2..000000000000
--- a/x11-servers/wayland/distinfo
+++ /dev/null
@@ -1,3 +0,0 @@
-TIMESTAMP = 1481659324
-SHA256 (wayland-1.12.0.tar.xz) = d6b4135cba0188abcb7275513c72dede751d6194f6edc5b82183a3ba8b821ab1
-SIZE (wayland-1.12.0.tar.xz) = 379520
diff --git a/x11-servers/wayland/files/patch-Makefile.am b/x11-servers/wayland/files/patch-Makefile.am
deleted file mode 100644
index c3b12cae4ba3..000000000000
--- a/x11-servers/wayland/files/patch-Makefile.am
+++ /dev/null
@@ -1,29 +0,0 @@
---- Makefile.am.orig 2016-02-29 23:30:58 UTC
-+++ Makefile.am
-@@ -73,7 +73,7 @@ nodist_include_HEADERS = \
- protocol/wayland-client-protocol.h
-
- libwayland_server_la_CFLAGS = $(FFI_CFLAGS) $(AM_CFLAGS) -pthread
--libwayland_server_la_LIBADD = $(FFI_LIBS) libwayland-private.la libwayland-util.la -lrt -lm
-+libwayland_server_la_LIBADD = $(FFI_LIBS) $(EPOLLSHIM_LIBS) libwayland-private.la libwayland-util.la -lrt -lm
- libwayland_server_la_LDFLAGS = -version-info 1:0:1
- libwayland_server_la_SOURCES = \
- src/wayland-server.c \
-@@ -85,7 +85,7 @@ nodist_libwayland_server_la_SOURCES = \
- protocol/wayland-protocol.c
-
- libwayland_client_la_CFLAGS = $(FFI_CFLAGS) $(AM_CFLAGS) -pthread
--libwayland_client_la_LIBADD = $(FFI_LIBS) libwayland-private.la libwayland-util.la -lrt -lm
-+libwayland_client_la_LIBADD = $(FFI_LIBS) $(EPOLLSHIM_LIBS) libwayland-private.la libwayland-util.la -lrt -lm
- libwayland_client_la_LDFLAGS = -version-info 3:0:3
- libwayland_client_la_SOURCES = \
- src/wayland-client.c
-@@ -186,7 +186,7 @@ libtest_runner_la_LIBADD = \
- libwayland-util.la \
- libwayland-client.la \
- libwayland-server.la \
-- -lrt -ldl $(FFI_LIBS)
-+ -lrt $(DL_LIBS) $(FFI_LIBS) $(EPOLLSHIM_LIBS)
-
-
- array_test_SOURCES = tests/array-test.c
diff --git a/x11-servers/wayland/files/patch-configure.ac b/x11-servers/wayland/files/patch-configure.ac
deleted file mode 100644
index a6c0d1737262..000000000000
--- a/x11-servers/wayland/files/patch-configure.ac
+++ /dev/null
@@ -1,56 +0,0 @@
---- configure.ac.orig 2016-06-01 00:11:10 UTC
-+++ configure.ac
-@@ -63,6 +63,28 @@ AC_SUBST(GCC_CFLAGS)
-
- AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate])
-
-+AC_CHECK_HEADERS([sys/signalfd.h sys/timerfd.h])
-+
-+# Use epoll on Linux or kqueue on BSD
-+AC_CHECK_HEADERS([sys/epoll.h sys/event.h])
-+if test "x$ac_cv_header_sys_epoll_h" != "xyes" && test "x$ac_cv_header_sys_event_h" != "xyes"; then
-+ AC_MSG_ERROR([Can't find sys/epoll.h or sys/event.h. Please ensure either epoll or kqueue is available.])
-+fi
-+
-+# Credential support on FreeBSD
-+AC_CHECK_HEADERS([sys/ucred.h])
-+
-+# dlopen()
-+AC_CHECK_LIB([dl], [dlsym], [DL_LIBS=-ldl])
-+AC_SUBST([DL_LIBS])
-+
-+# Defines __FreeBSD__ if we're on FreeBSD
-+AC_CHECK_HEADERS([sys/param.h])
-+
-+# waitid() and signal.h are needed for the test suite.
-+AC_CHECK_FUNCS([waitid])
-+AC_CHECK_HEADERS([signal.h])
-+
- AC_ARG_ENABLE([libraries],
- [AC_HELP_STRING([--disable-libraries],
- [Disable compilation of wayland libraries])],
-@@ -98,11 +120,12 @@ AC_SUBST([ICONDIR])
-
- if test "x$enable_libraries" = "xyes"; then
- PKG_CHECK_MODULES(FFI, [libffi])
-+dnl convert SFD_CLOEXEC and TFD_CLOEXEC to warning while figuring out how to do this.
- AC_CHECK_DECL(SFD_CLOEXEC,[],
-- [AC_MSG_ERROR("SFD_CLOEXEC is needed to compile wayland libraries")],
-+ [AC_MSG_WARN("SFD_CLOEXEC is needed to compile wayland libraries")],
- [[#include <sys/signalfd.h>]])
- AC_CHECK_DECL(TFD_CLOEXEC,[],
-- [AC_MSG_ERROR("TFD_CLOEXEC is needed to compile wayland libraries")],
-+ [AC_MSG_WARN("TFD_CLOEXEC is needed to compile wayland libraries")],
- [[#include <sys/timerfd.h>]])
- AC_CHECK_DECL(CLOCK_MONOTONIC,[],
- [AC_MSG_ERROR("CLOCK_MONOTONIC is needed to compile wayland libraries")],
-@@ -110,6 +133,9 @@ if test "x$enable_libraries" = "xyes"; t
- AC_CHECK_HEADERS([execinfo.h])
- fi
-
-+EPOLLSHIM_LIBS="-lepoll-shim"
-+AC_SUBST(EPOLLSHIM_LIBS)
-+
- PKG_CHECK_MODULES(EXPAT, [expat], [],
- [AC_CHECK_HEADERS(expat.h, [],
- [AC_MSG_ERROR([Can't find expat.h. Please install expat.])])
diff --git a/x11-servers/wayland/files/patch-src_wayland-os.c b/x11-servers/wayland/files/patch-src_wayland-os.c
deleted file mode 100644
index 5cb746638d3e..000000000000
--- a/x11-servers/wayland/files/patch-src_wayland-os.c
+++ /dev/null
@@ -1,114 +0,0 @@
---- src/wayland-os.c.orig 2015-07-06 19:38:51 UTC
-+++ src/wayland-os.c
-@@ -25,14 +25,20 @@
-
- #define _GNU_SOURCE
-
-+#include "../config.h"
-+
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <unistd.h>
- #include <fcntl.h>
- #include <errno.h>
-+#ifdef HAVE_SYS_EPOLL_H
- #include <sys/epoll.h>
-+#endif
-+#ifdef HAVE_SYS_EVENT_H
-+#include <sys/event.h>
-+#endif
-
--#include "../config.h"
- #include "wayland-os.h"
-
- static int
-@@ -62,26 +68,50 @@ wl_os_socket_cloexec(int domain, int typ
- {
- int fd;
-
-+#ifdef SOCK_CLOEXEC
- fd = socket(domain, type | SOCK_CLOEXEC, protocol);
- if (fd >= 0)
- return fd;
- if (errno != EINVAL)
- return -1;
-+#endif
-
- fd = socket(domain, type, protocol);
- return set_cloexec_or_close(fd);
- }
-
- int
-+wl_os_socketpair_cloexec(int domain, int type, int protocol, int sv[2])
-+{
-+ int retval;
-+
-+#ifdef SOCK_CLOEXEC
-+ retval = socketpair(domain, type | SOCK_CLOEXEC, protocol, sv);
-+ if (retval >= 0)
-+ return retval;
-+ if (errno != EINVAL)
-+ return -1;
-+#endif
-+
-+ retval = socketpair(domain, type, protocol, sv);
-+ if (set_cloexec_or_close(sv[0]) < 0 || set_cloexec_or_close(sv[1]) < 0)
-+ retval = -1;
-+
-+ return retval;
-+}
-+
-+int
- wl_os_dupfd_cloexec(int fd, long minfd)
- {
- int newfd;
-
-+#ifdef F_DUPFD_CLOEXEC
- newfd = fcntl(fd, F_DUPFD_CLOEXEC, minfd);
- if (newfd >= 0)
- return newfd;
- if (errno != EINVAL)
- return -1;
-+#endif
-
- newfd = fcntl(fd, F_DUPFD, minfd);
- return set_cloexec_or_close(newfd);
-@@ -123,15 +153,18 @@ wl_os_recvmsg_cloexec(int sockfd, struct
- {
- ssize_t len;
-
-+#ifdef MSG_CMSG_CLOEXEC
- len = recvmsg(sockfd, msg, flags | MSG_CMSG_CLOEXEC);
- if (len >= 0)
- return len;
- if (errno != EINVAL)
- return -1;
-+#endif
-
- return recvmsg_cloexec_fallback(sockfd, msg, flags);
- }
-
-+#ifdef HAVE_SYS_EPOLL_H
- int
- wl_os_epoll_create_cloexec(void)
- {
-@@ -148,6 +181,19 @@ wl_os_epoll_create_cloexec(void)
- fd = epoll_create(1);
- return set_cloexec_or_close(fd);
- }
-+#endif
-+
-+#ifdef HAVE_SYS_EVENT_H
-+int
-+wl_os_kqueue_create_cloexec(void)
-+{
-+ int fd;
-+
-+ fd = kqueue();
-+
-+ return set_cloexec_or_close(fd);
-+}
-+#endif
-
- int
- wl_os_accept_cloexec(int sockfd, struct sockaddr *addr, socklen_t *addrlen)
diff --git a/x11-servers/wayland/files/patch-src_wayland-os.h b/x11-servers/wayland/files/patch-src_wayland-os.h
deleted file mode 100644
index a710f8b627f2..000000000000
--- a/x11-servers/wayland/files/patch-src_wayland-os.h
+++ /dev/null
@@ -1,28 +0,0 @@
---- src/wayland-os.h.orig 2015-07-06 19:38:51 UTC
-+++ src/wayland-os.h
-@@ -30,13 +30,25 @@ int
- wl_os_socket_cloexec(int domain, int type, int protocol);
-
- int
-+wl_os_socketpair_cloexec(int domain, int type, int protocol, int sv[2]);
-+
-+int
- wl_os_dupfd_cloexec(int fd, long minfd);
-
- ssize_t
- wl_os_recvmsg_cloexec(int sockfd, struct msghdr *msg, int flags);
-
-+/* FIXME? not sure if this will work in this header like this ...
-+ though seems build only header perhaps? */
-+#ifdef HAVE_SYS_EPOLL_H
- int
- wl_os_epoll_create_cloexec(void);
-+#endif
-+
-+#ifdef HAVE_SYS_EVENT_H
-+int
-+wl_os_kqueue_create_cloexec(void);
-+#endif
-
- int
- wl_os_accept_cloexec(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
diff --git a/x11-servers/wayland/files/patch-src_wayland-server.c b/x11-servers/wayland/files/patch-src_wayland-server.c
deleted file mode 100644
index efc16114e97f..000000000000
--- a/x11-servers/wayland/files/patch-src_wayland-server.c
+++ /dev/null
@@ -1,82 +0,0 @@
---- src/wayland-server.c.orig 2016-09-20 17:33:11.000000000 +0000
-+++ src/wayland-server.c 2016-12-13 20:07:06.878000000 +0000
-@@ -25,6 +25,8 @@
-
- #define _GNU_SOURCE
-
-+#include "../config.h"
-+
- #include <stdlib.h>
- #include <stdint.h>
- #include <stddef.h>
-@@ -43,6 +45,11 @@
- #include <sys/file.h>
- #include <sys/stat.h>
-
-+#ifdef HAVE_SYS_UCRED_H
-+#include <sys/types.h>
-+#include <sys/ucred.h>
-+#endif
-+
- #include "wayland-util.h"
- #include "wayland-private.h"
- #include "wayland-server.h"
-@@ -79,7 +86,13 @@
- struct wl_list link;
- struct wl_map objects;
- struct wl_signal destroy_signal;
-+#ifdef HAVE_SYS_UCRED_H
-+ /* FreeBSD */
-+ struct xucred xucred;
-+#else
-+ /* Linux */
- struct ucred ucred;
-+#endif
- int error;
- struct wl_signal resource_created_signal;
- };
-@@ -466,10 +479,20 @@
- if (!client->source)
- goto err_client;
-
-+#if defined(SO_PEERCRED)
-+ /* Linux */
- len = sizeof client->ucred;
- if (getsockopt(fd, SOL_SOCKET, SO_PEERCRED,
- &client->ucred, &len) < 0)
- goto err_source;
-+#elif defined(LOCAL_PEERCRED)
-+ /* FreeBSD */
-+ len = sizeof client->xucred;
-+ if (getsockopt(fd, SOL_SOCKET, LOCAL_PEERCRED,
-+ &client->xucred, &len) < 0 ||
-+ client->xucred.cr_version != XUCRED_VERSION)
-+ goto err_source;
-+#endif
-
- client->connection = wl_connection_create(fd);
- if (client->connection == NULL)
-@@ -523,12 +546,23 @@
- wl_client_get_credentials(struct wl_client *client,
- pid_t *pid, uid_t *uid, gid_t *gid)
- {
-+#ifdef HAVE_SYS_UCRED_H
-+ /* FreeBSD */
-+ if (pid)
-+ *pid = 0; /* FIXME: not defined on FreeBSD */
-+ if (uid)
-+ *uid = client->xucred.cr_uid;
-+ if (gid)
-+ *gid = client->xucred.cr_gid;
-+#else
-+ /* Linux */
- if (pid)
- *pid = client->ucred.pid;
- if (uid)
- *uid = client->ucred.uid;
- if (gid)
- *gid = client->ucred.gid;
-+#endif
- }
-
- /** Get the file descriptor for the client
diff --git a/x11-servers/wayland/files/patch-src_wayland-shm.c b/x11-servers/wayland/files/patch-src_wayland-shm.c
deleted file mode 100644
index e773606d9fba..000000000000
--- a/x11-servers/wayland/files/patch-src_wayland-shm.c
+++ /dev/null
@@ -1,147 +0,0 @@
---- src/wayland-shm.c.orig 2016-03-09 00:55:02 UTC
-+++ src/wayland-shm.c
-@@ -30,6 +30,8 @@
-
- #define _GNU_SOURCE
-
-+#include "../config.h"
-+
- #include <stdbool.h>
- #include <stdio.h>
- #include <stdlib.h>
-@@ -57,6 +59,9 @@ struct wl_shm_pool {
- char *data;
- int32_t size;
- int32_t new_size;
-+#ifdef HAVE_SYS_UCRED_H
-+ int fd;
-+#endif
- };
-
- struct wl_shm_buffer {
-@@ -74,15 +79,24 @@ struct wl_shm_sigbus_data {
- int fallback_mapping_used;
- };
-
-+static void *mremap_compat_maymove(void *, size_t, size_t, int, int, int);
-+
- static void
- shm_pool_finish_resize(struct wl_shm_pool *pool)
- {
- void *data;
-+ int fd = -1;
-
- if (pool->size == pool->new_size)
- return;
-
-- data = mremap(pool->data, pool->size, pool->new_size, MREMAP_MAYMOVE);
-+#ifdef HAVE_SYS_UCRED_H
-+ fd = pool->fd;
-+#endif
-+
-+ data = mremap_compat_maymove(pool->data, pool->size, pool->new_size,
-+ PROT_READ | PROT_WRITE, MAP_SHARED, fd);
-+
- if (data == MAP_FAILED) {
- wl_resource_post_error(pool->resource,
- WL_SHM_ERROR_INVALID_FD,
-@@ -108,6 +122,10 @@ shm_pool_unref(struct wl_shm_pool *pool,
- if (pool->internal_refcount + pool->external_refcount)
- return;
-
-+#ifdef HAVE_SYS_UCRED_H
-+ close(pool->fd);
-+#endif
-+
- munmap(pool->data, pool->size);
- free(pool);
- }
-@@ -221,6 +239,73 @@ shm_pool_destroy(struct wl_client *clien
- wl_resource_destroy(resource);
- }
-
-+#ifdef HAVE_MREMAP
-+static void *
-+mremap_compat_maymove(void *old_address, size_t old_size, size_t new_size,
-+ int old_prot, int old_flags, int old_fd)
-+{
-+ return mremap(old_address, old_size, new_size, MREMAP_MAYMOVE);
-+}
-+#else
-+static void *
-+mremap_compat_maymove(void *old_address, size_t old_size, size_t new_size,
-+ int old_prot, int old_flags, int old_fd)
-+{
-+ /* FreeBSD doesn't support mremap() yet, so we have to emulate it.
-+ * This assumes MREMAP_MAYMOVE is the only flag in use. */
-+ if (new_size == old_size) {
-+ return old_address;
-+ } else if (new_size < old_size) {
-+ /* Shrinking: munmap() the spare region. */
-+ munmap(old_address + old_size, new_size - old_size);
-+ return old_address;
-+ } else {
-+ void *ret;
-+
-+ /* Growing. Try and mmap() the extra region at the end of
-+ * our existing allocation. If that gets mapped in the
-+ * wrong place, fall back to mmap()ing an entirely new
-+ * region of new_size and copying the data across. */
-+ ret = mmap(old_address + old_size, new_size - old_size,
-+ old_prot, old_flags, old_fd, 0);
-+
-+/* FIXME TODO: msync() before munmap()? */
-+ if (ret == MAP_FAILED) {
-+ /* Total failure! */
-+ return ret;
-+ } else if (ret == old_address + old_size) {
-+ /* Success. */
-+ return old_address;
-+ } else if (ret != old_address + old_size) {
-+ /* Partial failure. Fall back to mapping an
-+ * entirely new region. Unmap the region we
-+ * just mapped first. */
-+ munmap(ret, new_size - old_size);
-+
-+ /* Map an entirely new region. */
-+ ret = mmap(NULL, new_size,
-+ old_prot, old_flags, old_fd, 0);
-+ if (ret == MAP_FAILED) {
-+ /* Total failure! */
-+ return ret;
-+ }
-+
-+ /* Copy the old data across. Implicit assumption
-+ * that the old and new regions don't overlap. */
-+ memcpy(ret, old_address, old_size);
-+
-+ /* Unmap the old region. */
-+ munmap(old_address, old_size);
-+
-+ return ret;
-+ }
-+ }
-+
-+ /* Unreachable. */
-+ return MAP_FAILED;
-+}
-+#endif
-+
- static void
- shm_pool_resize(struct wl_client *client, struct wl_resource *resource,
- int32_t size)
-@@ -282,7 +367,14 @@ shm_create_pool(struct wl_client *client
- "failed mmap fd %d", fd);
- goto err_free;
- }
-+
-+#ifdef HAVE_SYS_UCRED_H
-+ /* We need to keep the FD around on FreeBSD so we can implement
-+ * mremap(). See: mremap_compat_maymove(). */
-+ pool->fd = fd;
-+#else
- close(fd);
-+#endif
-
- pool->resource =
- wl_resource_create(client, &wl_shm_pool_interface, 1, id);
diff --git a/x11-servers/wayland/files/patch-tests_client-test.c b/x11-servers/wayland/files/patch-tests_client-test.c
deleted file mode 100644
index 88822779dd6a..000000000000
--- a/x11-servers/wayland/files/patch-tests_client-test.c
+++ /dev/null
@@ -1,19 +0,0 @@
---- tests/client-test.c.orig 2015-07-06 19:38:51 UTC
-+++ tests/client-test.c
-@@ -34,6 +34,7 @@
- #include <sys/types.h>
- #include <sys/stat.h>
-
-+#include "wayland-os.h"
- #include "wayland-private.h"
- #include "wayland-server.h"
- #include "test-runner.h"
-@@ -59,7 +60,7 @@ TEST(client_destroy_listener)
- struct client_destroy_listener a, b;
- int s[2];
-
-- assert(socketpair(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0, s) == 0);
-+ assert(wl_os_socketpair_cloexec(AF_UNIX, SOCK_STREAM, 0, s) == 0);
- display = wl_display_create();
- assert(display);
- client = wl_client_create(display, s[0]);
diff --git a/x11-servers/wayland/files/patch-tests_connection-test.c b/x11-servers/wayland/files/patch-tests_connection-test.c
deleted file mode 100644
index 2d06aa680d65..000000000000
--- a/x11-servers/wayland/files/patch-tests_connection-test.c
+++ /dev/null
@@ -1,29 +0,0 @@
---- tests/connection-test.c.orig 2016-02-17 01:13:16 UTC
-+++ tests/connection-test.c
-@@ -36,6 +36,7 @@
- #include <sys/stat.h>
- #include <poll.h>
-
-+#include "wayland-os.h"
- #include "wayland-private.h"
- #include "test-runner.h"
- #include "test-compositor.h"
-@@ -47,7 +48,7 @@ setup(int *s)
- {
- struct wl_connection *connection;
-
-- assert(socketpair(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0, s) == 0);
-+ assert(wl_os_socketpair_cloexec(AF_UNIX, SOCK_STREAM, 0, s) == 0);
-
- connection = wl_connection_create(s[0]);
- assert(connection);
-@@ -145,8 +146,7 @@ struct marshal_data {
- static void
- setup_marshal_data(struct marshal_data *data)
- {
-- assert(socketpair(AF_UNIX,
-- SOCK_STREAM | SOCK_CLOEXEC, 0, data->s) == 0);
-+ assert(wl_os_socketpair_cloexec(AF_UNIX, SOCK_STREAM, 0, data->s) == 0);
- data->read_connection = wl_connection_create(data->s[0]);
- assert(data->read_connection);
- data->write_connection = wl_connection_create(data->s[1]);
diff --git a/x11-servers/wayland/files/patch-tests_event-loop-test.c b/x11-servers/wayland/files/patch-tests_event-loop-test.c
deleted file mode 100644
index ab9416671168..000000000000
--- a/x11-servers/wayland/files/patch-tests_event-loop-test.c
+++ /dev/null
@@ -1,40 +0,0 @@
---- tests/event-loop-test.c.orig 2015-07-06 19:38:51 UTC
-+++ tests/event-loop-test.c
-@@ -166,10 +166,10 @@ TEST(event_loop_signal)
- signal_callback, &got_it);
- assert(source);
-
-- wl_event_loop_dispatch(loop, 0);
-+ assert(wl_event_loop_dispatch(loop, 0) == 0);
- assert(!got_it);
-- kill(getpid(), SIGUSR1);
-- wl_event_loop_dispatch(loop, 0);
-+ assert(kill(getpid(), SIGUSR1) == 0);
-+ assert(wl_event_loop_dispatch(loop, 0) == 0);
- assert(got_it == 1);
-
- wl_event_source_remove(source);
-@@ -233,12 +233,20 @@ TEST(event_loop_timer)
-
- source = wl_event_loop_add_timer(loop, timer_callback, &got_it);
- assert(source);
-- wl_event_source_timer_update(source, 10);
-- wl_event_loop_dispatch(loop, 0);
-+ assert(wl_event_source_timer_update(source, 10) == 0);
-+ assert(wl_event_loop_dispatch(loop, 0) == 0);
- assert(!got_it);
-- wl_event_loop_dispatch(loop, 20);
-+ /* FreeBSD has a bug where it converts ms_timeout to ticks; it always adds 1 to the tick count.
-+ * Consequently, we need to grossly overcompensate here.
-+ * See: http://unix.derkeiler.com/Mailing-Lists/FreeBSD/hackers/2012-07/msg00319.html */
-+ assert(wl_event_loop_dispatch(loop, 50) == 0);
- assert(got_it == 1);
-
-+ /* Check it doesn't fire again. */
-+ got_it = 0;
-+ assert(wl_event_loop_dispatch(loop, 20) == 0);
-+ assert(!got_it);
-+
- wl_event_source_remove(source);
- wl_event_loop_destroy(loop);
- }
diff --git a/x11-servers/wayland/files/patch-tests_os-wrappers-test.c b/x11-servers/wayland/files/patch-tests_os-wrappers-test.c
deleted file mode 100644
index c8ec9c5492ce..000000000000
--- a/x11-servers/wayland/files/patch-tests_os-wrappers-test.c
+++ /dev/null
@@ -1,185 +0,0 @@
---- tests/os-wrappers-test.c.orig 2015-07-06 19:38:51 UTC
-+++ tests/os-wrappers-test.c
-@@ -26,6 +26,8 @@
-
- #define _GNU_SOURCE
-
-+#include "../config.h"
-+
- #include <stdlib.h>
- #include <assert.h>
- #include <sys/types.h>
-@@ -37,7 +39,13 @@
- #include <stdarg.h>
- #include <fcntl.h>
- #include <stdio.h>
-+
-+#ifdef HAVE_SYS_EPOLL_H
- #include <sys/epoll.h>
-+#elif HAVE_SYS_EVENT_H
-+#include <sys/event.h>
-+#include <sys/types.h>
-+#endif
-
- #include "wayland-private.h"
- #include "test-runner.h"
-@@ -54,8 +62,13 @@ static int wrapped_calls_fcntl;
- static ssize_t (*real_recvmsg)(int, struct msghdr *, int);
- static int wrapped_calls_recvmsg;
-
-+#ifdef HAVE_SYS_EPOLL_H
- static int (*real_epoll_create1)(int);
- static int wrapped_calls_epoll_create1;
-+#elif HAVE_SYS_EVENT_H
-+static int (*real_kqueue)(void);
-+static int wrapped_calls_kqueue;
-+#endif
-
- static void
- init_fallbacks(int do_fallbacks)
-@@ -64,7 +77,11 @@ init_fallbacks(int do_fallbacks)
- real_socket = dlsym(RTLD_NEXT, "socket");
- real_fcntl = dlsym(RTLD_NEXT, "fcntl");
- real_recvmsg = dlsym(RTLD_NEXT, "recvmsg");
-+#ifdef HAVE_SYS_EPOLL_H
- real_epoll_create1 = dlsym(RTLD_NEXT, "epoll_create1");
-+#elif HAVE_SYS_EVENT_H
-+ real_kqueue = dlsym(RTLD_NEXT, "kqueue");
-+#endif
- }
-
- __attribute__ ((visibility("default"))) int
-@@ -72,10 +89,12 @@ socket(int domain, int type, int protoco
- {
- wrapped_calls_socket++;
-
-+#ifdef SOCK_CLOEXEC
- if (fall_back && (type & SOCK_CLOEXEC)) {
- errno = EINVAL;
- return -1;
- }
-+#endif
-
- return real_socket(domain, type, protocol);
- }
-@@ -88,10 +107,12 @@ fcntl(int fd, int cmd, ...)
-
- wrapped_calls_fcntl++;
-
-+#ifdef F_DUPFD_CLOEXEC
- if (fall_back && (cmd == F_DUPFD_CLOEXEC)) {
- errno = EINVAL;
- return -1;
- }
-+#endif
-
- va_start(ap, cmd);
- arg = va_arg(ap, void*);
-@@ -105,14 +126,17 @@ recvmsg(int sockfd, struct msghdr *msg,
- {
- wrapped_calls_recvmsg++;
-
-+#ifdef MSG_CMSG_CLOEXEC
- if (fall_back && (flags & MSG_CMSG_CLOEXEC)) {
- errno = EINVAL;
- return -1;
- }
-+#endif
-
- return real_recvmsg(sockfd, msg, flags);
- }
-
-+#ifdef HAVE_SYS_EPOLL_H
- __attribute__ ((visibility("default"))) int
- epoll_create1(int flags)
- {
-@@ -126,6 +150,15 @@ epoll_create1(int flags)
-
- return real_epoll_create1(flags);
- }
-+#elif HAVE_SYS_EVENT_H
-+__attribute__ ((visibility("default"))) int
-+kqueue(void)
-+{
-+ wrapped_calls_kqueue++;
-+
-+ return real_kqueue();
-+}
-+#endif
-
- static void
- do_os_wrappers_socket_cloexec(int n)
-@@ -155,12 +188,14 @@ TEST(os_wrappers_socket_cloexec)
- do_os_wrappers_socket_cloexec(0);
- }
-
-+#ifdef SOCK_CLOEXEC
- TEST(os_wrappers_socket_cloexec_fallback)
- {
- /* forced fallback */
- init_fallbacks(1);
- do_os_wrappers_socket_cloexec(1);
- }
-+#endif
-
- static void
- do_os_wrappers_dupfd_cloexec(int n)
-@@ -194,11 +229,13 @@ TEST(os_wrappers_dupfd_cloexec)
- do_os_wrappers_dupfd_cloexec(0);
- }
-
-+#ifdef F_DUPFD_CLOEXEC
- TEST(os_wrappers_dupfd_cloexec_fallback)
- {
- init_fallbacks(1);
- do_os_wrappers_dupfd_cloexec(3);
- }
-+#endif
-
- struct marshal_data {
- struct wl_connection *read_connection;
-@@ -217,8 +254,7 @@ struct marshal_data {
- static void
- setup_marshal_data(struct marshal_data *data)
- {
-- assert(socketpair(AF_UNIX,
-- SOCK_STREAM | SOCK_CLOEXEC, 0, data->s) == 0);
-+ assert(wl_os_socketpair_cloexec(AF_UNIX, SOCK_STREAM, 0, data->s) == 0);
-
- data->read_connection = wl_connection_create(data->s[0]);
- assert(data->read_connection);
-@@ -327,11 +363,13 @@ TEST(os_wrappers_recvmsg_cloexec)
- do_os_wrappers_recvmsg_cloexec(0);
- }
-
-+#ifdef MSG_CMSG_CLOEXEC
- TEST(os_wrappers_recvmsg_cloexec_fallback)
- {
- init_fallbacks(1);
- do_os_wrappers_recvmsg_cloexec(1);
- }
-+#endif
-
- static void
- do_os_wrappers_epoll_create_cloexec(int n)
-@@ -341,12 +379,20 @@ do_os_wrappers_epoll_create_cloexec(int
-
- nr_fds = count_open_fds();
-
-+#ifdef HAVE_SYS_EPOLL_H
- fd = wl_os_epoll_create_cloexec();
-+#elif HAVE_SYS_EVENT_H
-+ fd = wl_os_kqueue_create_cloexec();
-+#endif
- assert(fd >= 0);
-
- #ifdef EPOLL_CLOEXEC
-+#ifdef HAVE_SYS_EPOLL_H
- assert(wrapped_calls_epoll_create1 == n);
- #else
-+ assert(wrapped_calls_kqueue == n);
-+#endif
-+#else
- printf("No epoll_create1.\n");
- #endif
-
diff --git a/x11-servers/wayland/files/patch-tests_queue-test.c b/x11-servers/wayland/files/patch-tests_queue-test.c
deleted file mode 100644
index 9f38fa230fdb..000000000000
--- a/x11-servers/wayland/files/patch-tests_queue-test.c
+++ /dev/null
@@ -1,21 +0,0 @@
---- tests/queue-test.c.orig 2016-04-29 23:36:09 UTC
-+++ tests/queue-test.c
-@@ -23,6 +23,8 @@
- * SOFTWARE.
- */
-
-+#include "../config.h"
-+
- #include <stdlib.h>
- #include <stdio.h>
- #include <stdbool.h>
-@@ -30,6 +32,9 @@
- #include <sys/types.h>
- #include <sys/wait.h>
- #include <assert.h>
-+#ifdef HAVE_SIGNAL_H
-+#include <signal.h>
-+#endif
-
- #include "wayland-client.h"
- #include "wayland-server.h"
diff --git a/x11-servers/wayland/files/patch-tests_sanity-test.c b/x11-servers/wayland/files/patch-tests_sanity-test.c
deleted file mode 100644
index fab1eaec289a..000000000000
--- a/x11-servers/wayland/files/patch-tests_sanity-test.c
+++ /dev/null
@@ -1,22 +0,0 @@
---- tests/sanity-test.c.orig 2016-02-17 01:13:16 UTC
-+++ tests/sanity-test.c
-@@ -92,7 +92,8 @@ FAIL_TEST(sanity_malloc_direct)
- TEST(disable_leak_checks)
- {
- volatile void *mem;
-- assert(leak_check_enabled);
-+// XXX FreeBSD disables leak checks...
-+// assert(leak_check_enabled);
- /* normally this should be on the beginning of the test.
- * Here we need to be sure, that the leak checks are
- * turned on */
-@@ -171,7 +172,8 @@ sanity_fd_no_leak(void)
- {
- int fd[2];
-
-- assert(leak_check_enabled);
-+// XXX FreeBSD leak checks are disabled
-+// assert(leak_check_enabled);
-
- /* leak 2 file descriptors */
- if (pipe(fd) < 0)
diff --git a/x11-servers/wayland/files/patch-tests_test-helpers.c b/x11-servers/wayland/files/patch-tests_test-helpers.c
deleted file mode 100644
index 8be22e6e9052..000000000000
--- a/x11-servers/wayland/files/patch-tests_test-helpers.c
+++ /dev/null
@@ -1,52 +0,0 @@
---- tests/test-helpers.c.orig 2015-07-06 19:38:51 UTC
-+++ tests/test-helpers.c
-@@ -23,6 +23,12 @@
- * SOFTWARE.
- */
-
-+#include "../config.h"
-+
-+#ifdef HAVE_SYS_PARAM_H
-+#include <sys/param.h>
-+#endif
-+
- #include <assert.h>
- #include <errno.h>
- #include <dirent.h>
-@@ -32,6 +38,16 @@
-
- #include "test-runner.h"
-
-+#ifdef __FreeBSD__
-+/* FreeBSD uses fdescfs (which must be mounted using:
-+ * mount -t fdescfs fdescfs /dev/fd
-+ * before the test suite can be run). */
-+#define OPEN_FDS_DIR "/dev/fd"
-+#else
-+/* Linux. */
-+#define OPEN_FDS_DIR "/proc/self/fd"
-+#endif
-+
- int
- count_open_fds(void)
- {
-@@ -39,8 +55,8 @@ count_open_fds(void)
- struct dirent *ent;
- int count = 0;
-
-- dir = opendir("/proc/self/fd");
-- assert(dir && "opening /proc/self/fd failed.");
-+ dir = opendir(OPEN_FDS_DIR);
-+ assert(dir && "opening " OPEN_FDS_DIR " failed.");
-
- errno = 0;
- while ((ent = readdir(dir))) {
-@@ -49,7 +65,7 @@ count_open_fds(void)
- continue;
- count++;
- }
-- assert(errno == 0 && "reading /proc/self/fd failed.");
-+ assert(errno == 0 && "reading " OPEN_FDS_DIR " failed.");
-
- closedir(dir);
-
diff --git a/x11-servers/wayland/files/patch-tests_test-runner.c b/x11-servers/wayland/files/patch-tests_test-runner.c
deleted file mode 100644
index 1949c52317ed..000000000000
--- a/x11-servers/wayland/files/patch-tests_test-runner.c
+++ /dev/null
@@ -1,170 +0,0 @@
---- tests/test-runner.c.orig 2016-05-03 00:46:35 UTC
-+++ tests/test-runner.c
-@@ -25,6 +25,12 @@
-
- #define _GNU_SOURCE
-
-+#include "../config.h"
-+
-+#ifdef HAVE_SYS_PARAM_H
-+#include <sys/param.h>
-+#endif
-+
- #include <unistd.h>
- #include <stdio.h>
- #include <stdlib.h>
-@@ -37,18 +43,35 @@
- #include <errno.h>
- #include <limits.h>
- #include <sys/ptrace.h>
-+#ifdef __linux__
- #include <sys/prctl.h>
-+#endif
- #ifndef PR_SET_PTRACER
- # define PR_SET_PTRACER 0x59616d61
- #endif
-+#include <signal.h>
-
- #include "test-runner.h"
-
- static int num_alloc;
-+
-+extern const struct test __start_test_section, __stop_test_section;
-+
-+/* This is all disabled for FreeBSD because it gives "can't allocate initial
-+ * thread" aborts otherwise. */
-+#ifndef __FreeBSD__
- static void* (*sys_malloc)(size_t);
- static void (*sys_free)(void*);
- static void* (*sys_realloc)(void*, size_t);
- static void* (*sys_calloc)(size_t, size_t);
-+#endif
-+
-+#ifdef __FreeBSD__
-+/* XXX review ptrace() usage */
-+#define PTRACE_ATTACH PT_ATTACH
-+#define PTRACE_CONT PT_CONTINUE
-+#define PTRACE_DETACH PT_DETACH
-+#endif
-
- /* when set to 1, check if tests are not leaking memory and opened files.
- * It is turned on by default. It can be turned off by
-@@ -57,7 +80,7 @@ int leak_check_enabled;
-
- /* when this var is set to 0, every call to test_set_timeout() is
- * suppressed - handy when debugging the test. Can be set by
-- * WAYLAND_TEST_NO_TIMEOUTS environment variable. */
-+ * WAYLAND_TESTS_NO_TIMEOUTS evnironment var */
- static int timeouts_enabled = 1;
-
- /* set to one if the output goes to the terminal */
-@@ -65,6 +88,7 @@ static int is_atty = 0;
-
- extern const struct test __start_test_section, __stop_test_section;
-
-+#ifndef __FreeBSD__
- __attribute__ ((visibility("default"))) void *
- malloc(size_t size)
- {
-@@ -98,6 +122,7 @@ calloc(size_t nmemb, size_t size)
-
- return sys_calloc(nmemb, size);
- }
-+#endif
-
- static const struct test *
- find_test(const char *name)
-@@ -291,6 +316,8 @@ is_debugger_attached(void)
- return 0;
- }
-
-+
-+// xxx start here
- pid = fork();
- if (pid == -1) {
- perror("fork");
-@@ -311,7 +338,7 @@ is_debugger_attached(void)
- _exit(1);
- if (!waitpid(-1, NULL, 0))
- _exit(1);
-- ptrace(PTRACE_CONT, NULL, NULL);
-+ ptrace(PTRACE_CONT, ppid, NULL, NULL);
- ptrace(PTRACE_DETACH, ppid, NULL, NULL);
- _exit(0);
- } else {
-@@ -345,17 +372,19 @@ int main(int argc, char *argv[])
- const struct test *t;
- pid_t pid;
- int total, pass;
-+#ifdef HAVE_WAITID
- siginfo_t info;
-+#else
-+ int status;
-+#endif
-
-+#ifndef __FreeBSD__
- /* Load system malloc, free, and realloc */
- sys_calloc = dlsym(RTLD_NEXT, "calloc");
- sys_realloc = dlsym(RTLD_NEXT, "realloc");
- sys_malloc = dlsym(RTLD_NEXT, "malloc");
- sys_free = dlsym(RTLD_NEXT, "free");
-
-- if (isatty(fileno(stderr)))
-- is_atty = 1;
--
- if (is_debugger_attached()) {
- leak_check_enabled = 0;
- timeouts_enabled = 0;
-@@ -363,6 +392,16 @@ int main(int argc, char *argv[])
- leak_check_enabled = !getenv("WAYLAND_TEST_NO_LEAK_CHECK");
- timeouts_enabled = !getenv("WAYLAND_TEST_NO_TIMEOUTS");
- }
-+#else
-+ /* Disable leak checking on FreeBSD since we can't override malloc(). */
-+ leak_check_enabled = 0;
-+ /* XXX review later */
-+ timeouts_enabled = 0;
-+#endif
-+
-+ if (isatty(fileno(stderr)))
-+ is_atty = 1;
-+
-
- if (argc == 2 && strcmp(argv[1], "--help") == 0)
- usage(argv[0], EXIT_SUCCESS);
-@@ -394,7 +433,8 @@ int main(int argc, char *argv[])
- if (pid == 0)
- run_test(t); /* never returns */
-
-- if (waitid(P_PID, pid, &info, WEXITED)) {
-+#ifdef HAVE_WAITID
-+ if (waitid(P_PID, 0, &info, WEXITED)) {
- stderr_set_color(RED);
- fprintf(stderr, "waitid failed: %m\n");
- stderr_reset_color();
-@@ -425,6 +465,25 @@ int main(int argc, char *argv[])
-
- break;
- }
-+#else
-+ if (waitpid(-1, &status, 0) == -1) {
-+ fprintf(stderr, "waitpid failed: %s\n",
-+ strerror(errno));
-+ abort();
-+ }
-+
-+ fprintf(stderr, "test \"%s\":\t", t->name);
-+ if (WIFEXITED(status)) {
-+ fprintf(stderr, "exit status %d", WEXITSTATUS(status));
-+ if (WEXITSTATUS(status) == EXIT_SUCCESS)
-+ success = 1;
-+ } else if (WIFSIGNALED(status)) {
-+ fprintf(stderr, "signal %d", WTERMSIG(status));
-+ }
-+#endif
-+
-+ if (t->must_fail)
-+ success = !success;
-
- if (success) {
- pass++;
diff --git a/x11-servers/wayland/pkg-descr b/x11-servers/wayland/pkg-descr
deleted file mode 100644
index efb42d4b323d..000000000000
--- a/x11-servers/wayland/pkg-descr
+++ /dev/null
@@ -1,13 +0,0 @@
-Wayland is intended as a simpler replacement for X, easier to develop and
-maintain. GNOME and KDE are expected to be ported to it.
-
-Wayland is a protocol for a compositor to talk to its clients as well as
-a C library implementation of that protocol. The compositor can be a
-standalone display server running on Linux kernel modesetting and evdev
-input devices, an X application, or a wayland client itself. The clients can
-be traditional applications, X servers (rootless or fullscreen) or other
-display servers.
-
-Please report bugs to the FreeBSD bugtracker!
-
-WWW: http://wayland.freedesktop.org/
diff --git a/x11-servers/wayland/pkg-plist b/x11-servers/wayland/pkg-plist
deleted file mode 100644
index ccbc459bd7c5..000000000000
--- a/x11-servers/wayland/pkg-plist
+++ /dev/null
@@ -1,32 +0,0 @@
-bin/wayland-scanner
-include/wayland-client-core.h
-include/wayland-client-protocol.h
-include/wayland-client.h
-include/wayland-cursor.h
-include/wayland-egl-core.h
-include/wayland-egl.h
-include/wayland-server-core.h
-include/wayland-server-protocol.h
-include/wayland-server.h
-include/wayland-util.h
-include/wayland-version.h
-lib/libwayland-client.a
-lib/libwayland-client.so
-lib/libwayland-client.so.0
-lib/libwayland-client.so.0.3.0
-lib/libwayland-cursor.a
-lib/libwayland-cursor.so
-lib/libwayland-cursor.so.0
-lib/libwayland-cursor.so.0.0.0
-lib/libwayland-server.a
-lib/libwayland-server.so
-lib/libwayland-server.so.0
-lib/libwayland-server.so.0.1.0
-libdata/pkgconfig/wayland-client.pc
-libdata/pkgconfig/wayland-cursor.pc
-libdata/pkgconfig/wayland-scanner.pc
-libdata/pkgconfig/wayland-server.pc
-share/aclocal/wayland-scanner.m4
-%%DATADIR%%/wayland-scanner.mk
-%%DATADIR%%/wayland.dtd
-%%DATADIR%%/wayland.xml