diff --git a/packages/newsboat/build.sh b/packages/newsboat/build.sh index bcf8022c5..cc4b3ea49 100644 --- a/packages/newsboat/build.sh +++ b/packages/newsboat/build.sh @@ -1,7 +1,6 @@ TERMUX_PKG_HOMEPAGE=https://newsboat.org/ TERMUX_PKG_DESCRIPTION="RSS/Atom feed reader for the text console" TERMUX_PKG_LICENSE="MIT" -TERMUX_PKG_API_LEVEL=24 TERMUX_PKG_VERSION=2.14.1 TERMUX_PKG_REVISION=2 TERMUX_PKG_SHA256=4bd0d3b1901a3fc7e0ef73b800587c28181a57b175c36b547dbd84636330df66 @@ -15,7 +14,7 @@ TERMUX_PKG_REPLACES=newsbeuter termux_step_pre_configure() { termux_setup_rust - + cp $TERMUX_PKG_BUILDER_DIR/lockf.c . # Used by newsboat Makefile: export CARGO_BUILD_TARGET=$CARGO_TARGET_NAME } diff --git a/packages/newsboat/fslock.cpp.patch b/packages/newsboat/fslock.cpp.patch new file mode 100644 index 000000000..3b5c63f6b --- /dev/null +++ b/packages/newsboat/fslock.cpp.patch @@ -0,0 +1,11 @@ +--- ../cache/newsboat-2.12/src/fslock.cpp 2018-06-24 19:30:30.000000000 +0000 ++++ ./src/fslock.cpp 2018-07-12 01:05:07.850121184 +0000 +@@ -4,7 +4,7 @@ + #include + #include + #include +- ++#include "lockf.c" + #include "logger.h" + + namespace newsboat { diff --git a/packages/newsboat/lockf.c b/packages/newsboat/lockf.c new file mode 100644 index 000000000..7019d3719 --- /dev/null +++ b/packages/newsboat/lockf.c @@ -0,0 +1,31 @@ +#include +#include +#include + +int lockf(int fd, int op, off_t size) +{ + struct flock l = { + .l_type = F_WRLCK, + .l_whence = SEEK_CUR, + .l_len = size, + }; + switch (op) { + case F_TEST: + l.l_type = F_RDLCK; + if (fcntl(fd, F_GETLK, &l) < 0) + return -1; + if (l.l_type == F_UNLCK || l.l_pid == getpid()) + return 0; + errno = EACCES; + return -1; + case F_ULOCK: + l.l_type = F_UNLCK; + case F_TLOCK: + return fcntl(fd, F_SETLK, &l); + case F_LOCK: + return fcntl(fd, F_SETLKW, &l); + } + errno = EINVAL; + return -1; +} +