pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Remove wayland, wayland-protocols. Imported.
Module Name: pkgsrc-wip
Committed By: nia <nia%netbsd.org@localhost>
Pushed By: nee
Date: Thu Aug 22 14:40:13 2019 +0100
Changeset: 7eccc296bf69176d50a44589a0c8d6d70e6a19ae
Modified Files:
Makefile
Removed Files:
wayland-protocols/DESCR
wayland-protocols/Makefile
wayland-protocols/PLIST
wayland-protocols/buildlink3.mk
wayland-protocols/distinfo
wayland/DESCR
wayland/Makefile
wayland/PLIST
wayland/buildlink3.mk
wayland/distinfo
wayland/files/event-loop-kqueue.c
wayland/patches/patch-Makefile.am
wayland/patches/patch-configure.ac
wayland/patches/patch-src_event-loop.c
wayland/patches/patch-src_wayland-os.c
wayland/patches/patch-src_wayland-os.h
wayland/patches/patch-src_wayland-server.c
wayland/patches/patch-src_wayland-shm.c
wayland/patches/patch-tests_client-test.c
wayland/patches/patch-tests_connection-test.c
wayland/patches/patch-tests_event-loop-test.c
wayland/patches/patch-tests_os-wrappers-test.c
wayland/patches/patch-tests_queue-test.c
wayland/patches/patch-tests_sanity-test.c
wayland/patches/patch-tests_test-helpers.c
wayland/patches/patch-tests_test-runner.c
Log Message:
Remove wayland, wayland-protocols. Imported.
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=7eccc296bf69176d50a44589a0c8d6d70e6a19ae
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
Makefile | 2 -
wayland-protocols/DESCR | 9 -
wayland-protocols/Makefile | 19 -
wayland-protocols/PLIST | 27 -
wayland-protocols/buildlink3.mk | 13 -
wayland-protocols/distinfo | 6 -
wayland/DESCR | 5 -
wayland/Makefile | 32 -
wayland/PLIST | 28 -
wayland/buildlink3.mk | 14 -
wayland/distinfo | 21 -
wayland/files/event-loop-kqueue.c | 800 -------------------------
wayland/patches/patch-Makefile.am | 25 -
wayland/patches/patch-configure.ac | 67 ---
wayland/patches/patch-src_event-loop.c | 32 -
wayland/patches/patch-src_wayland-os.c | 120 ----
wayland/patches/patch-src_wayland-os.h | 33 -
wayland/patches/patch-src_wayland-server.c | 100 ----
wayland/patches/patch-src_wayland-shm.c | 151 -----
wayland/patches/patch-tests_client-test.c | 23 -
wayland/patches/patch-tests_connection-test.c | 33 -
wayland/patches/patch-tests_event-loop-test.c | 44 --
wayland/patches/patch-tests_os-wrappers-test.c | 203 -------
wayland/patches/patch-tests_queue-test.c | 25 -
wayland/patches/patch-tests_sanity-test.c | 27 -
wayland/patches/patch-tests_test-helpers.c | 56 --
wayland/patches/patch-tests_test-runner.c | 139 -----
27 files changed, 2054 deletions(-)
diffs:
diff --git a/Makefile b/Makefile
index 12741b1813..9ba6ba3603 100644
--- a/Makefile
+++ b/Makefile
@@ -4934,8 +4934,6 @@ SUBDIR+= wang-ttf
SUBDIR+= wargus
SUBDIR+= warsow
SUBDIR+= watch
-SUBDIR+= wayland
-SUBDIR+= wayland-protocols
SUBDIR+= wbox
SUBDIR+= weatherman
SUBDIR+= webbrowser
diff --git a/wayland-protocols/DESCR b/wayland-protocols/DESCR
deleted file mode 100644
index 63daa5026f..0000000000
--- a/wayland-protocols/DESCR
+++ /dev/null
@@ -1,9 +0,0 @@
-wayland-protocols contains Wayland protocols that add functionality not
-available in the Wayland core protocol. Such protocols either add
-completely new functionality, or extend the functionality of some other
-protocol either in Wayland core, or some other protocol in
-wayland-protocols.
-
-A protocol in wayland-protocols consists of a directory containing a set
-of XML files containing the protocol specification, and a README file
-containing detailed state and a list of maintainers.
diff --git a/wayland-protocols/Makefile b/wayland-protocols/Makefile
deleted file mode 100644
index 1c581fb474..0000000000
--- a/wayland-protocols/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-# $NetBSD$
-#
-
-DISTNAME= wayland-protocols-1.17
-CATEGORIES= graphics
-MASTER_SITES= http://wayland.freedesktop.org/releases/
-EXTRACT_SUFX= .tar.xz
-
-MAINTAINER= pkgsrc-users%NetBSD.org@localhost
-HOMEPAGE= http://wayland.freedesktop.org
-COMMENT= Additional wayland functionality
-LICENSE= mit
-
-USE_TOOLS+= gmake pkg-config
-GNU_CONFIGURE= YES
-
-PKGCONFIG_OVERRIDE+= wayland-protocols.pc.in
-
-.include "../../mk/bsd.pkg.mk"
diff --git a/wayland-protocols/PLIST b/wayland-protocols/PLIST
deleted file mode 100644
index 22c6b38b66..0000000000
--- a/wayland-protocols/PLIST
+++ /dev/null
@@ -1,27 +0,0 @@
-@comment $NetBSD$
-share/pkgconfig/wayland-protocols.pc
-share/wayland-protocols/stable/presentation-time/presentation-time.xml
-share/wayland-protocols/stable/viewporter/viewporter.xml
-share/wayland-protocols/stable/xdg-shell/xdg-shell.xml
-share/wayland-protocols/unstable/fullscreen-shell/fullscreen-shell-unstable-v1.xml
-share/wayland-protocols/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml
-share/wayland-protocols/unstable/input-method/input-method-unstable-v1.xml
-share/wayland-protocols/unstable/input-timestamps/input-timestamps-unstable-v1.xml
-share/wayland-protocols/unstable/keyboard-shortcuts-inhibit/keyboard-shortcuts-inhibit-unstable-v1.xml
-share/wayland-protocols/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
-share/wayland-protocols/unstable/linux-explicit-synchronization/linux-explicit-synchronization-unstable-v1.xml
-share/wayland-protocols/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml
-share/wayland-protocols/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml
-share/wayland-protocols/unstable/primary-selection/primary-selection-unstable-v1.xml
-share/wayland-protocols/unstable/relative-pointer/relative-pointer-unstable-v1.xml
-share/wayland-protocols/unstable/tablet/tablet-unstable-v1.xml
-share/wayland-protocols/unstable/tablet/tablet-unstable-v2.xml
-share/wayland-protocols/unstable/text-input/text-input-unstable-v1.xml
-share/wayland-protocols/unstable/text-input/text-input-unstable-v3.xml
-share/wayland-protocols/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml
-share/wayland-protocols/unstable/xdg-foreign/xdg-foreign-unstable-v1.xml
-share/wayland-protocols/unstable/xdg-foreign/xdg-foreign-unstable-v2.xml
-share/wayland-protocols/unstable/xdg-output/xdg-output-unstable-v1.xml
-share/wayland-protocols/unstable/xdg-shell/xdg-shell-unstable-v5.xml
-share/wayland-protocols/unstable/xdg-shell/xdg-shell-unstable-v6.xml
-share/wayland-protocols/unstable/xwayland-keyboard-grab/xwayland-keyboard-grab-unstable-v1.xml
diff --git a/wayland-protocols/buildlink3.mk b/wayland-protocols/buildlink3.mk
deleted file mode 100644
index 0a09b6c4df..0000000000
--- a/wayland-protocols/buildlink3.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# $NetBSD$
-
-BUILDLINK_TREE+= wayland-protocols
-
-.if !defined(WAYLAND_PROTOCOLS_BUILDLINK3_MK)
-WAYLAND_PROTOCOLS_BUILDLINK3_MK:=
-
-BUILDLINK_API_DEPENDS.wayland-protocols+= wayland-protocols>=1.17
-BUILDLINK_PKGSRCDIR.wayland-protocols?= ../../wip/wayland-protocols
-
-.endif # WAYLAND_PROTOCOLS_BUILDLINK3_MK
-
-BUILDLINK_TREE+= -wayland
diff --git a/wayland-protocols/distinfo b/wayland-protocols/distinfo
deleted file mode 100644
index ef5cfb63f1..0000000000
--- a/wayland-protocols/distinfo
+++ /dev/null
@@ -1,6 +0,0 @@
-$NetBSD$
-
-SHA1 (wayland-protocols-1.17.tar.xz) = 7d2569c838c776545e3eb1b1049b9c37178aae24
-RMD160 (wayland-protocols-1.17.tar.xz) = b0ba9f33fd96c0bfed7913bd6a1b54617f72c0b4
-SHA512 (wayland-protocols-1.17.tar.xz) = 5f3aacbba58717092036659d9b665dc10ff05ee51df61b1de38b22f0417285a74fd8a6d15ca049ad60d204f28203aa13d773c52140c7c02db2c498a6964c2643
-Size (wayland-protocols-1.17.tar.xz) = 107680 bytes
diff --git a/wayland/DESCR b/wayland/DESCR
deleted file mode 100644
index b11876feeb..0000000000
--- a/wayland/DESCR
+++ /dev/null
@@ -1,5 +0,0 @@
-Wayland is intended to be simpler replacement for the X window
-system, easier to develop and maintain.
-
-Wayland is a protocol for a compositor to talk to its clients as
-well as a C library implementation of that protocol.
diff --git a/wayland/Makefile b/wayland/Makefile
deleted file mode 100644
index 023e62f3c7..0000000000
--- a/wayland/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-# $NetBSD$
-
-DISTNAME= wayland-1.17.0
-CATEGORIES= devel
-MASTER_SITES= https://wayland.freedesktop.org/releases/
-EXTRACT_SUFX= .tar.xz
-
-MAINTAINER= pkgsrc-users%NetBSD.org@localhost
-HOMEPAGE= https://wayland.freedesktop.org/
-COMMENT= Display server protocol - development libraries
-LICENSE= mit
-
-USE_TOOLS+= autoconf automake autoreconf gmake pkg-config
-USE_LANGUAGES+= c c++
-GNU_CONFIGURE= YES
-USE_LIBTOOL= YES
-CONFIGURE_ARGS+= --disable-documentation
-
-PKGCONFIG_OVERRIDE+= src/wayland-client.pc.in
-PKGCONFIG_OVERRIDE+= src/wayland-cursor.pc.in
-PKGCONFIG_OVERRIDE+= src/wayland-scanner.pc.in
-PKGCONFIG_OVERRIDE+= src/wayland-server.pc.in
-
-pre-configure:
- # https://lists.freedesktop.org/archives/wayland-devel/2019-February/040024.html
- ${CP} ${FILESDIR}/event-loop-kqueue.c ${WRKSRC}/src
- cd ${WRKSRC} && autoreconf -fvi
-
-.include "../../devel/libffi/buildlink3.mk"
-.include "../../textproc/expat/buildlink3.mk"
-.include "../../textproc/libxslt/buildlink3.mk"
-.include "../../mk/bsd.pkg.mk"
diff --git a/wayland/PLIST b/wayland/PLIST
deleted file mode 100644
index d5a78e2e23..0000000000
--- a/wayland/PLIST
+++ /dev/null
@@ -1,28 +0,0 @@
-@comment $NetBSD$
-bin/wayland-scanner
-include/wayland-client-core.h
-include/wayland-client-protocol.h
-include/wayland-client.h
-include/wayland-cursor.h
-include/wayland-egl-backend.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.la
-lib/libwayland-cursor.la
-lib/libwayland-egl.la
-lib/libwayland-server.la
-lib/pkgconfig/wayland-client.pc
-lib/pkgconfig/wayland-cursor.pc
-lib/pkgconfig/wayland-egl-backend.pc
-lib/pkgconfig/wayland-egl.pc
-lib/pkgconfig/wayland-scanner.pc
-lib/pkgconfig/wayland-server.pc
-share/aclocal/wayland-scanner.m4
-share/wayland/wayland-scanner.mk
-share/wayland/wayland.dtd
-share/wayland/wayland.xml
diff --git a/wayland/buildlink3.mk b/wayland/buildlink3.mk
deleted file mode 100644
index 80b1819763..0000000000
--- a/wayland/buildlink3.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# $NetBSD$
-
-BUILDLINK_TREE+= wayland
-
-.if !defined(WAYLAND_BUILDLINK3_MK)
-WAYLAND_BUILDLINK3_MK:=
-
-BUILDLINK_API_DEPENDS.wayland+= wayland>=1.9.90
-BUILDLINK_PKGSRCDIR.wayland?= ../../wip/wayland
-
-.include "../../devel/libffi/buildlink3.mk"
-.endif # WAYLAND_BUILDLINK3_MK
-
-BUILDLINK_TREE+= -wayland
diff --git a/wayland/distinfo b/wayland/distinfo
deleted file mode 100644
index d8c09a9ad6..0000000000
--- a/wayland/distinfo
+++ /dev/null
@@ -1,21 +0,0 @@
-$NetBSD$
-
-SHA1 (wayland-1.17.0.tar.xz) = 4d9e08a7a4a07fa37a25d7aa3ef83f08edec0600
-RMD160 (wayland-1.17.0.tar.xz) = 635494fb0f5d9eb1e782f98e08c3e0e26ff44268
-SHA512 (wayland-1.17.0.tar.xz) = c5051aab5ff078b368c196ecfedb33ccd961265bb914845d7ed81de361bb86ae18299575baa6c4eceb0d82cf8b495e8293f31b51d1cbc05d84af0a199ab3f946
-Size (wayland-1.17.0.tar.xz) = 437680 bytes
-SHA1 (patch-Makefile.am) = af2c47eb2e1a4924ea842aeea1d0f00832762ec0
-SHA1 (patch-configure.ac) = df15013a1639d673e5f0a86433a074f6201dbbc4
-SHA1 (patch-src_event-loop.c) = 04d0eed4ba0708518201ec630dab97d52735fb0c
-SHA1 (patch-src_wayland-os.c) = fc1a70d4baf8311afce92a081368104b7a732e27
-SHA1 (patch-src_wayland-os.h) = 2e8fb20d4adfb3666adffe48104205488b4a1c7b
-SHA1 (patch-src_wayland-server.c) = 335de8f5390eb337dfbde26f523162bd44c06baf
-SHA1 (patch-src_wayland-shm.c) = a59ddce3a161bb21fedb04737ff502da608b1da9
-SHA1 (patch-tests_client-test.c) = 6ffe18dfd64176a92f6f795eb757c54a3cf0ad10
-SHA1 (patch-tests_connection-test.c) = af53116c99cbb8d6570bcec66bfd895c1ae01700
-SHA1 (patch-tests_event-loop-test.c) = 79909fdce7b73a7b19c58d3711329f6288fe7204
-SHA1 (patch-tests_os-wrappers-test.c) = 0b45e6952d23589e4991149143331fdb9e0386e1
-SHA1 (patch-tests_queue-test.c) = 3ee8433faa50b033ab880d3c5b6a9846063d6bd6
-SHA1 (patch-tests_sanity-test.c) = 80e06834ccf344fda16a6a8f85e062f2b4a744ec
-SHA1 (patch-tests_test-helpers.c) = 1895c0bdadefdaeaa421e7051b71a297b3a5e2c3
-SHA1 (patch-tests_test-runner.c) = 35d911064c1b65537ef2276797b8041fd6b023f7
diff --git a/wayland/files/event-loop-kqueue.c b/wayland/files/event-loop-kqueue.c
deleted file mode 100644
index 7d07d194bd..0000000000
--- a/wayland/files/event-loop-kqueue.c
+++ /dev/null
@@ -1,800 +0,0 @@
-/*
- * Copyright © 2008 Kristian Høgsberg
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial
- * portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#include "config.h"
-
-#ifdef HAVE_SYS_EVENT_H
-#include <stddef.h>
-#include <stdio.h>
-#include <err.h>
-#include <errno.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <stdbool.h>
-#include <string.h>
-#include <fcntl.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <sys/types.h>
-#include <sys/event.h>
-#include <sys/time.h>
-#include <unistd.h>
-#include "wayland-util.h"
-#include "wayland-private.h"
-#include "wayland-server-core.h"
-#include "wayland-os.h"
-
-/** \cond INTERNAL */
-
-struct wl_event_loop {
- int event_fd;
- struct wl_list check_list;
- struct wl_list idle_list;
- struct wl_list destroy_list;
-
- struct wl_signal destroy_signal;
-};
-
-struct wl_event_source_interface {
- int (*dispatch)(struct wl_event_source *source,
- struct kevent *ev);
-};
-
-struct wl_event_source {
- struct wl_event_source_interface *interface;
- struct wl_event_loop *loop;
- struct wl_list link;
- void *data;
- int fd;
-};
-
-struct wl_event_source_fd {
- struct wl_event_source base;
- wl_event_loop_fd_func_t func;
- int fd;
-};
-
-/** \endcond */
-
-static int
-wl_event_source_fd_dispatch(struct wl_event_source *source,
- struct kevent *ev)
-{
- struct wl_event_source_fd *fd_source = (struct wl_event_source_fd *) source;
- uint32_t mask;
-
- mask = 0;
- if (ev->filter == EVFILT_READ)
- mask |= WL_EVENT_READABLE;
- if (ev->filter == EVFILT_WRITE)
- mask |= WL_EVENT_WRITABLE;
- if (ev->flags & EV_EOF)
- mask |= WL_EVENT_HANGUP;
- if (ev->flags & EV_ERROR)
- mask |= WL_EVENT_ERROR;
-
- return fd_source->func(source->fd, mask, source->data);
-}
-
-struct wl_event_source_interface fd_source_interface = {
- wl_event_source_fd_dispatch,
-};
-
-static struct wl_event_source *
-add_source(struct wl_event_loop *loop,
- struct wl_event_source *source, uint32_t mask, void *data)
-{
- source->loop = loop;
- source->data = data;
- wl_list_init(&source->link);
-
- return source;
-}
-
-/** Create a file descriptor event source
- *
- * \param loop The event loop that will process the new source.
- * \param fd The file descriptor to watch.
- * \param mask A bitwise-or of which events to watch for: \c WL_EVENT_READABLE,
- * \c WL_EVENT_WRITABLE.
- * \param func The file descriptor dispatch function.
- * \param data User data.
- * \return A new file descriptor event source.
- *
- * The given file descriptor is initially watched for the events given in
- * \c mask. This can be changed as needed with wl_event_source_fd_update().
- *
- * If it is possible that program execution causes the file descriptor to be
- * read while leaving the data in a buffer without actually processing it,
- * it may be necessary to register the file descriptor source to be re-checked,
- * see wl_event_source_check(). This will ensure that the dispatch function
- * gets called even if the file descriptor is not readable or writable
- * anymore. This is especially useful with IPC libraries that automatically
- * buffer incoming data, possibly as a side-effect of other operations.
- *
- * \sa wl_event_loop_fd_func_t
- * \memberof wl_event_source
- */
-WL_EXPORT struct wl_event_source *
-wl_event_loop_add_fd(struct wl_event_loop *loop,
- int fd, uint32_t mask,
- wl_event_loop_fd_func_t func,
- void *data)
-{
- struct wl_event_source_fd *source;
-
- struct kevent events[2];
- unsigned int num_events = 0;
-
- source = malloc(sizeof *source);
- if (source == NULL)
- return NULL;
-
- source->base.interface = &fd_source_interface;
- source->base.fd = wl_os_dupfd_cloexec(fd, 0);
- source->func = func;
- source->fd = fd;
- add_source(loop, &source->base, mask, data);
-
- if (source->base.fd < 0) {
- fprintf(stderr, "could not add source\n: %m");
- free(source);
- return NULL;
- }
-
- if (mask & WL_EVENT_READABLE) {
- EV_SET(&events[num_events], source->base.fd, EVFILT_READ,
- EV_ADD | EV_ENABLE, 0, 0, &source->base);
- num_events++;
- }
-
- if (mask & WL_EVENT_WRITABLE) {
- EV_SET(&events[num_events], source->base.fd, EVFILT_WRITE,
- EV_ADD | EV_ENABLE, 0, 0, &source->base);
- num_events++;
- }
-
- if (kevent(loop->event_fd, events, num_events, NULL, 0, NULL) < 0) {
- fprintf(stderr, "error adding source %i (%p) to loop %p: %s\n",
- source->fd, source, loop, strerror(errno));
- close(source->base.fd);
- free(source);
- return NULL;
- }
-
- return &source->base;
-}
-
-/** Update a file descriptor source's event mask
- *
- * \param source The file descriptor event source to update.
- * \param mask The new mask, a bitwise-or of: \c WL_EVENT_READABLE,
- * \c WL_EVENT_WRITABLE.
- * \return 0 on success, -1 on failure.
- *
- * This changes which events, readable and/or writable, cause the dispatch
- * callback to be called on.
- *
- * File descriptors are usually writable to begin with, so they do not need to
- * be polled for writable until a write actually fails. When a write fails,
- * the event mask can be changed to poll for readable and writable, delivering
- * a dispatch callback when it is possible to write more. Once all data has
- * been written, the mask can be changed to poll only for readable to avoid
- * busy-looping on dispatch.
- *
- * \sa wl_event_loop_add_fd()
- * \memberof wl_event_source
- */
-WL_EXPORT int
-wl_event_source_fd_update(struct wl_event_source *source, uint32_t mask)
-{
- struct wl_event_loop *loop = source->loop;
- struct kevent events[2];
- unsigned int num_events = 0;
-
- if (mask & WL_EVENT_READABLE) {
- EV_SET(&events[num_events], source->fd, EVFILT_READ,
- EV_ADD | EV_ENABLE, 0, 0, source);
- num_events++;
- }
-
- if (mask & WL_EVENT_WRITABLE) {
- EV_SET(&events[num_events], source->fd, EVFILT_WRITE,
- EV_ADD | EV_ENABLE, 0, 0, source);
- num_events++;
- }
-
- return kevent(loop->event_fd, events, num_events, NULL, 0, NULL);
-}
-
-/** \cond INTERNAL */
-
-struct wl_event_source_timer {
- struct wl_event_source base;
- wl_event_loop_timer_func_t func;
-};
-
-/** \endcond */
-
-static int
-wl_event_source_timer_dispatch(struct wl_event_source *source,
- struct kevent *ev)
-{
- struct wl_event_source_timer *timer_source =
- (struct wl_event_source_timer *) source;
- uint64_t expires;
-
- expires = ev->data; /* XXX unused?! */
- return timer_source->func(timer_source->base.data);
-}
-
-struct wl_event_source_interface timer_source_interface = {
- wl_event_source_timer_dispatch,
-};
-
-/** Create a timer event source
- *
- * \param loop The event loop that will process the new source.
- * \param func The timer dispatch function.
- * \param data User data.
- * \return A new timer event source.
- *
- * The timer is initially disarmed. It needs to be armed with a call to
- * wl_event_source_timer_update() before it can trigger a dispatch call.
- *
- * \sa wl_event_loop_timer_func_t
- * \memberof wl_event_source
- */
-WL_EXPORT struct wl_event_source *
-wl_event_loop_add_timer(struct wl_event_loop *loop,
- wl_event_loop_timer_func_t func,
- void *data)
-{
- static int next_timer_id = 0;
- struct wl_event_source_timer *source;
-
- source = malloc(sizeof *source);
- if (source == NULL)
- return NULL;
- source->base.interface = &timer_source_interface;
- source->base.fd = next_timer_id++;
- source->base.loop = loop;
- source->base.data = data;
- source->func = func;
- wl_list_init(&source->base.link);
-
- return &source->base;
-}
-
-/** Arm or disarm a timer
- *
- * \param source The timer event source to modify.
- * \param ms_delay The timeout in milliseconds.
- * \return 0 on success, -1 on failure.
- *
- * If the timeout is zero, the timer is disarmed.
- *
- * If the timeout is non-zero, the timer is set to expire after the given
- * timeout in milliseconds. When the timer expires, the dispatch function
- * set with wl_event_loop_add_timer() is called once from
- * wl_event_loop_dispatch(). If another dispatch is desired after another
- * expiry, wl_event_source_timer_update() needs to be called again.
- *
- * \memberof wl_event_source
- */
-WL_EXPORT int
-wl_event_source_timer_update(struct wl_event_source *source, int ms_delay)
-{
- struct kevent ev;
-
- if (ms_delay == 0) {
- EV_SET(&ev, source->fd, EVFILT_TIMER, EV_DISABLE, 0,
- ms_delay, source);
- } else {
- EV_SET(&ev, source->fd, EVFILT_TIMER,
- EV_ADD | EV_ENABLE | EV_DISPATCH, 0, ms_delay, source);
- }
-
- if (kevent(source->loop->event_fd, &ev, 1, NULL, 0, NULL) < 0) {
- fprintf(stderr, "could not set kqueue timer: %s",
- strerror(errno));
- return -1;
- }
-
- return 0;
-}
-
-/** \cond INTERNAL */
-
-struct wl_event_source_signal {
- struct wl_event_source base;
- int signal_number;
- wl_event_loop_signal_func_t func;
-};
-
-/** \endcond */
-
-static int
-wl_event_source_signal_dispatch(struct wl_event_source *source,
- struct kevent *ev)
-{
- struct wl_event_source_signal *signal_source;
-
- signal_source = (struct wl_event_source_signal *) source;
-
- return signal_source->func(signal_source->base.fd,
- signal_source->base.data);
-}
-
-struct wl_event_source_interface signal_source_interface = {
- wl_event_source_signal_dispatch,
-};
-
-/** Create a POSIX signal event source
- *
- * \param loop The event loop that will process the new source.
- * \param signal_number Number of the signal to watch for.
- * \param func The signal dispatch function.
- * \param data User data.
- * \return A new signal event source.
- *
- * This function blocks the normal delivery of the given signal in the calling
- * thread, and creates a "watch" for it. Signal delivery no longer happens
- * asynchronously, but by wl_event_loop_dispatch() calling the dispatch
- * callback function \c func.
- *
- * It is the caller's responsibility to ensure that all other threads have
- * also blocked the signal.
- *
- * \sa wl_event_loop_signal_func_t
- * \memberof wl_event_source
- */
-WL_EXPORT struct wl_event_source *
-wl_event_loop_add_signal(struct wl_event_loop *loop,
- int signal_number,
- wl_event_loop_signal_func_t func,
- void *data)
-{
- struct wl_event_source_signal *source;
- sigset_t mask;
- struct kevent ev;
-
- source = malloc(sizeof *source);
- if (source == NULL)
- return NULL;
-
- source->base.interface = &signal_source_interface;
- source->signal_number = signal_number;
- source->func = func;
-
- sigemptyset(&mask);
- sigaddset(&mask, signal_number);
- sigprocmask(SIG_BLOCK, &mask, NULL);
-
- source->base.fd = 0;
- add_source(loop, &source->base, WL_EVENT_READABLE, data);
-
- EV_SET(&ev, signal_number, EVFILT_SIGNAL, EV_ADD | EV_ENABLE, 0, 0,
- source);
-
- if (kevent(loop->event_fd, &ev, 1, NULL, 0, NULL) < 0) {
- fprintf(stderr, "error adding signal for %i (%p), %p: %s\n",
- signal_number, source, loop, strerror(errno));
- free(source);
- return NULL;
- }
-
- return &source->base;
-}
-
-/** \cond INTERNAL */
-
-struct wl_event_source_idle {
- struct wl_event_source base;
- wl_event_loop_idle_func_t func;
-};
-
-/** \endcond */
-
-struct wl_event_source_interface idle_source_interface = {
- NULL,
-};
-
-/** Create an idle task
- *
- * \param loop The event loop that will process the new task.
- * \param func The idle task dispatch function.
- * \param data User data.
- * \return A new idle task (an event source).
- *
- * Idle tasks are dispatched before wl_event_loop_dispatch() goes to sleep.
- * See wl_event_loop_dispatch() for more details.
- *
- * Idle tasks fire once, and are automatically destroyed right after the
- * callback function has been called.
- *
- * An idle task can be cancelled before the callback has been called by
- * wl_event_source_remove(). Calling wl_event_source_remove() after or from
- * within the callback results in undefined behaviour.
- *
- * \sa wl_event_loop_idle_func_t
- * \memberof wl_event_source
- */
-WL_EXPORT struct wl_event_source *
-wl_event_loop_add_idle(struct wl_event_loop *loop,
- wl_event_loop_idle_func_t func,
- void *data)
-{
- struct wl_event_source_idle *source;
-
- source = malloc(sizeof *source);
- if (source == NULL)
- return NULL;
-
- source->base.interface = &idle_source_interface;
- source->base.loop = loop;
- source->base.fd = -1;
-
- source->func = func;
- source->base.data = data;
-
- wl_list_insert(loop->idle_list.prev, &source->base.link);
-
- return &source->base;
-}
-
-/** Mark event source to be re-checked
- *
- * \param source The event source to be re-checked.
- *
- * This function permanently marks the event source to be re-checked after
- * the normal dispatch of sources in wl_event_loop_dispatch(). Re-checking
- * will keep iterating over all such event sources until the dispatch
- * function for them all returns zero.
- *
- * Re-checking is used on sources that may become ready to dispatch as a
- * side-effect of dispatching themselves or other event sources, including idle
- * sources. Re-checking ensures all the incoming events have been fully drained
- * before wl_event_loop_dispatch() returns.
- *
- * \memberof wl_event_source
- */
-WL_EXPORT void
-wl_event_source_check(struct wl_event_source *source)
-{
- wl_list_insert(source->loop->check_list.prev, &source->link);
-}
-
-/** Remove an event source from its event loop
- *
- * \param source The event source to be removed.
- * \return Zero.
- *
- * The event source is removed from the event loop it was created for,
- * and is effectively destroyed. This invalidates \c source .
- * The dispatch function of the source will no longer be called through this
- * source.
- *
- * \memberof wl_event_source
- */
-WL_EXPORT int
-wl_event_source_remove(struct wl_event_source *source)
-{
- struct wl_event_loop *loop = source->loop;
- int ret = 0, saved_errno = 0;
-
- /*
- * Since BSD doesn't treat all event sources as FDs, we need to
- * differentiate by source interface.
- */
- if (source->interface == &fd_source_interface && source->fd >= 0) {
- struct kevent ev[2];
- int _ret[2], _saved_errno[2];
-
- /*
- * We haven't stored state about the mask used when adding the
- * source, so we have to try and remove both READ and WRITE
- * filters. One may fail, which is OK. Removal of the source has
- * only failed if _both_ kevent() calls fail. We have to do two
- * kevent() calls so that we can get independent return values
- * for the two kevents.
- */
- EV_SET(&ev[0], source->fd, EVFILT_READ, EV_DELETE, 0, 0,
- source);
- EV_SET(&ev[1], source->fd, EVFILT_WRITE, EV_DELETE, 0, 0,
- source);
-
- _ret[0] = kevent(loop->event_fd, &ev[0], 1, NULL, 0, NULL);
- _saved_errno[0] = errno;
- _ret[1] = kevent(loop->event_fd, &ev[1], 1, NULL, 0, NULL);
- _saved_errno[1] = errno;
-
- if (_ret[0] >= _ret[1]) {
- ret = _ret[0];
- saved_errno = _saved_errno[0];
- } else {
- ret = _ret[1];
- saved_errno = _saved_errno[1];
- }
-
- close(source->fd);
- } else if (source->interface == &timer_source_interface) {
- struct kevent ev;
-
- EV_SET(&ev, source->fd, EVFILT_TIMER, EV_DELETE, 0, 0, source);
- ret = kevent(loop->event_fd, &ev, 1, NULL, 0, NULL);
- saved_errno = errno;
- } else if (source->interface == &signal_source_interface) {
- struct kevent ev;
- int signal_number;
- struct wl_event_source_signal *_source;
-
- /* Only one kevent() call needed. */
- _source = (struct wl_event_source_signal *) source;
- signal_number = _source->signal_number;
-
- EV_SET(&ev, signal_number, EVFILT_SIGNAL, EV_DELETE, 0, 0,
- source);
- ret = kevent(loop->event_fd, &ev, 1, NULL, 0, NULL);
- saved_errno = errno;
- }
-
- /* Handle any errors from kevent() calls. */
- if (ret < 0) {
- fprintf(stderr,
- "error removing event (%i) from kqueue: %s\n",
- source->fd, strerror(saved_errno));
- }
-
- /* Tidy up the source. */
- source->fd = -1;
-
- wl_list_remove(&source->link);
- wl_list_insert(&loop->destroy_list, &source->link);
-
- return 0;
-}
-
-static void
-wl_event_loop_process_destroy_list(struct wl_event_loop *loop)
-{
- struct wl_event_source *source, *next;
-
- wl_list_for_each_safe(source, next, &loop->destroy_list, link)
- free(source);
-
- wl_list_init(&loop->destroy_list);
-}
-
-/** Create a new event loop context
- *
- * \return A new event loop context object.
- *
- * This creates a new event loop context. Initially this context is empty.
- * Event sources need to be explicitly added to it.
- *
- * Normally the event loop is run by calling wl_event_loop_dispatch() in
- * a loop until the program terminates. Alternatively, an event loop can be
- * embedded in another event loop by its file descriptor, see
- * wl_event_loop_get_fd().
- *
- * \memberof wl_event_loop
- */
-WL_EXPORT struct wl_event_loop *
-wl_event_loop_create(void)
-{
- struct wl_event_loop *loop;
-
- loop = malloc(sizeof *loop);
- if (loop == NULL)
- return NULL;
-
- loop->event_fd = wl_os_queue_create_cloexec();
- if (loop->event_fd < 0) {
- free(loop);
- return NULL;
- }
- wl_list_init(&loop->check_list);
- wl_list_init(&loop->idle_list);
- wl_list_init(&loop->destroy_list);
-
- wl_signal_init(&loop->destroy_signal);
-
- return loop;
-}
-
-/** Destroy an event loop context
- *
- * \param loop The event loop to be destroyed.
- *
- * This emits the event loop destroy signal, closes the event loop file
- * descriptor, and frees \c loop.
- *
- * If the event loop has existing sources, those cannot be safely removed
- * afterwards. Therefore one must call wl_event_source_remove() on all
- * event sources before destroying the event loop context.
- *
- * \memberof wl_event_loop
- */
-WL_EXPORT void
-wl_event_loop_destroy(struct wl_event_loop *loop)
-{
- wl_signal_emit(&loop->destroy_signal, loop);
-
- wl_event_loop_process_destroy_list(loop);
- close(loop->event_fd);
- free(loop);
-}
-
-static bool
-post_dispatch_check(struct wl_event_loop *loop)
-{
- struct kevent ev;
- struct wl_event_source *source, *next;
- bool needs_recheck = false;
-
- wl_list_for_each_safe(source, next, &loop->check_list, link) {
- int dispatch_result;
-
- dispatch_result = source->interface->dispatch(source, &ev);
- if (dispatch_result < 0) {
- wl_log("Source dispatch function returned negative value!");
- wl_log("This would previously accidentally suppress a follow-up dispatch");
- }
- needs_recheck |= dispatch_result != 0;
- }
-
- return needs_recheck;
-}
-
-/** Dispatch the idle sources
- *
- * \param loop The event loop whose idle sources are dispatched.
- *
- * \sa wl_event_loop_add_idle()
- * \memberof wl_event_loop
- */
-WL_EXPORT void
-wl_event_loop_dispatch_idle(struct wl_event_loop *loop)
-{
- struct wl_event_source_idle *source;
-
- while (!wl_list_empty(&loop->idle_list)) {
- source = container_of(loop->idle_list.next,
- struct wl_event_source_idle, base.link);
- source->func(source->base.data);
- wl_event_source_remove(&source->base);
- }
-}
-
-/** Wait for events and dispatch them
- *
- * \param loop The event loop whose sources to wait for.
- * \param timeout The polling timeout in milliseconds.
- * \return 0 for success, -1 for polling error.
- *
- * All the associated event sources are polled. This function blocks until
- * any event source delivers an event (idle sources excluded), or the timeout
- * expires. A timeout of -1 disables the timeout, causing the function to block
- * indefinitely. A timeout of zero causes the poll to always return immediately.
- *
- * All idle sources are dispatched before blocking. An idle source is destroyed
- * when it is dispatched. After blocking, all other ready sources are
- * dispatched. Then, idle sources are dispatched again, in case the dispatched
- * events created idle sources. Finally, all sources marked with
- * wl_event_source_check() are dispatched in a loop until their dispatch
- * functions all return zero.
- *
- * \memberof wl_event_loop
- */
-WL_EXPORT int
-wl_event_loop_dispatch(struct wl_event_loop *loop, int timeout)
-{
- struct kevent ev[64];
- struct wl_event_source *source;
- int i, count;
- struct timespec timeout_spec;
-
- wl_event_loop_dispatch_idle(loop);
-
- /* timeout is provided in milliseconds */
- timeout_spec.tv_sec = timeout / 1000;
- timeout_spec.tv_nsec = (timeout % 1000) * 1000000;
-
- count = kevent(loop->event_fd, NULL, 0, ev, ARRAY_LENGTH(ev),
- (timeout != -1) ? &timeout_spec : NULL);
- if (count < 0)
- return -1;
-
- for (i = 0; i < count; i++) {
- source = ev[i].udata;
- if (source->fd != -1) {
- source->interface->dispatch(source, &ev[i]);
- }
- }
-
- wl_event_loop_process_destroy_list(loop);
-
- wl_event_loop_dispatch_idle(loop);
-
- while (post_dispatch_check(loop));
-
- return 0;
-}
-
-/** Get the event loop file descriptor
- *
- * \param loop The event loop context.
- * \return The aggregate file descriptor.
- *
- * This function returns the aggregate file descriptor, that represents all
- * the event sources (idle sources excluded) associated with the given event
- * loop context. When any event source makes an event available, it will be
- * reflected in the aggregate file descriptor.
- *
- * When the aggregate file descriptor delivers an event, one can call
- * wl_event_loop_dispatch() on the event loop context to dispatch all the
- * available events.
- *
- * \memberof wl_event_loop
- */
-WL_EXPORT int
-wl_event_loop_get_fd(struct wl_event_loop *loop)
-{
- return loop->event_fd;
-}
-
-/** Register a destroy listener for an event loop context
- *
- * \param loop The event loop context whose destruction to listen for.
- * \param listener The listener with the callback to be called.
- *
- * \sa wl_listener
- * \memberof wl_event_loop
- */
-WL_EXPORT void
-wl_event_loop_add_destroy_listener(struct wl_event_loop *loop,
- struct wl_listener *listener)
-{
- wl_signal_add(&loop->destroy_signal, listener);
-}
-
-/** Get the listener struct for the specified callback
- *
- * \param loop The event loop context to inspect.
- * \param notify The destroy callback to find.
- * \return The wl_listener registered to the event loop context with
- * the given callback pointer.
- *
- * \memberof wl_event_loop
- */
-WL_EXPORT struct wl_listener *
-wl_event_loop_get_destroy_listener(struct wl_event_loop *loop,
- wl_notify_func_t notify)
-{
- return wl_signal_get(&loop->destroy_signal, notify);
-}
-#endif
diff --git a/wayland/patches/patch-Makefile.am b/wayland/patches/patch-Makefile.am
deleted file mode 100644
index 041717930f..0000000000
--- a/wayland/patches/patch-Makefile.am
+++ /dev/null
@@ -1,25 +0,0 @@
-$NetBSD$
-
-https://lists.freedesktop.org/archives/wayland-devel/2019-February/040024.html
-
---- Makefile.am.orig 2019-03-21 00:55:25.000000000 +0000
-+++ Makefile.am
-@@ -76,7 +76,8 @@ libwayland_server_la_LDFLAGS = -version-
- libwayland_server_la_SOURCES = \
- src/wayland-server.c \
- src/wayland-shm.c \
-- src/event-loop.c
-+ src/event-loop.c \
-+ src/event-loop-kqueue.c
-
- nodist_libwayland_server_la_SOURCES = \
- protocol/wayland-server-protocol.h \
-@@ -227,7 +228,7 @@ libtest_runner_la_LIBADD = \
- libwayland-client.la \
- libwayland-server.la \
- libtest-helpers.la \
-- -lrt -ldl $(FFI_LIBS)
-+ -lrt $(DL_LIBS) $(FFI_LIBS)
-
- array_test_SOURCES = tests/array-test.c
- array_test_LDADD = libtest-runner.la
diff --git a/wayland/patches/patch-configure.ac b/wayland/patches/patch-configure.ac
deleted file mode 100644
index bc1bcf7000..0000000000
--- a/wayland/patches/patch-configure.ac
+++ /dev/null
@@ -1,67 +0,0 @@
-$NetBSD$
-
-BSD support from FreeBSD
-
-https://lists.freedesktop.org/archives/wayland-devel/2019-February/040024.html
-
---- configure.ac.orig 2019-03-21 00:55:25.000000000 +0000
-+++ configure.ac
-@@ -65,6 +65,28 @@ AC_SUBST(GCC_CFLAGS)
- AC_CHECK_HEADERS([sys/prctl.h])
- AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate prctl])
-
-+
-+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
-+
-+AC_CHECK_HEADERS([sys/signalfd.h sys/timerfd.h])
-+
-+# 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])],
-@@ -100,17 +122,23 @@ AC_SUBST([ICONDIR])
-
- if test "x$enable_libraries" = "xyes"; then
- PKG_CHECK_MODULES(FFI, [libffi])
-- AC_CHECK_DECL(SFD_CLOEXEC,[],
-- [AC_MSG_ERROR("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")],
-- [[#include <sys/timerfd.h>]])
-+dnl convert SFD_CLOEXEC and TFD_CLOEXEC to warning while figuring out how to do this.
-+ if test "x$ac_cv_header_sys_epoll_h" = "xyes"; then
-+ AC_CHECK_DECL(SFD_CLOEXEC,[],
-+ [AC_MSG_WARN("SFD_CLOEXEC is needed to compile wayland libraries")],
-+ [[#include <sys/signalfd.h>]])
-+ AC_CHECK_DECL(TFD_CLOEXEC,[],
-+ [AC_MSG_WARN("TFD_CLOEXEC is needed to compile wayland libraries")],
-+ [[#include <sys/timerfd.h>]])
-+ fi
- AC_CHECK_DECL(CLOCK_MONOTONIC,[],
- [AC_MSG_ERROR("CLOCK_MONOTONIC is needed to compile wayland libraries")],
- [[#include <time.h>]])
- fi
-
-+EPOLLSHIM_LIBS="-lepoll-shim"
-+AC_SUBST(EPOLLSHIM_LIBS)
-+
- PKG_CHECK_MODULES(EXPAT, [expat])
-
- AM_CONDITIONAL([DTD_VALIDATION], [test "x$enable_dtd_validation" = "xyes"])
diff --git a/wayland/patches/patch-src_event-loop.c b/wayland/patches/patch-src_event-loop.c
deleted file mode 100644
index 90ad400fc8..0000000000
--- a/wayland/patches/patch-src_event-loop.c
+++ /dev/null
@@ -1,32 +0,0 @@
-$NetBSD$
-
-https://lists.freedesktop.org/archives/wayland-devel/2019-February/040024.html
-
---- src/event-loop.c.orig 2019-03-21 00:55:25.000000000 +0000
-+++ src/event-loop.c
-@@ -22,7 +22,8 @@
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
--
-+#include "config.h"
-+#ifdef HAVE_SYS_EPOLL_H
- #include <stddef.h>
- #include <stdio.h>
- #include <errno.h>
-@@ -35,9 +36,9 @@
- #include <sys/socket.h>
- #include <sys/un.h>
- #include <sys/epoll.h>
-+#include <unistd.h>
- #include <sys/signalfd.h>
- #include <sys/timerfd.h>
--#include <unistd.h>
- #include "wayland-util.h"
- #include "wayland-private.h"
- #include "wayland-server-core.h"
-@@ -702,3 +703,4 @@ wl_event_loop_get_destroy_listener(struc
- {
- return wl_signal_get(&loop->destroy_signal, notify);
- }
-+#endif /* HAVE_SYS_EPOLL_H */
diff --git a/wayland/patches/patch-src_wayland-os.c b/wayland/patches/patch-src_wayland-os.c
deleted file mode 100644
index 8bc5391aa7..0000000000
--- a/wayland/patches/patch-src_wayland-os.c
+++ /dev/null
@@ -1,120 +0,0 @@
-$NetBSD$
-
-BSD support from FreeBSD
-
-https://lists.freedesktop.org/archives/wayland-devel/2019-February/040024.html
-
---- src/wayland-os.c.orig 2019-03-21 00:55:25.000000000 +0000
-+++ 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,17 +153,20 @@ 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)
-+wl_os_queue_create_cloexec(void)
- {
- int fd;
-
-@@ -148,6 +181,16 @@ wl_os_epoll_create_cloexec(void)
- fd = epoll_create(1);
- return set_cloexec_or_close(fd);
- }
-+#elif defined(HAVE_SYS_EVENT_H)
-+int
-+wl_os_queue_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/wayland/patches/patch-src_wayland-os.h b/wayland/patches/patch-src_wayland-os.h
deleted file mode 100644
index 5bfe2c2e38..0000000000
--- a/wayland/patches/patch-src_wayland-os.h
+++ /dev/null
@@ -1,33 +0,0 @@
-$NetBSD$
-
-BSD support from FreeBSD
-
-https://lists.freedesktop.org/archives/wayland-devel/2019-February/040024.html
-
---- src/wayland-os.h.orig 2019-03-21 00:55:25.000000000 +0000
-+++ src/wayland-os.h
-@@ -26,17 +26,23 @@
- #ifndef WAYLAND_OS_H
- #define WAYLAND_OS_H
-
-+#include "../config.h"
-+
- 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);
-
-+
- int
--wl_os_epoll_create_cloexec(void);
-+wl_os_queue_create_cloexec(void);
-
- int
- wl_os_accept_cloexec(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
diff --git a/wayland/patches/patch-src_wayland-server.c b/wayland/patches/patch-src_wayland-server.c
deleted file mode 100644
index ccb883c6da..0000000000
--- a/wayland/patches/patch-src_wayland-server.c
+++ /dev/null
@@ -1,100 +0,0 @@
-$NetBSD$
-
-BSD support from FreeBSD
-
---- src/wayland-server.c.orig 2019-03-21 00:55:25.000000000 +0000
-+++ src/wayland-server.c
-@@ -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"
-@@ -77,7 +84,17 @@ struct wl_client {
- struct wl_list link;
- struct wl_map objects;
- struct wl_priv_signal destroy_signal;
-+#ifdef HAVE_SYS_UCRED_H
-+#ifdef __NetBSD__
-+ struct uucred xucred;
-+#else
-+ /* FreeBSD */
-+ struct xucred xucred;
-+#endif
-+#else
-+ /* Linux */
- struct ucred ucred;
-+#endif
- int error;
- struct wl_priv_signal resource_created_signal;
- };
-@@ -312,7 +329,8 @@ wl_resource_post_error(struct wl_resourc
- static void
- destroy_client_with_error(struct wl_client *client, const char *reason)
- {
-- wl_log("%s (pid %u)\n", reason, client->ucred.pid);
-+ wl_log("Destroying with error: %s\n", reason);
-+ //wl_log("%s (pid %u)\n", reason, client->ucred.pid);
- wl_client_destroy(client);
- }
-
-@@ -526,10 +544,20 @@ wl_client_create(struct wl_display *disp
- 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)
-@@ -583,12 +611,23 @@ WL_EXPORT void
- 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/wayland/patches/patch-src_wayland-shm.c b/wayland/patches/patch-src_wayland-shm.c
deleted file mode 100644
index 1332bf1e51..0000000000
--- a/wayland/patches/patch-src_wayland-shm.c
+++ /dev/null
@@ -1,151 +0,0 @@
-$NetBSD$
-
-BSD support from FreeBSD
-
---- src/wayland-shm.c.orig 2019-03-21 00:55:25.000000000 +0000
-+++ src/wayland-shm.c
-@@ -30,6 +30,8 @@
-
- #define _GNU_SOURCE
-
-+#include "../config.h"
-+
- #include <stdbool.h>
- #include <stdio.h>
- #include <stdlib.h>
-@@ -59,6 +61,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 {
-@@ -76,15 +81,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,
-@@ -110,6 +124,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);
- }
-@@ -223,6 +241,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)
-@@ -284,7 +369,14 @@ shm_create_pool(struct wl_client *client
- "failed mmap fd %d: %m", 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/wayland/patches/patch-tests_client-test.c b/wayland/patches/patch-tests_client-test.c
deleted file mode 100644
index c78c422aa4..0000000000
--- a/wayland/patches/patch-tests_client-test.c
+++ /dev/null
@@ -1,23 +0,0 @@
-$NetBSD$
-
-BSD support from FreeBSD
-
---- 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/wayland/patches/patch-tests_connection-test.c b/wayland/patches/patch-tests_connection-test.c
deleted file mode 100644
index d690ac9c06..0000000000
--- a/wayland/patches/patch-tests_connection-test.c
+++ /dev/null
@@ -1,33 +0,0 @@
-$NetBSD$
-
-BSD support from FreeBSD
-
---- tests/connection-test.c.orig 2017-02-07 22:59:06 UTC
-+++ tests/connection-test.c
-@@ -37,6 +37,7 @@
- #include <sys/stat.h>
- #include <poll.h>
-
-+#include "wayland-os.h"
- #include "wayland-private.h"
- #include "test-runner.h"
- #include "test-compositor.h"
-@@ -48,7 +49,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);
-@@ -181,8 +182,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/wayland/patches/patch-tests_event-loop-test.c b/wayland/patches/patch-tests_event-loop-test.c
deleted file mode 100644
index ccd4f49fa5..0000000000
--- a/wayland/patches/patch-tests_event-loop-test.c
+++ /dev/null
@@ -1,44 +0,0 @@
-$NetBSD$
-
-BSD support from FreeBSD
-
---- tests/event-loop-test.c.orig 2019-03-21 00:55:25.000000000 +0000
-+++ tests/event-loop-test.c
-@@ -167,10 +167,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);
-@@ -234,12 +234,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/wayland/patches/patch-tests_os-wrappers-test.c b/wayland/patches/patch-tests_os-wrappers-test.c
deleted file mode 100644
index 49c2963134..0000000000
--- a/wayland/patches/patch-tests_os-wrappers-test.c
+++ /dev/null
@@ -1,203 +0,0 @@
-$NetBSD$
-
-BSD support from FreeBSD
-
-https://lists.freedesktop.org/archives/wayland-devel/2019-February/040024.html
-
---- tests/os-wrappers-test.c.orig 2019-03-21 00:55:25.000000000 +0000
-+++ tests/os-wrappers-test.c
-@@ -26,6 +26,8 @@
-
- #define _GNU_SOURCE
-
-+#include "../config.h"
-+
- #include <stdlib.h>
- #include <stdint.h>
- #include <assert.h>
-@@ -38,7 +40,12 @@
- #include <stdarg.h>
- #include <fcntl.h>
- #include <stdio.h>
-+
-+#ifdef HAVE_SYS_EPOLL_H
- #include <sys/epoll.h>
-+#elif defined(HAVE_SYS_EVENT_H)
-+#include <sys/event.h>
-+#endif
-
- #include "wayland-private.h"
- #include "test-runner.h"
-@@ -55,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 defined(HAVE_SYS_EVENT_H)
-+static int (*real_kqueue)(void);
-+static int wrapped_calls_kqueue;
-+#endif
-
- static void
- init_fallbacks(int do_fallbacks)
-@@ -65,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 defined(HAVE_SYS_EVENT_H)
-+ real_kqueue = dlsym(RTLD_NEXT, "kqueue");
-+#endif
- }
-
- __attribute__ ((visibility("default"))) int
-@@ -73,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);
- }
-@@ -89,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*);
-@@ -106,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)
- {
-@@ -127,6 +150,21 @@ epoll_create1(int flags)
-
- return real_epoll_create1(flags);
- }
-+#elif defined(HAVE_SYS_EVENT_H)
-+__attribute__ ((visibility("default"))) int
-+kqueue(void)
-+{
-+ wrapped_calls_kqueue++;
-+
-+ if (fall_back) {
-+ wrapped_calls_kqueue++; /* kqueue() not wrapped */
-+ errno = EINVAL;
-+ return -1;
-+ }
-+
-+ return real_kqueue();
-+}
-+#endif
-
- static void
- do_os_wrappers_socket_cloexec(int n)
-@@ -156,12 +194,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)
-@@ -195,11 +235,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;
-@@ -218,8 +260,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);
-@@ -328,21 +369,23 @@ 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)
-+do_os_wrappers_queue_create_cloexec(int n)
- {
- int fd;
- int nr_fds;
-
- nr_fds = count_open_fds();
-
-- fd = wl_os_epoll_create_cloexec();
-+ fd = wl_os_queue_create_cloexec();
- assert(fd >= 0);
-
- #ifdef EPOLL_CLOEXEC
-@@ -357,13 +400,13 @@ do_os_wrappers_epoll_create_cloexec(int
- TEST(os_wrappers_epoll_create_cloexec)
- {
- init_fallbacks(0);
-- do_os_wrappers_epoll_create_cloexec(1);
-+ do_os_wrappers_queue_create_cloexec(1);
- }
-
- TEST(os_wrappers_epoll_create_cloexec_fallback)
- {
- init_fallbacks(1);
-- do_os_wrappers_epoll_create_cloexec(2);
-+ do_os_wrappers_queue_create_cloexec(2);
- }
-
- /* FIXME: add tests for wl_os_accept_cloexec() */
diff --git a/wayland/patches/patch-tests_queue-test.c b/wayland/patches/patch-tests_queue-test.c
deleted file mode 100644
index 59a6c155a8..0000000000
--- a/wayland/patches/patch-tests_queue-test.c
+++ /dev/null
@@ -1,25 +0,0 @@
-$NetBSD$
-
-BSD support from FreeBSD
-
---- tests/queue-test.c.orig 2016-10-22 16:23:10 UTC
-+++ tests/queue-test.c
-@@ -23,6 +23,8 @@
- * SOFTWARE.
- */
-
-+#include "../config.h"
-+
- #include <stdlib.h>
- #include <stdint.h>
- #include <stdio.h>
-@@ -31,6 +33,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/wayland/patches/patch-tests_sanity-test.c b/wayland/patches/patch-tests_sanity-test.c
deleted file mode 100644
index e77d6e887e..0000000000
--- a/wayland/patches/patch-tests_sanity-test.c
+++ /dev/null
@@ -1,27 +0,0 @@
-$NetBSD$
-
-BSD support from FreeBSD
-
---- tests/sanity-test.c.orig 2019-03-21 00:55:25.000000000 +0000
-+++ tests/sanity-test.c
-@@ -87,7 +87,8 @@ FAIL_TEST(sanity_fd_leak)
- {
- int fd[2];
-
-- assert(fd_leak_check_enabled);
-+// XXX FreeBSD disables leak checks...
-+// assert(fd_leak_check_enabled);
-
- /* leak 2 file descriptors */
- if (pipe(fd) < 0)
-@@ -124,8 +125,8 @@ static void
- sanity_fd_no_leak(void)
- {
- int fd[2];
--
-- assert(fd_leak_check_enabled);
-+// XXX FreeBSD disables leak checks...
-+// assert(fd_leak_check_enabled);
-
- /* leak 2 file descriptors */
- if (pipe(fd) < 0)
diff --git a/wayland/patches/patch-tests_test-helpers.c b/wayland/patches/patch-tests_test-helpers.c
deleted file mode 100644
index 79cc2bd29c..0000000000
--- a/wayland/patches/patch-tests_test-helpers.c
+++ /dev/null
@@ -1,56 +0,0 @@
-$NetBSD$
-
-BSD support from FreeBSD
-
---- tests/test-helpers.c.orig 2019-03-21 00:55:25.000000000 +0000
-+++ tests/test-helpers.c
-@@ -25,6 +25,12 @@
-
- #include "config.h"
-
-+#include "../config.h"
-+
-+#ifdef HAVE_SYS_PARAM_H
-+#include <sys/param.h>
-+#endif
-+
- #include <assert.h>
- #include <errno.h>
- #include <dirent.h>
-@@ -40,6 +46,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)
- {
-@@ -47,8 +63,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))) {
-@@ -57,7 +73,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/wayland/patches/patch-tests_test-runner.c b/wayland/patches/patch-tests_test-runner.c
deleted file mode 100644
index 1a49d9aee6..0000000000
--- a/wayland/patches/patch-tests_test-runner.c
+++ /dev/null
@@ -1,139 +0,0 @@
-$NetBSD$
-
-BSD support from FreeBSD
-
---- tests/test-runner.c.orig 2019-03-21 00:55:25.000000000 +0000
-+++ 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,13 +43,28 @@
- #include <errno.h>
- #include <limits.h>
- #include <sys/ptrace.h>
-+#ifdef HAVE_SYS_PRCTL_H
- #include <sys/prctl.h>
-+#endif
-+#include <signal.h>
- #ifndef PR_SET_PTRACER
- # define PR_SET_PTRACER 0x59616d61
- #endif
-
- #include "test-runner.h"
-
-+#ifndef PTRACE_ATTACH
-+#define PTRACE_ATTACH PT_ATTACH
-+#endif
-+
-+#ifndef PTRACE_CONT
-+#define PTRACE_CONT PT_CONTINUE
-+#endif
-+
-+#ifndef PTRACE_DETACH
-+#define PTRACE_DETACH PT_DETACH
-+#endif
-+
- /* when set to 1, check if tests are not leaking opened files.
- * It is turned on by default. It can be turned off by
- * WAYLAND_TEST_NO_LEAK_CHECK environment variable. */
-@@ -51,7 +72,7 @@ int fd_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 */
-@@ -239,6 +260,8 @@ is_debugger_attached(void)
- return 0;
- }
-
-+
-+// xxx start here
- pid = fork();
- if (pid == -1) {
- perror("fork");
-@@ -259,13 +282,14 @@ 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 {
- close(pipefd[0]);
-
- /* Enable child to ptrace the parent process */
-+#if defined(HAVE_PRCTL)
- rc = prctl(PR_SET_PTRACER, pid);
- if (rc != 0 && errno != EINVAL) {
- /* An error prevents us from telling if a debugger is attached.
-@@ -275,7 +299,9 @@ is_debugger_attached(void)
- */
- perror("prctl");
- write(pipefd[1], "-", 1);
-- } else {
-+ } else
-+#endif
-+ {
- /* Signal to client that parent is ready by passing '+' */
- write(pipefd[1], "+", 1);
- }
-@@ -295,9 +321,6 @@ int main(int argc, char *argv[])
- int total, pass;
- siginfo_t info;
-
-- if (isatty(fileno(stderr)))
-- is_atty = 1;
--
- if (is_debugger_attached()) {
- fd_leak_check_enabled = 0;
- timeouts_enabled = 0;
-@@ -336,7 +359,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();
-@@ -367,6 +391,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++;
Home |
Main Index |
Thread Index |
Old Index