<pre style='margin:0'>
Landon Fuller (landonf) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/a567776531454d000232f478812243c5615a9f1c">https://github.com/macports/macports-ports/commit/a567776531454d000232f478812243c5615a9f1c</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit a567776531454d000232f478812243c5615a9f1c
</span>Author: Landon Fuller <landonf@macports.org>
AuthorDate: Thu Feb 4 12:14:19 2021 -0700
<span style='display:block; white-space:pre;color:#404040;'> nq: new port
</span>---
sysutils/nq/Portfile | 27 ++++++++++
sysutils/nq/files/kqueue.diff | 121 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 148 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/nq/Portfile b/sysutils/nq/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..fba16f192e1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/nq/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,27 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name nq
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories sysutils
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers {landonf @landonf} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license public-domain
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description Unix command line queue utility
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description nq allows creating very lightweight job queue \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ systems which require no setup, maintenance, supervision, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ or any long-running processes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup leahneukirchen nq 0.3.1 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 ae794b283b21a7b44b0c855ee617421010b87dc8 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 b4c6dbc8aaf98142cea45bb61c22d1352021e6186b433f991244c1ed934048fb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 11032
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles kqueue.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_configure no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.args CC=${configure.cc} CFLAGS="${configure.cflags} ${configure.cc_archflags}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot.args PREFIX="${prefix}"
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/nq/files/kqueue.diff b/sysutils/nq/files/kqueue.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..9f6a22c0117
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/nq/files/kqueue.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,121 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/fq.1 b/fq.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index df60052..dec179b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- fq.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ fq.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,4 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-.Dd August 25, 2015
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++.Dd January 31, 2021
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .Dt FQ 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .Os
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .Sh NAME
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -49,6 +49,9 @@ Directory where lock files/job output resides, see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ On Linux,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .Xr inotify 7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ is used to monitor job output.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++On FreeBSD and macOS,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++.Xr kqueue 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++is used.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ On other operating systems, polling is used.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .Sh SEE ALSO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .Xr nq 1 ,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/fq.c b/fq.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 11e176c..1a702d6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- fq.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ fq.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,11 +25,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define USE_INOTIFY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__FreeBSD__) || defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define USE_KEVENT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef USE_INOTIFY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sys/inotify.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char ibuf[8192];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef USE_KEVENT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <sys/event.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char buf[8192];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -62,6 +70,10 @@ main(int argc, char *argv[])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef USE_INOTIFY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int ifd, wd;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef USE_KEVENT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int kq, note;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ struct kevent kev;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ close(0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -134,6 +146,11 @@ main(int argc, char *argv[])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (ifd < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit(111);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef USE_KEVENT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ kq = kqueue();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (kq < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exit(111);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (i = optind; i < argc; i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ loff = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -163,6 +180,20 @@ main(int argc, char *argv[])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit(111);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef USE_KEVENT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ note = NOTE_WRITE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ note |= NOTE_FUNLOCK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __FreeBSD__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ note |= NOTE_CLOSE_WRITE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EV_SET(&kev, fd, EVFILT_VNODE, EV_ADD | EV_CLEAR, note, 0, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (kevent(kq, &kev, 1, NULL, 0, NULL) < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ perror("kevent");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exit(111);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ off = lseek(fd, 0, SEEK_END);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -176,9 +207,11 @@ main(int argc, char *argv[])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (flock(fd, LOCK_EX | LOCK_NB) == -1 &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ errno == EWOULDBLOCK) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef USE_INOTIFY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(USE_INOTIFY)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* any inotify event is good */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ read(ifd, ibuf, sizeof ibuf);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(USE_KEVENT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ kevent(kq, NULL, 0, &kev, 1, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* poll for size change */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (off == lseek(fd, 0, SEEK_END))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -217,12 +250,19 @@ main(int argc, char *argv[])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef USE_INOTIFY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inotify_rm_watch(ifd, wd);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef USE_KEVENT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EV_SET(&kev, fd, EVFILT_VNODE, EV_DELETE, 0, 0, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ kevent(kq, &kev, 1, NULL, 0, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ close(fd);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef USE_INOTIFY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ close(ifd);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef USE_KEVENT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ close(kq);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span></pre><pre style='margin:0'>
</pre>