openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
August 2022
- 1 participants
- 2549 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libxml2 for openSUSE:Factory checked in at 2022-08-30 14:48:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libxml2 (Old)
and /work/SRC/openSUSE:Factory/.libxml2.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libxml2"
Tue Aug 30 14:48:30 2022 rev:111 rq:999935 version:2.10.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/libxml2/libxml2.changes 2022-06-29 16:01:46.636656169 +0200
+++ /work/SRC/openSUSE:Factory/.libxml2.new.2083/libxml2.changes 2022-08-30 14:48:36.827987808 +0200
@@ -1,0 +2,191 @@
+Thu Aug 25 15:05:51 UTC 2022 - Bj��rn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 2.10.1:
+ * Regressions: Fix xmlCtxtReadDoc with encoding
+ * Bug fixes: Fix HTML parser with threads and --without-legacy
+ * Build system:
+ + Fix build with Python 3.10
+ + cmake: Disable version script on macOS
+ + Remove Makefile rule to build testapi.c
+ * Documentation:
+ + Switch back to HTML output for API documentation
+ + Port doc/examples/index.py to Python 3
+ + Fix order of exports in libxml2-api.xml
+ + Remove libxml2-refs.xml
+
+-------------------------------------------------------------------
+Thu Aug 18 11:10:28 UTC 2022 - David Anes <david.anes(a)suse.com>
+
+- Update to 2.10.0:
+ * Security
+ + [CVE-2022-2309] Reset nsNr in xmlCtxtReset
+ + Reserve byte for NUL terminator and report errors consistently in xmlBuf and
+ xmlBuffer
+ + Fix missing NUL terminators in xmlBuf and xmlBuffer functions
+ + Fix integer overflow in xmlBufferDump()
+ + xmlBufAvail() should return length without including a byte for NUL
+ terminator
+ + Fix ownership of xmlNodePtr & xmlAttrPtr fields in xmlSetTreeDoc()
+ + Use xmlNewDocText in xmlXIncludeCopyRange
+ + Fix use-after-free bugs when calling xmlTextReaderClose() before
+ xmlFreeTextReader() on post-validating parser
+ + Use UPDATE_COMPAT() consistently in buf.c
+ + fix: xmlXPathParserContext could be double-delete in OOM case.
+
+ * Removals and deprecations
+ + Disable XPointer location support by default
+ + Remove outdated xml2Conf.sh
+ + Deprecate module init and cleanup functions
+ + Remove obsolete XML Software Autoupdate (XSA) file
+ + Remove DOCBparser
+ + Remove obsolete Python test framework
+ + Remove broken VxWorks support
+ + Remove broken Mac OS 9 support
+ + Remove broken bakefile support
+ + Remove broken Visual Studio 2010 support
+ + Remove broken Windows CE support
+ + Deprecate IDREF-related functions in valid.h
+ + Deprecate legacy functions
+ + Disable legacy support by default
+ + Deprecate all functions in nanoftp.h
+ + Disable FTP support by default
+ + Add XML_DEPRECATED macro
+ + Remove elfgcchack.h
+
+ * Regressions
+ + Skip incorrectly opened HTML comments
+ + Restore behavior of htmlDocContentDumpFormatOutput()
+
+ * Bug fixes
+ + Fix memory leak with invalid XSD
+ + Make XPath depth check work with recursive invocations
+ + Fix memory leak in xmlLoadEntityContent error path
+ + Avoid double-free if malloc fails in inputPush
+ + Properly fold whitespace around the QName value when validating an XSD
+ schema.
+ + Add whitespace folding for some atomic data types that it's missing on.
+ + Don't add IDs containing unexpanded entity references
+
+ * Improvements
+ + Avoid calling xmlSetTreeDoc
+ + Simplify xmlFreeNode
+ + Don't reset nsDef when changing node content
+ + Fix unintended fall-through in xmlNodeAddContentLen
+ + Remove unused xmlBuf functions
+ + Implement xpath1() XPointer scheme
+ + Add configuration flag for XPointer locations support
+ + Fix compiler warnings in Python code
+ + Mark more static data as `const`
+ + Make xmlStaticCopyNode non-recursive
+ + Clean up encoding switching code
+ + Simplify recursive pthread mutex
+ + Use non-recursive mutex in dict.c
+ + Fix parser progress checks
+ + Avoid arithmetic on freed pointers
+ + Improve buffer allocation scheme
+ + Remove unneeded #includes
+ + Add support for some non-standard escapes in regular expressions.
+ + htmlParseComment: handle abruptly-closed comments
+ + Add let variable tag support
+ + Add value-of tag support
+ + Remove useless call to xmlRelaxNGCleanupTypes
+ + Don't include ICU headers in public headers
+ + Update `xmlStrlen()` to use POSIX / ISO C `strlen()`
+ + Fix unused variable warnings with disabled features
+ + Only warn on invalid redeclarations of predefined entities
+ + Remove unneeded code in xmlreader.c
+ + Rework validation context flags
+
+ * Portability
+ + Use NAN/INFINITY if available to init XPath NaN/Inf
+ + Fix Python tests on macOS
+ + Fix xmlCleanupThreads on Windows
+ + Fix reinitialization of library on Windows
+ + Don't mix declarations and code in runtest.c
+ + Use portable python shebangs
+ + Use critical sections as mutex on Windows
+ + Don't set HAVE_WIN32_THREADS in win32config.h
+ + Use stdint.h with newer MSVC
+ + Remove cruft from win32config.h
+ + Remove isinf/isnan emulation in win32config.h
+ + Always fopen files with "rb"
+ + Remove __DJGPP__ checks
+ + Remove useless __CYGWIN__ checks
+
+ * Build system
+ + Don't autogenerate doc/examples/Makefile.am
+ + cmake: Install libxml.m4 on UNIX-like platforms
+ + cmake: Use symbol versioning on UNIX-like platforms
+ + Port genUnicode.py to Python 3
+ + Port gentest.py to Python 3
+ + cmake: Fix build without thread support
+ + cmake: Install documentation in CMAKE_INSTALL_DOCDIR
+ + cmake: Remove non needed files in docs dir
+ + configure: move XML_PRIVATE_LIBS after WIN32_EXTRA_LIBADD is set
+ + Move local Autoconf macros into m4 directory
+ + Use XML_PRIVATE_LIBS in libxml2_la_LIBADD
+ + Update libxml-2.0-uninstalled.pc.in
+ + Remove LIBS from XML_PRIVATE_LIBS
+ + Add WIN32_EXTRA_LIBADD to XML_PRIVATE_LIBS
+ + Don't overlink executables
+ + cmake: Adjust paths for UNIX or UNIX-like target systems
+ + build: Make use of variables in libxml's pkg-config file
+ + Avoid obsolescent `test -a` constructs
+ + Move AM_MAINTAINER_MODE to AM section
+ + configure.ac: make AM_SILENT_RULES([yes]) unconditional
+ + Streamline documentation installation
+ + Don't try to recreate COPYING symlink
+ + Detect libm using libtool's macros
+ + configure.ac: disable static libraries by default
+ + python/Makefile.am: nest python docs in $(docdir)
+ + python/Makefile.am: rely on global AM_INIT_AUTOMAKE
+ + Makefile.am: install examples more idiomatically
+ + configure.ac: remove useless AC_SUBST
+ + Respect `--sysconfdir` in source files
+ + Ignore configure backup file created by recent autoreconf too
+ + Only install *.html and *.c example files
+ + Remove --with-html-dir option
+ + Rework documentation build system
+ + Remove old website
+ + Use AM_PATH_PYTHON/PKG_CHECK_MODULES for python bindings
+ + Update genChRanges.py
+ + Update build_glob.py
+ + Remove ICONV_CONST test
+ + Remove obsolete AC_HEADER checks
+ + Don't check for standard C89 library functions
+ + Don't check for standard C89 headers
+ + Remove special configuration for certain maintainers
+
+ * Test suite, CI
+ + Disable network in API tests
+ + testapi: remove leading slash from "/missing.xml"
+ + Build Autotools CI tests out of source tree (VPATH)
+ + Add --with-minimum build to CI tests
+ + Fix warnings when testing --with-minimum build
+ + cmake: Run all tests when threads are disabled
+ + Also build CI tests with -Werror
+ + Move doc/examples tests to new test suite
+ + Simplify 'make check' targets
+ + Fix schemas and relaxng tests
+ + Remove unused result files
+ + Allow missing result files in runtest
+ + Move regexp tests to runtest
+ + Move SVG tests to runtest.c
+ + Move testModule to new test suite
+ + Move testThreads to new test suite
+ + Remove major parts of old test suite
+ + Make testchar return an error on failure
+ + Add CI job for static build
+ + python/tests: open() relative to test scripts
+ + Port some test scripts to Python 3
+
+ * Documentation
+ + Improve documentation of tree manipulation API
+ + Update xml2-config man page
+ + Consolidate man pages
+ + Rename xmlcatalog_man.xml
+ + Make examples a standalone HTML page
+ + Fix documentation in entities.c
+ + Add note about optimization flags
+
+-------------------------------------------------------------------
Old:
----
libxml2-2.9.14.tar.xz
New:
----
libxml2-2.10.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libxml2.spec ++++++
--- /var/tmp/diff_new_pack.QPmLCY/_old 2022-08-30 14:48:37.415989309 +0200
+++ /var/tmp/diff_new_pack.QPmLCY/_new 2022-08-30 14:48:37.415989309 +0200
@@ -25,12 +25,12 @@
%endif
Name: libxml2%{?dash}%{flavor}
-Version: 2.9.14
+Version: 2.10.1
Release: 0
License: MIT
Summary: A Library to Manipulate XML Files
URL: https://gitlab.gnome.org/GNOME/libxml2
-Source0: https://download.gnome.org/sources/%{name}/2.9/libxml2-%{version}.tar.xz
+Source0: https://download.gnome.org/sources/%{name}/2.10/libxml2-%{version}.tar.xz
Source1: baselibs.conf
#
### -- Upstream patches range from 0 to 999 -- ###
@@ -208,7 +208,7 @@
%files -n %{libname}
%{_libdir}/lib*.so.*
-%license COPYING* Copyright
+%license Copyright
%doc %dir %{_docdir}/%{base_name}
%doc %{_docdir}/%{base_name}/[ANRCT]*
@@ -226,16 +226,15 @@
%{_includedir}/libxml
%{_includedir}/libxml2
%{_libdir}/lib*.so
-%{_libdir}/*.sh
%{_libdir}/pkgconfig/*.pc
%{_libdir}/cmake
%{_mandir}/man1/xml2-config.1%{?ext_man}
-%{_mandir}/man3/libxml.3%{?ext_man}
%files -n %{base_name}-doc
%{_datadir}/gtk-doc/html/*
%doc %{_docdir}/%{base_name}/examples
-%doc %{_docdir}/%{base_name}/html
+%doc %{_docdir}/%{base_name}/tutorial
+%doc %{_docdir}/%{base_name}/*.html
# owning these directories prevents gtk-doc <-> libxml2 build loop:
%dir %{_datadir}/gtk-doc
%dir %{_datadir}/gtk-doc/html
@@ -246,7 +245,7 @@
%doc python/TODO
%doc python/libxml2class.txt
%doc doc/*.py
-%doc doc/python.html
+%doc python/README
%pycache_only %{python_sitearch}/__pycache__/*libxml2*
%{python_sitearch}/*libxml2*
%endif
++++++ libxml2-2.9.14.tar.xz -> libxml2-2.10.1.tar.xz ++++++
++++ 192679 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-astroid for openSUSE:Factory checked in at 2022-08-30 14:48:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-astroid (Old)
and /work/SRC/openSUSE:Factory/.python-astroid.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-astroid"
Tue Aug 30 14:48:29 2022 rev:36 rq:999930 version:2.12.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-astroid/python-astroid.changes 2022-01-17 22:33:54.898238529 +0100
+++ /work/SRC/openSUSE:Factory/.python-astroid.new.2083/python-astroid.changes 2022-08-30 14:48:35.583984634 +0200
@@ -1,0 +2,10 @@
+Sat Aug 27 10:10:36 UTC 2022 - Ben Greiner <code(a)bnavigator.de>
+
+- Update to 2.12.4
+ * Fixed a crash involving non-standard type comments such as
+ `# type: # any comment`.
+- Big changelog since 2.9.3, see file Changelog
+ * mostly crash fixes
+ * Python >= 3.7 is required
+
+-------------------------------------------------------------------
Old:
----
astroid-2.9.3-gh.tar.gz
New:
----
astroid-2.12.4-gh.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-astroid.spec ++++++
--- /var/tmp/diff_new_pack.E7zvcJ/_old 2022-08-30 14:48:36.279986409 +0200
+++ /var/tmp/diff_new_pack.E7zvcJ/_new 2022-08-30 14:48:36.283986420 +0200
@@ -16,31 +16,38 @@
#
-%define skip_python2 1
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-astroid
-Version: 2.9.3
+Version: 2.12.4
Release: 0
Summary: Representation of Python source as an AST for pylint
License: LGPL-2.1-or-later
URL: https://github.com/pycqa/astroid
Source: https://github.com/PyCQA/astroid/archive/refs/tags/v%{version}.tar.gz#/astr…
+BuildRequires: %{python_module base >= 3.7.2}
BuildRequires: %{python_module lazy-object-proxy >= 1.4}
+BuildRequires: %{python_module pip}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module typed-ast >= 1.4 if %python-base < 3.8}
-BuildRequires: %{python_module typing_extensions >= 3.10 if %python-base < 3.10}
-BuildRequires: %{python_module wrapt >= 1.11}
+# typing-extensions for python310 required for tests only: gh#PyCQA/astroid#1585
+BuildRequires: %{python_module typing-extensions >= 3.10}
+BuildRequires: %{python_module wheel}
+BuildRequires: %{python_module wrapt >= 1.11 if %python-base < 3.11}
+BuildRequires: %{python_module wrapt >= 1.14 if %python-base >= 3.11}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-lazy-object-proxy >= 1.4
-Requires: python-wrapt >= 1.11
BuildArch: noarch
%if 0%{?python_version_nodots} < 38
Requires: python-typed-ast >= 1.4
%endif
%if 0%{?python_version_nodots} < 310
-Requires: python-typing_extensions >= 3.10
+Requires: python-typing-extensions >= 3.10
+%endif
+%if 0%{?python_version_nodots} < 311
+Requires: python-wrapt >= 1.11
+%else
+Requires: python-wrapt >= 1.14
%endif
%python_subpackages
@@ -62,10 +69,10 @@
%autopatch -p1
%build
-%python_build
+%pyproject_wheel
%install
-%python_install
+%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
++++++ astroid-2.9.3-gh.tar.gz -> astroid-2.12.4-gh.tar.gz ++++++
++++ 25220 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pytest-timeout for openSUSE:Factory checked in at 2022-08-30 14:48:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pytest-timeout (Old)
and /work/SRC/openSUSE:Factory/.python-pytest-timeout.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pytest-timeout"
Tue Aug 30 14:48:28 2022 rev:12 rq:999928 version:2.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pytest-timeout/python-pytest-timeout.changes 2022-01-07 12:46:02.235831126 +0100
+++ /work/SRC/openSUSE:Factory/.python-pytest-timeout.new.2083/python-pytest-timeout.changes 2022-08-30 14:48:33.767980000 +0200
@@ -1,0 +2,10 @@
+Fri Aug 19 18:22:49 UTC 2022 - Ben Greiner <code(a)bnavigator.de>
+
+- Update to 2.1.0
+ * Get terminal width from shutil instead of deprecated py, thanks
+ Andrew Svetlov.
+ * Add an API for extending ``pytest-timeout`` functionality
+ with third-party plugins, thanks Andrew Svetlov.
+- Don't test with pytest-cov in Staging: Put Ring1 on coverage diet
+
+-------------------------------------------------------------------
Old:
----
pytest-timeout-2.0.2.tar.gz
New:
----
pytest-timeout-2.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pytest-timeout.spec ++++++
--- /var/tmp/diff_new_pack.WEvclO/_old 2022-08-30 14:48:34.291981337 +0200
+++ /var/tmp/diff_new_pack.WEvclO/_new 2022-08-30 14:48:34.295981346 +0200
@@ -16,22 +16,27 @@
#
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%{?!python_module:%define python_module() python3-%{**}}
%define skip_python2 1
+%bcond_with ringdisabled
Name: python-pytest-timeout
-Version: 2.0.2
+Version: 2.1.0
Release: 0
Summary: Pytest plugin to abort hanging tests
License: MIT
URL: https://github.com/pytest-dev/pytest-timeout/
Source: https://files.pythonhosted.org/packages/source/p/pytest-timeout/pytest-time…
-BuildRequires: %{python_module pexpect}
BuildRequires: %{python_module pytest >= 5.0.0}
-BuildRequires: %{python_module pytest-cov}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-pytest >= 5.0.0
+# SECTION test
+%if !%{with ringdisabled}
+BuildRequires: %{python_module pytest-cov}
+%endif
+BuildRequires: %{python_module pexpect}
+# /SECTION
BuildArch: noarch
%python_subpackages
@@ -42,15 +47,13 @@
integration server or simply if you don't know why the test suite
hangs.
-Note that while by default on POSIX systems py.test will continue to
+Note that while by default on POSIX systems pytest will continue to
execute the tests after a test has timed, out this is not always
possible. Often the only sure way to interrupt a hanging test is by
terminating the entire process. As this is a hard termination
(``os._exit()``) it will result in no teardown, JUnit XML output etc.
But the plugin will ensure you will have the debugging output on
stderr nevertheless, which is the most important part at this stage.
-See below for detailed information on the timeout methods and their
-side-effects.
%prep
%setup -q -n pytest-timeout-%{version}
@@ -63,14 +66,16 @@
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
-export PYTHONDONTWRITEBYTECODE=1
-%pytest
+%if %{with ringdisabled}
+donttest="or test_cov"
+%endif
+%pytest -k "not (donttestprefix $donttest)"
%files %{python_files}
%license LICENSE
%doc README.rst
-%{python_sitelib}/pytest_timeout-%{version}-py*.egg-info
+%{python_sitelib}/pytest_timeout-%{version}*-info
%{python_sitelib}/pytest_timeout.py*
-%pycache_only %{python_sitelib}/__pycache__/pytest_timeout*.py*
+%pycache_only %{python_sitelib}/__pycache__/pytest_timeout*.pyc
%changelog
++++++ pytest-timeout-2.0.2.tar.gz -> pytest-timeout-2.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-timeout-2.0.2/PKG-INFO new/pytest-timeout-2.1.0/PKG-INFO
--- old/pytest-timeout-2.0.2/PKG-INFO 2021-12-13 20:32:59.685103200 +0100
+++ new/pytest-timeout-2.1.0/PKG-INFO 2022-01-18 22:33:31.156017000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: pytest-timeout
-Version: 2.0.2
+Version: 2.1.0
Summary: pytest plugin to abort hanging tests
Home-page: https://github.com/pytest-dev/pytest-timeout
Author: Floris Bruynooghe
@@ -245,9 +245,99 @@
session using ``--pdb`` or similar.
+ Extending pytest-timeout with plugings
+ ======================================
+
+ ``pytest-timeout`` provides two hooks that can be used for extending the tool. These
+ hooks are used for for setting the timeout timer and cancelling it it the timeout is not
+ reached.
+
+ For example, ``pytest-asyncio`` can provide asyncio-specific code that generates better
+ traceback and points on timed out ``await`` instead of the running loop ieration.
+
+ See `pytest hooks documentation
+ <https://docs.pytest.org/en/latest/how-to/writing_hook_functions.html>`_ for more info
+ regarding to use custom hooks.
+
+ ``pytest_timeout_set_timer``
+ ----------------------------
+
+ .. code:: python
+
+ @pytest.hookspec(firstresult=True)
+ def pytest_timeout_set_timer(item, settings):
+ """Called at timeout setup.
+
+ 'item' is a pytest node to setup timeout for.
+
+ 'settings' is Settings namedtuple (described below).
+
+ Can be overridden by plugins for alternative timeout implementation strategies.
+ """
+
+
+ ``Settings``
+ ------------
+
+ When ``pytest_timeout_set_timer`` is called, ``settings`` argument is passed.
+
+ The argument has ``Settings`` namedtuple type with the following fields:
+
+ +-----------+-------+--------------------------------------------------------+
+ |Attribute | Index | Value |
+ +===========+=======+========================================================+
+ | timeout | 0 | timeout in seconds or ``None`` for no timeout |
+ +-----------+-------+--------------------------------------------------------+
+ | method | 1 | Method mechanism, |
+ | | | ``'signal'`` and ``'thread'`` are supported by default |
+ +-----------+-------+--------------------------------------------------------+
+ | func_only | 2 | Apply timeout to test function only if ``True``, |
+ | | | wrap all test function and its fixtures otherwise |
+ +-----------+-------+--------------------------------------------------------+
+
+ ``pytest_timeout_cancel_timer``
+ -------------------------------
+
+ .. code:: python
+
+ @pytest.hookspec(firstresult=True)
+ def pytest_timeout_cancel_timer(item):
+ """Called at timeout teardown.
+
+ 'item' is a pytest node which was used for timeout setup.
+
+ Can be overridden by plugins for alternative timeout implementation strategies.
+ """
+
+ ``is_debugging``
+ ----------------
+
+ When the timeout occurs, user can open the debugger session. In this case, the timeout
+ should be discarded. A custom hook can check this case by calling ``is_debugging()``
+ function:
+
+ .. code:: python
+
+ import pytest
+ import pytest_timeout
+
+ def on_timeout():
+ if pytest_timeout.is_debugging():
+ return
+ pytest.fail("+++ Timeout +++")
+
+
Changelog
=========
+ 2.1.0
+ -----
+
+ - Get terminal width from shutil instead of deprecated py, thanks
+ Andrew Svetlov.
+ - Add an API for extending ``pytest-timeout`` functionality
+ with third-party plugins, thanks Andrew Svetlov.
+
2.0.2
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-timeout-2.0.2/README.rst new/pytest-timeout-2.1.0/README.rst
--- old/pytest-timeout-2.0.2/README.rst 2021-12-13 20:27:58.000000000 +0100
+++ new/pytest-timeout-2.1.0/README.rst 2022-01-18 22:33:12.000000000 +0100
@@ -237,9 +237,99 @@
session using ``--pdb`` or similar.
+Extending pytest-timeout with plugings
+======================================
+
+``pytest-timeout`` provides two hooks that can be used for extending the tool. These
+hooks are used for for setting the timeout timer and cancelling it it the timeout is not
+reached.
+
+For example, ``pytest-asyncio`` can provide asyncio-specific code that generates better
+traceback and points on timed out ``await`` instead of the running loop ieration.
+
+See `pytest hooks documentation
+<https://docs.pytest.org/en/latest/how-to/writing_hook_functions.html>`_ for more info
+regarding to use custom hooks.
+
+``pytest_timeout_set_timer``
+----------------------------
+
+.. code:: python
+
+ @pytest.hookspec(firstresult=True)
+ def pytest_timeout_set_timer(item, settings):
+ """Called at timeout setup.
+
+ 'item' is a pytest node to setup timeout for.
+
+ 'settings' is Settings namedtuple (described below).
+
+ Can be overridden by plugins for alternative timeout implementation strategies.
+ """
+
+
+``Settings``
+------------
+
+When ``pytest_timeout_set_timer`` is called, ``settings`` argument is passed.
+
+The argument has ``Settings`` namedtuple type with the following fields:
+
++-----------+-------+--------------------------------------------------------+
+|Attribute | Index | Value |
++===========+=======+========================================================+
+| timeout | 0 | timeout in seconds or ``None`` for no timeout |
++-----------+-------+--------------------------------------------------------+
+| method | 1 | Method mechanism, |
+| | | ``'signal'`` and ``'thread'`` are supported by default |
++-----------+-------+--------------------------------------------------------+
+| func_only | 2 | Apply timeout to test function only if ``True``, |
+| | | wrap all test function and its fixtures otherwise |
++-----------+-------+--------------------------------------------------------+
+
+``pytest_timeout_cancel_timer``
+-------------------------------
+
+.. code:: python
+
+ @pytest.hookspec(firstresult=True)
+ def pytest_timeout_cancel_timer(item):
+ """Called at timeout teardown.
+
+ 'item' is a pytest node which was used for timeout setup.
+
+ Can be overridden by plugins for alternative timeout implementation strategies.
+ """
+
+``is_debugging``
+----------------
+
+When the timeout occurs, user can open the debugger session. In this case, the timeout
+should be discarded. A custom hook can check this case by calling ``is_debugging()``
+function:
+
+.. code:: python
+
+ import pytest
+ import pytest_timeout
+
+ def on_timeout():
+ if pytest_timeout.is_debugging():
+ return
+ pytest.fail("+++ Timeout +++")
+
+
Changelog
=========
+2.1.0
+-----
+
+- Get terminal width from shutil instead of deprecated py, thanks
+ Andrew Svetlov.
+- Add an API for extending ``pytest-timeout`` functionality
+ with third-party plugins, thanks Andrew Svetlov.
+
2.0.2
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-timeout-2.0.2/pytest_timeout.egg-info/PKG-INFO new/pytest-timeout-2.1.0/pytest_timeout.egg-info/PKG-INFO
--- old/pytest-timeout-2.0.2/pytest_timeout.egg-info/PKG-INFO 2021-12-13 20:32:59.000000000 +0100
+++ new/pytest-timeout-2.1.0/pytest_timeout.egg-info/PKG-INFO 2022-01-18 22:33:30.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: pytest-timeout
-Version: 2.0.2
+Version: 2.1.0
Summary: pytest plugin to abort hanging tests
Home-page: https://github.com/pytest-dev/pytest-timeout
Author: Floris Bruynooghe
@@ -245,9 +245,99 @@
session using ``--pdb`` or similar.
+ Extending pytest-timeout with plugings
+ ======================================
+
+ ``pytest-timeout`` provides two hooks that can be used for extending the tool. These
+ hooks are used for for setting the timeout timer and cancelling it it the timeout is not
+ reached.
+
+ For example, ``pytest-asyncio`` can provide asyncio-specific code that generates better
+ traceback and points on timed out ``await`` instead of the running loop ieration.
+
+ See `pytest hooks documentation
+ <https://docs.pytest.org/en/latest/how-to/writing_hook_functions.html>`_ for more info
+ regarding to use custom hooks.
+
+ ``pytest_timeout_set_timer``
+ ----------------------------
+
+ .. code:: python
+
+ @pytest.hookspec(firstresult=True)
+ def pytest_timeout_set_timer(item, settings):
+ """Called at timeout setup.
+
+ 'item' is a pytest node to setup timeout for.
+
+ 'settings' is Settings namedtuple (described below).
+
+ Can be overridden by plugins for alternative timeout implementation strategies.
+ """
+
+
+ ``Settings``
+ ------------
+
+ When ``pytest_timeout_set_timer`` is called, ``settings`` argument is passed.
+
+ The argument has ``Settings`` namedtuple type with the following fields:
+
+ +-----------+-------+--------------------------------------------------------+
+ |Attribute | Index | Value |
+ +===========+=======+========================================================+
+ | timeout | 0 | timeout in seconds or ``None`` for no timeout |
+ +-----------+-------+--------------------------------------------------------+
+ | method | 1 | Method mechanism, |
+ | | | ``'signal'`` and ``'thread'`` are supported by default |
+ +-----------+-------+--------------------------------------------------------+
+ | func_only | 2 | Apply timeout to test function only if ``True``, |
+ | | | wrap all test function and its fixtures otherwise |
+ +-----------+-------+--------------------------------------------------------+
+
+ ``pytest_timeout_cancel_timer``
+ -------------------------------
+
+ .. code:: python
+
+ @pytest.hookspec(firstresult=True)
+ def pytest_timeout_cancel_timer(item):
+ """Called at timeout teardown.
+
+ 'item' is a pytest node which was used for timeout setup.
+
+ Can be overridden by plugins for alternative timeout implementation strategies.
+ """
+
+ ``is_debugging``
+ ----------------
+
+ When the timeout occurs, user can open the debugger session. In this case, the timeout
+ should be discarded. A custom hook can check this case by calling ``is_debugging()``
+ function:
+
+ .. code:: python
+
+ import pytest
+ import pytest_timeout
+
+ def on_timeout():
+ if pytest_timeout.is_debugging():
+ return
+ pytest.fail("+++ Timeout +++")
+
+
Changelog
=========
+ 2.1.0
+ -----
+
+ - Get terminal width from shutil instead of deprecated py, thanks
+ Andrew Svetlov.
+ - Add an API for extending ``pytest-timeout`` functionality
+ with third-party plugins, thanks Andrew Svetlov.
+
2.0.2
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-timeout-2.0.2/pytest_timeout.py new/pytest-timeout-2.1.0/pytest_timeout.py
--- old/pytest-timeout-2.0.2/pytest_timeout.py 2021-11-02 21:30:06.000000000 +0100
+++ new/pytest-timeout-2.1.0/pytest_timeout.py 2022-01-18 20:39:59.000000000 +0100
@@ -8,16 +8,19 @@
"""
import inspect
import os
+import shutil
import signal
import sys
import threading
import traceback
from collections import namedtuple
-import py
import pytest
+__all__ = ("is_debugging", "Settings")
+
+
HAVE_SIGALRM = hasattr(signal, "SIGALRM")
if HAVE_SIGALRM:
DEFAULT_METHOD = "signal"
@@ -70,6 +73,35 @@
parser.addini("timeout_func_only", FUNC_ONLY_DESC, type="bool")
+class TimeoutHooks:
+ """Timeout specific hooks."""
+
+ @pytest.hookspec(firstresult=True)
+ def pytest_timeout_set_timer(item, settings):
+ """Called at timeout setup.
+
+ 'item' is a pytest node to setup timeout for.
+
+ Can be overridden by plugins for alternative timeout implementation strategies.
+
+ """
+
+ @pytest.hookspec(firstresult=True)
+ def pytest_timeout_cancel_timer(item):
+ """Called at timeout teardown.
+
+ 'item' is a pytest node which was used for timeout setup.
+
+ Can be overridden by plugins for alternative timeout implementation strategies.
+
+ """
+
+
+def pytest_addhooks(pluginmanager):
+ """Register timeout-specific hooks."""
+ pluginmanager.add_hookspecs(TimeoutHooks)
+
+
@pytest.hookimpl
def pytest_configure(config):
"""Register the marker so it shows up in --markers output."""
@@ -98,12 +130,14 @@
teardown, then this hook installs the timeout. Otherwise
pytest_runtest_call is used.
"""
- func_only = get_func_only_setting(item)
- if func_only is False:
- timeout_setup(item)
+ hooks = item.config.pluginmanager.hook
+ settings = _get_item_settings(item)
+ is_timeout = settings.timeout is not None and settings.timeout > 0
+ if is_timeout and settings.func_only is False:
+ hooks.pytest_timeout_set_timer(item=item, settings=settings)
yield
- if func_only is False:
- timeout_teardown(item)
+ if is_timeout and settings.func_only is False:
+ hooks.pytest_timeout_cancel_timer(item=item)
@pytest.hookimpl(hookwrapper=True)
@@ -113,12 +147,14 @@
If the timeout is set on only the test function this hook installs
the timeout, otherwise pytest_runtest_protocol is used.
"""
- func_only = get_func_only_setting(item)
- if func_only is True:
- timeout_setup(item)
+ hooks = item.config.pluginmanager.hook
+ settings = _get_item_settings(item)
+ is_timeout = settings.timeout is not None and settings.timeout > 0
+ if is_timeout and settings.func_only is True:
+ hooks.pytest_timeout_set_timer(item=item, settings=settings)
yield
- if func_only is True:
- timeout_teardown(item)
+ if is_timeout and settings.func_only is True:
+ hooks.pytest_timeout_cancel_timer(item=item)
@pytest.hookimpl(tryfirst=True)
@@ -138,7 +174,8 @@
@pytest.hookimpl(tryfirst=True)
def pytest_exception_interact(node):
"""Stop the timeout when pytest enters pdb in post-mortem mode."""
- timeout_teardown(node)
+ hooks = node.config.pluginmanager.hook
+ hooks.pytest_timeout_cancel_timer(item=node)
@pytest.hookimpl
@@ -187,13 +224,10 @@
SUPPRESS_TIMEOUT = False
-def timeout_setup(item):
+(a)pytest.hookimpl(trylast=True)
+def pytest_timeout_set_timer(item, settings):
"""Setup up a timeout trigger and handler."""
- params = get_params(item)
- if params.timeout is None or params.timeout <= 0:
- return
-
- timeout_method = params.method
+ timeout_method = settings.method
if (
timeout_method == "signal"
and threading.current_thread() is not threading.main_thread()
@@ -204,7 +238,7 @@
def handler(signum, frame):
__tracebackhide__ = True
- timeout_sigalrm(item, params.timeout)
+ timeout_sigalrm(item, settings.timeout)
def cancel():
signal.setitimer(signal.ITIMER_REAL, 0)
@@ -212,9 +246,11 @@
item.cancel_timeout = cancel
signal.signal(signal.SIGALRM, handler)
- signal.setitimer(signal.ITIMER_REAL, params.timeout)
+ signal.setitimer(signal.ITIMER_REAL, settings.timeout)
elif timeout_method == "thread":
- timer = threading.Timer(params.timeout, timeout_timer, (item, params.timeout))
+ timer = threading.Timer(
+ settings.timeout, timeout_timer, (item, settings.timeout)
+ )
timer.name = "%s %s" % (__name__, item.nodeid)
def cancel():
@@ -223,9 +259,11 @@
item.cancel_timeout = cancel
timer.start()
+ return True
-def timeout_teardown(item):
+(a)pytest.hookimpl(trylast=True)
+def pytest_timeout_cancel_timer(item):
"""Cancel the timeout trigger if it was set."""
# When skipping is raised from a pytest_runtest_setup function
# (as is the case when using the pytest.mark.skipif marker) we
@@ -234,6 +272,7 @@
cancel = getattr(item, "cancel_timeout", None)
if cancel:
cancel()
+ return True
def get_env_settings(config):
@@ -268,21 +307,7 @@
return Settings(timeout, method, func_only or False)
-def get_func_only_setting(item):
- """Return the func_only setting for an item."""
- func_only = None
- marker = item.get_closest_marker("timeout")
- if marker:
- settings = get_params(item, marker=marker)
- func_only = _validate_func_only(settings.func_only, "marker")
- if func_only is None:
- func_only = item.config._env_timeout_func_only
- if func_only is None:
- func_only = False
- return func_only
-
-
-def get_params(item, marker=None):
+def _get_item_settings(item, marker=None):
"""Return (timeout, method) for an item."""
timeout = method = func_only = None
if not marker:
@@ -298,6 +323,8 @@
method = item.config._env_timeout_method
if func_only is None:
func_only = item.config._env_timeout_func_only
+ if func_only is None:
+ func_only = False
return Settings(timeout, method, func_only)
@@ -444,7 +471,7 @@
"""
if stream is None:
stream = sys.stderr
- width = py.io.get_terminal_width()
+ width, height = shutil.get_terminal_size()
fill = int((width - len(title) - 2) / 2)
line = " ".join([sep * fill, title, sep * fill])
if len(line) < width:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-timeout-2.0.2/setup.py new/pytest-timeout-2.1.0/setup.py
--- old/pytest-timeout-2.0.2/setup.py 2021-12-13 20:28:29.000000000 +0100
+++ new/pytest-timeout-2.1.0/setup.py 2022-01-18 22:21:44.000000000 +0100
@@ -9,7 +9,7 @@
name="pytest-timeout",
description="pytest plugin to abort hanging tests",
long_description=long_description,
- version="2.0.2",
+ version="2.1.0",
author="Floris Bruynooghe",
author_email="flub(a)devork.be",
url="https://github.com/pytest-dev/pytest-timeout",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-timeout-2.0.2/test_pytest_timeout.py new/pytest-timeout-2.1.0/test_pytest_timeout.py
--- old/pytest-timeout-2.0.2/test_pytest_timeout.py 2021-11-02 21:30:06.000000000 +0100
+++ new/pytest-timeout-2.1.0/test_pytest_timeout.py 2022-01-18 20:39:59.000000000 +0100
@@ -506,3 +506,39 @@
result.stdout.fnmatch_lines(
["timeout: 1.0s", "timeout method:*", "timeout func_only:*"]
)
+
+
+def test_plugin_interface(testdir):
+ testdir.makeconftest(
+ """
+ import pytest
+
+ @pytest.mark.tryfirst
+ def pytest_timeout_set_timer(item, settings):
+ print()
+ print("pytest_timeout_set_timer")
+ return True
+
+ @pytest.mark.tryfirst
+ def pytest_timeout_cancel_timer(item):
+ print()
+ print("pytest_timeout_cancel_timer")
+ return True
+ """
+ )
+ testdir.makepyfile(
+ """
+ import pytest
+
+ @pytest.mark.timeout(1)
+ def test_foo():
+ pass
+ """
+ )
+ result = testdir.runpytest("-s")
+ result.stdout.fnmatch_lines(
+ [
+ "pytest_timeout_set_timer",
+ "pytest_timeout_cancel_timer",
+ ]
+ )
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-WSGIProxy2 for openSUSE:Factory checked in at 2022-08-30 14:48:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-WSGIProxy2 (Old)
and /work/SRC/openSUSE:Factory/.python-WSGIProxy2.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-WSGIProxy2"
Tue Aug 30 14:48:27 2022 rev:12 rq:999913 version:0.5.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-WSGIProxy2/python-WSGIProxy2.changes 2019-11-04 17:13:35.276721462 +0100
+++ /work/SRC/openSUSE:Factory/.python-WSGIProxy2.new.2083/python-WSGIProxy2.changes 2022-08-30 14:48:33.023978101 +0200
@@ -1,0 +2,10 @@
+Mon Aug 29 04:04:23 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam(a)suse.com>
+
+- Update to 0.5.1:
+ * remove stale dep on six
+ * use github actions as CI
+
+- Update to 0.5.0:
+ * Drop support for python3.6 and bellow
+
+-------------------------------------------------------------------
Old:
----
WSGIProxy2-0.4.6.tar.gz
New:
----
WSGIProxy2-0.5.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-WSGIProxy2.spec ++++++
--- /var/tmp/diff_new_pack.BFW1So/_old 2022-08-30 14:48:33.507979336 +0200
+++ /var/tmp/diff_new_pack.BFW1So/_new 2022-08-30 14:48:33.511979346 +0200
@@ -1,7 +1,7 @@
#
-# spec file for package python-WSGIProxy2
+# spec file
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -26,7 +26,7 @@
%bcond_with test
%endif
Name: python-WSGIProxy2%{psuffix}
-Version: 0.4.6
+Version: 0.5.1
Release: 0
Summary: WSGI Proxy Implementation
License: MIT
++++++ WSGIProxy2-0.4.6.tar.gz -> WSGIProxy2-0.5.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSGIProxy2-0.4.6/CHANGES.rst new/WSGIProxy2-0.5.1/CHANGES.rst
--- old/WSGIProxy2-0.4.6/CHANGES.rst 2019-02-22 13:08:28.000000000 +0100
+++ new/WSGIProxy2-0.5.1/CHANGES.rst 2021-08-26 13:51:17.000000000 +0200
@@ -1,6 +1,19 @@
Changes
=======
+0.5.1 (2021-08-26)
+------------------
+
+- remove stale dep on six
+
+- use github actions as CI
+
+
+0.5.0 (2021-08-18)
+------------------
+
+- Drop support for python3.6 and bellow
+
0.4.6 (2019-02-22)
------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSGIProxy2-0.4.6/MANIFEST.in new/WSGIProxy2-0.5.1/MANIFEST.in
--- old/WSGIProxy2-0.4.6/MANIFEST.in 2019-02-22 13:08:28.000000000 +0100
+++ new/WSGIProxy2-0.5.1/MANIFEST.in 2021-08-26 13:51:17.000000000 +0200
@@ -1,5 +1,7 @@
graft docs
prune docs/_build
+prune .github/
+prune .tox/
graft wsgiproxy
include *.rst
include *_fixt.py
@@ -9,4 +11,4 @@
include *.txt
include COPYING
include buildout.cfg
-include tox.ini
+include *.ini
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSGIProxy2-0.4.6/PKG-INFO new/WSGIProxy2-0.5.1/PKG-INFO
--- old/WSGIProxy2-0.4.6/PKG-INFO 2019-02-22 13:08:29.000000000 +0100
+++ new/WSGIProxy2-0.5.1/PKG-INFO 2021-08-26 13:51:18.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: WSGIProxy2
-Version: 0.4.6
+Version: 0.5.1
Summary: A WSGI Proxy with various http client backends
Home-page: https://github.com/gawel/WSGIProxy2/
Author: Gael Pasgrimaud
@@ -15,7 +15,7 @@
Install optionnal backends::
- $ pip install requests restkit urllib3
+ $ pip install requests urllib3
Usage
@@ -50,16 +50,23 @@
>>> proxy = HostProxy(application_url, client='requests')
- Use `restkit <http://pypi.python.org/pypi/restkit>`_. This client support
- request and response streaming but does not support python3 (will be fixed with
- the next release)::
-
- >>> proxy = HostProxy(application_url, client='restkit') # doctest: +SKIP
-
Changes
=======
+ 0.5.1 (2021-08-26)
+ ------------------
+
+ - remove stale dep on six
+
+ - use github actions as CI
+
+
+ 0.5.0 (2021-08-18)
+ ------------------
+
+ - Drop support for python3.6 and bellow
+
0.4.6 (2019-02-22)
------------------
@@ -129,7 +136,6 @@
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
-Classifier: Programming Language :: Python :: 2.6
-Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3.2
-Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSGIProxy2-0.4.6/README.rst new/WSGIProxy2-0.5.1/README.rst
--- old/WSGIProxy2-0.4.6/README.rst 2019-02-22 13:08:28.000000000 +0100
+++ new/WSGIProxy2-0.5.1/README.rst 2021-08-26 13:51:17.000000000 +0200
@@ -7,7 +7,7 @@
Install optionnal backends::
- $ pip install requests restkit urllib3
+ $ pip install requests urllib3
Usage
@@ -42,9 +42,3 @@
>>> proxy = HostProxy(application_url, client='requests')
-Use `restkit <http://pypi.python.org/pypi/restkit>`_. This client support
-request and response streaming but does not support python3 (will be fixed with
-the next release)::
-
- >>> proxy = HostProxy(application_url, client='restkit') # doctest: +SKIP
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSGIProxy2-0.4.6/WSGIProxy2.egg-info/PKG-INFO new/WSGIProxy2-0.5.1/WSGIProxy2.egg-info/PKG-INFO
--- old/WSGIProxy2-0.4.6/WSGIProxy2.egg-info/PKG-INFO 2019-02-22 13:08:28.000000000 +0100
+++ new/WSGIProxy2-0.5.1/WSGIProxy2.egg-info/PKG-INFO 2021-08-26 13:51:18.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: WSGIProxy2
-Version: 0.4.6
+Version: 0.5.1
Summary: A WSGI Proxy with various http client backends
Home-page: https://github.com/gawel/WSGIProxy2/
Author: Gael Pasgrimaud
@@ -15,7 +15,7 @@
Install optionnal backends::
- $ pip install requests restkit urllib3
+ $ pip install requests urllib3
Usage
@@ -50,16 +50,23 @@
>>> proxy = HostProxy(application_url, client='requests')
- Use `restkit <http://pypi.python.org/pypi/restkit>`_. This client support
- request and response streaming but does not support python3 (will be fixed with
- the next release)::
-
- >>> proxy = HostProxy(application_url, client='restkit') # doctest: +SKIP
-
Changes
=======
+ 0.5.1 (2021-08-26)
+ ------------------
+
+ - remove stale dep on six
+
+ - use github actions as CI
+
+
+ 0.5.0 (2021-08-18)
+ ------------------
+
+ - Drop support for python3.6 and bellow
+
0.4.6 (2019-02-22)
------------------
@@ -129,7 +136,6 @@
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
-Classifier: Programming Language :: Python :: 2.6
-Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3.2
-Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSGIProxy2-0.4.6/WSGIProxy2.egg-info/SOURCES.txt new/WSGIProxy2-0.5.1/WSGIProxy2.egg-info/SOURCES.txt
--- old/WSGIProxy2-0.4.6/WSGIProxy2.egg-info/SOURCES.txt 2019-02-22 13:08:28.000000000 +0100
+++ new/WSGIProxy2-0.5.1/WSGIProxy2.egg-info/SOURCES.txt 2021-08-26 13:51:18.000000000 +0200
@@ -5,6 +5,7 @@
README_fixt.py
bootstrap.py
buildout.cfg
+pytest.ini
requirements.txt
setup.cfg
setup.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSGIProxy2-0.4.6/WSGIProxy2.egg-info/requires.txt new/WSGIProxy2-0.5.1/WSGIProxy2.egg-info/requires.txt
--- old/WSGIProxy2-0.4.6/WSGIProxy2.egg-info/requires.txt 2019-02-22 13:08:28.000000000 +0100
+++ new/WSGIProxy2-0.5.1/WSGIProxy2.egg-info/requires.txt 2021-08-26 13:51:18.000000000 +0200
@@ -1,2 +1 @@
webob
-six
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSGIProxy2-0.4.6/buildout.cfg new/WSGIProxy2-0.5.1/buildout.cfg
--- old/WSGIProxy2-0.4.6/buildout.cfg 2019-02-22 13:08:28.000000000 +0100
+++ new/WSGIProxy2-0.5.1/buildout.cfg 2021-08-26 13:51:17.000000000 +0200
@@ -13,7 +13,6 @@
WSGIProxy2
urllib3
requests
- restkit
Sphinx
[tox]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSGIProxy2-0.4.6/docs/clients.rst new/WSGIProxy2-0.5.1/docs/clients.rst
--- old/WSGIProxy2-0.4.6/docs/clients.rst 2019-02-22 13:08:28.000000000 +0100
+++ new/WSGIProxy2-0.5.1/docs/clients.rst 2021-08-26 13:51:17.000000000 +0200
@@ -8,8 +8,6 @@
.. autoclass:: wsgiproxy.requests_client.HttpClient
-.. autoclass:: wsgiproxy.restkit_client.HttpClient
-
Use your own HTTP client::
>>> def client(uri, method, body, headers):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSGIProxy2-0.4.6/pytest.ini new/WSGIProxy2-0.5.1/pytest.ini
--- old/WSGIProxy2-0.4.6/pytest.ini 1970-01-01 01:00:00.000000000 +0100
+++ new/WSGIProxy2-0.5.1/pytest.ini 2021-08-26 13:51:17.000000000 +0200
@@ -0,0 +1,4 @@
+[pytest]
+filterwarnings =
+ ignore:.*Waitress.*:DeprecationWarning
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSGIProxy2-0.4.6/requirements.txt new/WSGIProxy2-0.5.1/requirements.txt
--- old/WSGIProxy2-0.4.6/requirements.txt 2019-02-22 13:08:28.000000000 +0100
+++ new/WSGIProxy2-0.5.1/requirements.txt 2021-08-26 13:51:17.000000000 +0200
@@ -1,3 +1,2 @@
urllib3
requests
-restkit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSGIProxy2-0.4.6/setup.py new/WSGIProxy2-0.5.1/setup.py
--- old/WSGIProxy2-0.4.6/setup.py 2019-02-22 13:08:28.000000000 +0100
+++ new/WSGIProxy2-0.5.1/setup.py 2021-08-26 13:51:17.000000000 +0200
@@ -1,15 +1,16 @@
from setuptools import setup, find_packages
-version = '0.4.6'
+version = '0.5.1'
def read(name):
try:
with open(name) as fd:
return fd.read()
- except:
+ except Exception:
return ''
+
setup(name='WSGIProxy2',
version=version,
long_description=read('README.rst') + '\n' + read('CHANGES.rst'),
@@ -17,10 +18,9 @@
classifiers=[
'License :: OSI Approved :: MIT License',
'Topic :: Internet :: WWW/HTTP :: WSGI :: Application',
- 'Programming Language :: Python :: 2.6',
- 'Programming Language :: Python :: 2.7',
- 'Programming Language :: Python :: 3.2',
- 'Programming Language :: Python :: 3.3',
+ 'Programming Language :: Python :: 3.7',
+ 'Programming Language :: Python :: 3.8',
+ 'Programming Language :: Python :: 3.9',
],
keywords='wsgi proxy',
author='Gael Pasgrimaud',
@@ -30,7 +30,7 @@
packages=find_packages(exclude=['ez_setup', 'README_fixt', 'tests']),
include_package_data=True,
zip_safe=False,
- install_requires=['webob', 'six'],
+ install_requires=['webob'],
entry_points="""
# -*- Entry points: -*-
""",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSGIProxy2-0.4.6/tox.ini new/WSGIProxy2-0.5.1/tox.ini
--- old/WSGIProxy2-0.4.6/tox.ini 2019-02-22 13:08:28.000000000 +0100
+++ new/WSGIProxy2-0.5.1/tox.ini 2021-08-26 13:51:17.000000000 +0200
@@ -1,5 +1,5 @@
[tox]
-envlist = py27,py34,py35
+envlist = py37,py38
[testenv]
changedir={toxinidir}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSGIProxy2-0.4.6/wsgiproxy/proxies.py new/WSGIProxy2-0.5.1/wsgiproxy/proxies.py
--- old/WSGIProxy2-0.4.6/wsgiproxy/proxies.py 2019-02-22 13:08:28.000000000 +0100
+++ new/WSGIProxy2-0.5.1/wsgiproxy/proxies.py 2021-08-26 13:51:17.000000000 +0200
@@ -1,12 +1,8 @@
# -*- coding: utf-8 -
-#
-# This file is part of restkit released under the MIT license.
-# See the NOTICE for more information.
from webob import exc
from webob.compat import PY3, url_quote
import logging
import socket
-import six
import re
try:
@@ -86,9 +82,13 @@
response = conn.getresponse()
status = '%s %s' % (response.status, response.reason)
length = response.getheader('content-length')
+ resp_headers = [
+ (k, v) for (k, v) in response.getheaders()
+ if k.lower() != 'transfer-encoding'
+ ]
body = response.read(int(length)) if length else response.read()
result = (status, response.getheader('location', None),
- response.getheaders(), [body])
+ resp_headers, [body])
conn.close()
return result
@@ -226,7 +226,7 @@
start_response(status, headers)
if method == "HEAD":
- return [six.b('')]
+ return [b'']
return app_iter
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSGIProxy2-0.4.6/wsgiproxy/requests_client.py new/WSGIProxy2-0.5.1/wsgiproxy/requests_client.py
--- old/WSGIProxy2-0.4.6/wsgiproxy/requests_client.py 2019-02-22 13:08:28.000000000 +0100
+++ new/WSGIProxy2-0.5.1/wsgiproxy/requests_client.py 2021-08-26 13:51:17.000000000 +0200
@@ -35,6 +35,8 @@
location = response.headers.get('location') or None
status = '%s %s' % (response.status_code, response.reason)
+ if 'transfer-encoding' in response.headers:
+ del response.headers['transfer-encoding']
headers = [(k.title(), v) for k, v in response.headers.items()]
return (status, location, headers,
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package xfsdump for openSUSE:Factory checked in at 2022-08-30 14:48:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xfsdump (Old)
and /work/SRC/openSUSE:Factory/.xfsdump.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xfsdump"
Tue Aug 30 14:48:26 2022 rev:35 rq:999904 version:3.1.11
Changes:
--------
--- /work/SRC/openSUSE:Factory/xfsdump/xfsdump.changes 2022-08-16 17:07:00.599746454 +0200
+++ /work/SRC/openSUSE:Factory/.xfsdump.new.2083/xfsdump.changes 2022-08-30 14:48:31.799974978 +0200
@@ -1,0 +2,10 @@
+Fri Aug 26 18:26:35 UTC 2022 - Anthony Iliopoulos <ailiop(a)suse.com>
+
+- Update to version 3.1.11
+ - Remove remaining slave words from documentation
+ - Remove DMAPI remaining code
+ - Fix FTBFS error
+ - Removed xfsdump-xfs_restore-remove-DMAPI-support.patch
+ - Updated keyring to reflect new upstream maintainer (cem(a)kernel.org)
+
+-------------------------------------------------------------------
@@ -19 +29 @@
-Fri Jan 31 20:38:08 UTC 2020 - Anthony Iliopoulos <ailiopoulos(a)suse.de>
+Fri Jan 31 20:38:08 UTC 2020 - Anthony Iliopoulos <ailiop(a)suse.de>
Old:
----
xfsdump-3.1.10.tar.sign
xfsdump-3.1.10.tar.xz
xfsdump-xfs_restore-remove-DMAPI-support.patch
New:
----
xfsdump-3.1.11.tar.sign
xfsdump-3.1.11.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xfsdump.spec ++++++
--- /var/tmp/diff_new_pack.mykb54/_old 2022-08-30 14:48:32.391976488 +0200
+++ /var/tmp/diff_new_pack.mykb54/_new 2022-08-30 14:48:32.395976498 +0200
@@ -17,7 +17,7 @@
Name: xfsdump
-Version: 3.1.10
+Version: 3.1.11
Release: 0
Summary: Administrative Utilities for the XFS File System
License: GPL-2.0-or-later
@@ -28,7 +28,6 @@
Source2: %{name}.keyring
Patch0: xfsdump-docdir.diff
Patch1: xfsdump-rename-READ-WRITE-macros-in-rmtlib.patch
-Patch2: xfsdump-xfs_restore-remove-DMAPI-support.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: e2fsprogs-devel
@@ -60,7 +59,6 @@
%setup -q
%patch0
%patch1 -p1
-%patch2 -p1
%build
rm -f configure
++++++ xfsdump-3.1.10.tar.xz -> xfsdump-3.1.11.tar.xz ++++++
++++ 4921 lines of diff (skipped)
++++++ xfsdump.keyring ++++++
Binary files /var/tmp/diff_new_pack.mykb54/_old and /var/tmp/diff_new_pack.mykb54/_new differ
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package memcached for openSUSE:Factory checked in at 2022-08-30 14:48:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/memcached (Old)
and /work/SRC/openSUSE:Factory/.memcached.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "memcached"
Tue Aug 30 14:48:25 2022 rev:56 rq:999899 version:1.6.16
Changes:
--------
--- /work/SRC/openSUSE:Factory/memcached/memcached.changes 2022-05-17 17:24:07.411154130 +0200
+++ /work/SRC/openSUSE:Factory/.memcached.new.2083/memcached.changes 2022-08-30 14:48:30.679972120 +0200
@@ -1,0 +2,26 @@
+Wed Aug 17 19:11:29 UTC 2022 - Dirk M��ller <dmueller(a)suse.com>
+
+- update to 1.6.16:
+ * proxy: add req:flag_token("F")
+ * proxy: mcp.response code and rline API
+ * proxy: add r:has_flag(), fix r:token() length
+ * proxy: mcp.request() improvements
+ * proxy: mcplib_request_token() doesn't delimit the final token in a request
+ * tls: Disable TLS re-negotiation from SSL context
+ * Fix undefined behavior and warning with clang
+ * proxy: fix the hashstring size for evcache ketama
+ * core: Fix FTBFS with GCC 12 on ppc64el
+ * proxy: fix race crash from io obj use-after-free
+ * proxy: fix mcp.await() when using extended args
+ * proxy: add missing errno.h include to proxy.h
+ * proxy: fix potential corruption on partial write
+ * proxy: rework backend buffer handling to fix protocol desync bug
+ * tests: skip whitespace on vendor/*
+ * tls: Add switch to opt-in to kernel TLS on OpenSSL 3.0.0+
+ * core: checks port number at start time
+ * Add a command to dump keys for memcached-tool
+ * proxy: 'proxyreqs' does not work unless 'proxyuser' also provided
+ * proxy: replace proxycmds stream with proxyreqs
+ * proxy: mcp.log_req* API interface
+
+-------------------------------------------------------------------
Old:
----
memcached-1.6.15.tar.gz
New:
----
memcached-1.6.16.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ memcached.spec ++++++
--- /var/tmp/diff_new_pack.nrZQhk/_old 2022-08-30 14:48:31.243973559 +0200
+++ /var/tmp/diff_new_pack.nrZQhk/_new 2022-08-30 14:48:31.247973569 +0200
@@ -28,7 +28,7 @@
%endif
Name: memcached
-Version: 1.6.15
+Version: 1.6.16
Release: 0
Summary: A high-performance, distributed memory object caching system
License: BSD-3-Clause
++++++ memcached-1.6.15.tar.gz -> memcached-1.6.16.tar.gz ++++++
++++ 2202 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package userspace-rcu for openSUSE:Factory checked in at 2022-08-30 14:48:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/userspace-rcu (Old)
and /work/SRC/openSUSE:Factory/.userspace-rcu.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "userspace-rcu"
Tue Aug 30 14:48:24 2022 rev:19 rq:999897 version:0.13.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/userspace-rcu/userspace-rcu.changes 2022-01-29 21:01:31.334899857 +0100
+++ /work/SRC/openSUSE:Factory/.userspace-rcu.new.2083/userspace-rcu.changes 2022-08-30 14:48:28.763967231 +0200
@@ -1,0 +2,19 @@
+Fri Aug 19 14:30:31 UTC 2022 - Alexei Sorokin <sor.alexei(a)meowr.ru>
+
+- Update to version 0.13.2:
+ * Revert "Fix: remove type constness in URCU_FORCE_CAST's C++
+ version".
+ * Fix: futex.h: include headers outside extern C.
+ * Fix: add missing unused attribute to _rcu_dereference.
+ * Fix: change method used by _rcu_dereference to strip type constness.
+ * Fix: remove type constness in URCU_FORCE_CAST's C++ version.
+ * Move extern "C" down in include/urcu/urcu-bp.h.
+ * Fix: ifdef linux specific cpu count compat.
+ * Set git-review branch to stable-0.13.
+ * Fix: sysconf(_SC_NPROCESSORS_CONF) can be less than max cpu id.
+ * Fix: revise obsolete command in README.md.
+ * Fix: workqueue: remove unused variable "ret".
+ * Fix: futex wait: handle spurious futex wakeups.
+ * Fix: Use %lu rather than %ld to print count.
+
+-------------------------------------------------------------------
Old:
----
userspace-rcu-0.13.1.tar.bz2
userspace-rcu-0.13.1.tar.bz2.asc
New:
----
userspace-rcu-0.13.2.tar.bz2
userspace-rcu-0.13.2.tar.bz2.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ userspace-rcu.spec ++++++
--- /var/tmp/diff_new_pack.SYZZUN/_old 2022-08-30 14:48:29.403968863 +0200
+++ /var/tmp/diff_new_pack.SYZZUN/_new 2022-08-30 14:48:29.403968863 +0200
@@ -20,7 +20,7 @@
%define soname 8
Name: userspace-rcu
-Version: 0.13.1
+Version: 0.13.2
Release: 0
Summary: Userspace Read-Copy-Update Library
License: GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT AND GPL-3.0-or-later
++++++ userspace-rcu-0.13.1.tar.bz2 -> userspace-rcu-0.13.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/ChangeLog new/userspace-rcu-0.13.2/ChangeLog
--- old/userspace-rcu-0.13.1/ChangeLog 2022-01-05 21:38:11.000000000 +0100
+++ new/userspace-rcu-0.13.2/ChangeLog 2022-08-18 21:36:34.000000000 +0200
@@ -1,3 +1,23 @@
+2022-08-18 Userspace RCU 0.13.2
+ * Revert "Fix: remove type constness in URCU_FORCE_CAST's C++ version"
+ * Fix: futex.h: include headers outside extern C
+ * Fix: add missing unused attribute to _rcu_dereference
+ * Fix: change method used by _rcu_dereference to strip type constness
+ * Fix: remove type constness in URCU_FORCE_CAST's C++ version
+ * Move extern "C" down in include/urcu/urcu-bp.h
+ * fix: ifdef linux specific cpu count compat
+ * Set git-review branch to stable-0.13
+ * fix: sysconf(_SC_NPROCESSORS_CONF) can be less than max cpu id
+ * Fix: revise obsolete command in README.md
+ * Fix: workqueue: remove unused variable "ret"
+ * Fix: urcu-qsbr: futex wait: handle spurious futex wakeups
+ * Fix: urcu: futex wait: handle spurious futex wakeups
+ * Fix: urcu-wait: futex wait: handle spurious futex wakeups
+ * Fix: defer_rcu: futex wait: handle spurious futex wakeups
+ * Fix: call_rcu: futex wait: handle spurious futex wakeups
+ * Fix: workqueue: futex wait: handle spurious futex wakeups
+ * Fix: Use %lu rather than %ld to print count
+
2022-01-05 Userspace RCU 0.13.1
* fix: properly detect 'cmpxchg' on x86-32
* fix: use urcu-tls compat with c++ compiler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/Makefile.in new/userspace-rcu-0.13.2/Makefile.in
--- old/userspace-rcu-0.13.1/Makefile.in 2022-01-05 21:38:34.000000000 +0100
+++ new/userspace-rcu-0.13.2/Makefile.in 2022-08-18 21:38:19.000000000 +0200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -246,6 +246,8 @@
GZIP_ENV = --best
DIST_ARCHIVES = $(distdir).tar.bz2
DIST_TARGETS = dist-bzip2
+# Exists only to be overridden by the user if desired.
+AM_DISTCHECK_DVI_TARGET = dvi
distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@@ -659,6 +661,10 @@
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__post_remove_distdir)
+dist-zstd: distdir
+ tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
+ $(am__post_remove_distdir)
+
dist-tarZ: distdir
@echo WARNING: "Support for distribution archives compressed with" \
"legacy program 'compress' is deprecated." >&2
@@ -701,6 +707,8 @@
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
+ *.tar.zst*) \
+ zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
esac
chmod -R a-w $(distdir)
chmod u+w $(distdir)
@@ -716,7 +724,7 @@
$(DISTCHECK_CONFIGURE_FLAGS) \
--srcdir=../.. --prefix="$$dc_install_base" \
&& $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
@@ -881,18 +889,19 @@
am--refresh check check-am clean clean-cscope clean-generic \
clean-libtool cscope cscopelist-am ctags ctags-am dist \
dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
- dist-xz dist-zip distcheck distclean distclean-generic \
- distclean-hdr distclean-libtool distclean-tags distcleancheck \
- distdir distuninstallcheck dvi dvi-am html html-am info \
- info-am install install-am install-data install-data-am \
- install-dist_docDATA install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
- uninstall-am uninstall-dist_docDATA
+ dist-xz dist-zip dist-zstd distcheck distclean \
+ distclean-generic distclean-hdr distclean-libtool \
+ distclean-tags distcleancheck distdir distuninstallcheck dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dist_docDATA install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags tags-am uninstall uninstall-am \
+ uninstall-dist_docDATA
.PRECIOUS: Makefile
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/README.md new/userspace-rcu-0.13.2/README.md
--- old/userspace-rcu-0.13.1/README.md 2022-01-05 21:38:11.000000000 +0100
+++ new/userspace-rcu-0.13.2/README.md 2022-08-18 21:35:29.000000000 +0200
@@ -423,14 +423,15 @@
------------
In addition to the usual `make check` target, Userspace RCU features
-`make regtest` and `make bench` targets:
+`make regtest`, `make short_bench` and `make long_bench` targets:
- `make check`: short tests, meant to be run when rebuilding or
porting Userspace RCU.
- `make regtest`: long (many hours) test, meant to be run when
modifying Userspace RCU or porting it to a new architecture or
operating system.
- - `make bench`: long (many hours) benchmarks.
+ - `make short_bench`: short benchmarks, 3 seconds per test.
+ - `make long_bench`: long (many hours) benchmarks, 30 seconds per test.
Known issues
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/aclocal.m4 new/userspace-rcu-0.13.2/aclocal.m4
--- old/userspace-rcu-0.13.1/aclocal.m4 2022-01-05 21:38:31.000000000 +0100
+++ new/userspace-rcu-0.13.2/aclocal.m4 2022-08-18 21:38:19.000000000 +0200
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.3 -*- Autoconf -*-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -20,7 +20,7 @@
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -35,7 +35,7 @@
[am__api_version='1.16'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.16.1], [],
+m4_if([$1], [1.16.3], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -51,14 +51,14 @@
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.16.1])dnl
+[AM_AUTOMAKE_VERSION([1.16.3])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -110,7 +110,7 @@
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -141,7 +141,7 @@
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -332,7 +332,7 @@
# Generate code to set up dependency tracking. -*- Autoconf -*-
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -371,7 +371,9 @@
done
if test $am_rc -ne 0; then
AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
- for automatic dependency tracking. Try re-running configure with the
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE="gmake" (or whatever is
+ necessary). You can also try re-running configure with the
'--disable-dependency-tracking' option to at least be able to build
the package (albeit without support for automatic dependency tracking).])
fi
@@ -398,7 +400,7 @@
# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -595,7 +597,7 @@
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -616,7 +618,7 @@
fi
AC_SUBST([install_sh])])
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+# Copyright (C) 2003-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -638,7 +640,7 @@
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -673,7 +675,7 @@
# Check to see how 'make' treats includes. -*- Autoconf -*-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -716,7 +718,7 @@
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -737,12 +739,7 @@
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([missing])dnl
if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
@@ -755,7 +752,7 @@
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -784,7 +781,7 @@
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -831,7 +828,7 @@
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -850,7 +847,7 @@
# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -931,7 +928,7 @@
rm -f conftest.file
])
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -991,7 +988,7 @@
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1019,7 +1016,7 @@
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006-2018 Free Software Foundation, Inc.
+# Copyright (C) 2006-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1038,7 +1035,7 @@
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004-2018 Free Software Foundation, Inc.
+# Copyright (C) 2004-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/configure new/userspace-rcu-0.13.2/configure
--- old/userspace-rcu-0.13.1/configure 2022-01-05 21:38:33.000000000 +0100
+++ new/userspace-rcu-0.13.2/configure 2022-08-18 21:38:20.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for userspace-rcu 0.13.1.
+# Generated by GNU Autoconf 2.69 for userspace-rcu 0.13.2.
#
# Report bugs to <mathieu dot desnoyers at efficios dot com>.
#
@@ -590,8 +590,8 @@
# Identity of this package.
PACKAGE_NAME='userspace-rcu'
PACKAGE_TARNAME='userspace-rcu'
-PACKAGE_VERSION='0.13.1'
-PACKAGE_STRING='userspace-rcu 0.13.1'
+PACKAGE_VERSION='0.13.2'
+PACKAGE_STRING='userspace-rcu 0.13.2'
PACKAGE_BUGREPORT='mathieu dot desnoyers at efficios dot com'
PACKAGE_URL='http://liburcu.org/'
@@ -1352,7 +1352,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures userspace-rcu 0.13.1 to adapt to many kinds of systems.
+\`configure' configures userspace-rcu 0.13.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1424,7 +1424,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of userspace-rcu 0.13.1:";;
+ short | recursive ) echo "Configuration of userspace-rcu 0.13.2:";;
esac
cat <<\_ACEOF
@@ -1553,7 +1553,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-userspace-rcu configure 0.13.1
+userspace-rcu configure 0.13.2
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2106,7 +2106,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by userspace-rcu $as_me 0.13.1, which was
+It was created by userspace-rcu $as_me 0.13.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2784,12 +2784,7 @@
am_aux_dir=`cd "$ac_aux_dir" && pwd`
if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
@@ -3094,7 +3089,7 @@
# Define the identity of the package.
PACKAGE='userspace-rcu'
- VERSION='0.13.1'
+ VERSION='0.13.2'
cat >>confdefs.h <<_ACEOF
@@ -15834,7 +15829,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by userspace-rcu $as_me 0.13.1, which was
+This file was extended by userspace-rcu $as_me 0.13.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -15901,7 +15896,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-userspace-rcu config.status 0.13.1
+userspace-rcu config.status 0.13.2
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -17073,7 +17068,9 @@
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "Something went wrong bootstrapping makefile fragments
- for automatic dependency tracking. Try re-running configure with the
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE=\"gmake\" (or whatever is
+ necessary). You can also try re-running configure with the
'--disable-dependency-tracking' option to at least be able to build
the package (albeit without support for automatic dependency tracking).
See \`config.log' for more details" "$LINENO" 5; }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/configure.ac new/userspace-rcu-0.13.2/configure.ac
--- old/userspace-rcu-0.13.1/configure.ac 2022-01-05 21:38:11.000000000 +0100
+++ new/userspace-rcu-0.13.2/configure.ac 2022-08-18 21:36:41.000000000 +0200
@@ -7,7 +7,7 @@
# Project version information
m4_define([urcu_version_major], [0])
m4_define([urcu_version_minor], [13])
-m4_define([urcu_version_patch], [1])
+m4_define([urcu_version_patch], [2])
m4_define([urcu_version_dev_stage], [])
m4_define([urcu_version], urcu_version_major[.]urcu_version_minor[.]urcu_version_patch[]urcu_version_dev_stage)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/doc/Makefile.in new/userspace-rcu-0.13.2/doc/Makefile.in
--- old/userspace-rcu-0.13.1/doc/Makefile.in 2022-01-05 21:38:34.000000000 +0100
+++ new/userspace-rcu-0.13.2/doc/Makefile.in 2022-08-18 21:38:19.000000000 +0200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/doc/examples/Makefile.in new/userspace-rcu-0.13.2/doc/examples/Makefile.in
--- old/userspace-rcu-0.13.1/doc/examples/Makefile.in 2022-01-05 21:38:34.000000000 +0100
+++ new/userspace-rcu-0.13.2/doc/examples/Makefile.in 2022-08-18 21:38:19.000000000 +0200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/extras/Makefile.in new/userspace-rcu-0.13.2/extras/Makefile.in
--- old/userspace-rcu-0.13.1/extras/Makefile.in 2022-01-05 21:38:34.000000000 +0100
+++ new/userspace-rcu-0.13.2/extras/Makefile.in 2022-08-18 21:38:19.000000000 +0200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/include/Makefile.in new/userspace-rcu-0.13.2/include/Makefile.in
--- old/userspace-rcu-0.13.1/include/Makefile.in 2022-01-05 21:38:34.000000000 +0100
+++ new/userspace-rcu-0.13.2/include/Makefile.in 2022-08-18 21:38:19.000000000 +0200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -160,8 +160,8 @@
"$(DESTDIR)$(includedir)"
HEADERS = $(include_HEADERS) $(nobase_include_HEADERS) \
$(nobase_nodist_include_HEADERS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
- $(LISP)config.h.in
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
+ config.h.in
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/include/urcu/futex.h new/userspace-rcu-0.13.2/include/urcu/futex.h
--- old/userspace-rcu-0.13.1/include/urcu/futex.h 2022-01-05 21:38:11.000000000 +0100
+++ new/userspace-rcu-0.13.2/include/urcu/futex.h 2022-08-18 20:49:13.000000000 +0200
@@ -30,6 +30,23 @@
#include <stdint.h>
#include <time.h>
+#if (defined(__linux__) && defined(__NR_futex))
+
+/* For backwards compat */
+#define CONFIG_RCU_HAVE_FUTEX 1
+
+#include <unistd.h>
+#include <errno.h>
+#include <urcu/compiler.h>
+#include <urcu/arch.h>
+
+#elif defined(__FreeBSD__)
+
+#include <sys/types.h>
+#include <sys/umtx.h>
+
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -58,14 +75,6 @@
#if (defined(__linux__) && defined(__NR_futex))
-/* For backwards compat */
-#define CONFIG_RCU_HAVE_FUTEX 1
-
-#include <unistd.h>
-#include <errno.h>
-#include <urcu/compiler.h>
-#include <urcu/arch.h>
-
static inline int futex(int32_t *uaddr, int op, int32_t val,
const struct timespec *timeout, int32_t *uaddr2, int32_t val3)
{
@@ -111,9 +120,6 @@
#elif defined(__FreeBSD__)
-#include <sys/types.h>
-#include <sys/umtx.h>
-
static inline int futex_async(int32_t *uaddr, int op, int32_t val,
const struct timespec *timeout,
int32_t *uaddr2 __attribute__((unused)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/include/urcu/static/pointer.h new/userspace-rcu-0.13.2/include/urcu/static/pointer.h
--- old/userspace-rcu-0.13.1/include/urcu/static/pointer.h 2022-01-05 21:04:04.000000000 +0100
+++ new/userspace-rcu-0.13.2/include/urcu/static/pointer.h 2022-08-18 20:47:11.000000000 +0200
@@ -93,12 +93,15 @@
/*
* If p is const (the pointer itself, not what it points to), using
* __typeof__(p) would declare a const variable, leading to
- * -Wincompatible-pointer-types errors. Using `+ 0` makes it an rvalue and
- * gets rid of the const-ness.
+ * -Wincompatible-pointer-types errors. Using the statement expression
+ * makes it an rvalue and gets rid of the const-ness.
*/
#ifdef __URCU_DEREFERENCE_USE_ATOMIC_CONSUME
# define _rcu_dereference(p) __extension__ ({ \
- __typeof__(p + 0) _________p1; \
+ __typeof__(__extension__ ({ \
+ __typeof__(p) __attribute__((unused)) _________p0 = { 0 }; \
+ _________p0; \
+ })) _________p1; \
__atomic_load(&(p), &_________p1, __ATOMIC_CONSUME); \
(_________p1); \
})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/include/urcu/urcu-bp.h new/userspace-rcu-0.13.2/include/urcu/urcu-bp.h
--- old/userspace-rcu-0.13.1/include/urcu/urcu-bp.h 2022-01-05 21:36:47.000000000 +0100
+++ new/userspace-rcu-0.13.2/include/urcu/urcu-bp.h 2022-08-18 20:47:11.000000000 +0200
@@ -37,10 +37,6 @@
#include <stdlib.h>
#include <pthread.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-
#include <urcu/map/urcu-bp.h>
/*
@@ -57,6 +53,10 @@
*/
#include <urcu/pointer.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#ifdef _LGPL_SOURCE
#include <urcu/static/urcu-bp.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/src/Makefile.am new/userspace-rcu-0.13.2/src/Makefile.am
--- old/userspace-rcu-0.13.1/src/Makefile.am 2022-01-05 21:38:11.000000000 +0100
+++ new/userspace-rcu-0.13.2/src/Makefile.am 2022-08-18 20:49:13.000000000 +0200
@@ -5,7 +5,7 @@
AM_LDFLAGS=-version-info $(URCU_LIBRARY_VERSION) $(LT_NO_UNDEFINED)
dist_noinst_HEADERS = urcu-die.h urcu-wait.h compat-getcpu.h \
- compat-rand.h urcu-utils.h
+ compat-rand.h urcu-utils.h compat-smp.h
COMPAT = compat_arch.c compat_futex.c
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/src/Makefile.in new/userspace-rcu-0.13.2/src/Makefile.in
--- old/userspace-rcu-0.13.1/src/Makefile.in 2022-01-05 21:38:34.000000000 +0100
+++ new/userspace-rcu-0.13.2/src/Makefile.in 2022-08-18 21:38:19.000000000 +0200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -450,7 +450,7 @@
# library that use the version-info
AM_LDFLAGS = -version-info $(URCU_LIBRARY_VERSION) $(LT_NO_UNDEFINED)
dist_noinst_HEADERS = urcu-die.h urcu-wait.h compat-getcpu.h \
- compat-rand.h urcu-utils.h
+ compat-rand.h urcu-utils.h compat-smp.h
COMPAT = compat_arch.c compat_futex.c
RCULFHASH = rculfhash.c rculfhash-mm-order.c rculfhash-mm-chunk.c \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/src/compat-smp.h new/userspace-rcu-0.13.2/src/compat-smp.h
--- old/userspace-rcu-0.13.1/src/compat-smp.h 1970-01-01 01:00:00.000000000 +0100
+++ new/userspace-rcu-0.13.2/src/compat-smp.h 2022-08-18 20:47:11.000000000 +0200
@@ -0,0 +1,275 @@
+/*
+ * SPDX-License-Identifier: LGPL-2.1-only
+ *
+ * Copyright (C) 2011-2012 Mathieu Desnoyers <mathieu.desnoyers(a)efficios.com>
+ * Copyright (C) 2019 Michael Jeanson <mjeanson(a)efficios.com>
+ */
+
+#include <assert.h>
+#include <ctype.h>
+#include <dirent.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <urcu/compiler.h>
+
+#define URCU_CPUMASK_SIZE 4096
+
+#if defined(HAVE_SYSCONF)
+static inline int get_num_possible_cpus_sysconf(void)
+{
+ return sysconf(_SC_NPROCESSORS_CONF);
+}
+#else
+/*
+ * On platforms without sysconf(), always return -1.
+ */
+static inline int get_num_possible_cpus_sysconf(void)
+{
+ return -1;
+}
+#endif
+
+#ifdef __linux__
+/*
+ * Get the highest CPU id from sysfs.
+ *
+ * Iterate on all the folders in "/sys/devices/system/cpu" that start with
+ * "cpu" followed by an integer, keep the highest CPU id encountered during
+ * this iteration and add 1 to get a number of CPUs.
+ *
+ * Returns the highest CPU id, or -1 on error.
+ */
+static inline int _get_max_cpuid_from_sysfs(const char *path)
+{
+ long max_cpuid = -1;
+
+ DIR *cpudir;
+ struct dirent *entry;
+
+ assert(path);
+
+ cpudir = opendir(path);
+ if (cpudir == NULL)
+ goto end;
+
+ /*
+ * Iterate on all directories named "cpu" followed by an integer.
+ */
+ while ((entry = readdir(cpudir))) {
+ if (entry->d_type == DT_DIR &&
+ strncmp(entry->d_name, "cpu", 3) == 0) {
+
+ char *endptr;
+ long cpu_id;
+
+ cpu_id = strtol(entry->d_name + 3, &endptr, 10);
+ if ((cpu_id < LONG_MAX) && (endptr != entry->d_name + 3)
+ && (*endptr == '\0')) {
+ if (cpu_id > max_cpuid)
+ max_cpuid = cpu_id;
+ }
+ }
+ }
+
+ if (closedir(cpudir))
+ perror("closedir");
+
+ /*
+ * If the max CPU id is out of bound, set it to -1 so it results in a
+ * CPU num of 0.
+ */
+ if (max_cpuid < 0 || max_cpuid > INT_MAX)
+ max_cpuid = -1;
+
+end:
+ return max_cpuid;
+}
+
+static inline int get_max_cpuid_from_sysfs(void)
+{
+ return _get_max_cpuid_from_sysfs("/sys/devices/system/cpu");
+}
+
+
+/*
+ * As a fallback to parsing the CPU mask in "/sys/devices/system/cpu/possible",
+ * iterate on all the folders in "/sys/devices/system/cpu" that start with
+ * "cpu" followed by an integer, keep the highest CPU id encountered during
+ * this iteration and add 1 to get a number of CPUs.
+ *
+ * Then get the value from sysconf(_SC_NPROCESSORS_CONF) as a fallback and
+ * return the highest one.
+ *
+ * On Linux, using the value from sysconf can be unreliable since the way it
+ * counts CPUs varies between C libraries and even between versions of the same
+ * library. If we used it directly, getcpu() could return a value greater than
+ * this sysconf, in which case the arrays indexed by processor would overflow.
+ *
+ * As another example, the MUSL libc implementation of the _SC_NPROCESSORS_CONF
+ * sysconf does not return the number of configured CPUs in the system but
+ * relies on the cpu affinity mask of the current task.
+ *
+ * Returns 0 or less on error.
+ */
+static inline int get_num_possible_cpus_fallback(void)
+{
+ /*
+ * Get the sysconf value as a last resort. Keep the highest number.
+ */
+ return caa_max(get_num_possible_cpus_sysconf(), get_max_cpuid_from_sysfs() + 1);
+}
+
+/*
+ * Get a CPU mask string from sysfs.
+ *
+ * buf: the buffer where the mask will be read.
+ * max_bytes: the maximum number of bytes to write in the buffer.
+ * path: file path to read the mask from.
+ *
+ * Returns the number of bytes read or -1 on error.
+ */
+static inline int get_cpu_mask_from_sysfs(char *buf, size_t max_bytes, const char *path)
+{
+ ssize_t bytes_read = 0;
+ size_t total_bytes_read = 0;
+ int fd = -1, ret = -1;
+
+ assert(path);
+
+ if (buf == NULL)
+ goto end;
+
+ fd = open(path, O_RDONLY);
+ if (fd < 0)
+ goto end;
+
+ do {
+ bytes_read = read(fd, buf + total_bytes_read,
+ max_bytes - total_bytes_read);
+
+ if (bytes_read < 0) {
+ if (errno == EINTR) {
+ continue; /* retry operation */
+ } else {
+ goto end;
+ }
+ }
+
+ total_bytes_read += bytes_read;
+ assert(total_bytes_read <= max_bytes);
+ } while (max_bytes > total_bytes_read && bytes_read > 0);
+
+ /*
+ * Make sure the mask read is a null terminated string.
+ */
+ if (total_bytes_read < max_bytes)
+ buf[total_bytes_read] = '\0';
+ else
+ buf[max_bytes - 1] = '\0';
+
+ if (total_bytes_read > INT_MAX)
+ goto end;
+
+ ret = (int) total_bytes_read;
+
+end:
+ if (fd >= 0 && close(fd) < 0)
+ perror("close");
+
+ return ret;
+}
+
+/*
+ * Get the CPU possible mask string from sysfs.
+ *
+ * buf: the buffer where the mask will be read.
+ * max_bytes: the maximum number of bytes to write in the buffer.
+ *
+ * Returns the number of bytes read or -1 on error.
+ */
+static inline int get_possible_cpu_mask_from_sysfs(char *buf, size_t max_bytes)
+{
+ return get_cpu_mask_from_sysfs(buf, max_bytes,
+ "/sys/devices/system/cpu/possible");
+}
+
+/*
+ * Get the highest CPU id from the possible CPU mask.
+ *
+ * pmask: the mask to parse.
+ * len: the len of the mask excluding '\0'.
+ *
+ * Returns the highest CPU id from the mask or -1 on error.
+ */
+static inline int get_max_cpuid_from_mask(const char *pmask, size_t len)
+{
+ ssize_t i;
+ unsigned long cpu_index;
+ char *endptr;
+
+ /* We need at least one char to read */
+ if (len < 1)
+ goto error;
+
+ /* Start from the end to read the last CPU index. */
+ for (i = len - 1; i > 0; i--) {
+ /* Break when we hit the first separator. */
+ if ((pmask[i] == ',') || (pmask[i] == '-')) {
+ i++;
+ break;
+ }
+ }
+
+ cpu_index = strtoul(&pmask[i], &endptr, 10);
+
+ if ((&pmask[i] != endptr) && (cpu_index < INT_MAX))
+ return (int) cpu_index;
+
+error:
+ return -1;
+}
+
+/*
+ * On Linux try sysfs first and fallback to sysconf.
+ */
+static inline int get_possible_cpus_array_len(void)
+{
+ int ret;
+ char buf[URCU_CPUMASK_SIZE];
+
+ /* Get the possible cpu mask from sysfs, fallback to sysconf. */
+ ret = get_possible_cpu_mask_from_sysfs((char *) &buf, URCU_CPUMASK_SIZE);
+ if (ret <= 0)
+ goto fallback;
+
+ /* Parse the possible cpu mask, on failure fallback to sysconf. */
+ ret = get_max_cpuid_from_mask((char *) &buf, ret);
+ if (ret >= 0) {
+ /* Add 1 to convert from max cpuid to an array len. */
+ ret++;
+ goto end;
+ }
+
+fallback:
+ /* Fallback to sysconf. */
+ ret = get_num_possible_cpus_fallback();
+
+end:
+ return ret;
+}
+#else
+/*
+ * On other platforms, only use sysconf.
+ */
+static inline int get_possible_cpus_array_len(void)
+{
+ return get_num_possible_cpus_sysconf();
+}
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/src/rculfhash.c new/userspace-rcu-0.13.2/src/rculfhash.c
--- old/userspace-rcu-0.13.1/src/rculfhash.c 2022-01-05 21:38:11.000000000 +0100
+++ new/userspace-rcu-0.13.2/src/rculfhash.c 2022-08-18 21:35:29.000000000 +0200
@@ -281,6 +281,7 @@
#include "workqueue.h"
#include "urcu-die.h"
#include "urcu-utils.h"
+#include "compat-smp.h"
/*
* Split-counters lazily update the global counter each 1024
@@ -645,12 +646,11 @@
static long split_count_mask = -1;
static int split_count_order = -1;
-#if defined(HAVE_SYSCONF)
static void ht_init_nr_cpus_mask(void)
{
long maxcpus;
- maxcpus = sysconf(_SC_NPROCESSORS_CONF);
+ maxcpus = get_possible_cpus_array_len();
if (maxcpus <= 0) {
nr_cpus_mask = -2;
return;
@@ -662,12 +662,6 @@
maxcpus = 1UL << cds_lfht_get_count_order_ulong(maxcpus);
nr_cpus_mask = maxcpus - 1;
}
-#else /* #if defined(HAVE_SYSCONF) */
-static void ht_init_nr_cpus_mask(void)
-{
- nr_cpus_mask = -2;
-}
-#endif /* #else #if defined(HAVE_SYSCONF) */
static
void alloc_split_items_count(struct cds_lfht *ht)
@@ -763,7 +757,7 @@
if ((count >> CHAIN_LEN_RESIZE_THRESHOLD) >= size)
return;
- dbg_printf("del set global %ld\n", count);
+ dbg_printf("del set global %lu\n", count);
/*
* Don't shrink table if the number of nodes is below a
* certain threshold.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/src/urcu-call-rcu-impl.h new/userspace-rcu-0.13.2/src/urcu-call-rcu-impl.h
--- old/userspace-rcu-0.13.1/src/urcu-call-rcu-impl.h 2022-01-05 21:38:11.000000000 +0100
+++ new/userspace-rcu-0.13.2/src/urcu-call-rcu-impl.h 2022-08-18 21:35:29.000000000 +0200
@@ -44,6 +44,7 @@
#include <urcu/ref.h>
#include "urcu-die.h"
#include "urcu-utils.h"
+#include "compat-smp.h"
#define SET_AFFINITY_CHECK_PERIOD (1U << 8) /* 256 */
#define SET_AFFINITY_CHECK_PERIOD_MASK (SET_AFFINITY_CHECK_PERIOD - 1)
@@ -120,11 +121,11 @@
*/
static struct call_rcu_data **per_cpu_call_rcu_data;
-static long maxcpus;
+static long cpus_array_len;
-static void maxcpus_reset(void)
+static void cpus_array_len_reset(void)
{
- maxcpus = 0;
+ cpus_array_len = 0;
}
/* Allocate the array if it has not already been allocated. */
@@ -134,15 +135,15 @@
struct call_rcu_data **p;
static int warned = 0;
- if (maxcpus != 0)
+ if (cpus_array_len != 0)
return;
- maxcpus = sysconf(_SC_NPROCESSORS_CONF);
- if (maxcpus <= 0) {
+ cpus_array_len = get_possible_cpus_array_len();
+ if (cpus_array_len <= 0) {
return;
}
- p = malloc(maxcpus * sizeof(*per_cpu_call_rcu_data));
+ p = malloc(cpus_array_len * sizeof(*per_cpu_call_rcu_data));
if (p != NULL) {
- memset(p, '\0', maxcpus * sizeof(*per_cpu_call_rcu_data));
+ memset(p, '\0', cpus_array_len * sizeof(*per_cpu_call_rcu_data));
rcu_set_pointer(&per_cpu_call_rcu_data, p);
} else {
if (!warned) {
@@ -160,9 +161,9 @@
* constant.
*/
static struct call_rcu_data **per_cpu_call_rcu_data = NULL;
-static const long maxcpus = -1;
+static const long cpus_array_len = -1;
-static void maxcpus_reset(void)
+static void cpus_array_len_reset(void)
{
}
@@ -240,17 +241,25 @@
{
/* Read call_rcu list before read futex */
cmm_smp_mb();
- if (uatomic_read(&crdp->futex) != -1)
- return;
- while (futex_async(&crdp->futex, FUTEX_WAIT, -1,
- NULL, NULL, 0)) {
+ while (uatomic_read(&crdp->futex) == -1) {
+ if (!futex_async(&crdp->futex, FUTEX_WAIT, -1, NULL, NULL, 0)) {
+ /*
+ * Prior queued wakeups queued by unrelated code
+ * using the same address can cause futex wait to
+ * return 0 even through the futex value is still
+ * -1 (spurious wakeups). Check the value again
+ * in user-space to validate whether it really
+ * differs from -1.
+ */
+ continue;
+ }
switch (errno) {
- case EWOULDBLOCK:
+ case EAGAIN:
/* Value already changed. */
return;
case EINTR:
/* Retry if interrupted by signal. */
- break; /* Get out of switch. */
+ break; /* Get out of switch. Check again. */
default:
/* Unexpected error. */
urcu_die(errno);
@@ -274,17 +283,25 @@
{
/* Read completion barrier count before read futex */
cmm_smp_mb();
- if (uatomic_read(&completion->futex) != -1)
- return;
- while (futex_async(&completion->futex, FUTEX_WAIT, -1,
- NULL, NULL, 0)) {
+ while (uatomic_read(&completion->futex) == -1) {
+ if (!futex_async(&completion->futex, FUTEX_WAIT, -1, NULL, NULL, 0)) {
+ /*
+ * Prior queued wakeups queued by unrelated code
+ * using the same address can cause futex wait to
+ * return 0 even through the futex value is still
+ * -1 (spurious wakeups). Check the value again
+ * in user-space to validate whether it really
+ * differs from -1.
+ */
+ continue;
+ }
switch (errno) {
- case EWOULDBLOCK:
+ case EAGAIN:
/* Value already changed. */
return;
case EINTR:
/* Retry if interrupted by signal. */
- break; /* Get out of switch. */
+ break; /* Get out of switch. Check again. */
default:
/* Unexpected error. */
urcu_die(errno);
@@ -454,11 +471,11 @@
pcpu_crdp = rcu_dereference(per_cpu_call_rcu_data);
if (pcpu_crdp == NULL)
return NULL;
- if (!warned && maxcpus > 0 && (cpu < 0 || maxcpus <= cpu)) {
+ if (!warned && cpus_array_len > 0 && (cpu < 0 || cpus_array_len <= cpu)) {
fprintf(stderr, "[error] liburcu: get CPU # out of range\n");
warned = 1;
}
- if (cpu < 0 || maxcpus <= cpu)
+ if (cpu < 0 || cpus_array_len <= cpu)
return NULL;
return rcu_dereference(pcpu_crdp[cpu]);
}
@@ -516,7 +533,7 @@
call_rcu_lock(&call_rcu_mutex);
alloc_cpu_call_rcu_data();
- if (cpu < 0 || maxcpus <= cpu) {
+ if (cpu < 0 || cpus_array_len <= cpu) {
if (!warned) {
fprintf(stderr, "[error] liburcu: set CPU # out of range\n");
warned = 1;
@@ -581,7 +598,7 @@
if (URCU_TLS(thread_call_rcu_data) != NULL)
return URCU_TLS(thread_call_rcu_data);
- if (maxcpus > 0) {
+ if (cpus_array_len > 0) {
crd = get_cpu_call_rcu_data(urcu_sched_getcpu());
if (crd)
return crd;
@@ -632,7 +649,7 @@
call_rcu_lock(&call_rcu_mutex);
alloc_cpu_call_rcu_data();
call_rcu_unlock(&call_rcu_mutex);
- if (maxcpus <= 0) {
+ if (cpus_array_len <= 0) {
errno = EINVAL;
return -EINVAL;
}
@@ -640,7 +657,7 @@
errno = ENOMEM;
return -ENOMEM;
}
- for (i = 0; i < maxcpus; i++) {
+ for (i = 0; i < cpus_array_len; i++) {
call_rcu_lock(&call_rcu_mutex);
if (get_cpu_call_rcu_data(i)) {
call_rcu_unlock(&call_rcu_mutex);
@@ -780,10 +797,10 @@
struct call_rcu_data **crdp;
static int warned = 0;
- if (maxcpus <= 0)
+ if (cpus_array_len <= 0)
return;
- crdp = malloc(sizeof(*crdp) * maxcpus);
+ crdp = malloc(sizeof(*crdp) * cpus_array_len);
if (!crdp) {
if (!warned) {
fprintf(stderr, "[error] liburcu: unable to allocate per-CPU pointer array\n");
@@ -792,7 +809,7 @@
return;
}
- for (cpu = 0; cpu < maxcpus; cpu++) {
+ for (cpu = 0; cpu < cpus_array_len; cpu++) {
crdp[cpu] = get_cpu_call_rcu_data(cpu);
if (crdp[cpu] == NULL)
continue;
@@ -803,7 +820,7 @@
* call_rcu_data to become quiescent.
*/
synchronize_rcu();
- for (cpu = 0; cpu < maxcpus; cpu++) {
+ for (cpu = 0; cpu < cpus_array_len; cpu++) {
if (crdp[cpu] == NULL)
continue;
call_rcu_data_free(crdp[cpu]);
@@ -981,7 +998,7 @@
(void)get_default_call_rcu_data();
/* Cleanup call_rcu_data pointers before use */
- maxcpus_reset();
+ cpus_array_len_reset();
free(per_cpu_call_rcu_data);
rcu_set_pointer(&per_cpu_call_rcu_data, NULL);
URCU_TLS(thread_call_rcu_data) = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/src/urcu-defer-impl.h new/userspace-rcu-0.13.2/src/urcu-defer-impl.h
--- old/userspace-rcu-0.13.1/src/urcu-defer-impl.h 2022-01-05 21:38:11.000000000 +0100
+++ new/userspace-rcu-0.13.2/src/urcu-defer-impl.h 2022-08-18 21:35:29.000000000 +0200
@@ -194,17 +194,25 @@
uatomic_set(&defer_thread_futex, 0);
} else {
cmm_smp_rmb(); /* Read queue before read futex */
- if (uatomic_read(&defer_thread_futex) != -1)
- return;
- while (futex_noasync(&defer_thread_futex, FUTEX_WAIT, -1,
- NULL, NULL, 0)) {
+ while (uatomic_read(&defer_thread_futex) == -1) {
+ if (!futex_noasync(&defer_thread_futex, FUTEX_WAIT, -1, NULL, NULL, 0)) {
+ /*
+ * Prior queued wakeups queued by unrelated code
+ * using the same address can cause futex wait to
+ * return 0 even through the futex value is still
+ * -1 (spurious wakeups). Check the value again
+ * in user-space to validate whether it really
+ * differs from -1.
+ */
+ continue;
+ }
switch (errno) {
- case EWOULDBLOCK:
+ case EAGAIN:
/* Value already changed. */
return;
case EINTR:
/* Retry if interrupted by signal. */
- break; /* Get out of switch. */
+ break; /* Get out of switch. Check again. */
default:
/* Unexpected error. */
urcu_die(errno);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/src/urcu-qsbr.c new/userspace-rcu-0.13.2/src/urcu-qsbr.c
--- old/userspace-rcu-0.13.1/src/urcu-qsbr.c 2022-01-05 21:38:11.000000000 +0100
+++ new/userspace-rcu-0.13.2/src/urcu-qsbr.c 2022-08-18 21:35:29.000000000 +0200
@@ -123,17 +123,25 @@
{
/* Read reader_gp before read futex */
cmm_smp_rmb();
- if (uatomic_read(&urcu_qsbr_gp.futex) != -1)
- return;
- while (futex_noasync(&urcu_qsbr_gp.futex, FUTEX_WAIT, -1,
- NULL, NULL, 0)) {
+ while (uatomic_read(&urcu_qsbr_gp.futex) == -1) {
+ if (!futex_noasync(&urcu_qsbr_gp.futex, FUTEX_WAIT, -1, NULL, NULL, 0)) {
+ /*
+ * Prior queued wakeups queued by unrelated code
+ * using the same address can cause futex wait to
+ * return 0 even through the futex value is still
+ * -1 (spurious wakeups). Check the value again
+ * in user-space to validate whether it really
+ * differs from -1.
+ */
+ continue;
+ }
switch (errno) {
- case EWOULDBLOCK:
+ case EAGAIN:
/* Value already changed. */
return;
case EINTR:
/* Retry if interrupted by signal. */
- break; /* Get out of switch. */
+ break; /* Get out of switch. Check again. */
default:
/* Unexpected error. */
urcu_die(errno);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/src/urcu-wait.h new/userspace-rcu-0.13.2/src/urcu-wait.h
--- old/userspace-rcu-0.13.1/src/urcu-wait.h 2022-01-05 21:16:16.000000000 +0100
+++ new/userspace-rcu-0.13.2/src/urcu-wait.h 2022-08-18 21:35:29.000000000 +0200
@@ -153,15 +153,26 @@
goto skip_futex_wait;
caa_cpu_relax();
}
- while (futex_noasync(&wait->state, FUTEX_WAIT, URCU_WAIT_WAITING,
- NULL, NULL, 0)) {
+ while (uatomic_read(&wait->state) == URCU_WAIT_WAITING) {
+ if (!futex_noasync(&wait->state, FUTEX_WAIT, URCU_WAIT_WAITING, NULL, NULL, 0)) {
+ /*
+ * Prior queued wakeups queued by unrelated code
+ * using the same address can cause futex wait to
+ * return 0 even through the futex value is still
+ * URCU_WAIT_WAITING (spurious wakeups). Check
+ * the value again in user-space to validate
+ * whether it really differs from
+ * URCU_WAIT_WAITING.
+ */
+ continue;
+ }
switch (errno) {
- case EWOULDBLOCK:
+ case EAGAIN:
/* Value already changed. */
goto skip_futex_wait;
case EINTR:
/* Retry if interrupted by signal. */
- break; /* Get out of switch. */
+ break; /* Get out of switch. Check again. */
default:
/* Unexpected error. */
urcu_die(errno);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/src/urcu.c new/userspace-rcu-0.13.2/src/urcu.c
--- old/userspace-rcu-0.13.1/src/urcu.c 2022-01-05 21:38:11.000000000 +0100
+++ new/userspace-rcu-0.13.2/src/urcu.c 2022-08-18 21:35:29.000000000 +0200
@@ -259,17 +259,25 @@
smp_mb_master();
/* Temporarily unlock the registry lock. */
mutex_unlock(&rcu_registry_lock);
- if (uatomic_read(&rcu_gp.futex) != -1)
- goto end;
- while (futex_async(&rcu_gp.futex, FUTEX_WAIT, -1,
- NULL, NULL, 0)) {
+ while (uatomic_read(&rcu_gp.futex) == -1) {
+ if (!futex_async(&rcu_gp.futex, FUTEX_WAIT, -1, NULL, NULL, 0)) {
+ /*
+ * Prior queued wakeups queued by unrelated code
+ * using the same address can cause futex wait to
+ * return 0 even through the futex value is still
+ * -1 (spurious wakeups). Check the value again
+ * in user-space to validate whether it really
+ * differs from -1.
+ */
+ continue;
+ }
switch (errno) {
- case EWOULDBLOCK:
+ case EAGAIN:
/* Value already changed. */
goto end;
case EINTR:
/* Retry if interrupted by signal. */
- break; /* Get out of switch. */
+ break; /* Get out of switch. Check again. */
default:
/* Unexpected error. */
urcu_die(errno);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/src/workqueue.c new/userspace-rcu-0.13.2/src/workqueue.c
--- old/userspace-rcu-0.13.1/src/workqueue.c 2022-01-05 21:38:11.000000000 +0100
+++ new/userspace-rcu-0.13.2/src/workqueue.c 2022-08-18 21:35:29.000000000 +0200
@@ -131,16 +131,25 @@
{
/* Read condition before read futex */
cmm_smp_mb();
- if (uatomic_read(futex) != -1)
- return;
- while (futex_async(futex, FUTEX_WAIT, -1, NULL, NULL, 0)) {
+ while (uatomic_read(futex) == -1) {
+ if (!futex_async(futex, FUTEX_WAIT, -1, NULL, NULL, 0)) {
+ /*
+ * Prior queued wakeups queued by unrelated code
+ * using the same address can cause futex wait to
+ * return 0 even through the futex value is still
+ * -1 (spurious wakeups). Check the value again
+ * in user-space to validate whether it really
+ * differs from -1.
+ */
+ continue;
+ }
switch (errno) {
- case EWOULDBLOCK:
+ case EAGAIN:
/* Value already changed. */
return;
case EINTR:
/* Retry if interrupted by signal. */
- break; /* Get out of switch. */
+ break; /* Get out of switch. Check again. */
default:
/* Unexpected error. */
urcu_die(errno);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/tests/Makefile.in new/userspace-rcu-0.13.2/tests/Makefile.in
--- old/userspace-rcu-0.13.1/tests/Makefile.in 2022-01-05 21:38:34.000000000 +0100
+++ new/userspace-rcu-0.13.2/tests/Makefile.in 2022-08-18 21:38:19.000000000 +0200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/tests/benchmark/Makefile.in new/userspace-rcu-0.13.2/tests/benchmark/Makefile.in
--- old/userspace-rcu-0.13.1/tests/benchmark/Makefile.in 2022-01-05 21:38:34.000000000 +0100
+++ new/userspace-rcu-0.13.2/tests/benchmark/Makefile.in 2022-08-18 21:38:19.000000000 +0200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -733,6 +733,7 @@
bases='$(TEST_LOGS)'; \
bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
bases=`echo $$bases`
+AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)'
RECHECK_LOGS = $(TEST_LOGS)
AM_RECURSIVE_TARGETS = check recheck
TEST_SUITE_LOG = test-suite.log
@@ -1855,7 +1856,7 @@
test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
fi; \
echo "$${col}$$br$${std}"; \
- echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
+ echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \
echo "$${col}$$br$${std}"; \
create_testsuite_report --maybe-color; \
echo "$$col$$br$$std"; \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/tests/common/Makefile.in new/userspace-rcu-0.13.2/tests/common/Makefile.in
--- old/userspace-rcu-0.13.1/tests/common/Makefile.in 2022-01-05 21:38:34.000000000 +0100
+++ new/userspace-rcu-0.13.2/tests/common/Makefile.in 2022-08-18 21:38:20.000000000 +0200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/tests/regression/Makefile.in new/userspace-rcu-0.13.2/tests/regression/Makefile.in
--- old/userspace-rcu-0.13.1/tests/regression/Makefile.in 2022-01-05 21:38:34.000000000 +0100
+++ new/userspace-rcu-0.13.2/tests/regression/Makefile.in 2022-08-18 21:38:20.000000000 +0200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -483,6 +483,7 @@
bases='$(TEST_LOGS)'; \
bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
bases=`echo $$bases`
+AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)'
RECHECK_LOGS = $(TEST_LOGS)
AM_RECURSIVE_TARGETS = check recheck
TEST_SUITE_LOG = test-suite.log
@@ -1253,7 +1254,7 @@
test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
fi; \
echo "$${col}$$br$${std}"; \
- echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
+ echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \
echo "$${col}$$br$${std}"; \
create_testsuite_report --maybe-color; \
echo "$$col$$br$$std"; \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/tests/unit/Makefile.in new/userspace-rcu-0.13.2/tests/unit/Makefile.in
--- old/userspace-rcu-0.13.1/tests/unit/Makefile.in 2022-01-05 21:38:34.000000000 +0100
+++ new/userspace-rcu-0.13.2/tests/unit/Makefile.in 2022-08-18 21:38:20.000000000 +0200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -437,6 +437,7 @@
bases='$(TEST_LOGS)'; \
bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
bases=`echo $$bases`
+AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)'
RECHECK_LOGS = $(TEST_LOGS)
AM_RECURSIVE_TARGETS = check recheck
TEST_SUITE_LOG = test-suite.log
@@ -1023,7 +1024,7 @@
test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
fi; \
echo "$${col}$$br$${std}"; \
- echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
+ echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \
echo "$${col}$$br$${std}"; \
create_testsuite_report --maybe-color; \
echo "$$col$$br$$std"; \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.13.1/tests/utils/Makefile.in new/userspace-rcu-0.13.2/tests/utils/Makefile.in
--- old/userspace-rcu-0.13.1/tests/utils/Makefile.in 2022-01-05 21:38:34.000000000 +0100
+++ new/userspace-rcu-0.13.2/tests/utils/Makefile.in 2022-08-18 21:38:20.000000000 +0200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package hwloc for openSUSE:Factory checked in at 2022-08-30 14:48:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hwloc (Old)
and /work/SRC/openSUSE:Factory/.hwloc.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hwloc"
Tue Aug 30 14:48:23 2022 rev:23 rq:999885 version:2.8.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/hwloc/hwloc.changes 2022-07-26 19:42:38.344357822 +0200
+++ /work/SRC/openSUSE:Factory/.hwloc.new.2083/hwloc.changes 2022-08-30 14:48:27.495963995 +0200
@@ -1,0 +2,5 @@
+Fri Jul 29 17:38:15 UTC 2022 - Callum Farmer <gmbr3(a)opensuse.org>
+
+- Add libXNVCtrl support on TW
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hwloc.spec ++++++
--- /var/tmp/diff_new_pack.cIuLdb/_old 2022-08-30 14:48:28.075965475 +0200
+++ /var/tmp/diff_new_pack.cIuLdb/_new 2022-08-30 14:48:28.079965486 +0200
@@ -15,7 +15,11 @@
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
-
+%if 0%{?suse_version} >= 1550
+%bcond_without XNVCtrl
+%else
+%bcond_with XNVCtrl
+%endif
%global lname libhwloc15
Name: hwloc
Version: 2.8.0
@@ -31,6 +35,9 @@
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: libnuma-devel
+%if %{with XNVCtrl}
+BuildRequires: libXNVCtrl-devel
+%endif
BuildRequires: libtool
BuildRequires: ncurses-devel
BuildRequires: perl
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package openssh for openSUSE:Factory checked in at 2022-08-30 14:48:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openssh (Old)
and /work/SRC/openSUSE:Factory/.openssh.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openssh"
Tue Aug 30 14:48:22 2022 rev:158 rq:999883 version:8.9p1
Changes:
--------
--- /work/SRC/openSUSE:Factory/openssh/openssh.changes 2022-08-18 16:48:52.289404588 +0200
+++ /work/SRC/openSUSE:Factory/.openssh.new.2083/openssh.changes 2022-08-30 14:48:25.419958697 +0200
@@ -1,0 +2,5 @@
+Mon Aug 8 07:36:55 UTC 2022 - Thorsten Kukuk <kukuk(a)suse.com>
+
+- Use %_pam_vendordir
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openssh.spec ++++++
--- /var/tmp/diff_new_pack.sLQGBi/_old 2022-08-30 14:48:26.511961485 +0200
+++ /var/tmp/diff_new_pack.sLQGBi/_new 2022-08-30 14:48:26.519961505 +0200
@@ -311,8 +311,8 @@
%install
%make_install
%if %{defined _distconfdir}
-install -d -m 755 %{buildroot}%{_distconfdir}/pam.d
-install -m 644 %{SOURCE2} %{buildroot}%{_distconfdir}/pam.d/sshd
+install -d -m 755 %{buildroot}%{_pam_vendordir}
+install -m 644 %{SOURCE2} %{buildroot}%{_pam_vendordir}/sshd
%else
install -d -m 755 %{buildroot}%{_sysconfdir}/pam.d
install -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/pam.d/sshd
@@ -447,7 +447,7 @@
%attr(0755,root,root) %dir /usr/etc/ssh/sshd_config.d
%attr(0640,root,root) %{_distconfdir}/ssh/sshd_config
%if %{defined _distconfdir}
-%attr(0644,root,root) %{_distconfdir}/pam.d/sshd
+%attr(0644,root,root) %{_pam_vendordir}/sshd
%else
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/pam.d/sshd
%endif
++++++ openssh-8.4p1-ssh_config_d.patch ++++++
--- /var/tmp/diff_new_pack.sLQGBi/_old 2022-08-30 14:48:26.715962006 +0200
+++ /var/tmp/diff_new_pack.sLQGBi/_new 2022-08-30 14:48:26.719962016 +0200
@@ -2,20 +2,20 @@
===================================================================
--- openssh-8.9p1.orig/ssh_config
+++ openssh-8.9p1/ssh_config
-@@ -16,6 +16,13 @@
- # Site-wide defaults for some commonly used options. For a comprehensive
+@@ -17,6 +17,13 @@
# list of available options, their meanings and defaults, please see the
# ssh_config(5) man page.
-+Include /usr/etc/ssh/ssh_config.d/*.conf
-+
+
+# To modify the system-wide ssh configuration, create a "*.conf" file under
+# "/etc/ssh/ssh_config.d/" which will be automatically included below.
+# Don't edit this configuration file itself if possible to avoid update
+# problems.
+Include /etc/ssh/ssh_config.d/*.conf
-
++Include /usr/etc/ssh/ssh_config.d/*.conf
++
Host *
# ForwardAgent no
+ # ForwardX11 no
Index: openssh-8.9p1/sshd_config
===================================================================
--- openssh-8.9p1.orig/sshd_config
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package rsyslog for openSUSE:Factory checked in at 2022-08-30 14:48:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rsyslog (Old)
and /work/SRC/openSUSE:Factory/.rsyslog.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rsyslog"
Tue Aug 30 14:48:21 2022 rev:169 rq:999882 version:8.2208.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/rsyslog/rsyslog.changes 2022-05-10 15:10:03.651428638 +0200
+++ /work/SRC/openSUSE:Factory/.rsyslog.new.2083/rsyslog.changes 2022-08-30 14:48:23.347953411 +0200
@@ -1,0 +2,50 @@
+Tue Aug 9 17:29:59 UTC 2022 - Michael Str��der <michael(a)stroeder.com>
+
+- added libzstd-devel as build dependency
+- Upgrade to rsyslog 8.2208.0
+ * 2022-08-09: ksi bugfix: request cache size and send timeout issue fixed.
+ * 2022-08-09: imjournal bugfix: segmentation fault in close journal
+ * 2022-08-09: net subsystem: support sha256 for StreamDriverAuthMode="x509/fingerprint"
+ * 2022-08-05: imfile bugfix: message loss/duplication when monitored file is rotated
+ * 2022-08-05: ksi bugfix: optimize processing of signer queue to fix delays.
+ * 2022-08-04: ksi bugfix: possible crash fixed when several log files are opened.
+ * 2022-08-04: openssl: add support to split tls commands by semicolon
+ * 2022-08-04: openssl subsystem bugfix: build issue on Solaris
+ * 2022-08-04: openssl: add more details to error messages
+ * 2022-08-04: omclickhouse: capture additional exceptions
+ * 2022-08-04: mmanon bugfix: Simplified and fixed IPv4 digit detection.
+ * 2022-07-21: imptcp: slight tuning
+ * 2022-07-20: template procesing/json: performance optimization
+ * 2022-07-19: core bugfix: memory leak when free action worker data table
+ * 2022-07-13: omfile: support for zstd compression
+ * 2022-07-07: stream cleanup: move error message to debug log, only
+ * 2022-07-04: mmdblookup bugfix: Don't crash Rsyslog on mmdb file errors
+ * 2022-06-28: build error fix: libbson requires out-of-date language constructs
+ * 2022-06-27: OpenSSL: fix depreacted API issues for OpenSSL 3.x
+
+-------------------------------------------------------------------
+Tue Jun 14 22:33:46 UTC 2022 - Michael Str��der <michael(a)stroeder.com>
+
+- Upgrade to rsyslog 8.2206.0
+ * 2022-05-25: omelastisearch: allow omitting _type field
+ * 2022-05-18: tcpsrv/imtcp: slight performance improvements
+ * 2022-05-12: imptcp bugfix: worker thread starvation on extreme traffic
+ * 2022-05-11: omelasticsearch: several support option for ElasticSearch 8
+ - config params searchIndex and documentType can be empty
+ - support for Data Stream API
+ - new config param esVersion.major
+ * 2022-05-09: tcp receiver bugfix: delay/potential hang on some error conditions
+ * 2022-05-05: net bugfix: potential buffer overrun
+ fixes CVE-2022-24903
+ Advisory:
+ https://github.com/rsyslog/rsyslog/security/advisories/GHSA-ggw7-xr6h-mmr8#…
+ * 2022-05-05: imptcp: set OS worker thread name
+ * 2022-04-26: mmanon bugfix: shortened IPv6 form not always anonymized
+ * 2022-04-22: mmdblookup fix: wrong copy of buffer
+ * 2022-04-22: mmdblookup: several enhancements
+ - support arrays in MMDB entry
+ - support escaped quotes '"' in MMDB entry
+ - support '<' characters in MMDB entry, when in a field
+ - support '}' characters in MMDB entry, when in a field
+
+-------------------------------------------------------------------
Old:
----
rsyslog-8.2204.1.tar.gz
rsyslog-doc-8.2204.0.tar.gz
New:
----
rsyslog-8.2208.0.tar.gz
rsyslog-doc-8.2208.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rsyslog.spec ++++++
--- /var/tmp/diff_new_pack.EIlyaN/_old 2022-08-30 14:48:24.179955534 +0200
+++ /var/tmp/diff_new_pack.EIlyaN/_new 2022-08-30 14:48:24.187955554 +0200
@@ -22,8 +22,8 @@
%endif
# drop this with next release when doc tarball version lines up
-%define rsyslog_major 8.2204
-%define rsyslog_patch 1
+%define rsyslog_major 8.2208
+%define rsyslog_patch 0
Name: rsyslog
Summary: The enhanced syslogd for Linux and Unix
License: Apache-2.0 AND GPL-3.0-or-later
@@ -94,6 +94,7 @@
BuildRequires: bison
BuildRequires: curl-devel
BuildRequires: flex
+BuildRequires: libzstd-devel
BuildRequires: pcre-devel
BuildRequires: pkgconfig
BuildRequires: zlib-devel
++++++ rsyslog-8.2204.1.tar.gz -> rsyslog-8.2208.0.tar.gz ++++++
++++ 6818 lines of diff (skipped)
++++++ rsyslog-doc-8.2204.0.tar.gz -> rsyslog-doc-8.2208.0.tar.gz ++++++
/work/SRC/openSUSE:Factory/rsyslog/rsyslog-doc-8.2204.0.tar.gz /work/SRC/openSUSE:Factory/.rsyslog.new.2083/rsyslog-doc-8.2208.0.tar.gz differ: char 28, line 1
1
0