net/libutp: Update to g20180515.

- move to the net-p2p category
- change PORTNAME to libutp from bittorrent-libutp
- switch to transmissions upstream
- switch to using cmake
- take maintainership. The port is clearly abbandoned

Reported by:	Vasileios Kalampakas <stoneforger@gmail.com>
This commit is contained in:
Alexandre C. Guimarães 2022-11-18 22:14:41 -03:00
parent f5ce9b7ee0
commit f549e38b77
No known key found for this signature in database
GPG Key ID: 9921FCC0384017D9
15 changed files with 38 additions and 235 deletions

View File

@ -50,6 +50,7 @@
SUBDIR += libtorrent
SUBDIR += libtorrent-rasterbar
SUBDIR += libtorrent-rasterbar2
SUBDIR += libutp
SUBDIR += lidarr
SUBDIR += linuxdcpp
SUBDIR += litecoin

23
net-p2p/libutp/Makefile Normal file
View File

@ -0,0 +1,23 @@
PORTNAME= libutp
DISTVERSION= g20180515
CATEGORIES= net-p2p
MAINTAINER= rigoletto@FreeBSD.org
COMMENT= uTorrent Transport Protocol library and sample utilities
WWW= https://github.com/bittorrent/libutp
LICENSE= MIT
USES= cmake uidfix
USE_GITHUB= yes
GH_ACCOUNT= transmission
GH_TAGNAME= fda9f4b3db97ccb243fcbed2ce280eb4135d705b
USE_LDCONFIG= yes
PLIST_FILES= include/libutp/utp.h \
include/libutp/utypes.h \
lib/libutp.so
.include <bsd.port.mk>

3
net-p2p/libutp/distinfo Normal file
View File

@ -0,0 +1,3 @@
TIMESTAMP = 1668792304
SHA256 (transmission-libutp-g20180515-fda9f4b3db97ccb243fcbed2ce280eb4135d705b_GH0.tar.gz) = c515e6f9add47d3d202389e8a62feb765f0ae41d6398cc238e44028be520774e
SIZE (transmission-libutp-g20180515-fda9f4b3db97ccb243fcbed2ce280eb4135d705b_GH0.tar.gz) = 71743

View File

@ -0,0 +1,11 @@
--- CMakeLists.txt.orig 2017-01-01 23:21:43 UTC
+++ CMakeLists.txt
@@ -11,7 +11,7 @@ include_directories(.)
include_directories(.)
-add_library(${PROJECT_NAME} STATIC
+add_library(${PROJECT_NAME} SHARED
utp.cpp
utp_utils.cpp
${${PROJECT_NAME}_ADD_SOURCES}

View File

@ -418,7 +418,6 @@
SUBDIR += libunp
SUBDIR += libusipp
SUBDIR += libusrsctp
SUBDIR += libutp
SUBDIR += libvncserver
SUBDIR += libwebsockets
SUBDIR += libyang

View File

@ -1,36 +0,0 @@
PORTNAME= bittorrent-libutp
PORTVERSION= 0.20130514
PORTREVISION= 1
CATEGORIES= net devel
MAINTAINER= mi@aldan.algebra.com
COMMENT= The uTorrent Transport Protocol library and sample utilities
WWW= https://github.com/bittorrent/libutp
LICENSE= MIT
USE_GITHUB= yes
GH_ACCOUNT= ${PORTNAME:C/-.*//}
GH_PROJECT= ${PORTNAME:C/.*-//}
GH_TAGNAME= 7c4f19a
USES= dos2unix uidfix
MAKEFILE= ${FILESDIR}/BSDmakefile
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 <bsd.port.mk>

View File

@ -1,2 +0,0 @@
SHA256 (bittorrent-libutp-0.20130514-7c4f19a_GH0.tar.gz) = 690e9beeb434341d81cc51d2bbd0758e186a519673ef2f391536cdb28c5cee47
SIZE (bittorrent-libutp-0.20130514-7c4f19a_GH0.tar.gz) = 71011

View File

@ -1,16 +0,0 @@
LIB= utp
SHLIB_MAJOR= 0
SRCS= utp.cpp utp_utils.cpp
MK_PROFILE= no
CXXFLAGS+= -fno-exceptions -fno-rtti
CXXFLAGS+= -I${.CURDIR} -I${.CURDIR}/utp_config_lib -DPOSIX
CXXFLAGS+= -Wall
INCLUDEDIR= ${PREFIX}/include/libutp
LIBDIR= ${PREFIX}/lib
INCS= utp.h utp_utils.h utypes.h utp_file/udp.h
WARNS= 5
.include <bsd.lib.mk>

View File

@ -1,10 +0,0 @@
# PROG_CXX defined on command-line
SRCS= ${PROG_CXX}.cpp
MAN=
LDADD= -L.. -lutp
CXXFLAGS+= -I.. -DPOSIX
WARNS= 3
.include <bsd.prog.mk>

View File

@ -1,52 +0,0 @@
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);

View File

@ -1,20 +0,0 @@
--- utp.cpp.orig 2013-05-14 23:05:36 UTC
+++ utp.cpp
@@ -1698,7 +1698,7 @@ void UTPSocket::apply_ledbat_ccontrol(size_t bytes_ack
// used in parse_log.py
LOG_UTP("0x%08x: actual_delay:%u our_delay:%d their_delay:%u off_target:%d max_window:%u "
"delay_base:%u delay_sum:%d target_delay:%d acked_bytes:%u cur_window:%u "
- "scaled_gain:%f rtt:%u rate:%u quota:%d wnduser:%u rto:%u timeout:%d get_microseconds:"I64u" "
+ "scaled_gain:%f rtt:%u rate:%u quota:%d wnduser:%u rto:%u timeout:%d get_microseconds:" I64u " "
"cur_window_packets:%u packet_size:%u their_delay_base:%u their_actual_delay:%u",
this, actual_delay, our_delay / 1000, their_hist.get_value() / 1000,
(int)off_target / 1000, (uint)(max_window), our_hist.delay_base,
@@ -1783,7 +1783,7 @@ size_t UTP_ProcessIncoming(UTPSocket *conn, const byte
if (pk_flags >= ST_NUM_STATES) return 0;
- LOG_UTPV("0x%08x: Got %s. seq_nr:%u ack_nr:%u state:%s version:%u timestamp:"I64u" reply_micro:%u",
+ LOG_UTPV("0x%08x: Got %s. seq_nr:%u ack_nr:%u state:%s version:%u timestamp:" I64u " reply_micro:%u",
conn, flagnames[pk_flags], pk_seq_nr, pk_ack_nr, statenames[conn->state], conn->version,
conn->version == 0?(uint64)(pf->tv_sec) * 1000000 + pf->tv_usec:uint64(pf1->tv_usec),
conn->version == 0?(uint32)(pf->reply_micro):(uint32)(pf1->reply_micro));

View File

@ -1,54 +0,0 @@
--- 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);
}

View File

@ -1,34 +0,0 @@
--- utypes.h 2012-05-26 22:02:05.000000000 -0400
+++ utypes.h 2012-07-26 17:21:44.000000000 -0400
@@ -2,13 +2,15 @@
#define __UTYPES_H__
+#include <stdint.h>
+
// standard types
-typedef unsigned char byte;
-typedef unsigned char uint8;
-typedef signed char int8;
-typedef unsigned short uint16;
-typedef signed short int16;
+typedef uint8_t byte;
+typedef uint8_t uint8;
+typedef int8_t int8;
+typedef uint16_t uint16;
+typedef int16_t int16;
typedef unsigned int uint;
-typedef unsigned int uint32;
-typedef signed int int32;
+typedef uint32_t uint32;
+typedef int32_t int32;
#ifdef _MSC_VER
@@ -16,6 +18,6 @@
typedef signed __int64 int64;
#else
-typedef unsigned long long uint64;
-typedef long long int64;
+typedef uint64_t uint64;
+typedef int64_t int64;
#endif

View File

@ -1,10 +0,0 @@
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