Hello community, here is the log from the commit of package python-limnoria for openSUSE:Factory checked in at 2018-10-23 20:40:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-limnoria (Old) and /work/SRC/openSUSE:Factory/.python-limnoria.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-limnoria" Tue Oct 23 20:40:20 2018 rev:6 rq:643768 version:2018.09.10 Changes: -------- --- /work/SRC/openSUSE:Factory/python-limnoria/python-limnoria.changes 2018-09-03 10:34:24.048560809 +0200 +++ /work/SRC/openSUSE:Factory/.python-limnoria.new/python-limnoria.changes 2018-10-23 20:41:40.664452026 +0200 @@ -1,0 +2,6 @@ +Mon Oct 22 14:05:21 UTC 2018 - [email protected] + +- Update to version 2018-09-10: + * Fix Python 3.7 support. + +------------------------------------------------------------------- Old: ---- master-2018-06-25-2.tar.gz New: ---- master-2018-09-10.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-limnoria.spec ++++++ --- /var/tmp/diff_new_pack.yPFRIn/_old 2018-10-23 20:41:41.260451315 +0200 +++ /var/tmp/diff_new_pack.yPFRIn/_new 2018-10-23 20:41:41.264451310 +0200 @@ -18,9 +18,9 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define appname limnoria -%define srcver 2018-06-25-2 +%define srcver 2018-09-10 Name: python-limnoria -Version: 2018.06.25.2 +Version: 2018.09.10 Release: 0 Summary: A modified version of Supybot (an IRC bot and framework) License: BSD-3-Clause ++++++ master-2018-06-25-2.tar.gz -> master-2018-09-10.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Limnoria-master-2018-06-25-2/.travis.yml new/Limnoria-master-2018-09-10/.travis.yml --- old/Limnoria-master-2018-06-25-2/.travis.yml 2018-06-25 23:04:45.000000000 +0200 +++ new/Limnoria-master-2018-09-10/.travis.yml 2018-09-10 00:57:04.000000000 +0200 @@ -8,7 +8,7 @@ - "3.4" - "3.5" - "3.6" - - "nightly" + - "3.7-dev" - "pypy" - "pypy-5.3.1" # default pypy3 doesn't work, see https://bitbucket.org/pypy/pypy/issues/2129/local-variable-val-referenced-before env: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Limnoria-master-2018-06-25-2/README.md new/Limnoria-master-2018-09-10/README.md --- old/Limnoria-master-2018-06-25-2/README.md 2018-06-25 23:04:45.000000000 +0200 +++ new/Limnoria-master-2018-09-10/README.md 2018-09-10 00:57:04.000000000 +0200 @@ -5,8 +5,7 @@ for controlling access to commands, as well as more than 50 builtin plugins providing around 400 actual commands. -Limnoria is a project which continues development of Supybot (you can -call it a fork) by fixing bugs and adding features. +Limnoria is the project which continues development of Supybot since 2010. # Build status diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Limnoria-master-2018-06-25-2/plugins/Channel/locales/fr.po new/Limnoria-master-2018-09-10/plugins/Channel/locales/fr.po --- old/Limnoria-master-2018-06-25-2/plugins/Channel/locales/fr.po 2018-06-25 23:04:45.000000000 +0200 +++ new/Limnoria-master-2018-09-10/plugins/Channel/locales/fr.po 2018-09-10 00:57:04.000000000 +0200 @@ -337,7 +337,7 @@ " itself.\n" " " msgstr "" -"[<canal>] [--{exact,nick,user,host}] [<secondes>] [<raison>]\n" +"[<canal>] [--{exact,nick,user,host}] <nick> [<secondes>] [<raison>]\n" "\n" "Si vous avez la capacité #canal,op, ceci kickbannira <nick> pendant le " "nombre de <secondes> que vous avez spécifiées, ou, si vous n'avez rien " diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Limnoria-master-2018-06-25-2/plugins/Later/plugin.py new/Limnoria-master-2018-09-10/plugins/Later/plugin.py --- old/Limnoria-master-2018-06-25-2/plugins/Later/plugin.py 2018-06-25 23:04:45.000000000 +0200 +++ new/Limnoria-master-2018-09-10/plugins/Later/plugin.py 2018-09-10 00:57:04.000000000 +0200 @@ -30,6 +30,7 @@ import csv import time +import codecs import datetime import supybot.log as log @@ -71,7 +72,7 @@ def _openNotes(self): try: - fd = open(self.filename) + fd = codecs.open(self.filename, encoding='utf8') except EnvironmentError as e: self.log.warning('Couldn\'t open %s: %s', self.filename, e) return @@ -101,29 +102,11 @@ notes.append((at, whence, text)) except KeyError: self._notes[nick] = [(at, whence, text)] - if '?' in nick or '*' in nick and nick not in self.wildcards: - self.wildcards.append(nick) + if set('?*!@') & set(nick): + if nick not in self.wildcards: + self.wildcards.append(nick) self._flushNotes() - def _validateNick(self, irc, nick): - """Validate nick according to the IRC RFC 2812 spec. - - Reference: http://tools.ietf.org/rfcmarkup?doc=2812#section-2.3.1 - - Some irc clients' tab-completion feature appends 'address' characters - to nick, such as ':' or ','. We try correcting for that by trimming - a char off the end. - - If nick incorrigibly invalid, return False, otherwise, - return (possibly trimmed) nick. - """ - if not irc.isNick(nick): - if not irc.isNick(nick[:-1]): - return False - else: - return nick[:-1] - return nick - def _deleteExpired(self): expiry = self.registryValue('messageExpiry') curtime = time.time() @@ -163,12 +146,7 @@ if ircutils.strEqual(nick, irc.nick): irc.error(_('I can\'t send notes to myself.')) return - validnick = self._validateNick(irc, nick) - if validnick is False: - irc.error(_('%s is an invalid IRC nick. Please check your ' - 'input.' % nick)) - return - validnicks.append(validnick) + validnicks.append(nick) full_queues = [] for validnick in validnicks: try: @@ -181,7 +159,7 @@ full_queues)) else: irc.replySuccess() - tell = wrap(tell, [commalist('somethingWithoutSpaces'), 'text']) + tell = wrap(tell, [commalist(first('nick', 'hostmask')), 'text']) @internationalizeDocstring def notes(self, irc, msg, args, nick): @@ -249,7 +227,7 @@ # Let's try wildcards. removals = [] for wildcard in self.wildcards: - if ircutils.hostmaskPatternEqual(wildcard, msg.nick): + if ircutils.hostmaskPatternEqual(wildcard, msg.prefix): removals.append(wildcard) notes.extend(self._notes.pop(wildcard)) for removal in removals: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Limnoria-master-2018-06-25-2/plugins/Later/test.py new/Limnoria-master-2018-09-10/plugins/Later/test.py --- old/Limnoria-master-2018-06-25-2/plugins/Later/test.py 2018-06-25 23:04:45.000000000 +0200 +++ new/Limnoria-master-2018-09-10/plugins/Later/test.py 2018-09-10 00:57:04.000000000 +0200 @@ -57,10 +57,37 @@ conf.supybot.protocols.irc.strictRfc.setValue('True') self.assertError('later tell 1foo bar') self.assertError('later tell foo$moo zoob') - self.assertNotError('later tell foo: baz') - self.assertRegexp('later notes', 'foo\.') conf.supybot.protocols.irc.strictRfc.setValue(origconf) + def testWildcard(self): + self.assertNotError('later tell foo* stuff') + self.assertNotError('later tell bar,baz more stuff') + self.assertRegexp('later notes', 'bar.*foo') + testPrefix = 'foo!bar@baz' + self.irc.feedMsg(ircmsgs.privmsg(self.channel, 'something', + prefix=testPrefix)) + m = self.getMsg(' ') + self.assertEqual(str(m).strip(), + 'PRIVMSG #test :foo: Sent just now: <test> stuff') + + def testHostmask(self): + self.assertNotError('later tell foo*!*@baz stuff') + self.assertNotError('later tell bar,baz more stuff') + self.assertRegexp('later notes', 'bar.*foo') + + testPrefix = 'foo!bar@baz2' + self.irc.feedMsg(ircmsgs.privmsg(self.channel, 'something', + prefix=testPrefix)) + m = self.getMsg(' ') + self.assertEqual(m, None) + + testPrefix = 'foo!bar@baz' + self.irc.feedMsg(ircmsgs.privmsg(self.channel, 'something', + prefix=testPrefix)) + m = self.getMsg(' ') + self.assertEqual(str(m).strip(), + 'PRIVMSG #test :foo: Sent just now: <test> stuff') + def testNoteExpiry(self): cb = self.irc.getCallback('Later') # add a note 40 days in the past diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Limnoria-master-2018-06-25-2/plugins/Web/config.py new/Limnoria-master-2018-09-10/plugins/Web/config.py --- old/Limnoria-master-2018-06-25-2/plugins/Web/config.py 2018-06-25 23:04:45.000000000 +0200 +++ new/Limnoria-master-2018-09-10/plugins/Web/config.py 2018-09-10 00:57:04.000000000 +0200 @@ -63,7 +63,7 @@ by the snarfer will be the original one (posted on IRC) or the target one (got after following redirects, if any)."""))) conf.registerChannelValue(Web, 'snarferPrefix', - registry.String(_('Title: '), _("""Determines the string used at before + registry.String(_('Title:'), _("""Determines the string used at before a web page's title."""))) conf.registerChannelValue(Web, 'nonSnarfingRegexp', registry.Regexp(None, _("""Determines what URLs matching the given regexp diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Limnoria-master-2018-06-25-2/plugins/Web/plugin.py new/Limnoria-master-2018-09-10/plugins/Web/plugin.py --- old/Limnoria-master-2018-06-25-2/plugins/Web/plugin.py 2018-06-25 23:04:45.000000000 +0200 +++ new/Limnoria-master-2018-09-10/plugins/Web/plugin.py 2018-09-10 00:57:04.000000000 +0200 @@ -200,7 +200,7 @@ if self.registryValue('snarferShowTargetDomain', channel) else url) prefix = self.registryValue('snarferPrefix', channel) - s = prefix + title + s = "%s %s" % (prefix, title) if self.registryValue('snarferShowDomain', channel): s += format(_(' (at %s)'), domain) irc.reply(s, prefixNick=False) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Limnoria-master-2018-06-25-2/plugins/__init__.py new/Limnoria-master-2018-09-10/plugins/__init__.py --- old/Limnoria-master-2018-06-25-2/plugins/__init__.py 2018-06-25 23:04:45.000000000 +0200 +++ new/Limnoria-master-2018-09-10/plugins/__init__.py 2018-09-10 00:57:04.000000000 +0200 @@ -196,7 +196,6 @@ for channel, ids in self.channels.items(): for id_, value in ids.items(): yield (channel, id_) - raise StopIteration() def __len__(self): return sum([len(x) for x in self.channels]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Limnoria-master-2018-06-25-2/setup.py new/Limnoria-master-2018-09-10/setup.py --- old/Limnoria-master-2018-06-25-2/setup.py 2018-06-25 23:04:45.000000000 +0200 +++ new/Limnoria-master-2018-09-10/setup.py 2018-09-10 00:57:04.000000000 +0200 @@ -66,7 +66,7 @@ if os.path.isfile(VERSION_FILE): from src.version import version else: - version = 'installed on ' + strftime("%Y-%m-%dT%H-%M-%S", gmtime()) + version = 'installed on ' + time.strftime("%Y-%m-%dT%H-%M-%S", time.gmtime()) try: os.unlink(VERSION_FILE) except OSError: # Does not exist diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Limnoria-master-2018-06-25-2/src/drivers/Socket.py new/Limnoria-master-2018-09-10/src/drivers/Socket.py --- old/Limnoria-master-2018-06-25-2/src/drivers/Socket.py 2018-06-25 23:04:45.000000000 +0200 +++ new/Limnoria-master-2018-09-10/src/drivers/Socket.py 2018-09-10 00:57:04.000000000 +0200 @@ -39,9 +39,10 @@ import errno import select import socket +import sys try: - import ipaddress + import ipaddress # Python >= 3.3 or backported ipaddress except ImportError: # Python < 3.3 ipaddress = None @@ -284,9 +285,14 @@ self.conn.connect((address, port)) if network_config.ssl(): self.starttls() + # Suppress this warning for loopback IPs. + targetip = address + if sys.version_info[0] < 3: + # Backported Python 2 ipaddress demands unicode instead of str + targetip = targetip.decode('utf-8') elif (not network_config.requireStarttls()) and \ - (ipaddress is None or not ipaddress.ip_address(address).is_loopback): + (ipaddress is None or not ipaddress.ip_address(targetip).is_loopback): drivers.log.warning(('Connection to network %s ' 'does not use SSL/TLS, which makes it vulnerable to ' 'man-in-the-middle attacks and passive eavesdropping. '
