From owner-svn-ports-branches@FreeBSD.ORG Tue Jan 27 13:55:30 2015 Return-Path: Delivered-To: svn-ports-branches@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5F24631D; Tue, 27 Jan 2015 13:55:30 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3F5BFE3B; Tue, 27 Jan 2015 13:55:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t0RDtU6s056613; Tue, 27 Jan 2015 13:55:30 GMT (envelope-from jbeich@FreeBSD.org) Received: (from jbeich@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t0RDtSLX056602; Tue, 27 Jan 2015 13:55:28 GMT (envelope-from jbeich@FreeBSD.org) Message-Id: <201501271355.t0RDtSLX056602@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jbeich set sender to jbeich@FreeBSD.org using -f From: Jan Beich Date: Tue, 27 Jan 2015 13:55:28 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-branches@freebsd.org Subject: svn commit: r378009 - in branches/2015Q1/net/libutp: . files X-SVN-Group: ports-branches MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-branches@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for all the branches of the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Jan 2015 13:55:30 -0000 Author: jbeich Date: Tue Jan 27 13:55:27 2015 New Revision: 378009 URL: https://svnweb.freebsd.org/changeset/ports/378009 QAT: https://qat.redports.org/buildarchive/r378009/ Log: MFH: r377320 by riggs Convert to USE_GITHUB PR: 196616 Submitted by: jbeich@vfemail.net Approved by: mi@FreeBSD.org (maintainer) MFH: r377674 by mi Add a patch fixing a long-standing security problem. Bump PORTREVISION. PR: 196351 Differential Revision: D1593 Submitted by: Jan Beich Security: https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-6129 While here, arrange for building a few of the small utilities bundled with library, and install them along with another potentially useful header-file. Sponsored by: http://libpipe.com/ MFH: r377699 by mi Add a patch to fix 64-bit specific warnings in the just-added utilities. PR: 197009 Submitted by: Jan Beich Approved by: portmgr (mat, bapt) Approved by: bapt (mentor) Added: branches/2015Q1/net/libutp/files/BSDmakefile.utils - copied unchanged from r377674, head/net/libutp/files/BSDmakefile.utils branches/2015Q1/net/libutp/files/patch-CVE-2012-6129 - copied unchanged from r377674, head/net/libutp/files/patch-CVE-2012-6129 branches/2015Q1/net/libutp/files/patch-size_t - copied unchanged from r377699, head/net/libutp/files/patch-size_t Modified: branches/2015Q1/net/libutp/Makefile branches/2015Q1/net/libutp/distinfo branches/2015Q1/net/libutp/files/BSDmakefile branches/2015Q1/net/libutp/pkg-descr branches/2015Q1/net/libutp/pkg-plist Directory Properties: branches/2015Q1/ (props changed) Modified: branches/2015Q1/net/libutp/Makefile ============================================================================== --- branches/2015Q1/net/libutp/Makefile Tue Jan 27 13:38:01 2015 (r378008) +++ branches/2015Q1/net/libutp/Makefile Tue Jan 27 13:55:27 2015 (r378009) @@ -3,15 +3,20 @@ PORTNAME= bittorrent-libutp PORTVERSION= 0.20130514 -DISTVERSION= 7c4f19a +PORTREVISION= 1 CATEGORIES= net devel -MASTER_SITES= https://github.com/bittorrent/libutp/tarball/${DISTVERSION}/ MAINTAINER= mi@aldan.algebra.com -COMMENT= The uTorrent Transport Protocol library +COMMENT= The uTorrent Transport Protocol library and sample utilities LICENSE= MIT +USE_GITHUB= yes +GH_ACCOUNT= ${PORTNAME:C/-.*//} +GH_PROJECT= ${PORTNAME:C/.*-//} +GH_TAGNAME= ${GH_COMMIT} +GH_COMMIT= 7c4f19a + USES= dos2unix uidfix MAKEFILE= ${FILESDIR}/BSDmakefile USE_LDCONFIG= yes @@ -19,4 +24,16 @@ USE_LDCONFIG= yes pre-install: @${MKDIR} ${STAGEDIR}${PREFIX}/include/libutp +post-build: + ${MAKE} -f ${FILESDIR}/BSDmakefile.utils -C ${WRKSRC}/utp_file PROG_CXX=utp_send + ${MAKE} -f ${FILESDIR}/BSDmakefile.utils -C ${WRKSRC}/utp_file PROG_CXX=utp_recv + ${MAKE} -f ${FILESDIR}/BSDmakefile.utils -C ${WRKSRC}/utp_test PROG_CXX=utp_test + +post-install: + ${INSTALL_PROGRAM} \ + ${WRKSRC}/utp_file/utp_send \ + ${WRKSRC}/utp_file/utp_recv \ + ${WRKSRC}/utp_test/utp_test \ + ${STAGEDIR}${PREFIX}/bin/ + .include Modified: branches/2015Q1/net/libutp/distinfo ============================================================================== --- branches/2015Q1/net/libutp/distinfo Tue Jan 27 13:38:01 2015 (r378008) +++ branches/2015Q1/net/libutp/distinfo Tue Jan 27 13:55:27 2015 (r378009) @@ -1,2 +1,2 @@ -SHA256 (bittorrent-libutp-7c4f19a.tar.gz) = 305ae8aa43bee7d7d7d1411b07bcde246fab449fbdaf087673cf7b07659cb934 -SIZE (bittorrent-libutp-7c4f19a.tar.gz) = 71029 +SHA256 (bittorrent-libutp-0.20130514.tar.gz) = 305ae8aa43bee7d7d7d1411b07bcde246fab449fbdaf087673cf7b07659cb934 +SIZE (bittorrent-libutp-0.20130514.tar.gz) = 71029 Modified: branches/2015Q1/net/libutp/files/BSDmakefile ============================================================================== --- branches/2015Q1/net/libutp/files/BSDmakefile Tue Jan 27 13:38:01 2015 (r378008) +++ branches/2015Q1/net/libutp/files/BSDmakefile Tue Jan 27 13:55:27 2015 (r378009) @@ -9,6 +9,8 @@ CXXFLAGS+= -Wall INCLUDEDIR= ${PREFIX}/include/libutp LIBDIR= ${PREFIX}/lib -INCS= utp.h utp_utils.h utypes.h +INCS= utp.h utp_utils.h utypes.h utp_file/udp.h + +WARNS= 5 .include Copied: branches/2015Q1/net/libutp/files/BSDmakefile.utils (from r377674, head/net/libutp/files/BSDmakefile.utils) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2015Q1/net/libutp/files/BSDmakefile.utils Tue Jan 27 13:55:27 2015 (r378009, copy of r377674, head/net/libutp/files/BSDmakefile.utils) @@ -0,0 +1,10 @@ +# PROG_CXX defined on command-line + +SRCS= ${PROG_CXX}.cpp +NO_MAN= ha-ha +LDADD= -L.. -lutp +CXXFLAGS+= -I.. -DPOSIX + +WARNS= 3 + +.include Copied: branches/2015Q1/net/libutp/files/patch-CVE-2012-6129 (from r377674, head/net/libutp/files/patch-CVE-2012-6129) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2015Q1/net/libutp/files/patch-CVE-2012-6129 Tue Jan 27 13:55:27 2015 (r378009, copy of r377674, head/net/libutp/files/patch-CVE-2012-6129) @@ -0,0 +1,52 @@ +Index: utp.cpp +=================================================================== +--- utp.cpp (revision 13645) ++++ utp.cpp (revision 13646) +@@ -1487,6 +1487,8 @@ size_t UTPSocket::selective_ack_bytes(uint base, c + return acked_bytes; + } + ++enum { MAX_EACK = 128 }; ++ + void UTPSocket::selective_ack(uint base, const byte *mask, byte len) + { + if (cur_window_packets == 0) return; +@@ -1499,7 +1501,7 @@ void UTPSocket::selective_ack(uint base, const byt + // resends is a stack of sequence numbers we need to resend. Since we + // iterate in reverse over the acked packets, at the end, the top packets + // are the ones we want to resend +- int resends[32]; ++ int resends[MAX_EACK]; + int nr = 0; + + LOG_UTPV("0x%08x: Got EACK [%032b] base:%u", this, *(uint32*)mask, base); +@@ -1572,6 +1574,12 @@ void UTPSocket::selective_ack(uint base, const byt + if (((v - fast_resend_seq_nr) & ACK_NR_MASK) <= OUTGOING_BUFFER_MAX_SIZE && + count >= DUPLICATE_ACKS_BEFORE_RESEND && + duplicate_ack < DUPLICATE_ACKS_BEFORE_RESEND) { ++ // resends is a stack, and we're mostly interested in the top of it ++ // if we're full, just throw away the lower half ++ if (nr >= MAX_EACK - 2) { ++ memmove(resends, &resends[MAX_EACK/2], MAX_EACK/2 * sizeof(resends[0])); ++ nr -= MAX_EACK / 2; ++ } + resends[nr++] = v; + LOG_UTPV("0x%08x: no ack for %u", this, v); + } else { +@@ -1580,13 +1588,12 @@ void UTPSocket::selective_ack(uint base, const byt + } + } while (--bits >= -1); + +- if (((base - 1 - fast_resend_seq_nr) & ACK_NR_MASK) < 256 && +- count >= DUPLICATE_ACKS_BEFORE_RESEND && +- duplicate_ack < DUPLICATE_ACKS_BEFORE_RESEND) { ++ if (((base - 1 - fast_resend_seq_nr) & ACK_NR_MASK) <= OUTGOING_BUFFER_MAX_SIZE && ++ count >= DUPLICATE_ACKS_BEFORE_RESEND) { + // if we get enough duplicate acks to start + // resending, the first packet we should resend + // is base-1 +- resends[nr++] = base - 1; ++ resends[nr++] = (base - 1) & ACK_NR_MASK; + } else { + LOG_UTPV("0x%08x: not resending %u count:%d dup_ack:%u fast_resend_seq_nr:%u", + this, base - 1, count, duplicate_ack, fast_resend_seq_nr); Copied: branches/2015Q1/net/libutp/files/patch-size_t (from r377699, head/net/libutp/files/patch-size_t) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2015Q1/net/libutp/files/patch-size_t Tue Jan 27 13:55:27 2015 (r378009, copy of r377699, head/net/libutp/files/patch-size_t) @@ -0,0 +1,54 @@ +--- utp_file/utp_recv.cpp 2013-05-14 19:05:36.000000000 -0400 ++++ utp_file/utp_recv.cpp 2015-01-22 16:45:03.000000000 -0500 +@@ -82,5 +82,5 @@ + UTPSocket *utp_socket = NULL; + FILE *file = NULL; +-size_t total_recv = 0; ++intmax_t total_recv = 0; + bool no_connection = true; + +@@ -205,5 +205,5 @@ + { + assert(utp_socket == socket); +- printf("utp on_write %u\n", count); ++ printf("utp on_write %zu\n", count); + assert(false); + } +@@ -365,10 +365,10 @@ + last_recv = total_recv; + last_time = cur_time; +- printf("\r[%u] recv: %d %.1f bytes/s ", cur_time, total_recv, rate); ++ printf("\r[%u] recv: %jd %.1f bytes/s ", cur_time, total_recv, rate); + fflush(stdout); + } + } + +- printf("\nreceived: %d bytes\n", total_recv); ++ printf("\nreceived: %jd bytes\n", (intmax_t)total_recv); + fclose(file); + fclose(log_file); +--- utp_file/utp_send.cpp 2013-05-14 19:05:36.000000000 -0400 ++++ utp_file/utp_send.cpp 2015-01-22 16:45:03.000000000 -0500 +@@ -82,6 +82,6 @@ + UTPSocket *utp_socket = NULL; + FILE *file = NULL; +-size_t total_sent = 0; +-size_t file_size = 0; ++intmax_t total_sent = 0; ++intmax_t file_size = 0; + + void utp_log(char const* fmt, ...) +@@ -252,5 +252,5 @@ + { + assert(utp_socket == socket); +- printf("utp on_read %u\n", count); ++ printf("utp on_read %zu\n", count); + assert(false); + } +@@ -392,5 +392,5 @@ + last_sent = total_sent; + last_time = cur_time; +- printf("\r[%u] sent: %d/%d %.1f bytes/s ", cur_time, total_sent, file_size, rate); ++ printf("\r[%u] sent: %jd/%jd %.1f bytes/s ", cur_time, total_sent, file_size, rate); + fflush(stdout); + } Modified: branches/2015Q1/net/libutp/pkg-descr ============================================================================== --- branches/2015Q1/net/libutp/pkg-descr Tue Jan 27 13:38:01 2015 (r378008) +++ branches/2015Q1/net/libutp/pkg-descr Tue Jan 27 13:55:27 2015 (r378009) @@ -9,4 +9,4 @@ transport for uTorrent peer-to-peer conn uTP is written in C++, but the external interface is strictly C (ANSI C89). -WWW: https://github.com/bittorrent/libutp +WWW: https://github.com/bittorrent/libutp Modified: branches/2015Q1/net/libutp/pkg-plist ============================================================================== --- branches/2015Q1/net/libutp/pkg-plist Tue Jan 27 13:38:01 2015 (r378008) +++ branches/2015Q1/net/libutp/pkg-plist Tue Jan 27 13:55:27 2015 (r378009) @@ -1,6 +1,10 @@ +bin/utp_send +bin/utp_recv +bin/utp_test lib/libutp.so.0 lib/libutp.so lib/libutp.a +include/libutp/udp.h include/libutp/utp.h include/libutp/utp_utils.h include/libutp/utypes.h