--- b/devel/libfixposix/Makefile +++ b/devel/libfixposix/Makefile @@ -1,9 +1,10 @@ PORTNAME= libfixposix DISTVERSIONPREFIX= v DISTVERSION= 0.4.3 +PORTREVISION= 1 CATEGORIES= devel -MAINTAINER= ports@FreeBSD.org +MAINTAINER= ports@shiori.com.br COMMENT= Replacement for inconsistent parts of POSIX LICENSE= BSL --- b/devel/libfixposix/distinfo +++ b/devel/libfixposix/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1546150128 +TIMESTAMP = 1638482744 SHA256 (sionescu-libfixposix-v0.4.3_GH0.tar.gz) = 78fe8bcebf496520ac29b5b65049f5ec1977c6bd956640bdc6d1da6ea04d8504 SIZE (sionescu-libfixposix-v0.4.3_GH0.tar.gz) = 40370 --- /dev/null +++ b/devel/libfixposix/files/patch-src_lib_sendfile.c @@ -0,0 +1,34 @@ +changes `lfp_sendfile' so it returns the number of bytes sent, +mimicking Linux sendfile(2). + +Submited to upstream by Vasily Postnicov (shamaz.mazum@gmail.com), +see https://github.com/sionescu/libfixposix/pull/18. + +--- src/lib/sendfile.c.orig 2018-02-19 22:24:10 UTC ++++ src/lib/sendfile.c +@@ -38,6 +38,9 @@ int sendfile(int, int, off_t, off_t *, void *, int); + #endif + + #include ++# if defined(__FreeBSD__) || defined(__DragonFly__) ++#include ++# endif + + DSO_PUBLIC ssize_t + lfp_sendfile(int out_fd, int in_fd, off_t offset, size_t nbytes) +@@ -46,8 +49,13 @@ lfp_sendfile(int out_fd, int in_fd, off_t offset, size + # if defined(__linux__) + off_t off = offset; + return (ssize_t) sendfile(out_fd, in_fd, &off, nbytes); +-# elif defined(__FreeBSD__) +- return (ssize_t) sendfile(in_fd, out_fd, offset, nbytes, NULL, NULL, SF_MNOWAIT); ++# elif defined(__FreeBSD__) || defined(__DragonFly__) ++ off_t sbytes; ++ int res = sendfile(in_fd, out_fd, offset, nbytes, NULL, &sbytes, 0); ++ if (res == -1 && errno == EAGAIN) ++ res = 0; ++ if (res == 0) res = sbytes; ++ return res; + # elif defined(__DragonFly__) + return (ssize_t) sendfile(in_fd, out_fd, offset, nbytes, NULL, NULL, 0); + # elif defined(__APPLE__)