Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-zeroconf for openSUSE:Factory
checked in at 2021-04-22 18:03:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-zeroconf (Old)
and /work/SRC/openSUSE:Factory/.python-zeroconf.new.12324 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-zeroconf"
Thu Apr 22 18:03:55 2021 rev:19 rq:887379 version:0.29.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-zeroconf/python-zeroconf.changes
2021-01-08 17:40:40.217065048 +0100
+++
/work/SRC/openSUSE:Factory/.python-zeroconf.new.12324/python-zeroconf.changes
2021-04-22 18:04:43.182575933 +0200
@@ -1,0 +2,7 @@
+Wed Apr 21 21:27:04 UTC 2021 - Dirk M??ller <[email protected]>
+
+- update to 0.29.0:
+ * A single socket is used for listening on responding when
`InterfaceChoice.Default` is chosen.
+ * Dropped Python 3.5 support
+
+-------------------------------------------------------------------
Old:
----
python-zeroconf-0.28.8.tar.gz
New:
----
python-zeroconf-0.29.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-zeroconf.spec ++++++
--- /var/tmp/diff_new_pack.VkUaLb/_old 2021-04-22 18:04:43.618576599 +0200
+++ /var/tmp/diff_new_pack.VkUaLb/_new 2021-04-22 18:04:43.622576604 +0200
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-zeroconf
-Version: 0.28.8
+Version: 0.29.0
Release: 0
Summary: Pure Python Multicast DNS Service Discovery Library
(Bonjour/Avahi compatible)
License: LGPL-2.0-only
++++++ python-zeroconf-0.28.8.tar.gz -> python-zeroconf-0.29.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-zeroconf-0.28.8/.github/workflows/ci.yml
new/python-zeroconf-0.29.0/.github/workflows/ci.yml
--- old/python-zeroconf-0.28.8/.github/workflows/ci.yml 1970-01-01
01:00:00.000000000 +0100
+++ new/python-zeroconf-0.29.0/.github/workflows/ci.yml 2021-03-25
00:15:34.000000000 +0100
@@ -0,0 +1,33 @@
+name: CI
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - "**"
+
+jobs:
+ build:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-latest, macos-latest, windows-latest]
+ python-version: [3.6, 3.7, 3.8, 3.9, pypy3]
+ 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: |
+ pip install --upgrade -r requirements-dev.txt
+ pip install .
+ - name: Run tests
+ run: make ci
+ env:
+ SKIP_IPV6: 1
+ - name: Report coverage to Codecov
+ uses: codecov/codecov-action@v1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-zeroconf-0.28.8/.travis.yml
new/python-zeroconf-0.29.0/.travis.yml
--- old/python-zeroconf-0.28.8/.travis.yml 2021-01-04 19:47:33.000000000
+0100
+++ new/python-zeroconf-0.29.0/.travis.yml 1970-01-01 01:00:00.000000000
+0100
@@ -1,23 +0,0 @@
-language: python
-python:
- - "3.5"
- - "3.6"
- - "3.7"
- - "3.8"
- - "3.9-dev"
- - "pypy3.5"
- - "pypy3"
-matrix:
- allow_failures:
- - python: "3.9-dev"
-install:
- - pip install --upgrade -r requirements-dev.txt
- # mypy can't be installed on pypy
- - if [[ "${TRAVIS_PYTHON_VERSION}" != "pypy"* ]] ; then pip install mypy ;
fi
- - if [[ "${TRAVIS_PYTHON_VERSION}" != *"3.5"* &&
"${TRAVIS_PYTHON_VERSION}" != "pypy"* ]] ; then
- pip install black ; fi
-script:
- # no IPv6 support in Travis :(
- - SKIP_IPV6=1 make ci
-after_success:
- - coveralls
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-zeroconf-0.28.8/Makefile
new/python-zeroconf-0.29.0/Makefile
--- old/python-zeroconf-0.28.8/Makefile 2021-01-04 19:47:33.000000000 +0100
+++ new/python-zeroconf-0.29.0/Makefile 2021-03-25 00:15:34.000000000 +0100
@@ -6,10 +6,7 @@
LINT_TARGETS:=flake8
ifneq ($(findstring PyPy,$(PYTHON_IMPLEMENTATION)),PyPy)
- LINT_TARGETS:=$(LINT_TARGETS) mypy
-endif
-ifeq ($(or $(findstring 3.5,$(PYTHON_VERSION)),$(findstring
PyPy,$(PYTHON_IMPLEMENTATION))),)
- LINT_TARGETS:=$(LINT_TARGETS) black_check
+ LINT_TARGETS:=$(LINT_TARGETS) mypy black_check
endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-zeroconf-0.28.8/README.rst
new/python-zeroconf-0.29.0/README.rst
--- old/python-zeroconf-0.28.8/README.rst 2021-01-04 19:47:33.000000000
+0100
+++ new/python-zeroconf-0.29.0/README.rst 2021-03-25 00:15:34.000000000
+0100
@@ -1,14 +1,14 @@
python-zeroconf
===============
-.. image:: https://travis-ci.org/jstasiak/python-zeroconf.svg?branch=master
- :target: https://travis-ci.org/jstasiak/python-zeroconf
-
+.. image:: https://github.com/jstasiak/python-zeroconf/workflows/CI/badge.svg
+ :target:
https://github.com/jstasiak/python-zeroconf?query=workflow%3ACI+branch%3Amaster
+
.. image:: https://img.shields.io/pypi/v/zeroconf.svg
:target: https://pypi.python.org/pypi/zeroconf
-.. image:: https://img.shields.io/coveralls/jstasiak/python-zeroconf.svg
- :target: https://coveralls.io/r/jstasiak/python-zeroconf
+.. image::
https://codecov.io/gh/jstasiak/python-zeroconf/branch/master/graph/badge.svg
+ :target: https://codecov.io/gh/jstasiak/python-zeroconf
`Documentation <https://python-zeroconf.readthedocs.io/en/latest/>`_.
@@ -44,7 +44,7 @@
Python compatibility
--------------------
-* CPython 3.5+
+* CPython 3.6+
* PyPy3 5.8+
Versioning
@@ -134,6 +134,16 @@
Changelog
=========
+0.29.0
+======
+
+* A single socket is used for listening on responding when
`InterfaceChoice.Default` is chosen.
+ Thanks to J. Nick Koston.
+
+Backwards incompatible:
+
+* Dropped Python 3.5 support
+
0.28.8
======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-zeroconf-0.28.8/docs/index.rst
new/python-zeroconf-0.29.0/docs/index.rst
--- old/python-zeroconf-0.28.8/docs/index.rst 2021-01-04 19:47:33.000000000
+0100
+++ new/python-zeroconf-0.29.0/docs/index.rst 2021-03-25 00:15:34.000000000
+0100
@@ -1,16 +1,14 @@
Welcome to python-zeroconf documentation!
=========================================
-.. image:: https://travis-ci.org/jstasiak/python-zeroconf.svg?branch=master
- :alt: Build status
- :target: https://travis-ci.org/jstasiak/python-zeroconf
+.. image:: https://github.com/jstasiak/python-zeroconf/workflows/CI/badge.svg
+ :target:
https://github.com/jstasiak/python-zeroconf?query=workflow%3ACI+branch%3Amaster
.. image:: https://img.shields.io/pypi/v/zeroconf.svg
:target: https://pypi.python.org/pypi/zeroconf
-
-.. image::
https://coveralls.io/repos/github/jstasiak/python-zeroconf/badge.svg?branch=master
- :alt: Covergage status
- :target: https://coveralls.io/github/jstasiak/python-zeroconf?branch=master
+
+.. image::
https://codecov.io/gh/jstasiak/python-zeroconf/branch/master/graph/badge.svg
+ :target: https://codecov.io/gh/jstasiak/python-zeroconf
GitHub (code repository, issues): https://github.com/jstasiak/python-zeroconf
@@ -28,4 +26,4 @@
api
-See `the project's README
<https://github.com/jstasiak/python-zeroconf/blob/master/README.md>`_ for more
information.
+See `the project's README
<https://github.com/jstasiak/python-zeroconf/blob/master/README.rst>`_ for more
information.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-zeroconf-0.28.8/requirements-dev.txt
new/python-zeroconf-0.29.0/requirements-dev.txt
--- old/python-zeroconf-0.28.8/requirements-dev.txt 2021-01-04
19:47:33.000000000 +0100
+++ new/python-zeroconf-0.29.0/requirements-dev.txt 2021-03-25
00:15:34.000000000 +0100
@@ -1,10 +1,12 @@
autopep8
+black;implementation_name=="cpython"
coveralls
coverage
# Version restricted because of https://github.com/PyCQA/pycodestyle/issues/741
flake8>=3.6.0
flake8-import-order
ifaddr
+mypy;implementation_name=="cpython"
# 0.11.0 breaks things https://github.com/PyCQA/pep8-naming/issues/152
pep8-naming!=0.6.0,!=0.11.0
pytest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-zeroconf-0.28.8/setup.cfg
new/python-zeroconf-0.29.0/setup.cfg
--- old/python-zeroconf-0.28.8/setup.cfg 2021-01-04 19:47:33.000000000
+0100
+++ new/python-zeroconf-0.29.0/setup.cfg 2021-03-25 00:15:34.000000000
+0100
@@ -6,7 +6,7 @@
[mypy]
ignore_missing_imports = true
-follow_imports = error
+follow_imports = ignore
check_untyped_defs = true
no_implicit_optional = true
warn_incomplete_stub = true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-zeroconf-0.28.8/zeroconf/__init__.py
new/python-zeroconf-0.29.0/zeroconf/__init__.py
--- old/python-zeroconf-0.28.8/zeroconf/__init__.py 2021-01-04
19:47:33.000000000 +0100
+++ new/python-zeroconf-0.29.0/zeroconf/__init__.py 2021-03-25
00:15:34.000000000 +0100
@@ -42,7 +42,7 @@
__author__ = 'Paul Scott-Murphy, William McBrine'
__maintainer__ = 'Jakub Stasiak <[email protected]>'
-__version__ = '0.28.8'
+__version__ = '0.29.0'
__license__ = 'LGPL'
@@ -880,7 +880,7 @@
break
t = length & 0xC0
if t == 0x00:
- result = ''.join((result, self.read_utf(off, length) + '.'))
+ result += self.read_utf(off, length) + '.'
off += length
elif t == 0xC0:
if next_ < 0:
@@ -2255,13 +2255,13 @@
def add_multicast_member(
listen_socket: socket.socket,
interface: Union[str, Tuple[Tuple[str, int, int], int]],
- apple_p2p: bool = False,
-) -> Optional[socket.socket]:
+) -> None:
# This is based on assumptions in normalize_interface_choice
is_v6 = isinstance(interface, tuple)
err_einval = {errno.EINVAL}
if sys.platform == 'win32':
- err_einval |= {errno.WSAEINVAL}
+ # No WSAEINVAL definition in typeshed
+ err_einval |= {cast(Any, errno).WSAEINVAL}
log.debug('Adding %r (socket %d) to multicast group', interface,
listen_socket.fileno())
try:
if is_v6:
@@ -2293,6 +2293,12 @@
else:
raise
+
+def new_respond_socket(
+ interface: Union[str, Tuple[Tuple[str, int, int], int]],
+ apple_p2p: bool = False,
+) -> Optional[socket.socket]:
+ is_v6 = isinstance(interface, tuple)
respond_socket = new_socket(
ip_version=(IPVersion.V6Only if is_v6 else IPVersion.V4Only),
apple_p2p=apple_p2p,
@@ -2300,6 +2306,7 @@
)
log.debug('Configuring socket %s with multicast interface %s',
respond_socket, interface)
if is_v6:
+ iface_bin = struct.pack('@I', cast(int, interface[1]))
respond_socket.setsockopt(_IPPROTO_IPV6, socket.IPV6_MULTICAST_IF,
iface_bin)
else:
respond_socket.setsockopt(
@@ -2321,11 +2328,19 @@
normalized_interfaces = normalize_interface_choice(interfaces, ip_version)
+ # If we are using InterfaceChoice.Default we can use
+ # a single socket to listen and respond.
+ if not unicast and interfaces is InterfaceChoice.Default:
+ for i in normalized_interfaces:
+ add_multicast_member(cast(socket.socket, listen_socket), i)
+ return listen_socket, [cast(socket.socket, listen_socket)]
+
respond_sockets = []
for i in normalized_interfaces:
if not unicast:
- respond_socket = add_multicast_member(cast(socket.socket,
listen_socket), i, apple_p2p=apple_p2p)
+ add_multicast_member(cast(socket.socket, listen_socket), i)
+ respond_socket = new_respond_socket(i, apple_p2p=apple_p2p)
else:
respond_socket = new_socket(
port=0,
@@ -2494,6 +2509,7 @@
interfaces, unicast, ip_version, apple_p2p=apple_p2p
)
log.debug('Listen socket %s, respond sockets %s', self._listen_socket,
self._respond_sockets)
+ self.multi_socket = unicast or interfaces is not
InterfaceChoice.Default
self.listeners = [] # type: List[RecordUpdateListener]
self.browsers = {} # type: Dict[ServiceListener, ServiceBrowser]
@@ -2513,8 +2529,9 @@
self.listener = Listener(self)
if not unicast:
self.engine.add_reader(self.listener, cast(socket.socket,
self._listen_socket))
- for s in self._respond_sockets:
- self.engine.add_reader(self.listener, s)
+ if self.multi_socket:
+ for s in self._respond_sockets:
+ self.engine.add_reader(self.listener, s)
self.reaper = Reaper(self)
self.debug = None # type: Optional[DNSOutgoing]
@@ -2978,8 +2995,9 @@
if not self.unicast:
self.engine.del_reader(cast(socket.socket,
self._listen_socket))
cast(socket.socket, self._listen_socket).close()
- for s in self._respond_sockets:
- self.engine.del_reader(s)
+ if self.multi_socket:
+ for s in self._respond_sockets:
+ self.engine.del_reader(s)
self.engine.join()
# shutdown the rest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-zeroconf-0.28.8/zeroconf/test.py
new/python-zeroconf-0.29.0/zeroconf/test.py
--- old/python-zeroconf-0.28.8/zeroconf/test.py 2021-01-04 19:47:33.000000000
+0100
+++ new/python-zeroconf-0.29.0/zeroconf/test.py 2021-03-25 00:15:34.000000000
+0100
@@ -7,6 +7,7 @@
import copy
import logging
import os
+import platform
import socket
import struct
import threading
@@ -17,6 +18,8 @@
from typing import Dict, Optional # noqa # used in type hints
from typing import cast
+import pytest
+
import zeroconf as r
from zeroconf import (
DNSHinfo,
@@ -1126,6 +1129,7 @@
class ListenerTest(unittest.TestCase):
+ @pytest.mark.skipif(platform.python_implementation() == 'PyPy',
reason="Flaky on PyPy")
def test_integration_with_listener_class(self):
service_added = Event()