Hello community, here is the log from the commit of package rss2email for openSUSE:Factory checked in at 2020-11-10 13:46:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rss2email (Old) and /work/SRC/openSUSE:Factory/.rss2email.new.11331 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rss2email" Tue Nov 10 13:46:14 2020 rev:8 rq:847327 version:3.12.2 Changes: -------- --- /work/SRC/openSUSE:Factory/rss2email/rss2email.changes 2020-09-04 11:11:28.947011750 +0200 +++ /work/SRC/openSUSE:Factory/.rss2email.new.11331/rss2email.changes 2020-11-10 13:53:17.270868763 +0100 @@ -1,0 +2,7 @@ +Sun Nov 8 13:22:23 UTC 2020 - Andreas Stieger <andreas.stie...@gmx.de> + +- 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 + +------------------------------------------------------------------- New: ---- rss2email-3.12.2-feedparser-6.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rss2email.spec ++++++ --- /var/tmp/diff_new_pack.QObF5x/_old 2020-11-10 13:53:17.830867704 +0100 +++ /var/tmp/diff_new_pack.QObF5x/_new 2020-11-10 13:53:17.838867689 +0100 @@ -22,44 +22,43 @@ Summary: Receive RSS feeds by email License: GPL-2.0-only OR GPL-3.0-only Group: Development/Languages/Python -URL: http://pypi.python.org/pypi/rss2email/ -Source: rss2email-%{version}.tar.gz -BuildRequires: python3 -BuildRequires: python3-feedparser -BuildRequires: python3-html2text -BuildRequires: python3-setuptools -Requires: python3 -Requires: python3-feedparser -Requires: python3-html2text -Requires: python3-xml -BuildRoot: %{_tmppath}/%{name}-%{version}-build +URL: https://github.com/rss2email/rss2email +Source: https://github.com/rss2email/rss2email/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz +Patch0: rss2email-3.12.2-feedparser-6.patch +BuildRequires: %{python_module feedparser >= 6.0.0} +BuildRequires: %{python_module html2text >= 3.0.1} +BuildRequires: %{python_module setuptools} +BuildRequires: %{pythons} +BuildRequires: python-rpm-generators BuildArch: noarch +%{?python_enable_dependency_generator} %description -A free, open-source tool for Windows, Mac OS and UNIX for -getting news from RSS feeds in email. It 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. +Lets users receive news from RSS feeds in email. Intended to be run from +a crontab, watches RSS feeds and sends formatted email messages for new +items. %prep -%setup -q -n rss2email-%{version} +%autosetup -p1 %build -python3 setup.py build +%python_build %install -python3 setup.py install --prefix=%{_prefix} --root=%{buildroot} +%python_install install -Dm644 r2e.1 %{buildroot}/%{_mandir}/man1/r2e.1 +%check +pushd test +%pyunittest --verbose +popd + %files -%defattr(-,root,root,-) -%dir %{python3_sitelib}/rss2email -%{python3_sitelib}/rss2email/* -%dir %{python3_sitelib}/rss2email-%{version}-py*.egg-info -%{python3_sitelib}/rss2email-%{version}-py*.egg-info -%_mandir/*/r2e.1* -%doc AUTHORS CHANGELOG README.rst %license COPYING -/usr/bin/r2e +%doc AUTHORS CHANGELOG README.rst +%{python3_sitelib}/rss2email +%{python3_sitelib}/rss2email-%{version}-py*.egg-info +%{_bindir}/r2e +%{_mandir}/*/r2e.1%{?ext_man} %changelog ++++++ rss2email-3.12.2-feedparser-6.patch ++++++ From: Andreas Stieger <andreas.stie...@gmx.de> Date: Sun, 08 Nov 2020 13:11:39 +0000 Subject: Support feedparser 6 References: https://github.com/rss2email/rss2email/issues/73 https://github.com/rss2email/rss2email/pull/149 https://bugzilla.opensuse.org/show_bug.cgi?id=1178085 Traceback (most recent call last): File "/usr/bin/r2e", line 5, in <module> rss2email.main.run() File "/usr/lib/python3.8/site-packages/rss2email/main.py", line 186, in run args.func(feeds=feeds, args=args) File "/usr/lib/python3.8/site-packages/rss2email/command.py", line 90, in run feed.run(send=args.send) File "/usr/lib/python3.8/site-packages/rss2email/feed.py", line 912, in run for (guid, state, sender, message) in self._process(parsed): File "/usr/lib/python3.8/site-packages/rss2email/feed.py", line 381, in _process self._check_for_errors(parsed) File "/usr/lib/python3.8/site-packages/rss2email/feed.py", line 436, in _check_for_errors elif isinstance(exc, _feedparser.zlib.error): AttributeError: module 'feedparser' has no attribute 'zlib' Index: rss2email-3.12.2/rss2email/feed.py =================================================================== --- rss2email-3.12.2.orig/rss2email/feed.py +++ rss2email-3.12.2/rss2email/feed.py @@ -433,7 +433,7 @@ class Feed (object): elif isinstance(exc, _SOCKET_ERRORS): _LOG.error('{}: {}'.format(exc, self)) warned = True - elif isinstance(exc, _feedparser.zlib.error): + elif isinstance(exc, _feedparser.http.zlib.error): _LOG.error('broken compression: {}'.format(self)) warned = True elif isinstance(exc, (IOError, AttributeError)): Index: rss2email-3.12.2/requirements.txt =================================================================== --- rss2email-3.12.2.orig/requirements.txt +++ rss2email-3.12.2/requirements.txt @@ -1,2 +1,2 @@ -feedparser==5.2.1 +feedparser>=6.0.0 html2text==2020.1.16 Index: rss2email-3.12.2/setup.py =================================================================== --- rss2email-3.12.2.orig/setup.py +++ rss2email-3.12.2/setup.py @@ -65,7 +65,7 @@ setuptools.setup( scripts=['r2e'], provides=['rss2email'], install_requires=[ - 'feedparser>=5.0.1', + 'feedparser>=6.0.0', 'html2text>=3.0.1', ], ) Index: rss2email-3.12.2/test/data/disqus/1.expected =================================================================== --- rss2email-3.12.2.orig/test/data/disqus/1.expected +++ rss2email-3.12.2/test/data/disqus/1.expected @@ -43,7 +43,7 @@ User-Agent: rss2email/... List-ID: <test.localhost> List-Post: NO (posting not allowed on this list) X-RSS-Feed: data/disqus/feed.rss -X-RSS-ID: ab03f2100069a1cd0876b997be87976c18d48e8a +X-RSS-ID: a52375ec78a988241fe9864a2243d4d910538d52 X-RSS-URL: http://software-carpentry.org/2012/11/who-wants-to-write-a-little-code/#comment-713578640 @Hans-Martin ++++++ rss2email-3.12.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rss2email-3.12.2/.github/workflows/python-package.yml new/rss2email-3.12.2/.github/workflows/python-package.yml --- old/rss2email-3.12.2/.github/workflows/python-package.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/rss2email-3.12.2/.github/workflows/python-package.yml 2020-08-31 17:03:24.000000000 +0200 @@ -0,0 +1,31 @@ +# This workflow will install Python dependencies and run tests. +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: Python package + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + python-version: [3.5, 3.6, 3.7, 3.8] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + - name: Test + run: | + ./test/test.py -v diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rss2email-3.12.2/.gitignore new/rss2email-3.12.2/.gitignore --- old/rss2email-3.12.2/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/rss2email-3.12.2/.gitignore 2020-08-31 17:03:24.000000000 +0200 @@ -0,0 +1,4 @@ +__pycache__ +build +dist +MANIFEST diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rss2email-3.12.2/.mailmap new/rss2email-3.12.2/.mailmap --- old/rss2email-3.12.2/.mailmap 1970-01-01 01:00:00.000000000 +0100 +++ new/rss2email-3.12.2/.mailmap 2020-08-31 17:03:24.000000000 +0200 @@ -0,0 +1,2 @@ +Lindsey Smith <lindsey.sm...@gmail.com> <lind...@allthingsrss.com> +Lindsey Smith <lindsey.sm...@gmail.com> <lindsey.sm...@gmail.com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rss2email-3.12.2/.travis.yml new/rss2email-3.12.2/.travis.yml --- old/rss2email-3.12.2/.travis.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/rss2email-3.12.2/.travis.yml 2020-08-31 17:03:24.000000000 +0200 @@ -0,0 +1,34 @@ +language: "nix" + +nix: "2.2.1" + +os: "linux" + +script: | + set -e + + # build rss2email against every python version we support + nix-build -A pythonVersions ./nix/release.nix + + # build the list of the transitive closure of dependencies + nix-store --query --requisites --include-outputs \ + $(nix-instantiate -A pythonVersions ./nix/release.nix) \ + > nix-dependencies + + +# using the snippets from https://nixos.wiki/wiki/Nix_on_Travis + +before_cache: +- mkdir -p $HOME/nix.store +# this copies the closure of all dependencies to the cache +- nix copy --to file://$HOME/nix.store $(cat ./nix-dependencies) + +cache: + directories: + - $HOME/nix.store + +before_install: +- sudo mkdir -p /etc/nix +- echo "substituters = https://cache.nixos.org/ file://$HOME/nix.store" | sudo tee -a /etc/nix/nix.conf > /dev/null +- echo 'require-sigs = false' | sudo tee -a /etc/nix/nix.conf > /dev/null +- echo 'sandbox = true' | sudo tee -a /etc/nix/nix.conf > /dev/null diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rss2email-3.12.2/.update-copyright.conf new/rss2email-3.12.2/.update-copyright.conf --- old/rss2email-3.12.2/.update-copyright.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/rss2email-3.12.2/.update-copyright.conf 2020-08-31 17:03:24.000000000 +0200 @@ -0,0 +1,58 @@ +[project] +name: rss2email +vcs: Git + +[files] +authors: yes +files: yes +ignored: AUTHORS | COPYING | README | README.rst | .update-copyright.conf | + .git* | *.atom | *.rss | __pycache__ + +[aliases] +Aaron Swartz: Aaron Swartz <m...@aaronsw.com> +Jeff Backus <j...@jsbackus.com>: Jeff Backus <jeff.bac...@gmail.com> +Yannik Sembritzki <yan...@sembritzki.me>: Yannik <yan...@sembritzki.me> + +[author-hacks] +rss2email/config.py: Aaron Swartz | + Brian Lalor | + Dean Jackson | + Erik Hetzner | + Joey Hess | + Lindsey Smith <lindsey.sm...@gmail.com> | + Marcel Ackermann | + Martin 'Joey' Schulze | + Matej Cepl +rss2email/feed.py: Aaron Swartz | + Brian Lalor | + Dean Jackson | + Erik Hetzner | + Joey Hess | + Lindsey Smith <lindsey.sm...@gmail.com> | + Marcel Ackermann | + Martin 'Joey' Schulze | + Matej Cepl +rss2email/feeds.py: Aaron Swartz | + Brian Lalor | + Dean Jackson | + Erik Hetzner | + Joey Hess | + Lindsey Smith <lindsey.sm...@gmail.com> | + Marcel Ackermann | + Martin 'Joey' Schulze | + Matej Cepl + +[year-hacks] +rss2email/config.py: 2004 +rss2email/feed.py: 2004 +rss2email/feeds.py: 2004 + +[copyright] +short: {project} comes with ABSOLUTELY NO WARRANTY and is licensed under the GNU General Public License. +long: This file is part of {project}. + + {project} 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. + + {project} 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 {project}. If not, see <http://www.gnu.org/licenses/>. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rss2email-3.12.2/HACKING.md new/rss2email-3.12.2/HACKING.md --- old/rss2email-3.12.2/HACKING.md 1970-01-01 01:00:00.000000000 +0100 +++ new/rss2email-3.12.2/HACKING.md 2020-08-31 17:03:24.000000000 +0200 @@ -0,0 +1,56 @@ +# Hacking on `rss2email` + +This document is still TODO. Please contribute to it and file issues +if you have a question (or something is not described sufficiently). + + +## Cutting a new release + +- `nix-shell` +- `update-copyright.py` +- Prepare `CHANGELOG` +- Fix `__version__` in `rss2email/__init__.py` +- `git commit` +- `exit` + +- `rm -Rf dist rss2email.egg-info` +- `nix-shell -p python37Packages.{setuptools,wheel,twine}` +- `SOURCE_DATE_EPOCH=315532800 python3 setup.py sdist bdist_wheel` +- `twine upload --repository-url https://test.pypi.org/legacy/ dist/*` +- Check it actually work on test-pypi (NixOS test, run on dev machines…) + +- Add git tag, git branch if need be, push it to repository +- `twine upload dist/*` + + +## Using nix support + +`rss2email` has a few nix definitions in order to simplify development. +In order to use them you need to install the [nix package +manager](https://nixos.org/nix) version 2 or later on your system. + +### Open a shell with all dependencies + +Run `nix-shell` in the top directory. It will open a bash with all +dependencies (python and system) required for working on `rss2email`. +This uses the [`shell.nix`](./shell.nix) file. + +### Test `rss2email` against multiple python versions + +`nix/release.nix` contains an expression to build and test rss2email +against multiple python versions. + +You can build each one of them like this: + +``` +nix-build -A pythonVersions.rss2email-python_3_5 nix/release.nix +nix-build -A pythonVersions.rss2email-python_3_6 nix/release.nix +nix-build -A pythonVersions.rss2email-python_3_7 nix/release.nix +… +``` + +and all at once with + +``` +nix-build -A pythonVersions nix/release.nix +``` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rss2email-3.12.2/PKG-INFO new/rss2email-3.12.2/PKG-INFO --- old/rss2email-3.12.2/PKG-INFO 2020-08-31 17:03:57.000000000 +0200 +++ new/rss2email-3.12.2/PKG-INFO 1970-01-01 01:00:00.000000000 +0100 @@ -1,306 +0,0 @@ -Metadata-Version: 1.2 -Name: rss2email -Version: 3.12.2 -Summary: A python script that converts RSS/Atom newsfeeds to email -Home-page: https://github.com/rss2email/rss2email -Maintainer: The rss2email maintainers -Maintainer-email: rss2em...@tremily.us -License: GNU General Public License (GPL) -Download-URL: https://github.com/rss2email/rss2email/archive/v3.12.2.tar.gz -Description: .. -*- coding: utf-8 -*- - - .. image:: https://pypip.in/download/rss2email/badge.png - :target: https://pypi.python.org/pypi/rss2email/ - :alt: Downloads - - .. image:: https://pypip.in/version/rss2email/badge.png - :target: https://pypi.python.org/pypi/rss2email/ - :alt: Latest Version - - .. image:: https://pypip.in/license/rss2email/badge.png - :target: https://pypi.python.org/pypi/rss2email/ - :alt: License - - ============================== - Getting Started With rss2email - ============================== - - We highly recommend that you watch the rss2email project on GitHub - so you can keep up to date with the latest version, bugfixes and - features: - - https://github.com/rss2email/rss2email - - .. contents:: - - Installing rss2email - ==================== - - Packages - -------- - - A quick way to get rss2email going is using pre-made packages. There - are releases for Debian__, Ubuntu__, Fedora__, openSUSE__, Gentoo__, - NetBSD__, and OpenBSD__. - - __ `Debian package`_ - __ `Ubuntu package`_ - __ `Fedora package`_ - __ `openSUSE package`_ - __ `Gentoo package`_ - __ `NetBSD package`_ - __ `OpenBSD package`_ - - Installing by hand - ------------------ - - Requirements - ~~~~~~~~~~~~ - - Before you install rss2email, you'll need to make sure that a few - things are in place. - - 1. Ensure that a version of Python_ ≥3.4 is installed. - 2. Install the required Python packages. - - * feedparser_ - * html2text_ - - 3. Figure out how you are going to send outgoing email. You have two - options here: either use an SMTP server or a local sendmail - program. So, - - * determine your outgoing email server's SMTP address, or - * install sendmail (or a compatible replacement like postfix). - - Download - ~~~~~~~~ - - Download the latest rss2email source and unpack it. You can choose - from several equivalent formats. - - 1. A ``.zip`` file (suggested for Microsoft Windows users) - or ``.tar.gz`` file (suggested for everyone else):: - - * Navigate to https://github.com/rss2email/rss2email/releases - * Click either the ``zip`` or ``tar.gz`` icon for the latest release - * Download and extract the archive - - 3. A Git_ checkout (suggested for developers):: - - $ git clone git://github.com/rss2email/rss2email.git - - Install - ~~~~~~~ - - From the unpacked directory, run:: - - $ python setup.py install - - You can pass all the usual options to the ``install`` command, - including ``--user``. If you don't want to install rss2email, you can - also run ``r2e`` directly from the source directory. - - Upgrading to a new version - ~~~~~~~~~~~~~~~~~~~~~~~~~~ - - Just repeat the installation procedure for the new source package. If - your config file and data file were in the old source directory, move - them over to the new source directory. If the config and data files - were in another directory (e.g. ``~/.config`` and ``~/.local/share``), - there is no need to move them. - - Using rss2email - =============== - - Create a new feed database to send updates to your email address:: - - $ r2e new y...@yourdomain.com - - This command will create a configuration file - (``$XDG_CONFIG_HOME/rss2email.cfg`` by default) and a feed database - (``$XDG_DATA_HOME/rss2email.json`` by default). If you'd rather those - files were stored in other locations, use the ``--config`` and - ``--data`` options. ``XDG_CONFIG_HOME`` defaults to ``$HOME/.config`` - and ``XDG_DATA_HOME`` defaults to ``$HOME/.local/share``. - - You should edit the default configuration file now to adjust rss2email - for your local system. Unless you've installed a local - sendmail-equivalent, you'll need to edit the SMTP_ options. - - Subscribe to some feeds:: - - $ r2e add eff https://www.eff.org/rss/updates.xml - - That will cause rss2email to notify you when there is a new announcement from - the Electronic Frontier Foundation. Repeat this for each feed you want to - subscribe to. - - When you run rss2email, it emails you about every story it hasn't seen - before. But the first time you run it, that will be every story. To - avoid this, you can ask rss2email not to send you any stories the - first time you run it:: - - r2e run --no-send - - Then later, you can ask it to email you new stories:: - - r2e run - - When a run is made, rss2email stores the list of already seen items for each feed in `$HOME/.local/share/rss2email.json`. - - Customizing rss2email - ===================== - - There are a number of options, described in full in - ``rss2email/config.py``, to customize the way rss2email behaves. If - you want to change something, edit the configuration file that was - created by ``r2e new``. - - For example, if you want to receive HTML mail, instead of having - entries converted to plain text:: - - html-mail = True - - To be notified every time a post changes, instead of just when it's - first posted (see also ``trust-link`` and ``reply-changes``, described in - ``rss2email/config.py``):: - - trust-guid = True - - And to make the emails look as if they were sent when the item was - posted:: - - date-header = True - - If you get an error message ``Sender domain must exist``, add the - following to your configuration file:: - - from = rss2em...@yoursite.com - force-from = True - - You can make the email address whatever you want, but your mail server - requires that the ``yoursite.com`` part actually exists. - - - SMTP - ---- - - By default, rss2email uses sendmail (or an equivalent) to send - outgoing email. If you don't have such a program installed, or simply - prefer to use SMTP__ directly, edit the configuration file and fill in - your outgoing email server's details:: - - [DEFAULT] - ... - email-protocol = smtp - smtp-server = smtp.example.net:587 - smtp-auth = False - ... - - If your server requires you to login, change ``smtp-auth = False`` to - ``smtp-auth = True`` and enter your email username and password:: - - smtp-auth = True - smtp-username = username - smtp-password = password - - If your server requires an `TLS/SSL`_ connection (SMTPS), change - ``smtp-ssl = False`` to ``smtp-ssl = True``. If your server does - not require a SMTPS connection but you request authentication, - rss2email will use STARTTLS_ to encrypt the connection before sending - your login credentials to the server. - - __ `Simple Mail Transport Protocol`_ - - Post-processing - --------------- - - rss2email has a mechanism to post-process entries. A post-processor can be used to change the content of each entry - before rss2email sends the email out. A hook is added by defining the variable ``post-process`` in the - config file. It takes two arguments, the module and the function to call. For example: - - post-process = rss2email.post_process.prettify process - - Examples of built-in post-processors: - - * ``prettify.py`` prettifies the HTML content with BeautifulSoup. - * ``redirect.py`` remove redirects on the post URL for privacy or durability. - - - Automating rss2email - ==================== - - More than likely you will want rss2email to run automatically at a - regular interval. Under Windows this is can be easily accomplished - using the Windows Task Scheduler. This site has a - nice tutorial__ on it. Just select ``r2e.bat`` as the program to run. Once - you've created the task, double click on it in the task list and - change the Run entry so that ``run`` comes - after ``r2e.bat``. For example, if you installed rss2email in - the ``C:\rss2email`` directory, then you would change the Run - entry from ``C:\rss2email\r2e.bat`` - to ``C:\rss2email\r2e.bat run``. - - __ `windows scheduler`_ - - On Unix/Linux systems, you should add a cron_ job that runs ``r2e``. - For example, run ``r2e`` every night (at 1:23 am) with:: - - 23 1 * * * r2e run - - Development - =========== - - User discussion and development take place on GitHub. Please feel free - to post bug reports, feature requests, comments, and patches. If you - do not have a GitHub account and do not wish to acquire one, you may - e-mail Jeff: - - j...@jsbackus.com - - There is a developer chat on the `freenode IRC server`_, in the - ``rss2email`` channel. Feel free to idle. - - .. _Debian package: - http://packages.qa.debian.org/r/rss2email.html - .. _Ubuntu package: - https://launchpad.net/ubuntu/+source/rss2email - .. _Fedora package: - https://src.fedoraproject.org/rpms/rss2email - .. _openSUSE package: - https://build.opensuse.org/package/show/openSUSE:Factory/rss2email - .. _NetBSD package: - http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/mail/rss2email/README.html - .. _Gentoo package: - http://gpo.zugaina.org/net-mail/rss2email - .. _OpenBSD package: - http://openports.se/mail/rss2email - .. _Python: http://www.python.org - .. _feedparser: http://pypi.python.org/pypi/feedparser - .. _html2text: http://pypi.python.org/pypi/html2text - .. _Git: http://git-scm.com/ - .. _Simple Mail Transport Protocol: http://en.wikipedia.org/wiki/Simple_Mail_Transport_Protocol - .. _TLS/SSL: http://en.wikipedia.org/wiki/Transport_Layer_Security - .. _STARTTLS: http://en.wikipedia.org/wiki/STARTTLS - .. _windows scheduler: http://www.iopus.com/guides/winscheduler.htm - .. _cron: http://en.wikipedia.org/wiki/Cron - .. _freenode IRC server: https://freenode.net - -Platform: all -Classifier: Development Status :: 5 - Production/Stable -Classifier: Environment :: Console -Classifier: Intended Audience :: End Users/Desktop -Classifier: Operating System :: OS Independent -Classifier: License :: OSI Approved :: GNU General Public License (GPL) -Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2) -Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3) -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.5 -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Topic :: Communications :: Email -Classifier: Topic :: Software Development :: Libraries :: Python Modules -Provides: rss2email diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rss2email-3.12.2/developer-certificate-of-origin new/rss2email-3.12.2/developer-certificate-of-origin --- old/rss2email-3.12.2/developer-certificate-of-origin 1970-01-01 01:00:00.000000000 +0100 +++ new/rss2email-3.12.2/developer-certificate-of-origin 2020-08-31 17:03:24.000000000 +0200 @@ -0,0 +1,35 @@ +Developer Certificate of Origin +Version 1.1 + +Copyright (C) 2004, 2006 The Linux Foundation and its contributors. +660 York Street, Suite 102, +San Francisco, CA 94110 USA + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +(a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +(b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +(c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +(d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rss2email-3.12.2/nix/nixpkgs.nix new/rss2email-3.12.2/nix/nixpkgs.nix --- old/rss2email-3.12.2/nix/nixpkgs.nix 1970-01-01 01:00:00.000000000 +0100 +++ new/rss2email-3.12.2/nix/nixpkgs.nix 2020-08-31 17:03:24.000000000 +0200 @@ -0,0 +1,5 @@ +builtins.fetchTarball { + # nixpkgs 19.09 2020-01-24 + url = "https://github.com/NixOS/nixpkgs/archive/e6391b4389e10a52358bd94b3031238648818b0a.tar.gz"; + sha256 = "07nkaihks0k60krghd900x8zhfrsxmvdchlf5fzqmhgmfw5x6krv"; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rss2email-3.12.2/nix/release.nix new/rss2email-3.12.2/nix/release.nix --- old/rss2email-3.12.2/nix/release.nix 1970-01-01 01:00:00.000000000 +0100 +++ new/rss2email-3.12.2/nix/release.nix 2020-08-31 17:03:24.000000000 +0200 @@ -0,0 +1,47 @@ +{ nixpkgs ? import ./nixpkgs.nix }: +let + pkgs = import nixpkgs {}; + + supportedPackageSets = [ + { version = "3_5"; set = pkgs.python35Packages; } + { version = "3_6"; set = pkgs.python36Packages; } + { version = "3_7"; set = pkgs.python37Packages; } + { version = "3_8"; set = pkgs.python38Packages; } + ]; + latestSupportedPackageSet = pkgs.lib.last supportedPackageSets; + + src = pkgs.lib.cleanSource ../.; + + mkName = version: "rss2email-python_${version}"; + + buildWith = pkgSet: pkgSet.set.buildPythonApplication { + name = mkName pkgSet.version; + version = "develop"; + + inherit src; + propagatedBuildInputs = with pkgSet.set; [ + feedparser + html2text + ]; + + doCheck = true; + checkPhase = '' + cd ./test && \ + python3 -m unittest --verbose + ''; + }; + + # { "rss2email-python_3_5" = <rss2email package>; … } + rss2emailVersions = + (pkgs.lib.listToAttrs + (map + (pkgSet: pkgs.lib.nameValuePair + (mkName pkgSet.version) + (buildWith pkgSet)) + supportedPackageSets)); + +in { + rss2email = buildWith latestSupportedPackageSet; + + pythonVersions = rss2emailVersions; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rss2email-3.12.2/requirements.txt new/rss2email-3.12.2/requirements.txt --- old/rss2email-3.12.2/requirements.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/rss2email-3.12.2/requirements.txt 2020-08-31 17:03:24.000000000 +0200 @@ -0,0 +1,2 @@ +feedparser==5.2.1 +html2text==2020.1.16 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rss2email-3.12.2/rss2email.egg-info/PKG-INFO new/rss2email-3.12.2/rss2email.egg-info/PKG-INFO --- old/rss2email-3.12.2/rss2email.egg-info/PKG-INFO 2020-08-31 17:03:56.000000000 +0200 +++ new/rss2email-3.12.2/rss2email.egg-info/PKG-INFO 1970-01-01 01:00:00.000000000 +0100 @@ -1,306 +0,0 @@ -Metadata-Version: 1.2 -Name: rss2email -Version: 3.12.2 -Summary: A python script that converts RSS/Atom newsfeeds to email -Home-page: https://github.com/rss2email/rss2email -Maintainer: The rss2email maintainers -Maintainer-email: rss2em...@tremily.us -License: GNU General Public License (GPL) -Download-URL: https://github.com/rss2email/rss2email/archive/v3.12.2.tar.gz -Description: .. -*- coding: utf-8 -*- - - .. image:: https://pypip.in/download/rss2email/badge.png - :target: https://pypi.python.org/pypi/rss2email/ - :alt: Downloads - - .. image:: https://pypip.in/version/rss2email/badge.png - :target: https://pypi.python.org/pypi/rss2email/ - :alt: Latest Version - - .. image:: https://pypip.in/license/rss2email/badge.png - :target: https://pypi.python.org/pypi/rss2email/ - :alt: License - - ============================== - Getting Started With rss2email - ============================== - - We highly recommend that you watch the rss2email project on GitHub - so you can keep up to date with the latest version, bugfixes and - features: - - https://github.com/rss2email/rss2email - - .. contents:: - - Installing rss2email - ==================== - - Packages - -------- - - A quick way to get rss2email going is using pre-made packages. There - are releases for Debian__, Ubuntu__, Fedora__, openSUSE__, Gentoo__, - NetBSD__, and OpenBSD__. - - __ `Debian package`_ - __ `Ubuntu package`_ - __ `Fedora package`_ - __ `openSUSE package`_ - __ `Gentoo package`_ - __ `NetBSD package`_ - __ `OpenBSD package`_ - - Installing by hand - ------------------ - - Requirements - ~~~~~~~~~~~~ - - Before you install rss2email, you'll need to make sure that a few - things are in place. - - 1. Ensure that a version of Python_ ≥3.4 is installed. - 2. Install the required Python packages. - - * feedparser_ - * html2text_ - - 3. Figure out how you are going to send outgoing email. You have two - options here: either use an SMTP server or a local sendmail - program. So, - - * determine your outgoing email server's SMTP address, or - * install sendmail (or a compatible replacement like postfix). - - Download - ~~~~~~~~ - - Download the latest rss2email source and unpack it. You can choose - from several equivalent formats. - - 1. A ``.zip`` file (suggested for Microsoft Windows users) - or ``.tar.gz`` file (suggested for everyone else):: - - * Navigate to https://github.com/rss2email/rss2email/releases - * Click either the ``zip`` or ``tar.gz`` icon for the latest release - * Download and extract the archive - - 3. A Git_ checkout (suggested for developers):: - - $ git clone git://github.com/rss2email/rss2email.git - - Install - ~~~~~~~ - - From the unpacked directory, run:: - - $ python setup.py install - - You can pass all the usual options to the ``install`` command, - including ``--user``. If you don't want to install rss2email, you can - also run ``r2e`` directly from the source directory. - - Upgrading to a new version - ~~~~~~~~~~~~~~~~~~~~~~~~~~ - - Just repeat the installation procedure for the new source package. If - your config file and data file were in the old source directory, move - them over to the new source directory. If the config and data files - were in another directory (e.g. ``~/.config`` and ``~/.local/share``), - there is no need to move them. - - Using rss2email - =============== - - Create a new feed database to send updates to your email address:: - - $ r2e new y...@yourdomain.com - - This command will create a configuration file - (``$XDG_CONFIG_HOME/rss2email.cfg`` by default) and a feed database - (``$XDG_DATA_HOME/rss2email.json`` by default). If you'd rather those - files were stored in other locations, use the ``--config`` and - ``--data`` options. ``XDG_CONFIG_HOME`` defaults to ``$HOME/.config`` - and ``XDG_DATA_HOME`` defaults to ``$HOME/.local/share``. - - You should edit the default configuration file now to adjust rss2email - for your local system. Unless you've installed a local - sendmail-equivalent, you'll need to edit the SMTP_ options. - - Subscribe to some feeds:: - - $ r2e add eff https://www.eff.org/rss/updates.xml - - That will cause rss2email to notify you when there is a new announcement from - the Electronic Frontier Foundation. Repeat this for each feed you want to - subscribe to. - - When you run rss2email, it emails you about every story it hasn't seen - before. But the first time you run it, that will be every story. To - avoid this, you can ask rss2email not to send you any stories the - first time you run it:: - - r2e run --no-send - - Then later, you can ask it to email you new stories:: - - r2e run - - When a run is made, rss2email stores the list of already seen items for each feed in `$HOME/.local/share/rss2email.json`. - - Customizing rss2email - ===================== - - There are a number of options, described in full in - ``rss2email/config.py``, to customize the way rss2email behaves. If - you want to change something, edit the configuration file that was - created by ``r2e new``. - - For example, if you want to receive HTML mail, instead of having - entries converted to plain text:: - - html-mail = True - - To be notified every time a post changes, instead of just when it's - first posted (see also ``trust-link`` and ``reply-changes``, described in - ``rss2email/config.py``):: - - trust-guid = True - - And to make the emails look as if they were sent when the item was - posted:: - - date-header = True - - If you get an error message ``Sender domain must exist``, add the - following to your configuration file:: - - from = rss2em...@yoursite.com - force-from = True - - You can make the email address whatever you want, but your mail server - requires that the ``yoursite.com`` part actually exists. - - - SMTP - ---- - - By default, rss2email uses sendmail (or an equivalent) to send - outgoing email. If you don't have such a program installed, or simply - prefer to use SMTP__ directly, edit the configuration file and fill in - your outgoing email server's details:: - - [DEFAULT] - ... - email-protocol = smtp - smtp-server = smtp.example.net:587 - smtp-auth = False - ... - - If your server requires you to login, change ``smtp-auth = False`` to - ``smtp-auth = True`` and enter your email username and password:: - - smtp-auth = True - smtp-username = username - smtp-password = password - - If your server requires an `TLS/SSL`_ connection (SMTPS), change - ``smtp-ssl = False`` to ``smtp-ssl = True``. If your server does - not require a SMTPS connection but you request authentication, - rss2email will use STARTTLS_ to encrypt the connection before sending - your login credentials to the server. - - __ `Simple Mail Transport Protocol`_ - - Post-processing - --------------- - - rss2email has a mechanism to post-process entries. A post-processor can be used to change the content of each entry - before rss2email sends the email out. A hook is added by defining the variable ``post-process`` in the - config file. It takes two arguments, the module and the function to call. For example: - - post-process = rss2email.post_process.prettify process - - Examples of built-in post-processors: - - * ``prettify.py`` prettifies the HTML content with BeautifulSoup. - * ``redirect.py`` remove redirects on the post URL for privacy or durability. - - - Automating rss2email - ==================== - - More than likely you will want rss2email to run automatically at a - regular interval. Under Windows this is can be easily accomplished - using the Windows Task Scheduler. This site has a - nice tutorial__ on it. Just select ``r2e.bat`` as the program to run. Once - you've created the task, double click on it in the task list and - change the Run entry so that ``run`` comes - after ``r2e.bat``. For example, if you installed rss2email in - the ``C:\rss2email`` directory, then you would change the Run - entry from ``C:\rss2email\r2e.bat`` - to ``C:\rss2email\r2e.bat run``. - - __ `windows scheduler`_ - - On Unix/Linux systems, you should add a cron_ job that runs ``r2e``. - For example, run ``r2e`` every night (at 1:23 am) with:: - - 23 1 * * * r2e run - - Development - =========== - - User discussion and development take place on GitHub. Please feel free - to post bug reports, feature requests, comments, and patches. If you - do not have a GitHub account and do not wish to acquire one, you may - e-mail Jeff: - - j...@jsbackus.com - - There is a developer chat on the `freenode IRC server`_, in the - ``rss2email`` channel. Feel free to idle. - - .. _Debian package: - http://packages.qa.debian.org/r/rss2email.html - .. _Ubuntu package: - https://launchpad.net/ubuntu/+source/rss2email - .. _Fedora package: - https://src.fedoraproject.org/rpms/rss2email - .. _openSUSE package: - https://build.opensuse.org/package/show/openSUSE:Factory/rss2email - .. _NetBSD package: - http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/mail/rss2email/README.html - .. _Gentoo package: - http://gpo.zugaina.org/net-mail/rss2email - .. _OpenBSD package: - http://openports.se/mail/rss2email - .. _Python: http://www.python.org - .. _feedparser: http://pypi.python.org/pypi/feedparser - .. _html2text: http://pypi.python.org/pypi/html2text - .. _Git: http://git-scm.com/ - .. _Simple Mail Transport Protocol: http://en.wikipedia.org/wiki/Simple_Mail_Transport_Protocol - .. _TLS/SSL: http://en.wikipedia.org/wiki/Transport_Layer_Security - .. _STARTTLS: http://en.wikipedia.org/wiki/STARTTLS - .. _windows scheduler: http://www.iopus.com/guides/winscheduler.htm - .. _cron: http://en.wikipedia.org/wiki/Cron - .. _freenode IRC server: https://freenode.net - -Platform: all -Classifier: Development Status :: 5 - Production/Stable -Classifier: Environment :: Console -Classifier: Intended Audience :: End Users/Desktop -Classifier: Operating System :: OS Independent -Classifier: License :: OSI Approved :: GNU General Public License (GPL) -Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2) -Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3) -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.5 -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Topic :: Communications :: Email -Classifier: Topic :: Software Development :: Libraries :: Python Modules -Provides: rss2email diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rss2email-3.12.2/rss2email.egg-info/SOURCES.txt new/rss2email-3.12.2/rss2email.egg-info/SOURCES.txt --- old/rss2email-3.12.2/rss2email.egg-info/SOURCES.txt 2020-08-31 17:03:56.000000000 +0200 +++ new/rss2email-3.12.2/rss2email.egg-info/SOURCES.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,65 +0,0 @@ -AUTHORS -CHANGELOG -COPYING -MANIFEST.in -README.rst -r2e -r2e.1 -r2e.bat -setup.py -completion/r2e.zsh -rss2email/__init__.py -rss2email/command.py -rss2email/config.py -rss2email/email.py -rss2email/error.py -rss2email/feed.py -rss2email/feeds.py -rss2email/main.py -rss2email/util.py -rss2email/version.py -rss2email.egg-info/PKG-INFO -rss2email.egg-info/SOURCES.txt -rss2email.egg-info/dependency_links.txt -rss2email.egg-info/requires.txt -rss2email.egg-info/top_level.txt -rss2email/post_process/__init__.py -rss2email/post_process/downcase.py -rss2email/post_process/prettify.py -rss2email/post_process/redirect.py -test/README -test/test.py -test/test_reply_changes.py -test/data/allthingsrss/1.config -test/data/allthingsrss/1.expected -test/data/allthingsrss/2.config -test/data/allthingsrss/2.expected -test/data/allthingsrss/3.config -test/data/allthingsrss/3.expected -test/data/allthingsrss/4.config -test/data/allthingsrss/4.expected -test/data/allthingsrss/README -test/data/allthingsrss/feed.atom -test/data/bbc-chinese/1.config -test/data/bbc-chinese/1.expected -test/data/bbc-chinese/2.config -test/data/bbc-chinese/2.expected -test/data/bbc-chinese/README -test/data/bbc-chinese/feed.atom -test/data/disqus/1.config -test/data/disqus/1.expected -test/data/disqus/README -test/data/disqus/feed.rss -test/data/gmane/1.config -test/data/gmane/1.expected -test/data/gmane/2.config -test/data/gmane/2.expected -test/data/gmane/3.config -test/data/gmane/3.expected -test/data/gmane/README -test/data/gmane/feed.rss -test/data/nodejs/feed1.xml -test/data/nodejs/feed2.xml -test/data/nodejs/feed3.xml -test/util/execcontext.py -test/util/tempmaildir.py \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rss2email-3.12.2/rss2email.egg-info/dependency_links.txt new/rss2email-3.12.2/rss2email.egg-info/dependency_links.txt --- old/rss2email-3.12.2/rss2email.egg-info/dependency_links.txt 2020-08-31 17:03:56.000000000 +0200 +++ new/rss2email-3.12.2/rss2email.egg-info/dependency_links.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rss2email-3.12.2/rss2email.egg-info/requires.txt new/rss2email-3.12.2/rss2email.egg-info/requires.txt --- old/rss2email-3.12.2/rss2email.egg-info/requires.txt 2020-08-31 17:03:56.000000000 +0200 +++ new/rss2email-3.12.2/rss2email.egg-info/requires.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,2 +0,0 @@ -feedparser>=5.0.1 -html2text>=3.0.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rss2email-3.12.2/rss2email.egg-info/top_level.txt new/rss2email-3.12.2/rss2email.egg-info/top_level.txt --- old/rss2email-3.12.2/rss2email.egg-info/top_level.txt 2020-08-31 17:03:56.000000000 +0200 +++ new/rss2email-3.12.2/rss2email.egg-info/top_level.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -rss2email diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rss2email-3.12.2/setup.cfg new/rss2email-3.12.2/setup.cfg --- old/rss2email-3.12.2/setup.cfg 2020-08-31 17:03:57.000000000 +0200 +++ new/rss2email-3.12.2/setup.cfg 1970-01-01 01:00:00.000000000 +0100 @@ -1,4 +0,0 @@ -[egg_info] -tag_build = -tag_date = 0 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rss2email-3.12.2/shell.nix new/rss2email-3.12.2/shell.nix --- old/rss2email-3.12.2/shell.nix 1970-01-01 01:00:00.000000000 +0100 +++ new/rss2email-3.12.2/shell.nix 2020-08-31 17:03:24.000000000 +0200 @@ -0,0 +1,27 @@ +{ nixpkgs ? import ./nix/nixpkgs.nix }: +let + pkgs = import nixpkgs {}; + pythonPackages = pkgs.python3Packages; + + # it’s not yet in nixpkgs + update-copyright = with pythonPackages; buildPythonApplication rec { + pname = "update-copyright"; + version = "0.6.2"; + src = fetchPypi { + inherit pname version; + sha256 = "17ybdgbdc62yqhda4kfy1vcs1yzp78d91qfhj5zbvz1afvmvdk7z"; + }; + meta = with pkgs.lib; { + description = "An automatic copyright update tool"; + license = licenses.gpl3; + }; + }; + +in pkgs.mkShell { + buildInputs = with pythonPackages; [ + pkgs.python3 + feedparser + html2text + update-copyright pkgs.git + ]; +}