Hello community, here is the log from the commit of package python-magic-wormhole-mailbox-server for openSUSE:Factory checked in at 2019-10-09 15:19:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-magic-wormhole-mailbox-server (Old) and /work/SRC/openSUSE:Factory/.python-magic-wormhole-mailbox-server.new.2352 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-magic-wormhole-mailbox-server" Wed Oct 9 15:19:10 2019 rev:3 rq:736242 version:0.4.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-magic-wormhole-mailbox-server/python-magic-wormhole-mailbox-server.changes 2019-06-03 18:56:10.524410938 +0200 +++ /work/SRC/openSUSE:Factory/.python-magic-wormhole-mailbox-server.new.2352/python-magic-wormhole-mailbox-server.changes 2019-10-09 15:19:12.468536921 +0200 @@ -1,0 +2,9 @@ +Tue Oct 8 14:13:43 UTC 2019 - Marketa Calabkova <mcalabk...@suse.com> + +- Update to version 0.4.1 + * listen on IPv4+IPv6 socket by default + * deallocate AppNamespace objects when empty + * add client-version-uptake munin plugin + * drop support for py3.3 and py3.4 + +------------------------------------------------------------------- Old: ---- magic-wormhole-mailbox-server-0.3.1.tar.gz New: ---- magic-wormhole-mailbox-server-0.4.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-magic-wormhole-mailbox-server.spec ++++++ --- /var/tmp/diff_new_pack.Xz6gzU/_old 2019-10-09 15:19:13.052535415 +0200 +++ /var/tmp/diff_new_pack.Xz6gzU/_new 2019-10-09 15:19:13.052535415 +0200 @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-magic-wormhole-mailbox-server -Version: 0.3.1 +Version: 0.4.1 Release: 0 Summary: Key exchange and control message server for Magic-Wormhole License: MIT ++++++ magic-wormhole-mailbox-server-0.3.1.tar.gz -> magic-wormhole-mailbox-server-0.4.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/magic-wormhole-mailbox-server-0.3.1/NEWS.md new/magic-wormhole-mailbox-server-0.4.1/NEWS.md --- old/magic-wormhole-mailbox-server-0.3.1/NEWS.md 2018-06-24 04:04:38.000000000 +0200 +++ new/magic-wormhole-mailbox-server-0.4.1/NEWS.md 2019-09-11 09:16:46.000000000 +0200 @@ -1,6 +1,19 @@ User-visible changes in "magic-wormhole-mailbox-server": +## Release 0.4.1 (11-Sep-2019) + +* listen on IPv4+IPv6 properly (#16) + + +## Release 0.4.0 (10-Sep-2019) + +* listen on IPv4+IPv6 socket by default (#16) +* deallocate AppNamespace objects when empty (#12) +* add client-version-uptake munin plugin +* drop support for py3.3 and py3.4 + + ## Release 0.3.1 (23-Jun-2018) Record 'None' for when client doesn't supply a version, to make the math diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/magic-wormhole-mailbox-server-0.3.1/PKG-INFO new/magic-wormhole-mailbox-server-0.4.1/PKG-INFO --- old/magic-wormhole-mailbox-server-0.3.1/PKG-INFO 2018-06-24 04:05:26.000000000 +0200 +++ new/magic-wormhole-mailbox-server-0.4.1/PKG-INFO 2019-09-11 09:18:26.000000000 +0200 @@ -1,6 +1,6 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: magic-wormhole-mailbox-server -Version: 0.3.1 +Version: 0.4.1 Summary: Securely transfer data between computers Home-page: https://github.com/warner/magic-wormhole-mailbox-server Author: Brian Warner @@ -87,8 +87,7 @@ This library is released under the MIT license, see LICENSE for details. - This library is compatible with python2.7, 3.4 (non-Windows-only), 3.5, and - 3.6 . + This library is compatible with python2.7, and python3 (3.5 and higher). Platform: UNKNOWN Classifier: Development Status :: 4 - Beta @@ -98,3 +97,5 @@ Classifier: Topic :: System :: Networking Classifier: Topic :: System :: Systems Administration Classifier: Topic :: Utilities +Description-Content-Type: text/markdown +Provides-Extra: dev diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/magic-wormhole-mailbox-server-0.3.1/README.md new/magic-wormhole-mailbox-server-0.4.1/README.md --- old/magic-wormhole-mailbox-server-0.3.1/README.md 2018-04-03 00:22:54.000000000 +0200 +++ new/magic-wormhole-mailbox-server-0.4.1/README.md 2019-09-11 07:53:40.000000000 +0200 @@ -79,5 +79,4 @@ This library is released under the MIT license, see LICENSE for details. -This library is compatible with python2.7, 3.4 (non-Windows-only), 3.5, and -3.6 . +This library is compatible with python2.7, and python3 (3.5 and higher). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/magic-wormhole-mailbox-server-0.3.1/src/magic_wormhole_mailbox_server.egg-info/PKG-INFO new/magic-wormhole-mailbox-server-0.4.1/src/magic_wormhole_mailbox_server.egg-info/PKG-INFO --- old/magic-wormhole-mailbox-server-0.3.1/src/magic_wormhole_mailbox_server.egg-info/PKG-INFO 2018-06-24 04:05:26.000000000 +0200 +++ new/magic-wormhole-mailbox-server-0.4.1/src/magic_wormhole_mailbox_server.egg-info/PKG-INFO 2019-09-11 09:18:26.000000000 +0200 @@ -1,6 +1,6 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: magic-wormhole-mailbox-server -Version: 0.3.1 +Version: 0.4.1 Summary: Securely transfer data between computers Home-page: https://github.com/warner/magic-wormhole-mailbox-server Author: Brian Warner @@ -87,8 +87,7 @@ This library is released under the MIT license, see LICENSE for details. - This library is compatible with python2.7, 3.4 (non-Windows-only), 3.5, and - 3.6 . + This library is compatible with python2.7, and python3 (3.5 and higher). Platform: UNKNOWN Classifier: Development Status :: 4 - Beta @@ -98,3 +97,5 @@ Classifier: Topic :: System :: Networking Classifier: Topic :: System :: Systems Administration Classifier: Topic :: Utilities +Description-Content-Type: text/markdown +Provides-Extra: dev diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/magic-wormhole-mailbox-server-0.3.1/src/magic_wormhole_mailbox_server.egg-info/requires.txt new/magic-wormhole-mailbox-server-0.4.1/src/magic_wormhole_mailbox_server.egg-info/requires.txt --- old/magic-wormhole-mailbox-server-0.3.1/src/magic_wormhole_mailbox_server.egg-info/requires.txt 2018-06-24 04:05:26.000000000 +0200 +++ new/magic-wormhole-mailbox-server-0.4.1/src/magic_wormhole_mailbox_server.egg-info/requires.txt 2019-09-11 09:18:26.000000000 +0200 @@ -1,13 +1,13 @@ -attrs >= 16.3.0 -autobahn[twisted] >= 0.14.1 six -twisted[tls] >= 17.5.0 +attrs>=16.3.0 +twisted[tls]>=17.5.0 +autobahn[twisted]>=0.14.1 [:sys_platform=="win32"] pywin32 [dev] mock -pyflakes -tox treq +tox +pyflakes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/magic-wormhole-mailbox-server-0.3.1/src/wormhole_mailbox_server/_version.py new/magic-wormhole-mailbox-server-0.4.1/src/wormhole_mailbox_server/_version.py --- old/magic-wormhole-mailbox-server-0.3.1/src/wormhole_mailbox_server/_version.py 2018-06-24 04:05:26.000000000 +0200 +++ new/magic-wormhole-mailbox-server-0.4.1/src/wormhole_mailbox_server/_version.py 2019-09-11 09:18:26.000000000 +0200 @@ -8,11 +8,11 @@ version_json = ''' { - "date": "2018-06-23T19:04:57-0700", + "date": "2019-09-11T00:16:54-0700", "dirty": false, "error": null, - "full-revisionid": "291f977addf52d651183a46b85986462176630a7", - "version": "0.3.1" + "full-revisionid": "b24af3af32ebb4ea0e28d92d956588764b8e47dd", + "version": "0.4.1" } ''' # END VERSION_JSON diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/magic-wormhole-mailbox-server-0.3.1/src/wormhole_mailbox_server/database.py new/magic-wormhole-mailbox-server-0.4.1/src/wormhole_mailbox_server/database.py --- old/magic-wormhole-mailbox-server-0.3.1/src/wormhole_mailbox_server/database.py 2018-06-24 03:44:57.000000000 +0200 +++ new/magic-wormhole-mailbox-server-0.4.1/src/wormhole_mailbox_server/database.py 2019-09-11 07:53:40.000000000 +0200 @@ -15,14 +15,10 @@ def get_upgrader(name, new_version): try: - FileNotFoundError # py3 - except NameError: - FileNotFoundError = EnvironmentError # py2 - try: schema_bytes = resource_string("wormhole_mailbox_server", "db-schemas/upgrade-%s-to-v%d.sql" % (name, new_version)) - except FileNotFoundError: + except EnvironmentError: # includes FileNotFoundError on py3 raise ValueError("no upgrader for %d" % new_version) return schema_bytes.decode("utf-8") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/magic-wormhole-mailbox-server-0.3.1/src/wormhole_mailbox_server/server.py new/magic-wormhole-mailbox-server-0.4.1/src/wormhole_mailbox_server/server.py --- old/magic-wormhole-mailbox-server-0.3.1/src/wormhole_mailbox_server/server.py 2018-06-24 03:44:57.000000000 +0200 +++ new/magic-wormhole-mailbox-server-0.4.1/src/wormhole_mailbox_server/server.py 2019-09-11 07:53:40.000000000 +0200 @@ -183,13 +183,14 @@ server_rx = self._blur_usage * (server_rx // self._blur_usage) implementation = client_version[0] version = client_version[1] - self._usage_db.execute("INSERT INTO `client_versions`" - " (`app_id`, `side`, `connect_time`," - " `implementation`, `version`)" - " VALUES(?,?,?,?,?)", - (self._app_id, side, server_rx, - implementation, version)) - self._usage_db.commit() + if self._usage_db: + self._usage_db.execute("INSERT INTO `client_versions`" + " (`app_id`, `side`, `connect_time`," + " `implementation`, `version`)" + " VALUES(?,?,?,?,?)", + (self._app_id, side, server_rx, + implementation, version)) + self._usage_db.commit() def get_nameplate_ids(self): if not self._allow_list: @@ -521,14 +522,16 @@ (mailbox_id,)) if self._usage_db: self._summarize_mailbox_and_store(for_nameplate, side_rows, - now, pruned=True) + now, pruned=True) modified = True if modified: db.commit() if self._usage_db: self._usage_db.commit() - log.msg(" prune complete, modified:", modified) + in_use = bool(self._mailboxes) + log.msg(" prune complete, modified=%s, in_use=%s" % (modified, in_use)) + return in_use def count_listeners(self): return sum(mailbox.count_listeners() @@ -591,7 +594,9 @@ for app_id in sorted(self.get_all_apps()): log.msg(" app prune checking %r" % (app_id,)) app = self.get_app(app_id) - app.prune(now, old) + in_use = app.prune(now, old) + if not in_use: + del self._apps[app_id] log.msg("app prune ends, %d apps" % len(self._apps)) def dump_stats(self, now, rebooted): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/magic-wormhole-mailbox-server-0.3.1/src/wormhole_mailbox_server/server_tap.py new/magic-wormhole-mailbox-server-0.4.1/src/wormhole_mailbox_server/server_tap.py --- old/magic-wormhole-mailbox-server-0.3.1/src/wormhole_mailbox_server/server_tap.py 2018-06-24 03:44:57.000000000 +0200 +++ new/magic-wormhole-mailbox-server-0.4.1/src/wormhole_mailbox_server/server_tap.py 2019-09-11 09:16:19.000000000 +0200 @@ -19,7 +19,7 @@ longdesc = LONGDESC optParameters = [ - ("port", "p", "tcp:4000", "endpoint to listen on"), + ("port", "p", "tcp:4000:interface=\:\:", "endpoint to listen on"), ("blur-usage", None, None, "round logged access times to improve privacy"), ("log-fd", None, None, "write JSON usage logs to this file descriptor"), ("channel-db", None, "relay.sqlite", "location for the state database"), @@ -90,7 +90,13 @@ def expire(): now = time.time() old = now - CHANNEL_EXPIRATION_TIME - server.prune_all_apps(now, old) + try: + server.prune_all_apps(now, old) + except Exception as e: + # catch-and-log exceptions during prune, so a single error won't + # kill the loop. See #13 for details. + log.msg("error during prune_all_apps") + log.err(e) server.dump_stats(now, rebooted=rebooted) TimerService(EXPIRATION_CHECK_PERIOD, expire).setServiceParent(parent) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/magic-wormhole-mailbox-server-0.3.1/src/wormhole_mailbox_server/test/test_config.py new/magic-wormhole-mailbox-server-0.4.1/src/wormhole_mailbox_server/test/test_config.py --- old/magic-wormhole-mailbox-server-0.3.1/src/wormhole_mailbox_server/test/test_config.py 2018-02-18 10:14:32.000000000 +0100 +++ new/magic-wormhole-mailbox-server-0.4.1/src/wormhole_mailbox_server/test/test_config.py 2019-09-11 09:16:19.000000000 +0200 @@ -3,11 +3,13 @@ from twisted.trial import unittest from .. import server_tap +PORT = "tcp:4000:interface=\:\:" + class Config(unittest.TestCase): def test_defaults(self): o = server_tap.Options() o.parseOptions([]) - self.assertEqual(o, {"port": "tcp:4000", + self.assertEqual(o, {"port": PORT, "channel-db": "relay.sqlite", "disallow-list": 0, "allow-list": True, @@ -22,7 +24,7 @@ def test_advertise_version(self): o = server_tap.Options() o.parseOptions(["--advertise-version=1.0"]) - self.assertEqual(o, {"port": "tcp:4000", + self.assertEqual(o, {"port": PORT, "channel-db": "relay.sqlite", "disallow-list": 0, "allow-list": True, @@ -37,7 +39,7 @@ def test_blur(self): o = server_tap.Options() o.parseOptions(["--blur-usage=60"]) - self.assertEqual(o, {"port": "tcp:4000", + self.assertEqual(o, {"port": PORT, "channel-db": "relay.sqlite", "disallow-list": 0, "allow-list": True, @@ -52,7 +54,7 @@ def test_channel_db(self): o = server_tap.Options() o.parseOptions(["--channel-db=other.sqlite"]) - self.assertEqual(o, {"port": "tcp:4000", + self.assertEqual(o, {"port": PORT, "channel-db": "other.sqlite", "disallow-list": 0, "allow-list": True, @@ -67,7 +69,7 @@ def test_disallow_list(self): o = server_tap.Options() o.parseOptions(["--disallow-list"]) - self.assertEqual(o, {"port": "tcp:4000", + self.assertEqual(o, {"port": PORT, "channel-db": "relay.sqlite", "disallow-list": 0, "allow-list": False, @@ -82,7 +84,7 @@ def test_log_fd(self): o = server_tap.Options() o.parseOptions(["--log-fd=5"]) - self.assertEqual(o, {"port": "tcp:4000", + self.assertEqual(o, {"port": PORT, "channel-db": "relay.sqlite", "disallow-list": 0, "allow-list": True, @@ -126,7 +128,7 @@ def test_signal_error(self): o = server_tap.Options() o.parseOptions(["--signal-error=ohnoes"]) - self.assertEqual(o, {"port": "tcp:4000", + self.assertEqual(o, {"port": PORT, "channel-db": "relay.sqlite", "disallow-list": 0, "allow-list": True, @@ -141,7 +143,7 @@ def test_usage_db(self): o = server_tap.Options() o.parseOptions(["--usage-db=usage.sqlite"]) - self.assertEqual(o, {"port": "tcp:4000", + self.assertEqual(o, {"port": PORT, "channel-db": "relay.sqlite", "disallow-list": 0, "allow-list": True, @@ -156,7 +158,7 @@ def test_websocket_protocol_option_1(self): o = server_tap.Options() o.parseOptions(["--websocket-protocol-option", 'foo="bar"']) - self.assertEqual(o, {"port": "tcp:4000", + self.assertEqual(o, {"port": PORT, "channel-db": "relay.sqlite", "disallow-list": 0, "allow-list": True, @@ -173,7 +175,7 @@ o.parseOptions(["--websocket-protocol-option", 'foo="bar"', "--websocket-protocol-option", 'baz=[1,"buz"]', ]) - self.assertEqual(o, {"port": "tcp:4000", + self.assertEqual(o, {"port": PORT, "channel-db": "relay.sqlite", "disallow-list": 0, "allow-list": True, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/magic-wormhole-mailbox-server-0.3.1/src/wormhole_mailbox_server/test/test_stats.py new/magic-wormhole-mailbox-server-0.4.1/src/wormhole_mailbox_server/test/test_stats.py --- old/magic-wormhole-mailbox-server-0.3.1/src/wormhole_mailbox_server/test/test_stats.py 2018-06-24 03:44:57.000000000 +0200 +++ new/magic-wormhole-mailbox-server-0.4.1/src/wormhole_mailbox_server/test/test_stats.py 2018-10-17 01:12:05.000000000 +0200 @@ -62,6 +62,10 @@ [dict(app_id="appid", connect_time=400, side="side1", implementation="python", version="1.2.3")]) + def test_no_usage_db(self): + s, db, app = self.make(with_usage_db=False) + app.log_client_version(451, "side1", ("python", "1.2.3")) + class Nameplate(_Make, unittest.TestCase): def test_nameplate_happy(self): s, db, app = self.make() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/magic-wormhole-mailbox-server-0.3.1/tox.ini new/magic-wormhole-mailbox-server-0.4.1/tox.ini --- old/magic-wormhole-mailbox-server-0.3.1/tox.ini 2018-06-17 00:13:10.000000000 +0200 +++ new/magic-wormhole-mailbox-server-0.4.1/tox.ini 2019-09-11 07:53:40.000000000 +0200 @@ -4,7 +4,7 @@ # and then run "tox" from this directory. [tox] -envlist = {py27,py34,py35,py36,pypy} +envlist = {py27,py35,py36,py37,pypy} skip_missing_interpreters = True minversion = 2.4.0