diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index f260e3a..0000000 --- a/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -rss2email.py -CHANGELOG diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1b6464b --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/rss2email-*.tar.gz +/v3.12.2.tar.gz +/v3.12.3.tar.gz +/v3.13.1.tar.gz +/v3.14.tar.gz diff --git a/Makefile b/Makefile deleted file mode 100644 index 2a8b2b6..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: rss2email -# $Id$ -NAME := rss2email -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/README.migrate b/README.migrate new file mode 100644 index 0000000..46c085a --- /dev/null +++ b/README.migrate @@ -0,0 +1,7 @@ +rss2email 3.x introduces a new, incompatible format for configuration and +feed data. Please review the r2e(1) manpage for details on the new +configuration format. + +You can migrate (parts of) your data, using the provided r2e-migrate +executable: it will set up your default email address, feed list, and +already-seen database. diff --git a/r2e-migrate b/r2e-migrate new file mode 100755 index 0000000..c741c46 --- /dev/null +++ b/r2e-migrate @@ -0,0 +1,153 @@ +#!/usr/bin/python3 +# +# Migrate data from the rss2email 2.x format to the 3.x format. +# +# Copyright (c) 2013, Etienne Millon +# Redistributable under the GPL version 2 or later +# +# Please report bugs and suggestion on the Debian bugtracker using the +# "reportbug rss2email" command. +# +# Changelog: +# +# v6 (2017-12-28) +# - ported to Python 3 using 2to3 +# +# v5 (2015-07-04) +# - support per-feed addresses +# +# v4 (2014-06-10) +# - support XDG directories +# +# v3 (2014-02-04) +# - Write status file (already-seen DB) +# - Fix path in error message +# +# v2 (2013-09-17) +# - Preserve paused status (Denis Laxalde) +# +# v1 (2013-08-12) +# - Migrate feed names only. +# + +import json +import os.path +import pickle +import string +import subprocess +import sys +import xdg.BaseDirectory + + +class Feed: + def __init__(self, url, to): + self.url, self.etag, self.modified, self.seen = url, None, None, {} + self.active = True + self.to = to + + def __repr__(self): + fmt = '\n'.join(['Feed(url={url},', + ' etag={etag},', + ' modified={modified},', + ' seen={seen},', + ' active={active},', + ' to={to},', + ')', + ]) + return fmt.format(**self.__dict__) + + +def not_empty(g): + try: + next(g) + return True + except StopIteration: + return False + + +def new_db_exists(): + config = xdg.BaseDirectory.load_config_paths('rss2email.cfg') + data = xdg.BaseDirectory.load_data_paths('rss2email.json') + return not_empty(config) or not_empty(data) + + +def set_email(s): + return subprocess.call(['r2e', 'email', s]) + + +def slugify_char(c): + allowed = string.ascii_letters + string.digits + '._-' + if c in allowed: + return c + else: + return '_' + + +def slugify(s): + return ''.join([slugify_char(c) for c in s]) + + +def add(url, name, to): + extra_args = [] + if to is not None: + extra_args = [to] + return subprocess.call(['r2e', 'add', name, url] + extra_args) + + +def pause(name): + return subprocess.call(['r2e', 'pause', name]) + + +def main(): + if new_db_exists(): + print(""" + It seems that a rss2email 3.x database already exists, exiting. + If you want to import your old (rss2email 2.x) database, please remove + ~/.config/rss2email.cfg and ~/.local/share/rss2email.json (or XDG + equivalents) and re-run r2e-migrate. + """) + sys.exit(1) + + old_feed_data_file = os.path.expanduser('~/.rss2email/feeds.dat') + with open(old_feed_data_file) as f: + data = pickle.load(f) + + email = data[0] + feeds = data[1:] + + status = {'version': 2, + 'feeds': [], + } + + print('Default email address: {}'.format(email)) + set_email(email) + + print('Adding feeds:') + for feed in feeds: + url = feed.url + print(url) + name = slugify(url) + add(url, name, feed.to) + if not feed.active: + pause(name) + modified = None + if feed.modified: + modified = str(feed.modified) + feed_status = {'seen': {}, + 'etag': feed.etag, + 'name': str(name), + 'modified': modified, + } + for k, v in list(feed.seen.items()): + feed_status['seen'][k] = {'id': v} + status['feeds'].append(feed_status) + + # save_data_path would work but rss2email uses a bare file + data_dir = xdg.BaseDirectory.xdg_data_home + new_status_file = os.path.join(data_dir, 'rss2email.json') + with open(new_status_file, 'w') as statf: + json.dump(status, statf) + + +if __name__ == '__main__': + main() diff --git a/r2e-migrate.1 b/r2e-migrate.1 new file mode 100644 index 0000000..dd53d39 --- /dev/null +++ b/r2e-migrate.1 @@ -0,0 +1,24 @@ +.TH r2e\-migrate 1 "2013\-02\-04" +.SH NAME +r2e\-migrate \- Migrate your data from rss2email 2.x to rss2email 3.x. +.SH USAGE +.IP +.nf +\f[C] +r2e\-migrate +\f[] +.fi +.PP +Please note that you may still have to adapt your configuration. +See \f[C]r2e(1)\f[]. +.SH FILES +.PP +2.x versions used to store configuration in +\f[C]~/.rss2email/config.py\f[] and data in +\f[C]~/.rss2email/feeds.dat\f[]. +.PP +Now 3.x stores its configuration in +\f[C]$XDG_CONFIG_HOME/rss2email.cfg\f[] and data in +\f[C]$XDG_DATA_HOME/rss2email.json\f[]. +.SH AUTHORS +Etienne Millon . diff --git a/rss2email-3.14-fix-tests-pr-279.patch b/rss2email-3.14-fix-tests-pr-279.patch new file mode 100644 index 0000000..5b5b92e --- /dev/null +++ b/rss2email-3.14-fix-tests-pr-279.patch @@ -0,0 +1,234 @@ +diff --git a/test/data/tails/1.expected b/test/data/tails/1.expected +index cd6238c..0feef24 100644 +--- a/test/data/tails/1.expected ++++ b/test/data/tails/1.expected +@@ -362,48 +362,48 @@ YzEuCgpUbyBkbyBhbiBhdXRvbWF0aWMgdXBncmFkZSB0byBUYWlscyA0LjExfnJjMToKCiAgICAx + LiBTdGFydCBUYWlscyA0LjIgb3IgbGF0ZXIgYW5kIFtzZXQgYW4gYWRtaW5pc3RyYXRpb24gcGFz + c3dvcmRdKGh0dHBzOi8vdGFpbHMuYm91bS5vcmcvZG9jL2ZpcnN0X3N0ZXBzL3dlbGNvbWVfc2Ny + ZWVuL2FkbWluaXN0cmF0aW9uX3Bhc3N3b3JkL2luZGV4LmVuLmh0bWwpLgoKICAgIDIuIFJ1biB0 +-aGlzIGNvbW1hbmQgaW4gYSBfVGVybWluYWxfIDoKICAgICAgICAKICAgICAgICAgICAgICAgIGVj +-aG8gVEFJTFNfQ0hBTk5FTD1cImFscGhhXCIgfCBzdWRvIHRlZSAtYSAvZXRjL29zLXJlbGVhc2Ug +-JiYgXAogICAgICAgICAgICAgdGFpbHMtdXBncmFkZS1mcm9udGVuZC13cmFwcGVyCiAgICAgICAg +-CgpFbnRlciB0aGUgYWRtaW5pc3RyYXRpb24gcGFzc3dvcmQgd2hlbiBhc2tlZCBmb3IgdGhlICJw +-YXNzd29yZCBmb3IgYW1uZXNpYSIuCgogICAgMy4gQWZ0ZXIgdGhlIHVwZ3JhZGUgaXMgYXBwbGll +-ZCwgcmVzdGFydCBUYWlscyBhbmQgY2hvb3NlICoqQXBwbGljYXRpb25zICDilrggVGFpbHMg4pa4 +-IEFib3V0IFRhaWxzKiogdG8gdmVyaWZ5IHRoYXQgeW91IGFyZSBydW5uaW5nIFRhaWxzIDQuMTF+ +-cmMxLgoKICAqIElmIHlvdSBjYW5ub3QgZG8gYW4gYXV0b21hdGljIHVwZ3JhZGUgb3IgaWYgVGFp +-bHMgZmFpbHMgdG8gc3RhcnQgYWZ0ZXIgYW4gYXV0b21hdGljIHVwZ3JhZGUsIHBsZWFzZSB0cnkg +-dG8gZG8gYSBbbWFudWFsIHVwZ3JhZGVdKGh0dHBzOi8vdGFpbHMuYm91bS5vcmcvZG9jL3VwZ3Jh +-ZGUvaW5kZXguZW4uaHRtbCNtYW51YWwpLgoKIyMgVG8gZG93bmxvYWQgNC4xMX5yYzEKCiMjIyBE +-aXJlY3QgZG93bmxvYWQKCiAgKiBbRm9yIFVTQiBzdGlja3MgKFVTQiBpbWFnZSldKGh0dHA6Ly9k +-bC5hbW5lc2lhLmJvdW0ub3JnL3RhaWxzL2FscGhhL3RhaWxzLWFtZDY0LTQuMTF+cmMxL3RhaWxz +-LWFtZDY0LTQuMTF+cmMxLmltZykgKFs/XShodHRwczovL3RhaWxzLmJvdW0ub3JnL2lraXdpa2ku +-Y2dpP2RvPWNyZWF0ZSZmcm9tPW5ld3MlMkZ0ZXN0XzQuMTEtcmMxJnBhZ2U9dG9ycmVudHMlMkZm +-aWxlcyUyRnRhaWxzLWFtZDY0LTQuMTF+cmMxLmltZy5zaWcpT3BlblBHUCBzaWduYXR1cmUpCgog +-ICogW0ZvciBEVkRzIGFuZCB2aXJ0dWFsIG1hY2hpbmVzIChJU08gaW1hZ2UpXShodHRwOi8vZGwu +-YW1uZXNpYS5ib3VtLm9yZy90YWlscy9hbHBoYS90YWlscy1hbWQ2NC00LjExfnJjMS90YWlscy1h +-bWQ2NC00LjExfnJjMS5pc28pIChbP10oaHR0cHM6Ly90YWlscy5ib3VtLm9yZy9pa2l3aWtpLmNn +-aT9kbz1jcmVhdGUmZnJvbT1uZXdzJTJGdGVzdF80LjExLXJjMSZwYWdlPXRvcnJlbnRzJTJGZmls +-ZXMlMkZ0YWlscy1hbWQ2NC00LjExfnJjMS5pc28uc2lnKU9wZW5QR1Agc2lnbmF0dXJlKQoKIyMj +-IEJpdFRvcnJlbnQgZG93bmxvYWQKCiAgKiBbRm9yIFVTQiBzdGlja3MgKFVTQiBpbWFnZSldKGh0 +-dHBzOi8vdGFpbHMuYm91bS5vcmcvdG9ycmVudHMvZmlsZXMvdGFpbHMtYW1kNjQtNC4xMX5yYzEu +-aW1nLnRvcnJlbnQpCgogICogW0ZvciBEVkRzIGFuZCB2aXJ0dWFsIG1hY2hpbmVzIChJU08gaW1h +-Z2UpXShodHRwczovL3RhaWxzLmJvdW0ub3JnL3RvcnJlbnRzL2ZpbGVzL3RhaWxzLWFtZDY0LTQu +-MTF+cmMxLmlzby50b3JyZW50KQoKIyMgVG8gaW5zdGFsbCBUYWlscyBvbiBhIG5ldyBVU0Igc3Rp +-Y2sKCkZvbGxvdyBvdXIgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9uczoKCiAgKiBbSW5zdGFsbCBm +-cm9tIFdpbmRvd3NdKGh0dHBzOi8vdGFpbHMuYm91bS5vcmcvaW5zdGFsbC93aW4vdXNiL2luZGV4 +-LmVuLmh0bWwpCiAgKiBbSW5zdGFsbCBmcm9tIG1hY09TXShodHRwczovL3RhaWxzLmJvdW0ub3Jn +-L2luc3RhbGwvbWFjL3VzYi9pbmRleC5lbi5odG1sKQogICogW0luc3RhbGwgZnJvbSBMaW51eF0o +-aHR0cHM6Ly90YWlscy5ib3VtLm9yZy9pbnN0YWxsL2xpbnV4L3VzYi9pbmRleC5lbi5odG1sKQoK +-QWxsIHRoZSBkYXRhIG9uIHRoaXMgVVNCIHN0aWNrIHdpbGwgYmUgbG9zdC4KCiMgV2hhdCdzIGNv +-bWluZyB1cD8KClRhaWxzIDQuMTEgaXMgW3NjaGVkdWxlZF0oaHR0cHM6Ly90YWlscy5ib3VtLm9y +-Zy9jb250cmlidXRlL2NhbGVuZGFyLykgZm9yClNlcHRlbWJlciAyMi4KCkhhdmUgYSBsb29rIGF0 +-IG91ciBbcm9hZG1hcF0oaHR0cHM6Ly90YWlscy5ib3VtLm9yZy9jb250cmlidXRlL3JvYWRtYXAp +-IHRvIHNlZQp3aGVyZSB3ZSBhcmUgaGVhZGluZyB0by4KCldlIG5lZWQgeW91ciBoZWxwIGFuZCB0 +-aGVyZSBhcmUgbWFueSB3YXlzIHRvIFtjb250cmlidXRlIHRvClRhaWxzXShodHRwczovL3RhaWxz +-LmJvdW0ub3JnL2NvbnRyaWJ1dGUvaW5kZXguZW4uaHRtbCkKKFtkb25hdGluZ10oaHR0cHM6Ly90 +-YWlscy5ib3VtLm9yZy9kb25hdGUvP3I9NC4xMS1yYzEpIGlzIG9ubHkgb25lIG9mIHRoZW0pLgpD +-b21lIFt0YWxrIHRvIHVzXShodHRwczovL3RhaWxzLmJvdW0ub3JnL2Fib3V0L2NvbnRhY3QvaW5k +-ZXguZW4uaHRtbCN0YWlscy0KZGV2KSEKCgoKVVJMOiBodHRwczovL3RhaWxzLmJvdW0ub3JnL25l +-d3MvdGVzdF80LjExLXJjMS8= ++aGlzIGNvbW1hbmQgaW4gYSBfVGVybWluYWxfIDoKICAgICAgICAgICAKICAgICAgICAgICBlY2hv ++IFRBSUxTX0NIQU5ORUw9XCJhbHBoYVwiIHwgc3VkbyB0ZWUgLWEgL2V0Yy9vcy1yZWxlYXNlICYm ++IFwKICAgICAgICAgICAgICAgIHRhaWxzLXVwZ3JhZGUtZnJvbnRlbmQtd3JhcHBlcgogICAgICAg ++ICAgIAoKRW50ZXIgdGhlIGFkbWluaXN0cmF0aW9uIHBhc3N3b3JkIHdoZW4gYXNrZWQgZm9yIHRo ++ZSAicGFzc3dvcmQgZm9yIGFtbmVzaWEiLgoKICAgIDMuIEFmdGVyIHRoZSB1cGdyYWRlIGlzIGFw ++cGxpZWQsIHJlc3RhcnQgVGFpbHMgYW5kIGNob29zZSAqKkFwcGxpY2F0aW9ucyAg4pa4IFRhaWxz ++IOKWuCBBYm91dCBUYWlscyoqIHRvIHZlcmlmeSB0aGF0IHlvdSBhcmUgcnVubmluZyBUYWlscyA0 ++LjExfnJjMS4KCiAgKiBJZiB5b3UgY2Fubm90IGRvIGFuIGF1dG9tYXRpYyB1cGdyYWRlIG9yIGlm ++IFRhaWxzIGZhaWxzIHRvIHN0YXJ0IGFmdGVyIGFuIGF1dG9tYXRpYyB1cGdyYWRlLCBwbGVhc2Ug ++dHJ5IHRvIGRvIGEgW21hbnVhbCB1cGdyYWRlXShodHRwczovL3RhaWxzLmJvdW0ub3JnL2RvYy91 ++cGdyYWRlL2luZGV4LmVuLmh0bWwjbWFudWFsKS4KCiMjIFRvIGRvd25sb2FkIDQuMTF+cmMxCgoj ++IyMgRGlyZWN0IGRvd25sb2FkCgogICogW0ZvciBVU0Igc3RpY2tzIChVU0IgaW1hZ2UpXShodHRw ++Oi8vZGwuYW1uZXNpYS5ib3VtLm9yZy90YWlscy9hbHBoYS90YWlscy1hbWQ2NC00LjExfnJjMS90 ++YWlscy1hbWQ2NC00LjExfnJjMS5pbWcpIChbP10oaHR0cHM6Ly90YWlscy5ib3VtLm9yZy9pa2l3 ++aWtpLmNnaT9kbz1jcmVhdGUmZnJvbT1uZXdzJTJGdGVzdF80LjExLXJjMSZwYWdlPXRvcnJlbnRz ++JTJGZmlsZXMlMkZ0YWlscy1hbWQ2NC00LjExfnJjMS5pbWcuc2lnKU9wZW5QR1Agc2lnbmF0dXJl ++KQoKICAqIFtGb3IgRFZEcyBhbmQgdmlydHVhbCBtYWNoaW5lcyAoSVNPIGltYWdlKV0oaHR0cDov ++L2RsLmFtbmVzaWEuYm91bS5vcmcvdGFpbHMvYWxwaGEvdGFpbHMtYW1kNjQtNC4xMX5yYzEvdGFp ++bHMtYW1kNjQtNC4xMX5yYzEuaXNvKSAoWz9dKGh0dHBzOi8vdGFpbHMuYm91bS5vcmcvaWtpd2lr ++aS5jZ2k/ZG89Y3JlYXRlJmZyb209bmV3cyUyRnRlc3RfNC4xMS1yYzEmcGFnZT10b3JyZW50cyUy ++RmZpbGVzJTJGdGFpbHMtYW1kNjQtNC4xMX5yYzEuaXNvLnNpZylPcGVuUEdQIHNpZ25hdHVyZSkK ++CiMjIyBCaXRUb3JyZW50IGRvd25sb2FkCgogICogW0ZvciBVU0Igc3RpY2tzIChVU0IgaW1hZ2Up ++XShodHRwczovL3RhaWxzLmJvdW0ub3JnL3RvcnJlbnRzL2ZpbGVzL3RhaWxzLWFtZDY0LTQuMTF+ ++cmMxLmltZy50b3JyZW50KQoKICAqIFtGb3IgRFZEcyBhbmQgdmlydHVhbCBtYWNoaW5lcyAoSVNP ++IGltYWdlKV0oaHR0cHM6Ly90YWlscy5ib3VtLm9yZy90b3JyZW50cy9maWxlcy90YWlscy1hbWQ2 ++NC00LjExfnJjMS5pc28udG9ycmVudCkKCiMjIFRvIGluc3RhbGwgVGFpbHMgb24gYSBuZXcgVVNC ++IHN0aWNrCgpGb2xsb3cgb3VyIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnM6CgogICogW0luc3Rh ++bGwgZnJvbSBXaW5kb3dzXShodHRwczovL3RhaWxzLmJvdW0ub3JnL2luc3RhbGwvd2luL3VzYi9p ++bmRleC5lbi5odG1sKQogICogW0luc3RhbGwgZnJvbSBtYWNPU10oaHR0cHM6Ly90YWlscy5ib3Vt ++Lm9yZy9pbnN0YWxsL21hYy91c2IvaW5kZXguZW4uaHRtbCkKICAqIFtJbnN0YWxsIGZyb20gTGlu ++dXhdKGh0dHBzOi8vdGFpbHMuYm91bS5vcmcvaW5zdGFsbC9saW51eC91c2IvaW5kZXguZW4uaHRt ++bCkKCkFsbCB0aGUgZGF0YSBvbiB0aGlzIFVTQiBzdGljayB3aWxsIGJlIGxvc3QuCgojIFdoYXQn ++cyBjb21pbmcgdXA/CgpUYWlscyA0LjExIGlzIFtzY2hlZHVsZWRdKGh0dHBzOi8vdGFpbHMuYm91 ++bS5vcmcvY29udHJpYnV0ZS9jYWxlbmRhci8pIGZvcgpTZXB0ZW1iZXIgMjIuCgpIYXZlIGEgbG9v ++ayBhdCBvdXIgW3JvYWRtYXBdKGh0dHBzOi8vdGFpbHMuYm91bS5vcmcvY29udHJpYnV0ZS9yb2Fk ++bWFwKSB0byBzZWUKd2hlcmUgd2UgYXJlIGhlYWRpbmcgdG8uCgpXZSBuZWVkIHlvdXIgaGVscCBh ++bmQgdGhlcmUgYXJlIG1hbnkgd2F5cyB0byBbY29udHJpYnV0ZSB0bwpUYWlsc10oaHR0cHM6Ly90 ++YWlscy5ib3VtLm9yZy9jb250cmlidXRlL2luZGV4LmVuLmh0bWwpCihbZG9uYXRpbmddKGh0dHBz ++Oi8vdGFpbHMuYm91bS5vcmcvZG9uYXRlLz9yPTQuMTEtcmMxKSBpcyBvbmx5IG9uZSBvZiB0aGVt ++KS4KQ29tZSBbdGFsayB0byB1c10oaHR0cHM6Ly90YWlscy5ib3VtLm9yZy9hYm91dC9jb250YWN0 ++L2luZGV4LmVuLmh0bWwjdGFpbHMtCmRldikhCgoKClVSTDogaHR0cHM6Ly90YWlscy5ib3VtLm9y ++Zy9uZXdzL3Rlc3RfNC4xMS1yYzEv + + + SENT BY: "Tails - News: " +@@ -796,17 +796,17 @@ For more details, read our + # Known issues + + * Ledger wallets are not detected by _Electrum_ , with the following error message returned. ([#18080](https://gitlab.tails.boum.org/tails/tails/-/issues/18080)) +- ++ + "No hardware device detected" +- ++ + + Please try to execute the following command in a [root + terminal](https://tails.boum.org/doc/first_steps/welcome_screen/administration_password/index.en.html#open_root_terminal) + before starting _Electrum_ : + +- +- apt update && apt install python3-btchip/testing +- ++ ++ apt update && apt install python3-btchip/testing ++ + + See the list of [long-standing + issues](https://tails.boum.org/support/known_issues/index.en.html). +diff --git a/test/data/tails/2.expected b/test/data/tails/2.expected +index 7b48a67..7e9fd49 100644 +--- a/test/data/tails/2.expected ++++ b/test/data/tails/2.expected +@@ -933,47 +933,47 @@ bHMgNC4xMX5yYzE6CgogICAgMS4gU3RhcnQgVGFpbHMgNC4yIG9yIGxhdGVyIGFuZCBbc2V0IGFu + IGFkbWluaXN0cmF0aW9uIHBhc3N3b3JkXShodHRwczovL3RhaWxzLmJvdW0ub3JnL2RvYy9maXJz + dF9zdGVwcy93ZWxjb21lX3NjcmVlbi9hZG1pbmlzdHJhdGlvbl9wYXNzd29yZC9pbmRleC5lbi5o + dG1sKS4KCiAgICAyLiBSdW4gdGhpcyBjb21tYW5kIGluIGEgX1Rlcm1pbmFsXyA6CiAgICAgICAg +-CiAgICAgICAgICAgICAgICBlY2hvIFRBSUxTX0NIQU5ORUw9XCJhbHBoYVwiIHwgc3VkbyB0ZWUg +-LWEgL2V0Yy9vcy1yZWxlYXNlICYmIFwKICAgICAgICAgICAgIHRhaWxzLXVwZ3JhZGUtZnJvbnRl +-bmQtd3JhcHBlcgogICAgICAgIAoKRW50ZXIgdGhlIGFkbWluaXN0cmF0aW9uIHBhc3N3b3JkIHdo +-ZW4gYXNrZWQgZm9yIHRoZSAicGFzc3dvcmQgZm9yIGFtbmVzaWEiLgoKICAgIDMuIEFmdGVyIHRo +-ZSB1cGdyYWRlIGlzIGFwcGxpZWQsIHJlc3RhcnQgVGFpbHMgYW5kIGNob29zZSAqKkFwcGxpY2F0 +-aW9ucyAg4pa4IFRhaWxzIOKWuCBBYm91dCBUYWlscyoqIHRvIHZlcmlmeSB0aGF0IHlvdSBhcmUg +-cnVubmluZyBUYWlscyA0LjExfnJjMS4KCiAgKiBJZiB5b3UgY2Fubm90IGRvIGFuIGF1dG9tYXRp +-YyB1cGdyYWRlIG9yIGlmIFRhaWxzIGZhaWxzIHRvIHN0YXJ0IGFmdGVyIGFuIGF1dG9tYXRpYyB1 +-cGdyYWRlLCBwbGVhc2UgdHJ5IHRvIGRvIGEgW21hbnVhbCB1cGdyYWRlXShodHRwczovL3RhaWxz +-LmJvdW0ub3JnL2RvYy91cGdyYWRlL2luZGV4LmVuLmh0bWwjbWFudWFsKS4KCiMjIFRvIGRvd25s +-b2FkIDQuMTF+cmMxCgojIyMgRGlyZWN0IGRvd25sb2FkCgogICogW0ZvciBVU0Igc3RpY2tzIChV +-U0IgaW1hZ2UpXShodHRwOi8vZGwuYW1uZXNpYS5ib3VtLm9yZy90YWlscy9hbHBoYS90YWlscy1h +-bWQ2NC00LjExfnJjMS90YWlscy1hbWQ2NC00LjExfnJjMS5pbWcpIChbP10oaHR0cHM6Ly90YWls +-cy5ib3VtLm9yZy9pa2l3aWtpLmNnaT9kbz1jcmVhdGUmZnJvbT1uZXdzJTJGdGVzdF80LjExLXJj +-MSZwYWdlPXRvcnJlbnRzJTJGZmlsZXMlMkZ0YWlscy1hbWQ2NC00LjExfnJjMS5pbWcuc2lnKU9w +-ZW5QR1Agc2lnbmF0dXJlKQoKICAqIFtGb3IgRFZEcyBhbmQgdmlydHVhbCBtYWNoaW5lcyAoSVNP +-IGltYWdlKV0oaHR0cDovL2RsLmFtbmVzaWEuYm91bS5vcmcvdGFpbHMvYWxwaGEvdGFpbHMtYW1k +-NjQtNC4xMX5yYzEvdGFpbHMtYW1kNjQtNC4xMX5yYzEuaXNvKSAoWz9dKGh0dHBzOi8vdGFpbHMu +-Ym91bS5vcmcvaWtpd2lraS5jZ2k/ZG89Y3JlYXRlJmZyb209bmV3cyUyRnRlc3RfNC4xMS1yYzEm +-cGFnZT10b3JyZW50cyUyRmZpbGVzJTJGdGFpbHMtYW1kNjQtNC4xMX5yYzEuaXNvLnNpZylPcGVu +-UEdQIHNpZ25hdHVyZSkKCiMjIyBCaXRUb3JyZW50IGRvd25sb2FkCgogICogW0ZvciBVU0Igc3Rp +-Y2tzIChVU0IgaW1hZ2UpXShodHRwczovL3RhaWxzLmJvdW0ub3JnL3RvcnJlbnRzL2ZpbGVzL3Rh +-aWxzLWFtZDY0LTQuMTF+cmMxLmltZy50b3JyZW50KQoKICAqIFtGb3IgRFZEcyBhbmQgdmlydHVh +-bCBtYWNoaW5lcyAoSVNPIGltYWdlKV0oaHR0cHM6Ly90YWlscy5ib3VtLm9yZy90b3JyZW50cy9m +-aWxlcy90YWlscy1hbWQ2NC00LjExfnJjMS5pc28udG9ycmVudCkKCiMjIFRvIGluc3RhbGwgVGFp +-bHMgb24gYSBuZXcgVVNCIHN0aWNrCgpGb2xsb3cgb3VyIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlv +-bnM6CgogICogW0luc3RhbGwgZnJvbSBXaW5kb3dzXShodHRwczovL3RhaWxzLmJvdW0ub3JnL2lu +-c3RhbGwvd2luL3VzYi9pbmRleC5lbi5odG1sKQogICogW0luc3RhbGwgZnJvbSBtYWNPU10oaHR0 +-cHM6Ly90YWlscy5ib3VtLm9yZy9pbnN0YWxsL21hYy91c2IvaW5kZXguZW4uaHRtbCkKICAqIFtJ +-bnN0YWxsIGZyb20gTGludXhdKGh0dHBzOi8vdGFpbHMuYm91bS5vcmcvaW5zdGFsbC9saW51eC91 +-c2IvaW5kZXguZW4uaHRtbCkKCkFsbCB0aGUgZGF0YSBvbiB0aGlzIFVTQiBzdGljayB3aWxsIGJl +-IGxvc3QuCgojIFdoYXQncyBjb21pbmcgdXA/CgpUYWlscyA0LjExIGlzIFtzY2hlZHVsZWRdKGh0 +-dHBzOi8vdGFpbHMuYm91bS5vcmcvY29udHJpYnV0ZS9jYWxlbmRhci8pIGZvcgpTZXB0ZW1iZXIg +-MjIuCgpIYXZlIGEgbG9vayBhdCBvdXIgW3JvYWRtYXBdKGh0dHBzOi8vdGFpbHMuYm91bS5vcmcv +-Y29udHJpYnV0ZS9yb2FkbWFwKSB0byBzZWUKd2hlcmUgd2UgYXJlIGhlYWRpbmcgdG8uCgpXZSBu +-ZWVkIHlvdXIgaGVscCBhbmQgdGhlcmUgYXJlIG1hbnkgd2F5cyB0byBbY29udHJpYnV0ZSB0bwpU +-YWlsc10oaHR0cHM6Ly90YWlscy5ib3VtLm9yZy9jb250cmlidXRlL2luZGV4LmVuLmh0bWwpCihb +-ZG9uYXRpbmddKGh0dHBzOi8vdGFpbHMuYm91bS5vcmcvZG9uYXRlLz9yPTQuMTEtcmMxKSBpcyBv +-bmx5IG9uZSBvZiB0aGVtKS4KQ29tZSBbdGFsayB0byB1c10oaHR0cHM6Ly90YWlscy5ib3VtLm9y +-Zy9hYm91dC9jb250YWN0L2luZGV4LmVuLmh0bWwjdGFpbHMtCmRldikhCgpVUkw6IDxodHRwczov +-L3RhaWxzLmJvdW0ub3JnL25ld3MvdGVzdF80LjExLXJjMS8+Cgo= ++ICAgCiAgICAgICAgICAgZWNobyBUQUlMU19DSEFOTkVMPVwiYWxwaGFcIiB8IHN1ZG8gdGVlIC1h ++IC9ldGMvb3MtcmVsZWFzZSAmJiBcCiAgICAgICAgICAgICAgICB0YWlscy11cGdyYWRlLWZyb250 ++ZW5kLXdyYXBwZXIKICAgICAgICAgICAKCkVudGVyIHRoZSBhZG1pbmlzdHJhdGlvbiBwYXNzd29y ++ZCB3aGVuIGFza2VkIGZvciB0aGUgInBhc3N3b3JkIGZvciBhbW5lc2lhIi4KCiAgICAzLiBBZnRl ++ciB0aGUgdXBncmFkZSBpcyBhcHBsaWVkLCByZXN0YXJ0IFRhaWxzIGFuZCBjaG9vc2UgKipBcHBs ++aWNhdGlvbnMgIOKWuCBUYWlscyDilrggQWJvdXQgVGFpbHMqKiB0byB2ZXJpZnkgdGhhdCB5b3Ug ++YXJlIHJ1bm5pbmcgVGFpbHMgNC4xMX5yYzEuCgogICogSWYgeW91IGNhbm5vdCBkbyBhbiBhdXRv ++bWF0aWMgdXBncmFkZSBvciBpZiBUYWlscyBmYWlscyB0byBzdGFydCBhZnRlciBhbiBhdXRvbWF0 ++aWMgdXBncmFkZSwgcGxlYXNlIHRyeSB0byBkbyBhIFttYW51YWwgdXBncmFkZV0oaHR0cHM6Ly90 ++YWlscy5ib3VtLm9yZy9kb2MvdXBncmFkZS9pbmRleC5lbi5odG1sI21hbnVhbCkuCgojIyBUbyBk ++b3dubG9hZCA0LjExfnJjMQoKIyMjIERpcmVjdCBkb3dubG9hZAoKICAqIFtGb3IgVVNCIHN0aWNr ++cyAoVVNCIGltYWdlKV0oaHR0cDovL2RsLmFtbmVzaWEuYm91bS5vcmcvdGFpbHMvYWxwaGEvdGFp ++bHMtYW1kNjQtNC4xMX5yYzEvdGFpbHMtYW1kNjQtNC4xMX5yYzEuaW1nKSAoWz9dKGh0dHBzOi8v ++dGFpbHMuYm91bS5vcmcvaWtpd2lraS5jZ2k/ZG89Y3JlYXRlJmZyb209bmV3cyUyRnRlc3RfNC4x ++MS1yYzEmcGFnZT10b3JyZW50cyUyRmZpbGVzJTJGdGFpbHMtYW1kNjQtNC4xMX5yYzEuaW1nLnNp ++ZylPcGVuUEdQIHNpZ25hdHVyZSkKCiAgKiBbRm9yIERWRHMgYW5kIHZpcnR1YWwgbWFjaGluZXMg ++KElTTyBpbWFnZSldKGh0dHA6Ly9kbC5hbW5lc2lhLmJvdW0ub3JnL3RhaWxzL2FscGhhL3RhaWxz ++LWFtZDY0LTQuMTF+cmMxL3RhaWxzLWFtZDY0LTQuMTF+cmMxLmlzbykgKFs/XShodHRwczovL3Rh ++aWxzLmJvdW0ub3JnL2lraXdpa2kuY2dpP2RvPWNyZWF0ZSZmcm9tPW5ld3MlMkZ0ZXN0XzQuMTEt ++cmMxJnBhZ2U9dG9ycmVudHMlMkZmaWxlcyUyRnRhaWxzLWFtZDY0LTQuMTF+cmMxLmlzby5zaWcp ++T3BlblBHUCBzaWduYXR1cmUpCgojIyMgQml0VG9ycmVudCBkb3dubG9hZAoKICAqIFtGb3IgVVNC ++IHN0aWNrcyAoVVNCIGltYWdlKV0oaHR0cHM6Ly90YWlscy5ib3VtLm9yZy90b3JyZW50cy9maWxl ++cy90YWlscy1hbWQ2NC00LjExfnJjMS5pbWcudG9ycmVudCkKCiAgKiBbRm9yIERWRHMgYW5kIHZp ++cnR1YWwgbWFjaGluZXMgKElTTyBpbWFnZSldKGh0dHBzOi8vdGFpbHMuYm91bS5vcmcvdG9ycmVu ++dHMvZmlsZXMvdGFpbHMtYW1kNjQtNC4xMX5yYzEuaXNvLnRvcnJlbnQpCgojIyBUbyBpbnN0YWxs ++IFRhaWxzIG9uIGEgbmV3IFVTQiBzdGljawoKRm9sbG93IG91ciBpbnN0YWxsYXRpb24gaW5zdHJ1 ++Y3Rpb25zOgoKICAqIFtJbnN0YWxsIGZyb20gV2luZG93c10oaHR0cHM6Ly90YWlscy5ib3VtLm9y ++Zy9pbnN0YWxsL3dpbi91c2IvaW5kZXguZW4uaHRtbCkKICAqIFtJbnN0YWxsIGZyb20gbWFjT1Nd ++KGh0dHBzOi8vdGFpbHMuYm91bS5vcmcvaW5zdGFsbC9tYWMvdXNiL2luZGV4LmVuLmh0bWwpCiAg ++KiBbSW5zdGFsbCBmcm9tIExpbnV4XShodHRwczovL3RhaWxzLmJvdW0ub3JnL2luc3RhbGwvbGlu ++dXgvdXNiL2luZGV4LmVuLmh0bWwpCgpBbGwgdGhlIGRhdGEgb24gdGhpcyBVU0Igc3RpY2sgd2ls ++bCBiZSBsb3N0LgoKIyBXaGF0J3MgY29taW5nIHVwPwoKVGFpbHMgNC4xMSBpcyBbc2NoZWR1bGVk ++XShodHRwczovL3RhaWxzLmJvdW0ub3JnL2NvbnRyaWJ1dGUvY2FsZW5kYXIvKSBmb3IKU2VwdGVt ++YmVyIDIyLgoKSGF2ZSBhIGxvb2sgYXQgb3VyIFtyb2FkbWFwXShodHRwczovL3RhaWxzLmJvdW0u ++b3JnL2NvbnRyaWJ1dGUvcm9hZG1hcCkgdG8gc2VlCndoZXJlIHdlIGFyZSBoZWFkaW5nIHRvLgoK ++V2UgbmVlZCB5b3VyIGhlbHAgYW5kIHRoZXJlIGFyZSBtYW55IHdheXMgdG8gW2NvbnRyaWJ1dGUg ++dG8KVGFpbHNdKGh0dHBzOi8vdGFpbHMuYm91bS5vcmcvY29udHJpYnV0ZS9pbmRleC5lbi5odG1s ++KQooW2RvbmF0aW5nXShodHRwczovL3RhaWxzLmJvdW0ub3JnL2RvbmF0ZS8/cj00LjExLXJjMSkg ++aXMgb25seSBvbmUgb2YgdGhlbSkuCkNvbWUgW3RhbGsgdG8gdXNdKGh0dHBzOi8vdGFpbHMuYm91 ++bS5vcmcvYWJvdXQvY29udGFjdC9pbmRleC5lbi5odG1sI3RhaWxzLQpkZXYpIQoKVVJMOiA8aHR0 ++cHM6Ly90YWlscy5ib3VtLm9yZy9uZXdzL3Rlc3RfNC4xMS1yYzEvPgoK + + --===============...==-- + +@@ -1951,17 +1951,17 @@ For more details, read our + # Known issues + + * Ledger wallets are not detected by _Electrum_ , with the following error message returned. ([#18080](https://gitlab.tails.boum.org/tails/tails/-/issues/18080)) +- ++ + "No hardware device detected" +- ++ + + Please try to execute the following command in a [root + terminal](https://tails.boum.org/doc/first_steps/welcome_screen/administration_password/index.en.html#open_root_terminal) + before starting _Electrum_ : + +- +- apt update && apt install python3-btchip/testing +- ++ ++ apt update && apt install python3-btchip/testing ++ + + See the list of [long-standing + issues](https://tails.boum.org/support/known_issues/index.en.html). diff --git a/rss2email-3.14-remove-special-bytes.patch b/rss2email-3.14-remove-special-bytes.patch new file mode 100644 index 0000000..79951ee --- /dev/null +++ b/rss2email-3.14-remove-special-bytes.patch @@ -0,0 +1,11 @@ +--- a/test/data/allthingsrss/feed.atom ++++ b/test/data/allthingsrss/feed.atom +@@ -47,7 +47,7 @@ + </ul> + <p>Complete list in the official <a href="http://www.allthingsrss.com/rss2email/changelog">CHANGELOG</a>.</p> + <p><strong>Pause/Unpause</strong></p> +-<p>Through <code>r2e pause <em>n</em></code> where <em>n</em> is a feed number, you can temporarily suspend checking that feed for new content. To start checking it again, simply run <code>r2e unpause <em>n</em></code>. When you <code>r2e list</code>, an asterisk indicates that the feed is currently unpaused and active.</p> ++<p>Through <code>r2e pause <em>n</em></code> where <em>n</em> is a feed number, you can temporarily suspend checking that feed for new content. To start checking it again, simply run <code>r2e unpause <em>n</em></code>. When you <code>r2e list</code>, an asterisk indicates that the feed is currently unpaused and active.</p> + + <p><a href="http://feedads.g.doubleclick.net/~a/nYgTsIUsS9pmvRZ6092XGGHnNKg/0/da"><img src="http://feedads.g.doubleclick.net/~a/nYgTsIUsS9pmvRZ6092XGGHnNKg/0/di" border="0" ismap="true"></img></a><br/> + <a href="http://feedads.g.doubleclick.net/~a/nYgTsIUsS9pmvRZ6092XGGHnNKg/1/da"><img src="http://feedads.g.doubleclick.net/~a/nYgTsIUsS9pmvRZ6092XGGHnNKg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/allthingsrss/hJBr/~4/bT-I0iH2vw8" height="1" width="1"/> diff --git a/rss2email-config.py.template b/rss2email-config.py.template deleted file mode 100644 index 3118aef..0000000 --- a/rss2email-config.py.template +++ /dev/null @@ -1,13 +0,0 @@ -# Find some common used config options below; all can be found all and -# descriptions in the section titled "### Vaguely Customizable Options ###" -# near the top of /usr/share/rss2email/rss2email.py - -DEFAULT_FROM="bozo@dev.null.invalid" -HTML_MAIL=1 -SMTP_SEND=1 -SMTP_SERVER="localhost" -AUTHREQUIRED=0 -SMTP_USER="username" -SMTP_PASS="password" -DATE_HEADER=0 -# PROXY="" diff --git a/rss2email-r2e b/rss2email-r2e deleted file mode 100644 index b72dfd4..0000000 --- a/rss2email-r2e +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -if [ ! -e "${HOME}/.rss2email" ] -then - mkdir "${HOME}/.rss2email" -fi - -if [ ! -e "${HOME}/.rss2email/config.py" ] && [ -e /usr/share/rss2email/config.py.template ] -then - cp -a "/usr/share/rss2email/config.py.template" "${HOME}/.rss2email/config.py" -fi - -if [ "${1}" = "--feedext" ] && [ "${2}" ] -then - fileext="${2}" - shift 2 - exec python /usr/share/rss2email/rss2email.py ${HOME}/.rss2email/feeds.dat."${fileext}" "$@" -else - exec python /usr/share/rss2email/rss2email.py ${HOME}/.rss2email/feeds.dat "$@" -fi - - diff --git a/rss2email-r2e.1 b/rss2email-r2e.1 deleted file mode 100644 index 80b4680..0000000 --- a/rss2email-r2e.1 +++ /dev/null @@ -1,75 +0,0 @@ -.TH R2E 1a -.SH NAME -r2e \- receive RSS feeds by email -.SH SYNOPSIS -.B r2e action [options] -.SH DESCRIPTION -.BR r2e -is a simple program which you can run in your crontab. -It watches RSS feeds and sends you nicely formatted email message -for each new item. -.P -The program is configured by ~/.rss2email/config.py -.P -For a quick start with r2e, try these steps: -.P -.RS -.nf -.BI "r2e new " your@address -.BI "r2e add " http://feed.url/somewhere.rss -.BI "r2e run " -.RE -.P -The last command should eventually be put into your crontab, if you -want things be sent you automatically. -.SH ACTIONS -.TP -.B new [youremail] -Create a new feedfile. If the second option is specified, it sets the -default email address that mails are sent to. -.TP -.B add url [youremail] -Subscribe to a feed. The first option is the URL of the feed. -The optional second option is the email address to send new items to. -Repeat for each feed you want to subscribe to. -.TP -.B run [--no-send] [num] -Scan the feeds and send emails for new items. This can be run in a cron -job. -.P -The --no-send option stops r2e from sending any email. This can be -useful the first time you run it, as otherwise it would send every -available story. -.P -If a number is specified, r2e will only download that feed. The list -command lists the feed numbers. -.TP -.B email yournewemail -Change the default email address. -.TP -.B list -List all your currently subscribed feeds. -.TP -.B delete n -Delete a feed, using its number from the list command. -.SH "CONFIGURATION" -The program's behavior can be controlled via the ~/.rss2email/config.py -config file. The file is a python file, so variables are set using a syntax -like this: VARIABLE = "value" -.P -If the value is a number, the quotes may be omitted. Most configuration -variables in the file are boolean values, where a 1 indicates the option is -set, and a 0 disables it. -.P -See the example config.py file for a full list of available configuration -variables. -.SH FILES -.TP -.B ~/.rss2email/feeds.dat -The database of feeds. Use r2e to add, remove, or modify feeds, do not edit -it directly. -.TP -.B ~/.rss2email/config.py -If this file exists, it it read to configure the program. -.SH AUTHOR -Aaron Swartz diff --git a/rss2email-use-configpy-from-homedir.patch b/rss2email-use-configpy-from-homedir.patch deleted file mode 100644 index ba08ebb..0000000 --- a/rss2email-use-configpy-from-homedir.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- rss2email.py.org 2009-01-05 20:15:15.000000000 +0100 -+++ rss2email.py 2009-01-06 20:55:15.000000000 +0100 -@@ -227,8 +227,9 @@ - ### Load the Options ### - - # Read options from config file if present. --import sys -+import sys, os - sys.path.insert(0,".") -+sys.path.insert(0,os.path.join(os.environ["HOME"],".rss2email/")); - try: - from config import * - except: diff --git a/rss2email.spec b/rss2email.spec index 671fcc5..6d693b3 100644 --- a/rss2email.spec +++ b/rss2email.spec @@ -1,74 +1,266 @@ Name: rss2email -Version: 2.65 -Release: 2.1 -Summary: Deliver news from RSS feeds to your smtp server as text or html mail +Version: 3.14 +Release: 16%{?dist} +Summary: Deliver news from RSS feeds to your SMTP server as text or HTML mail + +# Automatically converted from old format: GPLv2+ or GPLv3+ - review is highly recommended. +License: GPL-2.0-or-later OR GPL-3.0-or-later +URL: https://github.com/%{name}/%{name} +Source0: %{url}/archive/v%{version}.tar.gz +# Migration tool (rss2email 2.x to rss2email 3.x) from https://github.com/emillon/rss2email-debian +Source1: r2e-migrate +Source2: r2e-migrate.1 +Source3: README.migrate +Patch1: rss2email-3.14-remove-special-bytes.patch +Patch2: rss2email-3.14-fix-tests-pr-279.patch -Group: Applications/Internet -License: GPLv3 -URL: http://rss2email.infogami.com/ -Source0: http://rss2email.infogami.com/rss2email.py -Source1: http://rss2email.infogami.com/CHANGELOG -# Fedora variant of http://lindsey.smith.googlepages.com/r2e -Source3: rss2email-r2e -# man page taken from -# http://ftp.debian.org/debian/pool/main/r/rss2email/rss2email_2.60-3.diff.gz -Source4: rss2email-r2e.1 -Source5: rss2email-config.py.template -Patch0: rss2email-use-configpy-from-homedir.patch BuildArch: noarch - -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -Requires: python-feedparser -Requires: python-html2text +BuildRequires: python3-devel +BuildRequires: python3-feedparser >= 6.0.5 +BuildRequires: python3-html2text >= 2018.1.9 +BuildRequires: python3-beautifulsoup4 +Recommends: python3-beautifulsoup4 +Recommends: esmtp +# r2e-migrate +Requires: python3-pyxdg %description -rss2email lets you subscribe to a list of XML newsfeeds (RSS or Atom). It can +%{name} lets you subscribe to a list of XML news feeds (RSS or Atom). It can parse them regularly with the help of cron and send new items to you by email. -A HTML mail will be send in the default configuration to the local smtp server. -See the man page r2e for details how to set rss2email up. +An HTML mail will be send in the default configuration to the local SMTP server. +See the manual page r2e for details on how to set up %{name}. +%package zsh-completion +Summary: zsh-completion files for rss2email +BuildArch: noarch +Supplements: (rss2email and zsh) +Requires: zsh +Requires: rss2email + +%description zsh-completion +This package provides %{summary}. %prep -%setup -q -c -T -install -p -m 0644 %{SOURCE0} rss2email.py -install -p -m 0644 %{SOURCE1} CHANGELOG.html -# let rss2email use ${HOME}/.rss2email/config.py -%patch0 -b .patch0 -sed -i -e 's/\r//' CHANGELOG.html rss2email.py +%autosetup -p1 + +cp -p %{SOURCE3} . + + +%generate_buildrequires +%pyproject_buildrequires %build -echo nothing to build +%pyproject_wheel %install -rm -rf $RPM_BUILD_ROOT -mkdir -p \ - $RPM_BUILD_ROOT%{_bindir}/ \ - $RPM_BUILD_ROOT%{_datadir}/%{name}/ \ - $RPM_BUILD_ROOT%{_mandir}/man1/ +%pyproject_install +%pyproject_save_files -L %{name} -install -p -m 0755 rss2email.py $RPM_BUILD_ROOT%{_datadir}/%{name}/ -install -p -m 0755 %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/r2e -sed -i -e 's;/usr/share;%{_datadir};g' $RPM_BUILD_ROOT%{_bindir}/r2e -install -p -m 0644 %{SOURCE4} $RPM_BUILD_ROOT%{_mandir}/man1/r2e.1 -install -p -m 0644 %{SOURCE5} $RPM_BUILD_ROOT%{_datadir}/%{name}/config.py.template +install -D -m 644 -p completion/r2e.zsh %{buildroot}%{_datadir}/zsh/functions/Completion/Unix/_r2e + +install -D -m 644 -p r2e.1 %{buildroot}%{_mandir}/man1/r2e.1 + +install -D -m 755 -p %{SOURCE1} %{buildroot}%{_bindir}/r2e-migrate +install -D -m 644 -p %{SOURCE2} %{buildroot}%{_mandir}/man1/r2e-migrate.1 -%clean -rm -rf $RPM_BUILD_ROOT +%check +%pyproject_check_import + +PATH="${PATH}:%{buildroot}%{_bindir}" PYTHONPATH=%{buildroot}%{python3_sitelib} %{__python3} ./test/test.py -%files -%defattr(-,root,root,-) -%doc CHANGELOG.html -%{_bindir}/* -%{_datadir}/%{name}/ -%{_mandir}/man1/* +%files -f %{pyproject_files} +%license COPYING +%doc AUTHORS CHANGELOG README.rst README.migrate +%{_bindir}/r2e +%{_bindir}/r2e-migrate +%{_mandir}/man1/r2e.1* +%{_mandir}/man1/r2e-migrate.1* + +%files zsh-completion +%{_datadir}/zsh/functions/Completion/Unix/_r2e %changelog +* Fri Sep 19 2025 Python Maint - 3.14-16 +- Rebuilt for Python 3.14.0rc3 bytecode + +* Fri Aug 15 2025 Python Maint - 3.14-15 +- Rebuilt for Python 3.14.0rc2 bytecode + +* Fri Jul 25 2025 Fedora Release Engineering - 3.14-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Fri Jul 11 2025 David Kaufmann - 3.14-13 +- Moved to new python3 build system +- Fix indentation in testcases + +* Tue Jun 03 2025 Python Maint - 3.14-12 +- Rebuilt for Python 3.14 + +* Sat Jan 18 2025 Fedora Release Engineering - 3.14-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Aug 07 2024 Miroslav Suchý - 3.14-10 +- convert license to SPDX + +* Fri Jul 19 2024 Fedora Release Engineering - 3.14-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Jun 12 2024 David Kaufmann - 3.14-8 +- Remove special characters from Testcase + +* Fri Jun 07 2024 Python Maint - 3.14-7 +- Rebuilt for Python 3.13 + +* Fri Jan 26 2024 Fedora Release Engineering - 3.14-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 3.14-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jul 21 2023 Fedora Release Engineering - 3.14-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Jun 14 2023 Python Maint - 3.14-3 +- Rebuilt for Python 3.12 + +* Fri Jan 20 2023 Fedora Release Engineering - 3.14-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Aug 27 2022 David Kaufmann - 3.14-1 +- Update to 3.14 + +* Sat Jul 23 2022 Fedora Release Engineering - 3.13.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Jun 28 2022 David Kaufmann - 3.13.1-1 +- Update to 3.13.1 + +* Mon Jun 13 2022 Python Maint - 3.12.3-5 +- Rebuilt for Python 3.11 + +* Fri Jan 21 2022 Fedora Release Engineering - 3.12.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 3.12.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 04 2021 Python Maint - 3.12.3-2 +- Rebuilt for Python 3.10 + +* Fri Mar 19 2021 Fedora Release Monitoring - 3.12.3-1 +- Update to 3.12.3 (#1941090) + +* Wed Jan 27 2021 Fedora Release Engineering - 3.12.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Dec 31 2020 David Kaufmann - 3.12.2-2 +- Update to feedparser 6 + +* Tue Sep 01 2020 David Kaufmann - 3.12.2-1 +- Update to 3.12.2 +- Reference files by tag instead of commit + +* Fri Aug 07 2020 David Kaufmann - 3.12.1-1 +- Update to 3.12.1 + +* Wed Jul 29 2020 Fedora Release Engineering - 3.11-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue May 26 2020 Miro Hrončok - 3.11-4 +- Rebuilt for Python 3.9 + +* Thu Jan 30 2020 Fedora Release Engineering - 3.11-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Mon Oct 28 2019 David Kaufmann - 3.11-2 +- Clean up spec file a bit +- Get rid of over-globbing +- Add zsh-completion subpackage + +* Mon Oct 28 2019 David Kaufmann - 3.11-1.20191028gitb4eae44 +- Add new `user-agent` attribute for configuring email User-Agent + +* Mon Sep 23 2019 David Kaufmann - 3.10-2.20190909git9c2d407 +- Enable tests +- Use automatically generated dependencies for python packages for f30+ + +* Mon Sep 09 2019 David Kaufmann - 3.10-1.20190909git9c2d407 +- Update to latest git version + +* Mon Aug 12 2019 David Kaufmann - 3.9-3.20190812git4708c4b +- Include package review recommendations + +* Mon Aug 12 2019 David Kaufmann - 3.9-2.20190812git4708c4b +- Update to latest git version +- Fix python version name for EPEL7 + +* Thu Dec 28 2017 Filip Szymański - 3.9-1.20171228gite21e803 +- Update to 3.9 +- Major spec file cleanup + +* Thu Jul 27 2017 Fedora Release Engineering - 2.71-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 2.71-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Feb 04 2016 Fedora Release Engineering - 2.71-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Jun 18 2015 Fedora Release Engineering - 2.71-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sun Jun 08 2014 Fedora Release Engineering - 2.71-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sun Aug 04 2013 Fedora Release Engineering - 2.71-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Mon Mar 4 2013 Michael Schwendt - 2.71-5 +- Add a few patches from Debian package: + 0003-Setup-the-correct-version-number-in-rss2email.py.patch + 0006-Prefer-utf8-in-CHARSET_LIST.patch + 0008-Fix-encoding-of-From-and-To-headers.patch.diff +- Merge a few updates for the manual page. +- Minor spec clean-up to remove superfluous items. + +* Thu Feb 14 2013 Fedora Release Engineering - 2.71-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sat Jul 21 2012 Fedora Release Engineering - 2.71-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sat Jan 14 2012 Fedora Release Engineering - 2.71-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Apr 11 2011 Michael Schwendt - 2.71-1 +- Upgrade to 2.71. +- Fix bad tarball permissions. +- Increase minimum version in python-feedparser and python-html2text + dependencies to match what upstream wants for this release. + +* Wed Feb 09 2011 Fedora Release Engineering - 2.70-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Jan 12 2011 Michael Schwendt - 2.70-1 +- Upgrade to 2.70. +- Update r2e wrapper script. +- Patch config.py loader (now first look in current dir like upstream, + but if not found look for $HOME/.rss2email/config.py). +- Include config.py.example also in the documentation directory. +- Various minor spec file adjustments. + +* Sun Jul 04 2010 Thorsten Leemhuis - 2.66-1 +- update to 2.66, which now is shipped in a tarball + +* Sun Jul 26 2009 Fedora Release Engineering - 2.65-3.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + * Wed Feb 25 2009 Fedora Release Engineering - 2.65-2.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild @@ -93,7 +285,7 @@ rm -rf $RPM_BUILD_ROOT * Fri Aug 03 2007 Thorsten Leemhuis - Update License field due to the "Licensing guidelines changes" -* Sun Mar 24 2007 Thorsten Leemhuis - 2.60-3 +* Sun Mar 25 2007 Thorsten Leemhuis - 2.60-3 - Use sed instead of dos2unix - Some small fixes from review bug #233715 - Apply one patch from Debian that should warn if there are problems with diff --git a/sources b/sources index 81b0b27..68735f8 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -eff3f5ed82b3ccaa622f06d595b24dba rss2email.py -b68f79442af6ba24421ebd663cba9f58 CHANGELOG +SHA512 (v3.14.tar.gz) = 42308a3ae2bfe3adaf4b904983c2270a162d268ce5f4357d853a7ba74814d97dc5dc66d7d94ef6b3fbe510e8368361f63a99de814d3388f37b190fa63594a727