From owner-freebsd-perl@FreeBSD.ORG Mon Apr 9 18:56:33 2012 Return-Path: Delivered-To: perl@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 68641106566C; Mon, 9 Apr 2012 18:56:33 +0000 (UTC) (envelope-from mel@datakitty.lan.rachie.is-a-geek.net) Received: from datakitty.lan.rachie.is-a-geek.net (rachie.is-a-geek.net [66.230.99.27]) by mx1.freebsd.org (Postfix) with ESMTP id F291F8FC17; Mon, 9 Apr 2012 18:56:32 +0000 (UTC) Received: from datakitty.lan.rachie.is-a-geek.net (localhost [127.0.0.1]) by datakitty.lan.rachie.is-a-geek.net (8.14.5/8.14.5) with ESMTP id q39IuUK9093499; Mon, 9 Apr 2012 10:56:30 -0800 (AKDT) (envelope-from mel@datakitty.lan.rachie.is-a-geek.net) Received: (from mel@localhost) by datakitty.lan.rachie.is-a-geek.net (8.14.5/8.14.5/Submit) id q39IuUjG093498; Mon, 9 Apr 2012 10:56:30 -0800 (AKDT) (envelope-from mel) Date: Mon, 9 Apr 2012 10:56:30 -0800 (AKDT) Message-Id: <201204091856.q39IuUjG093498@datakitty.lan.rachie.is-a-geek.net> To: FreeBSD-gnats-submit@freebsd.org From: Mel Flynn X-send-pr-version: 3.113 X-GNATS-Notify: Cc: Steve Wills , Maintainer Subject: [patch] devel/p5-Sys-Syscall: fix sendfile_freebsd X-BeenThere: freebsd-perl@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Mel Flynn List-Id: maintainer of a number of perl-related ports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Apr 2012 18:56:33 -0000 >Submitter-Id: current-users >Originator: Mel Flynn >Organization: >Confidential: no >Synopsis: [patch] devel/p5-Sys-Syscall: fix sendfile_freebsd >Severity: serious >Priority: low >Category: ports >Class: sw-bug >Release: FreeBSD 8.2-STABLE amd64 >Environment: System: FreeBSD datakitty.lan.rachie.is-a-geek.net 8.2-STABLE FreeBSD 8.2-STABLE #6 r230977: Sun Feb 5 06:20:11 AKST 2012 mel@datakitty.lan.rachie.is-a-geek.net:/data/obj/data/RELENG_8/src/sys/GENERIC amd64 >Description: The sendfile implementation in Sys-Syscall does not actually work, due to reversal of arguments in POSIX::lseek and incorrect handling of EAGAIN. >How-To-Repeat: >Fix: Obtained from: https://rt.cpan.org/Public/Bug/Display.html?id=17326 with slight modification. --- devel__p5-Sys-Syscall.patch begins here --- diff -urN --exclude CVS --exclude '*~' --exclude '.#*' --exclude '*.orig' --exclude '*.rej' devel/p5-Sys-Syscall/Makefile /usr/ports/devel/p5-Sys-Syscall/Makefile --- devel/p5-Sys-Syscall/Makefile.orig 2010-05-10 05:11:25.000000000 -0800 +++ devel/p5-Sys-Syscall/Makefile 2012-04-09 10:47:36.000000000 -0800 @@ -7,6 +7,7 @@ PORTNAME= Sys-Syscall PORTVERSION= 0.23 +PORTREVISION= 1 CATEGORIES= devel perl5 MASTER_SITES= CPAN MASTER_SITE_SUBDIR= Sys diff -urN --exclude CVS --exclude '*~' --exclude '.#*' --exclude '*.orig' --exclude '*.rej' devel/p5-Sys-Syscall/files/patch-lib__Sys__Syscall.pm /usr/ports/devel/p5-Sys-Syscall/files/patch-lib__Sys__Syscall.pm --- /dev/null 1969-12-31 14:00:00.000000000 -1000 +++ devel/p5-Sys-Syscall/files/patch-lib__Sys__Syscall.pm 2012-04-09 09:55:22.000000000 -0800 @@ -0,0 +1,30 @@ +--- lib/Sys/Syscall.pm.orig 2010-04-18 17:51:10.000000000 -0800 ++++ lib/Sys/Syscall.pm 2012-04-09 08:39:07.000000000 -0800 +@@ -2,7 +2,7 @@ + + package Sys::Syscall; + use strict; +-use POSIX qw(ENOSYS SEEK_CUR); ++use POSIX qw(ENOSYS EAGAIN SEEK_CUR); + use Config; + + require Exporter; +@@ -180,12 +180,14 @@ + 0, # struct sf_hdtr *hdtr + $sbytes_buf, # off_t *sbytes + 0); # flags +- return $rv if $rv < 0; ++ return $rv if $rv < 0 && $! != EAGAIN; + + +- my $set = unpack("L", $sbytes_buf); +- POSIX::lseek($_[1]+0, SEEK_CUR, $set); +- return $set; ++ if (my $set = unpack("L", $sbytes_buf)) { ++ POSIX::lseek($_[1]+0, $set, SEEK_CUR); ++ return $set; ++ } ++ return $rv < 0 ? $rv : 0; + } + + --- devel__p5-Sys-Syscall.patch ends here ---