diff --git a/.gitignore b/.gitignore index 80547ad..1b6464b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ -rss2email-2.66.tar.gz -/rss2email-2.70.tar.gz +/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/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-2.70-config-location.patch b/rss2email-2.70-config-location.patch deleted file mode 100644 index a884141..0000000 --- a/rss2email-2.70-config-location.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -Nur rss2email-2.70-orig/rss2email.py rss2email-2.70/rss2email.py ---- rss2email-2.70-orig/rss2email.py 2010-12-17 19:29:34.000000000 +0100 -+++ rss2email-2.70/rss2email.py 2011-01-12 18:57:25.775331913 +0100 -@@ -254,11 +254,13 @@ - - # Read options from config file if present. - import sys --sys.path.insert(0,".") --try: -- from config import * --except: -- pass -+import os -+cfgpaths = [os.path.join(os.getcwd(),"config.py"), -+ os.path.join(os.environ["HOME"],".rss2email/config.py"),] -+for cfgfile in cfgpaths: -+ if os.path.exists(cfgfile): -+ execfile(cfgfile) -+ break - - warn = sys.stderr - 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-r2e b/rss2email-r2e deleted file mode 100644 index 7ec377a..0000000 --- a/rss2email-r2e +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh -datadir=@datadir@ -r2ehome=${datadir}/rss2email -cfgtemplate=${r2ehome}/config.py.example -dotr2e=${HOME}/.rss2email - -if [ ! -e ${dotr2e} ] -then - mkdir ${dotr2e} -fi - -if [ ! -e ${dotr2e}/config.py ] && [ -e ${cfgtemplate} ] -then - cp -a ${cfgtemplate} ${dotr2e}/config.py -fi - -if [ "${1}" = "--feedext" ] && [ "${2}" ] -then - fileext="${2}" - shift 2 - exec python ${r2ehome}/rss2email.py ${dotr2e}/feeds.dat."${fileext}" "$@" -else - exec python ${r2ehome}/rss2email.py ${dotr2e}/feeds.dat "$@" -fi diff --git a/rss2email-r2e.1 b/rss2email-r2e.1 deleted file mode 100644 index b54dcbf..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 a 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 is read to configure the program. -.SH AUTHOR -Aaron Swartz diff --git a/rss2email.spec b/rss2email.spec index e6e788e..6d693b3 100644 --- a/rss2email.spec +++ b/rss2email.spec @@ -1,86 +1,252 @@ Name: rss2email -Version: 2.70 -Release: 1%{?dist} +Version: 3.14 +Release: 16%{?dist} Summary: Deliver news from RSS feeds to your SMTP server as text or HTML mail -Group: Applications/Internet -License: GPLv2 or GPLv3 -URL: http://www.allthingsrss.com/rss2email/ -Source0: http://www.allthingsrss.com/rss2email/rss2email-%{version}.tar.gz -# Fedora variant of the "r2e" shell-wrapper script to run rss2email.py -# in its home directory. -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 - -# Let rss2email also look for ${HOME}/.rss2email/config.py -# Remove the sys.path.insert(0,'.') module search path list alteration. -# Problem and intended purpose of the patch reported upstream. -Patch0: rss2email-2.70-config-location.patch +# 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 BuildArch: noarch -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -# These Python modules are imported by rss2email. -# The rss2email tarball contains copies of them, because some dists ship -# old modules which result in rss2email bug reports. We want to use the -# external packages due to Fedora packaging policies. -# -# 2011-01-12 -# - feedparser in Fedora 14 : 4.1 -# - feedparser in rss2email 2.66 to 2.70 : 4.2-pre -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. 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 rss2email. +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 -chmod -x CHANGELOG readme* config* -# prepare the custom "r2e" wrapper script -cat %{SOURCE3} | sed -e 's!@datadir@!%{_datadir}!' > r2e +%autosetup -p1 -%patch0 -p1 -b .config-location -sed -i -e 's/\r//' CHANGELOG rss2email.py config.py.example +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 r2e $RPM_BUILD_ROOT%{_bindir}/r2e -install -p -m 0644 %{SOURCE4} $RPM_BUILD_ROOT%{_mandir}/man1/r2e.1 -# the copy in docdir may not be present for an --excludedocs install -install -p -m 0644 config.py.example $RPM_BUILD_ROOT%{_datadir}/%{name}/ +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 readme.html config.py.example -%{_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. @@ -90,7 +256,7 @@ rm -rf $RPM_BUILD_ROOT - 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 +- 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 @@ -119,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 9d080bf..68735f8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -f99a273ce66712bdcdab04d203571290 rss2email-2.70.tar.gz +SHA512 (v3.14.tar.gz) = 42308a3ae2bfe3adaf4b904983c2270a162d268ce5f4357d853a7ba74814d97dc5dc66d7d94ef6b3fbe510e8368361f63a99de814d3388f37b190fa63594a727