www/epiphany: build error (no getrandom(2) on 11.x)
Add alternate implementation for missing getrandom(2) on 11.x (v2) PR: 250128 Submitted by: John Hein <jcfyecrayz@liamekaens.com>
This commit is contained in:
parent
736b53430c
commit
c51a84d287
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=554147
@ -41,6 +41,7 @@ PORTSCOUT= limitw:1,even
|
||||
USES= compiler:c++11-lib cpe desktop-file-utils gettext gnome \
|
||||
localbase:ldflags meson pkgconfig python:3.4+ shebangfix \
|
||||
sqlite tar:xz xorg
|
||||
|
||||
CPE_VENDOR= gnome
|
||||
USE_GNOME= cairo gnomedesktop3 intlhack libwnck3 libxml2 libxslt
|
||||
USE_XORG= x11
|
||||
@ -55,4 +56,10 @@ SHEBANG_FILES= post_install.py
|
||||
|
||||
PLIST_SUB+= EPHY_VERSION=${PORTVERSION:R}
|
||||
|
||||
.include <bsd.port.mk>
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1200000
|
||||
EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-lib_ephy-sync-utils.c
|
||||
.endif
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
|
27
www/epiphany/files/extra-patch-lib_ephy-sync-utils.c
Normal file
27
www/epiphany/files/extra-patch-lib_ephy-sync-utils.c
Normal file
@ -0,0 +1,27 @@
|
||||
11.x does not have getrandom(2) (or getentropy(3))
|
||||
|
||||
--- lib/ephy-sync-utils.c.orig 2020-10-04 22:15:55 UTC
|
||||
+++ lib/ephy-sync-utils.c
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "ephy-settings.h"
|
||||
|
||||
#include <errno.h>
|
||||
+#include <fcntl.h>
|
||||
#include <glib/gi18n.h>
|
||||
#include <inttypes.h>
|
||||
#include <json-glib/json-glib.h>
|
||||
@@ -189,7 +190,13 @@ ephy_sync_utils_generate_random_bytes (v
|
||||
}
|
||||
#else
|
||||
do {
|
||||
- ret = getrandom (out, num_bytes, 0);
|
||||
+ int fd = open("/dev/urandom", O_RDONLY|O_CLOEXEC);
|
||||
+ if (fd != -1) {
|
||||
+ ret = read(fd, out, num_bytes);
|
||||
+ (void)close(fd);
|
||||
+ }
|
||||
+ else
|
||||
+ g_error ("Failed to open /dev/urandom to generate randomness: %s", g_strerror (errno));
|
||||
} while (ret < (gssize)num_bytes && errno == EINTR);
|
||||
|
||||
if (ret != (gssize)num_bytes)
|
Loading…
Reference in New Issue
Block a user