Index: head/news/nget/Makefile =================================================================== --- head/news/nget/Makefile (revision 452043) +++ head/news/nget/Makefile (revision 452044) @@ -1,39 +1,42 @@ # Created by: George Sorsby # $FreeBSD$ PORTNAME= nget PORTVERSION= 0.27.1 -PORTREVISION= 3 +DISTVERSIONSUFFIX= +uulib +PORTREVISION= 4 CATEGORIES= news MASTER_SITES= SF -DISTNAME= nget-${PORTVERSION}+uulib MAINTAINER= ports@FreeBSD.org COMMENT= Auto-resuming command line nntp file grabber LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING USES= gmake -# Fails to build with GCC 4.9, cf. PR 196913. -USE_GCC= 4.8 GNU_CONFIGURE= yes +# Skip check if the C++ compiler supports exceptions. We know both +# Clang and GCC do. The configure test fails on FreeBSD 10.3 because +# it passes -fhandle-exceptions to the compiler and Clang 3.4.1 does +# not know to ignore it yet. +CONFIGURE_ARGS= my_cv_exceptions=1 + OPTIONS_DEFINE= DOCS -post-extract: - @${LN} -s nget-${PORTVERSION} ${WRKDIR}/${DISTNAME} +WRKSRC= ${WRKDIR}/nget-${PORTVERSION} do-install: ${INSTALL_PROGRAM} ${WRKSRC}/nget ${STAGEDIR}${PREFIX}/bin ${INSTALL_PROGRAM} ${WRKSRC}/ngetlite ${STAGEDIR}${PREFIX}/bin ${INSTALL_MAN} ${WRKSRC}/nget.1 ${STAGEDIR}${MANPREFIX}/man/man1 ${INSTALL_MAN} ${WRKSRC}/ngetlite.1 ${STAGEDIR}${MANPREFIX}/man/man1 do-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} .for i in README FAQ ${INSTALL_DATA} ${WRKSRC}/${i} ${STAGEDIR}${DOCSDIR} .endfor .include Index: head/news/nget/files/patch-cache.h =================================================================== --- head/news/nget/files/patch-cache.h (revision 452043) +++ head/news/nget/files/patch-cache.h (revision 452044) @@ -1,102 +1,111 @@ ---- cache.h 2004-05-29 16:00:08.000000000 -0700 -+++ cache.h 2005-09-22 22:37:43.000000000 -0700 -@@ -102,7 +102,7 @@ +--- cache.h.orig 2004-05-29 23:00:08 UTC ++++ cache.h +@@ -102,7 +102,7 @@ class c_nntp_server_article { ulong bytes,lines; c_nntp_server_article(ulong serverid,const c_group_info::ptr &group,ulong articlenum,ulong bytes,ulong lines); }; -typedef multimap t_nntp_server_articles; +typedef vector t_nntp_server_articles; typedef pair t_real_server_article; typedef multimap > t_nntp_server_articles_prioritized; class c_nntp_part { -@@ -118,7 +118,7 @@ +@@ -118,7 +118,7 @@ class c_nntp_part { c_nntp_server_article *highest_sa=NULL; float highprio=-10000.0,f; for (;nsai!=articles.end();++nsai) { - sa=(*nsai).second; + sa=(*nsai); for (t_server_list_range servers = nconfig.getservers(sa->serverid); servers.first!=servers.second; ++servers.first) if ((f=nconfig.trustsizes->getserverpriority(servers.first->second)) > highprio){ highest_sa=sa; -@@ -137,7 +137,41 @@ +@@ -137,15 +137,49 @@ class c_nntp_part { }; -typedef map t_nntp_file_parts; +class c_nntp_file_parts : public vector +{ +public: + bool haspart(int partnum) const { + const_iterator i = lower_bound(partnum); + return (i != end() && (*i)->partnum == partnum); + } -+ + + c_nntp_part* part(int partnum) { + iterator i = lower_bound(partnum); + if (i != end() && (*i)->partnum == partnum) + return *i; + else + return NULL; + } + + void addpart(c_nntp_part* p) { + iterator i = lower_bound(p->partnum); + insert(i, p); + } + + void removepart(int partnum) { + iterator i = lower_bound(partnum); + if (i != end() && (*i)->partnum == partnum) + erase(i); + } + +private: + iterator lower_bound(int partnum); + + const_iterator lower_bound(int partnum) const + { + return ((c_nntp_file_parts*)this)->lower_bound(partnum); + } +}; - ++ //#define FILEFLAG_READ 1 -@@ -145,7 +179,7 @@ + typedef map t_server_have_map; class c_nntp_file : public c_nntp_file_base, public c_refcounted{ public: - t_nntp_file_parts parts; + c_nntp_file_parts parts; int have; // ulong bytes,lines; ulong flags; -@@ -161,13 +195,13 @@ +@@ -161,13 +195,13 @@ class c_nntp_file : public c_nntp_file_base, public c_ bool iscomplete(void) const {return (have>=req) || maybe_a_textreply();} void get_server_have_map(t_server_have_map &have_map) const; // ulong banum(void){assert(!parts.empty());return (*parts.begin()).second->articlenum;} - string bamid(void) const {assert(!parts.empty());return (*parts.begin()).second->messageid;} - time_t badate(void) const {assert(!parts.empty());return (*parts.begin()).second->date;} + string bamid(void) const {assert(!parts.empty());return (*parts.begin())->messageid;} + time_t badate(void) const {assert(!parts.empty());return (*parts.begin())->date;} #define HAPPYSIZEFUNC2(T) ulong T(void) const {\ ulong b=0;\ - t_nntp_file_parts::const_iterator nfpi(parts.begin());\ + c_nntp_file_parts::const_iterator nfpi(parts.begin());\ for (;nfpi!=parts.end();++nfpi){\ - b+=(*nfpi).second->T();\ + b+=(*nfpi)->T();\ }\ return b;\ } -@@ -311,9 +345,9 @@ +@@ -228,7 +262,7 @@ class c_message_state : public c_refcounted, eqstr> t_message_state_list; ++typedef hash_map, eqstr> t_message_state_list; + #else + typedef map t_message_state_list; + #endif +@@ -311,9 +345,9 @@ class meta_mid_info { } void insert(const c_nntp_file::ptr &f){ const string &mid=f->bamid(); - c_nntp_part *p = f->parts.begin()->second; + c_nntp_part *p = *(f->parts.begin()); for (t_nntp_server_articles::iterator sai=p->articles.begin(); sai!=p->articles.end(); ++sai) - midinfos.find(sai->second->group->group)->second->insert(mid); + midinfos.find((*sai)->group->group)->second->insert(mid); } void remove(const string &mid){ for (t_mid_info_list::iterator mili=midinfos.begin(); mili!=midinfos.end(); ++mili) Index: head/news/nget/files/patch-etree.cc =================================================================== --- head/news/nget/files/patch-etree.cc (nonexistent) +++ head/news/nget/files/patch-etree.cc (revision 452044) @@ -0,0 +1,22 @@ +https://github.com/Optware/Optware-ng/commit/cf5b5050c989fb4e969167d20e6b135ff2608a87 + +--- etree.cc.orig 2017-10-14 02:49:56 UTC ++++ etree.cc +@@ -79,7 +79,7 @@ pred *new_comparison(RetType (ClassType::*m + return new Comparison(member, v); + } + template