mirror of
https://gitlab.com/sortix/sortix.git
synced 2023-02-13 20:55:38 -05:00

This change imports the ports collection from the former porttix and srctix repositories and converts them to port(5) files with metadata pointing to the upstream release tarballs with patches checked into this repository. Ports are now developed and versioned along with the operating system and are automatically built per the PACKAGES environment variable. The patches are licensed under the same license as the relevant ports. Tix has gained support for the new port(5) format. tix-port(8) is the new high level ports build even point that handles downloading pstream releases into the new mirror cache directory, applying the patches, building the port with the lower-level tix-build(8), and finally installing the binary package. The new tix-vars(8) program parses port(5) files and the new tix-rmdiff(8) program produces input for tix-rmpatch(8). The old doc/ directory is discontinued in favor of manual pages documenting the new ports system. The obsolete porttix-create(8) and srctix-create(8) programs are removed.
219 lines
7 KiB
Diff
219 lines
7 KiB
Diff
diff -Paur --no-dereference -- libevent.upstream/buffer.c libevent/buffer.c
|
|
--- libevent.upstream/buffer.c
|
|
+++ libevent/buffer.c
|
|
@@ -183,7 +183,7 @@
|
|
/* this way we can manipulate the buffer to different addresses,
|
|
* which is required for mmap for example.
|
|
*/
|
|
- chain->buffer = EVBUFFER_CHAIN_EXTRA(u_char, chain);
|
|
+ chain->buffer = EVBUFFER_CHAIN_EXTRA(unsigned char, chain);
|
|
|
|
return (chain);
|
|
}
|
|
@@ -2749,7 +2749,7 @@
|
|
if (!chain)
|
|
return (-1);
|
|
chain->flags |= EVBUFFER_REFERENCE | EVBUFFER_IMMUTABLE;
|
|
- chain->buffer = (u_char *)data;
|
|
+ chain->buffer = (unsigned char *)data;
|
|
chain->buffer_len = datlen;
|
|
chain->off = datlen;
|
|
|
|
diff -Paur --no-dereference -- libevent.upstream/bufferevent_sock.c libevent/bufferevent_sock.c
|
|
--- libevent.upstream/bufferevent_sock.c
|
|
+++ libevent/bufferevent_sock.c
|
|
@@ -63,6 +63,7 @@
|
|
#include "event2/util.h"
|
|
#include "event2/bufferevent.h"
|
|
#include "event2/buffer.h"
|
|
+#include "event2/buffer_compat.h"
|
|
#include "event2/bufferevent_struct.h"
|
|
#include "event2/bufferevent_compat.h"
|
|
#include "event2/event.h"
|
|
@@ -75,6 +76,7 @@
|
|
#endif
|
|
|
|
/* prototypes */
|
|
+void bufferevent_read_pressure_cb(struct evbuffer *, size_t, size_t, void *);
|
|
static int be_socket_enable(struct bufferevent *, short);
|
|
static int be_socket_disable(struct bufferevent *, short);
|
|
static void be_socket_destruct(struct bufferevent *);
|
|
@@ -119,6 +121,40 @@
|
|
}
|
|
}
|
|
|
|
+static int
|
|
+bufferevent_add(struct event *ev, struct timeval timeout)
|
|
+{
|
|
+ struct timeval *ptv = NULL;
|
|
+
|
|
+ if (timeout.tv_sec || timeout.tv_usec) {
|
|
+ ptv = &timeout;
|
|
+ }
|
|
+
|
|
+ return (event_add(ev, ptv));
|
|
+}
|
|
+
|
|
+/*
|
|
+ * This callback is executed when the size of the input buffer changes.
|
|
+ * We use it to apply back pressure on the reading side.
|
|
+ */
|
|
+
|
|
+/* This API was needed to port OpenBSD's httpd to Sortix. */
|
|
+void
|
|
+bufferevent_read_pressure_cb(struct evbuffer *buf, size_t old, size_t now,
|
|
+ void *arg) {
|
|
+ struct bufferevent *bufev = arg;
|
|
+ /*
|
|
+ * If we are below the watermark then reschedule reading if it's
|
|
+ * still enabled.
|
|
+ */
|
|
+ if (bufev->wm_read.high == 0 || now < bufev->wm_read.high) {
|
|
+ evbuffer_setcb(buf, NULL, NULL);
|
|
+
|
|
+ if (bufev->enabled & EV_READ)
|
|
+ bufferevent_add(&bufev->ev_read, bufev->timeout_read);
|
|
+ }
|
|
+}
|
|
+
|
|
static void
|
|
bufferevent_readcb(evutil_socket_t fd, short event, void *arg)
|
|
{
|
|
diff -Paur --no-dereference -- libevent.upstream/config.sub libevent/config.sub
|
|
--- libevent.upstream/config.sub
|
|
+++ libevent/config.sub
|
|
@@ -1348,7 +1348,7 @@
|
|
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
|
|
| -sym* | -kopensolaris* \
|
|
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
|
|
- | -aos* | -aros* \
|
|
+ | -aos* | -aros* | -sortix* \
|
|
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
|
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
|
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
|
|
diff -Paur --no-dereference -- libevent.upstream/configure libevent/configure
|
|
--- libevent.upstream/configure
|
|
+++ libevent/configure
|
|
@@ -14602,7 +14602,7 @@
|
|
# which indicates that we try without any flags at all, and "pthread-config"
|
|
# which is a program returning the flags for the Pth emulation library.
|
|
|
|
-acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
|
|
+acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt"
|
|
|
|
# The ordering *is* (sometimes) important. Some notes on the
|
|
# individual items follow:
|
|
@@ -14726,8 +14726,8 @@
|
|
main ()
|
|
{
|
|
pthread_t th; pthread_join(th, 0);
|
|
- pthread_attr_init(0); pthread_cleanup_push(0, 0);
|
|
- pthread_create(0,0,0,0); pthread_cleanup_pop(0);
|
|
+ pthread_attr_init(0);
|
|
+ pthread_create(0,0,0,0);
|
|
;
|
|
return 0;
|
|
}
|
|
diff -Paur --no-dereference -- libevent.upstream/evutil.c libevent/evutil.c
|
|
--- libevent.upstream/evutil.c
|
|
+++ libevent/evutil.c
|
|
@@ -2102,11 +2102,7 @@
|
|
long
|
|
_evutil_weakrand(void)
|
|
{
|
|
-#ifdef WIN32
|
|
- return rand();
|
|
-#else
|
|
- return random();
|
|
-#endif
|
|
+ return arc4random() & 0x7FFFFFFF;
|
|
}
|
|
|
|
/**
|
|
diff -Paur --no-dereference -- libevent.upstream/evutil_rand.c libevent/evutil_rand.c
|
|
--- libevent.upstream/evutil_rand.c
|
|
+++ libevent/evutil_rand.c
|
|
@@ -174,7 +174,7 @@
|
|
void
|
|
evutil_secure_rng_add_bytes(const char *buf, size_t n)
|
|
{
|
|
- arc4random_addrandom((unsigned char*)buf,
|
|
- n>(size_t)INT_MAX ? INT_MAX : (int)n);
|
|
+ (void) buf;
|
|
+ (void) n;
|
|
}
|
|
|
|
diff -Paur --no-dereference -- libevent.upstream/http-internal.h libevent/http-internal.h
|
|
--- libevent.upstream/http-internal.h
|
|
+++ libevent/http-internal.h
|
|
@@ -70,10 +70,10 @@
|
|
struct event retry_ev; /* for retrying connects */
|
|
|
|
char *bind_address; /* address to use for binding the src */
|
|
- u_short bind_port; /* local port for binding the src */
|
|
+ unsigned short bind_port; /* local port for binding the src */
|
|
|
|
char *address; /* address to connect to */
|
|
- u_short port;
|
|
+ unsigned short port;
|
|
|
|
size_t max_headers_size;
|
|
ev_uint64_t max_body_size;
|
|
diff -Paur --no-dereference -- libevent.upstream/Makefile.in libevent/Makefile.in
|
|
--- libevent.upstream/Makefile.in
|
|
+++ libevent/Makefile.in
|
|
@@ -537,7 +537,7 @@
|
|
@INSTALL_LIBEVENT_TRUE@lib_LTLIBRARIES = $(LIBEVENT_LIBS_LA)
|
|
@INSTALL_LIBEVENT_TRUE@pkgconfig_DATA = $(LIBEVENT_PKGCONFIG)
|
|
@INSTALL_LIBEVENT_FALSE@noinst_LTLIBRARIES = $(LIBEVENT_LIBS_LA)
|
|
-SUBDIRS = . include sample test
|
|
+SUBDIRS = . include
|
|
@BUILD_WIN32_FALSE@SYS_LIBS =
|
|
@BUILD_WIN32_TRUE@SYS_LIBS = -lws2_32 -lshell32 -ladvapi32
|
|
@BUILD_WIN32_FALSE@SYS_SRC = $(am__append_5) $(am__append_6) \
|
|
@@ -1219,6 +1219,9 @@
|
|
clean-noinstLTLIBRARIES mostlyclean-am
|
|
|
|
distclean: distclean-recursive
|
|
+ rm -f sample/Makefile
|
|
+ rm -rf test/.deps
|
|
+ rm -r test/Makefile
|
|
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
|
-rm -rf $(DEPDIR) ./$(DEPDIR)
|
|
-rm -f Makefile
|
|
diff -Paur --no-dereference -- libevent.upstream/poll.c libevent/poll.c
|
|
--- libevent.upstream/poll.c
|
|
+++ libevent/poll.c
|
|
@@ -180,7 +180,7 @@
|
|
if (res == 0 || nfds == 0)
|
|
return (0);
|
|
|
|
- i = random() % nfds;
|
|
+ i = arc4random_uniform(nfds);
|
|
for (j = 0; j < nfds; j++) {
|
|
int what;
|
|
if (++i == nfds)
|
|
diff -Paur --no-dereference -- libevent.upstream/select.c libevent/select.c
|
|
--- libevent.upstream/select.c
|
|
+++ libevent/select.c
|
|
@@ -177,7 +177,7 @@
|
|
event_debug(("%s: select reports %d", __func__, res));
|
|
|
|
check_selectop(sop);
|
|
- i = random() % nfds;
|
|
+ i = arc4random_uniform(nfds);
|
|
for (j = 0; j < nfds; ++j) {
|
|
if (++i >= nfds)
|
|
i = 0;
|
|
diff -Paur --no-dereference -- libevent.upstream/util-internal.h libevent/util-internal.h
|
|
--- libevent.upstream/util-internal.h
|
|
+++ libevent/util-internal.h
|
|
@@ -75,7 +75,7 @@
|
|
|
|
/* True iff e is an error that means a read/write operation can be retried. */
|
|
#define EVUTIL_ERR_RW_RETRIABLE(e) \
|
|
- ((e) == EINTR || (e) == EAGAIN)
|
|
+ ((e) == EINTR || (e) == EAGAIN || (e) == EWOULDBLOCK)
|
|
/* True iff e is an error that means an connect can be retried. */
|
|
#define EVUTIL_ERR_CONNECT_RETRIABLE(e) \
|
|
((e) == EINTR || (e) == EINPROGRESS)
|