git: 2c0c288cb092 - main - devel/libfixposix: Import newer upstream fix

From: Gleb Popov <arrowd_at_FreeBSD.org>
Date: Thu, 20 Jan 2022 09:30:35 UTC
The branch main has been updated by arrowd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=2c0c288cb09231ccdfd7ec6f3616121c923d51ad

commit 2c0c288cb09231ccdfd7ec6f3616121c923d51ad
Author:     Filipe da Silva Santos <ports@shiori.com.br>
AuthorDate: 2022-01-20 09:27:28 +0000
Commit:     Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2022-01-20 09:29:37 +0000

    devel/libfixposix: Import newer upstream fix
    
    Last fix was not complete, since it didn't take `EAGAIN' semantic
    differences between Linux and FreeBSD in consideration.
    
    Reported by:        Vasily Postnicov <shamaz.masum@gmail.com>
    Obtained from:      https://github.com/sionescu/libfixposix/commit/cc50634551849cc667edd5b5b29f6f54ae2f9bc4
    
    Differential Revision: https://reviews.freebsd.org/D33931
---
 devel/libfixposix/Makefile                       |  2 +-
 devel/libfixposix/files/patch-src_lib_sendfile.c | 16 ++++++++++------
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/devel/libfixposix/Makefile b/devel/libfixposix/Makefile
index 0bf0e398cafc..1cebb9f7f059 100644
--- a/devel/libfixposix/Makefile
+++ b/devel/libfixposix/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	libfixposix
 DISTVERSIONPREFIX=	v
 DISTVERSION=	0.4.3
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	devel
 
 MAINTAINER=	ports@shiori.com.br
diff --git a/devel/libfixposix/files/patch-src_lib_sendfile.c b/devel/libfixposix/files/patch-src_lib_sendfile.c
index c69cc84fa1ed..4c80ea88e027 100644
--- a/devel/libfixposix/files/patch-src_lib_sendfile.c
+++ b/devel/libfixposix/files/patch-src_lib_sendfile.c
@@ -4,7 +4,7 @@ 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.orig	2022-01-18 20:14:50 UTC
 +++ src/lib/sendfile.c
 @@ -38,6 +38,7 @@ int sendfile(int, int, off_t, off_t *, void *, int);
  #endif
@@ -14,7 +14,7 @@ see https://github.com/sionescu/libfixposix/pull/18.
  
  DSO_PUBLIC ssize_t
  lfp_sendfile(int out_fd, int in_fd, off_t offset, size_t nbytes)
-@@ -46,18 +47,21 @@ lfp_sendfile(int out_fd, int in_fd, off_t offset, size
+@@ -46,18 +47,25 @@ 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);
@@ -23,15 +23,19 @@ see https://github.com/sionescu/libfixposix/pull/18.
 -# elif defined(__DragonFly__)
 -    return (ssize_t) sendfile(in_fd, out_fd, offset, nbytes, NULL, NULL, 0);
 +# elif defined(__FreeBSD__) || defined(__DragonFly__)
-+    off_t sbytes;
++    off_t sbytes = 0;
 +    int res = sendfile(in_fd, out_fd, offset, nbytes, NULL, &sbytes, 0);
-+    if (res == 0) { return sbytes; }
-+    return res;
++    if (res == 0 || (res < 0 && errno == EAGAIN && sbytes > 0)) {
++        return sbytes;
++    }
++    return -1;
  # elif defined(__APPLE__)
      off_t len = nbytes;
 -    return (ssize_t) sendfile(in_fd, out_fd, offset, &len, NULL, 0);
 +    int res = sendfile(in_fd, out_fd, offset, &len, NULL, 0);
-+    if (res == 0) { return len; }
++    if (res == 0 || (res < 0 && errno == EAGAIN && len > 0)) {
++        return len;
++    }
 +    return -1;
  # else
  #  error "It appears that this OS has sendfile(), but LFP doesn't use it at the moment"