3 Commits

Author SHA256 Message Date
ea86945db8 Accepting request 1324247 from server:mail
OBS-URL: https://build.opensuse.org/request/show/1324247
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/rss2email?expand=0&rev=14
2025-12-24 12:15:59 +00:00
de4f954363 - Add 279.patch: Fix build against html2text >= 2025.4.15 and
require this version at least.

OBS-URL: https://build.opensuse.org/package/show/server:mail/rss2email?expand=0&rev=38
2025-12-23 08:18:43 +00:00
cbe439f088 Accepting request 1289539 from home:mcepl
- Switch the SPEC file from the single-spec one to the regular
  one (rss2email is not consumed by any other package, AFAIK, so
  multiple binary packages are not needed).
- Add dynamic-version-number.patch to switch incorrect duality of
  pyproject.toml/setup.py to the regular PEP 621 setup.cfg
  (gh#rss2email/rss2email!284).
- Add 213-http-header-config.patch to allow adding a custom
  HTTP header to the request (required for some websites,
  e.g., gh#rss2email/rss2email#273; the code is from
  gh#rss2email/rss2email!213).
- Added patch:
  * fix-tests.patch
    + upstream patch to replace a "c2 a0" utf-8 sequence in test
      feed with a space. This caused html2text >=2024.2.25 to
      produce a double space and break the tests.
- update to 3.14:
  * New `digest-type` configuration adds optional more widely supported `multipart/mixed` format
  * New argument `--only-new` on the `add` command to ignore entries in feed
    when added, so only new entries will be sent.
  * Fix exception when parsing a feed with a linebreak in its title
  * Add a new `subject-format` setting, customise the subject line
  * Removed '$' interpolation in config file to allow URLs containing dollar
    signs. Interpolation was not fully supported, and the placeholder would not
    survive a second save. Config files with ${...} placeholders will need to be
    manually edited after upgrading, or a save forced by adding and removing a fake
    feed before upgrading.
  * Fix default HTTP User-Agent to use `rss2email` instead of `feedparser`, and
    fix `user-agent` setting to consistently apply to both outgoing emails and
    HTTP requests. This introduces a couple of potentially breaking changes:
    o Configurations that came to rely on the `feedparser` UA string should adjust to the updated UA string going forward.
    o Configurations that came to rely on the unintended behaviour, that
      configuring the User-Agent header in emails does not affect HTTP requests,
      should use a custom `post-process` hook instead.
- No longer skip python310, feedparser is now available.
- Skip python310: no sgmlli3k and thus no feedparser for Python3.10
- update to 3.13.1:
  * Fix crash on html-mail entries with no URL
- specfile:
  * removed patch rss2email-3.12.2-feedparser-6.patch (fixed upstream)
  * fix requirements
- update to version 13.3:
  * Switch to feedparser 6
  * Switch to poetry instead of requirements.txt
  * Make the `verbose` flag in the config file actually have an
    impact, and have it default to `info
  * Improve log messages
  * Remove documentation of `smtp-ssl-protocol` as this option was
    dropped in 2016
  * Stop forging SMTP and sendmail envelope sender (#134)
  * Add sendmail_config option
  * Upgraded to feedparser v6.0
    (https://github.com/kurtmckee/feedparser/)
  * Drop support for Python 3.5, add support for Python 3.9
  * Log sendmail output
  * Support multipart/alternative emails with both HTML and plain text
    parts with option `multipart-html`
  * Add inline-links option, allowing links to be sent to the bottom
    of the paragraph
  * Add wrap-links option, preventing links from be wrapped over
    multiple lines
  * Stop looking in $XDG_DATA_DIRS for the database, and only look in
    $XDG_DATA_HOME
  * Warnings about HTTP content-type being unexpected now properly
    display
  * Make the proxy parameter also affect https connections
  * Add a --clean argument on the run command to reduce the database
    size
  * Set body element attribute dir=auto in HTML mail
  * Store the lock file in XDG_RUNTIME_DIR instead of /tmp
- specfile:
  * update patch
  * add __pycache__ files
  * update to newer python macros
  * skip python2
- update to version 3.12.3:
  * *Improve log messages
  * Remove documentation of `smtp-ssl-protocol` as this option was
    dropped in 2016
  * Stop forging SMTP and sendmail envelope sender (#134)
  * Add sendmail_config option
  * Fix verbose configuration setting
  * Upgraded to feedparser v6.0
    (https://github.com/kurtmckee/feedparser/)
  * Drop support for Python 3.5
  * Log sendmail output
  * Support multipart/alternative emails with both HTML and plain text
    parts with option `multipart-html`
  * Add inline-links option, allowing links to be sent to the bottom
    of the
  * paragraph
  * Add wrap-links option, preventing links from be wrapped over
    multiple lines
  * Stop looking in $XDG_DATA_DIRS for the database, and only look in
  * $XDG_DATA_HOME
  * Warnings about HTTP content-type being unexpected now properly
    display
  * Make the proxy parameter also affect https connections
  * Add a --clean argument on the run command to reduce the database
    size
- fix failure with Feedparser 6 [boo#1178085]
  adding rss2email-3.12.2-feedparser-6.patch from upstream
- clean up spec file to current python Macros, run tests
- update to version 3.12.2:
  * Fix bug `AttributeError: 'NoneType' object has no attribute
    'close'` (#126)
- changes from version 3.12.1 :
  * Fix calling opmlexport without arguments
- changes from version 3.12:
  * Drop support for EOL Python 3.4, add support for Python 3.8
  * Add List_ID and List_Post headers to the generated emails
  * Add a new `reply-changes` setting
  * Improve configurability of text wrapping for the emails
  * Use `platform.node()` instead of "dev.null.invalid" in
    "Message-ID" header
  * Improve locking support for when multiple rss2email instances are
    run in parallel
  * Fix handling of __VERSION__ and __URL__ in user-agent strings
  * Fix opmlexport
- update to version 3.11:
  * Add new `user-agent` attribute for configuring email User-Agent
- update to version 3.10:
  * Catch and warn for invalid Content-Types
  * Add a manually extracted list of config options to r2e.1
  * Add a redirect post-process module
  * Follow symlinks of datafiles
  * Add zsh completion
  * Add support for maildir
  * Fix `r2e new` overwriting an existing config
  * Add new `feed-name` and `feed-url` attributes for the
    `name-format` setting
  * Change logging format
  * Allow multiple SMTP recipients
  * Fix SMTP security issues
  * Fix test suite
  * Drop support for Python 3.2 and 3.3
  * Remove `__contributors__` from the `rss2email` module
  * Stop using deprecated `html2text.unescape`
  * Fix locking issues when data file is on NFS
  * Add `same-server-fetch-interval` setting for rate-limiting fetches
    to a server
  * Update setup.py to setuptools
- switch requires from outdated python3-distribute to setuptools
- update to v3.9 (2014-09-01)
  * Catch and error out if a user adds a feed with a duplicate name.
  * Split sender into both sendmail's -F and -f.
  * Fix an error with SMTPConnectionError inheritance order ("does not
    take keyword arguments").
  * Add a new `smtp-ssl-protocol` setting, to select acceptable
    protocols for SMTP connections.
  * Fix non-compliant User-Agent header for HTTP/1.1.
  * Fix an error in the NoToEmailAddress invocation.
  * Add a new 'trust-link' setting, to prefer the 'link' attribute over
    the 'id' attribute for identifying entries.
- license update: GPL-2.0 or GPL-3.0
  This is a dual license of either GPL-2.0 or GPL-3.0. It does not allow
  updating to beyond GPL-3.0
- updated to v3.8 (2014-01-18)
  * Sluggify feed names on opmlimport.
  * Allow Unicode letters and digits in feed names, instead of just ASCII lettters and digits.
- updated to version 3.7
  * Fix fallback for titles that contain malformed HTML [1].
  * Fix atomic saves to avoid garbling config and data files if the
    disk is full [2].  Reported by Etienne Millon [3,4].
  * Convert the `friendly-name` boolean to the new `name-format`
    setting.  This allow users to customize how the friendly name is
    constructed [5].  Requested by Joey Hess [6,7].
  * Demote guessed encodings logs from 'error' to 'warning' [8].
    Patch by J. Lewis Muir [9,10].
  [1]: http://thread.gmane.org/gmane.mail.rss2email/183
  [2]: http://thread.gmane.org/gmane.mail.rss2email/182
  [3]: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=724671
  [4]: https://github.com/wking/rss2email/issues/22
  [5]: http://thread.gmane.org/gmane.mail.rss2email/177
  [6]: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=722009
  [7]: https://github.com/wking/rss2email/issues/19
  [8]: http://thread.gmane.org/gmane.mail.rss2email/178
  [9]: https://github.com/wking/rss2email/pull/18
  [10]: https://github.com/wking/rss2email/pull/20
- updated to version 3.6
  Changes since 3.5 (from CHANGELOG)
  v3.6 (2013-09-09)
    * Fix missing port argument for IMAPAuthenticationError.
    * Fix `<div id="entry>` syntax error in HTML mail.
- updated to version 3.5
  Changes since 3.4 (from CHANGELOG)
  v3.5 (2013-06-05)
    * Added digest generation and post-processing hooks.
    * Fix html2text configuration (ignored since 2012-10-04).
    * Fix opmlexport crash due to orphaned feed data.
    * Use feed names in OPML 'text' attributes.
- updated to version 3.4
  Changes since 3.3 (from CHANGELOG)
  v3.4 (2013-05-14)
    * Added post-processing hooks for user-specified message manipulation.
    * Added settings for IMAP delivery. The old `use-smtp` boolean has
      been replaced by a new `email-protocol` setting. Non-IMAP users
      should adjust their configuration to set `email-protocol`
      to either `sendmail` or `smtp`.
- updated to version 3.3
  Changes since 3.2 (from CHANGELOG):
  v3.3 (2013-04-13)
    * Fix SMTP message submission logic.
    * Fix error inheritence (super() calls).
    * Convert html2text parsing errors to `ProcessingError`s.
    * Cleanup html2text error handling.
    * Drop Google Reader rel-via manipulation.
    * Drop the wrapping <table> elements from HTML mail
- updated to verson 3.2
 Changes since 3.1 (from the CHANGELOG):
* Use extended interpolation in configuration files, to allow percent
  signs (%).
* Added .as_string() fallback to email flattening (only used if
  `use-smtp = False` and `use-8bit = True`).
* Added sendmail configuration option.  Change this if you want to use
  an alternative, sendmail-compatible mailer.
- added some missing dependencies: python3, python3-xml,
  python3-feedparser, python3-html2text
- update to version 3.1, use tar.gz instead of zip
- fixed spec file according to comments on pull request
 * removed double install of doc files
 * don't zip man page
- initial version from current git (933dc46f6af3fb5473da93e02c9a90c1e4b4ae5f)

OBS-URL: https://build.opensuse.org/request/show/1289539
OBS-URL: https://build.opensuse.org/package/show/server:mail/rss2email?expand=0&rev=37
2025-07-25 13:48:32 +00:00
5 changed files with 529 additions and 47 deletions

View File

@@ -0,0 +1,53 @@
---
r2e.1 | 2 ++
rss2email/config.py | 2 ++
rss2email/feed.py | 10 ++++++++++
3 files changed, 14 insertions(+)
Index: rss2email-3.14/r2e.1
===================================================================
--- rss2email-3.14.orig/r2e.1 2022-08-26 16:54:21.000000000 +0200
+++ rss2email-3.14/r2e.1 2025-06-30 12:08:04.486413554 +0200
@@ -185,6 +185,8 @@
Set an HTTP proxy (e.g. 'http://your.proxy.here:8080/')
.IP feed-timeout
Set the timeout (in seconds) for feed server response
+.IP http-header
+Set custom HTTP headers to be sent with the feed requests
.RE
.SS Processing
.IP active
Index: rss2email-3.14/rss2email/config.py
===================================================================
--- rss2email-3.14.orig/rss2email/config.py 2022-08-26 16:54:21.000000000 +0200
+++ rss2email-3.14/rss2email/config.py 2025-06-30 12:07:53.560474799 +0200
@@ -113,6 +113,8 @@
('feed-timeout', str(60)),
# Set the time (in seconds) to sleep between fetches from the same server
('same-server-fetch-interval', str(0)),
+ # Custom HTTP headers (newline separated)
+ ('http-header', ''),
### Processing
# True: Fetch, process, and email feeds.
Index: rss2email-3.14/rss2email/feed.py
===================================================================
--- rss2email-3.14.orig/rss2email/feed.py 2022-08-26 16:54:21.000000000 +0200
+++ rss2email-3.14/rss2email/feed.py 2025-06-30 12:07:53.560872827 +0200
@@ -384,6 +384,16 @@
kwargs['handlers'] = [
_urllib_request.ProxyHandler({ 'http': proxy, 'https': proxy })
]
+ extra_headers = {}
+ custom_headers = config['http-header']
+ if custom_headers:
+ for header in custom_headers.splitlines():
+ if ':' in header:
+ key,value = header.split(':', 1)
+ extra_headers[key.strip()] = value.strip()
+ else:
+ _LOG.warning('malformed http-header: {}'.format(header))
+ kwargs['request_headers'] = extra_headers
f = _util.TimeLimitedFunction('feed {}'.format(self.name), timeout, _feedparser.parse)
return f(self.url, self.etag, modified=self.modified, agent=self.user_agent, **kwargs)

250
279.patch Normal file
View File

@@ -0,0 +1,250 @@
From 6625fded5d55b89ce77e0dd5f1bd153428c3bdd2 Mon Sep 17 00:00:00 2001
From: Brand Huntsman <au@qzx.com>
Date: Mon, 5 May 2025 02:35:02 -0600
Subject: [PATCH] Fix tests when using html2text 2025.4.15.
https://github.com/Alir3z4/html2text/pull/431 changed the 'pre' tag
indentation spacing.
Fixes #278.
Reported-By: Luis Henriques
---
test/data/tails/1.expected | 94 +++++++++++++++++++-------------------
test/data/tails/2.expected | 92 ++++++++++++++++++-------------------
2 files changed, 93 insertions(+), 93 deletions(-)
diff --git a/test/data/tails/1.expected b/test/data/tails/1.expected
index cd6238c0..0feef24c 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: <author>" <user@rss2email.invalid>
@@ -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 7b48a677..7e9fd495 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).

View File

@@ -0,0 +1,165 @@
---
pyproject.toml | 21 ----------------
setup.cfg | 48 ++++++++++++++++++++++++++++++++++++++
setup.py | 71 +--------------------------------------------------------
3 files changed, 50 insertions(+), 90 deletions(-)
Index: rss2email-3.14/pyproject.toml
===================================================================
--- rss2email-3.14.orig/pyproject.toml 2022-08-26 16:54:21.000000000 +0200
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,21 +0,0 @@
-[tool.poetry]
-name = "rss2email"
-version = "3.12.2"
-description = "Forward RSS feeds to your email address"
-authors = ["Your Name <you@example.com>"]
-license = "GPL-2.0-only"
-
-[tool.poetry.dependencies]
-python = "^3.6"
-feedparser = ">=6.0.5"
-html2text = ">=2020.1.16"
-
-[tool.poetry.dev-dependencies]
-update-copyright = ">=0.6.2"
-
-[build-system]
-requires = ["poetry>=0.12"]
-build-backend = "poetry.masonry.api"
-
-[tool.poetry.scripts]
-r2e = "rss2email.main:run"
Index: rss2email-3.14/setup.cfg
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ rss2email-3.14/setup.cfg 2025-07-01 15:01:34.861755273 +0200
@@ -0,0 +1,48 @@
+[metadata]
+name = rss2email
+version = attr: rss2email.__version__
+description = A python script that converts RSS/Atom newsfeeds to email
+long_description = file: README.rst
+author = Adam Mokhtari, W. Trevor King, Amir Yalon
+author_email = 2553423+uutari@users.noreply.github.com, wking@tremily.us, git@please.nospammail.net
+maintainer = Adam Mokhtari
+maintainer_email = 2553423+uutari@users.noreply.github.com
+license = GPL-2.0-or-later
+keywords = rss, atom, feed, email
+classifiers =
+ Development Status :: 5 - Production/Stable
+ Environment :: Console
+ Intended Audience :: End Users/Desktop
+ Operating System :: OS Independent
+ Programming Language :: Python
+ Programming Language :: Python :: 3
+ Programming Language :: Python :: 3.6
+ Programming Language :: Python :: 3.7
+ Programming Language :: Python :: 3.8
+ Programming Language :: Python :: 3.9
+ Programming Language :: Python :: 3.10
+ Programming Language :: Python :: 3.11
+ Topic :: Communications :: Email
+ Topic :: Software Development :: Libraries :: Python Modules
+project_urls =
+ Homepage = https://github.com/rss2email/rss2email
+ Repository = https://github.com/rss2email/rss2email
+ Bug Tracker = https://github.com/rss2email/rss2email/issues
+
+[options]
+python_requires = >=3.6
+install_requires =
+ feedparser>=6.0.5
+ html2text>=2020.1.16
+packages = find:
+
+[options.extras_require]
+dev =
+ update-copyright>=0.6.2
+
+[options.entry_points]
+console_scripts =
+ r2e = rss2email.main:run
+
+[options.packages.find]
+where = .
\ No newline at end of file
Index: rss2email-3.14/setup.py
===================================================================
--- rss2email-3.14.orig/setup.py 2022-08-26 16:54:21.000000000 +0200
+++ rss2email-3.14/setup.py 2025-07-01 14:58:57.349589201 +0200
@@ -1,72 +1,5 @@
-# Copyright (C) 2012-2021 Adam Mokhtari <2553423+uutari@users.noreply.github.com>
-# Amir Yalon <git@please.nospammail.net>
-# Andrey Zelenchuk <azelenchuk@plesk.com>
-# Arun Persaud <apersaud@lbl.gov>
-# Léo Gaspard <leo@gaspard.io>
-# Markus Unterwaditzer <markus@unterwaditzer.net>
-# Profpatsch <mail@profpatsch.de>
-# Steven Siloti <ssiloti@gmail.com>
-# W. Trevor King <wking@tremily.us>
-# auouymous <au@qzx.com>
-#
-# This file is part of rss2email.
-#
-# rss2email is free software: you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation, either version 2 of the License, or (at your option) version 3 of
-# the License.
-#
-# rss2email is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along with
-# rss2email. If not, see <http://www.gnu.org/licenses/>.
+#!/usr/bin/python3
-"A python script that converts RSS/Atom newsfeeds to email"
-
-import codecs as _codecs
-import os.path as _os_path
import setuptools
-from rss2email import __version__, __url__, __author__, __email__
-
-
-_this_dir = _os_path.dirname(__file__)
-
-setuptools.setup(
- name='rss2email',
- version=__version__,
- maintainer=__author__,
- maintainer_email=__email__,
- url=__url__,
- download_url='{}/archive/v{}.tar.gz'.format(__url__, __version__),
- license='GNU General Public License (GPL)',
- platforms=['all'],
- description=__doc__,
- long_description=_codecs.open(
- _os_path.join(_this_dir, 'README.rst'), 'r', encoding='utf-8').read(),
- classifiers=[
- 'Development Status :: 5 - Production/Stable',
- 'Environment :: Console',
- 'Intended Audience :: End Users/Desktop',
- 'Operating System :: OS Independent',
- 'License :: OSI Approved :: GNU General Public License (GPL)',
- 'License :: OSI Approved :: GNU General Public License v2 (GPLv2)',
- 'License :: OSI Approved :: GNU General Public License v3 (GPLv3)',
- 'Programming Language :: Python',
- 'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.6',
- 'Programming Language :: Python :: 3.7',
- 'Programming Language :: Python :: 3.8',
- 'Topic :: Communications :: Email',
- 'Topic :: Software Development :: Libraries :: Python Modules',
- ],
- packages=['rss2email', 'rss2email.post_process'],
- scripts=['r2e'],
- provides=['rss2email'],
- install_requires=[
- 'feedparser>=6.0.5',
- 'html2text>=2020.1.16',
- ],
- )
+setuptools.setup()

View File

@@ -1,3 +1,23 @@
-------------------------------------------------------------------
Fri Dec 12 08:03:01 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
- Add 279.patch: Fix build against html2text >= 2025.4.15 and
require this version at least.
-------------------------------------------------------------------
Mon Jun 30 10:11:28 UTC 2025 - Matej Cepl <mcepl@cepl.eu>
- Switch the SPEC file from the single-spec one to the regular
one (rss2email is not consumed by any other package, AFAIK, so
multiple binary packages are not needed).
- Add dynamic-version-number.patch to switch incorrect duality of
pyproject.toml/setup.py to the regular PEP 621 setup.cfg
(gh#rss2email/rss2email!284).
- Add 213-http-header-config.patch to allow adding a custom
HTTP header to the request (required for some websites,
e.g., gh#rss2email/rss2email#273; the code is from
gh#rss2email/rss2email!213).
-------------------------------------------------------------------
Fri Apr 5 05:15:29 UTC 2024 - Fridrich Strba <fstrba@suse.com>
@@ -32,7 +52,7 @@ Mon Dec 5 07:33:36 UTC 2022 - Dirk Müller <dmueller@suse.com>
-------------------------------------------------------------------
Tue Apr 26 05:44:30 UTC 2022 - Steve Kowalik <steven.kowalik@suse.com>
- No longer skip python310, feedparser is now available.
- No longer skip python310, feedparser is now available.
-------------------------------------------------------------------
Sat Feb 5 16:55:56 UTC 2022 - Benjamin Greiner <code@bnavigator.de>
@@ -43,7 +63,7 @@ Sat Feb 5 16:55:56 UTC 2022 - Benjamin Greiner <code@bnavigator.de>
Tue Jan 4 18:28:42 UTC 2022 - Dirk Müller <dmueller@suse.com>
- update to 3.13.1:
* Fix crash on html-mail entries with no URL
* Fix crash on html-mail entries with no URL
-------------------------------------------------------------------
Mon Apr 12 16:19:42 UTC 2021 - Arun Persaud <arun@gmx.de>
@@ -209,7 +229,7 @@ Mon Jan 20 06:47:42 UTC 2014 - arun@gmx.de
- updated to v3.8 (2014-01-18)
* Sluggify feed names on opmlimport.
* Allow Unicode letters and digits in feed names, instead of just ASCII lettters and digits.
* Allow Unicode letters and digits in feed names, instead of just ASCII lettters and digits.
-------------------------------------------------------------------
Fri Oct 11 16:55:54 UTC 2013 - arun@gmx.de
@@ -234,7 +254,7 @@ Fri Oct 11 16:55:54 UTC 2013 - arun@gmx.de
[7]: https://github.com/wking/rss2email/issues/19
[8]: http://thread.gmane.org/gmane.mail.rss2email/178
[9]: https://github.com/wking/rss2email/pull/18
[10]: https://github.com/wking/rss2email/pull/20
[10]: https://github.com/wking/rss2email/pull/20
-------------------------------------------------------------------
Fri Sep 20 00:15:49 UTC 2013 - arun@gmx.de
@@ -266,7 +286,7 @@ Tue May 14 20:46:29 UTC 2013 - arun@gmx.de
Changes since 3.3 (from CHANGELOG)
v3.4 (2013-05-14)
* Added post-processing hooks for user-specified message manipulation.
* Added settings for IMAP delivery. The old `use-smtp` boolean has
* Added settings for IMAP delivery. The old `use-smtp` boolean has
been replaced by a new `email-protocol` setting. Non-IMAP users
should adjust their configuration to set `email-protocol`
to either `sendmail` or `smtp`.
@@ -274,8 +294,8 @@ Tue May 14 20:46:29 UTC 2013 - arun@gmx.de
-------------------------------------------------------------------
Sun Apr 14 04:56:54 UTC 2013 - arun@gmx.de
- updated to version 3.3
- updated to version 3.3
Changes since 3.2 (from CHANGELOG):
v3.3 (2013-04-13)
* Fix SMTP message submission logic.
@@ -289,14 +309,14 @@ Sun Apr 14 04:56:54 UTC 2013 - arun@gmx.de
Thu Mar 14 17:42:14 UTC 2013 - arun@gmx.de
- updated to verson 3.2
Changes since 3.1 (from the CHANGELOG):
* Use extended interpolation in configuration files, to allow percent
signs (%).
* Added .as_string() fallback to email flattening (only used if
`use-smtp = False` and `use-8bit = True`).
* Added sendmail configuration option. Change this if you want to use
an alternative, sendmail-compatible mailer.
an alternative, sendmail-compatible mailer.
-------------------------------------------------------------------
Sun Mar 3 06:26:46 UTC 2013 - arun@gmx.de
@@ -307,7 +327,7 @@ Sun Mar 3 06:26:46 UTC 2013 - arun@gmx.de
-------------------------------------------------------------------
Fri Feb 15 20:13:06 UTC 2013 - arun@gmx.de
- update to version 3.1, use tar.gz instead of zip
- update to version 3.1, use tar.gz instead of zip
-------------------------------------------------------------------
Fri Feb 15 20:09:56 UTC 2013 - arun@gmx.de
@@ -315,10 +335,10 @@ Fri Feb 15 20:09:56 UTC 2013 - arun@gmx.de
- fixed spec file according to comments on pull request
* removed double install of doc files
* don't zip man page
* don't zip man page
-------------------------------------------------------------------
Wed Jan 23 20:11:04 UTC 2013 - arun@gmx.de
- initial version from current git (933dc46f6af3fb5473da93e02c9a90c1e4b4ae5f)
- initial version from current git (933dc46f6af3fb5473da93e02c9a90c1e4b4ae5f)

View File

@@ -1,7 +1,7 @@
#
# spec file for package rss2email
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,8 +16,6 @@
#
%{?!python_module:%define python_module() python3-%{**}}
%define skip_python2 1
Name: rss2email
Version: 3.14
Release: 0
@@ -27,19 +25,27 @@ Group: Development/Languages/Python
URL: https://github.com/rss2email/rss2email
Source: https://github.com/rss2email/rss2email/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
Patch0: fix-tests.patch
BuildRequires: %{python_module feedparser >= 6.0.0}
BuildRequires: %{python_module html2text >= 3.0.1}
BuildRequires: %{python_module setuptools}
# PATCH-FEATURE-UPSTREAM 213-http-header-config.patch gh#rss2email/rss2email!213 mcepl@suse.com
# add http-header config option to pass custom HTTP headers
Patch1: 213-http-header-config.patch
# PATCH-FEATURE-UPSTREAM dynamic-version-number.patch gh#rss2email/rss2email!284 mcepl@suse.com
# pyproject.toml should use dynamic version number derived from rss2email/ __version__
Patch2: dynamic-version-number.patch
Patch3: https://patch-diff.githubusercontent.com/raw/rss2email/rss2email/pull/279.patch
BuildRequires: fdupes
BuildRequires: python-rpm-generators
BuildRequires: python-rpm-macros
Requires: python-feedparser >= 6.0.0
Requires: python-html2text >= 3.0.1
Requires: python-setuptools
Requires(post): update-alternatives
Requires(postun): update-alternatives
BuildRequires: python3-feedparser >= 6.0.0
BuildRequires: python3-html2text >= 2025.4.15
BuildRequires: python3-pip
BuildRequires: python3-setuptools
BuildRequires: python3-wheel
Requires: python3-feedparser >= 6.0.0
Requires: python3-html2text >= 2025.4.15
Provides: python3-rss2email = %version-%release
Obsoletes: python3-rss2email < %version-%release
BuildArch: noarch
%{?python_enable_dependency_generator}
%python_subpackages
%description
Lets users receive news from RSS feeds in email. Intended to be run from
@@ -50,38 +56,26 @@ items.
%autosetup -p1
%build
%python_build
%python3_pyproject_wheel
%install
%python_install
%python_clone -a %{buildroot}%{_bindir}/r2e
%python3_pyproject_install
install -Dm644 r2e.1 %{buildroot}%{_mandir}/man1/r2e.1
%python_clone -a %{buildroot}%{_mandir}/man1/r2e.1
%fdupes %{buildroot}%{python3_sitelib}
%check
pushd test
%pyunittest --verbose
export PYTHONPATH=%{buildroot}%{python3_sitelib}
export PYTHONDONTWRITEBYTECODE=1
python3 -m unittest discover -v
popd
%post
%python_install_alternative r2e r2e.1
%postun
%python_uninstall_alternative r2e r2e.1
%files %{python_files}
%files
%license COPYING
%doc AUTHORS CHANGELOG README.rst
%dir %{python_sitelib}/rss2email
%dir %{python_sitelib}/rss2email/__pycache__
%dir %{python_sitelib}/rss2email/post_process
%dir %{python_sitelib}/rss2email/post_process/__pycache__
%{python_sitelib}/rss2email/*py
%{python_sitelib}/rss2email/post_process/*py
%{python_sitelib}/rss2email-%{version}-py*.egg-info
%pycache_only %{python_sitelib}/rss2email/__pycache__/*
%pycache_only %{python_sitelib}/rss2email/post_process/__pycache__/*
%python_alternative %{_bindir}/r2e
%python_alternative %{_mandir}/man1/r2e.1%{?ext_man}
%{_bindir}/r2e
%{_mandir}/man1/r2e.1%{?ext_man}
%{python3_sitelib}/rss2email
%{python3_sitelib}/rss2email-%{version}*-info
%changelog