summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikael Urankar <mikael@FreeBSD.org>2021-05-01 16:52:58 +0900
committerHiroki Tagato <tagattie@FreeBSD.org>2021-05-01 16:52:58 +0900
commit570ab3e0e8f1cba3c1bb27d77467ecde2713490f (patch)
tree7ff9b52befafdffc2102d10d2103077a14f35565
parentaccessibility/speech-dispatcher: update to 0.10.2. (diff)
devel/electron11: Fix ENOTTY error on uv_pipe_open.
-rw-r--r--devel/electron11/Makefile1
-rw-r--r--devel/electron11/files/patch-third__party_electron__node_deps_uv_src_unix_pipe.c18
2 files changed, 19 insertions, 0 deletions
diff --git a/devel/electron11/Makefile b/devel/electron11/Makefile
index 4024486c7b06..a54a120817c5 100644
--- a/devel/electron11/Makefile
+++ b/devel/electron11/Makefile
@@ -1,6 +1,7 @@
PORTNAME= electron
DISTVERSIONPREFIX= v
DISTVERSION= ${ELECTRON_VER:S/-beta./.b/}
+PORTREVISION= 1
CATEGORIES= devel java
MASTER_SITES= https://commondatastorage.googleapis.com/chromium-browser-official/:chromium_official \
https://commondatastorage.googleapis.com/chromium-nodejs/:chromium_node \
diff --git a/devel/electron11/files/patch-third__party_electron__node_deps_uv_src_unix_pipe.c b/devel/electron11/files/patch-third__party_electron__node_deps_uv_src_unix_pipe.c
new file mode 100644
index 000000000000..d01c2065440c
--- /dev/null
+++ b/devel/electron11/files/patch-third__party_electron__node_deps_uv_src_unix_pipe.c
@@ -0,0 +1,18 @@
+--- third_party/electron_node/deps/uv/src/unix/pipe.c.orig 2020-07-22 14:57:01 UTC
++++ third_party/electron_node/deps/uv/src/unix/pipe.c
+@@ -150,9 +150,13 @@ int uv_pipe_open(uv_pipe_t* handle, uv_file fd) {
+ if (mode == -1)
+ return UV__ERR(errno); /* according to docs, must be EBADF */
+
++ /* If ioctl(FIONBIO) reports ENOTTY, try fcntl(F_GETFL) + fcntl(F_SETFL).
++ * Workaround for e.g. kqueue fds not supporting ioctls.
++ */
+ err = uv__nonblock(fd, 1);
+- if (err)
+- return err;
++ if (err == UV_ENOTTY)
++ if (uv__nonblock == uv__nonblock_ioctl)
++ err = uv__nonblock_fcntl(fd, 1);
+
+ #if defined(__APPLE__)
+ err = uv__stream_try_select((uv_stream_t*) handle, &fd);