Date: Sun, 12 Mar 2017 13:35:30 +0000 (UTC) From: Alexey Dokuchaev <danfe@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r435987 - in head/net-p2p/mktorrent: . files Message-ID: <201703121335.v2CDZU6W066643@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: danfe Date: Sun Mar 12 13:35:29 2017 New Revision: 435987 URL: https://svnweb.freebsd.org/changeset/ports/435987 Log: net-p2p/mktorrent: increase max piece size and make tracker optional Optimal piece count is ~1500. mktorrent allows up to 2^28 currently, thus providing ability to create torrents for 375 GiB of data with optimal piece count. Increase maximum piece size to 2^30 thus allowing torrents for 1.5 TiB of data (again, with optimal piece count). mktorrent currently can't create torrents without announce URL. Since DHT works perfectly well nowadays, this limitation doesn't make much sense. Change to require tracker only when creating private torrent (i.e. DHT, PEX, etc. disabled). While here: define LICENSE (GPLv2+), make options actually work, remove redundant THREADS_DESC, and clean up Makefile a bit. PR: 210374 Submitted by: Anton Sayetsky Approved by: maintainer timeout Added: head/net-p2p/mktorrent/files/ head/net-p2p/mktorrent/files/patch-init.c (contents, props changed) head/net-p2p/mktorrent/files/patch-output.c (contents, props changed) Modified: head/net-p2p/mktorrent/Makefile Modified: head/net-p2p/mktorrent/Makefile ============================================================================== --- head/net-p2p/mktorrent/Makefile Sun Mar 12 13:11:02 2017 (r435986) +++ head/net-p2p/mktorrent/Makefile Sun Mar 12 13:35:29 2017 (r435987) @@ -3,24 +3,24 @@ PORTNAME= mktorrent PORTVERSION= 1.0 +PORTREVISION= 1 CATEGORIES= net-p2p MASTER_SITES= SF MAINTAINER= dgerow@afflictions.org COMMENT= Command-line utility for creating BitTorrent metainfo files -.if defined(.PARSEDIR) -USES= gmake -.else +LICENSE= GPLv2+ +LICENSE_FILE= ${WRKSRC}/COPYING + MAKEFILE= BSDmakefile -.endif -MAKE_FLAGS= USE_LONG_OPTIONS=1 +MAKE_ARGS= USE_LONG_OPTIONS=1 PLIST_FILES= bin/mktorrent OPTIONS_DEFINE= THREADS OPENSSL HASHCHECK OPTIONS_DEFAULT= THREADS OPENSSL HASHCHECK -THREADS_DESC= Enable support for pthreads + OPENSSL_DESC= Use OpenSSL for hashing HASHCHECK_DESC= Verify file hashes @@ -28,19 +28,9 @@ OPENSSL_USES= ssl OPENSSL_CFLAGS= -I${OPENSSLINC} OPENSSL_LDFLAGS= -L${OPENSSLLIB} -.include <bsd.port.options.mk> - -.if ${PORT_OPTIONS:MTHREADS} -MAKE_FLAGS+= USE_PTHREADS=1 -.endif - -.if ${PORT_OPTIONS:MOPENSSL} -MAKE_FLAGS+= USE_OPENSSL=1 -.endif - -.if ! ${PORT_OPTIONS:MHASHCHECK} -MAKE_FLAGS+= NO_HASH_CHECK=1 -.endif +THREADS_MAKE_ARGS= USE_PTHREADS=1 +OPENSSL_MAKE_ARGS= USE_OPENSSL=1 +HASHCHECK_MAKE_ARGS= NO_HASH_CHECK=1 do-install: ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin Added: head/net-p2p/mktorrent/files/patch-init.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net-p2p/mktorrent/files/patch-init.c Sun Mar 12 13:35:29 2017 (r435987) @@ -0,0 +1,112 @@ +--- init.c.orig 2009-08-25 18:53:22 UTC ++++ init.c +@@ -277,7 +277,7 @@ static void print_help() + "Options:\n" + #ifdef USE_LONG_OPTIONS + "-a, --announce=<url>[,<url>]* : specify the full announce URLs\n" +- " at least one is required\n" ++ " at least one is required on private torrent\n" + " additional -a adds backup trackers\n" + "-c, --comment=<comment> : add a comment to the metainfo\n" + "-d, --no-date : don't write the creation date\n" +@@ -298,7 +298,7 @@ static void print_help() + " additional -w adds more URLs\n" + #else + "-a <url>[,<url>]* : specify the full announce URLs\n" +- " at least one is required\n" ++ " at least one is required on private torrent\n" + " additional -a adds backup trackers\n" + "-c <comment> : add a comment to the metainfo\n" + "-d : don't write the creation date\n" +@@ -343,7 +343,7 @@ static void print_announce_list(llist_t + */ + static void print_web_seed_list(slist_t *list) + { +- printf(" Web Seed URL: "); ++ printf(" Web Seed URLs: "); + + if (list == NULL) { + printf("none\n"); +@@ -361,17 +361,20 @@ static void print_web_seed_list(slist_t + static void dump_options(metafile_t *m) + { + printf("Options:\n" +- " Announce URLs:\n"); ++ " Announce URLs:"); + +- print_announce_list(m->announce_list); ++ if (m->announce_list) { ++ printf("\n"); ++ print_announce_list(m->announce_list); ++ } else ++ printf(" none\n"); + +- printf(" Torrent name: %s\n" +- " Metafile: %s\n" +- " Piece length: %u\n" +- " Be verbose: yes\n", ++ printf(" Torrent name: %s\n" ++ " Metafile: %s\n" ++ " Piece length: %u\n", + m->torrent_name, m->metainfo_file_path, m->piece_length); + +- printf(" Write date: "); ++ printf(" Write date: "); + if (m->no_creation_date) + printf("no\n"); + else +@@ -379,11 +382,17 @@ static void dump_options(metafile_t *m) + + print_web_seed_list(m->web_seed_list); + +- printf(" Comment: "); ++ printf(" Comment: "); + if (m->comment == NULL) +- printf("none\n\n"); ++ printf("none\n"); + else +- printf("\"%s\"\n\n", m->comment); ++ printf("\"%s\"\n", m->comment); ++ ++ printf(" Private: "); ++ if (m->private) ++ printf("yes\n\n"); ++ else ++ printf("no\n\n"); + } + + /* +@@ -495,22 +504,25 @@ EXPORT void init(metafile_t *m, int argc + + /* set the correct piece length. + default is 2^18 = 256kb. */ +- if (m->piece_length < 15 || m->piece_length > 28) { ++ if (m->piece_length < 15 || m->piece_length > 30) { + fprintf(stderr, + "The piece length must be a number between " +- "15 and 28.\n"); ++ "15 and 30.\n"); + exit(EXIT_FAILURE); + } + m->piece_length = 1 << m->piece_length; + +- /* user must specify at least one announce URL as it wouldn't make +- * any sense to have a default for this */ ++ /* user must specify at least one announce URL when private flag set ++ as it wouldn't make any sense to have a default for this */ + if (m->announce_list == NULL) { +- fprintf(stderr, "Must specify an announce URL. " +- "Use -h for help.\n"); +- exit(EXIT_FAILURE); ++ if (m->private == 1) { ++ fprintf(stderr, "Must specify an announce URL. " ++ "Use -h for help.\n"); ++ exit(EXIT_FAILURE); ++ } ++ } else { ++ announce_last->next = NULL; + } +- announce_last->next = NULL; + + /* ..and a file or directory from which to create the torrent */ + if (optind >= argc) { Added: head/net-p2p/mktorrent/files/patch-output.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net-p2p/mktorrent/files/patch-output.c Sun Mar 12 13:35:29 2017 (r435987) @@ -0,0 +1,32 @@ +--- output.c.orig 2009-08-25 18:53:22 UTC ++++ output.c +@@ -119,15 +119,20 @@ EXPORT void write_metainfo(FILE *f, meta + printf("Writing metainfo file... "); + fflush(stdout); + +- /* every metainfo file is one big dictonary +- and the first entry is the announce URL */ +- fprintf(f, "d8:announce%lu:%s", +- (unsigned long)strlen(m->announce_list->l->s), +- m->announce_list->l->s); +- /* write the announce-list entry if we have +- more than one announce URL */ +- if (m->announce_list->next || m->announce_list->l->next) +- write_announce_list(f, m->announce_list); ++ /* every metainfo file is one big dictonary */ ++ fprintf(f, "d"); ++ ++ /* first entry is the announce URL (optional) */ ++ if (m->announce_list != NULL) { ++ fprintf(f, "8:announce%lu:%s", ++ (unsigned long)strlen(m->announce_list->l->s), ++ m->announce_list->l->s); ++ /* write the announce-list entry if we have ++ more than one announce URL */ ++ if (m->announce_list->next || m->announce_list->l->next) ++ write_announce_list(f, m->announce_list); ++ } ++ + /* add the comment if one is specified */ + if (m->comment != NULL) + fprintf(f, "7:comment%lu:%s",
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201703121335.v2CDZU6W066643>