On Thu, Jan 26, 2017 at 03:37:16PM -0700, Aaron Bieber wrote: > Hola, > > This diff updates newsbeuter to the latest. Most of the patches were > upstreamed here: https://github.com/akrennmair/newsbeuter/pull/97 so > those are removed. > > New patches remove wordexp in favor of glob, similar to what > astro/celestia does. > > I don't have a very extensive list of RSS feeds and I don't make full > use of newsbeuter's features, so more testing would give me warm > fuzzies! > > Removed MAINTAINER at $MAINTAINER's request. Added gcc4 module as > newsbeuter is now -std=c++11. Also the devel/gettext seems to still be > needed as it craps out early in the build without it: > > msgfmt was called without gettext-tools dependency *** > > OK? Clue sticks?
Received some proper sticking - Removed the gettext stuff - here is the latest version of the Makefile: https://github.com/qbit/mystuff/blob/master/www/newsbeuter/Makefile Can I get an OK? > > Cheers, > Aaron > Index: Makefile > =================================================================== > RCS file: /cvs/ports/www/newsbeuter/Makefile,v > retrieving revision 1.7 > diff -u -p -r1.7 Makefile > --- Makefile 23 Sep 2016 09:16:58 -0000 1.7 > +++ Makefile 26 Jan 2017 22:22:16 -0000 > @@ -1,23 +1,24 @@ > # $OpenBSD: Makefile,v 1.7 2016/09/23 09:16:58 sthen Exp $ > > COMMENT = open-source RSS/Atom feed reader for text terminals > -DISTNAME = newsbeuter-2.7 > -REVISION = 1 > +DISTNAME = newsbeuter-2.9 > CATEGORIES = www > > HOMEPAGE = http://newsbeuter.org/ > > -MAINTAINER = Kyle Isom <k...@tyrfingr.is> > - > # mit > PERMIT_PACKAGE_CDROM = Yes > > -WANTLIB += c crypto curl json-c m ncursesw pthread sqlite3 > -WANTLIB += stdc++ stfl xml2 > +WANTLIB += c crypto curl json-c m ncursesw pthread sqlite3 stfl > +WANTLIB += xml2 > > MASTER_SITES = http://newsbeuter.org/downloads/ > > -MODULES = devel/gettext > +MODULES = gcc4 \ > + devel/gettext > + > +MODGCC4_LANGS = c c++ > +MODGCC4_ARCHS = * > > LIB_DEPENDS = databases/sqlite3 \ > devel/stfl \ > @@ -31,8 +32,5 @@ FAKE_FLAGS = mandir=${PREFIX}/man > USE_GMAKE = Yes > CONFIGURE_STYLE = simple > CONFIGURE_SCRIPT = config.sh > - > -post-extract: > - rm $(WRKSRC)/src/google*.cpp > > .include <bsd.port.mk> > Index: distinfo > =================================================================== > RCS file: /cvs/ports/www/newsbeuter/distinfo,v > retrieving revision 1.1.1.1 > diff -u -p -r1.1.1.1 distinfo > --- distinfo 16 Oct 2013 18:05:25 -0000 1.1.1.1 > +++ distinfo 26 Jan 2017 22:22:16 -0000 > @@ -1,2 +1,2 @@ > -SHA256 (newsbeuter-2.7.tar.gz) = 5nINp6w/Xqg7w5zRe9Ycz0WLcWf1oXFwrjLHtuj/kDo= > -SIZE (newsbeuter-2.7.tar.gz) = 418848 > +SHA256 (newsbeuter-2.9.tar.gz) = dKi/AZsJw7JwupWtwp8rvkjqH1XMBjQnayH8zh8EPcg= > +SIZE (newsbeuter-2.9.tar.gz) = 432763 > Index: patches/patch-config_sh > =================================================================== > RCS file: patches/patch-config_sh > diff -N patches/patch-config_sh > --- patches/patch-config_sh 16 Oct 2013 18:05:25 -0000 1.1.1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,18 +0,0 @@ > -$OpenBSD: patch-config_sh,v 1.1.1.1 2013/10/16 18:05:25 abieber Exp $ > - > -This is covered in the pull request sent upstream: > - https://github.com/akrennmair/newsbeuter/pull/97 > - > -If this pull request is merged, this patch will no longer apply. > - > ---- config.sh.orig Tue Aug 27 06:20:39 2013 > -+++ config.sh Tue Oct 15 18:15:15 2013 > -@@ -103,7 +103,7 @@ check_pkg "stfl" || fail "stfl" > - > - if [ `uname -s` = "Darwin" ]; then > - check_custom "ncurses5.4" "ncurses5.4-config" || fail "ncurses5.4" > --else > -+elif [ `uname -s` != "OpenBSD" ]; then > - check_custom "ncursesw5" "ncursesw5-config" || fail "ncursesw5" > - fi > - check_ssl_implementation > Index: patches/patch-mk_newsbeuter_deps > =================================================================== > RCS file: patches/patch-mk_newsbeuter_deps > diff -N patches/patch-mk_newsbeuter_deps > --- patches/patch-mk_newsbeuter_deps 16 Oct 2013 18:05:25 -0000 1.1.1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,12 +0,0 @@ > -$OpenBSD: patch-mk_newsbeuter_deps,v 1.1.1.1 2013/10/16 18:05:25 abieber Exp > $ > - > -This is covered in the pull request sent upstream: > - https://github.com/akrennmair/newsbeuter/pull/97 > - > -If this pull request is merged, this patch will no longer apply. > - > ---- mk/newsbeuter.deps.orig Mon Oct 14 23:27:54 2013 > -+++ mk/newsbeuter.deps Mon Oct 14 23:23:25 2013 > -@@ -1 +1 @@ > --newsbeuter.cpp src/cache.cpp src/htmlrenderer.cpp src/urlreader.cpp > src/logger.cpp src/view.cpp src/controller.cpp src/reloadthread.cpp > src/tagsouppullparser.cpp src/downloadthread.cpp src/rss.cpp > src/rss_parser.cpp src/formaction.cpp src/feedlist_formaction.cpp > src/itemlist_formaction.cpp src/itemview_formaction.cpp > src/help_formaction.cpp src/filebrowser_formaction.cpp > src/urlview_formaction.cpp src/select_formaction.cpp src/history.cpp > src/filtercontainer.cpp src/listformatter.cpp src/regexmanager.cpp > src/dialogs_formaction.cpp src/googlereader_urlreader.cpp src/google_api.cpp > src/ttrss_api.cpp src/ttrss_urlreader.cpp src/markreadthread.cpp > -+newsbeuter.cpp src/cache.cpp src/htmlrenderer.cpp src/urlreader.cpp > src/logger.cpp src/view.cpp src/controller.cpp src/reloadthread.cpp > src/tagsouppullparser.cpp src/downloadthread.cpp src/rss.cpp > src/rss_parser.cpp src/formaction.cpp src/feedlist_formaction.cpp > src/itemlist_formaction.cpp src/itemview_formaction.cpp > src/help_formaction.cpp src/filebrowser_formaction.cpp > src/urlview_formaction.cpp src/select_formaction.cpp src/history.cpp > src/filtercontainer.cpp src/listformatter.cpp src/regexmanager.cpp > src/dialogs_formaction.cpp src/ttrss_api.cpp src/ttrss_urlreader.cpp > src/markreadthread.cpp > Index: patches/patch-src_cache_cpp > =================================================================== > RCS file: patches/patch-src_cache_cpp > diff -N patches/patch-src_cache_cpp > --- patches/patch-src_cache_cpp 5 Oct 2015 19:46:22 -0000 1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,77 +0,0 @@ > -$OpenBSD: patch-src_cache_cpp,v 1.1 2015/10/05 19:46:22 jca Exp $ > ---- src/cache.cpp.orig Tue Aug 27 14:20:39 2013 > -+++ src/cache.cpp Sun Oct 4 19:56:03 2015 > -@@ -80,7 +80,7 @@ static int lastmodified_callback(void * handler, int a > - } else { > - result->etag = ""; > - } > -- LOG(LOG_INFO, "lastmodified_callback: lastmodified = %d etag = %s", > result->lastmodified, result->etag.c_str()); > -+ LOG(LOG_INFO, "lastmodified_callback: lastmodified = %lld etag = %s", > (long long)result->lastmodified, result->etag.c_str()); > - return 0; > - } > - > -@@ -295,7 +295,7 @@ void cache::fetch_lastmodified(const std::string& feed > - } > - t = result.lastmodified; > - etag = result.etag; > -- LOG(LOG_DEBUG, "cache::fetch_lastmodified: t = %d etag = %s", t, > etag.c_str()); > -+ LOG(LOG_DEBUG, "cache::fetch_lastmodified: t = %lld etag = %s", (long > long)t, etag.c_str()); > - } > - > - void cache::update_lastmodified(const std::string& feedurl, time_t t, const > std::string& etag) { > -@@ -306,7 +306,7 @@ void cache::update_lastmodified(const std::string& fee > - scope_mutex lock(&mtx); > - std::string query = "UPDATE rss_feed SET "; > - if (t > 0) > -- query.append(utils::strprintf("lastmodified = '%d'", t)); > -+ query.append(utils::strprintf("lastmodified = '%lld'", (long > long)t)); > - if (etag.length() > 0) > - query.append(utils::strprintf("%c etag = %s", (t > 0 ? ',' : ' > '), prepare_query("'%q'", etag.c_str()).c_str())); > - query.append(" WHERE rssurl = "); > -@@ -643,9 +643,9 @@ void cache::update_rssitem_unlocked(std::tr1::shared_p > - } > - } else { > - std::string insert = prepare_query("INSERT INTO rss_item > (guid,title,author,url,feedurl,pubDate,content,unread,enclosure_url,enclosure_type,enqueued, > base) " > -- "VALUES > ('%q','%q','%q','%q','%q','%u','%q','%d','%q','%q',%d, '%q')", > -+ "VALUES > ('%q','%q','%q','%q','%q','%lld','%q','%d','%q','%q',%d, '%q')", > - > item->guid().c_str(), item->title_raw().c_str(), item->author_raw().c_str(), > -- > item->link().c_str(), feedurl.c_str(), item->pubDate_timestamp(), > item->description_raw().c_str(), (item->unread() ? 1 : 0), > -+ > item->link().c_str(), feedurl.c_str(), (long long)item->pubDate_timestamp(), > item->description_raw().c_str(), (item->unread() ? 1 : 0), > - > item->enclosure_url().c_str(), item->enclosure_type().c_str(), > item->enqueued() ? 1 : 0, item->get_base().c_str()); > - LOG(LOG_DEBUG,"running query: %s", insert.c_str()); > - rc = sqlite3_exec(db,insert.c_str(),NULL,NULL,NULL); > -@@ -715,9 +715,9 @@ void cache::update_rssitem_unread_and_enqueued(rss_ite > - } > - } else { > - std::string insert = prepare_query("INSERT INTO rss_item > (guid,title,author,url,feedurl,pubDate,content,unread,enclosure_url,enclosure_type,enqueued,flags,base) > " > -- > "VALUES ('%q','%q','%q','%q','%q','%u','%q','%d','%q','%q',%d, '%q', '%q')", > -+ > "VALUES ('%q','%q','%q','%q','%q','%lld','%q','%d','%q','%q',%d, '%q', '%q')", > - > item->guid().c_str(), item->title_raw().c_str(), item->author_raw().c_str(), > -- > item->link().c_str(), feedurl.c_str(), item->pubDate_timestamp(), > item->description_raw().c_str(), item->unread() ? 1 : 0, > -+ > item->link().c_str(), feedurl.c_str(), (long long)item->pubDate_timestamp(), > item->description_raw().c_str(), item->unread() ? 1 : 0, > - > item->enclosure_url().c_str(), item->enclosure_type().c_str(), > item->enqueued() ? 1 : 0, item->flags().c_str(), > - > item->get_base().c_str()); > - LOG(LOG_DEBUG,"running query: %s", insert.c_str()); > -@@ -753,9 +753,9 @@ void cache::update_rssitem_unread_and_enqueued(std::tr > - } > - } else { > - std::string insert = prepare_query("INSERT INTO rss_item > (guid,title,author,url,feedurl,pubDate,content,unread,enclosure_url,enclosure_type,enqueued,flags,base) > " > -- > "VALUES ('%q','%q','%q','%q','%q','%u','%q','%d','%q','%q',%d, '%q', '%q')", > -+ > "VALUES ('%q','%q','%q','%q','%q','%lld','%q','%d','%q','%q',%d, '%q', '%q')", > - > item->guid().c_str(), item->title_raw().c_str(), item->author_raw().c_str(), > -- > item->link().c_str(), feedurl.c_str(), item->pubDate_timestamp(), > item->description_raw().c_str(), (item->unread() ? 1 : 0), > -+ > item->link().c_str(), feedurl.c_str(), (long long)item->pubDate_timestamp(), > item->description_raw().c_str(), (item->unread() ? 1 : 0), > - > item->enclosure_url().c_str(), item->enclosure_type().c_str(), > item->enqueued() ? 1 : 0, item->flags().c_str(), > - > item->get_base().c_str()); > - LOG(LOG_DEBUG,"running query: %s", insert.c_str()); > -@@ -876,8 +876,8 @@ void cache::clean_old_articles() { > - if (days > 0) { > - time_t old_date = time(NULL) - days*24*60*60; > - > -- std::string query(utils::strprintf("DELETE FROM rss_item WHERE > pubDate < %d", old_date)); > -- LOG(LOG_DEBUG, "cache::clean_old_articles: about to delete > articles with a pubDate older than %d", old_date); > -+ std::string query(utils::strprintf("DELETE FROM rss_item WHERE > pubDate < %lld", (long long)old_date)); > -+ LOG(LOG_DEBUG, "cache::clean_old_articles: about to delete > articles with a pubDate older than %lld", (long long)old_date); > - int rc = sqlite3_exec(db, query.c_str(), NULL, NULL, NULL); > - LOG(LOG_DEBUG, "cache::clean_old_artgicles: old article delete > result: rc = %d", rc); > - } else { > Index: patches/patch-src_controller_cpp > =================================================================== > RCS file: patches/patch-src_controller_cpp > diff -N patches/patch-src_controller_cpp > --- patches/patch-src_controller_cpp 16 Oct 2013 18:05:25 -0000 1.1.1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,54 +0,0 @@ > -$OpenBSD: patch-src_controller_cpp,v 1.1.1.1 2013/10/16 18:05:25 abieber Exp > $ > - > -This is covered in the pull request sent upstream: > - https://github.com/akrennmair/newsbeuter/pull/97 > - > -If this pull request is merged, this patch will no longer apply. > - > ---- src/controller.cpp.orig Mon Oct 14 23:28:46 2013 > -+++ src/controller.cpp Mon Oct 14 23:23:25 2013 > -@@ -434,10 +434,6 @@ void controller::run(int argc, char * argv[]) { > - } else if (type == "opml") { > - urlcfg = new opml_urlreader(&cfg); > - real_offline_mode = offline_mode; > -- } else if (type == "googlereader") { > -- api = new googlereader_api(&cfg); > -- urlcfg = new googlereader_urlreader(&cfg, url_file, api); > -- real_offline_mode = offline_mode; > - } else if (type == "ttrss") { > - api = new ttrss_api(&cfg); > - urlcfg = new ttrss_urlreader(&cfg, url_file, api); > -@@ -472,19 +468,6 @@ void controller::run(int argc, char * argv[]) { > - if (!do_export && !silent) { > - std::cout << _("done.") << std::endl; > - } > -- if (api && type == "googlereader") { // ugly hack! > -- std::vector<google_replay_pair> actions = > rsscache->get_google_replay(); > -- if (!actions.empty()) { > -- std::cout << _("Updating Google Reader unread > states..."); > -- std::cout.flush(); > -- > -- std::vector<std::string> successful_guids = > dynamic_cast<googlereader_api *>(api)->bulk_mark_articles_read(actions); > -- > -- > rsscache->delete_google_replay_by_guid(successful_guids); > -- > -- std::cout << _("done.") << std::endl; > -- } > -- } > - } > - > - if (urlcfg->get_urls().size() == 0) { > -@@ -669,12 +652,7 @@ void controller::catchup_all() { > - void controller::mark_article_read(const std::string& guid, bool read) { > - if (api) { > - if (offline_mode) { > -- if (dynamic_cast<googlereader_api *>(api) != NULL) { > -- LOG(LOG_DEBUG, "controller::mark_article_read: > recording %s", guid.c_str()); > -- record_google_replay(guid, read); > -- } else { > -- LOG(LOG_DEBUG, "not on googlereader_api"); > -- } > -+ LOG(LOG_DEBUG, "not on googlereader_api"); > - } else { > - api->mark_article_read(guid, read); > - } > Index: patches/patch-src_feedhq_api_cpp > =================================================================== > RCS file: patches/patch-src_feedhq_api_cpp > diff -N patches/patch-src_feedhq_api_cpp > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_feedhq_api_cpp 26 Jan 2017 22:22:16 -0000 > @@ -0,0 +1,31 @@ > +$OpenBSD$ > +--- src/feedhq_api.cpp.orig Tue Oct 11 09:07:30 2016 > ++++ src/feedhq_api.cpp Tue Oct 11 09:12:45 2016 > +@@ -1,7 +1,7 @@ > + #include <vector> > + #include <cstring> > + #include <iostream> > +-#include <wordexp.h> > ++#include <glob.h> > + > + #include <feedhq_api.h> > + #include <config.h> > +@@ -63,11 +63,13 @@ std::string feedhq_api::retrieve_auth() { > + > + std::string pass = cfg->get_configvalue("feedhq-password"); > + if( pass == "" ) { > +- wordexp_t exp; > +- std::ifstream ifs; > +- > wordexp(cfg->get_configvalue("feedhq-passwordfile").c_str(),&exp,0); > +- ifs.open(exp.we_wordv[0]); > +- wordfree(&exp); > ++ glob_t exp; > ++ std::ifstream ifs; > ++ int res = > glob(cfg->get_configvalue("feedhq-passwordfile").c_str(), GLOB_ERR, NULL, > &exp); > ++ if (!res && exp.gl_pathc == 1 && exp.gl_pathv) { > ++ ifs.open(exp.gl_pathv[0]); > ++ } > ++ globfree(&exp); > + if (!ifs) { > + if(!flushed) { > + std::cout << std::endl; > Index: patches/patch-src_oldreader_api_cpp > =================================================================== > RCS file: patches/patch-src_oldreader_api_cpp > diff -N patches/patch-src_oldreader_api_cpp > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_oldreader_api_cpp 26 Jan 2017 22:22:16 -0000 > @@ -0,0 +1,31 @@ > +$OpenBSD$ > +--- src/oldreader_api.cpp.orig Tue Oct 11 09:07:35 2016 > ++++ src/oldreader_api.cpp Tue Oct 11 09:11:49 2016 > +@@ -1,7 +1,7 @@ > + #include <vector> > + #include <cstring> > + #include <iostream> > +-#include <wordexp.h> > ++#include <glob.h> > + > + #include <oldreader_api.h> > + #include <config.h> > +@@ -65,11 +65,13 @@ std::string oldreader_api::retrieve_auth() { > + > + std::string pass = cfg->get_configvalue("oldreader-password"); > + if( pass == "" ) { > +- wordexp_t exp; > +- std::ifstream ifs; > +- > wordexp(cfg->get_configvalue("oldreader-passwordfile").c_str(),&exp,0); > +- ifs.open(exp.we_wordv[0]); > +- wordfree(&exp); > ++ glob_t exp; > ++ std::ifstream ifs; > ++ int res = > glob(cfg->get_configvalue("oldreader-passwordfile").c_str(), GLOB_ERR, NULL, > &exp); > ++ if (!res && exp.gl_pathc == 1 && exp.gl_pathv) { > ++ ifs.open(exp.gl_pathv[0]); > ++ } > ++ globfree(&exp); > + if (!ifs) { > + if(!flushed) { > + std::cout << std::endl; > Index: patches/patch-src_ttrss_api_cpp > =================================================================== > RCS file: patches/patch-src_ttrss_api_cpp > diff -N patches/patch-src_ttrss_api_cpp > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_ttrss_api_cpp 26 Jan 2017 22:22:16 -0000 > @@ -0,0 +1,30 @@ > +$OpenBSD$ > +--- src/ttrss_api.cpp.orig Tue Oct 11 09:07:40 2016 > ++++ src/ttrss_api.cpp Tue Oct 11 09:10:44 2016 > +@@ -4,7 +4,7 @@ > + #include <cstring> > + #include <algorithm> > + > +-#include <wordexp.h> > ++#include <glob.h> > + #include <unistd.h> > + #include <iostream> > + > +@@ -54,11 +54,13 @@ std::string ttrss_api::retrieve_sid() { > + > + std::string pass = cfg->get_configvalue("ttrss-password"); > + if (pass == "") { > +- wordexp_t exp; > ++ glob_t exp; > + std::ifstream ifs; > +- > wordexp(cfg->get_configvalue("ttrss-passwordfile").c_str(),&exp,0); > +- ifs.open(exp.we_wordv[0]); > +- wordfree(&exp); > ++ int res = > glob(cfg->get_configvalue("ttrss-passwordfile").c_str(), GLOB_ERR, NULL, > &exp); > ++ if (!res && exp.gl_pathc == 1 && exp.gl_pathv) { > ++ ifs.open(exp.gl_pathv[0]); > ++ } > ++ globfree(&exp); > + if (!ifs) { > + if(!flushed) { > + std::cout << std::endl; > Index: patches/patch-src_utils_cpp > =================================================================== > RCS file: patches/patch-src_utils_cpp > diff -N patches/patch-src_utils_cpp > --- patches/patch-src_utils_cpp 16 Oct 2013 18:05:25 -0000 1.1.1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,18 +0,0 @@ > -$OpenBSD: patch-src_utils_cpp,v 1.1.1.1 2013/10/16 18:05:25 abieber Exp $ > - > -This is covered in the pull request sent upstream: > - https://github.com/akrennmair/newsbeuter/pull/97 > - > -If this pull request is merged, this patch will no longer apply. > - > ---- src/utils.cpp.orig Tue Aug 27 06:20:39 2013 > -+++ src/utils.cpp Mon Oct 14 22:06:09 2013 > -@@ -274,7 +274,7 @@ std::string utils::convert_text(const std::string& tex > - * of all the Unix-like systems around there, only Linux/glibc seems to > - * come with a SuSv3-conforming iconv implementation. > - */ > --#if !(__linux) && !defined(__GLIBC__) && !defined(__APPLE__) > -+#if !(__linux) && !defined(__GLIBC__) && !defined(__APPLE__) && > !defined(__OpenBSD__) > - const char * inbufp; > - #else > - char * inbufp; -- PGP: 0x1F81112D62A9ADCE / 3586 3350 BFEA C101 DB1A 4AF0 1F81 112D 62A9 ADCE