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?
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 <[email protected]>
-
# 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;