openSUSE Commits
Threads by month
- ----- 2024 -----
- 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
December 2023
- 1 participants
- 1464 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package intel-gpu-tools for openSUSE:Factory checked in at 2023-12-02 17:13:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/intel-gpu-tools (Old)
and /work/SRC/openSUSE:Factory/.intel-gpu-tools.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "intel-gpu-tools"
Sat Dec 2 17:13:08 2023 rev:7 rq:1130362 version:1.28
Changes:
--------
--- /work/SRC/openSUSE:Factory/intel-gpu-tools/intel-gpu-tools.changes 2023-11-13 22:25:11.545049582 +0100
+++ /work/SRC/openSUSE:Factory/.intel-gpu-tools.new.25432/intel-gpu-tools.changes 2023-12-02 17:13:26.737947392 +0100
@@ -1,0 +2,5 @@
+Fri Nov 24 21:25:14 UTC 2023 - Tejas Guruswamy <tejas.guruswamy(a)opensuse.org>
+
+- Build against libprocps on older openSUSE releases.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ intel-gpu-tools.spec ++++++
--- /var/tmp/diff_new_pack.bnjG95/_old 2023-12-02 17:13:27.537976710 +0100
+++ /var/tmp/diff_new_pack.bnjG95/_new 2023-12-02 17:13:27.537976710 +0100
@@ -32,8 +32,14 @@
BuildRequires: peg
BuildRequires: pkgconfig
BuildRequires: python3-docutils
+%if 0%{?suse_version} > 1600
+BuildRequires: pkgconfig(libproc2)
+%else
+BuildRequires: pkgconfig(libprocps)
+%endif
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(cairo)
+BuildRequires: pkgconfig(dri2proto)
BuildRequires: pkgconfig(gsl)
BuildRequires: pkgconfig(gtk-doc)
BuildRequires: pkgconfig(json-c)
@@ -42,7 +48,6 @@
BuildRequires: pkgconfig(libdw)
BuildRequires: pkgconfig(libkmod)
BuildRequires: pkgconfig(liboping)
-BuildRequires: pkgconfig(libproc2)
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(libunwind)
BuildRequires: pkgconfig(pciaccess) >= 0.10
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ouch for openSUSE:Factory checked in at 2023-12-02 17:13:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ouch (Old)
and /work/SRC/openSUSE:Factory/.ouch.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ouch"
Sat Dec 2 17:13:06 2023 rev:6 rq:1130363 version:0.5.0+0
Changes:
--------
--- /work/SRC/openSUSE:Factory/ouch/ouch.changes 2023-08-08 15:55:27.837192110 +0200
+++ /work/SRC/openSUSE:Factory/.ouch.new.25432/ouch.changes 2023-12-02 17:13:24.433862955 +0100
@@ -1,0 +2,16 @@
+Fri Dec 1 22:20:09 UTC 2023 - Michael Vetter <mvetter(a)suse.com>
+
+- Update to 0.5.0:
+ New Features:
+ * Add .rar support (decompression and listing, see clarification below) (#529)
+ * Add .7z support (#555)
+ Improvements:
+ * Switch to the faster lz4 implementation, lz4_flex (#445)
+ * Improve error message when decompressing with missing extensions (#518)
+ * Strip binary when building with cargo (#535)
+ * Completions: hint generator to expand to file paths (#508)
+ Bug Fixes:
+ * Fix size unit inconsistency (#502)
+ * Fix unaligned output when using parallelism (#509)
+
+-------------------------------------------------------------------
Old:
----
ouch-0.4.2~0.tar.xz
New:
----
ouch-0.5.0+0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ouch.spec ++++++
--- /var/tmp/diff_new_pack.9bcXde/_old 2023-12-02 17:13:26.093923790 +0100
+++ /var/tmp/diff_new_pack.9bcXde/_new 2023-12-02 17:13:26.097923937 +0100
@@ -17,7 +17,7 @@
Name: ouch
-Version: 0.4.2~0
+Version: 0.5.0+0
Release: 0
Summary: Compression and decompression utility for the terminal
License: MIT
@@ -27,6 +27,7 @@
Source1: vendor.tar.xz
Source2: cargo_config
BuildRequires: cargo-packaging
+BuildRequires: gcc-c++
ExclusiveArch: %{rust_tier1_arches}
%description
@@ -35,7 +36,7 @@
%prep
%autosetup -a1
-mkdir .cargo
+mkdir -p .cargo
cp %{SOURCE2} .cargo/config
%build
++++++ _service ++++++
--- /var/tmp/diff_new_pack.9bcXde/_old 2023-12-02 17:13:26.125924963 +0100
+++ /var/tmp/diff_new_pack.9bcXde/_new 2023-12-02 17:13:26.129925109 +0100
@@ -1,9 +1,9 @@
<services>
<service mode="disabled" name="obs_scm">
<param name="url">https://github.com/ouch-org/ouch.git</param>
- <param name="versionformat">@PARENT_TAG@~@TAG_OFFSET@</param>
+ <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
<param name="scm">git</param>
- <param name="revision">0.4.2</param>
+ <param name="revision">0.5.0</param>
<param name="match-tag">*</param>
<param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
<param name="versionrewrite-replacement">\1</param>
++++++ vendor.tar.xz ++++++
/work/SRC/openSUSE:Factory/ouch/vendor.tar.xz /work/SRC/openSUSE:Factory/.ouch.new.25432/vendor.tar.xz differ: char 8, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gojq for openSUSE:Factory checked in at 2023-12-02 17:13:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gojq (Old)
and /work/SRC/openSUSE:Factory/.gojq.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gojq"
Sat Dec 2 17:13:02 2023 rev:4 rq:1130335 version:0.12.14
Changes:
--------
--- /work/SRC/openSUSE:Factory/gojq/gojq.changes 2023-06-04 00:13:12.101748923 +0200
+++ /work/SRC/openSUSE:Factory/.gojq.new.25432/gojq.changes 2023-12-02 17:13:18.345639846 +0100
@@ -1,0 +2,22 @@
+Fri Dec 1 16:47:58 UTC 2023 - Arnav Singh <opensuse(a)arnavion.dev>
+
+- Update to v0.12.14
+ * Implement `abs`, `pick` and `debug/1` functions.
+ * Implement `--raw-output0` option, and remove `--nul-output` (`-0`) option.
+ * Fix string multiplication by zero to emit an empty string.
+ * Fix zero divided by zero to emit an error, not `nan`.
+ * Fix modulo operator to emit `nan` if either side is `nan`.
+ * Fix `implode` function to emit replacement characters on
+ invalid code points.
+ * Fix `stderr` function to output strings in raw format.
+ * Fix `error` function to throw an error even for `null`.
+ * Fix `walk` function on multiple outputs arguments.
+ * Fix `--from-file` option to work with `--arg` and `--argjson` options.
+ * Improve query parser to support comment continuation with backslash.
+ * Improve `modulemeta` function to include defined function names in
+ the module.
+ * Improve search path of `import` and `include` directives to support
+ `$ORIGIN` expansion.
+ * Remove deprecated `leaf_paths` function.
+
+-------------------------------------------------------------------
Old:
----
gojq-0.12.13.tar.gz
vendor.tar.gz
New:
----
gojq-0.12.14.tar.gz
vendor.tar.zst
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gojq.spec ++++++
--- /var/tmp/diff_new_pack.NXr0BH/_old 2023-12-02 17:13:19.213671656 +0100
+++ /var/tmp/diff_new_pack.NXr0BH/_new 2023-12-02 17:13:19.213671656 +0100
@@ -17,15 +17,16 @@
Name: gojq
-Version: 0.12.13
+Version: 0.12.14
Release: 0
Summary: Pure Go implementation of jq
License: MIT
URL: https://github.com/itchyny/gojq
Source0: %{url}/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
-Source1: vendor.tar.gz
-BuildRequires: go >= 1.18
+Source1: vendor.tar.zst
+BuildRequires: go >= 1.19
BuildRequires: golang-packaging
+BuildRequires: zstd
%description
Pure Go implementation of jq.
++++++ _service ++++++
--- /var/tmp/diff_new_pack.NXr0BH/_old 2023-12-02 17:13:19.241672682 +0100
+++ /var/tmp/diff_new_pack.NXr0BH/_new 2023-12-02 17:13:19.241672682 +0100
@@ -1,5 +1,6 @@
<services>
<service name="go_modules" mode="disabled">
+ <param name="compression">zst</param>
</service>
</services>
++++++ gojq-0.12.13.tar.gz -> gojq-0.12.14.tar.gz ++++++
++++ 2197 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-hvac for openSUSE:Factory checked in at 2023-12-02 17:12:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-hvac (Old)
and /work/SRC/openSUSE:Factory/.python-hvac.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-hvac"
Sat Dec 2 17:12:58 2023 rev:14 rq:1130332 version:1.2.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-hvac/python-hvac.changes 2023-03-10 22:09:23.189680604 +0100
+++ /work/SRC/openSUSE:Factory/.python-hvac.new.25432/python-hvac.changes 2023-12-02 17:13:11.101374370 +0100
@@ -1,0 +2,48 @@
+Fri Dec 1 16:57:54 UTC 2023 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 1.2.1:
+ * This release fixes an inaccuracy in a warning message but
+ does not otherwise change functionality.
+ * Fix raise_on_deleted_version warning (GH-1045)
+ * ldap auth method - add missing `configure` params by vault
+ api names (GH-975) expand Vault CI matrix, announce
+ deprecation of Vault dynamic SSH keys (GH-1023)
+ * Breaking changes coming to `Client.write` method (GH-1034)
+ * Support for Python 3.6 & 3.7 will be dropped in `v2.0.0`
+ * Support for the Legacy MFA methods will be dropped from the
+ `MFA` class in `v2.0.0` (GH-1026)
+ * Breaking changes coming to Adapters' use of custom sessions
+ * ### 🚀 Features
+ * Add alias_name_source for Kubernetes Auth create_role
+ * add `Client.write_data` method (GH-1028)
+ * ldap auth method - add missing `configure` params by vault
+ api names (GH-975)
+ * Re-add arguments to create_or_update_role() from old API
+ (GH-842)
+ * Add new argument (conflicting_alias_ids_to_keep) to
+ merge_entities method (GH-968)
+ * Add impersonated account support to GCP secrets engine
+ (GH-1022)
+ * support "user_claim_json_pointer" in create_role() for
+ JWT/OIDC auth method (GH-1006)
+ * Add static account support to GCP secrets engine (GH-956)
+ * adding batch_input to transit.sign_data #988 (GH-990)
+ * Add a method to read static roles in the database engine
+ (GH-1009)
+ * feat: add support for `disable_local_ca_jwt` in the
+ Kubernetes auth method (GH-997)
+ * ### 🐛 Bug Fixes
+ * add `Client.write_data` method (GH-1028)
+ * Fix premature read on stream requests in the
+ `sys.take_raft_snapshot` method (GH-771)
+ * fix(`__getattr__`): non-existent attribute lookup (GH-982)
+ * ### 📚 Documentation
+ * docs(secrets-engines): Add database secrets engine docs
+ (GH-1036)
+ * docs: make OIDC Authorization URL Request example work again.
+ (GH-1010)
+ * ### 🧰 Miscellaneous
+ * add tests and docs to sdist, improve build testing (GH-1015)
+ * Bump certifi from 2022.9.14 to 2022.12.7 (GH-1013)
+
+-------------------------------------------------------------------
Old:
----
v1.1.0.tar.gz
New:
----
v1.2.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-hvac.spec ++++++
--- /var/tmp/diff_new_pack.jXDKwz/_old 2023-12-02 17:13:12.981443267 +0100
+++ /var/tmp/diff_new_pack.jXDKwz/_new 2023-12-02 17:13:12.985443415 +0100
@@ -17,7 +17,7 @@
Name: python-hvac
-Version: 1.1.0
+Version: 1.2.1
Release: 0
Summary: HashiCorp Vault API client
License: BSD-3-Clause
++++++ v1.1.0.tar.gz -> v1.2.1.tar.gz ++++++
++++ 6582 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-mbstrdecoder for openSUSE:Factory checked in at 2023-12-02 17:13:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-mbstrdecoder (Old)
and /work/SRC/openSUSE:Factory/.python-mbstrdecoder.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-mbstrdecoder"
Sat Dec 2 17:13:00 2023 rev:12 rq:1130334 version:1.1.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-mbstrdecoder/python-mbstrdecoder.changes 2023-05-10 16:19:59.487495371 +0200
+++ /work/SRC/openSUSE:Factory/.python-mbstrdecoder.new.25432/python-mbstrdecoder.changes 2023-12-02 17:13:13.205451477 +0100
@@ -1,0 +2,7 @@
+Fri Dec 1 17:01:42 UTC 2023 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 1.1.3:
+ * Add `__all__` to __init__.py
+ * Add `zip_safe=False`
+
+-------------------------------------------------------------------
Old:
----
mbstrdecoder-1.1.2.tar.gz
New:
----
mbstrdecoder-1.1.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-mbstrdecoder.spec ++++++
--- /var/tmp/diff_new_pack.3h0Dbb/_old 2023-12-02 17:13:13.785472733 +0100
+++ /var/tmp/diff_new_pack.3h0Dbb/_new 2023-12-02 17:13:13.789472879 +0100
@@ -16,10 +16,9 @@
#
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
-%define skip_python2 1
+%{?sle15_python_module_pythons}
Name: python-mbstrdecoder
-Version: 1.1.2
+Version: 1.1.3
Release: 0
Summary: Multi-byte character string decoder
License: MIT
++++++ mbstrdecoder-1.1.2.tar.gz -> mbstrdecoder-1.1.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mbstrdecoder-1.1.2/PKG-INFO new/mbstrdecoder-1.1.3/PKG-INFO
--- old/mbstrdecoder-1.1.2/PKG-INFO 2023-02-05 13:17:09.981349000 +0100
+++ new/mbstrdecoder-1.1.3/PKG-INFO 2023-06-10 10:54:10.824644300 +0200
@@ -1,7 +1,7 @@
Metadata-Version: 2.1
Name: mbstrdecoder
-Version: 1.1.2
-Summary: multi-byte character string decoder
+Version: 1.1.3
+Summary: mbstrdecoder is a Python library for multi-byte character string decoder
Home-page: https://github.com/thombashi/mbstrdecoder
Author: Tsuyoshi Hombashi
Author-email: tsuyoshi.hombashi(a)gmail.com
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mbstrdecoder-1.1.2/mbstrdecoder/__init__.py new/mbstrdecoder-1.1.3/mbstrdecoder/__init__.py
--- old/mbstrdecoder-1.1.2/mbstrdecoder/__init__.py 2021-03-20 05:14:04.000000000 +0100
+++ new/mbstrdecoder-1.1.3/mbstrdecoder/__init__.py 2023-06-10 09:30:33.000000000 +0200
@@ -5,3 +5,9 @@
from .__version__ import __author__, __copyright__, __email__, __license__, __version__
from ._func import detect_file_encoding
from ._mbstrdecoder import MultiByteStrDecoder
+
+
+__all__ = (
+ "detect_file_encoding",
+ "MultiByteStrDecoder",
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mbstrdecoder-1.1.2/mbstrdecoder/__version__.py new/mbstrdecoder-1.1.3/mbstrdecoder/__version__.py
--- old/mbstrdecoder-1.1.2/mbstrdecoder/__version__.py 2023-02-05 13:00:53.000000000 +0100
+++ new/mbstrdecoder-1.1.3/mbstrdecoder/__version__.py 2023-06-10 10:41:55.000000000 +0200
@@ -1,6 +1,6 @@
__author__ = "Tsuyoshi Hombashi"
__copyright__ = f"Copyright 2016, {__author__}"
__license__ = "MIT License"
-__version__ = "1.1.2"
+__version__ = "1.1.3"
__maintainer__ = __author__
__email__ = "tsuyoshi.hombashi(a)gmail.com"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mbstrdecoder-1.1.2/mbstrdecoder.egg-info/PKG-INFO new/mbstrdecoder-1.1.3/mbstrdecoder.egg-info/PKG-INFO
--- old/mbstrdecoder-1.1.2/mbstrdecoder.egg-info/PKG-INFO 2023-02-05 13:17:09.000000000 +0100
+++ new/mbstrdecoder-1.1.3/mbstrdecoder.egg-info/PKG-INFO 2023-06-10 10:54:10.000000000 +0200
@@ -1,7 +1,7 @@
Metadata-Version: 2.1
Name: mbstrdecoder
-Version: 1.1.2
-Summary: multi-byte character string decoder
+Version: 1.1.3
+Summary: mbstrdecoder is a Python library for multi-byte character string decoder
Home-page: https://github.com/thombashi/mbstrdecoder
Author: Tsuyoshi Hombashi
Author-email: tsuyoshi.hombashi(a)gmail.com
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mbstrdecoder-1.1.2/mbstrdecoder.egg-info/SOURCES.txt new/mbstrdecoder-1.1.3/mbstrdecoder.egg-info/SOURCES.txt
--- old/mbstrdecoder-1.1.2/mbstrdecoder.egg-info/SOURCES.txt 2023-02-05 13:17:09.000000000 +0100
+++ new/mbstrdecoder-1.1.3/mbstrdecoder.egg-info/SOURCES.txt 2023-06-10 10:54:10.000000000 +0200
@@ -13,6 +13,7 @@
mbstrdecoder.egg-info/PKG-INFO
mbstrdecoder.egg-info/SOURCES.txt
mbstrdecoder.egg-info/dependency_links.txt
+mbstrdecoder.egg-info/not-zip-safe
mbstrdecoder.egg-info/requires.txt
mbstrdecoder.egg-info/top_level.txt
requirements/requirements.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mbstrdecoder-1.1.2/mbstrdecoder.egg-info/not-zip-safe new/mbstrdecoder-1.1.3/mbstrdecoder.egg-info/not-zip-safe
--- old/mbstrdecoder-1.1.2/mbstrdecoder.egg-info/not-zip-safe 1970-01-01 01:00:00.000000000 +0100
+++ new/mbstrdecoder-1.1.3/mbstrdecoder.egg-info/not-zip-safe 2023-06-10 10:54:01.000000000 +0200
@@ -0,0 +1 @@
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mbstrdecoder-1.1.2/pyproject.toml new/mbstrdecoder-1.1.3/pyproject.toml
--- old/mbstrdecoder-1.1.2/pyproject.toml 2023-02-05 06:43:38.000000000 +0100
+++ new/mbstrdecoder-1.1.3/pyproject.toml 2023-06-04 11:02:29.000000000 +0200
@@ -1,5 +1,6 @@
[build-system]
-requires = ["setuptools", "wheel"]
+requires = ["setuptools>=61.0"]
+build-backend = "setuptools.build_meta"
[tool.black]
line-length = 100
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mbstrdecoder-1.1.2/setup.py new/mbstrdecoder-1.1.3/setup.py
--- old/mbstrdecoder-1.1.2/setup.py 2023-02-05 06:41:55.000000000 +0100
+++ new/mbstrdecoder-1.1.3/setup.py 2023-06-10 09:19:54.000000000 +0200
@@ -3,7 +3,7 @@
"""
import os.path
-from typing import Dict
+from typing import Dict, Type
import setuptools
@@ -16,7 +16,7 @@
pkg_info: Dict[str, str] = {}
-def get_release_command_class() -> Dict[str, setuptools.Command]:
+def get_release_command_class() -> Dict[str, Type[setuptools.Command]]:
try:
from releasecmd import ReleaseCommand
except ImportError:
@@ -43,15 +43,22 @@
url=REPOSITORY_URL,
author=pkg_info["__author__"],
author_email=pkg_info["__email__"],
- description="multi-byte character string decoder",
+ description=f"{MODULE_NAME} is a Python library for multi-byte character string decoder",
include_package_data=True,
- keywords=["multi-byte character", "unicode", "decoder"],
+ keywords=[
+ "multi-byte character",
+ "unicode",
+ "decoder",
+ ],
license=pkg_info["__license__"],
long_description=long_description,
long_description_content_type="text/x-rst",
packages=setuptools.find_packages(exclude=["test*"]),
package_data={MODULE_NAME: ["py.typed"]},
- project_urls={"Source": REPOSITORY_URL, "Tracker": f"{REPOSITORY_URL:s}/issues"},
+ project_urls={
+ "Source": REPOSITORY_URL,
+ "Tracker": f"{REPOSITORY_URL:s}/issues",
+ },
python_requires=">=3.7",
install_requires=install_requires,
tests_require=tests_require,
@@ -76,4 +83,5 @@
"Topic :: Text Processing",
],
cmdclass=get_release_command_class(),
+ zip_safe=False,
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mbstrdecoder-1.1.2/tox.ini new/mbstrdecoder-1.1.3/tox.ini
--- old/mbstrdecoder-1.1.2/tox.ini 2023-02-05 13:00:01.000000000 +0100
+++ new/mbstrdecoder-1.1.3/tox.ini 2023-06-10 10:35:26.000000000 +0200
@@ -2,12 +2,12 @@
envlist =
py{37,38,39,310,311,312}
pypy3
- clean
cov
fmt
lint
[testenv]
+passenv = *
extras =
test
commands =
@@ -41,7 +41,7 @@
[testenv:fmt]
skip_install = true
deps =
- autoflake>=1.4
+ autoflake>=2
black>=23.1
isort>=5
commands =
@@ -52,8 +52,8 @@
[testenv:lint]
skip_install = true
deps =
- codespell
- mypy>=0.991
+ codespell>=2
+ mypy>=1
pylama>=8.4.1
types-chardet
commands =
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-confluent-kafka for openSUSE:Factory checked in at 2023-12-02 17:12:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-confluent-kafka (Old)
and /work/SRC/openSUSE:Factory/.python-confluent-kafka.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-confluent-kafka"
Sat Dec 2 17:12:58 2023 rev:7 rq:1130330 version:2.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-confluent-kafka/python-confluent-kafka.changes 2023-05-08 17:24:10.796658334 +0200
+++ /work/SRC/openSUSE:Factory/.python-confluent-kafka.new.25432/python-confluent-kafka.changes 2023-12-02 17:13:10.189340948 +0100
@@ -1,0 +2,13 @@
+Fri Dec 1 16:55:55 UTC 2023 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 2.2.0:
+ * KIP-339
+ * IncrementalAlterConfigs API (#1517).
+ * KIP-554:
+ * User SASL/SCRAM credentials alteration and description
+ (#1575).
+ * Added documentation with an example of FIPS compliant
+ communication with Kafka cluster.
+ * Fixed wrong error code parameter name in KafkaError.
+
+-------------------------------------------------------------------
Old:
----
confluent-kafka-2.1.1.tar.gz
New:
----
confluent-kafka-2.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-confluent-kafka.spec ++++++
--- /var/tmp/diff_new_pack.N2ag5n/_old 2023-12-02 17:13:10.933368213 +0100
+++ /var/tmp/diff_new_pack.N2ag5n/_new 2023-12-02 17:13:10.933368213 +0100
@@ -16,9 +16,9 @@
#
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%{?sle15_python_module_pythons}
Name: python-confluent-kafka
-Version: 2.1.1
+Version: 2.2.0
Release: 0
Summary: Confluent's Apache Kafka client for Python
License: Apache-2.0
@@ -28,18 +28,8 @@
BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
-BuildRequires: librdkafka-devel >= 2.1.0
+BuildRequires: librdkafka-devel >= 2.2.0
BuildRequires: python-rpm-macros
-%ifpython2
-Requires: python2-avro
-Requires: python2-enum34
-Requires: python2-futures
-%endif
-Suggests: python-fastavro
-Suggests: python-requests
-Suggests: python-avro-python3
-Suggests: python-pytest
-Suggests: python-flake8
%python_subpackages
++++++ confluent-kafka-2.1.1.tar.gz -> confluent-kafka-2.2.0.tar.gz ++++++
++++ 1615 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gnome-sudoku for openSUSE:Factory checked in at 2023-12-02 17:12:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-sudoku (Old)
and /work/SRC/openSUSE:Factory/.gnome-sudoku.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-sudoku"
Sat Dec 2 17:12:56 2023 rev:50 rq:1130320 version:45.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-sudoku/gnome-sudoku.changes 2023-10-23 23:41:16.228194567 +0200
+++ /work/SRC/openSUSE:Factory/.gnome-sudoku.new.25432/gnome-sudoku.changes 2023-12-02 17:13:09.193304447 +0100
@@ -1,0 +2,10 @@
+Fri Dec 1 15:00:14 UTC 2023 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 45.3:
+ + Adjust red warning color to be brighter, to help colorblind
+ users
+ + Fix earmarks not being checked for warnings
+ + Fix crash when using arrow keys with no cell selected
+ + Fix criticals when adding earmarks introduced in 45.2
+
+-------------------------------------------------------------------
Old:
----
gnome-sudoku-45.2.tar.xz
New:
----
gnome-sudoku-45.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-sudoku.spec ++++++
--- /var/tmp/diff_new_pack.zCgU7D/_old 2023-12-02 17:13:09.821327462 +0100
+++ /var/tmp/diff_new_pack.zCgU7D/_new 2023-12-02 17:13:09.821327462 +0100
@@ -17,7 +17,7 @@
Name: gnome-sudoku
-Version: 45.2
+Version: 45.3
Release: 0
Summary: Sudoku Game for GNOME
License: GPL-3.0-or-later
++++++ gnome-sudoku-45.2.tar.xz -> gnome-sudoku-45.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-sudoku-45.2/NEWS new/gnome-sudoku-45.3/NEWS
--- old/gnome-sudoku-45.2/NEWS 2023-10-20 19:43:48.000000000 +0200
+++ new/gnome-sudoku-45.3/NEWS 2023-12-01 15:36:33.000000000 +0100
@@ -1,3 +1,11 @@
+45.3 - December 1, 2023
+=======================
+
+ - Adjust red warning color to be brighter, to help colorblind users (#77)
+ - Fix earmarks not being checked for warnings (#78)
+ - Fix crash when using arrow keys with no cell selected (#80)
+ - Fix criticals when adding earmarks introduced in 45.2
+
45.2 - October 20, 2023
=======================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-sudoku-45.2/data/org.gnome.Sudoku.appdata.xml.in new/gnome-sudoku-45.3/data/org.gnome.Sudoku.appdata.xml.in
--- old/gnome-sudoku-45.2/data/org.gnome.Sudoku.appdata.xml.in 2023-10-20 19:43:48.000000000 +0200
+++ new/gnome-sudoku-45.3/data/org.gnome.Sudoku.appdata.xml.in 2023-12-01 15:36:33.000000000 +0100
@@ -47,6 +47,7 @@
<kudo>UserDocs</kudo>
</kudos>
<releases>
+ <release version="45.3" date="2023-12-01"/>
<release version="45.2" date="2023-10-20"/>
<release version="45.1" date="2023-10-14"/>
<release version="45.0" date="2023-09-15"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-sudoku-45.2/data/style.css new/gnome-sudoku-45.3/data/style.css
--- old/gnome-sudoku-45.2/data/style.css 2023-10-20 19:43:48.000000000 +0200
+++ new/gnome-sudoku-45.3/data/style.css 2023-12-01 15:36:33.000000000 +0100
@@ -40,5 +40,6 @@
sudokucell.highlight-label > .earmark.error,
sudokucell.selected > .earmark.error,
sudokucell.error > label {
- color: @destructive_color;
+ color: red;
+ font-weight: bold;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-sudoku-45.2/meson.build new/gnome-sudoku-45.3/meson.build
--- old/gnome-sudoku-45.2/meson.build 2023-10-20 19:43:48.000000000 +0200
+++ new/gnome-sudoku-45.3/meson.build 2023-12-01 15:36:33.000000000 +0100
@@ -4,7 +4,7 @@
],
license: 'GPL3+',
meson_version: '>= 0.59',
- version: '45.2'
+ version: '45.3'
)
application_id = 'org.gnome.Sudoku'
add_project_arguments([
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-sudoku-45.2/po/ro.po new/gnome-sudoku-45.3/po/ro.po
--- old/gnome-sudoku-45.2/po/ro.po 2023-10-20 19:43:48.000000000 +0200
+++ new/gnome-sudoku-45.3/po/ro.po 2023-12-01 15:36:33.000000000 +0100
@@ -11,9 +11,10 @@
msgstr ""
"Project-Id-Version: gnome-games.HEAD.ro\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-sudoku/issues\n"
-"POT-Creation-Date: 2020-12-31 18:10+0000\n"
-"PO-Revision-Date: 2021-01-02 13:21+0200\n"
-"Last-Translator: Florentina Mușat <florentina.musat.28(a)gmail.com>\n"
+"POT-Creation-Date: 2023-06-25 11:56+0000\n"
+"PO-Revision-Date: 2023-10-21 16:52+0300\n"
+"Last-Translator: Florentina Mușat <florentina [dot] musat [dot] 28 [at] "
+"gmail [dot] com>\n"
"Language-Team: Romanian Gnome Team <gnomero-list(a)lists.sourceforge.net>\n"
"Language: ro\n"
"MIME-Version: 1.0\n"
@@ -21,7 +22,7 @@
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2);\n"
-"X-Generator: Poedit 2.4.2\n"
+"X-Generator: Poedit 3.4\n"
"X-Launchpad-Export-Date: 2009-11-27 09:12+0000\n"
#: data/sudoku-window.ui:7
@@ -29,82 +30,94 @@
msgstr "Puzzle _nou"
#: data/sudoku-window.ui:11
+msgid "Create Custom Game"
+msgstr "Creează joc personalizat"
+
+#: data/sudoku-window.ui:15
msgid "_Clear Board"
msgstr "_Eliberează tabla"
-#: data/sudoku-window.ui:17 data/print-dialog.ui:38
+#: data/sudoku-window.ui:21 data/print-dialog.ui:77
msgid "_Print"
msgstr "Ti_părește"
-#: data/sudoku-window.ui:20
+#: data/sudoku-window.ui:24
msgid "Print _Current Puzzle…"
msgstr "Tipărește puzzle-ul _curent…"
-#: data/sudoku-window.ui:24
+#: data/sudoku-window.ui:28
msgid "Print _Multiple Puzzles…"
msgstr "Tipărește puzzle-uri _multiple…"
-#: data/sudoku-window.ui:32
+#: data/sudoku-window.ui:36
msgid "High_lighter"
msgstr "_Evidențiere"
-#: data/sudoku-window.ui:36
+#: data/sudoku-window.ui:40
msgid "_Warnings"
msgstr "_Avertismente"
-#: data/sudoku-window.ui:42
+#: data/sudoku-window.ui:46
msgid "_Help"
msgstr "_Ajutor"
-#: data/sudoku-window.ui:46
+#: data/sudoku-window.ui:50
msgid "_About Sudoku"
msgstr "_Despre Sudoku"
-#: data/sudoku-window.ui:52 data/sudoku-window.ui:57
-#: data/org.gnome.Sudoku.desktop.in:3 src/gnome-sudoku.vala:488
-#: src/sudoku-window.vala:212
+#: data/sudoku-window.ui:56 data/sudoku-window.ui:64
+#: data/org.gnome.Sudoku.desktop.in:3 src/gnome-sudoku.vala:489
+#: src/sudoku-window.vala:217
msgid "Sudoku"
msgstr "Sudoku"
-#: data/sudoku-window.ui:73
+#: data/sudoku-window.ui:72
msgid "Undo your last action"
msgstr "Anulează ultima acțiune"
-#: data/sudoku-window.ui:94
+#: data/sudoku-window.ui:84
msgid "Redo your last action"
msgstr "Refă ultima acțiune"
-#: data/sudoku-window.ui:126
+#: data/sudoku-window.ui:96
+msgid "Go back to the current game"
+msgstr "Navighează înapoi la jocul curent"
+
+#: data/sudoku-window.ui:107
+msgid "Main Menu"
+msgstr "Meniu principal"
+
+#: data/sudoku-window.ui:115
msgid "Pause"
msgstr "Pauză"
-#: data/sudoku-window.ui:147
+#: data/sudoku-window.ui:127
msgid "Start playing the custom puzzle you have created"
msgstr "Începeți să jucați puzzle-ul personalizat pe care l-ați creat"
-#: data/sudoku-window.ui:189
-msgid "Go back to the current game"
-msgstr "Navighează înapoi la jocul curent"
-
-#: data/sudoku-window.ui:233 data/print-dialog.ui:157
-msgid "_Easy"
-msgstr "_Simplu"
-
-#: data/sudoku-window.ui:241 data/print-dialog.ui:172
-msgid "_Medium"
-msgstr "_Mediu"
-
-#: data/sudoku-window.ui:249 data/print-dialog.ui:188
-msgid "_Hard"
-msgstr "_Dificil"
-
-#: data/sudoku-window.ui:257 data/print-dialog.ui:204
-msgid "_Very Hard"
-msgstr "_Foarte dificil"
-
-#: data/sudoku-window.ui:265
-msgid "_Create your own puzzle"
-msgstr "_Creați propriul puzzle"
+#: data/sudoku-window.ui:153
+msgid "Select Game Difficulty"
+msgstr "Selectați dificultatea jocului"
+
+#: data/sudoku-window.ui:169 data/print-dialog.ui:58
+msgid "Easy"
+msgstr "Simplu"
+
+#: data/sudoku-window.ui:180 data/print-dialog.ui:59
+msgid "Medium"
+msgstr "Mediu"
+
+#: data/sudoku-window.ui:191 data/print-dialog.ui:60
+msgid "Hard"
+msgstr "Dificil"
+
+#: data/sudoku-window.ui:202 data/print-dialog.ui:61
+msgid "Very Hard"
+msgstr "Foarte dificil"
+
+#: data/sudoku-window.ui:212
+msgid "Start Game"
+msgstr "Începe jocul"
#: data/org.gnome.Sudoku.appdata.xml.in:7
msgid "GNOME Sudoku"
@@ -149,7 +162,7 @@
msgid "A GNOME sudoku game preview"
msgstr "O previzualizare de joc sudoku GNOME"
-#: data/org.gnome.Sudoku.appdata.xml.in:63
+#: data/org.gnome.Sudoku.appdata.xml.in:74
msgid "The GNOME Project"
msgstr "Proiectul GNOME"
@@ -202,62 +215,76 @@
"număr și numerele duplicate sunt evidențiate cu roșu"
#: data/org.gnome.Sudoku.gschema.xml:33
+msgid "Additionally warn when correct solution is violated or not earmarked"
+msgstr ""
+"În plus, avertizați când soluția corectă este încălcată sau nu este marcată"
+
+#: data/org.gnome.Sudoku.gschema.xml:34
+msgid ""
+"Changes the background color of a square to red if the value does not match "
+"puzzle solution, or if no earmark matches the puzzle solution"
+msgstr ""
+"Modifică culoarea de fundal a unui pătrat în roșu dacă valoarea nu se "
+"potrivește cu soluția puzzle-ului sau dacă niciun marcaj nu se potrivește cu "
+"soluția puzzle-ului"
+
+#: data/org.gnome.Sudoku.gschema.xml:38
msgid "Highlight row, column and square that contain the selected cell"
msgstr "Evidențiază rândul, coloana și pătratul care conțin celula selectată"
-#: data/org.gnome.Sudoku.gschema.xml:37
+#: data/org.gnome.Sudoku.gschema.xml:42
msgid "Width of the window in pixels"
msgstr "Lățimea ferestrei în pixeli"
-#: data/org.gnome.Sudoku.gschema.xml:41
+#: data/org.gnome.Sudoku.gschema.xml:46
msgid "Height of the window in pixels"
msgstr "Înălțimea ferestrei în pixeli"
-#: data/org.gnome.Sudoku.gschema.xml:45
+#: data/org.gnome.Sudoku.gschema.xml:50
msgid "true if the window is maximized"
msgstr "adevărat dacă fereastra este maximizată"
-#: data/print-dialog.ui:18
+#: data/org.gnome.Sudoku.gschema.xml:54
+msgid "Initialize the earmarks with the possible values for each cell"
+msgstr "Inițializează marcajele cu valorile posibile pentru fiecare celulă"
+
+#: data/print-dialog.ui:5
msgid "Print Multiple Puzzles"
msgstr "Tipărește puzzle-uri multiple"
-#: data/print-dialog.ui:27
-msgid "_Cancel"
-msgstr "_Anulează"
-
-#: data/print-dialog.ui:65
-msgid "_Number of puzzles"
-msgstr "_Numărul de puzzle-uri"
-
-#: data/print-dialog.ui:101
-msgid "_Number of puzzles per page"
-msgstr "_Numărul de puzzle-uri per pagină"
+#: data/print-dialog.ui:28
+msgid "Number of Puzzles"
+msgstr "Numărul de puzzle-uri"
+
+#: data/print-dialog.ui:41
+msgid "Number of puzzles per page"
+msgstr "Numărul de puzzle-uri pe pagină"
-#: data/print-dialog.ui:138
+#: data/print-dialog.ui:54
msgid "Difficulty"
msgstr "Dificultate"
-#: lib/sudoku-board.vala:591
+#: lib/sudoku-board.vala:657
msgid "Unknown Difficulty"
msgstr "Dificultate necunoscută"
-#: lib/sudoku-board.vala:593
+#: lib/sudoku-board.vala:659
msgid "Easy Difficulty"
msgstr "Dificultate simplă"
-#: lib/sudoku-board.vala:595
+#: lib/sudoku-board.vala:661
msgid "Medium Difficulty"
msgstr "Dificultate medie"
-#: lib/sudoku-board.vala:597
+#: lib/sudoku-board.vala:663
msgid "Hard Difficulty"
msgstr "Dificultate dificilă"
-#: lib/sudoku-board.vala:599
+#: lib/sudoku-board.vala:665
msgid "Very Hard Difficulty"
msgstr "Dificultate foarte dificilă"
-#: lib/sudoku-board.vala:601
+#: lib/sudoku-board.vala:667
msgid "Custom Puzzle"
msgstr "Puzzle personalizat"
@@ -272,32 +299,36 @@
msgstr "Arată valorile posibile pentru fiecare celulă"
#. Error dialog shown when starting a custom game that is not valid.
-#: src/gnome-sudoku.vala:224
+#: src/gnome-sudoku.vala:239
msgid "The puzzle you have entered is not a valid Sudoku."
msgstr "Puzzle-ul pe care l-ați introdus nu este un Sudoku valid."
-#: src/gnome-sudoku.vala:224
+#: src/gnome-sudoku.vala:239
msgid "Please enter a valid puzzle."
msgstr "Introduceți un puzzle valid."
+#: src/gnome-sudoku.vala:240 src/sudoku-printer.vala:46
+msgid "Close"
+msgstr "Închide"
+
#. Warning dialog shown when starting a custom game that has multiple solutions.
-#: src/gnome-sudoku.vala:233
+#: src/gnome-sudoku.vala:248
msgid "The puzzle you have entered has multiple solutions."
msgstr "Puzzle-ul pe care l-ați introdus are soluții multiple."
-#: src/gnome-sudoku.vala:233
+#: src/gnome-sudoku.vala:248
msgid "Valid Sudoku puzzles have exactly one solution."
msgstr "Puzzle-urile Sudoku valide au exact o soluție."
-#: src/gnome-sudoku.vala:235
+#: src/gnome-sudoku.vala:249
msgid "_Back"
msgstr "Î_napoi"
-#: src/gnome-sudoku.vala:236
+#: src/gnome-sudoku.vala:250
msgid "Play _Anyway"
msgstr "Joacă oricum"
-#: src/gnome-sudoku.vala:279
+#: src/gnome-sudoku.vala:292
#, c-format
msgid "Well done, you completed the puzzle in %d minute!"
msgid_plural "Well done, you completed the puzzle in %d minutes!"
@@ -305,20 +336,28 @@
msgstr[1] "Foarte bine, ați completat puzzle-ul în %d minute!"
msgstr[2] "Foarte bine, ați completat puzzle-ul în %d de minute!"
-#: src/gnome-sudoku.vala:283
-msgid "_Quit"
-msgstr "_Ieșire"
+#: src/gnome-sudoku.vala:296
+msgid "Quit"
+msgstr "Ieșire"
-#: src/gnome-sudoku.vala:284
+#: src/gnome-sudoku.vala:297
msgid "Play _Again"
msgstr "Juc_ați din nou"
-#: src/gnome-sudoku.vala:390
+#: src/gnome-sudoku.vala:407
msgid "Reset the board to its original state?"
msgstr "Restabiliți tabla la starea ei originală?"
+#: src/gnome-sudoku.vala:408
+msgid "No"
+msgstr "Nu"
+
+#: src/gnome-sudoku.vala:409
+msgid "Yes"
+msgstr "Da"
+
#. Appears on the About dialog. %s is the version of the QQwing puzzle generator in use.
-#: src/gnome-sudoku.vala:485
+#: src/gnome-sudoku.vala:486
#, c-format
msgid ""
"The popular Japanese logic puzzle\n"
@@ -335,7 +374,7 @@
"Mugurel Tudor <mugurelu(a)gnome.ro>\n"
"Lucian Adrian Grijincu <lucian.grijincu(a)gmail.com>\n"
"Florentina Mușat <florentina [dot] musat [dot] 28 [at] gmail [dot] com>, "
-"2019-2021\n"
+"2019-2021, 2023\n"
"\n"
"Launchpad Contributions:\n"
" Adi Roiban https://launchpad.net/~adiroiban\n"
@@ -353,28 +392,32 @@
" Mugurel Tudor https://launchpad.net/~mugurelu-gnome\n"
" leandrud https://launchpad.net/~leandrud"
-#: src/number-picker.vala:85
+#: src/number-picker.vala:87
msgid "Clear"
msgstr "Eliberează"
#. Error message if printing fails
-#: src/sudoku-printer.vala:47
+#: src/sudoku-printer.vala:45
msgid "Error printing file:"
msgstr "Eroare la tipărirea fișierului:"
-#. Text on overlay when game is paused
-#: src/sudoku-view.vala:634
-msgid "Paused"
-msgstr "Pauzat"
-
-#: src/sudoku-window.vala:153
+#: src/sudoku-window.vala:156
msgid "Select Difficulty"
msgstr "Selectați dificultatea"
-#: src/sudoku-window.vala:214
+#: src/sudoku-window.vala:219
msgid "Create Puzzle"
msgstr "Creează un puzzle"
+#~ msgid "_Create your own puzzle"
+#~ msgstr "_Creați propriul puzzle"
+
+#~ msgid "_Cancel"
+#~ msgstr "_Anulează"
+
+#~ msgid "Paused"
+#~ msgstr "Pauzat"
+
#~ msgid "Reset the board to its original state"
#~ msgstr "Restabilește tabla la starea ei originală"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-sudoku-45.2/src/number-picker.vala new/gnome-sudoku-45.3/src/number-picker.vala
--- old/gnome-sudoku-45.2/src/number-picker.vala 2023-10-20 19:43:48.000000000 +0200
+++ new/gnome-sudoku-45.3/src/number-picker.vala 2023-12-01 15:36:33.000000000 +0100
@@ -131,12 +131,14 @@
}
public void set_earmarks (int row, int col)
+ requires (is_earmark)
{
for (var i = 0; i < board.max_val; i++)
set_earmark (row, col, i, board.is_earmark_enabled (row, col, i + 1));
}
public void set_earmark (int row, int col, int index, bool state)
+ requires (is_earmark)
{
get_button_for (index).set_active (state);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-sudoku-45.2/src/sudoku-cell.vala new/gnome-sudoku-45.3/src/sudoku-cell.vala
--- old/gnome-sudoku-45.2/src/sudoku-cell.vala 2023-10-20 19:43:48.000000000 +0200
+++ new/gnome-sudoku-45.3/src/sudoku-cell.vala 2023-12-01 15:36:33.000000000 +0100
@@ -275,7 +275,7 @@
{
var new_state = !game.board.is_earmark_enabled (row, col, key);
- if (number_picker != null)
+ if (number_picker != null && number_picker.is_earmark)
{
number_picker.set_earmark (row, col, key - 1, new_state);
}
@@ -491,43 +491,45 @@
public void check_warnings ()
{
bool error = false;
+ int solution = game.board.get_solution (row, col);
+ var marks = game.board.get_earmarks (row, col);
if (show_warnings &&
this.value == 0 &&
game.board.count_possibilities (row, col) == 0)
+ {
value_label.set_label ("X");
+ }
else
- value_label.set_label (value.to_string ());
+ value_label.set_label (this.value.to_string ());
- if (warn_incorrect_solution ())
- {
- int solution = game.board.get_solution (row, col);
- if (this.value != 0)
- {
- error = value != solution;
- }
- else
- {
- var marks = game.board.get_earmarks (row, col);
- for (int num = 1; num <= marks.length; num++)
- {
- if (marks[num - 1])
- {
- if (num != solution)
- earmark_labels[num - 1].add_css_class ("error");
- }
- }
- }
- }
+ if (warn_incorrect_solution () && this.value != 0)
+ error = this.value != solution;
if (show_warnings &&
game.board.broken_coords.contains (Coord (row, col)))
+ {
error = true;
+ }
if (error)
add_css_class ("error");
else
remove_css_class ("error");
+
+ if (this.value != 0)
+ return;
+
+ for (int num = 1; num <= marks.length; num++)
+ {
+ if (marks[num - 1])
+ {
+ if (!game.board.is_possible (row, col, num) || warn_incorrect_solution () && num != solution)
+ earmark_labels[num - 1].add_css_class ("error");
+ else
+ earmark_labels[num - 1].remove_css_class ("error");
+ }
+ }
}
// Return true if the user is to be warned when the value or earmarks are
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-sudoku-45.2/src/sudoku-view.vala new/gnome-sudoku-45.3/src/sudoku-view.vala
--- old/gnome-sudoku-45.2/src/sudoku-view.vala 2023-10-20 19:43:48.000000000 +0200
+++ new/gnome-sudoku-45.3/src/sudoku-view.vala 2023-12-01 15:36:33.000000000 +0100
@@ -162,42 +162,54 @@
ShortcutFunc up_func = (self) => {
var view = (SudokuView) self;
+ if (view.selected_row == -1 || view.selected_col == -1)
+ return Gdk.EVENT_PROPAGATE;
+
if (view.selected_row == 0)
view.cells[8, view.selected_col].grab_focus ();
else
view.cells[view.selected_row - 1, view.selected_col].grab_focus ();
- return true;
+ return Gdk.EVENT_STOP;
};
ShortcutFunc down_func = (self) => {
var view = (SudokuView) self;
+ if (view.selected_row == -1 || view.selected_col == -1)
+ return Gdk.EVENT_PROPAGATE;
+
if (view.selected_row == 8)
view.cells[0, view.selected_col].grab_focus ();
else
view.cells[view.selected_row + 1, view.selected_col].grab_focus ();
- return true;
+ return Gdk.EVENT_STOP;
};
ShortcutFunc left_func = (self) => {
var view = (SudokuView) self;
+ if (view.selected_row == -1 || view.selected_col == -1)
+ return Gdk.EVENT_PROPAGATE;
+
if (view.selected_col == 0)
view.cells[view.selected_row, 8].grab_focus ();
else
view.cells[view.selected_row, view.selected_col - 1].grab_focus ();
- return true;
+ return Gdk.EVENT_STOP;
};
ShortcutFunc right_func = (self) => {
var view = (SudokuView) self;
+ if (view.selected_row == -1 || view.selected_col == -1)
+ return Gdk.EVENT_PROPAGATE;
+
if (view.selected_col == 8)
view.cells[view.selected_row, 0].grab_focus ();
else
view.cells[view.selected_row, view.selected_col + 1].grab_focus ();
- return true;
+ return Gdk.EVENT_STOP;
};
add_binding (Gdk.Key.Up, 0, up_func, null);
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package glycin-loaders for openSUSE:Factory checked in at 2023-12-02 17:12:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/glycin-loaders (Old)
and /work/SRC/openSUSE:Factory/.glycin-loaders.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "glycin-loaders"
Sat Dec 2 17:12:54 2023 rev:3 rq:1130310 version:0.1.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/glycin-loaders/glycin-loaders.changes 2023-11-19 20:15:52.566619257 +0100
+++ /work/SRC/openSUSE:Factory/.glycin-loaders.new.25432/glycin-loaders.changes 2023-12-02 17:13:06.817217371 +0100
@@ -1,0 +2,9 @@
+Thu Nov 30 12:58:21 UTC 2023 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Run service with new obs-service-cargo, drop cargo_config as
+ source and clean up spec and. Cargo_audit and cargo_config are
+ now part of the cargo_vendor tarball/service, but in this case,
+ since the sourcedir in _service is called glycin, we need to keep
+ the manual set cargo_audit in _service to clear validation.
+
+-------------------------------------------------------------------
Old:
----
cargo_config
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ glycin-loaders.spec ++++++
--- /var/tmp/diff_new_pack.9RtGl9/_old 2023-12-02 17:13:08.649284510 +0100
+++ /var/tmp/diff_new_pack.9RtGl9/_new 2023-12-02 17:13:08.649284510 +0100
@@ -23,8 +23,7 @@
License: LGPL-2.1-or-later OR MPL-2.0
URL: https://gitlab.gnome.org/sophie-h/glycin
Source0: %{name}-%{version}.tar.zst
-Source2: vendor.tar.zst
-Source3: cargo_config
+Source1: vendor.tar.zst
BuildRequires: cargo-packaging
BuildRequires: git
@@ -39,9 +38,7 @@
Sandboxed and extendable image decoding.
%prep
-%autosetup -p1 -a2
-mkdir .cargo
-cp %{SOURCE3} .cargo/config
+%autosetup -p1 -a1
%build
export RUSTFLAGS="%{build_rustflags}"
++++++ glycin-loaders-0.1.2.obscpio ++++++
/work/SRC/openSUSE:Factory/glycin-loaders/glycin-loaders-0.1.2.obscpio /work/SRC/openSUSE:Factory/.glycin-loaders.new.25432/glycin-loaders-0.1.2.obscpio differ: char 131069, line 4269
++++++ vendor.tar.zst ++++++
Binary files /var/tmp/diff_new_pack.9RtGl9/_old and /var/tmp/diff_new_pack.9RtGl9/_new differ
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package inkscape for openSUSE:Factory checked in at 2023-12-02 17:12:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/inkscape (Old)
and /work/SRC/openSUSE:Factory/.inkscape.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "inkscape"
Sat Dec 2 17:12:52 2023 rev:130 rq:1130354 version:1.3.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/inkscape/inkscape.changes 2023-11-20 21:18:35.712690835 +0100
+++ /work/SRC/openSUSE:Factory/.inkscape.new.25432/inkscape.changes 2023-12-02 17:13:05.205158296 +0100
@@ -1,0 +2,14 @@
+Fri Dec 1 19:23:07 UTC 2023 - thod_(a)gmx.de
+
+- Update to version 1.3.2:
+ + important bugfix release, fixes a data loss bug in 1.3.1
+ + Stars, polygons, spirals, 3D boxes are now saved correctly
+ + The data that was lost when saving these shapes,
+ can be recovered in 1.3.2 if you manually make an edit:
+ To fix all missing shapes at once, you can select all elements
+ in all layers (Ctrl + Alt + A, need to unlock them first),
+ and move them right and back left again with a press on the arrow keys
+ + See the full release notes
+ https://inkscape.org/release/inkscape-1.3.2
+
+-------------------------------------------------------------------
Old:
----
inkscape-1.3.1_2023-11-16_91b66b0783.tar.xz
inkscape-1.3.1_2023-11-16_91b66b0783.tar.xz.sig
New:
----
inkscape-1.3.2_2023-11-25_091e20ef0f.tar.xz
inkscape-1.3.2_2023-11-25_091e20ef0f.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ inkscape.spec ++++++
--- /var/tmp/diff_new_pack.XGkcGq/_old 2023-12-02 17:13:06.317199048 +0100
+++ /var/tmp/diff_new_pack.XGkcGq/_new 2023-12-02 17:13:06.317199048 +0100
@@ -16,16 +16,16 @@
#
-%define _version 1.3.1_2023-11-16_91b66b0783
+%define _version 1.3.2_2023-11-25_091e20ef0f
Name: inkscape
-Version: 1.3.1
+Version: 1.3.2
Release: 0
Summary: Vector Illustration Program
License: GPL-3.0-only
URL: https://inkscape.org/
-Source: https://inkscape.org/gallery/item/44467/inkscape-%{version}.tar.xz#/inkscap…
+Source: https://inkscape.org/gallery/item/44615/inkscape-%{version}.tar.xz#/inkscap…
# openSUSE palette file
Source1: openSUSE.gpl
Source2: inkscape-split-extensions-extra.py
++++++ inkscape-1.3.1_2023-11-16_91b66b0783.tar.xz -> inkscape-1.3.2_2023-11-25_091e20ef0f.tar.xz ++++++
/work/SRC/openSUSE:Factory/inkscape/inkscape-1.3.1_2023-11-16_91b66b0783.tar.xz /work/SRC/openSUSE:Factory/.inkscape.new.25432/inkscape-1.3.2_2023-11-25_091e20ef0f.tar.xz differ: char 27, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libkolabxml for openSUSE:Factory checked in at 2023-12-02 17:12:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libkolabxml (Old)
and /work/SRC/openSUSE:Factory/.libkolabxml.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libkolabxml"
Sat Dec 2 17:12:49 2023 rev:35 rq:1130258 version:1.1.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/libkolabxml/libkolabxml.changes 2022-01-05 13:39:25.277509948 +0100
+++ /work/SRC/openSUSE:Factory/.libkolabxml.new.25432/libkolabxml.changes 2023-12-02 17:13:00.880999834 +0100
@@ -1,0 +2,6 @@
+Fri Dec 1 14:24:07 UTC 2023 - Christophe Marin <christophe(a)krop.fr>
+
+- Switch to %autosetup and %ldconfig_scriptlets
+- Replace the package URL
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libkolabxml.spec ++++++
--- /var/tmp/diff_new_pack.Zjmfve/_old 2023-12-02 17:13:02.281051140 +0100
+++ /var/tmp/diff_new_pack.Zjmfve/_new 2023-12-02 17:13:02.281051140 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libkolabxml
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -29,12 +29,14 @@
Summary: Kolab XML Format Schema Definitions Library
License: LGPL-3.0-or-later
Group: Development/Libraries/C and C++
-URL: https://kolab.org/about/libkolabxml
+URL: https://git.kolab.org/diffusion/LKX/
Source: %{name}-%{version}.tar.gz
# PATCH-FIX-UPSTREAM
Patch0: 0001-Make-sure-boost-is-found-when-using-libkolabxml.patch
BuildRequires: cmake
BuildRequires: gcc-c++
+BuildRequires: libboost_system-devel
+BuildRequires: libboost_thread-devel
BuildRequires: libcurl-devel
BuildRequires: libxerces-c-devel >= 3.0
BuildRequires: pkgconfig
@@ -43,8 +45,6 @@
%if %{with php}
BuildRequires: php-devel >= 5.3
%endif
-BuildRequires: libboost_system-devel
-BuildRequires: libboost_thread-devel
%if %{with java}
BuildRequires: java-devel
%endif
@@ -169,8 +169,7 @@
This package provides the php bindings for Libkolabxml
%prep
-%setup -q
-%patch0 -p1
+%autosetup -p1
%build
# Tests require X server and net
@@ -219,8 +218,7 @@
ctest -V ||:
%endif
-%post -n %{libname} -p /sbin/ldconfig
-%postun -n %{libname} -p /sbin/ldconfig
+%ldconfig_scriptlets -n %{libname}
%files -n %{libname}
%license COPYING
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-Net-DNS for openSUSE:Factory checked in at 2023-12-02 17:12:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Net-DNS (Old)
and /work/SRC/openSUSE:Factory/.perl-Net-DNS.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Net-DNS"
Sat Dec 2 17:12:48 2023 rev:74 rq:1130245 version:1.410.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Net-DNS/perl-Net-DNS.changes 2023-09-29 21:14:01.122711678 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Net-DNS.new.25432/perl-Net-DNS.changes 2023-12-02 17:13:00.088970808 +0100
@@ -1,0 +2,6 @@
+Tue Nov 28 03:08:49 UTC 2023 - Tina Müller <timueller+perl(a)suse.de>
+
+- updated to 1.41
+ see /usr/share/doc/packages/perl-Net-DNS/Changes
+
+-------------------------------------------------------------------
Old:
----
Net-DNS-1.40.tar.gz
New:
----
Net-DNS-1.41.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Net-DNS.spec ++++++
--- /var/tmp/diff_new_pack.8QCXfz/_old 2023-12-02 17:13:00.604989718 +0100
+++ /var/tmp/diff_new_pack.8QCXfz/_new 2023-12-02 17:13:00.604989718 +0100
@@ -18,9 +18,9 @@
%define cpan_name Net-DNS
Name: perl-Net-DNS
-Version: 1.400.0
+Version: 1.410.0
Release: 0
-%define cpan_version 1.40
+%define cpan_version 1.41
License: MIT
Summary: Perl Interface to the Domain Name System
URL: https://metacpan.org/release/%{cpan_name}
@@ -58,7 +58,7 @@
Requires: perl(PerlIO) >= 1.05
Requires: perl(Scalar::Util) >= 1.19
Requires: perl(Time::Local) >= 1.19
-Provides: perl(Net::DNS) = 1.400.0
+Provides: perl(Net::DNS) = %{version}
Provides: perl(Net::DNS::Domain)
Provides: perl(Net::DNS::DomainName)
Provides: perl(Net::DNS::DomainName1035)
++++++ Net-DNS-1.40.tar.gz -> Net-DNS-1.41.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/Changes new/Net-DNS-1.41/Changes
--- old/Net-DNS-1.40/Changes 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/Changes 2023-11-27 14:22:19.000000000 +0100
@@ -1,4 +1,14 @@
-$Id: Changes 1936 2023-08-30 18:05:44Z willem $ -*-text-*-
+$Id: Changes 1952 2023-11-27 13:22:08Z willem $ -*-text-*-
+
+
+**** 1.41 Nov 28, 2023
+
+ Accept inbound Ethernet "Jumbo" UDP packet.
+ Facilitate decoding of mDNS/SD packets with compressed RDATA.
+ Update Parameters.pm to resync with IANA registry.
+
+Fix rt.cpan.org #150550
+ Error trying to use Socket macro SO_REUSEPORT in Windows
**** 1.40 Aug 30, 2023
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/META.json new/Net-DNS-1.41/META.json
--- old/Net-DNS-1.40/META.json 2023-08-30 20:06:01.000000000 +0200
+++ new/Net-DNS-1.41/META.json 2023-11-27 14:22:30.000000000 +0100
@@ -6,7 +6,7 @@
"Michael Fuhr"
],
"dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 7.64, CPAN::Meta::Converter version 2.150010",
+ "generated_by" : "ExtUtils::MakeMaker version 7.70, CPAN::Meta::Converter version 2.150010",
"license" : [
"mit"
],
@@ -71,6 +71,6 @@
}
},
"release_status" : "stable",
- "version" : "1.40",
- "x_serialization_backend" : "JSON::PP version 4.08"
+ "version" : "1.41",
+ "x_serialization_backend" : "JSON::PP version 4.16"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/META.yml new/Net-DNS-1.41/META.yml
--- old/Net-DNS-1.40/META.yml 2023-08-30 20:06:01.000000000 +0200
+++ new/Net-DNS-1.41/META.yml 2023-11-27 14:22:30.000000000 +0100
@@ -17,7 +17,7 @@
IO::File: '1.14'
IO::Socket::IP: '0.38'
dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 7.64, CPAN::Meta::Converter version 2.150010'
+generated_by: 'ExtUtils::MakeMaker version 7.70, CPAN::Meta::Converter version 2.150010'
license: mit
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -47,5 +47,5 @@
Scalar::Util: '1.19'
Time::Local: '1.19'
perl: '5.008009'
-version: '1.40'
+version: '1.41'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/contrib/check_soa new/Net-DNS-1.41/contrib/check_soa
--- old/Net-DNS-1.40/contrib/check_soa 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/contrib/check_soa 2023-11-27 14:22:19.000000000 +0100
@@ -3,7 +3,7 @@
use strict;
use warnings;
-my $VERSION = (qw$LastChangedRevision: 1811 $)[1];
+my $VERSION = (qw$LastChangedRevision: 1944 $)[1];
=head1 NAME
@@ -114,7 +114,7 @@
=head1 COPYRIGHT
-(c) 2003-2011 Dick Franks E<lt>rwfranks[...]acm.orgE<gt>
+(c)2003-2011,2014 Dick Franks E<lt>rwfranks[...]acm.orgE<gt>
All rights reserved.
@@ -150,12 +150,6 @@
=cut
-use constant UTF8 => scalar eval { ## not UTF-EBCDIC [see UTR#16 3.6]
- require Encode;
- Encode::encode_utf8( chr(182) ) eq pack( 'H*', 'C2B6' );
-};
-
-
my $self = $0; # script
my $options = 'dnstv'; # options
@@ -171,9 +165,7 @@
END
-my ( $target, @nameserver ) = @ARGV;
-
-my $domain = UTF8 && $target =~ /[^\000-\177]/ ? Encode::decode_utf8($target) : $target;
+my ( $domain, @nameserver ) = @ARGV;
require Net::DNS;
@@ -201,16 +193,10 @@
$resolver->nameservers(@nameserver) or die $resolver->string;
-my $question = Net::DNS::Question->new($domain); # invert IP address/prefix
-my $name = lc $question->qname;
-my $NetDNSrev = &Net::DNS::version;
-die "\tFeature not supported by Net::DNS $NetDNSrev\n" if $name =~ m#[:/\s]|\.\d+$#;
+my $zone = find_zonecut($domain); # (also inverts IP address/prefix)
-my $packet = $resolver->send( "_nx_.$name", 'CNAME' ) or die $resolver->errorstring;
-my ($zone) = map { lc( $_->name ) } $packet->authority;
-
-my @ns = ( $zone or $name eq '.' ) ? NS($zone) : (); # find NS serving name
-die "\nno such zone: $name\n\n", $resolver->string unless @ns; # game over
+my @ns = ( $zone ne '.' ) ? NS($zone) : (); # find NS serving zone
+die "\ninvalid: $domain\n\n", $resolver->string unless @ns; # game over
my @nsname = grep { $_ ne $zone } map { $_->nsdname } @ns; # extract server names from NS records
@@ -273,7 +259,7 @@
$resolver->usevc(1); # no longer ok to query ANY over UDP
$resolver->nameservers(@server);
-displayRR( $name, 'ANY' );
+displayRR( $domain, 'ANY' );
print "----\n";
@@ -521,20 +507,28 @@
}
+sub find_zonecut {
+ my $name = shift;
+ require Net::DNS::Resolver::Recurse;
+ my $resolver = Net::DNS::Resolver::Recurse->new();
+ my $response = $resolver->send( $name, 'NULL' ) || die $resolver->errorstring;
+ my ($cut) = map { $_->name } $response->authority;
+ return $cut || die "failed to find zone cut for $name";
+}
+
+
sub ordered { ## irreflexive 32-bit partial ordering
- use integer;
- my ( $l, $r ) = @_;
+ my ( $n1, $n2 ) = @_;
- return defined $r unless defined $l; # ( undef, any )
- return 0 unless defined $r; # ( any, undef )
+ return 0 unless defined $n2; # ( any, undef )
+ return 1 unless defined $n1; # ( undef, any )
- # unwise to assume 32-bit arithmetic, or that integer overflow goes unpunished
- if ( $l < 0 ) { # translate $a<0 region
- $l = ( $l ^ 0x80000000 ) & 0xFFFFFFFF; # 0 <= $l < 2**31
- $r = ( $r ^ 0x80000000 ) & 0xFFFFFFFF; # -2**31 <= $r < 2**32
- }
+ # unwise to assume 64-bit arithmetic, or that 32-bit integer overflow goes unpunished
+ use integer; # fold, leaving $n2 non-negative
+ $n1 = ( $n1 & 0xFFFFFFFF ) ^ ( $n2 & 0x80000000 ); # -2**31 <= $n1 < 2**32
+ $n2 = ( $n2 & 0x7FFFFFFF ); # 0 <= $n2 < 2**31
- return $l < $r ? ( $l > ( $r - 0x80000000 ) ) : ( $b < ( $l - 0x80000000 ) );
+ return $n1 < $n2 ? ( $n1 > ( $n2 - 0x80000000 ) ) : ( $n2 < ( $n1 - 0x80000000 ) );
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/contrib/find_zonecut new/Net-DNS-1.41/contrib/find_zonecut
--- old/Net-DNS-1.40/contrib/find_zonecut 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/contrib/find_zonecut 2023-11-27 14:22:19.000000000 +0100
@@ -3,7 +3,7 @@
use strict;
use warnings;
-my $VERSION = (qw$LastChangedRevision: 1811 $)[1] || 0.01;
+my $VERSION = (qw$LastChangedRevision: 1944 $)[1];
=head1 NAME
@@ -24,15 +24,15 @@
use Net::DNS;
-my $resolver = Net::DNS::Resolver->new();
-
print find_zonecut(shift), "\n";
-sub find_zonecut { ## Copyright (c)2014 Dick Franks
- my $name = shift;
- my $reply = $resolver->send( "*.$name", 'NULL' ) || die $resolver->errorstring;
- my ($cut) = map { $_->name } $reply->authority;
+sub find_zonecut {
+ my $name = shift;
+ require Net::DNS::Resolver::Recurse;
+ my $resolver = Net::DNS::Resolver::Recurse->new();
+ my $response = $resolver->send( $name, 'NULL' ) || die $resolver->errorstring;
+ my ($cut) = map { $_->name } $response->authority;
return $cut || die "failed to find zone cut for $name";
}
@@ -41,7 +41,7 @@
=head1 COPYRIGHT
-(c)2014 Dick Franks E<lt>rwfranks[...]acm.orgE<gt>
+(c)2014 Dick Franks E<lt>rwfranks[...]acm.orgE<gt>
All rights reserved.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/lib/Net/DNS/Nameserver.pm new/Net-DNS-1.41/lib/Net/DNS/Nameserver.pm
--- old/Net-DNS-1.40/lib/Net/DNS/Nameserver.pm 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/lib/Net/DNS/Nameserver.pm 2023-11-27 14:22:19.000000000 +0100
@@ -3,7 +3,7 @@
use strict;
use warnings;
-our $VERSION = (qw$Id: Nameserver.pm 1925 2023-05-31 11:58:59Z willem $)[2];
+our $VERSION = (qw$Id: Nameserver.pm 1949 2023-11-27 11:51:17Z willem $)[2];
=head1 NAME
@@ -44,8 +44,10 @@
use Net::DNS;
use Net::DNS::ZoneFile;
-use IO::Socket::IP 0.38;
use IO::Select;
+use IO::Socket::IP 0.38;
+use IO::Socket;
+use Socket;
use constant USE_POSIX => defined eval 'use POSIX ":sys_wait_h"; 1'; ## no critic
@@ -54,6 +56,17 @@
use constant PACKETSZ => 512;
+use constant SOCKOPT => eval {
+ my @sockopt;
+ push @sockopt, eval '[SOL_SOCKET, SO_REUSEADDR]'; ## no critic
+ push @sockopt, eval '[SOL_SOCKET, SO_REUSEPORT]'; ## no critic
+
+ my $pretest = sub { # check that options safe to use
+ return eval { IO::Socket::IP->new( Proto => "udp", Sockopts => [shift], Type => SOCK_DGRAM ) }
+ };
+ return grep { &$pretest($_) } @sockopt; # without any guarantee that they work!
+};
+
#------------------------------------------------------------------------------
# Constructor.
@@ -409,8 +422,8 @@
return $pid; ## parent
}
- # else ... ## child
- $coderef->();
+ # else ...
+ $coderef->(); ## child
exit;
}
@@ -459,8 +472,7 @@
my $socket = IO::Socket::IP->new(
LocalAddr => $ip,
LocalPort => $port,
- ReuseAddr => 1,
- ReusePort => 1,
+ Sockopt => [SOCKOPT],
Proto => "tcp",
Listen => SOMAXCONN,
Type => SOCK_STREAM
@@ -500,8 +512,7 @@
my $socket = IO::Socket::IP->new(
LocalAddr => $ip,
LocalPort => $port,
- ReuseAddr => 1,
- ReusePort => 1,
+ Sockopt => [SOCKOPT],
Proto => "udp",
Type => SOCK_DGRAM
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/lib/Net/DNS/Packet.pm new/Net-DNS-1.41/lib/Net/DNS/Packet.pm
--- old/Net-DNS-1.40/lib/Net/DNS/Packet.pm 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/lib/Net/DNS/Packet.pm 2023-11-27 14:22:19.000000000 +0100
@@ -3,7 +3,7 @@
use strict;
use warnings;
-our $VERSION = (qw$Id: Packet.pm 1925 2023-05-31 11:58:59Z willem $)[2];
+our $VERSION = (qw$Id: Packet.pm 1947 2023-11-23 09:40:45Z willem $)[2];
=head1 NAME
@@ -398,9 +398,10 @@
my $header = $self->header;
my $opcode = $header->opcode;
+ my $packet = $header->qr ? 'Response' : 'Query';
my $server = $self->{replyfrom};
my $length = $self->{replysize};
- my $origin = $server ? ";; Response received from $server ($length octets)\n" : "";
+ my $origin = $server ? ";; $packet received from [$server] $length octets\n" : "";
my @record = ( "$origin;; HEADER SECTION", $header->string );
if ( $opcode eq 'DSO' ) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/lib/Net/DNS/Parameters.pm new/Net-DNS-1.41/lib/Net/DNS/Parameters.pm
--- old/Net-DNS-1.40/lib/Net/DNS/Parameters.pm 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/lib/Net/DNS/Parameters.pm 2023-11-27 14:22:19.000000000 +0100
@@ -3,13 +3,13 @@
################################################
##
## Domain Name System (DNS) Parameters
-## (last updated 2023-04-28)
+## (last updated 2023-11-08)
##
################################################
use strict;
use warnings;
-our $VERSION = (qw$Id: Parameters.pm 1921 2023-05-08 18:39:59Z willem $)[2];
+our $VERSION = (qw$Id: Parameters.pm 1945 2023-11-22 08:02:31Z willem $)[2];
use integer;
use Carp;
@@ -112,8 +112,8 @@
OPENPGPKEY => 61, # RFC7929
CSYNC => 62, # RFC7477
ZONEMD => 63, # RFC8976
- SVCB => 64, # RFC-ietf-dnsop-svcb-https-12
- HTTPS => 65, # RFC-ietf-dnsop-svcb-https-12
+ SVCB => 64, # RFC9460
+ HTTPS => 65, # RFC9460
SPF => 99, # RFC7208
UINFO => 100, # IANA-Reserved
UID => 101, # IANA-Reserved
@@ -137,6 +137,7 @@
AVC => 258, #
DOA => 259, # draft-durand-doa-over-dns
AMTRELAY => 260, # RFC8777
+ RESINFO => 261, # draft-ietf-add-resolver-info-06
TA => 32768, # http://cameo.library.cmu.edu/ http://www.watson.org/~weiler/INI1999-19.pdf
DLV => 32769, # RFC8749 RFC4431
);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/lib/Net/DNS/RR/AFSDB.pm new/Net-DNS-1.41/lib/Net/DNS/RR/AFSDB.pm
--- old/Net-DNS-1.40/lib/Net/DNS/RR/AFSDB.pm 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/lib/Net/DNS/RR/AFSDB.pm 2023-11-27 14:22:19.000000000 +0100
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = (qw$Id: AFSDB.pm 1898 2023-02-15 14:27:22Z willem $)[2];
+our $VERSION = (qw$Id: AFSDB.pm 1945 2023-11-22 08:02:31Z willem $)[2];
use base qw(Net::DNS::RR);
@@ -19,10 +19,10 @@
sub _decode_rdata { ## decode rdata from wire-format octet string
- my ( $self, $data, $offset ) = @_;
+ my ( $self, $data, $offset, @opaque ) = @_;
$self->{subtype} = unpack "\@$offset n", $$data;
- $self->{hostname} = Net::DNS::DomainName2535->decode( $data, $offset + 2 );
+ $self->{hostname} = Net::DNS::DomainName2535->decode( $data, $offset + 2, @opaque );
return;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/lib/Net/DNS/RR/HTTPS.pm new/Net-DNS-1.41/lib/Net/DNS/RR/HTTPS.pm
--- old/Net-DNS-1.40/lib/Net/DNS/RR/HTTPS.pm 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/lib/Net/DNS/RR/HTTPS.pm 2023-11-27 14:22:19.000000000 +0100
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = (qw$Id: HTTPS.pm 1896 2023-01-30 12:59:25Z willem $)[2];
+our $VERSION = (qw$Id: HTTPS.pm 1945 2023-11-22 08:02:31Z willem $)[2];
use base qw(Net::DNS::RR::SVCB);
@@ -76,4 +76,6 @@
L<perl> L<Net::DNS> L<Net::DNS::RR>
L<Net::DNS::RR::SVCB>
+L<RFC9460|https://tools.ietf.org/html/rfc9460>
+
=cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/lib/Net/DNS/RR/KX.pm new/Net-DNS-1.41/lib/Net/DNS/RR/KX.pm
--- old/Net-DNS-1.40/lib/Net/DNS/RR/KX.pm 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/lib/Net/DNS/RR/KX.pm 2023-11-27 14:22:19.000000000 +0100
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = (qw$Id: KX.pm 1898 2023-02-15 14:27:22Z willem $)[2];
+our $VERSION = (qw$Id: KX.pm 1945 2023-11-22 08:02:31Z willem $)[2];
use base qw(Net::DNS::RR);
@@ -19,10 +19,10 @@
sub _decode_rdata { ## decode rdata from wire-format octet string
- my ( $self, $data, $offset ) = @_;
+ my ( $self, $data, $offset, @opaque ) = @_;
$self->{preference} = unpack( "\@$offset n", $$data );
- $self->{exchange} = Net::DNS::DomainName2535->decode( $data, $offset + 2 );
+ $self->{exchange} = Net::DNS::DomainName2535->decode( $data, $offset + 2, @opaque );
return;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/lib/Net/DNS/RR/MX.pm new/Net-DNS-1.41/lib/Net/DNS/RR/MX.pm
--- old/Net-DNS-1.40/lib/Net/DNS/RR/MX.pm 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/lib/Net/DNS/RR/MX.pm 2023-11-27 14:22:19.000000000 +0100
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = (qw$Id: MX.pm 1896 2023-01-30 12:59:25Z willem $)[2];
+our $VERSION = (qw$Id: MX.pm 1945 2023-11-22 08:02:31Z willem $)[2];
use base qw(Net::DNS::RR);
@@ -19,8 +19,7 @@
sub _decode_rdata { ## decode rdata from wire-format octet string
- my ( $self, @argument ) = @_;
- my ( $data, $offset, @opaque ) = @argument;
+ my ( $self, $data, $offset, @opaque ) = @_;
$self->{preference} = unpack( "\@$offset n", $$data );
$self->{exchange} = Net::DNS::DomainName1035->decode( $data, $offset + 2, @opaque );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/lib/Net/DNS/RR/NSEC.pm new/Net-DNS-1.41/lib/Net/DNS/RR/NSEC.pm
--- old/Net-DNS-1.40/lib/Net/DNS/RR/NSEC.pm 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/lib/Net/DNS/RR/NSEC.pm 2023-11-27 14:22:19.000000000 +0100
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = (qw$Id: NSEC.pm 1896 2023-01-30 12:59:25Z willem $)[2];
+our $VERSION = (qw$Id: NSEC.pm 1945 2023-11-22 08:02:31Z willem $)[2];
use base qw(Net::DNS::RR);
@@ -20,10 +20,10 @@
sub _decode_rdata { ## decode rdata from wire-format octet string
- my ( $self, $data, $offset ) = @_;
+ my ( $self, $data, $offset, @opaque ) = @_;
my $limit = $offset + $self->{rdlength};
- ( $self->{nxtdname}, $offset ) = Net::DNS::DomainName->decode( $data, $offset );
+ ( $self->{nxtdname}, $offset ) = Net::DNS::DomainName->decode( $data, $offset, @opaque );
$self->{typebm} = substr $$data, $offset, $limit - $offset;
return;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/lib/Net/DNS/RR/PX.pm new/Net-DNS-1.41/lib/Net/DNS/RR/PX.pm
--- old/Net-DNS-1.40/lib/Net/DNS/RR/PX.pm 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/lib/Net/DNS/RR/PX.pm 2023-11-27 14:22:19.000000000 +0100
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = (qw$Id: PX.pm 1898 2023-02-15 14:27:22Z willem $)[2];
+our $VERSION = (qw$Id: PX.pm 1945 2023-11-22 08:02:31Z willem $)[2];
use base qw(Net::DNS::RR);
@@ -19,11 +19,11 @@
sub _decode_rdata { ## decode rdata from wire-format octet string
- my ( $self, $data, $offset ) = @_;
+ my ( $self, $data, $offset, @opaque ) = @_;
$self->{preference} = unpack( "\@$offset n", $$data );
- ( $self->{map822}, $offset ) = Net::DNS::DomainName2535->decode( $data, $offset + 2 );
- ( $self->{mapx400}, $offset ) = Net::DNS::DomainName2535->decode( $data, $offset );
+ ( $self->{map822}, $offset ) = Net::DNS::DomainName2535->decode( $data, $offset + 2, @opaque );
+ ( $self->{mapx400}, $offset ) = Net::DNS::DomainName2535->decode( $data, $offset, @opaque );
return;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/lib/Net/DNS/RR/RP.pm new/Net-DNS-1.41/lib/Net/DNS/RR/RP.pm
--- old/Net-DNS-1.40/lib/Net/DNS/RR/RP.pm 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/lib/Net/DNS/RR/RP.pm 2023-11-27 14:22:19.000000000 +0100
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = (qw$Id: RP.pm 1898 2023-02-15 14:27:22Z willem $)[2];
+our $VERSION = (qw$Id: RP.pm 1945 2023-11-22 08:02:31Z willem $)[2];
use base qw(Net::DNS::RR);
@@ -20,10 +20,10 @@
sub _decode_rdata { ## decode rdata from wire-format octet string
- my ( $self, $data, $offset ) = @_;
+ my ( $self, $data, $offset, @opaque ) = @_;
- ( $self->{mbox}, $offset ) = Net::DNS::Mailbox2535->decode( $data, $offset );
- $self->{txtdname} = Net::DNS::DomainName2535->decode( $data, $offset );
+ ( $self->{mbox}, $offset ) = Net::DNS::Mailbox2535->decode( $data, $offset, @opaque );
+ $self->{txtdname} = Net::DNS::DomainName2535->decode( $data, $offset, @opaque );
return;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/lib/Net/DNS/RR/RT.pm new/Net-DNS-1.41/lib/Net/DNS/RR/RT.pm
--- old/Net-DNS-1.40/lib/Net/DNS/RR/RT.pm 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/lib/Net/DNS/RR/RT.pm 2023-11-27 14:22:19.000000000 +0100
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = (qw$Id: RT.pm 1898 2023-02-15 14:27:22Z willem $)[2];
+our $VERSION = (qw$Id: RT.pm 1945 2023-11-22 08:02:31Z willem $)[2];
use base qw(Net::DNS::RR);
@@ -19,10 +19,10 @@
sub _decode_rdata { ## decode rdata from wire-format octet string
- my ( $self, $data, $offset ) = @_;
+ my ( $self, $data, $offset, @opaque ) = @_;
$self->{preference} = unpack( "\@$offset n", $$data );
- $self->{intermediate} = Net::DNS::DomainName2535->decode( $data, $offset + 2 );
+ $self->{intermediate} = Net::DNS::DomainName2535->decode( $data, $offset + 2, @opaque );
return;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/lib/Net/DNS/RR/SOA.pm new/Net-DNS-1.41/lib/Net/DNS/RR/SOA.pm
--- old/Net-DNS-1.40/lib/Net/DNS/RR/SOA.pm 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/lib/Net/DNS/RR/SOA.pm 2023-11-27 14:22:19.000000000 +0100
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = (qw$Id: SOA.pm 1931 2023-08-23 13:14:15Z willem $)[2];
+our $VERSION = (qw$Id: SOA.pm 1945 2023-11-22 08:02:31Z willem $)[2];
use base qw(Net::DNS::RR);
@@ -20,10 +20,9 @@
sub _decode_rdata { ## decode rdata from wire-format octet string
- my ( $self, @argument ) = @_;
- my ( $data, $offset, @opaque ) = @argument;
+ my ( $self, $data, $offset, @opaque ) = @_;
- ( $self->{mname}, $offset ) = Net::DNS::DomainName1035->decode(@argument);
+ ( $self->{mname}, $offset ) = Net::DNS::DomainName1035->decode( $data, $offset, @opaque );
( $self->{rname}, $offset ) = Net::DNS::Mailbox1035->decode( $data, $offset, @opaque );
@{$self}{qw(serial refresh retry expire minimum)} = unpack "\@$offset N5", $$data;
return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/lib/Net/DNS/RR/SRV.pm new/Net-DNS-1.41/lib/Net/DNS/RR/SRV.pm
--- old/Net-DNS-1.40/lib/Net/DNS/RR/SRV.pm 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/lib/Net/DNS/RR/SRV.pm 2023-11-27 14:22:19.000000000 +0100
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = (qw$Id: SRV.pm 1898 2023-02-15 14:27:22Z willem $)[2];
+our $VERSION = (qw$Id: SRV.pm 1945 2023-11-22 08:02:31Z willem $)[2];
use base qw(Net::DNS::RR);
@@ -19,11 +19,11 @@
sub _decode_rdata { ## decode rdata from wire-format octet string
- my ( $self, $data, $offset ) = @_;
+ my ( $self, $data, $offset, @opaque ) = @_;
@{$self}{qw(priority weight port)} = unpack( "\@$offset n3", $$data );
- $self->{target} = Net::DNS::DomainName2535->decode( $data, $offset + 6 );
+ $self->{target} = Net::DNS::DomainName2535->decode( $data, $offset + 6, @opaque );
return;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/lib/Net/DNS/RR/SVCB.pm new/Net-DNS-1.41/lib/Net/DNS/RR/SVCB.pm
--- old/Net-DNS-1.40/lib/Net/DNS/RR/SVCB.pm 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/lib/Net/DNS/RR/SVCB.pm 2023-11-27 14:22:19.000000000 +0100
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = (qw$Id: SVCB.pm 1930 2023-08-21 14:10:10Z willem $)[2];
+our $VERSION = (qw$Id: SVCB.pm 1945 2023-11-22 08:02:31Z willem $)[2];
use base qw(Net::DNS::RR);
@@ -35,22 +35,19 @@
sub _decode_rdata { ## decode rdata from wire-format octet string
- my ( $self, $data, $offset ) = @_;
+ my ( $self, $data, $offset, @opaque ) = @_;
- my $rdata = substr $$data, $offset, $self->{rdlength};
- $self->{SvcPriority} = unpack( 'n', $rdata );
-
- my $index;
- ( $self->{TargetName}, $index ) = Net::DNS::DomainName->decode( \$rdata, 2 );
+ my $limit = $offset + $self->{rdlength};
+ $self->{SvcPriority} = unpack( "\@$offset n", $$data );
+ ( $self->{TargetName}, $offset ) = Net::DNS::DomainName->decode( $data, $offset + 2, @opaque );
my $params = $self->{SvcParams} = [];
- my $limit = length($rdata) - 3;
- while ( $index < $limit ) {
- my ( $key, $size ) = unpack( "\@$index n2", $rdata );
- push @$params, ( $key, substr $rdata, $index + 4, $size );
- $index += ( $size + 4 );
+ while ( $offset < $limit ) {
+ my ( $key, $size ) = unpack( "\@$offset n2", $$data );
+ push @$params, ( $key, substr $$data, $offset + 4, $size );
+ $offset += ( $size + 4 );
}
- die $self->type . ': corrupt RDATA' unless $index == length($rdata);
+ die $self->type . ': corrupt RDATA' unless $offset == $limit;
return;
}
@@ -255,7 +252,7 @@
s/\\,/\\044/g; # disguise (RFC1035) escaped comma
die <<"QQ" if /\\092,|\\092\\092/;
SVCB: Please use standard RFC1035 escapes
- draft-ietf-dnsop-svcb-https double-escape nonsense not implemented
+ RFC9460 double-escape nonsense not implemented
QQ
return _presentation( map { Net::DNS::Text->new($_)->encode() } split /,/ );
}
@@ -350,7 +347,7 @@
$string = $rr->port(); # \004\210
$rr->key3($string);
-Constructor methods for mnemonic SvcParams defined in draft-ietf-dnsop-svcb-https.
+Constructor methods for mnemonic SvcParams prescribed by RFC9460.
When invoked without arguments, the methods return the presentation format
value for the underlying key.
The behaviour with undefined arguments is not specified.
@@ -399,8 +396,7 @@
=head1 SEE ALSO
L<perl> L<Net::DNS> L<Net::DNS::RR>
-draft-ietf-dnsop-svcb-https,
-L<RFC1035|https://tools.ietf.org/html/rfc1035>
+L<RFC9460|https://tools.ietf.org/html/rfc9460>
L<Service Parameter Keys|https://www.iana.org/assignments/dns-svcb>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/lib/Net/DNS/Resolver/Base.pm new/Net-DNS-1.41/lib/Net/DNS/Resolver/Base.pm
--- old/Net-DNS-1.40/lib/Net/DNS/Resolver/Base.pm 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/lib/Net/DNS/Resolver/Base.pm 2023-11-27 14:22:19.000000000 +0100
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = (qw$Id: Base.pm 1930 2023-08-21 14:10:10Z willem $)[2];
+our $VERSION = (qw$Id: Base.pm 1947 2023-11-23 09:40:45Z willem $)[2];
#
@@ -443,13 +443,13 @@
$self->errorstring($!);
my $buffer = _read_tcp($socket);
- $self->{replyfrom} = $ip;
- $self->_diag( 'reply from', "[$ip]", length($buffer), 'bytes' );
+ my $peer = $self->{replyfrom} = $socket->peerhost;
+ $self->_diag( 'packet from', "[$peer]", length($buffer), 'octets' );
my $reply = Net::DNS::Packet->decode( \$buffer, $self->{debug} );
$self->errorstring($@);
next unless $self->_accept_reply( $reply, $query );
- $reply->from($ip);
+ $reply->from($peer);
if ( $self->{tsig_rr} && !$reply->verify($query) ) {
$self->errorstring( $reply->verifyerr );
@@ -509,10 +509,10 @@
my $reply;
while ( my ($socket) = $select->can_read($timeout) ) {
- my $peer = $self->{replyfrom} = $socket->peerhost;
+ my $buffer = _read_udp($socket);
- my $buffer = _read_udp( $socket, $self->_packetsz );
- $self->_diag( "reply from [$peer]", length($buffer), 'bytes' );
+ my $peer = $self->{replyfrom} = $socket->peerhost;
+ $self->_diag( "packet from [$peer]", length($buffer), 'octets' );
my $packet = Net::DNS::Packet->decode( \$buffer, $self->{debug} );
$self->errorstring($@);
@@ -621,15 +621,16 @@
my ( $expire, $query, $read ) = @$appendix;
return if ref($read);
- return time() <= $expire unless IO::Select->new($handle)->can_read(0);
+ return time() < $expire unless IO::Select->new($handle)->can_read(0);
return unless $query; # SpamAssassin 3.4.1 workaround
- return if $self->{igntc};
return unless $handle->socktype() == SOCK_DGRAM;
my $ans = $self->_bgread($handle);
+ $$appendix[0] = time();
$$appendix[2] = [$ans];
return unless $ans;
+ return if $self->{igntc};
return unless $ans->header->tc;
$self->_diag('packet truncated: retrying using TCP');
@@ -661,20 +662,17 @@
my ( $expire, $query, $read ) = @$appendix;
return shift(@$read) if ref($read);
- my $select = IO::Select->new($handle);
- unless ( $select->can_read(0) ) {
- $self->errorstring('timed out');
- return;
- }
-
- my $peer = $self->{replyfrom} = $handle->peerhost;
+ return unless IO::Select->new($handle)->can_read(0);
my $dgram = $handle->socktype() == SOCK_DGRAM;
- my $buffer = $dgram ? _read_udp( $handle, $self->_packetsz ) : _read_tcp($handle);
- $self->_diag( "reply from [$peer]", length($buffer), 'bytes' );
+ my $buffer = $dgram ? _read_udp($handle) : _read_tcp($handle);
+
+ my $peer = $self->{replyfrom} = $handle->peerhost;
+ $self->_diag( "packet from [$peer]", length($buffer), 'octets' );
my $reply = Net::DNS::Packet->decode( \$buffer, $self->{debug} );
$self->errorstring($@);
+
return unless $self->_accept_reply( $reply, $query );
$reply->from($peer);
@@ -692,7 +690,7 @@
my $header = $reply->header;
return unless $header->qr;
- return if $query && $header->id != $query->header->id;
+ return if $query && ( $header->id != $query->header->id );
return $self->errorstring( $header->rcode ); # historical quirk
}
@@ -746,7 +744,7 @@
my ( $self, @argument ) = @_; # uncoverable pod
$self->_deprecate('prefer $iterator = $self->axfr(...)');
my $iterator = $self->axfr(@argument);
- ( $self->{axfr_iter} ) = grep {defined} ( $iterator, sub {} );
+ ( $self->{axfr_iter} ) = grep {defined} ( $iterator, sub { } );
return defined($iterator);
}
@@ -838,18 +836,18 @@
#
-# Usage: $data = _read_udp($socket, $length);
+# Usage: $data = _read_udp($socket);
#
sub _read_udp {
my $socket = shift;
my $buffer = '';
- $socket->recv( $buffer, shift );
+ $socket->recv( $buffer, 9000 ); ## payload limit for Ethernet "Jumbo" packet
return $buffer;
}
sub _create_tcp_socket {
- my ( $self, $ip ) = @_;
+ my ( $self, $ip, @sockopt ) = @_;
my $socket;
my $sock_key = "TCP[$ip]";
@@ -867,6 +865,7 @@
PeerPort => $self->{port},
Proto => 'tcp',
Timeout => $self->{tcp_timeout},
+ @sockopt
)
if USE_SOCKET_IP;
@@ -878,6 +877,7 @@
PeerPort => $self->{port},
Proto => 'tcp',
Timeout => $self->{tcp_timeout},
+ @sockopt
)
unless $ip6_addr;
}
@@ -888,7 +888,7 @@
sub _create_udp_socket {
- my ( $self, $ip ) = @_;
+ my ( $self, $ip, @sockopt ) = @_;
my $socket;
my $sock_key = "UDP[$ip]";
@@ -899,7 +899,8 @@
LocalAddr => $ip6_addr ? $self->{srcaddr6} : $self->{srcaddr4},
LocalPort => $self->{srcport},
Proto => 'udp',
- Type => SOCK_DGRAM
+ Type => SOCK_DGRAM,
+ @sockopt
)
if USE_SOCKET_IP;
@@ -908,7 +909,8 @@
LocalAddr => $self->{srcaddr4},
LocalPort => $self->{srcport} || undef,
Proto => 'udp',
- Type => SOCK_DGRAM
+ Type => SOCK_DGRAM,
+ @sockopt
)
unless $ip6_addr;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/lib/Net/DNS.pm new/Net-DNS-1.41/lib/Net/DNS.pm
--- old/Net-DNS-1.40/lib/Net/DNS.pm 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/lib/Net/DNS.pm 2023-11-27 14:22:19.000000000 +0100
@@ -4,9 +4,9 @@
use warnings;
our $VERSION;
-$VERSION = '1.40';
+$VERSION = '1.41';
$VERSION = eval {$VERSION};
-our $SVNVERSION = (qw$Id: DNS.pm 1936 2023-08-30 18:05:44Z willem $)[2];
+our $SVNVERSION = (qw$Id: DNS.pm 1951 2023-11-27 13:20:59Z willem $)[2];
=head1 NAME
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/t/04-packet.t new/Net-DNS-1.41/t/04-packet.t
--- old/Net-DNS-1.40/t/04-packet.t 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/t/04-packet.t 2023-11-27 14:22:19.000000000 +0100
@@ -1,10 +1,10 @@
#!/usr/bin/perl
-# $Id: 04-packet.t 1910 2023-03-30 19:16:30Z willem $ -*-perl-*-
+# $Id: 04-packet.t 1947 2023-11-23 09:40:45Z willem $ -*-perl-*-
#
use strict;
use warnings;
-use Test::More tests => 102;
+use Test::More tests => 103;
use TestToolkit;
@@ -168,6 +168,7 @@
for my $packet ( Net::DNS::Packet->new('example.com') ) {
my $reply = $packet->reply(); ## check $packet->reply()
ok( $reply->isa('Net::DNS::Packet'), '$packet->reply() returns packet' );
+ like( $reply->string, '/HEADER/', 'reply->string() represents packet' );
my $udpmax = 2048;
$packet->edns->udpsize($udpmax);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/t/08-IPv4.t new/Net-DNS-1.41/t/08-IPv4.t
--- old/Net-DNS-1.40/t/08-IPv4.t 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/t/08-IPv4.t 2023-11-27 14:22:19.000000000 +0100
@@ -1,5 +1,5 @@
#!/usr/bin/perl
-# $Id: 08-IPv4.t 1930 2023-08-21 14:10:10Z willem $ -*-perl-*-
+# $Id: 08-IPv4.t 1945 2023-11-22 08:02:31Z willem $ -*-perl-*-
#
use strict;
@@ -409,19 +409,19 @@
}
-{ ## exercise error path in bgbusy() and _bgread()
- my $resolver = Net::DNS::Resolver->new( nameservers => $IP, udp_timeout => 0 );
+{ ## exercise error path in bgbusy() and bgread()
+ my $resolver = Net::DNS::Resolver->new( nameservers => $IP, udp_timeout => 5 );
+ my $original = $resolver->_make_query_packet(qw(net-dns.org SOA));
+ my $mismatch = $resolver->_make_query_packet(qw(net-dns.org SOA));
+ my $handle = $resolver->_bgsend_udp( $original, $mismatch->data );
+ ok( !$resolver->bgread($handle), 'bgread() id mismatch' );
- ok( !$resolver->bgread(undef), '_bgread() undefined handle' );
+ ok( !$resolver->bgread(undef), 'bgread() undefined handle' );
- my $packet = $resolver->_make_query_packet(qw(net-dns.org SOA));
- my $broken = bless {%$packet, id => 0xffff ^ $packet->header->id}, ref($packet);
- my $handle = $resolver->_bgsend_udp( $packet, $broken->data );
- ok( !$resolver->bgread($handle), '_bgread() no reply' );
-
- ok( !$resolver->bgread( ref($handle)->new ), '_bgread() timeout' );
+ ok( !$resolver->bgread( ref($handle)->new ), 'bgread() timeout' );
$resolver->tcp_timeout(10);
+ my $packet = $resolver->_make_query_packet(qw(net-dns.org SOA));
my $socket = $resolver->_bgsend_tcp( $packet, $packet->data );
while ( $resolver->bgbusy($socket) ) { sleep 1 }
my $discard;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-1.40/t/08-IPv6.t new/Net-DNS-1.41/t/08-IPv6.t
--- old/Net-DNS-1.40/t/08-IPv6.t 2023-08-30 20:05:53.000000000 +0200
+++ new/Net-DNS-1.41/t/08-IPv6.t 2023-11-27 14:22:19.000000000 +0100
@@ -1,5 +1,5 @@
#!/usr/bin/perl
-# $Id: 08-IPv6.t 1930 2023-08-21 14:10:10Z willem $ -*-perl-*-
+# $Id: 08-IPv6.t 1945 2023-11-22 08:02:31Z willem $ -*-perl-*-
#
use strict;
@@ -412,19 +412,19 @@
}
-{ ## exercise error path in bgbusy() and _bgread()
- my $resolver = Net::DNS::Resolver->new( nameservers => $IP, udp_timeout => 0 );
+{ ## exercise error path in bgbusy() and bgread()
+ my $resolver = Net::DNS::Resolver->new( nameservers => $IP, udp_timeout => 5 );
+ my $original = $resolver->_make_query_packet(qw(net-dns.org SOA));
+ my $mismatch = $resolver->_make_query_packet(qw(net-dns.org SOA));
+ my $handle = $resolver->_bgsend_udp( $original, $mismatch->data );
+ ok( !$resolver->bgread($handle), 'bgread() id mismatch' );
- ok( !$resolver->bgread(undef), '_bgread() undefined handle' );
+ ok( !$resolver->bgread(undef), 'bgread() undefined handle' );
- my $packet = $resolver->_make_query_packet(qw(net-dns.org SOA));
- my $broken = bless {%$packet, id => 0xffff ^ $packet->header->id}, ref($packet);
- my $handle = $resolver->_bgsend_udp( $packet, $broken->data );
- ok( !$resolver->bgread($handle), '_bgread() no reply' );
-
- ok( !$resolver->bgread( ref($handle)->new ), '_bgread() timeout' );
+ ok( !$resolver->bgread( ref($handle)->new ), 'bgread() timeout' );
$resolver->tcp_timeout(10);
+ my $packet = $resolver->_make_query_packet(qw(net-dns.org SOA));
my $socket = $resolver->_bgsend_tcp( $packet, $packet->data );
while ( $resolver->bgbusy($socket) ) { sleep 1 }
my $discard;
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-Text-CSV_XS for openSUSE:Factory checked in at 2023-12-02 17:12:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Text-CSV_XS (Old)
and /work/SRC/openSUSE:Factory/.perl-Text-CSV_XS.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Text-CSV_XS"
Sat Dec 2 17:12:47 2023 rev:52 rq:1130244 version:1.530.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Text-CSV_XS/perl-Text-CSV_XS.changes 2023-09-29 21:13:59.694660154 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Text-CSV_XS.new.25432/perl-Text-CSV_XS.changes 2023-12-02 17:12:58.880926539 +0100
@@ -1,0 +2,13 @@
+Fri Nov 24 03:08:00 UTC 2023 - Tina Müller <timueller+perl(a)suse.de>
+
+- updated to 1.53
+ see /usr/share/doc/packages/perl-Text-CSV_XS/ChangeLog
+
+ 1.53 - 2023-11-22, H.Merijn Brand
+ * Two casts for -Wformat (issue 50)
+ * Add --skip-empty to csv2xlsx
+ * Add --font and --font-size to csv2xlsx
+ * Fix skip_empty_rows ("skip") and trailing newlines (Corey Hickey, PR#52)
+ * Fix comment in last line (RT#150501)
+
+-------------------------------------------------------------------
Old:
----
Text-CSV_XS-1.52.tgz
New:
----
Text-CSV_XS-1.53.tgz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Text-CSV_XS.spec ++++++
--- /var/tmp/diff_new_pack.uqnkej/_old 2023-12-02 17:12:59.540950726 +0100
+++ /var/tmp/diff_new_pack.uqnkej/_new 2023-12-02 17:12:59.540950726 +0100
@@ -18,9 +18,9 @@
%define cpan_name Text-CSV_XS
Name: perl-Text-CSV_XS
-Version: 1.520.0
+Version: 1.530.0
Release: 0
-%define cpan_version 1.52
+%define cpan_version 1.53
License: Artistic-1.0 OR GPL-1.0-or-later
Summary: Comma-Separated Values manipulation routines
URL: https://metacpan.org/release/%{cpan_name}
@@ -28,9 +28,9 @@
Source1: cpanspec.yml
BuildRequires: perl
BuildRequires: perl-macros
-Provides: perl(Text::CSV_XS) = 1.520.0
+Provides: perl(Text::CSV_XS) = %{version}
%define __perllib_provides /bin/true
-Recommends: perl(Encode) >= 3.19
+Recommends: perl(Encode) >= 3.200.0
%{perl_requires}
%description
++++++ Text-CSV_XS-1.52.tgz -> Text-CSV_XS-1.53.tgz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-CSV_XS-1.52/CSV_XS.pm new/Text-CSV_XS-1.53/CSV_XS.pm
--- old/Text-CSV_XS-1.52/CSV_XS.pm 2023-09-20 18:28:07.000000000 +0200
+++ new/Text-CSV_XS-1.53/CSV_XS.pm 2023-09-22 10:29:41.000000000 +0200
@@ -23,7 +23,7 @@
use Carp;
use vars qw( $VERSION @ISA @EXPORT_OK %EXPORT_TAGS );
-$VERSION = "1.52";
+$VERSION = "1.53";
@ISA = qw( Exporter );
XSLoader::load ("Text::CSV_XS", $VERSION);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-CSV_XS-1.52/CSV_XS.xs new/Text-CSV_XS-1.53/CSV_XS.xs
--- old/Text-CSV_XS-1.52/CSV_XS.xs 2023-09-21 09:08:32.000000000 +0200
+++ new/Text-CSV_XS-1.53/CSV_XS.xs 2023-11-20 18:35:19.000000000 +0100
@@ -614,7 +614,7 @@
_cache_show_str ("tmp", (int)strlen (s), (byte *)s);
}
if (csv->cache)
- warn (" %-20s %4d:0x%08x\n", "cache", sizeof (csv_t), csv->cache);
+ warn (" %-20s %4d:0x%08lx\n", "cache", (int)sizeof (csv_t), (unsigned long)csv->cache);
else
warn (" %-22s --:no cache yet\n", "cache");
} /* _csv_diag */
@@ -974,7 +974,7 @@
if (c == EOF || ser == 2) { \
sv_free (sv); \
sv = NULL; \
- waitingForField = 0; \
+ seenSomething = FALSE; \
if (ser == 2) return FALSE; \
break; \
} \
@@ -1423,16 +1423,16 @@
#endif
#if MAINT_DEBUG > 1
+static char _sep[64];
static char *_sep_string (csv_t *csv) {
- char sep[64];
if (csv->sep_len) {
int x;
for (x = 0; x < csv->sep_len; x++)
- (void)sprintf (sep + x * x, "%02x ", csv->sep[x]);
+ (void)sprintf (_sep + x * x, "%02x ", csv->sep[x]);
}
else
- (void)sprintf (sep, "'%c' (0x%02x)", CH_SEP, CH_SEP);
- return sep;
+ (void)sprintf (_sep, "'%c' (0x%02x)", CH_SEP, CH_SEP);
+ return _sep;
} /* _sep_string */
#endif
@@ -1998,9 +1998,12 @@
csv->used = csv->size;
csv->fld_idx = 0;
c = CSV_GET;
+ seenSomething = FALSE;
#if MAINT_DEBUG > 5
(void)fprintf (stderr, "# COMMENT, SKIPPED\n");
#endif
+ if (c == EOF)
+ break;
goto restart;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-CSV_XS-1.52/ChangeLog new/Text-CSV_XS-1.53/ChangeLog
--- old/Text-CSV_XS-1.52/ChangeLog 2023-09-21 09:59:52.000000000 +0200
+++ new/Text-CSV_XS-1.53/ChangeLog 2023-11-22 20:30:12.000000000 +0100
@@ -1,3 +1,10 @@
+1.53 - 2023-11-22, H.Merijn Brand
+ * Two casts for -Wformat (issue 50)
+ * Add --skip-empty to csv2xlsx
+ * Add --font and --font-size to csv2xlsx
+ * Fix skip_empty_rows ("skip") and trailing newlines (Corey Hickey, PR#52)
+ * Fix comment in last line (RT#150501)
+
1.52 - 2023-09-21, H.Merijn Brand
* Fix possible coredump in cache on non-IO parse (issue 49)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-CSV_XS-1.52/META.json new/Text-CSV_XS-1.53/META.json
--- old/Text-CSV_XS-1.52/META.json 2023-09-21 13:20:30.000000000 +0200
+++ new/Text-CSV_XS-1.53/META.json 2023-11-23 10:19:13.000000000 +0100
@@ -1,70 +1,70 @@
{
- "resources" : {
- "license" : [
- "http://dev.perl.org/licenses/"
- ],
- "bugtracker" : {
- "web" : "http://rt.cpan.org/NoAuth/Bugs.html?Dist=Text-CSV_XS"
- },
- "homepage" : "https://metacpan.org/pod/Text::CSV_XS",
- "x_IRC" : "irc://irc.perl.org/#csv",
- "repository" : {
- "web" : "https://github.com/Tux/Text-CSV_XS",
- "url" : "https://github.com/Tux/Text-CSV_XS",
- "type" : "git"
- }
- },
- "author" : [
- "H.Merijn Brand <hmbrand.org>"
- ],
- "license" : [
- "perl_5"
- ],
- "name" : "Text-CSV_XS",
- "meta-spec" : {
- "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
- "version" : 2
- },
"release_status" : "stable",
"prereqs" : {
- "runtime" : {
+ "configure" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : "0"
+ },
"recommends" : {
- "Encode" : "3.19"
+ "ExtUtils::MakeMaker" : "7.70"
+ }
},
+ "runtime" : {
+ "recommends" : {
+ "Encode" : "3.20"
+ },
"requires" : {
"IO::Handle" : "0",
"perl" : "5.006001",
"XSLoader" : "0"
- }
- },
+ }
+ },
"test" : {
"requires" : {
"Tie::Scalar" : "0",
"Test::More" : "0"
- }
- },
+ }
+ },
"build" : {
"requires" : {
"Config" : "0"
+ }
}
},
- "configure" : {
- "requires" : {
- "ExtUtils::MakeMaker" : "0"
+ "resources" : {
+ "homepage" : "https://metacpan.org/pod/Text::CSV_XS",
+ "bugtracker" : {
+ "web" : "http://rt.cpan.org/NoAuth/Bugs.html?Dist=Text-CSV_XS"
},
- "recommends" : {
- "ExtUtils::MakeMaker" : "7.70"
- }
- }
- },
- "generated_by" : "Author",
- "abstract" : "Comma-Separated Values manipulation routines",
+ "license" : [
+ "http://dev.perl.org/licenses/"
+ ],
+ "repository" : {
+ "url" : "https://github.com/Tux/Text-CSV_XS",
+ "type" : "git",
+ "web" : "https://github.com/Tux/Text-CSV_XS"
+ },
+ "x_IRC" : "irc://irc.perl.org/#csv"
+ },
+ "name" : "Text-CSV_XS",
"provides" : {
"Text::CSV_XS" : {
- "file" : "CSV_XS.pm",
- "version" : "1.52"
- }
- },
+ "version" : "1.53",
+ "file" : "CSV_XS.pm"
+ }
+ },
+ "abstract" : "Comma-Separated Values manipulation routines",
+ "license" : [
+ "perl_5"
+ ],
+ "author" : [
+ "H.Merijn Brand <hmbrand(a)cpan.org>"
+ ],
+ "version" : "1.53",
+ "generated_by" : "Author",
"dynamic_config" : 1,
- "version" : "1.52"
-}
+ "meta-spec" : {
+ "version" : 2,
+ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec"
+ }
+ }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-CSV_XS-1.52/META.yml new/Text-CSV_XS-1.53/META.yml
--- old/Text-CSV_XS-1.52/META.yml 2023-09-21 13:20:30.000000000 +0200
+++ new/Text-CSV_XS-1.53/META.yml 2023-11-23 10:19:13.000000000 +0100
@@ -1,7 +1,7 @@
---
abstract: Comma-Separated Values manipulation routines
author:
- - H.Merijn Brand <hmbrand.org>
+ - H.Merijn Brand <hmbrand(a)cpan.org>
build_requires:
Config: 0
configure_requires:
@@ -16,9 +16,9 @@
provides:
Text::CSV_XS:
file: CSV_XS.pm
- version: '1.52'
+ version: '1.53'
recommends:
- Encode: '3.19'
+ Encode: '3.20'
requires:
IO::Handle: 0
Test::More: 0
@@ -31,4 +31,4 @@
homepage: https://metacpan.org/pod/Text::CSV_XS
license: http://dev.perl.org/licenses/
repository: https://github.com/Tux/Text-CSV_XS
-version: '1.52'
+version: '1.53'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-CSV_XS-1.52/Makefile.PL new/Text-CSV_XS-1.53/Makefile.PL
--- old/Text-CSV_XS-1.52/Makefile.PL 2023-01-03 13:18:53.000000000 +0100
+++ new/Text-CSV_XS-1.53/Makefile.PL 2023-10-12 15:50:23.000000000 +0200
@@ -169,7 +169,7 @@
'doc/CSV_XS.3: CSV_XS.pm',
' pod2man < $? > $@',
'doc/CSV_XS.man: doc/CSV_XS.3',
- ' nroff -mandoc < $? > $@',
+ ' nroff2man < $? > $@',
'doc/csv2xlsx.md: examples/csv2xlsx',
' pod2markdown < $? > $@',
'doc/csv2xlsx.html: examples/csv2xlsx',
@@ -177,7 +177,7 @@
'doc/csv2xlsx.3: examples/csv2xlsx',
' pod2man < $? > $@',
'doc/csv2xlsx.man: doc/csv2xlsx.3',
- ' nroff -mandoc < $? > $@',
+ ' nroff2man < $? > $@',
'',
$min_vsn;
} # postamble
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-CSV_XS-1.52/cpanfile new/Text-CSV_XS-1.53/cpanfile
--- old/Text-CSV_XS-1.52/cpanfile 2023-09-21 13:20:30.000000000 +0200
+++ new/Text-CSV_XS-1.53/cpanfile 2023-11-23 10:19:13.000000000 +0100
@@ -1,7 +1,7 @@
requires "IO::Handle";
requires "XSLoader";
-recommends "Encode" => "3.19";
+recommends "Encode" => "3.20";
on "configure" => sub {
requires "ExtUtils::MakeMaker";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-CSV_XS-1.52/examples/csv2xls new/Text-CSV_XS-1.53/examples/csv2xls
--- old/Text-CSV_XS-1.52/examples/csv2xls 2023-01-03 13:37:08.000000000 +0100
+++ new/Text-CSV_XS-1.53/examples/csv2xls 2023-11-14 13:48:22.000000000 +0100
@@ -1,12 +1,12 @@
#!/pro/bin/perl
# csv2xls: Convert csv to xls
-# (m)'20 [25 Mar 2020] Copyright H.M.Brand 2007-2023
+# (m)'23 [14 Nov 2023] Copyright H.M.Brand 2007-2023
use 5.012000;
use warnings;
-our $VERSION = "1.80";
+our $VERSION = "1.81";
sub usage {
my $err = shift and select STDERR;
@@ -41,7 +41,7 @@
exit $err;
} # usage
-use Getopt::Long qw(:config bundling nopermute passthrough);
+use Getopt::Long qw(:config bundling nopermute noignorecase passthrough);
my $sep; # Set after reading first line in a flurry attempt to auto-detect
my $quo = '"';
my $esc = '"';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-CSV_XS-1.52/examples/csv2xlsx new/Text-CSV_XS-1.53/examples/csv2xlsx
--- old/Text-CSV_XS-1.52/examples/csv2xlsx 2023-01-03 13:17:37.000000000 +0100
+++ new/Text-CSV_XS-1.53/examples/csv2xlsx 2023-11-14 13:48:55.000000000 +0100
@@ -1,12 +1,12 @@
#!/pro/bin/perl
# csv2xlsx: Convert csv to xlsx
-# (m)'22 Copyright H.M.Brand 2007-2023
+# (m)'23 Copyright H.M.Brand 2007-2023
use 5.014000;
use warnings;
-our $VERSION = "1.20 - 2022-06-21";
+our $VERSION = "1.23 - 2023-11-14";
sub usage {
my $err = shift and select STDERR;
@@ -35,6 +35,9 @@
-f force usage of <xlsx> if already exists (unlink before use)
-d <dtfmt> use <dtfmt> as date formats. Default = 'dd-mm-yyyy'
-C <C:fmt> use <fmt> as currency formats for currency <C>, no default
+ --font=F set default font (default Calibri)
+ --fs=N set font size (default 10)
+ 'M' = 'mono', 'D' = 'DejaVu Sans', 'DM' = 'DejaVu Sans Mono'
-D cols only convert dates in columns <cols>.
Default is everywhere. -D0 is disable
-L N limit export to N rows
@@ -42,6 +45,7 @@
--de Some CSV fields might be double-encoded. Try to fix that.
-m merge multiple CSV's into a single xlsx (separate sheets)
-o is required, all arguments should be existing files
+ --skip-empty Skip empty files on merge
-S <cp> Split CSV on COLUMNxPAT into separate sheets. See --man
or --info for options/features and examples. May repeat.
--sl=C Use column C as sheet label when splitting with -S
@@ -52,10 +56,10 @@
use Text::CSV_XS;
use Excel::Writer::XLSX;
-use List::Util qw( first );
-use Date::Calc qw( Delta_Days Days_in_Month );
-use Encode qw( from_to );
-use Getopt::Long qw(:config bundling passthrough );
+use List::Util qw( first );
+use Date::Calc qw( Delta_Days Days_in_Month );
+use Encode qw( from_to );
+use Getopt::Long qw(:config bundling passthrough noignorecase );
my $quo = '"';
my $esc = '"';
my $wdt = 4; # Default minimal column width
@@ -79,6 +83,8 @@
"d|date-fmt=s" => \$dtf,
"D|date-col=s" => \$dtc,
"C|curr-fmt=s" => \$crf,
+ "font=s" => \my $font,
+ "fs|font-size=i" => \my $font_size,
"f|force!" => \my $frc,
"F|formulas!" => \my $frm,
"Fa=s" => \$fac,
@@ -91,6 +97,7 @@
"u|utf-8|utf8!" => \my $utf,
"de|fix-utf8!" => \my $dutf, # double encoded? \x{c3}\x{ab} => \x{100}
"m|merge!" => \my $mrg,
+ "skip-empty!" => \my $skip_empty,
"S|split=s" => \my @split,
"sl|split-label=s"=> \my $split_sl,
"L|row-limit=i" => \my $row_limit,
@@ -131,8 +138,10 @@
push @csv => $_;
next;
}
- warn "Argument $_ is not an existing (CSV) file\n";
- usage (1);
+ unless ($skip_empty) {
+ warn "Argument $_ is not an existing (CSV) file\n";
+ usage (1);
+ }
}
$xls && @csv or usage (1);
@ARGV = @csv;
@@ -195,6 +204,7 @@
my $wbk = Excel::Writer::XLSX->new ($xls);
$dtf =~ s/j/y/g;
my %fmt = (
+ dflt => $wbk->add_format (),
date => $wbk->add_format (align => "center", num_format => $dtf),
rest => $wbk->add_format (align => "left"),
wrap => $wbk->add_format (text_wrap => 1),
@@ -203,6 +213,15 @@
num_format => "$1 $2",
align => "right",
);
+if ($font) {
+ $font eq "M" and $font = "mono";
+ $font eq "D" and $font = "DejaVu Sans";
+ $font eq "DM" and $font = "DejaVu Sans Mono";
+ $_->set_font ($font) for values %fmt;
+ }
+if ($font_size) {
+ $_->set_size ($font_size) for values %fmt;
+ }
my @args = @ARGV ? @ARGV : ("");
foreach my $csvf (@args) {
@@ -363,12 +382,12 @@
from_to ($val, "utf-8", "ucs2");
$val =~ m/\n/
? $wks->write_unicode ($h, $c, $val, $fmt{wrap})
- : $wks->write_unicode ($h, $c, $val);
+ : $wks->write_unicode ($h, $c, $val, $fmt{dflt});
}
else {
$val =~ m/\n/
? $wks->write_string ($h, $c, $val, $fmt{wrap})
- : $wks->write_string ($h, $c, $val);
+ : $wks->write_string ($h, $c, $val, $fmt{dflt});
}
next;
}
@@ -397,7 +416,7 @@
$wks->write_string ($h, $c, $val);
}
else {
- $wks->write ($h, $c, $val);
+ $wks->write ($h, $c, $val, $fmt{dflt});
}
}
++$h % 100 or $opt_v && printf STDERR "%6d x %6d\r", $w, $h;
@@ -510,6 +529,28 @@
-C '$:### ### ##0.00'
+=item --font=Calibri
+
+You can set the default font. The XLSX writer used sets the default font
+face to C<Calibri>.
+
+ --font=Arial
+
+There are 3 default shortcuts
+
+ --font=M
+ --font=D
+ --font=DM
+
+Setting the font to C<mono>, C<DejaVu Sans>, or C<DejaVu Sans Mono>.
+
+=item --fs=10
+
+=item --font-size=10
+
+Optional set the default font-size to anything other than the default 10.
+Must be a positive integer. No checks.
+
=item -f
=item --force
@@ -581,6 +622,11 @@
With this option, the option C<-o> is required. All arguments should be
existing files. Piping is not supported.
+=item --skip-empty
+
+When merging CSV files with C<-m>, skip empty files. The default is to exit
+with an error message.
+
=item -L N
=item --row-limit=N
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-CSV_XS-1.52/t/47_comment.t new/Text-CSV_XS-1.53/t/47_comment.t
--- old/Text-CSV_XS-1.52/t/47_comment.t 2021-03-20 18:04:28.000000000 +0100
+++ new/Text-CSV_XS-1.53/t/47_comment.t 2023-11-20 18:39:05.000000000 +0100
@@ -4,7 +4,7 @@
use warnings;
use Test::More;
-use Text::CSV_XS;
+use Text::CSV_XS qw(csv);
BEGIN {
if ($] < 5.008002) {
@@ -12,7 +12,7 @@
}
else {
require Encode;
- plan tests => 60;
+ plan tests => 61;
}
require "./t/util.pl";
}
@@ -56,4 +56,17 @@
}
}
+is_deeply (csv (
+ in => *DATA,
+ sep_char => "|",
+ headers => "auto",
+ allow_whitespace => 1,
+ comment_str => "#"
+ ), [{ id => 42, name => "foo" }], "Last record is comment");
+
1;
+__END__
+id | name
+#
+42 | foo
+#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Text-CSV_XS-1.52/t/67_emptrow.t new/Text-CSV_XS-1.53/t/67_emptrow.t
--- old/Text-CSV_XS-1.52/t/67_emptrow.t 2023-08-07 15:01:22.000000000 +0200
+++ new/Text-CSV_XS-1.53/t/67_emptrow.t 2023-11-20 08:44:25.000000000 +0100
@@ -10,7 +10,7 @@
plan skip_all => "This test unit requires perl-5.8.1 or higher";
}
else {
- plan tests => 47;
+ plan tests => 56;
}
use_ok "Text::CSV_XS", ("csv");
@@ -47,7 +47,7 @@
is ($csv->skip_empty_rows (0), 0, "+0");
is ($csv->skip_empty_rows (undef), 0, "undef");
-open my $fh, ">", $tfn;
+open my $fh, ">", $tfn or BAIL_OUT "$tfn: $!\n";
print $fh "a,b,c,d\n";
print $fh "1,2,0,4\n";
print $fh "4,0,9,1\n";
@@ -89,6 +89,14 @@
$ea,[8,2,7,1],$ea,$ea,[5,7,9,3],$ea], "A Callback");
is_deeply (csv (@parg, skip_empty_rows => sub {0}), \@head, "A Callback 0");
+# Array behavior (line by line)
+open $fh, "<", $tfn;
+$csv = Text::CSV_XS->new ({ skip_empty_rows => 1 });
+while (my $row = $csv->getline ($fh)) {
+ ok (@$row, "Row has columns");
+ }
+close $fh;
+
# Hash behavior
push @parg => bom => 1;
my $eh = { a => "", b => undef, c => undef, d => undef },
@@ -122,3 +130,13 @@
{ a => 5, b => 7, c => 9, d => 3 },$eh], "H Callback");
is_deeply (csv (@parg, skip_empty_rows => sub {0}), \@head, "H Callback 0");
+
+# Hash behavior (line by line)
+open $fh, "<", $tfn;
+$csv = Text::CSV_XS->new ({ skip_empty_rows => 1 });
+my $cols = $csv->getline ($fh);
+$csv->column_names (@$cols);
+while (my $row = $csv->getline_hr ($fh)) {
+ isnt ($row->{a}, undef, "Column 'a' is defined");
+ }
+close $fh;
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package build for openSUSE:Factory checked in at 2023-12-02 17:12:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/build (Old)
and /work/SRC/openSUSE:Factory/.build.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "build"
Sat Dec 2 17:12:38 2023 rev:158 rq:1130219 version:20231201
Changes:
--------
--- /work/SRC/openSUSE:Factory/build/build.changes 2023-11-21 21:31:20.621850482 +0100
+++ /work/SRC/openSUSE:Factory/.build.new.25432/build.changes 2023-12-02 17:12:54.460764557 +0100
@@ -1,0 +2,31 @@
+Fri Dec 1 12:39:14 UTC 2023 - Adrian Schröter <adrian(a)suse.de>
+
+- productcompose: follow incompatible flavor syntax change
+- pbuild: support for zstd
+
+-------------------------------------------------------------------
+Fri Dec 1 10:15:05 UTC 2023 - Adrian Schröter <adrian(a)suse.de>
+
+- fixed handling for cmdline parameters via kernel packages
+
+-------------------------------------------------------------------
+Thu Nov 30 09:49:19 UTC 2023 - Adrian Schröter <adrian(a)suse.de>
+
+- productcompose:
+ * BREAKING: support new schema
+ * adapt flavor architecture parsing
+
+-------------------------------------------------------------------
+Tue Nov 28 07:10:37 UTC 2023 - Adrian Schröter <adrian(a)suse.de>
+
+- productcompose:
+ * support filtered package lists
+ * support default architecture listing
+ * fix copy in binaries in VM builds^
+
+-------------------------------------------------------------------
+Mon Nov 20 14:59:25 UTC 2023 - Adrian Schröter <adrian(a)suse.de>
+
+- obsproduct build type got renamed to productcompose
+
+-------------------------------------------------------------------
Old:
----
obs-build-20231120.tar.gz
New:
----
obs-build-20231201.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ build.spec ++++++
--- /var/tmp/diff_new_pack.eufEOO/_old 2023-12-02 17:12:55.084787425 +0100
+++ /var/tmp/diff_new_pack.eufEOO/_new 2023-12-02 17:12:55.088787571 +0100
@@ -28,7 +28,7 @@
Summary: A Script to Build SUSE Linux RPMs
License: GPL-2.0-only OR GPL-3.0-only
Group: Development/Tools/Building
-Version: 20231120
+Version: 20231201
Release: 0
Source: obs-build-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ PKGBUILD ++++++
--- /var/tmp/diff_new_pack.eufEOO/_old 2023-12-02 17:12:55.116788597 +0100
+++ /var/tmp/diff_new_pack.eufEOO/_new 2023-12-02 17:12:55.120788744 +0100
@@ -1,5 +1,5 @@
pkgname=build
-pkgver=20231120
+pkgver=20231201
pkgrel=0
pkgdesc="Build packages in sandbox"
arch=('i686' 'x86_64')
++++++ _service ++++++
--- /var/tmp/diff_new_pack.eufEOO/_old 2023-12-02 17:12:55.136789330 +0100
+++ /var/tmp/diff_new_pack.eufEOO/_new 2023-12-02 17:12:55.136789330 +0100
@@ -1,7 +1,7 @@
<services>
<service name="tar_scm" mode="manual">
- <param name="revision">20231120</param>
- <param name="version">20231120</param>
+ <param name="revision">20231201.1</param>
+ <param name="version">20231201</param>
<param name="url">https://github.com/openSUSE/obs-build.git</param>
<param name="scm">git</param>
<param name="extract">dist/build.changes</param>
++++++ build.dsc ++++++
--- /var/tmp/diff_new_pack.eufEOO/_old 2023-12-02 17:12:55.156790063 +0100
+++ /var/tmp/diff_new_pack.eufEOO/_new 2023-12-02 17:12:55.156790063 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: build
-Version: 20231120
+Version: 20231201
Binary: build
Maintainer: Adrian Schroeter <adrian(a)suse.de>
Architecture: all
++++++ debian.changelog ++++++
--- /var/tmp/diff_new_pack.eufEOO/_old 2023-12-02 17:12:55.176790796 +0100
+++ /var/tmp/diff_new_pack.eufEOO/_new 2023-12-02 17:12:55.180790943 +0100
@@ -1,4 +1,4 @@
-build (20231120) unstable; urgency=low
+build (20231201) unstable; urgency=low
* Update to current git trunk
- add sles11sp2 build config and adapt autodetection
++++++ obs-build-20231120.tar.gz -> obs-build-20231201.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20231120/Build/ObsProduct.pm new/obs-build-20231201/Build/ObsProduct.pm
--- old/obs-build-20231120/Build/ObsProduct.pm 2023-11-20 08:58:08.000000000 +0100
+++ new/obs-build-20231201/Build/ObsProduct.pm 1970-01-01 01:00:00.000000000 +0100
@@ -1,114 +0,0 @@
-################################################################
-#
-# Copyright (c) 2023 SUSE Linux Products GmbH
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 or 3 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program (see the file COPYING); if not, write to the
-# Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-#
-################################################################
-
-package Build::ObsProduct;
-
-use strict;
-use warnings;
-use Build::Rpm;
-
-my $yamlxs = eval { require YAML::XS; $YAML::XS::LoadBlessed = 0; return 1 };
-my $yamlpp = eval { require YAML::PP; return YAML::PP->new };
-
-sub _have_yaml_parser {
- return $yamlpp || $yamlxs ? 1 : undef;
-}
-
-sub _load_yaml {
- my ($yaml) = @_;
- my $data;
- if ($yamlpp) {
- $data = eval { $yamlpp->load_string($yaml) };
- return $data;
- }
- if ($yamlxs) {
- eval { $data = YAML::XS::Load($yaml) };
- return $data;
- }
- die "Neither YAML::PP nor YAML::XS available\n";
-}
-
-sub _load_yaml_file {
- my ($fn) = @_;
- my $data;
- if ($yamlpp) {
- $data = eval { $yamlpp->load_file($fn) };
- return $data;
- }
- if ($yamlxs) {
- eval { $data = YAML::XS::LoadFile($fn) };
- return $data;
- }
- die "Neither YAML::PP nor YAML::XS available\n";
-}
-
-sub filter_packages {
- my (@list) = @_;
- my @ret;
- for my $item (@list) {
- # FIXME filter by rules
- push @ret, $item;
- }
- return @ret;
-}
-
-sub parse {
- my ($cf, $fn) = @_;
-
- my $data = _load_yaml_file($fn);
- return { error => "Failed to parse file '$fn'" } unless defined $data;
- my $ret = {};
- $ret->{version} = $data->{'version'};
- $ret->{name} = $data->{'name'} or die "OBS Product name is missing";
- my $runtime_version = $data->{'runtime-version'};
- my $sdk = $data->{sdk};
-
- my @unpack_packdeps = filter_packages(@{$data->{'unpack_packages'}});
- my @packdeps = filter_packages(@{$data->{'packages'}});
- my @merged = (@unpack_packdeps, @packdeps);
- $ret->{deps} = \@merged;
-
- # can we live without additional repository config?
-
- # Do we need source or debug packages?
- my $bo = $data->{'build_options'};
- if ($bo) {
- $ret->{'sourcemedium'} = 1 if $bo->{'source'};
- $ret->{'debugmedium'} = 1 if $bo->{'debug'};
- }
-
- return $ret;
-}
-
-sub show {
- my ($fn, $field) = @ARGV;
- my $cf = {};
- my $d = parse($cf, $fn);
- die "$d->{error}\n" if $d->{error};
- my $value = $d->{ $field };
- if (ref $value eq 'ARRAY') {
- print "$_\n" for @$value;
- }
- else {
- print "$value\n";
- }
-}
-
-1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20231120/Build/ProductCompose.pm new/obs-build-20231201/Build/ProductCompose.pm
--- old/obs-build-20231120/Build/ProductCompose.pm 1970-01-01 01:00:00.000000000 +0100
+++ new/obs-build-20231201/Build/ProductCompose.pm 2023-12-01 13:39:48.000000000 +0100
@@ -0,0 +1,150 @@
+################################################################
+#
+# Copyright (c) 2023 SUSE Linux Products GmbH
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 or 3 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program (see the file COPYING); if not, write to the
+# Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+#
+################################################################
+
+package Build::ProductCompose;
+
+use strict;
+use warnings;
+use Build::Rpm;
+
+my $yamlxs = eval { require YAML::XS; $YAML::XS::LoadBlessed = 0; return 1 };
+my $yamlpp = eval { require YAML::PP; return YAML::PP->new };
+
+sub _have_yaml_parser {
+ return $yamlpp || $yamlxs ? 1 : undef;
+}
+
+sub _load_yaml {
+ my ($yaml) = @_;
+ my $data;
+ if ($yamlpp) {
+ $data = eval { $yamlpp->load_string($yaml) };
+ return $data;
+ }
+ if ($yamlxs) {
+ eval { $data = YAML::XS::Load($yaml) };
+ return $data;
+ }
+ die "Neither YAML::PP nor YAML::XS available\n";
+}
+
+sub _load_yaml_file {
+ my ($fn) = @_;
+ my $data;
+ if ($yamlpp) {
+ $data = eval { $yamlpp->load_file($fn) };
+ return $data;
+ }
+ if ($yamlxs) {
+ eval { $data = YAML::XS::LoadFile($fn) };
+ return $data;
+ }
+ die "Neither YAML::PP nor YAML::XS available\n";
+}
+
+sub filter_packages {
+ my (@list) = @_;
+ my @ret;
+ for my $item (@list) {
+ # FIXME filter by rules
+ push @ret, $item;
+ }
+ return @ret;
+}
+
+sub parse {
+ my ($cf, $fn) = @_;
+
+ my $data = _load_yaml_file($fn);
+ return { error => "Failed to parse file '$fn'" } unless defined $data;
+ my $ret = {};
+ $ret->{version} = $data->{'version'};
+ $ret->{name} = $data->{'name'} or die "OBS Product name is missing";
+ my $runtime_version = $data->{'runtime-version'};
+ my $sdk = $data->{sdk};
+ my @architectures;
+
+ # Do we need source or debug packages?
+ my $bo = $data->{'build_options'};
+ if ($bo) {
+ }
+ $ret->{'sourcemedium'} = 1 if $data->{'source'};
+ $ret->{'debugmedium'} = 1 if $data->{'debug'};
+ @architectures = @{$data->{'architectures'} || []};
+ if ($data->{'flavors'}) {
+ if ($data->{'flavors'}) {
+ my $f = $data->{'flavors'}->{$cf->{'buildflavor'}};
+ return { error => "Flavor '$cf->{'buildflavor'}' not found" } unless defined $f;
+ @architectures = @{$f->{'architectures'} || []} if $f->{'architectures'};
+ }
+ if (@architectures) {
+ $ret->{'exclarch'} = \@architectures;
+ } else {
+ # We have flavors, but no architecture defined.
+ # This can also exclude the main package in multibuild case
+ $ret->{'error'} = 'excluded';
+ }
+ } else {
+ $ret->{'exclarch'} = \@architectures if @architectures;
+ }
+
+ my @unpack_packdeps = filter_packages(@{$data->{'unpack_packages'}});
+ my @packdeps = filter_packages(@{$data->{'packages'}});
+ my @merged;
+ for my $dep (@unpack_packdeps, @packdeps) {
+ if (ref($dep) eq 'HASH') {
+ next if $dep->{'flavors'} && grep { $_ eq $cf->{'buildflavor'} } @{$dep->{'flavors'} || []};
+ if ($dep->{'architectures'}) {
+ my $match;
+ for my $a (@architectures) {
+ $match = 1 if grep { $_ eq $a } @{$dep->{'architectures'} || []};
+ }
+ next unless $match;
+ }
+ for my $d (@{$dep->{'packages'}}) {
+ push @merged, $d;
+ }
+ } else {
+ push @merged, $dep;
+ }
+ }
+ $ret->{deps} = \@merged;
+
+ # We have currently no option to configure own path list for the product on purpose
+ $ret->{path} = [ { project => '_obsrepositories', repository => '' } ];
+
+ return $ret;
+}
+
+sub show {
+ my ($fn, $field) = @ARGV;
+ my $cf = {};
+ my $d = parse($cf, $fn);
+ die "$d->{error}\n" if $d->{error};
+ my $value = $d->{ $field };
+ if (ref $value eq 'ARRAY') {
+ print "$_\n" for @$value;
+ }
+ else {
+ print "$value\n";
+ }
+}
+
+1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20231120/Build.pm new/obs-build-20231201/Build.pm
--- old/obs-build-20231120/Build.pm 2023-11-20 08:58:08.000000000 +0100
+++ new/obs-build-20231201/Build.pm 2023-12-01 13:39:48.000000000 +0100
@@ -44,7 +44,7 @@
our $do_helm;
our $do_flatpak;
our $do_mkosi;
-our $do_obsproduct;
+our $do_productcompose;
sub import {
for (@_) {
@@ -61,9 +61,9 @@
$do_helm = 1 if $_ eq ':helm';
$do_flatpak = 1 if $_ eq ':flatpak';
$do_mkosi = 1 if $_ eq ':mkosi';
- $do_obsproduct = 1 if $_ eq ':obsproduct';
+ $do_productcompose = 1 if $_ eq ':productcompose';
}
- $do_rpm = $do_deb = $do_kiwi = $do_obsproduct = $do_arch = $do_collax = $do_livebuild = $do_snapcraft = $do_appimage = $do_docker = $do_fissile = $do_helm = $do_flatpak = $do_mkosi = 1 if !$do_rpm && !$do_deb && !$do_kiwi && !$do_arch && !$do_collax && !$do_livebuild && !$do_snapcraft && !$do_appimage && !$do_docker && !$do_fissile && !$do_helm && !$do_flatpak && !$do_mkosi && !$do_obsproduct;
+ $do_rpm = $do_deb = $do_kiwi = $do_productcompose = $do_arch = $do_collax = $do_livebuild = $do_snapcraft = $do_appimage = $do_docker = $do_fissile = $do_helm = $do_flatpak = $do_mkosi = 1 if !$do_rpm && !$do_deb && !$do_kiwi && !$do_arch && !$do_collax && !$do_livebuild && !$do_snapcraft && !$do_appimage && !$do_docker && !$do_fissile && !$do_helm && !$do_flatpak && !$do_mkosi && !$do_productcompose;
if ($do_deb) {
require Build::Deb;
@@ -101,8 +101,8 @@
if ($do_mkosi) {
require Build::Mkosi;
}
- if ($do_obsproduct) {
- require Build::ObsProduct;
+ if ($do_productcompose) {
+ require Build::ProductCompose;
}
}
@@ -198,6 +198,9 @@
'system-packages:kiwi-product' => [
'kiwi',
],
+ 'system-packages:productcompose' => [
+ 'product-composer',
+ ],
'system-packages:docker' => [
'docker', 'system-packages:repo-creation',
],
@@ -831,6 +834,9 @@
@sysdeps = @{$config->{'substitute'}->{'system-packages:kiwi-image'} || []};
@sysdeps = @{$config->{'substitute'}->{'kiwi-setup:image'} || []} unless @sysdeps;
@sysdeps = @{$subst_defaults{'system-packages:kiwi-image'} || []} unless @sysdeps;
+ } elsif ($buildtype eq 'productcompose') {
+ @sysdeps = @{$config->{'substitute'}->{'system-packages:productcompose'} || []};
+ @sysdeps = @{$subst_defaults{'system-packages:productcompose'} || []} unless @sysdeps;
} elsif ($buildtype eq 'kiwi-product') {
@sysdeps = @{$config->{'substitute'}->{'system-packages:kiwi-product'} || []};
@sysdeps = @{$config->{'substitute'}->{'kiwi-setup:product'} || []} unless @sysdeps;
@@ -1263,7 +1269,7 @@
sub recipe2buildtype {
my ($recipe) = @_;
return undef unless defined $recipe;
- return $1 if $recipe =~ /\.(spec|dsc|kiwi|obsproduct|livebuild)$/;
+ return $1 if $recipe =~ /\.(spec|dsc|kiwi|productcompose|livebuild)$/;
$recipe =~ s/.*\///;
$recipe =~ s/^_service:.*://;
return 'arch' if $recipe eq 'PKGBUILD';
@@ -1321,7 +1327,7 @@
return Build::Kiwi::parse($cf, $fn, @args) if $do_kiwi && $fn =~ /\.kiwi$/;
return Build::LiveBuild::parse($cf, $fn, @args) if $do_livebuild && $fn =~ /\.livebuild$/;
return Build::Mkosi::parse($cf, $fn, @args) if $do_mkosi && $fn =~ /^mkosi\./;
- return Build::ObsProduct::parse($cf, $fn, @args) if $do_obsproduct && $fn =~ /\.obsproduct$/;
+ return Build::ProductCompose::parse($cf, $fn, @args) if $do_productcompose && $fn =~ /\.productcompose$/;
return parse_typed($cf, $fn, recipe2buildtype($fn), @args);
}
@@ -1331,7 +1337,7 @@
return Build::Rpm::parse($cf, $fn, @args) if $do_rpm && $buildtype eq 'spec';
return Build::Deb::parse($cf, $fn, @args) if $do_deb && $buildtype eq 'dsc';
return Build::Kiwi::parse($cf, $fn, @args) if $do_kiwi && $buildtype eq 'kiwi';
- return Build::ObsProduct::parse($cf, $fn, @args) if $do_obsproduct && $buildtype eq 'obsproduct';
+ return Build::ProductCompose::parse($cf, $fn, @args) if $do_productcompose && $buildtype eq 'productcompose';
return Build::LiveBuild::parse($cf, $fn, @args) if $do_livebuild && $buildtype eq 'livebuild';
return Build::Snapcraft::parse($cf, $fn, @args) if $do_snapcraft && $buildtype eq 'snapcraft';
return Build::Appimage::parse($cf, $fn, @args) if $do_appimage && $buildtype eq 'appimage';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20231120/PBuild/Job.pm new/obs-build-20231201/PBuild/Job.pm
--- old/obs-build-20231120/PBuild/Job.pm 2023-11-20 08:58:08.000000000 +0100
+++ new/obs-build-20231201/PBuild/Job.pm 2023-12-01 13:39:48.000000000 +0100
@@ -375,10 +375,6 @@
rmdir("$buildroot/.build.packages");
}
rename("$buildroot/.mount/.build.packages", "$buildroot/.build.packages") || die("final rename failed: $!\n");
- # XXX: extracted cpio is flat but code below expects those directories...
- symlink('.', "$buildroot/.build.packages/SRPMS");
- symlink('.', "$buildroot/.build.packages/DEBS");
- symlink('.', "$buildroot/.build.packages/KIWI");
}
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20231120/PBuild/Recipe.pm new/obs-build-20231201/PBuild/Recipe.pm
--- old/obs-build-20231120/PBuild/Recipe.pm 2023-11-20 08:58:08.000000000 +0100
+++ new/obs-build-20231201/PBuild/Recipe.pm 2023-12-01 13:39:48.000000000 +0100
@@ -72,8 +72,8 @@
return $files{$files[0]};
}
}
- if ($type ne 'obsproduct') {
- @files = grep {/\.obsproduct$/} keys %files;
+ if ($type ne 'productcompose') {
+ @files = grep {/\.productcompose$/} keys %files;
@files = grep {/^\Q$pkg\E/i} @files if @files > 1;
return $files{$files[0]} if @files == 1;
if (@files > 1) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20231120/PBuild/RemoteRepo.pm new/obs-build-20231201/PBuild/RemoteRepo.pm
--- old/obs-build-20231120/PBuild/RemoteRepo.pm 2023-11-20 08:58:08.000000000 +0100
+++ new/obs-build-20231201/PBuild/RemoteRepo.pm 2023-12-01 13:39:48.000000000 +0100
@@ -112,6 +112,10 @@
open($fh, '<', $filename) or die("Error opening $filename: $!\n");
if ($filename =~ /\.gz$/) {
$fh = IO::Uncompress::Gunzip->new($fh) or die("Error opening $filename: $IO::Uncompress::Gunzip::GunzipError\n");
+ } elsif ($filename =~ /\.$/) {
+ open($fh, '-|', 'xz', '-d', '-c', '--', $filename) || die("Error opening $filename: $!\n");
+ } elsif ($filename =~ /\.zst$/) {
+ open($fh, '-|', 'zstd', '-d', '-c', '--', $filename) || die("Error opening $filename: $!\n");
}
return $fh;
}
@@ -132,7 +136,7 @@
for my $f (@primaryfiles) {
my $u = "$f->{'location'}";
utf8::downgrade($u);
- next unless $u =~ /(primary\.xml(?:\.gz)?)$/s;
+ next unless $u =~ /(primary\.xml(?:\.gz|\.xz|\.zst)?)$/s;
my $fn = $1;
if ($opts{'iszypp'}) {
$fn = $u;
@@ -151,7 +155,7 @@
for my $f (@moduleinfofiles) {
my $u = "$f->{'location'}";
utf8::downgrade($u);
- next unless $u =~ /(modules\.yaml(?:\.gz)?)$/s;
+ next unless $u =~ /(modules\.yaml(?:\.gz|\.xz|\.zst)?)$/s;
my $fn = $1;
die("zypp:// repos do not support module data\n") if $opts{'iszypp'};
die("modules file $u does not have a checksum\n") unless $f->{'checksum'} && $f->{'checksum'} =~ /:(.*)/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20231120/build new/obs-build-20231201/build
--- old/obs-build-20231120/build 2023-11-20 08:58:08.000000000 +0100
+++ new/obs-build-20231201/build 2023-12-01 13:39:48.000000000 +0100
@@ -843,7 +843,7 @@
copy_sources() {
local include_directories
- if test -n "$RUNNING_IN_VM" -o "$BUILDTYPE" = kiwi -o "$BUILDTYPE" = docker -o "$BUILDTYPE" = fissile -o "$BUILDTYPE" = podman ; then
+ if test -n "$RUNNING_IN_VM" -o "$BUILDTYPE" = kiwi -o "$BUILDTYPE" = docker -o "$BUILDTYPE" = fissile -o "$BUILDTYPE" = podman -o "$BUILDTYPE" = productcompose ; then
include_directories=true
fi
if test -n "$RUNNING_IN_VM" -o -n "$COPY_SOURCES_ASIS" -o -n "$RPM_BUILD_IN_PLACE" ; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20231120/build-recipe new/obs-build-20231201/build-recipe
--- old/obs-build-20231120/build-recipe 2023-11-20 08:58:08.000000000 +0100
+++ new/obs-build-20231201/build-recipe 2023-12-01 13:39:48.000000000 +0100
@@ -32,7 +32,7 @@
BUILD_CHANGELOG_TIMESTAMP=
VCSURL=
-for i in spec dsc kiwi obsproduct arch collax preinstallimage simpleimage mock livebuild snapcraft debootstrap debbuild appimage docker podman fissile helm flatpak mkosi; do
+for i in spec dsc kiwi productcompose arch collax preinstallimage simpleimage mock livebuild snapcraft debootstrap debbuild appimage docker podman fissile helm flatpak mkosi; do
. "$BUILD_DIR/build-recipe-$i"
done
@@ -122,7 +122,7 @@
*.spec|*.src.rpm) BUILDTYPE=spec ;;
*.dsc) BUILDTYPE=dsc ;;
*.kiwi) BUILDTYPE=kiwi ;;
- *.obsproduct) BUILDTYPE=obsproduct ;;
+ *.productcompose) BUILDTYPE=productcompose ;;
PKGBUILD) BUILDTYPE=arch ;;
snapcraft.yaml) BUILDTYPE=snapcraft ;;
appimage.yml) BUILDTYPE=appimage ;;
@@ -185,7 +185,7 @@
case $(queryconfig --dist "$BUILD_DIST" --configdir "$CONFIG_DIR" --archpath "$BUILD_ARCH" type) in
dsc) types=".dsc" ;;
kiwi) types=".kiwi" ;;
- obsproduct) types=".obsproduct" ;;
+ productcompose) types=".productcompose" ;;
arch) types="PKGBUILD" ;;
collax) types="build.collax" ;;
livebuild) types=".livebuild" ;;
@@ -193,7 +193,7 @@
mkosi) types="mkosi." ;;
esac
fi
- types="$types .spec _specsubdir:package _specsubdir:dist .dsc PKGBUILD Dockerfile build.collax .kiwi .obsproduct .src.rpm .nosrc.rpm simpleimage snapcraft.yaml Chart.yaml flatpak.yaml flatpak.json mkosi."
+ types="$types .spec _specsubdir:package _specsubdir:dist .dsc PKGBUILD Dockerfile build.collax .kiwi .productcompose .src.rpm .nosrc.rpm simpleimage snapcraft.yaml Chart.yaml flatpak.yaml flatpak.json mkosi."
fi
for t in $types ; do
found=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20231120/build-recipe-obsproduct new/obs-build-20231201/build-recipe-obsproduct
--- old/obs-build-20231120/build-recipe-obsproduct 2023-11-20 08:58:08.000000000 +0100
+++ new/obs-build-20231201/build-recipe-obsproduct 1970-01-01 01:00:00.000000000 +0100
@@ -1,77 +0,0 @@
-#
-# KIWI specific functions. Handle with care.
-#
-################################################################
-#
-# Copyright (c) 2023 SUSE Linux Products GmbH
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 or 3 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program (see the file COPYING); if not, write to the
-# Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-#
-################################################################
-
-
-recipe_setup_obsproduct() {
- TOPDIR=/usr/src/packages
- test "$DO_INIT_TOPDIR" = false || rm -rf "$BUILD_ROOT$TOPDIR"
- mkdir -p "$BUILD_ROOT$TOPDIR"
- mkdir -p "$BUILD_ROOT$TOPDIR/OTHER"
- mkdir -p "$BUILD_ROOT$TOPDIR/SOURCES"
- mkdir -p "$BUILD_ROOT$TOPDIR/OBSPRODUCT"
- # compat, older build versions did not clean TOPDIR ...
- mkdir -p "$BUILD_ROOT$TOPDIR/BUILD"
- mkdir -p "$BUILD_ROOT$TOPDIR/RPMS"
- mkdir -p "$BUILD_ROOT$TOPDIR/SRPMS"
-
- if test "$MYSRCDIR" = $BUILD_ROOT/.build-srcdir; then
- mv "$MYSRCDIR"/* $BUILD_ROOT$TOPDIR/SOURCES/
- else
- if test -z "$LINKSOURCES" ; then
- cp -dLR "$MYSRCDIR"/* $BUILD_ROOT$TOPDIR/SOURCES/ || cleanup_and_exit 1 "source copy failed"
- else
- cp -lR "$MYSRCDIR"/* $BUILD_ROOT$TOPDIR/SOURCES/ || cleanup_and_exit 1 "source copy failed"
- fi
- fi
- chown -hR "$ABUILD_UID:$ABUILD_GID" "$BUILD_ROOT$TOPDIR"
-
- if test -z "$ABUILD_TARGET"; then
- ABUILD_TARGET=$(queryconfig target --dist "$BUILD_DIST" --configdir "$CONFIG_DIR" --archpath "$BUILD_ARCH" )
- test -z "$ABUILD_TARGET" || echo "build target is $ABUILD_TARGET"
- fi
-}
-
-recipe_prepare_obsproduct() {
- :
-}
-
-recipe_build_obsproduct() {
- echo "running obs product builder..."
-
- extra_args=""
- if test -n "$RELEASE" ; then
- extra_args=" $extra_args --release $RELEASE"
- fi
- if test -n "$BUILD_FLAVOR" ; then
- extra_args=" $extra_args --flavor $BUILD_FLAVOR"
- fi
- chroot "$BUILD_ROOT" su -c "/usr/bin/obs-product-builder build $extra_args -v --clean $TOPDIR/SOURCES/$RECIPEFILE $TOPDIR/OBSPRODUCT" - abuild < /dev/null && BUILD_SUCCEEDED=true
-}
-
-recipe_resultdirs_obsproduct() {
- echo OBSPRODUCT
-}
-
-recipe_cleanup_obsproduct() {
- :
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20231120/build-recipe-productcompose new/obs-build-20231201/build-recipe-productcompose
--- old/obs-build-20231120/build-recipe-productcompose 1970-01-01 01:00:00.000000000 +0100
+++ new/obs-build-20231201/build-recipe-productcompose 2023-12-01 13:39:48.000000000 +0100
@@ -0,0 +1,77 @@
+#
+# KIWI specific functions. Handle with care.
+#
+################################################################
+#
+# Copyright (c) 2023 SUSE Linux Products GmbH
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 or 3 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program (see the file COPYING); if not, write to the
+# Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+#
+################################################################
+
+
+recipe_setup_productcompose() {
+ TOPDIR=/usr/src/packages
+ test "$DO_INIT_TOPDIR" = false || rm -rf "$BUILD_ROOT$TOPDIR"
+ mkdir -p "$BUILD_ROOT$TOPDIR"
+ mkdir -p "$BUILD_ROOT$TOPDIR/OTHER"
+ mkdir -p "$BUILD_ROOT$TOPDIR/SOURCES"
+ mkdir -p "$BUILD_ROOT$TOPDIR/PRODUCT"
+ # compat, older build versions did not clean TOPDIR ...
+ mkdir -p "$BUILD_ROOT$TOPDIR/BUILD"
+ mkdir -p "$BUILD_ROOT$TOPDIR/RPMS"
+ mkdir -p "$BUILD_ROOT$TOPDIR/SRPMS"
+
+ if test "$MYSRCDIR" = $BUILD_ROOT/.build-srcdir; then
+ mv "$MYSRCDIR"/* $BUILD_ROOT$TOPDIR/SOURCES/
+ else
+ if test -z "$LINKSOURCES" ; then
+ cp -dLR "$MYSRCDIR"/* $BUILD_ROOT$TOPDIR/SOURCES/ || cleanup_and_exit 1 "source copy failed"
+ else
+ cp -lR "$MYSRCDIR"/* $BUILD_ROOT$TOPDIR/SOURCES/ || cleanup_and_exit 1 "source copy failed"
+ fi
+ fi
+ chown -hR "$ABUILD_UID:$ABUILD_GID" "$BUILD_ROOT$TOPDIR"
+
+ if test -z "$ABUILD_TARGET"; then
+ ABUILD_TARGET=$(queryconfig target --dist "$BUILD_DIST" --configdir "$CONFIG_DIR" --archpath "$BUILD_ARCH" )
+ test -z "$ABUILD_TARGET" || echo "build target is $ABUILD_TARGET"
+ fi
+}
+
+recipe_prepare_productcompose() {
+ :
+}
+
+recipe_build_productcompose() {
+ echo "running product composer..."
+
+ extra_args=""
+ if test -n "$RELEASE" ; then
+ extra_args=" $extra_args --release $RELEASE"
+ fi
+ if test -n "$BUILD_FLAVOR" ; then
+ extra_args=" $extra_args --flavor $BUILD_FLAVOR"
+ fi
+ chroot "$BUILD_ROOT" su -c "/usr/bin/product-composer build $extra_args -v --clean $TOPDIR/SOURCES/$RECIPEFILE $TOPDIR/PRODUCT" - abuild < /dev/null && BUILD_SUCCEEDED=true
+}
+
+recipe_resultdirs_productcompose() {
+ echo PRODUCT
+}
+
+recipe_cleanup_productcompose() {
+ :
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20231120/build-vm new/obs-build-20231201/build-vm
--- old/obs-build-20231120/build-vm 2023-11-20 08:58:08.000000000 +0100
+++ new/obs-build-20231201/build-vm 2023-12-01 13:39:48.000000000 +0100
@@ -1083,9 +1083,6 @@
if test -f "$BUILD_ROOT/.build.initrd.$vm_type" -a ! -L "$BUILD_ROOT/.build.initrd.$vm_type" ; then
cp "$BUILD_ROOT/.build.initrd.$vm_type" "$KERNEL_TEMP_DIR/initrd"
fi
- if test -f "$BUILD_ROOT/.build.cmdline.$vm_type" -a ! -L "$BUILD_ROOT/.build.cmdline.$vm_type" ; then
- vm_cmdline="$(cat $BUILD_ROOT/.build.cmdline.$vm_type)"
- fi
fi
check_exit
if test -n "$VM_USE_MKFS_COPYIN" ; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20231120/build-vm-kvm new/obs-build-20231201/build-vm-kvm
--- old/obs-build-20231120/build-vm-kvm 2023-11-20 08:58:08.000000000 +0100
+++ new/obs-build-20231201/build-vm-kvm 2023-12-01 13:39:48.000000000 +0100
@@ -417,6 +417,10 @@
fi
fi
+ if test -z "$VM_KERNEL" -a -z "$VM_CMDLINE" -a -f "$BUILD_ROOT/.build.cmdline.$vm_type" -a ! -L "$BUILD_ROOT/.build.cmdline.$vm_type" ; then
+ vm_cmdline="$(cat $BUILD_ROOT/.build.cmdline.$vm_type)"
+ fi
+
# move IO into separate I/O thread for some architectures
if test "${kvm_device%%-*}" = "virtio" ; then
if $kvm_bin -version | grep -F -q 7.1.0; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20231120/dist/build.changes new/obs-build-20231201/dist/build.changes
--- old/obs-build-20231120/dist/build.changes 2023-11-20 08:58:08.000000000 +0100
+++ new/obs-build-20231201/dist/build.changes 2023-12-01 13:39:48.000000000 +0100
@@ -1,4 +1,42 @@
-------------------------------------------------------------------
+Fri Dec 1 12:39:14 UTC 2023 - Adrian Schröter <adrian(a)suse.de>
+
+- productcompose: follow incompatible flavor syntax change
+- pbuild: support for zstd
+
+-------------------------------------------------------------------
+Fri Dec 1 10:15:05 UTC 2023 - Adrian Schröter <adrian(a)suse.de>
+
+- fixed handling for cmdline parameters via kernel packages
+
+-------------------------------------------------------------------
+Thu Nov 30 09:49:19 UTC 2023 - Adrian Schröter <adrian(a)suse.de>
+
+- productcompose:
+ * BREAKING: support new schema
+ * adapt flavor architecture parsing
+
+-------------------------------------------------------------------
+Tue Nov 28 07:10:37 UTC 2023 - Adrian Schröter <adrian(a)suse.de>
+
+- productcompose:
+ * support filtered package lists
+ * support default architecture listing
+ * fix copy in binaries in VM builds^
+
+-------------------------------------------------------------------
+Mon Nov 20 14:59:25 UTC 2023 - Adrian Schröter <adrian(a)suse.de>
+
+- obsproduct build type got renamed to productcompose
+
+-------------------------------------------------------------------
+Mon Nov 20 08:00:48 UTC 2023 - Adrian Schröter <adrian(a)suse.de>
+
+- Support zstd compressed rpm-md meta data (bsc#1217269)
+- Added Debian 12 configuration
+- First ObsProduct build format support
+
+-------------------------------------------------------------------
Fri Nov 3 10:03:35 UTC 2023 - Adrian Schröter <adrian(a)suse.de>
- fix SLE 15 SP5 build configuration
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20231120/docs/build_config.adoc new/obs-build-20231201/docs/build_config.adoc
--- old/obs-build-20231120/docs/build_config.adoc 2023-11-20 08:58:08.000000000 +0100
+++ new/obs-build-20231201/docs/build_config.adoc 2023-12-01 13:39:48.000000000 +0100
@@ -395,7 +395,7 @@
Build recipe type. This is the format of the file which provides the
build description. This gets usually autodetected, but in some rare
cases it can be set here to either one of these: spec, dsc, kiwi,
-livebuild, arch, preinstallimage, obsproduct.
+livebuild, arch, preinstallimage, productcompose.
Defines the build recipe format. Valid values are currently: none, spec,
dsc, arch, kiwi, preinstallimage. If no type is specified, OBS deduces a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20231120/expanddeps new/obs-build-20231201/expanddeps
--- old/obs-build-20231120/expanddeps 2023-11-20 08:58:08.000000000 +0100
+++ new/obs-build-20231201/expanddeps 2023-12-01 13:39:48.000000000 +0100
@@ -382,7 +382,7 @@
my @sysdeps = Build::get_sysbuild($cf, $buildtype, $extrasysdeps);
-if ($buildtype eq 'kiwi-image' || $buildtype eq 'kiwi-product' || $buildtype eq 'obsproduct') {
+if ($buildtype eq 'kiwi-image' || $buildtype eq 'kiwi-product' || $buildtype eq 'productcompose') {
if (!shift @sysdeps) {
print STDERR "expansion error\n";
print STDERR " $_\n" for @sysdeps;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-build-20231120/init_buildsystem new/obs-build-20231201/init_buildsystem
--- old/obs-build-20231120/init_buildsystem 2023-11-20 08:58:08.000000000 +0100
+++ new/obs-build-20231201/init_buildsystem 2023-12-01 13:39:48.000000000 +0100
@@ -197,6 +197,7 @@
rm -rf -- "$BUILD_ROOT"/*
rm -rf -- "$BUILD_ROOT/.build"
rm -rf -- "$BUILD_ROOT"/.build.console.*
+ rm -rf -- "$BUILD_ROOT"/.build.cmdline.*
rm -rf -- "$BUILD_ROOT"/.build.hostarch.*
rm -rf -- "$BUILD_ROOT"/.build.kernel.*
rm -rf -- "$BUILD_ROOT"/.build.initrd.*
@@ -249,7 +250,7 @@
# please keep in sync with recipe_build_preinstallimage
case "$i" in
.|..|build-preinstall) continue ;;
- .build.kernel.*|.build.hostarch.*|.build.initrd.*|.build.console.*) ;;
+ .build.kernel.*|.build.hostarch.*|.build.initrd.*|.build.console.*|.build.cmdline.*) ;;
.build*|.init_b_cache|.preinstallimage*|.srcfiles*|.pkgs|.rpm-cache|installed-pkg|proc|sys) continue ;;
esac
mv_args[${#mv_args[@]}]="$i"
@@ -264,7 +265,7 @@
for i in * .* ; do
case "$i" in
.|..|build-preinstall) continue ;;
- .build.kernel.*|.build.hostarch.*|.build.initrd.*|.build.console.*) ;;
+ .build.kernel.*|.build.hostarch.*|.build.initrd.*|.build.console.*|.build.cmdline.*) ;;
.build*|.init_b_cache|.preinstallimage*|.srcfiles*|.pkgs|.rpm-cache|installed-pkg|proc|sys) continue ;;
esac
mv_args[${#mv_args[@]}]="$i"
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package rust-keylime for openSUSE:Factory checked in at 2023-12-02 17:12:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rust-keylime (Old)
and /work/SRC/openSUSE:Factory/.rust-keylime.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rust-keylime"
Sat Dec 2 17:12:34 2023 rev:19 rq:1130185 version:0.2.3+git.1701075380.a5dc985
Changes:
--------
--- /work/SRC/openSUSE:Factory/rust-keylime/rust-keylime.changes 2023-11-05 12:19:16.818207637 +0100
+++ /work/SRC/openSUSE:Factory/.rust-keylime.new.25432/rust-keylime.changes 2023-12-02 17:12:50.876633212 +0100
@@ -1,0 +2,12 @@
+Fri Dec 01 10:04:40 UTC 2023 - aplanas(a)suse.com
+
+- Update to version 0.2.3+git.1701075380.a5dc985:
+ * build(deps): bump actix-rt from 2.8.0 to 2.9.0
+ * Bump version to 0.2.3
+ * build(deps): bump reqwest from 0.11.20 to 0.11.22
+ * Bump configuration version and fix enable_iak_idevid
+ * Enable test functional/iak-idevid-register-with-certificates
+ * Update packit plan with new tests
+ * Add certificates and certificate checking for IDevID and IAK keys (#669)
+
+-------------------------------------------------------------------
Old:
----
rust-keylime-0.2.2+git.1697658634.9c7c6fa.tar.xz
New:
----
rust-keylime-0.2.3+git.1701075380.a5dc985.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rust-keylime.spec ++++++
--- /var/tmp/diff_new_pack.53unSA/_old 2023-12-02 17:12:52.924708266 +0100
+++ /var/tmp/diff_new_pack.53unSA/_new 2023-12-02 17:12:52.924708266 +0100
@@ -25,7 +25,7 @@
%define _config_norepl %config(noreplace)
%endif
Name: rust-keylime
-Version: 0.2.2+git.1697658634.9c7c6fa
+Version: 0.2.3+git.1701075380.a5dc985
Release: 0
Summary: Rust implementation of the keylime agent
License: Apache-2.0 AND MIT
++++++ _service ++++++
--- /var/tmp/diff_new_pack.53unSA/_old 2023-12-02 17:12:52.968709878 +0100
+++ /var/tmp/diff_new_pack.53unSA/_new 2023-12-02 17:12:52.972710025 +0100
@@ -1,6 +1,6 @@
<services>
<service name="tar_scm" mode="disabled">
- <param name="versionformat">0.2.2+git.%ct.%h</param>
+ <param name="versionformat">0.2.3+git.%ct.%h</param>
<param name="revision">master</param>
<param name="url">https://github.com/keylime/rust-keylime.git</param>
<param name="scm">git</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.53unSA/_old 2023-12-02 17:12:52.988710611 +0100
+++ /var/tmp/diff_new_pack.53unSA/_new 2023-12-02 17:12:52.992710758 +0100
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/keylime/rust-keylime.git</param>
- <param name="changesrevision">9c7c6faac49c76f9b4dcd8babc7ae407e0ec6504</param></service></servicedata>
+ <param name="changesrevision">a5dc985399bf535b29f12ed9b4c6130357769a95</param></service></servicedata>
(No newline at EOF)
++++++ rust-keylime-0.2.2+git.1697658634.9c7c6fa.tar.xz -> rust-keylime-0.2.3+git.1701075380.a5dc985.tar.xz ++++++
/work/SRC/openSUSE:Factory/rust-keylime/rust-keylime-0.2.2+git.1697658634.9c7c6fa.tar.xz /work/SRC/openSUSE:Factory/.rust-keylime.new.25432/rust-keylime-0.2.3+git.1701075380.a5dc985.tar.xz differ: char 15, line 1
++++++ vendor.tar.xz ++++++
/work/SRC/openSUSE:Factory/rust-keylime/vendor.tar.xz /work/SRC/openSUSE:Factory/.rust-keylime.new.25432/vendor.tar.xz differ: char 26, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package tbb for openSUSE:Factory checked in at 2023-12-02 17:12:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tbb (Old)
and /work/SRC/openSUSE:Factory/.tbb.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tbb"
Sat Dec 2 17:12:32 2023 rev:34 rq:1130181 version:2021.11.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/tbb/tbb.changes 2023-11-26 19:36:49.949127562 +0100
+++ /work/SRC/openSUSE:Factory/.tbb.new.25432/tbb.changes 2023-12-02 17:12:45.752445431 +0100
@@ -1,0 +2,14 @@
+Fri Dec 1 08:24:32 UTC 2023 - Atri Bhattacharya <badshah400(a)gmail.com>
+
+- Update to version 2021.11.0:
+ * Fixed tbb::this_task_arena() behavior for specific
+ tbb::task_arena{1,0}.
+ * Restored performance on the high-core count systems that
+ support _tpause.
+- Refresh patches to apply cleanly:
+ * use-FORTIFY_SOURCE-from-distribution.patch
+ * add-cmake-check-for-libatomic-requirement-when-build.patch
+- Update Summary and description tags to be consistent with
+ upstream's TBB -> oneTBB renaming.
+
+-------------------------------------------------------------------
Old:
----
tbb-2021.10.0.tar.gz
New:
----
tbb-2021.11.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ tbb.spec ++++++
--- /var/tmp/diff_new_pack.5lT266/_old 2023-12-02 17:12:47.452507732 +0100
+++ /var/tmp/diff_new_pack.5lT266/_new 2023-12-02 17:12:47.464508171 +0100
@@ -41,12 +41,12 @@
%bcond_with python3
%endif
Name: tbb
-Version: 2021.10.0
+Version: 2021.11.0
Release: 0
-Summary: Threading Building Blocks (TBB)
+Summary: oneAPI Threading Building Blocks (oneTBB)
License: Apache-2.0
Group: Development/Libraries/C and C++
-URL: https://www.threadingbuildingblocks.org/
+URL: https://oneapi-src.github.io/oneTBB/
Source0: https://github.com/oneapi-src/oneTBB/archive/v%{version}.tar.gz#/tbb-%{vers…
Source99: tbb-rpmlintrc
# PATCH-FIX-OPENSUSE cmake-remove-include-path.patch -- openCV include error
@@ -75,12 +75,11 @@
%endif
%description
-Threading Building Blocks (TBB) offers a rich and complete approach to
-expressing parallelism in a C++ program. It is a library that helps you take
-advantage of multi-core processor performance without having to be a threading
-expert. Threading Building Blocks is not just a threads-replacement library. It
-represents a higher-level, task-based parallelism that abstracts platform
-details and threading mechanism for performance and scalability.
+oneTBB (previously known as TBB) is a flexible C++ library that simplifies the
+work of adding parallelism to complex applications. The library lets you easily
+write parallel programs that take full advantage of the multi-core performance.
+oneTBB provides you with functions, interfaces, and classes to parallelize and
+scale the code.
%package -n libtbb%{so_ver}
Summary: Threading Building Blocks (TBB)
@@ -89,12 +88,13 @@
Obsoletes: %{name} < %{version}
%description -n libtbb%{so_ver}
-Threading Building Blocks (TBB) offers a rich and complete approach to
-expressing parallelism in a C++ program. It is a library that helps you take
-advantage of multi-core processor performance without having to be a threading
-expert. Threading Building Blocks is not just a threads-replacement library. It
-represents a higher-level, task-based parallelism that abstracts platform
-details and threading mechanism for performance and scalability.
+oneTBB (previously known as TBB) is a flexible C++ library that simplifies the
+work of adding parallelism to complex applications. The library lets you easily
+write parallel programs that take full advantage of the multi-core performance.
+oneTBB provides you with functions, interfaces, and classes to parallelize and
+scale the code.
+
+This package provides the core shared library corresponding to oneTBB.
%package -n libtbbmalloc%{so_ver_malloc}
Summary: Threading Building Blocks (TBB)
@@ -103,53 +103,76 @@
Obsoletes: %{name} < %{version}
%description -n libtbbmalloc%{so_ver_malloc}
-This subpackage contains the two TBB memory allocator templates that
-are similar to the STL template class std::allocator. These two
-templates, scalable_allocator<T> and cache_aligned_allocator<T>,
-address critical issues in parallel programming: scalability and
-false sharing.
+oneTBB (previously known as TBB) is a flexible C++ library that simplifies the
+work of adding parallelism to complex applications. The library lets you easily
+write parallel programs that take full advantage of the multi-core performance.
+oneTBB provides you with functions, interfaces, and classes to parallelize and
+scale the code.
+
+This package provides the oneTBB memory allocator shared library.
%package -n libirml%{so_ver_irml}
Summary: Threading Building Blocks (TBB) - IPC Library
Group: System/Libraries
%description -n libirml%{so_ver_irml}
+oneTBB (previously known as TBB) is a flexible C++ library that simplifies the
+work of adding parallelism to complex applications. The library lets you easily
+write parallel programs that take full advantage of the multi-core performance.
+oneTBB provides you with functions, interfaces, and classes to parallelize and
+scale the code.
+
This subpackage provides the library required in order to enable inter-process
-(IPC) coordination between oneTBB schedulers for the TBB python module.
+(IPC) coordination between oneTBB schedulers for the oneTBB python module.
%package -n libtbbbind%{tbbbind_suffix}-%{so_ver_bind}
-Summary: Threading Building Blocks (TBB) NUMA support library
+Summary: NUMA support library for oneAPI Threading Building Blocks (oneTBB)
Group: System/Libraries
%description -n libtbbbind%{tbbbind_suffix}-%{so_ver_bind}
-The NUMA support library for Threading Building Blocks (TBB)
-
+oneTBB (previously known as TBB) is a flexible C++ library that simplifies the
+work of adding parallelism to complex applications. The library lets you easily
+write parallel programs that take full advantage of the multi-core performance.
+oneTBB provides you with functions, interfaces, and classes to parallelize and
+scale the code.
+The NUMA support library for oneTBB.
%if 0%{?python_subpackage_only}
%package -n python-%{name}
-Summary: Python %{python_version} support for Threading Building Blocks (TBB)
+Summary: Python %{python_version} support for oneAPI Threading Building Blocks (oneTBB)
Group: Development/Languages/Python
Requires: libirml%{so_ver_irml}
%description -n python-%{name}
-This package contains python %{python_version} bindings for Threading Building Blocks
-(TBB).
+oneTBB (previously known as TBB) is a flexible C++ library that simplifies the
+work of adding parallelism to complex applications. The library lets you easily
+write parallel programs that take full advantage of the multi-core performance.
+oneTBB provides you with functions, interfaces, and classes to parallelize and
+scale the code.
+
+This package contains python %{python_version} bindings for oneTBB.
%else
%package -n python3-%{name}
-Summary: Python 3 support for Threading Building Blocks (TBB)
+Summary: Python 3 support for oneAPI Threading Building Blocks (oneTBB)
Group: Development/Languages/Python
Requires: libirml%{so_ver_irml}
%description -n python3-%{name}
-This package contains python 3 bindings for Threading Building Blocks
-(TBB).
+oneTBB (previously known as TBB) is a flexible C++ library that simplifies the
+work of adding parallelism to complex applications. The library lets you easily
+write parallel programs that take full advantage of the multi-core performance.
+oneTBB provides you with functions, interfaces, and classes to parallelize and
+scale the code.
+
+This package contains python 3 bindings for oneAPI Threading Building Blocks
+(oneTBB).
%endif
%package devel
-Summary: Development Files for Threading Building Blocks (TBB)
+Summary: Development Files for oneAPI Threading Building Blocks (oneTBB)
Group: Development/Libraries/C and C++
Requires: c++_compiler
Requires: libirml%{so_ver_irml} = %{version}
@@ -158,14 +181,13 @@
Requires: libtbbmalloc%{so_ver_malloc} = %{version}
%description devel
-Threading Building Blocks (TBB) offers a rich and complete approach to
-expressing parallelism in a C++ program. It is a library that helps you take
-advantage of multi-core processor performance without having to be a threading
-expert. Threading Building Blocks is not just a threads-replacement library. It
-represents a higher-level, task-based parallelism that abstracts platform
-details and threading mechanism for performance and scalability.
+oneTBB (previously known as TBB) is a flexible C++ library that simplifies the
+work of adding parallelism to complex applications. The library lets you easily
+write parallel programs that take full advantage of the multi-core performance.
+oneTBB provides you with functions, interfaces, and classes to parallelize and
+scale the code.
-This package contains the header files needed for development with tbb.
+This package contains the header files needed for development with oneTBB.
%prep
%setup -q -n oneTBB-%{version}
++++++ add-cmake-check-for-libatomic-requirement-when-build.patch ++++++
--- /var/tmp/diff_new_pack.5lT266/_old 2023-12-02 17:12:47.752518726 +0100
+++ /var/tmp/diff_new_pack.5lT266/_new 2023-12-02 17:12:47.776519605 +0100
@@ -9,13 +9,13 @@
cmake/compilers/GNU.cmake | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
-diff --git a/cmake/compilers/GNU.cmake b/cmake/compilers/GNU.cmake
-index cd76acfe..59f4e693 100644
---- a/cmake/compilers/GNU.cmake
-+++ b/cmake/compilers/GNU.cmake
-@@ -44,6 +44,22 @@ if (NOT MINGW)
- set(TBB_COMMON_LINK_LIBS dl)
- endif()
+Index: oneTBB-2021.11.0/cmake/compilers/GNU.cmake
+===================================================================
+--- oneTBB-2021.11.0.orig/cmake/compilers/GNU.cmake
++++ oneTBB-2021.11.0/cmake/compilers/GNU.cmake
+@@ -42,6 +42,22 @@ endif()
+
+ set(TBB_COMMON_LINK_LIBS ${CMAKE_DL_LIBS})
+# Check whether code with full atomics can be built without libatomic
+# see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81358
@@ -36,7 +36,4 @@
# Ignore -Werror set through add_compile_options() or added to CMAKE_CXX_FLAGS if TBB_STRICT is disabled.
if (NOT TBB_STRICT AND COMMAND tbb_remove_compile_flag)
tbb_remove_compile_flag(-Werror)
---
-2.30.2
-
++++++ cmake-remove-include-path.patch ++++++
--- /var/tmp/diff_new_pack.5lT266/_old 2023-12-02 17:12:47.880523417 +0100
+++ /var/tmp/diff_new_pack.5lT266/_new 2023-12-02 17:12:47.916524736 +0100
@@ -1,8 +1,8 @@
-Index: oneTBB-2021.3.0/cmake/templates/TBBConfig.cmake.in
+Index: oneTBB-2021.11.0/cmake/templates/TBBConfig.cmake.in
===================================================================
---- oneTBB-2021.3.0.orig/cmake/templates/TBBConfig.cmake.in
-+++ oneTBB-2021.3.0/cmake/templates/TBBConfig.cmake.in
-@@ -58,8 +58,6 @@ foreach (_tbb_component ${TBB_FIND_COMPO
+--- oneTBB-2021.11.0.orig/cmake/templates/TBBConfig.cmake.in
++++ oneTBB-2021.11.0/cmake/templates/TBBConfig.cmake.in
+@@ -80,8 +80,6 @@ foreach (_tbb_component ${TBB_FIND_COMPO
add_library(TBB::${_tbb_component} SHARED IMPORTED)
get_filename_component(_tbb_include_dir "${_tbb_root}/@TBB_INC_REL_PATH@" ABSOLUTE)
++++++ tbb-2021.10.0.tar.gz -> tbb-2021.11.0.tar.gz ++++++
++++ 11158 lines of diff (skipped)
++++++ use-FORTIFY_SOURCE-from-distribution.patch ++++++
--- /var/tmp/diff_new_pack.5lT266/_old 2023-12-02 17:12:48.896560650 +0100
+++ /var/tmp/diff_new_pack.5lT266/_new 2023-12-02 17:12:48.900560797 +0100
@@ -1,11 +1,11 @@
-diff --git a/cmake/compilers/GNU.cmake b/cmake/compilers/GNU.cmake
-index b60172c..738d185 100644
---- a/cmake/compilers/GNU.cmake
-+++ b/cmake/compilers/GNU.cmake
-@@ -74,7 +74,6 @@ set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -fno-strict-overflow -f
- set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -Wformat -Wformat-security -Werror=format-security
- -fstack-protector-strong )
- set(TBB_LIB_LINK_FLAGS ${TBB_LIB_LINK_FLAGS} -Wl,-z,relro,-z,now,-z,noexecstack)
+Index: oneTBB-2021.11.0/cmake/compilers/GNU.cmake
+===================================================================
+--- oneTBB-2021.11.0.orig/cmake/compilers/GNU.cmake
++++ oneTBB-2021.11.0/cmake/compilers/GNU.cmake
+@@ -75,7 +75,6 @@ set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMO
+ if (NOT APPLE)
+ set(TBB_LIB_LINK_FLAGS ${TBB_LIB_LINK_FLAGS} -Wl,-z,relro,-z,now,-z,noexecstack)
+ endif()
-set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} $<$<NOT:$<CONFIG:Debug>>:-D_FORTIFY_SOURCE=2> )
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package NetworkManager-branding for openSUSE:Factory checked in at 2023-12-02 17:12:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/NetworkManager-branding (Old)
and /work/SRC/openSUSE:Factory/.NetworkManager-branding.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "NetworkManager-branding"
Sat Dec 2 17:12:29 2023 rev:6 rq:1130360 version:42.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/NetworkManager-branding/NetworkManager-branding.changes 2022-09-04 22:12:05.092336773 +0200
+++ /work/SRC/openSUSE:Factory/.NetworkManager-branding.new.25432/NetworkManager-branding.changes 2023-12-02 17:12:43.240353372 +0100
@@ -1,0 +2,11 @@
+Fri Dec 1 16:41:17 UTC 2023 - Dominique Leuenberger <dimstar(a)opensuse.org>
+
+- Fix most rpmlint warnings:
+ + suse-zypp-packageand: use current Supplements: (A and B) syntax
+ over packagand(A:B)
+ + summary-ended-with-dot: Remove dot at the end of Summary:
+ + no-%build-section: Add empty %build section
+ + branding-supplements-missing: Fixes as part of
+ suse-zypp-packageand.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ NetworkManager-branding.spec ++++++
--- /var/tmp/diff_new_pack.X10qT6/_old 2023-12-02 17:12:43.720370962 +0100
+++ /var/tmp/diff_new_pack.X10qT6/_new 2023-12-02 17:12:43.720370962 +0100
@@ -1,7 +1,7 @@
#
# spec file
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -32,7 +32,7 @@
Name: NetworkManager-branding%{?dash}%{branding_name}
Version: 42.1
Release: 0
-Summary: Default %{branding_name} branding for NetworkManager configuration file.
+Summary: Default %{branding_name} branding for NetworkManager configuration file
License: GPL-2.0-or-later
Group: Productivity/Networking/System
URL: http://www.gnome.org/projects/NetworkManager/
@@ -41,7 +41,7 @@
BuildRequires: NetworkManager
BuildRequires: NetworkManager-branding-upstream
%requires_eq NetworkManager
-Supplements: packageand(NetworkManager:branding-%{branding_name})
+Supplements: (NetworkManager and branding-%{branding_name})
Conflicts: NetworkManager-branding
Provides: NetworkManager-branding = %{version}
BuildArch: noarch
@@ -66,6 +66,8 @@
%setup -q -T -c %{name}-%{version}
cp %{SOURCE1} COPYING
+%build
+
%install
install -m0644 -D %{SOURCE0} %{buildroot}%{_prefix}/lib/NetworkManager/conf.d/conncheck-%{branding_name}.conf
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libnotify for openSUSE:Factory checked in at 2023-12-02 17:12:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libnotify (Old)
and /work/SRC/openSUSE:Factory/.libnotify.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libnotify"
Sat Dec 2 17:12:16 2023 rev:45 rq:1130317 version:0.8.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/libnotify/libnotify.changes 2023-02-25 19:54:47.727149642 +0100
+++ /work/SRC/openSUSE:Factory/.libnotify.new.25432/libnotify.changes 2023-12-02 17:12:27.199765545 +0100
@@ -1,0 +2,14 @@
+Tue Oct 10 14:08:33 UTC 2023 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 0.8.3:
+ + This release contains a critical stability/minor security
+ update which affects Electron applications that utilize Portal
+ notifications (eg, through Flatpak). It is highly recommended
+ that all users of libnotify 0.8.x update to this release.
+ + Please note that this fix has increased the minimum required
+ version of glib to 2.62.0.
+ + notification:
+ - Use g_signal_connect_object
+ - Move disconnect to dispose
+
+-------------------------------------------------------------------
Old:
----
libnotify-0.8.2.tar.xz
New:
----
libnotify-0.8.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libnotify.spec ++++++
--- /var/tmp/diff_new_pack.eNZ6SR/_old 2023-12-02 17:12:28.735821835 +0100
+++ /var/tmp/diff_new_pack.eNZ6SR/_new 2023-12-02 17:12:28.739821982 +0100
@@ -17,7 +17,7 @@
Name: libnotify
-Version: 0.8.2
+Version: 0.8.3
Release: 0
Summary: Notifications Library
License: LGPL-2.1-or-later
@@ -33,7 +33,7 @@
BuildRequires: xsltproc
BuildRequires: pkgconfig(gdk-pixbuf-2.0)
BuildRequires: pkgconfig(gi-docgen)
-BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(glib-2.0) >= 2.62.0
BuildRequires: pkgconfig(gtk+-3.0)
%description
++++++ libnotify-0.8.2.tar.xz -> libnotify-0.8.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnotify-0.8.2/NEWS new/libnotify-0.8.3/NEWS
--- old/libnotify-0.8.2/NEWS 2023-02-17 22:20:15.000000000 +0100
+++ new/libnotify-0.8.3/NEWS 2023-10-09 23:24:46.000000000 +0200
@@ -1,3 +1,20 @@
+New in 0.8.3
+============
+
+This release contains a critical stability/minor security update which affects
+Electron applications that utilize Portal notifications (eg, through Flatpak).
+It is highly recommended that all users of libnotify 0.8.x update to this
+release.
+
+Please note that this fix has increased the minimum required version of glib to
+2.62.0.
+
+* notification: Use g_signal_connect_object (#34) [Maximiliano]
+* notification: Move disconnect to dispose [Maximiliano]
+
+Contributors:
+ Maximiliano Sandoval R
+
New in 0.8.2
============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnotify-0.8.2/libnotify/notification.c new/libnotify-0.8.3/libnotify/notification.c
--- old/libnotify-0.8.2/libnotify/notification.c 2023-02-17 22:20:15.000000000 +0100
+++ new/libnotify-0.8.3/libnotify/notification.c 2023-10-09 23:24:46.000000000 +0200
@@ -397,12 +397,18 @@
{
NotifyNotification *obj = NOTIFY_NOTIFICATION (object);
NotifyNotificationPrivate *priv = obj->priv;
+ GDBusProxy *proxy;
if (priv->portal_timeout_id) {
g_source_remove (priv->portal_timeout_id);
priv->portal_timeout_id = 0;
}
+ proxy = _notify_get_proxy (NULL);
+ if (proxy != NULL) {
+ g_clear_signal_handler (&priv->proxy_signal_handler, proxy);
+ }
+
g_clear_object (&priv->icon_pixbuf);
G_OBJECT_CLASS (parent_class)->dispose (object);
@@ -413,7 +419,6 @@
{
NotifyNotification *obj = NOTIFY_NOTIFICATION (object);
NotifyNotificationPrivate *priv = obj->priv;
- GDBusProxy *proxy;
_notify_cache_remove_notification (obj);
@@ -434,11 +439,6 @@
if (priv->hints != NULL)
g_hash_table_destroy (priv->hints);
- proxy = _notify_get_proxy (NULL);
- if (proxy != NULL && priv->proxy_signal_handler != 0) {
- g_signal_handler_disconnect (proxy, priv->proxy_signal_handler);
- }
-
g_free (obj->priv);
G_OBJECT_CLASS (parent_class)->finalize (object);
@@ -684,20 +684,12 @@
return FALSE;
}
- /* Some clients have assumed it is safe to unref the
- * Notification at the end of their NotifyActionCallback
- * so we add a temporary ref until we're done with it.
- */
- g_object_ref (notification);
-
notification->priv->activating = TRUE;
pair->cb (notification, (char *) action, pair->user_data);
notification->priv->activating = FALSE;
g_free (notification->priv->activation_token);
notification->priv->activation_token = NULL;
- g_object_unref (notification);
-
return TRUE;
}
@@ -1107,10 +1099,11 @@
}
if (priv->proxy_signal_handler == 0) {
- priv->proxy_signal_handler = g_signal_connect (proxy,
- "g-signal",
- G_CALLBACK (proxy_g_signal_cb),
- notification);
+ priv->proxy_signal_handler = g_signal_connect_object (proxy,
+ "g-signal",
+ G_CALLBACK (proxy_g_signal_cb),
+ notification,
+ 0);
}
if (_notify_uses_portal_notifications ()) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnotify-0.8.2/meson.build new/libnotify-0.8.3/meson.build
--- old/libnotify-0.8.2/meson.build 2023-02-17 22:20:15.000000000 +0100
+++ new/libnotify-0.8.3/meson.build 2023-10-09 23:24:46.000000000 +0200
@@ -1,6 +1,6 @@
project('libnotify',
'c',
- version: '0.8.2',
+ version: '0.8.3',
meson_version: '>= 0.56.0')
gnome = import('gnome')
@@ -39,7 +39,7 @@
libnotify_deps = []
extra_deps = []
-glib_req_version = '>= 2.38.0'
+glib_req_version = '>= 2.62.0'
gdk_pixbuf_dep = dependency('gdk-pixbuf-2.0')
glib_dep = dependency('glib-2.0', version: glib_req_version)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package NetworkManager-l2tp for openSUSE:Factory checked in at 2023-12-02 17:12:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/NetworkManager-l2tp (Old)
and /work/SRC/openSUSE:Factory/.NetworkManager-l2tp.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "NetworkManager-l2tp"
Sat Dec 2 17:12:14 2023 rev:14 rq:1130316 version:1.20.10
Changes:
--------
--- /work/SRC/openSUSE:Factory/NetworkManager-l2tp/NetworkManager-l2tp.changes 2023-01-07 17:16:17.552931116 +0100
+++ /work/SRC/openSUSE:Factory/.NetworkManager-l2tp.new.25432/NetworkManager-l2tp.changes 2023-12-02 17:12:26.063723912 +0100
@@ -1,0 +2,11 @@
+Wed Oct 11 22:47:24 UTC 2023 - Bjørn <bjorn.lie(a)gmail.com>
+
+- Update to version 1.20.10:
+ + Fix missing ppp user option.
+ + Add support for compiling against pppd-2.5.0, including
+ pkgconfig support to pickup the pppd plugin directory.
+ + Add error output for missing TLS filenames.
+ + Remove bashisms in configure script.
+ + Spell checked code with CSpell.
+
+-------------------------------------------------------------------
Old:
----
NetworkManager-l2tp-1.20.8.tar.xz
New:
----
NetworkManager-l2tp-1.20.10.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ NetworkManager-l2tp.spec ++++++
--- /var/tmp/diff_new_pack.hZPbE2/_old 2023-12-02 17:12:26.711747660 +0100
+++ /var/tmp/diff_new_pack.hZPbE2/_new 2023-12-02 17:12:26.711747660 +0100
@@ -18,13 +18,13 @@
%define pppd_plugin_dir %(rpm -ql ppp | grep -m1 pppd/[0-9]*)
Name: NetworkManager-l2tp
-Version: 1.20.8
+Version: 1.20.10
Release: 0
Summary: NetworkManager VPN support for L2TP and L2TP/IPsec
License: GPL-2.0-or-later
Group: Productivity/Networking/System
URL: https://github.com/nm-l2tp/NetworkManager-l2tp
-Source0: https://github.com/nm-l2tp/NetworkManager-l2tp/releases/download/%{version}…
+Source0: %{url}/releases/download/%{version}/%{name}-%{version}.tar.xz
BuildRequires: libxml2-tools
BuildRequires: openssl-devel
++++++ NetworkManager-l2tp-1.20.8.tar.xz -> NetworkManager-l2tp-1.20.10.tar.xz ++++++
++++ 32306 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gnome-disk-utility for openSUSE:Factory checked in at 2023-12-02 17:12:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-disk-utility (Old)
and /work/SRC/openSUSE:Factory/.gnome-disk-utility.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-disk-utility"
Sat Dec 2 17:12:12 2023 rev:85 rq:1130315 version:45.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-disk-utility/gnome-disk-utility.changes 2023-09-20 13:21:43.726608103 +0200
+++ /work/SRC/openSUSE:Factory/.gnome-disk-utility.new.25432/gnome-disk-utility.changes 2023-12-02 17:12:24.127652963 +0100
@@ -1,0 +2,8 @@
+Fri Dec 1 10:43:17 UTC 2023 - Dominique Leuenberger <dimstar(a)opensuse.org>
+
+- Update to version 45.1:
+ + creatediskimage: Fix crash if image creation has errors.
+ + Update appdata
+ + Updted translations.
+
+-------------------------------------------------------------------
Old:
----
gnome-disk-utility-45.0.tar.xz
New:
----
gnome-disk-utility-45.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-disk-utility.spec ++++++
--- /var/tmp/diff_new_pack.kwCfpk/_old 2023-12-02 17:12:24.835678909 +0100
+++ /var/tmp/diff_new_pack.kwCfpk/_new 2023-12-02 17:12:24.839679055 +0100
@@ -17,7 +17,7 @@
Name: gnome-disk-utility
-Version: 45.0
+Version: 45.1
Release: 0
Summary: Disks application for dealing with storage devices
License: GPL-2.0-or-later
++++++ gnome-disk-utility-45.0.tar.xz -> gnome-disk-utility-45.1.tar.xz ++++++
++++ 11215 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package evolution-ews for openSUSE:Factory checked in at 2023-12-02 17:12:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/evolution-ews (Old)
and /work/SRC/openSUSE:Factory/.evolution-ews.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "evolution-ews"
Sat Dec 2 17:12:10 2023 rev:138 rq:1130313 version:3.50.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/evolution-ews/evolution-ews.changes 2023-10-23 23:40:08.505736157 +0200
+++ /work/SRC/openSUSE:Factory/.evolution-ews.new.25432/evolution-ews.changes 2023-12-02 17:12:20.391516047 +0100
@@ -1,0 +2,7 @@
+Fri Dec 1 10:35:54 UTC 2023 - Dominique Leuenberger <dimstar(a)opensuse.org>
+
+- Update to version 3.50.2:
+ + Calendar: Don't convert UTC times to local timezone
+ + Updated translations.
+
+-------------------------------------------------------------------
Old:
----
evolution-ews-3.50.1.tar.xz
New:
----
evolution-ews-3.50.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ evolution-ews.spec ++++++
--- /var/tmp/diff_new_pack.YsxhuA/_old 2023-12-02 17:12:20.907534957 +0100
+++ /var/tmp/diff_new_pack.YsxhuA/_new 2023-12-02 17:12:20.911535104 +0100
@@ -20,7 +20,7 @@
%define _version %(echo %{version} | grep -E -o '[0-9]+\.[0-9]+\.[0-9]+')
Name: evolution-ews
-Version: 3.50.1
+Version: 3.50.2
Release: 0
Summary: Exchange Connector for Evolution, compatible with Exchange 2007 and later
License: LGPL-2.1-only
++++++ evolution-ews-3.50.1.tar.xz -> evolution-ews-3.50.2.tar.xz ++++++
++++ 1692 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package evolution-data-server for openSUSE:Factory checked in at 2023-12-02 17:12:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/evolution-data-server (Old)
and /work/SRC/openSUSE:Factory/.evolution-data-server.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "evolution-data-server"
Sat Dec 2 17:12:07 2023 rev:251 rq:1130311 version:3.50.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/evolution-data-server/evolution-data-server.changes 2023-10-23 23:40:09.853785092 +0200
+++ /work/SRC/openSUSE:Factory/.evolution-data-server.new.25432/evolution-data-server.changes 2023-12-02 17:12:13.307256435 +0100
@@ -1,0 +2,16 @@
+Fri Dec 1 10:02:07 UTC 2023 - Dominique Leuenberger <dimstar(a)opensuse.org>
+
+- Update to version 3.50.2:
+ + Bug Fixes:
+ - alarm-notify:
+ . Some reminders could be lost
+ . Birthday floating date shifted by one day
+ - CamelGpgContext: Don't leak istream in gpg_sign_sync().
+ - e-xml-utils: Fix build with libxml2 2.12.
+ + Miscellaneous:
+ - OAuth2: Add scheme handler for OAuth2 prompts in external
+ browser.
+ - EReminderWatcher: Last-notified time not always set.
+ + Updated translations.
+
+-------------------------------------------------------------------
Old:
----
evolution-data-server-3.50.1.tar.xz
New:
----
evolution-data-server-3.50.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ evolution-data-server.spec ++++++
--- /var/tmp/diff_new_pack.Jpy3HL/_old 2023-12-02 17:12:14.919315511 +0100
+++ /var/tmp/diff_new_pack.Jpy3HL/_new 2023-12-02 17:12:14.919315511 +0100
@@ -32,7 +32,7 @@
%bcond_without introspection
Name: evolution-data-server
-Version: 3.50.1
+Version: 3.50.2
Release: 0
Summary: Evolution Data Server
License: LGPL-2.0-only
@@ -395,6 +395,7 @@
%{_userunitdir}/evolution-user-prompter.service
%{_sysconfdir}/xdg/autostart/org.gnome.Evolution-alarm-notify.desktop
%{_datadir}/applications/org.gnome.Evolution-alarm-notify.desktop
+%{_datadir}/applications/org.gnome.evolution-data-server.OAuth2-handler.desktop
%files -n libcamel-1_2-%{so_camel}
%{_libdir}/libcamel-1.2.so.%{so_camel}*
++++++ evolution-data-server-3.50.1.tar.xz -> evolution-data-server-3.50.2.tar.xz ++++++
++++ 21710 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package vala for openSUSE:Factory checked in at 2023-12-02 17:12:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vala (Old)
and /work/SRC/openSUSE:Factory/.vala.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vala"
Sat Dec 2 17:12:06 2023 rev:140 rq:1130309 version:0.56.14
Changes:
--------
--- /work/SRC/openSUSE:Factory/vala/vala.changes 2023-11-16 20:26:55.944765246 +0100
+++ /work/SRC/openSUSE:Factory/.vala.new.25432/vala.changes 2023-12-02 17:12:12.099212165 +0100
@@ -1,0 +2,6 @@
+Wed Nov 29 13:39:39 UTC 2023 - Frederic Crozat <fcrozat(a)suse.com>
+
+- Allow to disable building valadoc as option and drop graphviz as
+ build dependency.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ vala.spec ++++++
--- /var/tmp/diff_new_pack.5O6jMg/_old 2023-12-02 17:12:12.715234740 +0100
+++ /var/tmp/diff_new_pack.5O6jMg/_new 2023-12-02 17:12:12.715234740 +0100
@@ -16,6 +16,9 @@
#
+# graphviz is needed only for valadoc
+%bcond_without graphviz
+
%define vala_version 0.56
%define vala_libversion 0_56
# The priority defines which version of vala, in case of multiple ones are installed
@@ -36,7 +39,9 @@
BuildRequires: glib2-devel >= 2.48.0
BuildRequires: pkgconfig
BuildRequires: xsltproc
+%if %{with graphviz}
BuildRequires: pkgconfig(libgvc) >= 2.16
+%endif
Requires(post): update-alternatives
Requires(postun):update-alternatives
# Vala is a compiler, so it's also a devel package
@@ -66,6 +71,7 @@
%description -n libvala-%{vala_libversion}-devel
Development files for the Vala runtime library.
+%if %{with graphviz}
%package -n valadoc
Summary: Generator for API documentation from Vala source
Group: Development/Tools/Building
@@ -118,12 +124,16 @@
from Vala source code.
This package contains the libvaladoc development files.
+%endif
%prep
%autosetup -p1
%build
%configure \
+%if %{without graphviz}
+ --disable-valadoc \
+%endif
%{nil}
%make_build
@@ -161,7 +171,9 @@
fi
%ldconfig_scriptlets -n libvala-%{vala_libversion}-0
+%if %{with graphviz}
%ldconfig_scriptlets -n libvaladoc-%{vala_libversion}-0
+%endif
%files
%license COPYING
@@ -197,6 +209,7 @@
%{_datadir}/vala-%{vala_version}/
%{_libdir}/vala-%{vala_version}/
+%if %{with graphviz}
%files -n valadoc
%{_bindir}/valadoc
%{_bindir}/valadoc-%{vala_version}
@@ -216,12 +229,15 @@
%dir %{_libdir}/valadoc-%{vala_version}
%dir %{_libdir}/valadoc-%{vala_version}/doclets
%{_libdir}/valadoc-%{vala_version}/doclets/html/
+%endif
%files -n libvala-%{vala_libversion}-0
%{_libdir}/libvala-%{vala_version}.so.*
+%if %{with graphviz}
%files -n libvaladoc-%{vala_libversion}-0
%{_libdir}/libvaladoc-%{vala_version}.so.*
+%endif
%files -n libvala-%{vala_libversion}-devel
%{_includedir}/vala-%{vala_version}/
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000release-packages for openSUSE:Factory checked in at 2023-12-02 01:06:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000release-packages (Old)
and /work/SRC/openSUSE:Factory/.000release-packages.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000release-packages"
Sat Dec 2 01:06:34 2023 rev:2620 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
MicroOS-release.spec: same change
openSUSE-Addon-NonOss-release.spec: same change
openSUSE-release.spec: same change
stub.spec: same change
++++++ weakremovers.inc ++++++
--- /var/tmp/diff_new_pack.udR3uG/_old 2023-12-02 01:06:37.677950541 +0100
+++ /var/tmp/diff_new_pack.udR3uG/_new 2023-12-02 01:06:37.689950982 +0100
@@ -16880,7 +16880,10 @@
Provides: weakremover(libvtk-m-1_9-mpich)
Provides: weakremover(libvtk-m-1_9-openmpi3)
Provides: weakremover(libvtk-m-1_9-openmpi4)
+Provides: weakremover(libvtk-m-2_0)
+Provides: weakremover(libvtk-m-mpich-2_0)
Provides: weakremover(libvtk-m-openmpi3-2_0)
+Provides: weakremover(libvtk-m-openmpi4-2_0)
Provides: weakremover(libvtk1-openmpi)
Provides: weakremover(libvtk1-openmpi1)
Provides: weakremover(libvtk1-openmpi2)
@@ -37516,6 +37519,7 @@
Provides: weakremover(ruby3.2-rubygem-commander)
Provides: weakremover(ruby3.2-rubygem-d-installer)
Provides: weakremover(ruby3.2-rubygem-d-installer-cli)
+Provides: weakremover(ruby3.2-rubygem-grape)
Provides: weakremover(ruby3.2-rubygem-http)
Provides: weakremover(ruby3.2-rubygem-jekyll)
Provides: weakremover(ruby3.2-rubygem-jekyll-sass-converter)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000release-packages for openSUSE:Factory checked in at 2023-12-01 21:41:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000release-packages (Old)
and /work/SRC/openSUSE:Factory/.000release-packages.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000release-packages"
Fri Dec 1 21:41:38 2023 rev:2619 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ Aeon-release.spec ++++++
--- /var/tmp/diff_new_pack.qHDALF/_old 2023-12-01 21:41:42.409951532 +0100
+++ /var/tmp/diff_new_pack.qHDALF/_new 2023-12-01 21:41:42.409951532 +0100
@@ -17,7 +17,7 @@
Name: Aeon-release
-Version: 20231130
+Version: 20231201
Release: 0
Summary: openSUSE Aeon
License: GPL-2.0-or-later
@@ -172,9 +172,9 @@
%include %{SOURCE100}
Provides: %name-%version
Provides: product() = Aeon
-Provides: product(Aeon) = 20231130-0
+Provides: product(Aeon) = 20231201-0
Provides: product-label() = openSUSE%20Aeon
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aaeon%3A20231130
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aaeon%3A20231201
Provides: product-url(releasenotes) = http%3A%2F%2Fdoc.opensuse.org%2Frelease%2Dnotes%2Fx86_64%2FopenSUSE%2FTumbleweed%2Frelease%2Dnotes%2DopenSUSE.rpm
Provides: product-endoflife()
Requires: product_flavor(Aeon)
@@ -190,7 +190,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance)
-Provides: product_flavor(Aeon) = 20231130-0
+Provides: product_flavor(Aeon) = 20231201-0
Summary: openSUSE Aeon%{?betaversion: %{betaversion}}
%description appliance
@@ -255,11 +255,11 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>Aeon</name>
- <version>20231130</version>
+ <version>20231201</version>
<release>0</release>
<endoflife></endoflife>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:aeon:20231130</cpeid>
+ <cpeid>cpe:/o:opensuse:aeon:20231201</cpeid>
<productline>Aeon</productline>
<register>
<pool>
++++++ MicroOS-release.spec ++++++
--- /var/tmp/diff_new_pack.qHDALF/_old 2023-12-01 21:41:42.437952566 +0100
+++ /var/tmp/diff_new_pack.qHDALF/_new 2023-12-01 21:41:42.437952566 +0100
@@ -17,7 +17,7 @@
Name: MicroOS-release
-Version: 20231130
+Version: 20231201
Release: 0
Summary: openSUSE MicroOS
License: GPL-2.0-or-later
@@ -177,9 +177,9 @@
%include %{SOURCE100}
Provides: %name-%version
Provides: product() = MicroOS
-Provides: product(MicroOS) = 20231130-0
+Provides: product(MicroOS) = 20231201-0
Provides: product-label() = openSUSE%20MicroOS
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Amicroos%3A20231130
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Amicroos%3A20231201
Provides: product-url(releasenotes) = http%3A%2F%2Fdoc.opensuse.org%2Frelease%2Dnotes%2Fx86_64%2FopenSUSE%2FTumbleweed%2Frelease%2Dnotes%2DopenSUSE.rpm
Provides: product-endoflife()
Requires: product_flavor(MicroOS)
@@ -195,7 +195,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(dvd)
-Provides: product_flavor(MicroOS) = 20231130-0
+Provides: product_flavor(MicroOS) = 20231201-0
Summary: openSUSE MicroOS%{?betaversion: %{betaversion}}
%description dvd
@@ -211,7 +211,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance)
-Provides: product_flavor(MicroOS) = 20231130-0
+Provides: product_flavor(MicroOS) = 20231201-0
Summary: openSUSE MicroOS%{?betaversion: %{betaversion}}
%description appliance
@@ -276,11 +276,11 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>MicroOS</name>
- <version>20231130</version>
+ <version>20231201</version>
<release>0</release>
<endoflife></endoflife>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:microos:20231130</cpeid>
+ <cpeid>cpe:/o:opensuse:microos:20231201</cpeid>
<productline>MicroOS</productline>
<register>
<pool>
++++++ openSUSE-Addon-NonOss-release.spec ++++++
--- /var/tmp/diff_new_pack.qHDALF/_old 2023-12-01 21:41:42.461953453 +0100
+++ /var/tmp/diff_new_pack.qHDALF/_new 2023-12-01 21:41:42.461953453 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package openSUSE-Addon-NonOss-release (Version 20231130)
+# spec file for package openSUSE-Addon-NonOss-release (Version 20231201)
#
# Copyright (c) 2023 openSUSE.
#
@@ -16,7 +16,7 @@
Name: openSUSE-Addon-NonOss-release
%define product openSUSE-Addon-NonOss
Summary: openSUSE NonOSS Addon%{?betaversion: %{betaversion}}
-Version: 20231130
+Version: 20231201
#!BcntSyncTag: openSUSE-Addon-NonOss
Release: 0
License: BSD-3-Clause
@@ -25,9 +25,9 @@
Provides: %name-%version
Provides: product() = openSUSE%2DAddon%2DNonOss
-Provides: product(openSUSE-Addon-NonOss) = 20231130-0
+Provides: product(openSUSE-Addon-NonOss) = 20231201-0
Provides: product-label() = non%20oss%20addon
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%2Daddon%2Dnonoss%3A20231130
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%2Daddon%2Dnonoss%3A20231201
AutoReqProv: on
@@ -50,10 +50,10 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE-Addon-NonOss</name>
- <version>20231130</version>
+ <version>20231201</version>
<release>0</release>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:opensuse-addon-nonoss:20231130</cpeid>
+ <cpeid>cpe:/o:opensuse:opensuse-addon-nonoss:20231201</cpeid>
<register>
<pool>
</pool>
++++++ openSUSE-release.spec ++++++
--- /var/tmp/diff_new_pack.qHDALF/_old 2023-12-01 21:41:42.485954339 +0100
+++ /var/tmp/diff_new_pack.qHDALF/_new 2023-12-01 21:41:42.485954339 +0100
@@ -20,7 +20,7 @@
#define betaversion %{nil}
%define codename Tumbleweed
Name: openSUSE-release
-Version: 20231130
+Version: 20231201
Release: 0
# 0 is the product release, not the build release of this package
Summary: openSUSE Tumbleweed
@@ -181,7 +181,7 @@
%include %{SOURCE100}
Provides: %name-%version
Provides: product() = openSUSE
-Provides: product(openSUSE) = 20231130-0
+Provides: product(openSUSE) = 20231201-0
%ifarch x86_64
Provides: product-register-target() = openSUSE%2DTumbleweed%2Dx86_64
%endif
@@ -195,7 +195,7 @@
Provides: product-register-target() = openSUSE%2DTumbleweed%2Daarch64
%endif
Provides: product-label() = openSUSE
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%3A20231130
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%3A20231201
Provides: product-url(releasenotes) = http%3A%2F%2Fdoc.opensuse.org%2Frelease%2Dnotes%2Fx86_64%2FopenSUSE%2FTumbleweed%2Frelease%2Dnotes%2DopenSUSE.rpm
Provides: product-url(repository) = http%3A%2F%2Fdownload.opensuse.org%2Ftumbleweed%2Frepo%2Foss%2F
Requires: product_flavor(openSUSE)
@@ -209,7 +209,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(ftp)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description ftp
@@ -224,7 +224,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(mini)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description mini
@@ -239,7 +239,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(dvd)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description dvd
@@ -254,7 +254,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-kde)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-kde
@@ -269,7 +269,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-x11)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-x11
@@ -284,7 +284,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-gnome)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-gnome
@@ -299,7 +299,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-xfce)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-xfce
@@ -314,7 +314,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-kde)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-kde
@@ -329,7 +329,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-gnome)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-gnome
@@ -344,7 +344,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-x11)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-x11
@@ -359,7 +359,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance
@@ -374,7 +374,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-docker)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-docker
@@ -389,7 +389,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-kvm)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-kvm
@@ -404,7 +404,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-vmware)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-vmware
@@ -419,7 +419,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-openstack)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-openstack
@@ -434,7 +434,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-hyperv)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-hyperv
@@ -449,7 +449,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-vagrant)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-vagrant
@@ -464,7 +464,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-wsl)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-wsl
@@ -479,7 +479,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-custom)
-Provides: product_flavor(openSUSE) = 20231130-0
+Provides: product_flavor(openSUSE) = 20231201-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-custom
@@ -559,10 +559,10 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE</name>
- <version>20231130</version>
+ <version>20231201</version>
<release>0</release>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:opensuse:20231130</cpeid>
+ <cpeid>cpe:/o:opensuse:opensuse:20231201</cpeid>
<productline>openSUSE</productline>
<register>
<target>openSUSE-Tumbleweed-x86_64</target>
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-WSME for openSUSE:Factory checked in at 2023-12-01 21:27:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-WSME (Old)
and /work/SRC/openSUSE:Factory/.python-WSME.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-WSME"
Fri Dec 1 21:27:22 2023 rev:22 rq:1130307 version:0.12.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-WSME/python-WSME.changes 2022-04-16 00:14:45.689690139 +0200
+++ /work/SRC/openSUSE:Factory/.python-WSME.new.25432/python-WSME.changes 2023-12-01 21:27:39.070910837 +0100
@@ -1,0 +2,14 @@
+Fri Dec 1 16:48:47 UTC 2023 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 0.12.1:
+ * setup: Fix classifier
+ * Drop support for Python < 3.8, use PTI test interface
+ * setup: Update classifiers
+ * Migrate to importlib.metadata
+ * Remove use of deprecated APIs
+ * Fix compatibility with recent Sphinx versions
+ * Fix flake8 issues
+ * tests: Migrate to pytest
+ * Fix code to work with Sphinx>5.0
+
+-------------------------------------------------------------------
Old:
----
WSME-0.11.0.tar.gz
New:
----
WSME-0.12.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-WSME.spec ++++++
--- /var/tmp/diff_new_pack.hYfY8c/_old 2023-12-01 21:27:39.574929385 +0100
+++ /var/tmp/diff_new_pack.hYfY8c/_new 2023-12-01 21:27:39.578929532 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-WSME
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,10 +16,9 @@
#
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
-%global skip_python2 1
+%{?sle15_python_module_pythons}
Name: python-WSME
-Version: 0.11.0
+Version: 0.12.1
Release: 0
Summary: Web Services Made Easy
License: MIT
++++++ WSME-0.11.0.tar.gz -> WSME-0.12.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.11.0/.zuul.yaml new/WSME-0.12.1/.zuul.yaml
--- old/WSME-0.11.0/.zuul.yaml 2021-07-27 18:40:58.000000000 +0200
+++ new/WSME-0.12.1/.zuul.yaml 2023-09-21 19:49:10.000000000 +0200
@@ -1,5 +1,5 @@
+---
- project:
templates:
- - openstack-python36-jobs
- - openstack-python37-jobs
- - openstack-python38-jobs
+ - openstack-python3-jobs
+ - publish-openstack-docs-pti
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.11.0/AUTHORS new/WSME-0.12.1/AUTHORS
--- old/WSME-0.11.0/AUTHORS 2021-07-27 18:41:34.000000000 +0200
+++ new/WSME-0.12.1/AUTHORS 2023-09-22 11:24:46.000000000 +0200
@@ -28,9 +28,11 @@
Mehdi Abaakouk <sileht(a)sileht.net>
Michael Johnson <johnsomor(a)gmail.com>
Michael Krotscheck <krotscheck(a)gmail.com>
+Rafael Weingärtner <rafael(a)apache.org>
Ryan Petrello <lists(a)ryanpetrello.com>
Sanu Madhavan <sanuptpm(a)gmail.com>
Sascha Peilicke <speilicke(a)suse.com>
+Stephen Finucane <sfinucan(a)redhat.com>
Stephen Finucane <stephenfin(a)redhat.com>
Stéphane Bisinger <stephane.bisinger(a)gmail.com>
Sławek Ehlert <slafs(a)op.pl>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.11.0/ChangeLog new/WSME-0.12.1/ChangeLog
--- old/WSME-0.11.0/ChangeLog 2021-07-27 18:41:34.000000000 +0200
+++ new/WSME-0.12.1/ChangeLog 2023-09-22 11:24:46.000000000 +0200
@@ -1,6 +1,23 @@
CHANGES
=======
+0.12.1
+------
+
+* setup: Fix classifier
+
+0.12.0
+------
+
+* Drop support for Python < 3.8, use PTI test interface
+* setup: Update classifiers
+* Migrate to importlib.metadata
+* Remove use of deprecated APIs
+* Fix compatibility with recent Sphinx versions
+* Fix flake8 issues
+* tests: Migrate to pytest
+* Fix code to work with Sphinx>5.0
+
0.11.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.11.0/PKG-INFO new/WSME-0.12.1/PKG-INFO
--- old/WSME-0.11.0/PKG-INFO 2021-07-27 18:41:34.471736400 +0200
+++ new/WSME-0.12.1/PKG-INFO 2023-09-22 11:24:47.065422000 +0200
@@ -1,130 +1,130 @@
-Metadata-Version: 1.2
+Metadata-Version: 2.1
Name: WSME
-Version: 0.11.0
+Version: 0.12.1
Summary: Simplify the writing of REST APIs, and extend them with additional protocols.
Home-page: https://opendev.org/x/wsme
Author: Christophe de Vienne
Author-email: python-wsme(a)googlegroups.com
License: MIT
-Description: Web Services Made Easy
- ======================
-
- Introduction
- ------------
-
- Web Services Made Easy (WSME) simplifies the writing of REST web services
- by providing simple yet powerful typing, removing the need to directly
- manipulate the request and the response objects.
-
- WSME can work standalone or on top of your favorite Python web
- (micro)framework, so you can use both your preferred way of routing your REST
- requests and most of the features of WSME that rely on the typing system like:
-
- - Alternate protocols, including those supporting batch-calls
- - Easy documentation through a Sphinx_ extension
-
- WSME is originally a rewrite of TGWebServices with a focus on extensibility,
- framework-independence and better type handling.
-
- How Easy?
- ~~~~~~~~~
-
- Here is a standalone WSGI example::
-
- from wsme import WSRoot, expose
-
- class MyService(WSRoot):
- @expose(unicode, unicode) # First parameter is the return type,
- # then the function argument types
- def hello(self, who=u'World'):
- return u"Hello {0} !".format(who)
-
- ws = MyService(protocols=['restjson', 'restxml'])
- application = ws.wsgiapp()
-
- With this published at the ``/ws`` path of your application, you can access your
- hello function in various protocols:
-
- .. list-table::
- :header-rows: 1
-
- * - URL
- - Returns
-
- * - ``http://<server>/ws/hello.json?who=you``
- - ``"Hello you !"``
-
- * - ``http://<server>/ws/hello.xml``
- - ``<result>Hello World !</result>``
-
- Main features
- ~~~~~~~~~~~~~
-
- - Very simple API.
-
- - Supports user-defined simple and complex types.
-
- - Multi-protocol : REST+JSON, REST+XML and more possible.
-
- - Extensible : easy to add more protocols or more base types.
-
- - Framework independence : adapters are provided to easily integrate your API in
- any web framework, for example an WSGI container, Pecan_, Flask_, ...
-
- - Very few runtime dependencies: webob, simplegeneric.
-
- - Integration in `Sphinx`_ for making clean documentation with
- ``wsmeext.sphinxext``.
-
- .. _Pecan: http://pecanpy.org/
- .. _Flask: http://flask.pocoo.org/
-
- Install
- ~~~~~~~
-
- ::
-
- pip install WSME
-
- Changes
- ~~~~~~~
-
- - Read the `Changelog`_
-
- Getting Help
- ~~~~~~~~~~~~
-
- - Read the `WSME Documentation`_.
- - Questions about WSME should go to the `python-wsme mailinglist`_.
-
- Contribute
- ~~~~~~~~~~
-
- - Documentation: http://packages.python.org/WSME/
- - Source: http://git.openstack.org/cgit/openstack/wsme
- - Bugs: https://bugs.launchpad.net/wsme/+bugs
- - Code review: https://review.openstack.org/#/q/project:openstack/wsme,n,z
-
- .. _Changelog: http://packages.python.org/WSME/changes.html
- .. _python-wsme mailinglist: http://groups.google.com/group/python-wsme
- .. _WSME Documentation: http://packages.python.org/WSME/
- .. _WSME issue tracker: https://bugs.launchpad.net/wsme/+bugs
- .. _Sphinx: http://sphinx.pocoo.org/
-
-
-Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Programming Language :: Python :: 3.6
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Programming Language :: Python :: 3.8
-Classifier: Programming Language :: Python :: 3.9
-Classifier: Programming Language :: Python :: Implementation :: CPython
-Classifier: Programming Language :: Python :: Implementation :: PyPy
+Classifier: Programming Language :: Python :: 3 :: Only
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI
Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Requires-Python: >=3.6
+Requires-Python: >=3.8
+License-File: LICENSE
+License-File: AUTHORS
+Requires-Dist: WebOb>=1.8.0
+Requires-Dist: simplegeneric
+Requires-Dist: pytz
+Requires-Dist: netaddr>=0.7.12
+Requires-Dist: importlib_metadata>=4.4
+
+Web Services Made Easy
+======================
+
+Introduction
+------------
+
+Web Services Made Easy (WSME) simplifies the writing of REST web services
+by providing simple yet powerful typing, removing the need to directly
+manipulate the request and the response objects.
+
+WSME can work standalone or on top of your favorite Python web
+(micro)framework, so you can use both your preferred way of routing your REST
+requests and most of the features of WSME that rely on the typing system like:
+
+- Alternate protocols, including those supporting batch-calls
+- Easy documentation through a Sphinx_ extension
+
+WSME is originally a rewrite of TGWebServices with a focus on extensibility,
+framework-independence and better type handling.
+
+How Easy?
+~~~~~~~~~
+
+Here is a standalone WSGI example::
+
+ from wsme import WSRoot, expose
+
+ class MyService(WSRoot):
+ @expose(unicode, unicode) # First parameter is the return type,
+ # then the function argument types
+ def hello(self, who=u'World'):
+ return u"Hello {0} !".format(who)
+
+ ws = MyService(protocols=['restjson', 'restxml'])
+ application = ws.wsgiapp()
+
+With this published at the ``/ws`` path of your application, you can access your
+hello function in various protocols:
+
+.. list-table::
+ :header-rows: 1
+
+ * - URL
+ - Returns
+
+ * - ``http://<server>/ws/hello.json?who=you``
+ - ``"Hello you !"``
+
+ * - ``http://<server>/ws/hello.xml``
+ - ``<result>Hello World !</result>``
+
+Main features
+~~~~~~~~~~~~~
+
+- Very simple API.
+
+- Supports user-defined simple and complex types.
+
+- Multi-protocol : REST+JSON, REST+XML and more possible.
+
+- Extensible : easy to add more protocols or more base types.
+
+- Framework independence : adapters are provided to easily integrate your API in
+ any web framework, for example an WSGI container, Pecan_, Flask_, ...
+
+- Very few runtime dependencies: webob, simplegeneric.
+
+- Integration in `Sphinx`_ for making clean documentation with
+ ``wsmeext.sphinxext``.
+
+.. _Pecan: http://pecanpy.org/
+.. _Flask: http://flask.pocoo.org/
+
+Install
+~~~~~~~
+
+::
+
+ pip install WSME
+
+Changes
+~~~~~~~
+
+- Read the `Changelog`_
+
+Getting Help
+~~~~~~~~~~~~
+
+- Read the `WSME Documentation`_.
+- Questions about WSME should go to the `python-wsme mailinglist`_.
+
+Contribute
+~~~~~~~~~~
+
+- Documentation: http://packages.python.org/WSME/
+- Source: http://git.openstack.org/cgit/openstack/wsme
+- Bugs: https://bugs.launchpad.net/wsme/+bugs
+- Code review: https://review.openstack.org/#/q/project:openstack/wsme,n,z
+
+.. _Changelog: http://packages.python.org/WSME/changes.html
+.. _python-wsme mailinglist: http://groups.google.com/group/python-wsme
+.. _WSME Documentation: http://packages.python.org/WSME/
+.. _WSME issue tracker: https://bugs.launchpad.net/wsme/+bugs
+.. _Sphinx: http://sphinx.pocoo.org/
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.11.0/WSME.egg-info/PKG-INFO new/WSME-0.12.1/WSME.egg-info/PKG-INFO
--- old/WSME-0.11.0/WSME.egg-info/PKG-INFO 2021-07-27 18:41:34.000000000 +0200
+++ new/WSME-0.12.1/WSME.egg-info/PKG-INFO 2023-09-22 11:24:46.000000000 +0200
@@ -1,130 +1,130 @@
-Metadata-Version: 1.2
+Metadata-Version: 2.1
Name: WSME
-Version: 0.11.0
+Version: 0.12.1
Summary: Simplify the writing of REST APIs, and extend them with additional protocols.
Home-page: https://opendev.org/x/wsme
Author: Christophe de Vienne
Author-email: python-wsme(a)googlegroups.com
License: MIT
-Description: Web Services Made Easy
- ======================
-
- Introduction
- ------------
-
- Web Services Made Easy (WSME) simplifies the writing of REST web services
- by providing simple yet powerful typing, removing the need to directly
- manipulate the request and the response objects.
-
- WSME can work standalone or on top of your favorite Python web
- (micro)framework, so you can use both your preferred way of routing your REST
- requests and most of the features of WSME that rely on the typing system like:
-
- - Alternate protocols, including those supporting batch-calls
- - Easy documentation through a Sphinx_ extension
-
- WSME is originally a rewrite of TGWebServices with a focus on extensibility,
- framework-independence and better type handling.
-
- How Easy?
- ~~~~~~~~~
-
- Here is a standalone WSGI example::
-
- from wsme import WSRoot, expose
-
- class MyService(WSRoot):
- @expose(unicode, unicode) # First parameter is the return type,
- # then the function argument types
- def hello(self, who=u'World'):
- return u"Hello {0} !".format(who)
-
- ws = MyService(protocols=['restjson', 'restxml'])
- application = ws.wsgiapp()
-
- With this published at the ``/ws`` path of your application, you can access your
- hello function in various protocols:
-
- .. list-table::
- :header-rows: 1
-
- * - URL
- - Returns
-
- * - ``http://<server>/ws/hello.json?who=you``
- - ``"Hello you !"``
-
- * - ``http://<server>/ws/hello.xml``
- - ``<result>Hello World !</result>``
-
- Main features
- ~~~~~~~~~~~~~
-
- - Very simple API.
-
- - Supports user-defined simple and complex types.
-
- - Multi-protocol : REST+JSON, REST+XML and more possible.
-
- - Extensible : easy to add more protocols or more base types.
-
- - Framework independence : adapters are provided to easily integrate your API in
- any web framework, for example an WSGI container, Pecan_, Flask_, ...
-
- - Very few runtime dependencies: webob, simplegeneric.
-
- - Integration in `Sphinx`_ for making clean documentation with
- ``wsmeext.sphinxext``.
-
- .. _Pecan: http://pecanpy.org/
- .. _Flask: http://flask.pocoo.org/
-
- Install
- ~~~~~~~
-
- ::
-
- pip install WSME
-
- Changes
- ~~~~~~~
-
- - Read the `Changelog`_
-
- Getting Help
- ~~~~~~~~~~~~
-
- - Read the `WSME Documentation`_.
- - Questions about WSME should go to the `python-wsme mailinglist`_.
-
- Contribute
- ~~~~~~~~~~
-
- - Documentation: http://packages.python.org/WSME/
- - Source: http://git.openstack.org/cgit/openstack/wsme
- - Bugs: https://bugs.launchpad.net/wsme/+bugs
- - Code review: https://review.openstack.org/#/q/project:openstack/wsme,n,z
-
- .. _Changelog: http://packages.python.org/WSME/changes.html
- .. _python-wsme mailinglist: http://groups.google.com/group/python-wsme
- .. _WSME Documentation: http://packages.python.org/WSME/
- .. _WSME issue tracker: https://bugs.launchpad.net/wsme/+bugs
- .. _Sphinx: http://sphinx.pocoo.org/
-
-
-Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Programming Language :: Python :: 3.6
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Programming Language :: Python :: 3.8
-Classifier: Programming Language :: Python :: 3.9
-Classifier: Programming Language :: Python :: Implementation :: CPython
-Classifier: Programming Language :: Python :: Implementation :: PyPy
+Classifier: Programming Language :: Python :: 3 :: Only
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI
Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Requires-Python: >=3.6
+Requires-Python: >=3.8
+License-File: LICENSE
+License-File: AUTHORS
+Requires-Dist: WebOb>=1.8.0
+Requires-Dist: simplegeneric
+Requires-Dist: pytz
+Requires-Dist: netaddr>=0.7.12
+Requires-Dist: importlib_metadata>=4.4
+
+Web Services Made Easy
+======================
+
+Introduction
+------------
+
+Web Services Made Easy (WSME) simplifies the writing of REST web services
+by providing simple yet powerful typing, removing the need to directly
+manipulate the request and the response objects.
+
+WSME can work standalone or on top of your favorite Python web
+(micro)framework, so you can use both your preferred way of routing your REST
+requests and most of the features of WSME that rely on the typing system like:
+
+- Alternate protocols, including those supporting batch-calls
+- Easy documentation through a Sphinx_ extension
+
+WSME is originally a rewrite of TGWebServices with a focus on extensibility,
+framework-independence and better type handling.
+
+How Easy?
+~~~~~~~~~
+
+Here is a standalone WSGI example::
+
+ from wsme import WSRoot, expose
+
+ class MyService(WSRoot):
+ @expose(unicode, unicode) # First parameter is the return type,
+ # then the function argument types
+ def hello(self, who=u'World'):
+ return u"Hello {0} !".format(who)
+
+ ws = MyService(protocols=['restjson', 'restxml'])
+ application = ws.wsgiapp()
+
+With this published at the ``/ws`` path of your application, you can access your
+hello function in various protocols:
+
+.. list-table::
+ :header-rows: 1
+
+ * - URL
+ - Returns
+
+ * - ``http://<server>/ws/hello.json?who=you``
+ - ``"Hello you !"``
+
+ * - ``http://<server>/ws/hello.xml``
+ - ``<result>Hello World !</result>``
+
+Main features
+~~~~~~~~~~~~~
+
+- Very simple API.
+
+- Supports user-defined simple and complex types.
+
+- Multi-protocol : REST+JSON, REST+XML and more possible.
+
+- Extensible : easy to add more protocols or more base types.
+
+- Framework independence : adapters are provided to easily integrate your API in
+ any web framework, for example an WSGI container, Pecan_, Flask_, ...
+
+- Very few runtime dependencies: webob, simplegeneric.
+
+- Integration in `Sphinx`_ for making clean documentation with
+ ``wsmeext.sphinxext``.
+
+.. _Pecan: http://pecanpy.org/
+.. _Flask: http://flask.pocoo.org/
+
+Install
+~~~~~~~
+
+::
+
+ pip install WSME
+
+Changes
+~~~~~~~
+
+- Read the `Changelog`_
+
+Getting Help
+~~~~~~~~~~~~
+
+- Read the `WSME Documentation`_.
+- Questions about WSME should go to the `python-wsme mailinglist`_.
+
+Contribute
+~~~~~~~~~~
+
+- Documentation: http://packages.python.org/WSME/
+- Source: http://git.openstack.org/cgit/openstack/wsme
+- Bugs: https://bugs.launchpad.net/wsme/+bugs
+- Code review: https://review.openstack.org/#/q/project:openstack/wsme,n,z
+
+.. _Changelog: http://packages.python.org/WSME/changes.html
+.. _python-wsme mailinglist: http://groups.google.com/group/python-wsme
+.. _WSME Documentation: http://packages.python.org/WSME/
+.. _WSME issue tracker: https://bugs.launchpad.net/wsme/+bugs
+.. _Sphinx: http://sphinx.pocoo.org/
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.11.0/WSME.egg-info/entry_points.txt new/WSME-0.12.1/WSME.egg-info/entry_points.txt
--- old/WSME-0.11.0/WSME.egg-info/entry_points.txt 2021-07-27 18:41:34.000000000 +0200
+++ new/WSME-0.12.1/WSME.egg-info/entry_points.txt 2023-09-22 11:24:46.000000000 +0200
@@ -2,4 +2,3 @@
rest = wsme.rest.protocol:RestProtocol
restjson = wsme.rest.protocol:RestProtocol
restxml = wsme.rest.protocol:RestProtocol
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.11.0/WSME.egg-info/pbr.json new/WSME-0.12.1/WSME.egg-info/pbr.json
--- old/WSME-0.11.0/WSME.egg-info/pbr.json 2021-07-27 18:41:34.000000000 +0200
+++ new/WSME-0.12.1/WSME.egg-info/pbr.json 2023-09-22 11:24:46.000000000 +0200
@@ -1 +1 @@
-{"git_version": "80bda90", "is_release": true}
\ No newline at end of file
+{"git_version": "8312bb2", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.11.0/WSME.egg-info/requires.txt new/WSME-0.12.1/WSME.egg-info/requires.txt
--- old/WSME-0.11.0/WSME.egg-info/requires.txt 2021-07-27 18:41:34.000000000 +0200
+++ new/WSME-0.12.1/WSME.egg-info/requires.txt 2023-09-22 11:24:46.000000000 +0200
@@ -1,4 +1,5 @@
WebOb>=1.8.0
-netaddr>=0.7.12
-pytz
simplegeneric
+pytz
+netaddr>=0.7.12
+importlib_metadata>=4.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.11.0/requirements.txt new/WSME-0.12.1/requirements.txt
--- old/WSME-0.11.0/requirements.txt 2021-07-27 18:40:58.000000000 +0200
+++ new/WSME-0.12.1/requirements.txt 2023-09-21 19:49:10.000000000 +0200
@@ -2,3 +2,5 @@
simplegeneric
pytz
netaddr>=0.7.12
+# TODO: Drop this when Python 3.10 is our minimum supported version
+importlib_metadata>=4.4 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.11.0/setup.cfg new/WSME-0.12.1/setup.cfg
--- old/WSME-0.11.0/setup.cfg 2021-07-27 18:41:34.475736400 +0200
+++ new/WSME-0.12.1/setup.cfg 2023-09-22 11:24:47.066422000 +0200
@@ -1,24 +1,18 @@
[metadata]
name = WSME
-author = Christophe de Vienne
-author-email = python-wsme(a)googlegroups.com
summary = Simplify the writing of REST APIs, and extend them with additional protocols.
-description-file = README.rst
+author = Christophe de Vienne
+author_email = python-wsme(a)googlegroups.com
+description_file = README.rst
url = https://opendev.org/x/wsme
license = MIT
-python_requires = >=3.6
+python_requires = >=3.8
classifier =
Development Status :: 3 - Alpha
Operating System :: OS Independent
Programming Language :: Python
Programming Language :: Python :: 3
- Programming Language :: Python :: 3.5
- Programming Language :: Python :: 3.6
- Programming Language :: Python :: 3.7
- Programming Language :: Python :: 3.8
- Programming Language :: Python :: 3.9
- Programming Language :: Python :: Implementation :: CPython
- Programming Language :: Python :: Implementation :: PyPy
+ Programming Language :: Python :: 3 :: Only
License :: OSI Approved :: MIT License
Topic :: Internet :: WWW/HTTP :: WSGI
Topic :: Software Development :: Libraries :: Python Modules
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.11.0/test-requirements.txt new/WSME-0.12.1/test-requirements.txt
--- old/WSME-0.11.0/test-requirements.txt 2021-07-27 18:40:58.000000000 +0200
+++ new/WSME-0.12.1/test-requirements.txt 2023-09-21 19:49:10.000000000 +0200
@@ -2,7 +2,7 @@
pecan
sphinx>=3.0.0 # BSD
Flask
-flask-restful
-nose
-coverage!=4.4,>=4.0 # Apache-2.0
-webtest
+Flask-RESTful # BSD
+pytest # MIT
+pytest-cov # MIT
+WebTest # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.11.0/tox.ini new/WSME-0.12.1/tox.ini
--- old/WSME-0.11.0/tox.ini 2021-07-27 18:40:58.000000000 +0200
+++ new/WSME-0.12.1/tox.ini 2023-09-21 19:49:10.000000000 +0200
@@ -1,29 +1,23 @@
[tox]
minversion = 3.1
-envlist = py36,py37,py38,py39,pypy,coverage,pep8
-ignore_basepython_conflict = true
+envlist = py3,coverage,pep8
[testenv]
-basepython = python3
-setenv =
- COVERAGE_FILE=.coverage.{envname}
deps =
-r test-requirements.txt
commands =
- {envbindir}/coverage run {envbindir}/nosetests --nologcapture --with-xunit --xunit-file nosetests-{envname}.xml wsme/tests tests/pecantest tests/test_sphinxext.py tests/test_flask.py --verbose {posargs}
- {envbindir}/coverage report --show-missing --include="wsme/*.py","wsme/rest/*.py","wsmeext/*.py" --omit "wsme/tests/*"
+ pytest wsme/tests tests/pecantest tests/test_sphinxext.py tests/test_flask.py
[testenv:coverage]
-setenv =
- COVERAGE_FILE=.coverage
commands =
- {envbindir}/coverage erase
- {envbindir}/coverage combine
- {envbindir}/coverage xml --include="wsme/*.py","wsme/rest/*.py","wsmeext/*.py" --omit "wsme/tests/*"
- {envbindir}/coverage report --show-missing --include="wsme/*.py","wsme/rest/*.py","wsmeext/*.py" --omit "wsme/tests/*"
+ coverage erase
+ pytest --cov=wsme --cov=wsme_ext wsme/tests tests/pecantest tests/test_sphinxext.py tests/test_flask.py
+ coverage combine
+ coverage xml --include="wsme/*.py","wsme/rest/*.py","wsmeext/*.py" --omit "wsme/tests/*"
+ coverage report --show-missing --include="wsme/*.py","wsme/rest/*.py","wsmeext/*.py" --omit "wsme/tests/*"
[testenv:docs]
-whitelist_externals =
+allowlist_externals =
rm
deps =
-r doc/requirements.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.11.0/wsme/protocol.py new/WSME-0.12.1/wsme/protocol.py
--- old/WSME-0.11.0/wsme/protocol.py 2021-07-27 18:40:58.000000000 +0200
+++ new/WSME-0.12.1/wsme/protocol.py 2023-09-21 19:49:10.000000000 +0200
@@ -1,6 +1,6 @@
import weakref
-import pkg_resources
+import importlib_metadata
from wsme.exc import ClientSideError
@@ -106,8 +106,9 @@
def getprotocol(name, **options):
protocol_class = registered_protocols.get(name)
if protocol_class is None:
- for entry_point in pkg_resources.iter_entry_points(
- 'wsme.protocols', name):
+ for entry_point in importlib_metadata.entry_points().select(
+ group='wsme.protocols',
+ ):
if entry_point.name == name:
protocol_class = entry_point.load()
if protocol_class is None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.11.0/wsme/tests/test_restjson.py new/WSME-0.12.1/wsme/tests/test_restjson.py
--- old/WSME-0.11.0/wsme/tests/test_restjson.py 2021-07-27 18:40:58.000000000 +0200
+++ new/WSME-0.12.1/wsme/tests/test_restjson.py 2023-09-21 19:49:10.000000000 +0200
@@ -72,7 +72,7 @@
return value
if datatype == wsme.types.bytes:
return value.encode('ascii')
- if type(value) != datatype:
+ if type(value) is not datatype:
print(type(value), datatype)
return datatype(value)
return value
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.11.0/wsme/tests/test_restxml.py new/WSME-0.12.1/wsme/tests/test_restxml.py
--- old/WSME-0.11.0/wsme/tests/test_restxml.py 2021-07-27 18:40:58.000000000 +0200
+++ new/WSME-0.12.1/wsme/tests/test_restxml.py 2023-09-21 19:49:10.000000000 +0200
@@ -45,7 +45,7 @@
continue
o = obj[name]
el.append(dumpxml(name, o, attr.datatype))
- elif type(obj) == dict:
+ elif type(obj) is dict:
for name, value in obj.items():
el.append(dumpxml(name, value))
print(obj, datatype, et.tostring(el))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.11.0/wsme/tests/test_types.py new/WSME-0.12.1/wsme/tests/test_types.py
--- old/WSME-0.11.0/wsme/tests/test_types.py 2021-07-27 18:40:58.000000000 +0200
+++ new/WSME-0.12.1/wsme/tests/test_types.py 2023-09-21 19:49:10.000000000 +0200
@@ -177,13 +177,14 @@
obj.a = 'v1'
assert obj.a == 'v1', repr(obj.a)
- self.assertRaisesRegexp(exc.InvalidInput,
- "Invalid input for field/attribute a. \
-Value: 'v3'. Value should be one of: v., v.",
- setattr,
- obj,
- 'a',
- 'v3')
+ self.assertRaisesRegex(
+ exc.InvalidInput,
+ "Invalid input for field/attribute a. "
+ "Value: 'v3'. Value should be one of: v., v.",
+ setattr,
+ obj,
+ 'a',
+ 'v3')
def test_attribute_validation(self):
class AType(object):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.11.0/wsmeext/flask.py new/WSME-0.12.1/wsmeext/flask.py
--- old/WSME-0.11.0/wsmeext/flask.py 2021-07-27 18:40:58.000000000 +0200
+++ new/WSME-0.12.1/wsmeext/flask.py 2023-09-21 19:49:10.000000000 +0200
@@ -42,7 +42,7 @@
sig = wsme.signature(*args, **kw)
def decorator(f):
- args = inspect.getargspec(f)[0]
+ args = inspect.getfullargspec(f)[0]
ismethod = args and args[0] == 'self'
sig(f)
funcdef = wsme.api.FunctionDefinition.get(f)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.11.0/wsmeext/sphinxext.py new/WSME-0.12.1/wsmeext/sphinxext.py
--- old/WSME-0.11.0/wsmeext/sphinxext.py 2021-07-27 18:40:58.000000000 +0200
+++ new/WSME-0.12.1/wsmeext/sphinxext.py 2023-09-21 19:49:10.000000000 +0200
@@ -191,7 +191,7 @@
option_spec = dict(
autodoc.ClassDocumenter.option_spec,
- **{'protocols': lambda l: [v.strip() for v in l.split(',')],
+ **{'protocols': lambda line: [v.strip() for v in line.split(',')],
'samples-slot': check_samples_slot,
})
@@ -223,13 +223,12 @@
else:
return False
- def add_content(self, more_content, no_docstring=False):
+ def add_content(self, more_content):
# Check where to include the samples
samples_slot = self.options.samples_slot or self.default_samples_slot
def add_docstring():
- super(TypeDocumenter, self).add_content(
- more_content, no_docstring)
+ super(TypeDocumenter, self).add_content(more_content)
def add_samples():
protocols = get_protocols(
@@ -284,14 +283,13 @@
self.datatype = self.object.datatype
return success
- def add_content(self, more_content, no_docstring=False):
+ def add_content(self, more_content):
self.add_line(
u':type: %s' % datatypename(self.datatype),
'<wsmeext.sphinxext>'
)
self.add_line(u'', '<wsmeext.sphinxext>')
- super(AttributeDocumenter, self).add_content(
- more_content, no_docstring)
+ super(AttributeDocumenter, self).add_content(more_content)
def add_directive_header(self, sig):
super(AttributeDocumenter, self).add_directive_header(sig)
@@ -376,7 +374,7 @@
objtype = 'function'
def get_signature_prefix(self, sig):
- return 'function '
+ return []
def document_function(funcdef, docstrings=None, protocols=['restjson']):
@@ -528,8 +526,8 @@
self.wsme_fd, docstrings, protocols
)
- def add_content(self, more_content, no_docstring=False):
- super(FunctionDocumenter, self).add_content(more_content, no_docstring)
+ def add_content(self, more_content):
+ super(FunctionDocumenter, self).add_content(more_content)
def format_name(self):
return self.wsme_fd.name
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-sushy for openSUSE:Factory checked in at 2023-12-01 21:27:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-sushy (Old)
and /work/SRC/openSUSE:Factory/.python-sushy.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-sushy"
Fri Dec 1 21:27:20 2023 rev:14 rq:1130304 version:4.5.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-sushy/python-sushy.changes 2023-07-18 22:09:40.699510239 +0200
+++ /work/SRC/openSUSE:Factory/.python-sushy.new.25432/python-sushy.changes 2023-12-01 21:27:38.110875507 +0100
@@ -1,0 +2,6 @@
+Fri Dec 1 16:40:18 UTC 2023 - cloud-devel(a)suse.de
+
+- update to version 4.5.1
+ - Requests must always have a read/connect timeout
+
+-------------------------------------------------------------------
Old:
----
sushy-4.5.0.tar.gz
New:
----
sushy-4.5.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-sushy.spec ++++++
--- /var/tmp/diff_new_pack.18XGSM/_old 2023-12-01 21:27:38.618894203 +0100
+++ /var/tmp/diff_new_pack.18XGSM/_new 2023-12-01 21:27:38.618894203 +0100
@@ -17,13 +17,13 @@
Name: python-sushy
-Version: 4.5.0
+Version: 4.5.1
Release: 0
Summary: Python library to communicate with Redfish based systems
License: Apache-2.0
Group: Development/Languages/Python
URL: https://docs.openstack.org/sushy
-Source0: https://files.pythonhosted.org/packages/source/s/sushy/sushy-4.5.0.tar.gz
+Source0: https://files.pythonhosted.org/packages/source/s/sushy/sushy-4.5.1.tar.gz
BuildRequires: openstack-macros
BuildRequires: python3-oslotest
BuildRequires: python3-pbr >= 2.0.0
@@ -62,7 +62,7 @@
This package contains the documentation.
%prep
-%autosetup -p1 -n sushy-4.5.0
+%autosetup -p1 -n sushy-4.5.1
%py_req_cleanup
%build
++++++ _service ++++++
--- /var/tmp/diff_new_pack.18XGSM/_old 2023-12-01 21:27:38.646895233 +0100
+++ /var/tmp/diff_new_pack.18XGSM/_new 2023-12-01 21:27:38.650895380 +0100
@@ -1,13 +1,13 @@
<services>
- <service mode="disabled" name="renderspec">
+ <service mode="manual" name="renderspec">
<param name="input-template">https://opendev.org/openstack/rpm-packaging/raw/branch/master/openstack/sus…</param>
<param name="output-name">python-sushy.spec</param>
<param name="requirements">https://opendev.org/openstack/sushy/raw/branch/master/requirements.txt</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,sushy</param>
</service>
- <service mode="disabled" name="download_files">
+ <service mode="manual" name="download_files">
</service>
- <service name="format_spec_file" mode="disabled"/>
+ <service name="format_spec_file" mode="manual"/>
</services>
++++++ sushy-4.5.0.tar.gz -> sushy-4.5.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sushy-4.5.0/ChangeLog new/sushy-4.5.1/ChangeLog
--- old/sushy-4.5.0/ChangeLog 2023-05-11 11:12:15.000000000 +0200
+++ new/sushy-4.5.1/ChangeLog 2023-08-24 10:59:33.000000000 +0200
@@ -1,6 +1,11 @@
CHANGES
=======
+4.5.1
+-----
+
+* Requests must always have a read/connect timeout
+
4.5.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sushy-4.5.0/PKG-INFO new/sushy-4.5.1/PKG-INFO
--- old/sushy-4.5.0/PKG-INFO 2023-05-11 11:12:15.658070300 +0200
+++ new/sushy-4.5.1/PKG-INFO 2023-08-24 10:59:33.945420500 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: sushy
-Version: 4.5.0
+Version: 4.5.1
Summary: Sushy is a small Python library to communicate with Redfish based systems
Home-page: https://docs.openstack.org/sushy/latest/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sushy-4.5.0/releasenotes/notes/add-read-and-connect-timeout-9f7dc3ed63c192c8.yaml new/sushy-4.5.1/releasenotes/notes/add-read-and-connect-timeout-9f7dc3ed63c192c8.yaml
--- old/sushy-4.5.0/releasenotes/notes/add-read-and-connect-timeout-9f7dc3ed63c192c8.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/sushy-4.5.1/releasenotes/notes/add-read-and-connect-timeout-9f7dc3ed63c192c8.yaml 2023-08-24 10:59:02.000000000 +0200
@@ -0,0 +1,5 @@
+fixes:
+ - Fixes bug where sushy would not pass a read/connect timeout through to
+ requests when making requests to a redfish service. This means that an
+ ill-timed failure could cause python processes calling sushy to freeze
+ indefinately.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sushy-4.5.0/sushy/connector.py new/sushy-4.5.1/sushy/connector.py
--- old/sushy-4.5.0/sushy/connector.py 2023-05-11 11:11:46.000000000 +0200
+++ new/sushy-4.5.1/sushy/connector.py 2023-08-24 10:59:02.000000000 +0200
@@ -117,7 +117,11 @@
:param data: Optional JSON data.
:param headers: Optional dictionary of headers.
:param blocking: Whether to block for asynchronous operations.
- :param timeout: Max time in seconds to wait for blocking async call.
+ :param timeout: Max time in seconds to wait for blocking async call or
+ for requests library to connect and read. If a custom
+ timeout for requests is provided in
+ extra_session_req_kwargs, it will be used instead for
+ those calls.
:param server_side_retries_left: Remaining retries. If not provided
will use limit provided by instance's server_side_retries
:param extra_session_req_kwargs: Optional keyword argument to pass
@@ -127,7 +131,6 @@
:raises: ConnectionError
:raises: HTTPError
"""
-
if server_side_retries_left is None:
server_side_retries_left = self._server_side_retries
@@ -153,6 +156,7 @@
response = self._session.request(method, url, json=data,
headers=headers,
verify=self._verify,
+ timeout=timeout,
**extra_session_req_kwargs)
except requests.exceptions.RequestException as e:
# Capture any general exception by looking for the parent
@@ -211,6 +215,7 @@
method, url, json=data,
headers=headers,
verify=self._verify,
+ timeout=timeout,
**extra_session_req_kwargs)
except exceptions.HTTPError as retry_exc:
LOG.error("Failure occured while attempting to retry "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sushy-4.5.0/sushy/tests/unit/test_connector.py new/sushy-4.5.1/sushy/tests/unit/test_connector.py
--- old/sushy-4.5.0/sushy/tests/unit/test_connector.py 2023-05-11 11:11:46.000000000 +0200
+++ new/sushy-4.5.1/sushy/tests/unit/test_connector.py 2023-08-24 10:59:02.000000000 +0200
@@ -178,7 +178,7 @@
self.conn._op('GET', path='fake/path', headers=self.headers)
self.request.assert_called_once_with(
'GET', 'http://foo.bar:1234/fake/path',
- headers=self.headers, json=None, verify=True)
+ headers=self.headers, json=None, verify=True, timeout=60)
def test_response_callback(self):
mock_response_callback = mock.MagicMock()
@@ -193,21 +193,21 @@
self.request.assert_called_once_with(
'GET', 'http://foo.bar:1234/fake/path',
headers=self.headers, json=None, allow_redirects=False,
- verify=True)
+ verify=True, timeout=60)
def test_ok_post(self):
self.conn._op('POST', path='fake/path', data=self.data.copy(),
headers=self.headers)
self.request.assert_called_once_with(
'POST', 'http://foo.bar:1234/fake/path',
- json=self.data, headers=self.headers, verify=True)
+ json=self.data, headers=self.headers, verify=True, timeout=60)
def test_ok_put(self):
self.conn._op('PUT', path='fake/path', data=self.data.copy(),
headers=self.headers)
self.request.assert_called_once_with(
'PUT', 'http://foo.bar:1234/fake/path',
- json=self.data, headers=self.headers, verify=True)
+ json=self.data, headers=self.headers, verify=True, timeout=60)
def test_ok_delete(self):
expected_headers = self.headers.copy()
@@ -215,7 +215,7 @@
self.conn._op('DELETE', path='fake/path', headers=self.headers.copy())
self.request.assert_called_once_with(
'DELETE', 'http://foo.bar:1234/fake/path',
- headers=expected_headers, json=None, verify=True)
+ headers=expected_headers, json=None, verify=True, timeout=60)
def test_ok_post_with_session(self):
self.conn._session.headers = {}
@@ -227,7 +227,7 @@
data=self.data)
self.request.assert_called_once_with(
'POST', 'http://foo.bar:1234/fake/path',
- json=self.data, headers=expected_headers, verify=True)
+ json=self.data, headers=expected_headers, verify=True, timeout=60)
self.assertEqual(self.conn._session.headers,
{'X-Auth-Token': 'asdf1234'})
@@ -240,7 +240,7 @@
self.conn._op('GET', path=path, headers=headers)
self.request.assert_called_once_with(
'GET', 'http://foo.bar:1234' + path,
- headers=expected_headers, json=None, verify=True)
+ headers=expected_headers, json=None, verify=True, timeout=60)
def test_odata_version_header_redfish_no_headers(self):
path = '/redfish/v1/bar'
@@ -248,7 +248,7 @@
self.conn._op('GET', path=path)
self.request.assert_called_once_with(
'GET', 'http://foo.bar:1234' + path,
- headers=expected_headers, json=None, verify=True)
+ headers=expected_headers, json=None, verify=True, timeout=60)
def test_odata_version_header_redfish_existing_header(self):
path = '/redfish/v1/foo'
@@ -257,7 +257,7 @@
self.conn._op('GET', path=path, headers=headers)
self.request.assert_called_once_with(
'GET', 'http://foo.bar:1234' + path,
- headers=expected_headers, json=None, verify=True)
+ headers=expected_headers, json=None, verify=True, timeout=60)
def test_timed_out_session_unable_to_create_session(self):
self.conn._auth.can_refresh_session.return_value = False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sushy-4.5.0/sushy.egg-info/PKG-INFO new/sushy-4.5.1/sushy.egg-info/PKG-INFO
--- old/sushy-4.5.0/sushy.egg-info/PKG-INFO 2023-05-11 11:12:15.000000000 +0200
+++ new/sushy-4.5.1/sushy.egg-info/PKG-INFO 2023-08-24 10:59:33.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: sushy
-Version: 4.5.0
+Version: 4.5.1
Summary: Sushy is a small Python library to communicate with Redfish based systems
Home-page: https://docs.openstack.org/sushy/latest/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sushy-4.5.0/sushy.egg-info/SOURCES.txt new/sushy-4.5.1/sushy.egg-info/SOURCES.txt
--- old/sushy-4.5.0/sushy.egg-info/SOURCES.txt 2023-05-11 11:12:15.000000000 +0200
+++ new/sushy-4.5.1/sushy.egg-info/SOURCES.txt 2023-08-24 10:59:33.000000000 +0200
@@ -42,6 +42,7 @@
releasenotes/notes/add-power-resource-e141ddf298673305.yaml
releasenotes/notes/add-processor-id-and-status-b81d4c6e6c14c25f.yaml
releasenotes/notes/add-raid-type-properties-2090da5bea37c660.yaml
+releasenotes/notes/add-read-and-connect-timeout-9f7dc3ed63c192c8.yaml
releasenotes/notes/add-response-cb-65d448ee2690d0b2.yaml
releasenotes/notes/add-simple-storage-915464811737bb05.yaml
releasenotes/notes/add-storage-and-simple-storage-attributes-to-system-16e81f9b15b1897d.yaml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sushy-4.5.0/sushy.egg-info/pbr.json new/sushy-4.5.1/sushy.egg-info/pbr.json
--- old/sushy-4.5.0/sushy.egg-info/pbr.json 2023-05-11 11:12:15.000000000 +0200
+++ new/sushy-4.5.1/sushy.egg-info/pbr.json 2023-08-24 10:59:33.000000000 +0200
@@ -1 +1 @@
-{"git_version": "f03d77e", "is_release": true}
\ No newline at end of file
+{"git_version": "7c2a251", "is_release": true}
\ No newline at end of file
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-oslo.middleware for openSUSE:Factory checked in at 2023-12-01 21:27:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.middleware (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.middleware.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.middleware"
Fri Dec 1 21:27:16 2023 rev:21 rq:1130300 version:5.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.middleware/python-oslo.middleware.changes 2023-03-21 17:42:57.698241668 +0100
+++ /work/SRC/openSUSE:Factory/.python-oslo.middleware.new.25432/python-oslo.middleware.changes 2023-12-01 21:27:35.482778791 +0100
@@ -1,0 +2,12 @@
+Fri Dec 1 16:27:03 UTC 2023 - cloud-devel(a)suse.de
+
+- update to version 5.2.0
+ - Bump bandit and make oslo.middleware compatible with latest rules
+ - Revert "Moves supported python runtimes from version 3.8 to 3.10"
+ - fix spelling
+ - Update master for stable/2023.1
+ - Moves supported python runtimes from version 3.8 to 3.10
+ - Use upper-constraint in doc generation
+ - Imported Translations from Zanata
+
+-------------------------------------------------------------------
Old:
----
oslo.middleware-5.1.1.tar.gz
New:
----
oslo.middleware-5.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.middleware.spec ++++++
--- /var/tmp/diff_new_pack.h7M1Ip/_old 2023-12-01 21:27:35.966796603 +0100
+++ /var/tmp/diff_new_pack.h7M1Ip/_new 2023-12-01 21:27:35.970796750 +0100
@@ -17,13 +17,13 @@
Name: python-oslo.middleware
-Version: 5.1.1
+Version: 5.2.0
Release: 0
Summary: OpenStack oslo.middleware library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://docs.openstack.org/oslo.middleware
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.middleware/oslo.middl…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.middleware/oslo.middl…
BuildRequires: openstack-macros
BuildRequires: python3-Jinja2 >= 2.10
BuildRequires: python3-WebOb >= 1.8.0
@@ -85,7 +85,7 @@
This package contains the documentation.
%prep
-%autosetup -p1 -n oslo.middleware-5.1.1
+%autosetup -p1 -n oslo.middleware-5.2.0
%py_req_cleanup
%build
++++++ _service ++++++
--- /var/tmp/diff_new_pack.h7M1Ip/_old 2023-12-01 21:27:35.994797634 +0100
+++ /var/tmp/diff_new_pack.h7M1Ip/_new 2023-12-01 21:27:35.994797634 +0100
@@ -1,13 +1,13 @@
<services>
- <service mode="disabled" name="renderspec">
+ <service mode="manual" name="renderspec">
<param name="input-template">https://opendev.org/openstack/rpm-packaging/raw/master/openstack/oslo.middl…</param>
<param name="output-name">python-oslo.middleware.spec</param>
<param name="requirements">https://opendev.org/openstack/oslo.middleware/raw/master/requirements.txt</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.middleware</param>
</service>
- <service mode="disabled" name="download_files">
+ <service mode="manual" name="download_files">
</service>
- <service name="format_spec_file" mode="disabled"/>
+ <service name="format_spec_file" mode="manual"/>
</services>
++++++ oslo.middleware-5.1.1.tar.gz -> oslo.middleware-5.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.1.1/.zuul.yaml new/oslo.middleware-5.2.0/.zuul.yaml
--- old/oslo.middleware-5.1.1/.zuul.yaml 2023-02-21 18:25:25.000000000 +0100
+++ new/oslo.middleware-5.2.0/.zuul.yaml 2023-08-29 14:28:22.000000000 +0200
@@ -2,7 +2,7 @@
templates:
- check-requirements
- lib-forward-testing-python3
- - openstack-python3-antelope-jobs
+ - openstack-python3-jobs
- periodic-stable-jobs
- publish-openstack-docs-pti
- release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.1.1/AUTHORS new/oslo.middleware-5.2.0/AUTHORS
--- old/oslo.middleware-5.1.1/AUTHORS 2023-02-21 18:25:55.000000000 +0100
+++ new/oslo.middleware-5.2.0/AUTHORS 2023-08-29 14:28:51.000000000 +0200
@@ -33,6 +33,7 @@
Eric Brown <browne(a)vmware.com>
Flavio Percoco <fpercoco(a)redhat.com>
Gabriel Adrian Samfira <gsamfira(a)cloudbasesolutions.com>
+Ghanshyam <gmann(a)ghanshyammann.com>
Ghanshyam Mann <gmann(a)ghanshyammann.com>
Gordon Chung <gord(a)live.ca>
Guang Yee <guang.yee(a)hpe.com>
@@ -40,6 +41,7 @@
Henry Gessau <HenryG(a)gessau.net>
Hervé Beraud <hberaud(a)redhat.com>
Ihar Hrachyshka <ihrachys(a)redhat.com>
+Jake Yip <jake.yip(a)ardc.edu.au>
Jamie Lennox <jamielennox(a)gmail.com>
Javeme <zhangmei.li(a)easystack.cn>
Jay Pipes <jaypipes(a)gmail.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.1.1/ChangeLog new/oslo.middleware-5.2.0/ChangeLog
--- old/oslo.middleware-5.1.1/ChangeLog 2023-02-21 18:25:55.000000000 +0100
+++ new/oslo.middleware-5.2.0/ChangeLog 2023-08-29 14:28:51.000000000 +0200
@@ -1,6 +1,17 @@
CHANGES
=======
+5.2.0
+-----
+
+* Use upper-constraint in doc generation
+* Imported Translations from Zanata
+* fix spelling
+* Revert "Moves supported python runtimes from version 3.8 to 3.10"
+* Moves supported python runtimes from version 3.8 to 3.10
+* Bump bandit and make oslo.middleware compatible with latest rules
+* Update master for stable/2023.1
+
5.1.1
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.1.1/PKG-INFO new/oslo.middleware-5.2.0/PKG-INFO
--- old/oslo.middleware-5.1.1/PKG-INFO 2023-02-21 18:25:55.786183400 +0100
+++ new/oslo.middleware-5.2.0/PKG-INFO 2023-08-29 14:28:51.787379000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: oslo.middleware
-Version: 5.1.1
+Version: 5.2.0
Summary: Oslo Middleware library
Home-page: https://docs.openstack.org/oslo.middleware/latest/
Author: OpenStack
@@ -40,6 +40,7 @@
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.1.1/doc/source/configuration/index.rst new/oslo.middleware-5.2.0/doc/source/configuration/index.rst
--- old/oslo.middleware-5.1.1/doc/source/configuration/index.rst 2023-02-21 18:25:25.000000000 +0100
+++ new/oslo.middleware-5.2.0/doc/source/configuration/index.rst 2023-08-29 14:28:22.000000000 +0200
@@ -53,5 +53,5 @@
.. note::
- healtcheck middleware does not yet use oslo.config, see :doc:`../reference/healthcheck_plugins`
+ healthcheck middleware does not yet use oslo.config, see :doc:`../reference/healthcheck_plugins`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.1.1/oslo.middleware.egg-info/PKG-INFO new/oslo.middleware-5.2.0/oslo.middleware.egg-info/PKG-INFO
--- old/oslo.middleware-5.1.1/oslo.middleware.egg-info/PKG-INFO 2023-02-21 18:25:55.000000000 +0100
+++ new/oslo.middleware-5.2.0/oslo.middleware.egg-info/PKG-INFO 2023-08-29 14:28:51.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: oslo.middleware
-Version: 5.1.1
+Version: 5.2.0
Summary: Oslo Middleware library
Home-page: https://docs.openstack.org/oslo.middleware/latest/
Author: OpenStack
@@ -40,6 +40,7 @@
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.1.1/oslo.middleware.egg-info/SOURCES.txt new/oslo.middleware-5.2.0/oslo.middleware.egg-info/SOURCES.txt
--- old/oslo.middleware-5.1.1/oslo.middleware.egg-info/SOURCES.txt 2023-02-21 18:25:55.000000000 +0100
+++ new/oslo.middleware-5.2.0/oslo.middleware.egg-info/SOURCES.txt 2023-08-29 14:28:51.000000000 +0200
@@ -57,9 +57,7 @@
oslo_middleware/healthcheck/disable_by_file.py
oslo_middleware/healthcheck/opts.py
oslo_middleware/healthcheck/pluginbase.py
-oslo_middleware/locale/de/LC_MESSAGES/oslo_middleware.po
oslo_middleware/locale/en_GB/LC_MESSAGES/oslo_middleware.po
-oslo_middleware/locale/fr/LC_MESSAGES/oslo_middleware.po
oslo_middleware/tests/__init__.py
oslo_middleware/tests/test_auth_basic.py
oslo_middleware/tests/test_base.py
@@ -80,6 +78,7 @@
releasenotes/notes/drop-python27-support-a6361831195bf29c.yaml
releasenotes/notes/global_request_id-a8ec7260fbd76444.yaml
releasenotes/notes/log_max_request_body_size-1835363-6f37946210a100d7.yaml
+releasenotes/source/2023.1.rst
releasenotes/source/conf.py
releasenotes/source/index.rst
releasenotes/source/ocata.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.1.1/oslo.middleware.egg-info/pbr.json new/oslo.middleware-5.2.0/oslo.middleware.egg-info/pbr.json
--- old/oslo.middleware-5.1.1/oslo.middleware.egg-info/pbr.json 2023-02-21 18:25:55.000000000 +0100
+++ new/oslo.middleware-5.2.0/oslo.middleware.egg-info/pbr.json 2023-08-29 14:28:51.000000000 +0200
@@ -1 +1 @@
-{"git_version": "7725ac9", "is_release": true}
\ No newline at end of file
+{"git_version": "4ba32ed", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.1.1/oslo_middleware/locale/de/LC_MESSAGES/oslo_middleware.po new/oslo.middleware-5.2.0/oslo_middleware/locale/de/LC_MESSAGES/oslo_middleware.po
--- old/oslo.middleware-5.1.1/oslo_middleware/locale/de/LC_MESSAGES/oslo_middleware.po 2023-02-21 18:25:25.000000000 +0100
+++ new/oslo.middleware-5.2.0/oslo_middleware/locale/de/LC_MESSAGES/oslo_middleware.po 1970-01-01 01:00:00.000000000 +0100
@@ -1,26 +0,0 @@
-# Translations template for oslo.middleware.
-# Copyright (C) 2015 ORGANIZATION
-# This file is distributed under the same license as the oslo.middleware
-# project.
-#
-# Translators:
-# Andreas Jaeger <jaegerandi(a)gmail.com>, 2014
-# Andreas Jaeger <jaegerandi(a)gmail.com>, 2016. #zanata
-msgid ""
-msgstr ""
-"Project-Id-Version: oslo.middleware 3.7.1.dev18\n"
-"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2016-04-19 23:53+0000\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2014-09-07 08:09+0000\n"
-"Last-Translator: Andreas Jaeger <jaegerandi(a)gmail.com>\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"Generated-By: Babel 2.0\n"
-"X-Generator: Zanata 3.7.3\n"
-"Language-Team: German\n"
-
-msgid "Request is too large."
-msgstr "Die Anfrage ist zu groß."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.1.1/oslo_middleware/locale/en_GB/LC_MESSAGES/oslo_middleware.po new/oslo.middleware-5.2.0/oslo_middleware/locale/en_GB/LC_MESSAGES/oslo_middleware.po
--- old/oslo.middleware-5.1.1/oslo_middleware/locale/en_GB/LC_MESSAGES/oslo_middleware.po 2023-02-21 18:25:25.000000000 +0100
+++ new/oslo.middleware-5.2.0/oslo_middleware/locale/en_GB/LC_MESSAGES/oslo_middleware.po 2023-08-29 14:28:22.000000000 +0200
@@ -5,22 +5,31 @@
#
# Translators:
# Andi Chandler <andi(a)gowling.com>, 2014
-# Andreas Jaeger <jaegerandi(a)gmail.com>, 2016. #zanata
+# Andi Chandler <andi(a)gowling.com>, 2023. #zanata
msgid ""
msgstr ""
"Project-Id-Version: oslo.middleware VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2018-02-08 23:28+0000\n"
+"POT-Creation-Date: 2023-06-27 13:54+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2016-04-12 06:19+0000\n"
-"Last-Translator: Copied by Zanata <copied-by-zanata(a)zanata.org>\n"
+"PO-Revision-Date: 2023-06-21 08:58+0000\n"
+"Last-Translator: Andi Chandler <andi(a)gowling.com>\n"
"Language: en_GB\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Generated-By: Babel 2.0\n"
"X-Generator: Zanata 4.3.3\n"
"Language-Team: English (United Kingdom)\n"
-msgid "Request is too large."
-msgstr "Request is too large."
+#, python-format
+msgid "Request is too large. Larger than %s"
+msgstr "Request is too large. Larger than %s"
+
+#, python-format
+msgid "Request is too large. Larger than %s."
+msgstr "Request is too large. Larger than %s."
+
+#, python-format
+msgid "Request is too large. Larger than max_request_body_size (%s)."
+msgstr "Request is too large. Larger than max_request_body_size (%s)."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.1.1/oslo_middleware/locale/fr/LC_MESSAGES/oslo_middleware.po new/oslo.middleware-5.2.0/oslo_middleware/locale/fr/LC_MESSAGES/oslo_middleware.po
--- old/oslo.middleware-5.1.1/oslo_middleware/locale/fr/LC_MESSAGES/oslo_middleware.po 2023-02-21 18:25:25.000000000 +0100
+++ new/oslo.middleware-5.2.0/oslo_middleware/locale/fr/LC_MESSAGES/oslo_middleware.po 1970-01-01 01:00:00.000000000 +0100
@@ -1,26 +0,0 @@
-# Translations template for oslo.middleware.
-# Copyright (C) 2015 ORGANIZATION
-# This file is distributed under the same license as the oslo.middleware
-# project.
-#
-# Translators:
-# Maxime COQUEREL <max.coquerel(a)gmail.com>, 2014
-# Andreas Jaeger <jaegerandi(a)gmail.com>, 2016. #zanata
-msgid ""
-msgstr ""
-"Project-Id-Version: oslo.middleware 3.7.1.dev18\n"
-"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2016-04-19 23:53+0000\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2014-09-17 09:06+0000\n"
-"Last-Translator: Maxime COQUEREL <max.coquerel(a)gmail.com>\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"Generated-By: Babel 2.0\n"
-"X-Generator: Zanata 3.7.3\n"
-"Language-Team: French\n"
-
-msgid "Request is too large."
-msgstr "Demande trop importante."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.1.1/oslo_middleware/tests/test_healthcheck.py new/oslo.middleware-5.2.0/oslo_middleware/tests/test_healthcheck.py
--- old/oslo.middleware-5.1.1/oslo_middleware/tests/test_healthcheck.py 2023-02-21 18:25:25.000000000 +0100
+++ new/oslo.middleware-5.2.0/oslo_middleware/tests/test_healthcheck.py 2023-08-29 14:28:22.000000000 +0200
@@ -41,7 +41,7 @@
# The operating system will return WSAEADDRNOTAVAIL which
# in turn will throw a requests.ConnectionError
r = requests.get("http://127.0.0.1:%s" % (
- server.server_address[1]))
+ server.server_address[1]), timeout=10)
except requests.ConnectionError:
# Server hasn't started up yet, try again in a few.
time.sleep(1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.1.1/releasenotes/source/2023.1.rst new/oslo.middleware-5.2.0/releasenotes/source/2023.1.rst
--- old/oslo.middleware-5.1.1/releasenotes/source/2023.1.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.middleware-5.2.0/releasenotes/source/2023.1.rst 2023-08-29 14:28:22.000000000 +0200
@@ -0,0 +1,6 @@
+===========================
+2023.1 Series Release Notes
+===========================
+
+.. release-notes::
+ :branch: stable/2023.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.1.1/releasenotes/source/index.rst new/oslo.middleware-5.2.0/releasenotes/source/index.rst
--- old/oslo.middleware-5.1.1/releasenotes/source/index.rst 2023-02-21 18:25:25.000000000 +0100
+++ new/oslo.middleware-5.2.0/releasenotes/source/index.rst 2023-08-29 14:28:22.000000000 +0200
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ 2023.1
zed
yoga
xena
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.1.1/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po new/oslo.middleware-5.2.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
--- old/oslo.middleware-5.1.1/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2023-02-21 18:25:25.000000000 +0100
+++ new/oslo.middleware-5.2.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2023-08-29 14:28:22.000000000 +0200
@@ -1,26 +1,59 @@
# Andi Chandler <andi(a)gowling.com>, 2017. #zanata
# Andi Chandler <andi(a)gowling.com>, 2018. #zanata
+# Andi Chandler <andi(a)gowling.com>, 2023. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.middleware Release Notes\n"
+"Project-Id-Version: oslo.middleware\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-02-08 23:28+0000\n"
+"POT-Creation-Date: 2023-06-27 13:54+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2018-02-06 11:15+0000\n"
+"PO-Revision-Date: 2023-06-21 08:57+0000\n"
"Last-Translator: Andi Chandler <andi(a)gowling.com>\n"
"Language-Team: English (United Kingdom)\n"
"Language: en_GB\n"
"X-Generator: Zanata 4.3.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+msgid "2023.1 Series Release Notes"
+msgstr "2023.1 Series Release Notes"
+
msgid "3.20.0"
msgstr "3.20.0"
msgid "3.27.0"
msgstr "3.27.0"
+msgid "3.38.1"
+msgstr "3.38.1"
+
+msgid "4.0.0"
+msgstr "4.0.0"
+
+msgid "4.4.0"
+msgstr "4.4.0"
+
+msgid ""
+"Adds a basic http auth middleware as an alternative to noauth in standalone "
+"environments. This middleware uses a password file which supports the Apache "
+"`htpasswd`_ syntax. This file is read for every request, so no service "
+"restart is required when changes are made. The only password digest "
+"supported is bcrypt, and the ``bcrypt`` python library is used for password "
+"checks since it supports ``$2y$`` prefixed bcrypt passwords as generated by "
+"the Apache htpasswd utility."
+msgstr ""
+"Adds a basic HTTP auth middleware as an alternative to noauth in standalone "
+"environments. This middleware uses a password file which supports the Apache "
+"`htpasswd`_ syntax. This file is read for every request, so no service "
+"restart is required when changes are made. The only password digest "
+"supported is bcrypt, and the ``bcrypt`` python library is used for password "
+"checks since it supports ``$2y$`` prefixed bcrypt passwords as generated by "
+"the Apache htpasswd utility."
+
+msgid "Log when max_request_body_size is exceeded."
+msgstr "Log when max_request_body_size is exceeded."
+
msgid "New Features"
msgstr "New Features"
@@ -36,6 +69,19 @@
msgid "Queens Series Release Notes"
msgstr "Queens Series Release Notes"
+msgid "Rocky Series Release Notes"
+msgstr "Rocky Series Release Notes"
+
+msgid "Stein Series Release Notes"
+msgstr "Stein Series Release Notes"
+
+msgid ""
+"Support for Python 2.7 has been dropped. The minimum version of Python now "
+"supported is Python 3.6."
+msgstr ""
+"Support for Python 2.7 has been dropped. The minimum version of Python now "
+"supported is Python 3.6."
+
msgid "Switch to reno for managing release notes."
msgstr "Switch to Reno for managing release notes."
@@ -61,8 +107,32 @@
"of the format ``req-$uuid``, and made available to oslo.context. This will "
"allow for cross project request id tracking."
+msgid "Train Series Release Notes"
+msgstr "Train Series Release Notes"
+
msgid "Unreleased Release Notes"
msgstr "Unreleased Release Notes"
+msgid "Upgrade Notes"
+msgstr "Upgrade Notes"
+
+msgid "Ussuri Series Release Notes"
+msgstr "Ussuri Series Release Notes"
+
+msgid "Victoria Series Release Notes"
+msgstr "Victoria Series Release Notes"
+
+msgid "Wallaby Series Release Notes"
+msgstr "Wallaby Series Release Notes"
+
+msgid "Xena Series Release Notes"
+msgstr "Xena Series Release Notes"
+
+msgid "Yoga Series Release Notes"
+msgstr "Yoga Series Release Notes"
+
+msgid "Zed Series Release Notes"
+msgstr "Zed Series Release Notes"
+
msgid "oslo.middleware Release Notes"
msgstr "oslo.middleware Release Notes"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.1.1/setup.cfg new/oslo.middleware-5.2.0/setup.cfg
--- old/oslo.middleware-5.1.1/setup.cfg 2023-02-21 18:25:55.786183400 +0100
+++ new/oslo.middleware-5.2.0/setup.cfg 2023-08-29 14:28:51.787379000 +0200
@@ -17,6 +17,7 @@
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
+ Programming Language :: Python :: 3.10
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: Implementation :: CPython
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.1.1/test-requirements.txt new/oslo.middleware-5.2.0/test-requirements.txt
--- old/oslo.middleware-5.1.1/test-requirements.txt 2023-02-21 18:25:25.000000000 +0100
+++ new/oslo.middleware-5.2.0/test-requirements.txt 2023-08-29 14:28:22.000000000 +0200
@@ -9,7 +9,7 @@
coverage!=4.4,>=4.0 # Apache-2.0
oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0
# Bandit security code scanner
-bandit>=1.6.0,<1.7.0 # Apache-2.0
+bandit>=1.7.0,<1.8.0 # Apache-2.0
stestr>=2.0.0 # Apache-2.0
pre-commit>=2.6.0 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-5.1.1/tox.ini new/oslo.middleware-5.2.0/tox.ini
--- old/oslo.middleware-5.1.1/tox.ini 2023-02-21 18:25:25.000000000 +0100
+++ new/oslo.middleware-5.2.0/tox.ini 2023-08-29 14:28:22.000000000 +0200
@@ -22,7 +22,9 @@
[testenv:docs]
allowlist_externals =
rm
-deps = -r{toxinidir}/doc/requirements.txt
+deps =
+ -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
+ -r{toxinidir}/doc/requirements.txt
commands =
rm -fr doc/build
sphinx-build -W --keep-going -b html doc/source doc/build/html
@@ -43,7 +45,7 @@
[testenv:releasenotes]
allowlist_externals =
rm
-deps = -r{toxinidir}/doc/requirements.txt
+deps = {[testenv:docs]deps}
commands =
rm -rf releasenotes/build
sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -b html releasenotes/source releasenotes/build/html
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-automaton for openSUSE:Factory checked in at 2023-12-01 21:27:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-automaton (Old)
and /work/SRC/openSUSE:Factory/.python-automaton.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-automaton"
Fri Dec 1 21:27:09 2023 rev:22 rq:1130294 version:3.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-automaton/python-automaton.changes 2023-03-07 16:50:20.749588199 +0100
+++ /work/SRC/openSUSE:Factory/.python-automaton.new.25432/python-automaton.changes 2023-12-01 21:27:31.266623634 +0100
@@ -1,0 +2,6 @@
+Fri Dec 1 16:08:17 UTC 2023 - cloud-devel(a)suse.de
+
+- update to version 3.2.0
+ - Update master for stable/2023.1
+
+-------------------------------------------------------------------
Old:
----
automaton-3.1.0.tar.gz
New:
----
automaton-3.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-automaton.spec ++++++
--- /var/tmp/diff_new_pack.cqFWmd/_old 2023-12-01 21:27:31.726640562 +0100
+++ /var/tmp/diff_new_pack.cqFWmd/_new 2023-12-01 21:27:31.730640709 +0100
@@ -17,13 +17,13 @@
Name: python-automaton
-Version: 3.1.0
+Version: 3.2.0
Release: 0
Summary: Friendly state machines for python
License: Apache-2.0
Group: Development/Languages/Python
URL: https://docs.openstack.org/automaton
-Source0: https://files.pythonhosted.org/packages/source/a/automaton/automaton-3.1.0.…
+Source0: https://files.pythonhosted.org/packages/source/a/automaton/automaton-3.2.0.…
BuildRequires: openstack-macros
BuildRequires: python3-PrettyTable >= 0.7.2
BuildRequires: python3-devel
@@ -56,7 +56,7 @@
Documentation for the Automaton library.
%prep
-%autosetup -p1 -n automaton-3.1.0
+%autosetup -p1 -n automaton-3.2.0
%py_req_cleanup
%build
++++++ _service ++++++
--- /var/tmp/diff_new_pack.cqFWmd/_old 2023-12-01 21:27:31.754641592 +0100
+++ /var/tmp/diff_new_pack.cqFWmd/_new 2023-12-01 21:27:31.758641740 +0100
@@ -1,14 +1,14 @@
<services>
- <service mode="disabled" name="renderspec">
+ <service mode="manual" name="renderspec">
<param name="input-template">https://opendev.org/openstack/rpm-packaging/raw/master/openstack/automaton/…</param>
<param name="output-name">python-automaton.spec</param>
- <param name="requirements">https://opendev.org/openstack/automaton/raw/branch/stable/xena/requirements…</param>
+ <param name="requirements">https://opendev.org/openstack/automaton/raw/master/requirements.txt</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,automaton</param>
</service>
- <service mode="disabled" name="download_files">
+ <service mode="manual" name="download_files">
<param name="changesgenerate">enable</param>
</service>
- <service name="format_spec_file" mode="disabled"/>
+ <service name="format_spec_file" mode="manual"/>
</services>
++++++ automaton-3.1.0.tar.gz -> automaton-3.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-3.1.0/ChangeLog new/automaton-3.2.0/ChangeLog
--- old/automaton-3.1.0/ChangeLog 2023-02-10 17:06:40.000000000 +0100
+++ new/automaton-3.2.0/ChangeLog 2023-08-31 12:00:53.000000000 +0200
@@ -1,6 +1,11 @@
CHANGES
=======
+3.2.0
+-----
+
+* Update master for stable/2023.1
+
3.1.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-3.1.0/PKG-INFO new/automaton-3.2.0/PKG-INFO
--- old/automaton-3.1.0/PKG-INFO 2023-02-10 17:06:40.880409500 +0100
+++ new/automaton-3.2.0/PKG-INFO 2023-08-31 12:00:54.034235700 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: automaton
-Version: 3.1.0
+Version: 3.2.0
Summary: Friendly state machines for python.
Home-page: https://docs.openstack.org/automaton/latest/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-3.1.0/automaton.egg-info/PKG-INFO new/automaton-3.2.0/automaton.egg-info/PKG-INFO
--- old/automaton-3.1.0/automaton.egg-info/PKG-INFO 2023-02-10 17:06:40.000000000 +0100
+++ new/automaton-3.2.0/automaton.egg-info/PKG-INFO 2023-08-31 12:00:53.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: automaton
-Version: 3.1.0
+Version: 3.2.0
Summary: Friendly state machines for python.
Home-page: https://docs.openstack.org/automaton/latest/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-3.1.0/automaton.egg-info/SOURCES.txt new/automaton-3.2.0/automaton.egg-info/SOURCES.txt
--- old/automaton-3.1.0/automaton.egg-info/SOURCES.txt 2023-02-10 17:06:40.000000000 +0100
+++ new/automaton-3.2.0/automaton.egg-info/SOURCES.txt 2023-08-31 12:00:54.000000000 +0200
@@ -42,6 +42,7 @@
doc/source/user/index.rst
releasenotes/notes/.placeholder
releasenotes/notes/drop-python-2-7-73d3113c69d724d6.yaml
+releasenotes/source/2023.1.rst
releasenotes/source/conf.py
releasenotes/source/index.rst
releasenotes/source/ocata.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-3.1.0/automaton.egg-info/pbr.json new/automaton-3.2.0/automaton.egg-info/pbr.json
--- old/automaton-3.1.0/automaton.egg-info/pbr.json 2023-02-10 17:06:40.000000000 +0100
+++ new/automaton-3.2.0/automaton.egg-info/pbr.json 2023-08-31 12:00:53.000000000 +0200
@@ -1 +1 @@
-{"git_version": "a4f7631", "is_release": true}
\ No newline at end of file
+{"git_version": "9255778", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-3.1.0/releasenotes/source/2023.1.rst new/automaton-3.2.0/releasenotes/source/2023.1.rst
--- old/automaton-3.1.0/releasenotes/source/2023.1.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/automaton-3.2.0/releasenotes/source/2023.1.rst 2023-08-31 12:00:25.000000000 +0200
@@ -0,0 +1,6 @@
+===========================
+2023.1 Series Release Notes
+===========================
+
+.. release-notes::
+ :branch: stable/2023.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-3.1.0/releasenotes/source/index.rst new/automaton-3.2.0/releasenotes/source/index.rst
--- old/automaton-3.1.0/releasenotes/source/index.rst 2023-02-10 17:06:12.000000000 +0100
+++ new/automaton-3.2.0/releasenotes/source/index.rst 2023-08-31 12:00:25.000000000 +0200
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ 2023.1
zed
yoga
xena
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package agama-cli for openSUSE:Factory checked in at 2023-12-01 21:27:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/agama-cli (Old)
and /work/SRC/openSUSE:Factory/.agama-cli.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "agama-cli"
Fri Dec 1 21:27:05 2023 rev:5 rq:1130250 version:0
Changes:
--------
--- /work/SRC/openSUSE:Factory/agama-cli/agama-cli.changes 2023-10-26 17:14:10.055714904 +0200
+++ /work/SRC/openSUSE:Factory/.agama-cli.new.25432/agama-cli.changes 2023-12-01 21:27:27.178473186 +0100
@@ -1,0 +2,40 @@
+Wed Nov 29 11:19:51 UTC 2023 - Imobach Gonzalez Sosa <igonzalezsosa(a)suse.com>
+
+- Rework the org.opensuse.Agama1.Locale interface
+ (gh#openSUSE/agama#881):
+ * Replace LabelsForLocales function with ListLocales.
+ * Add a ListKeymaps function.
+ * Extend the ListTimezone function to include the translation of
+ each part.
+ * Drop ListUILocales and ListVConsoleKeyboards functions.
+ * Remove the SupportedLocales and VConsoleKeyboard properties.
+ * Do not read the lists of locales, keymaps and timezones on
+ each request.
+ * Peform some validation when trying to change the Locales,
+ Keymap and Timezone properties.
+
+-------------------------------------------------------------------
+Thu Nov 16 11:06:30 UTC 2023 - Imobach Gonzalez Sosa <igonzalezsosa(a)suse.com>
+
+- Update dependencies to compatible versions
+ (gh#openSUSE/agama#874).
+- Replace tempdir with tempfile to prevent RUSTSEC-2023-0018.
+
+-------------------------------------------------------------------
+Wed Nov 15 12:35:32 UTC 2023 - José Iván López González <jlopez(a)suse.com>
+
+- Adapt to changes in software D-Bus API (gh#openSUSE/agama#869).
+
+-------------------------------------------------------------------
+
+Wed Nov 15 11:27:10 UTC 2023 - Michal Filka <mfilka(a)suse.com>
+
+- Improved "agama logs store" (gh#openSUSE/agama#823)
+ - added an option which allows to define the archive destination
+
+-------------------------------------------------------------------
+Tue Nov 14 15:44:15 UTC 2023 - Jorik Cronenberg <jorik.cronenberg(a)suse.com>
+
+- Add support for routing to the network model (gh#openSUSE/agama#824)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ agama-cli.spec ++++++
--- /var/tmp/diff_new_pack.vLKyxy/_old 2023-12-01 21:27:28.278513668 +0100
+++ /var/tmp/diff_new_pack.vLKyxy/_new 2023-12-01 21:27:28.282513816 +0100
@@ -41,6 +41,8 @@
# required by "agama logs store"
Requires: bzip2
Requires: tar
+# required for translating the keyboards descriptions
+Requires: xkeyboard-config-lang
%description
Command line program to interact with the agama service.
@@ -78,7 +80,11 @@
install -m 0644 --target-directory=%{buildroot}%{_datadir}/dbus-1/agama-services %{_builddir}/agama/share/*.service
%check
+%ifarch aarch64
+/usr/bin/cargo auditable test -j1 --offline --no-fail-fast
+%else
%{cargo_test}
+%endif
%files
%{_bindir}/agama
++++++ _service ++++++
--- /var/tmp/diff_new_pack.vLKyxy/_old 2023-12-01 21:27:28.342516024 +0100
+++ /var/tmp/diff_new_pack.vLKyxy/_new 2023-12-01 21:27:28.346516172 +0100
@@ -4,7 +4,7 @@
<param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">v(.*)</param>
<param name="scm">git</param>
- <param name="revision">v5</param>
+ <param name="revision">v6</param>
<param name="subdir">rust</param>
<param name="without-version">enable</param>
<param name="extract">package/agama-cli.changes</param>
++++++ agama.obscpio ++++++
++++ 5615 lines of diff (skipped)
++++++ agama.obsinfo ++++++
--- /var/tmp/diff_new_pack.vLKyxy/_old 2023-12-01 21:27:28.482521176 +0100
+++ /var/tmp/diff_new_pack.vLKyxy/_new 2023-12-01 21:27:28.486521324 +0100
@@ -1,5 +1,5 @@
name: agama
-version: 5
-mtime: 1698218168
-commit: 0d609c768afe4ae360a4e1b766e8701ea0177065
+version: 6
+mtime: 1701433426
+commit: 747e8e828de6ef984a4e844036db51d47ce2e5f4
++++++ vendor.tar.zst ++++++
Binary files /var/tmp/diff_new_pack.vLKyxy/_old and /var/tmp/diff_new_pack.vLKyxy/_new differ
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package cockpit-agama for openSUSE:Factory checked in at 2023-12-01 21:27:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cockpit-agama (Old)
and /work/SRC/openSUSE:Factory/.cockpit-agama.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cockpit-agama"
Fri Dec 1 21:27:00 2023 rev:7 rq:1130249 version:0
Changes:
--------
--- /work/SRC/openSUSE:Factory/cockpit-agama/cockpit-agama.changes 2023-10-27 22:29:32.102467290 +0200
+++ /work/SRC/openSUSE:Factory/.cockpit-agama.new.25432/cockpit-agama.changes 2023-12-01 21:27:24.578377501 +0100
@@ -1,0 +2,54 @@
+Thu Nov 30 22:39:57 UTC 2023 - David Diaz <dgonzalez(a)suse.com>
+
+- UI: make selectors more compact (gh#openSUSE/agama#898).
+
+-------------------------------------------------------------------
+Thu Nov 30 15:19:38 UTC 2023 - José Iván López González <jlopez(a)suse.com>
+
+- Allow selecting the storage policy to make free space for the
+ installation (gh#openSUSE/agama#883).
+
+-------------------------------------------------------------------
+Wed Nov 29 14:15:16 UTC 2023 - José Iván López González <jlopez(a)suse.com>
+
+- Allow selecting language, keymap and timezone for the target
+ system (gh#openSUSE/agama#881).
+
+-------------------------------------------------------------------
+Wed Nov 29 13:01:04 UTC 2023 - David Diaz <dgonzalez(a)suse.com>
+
+- UI: improve the look and feel by fine tunning the sections spacing,
+ alignment, and icon sizes (gh#openSUSE/agama#892).
+
+-------------------------------------------------------------------
+Tue Nov 21 15:21:06 UTC 2023 - David Diaz <dgonzalez(a)suse.com>
+
+- UI: Do not crash when clicking the install button. It started
+ failing after removing core-js dependency (gh#openSUSE/agama#880
+ and related to gh#openSUSE/agama#866).
+
+-------------------------------------------------------------------
+Fri Nov 17 13:27:22 UTC 2023 - David Diaz <dgonzalez(a)suse.com>
+
+- UI: Fix broken storage links (bsc#1217281).
+
+-------------------------------------------------------------------
+Wed Nov 15 12:32:25 UTC 2023 - José Iván López González <jlopez(a)suse.com>
+
+- Add UI for registering a product (gh#openSUSE/agama#869).
+
+-------------------------------------------------------------------
+Thu Nov 2 07:38:22 UTC 2023 - David Diaz <dgonzalez(a)suse.com>
+
+- UI: Drop support for opening dialogs directly from a section
+ header (gh#openSUSE/agama#838).
+
+-------------------------------------------------------------------
+Tue Oct 31 09:41:33 UTC 2023 - David Diaz <dgonzalez(a)suse.com>
+
+- UI: sections improvements (gh#openSUSE/agama#816):
+ - allow using them without title.
+ - make them more accessible by using aria-label, aria-live-region,
+ and aria-busy attributes.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cockpit-agama.spec ++++++
--- /var/tmp/diff_new_pack.Ofoj0P/_old 2023-12-01 21:27:26.122434323 +0100
+++ /var/tmp/diff_new_pack.Ofoj0P/_new 2023-12-01 21:27:26.126434471 +0100
@@ -1,7 +1,7 @@
#
-# spec file for package cockpit-machines
+# spec file for package cockpit-agama
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -31,10 +31,10 @@
%include %_sourcedir/node_modules.spec.inc
BuildArch: noarch
Requires: cockpit
+BuildRequires: appstream-glib
BuildRequires: cockpit
BuildRequires: cockpit-devel >= 243
BuildRequires: local-npm-registry
-BuildRequires: appstream-glib
%description
Cockpit module for the experimental Agama installer.
++++++ _service ++++++
--- /var/tmp/diff_new_pack.Ofoj0P/_old 2023-12-01 21:27:26.162435795 +0100
+++ /var/tmp/diff_new_pack.Ofoj0P/_new 2023-12-01 21:27:26.162435795 +0100
@@ -4,7 +4,7 @@
<param name="versionrewrite-pattern">v(.*)</param>
<param name="url">http://github.com/openSUSE/agama.git</param>
<param name="scm">git</param>
- <param name="revision">master</param>
+ <param name="revision">v6</param>
<param name="subdir">web</param>
<param name="without-version">enable</param>
<param name="extract">package-lock.json</param>
++++++ agama.obscpio ++++++
++++ 39625 lines of diff (skipped)
++++++ agama.obsinfo ++++++
--- /var/tmp/diff_new_pack.Ofoj0P/_old 2023-12-01 21:27:26.578451105 +0100
+++ /var/tmp/diff_new_pack.Ofoj0P/_new 2023-12-01 21:27:26.578451105 +0100
@@ -1,5 +1,5 @@
name: agama
-version: 5+28
-mtime: 1698403670
-commit: eec3080645ba699d88dd595b86659d59cdd01694
+version: 6+0
+mtime: 1701433426
+commit: 747e8e828de6ef984a4e844036db51d47ce2e5f4
++++++ node_modules.obscpio ++++++
/work/SRC/openSUSE:Factory/cockpit-agama/node_modules.obscpio /work/SRC/openSUSE:Factory/.cockpit-agama.new.25432/node_modules.obscpio differ: char 63093, line 238
++++++ node_modules.spec.inc ++++++
++++ 1930 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/cockpit-agama/node_modules.spec.inc
++++ and /work/SRC/openSUSE:Factory/.cockpit-agama.new.25432/node_modules.spec.inc
++++++ node_modules.sums ++++++
++++ 987 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/cockpit-agama/node_modules.sums
++++ and /work/SRC/openSUSE:Factory/.cockpit-agama.new.25432/node_modules.sums
++++++ package-lock.json ++++++
++++ 18761 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/cockpit-agama/package-lock.json
++++ and /work/SRC/openSUSE:Factory/.cockpit-agama.new.25432/package-lock.json
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package rubygem-agama for openSUSE:Factory checked in at 2023-12-01 21:26:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-agama (Old)
and /work/SRC/openSUSE:Factory/.rubygem-agama.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-agama"
Fri Dec 1 21:26:58 2023 rev:5 rq:1130248 version:6
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-agama/rubygem-agama.changes 2023-10-23 23:41:30.888726763 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-agama.new.25432/rubygem-agama.changes 2023-12-01 21:27:23.490337460 +0100
@@ -1,0 +2,27 @@
+Wed Nov 29 11:26:39 UTC 2023 - Imobach Gonzalez Sosa <igonzalezsosa(a)suse.com>
+
+- Update the software proposal when the locale changes
+ (gh#openSUSE/agama#881).
+
+-------------------------------------------------------------------
+Fri Nov 24 14:50:22 UTC 2023 - Imobach Gonzalez Sosa <igonzalezsosa(a)suse.com>
+
+- Install recommended packages (gh#openSUSE/agama#889).
+
+-------------------------------------------------------------------
+Thu Nov 16 16:27:37 UTC 2023 - Ladislav Slezák <lslezak(a)suse.com>
+
+- Software service - correctly change the locale, pass the changed
+ locale to libzypp (gh#openSUSE/agama#875).
+
+-------------------------------------------------------------------
+Wed Nov 15 12:31:10 UTC 2023 - José Iván López González <jlopez(a)suse.com>
+
+- Add D-Bus API for registering a product (gh#openSUSE/agama#869).
+
+-------------------------------------------------------------------
+Thu Nov 2 14:00:01 UTC 2023 - Ancor Gonzalez Sosa <ancor(a)suse.com>
+
+- Delegate TPM-based encryption to YaST (gh#openSUSE/agama#826)
+
+-------------------------------------------------------------------
Old:
----
agama-5.gem
New:
----
agama-6.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-agama.spec ++++++
--- /var/tmp/diff_new_pack.oFtz7t/_old 2023-12-01 21:27:24.142361455 +0100
+++ /var/tmp/diff_new_pack.oFtz7t/_new 2023-12-01 21:27:24.142361455 +0100
@@ -24,7 +24,7 @@
#
Name: rubygem-agama
-Version: 5
+Version: 6
Release: 0
%define mod_name agama
%define mod_full_name %{mod_name}-%{version}
@@ -63,7 +63,8 @@
install -m 0644 --target-directory=%{buildroot}%{_datadir}/dbus-1/agama-services %{buildroot}%{gem_base}/gems/%{mod_full_name}/share/org.opensuse.Agama*.service
install -D -m 0644 %{buildroot}%{gem_base}/gems/%{mod_full_name}/share/agama.service %{buildroot}%{_unitdir}/agama.service
install -D -m 0644 %{buildroot}%{gem_base}/gems/%{mod_full_name}/share/agama-proxy-setup.service %{buildroot}%{_unitdir}/agama-proxy-setup.service
-install -D -m 0644 %{buildroot}%{gem_base}/gems/%{mod_full_name}/etc/agama.yaml %{buildroot}%{_sysconfdir}/agama.yaml
+install --directory %{buildroot}/usr/share/agama/conf.d
+install -D -m 0644 %{buildroot}%{gem_base}/gems/%{mod_full_name}/conf.d/*.yaml %{buildroot}/usr/share/agama/conf.d/
# /MANUAL
%gem_packages
++++++ agama-5.gem -> agama-6.gem ++++++
++++ 2925 lines of diff (skipped)
++++++ gem2rpm.yml ++++++
--- /var/tmp/diff_new_pack.oFtz7t/_old 2023-12-01 21:27:24.290366902 +0100
+++ /var/tmp/diff_new_pack.oFtz7t/_new 2023-12-01 21:27:24.290366902 +0100
@@ -10,14 +10,14 @@
install -m 0644 --target-directory=%{buildroot}%{_datadir}/dbus-1/agama-services %{buildroot}%{gem_base}/gems/%{mod_full_name}/share/org.opensuse.Agama*.service
install -D -m 0644 %{buildroot}%{gem_base}/gems/%{mod_full_name}/share/agama.service %{buildroot}%{_unitdir}/agama.service
install -D -m 0644 %{buildroot}%{gem_base}/gems/%{mod_full_name}/share/agama-proxy-setup.service %{buildroot}%{_unitdir}/agama-proxy-setup.service
- install -D -m 0644 %{buildroot}%{gem_base}/gems/%{mod_full_name}/etc/agama.yaml %{buildroot}%{_sysconfdir}/agama.yaml
+ install --directory %{buildroot}/usr/share/agama/conf.d
+ install -D -m 0644 %{buildroot}%{gem_base}/gems/%{mod_full_name}/conf.d/*.yaml %{buildroot}/usr/share/agama/conf.d/
:main:
:preamble: |-
# Override build.rpm, see also https://github.com/openSUSE/obs-build/blob/master/configs/
%global rb_build_versions %{rb_default_ruby}
BuildRequires: dbus-1-common
Requires: dbus-1-common
- Requires: snapper
Requires: yast2-bootloader
Requires: yast2-country
Requires: yast2-hardware-detection
@@ -29,8 +29,14 @@
Requires: open-iscsi
Requires: yast2-iscsi-client >= 4.5.7
Requires: yast2-users
+ # required for registration
+ Requires: suseconnect-ruby-bindings
# yast2 with ArchFilter
Requires: yast2 >= 4.5.20
+ # storage dependencies
+ Requires: ntfs-3g
+ Requires: ntfsprogs
+ Requires: snapper
%ifarch s390 s390x
Requires: yast2-s390 >= 4.6.4
%endif
@@ -39,5 +45,7 @@
%{_datadir}/dbus-1/agama-services/org.opensuse.Agama*.service\n
%{_unitdir}/agama.service\n
%{_unitdir}/agama-proxy-setup.service\n
- %config %{_sysconfdir}/agama.yaml\n"
+ %dir %{_datadir}/agama\n
+ %dir %{_datadir}/agama/conf.d\n
+ %{_datadir}/agama/conf.d\n"
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package blosc2 for openSUSE:Factory checked in at 2023-12-01 21:26:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/blosc2 (Old)
and /work/SRC/openSUSE:Factory/.blosc2.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "blosc2"
Fri Dec 1 21:26:51 2023 rev:10 rq:1130255 version:2.11.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/blosc2/blosc2.changes 2023-11-30 22:02:08.070857347 +0100
+++ /work/SRC/openSUSE:Factory/.blosc2.new.25432/blosc2.changes 2023-12-01 21:27:18.890168171 +0100
@@ -1,0 +2,11 @@
+Fri Dec 1 13:37:53 UTC 2023 - Ben Greiner <code(a)bnavigator.de>
+
+- Update to 2.11.3
+ * Frames accept now typesizes that are larger than 255 (and up to
+ 2**31). See PyTables/PyTables#1086. Thanks to @chris-allan for
+ the report.
+ * AVX512 runtime dispatching has been fixed (basically disabled)
+ for GCC versions <= 10.
+ * Use typedef for blosc_timestamp_t. Thanks to Magnus Ulimoen.
+
+-------------------------------------------------------------------
Old:
----
c-blosc2-2.11.2.tar.gz
New:
----
c-blosc2-2.11.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ blosc2.spec ++++++
--- /var/tmp/diff_new_pack.XoVr96/_old 2023-12-01 21:27:20.658233237 +0100
+++ /var/tmp/diff_new_pack.XoVr96/_new 2023-12-01 21:27:20.674233826 +0100
@@ -20,7 +20,7 @@
%define major 2
%define libname lib%{name}-%{major}
Name: blosc2
-Version: 2.11.2
+Version: 2.11.3
Release: 0
Summary: A fast, compressed, persistent binary data store library for C
License: BSD-2-Clause AND BSD-3-Clause AND MIT
++++++ c-blosc2-2.11.2.tar.gz -> c-blosc2-2.11.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/c-blosc2-2.11.2/ANNOUNCE.md new/c-blosc2-2.11.3/ANNOUNCE.md
--- old/c-blosc2-2.11.2/ANNOUNCE.md 2023-11-07 18:58:15.000000000 +0100
+++ new/c-blosc2-2.11.3/ANNOUNCE.md 2023-11-30 18:59:08.000000000 +0100
@@ -1,10 +1,10 @@
-# Announcing C-Blosc2 2.11.2
+# Announcing C-Blosc2 2.11.3
A fast, compressed and persistent binary data store library for C.
## What is new?
-This is a maintenance release for fixing compilation on Raspberry Pi (4).
-Only affects to ARM non-64bit builds.
+This is a maintenance release for allowing typesizes > 255 in frames
+and other small fixes.
For more info, please see the release notes in:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/c-blosc2-2.11.2/CMakeLists.txt new/c-blosc2-2.11.3/CMakeLists.txt
--- old/c-blosc2-2.11.2/CMakeLists.txt 2023-11-07 18:58:15.000000000 +0100
+++ new/c-blosc2-2.11.3/CMakeLists.txt 2023-11-30 18:59:08.000000000 +0100
@@ -285,7 +285,10 @@
else()
set(COMPILER_SUPPORT_AVX2 FALSE)
endif()
- if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.9 OR CMAKE_C_COMPILER_VERSION VERSION_EQUAL 4.9)
+ # GCC 10.3.2 (the version in manylinux_2014) seems to have issues supporting dynamic dispatching
+ # of AVX512. GCC 11.4 is the first minimal version that works well here.
+ # That means that Linux wheels will have AVX512 disabled, but that's life.
+ if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 11.4 OR CMAKE_C_COMPILER_VERSION VERSION_EQUAL 11.4)
set(COMPILER_SUPPORT_AVX512 TRUE)
else()
set(COMPILER_SUPPORT_AVX512 FALSE)
@@ -297,7 +300,9 @@
else()
set(COMPILER_SUPPORT_AVX2 FALSE)
endif()
- if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 10.0 OR CMAKE_C_COMPILER_VERSION VERSION_EQUAL 10.0)
+ # Clang 13 is the minimum version that we know that works with AVX512 dynamic dispatch.
+ # Perhaps lesser versions work too, better to err on the safe side.
+ if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 13.0 OR CMAKE_C_COMPILER_VERSION VERSION_EQUAL 13.0)
set(COMPILER_SUPPORT_AVX512 TRUE)
else()
set(COMPILER_SUPPORT_AVX512 FALSE)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/c-blosc2-2.11.2/RELEASE_NOTES.md new/c-blosc2-2.11.3/RELEASE_NOTES.md
--- old/c-blosc2-2.11.2/RELEASE_NOTES.md 2023-11-07 18:58:15.000000000 +0100
+++ new/c-blosc2-2.11.3/RELEASE_NOTES.md 2023-11-30 18:59:08.000000000 +0100
@@ -1,6 +1,19 @@
Release notes for C-Blosc2
==========================
+Changes from 2.11.2 to 2.11.3
+=============================
+
+* Frames accept now typesizes that are larger than 255 (and up to 2**31).
+ See https://github.com/PyTables/PyTables/issues/1086. Thanks to
+ @chris-allan for the report.
+
+* AVX512 runtime dispatching has been fixed (basically disabled) for GCC
+ versions <= 10.
+
+* Use typedef for blosc_timestamp_t. Thanks to Magnus Ulimoen.
+
+
Changes from 2.11.1 to 2.11.2
=============================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/c-blosc2-2.11.2/blosc/frame.c new/c-blosc2-2.11.3/blosc/frame.c
--- old/c-blosc2-2.11.2/blosc/frame.c 2023-11-07 18:58:15.000000000 +0100
+++ new/c-blosc2-2.11.3/blosc/frame.c 2023-11-30 18:59:08.000000000 +0100
@@ -428,8 +428,8 @@
}
if (typesize != NULL) {
from_big(typesize, framep + FRAME_TYPESIZE, sizeof(*typesize));
- if (*typesize <= 0 || *typesize > BLOSC_MAX_TYPESIZE) {
- BLOSC_TRACE_ERROR("`typesize` is zero or greater than max allowed.");
+ if (*typesize <= 0) {
+ BLOSC_TRACE_ERROR("`typesize` cannot be zero or negative.");
return BLOSC2_ERROR_INVALID_HEADER;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/c-blosc2-2.11.2/include/blosc2.h new/c-blosc2-2.11.3/include/blosc2.h
--- old/c-blosc2-2.11.2/include/blosc2.h 2023-11-07 18:58:15.000000000 +0100
+++ new/c-blosc2-2.11.3/include/blosc2.h 2023-11-30 18:59:08.000000000 +0100
@@ -83,10 +83,10 @@
/* Version numbers */
#define BLOSC2_VERSION_MAJOR 2 /* for major interface/format changes */
#define BLOSC2_VERSION_MINOR 11 /* for minor interface/format changes */
-#define BLOSC2_VERSION_RELEASE 2 /* for tweaks, bug-fixes, or development */
+#define BLOSC2_VERSION_RELEASE 3 /* for tweaks, bug-fixes, or development */
-#define BLOSC2_VERSION_STRING "2.11.2" /* string version. Sync with above! */
-#define BLOSC2_VERSION_DATE "$Date:: 2023-11-07 #$" /* date version */
+#define BLOSC2_VERSION_STRING "2.11.3" /* string version. Sync with above! */
+#define BLOSC2_VERSION_DATE "$Date:: 2023-11-30 #$" /* date version */
/* The maximum number of dimensions for Blosc2 NDim arrays */
@@ -2306,9 +2306,9 @@
/* The type of timestamp used on this system. */
#if defined(_WIN32)
-#define blosc_timestamp_t LARGE_INTEGER
+typedef LARGE_INTEGER blosc_timestamp_t;
#else
-#define blosc_timestamp_t struct timespec
+typedef struct timespec blosc_timestamp_t;
#endif
/*
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-social-auth-core for openSUSE:Factory checked in at 2023-12-01 21:26:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-social-auth-core (Old)
and /work/SRC/openSUSE:Factory/.python-social-auth-core.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-social-auth-core"
Fri Dec 1 21:26:54 2023 rev:22 rq:1130256 version:4.5.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-social-auth-core/python-social-auth-core.changes 2023-11-14 21:42:31.079477034 +0100
+++ /work/SRC/openSUSE:Factory/.python-social-auth-core.new.25432/python-social-auth-core.changes 2023-12-01 21:27:22.262292267 +0100
@@ -1,0 +2,11 @@
+Fri Dec 1 09:59:25 UTC 2023 - David Anes <david.anes(a)suse.com>
+
+- Update to 4.5.1
+ - OpenID Connect skips at_hash validation when missing
+ - redirect_name is now passed to backend on do_complete
+ - next is preserved through SAML RelayState
+ - Add Discogs backend
+ - Add BitbucketDataCenterOAuth2 backend
+ - Keycloak's ID_KEY is no longer configurable (it never worked)
+
+-------------------------------------------------------------------
Old:
----
social-core-4.5.0.tar.gz
New:
----
social-core-4.5.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-social-auth-core.spec ++++++
--- /var/tmp/diff_new_pack.5Y0akc/_old 2023-12-01 21:27:22.810312435 +0100
+++ /var/tmp/diff_new_pack.5Y0akc/_new 2023-12-01 21:27:22.810312435 +0100
@@ -23,7 +23,7 @@
%bcond_with saml
Name: python-social-auth-core
-Version: 4.5.0
+Version: 4.5.1
Release: 0
Summary: Python Social Auth Core
License: BSD-3-Clause
++++++ social-core-4.5.0.tar.gz -> social-core-4.5.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/.github/ISSUE_TEMPLATE.md new/social-core-4.5.1/.github/ISSUE_TEMPLATE.md
--- old/social-core-4.5.0/.github/ISSUE_TEMPLATE.md 2023-10-31 13:44:09.000000000 +0100
+++ new/social-core-4.5.1/.github/ISSUE_TEMPLATE.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-### Expected behaviour
-
-Describe what should happen.
-
-### Actual behaviour
-
-Describe what happens instead and why is it an issue.
-
-### What are the steps to reproduce this issue?
-
-Input clear steps to reproduce the issue for a maintainer.
-
-1. ...
-2. ...
-3. ...
-
-### Any logs, error output, etc?
-
-Add any code, log or error output that you see fit for this issue, wrap any code
-and / or console output with the proper code blocks.
-
-### Any other comments?
-
-Expand the issue with any details you find appropriate to solve or reproduce it.
-
-<!--
- Issue template based on the following templates:
- * https://raw.githubusercontent.com/theos/theos/master/.github/ISSUE_TEMPLATE…
- * https://raw.githubusercontent.com/EddyVerbruggen/Toast-PhoneGap-Plugin/mast…
--->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/.github/PULL_REQUEST_TEMPLATE.md new/social-core-4.5.1/.github/PULL_REQUEST_TEMPLATE.md
--- old/social-core-4.5.0/.github/PULL_REQUEST_TEMPLATE.md 2023-10-31 13:44:09.000000000 +0100
+++ new/social-core-4.5.1/.github/PULL_REQUEST_TEMPLATE.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,39 +0,0 @@
-## Proposed changes
-
-Describe the big picture of your changes here to communicate to the maintainers
-why we should accept this pull request. If it fixes a bug or resolves a feature
-request, be sure to link to that issue.
-
-## Types of changes
-
-Please check the type of change your PR introduces:
-
-- [ ] Release (new release request)
-- [ ] Bugfix (non-breaking change which fixes an issue)
-- [ ] New feature (non-breaking change which adds functionality)
-- [ ] Code style update (PEP8, lint, formatting, renaming, etc)
-- [ ] Refactoring (no functional changes, no api changes)
-- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
-- [ ] Build related changes (build process, tests runner, etc)
-- [ ] Other (please describe):
-
-## Checklist
-
-_Put an `x` in the boxes that apply. You can also fill these out after creating
-the PR. If you're unsure about any of them, don't hesitate to ask. We're here to
-help! This is simply a reminder of what we are going to look for before merging
-your code._
-
-- [ ] Lint and unit tests pass locally with my changes
-- [ ] I have added tests that prove my fix is effective or that my feature works
-
-## Other information
-
-Any other information that is important to this PR such as screenshots of how
-the component looks before and after the change.
-
-<!--
- Pull request template based on the following templates:
- * https://raw.githubusercontent.com/ionic-team/ionic/master/.github/PULL_REQU…
- * https://raw.githubusercontent.com/appium/appium/master/.github/PULL_REQUEST…
--->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/.pre-commit-config.yaml new/social-core-4.5.1/.pre-commit-config.yaml
--- old/social-core-4.5.0/.pre-commit-config.yaml 2023-10-31 13:44:09.000000000 +0100
+++ new/social-core-4.5.1/.pre-commit-config.yaml 2023-11-29 09:52:23.000000000 +0100
@@ -20,7 +20,7 @@
- id: pyupgrade
args: [--py38-plus]
- repo: https://github.com/psf/black
- rev: 23.10.1
+ rev: 23.11.0
hooks:
- id: black
- repo: https://github.com/PyCQA/flake8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/CHANGELOG.md new/social-core-4.5.1/CHANGELOG.md
--- old/social-core-4.5.0/CHANGELOG.md 2023-10-31 13:44:09.000000000 +0100
+++ new/social-core-4.5.1/CHANGELOG.md 2023-11-29 09:52:23.000000000 +0100
@@ -5,6 +5,16 @@
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
+## [4.5.1](https://github.com/python-social-auth/social-core/releases/tag/4.5.1) - 2023-11-29
+
+### Changed
+- OpenID Connect skips `at_hash` validation when missing
+- `redirect_name` is now passed to backend on `do_complete`
+- `next` is preserved through SAML RelayState
+- Add Discogs backend
+- Add BitbucketDataCenterOAuth2 backend
+- Keycloak's `ID_KEY` is no longer configurable (it never worked)
+
## [4.5.0](https://github.com/python-social-auth/social-core/releases/tag/4.5.0) - 2023-10-31
### Changed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/__init__.py new/social-core-4.5.1/social_core/__init__.py
--- old/social-core-4.5.0/social_core/__init__.py 2023-10-31 13:44:09.000000000 +0100
+++ new/social-core-4.5.1/social_core/__init__.py 2023-11-29 09:52:23.000000000 +0100
@@ -1 +1 @@
-__version__ = "4.5.0"
+__version__ = "4.5.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/actions.py new/social-core-4.5.1/social_core/actions.py
--- old/social-core-4.5.0/social_core/actions.py 2023-10-31 13:44:09.000000000 +0100
+++ new/social-core-4.5.1/social_core/actions.py 2023-11-29 09:52:23.000000000 +0100
@@ -46,7 +46,7 @@
# clean partial data after usage
backend.strategy.clean_partial_pipeline(partial.token)
else:
- user = backend.complete(user=user, *args, **kwargs)
+ user = backend.complete(user=user, redirect_name=redirect_name, *args, **kwargs)
# pop redirect value before the session is trashed on login(), but after
# the pipeline so that the pipeline can change the redirect if needed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/backends/bitbucket_datacenter.py new/social-core-4.5.1/social_core/backends/bitbucket_datacenter.py
--- old/social-core-4.5.0/social_core/backends/bitbucket_datacenter.py 1970-01-01 01:00:00.000000000 +0100
+++ new/social-core-4.5.1/social_core/backends/bitbucket_datacenter.py 2023-11-29 09:52:23.000000000 +0100
@@ -0,0 +1,107 @@
+"""
+Bitbucket Data Center OAuth2 backend, docs at:
+ https://python-social-auth.readthedocs.io/en/latest/backends/bitbucket_data…
+ https://confluence.atlassian.com/bitbucketserver/bitbucket-oauth-2-0-provid…
+"""
+
+from .oauth import BaseOAuth2PKCE
+
+
+class BitbucketDataCenterOAuth2(BaseOAuth2PKCE):
+ """
+ Implements client for Bitbucket Data Center OAuth 2.0 provider API.
+ ref: https://confluence.atlassian.com/bitbucketserver/bitbucket-oauth-2-0-provid…
+ """
+
+ name = "bitbucket-datacenter-oauth2"
+ ID_KEY = "id"
+ SCOPE_SEPARATOR = " "
+ ACCESS_TOKEN_METHOD = "POST"
+ REFRESH_TOKEN_METHOD = "POST"
+ REDIRECT_STATE = False
+ STATE_PARAMETER = True
+ # ref: https://confluence.atlassian.com/bitbucketserver/bitbucket-oauth-2-0-provid… # noqa
+ DEFAULT_SCOPE = ["PUBLIC_REPOS"]
+ USE_BASIC_AUTH = False
+ EXTRA_DATA = [
+ ("token_type", "token_type"),
+ ("access_token", "access_token"),
+ ("refresh_token", "refresh_token"),
+ ("expires_in", "expires"),
+ ("scope", "scope"),
+ # extra user profile fields
+ ("first_name", "first_name"),
+ ("last_name", "last_name"),
+ ("email", "email"),
+ ("name", "name"),
+ ("username", "username"),
+ ("display_name", "display_name"),
+ ("type", "type"),
+ ("active", "active"),
+ ("url", "url"),
+ ("avatar_url", "avatar_url"),
+ ]
+ PKCE_DEFAULT_CODE_CHALLENGE_METHOD = "s256" # can be "plain" or "s256"
+ PKCE_DEFAULT_CODE_VERIFIER_LENGTH = 48 # must be b/w 43-127 chars
+ DEFAULT_USE_PKCE = True
+ DEFAULT_USER_AVATAR_SIZE = 48
+
+ @property
+ def server_base_oauth2_api_url(self) -> str:
+ base_url = self.setting("URL")
+ return f"{base_url}/rest/oauth2/latest"
+
+ @property
+ def server_base_rest_api_url(self) -> str:
+ base_url = self.setting("URL")
+ return f"{base_url}/rest/api/latest"
+
+ def authorization_url(self) -> str:
+ return f"{self.server_base_oauth2_api_url}/authorize"
+
+ def access_token_url(self) -> str:
+ return f"{self.server_base_oauth2_api_url}/token"
+
+ def get_user_details(self, response) -> dict:
+ """Return user details for the Bitbucket Data Center account"""
+ # `response` here is the return value of `user_data` method
+ user_data = response
+ _, first_name, last_name = self.get_user_names(user_data["displayName"])
+ uid = self.get_user_id(details=None, response=response)
+ return {
+ "uid": uid,
+ "first_name": first_name,
+ "last_name": last_name,
+ "email": user_data["emailAddress"],
+ "name": user_data["name"],
+ "username": user_data["slug"],
+ "display_name": user_data["displayName"],
+ "type": user_data["type"],
+ "active": user_data["active"],
+ "url": user_data["links"]["self"][0]["href"],
+ "avatar_url": user_data["avatarUrl"],
+ }
+
+ def user_data(self, access_token, *args, **kwargs) -> dict:
+ """Fetch user data from Bitbucket Data Center REST API"""
+ # At this point, we don't know the current user's username
+ # and Bitbucket doesn't provide any API to do so.
+ # However, the current user's username is sent in every response header.
+ # ref: https://community.developer.atlassian.com/t/obtain-authorised-users-usernam… # noqa
+ headers = {"Authorization": f"Bearer {access_token}"}
+ response = self.request(
+ url=f"{self.server_base_rest_api_url}/application-properties",
+ method="GET",
+ headers=headers,
+ )
+ # ref: https://developer.atlassian.com/server/bitbucket/rest/v815/api-group-system… # noqa
+ username = response.headers["x-ausername"]
+ return self.get_json(
+ url=f"{self.server_base_rest_api_url}/users/{username}",
+ headers=headers,
+ params={
+ "avatarSize": self.setting(
+ "USER_AVATAR_SIZE", default=self.DEFAULT_USER_AVATAR_SIZE
+ ) # to force `avatarUrl` in response
+ },
+ )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/backends/discogs.py new/social-core-4.5.1/social_core/backends/discogs.py
--- old/social-core-4.5.0/social_core/backends/discogs.py 1970-01-01 01:00:00.000000000 +0100
+++ new/social-core-4.5.1/social_core/backends/discogs.py 2023-11-29 09:52:23.000000000 +0100
@@ -0,0 +1,37 @@
+"""
+Discogs OAuth1 backend, docs at:
+ https://www.discogs.com/developers/
+"""
+
+from social_core.backends.oauth import BaseOAuth1
+
+
+class DiscogsOAuth1(BaseOAuth1):
+ """
+ Implements the OAuth1 authentication mechanism for https://www.discogs.com
+ """
+
+ name = "discogs"
+
+ OAUTH_TOKEN_PARAMETER_NAME = "oauth_token"
+
+ AUTHORIZATION_URL = "https://www.discogs.com/oauth/authorize"
+ REQUEST_TOKEN_URL = "https://api.discogs.com/oauth/request_token"
+ ACCESS_TOKEN_URL = "https://api.discogs.com/oauth/access_token"
+
+ def get_user_details(self, user_data):
+ return {
+ "username": user_data["username"],
+ "id": user_data["id"],
+ "profile": user_data["profile"],
+ "name": user_data["name"],
+ }
+
+ def user_data(self, access_token, *args, **kwargs):
+ identity = self.get_json(
+ "https://api.discogs.com/oauth/identity", auth=self.oauth_auth(access_token)
+ )
+
+ return self.get_json(
+ identity["resource_url"], auth=self.oauth_auth(access_token)
+ )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/backends/keycloak.py new/social-core-4.5.1/social_core/backends/keycloak.py
--- old/social-core-4.5.0/social_core/backends/keycloak.py 2023-10-31 13:44:09.000000000 +0100
+++ new/social-core-4.5.1/social_core/backends/keycloak.py 2023-11-29 09:52:23.000000000 +0100
@@ -96,6 +96,7 @@
"""
name = "keycloak"
+ ID_KEY = "username"
ACCESS_TOKEN_METHOD = "POST"
REDIRECT_STATE = False
@@ -120,9 +121,6 @@
]
)
- def id_key(self):
- return self.setting("ID_KEY", default="username")
-
def user_data(
self, access_token, *args, **kwargs
): # pylint: disable=unused-argument
@@ -151,11 +149,5 @@
}
def get_user_id(self, details, response):
- """Get and associate Django User by the field indicated by ID_KEY
-
- The ID_KEY can be any field in the user details or the access token.
- """
- id_key = self.id_key()
- if id_key in details:
- return details[id_key]
- return response.get(id_key)
+ """Get and associate Django User by the field indicated by ID_KEY"""
+ return details.get(self.ID_KEY)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/backends/oauth.py new/social-core-4.5.1/social_core/backends/oauth.py
--- old/social-core-4.5.0/social_core/backends/oauth.py 2023-10-31 13:44:09.000000000 +0100
+++ new/social-core-4.5.1/social_core/backends/oauth.py 2023-11-29 09:52:23.000000000 +0100
@@ -1,3 +1,5 @@
+import base64
+import hashlib
from urllib.parse import unquote, urlencode
from oauthlib.oauth1 import SIGNATURE_TYPE_AUTH_HEADER
@@ -5,6 +7,7 @@
from ..exceptions import (
AuthCanceled,
+ AuthException,
AuthFailed,
AuthMissingParameter,
AuthStateForbidden,
@@ -459,3 +462,68 @@
def refresh_token_url(self):
return self.REFRESH_TOKEN_URL or self.access_token_url()
+
+
+class BaseOAuth2PKCE(BaseOAuth2):
+ """
+ Base class for providers using OAuth2 with Proof Key for Code Exchange (PKCE).
+
+ OAuth2 details at:
+ https://datatracker.ietf.org/doc/html/rfc6749
+ PKCE details at:
+ https://datatracker.ietf.org/doc/html/rfc7636
+ """
+
+ PKCE_DEFAULT_CODE_CHALLENGE_METHOD = "s256"
+ PKCE_DEFAULT_CODE_VERIFIER_LENGTH = 32
+ DEFAULT_USE_PKCE = True
+
+ def create_code_verifier(self):
+ name = f"{self.name}_code_verifier"
+ code_verifier_len = self.setting(
+ "PKCE_CODE_VERIFIER_LENGTH", default=self.PKCE_DEFAULT_CODE_VERIFIER_LENGTH
+ )
+ code_verifier = self.strategy.random_string(code_verifier_len)
+ self.strategy.session_set(name, code_verifier)
+ return code_verifier
+
+ def get_code_verifier(self):
+ name = f"{self.name}_code_verifier"
+ code_verifier = self.strategy.session_get(name)
+ return code_verifier
+
+ def generate_code_challenge(self, code_verifier, challenge_method):
+ method = challenge_method.lower()
+ if method == "s256":
+ hashed = hashlib.sha256(code_verifier.encode()).digest()
+ encoded = base64.urlsafe_b64encode(hashed)
+ code_challenge = encoded.decode().replace("=", "") # remove padding
+ return code_challenge
+ if method == "plain":
+ return code_verifier
+ raise AuthException("Unsupported code challenge method.")
+
+ def auth_params(self, state=None):
+ params = super().auth_params(state=state)
+
+ if self.setting("USE_PKCE", default=self.DEFAULT_USE_PKCE):
+ code_challenge_method = self.setting(
+ "PKCE_CODE_CHALLENGE_METHOD",
+ default=self.PKCE_DEFAULT_CODE_CHALLENGE_METHOD,
+ )
+ code_verifier = self.create_code_verifier()
+ code_challenge = self.generate_code_challenge(
+ code_verifier, code_challenge_method
+ )
+ params["code_challenge_method"] = code_challenge_method
+ params["code_challenge"] = code_challenge
+ return params
+
+ def auth_complete_params(self, state=None):
+ params = super().auth_complete_params(state=state)
+
+ if self.setting("USE_PKCE", default=self.DEFAULT_USE_PKCE):
+ code_verifier = self.get_code_verifier()
+ params["code_verifier"] = code_verifier
+
+ return params
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/backends/open_id_connect.py new/social-core-4.5.1/social_core/backends/open_id_connect.py
--- old/social-core-4.5.0/social_core/backends/open_id_connect.py 2023-10-31 13:44:09.000000000 +0100
+++ new/social-core-4.5.1/social_core/backends/open_id_connect.py 2023-11-29 09:52:23.000000000 +0100
@@ -236,7 +236,9 @@
# pyjwt does not validate OIDC claims
# see https://github.com/jpadilla/pyjwt/pull/296
- if claims.get("at_hash") != self.calc_at_hash(access_token, key["alg"]):
+ if "at_hash" in claims and claims["at_hash"] != self.calc_at_hash(
+ access_token, key["alg"]
+ ):
raise AuthTokenError(self, "Invalid access token")
self.validate_claims(claims)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/backends/saml.py new/social-core-4.5.1/social_core/backends/saml.py
--- old/social-core-4.5.0/social_core/backends/saml.py 2023-10-31 13:44:09.000000000 +0100
+++ new/social-core-4.5.1/social_core/backends/saml.py 2023-11-29 09:52:23.000000000 +0100
@@ -7,6 +7,8 @@
"Identity Provider" (IdP): The third-party site that is authenticating
users via SAML
"""
+import json
+
from onelogin.saml2.auth import OneLogin_Saml2_Auth
from onelogin.saml2.settings import OneLogin_Saml2_Settings
@@ -278,8 +280,12 @@
# Below, return_to sets the RelayState, which can contain
# arbitrary data. We use it to store the specific SAML IdP
# name, since we multiple IdPs share the same auth_complete
- # URL.
- return auth.login(return_to=idp_name)
+ # URL, and the URL to redirect to after auth completes.
+ relay_state = {
+ "idp": idp_name,
+ "next": self.data.get("next"),
+ }
+ return auth.login(return_to=json.dumps(relay_state))
def get_user_details(self, response):
"""Get user details like full name, email, etc. from the
@@ -303,10 +309,26 @@
now log them in, if everything checks out.
"""
try:
- idp_name = self.strategy.request_data()["RelayState"]
+ relay_state_str = self.strategy.request_data()["RelayState"]
except KeyError:
raise AuthMissingParameter(self, "RelayState")
+ try:
+ relay_state = json.loads(relay_state_str)
+ if not isinstance(relay_state, dict) or "idp" not in relay_state:
+ raise ValueError(
+ "RelayState is expected to contain a JSON object with an 'idp' key"
+ )
+ except ValueError:
+ # Assume RelayState is just the idp_name, as it used to be in previous versions of this code.
+ # This ensures compatibility with previous versions.
+ idp_name = relay_state_str
+ else:
+ idp_name = relay_state["idp"]
+ if next_url := relay_state.get("next"):
+ # The do_complete action expects the "next" URL to be in session state or the request params.
+ self.strategy.session_set(kwargs.get("redirect_name", "next"), next_url)
+
idp = self.get_idp(idp_name)
auth = self._create_saml_auth(idp)
auth.process_response()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/backends/twitter_oauth2.py new/social-core-4.5.1/social_core/backends/twitter_oauth2.py
--- old/social-core-4.5.0/social_core/backends/twitter_oauth2.py 2023-10-31 13:44:09.000000000 +0100
+++ new/social-core-4.5.1/social_core/backends/twitter_oauth2.py 2023-11-29 09:52:23.000000000 +0100
@@ -3,14 +3,10 @@
https://python-social-auth.readthedocs.io/en/latest/backends/twitter-oauth2…
https://developer.twitter.com/en/docs/authentication/oauth-2-0/authorizatio…
"""
-import base64
-import hashlib
+from .oauth import BaseOAuth2PKCE
-from ..exceptions import AuthException
-from .oauth import BaseOAuth2
-
-class TwitterOAuth2(BaseOAuth2):
+class TwitterOAuth2(BaseOAuth2PKCE):
"""Twitter OAuth2 authentication backend"""
name = "twitter-oauth2"
@@ -40,7 +36,8 @@
("public_metrics", "public_metrics"),
]
PKCE_DEFAULT_CODE_CHALLENGE_METHOD = "s256"
- USE_PKCE = True
+ PKCE_DEFAULT_CODE_VERIFIER_LENGTH = 32
+ DEFAULT_USE_PKCE = True
def get_user_details(self, response):
"""Return user details from Twitter account"""
@@ -104,50 +101,3 @@
headers={"Authorization": "Bearer %s" % access_token},
)
return response["data"]
-
- def create_code_verifier(self):
- name = self.name + "_code_verifier"
- code_verifier = self.strategy.random_string(32)
- self.strategy.session_set(name, code_verifier)
- return code_verifier
-
- def get_code_verifier(self):
- name = self.name + "_code_verifier"
- code_verifier = self.strategy.session_get(name)
- return code_verifier
-
- def generate_code_challenge(self, code_verifier, challenge_method):
- method = challenge_method.lower()
- if method == "s256":
- hashed = hashlib.sha256(code_verifier.encode()).digest()
- encoded = base64.urlsafe_b64encode(hashed)
- code_challenge = encoded.decode().replace("=", "") # remove padding
- return code_challenge
- elif method == "plain":
- return code_verifier
- else:
- raise AuthException("Unsupported code challenge method.")
-
- def auth_params(self, state=None):
- params = super().auth_params(state=state)
-
- if self.USE_PKCE:
- code_challenge_method = self.setting("PKCE_CODE_CHALLENGE_METHOD")
- if not code_challenge_method:
- code_challenge_method = self.PKCE_DEFAULT_CODE_CHALLENGE_METHOD
- code_verifier = self.create_code_verifier()
- code_challenge = self.generate_code_challenge(
- code_verifier, code_challenge_method
- )
- params["code_challenge_method"] = code_challenge_method
- params["code_challenge"] = code_challenge
- return params
-
- def auth_complete_params(self, state=None):
- params = super().auth_complete_params(state=state)
-
- if self.USE_PKCE:
- code_verifier = self.get_code_verifier()
- params["code_verifier"] = code_verifier
-
- return params
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/tests/actions/actions.py new/social-core-4.5.1/social_core/tests/actions/actions.py
--- old/social-core-4.5.0/social_core/tests/actions/actions.py 2023-10-31 13:44:09.000000000 +0100
+++ new/social-core-4.5.1/social_core/tests/actions/actions.py 2023-11-29 09:52:23.000000000 +0100
@@ -53,6 +53,7 @@
def __init__(self, *args, **kwargs):
self.strategy = None
+ self.backend = None
super().__init__(*args, **kwargs)
def setUp(self):
@@ -63,7 +64,9 @@
TestAssociation.reset_cache()
Backend = module_member("social_core.backends.github.GithubOAuth2")
self.strategy = self.strategy or TestStrategy(TestStorage)
- self.backend = Backend(self.strategy, redirect_uri="/complete/github")
+ self.backend = self.backend or Backend(
+ self.strategy, redirect_uri="/complete/github"
+ )
self.user = None
def tearDown(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/tests/actions/test_login.py new/social-core-4.5.1/social_core/tests/actions/test_login.py
--- old/social-core-4.5.0/social_core/tests/actions/test_login.py 2023-10-31 13:44:09.000000000 +0100
+++ new/social-core-4.5.1/social_core/tests/actions/test_login.py 2023-11-29 09:52:23.000000000 +0100
@@ -1,8 +1,33 @@
+from ...backends.base import BaseAuth
from ...utils import PARTIAL_TOKEN_SESSION_NAME
-from ..models import User
+from ..models import TestUserSocialAuth, User
from .actions import BaseActionTest
+class BackendThatControlsRedirect(BaseAuth):
+ """
+ A fake backend that sets the URL to redirect to after login.
+
+ It is not always possible to set the redirect URL in the session state prior to auth and then retrieve it when
+ auth is complete, because the session cookie might not be available post-auth. For example, for SAML, a POST request
+ redirects the user from the IdP (Identity Provider) back to the SP (Service Provider) to complete the auth process,
+ but the session cookie will not be present if the session cookie's `SameSite` attribute is not set to "None".
+ To mitigate this, SAML provides a `RelayState` parameter to pass data like a redirect URL from the SP to the IdP
+ and back again. In that case, the redirect URL is only known in `auth_complete`, and must be communicated back to
+ the `do_complete` action via session state so that it can issue the intended redirect.
+ """
+
+ ACCESS_TOKEN_URL = "https://example.com/oauth/access_token"
+
+ def auth_url(self):
+ return "https://example.com/oauth/auth?state=foo"
+
+ def auth_complete(self, *args, **kwargs):
+ # Put the redirect URL in the session state, as this is where the `do_complete` action looks for it.
+ self.strategy.session_set(kwargs["redirect_name"], "/after-login")
+ return kwargs["user"]
+
+
class LoginActionTest(BaseActionTest):
def test_login(self):
self.do_login()
@@ -37,6 +62,12 @@
redirect = self.do_login(after_complete_checks=False)
self.assertEqual(redirect.url, "/after-login")
+ def test_redirect_value_set_by_backend(self):
+ self.backend = BackendThatControlsRedirect(self.strategy)
+ self.user = TestUserSocialAuth.create_user("test-user")
+ redirect = self.do_login(after_complete_checks=False)
+ self.assertEqual(redirect.url, "/after-login")
+
def test_login_with_invalid_partial_pipeline(self):
def before_complete():
partial_token = self.strategy.session_get(PARTIAL_TOKEN_SESSION_NAME)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/tests/backends/data/saml_response.txt new/social-core-4.5.1/social_core/tests/backends/data/saml_response.txt
--- old/social-core-4.5.0/social_core/tests/backends/data/saml_response.txt 2023-10-31 13:44:09.000000000 +0100
+++ new/social-core-4.5.1/social_core/tests/backends/data/saml_response.txt 2023-11-29 09:52:23.000000000 +0100
@@ -1 +1 @@
-http://myapp.com/?RelayState=testshib&SAMLResponse=PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c2FtbDJwOlJlc3BvbnNlIHhtbG5zOnNhbWwycD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOnByb3RvY29sIiBEZXN0aW5hdGlvbj0iaHR0cDovL215YXBwLmNvbSIgSUQ9Il8yNTk2NTFlOTY3ZGIwOGZjYTQ4MjdkODI3YWY1M2RkMCIgSW5SZXNwb25zZVRvPSJURVNUX0lEIiBJc3N1ZUluc3RhbnQ9IjIwMTUtMDUtMDlUMDM6NTc6NDMuNzkyWiIgVmVyc2lvbj0iMi4wIj48c2FtbDI6SXNzdWVyIHhtbG5zOnNhbWwyPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YXNzZXJ0aW9uIiBGb3JtYXQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpuYW1laWQtZm9ybWF0OmVudGl0eSI%2BaHR0cHM6Ly9pZHAudGVzdHNoaWIub3JnL2lkcC9zaGliYm9sZXRoPC9zYW1sMjpJc3N1ZXI%2BPHNhbWwycDpTdGF0dXM%2BPHNhbWwycDpTdGF0dXNDb2RlIFZhbHVlPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6c3RhdHVzOlN1Y2Nlc3MiLz48L3NhbWwycDpTdGF0dXM%2BPHNhbWwyOkVuY3J5cHRlZEFzc2VydGlvbiB4bWxuczpzYW1sMj0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiI%2BPHhlbmM6RW5jcnlwdGVkRGF0YSB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiIElkPSJfMGM0NzYzNzIyOWFkNmEzMTY1
OGU0MDc2ZDNlYzBmNmQiIFR5cGU9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI0VsZW1lbnQiPjx4ZW5jOkVuY3J5cHRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNhZXMxMjgtY2JjIiB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiLz48ZHM6S2V5SW5mbyB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI%2BPHhlbmM6RW5jcnlwdGVkS2V5IElkPSJfYjZmNmU2YWZjMzYyNGI3NmM1N2JmOWZhODA5YzAzNmMiIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI%2BPHhlbmM6RW5jcnlwdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3JzYS1vYWVwLW1nZjFwIiB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSIgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiLz48L3hlbmM6RW5jcnlwdGlvbk1ldGhvZD48ZHM6S2V5SW5mbz48ZHM6WDUwOURhdGE%2BPGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlDc0RDQ0FobWdBd0lCQWdJSkFPN0J3ZGpEWmNVV01BMEdDU3FHU0liM0RRRUJCUVVBTUVVeEN6QUpCZ05WQkFZVEFrTkJNUmt
3CkZ3WURWUVFJRXhCQ2NtbDBhWE5vSUVOdmJIVnRZbWxoTVJzd0dRWURWUVFLRXhKd2VYUm9iMjR0YzI5amFXRnNMV0YxZEdnd0hoY04KTVRVd05UQTRNRGMxT0RRMldoY05NalV3TlRBM01EYzFPRFEyV2pCRk1Rc3dDUVlEVlFRR0V3SkRRVEVaTUJjR0ExVUVDQk1RUW5KcApkR2x6YUNCRGIyeDFiV0pwWVRFYk1Ca0dBMVVFQ2hNU2NIbDBhRzl1TFhOdlkybGhiQzFoZFhSb01JR2ZNQTBHQ1NxR1NJYjNEUUVCCkFRVUFBNEdOQURDQmlRS0JnUUNxM2cxQ2wrM3VSNXZDbk40SGJnalRnK20zbkhodGVFTXliKyt5Y1pZcmUyYnhVZnNzaEVSNngzM2wKMjN0SGNrUll3bTdNZEJicnAzTHJWb2lPQ2RQYmxUbWwxSWhFUFRDd0tNaEJLdnZXcVR2Z2ZjU1NuUnpBV2tMbFFZU3VzYXl5Wks0bgo5cWNZa1Y1TUZuaTFyYmp4K01yNWFPRW1iNXUzM2FtTUtMd1NUd0lEQVFBQm80R25NSUdrTUIwR0ExVWREZ1FXQkJSUmlCUjZ6UzY2CmZLVm9rcDB5SkhiZ3YzUlltakIxQmdOVkhTTUViakJzZ0JSUmlCUjZ6UzY2ZktWb2twMHlKSGJndjNSWW1xRkpwRWN3UlRFTE1Ba0cKQTFVRUJoTUNRMEV4R1RBWEJnTlZCQWdURUVKeWFYUnBjMmdnUTI5c2RXMWlhV0V4R3pBWkJnTlZCQW9URW5CNWRHaHZiaTF6YjJOcApZV3d0WVhWMGFJSUpBTzdCd2RqRFpjVVdNQXdHQTFVZEV3UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUZCUUFEZ1lFQUp3c01VM1lTCmF5YlZqdUo4VVMwZlVobFBPbE00MFFGQ0dMNHZCM1RFYmIyNE1xOEhyalV3clUwSkZQR2xz
OWEyT1l6TjJCM2UzNU5vck11eHMrZ3IKR3RyMnlQNkx2dVgrblY2QTkzd2I0b29HSG9HZkM3VkxseXhTU25zOTM3U1M1UjFwelE0Z1d6Wm1hMktHV0tJQ1dwaDV6UTBBUlZoTAo2Mzk2N21HTG1vST08L2RzOlg1MDlDZXJ0aWZpY2F0ZT48L2RzOlg1MDlEYXRhPjwvZHM6S2V5SW5mbz48eGVuYzpDaXBoZXJEYXRhIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI%2BPHhlbmM6Q2lwaGVyVmFsdWU%2BTElQdkVNVUVGeXhrVHowQ2N4QVA5TjV4Y3NYT2V4aVV4cXBvR2VIeVFMV0R5RVBBUDVnZ1daL3NLZ1ViL2xWSk92bCtuQXhSdVhXUlc5dGxSWWx3R2orRVhIOWhIbmdEY1BWMDNqSUJMQnFJbElBL1RmMGw4cVliOHFKRy9ZM0RTS2RQNkwvUURtYXBtTXpFM29YOEJxMW5Ea3YrUWh4cmQwMGVGK2ZMYVQ0PTwveGVuYzpDaXBoZXJWYWx1ZT48L3hlbmM6Q2lwaGVyRGF0YT48L3hlbmM6RW5jcnlwdGVkS2V5PjwvZHM6S2V5SW5mbz48eGVuYzpDaXBoZXJEYXRhIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI%2BPHhlbmM6Q2lwaGVyVmFsdWU%2BRVpUWDhHTkM0My9yWStTUVlBMXRudHlUTTVVNkN2dUNCaktsVEVlekZPRjBZZHhCWUdFQVVjYU8xNVNKOXBMemJ1L1h0WGxzTkVMZTdKdEx4RUpwYUxubWFENnIranNWczdLaTBLNHRTMGNBUERDWHV2R1FoMmFOVjVQOGJ3N1JWUGhLOGQwYlJ1RklGR09FOHMwTTZYOUpxWDN4S0MvL1lSbVVoeDlybnU3ZWlwM
Gh5ZitPaUZiVGR2SDY2NTB2LzQ3aVdKcDNZeFlUV0QyMHBNbVRJMUpwWUEwYjByWVFQRkR0RU93d0JxYktxanRJc3ZYVFJzeXJhQkxvbnFOeHN5dHpEWHEra0JsMXp3WGUvSE5QcUVQblczdnNxaFhZcDVGM3dkWThkKzNCOTRMZlpOdUd4a0p3VDNzdVR0OGY5VHRBSlI4VytBUmtzT2M4eDBVaVNsVG5BNHFHOTBLMTR5dkVoVHcvd2drZjFXV01RT3dpZDNpakFYbUV4MU5MbVZvYUxYb3p4VExkTjN6YnJ6VEJIRXc3R2J3ZEdrdU5pMlhZOW16YUgwaWtGRm51VUxjMHUwc0pycEdGdzlaK0VlUk44RzNVUVZ5MjhtS2g3ZFBwWU5KbzhyajIxZFFaK2JaeUtTUHZablU3REkyakdJRE5US1g2ZkVyVWFINGlOTzN4cUU2Vk90L2d4T3BMNE5VNUhLV0Q0bG93VzcwdUJjVEVQRmhwaThpYUovdTB6YzUvTEhvdVBjMzByc1RLZFc5cmJLL2NWaHNQUHErZzA5WHZpZ0QweTJvN2tOc1pVL25tRXFiSzBKOTBrazhCR3I5cXRSczY4bUJnSURtUHVwUkhwWjM4eXNnU2VZN3V0VlVaSG5tQ0dzTzZ2NDJ6OTVOK05Pb3RCTEVZbFd1ZEdzYnowQWc4VkRDSlY5ak95QW95MDZyL1AyUHBsOFhjdmJza2d2T1BMMWdDNnVYbVJJS1lmOEw4UDJCNXVjN0haK0dtUHNOWXRLS2VKRDFFUHovdCt2NlBIbXNVb3dsSDhSd3FMRHdtMUF4dlNLQTR3UXBlQ0dQd3A5YXRYS0lWMS84NUZzRWMzajVzNjd6VlRybThrVEpydXV2MDZEdFVRZDNMOFdwTkV4cWhQait6RUp6U3RxSG04ckhNMVhNQUVxdVozc0xycTVqLzFSNlpqS0dOdFJCbjhwOE5ERGtrWm0vWTV5TXlJNX
JJS3U5bnA3bXdaaEVpeWVHeHdxblV3VVMvUzVDRjNnMHVidnd4eVVnalVvd1ZvTkNqYktBbkdtT2VCSW5abkh0eGdIVUhVOUVlTFdyd2pRc3JtUmpJV0R2RkZQa3l6SzJDL20yaitubmNxc2E1OGRLVXZxcGR1VTRJYnNPQng3UGpXdXRBNmY5bXd6YWxyRU1NK0lGR3VPdk9HMC93eUdzQjZLREV6bldjUC83NkQ4angzaHZFSlAzN3REbFgreGM4Qno5TXdKdkd6VG4xbTdCb2xoR0lzSXlCTys1ZXpXa3RDWVVIUURGVE9wbXA0MDlOWHp6ZUNTUGY1U2NDWG5YYjRPd01ULy9VM1JFUnRRbGMrNmU2WG1JRjhoRkJVc0taUUJsS2ppSDkwZHlzYWlsNmN2V3UyQW55Q3QxbWxXcHFLc0MzU2RTRVZDTG1qRjlUQUFUMEtFSGdZQjg3RjZtZUpTTysvOXkyZkRuYVVvUUlUVzdubnVuSCtkT3dWSGZMU0wyL2N5YTltNlQzR29TSVNMbGJPMVRzalhKclVkZW55OTcvM2tkNmhFQlphdGY1U3NETFQ3SjNsQUVJNDROeXJ0NkIxQWdod2JNdkpqd1JNTXRNdUJLc3ltUytKVzc4UFNEWXQ4MG9waDJQTTc1N0tBNCtUMTAvYnZaQkE5Vk1OdVpqNVV3NXRWMnFIS3dwS0t6ZVVETUFiQlBRaGpYcXlQZzFKa09rd2RQMUpnOHRITjJTelBZQTlmT1htV0pBZGJDS2tMb0F4ZTV6cDZBUzYzS3FXMmFmSUt6SHJ3RTJmS1VtamppeURvMnNuMkJHbWtBaTRzbnpiVzc2SUQvSVgwd044aDBaQ2VRc29vKzdtb1RCMEJxSnBkS1MycXlsUktoc3BSTC9henVQdmxaK1pwckJxdXpJdEZkNFVLMkpzQkp6VXcwZkpxcTV1bk9PZENzVWM3SUU3QTNmZ1NmZ3NBd1R3WFZJMEV
oME5ySWZpMkFKV1Z2VFpEMys2eFZ3dS96WWhuVjc0VXkvMFE4Mi8yQWtpSGpFRjNJVGNLWHdTNTB6bWtLakxjZDJqa2h5TUFYMWRoQ0wwZElFMUJoN0RNamVvNC9YbjBqSlpPL3Rrbi9xZmYzc3RNb1BYVG9KTnBIU1RjR2ZheGtaMzJYNCt3Q0xPc0VBRWxlMVZSY0kwUkZyOFhHTSsxWU9BTjBodFdGcFMxaG9kSi9OczJqL1FnUVNEemNpQ1FZeUFDd3lFRWZDZjZybnR0VmJyTlJQZWlmSHhBM3B2UnZ5ZGRhNDE5cXl0ZXI0akJ3cmw3ZUpuVnJ2VEprR2VhU2FRbDdXWk5SQXBscXRnNnZPYmpiMHZDRWlFaFhKbmNzQUhxcXp5QTRGeWFUVGQ2R0FySU9adUNxRWVoWk51T01lOVlrMVpya0VkR3pIalJESWk3Q1BKQk12NEZ4ZHI3bnJvN0I1WEhKb0ZMNE1DSUtOWWU2aWZiTUtYOU5uN1FWdnphUmY2UXlaSW1BWENQZndvU1BkN2x6NXl3UDJLSUIyaGhFMWt5eVZ5YVc5T0praWpUY3dvUnZrSXhIU0RqMXFqeGxueXh0QzhVZ1pNWmlwcGgzQXJpcjRiekIzUDhIbGIzejZ0OW51KzZMemNiN2ZObVo0UHluaU50Vk9OQ0lHbEh4dTBSY3hQK3cwUXNsM1BtTzJLaHBpc2RIanhvSUJ1YVY1NXdoTlFFNmdNNFBrT0xINDc4Rzg4bUxkd2s2RFpkWVl4L2d6RWE3b3ZIL0pReFp2TzRLdFVTNmZjZHJxV2thTFg1cEhkNkdneFBGZ2NFc2Nad1ZqM2hCS0xFQmE5L0dodERINEhzRnNRbmpPZnNDQkNzN0tjRitmTi9oSUdUeHFqTVlKVHJRYmNtdWF5dk9xR3RQMDFPcXltR24rVm5FSVkzKytQcm95SFN3K0Q0b0JIVG1maFNXRmJLZCtuTlVFS3BhRVIx
NkdCU256WktQRVRVSmdRWEw5QWJRQ3RXVjFHb0UzRWNnMDZYaVd2aHFHakpGNldtdEU4dHY4Q25rZmxMNm91TDRvNldpbmx2WnNEdkZrS0R6TDkwUTNsWC9NanBtRTFpWU9uYzdISXdEVGwraFRRcHdsYXJiTDVUNGNkZTg1akNwYU0xU3p1TStiQU5zMHlXVDA0ZXJUVFc2cnhlbXFDTHAra202TVVMTlZOcE1CazBiQjJpRU82UlRtc3VpRlhDUU1xdU5xZjdkWXUwTFFCZzQ0MkJzU1pBV1ZrWEVZblduOURLdTRSby8veEFsb2h5VHozWlZmSkhuWVBSdDloSUErRHVUL3c4T2ZzTURIWnlCelUvL0JEa1NiNkxjMHdraVA3QlhIdjBoNVdud2dNWUxlZDBPalR5UWI2aGxpVnQ5b0FjaDRFVy9EZUlBdkpaQ1BYVm1pUFFYTGVsOVJIRko2bXFiYVo0TCtaZG1ONmQwcFZNZ1FveXhmQTR3dEwwYVpiNnFZYkhibjJMd2VBQVZwL3M2TzVlMVExdnZpZDRTWHo0a2l3RW1LSStIeXZEQ1pnekpQQVN5Z1gvWDJFWEZ0NGV3SjVmUFQyVXZmWnhQWlpqMFZGSFpyUFQwWVd2VE16bjUva3hoT09oM2drVGdDSmNwNWVsZnp4cEFPNFl1a0NoNHJXdVNndDRqVUJyaWNYbFdWdWo5U3JSZVhUalNHTktLK202NWovUDllNHRHT0RkMk9BbjNKTVQ3Q3FuaDhreTZpZjVjbmpVMmU3UDhTZnBONGwxWEFiZEZEcGk5bVJYamEyTzR1RWFHNGNvNW4xcWNDT3ZNMWYyblFBY1ZGNUFoSXhueS96TWhmU2l2RXdOQ0Zyd2tBWDRyQVE0WldUNldFakFyUG5jb1Y4Z1VRclhxQVA4NDJmK1lNWWI5RHFncmFicEg1a3ZuMnQzcWRldGJHODJ0QWlTamhPcUxNYW9iU2F4cXdWa
1lUOHRTMW9rUUt2MWZoZ2t6elpEOE5IQnVQQzdNVHdXS0VCS2tDRUUzRWRFMXhNQURLd1B1M3NSaGpSaExXZyszZ2srejJtdlU4cTBhTlc0Y3hObUdoekx4eEY0Q3NFNStMQ1cwOWFpUVJOM1VvWmg1aktBZzBiMlh3WHBLS3pycUVTY1BYdnI0L1dWUTMyMm5qRWRvQVdXR0t2WnBKMlRlREo0eDdiT21LVElFc2RHWU1UZzFVaEU2eFFQcnhqS3dWeGFJNVJyaVE4a0xpaGgwa0t0WHQvYTVsSDhzUjVwR0ZISGZ3dlNVb3liQTB1eUVDNnNRVitPbTVReUZmRmpqZHFCOGNpOGxQS1hLTHFCTHJ6bjNmUkh3TmQwbzFiRTg0aGllTkx5UlhZVmhrRCtFNEpGaVd3ZWt3U3VWM3BjQk9ybnRVU3RoWmx6M3hIUURUVGNJNWliOFJyQ2swZEZ6YTgvQmw3VUdtWlUwSXZ2UmdvVXF2TXNHT2dMY3pGWmRpZnJ5aGNiUTY4a2ZzZ3lCMHppdC9MN1BSV3V4RkdYdDFoTVZSVUZ3WXBJS04zVkI3cXVKZlgwamZsU1JaRndMaXdlK3VhYndmTVZ6c2doajUvOXZNNzcwK0JaMGtJcE45NzBTMG5BbHl6R0h0aW1nTUl1RXFhbUt5QTNTQlI1aHZIYmRyNENnTHFUbXIzbFFnWmpnSkNvN1FXYUJWTXdCR0RpdzVOVVhUUnBycWc4U3h2eDlnNWZwbXMrL0o2QjFEelNTM3ZRZzgxdHFRU1ZDWVJpc0Y3M2VqZlFuZk4zcUszd3RJRDkxQnRISmFvMEFaUUdKVFpKOXVsZ0kzV3hzdWR4ejB0VHVpNlJlSWpmSWsxekZRdFpwRExGMnB3NGpTQVdQTlJqNDBYdVIrRzFUVlI3OVFiME9FYkw4RDFoTU5zWmo3MTZNbUhSOTlKaUxNdm1FWHV5a1V4VGhGYjRMTzZVbW1kU3UwTl
BpMXQ2NmNkYURpQWhMaVBFTGdUNkZsenA2T2FGSGNSNjRncEtyemtTNDJONEhJeFpNa2R6M0FsYkRhK2pOWHZPR1l3UWl5K0xNNENZWGtrTWtHR3ZTWis5R2xWQ0l5RXBJaXIzbEQ3bmdzZGk4emxGWDYvekNaczlQSUtwZFZlSGJGZi9GS20wV3AreHI0Ykd0R0RrVHR2Nk1Manh2YU8zanFHaUFWeERKVWFkTVBlS2VHSm5uempTdnpKbGdOVHV3c3grRnF5L2dPMkwxMGowWmhDWi92dE9NelVjNjl3cGhKZm9FNzU3V3lOeFJOcThJc0Y1Tkg5Y0x0b3UvbUNxOTc3YnZPSkRrSURCN3lKWEJ6YUhVQkJuSXJra1Qyemg3bGJmUm5SREJUSFZraVZMazVESUxqeC9XL1BSZEZpUUM2SzRmZGx4Y29JbzlMcnM4ZFVWZkt2TTNNYnJ6c1hGT3ZtVVh0K3NsZldvd3UyTC9ndG9mRFhvTUJZZnlEcWIvWlRaRWZ0MC83blliRm1relBEUlZacU5SR0F3YWZVNTU1UjB2SWtNbGR2VjdKUzhNT1BNYWlXQVBpelNLRG4yRzNvcys1MzRFQytaOGZnWmFPVWpZL0xLME9vME9RMmhvNUV6MGNMYWpwUjFINk9FNEhvUm1ydjQzZkFjdGpYc0hYdi81RXg3emdrWk1NZXZhTFNEdjZtcjFGcDk4QXR4L296VTFGVDBoMDUxcVcwR0g2VWpRRXk5aExSZDBBMnFkUTRMZXpReDNvbDFTblhsamt2MG4zTXFlaFozOC94bzZhdHFDdkJtQkc3amlUdXd6YnlVUngzRm1TM0NCNllOYnFON3hPYVRZRnlkOEZDL01nY0xGQmMwS3F4MXllQ2VUd1hucldQb0dvdllVQlYxYjA1cWtIa1d5V0RUaCsveXJFNzF0RjNxbUQvd3F6cUJyNE04NERtWWVuQkdFOWxtb3FIZEMyWnRpK09
KVFZKcmlHZWxQQ3RjZnZRaUlQcHdDZ3BFNmg1ekZhRndLajRuZGtBUkRpTC95L1EwWTZxNU5rM1g5RURlTmdjY1pIcFdmOUpKQ3M2a29wdXRtYjdDczIrbVJYdER1S09DaGY5UVUyN3Bmb1NJaklYK3NGdHY1c0hhSms2aHBZMlpzUUhzaTBYbFowc3FMTnQ5ayszdTVnYnBSU1JCczlHaC9BaVY0dkNyYTRkOTh5U0dCdzRSR1FhSStpQ29RaG9YK3lxc3VrYkx6bXJUU3FXMVRXaXJReUlHZ1Q5VnFERE1mUzAxeGdQSlNFSTlIWlp6TGlFVXVGMm1CMi81Y2dqaEFUaWQrdGV1UVB4aldhN2NSc2t5YUhuTENjQURVUU9ESUFPVjJDWXROcnAwY29ZL091S3ZzaXlJT0lacVJ5dE1PMGVNZ1ZJWTBzWmdxeVEycXlubUx0NDBmWmd3SFVyV245Zm9TYTNtMkVRTy9uOS8yU2NuelJWdVZpVnNjM0tCSElQL3AzNlJlSWowTGlNcCtPQ0p3SHlLVW1UeDRBU1V0dXVhWktlRHl1QjlxcXJuUEFNWUVCeElsTGFvdXMzV1pHakIrcW9ub3QvNmk1UE40bUZjbHFDcUxhMGJHbks4ZnJxYy9yd2tuVGV0YUE0c2tXTEw1L21qNEd5MitFQkh3a0x3UXd2K0FKdmZTOXYvNDl1LzY0N1ZFYW15UzdZQ2ZEUHNBQUREQ1FFcWJNQ1h2Ui8xVmEwWi9YUWhoNlkrZUt0MEVpRDdpNmRZODJtQkFoNEJMRmRVV3VGZHVrdUVwaGZ2WXB3N2loVjNxTjB1NFM1NTRXU0dUa0ZsdlpYNG1hbkF4a1g2ekQxS0NWaEFMdEJnSDgzdkhxam9uc0lwOFMydHgwZ0tiYzEreHVaRVppVWlNVVlVdTByQVFsRFcrZHJoN3lVRHZqekFHSnBmTk01eThaMW45em93VzZ5YW5VZWFBNjhSZDd5
TUxobFd0NVh6bGhBTVZDZmZYZ0pFelR1YzJEbENVOXNMLzVTVkRaV2N4R1E5aFM1cnJtK2VyQ1Jxd2FJQk1DNUtza0RCZHdOWmh2Q0FCdEpqS2Vla1FUSjd5MFp4SGNhbGVCaU1rbkYwZVRDZzFvUEhPUVZLQ3V3NE94cHRZUS9xS1V0TEFIWFZ2OTlLMGRWcWZDMmpVQWlHQmVYa0t3aGRYTGtJYlZxU0EyZmxraXBBeEhYNnByUEExQjF3eTVab3hPUFg4RVExOW92eXpBbFg1dHU0OXEwWC9PSExFN1o5T1cxenltRXR6ZFpyNXJZbWtFcVdtcHVSNU5jeHFwTWlZam93dUNXZWhubzIyeG5JM09IQ0xDZkFKaHRrcklhL1hPc0tZRFpCRzFJMGJsN2taR2R5cEtUQlhYdXl6WE5WUlU5L005ejhaVytwdG1oZ2NOUzBJS2VaaSs5bFl4cWRlS3lnbldTTTV3czdSYUpmNlRRZTNSaWJZUjFvNkhwRzB2VHpiTEtQZTZnRjJGODdiWlBJei9mcTNLWnZiM3UrSnhZcCtJVjBtQi9VN29YelhRRk1RK3VmWllpNzUxbkx6WlVxRE1ybU53TFJPVUFNUk8rVnJtblkwSVB1cFBVMXc0b0hBb1dnVGRnTk5pNk1uTFQ4V0pmUlhjT0pKMk1lbUc2K2ZNeHNZUU52UVJwa1RGY05vaFV6Y3ZjcHJ3NUV3WEVZQTJzbzczL2MvY3RIRGcreU05YlF4REppUlltRnFydkhYb29hS1JyekxnUjZLVWdoM3ltaWxaQ0lSSm9KbTE3aEtHM1pxTTE0Lzl5OUc5OE9BZjNkVTlqMDk3aUNlaEc3a2VxYXRJQ2hFWmJqbmQ4Y00rS3djN2FtVWp2ekQzQmNvMHl3MDJxT054OWF3OGhSblZiWDZhdkRJbGhySHZ6SU44MzFvUjljRHBwMG1DUEJXZFVDQlNqVGJ1RkZqRC90WElSbGxlT
2JraFFKSUdSNlE2U1MxcXkzT29WT1VheFl6THY0U2s3dndrQUMwUitGREVIeVFZbFVhbVVkTWcyUmdwRUdhSVd1V3IxaGNnRm10QmREV2g3ZFBuWTF0U3VKOC95MXp4NkRvN2ZJYmNFenBBK2E0ODNtRG5vemdld3VmaFdqVCsvUS85WlEreFQ5UWJBT1pQSXhHV3VhSXVrVk8zSWxvZDhJM1NGZFJCTHY5ZXBDNzFLeXpSdVlpMktkOHJ5NVNINit1WnMxUHlZUlpRakdDK3Q4VzRtSE82Z1lFRWVXSkJ1UWhnSHdmV2xhZXlWb3hac0NBQVZKRUllT3hPZDZtNW45OHRCUDdHTmgxT1M0eDRCS2FVN1A0UVQzNVVIZW5meE84WWFQUThmbXlobUJhSVJVZklBTVN2ZTJZRFp5SWNNTTkrN0tNSVVabzJ0eXRvYzdCOGVvZzBNaUkrVkpFdFg0c29FRjFSWkhQZVV3NWlCTjI4OTh2MmVTcGNnVUJhWHFzOUN5VlZtTVJQMEtLUDJ1REt4MUdJcUhjS0ZCOXVQVWRkQS9vT3dNa0tVUWsraFZVVDVPbEVMdjd1a0FBUEE0eE4rZkczVmYxeUVKV0FiVGx5dWtGcThjNXBTRkY1cXVHbUgwVmVpQzVvVEFka1VES3Z6WGhWWUs5c3BRYjNVZ1Z0Qld6N1ZScnlOUVVST3BIZU5xeDlhZHA4YWREWCtRSHJUKytYblN4VVI3SVdGanlNTkZJRWlMWmkxdks1UVVrZlRDUU9qdjh2SHdiUi9MRHF3Z3M5bXdsT3pPY0RLdVBVK0dTb2lnVFdRejRWN0N2SHRaVDI3WUdKVG44RFFFM3IzdjB4aWxvODJ2U3VXSDg0WEU3VEJsTUpFb2R5eDNDRngwVUVkc3VhRHBPSEV3UjZYNlUyU0xseERYSXVZeEhlNXh2NjI4bXU0bDRMSnBYUjhkYmljTEZKQW55Q0FVeDJLb2dDamt1cm
U4bXNUZktDbG8wamFlN1hNR05PSk15b0ZYbVlHZUh2eGhNUGMzTEtYLy9VY1p0c3p3dFJrQmNFdURXQysvQWNWZVBOSHVOWWI5MEpIcnRucGg1ZDlhL1lpTkpzY1N3QTFwUVZrdW1TQWtPQWdLdWRzcnl3c0N3Zkg1anNydVpHUTJDd1hKRXQzUU4wU2NLUlVnT1NCQ3FYa1BqZDVSVzJuOFZpamt4anovbWptakhCNmk0eHM5NEU2Nzk5STAyaldYNVd3UDZhTFRaTGt5TjhxNDUxT0RmeUZVZEY5WWsyZXQ5VUpsV1NzRFJMSWVCd0ZyQkEyZTdyRWsybWFLVUNCRW5PUWM2bUhVMXQvZ3gzK1VXVVFXbkpMZVUxbWUvbkFEdy96UGUwd3d0Vm9BaERZdDBoR1hQblJydjFoUHRGS01CeWtqckg3a0J5U0R3WDlQMi9XZkNkQlE5K1J4cHRsR2hvRmdpMUs0NVlOeEpEd05wTmd5MDV2WXUzVUtrMkpRYVNGUzcwK0Y1NzluRE5RenZpK0pPRlRsdDFmWDJGNXk5NEV2NHZobWRQSmRVOFVVRjU2Ymx0emxKREVFdmsySlFrOTM0aHpwTXJGZ1d3ZHUxUkxxSEhCN2h2T2hnaHNqV0ZGY01zNjZaRUtWcVhKUytxWWNVMHk0akwySVQrNlF2N2pvQ3BWbUdzUWtGY1FyblhxOUJiOTdaUS96UCtwaldmWTU0UmNRVlMydUU1YURObVVyVkdLK3E0d0xRcUhuRVViT2puSHFFeGlacUtxOVdRaUtUK2c3QS96bVlIQ2k0YzFTejRNVWhHb0t6U2l4aXoxYUNJUEJXdy9vczR2cUVqbXgzOGx6YnV0OWNWbElzeGNkTUpUTERRK3ZOZ0YyY1ZRaVcxRTQ0d3lWcnI3TUFaOE9KRVpFSzlEZWt5MzJQUkFuSkRUVXVqdGFscmJ0T2VOczhyS09uTjcvNFRqUEwvZmRlbEI4bjA
4WXdSNXdmbU42VGpGWUhRSDFjbUZmK1AvNUxVMTI4Q1pEYjNQUStxMlFJazV3aE40eGwvcy9lb29pallmeWtDcm5aSEhHWkluTGhoU2pWbk5ISWdTL203VWV0NlhBTDdvZUl5UFRLeHVnbDJzRWtUQzNnZ0tjTnFZR0E5U3ZlYVlaQ00vWHNQRUtQbWs3QmlRNmprWFBKaE1yREd4Vkc0SW9aSDgrYjBrUWJYR2l0Mkw0L3hZdHh1bTVzcFNPSjdsTDltVFpRNnBxM2JOaTEwZU1mZ0ZWaDc3NU5JRlc0SEp3U1FtaTU0bk11blZTQjhxdjZKc0w3SGlsZ2N0ZHFSNThTTjVad1lCa2dOR1hzYjA1QXJWemVXbHh1Y21BSHNPT3dyczFnMzh6bTRZN2ZPZmducmFhV1kxanZZOFlEODZQZThkZzR4cE5paTg3UnNDZk5WK2NKVmMraktFdnpuZVY1Zzd0RmlxZCtsZHp4STlKemdSS2t0WUV6RUpRSVU5M2UvclJaN1lrVkZtNVV1cjVhMWYzcG83T0VtYkJUc2MrQ1FaOGNnYmIvbUphRXJoa3NyL3JURjBNcjNxeDl5SlJWSEJ6YWNWd0dScEFRaURPdnJkWU4xQXBVOTRyR1lrVFVzdWs1YjE1Wll2QVZxRlRzVlVMaS9HY29mbEljMm01Z2RFTFZOblRmdXY1Zlk5S1NlWHFoUU80S0pOYVZmbHAwQ0VKYWFFZFNLUXJJNXRaT2w1RkE4VXZlNmxTWVd5TVk0REl4a1RiT1JoWHVBdzR6b1RTMjgrN3d2TXhydVBkZnlKbUJCTkhQdCtEYmdKNHovcHJZWUhpTmFMTXNZamtQZE44ajNKZDczQXJFZk92Um52MzYxSVVVMFg1RDc1dlRSdlpkbzMzWERzanRlOU4weUo3K2lIQnF1a1FJY2pIVW9ic2RQN0hOajBVYWNSMHIvTmRlVTlGNFBNc1VLY2t6Tk4rZGhyMVI2
d1J2R1VZb1pDRWJaWlJMWEt4QnA3SElUNEVQUktHakIvdW1xTFhhMXl6RWx2QW1WQUJhMDFZN3dGdk4wM2Ywb25FbUhTM2w1d1paRmV6cjVibnN5T01XVGxhMU5kaW1ZNXNVeE15VFliZmc4dzB2cXNEc28zWFAxYndLdzZ3M3VIRGQ1UHBSWnVDSnR0eWk0ZzJGeWI0Ymg1UU42ZkdORTI2ekRGN1Y4QmJwZXJLNkFKQ0xTWm5kaDZMMTlPUTBram4xUGpEMGk4c1BZcGFXOWxVeVJkZElPKzRWQS9LemxPUzJ4M2s5VUtUdElsTTBUSVdtZXFIS0dYUVpocGpvVGI2VlNKN203cjZaaVlQMnVsQVVvZmVWL0o2eCtzckxEQXkyQ2ZFNnFrREZ1OU9NWDBBSXVnN3loQUtOMDRyT3hVNk5tcGtjOUZ4bXUvVS9vR3hHdmIzeFVFTDYwdE1sSE9EaWtqY1I5RDJrKzRwbEc1WnV0d0FIY2kwRU02WHRrVEhQOU5QMlRTR1VFN1E5SGYvU0VEc2V0a25hZXhvWmhDczJLWDFMeU5JS0U0N2pkMkR3MTUreDRRVXV0VUFTbzU5Q1lHMVFBeW9BVVhrV3dtbXkzTGdTUWp5T3ZLV25qaE8veWpPd0FyWGd0NFBrSVVnZDQ1N05ReFpMbU41K0J4NVJoQ0FHdkUxYmxOZjlMek9keGJiaG5VZ2Z1RDM5MXVSRkhjS2RYREY3ZmVqb3gveThtaWZJcTRWVzQyajBHQnFOQUtkK0prMnJCMW9hOTRiT2hxcVVzanhqWnlRaGRXTzhNblR6T2tOaGVpZXU2blYxcW5yZ3JHU2huWTNJMlczb29GNFNnczRjZ3drZ2h2dHpFa0xUbU5OUm83RTdudVRuMkxJcmlGSnlvTmZQdUp0aWN0S0JtNzRGZytkWVBTMlIzTzNmOWxBZWxiVWZjbzZGNU9EL3hkS1VuRTh0V3FOMExVcDlWQUptW
VZYZFVDaGJ4MjM4MWtDaStLNDJoRzUydFNQYU1hb1dTb0xQY2Zrb24rc1pYdjdEdEtwZi9HTzdhcUMza1pzRGpva29haHJGZGJWSlNTZWhrNGp5K3RzRHplQnJKSjBrMVZrUnJHN1NoVHZjTmd1cjVucVRUTEE5dlJMQmJNTTlhNlI1NEZ0Z1pQOWFKMU1aMEdCcUVpMnF6Ui8yd2tYQlhwcFhZdi9TcU1RV1dhbTVsSHBMVktxaDN4ZHRjNFdmck9mYldsbU1PNXA5Z0JUSFp1YUcxVGFkZXFRVVpKQmZBS01ENFdSR0NsMDFaeDRTVzE0YzZrdnFKdXExL080N215L3RsVHlLWndpYlBkQTNRMVVGd0I3R2Z4anEwaDN2ckxFbUNrS3Vsc0VBUkN6UnZNVjJSVnBVbFpUV240Y1Boc0hjcTNROElHSUYyKy9nOENFSU4vMU8xcVMvMkpXcXlDNmtIb0w4Y2R2R0VHbmkxSTNDTk1JcXhxaHhJL1V0R3REc2VwYmwrSHI0elh4MzZna3BCbXBoT2xkTFVYTHAzVEtibVVZRWJSWHcvZmRmeFQ3WDdZUFhHQ0hHVG1uTzk4WkxDOTA2Zmkvekd2b04rNlpzbCs3MkpWMGxJWEo0V3dZdWxFUmZHbkFDWGNoa0Yzei9ITWR3elcwTUFFaXptQmwvREo2ZUoyU01PSG1Uc25YbElGRDRlcFRrYnFBQ0dpZ2I1UExFdHdQRVRjYkNRckM5YUtTU1FnSTdEZXd1aWlxM2J0Y0RUWkIzeEI5WWxlbmhpU0FXNjIwcmwzc2ZjY3d3eGFSOHBDV2Rzd0x3dmFxcDhjM01PV3RCc2xPcmVTSkNEcWgvdzBYbm1WMFJVWFpNM2JvUmkwVXhsaHVUeDFlM1NTd09pbTlOczNYV3NoTmI4Lzc3VkhnUWhRVFlSUU1NRllYaWRmMElCKzBtSUpocWNoQTlUeUY3dGRjSDhrUUJUSHNEWS96bF
pqK3EwNlFMd0JkbTkxc3IyK3VzZmxlaXB3WUMrcmdiNHROVnA3VU5rYkVqTnR6ZWZsTi9VRTlkbHZtT2x6V1dtZkh2NGVkUGkzMmJmeUNRS1d6SGJVVEV3NU0yVFpsZnpNaTFWUjVsaDBxQ1lqaDNITUlmL2MwcHBKd2I1b1lFTnBBenlxbnlmdmlTV3lBYzc2L1l1VWwvb2FVaysrYzBZc2d1TGo5ZGFQdVVvemhoZ3VjSytQRGlNckI0ODU1Mk83VWg0aHRwNmZ3S2dJa1JCTVFIUTd6MmV5WXovV1AwQm9ZZVhjOGc3aUprclhFNzA1bFo1bXhGU0poT3E1WlNleVJSb21pUm41K3VRemM5ZFdWQjBYb2JURXdOc0VRM2FIZ25JY29BczY2UGplUT09PC94ZW5jOkNpcGhlclZhbHVlPjwveGVuYzpDaXBoZXJEYXRhPjwveGVuYzpFbmNyeXB0ZWREYXRhPjwvc2FtbDI6RW5jcnlwdGVkQXNzZXJ0aW9uPjwvc2FtbDJwOlJlc3BvbnNlPg==
\ No newline at end of file
+http://myapp.com/?RelayState=%7b%22idp%22%3a+%22testshib%22%2c+%22next%22%3a+%22%2ffoo%2fbar%22%7d&SAMLResponse=PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c2FtbDJwOlJlc3BvbnNlIHhtbG5zOnNhbWwycD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOnByb3RvY29sIiBEZXN0aW5hdGlvbj0iaHR0cDovL215YXBwLmNvbSIgSUQ9Il8yNTk2NTFlOTY3ZGIwOGZjYTQ4MjdkODI3YWY1M2RkMCIgSW5SZXNwb25zZVRvPSJURVNUX0lEIiBJc3N1ZUluc3RhbnQ9IjIwMTUtMDUtMDlUMDM6NTc6NDMuNzkyWiIgVmVyc2lvbj0iMi4wIj48c2FtbDI6SXNzdWVyIHhtbG5zOnNhbWwyPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YXNzZXJ0aW9uIiBGb3JtYXQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpuYW1laWQtZm9ybWF0OmVudGl0eSI%2BaHR0cHM6Ly9pZHAudGVzdHNoaWIub3JnL2lkcC9zaGliYm9sZXRoPC9zYW1sMjpJc3N1ZXI%2BPHNhbWwycDpTdGF0dXM%2BPHNhbWwycDpTdGF0dXNDb2RlIFZhbHVlPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6c3RhdHVzOlN1Y2Nlc3MiLz48L3NhbWwycDpTdGF0dXM%2BPHNhbWwyOkVuY3J5cHRlZEFzc2VydGlvbiB4bWxuczpzYW1sMj0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiI%2BPHhlbmM6RW5jcnlwdGVkRGF0YSB4bWxuczp4ZW5jPSJodHRwOi8vd3d3Lnc
zLm9yZy8yMDAxLzA0L3htbGVuYyMiIElkPSJfMGM0NzYzNzIyOWFkNmEzMTY1OGU0MDc2ZDNlYzBmNmQiIFR5cGU9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI0VsZW1lbnQiPjx4ZW5jOkVuY3J5cHRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNhZXMxMjgtY2JjIiB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiLz48ZHM6S2V5SW5mbyB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI%2BPHhlbmM6RW5jcnlwdGVkS2V5IElkPSJfYjZmNmU2YWZjMzYyNGI3NmM1N2JmOWZhODA5YzAzNmMiIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI%2BPHhlbmM6RW5jcnlwdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3JzYS1vYWVwLW1nZjFwIiB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSIgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiLz48L3hlbmM6RW5jcnlwdGlvbk1ldGhvZD48ZHM6S2V5SW5mbz48ZHM6WDUwOURhdGE%2BPGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlDc0RDQ0FobWdBd0lCQWdJSkFPN0J3ZGpEWm
NVV01BMEdDU3FHU0liM0RRRUJCUVVBTUVVeEN6QUpCZ05WQkFZVEFrTkJNUmt3CkZ3WURWUVFJRXhCQ2NtbDBhWE5vSUVOdmJIVnRZbWxoTVJzd0dRWURWUVFLRXhKd2VYUm9iMjR0YzI5amFXRnNMV0YxZEdnd0hoY04KTVRVd05UQTRNRGMxT0RRMldoY05NalV3TlRBM01EYzFPRFEyV2pCRk1Rc3dDUVlEVlFRR0V3SkRRVEVaTUJjR0ExVUVDQk1RUW5KcApkR2x6YUNCRGIyeDFiV0pwWVRFYk1Ca0dBMVVFQ2hNU2NIbDBhRzl1TFhOdlkybGhiQzFoZFhSb01JR2ZNQTBHQ1NxR1NJYjNEUUVCCkFRVUFBNEdOQURDQmlRS0JnUUNxM2cxQ2wrM3VSNXZDbk40SGJnalRnK20zbkhodGVFTXliKyt5Y1pZcmUyYnhVZnNzaEVSNngzM2wKMjN0SGNrUll3bTdNZEJicnAzTHJWb2lPQ2RQYmxUbWwxSWhFUFRDd0tNaEJLdnZXcVR2Z2ZjU1NuUnpBV2tMbFFZU3VzYXl5Wks0bgo5cWNZa1Y1TUZuaTFyYmp4K01yNWFPRW1iNXUzM2FtTUtMd1NUd0lEQVFBQm80R25NSUdrTUIwR0ExVWREZ1FXQkJSUmlCUjZ6UzY2CmZLVm9rcDB5SkhiZ3YzUlltakIxQmdOVkhTTUViakJzZ0JSUmlCUjZ6UzY2ZktWb2twMHlKSGJndjNSWW1xRkpwRWN3UlRFTE1Ba0cKQTFVRUJoTUNRMEV4R1RBWEJnTlZCQWdURUVKeWFYUnBjMmdnUTI5c2RXMWlhV0V4R3pBWkJnTlZCQW9URW5CNWRHaHZiaTF6YjJOcApZV3d0WVhWMGFJSUpBTzdCd2RqRFpjVVdNQXdHQTFVZEV3UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUZCUUFEZ1lFQUp3c01VM1lTCmF5YlZqdUo
4VVMwZlVobFBPbE00MFFGQ0dMNHZCM1RFYmIyNE1xOEhyalV3clUwSkZQR2xzOWEyT1l6TjJCM2UzNU5vck11eHMrZ3IKR3RyMnlQNkx2dVgrblY2QTkzd2I0b29HSG9HZkM3VkxseXhTU25zOTM3U1M1UjFwelE0Z1d6Wm1hMktHV0tJQ1dwaDV6UTBBUlZoTAo2Mzk2N21HTG1vST08L2RzOlg1MDlDZXJ0aWZpY2F0ZT48L2RzOlg1MDlEYXRhPjwvZHM6S2V5SW5mbz48eGVuYzpDaXBoZXJEYXRhIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI%2BPHhlbmM6Q2lwaGVyVmFsdWU%2BTElQdkVNVUVGeXhrVHowQ2N4QVA5TjV4Y3NYT2V4aVV4cXBvR2VIeVFMV0R5RVBBUDVnZ1daL3NLZ1ViL2xWSk92bCtuQXhSdVhXUlc5dGxSWWx3R2orRVhIOWhIbmdEY1BWMDNqSUJMQnFJbElBL1RmMGw4cVliOHFKRy9ZM0RTS2RQNkwvUURtYXBtTXpFM29YOEJxMW5Ea3YrUWh4cmQwMGVGK2ZMYVQ0PTwveGVuYzpDaXBoZXJWYWx1ZT48L3hlbmM6Q2lwaGVyRGF0YT48L3hlbmM6RW5jcnlwdGVkS2V5PjwvZHM6S2V5SW5mbz48eGVuYzpDaXBoZXJEYXRhIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI%2BPHhlbmM6Q2lwaGVyVmFsdWU%2BRVpUWDhHTkM0My9yWStTUVlBMXRudHlUTTVVNkN2dUNCaktsVEVlekZPRjBZZHhCWUdFQVVjYU8xNVNKOXBMemJ1L1h0WGxzTkVMZTdKdEx4RUpwYUxubWFENnIranNWczdLaTBLNHRTMGNBUERDWHV2R1FoMmFOVjVQOGJ3N1JW
UGhLOGQwYlJ1RklGR09FOHMwTTZYOUpxWDN4S0MvL1lSbVVoeDlybnU3ZWlwMGh5ZitPaUZiVGR2SDY2NTB2LzQ3aVdKcDNZeFlUV0QyMHBNbVRJMUpwWUEwYjByWVFQRkR0RU93d0JxYktxanRJc3ZYVFJzeXJhQkxvbnFOeHN5dHpEWHEra0JsMXp3WGUvSE5QcUVQblczdnNxaFhZcDVGM3dkWThkKzNCOTRMZlpOdUd4a0p3VDNzdVR0OGY5VHRBSlI4VytBUmtzT2M4eDBVaVNsVG5BNHFHOTBLMTR5dkVoVHcvd2drZjFXV01RT3dpZDNpakFYbUV4MU5MbVZvYUxYb3p4VExkTjN6YnJ6VEJIRXc3R2J3ZEdrdU5pMlhZOW16YUgwaWtGRm51VUxjMHUwc0pycEdGdzlaK0VlUk44RzNVUVZ5MjhtS2g3ZFBwWU5KbzhyajIxZFFaK2JaeUtTUHZablU3REkyakdJRE5US1g2ZkVyVWFINGlOTzN4cUU2Vk90L2d4T3BMNE5VNUhLV0Q0bG93VzcwdUJjVEVQRmhwaThpYUovdTB6YzUvTEhvdVBjMzByc1RLZFc5cmJLL2NWaHNQUHErZzA5WHZpZ0QweTJvN2tOc1pVL25tRXFiSzBKOTBrazhCR3I5cXRSczY4bUJnSURtUHVwUkhwWjM4eXNnU2VZN3V0VlVaSG5tQ0dzTzZ2NDJ6OTVOK05Pb3RCTEVZbFd1ZEdzYnowQWc4VkRDSlY5ak95QW95MDZyL1AyUHBsOFhjdmJza2d2T1BMMWdDNnVYbVJJS1lmOEw4UDJCNXVjN0haK0dtUHNOWXRLS2VKRDFFUHovdCt2NlBIbXNVb3dsSDhSd3FMRHdtMUF4dlNLQTR3UXBlQ0dQd3A5YXRYS0lWMS84NUZzRWMzajVzNjd6VlRybThrVEpydXV2MDZEdFVRZDNMOFdwTkV4cWhQait6RUp6U3RxSG04ckhNM
VhNQUVxdVozc0xycTVqLzFSNlpqS0dOdFJCbjhwOE5ERGtrWm0vWTV5TXlJNXJJS3U5bnA3bXdaaEVpeWVHeHdxblV3VVMvUzVDRjNnMHVidnd4eVVnalVvd1ZvTkNqYktBbkdtT2VCSW5abkh0eGdIVUhVOUVlTFdyd2pRc3JtUmpJV0R2RkZQa3l6SzJDL20yaitubmNxc2E1OGRLVXZxcGR1VTRJYnNPQng3UGpXdXRBNmY5bXd6YWxyRU1NK0lGR3VPdk9HMC93eUdzQjZLREV6bldjUC83NkQ4angzaHZFSlAzN3REbFgreGM4Qno5TXdKdkd6VG4xbTdCb2xoR0lzSXlCTys1ZXpXa3RDWVVIUURGVE9wbXA0MDlOWHp6ZUNTUGY1U2NDWG5YYjRPd01ULy9VM1JFUnRRbGMrNmU2WG1JRjhoRkJVc0taUUJsS2ppSDkwZHlzYWlsNmN2V3UyQW55Q3QxbWxXcHFLc0MzU2RTRVZDTG1qRjlUQUFUMEtFSGdZQjg3RjZtZUpTTysvOXkyZkRuYVVvUUlUVzdubnVuSCtkT3dWSGZMU0wyL2N5YTltNlQzR29TSVNMbGJPMVRzalhKclVkZW55OTcvM2tkNmhFQlphdGY1U3NETFQ3SjNsQUVJNDROeXJ0NkIxQWdod2JNdkpqd1JNTXRNdUJLc3ltUytKVzc4UFNEWXQ4MG9waDJQTTc1N0tBNCtUMTAvYnZaQkE5Vk1OdVpqNVV3NXRWMnFIS3dwS0t6ZVVETUFiQlBRaGpYcXlQZzFKa09rd2RQMUpnOHRITjJTelBZQTlmT1htV0pBZGJDS2tMb0F4ZTV6cDZBUzYzS3FXMmFmSUt6SHJ3RTJmS1VtamppeURvMnNuMkJHbWtBaTRzbnpiVzc2SUQvSVgwd044aDBaQ2VRc29vKzdtb1RCMEJxSnBkS1MycXlsUktoc3BSTC9henVQdmxaK1pwckJxdXpJdEZkNF
VLMkpzQkp6VXcwZkpxcTV1bk9PZENzVWM3SUU3QTNmZ1NmZ3NBd1R3WFZJMEVoME5ySWZpMkFKV1Z2VFpEMys2eFZ3dS96WWhuVjc0VXkvMFE4Mi8yQWtpSGpFRjNJVGNLWHdTNTB6bWtLakxjZDJqa2h5TUFYMWRoQ0wwZElFMUJoN0RNamVvNC9YbjBqSlpPL3Rrbi9xZmYzc3RNb1BYVG9KTnBIU1RjR2ZheGtaMzJYNCt3Q0xPc0VBRWxlMVZSY0kwUkZyOFhHTSsxWU9BTjBodFdGcFMxaG9kSi9OczJqL1FnUVNEemNpQ1FZeUFDd3lFRWZDZjZybnR0VmJyTlJQZWlmSHhBM3B2UnZ5ZGRhNDE5cXl0ZXI0akJ3cmw3ZUpuVnJ2VEprR2VhU2FRbDdXWk5SQXBscXRnNnZPYmpiMHZDRWlFaFhKbmNzQUhxcXp5QTRGeWFUVGQ2R0FySU9adUNxRWVoWk51T01lOVlrMVpya0VkR3pIalJESWk3Q1BKQk12NEZ4ZHI3bnJvN0I1WEhKb0ZMNE1DSUtOWWU2aWZiTUtYOU5uN1FWdnphUmY2UXlaSW1BWENQZndvU1BkN2x6NXl3UDJLSUIyaGhFMWt5eVZ5YVc5T0praWpUY3dvUnZrSXhIU0RqMXFqeGxueXh0QzhVZ1pNWmlwcGgzQXJpcjRiekIzUDhIbGIzejZ0OW51KzZMemNiN2ZObVo0UHluaU50Vk9OQ0lHbEh4dTBSY3hQK3cwUXNsM1BtTzJLaHBpc2RIanhvSUJ1YVY1NXdoTlFFNmdNNFBrT0xINDc4Rzg4bUxkd2s2RFpkWVl4L2d6RWE3b3ZIL0pReFp2TzRLdFVTNmZjZHJxV2thTFg1cEhkNkdneFBGZ2NFc2Nad1ZqM2hCS0xFQmE5L0dodERINEhzRnNRbmpPZnNDQkNzN0tjRitmTi9oSUdUeHFqTVlKVHJRYmNtdWF5dk9xR3RQMDFPcXl
tR24rVm5FSVkzKytQcm95SFN3K0Q0b0JIVG1maFNXRmJLZCtuTlVFS3BhRVIxNkdCU256WktQRVRVSmdRWEw5QWJRQ3RXVjFHb0UzRWNnMDZYaVd2aHFHakpGNldtdEU4dHY4Q25rZmxMNm91TDRvNldpbmx2WnNEdkZrS0R6TDkwUTNsWC9NanBtRTFpWU9uYzdISXdEVGwraFRRcHdsYXJiTDVUNGNkZTg1akNwYU0xU3p1TStiQU5zMHlXVDA0ZXJUVFc2cnhlbXFDTHAra202TVVMTlZOcE1CazBiQjJpRU82UlRtc3VpRlhDUU1xdU5xZjdkWXUwTFFCZzQ0MkJzU1pBV1ZrWEVZblduOURLdTRSby8veEFsb2h5VHozWlZmSkhuWVBSdDloSUErRHVUL3c4T2ZzTURIWnlCelUvL0JEa1NiNkxjMHdraVA3QlhIdjBoNVdud2dNWUxlZDBPalR5UWI2aGxpVnQ5b0FjaDRFVy9EZUlBdkpaQ1BYVm1pUFFYTGVsOVJIRko2bXFiYVo0TCtaZG1ONmQwcFZNZ1FveXhmQTR3dEwwYVpiNnFZYkhibjJMd2VBQVZwL3M2TzVlMVExdnZpZDRTWHo0a2l3RW1LSStIeXZEQ1pnekpQQVN5Z1gvWDJFWEZ0NGV3SjVmUFQyVXZmWnhQWlpqMFZGSFpyUFQwWVd2VE16bjUva3hoT09oM2drVGdDSmNwNWVsZnp4cEFPNFl1a0NoNHJXdVNndDRqVUJyaWNYbFdWdWo5U3JSZVhUalNHTktLK202NWovUDllNHRHT0RkMk9BbjNKTVQ3Q3FuaDhreTZpZjVjbmpVMmU3UDhTZnBONGwxWEFiZEZEcGk5bVJYamEyTzR1RWFHNGNvNW4xcWNDT3ZNMWYyblFBY1ZGNUFoSXhueS96TWhmU2l2RXdOQ0Zyd2tBWDRyQVE0WldUNldFakFyUG5jb1Y4Z1VRclhxQVA4NDJmK1lN
WWI5RHFncmFicEg1a3ZuMnQzcWRldGJHODJ0QWlTamhPcUxNYW9iU2F4cXdWa1lUOHRTMW9rUUt2MWZoZ2t6elpEOE5IQnVQQzdNVHdXS0VCS2tDRUUzRWRFMXhNQURLd1B1M3NSaGpSaExXZyszZ2srejJtdlU4cTBhTlc0Y3hObUdoekx4eEY0Q3NFNStMQ1cwOWFpUVJOM1VvWmg1aktBZzBiMlh3WHBLS3pycUVTY1BYdnI0L1dWUTMyMm5qRWRvQVdXR0t2WnBKMlRlREo0eDdiT21LVElFc2RHWU1UZzFVaEU2eFFQcnhqS3dWeGFJNVJyaVE4a0xpaGgwa0t0WHQvYTVsSDhzUjVwR0ZISGZ3dlNVb3liQTB1eUVDNnNRVitPbTVReUZmRmpqZHFCOGNpOGxQS1hLTHFCTHJ6bjNmUkh3TmQwbzFiRTg0aGllTkx5UlhZVmhrRCtFNEpGaVd3ZWt3U3VWM3BjQk9ybnRVU3RoWmx6M3hIUURUVGNJNWliOFJyQ2swZEZ6YTgvQmw3VUdtWlUwSXZ2UmdvVXF2TXNHT2dMY3pGWmRpZnJ5aGNiUTY4a2ZzZ3lCMHppdC9MN1BSV3V4RkdYdDFoTVZSVUZ3WXBJS04zVkI3cXVKZlgwamZsU1JaRndMaXdlK3VhYndmTVZ6c2doajUvOXZNNzcwK0JaMGtJcE45NzBTMG5BbHl6R0h0aW1nTUl1RXFhbUt5QTNTQlI1aHZIYmRyNENnTHFUbXIzbFFnWmpnSkNvN1FXYUJWTXdCR0RpdzVOVVhUUnBycWc4U3h2eDlnNWZwbXMrL0o2QjFEelNTM3ZRZzgxdHFRU1ZDWVJpc0Y3M2VqZlFuZk4zcUszd3RJRDkxQnRISmFvMEFaUUdKVFpKOXVsZ0kzV3hzdWR4ejB0VHVpNlJlSWpmSWsxekZRdFpwRExGMnB3NGpTQVdQTlJqNDBYdVIrRzFUVlI3OVFiME9FYkw4R
DFoTU5zWmo3MTZNbUhSOTlKaUxNdm1FWHV5a1V4VGhGYjRMTzZVbW1kU3UwTlBpMXQ2NmNkYURpQWhMaVBFTGdUNkZsenA2T2FGSGNSNjRncEtyemtTNDJONEhJeFpNa2R6M0FsYkRhK2pOWHZPR1l3UWl5K0xNNENZWGtrTWtHR3ZTWis5R2xWQ0l5RXBJaXIzbEQ3bmdzZGk4emxGWDYvekNaczlQSUtwZFZlSGJGZi9GS20wV3AreHI0Ykd0R0RrVHR2Nk1Manh2YU8zanFHaUFWeERKVWFkTVBlS2VHSm5uempTdnpKbGdOVHV3c3grRnF5L2dPMkwxMGowWmhDWi92dE9NelVjNjl3cGhKZm9FNzU3V3lOeFJOcThJc0Y1Tkg5Y0x0b3UvbUNxOTc3YnZPSkRrSURCN3lKWEJ6YUhVQkJuSXJra1Qyemg3bGJmUm5SREJUSFZraVZMazVESUxqeC9XL1BSZEZpUUM2SzRmZGx4Y29JbzlMcnM4ZFVWZkt2TTNNYnJ6c1hGT3ZtVVh0K3NsZldvd3UyTC9ndG9mRFhvTUJZZnlEcWIvWlRaRWZ0MC83blliRm1relBEUlZacU5SR0F3YWZVNTU1UjB2SWtNbGR2VjdKUzhNT1BNYWlXQVBpelNLRG4yRzNvcys1MzRFQytaOGZnWmFPVWpZL0xLME9vME9RMmhvNUV6MGNMYWpwUjFINk9FNEhvUm1ydjQzZkFjdGpYc0hYdi81RXg3emdrWk1NZXZhTFNEdjZtcjFGcDk4QXR4L296VTFGVDBoMDUxcVcwR0g2VWpRRXk5aExSZDBBMnFkUTRMZXpReDNvbDFTblhsamt2MG4zTXFlaFozOC94bzZhdHFDdkJtQkc3amlUdXd6YnlVUngzRm1TM0NCNllOYnFON3hPYVRZRnlkOEZDL01nY0xGQmMwS3F4MXllQ2VUd1hucldQb0dvdllVQlYxYjA1cWtIa1d5V0RUaC
sveXJFNzF0RjNxbUQvd3F6cUJyNE04NERtWWVuQkdFOWxtb3FIZEMyWnRpK09KVFZKcmlHZWxQQ3RjZnZRaUlQcHdDZ3BFNmg1ekZhRndLajRuZGtBUkRpTC95L1EwWTZxNU5rM1g5RURlTmdjY1pIcFdmOUpKQ3M2a29wdXRtYjdDczIrbVJYdER1S09DaGY5UVUyN3Bmb1NJaklYK3NGdHY1c0hhSms2aHBZMlpzUUhzaTBYbFowc3FMTnQ5ayszdTVnYnBSU1JCczlHaC9BaVY0dkNyYTRkOTh5U0dCdzRSR1FhSStpQ29RaG9YK3lxc3VrYkx6bXJUU3FXMVRXaXJReUlHZ1Q5VnFERE1mUzAxeGdQSlNFSTlIWlp6TGlFVXVGMm1CMi81Y2dqaEFUaWQrdGV1UVB4aldhN2NSc2t5YUhuTENjQURVUU9ESUFPVjJDWXROcnAwY29ZL091S3ZzaXlJT0lacVJ5dE1PMGVNZ1ZJWTBzWmdxeVEycXlubUx0NDBmWmd3SFVyV245Zm9TYTNtMkVRTy9uOS8yU2NuelJWdVZpVnNjM0tCSElQL3AzNlJlSWowTGlNcCtPQ0p3SHlLVW1UeDRBU1V0dXVhWktlRHl1QjlxcXJuUEFNWUVCeElsTGFvdXMzV1pHakIrcW9ub3QvNmk1UE40bUZjbHFDcUxhMGJHbks4ZnJxYy9yd2tuVGV0YUE0c2tXTEw1L21qNEd5MitFQkh3a0x3UXd2K0FKdmZTOXYvNDl1LzY0N1ZFYW15UzdZQ2ZEUHNBQUREQ1FFcWJNQ1h2Ui8xVmEwWi9YUWhoNlkrZUt0MEVpRDdpNmRZODJtQkFoNEJMRmRVV3VGZHVrdUVwaGZ2WXB3N2loVjNxTjB1NFM1NTRXU0dUa0ZsdlpYNG1hbkF4a1g2ekQxS0NWaEFMdEJnSDgzdkhxam9uc0lwOFMydHgwZ0tiYzEreHVaRVppVWlNVVlVdTByQVF
sRFcrZHJoN3lVRHZqekFHSnBmTk01eThaMW45em93VzZ5YW5VZWFBNjhSZDd5TUxobFd0NVh6bGhBTVZDZmZYZ0pFelR1YzJEbENVOXNMLzVTVkRaV2N4R1E5aFM1cnJtK2VyQ1Jxd2FJQk1DNUtza0RCZHdOWmh2Q0FCdEpqS2Vla1FUSjd5MFp4SGNhbGVCaU1rbkYwZVRDZzFvUEhPUVZLQ3V3NE94cHRZUS9xS1V0TEFIWFZ2OTlLMGRWcWZDMmpVQWlHQmVYa0t3aGRYTGtJYlZxU0EyZmxraXBBeEhYNnByUEExQjF3eTVab3hPUFg4RVExOW92eXpBbFg1dHU0OXEwWC9PSExFN1o5T1cxenltRXR6ZFpyNXJZbWtFcVdtcHVSNU5jeHFwTWlZam93dUNXZWhubzIyeG5JM09IQ0xDZkFKaHRrcklhL1hPc0tZRFpCRzFJMGJsN2taR2R5cEtUQlhYdXl6WE5WUlU5L005ejhaVytwdG1oZ2NOUzBJS2VaaSs5bFl4cWRlS3lnbldTTTV3czdSYUpmNlRRZTNSaWJZUjFvNkhwRzB2VHpiTEtQZTZnRjJGODdiWlBJei9mcTNLWnZiM3UrSnhZcCtJVjBtQi9VN29YelhRRk1RK3VmWllpNzUxbkx6WlVxRE1ybU53TFJPVUFNUk8rVnJtblkwSVB1cFBVMXc0b0hBb1dnVGRnTk5pNk1uTFQ4V0pmUlhjT0pKMk1lbUc2K2ZNeHNZUU52UVJwa1RGY05vaFV6Y3ZjcHJ3NUV3WEVZQTJzbzczL2MvY3RIRGcreU05YlF4REppUlltRnFydkhYb29hS1JyekxnUjZLVWdoM3ltaWxaQ0lSSm9KbTE3aEtHM1pxTTE0Lzl5OUc5OE9BZjNkVTlqMDk3aUNlaEc3a2VxYXRJQ2hFWmJqbmQ4Y00rS3djN2FtVWp2ekQzQmNvMHl3MDJxT054OWF3OGhSblZiWDZhdkRJ
bGhySHZ6SU44MzFvUjljRHBwMG1DUEJXZFVDQlNqVGJ1RkZqRC90WElSbGxlT2JraFFKSUdSNlE2U1MxcXkzT29WT1VheFl6THY0U2s3dndrQUMwUitGREVIeVFZbFVhbVVkTWcyUmdwRUdhSVd1V3IxaGNnRm10QmREV2g3ZFBuWTF0U3VKOC95MXp4NkRvN2ZJYmNFenBBK2E0ODNtRG5vemdld3VmaFdqVCsvUS85WlEreFQ5UWJBT1pQSXhHV3VhSXVrVk8zSWxvZDhJM1NGZFJCTHY5ZXBDNzFLeXpSdVlpMktkOHJ5NVNINit1WnMxUHlZUlpRakdDK3Q4VzRtSE82Z1lFRWVXSkJ1UWhnSHdmV2xhZXlWb3hac0NBQVZKRUllT3hPZDZtNW45OHRCUDdHTmgxT1M0eDRCS2FVN1A0UVQzNVVIZW5meE84WWFQUThmbXlobUJhSVJVZklBTVN2ZTJZRFp5SWNNTTkrN0tNSVVabzJ0eXRvYzdCOGVvZzBNaUkrVkpFdFg0c29FRjFSWkhQZVV3NWlCTjI4OTh2MmVTcGNnVUJhWHFzOUN5VlZtTVJQMEtLUDJ1REt4MUdJcUhjS0ZCOXVQVWRkQS9vT3dNa0tVUWsraFZVVDVPbEVMdjd1a0FBUEE0eE4rZkczVmYxeUVKV0FiVGx5dWtGcThjNXBTRkY1cXVHbUgwVmVpQzVvVEFka1VES3Z6WGhWWUs5c3BRYjNVZ1Z0Qld6N1ZScnlOUVVST3BIZU5xeDlhZHA4YWREWCtRSHJUKytYblN4VVI3SVdGanlNTkZJRWlMWmkxdks1UVVrZlRDUU9qdjh2SHdiUi9MRHF3Z3M5bXdsT3pPY0RLdVBVK0dTb2lnVFdRejRWN0N2SHRaVDI3WUdKVG44RFFFM3IzdjB4aWxvODJ2U3VXSDg0WEU3VEJsTUpFb2R5eDNDRngwVUVkc3VhRHBPSEV3UjZYNlUyU0xseERYS
XVZeEhlNXh2NjI4bXU0bDRMSnBYUjhkYmljTEZKQW55Q0FVeDJLb2dDamt1cmU4bXNUZktDbG8wamFlN1hNR05PSk15b0ZYbVlHZUh2eGhNUGMzTEtYLy9VY1p0c3p3dFJrQmNFdURXQysvQWNWZVBOSHVOWWI5MEpIcnRucGg1ZDlhL1lpTkpzY1N3QTFwUVZrdW1TQWtPQWdLdWRzcnl3c0N3Zkg1anNydVpHUTJDd1hKRXQzUU4wU2NLUlVnT1NCQ3FYa1BqZDVSVzJuOFZpamt4anovbWptakhCNmk0eHM5NEU2Nzk5STAyaldYNVd3UDZhTFRaTGt5TjhxNDUxT0RmeUZVZEY5WWsyZXQ5VUpsV1NzRFJMSWVCd0ZyQkEyZTdyRWsybWFLVUNCRW5PUWM2bUhVMXQvZ3gzK1VXVVFXbkpMZVUxbWUvbkFEdy96UGUwd3d0Vm9BaERZdDBoR1hQblJydjFoUHRGS01CeWtqckg3a0J5U0R3WDlQMi9XZkNkQlE5K1J4cHRsR2hvRmdpMUs0NVlOeEpEd05wTmd5MDV2WXUzVUtrMkpRYVNGUzcwK0Y1NzluRE5RenZpK0pPRlRsdDFmWDJGNXk5NEV2NHZobWRQSmRVOFVVRjU2Ymx0emxKREVFdmsySlFrOTM0aHpwTXJGZ1d3ZHUxUkxxSEhCN2h2T2hnaHNqV0ZGY01zNjZaRUtWcVhKUytxWWNVMHk0akwySVQrNlF2N2pvQ3BWbUdzUWtGY1FyblhxOUJiOTdaUS96UCtwaldmWTU0UmNRVlMydUU1YURObVVyVkdLK3E0d0xRcUhuRVViT2puSHFFeGlacUtxOVdRaUtUK2c3QS96bVlIQ2k0YzFTejRNVWhHb0t6U2l4aXoxYUNJUEJXdy9vczR2cUVqbXgzOGx6YnV0OWNWbElzeGNkTUpUTERRK3ZOZ0YyY1ZRaVcxRTQ0d3lWcnI3TUFaOE9KRVpFSzlEZW
t5MzJQUkFuSkRUVXVqdGFscmJ0T2VOczhyS09uTjcvNFRqUEwvZmRlbEI4bjA4WXdSNXdmbU42VGpGWUhRSDFjbUZmK1AvNUxVMTI4Q1pEYjNQUStxMlFJazV3aE40eGwvcy9lb29pallmeWtDcm5aSEhHWkluTGhoU2pWbk5ISWdTL203VWV0NlhBTDdvZUl5UFRLeHVnbDJzRWtUQzNnZ0tjTnFZR0E5U3ZlYVlaQ00vWHNQRUtQbWs3QmlRNmprWFBKaE1yREd4Vkc0SW9aSDgrYjBrUWJYR2l0Mkw0L3hZdHh1bTVzcFNPSjdsTDltVFpRNnBxM2JOaTEwZU1mZ0ZWaDc3NU5JRlc0SEp3U1FtaTU0bk11blZTQjhxdjZKc0w3SGlsZ2N0ZHFSNThTTjVad1lCa2dOR1hzYjA1QXJWemVXbHh1Y21BSHNPT3dyczFnMzh6bTRZN2ZPZmducmFhV1kxanZZOFlEODZQZThkZzR4cE5paTg3UnNDZk5WK2NKVmMraktFdnpuZVY1Zzd0RmlxZCtsZHp4STlKemdSS2t0WUV6RUpRSVU5M2UvclJaN1lrVkZtNVV1cjVhMWYzcG83T0VtYkJUc2MrQ1FaOGNnYmIvbUphRXJoa3NyL3JURjBNcjNxeDl5SlJWSEJ6YWNWd0dScEFRaURPdnJkWU4xQXBVOTRyR1lrVFVzdWs1YjE1Wll2QVZxRlRzVlVMaS9HY29mbEljMm01Z2RFTFZOblRmdXY1Zlk5S1NlWHFoUU80S0pOYVZmbHAwQ0VKYWFFZFNLUXJJNXRaT2w1RkE4VXZlNmxTWVd5TVk0REl4a1RiT1JoWHVBdzR6b1RTMjgrN3d2TXhydVBkZnlKbUJCTkhQdCtEYmdKNHovcHJZWUhpTmFMTXNZamtQZE44ajNKZDczQXJFZk92Um52MzYxSVVVMFg1RDc1dlRSdlpkbzMzWERzanRlOU4weUo3K2lIQnF1a1F
JY2pIVW9ic2RQN0hOajBVYWNSMHIvTmRlVTlGNFBNc1VLY2t6Tk4rZGhyMVI2d1J2R1VZb1pDRWJaWlJMWEt4QnA3SElUNEVQUktHakIvdW1xTFhhMXl6RWx2QW1WQUJhMDFZN3dGdk4wM2Ywb25FbUhTM2w1d1paRmV6cjVibnN5T01XVGxhMU5kaW1ZNXNVeE15VFliZmc4dzB2cXNEc28zWFAxYndLdzZ3M3VIRGQ1UHBSWnVDSnR0eWk0ZzJGeWI0Ymg1UU42ZkdORTI2ekRGN1Y4QmJwZXJLNkFKQ0xTWm5kaDZMMTlPUTBram4xUGpEMGk4c1BZcGFXOWxVeVJkZElPKzRWQS9LemxPUzJ4M2s5VUtUdElsTTBUSVdtZXFIS0dYUVpocGpvVGI2VlNKN203cjZaaVlQMnVsQVVvZmVWL0o2eCtzckxEQXkyQ2ZFNnFrREZ1OU9NWDBBSXVnN3loQUtOMDRyT3hVNk5tcGtjOUZ4bXUvVS9vR3hHdmIzeFVFTDYwdE1sSE9EaWtqY1I5RDJrKzRwbEc1WnV0d0FIY2kwRU02WHRrVEhQOU5QMlRTR1VFN1E5SGYvU0VEc2V0a25hZXhvWmhDczJLWDFMeU5JS0U0N2pkMkR3MTUreDRRVXV0VUFTbzU5Q1lHMVFBeW9BVVhrV3dtbXkzTGdTUWp5T3ZLV25qaE8veWpPd0FyWGd0NFBrSVVnZDQ1N05ReFpMbU41K0J4NVJoQ0FHdkUxYmxOZjlMek9keGJiaG5VZ2Z1RDM5MXVSRkhjS2RYREY3ZmVqb3gveThtaWZJcTRWVzQyajBHQnFOQUtkK0prMnJCMW9hOTRiT2hxcVVzanhqWnlRaGRXTzhNblR6T2tOaGVpZXU2blYxcW5yZ3JHU2huWTNJMlczb29GNFNnczRjZ3drZ2h2dHpFa0xUbU5OUm83RTdudVRuMkxJcmlGSnlvTmZQdUp0aWN0S0JtNzRGZytk
WVBTMlIzTzNmOWxBZWxiVWZjbzZGNU9EL3hkS1VuRTh0V3FOMExVcDlWQUptWVZYZFVDaGJ4MjM4MWtDaStLNDJoRzUydFNQYU1hb1dTb0xQY2Zrb24rc1pYdjdEdEtwZi9HTzdhcUMza1pzRGpva29haHJGZGJWSlNTZWhrNGp5K3RzRHplQnJKSjBrMVZrUnJHN1NoVHZjTmd1cjVucVRUTEE5dlJMQmJNTTlhNlI1NEZ0Z1pQOWFKMU1aMEdCcUVpMnF6Ui8yd2tYQlhwcFhZdi9TcU1RV1dhbTVsSHBMVktxaDN4ZHRjNFdmck9mYldsbU1PNXA5Z0JUSFp1YUcxVGFkZXFRVVpKQmZBS01ENFdSR0NsMDFaeDRTVzE0YzZrdnFKdXExL080N215L3RsVHlLWndpYlBkQTNRMVVGd0I3R2Z4anEwaDN2ckxFbUNrS3Vsc0VBUkN6UnZNVjJSVnBVbFpUV240Y1Boc0hjcTNROElHSUYyKy9nOENFSU4vMU8xcVMvMkpXcXlDNmtIb0w4Y2R2R0VHbmkxSTNDTk1JcXhxaHhJL1V0R3REc2VwYmwrSHI0elh4MzZna3BCbXBoT2xkTFVYTHAzVEtibVVZRWJSWHcvZmRmeFQ3WDdZUFhHQ0hHVG1uTzk4WkxDOTA2Zmkvekd2b04rNlpzbCs3MkpWMGxJWEo0V3dZdWxFUmZHbkFDWGNoa0Yzei9ITWR3elcwTUFFaXptQmwvREo2ZUoyU01PSG1Uc25YbElGRDRlcFRrYnFBQ0dpZ2I1UExFdHdQRVRjYkNRckM5YUtTU1FnSTdEZXd1aWlxM2J0Y0RUWkIzeEI5WWxlbmhpU0FXNjIwcmwzc2ZjY3d3eGFSOHBDV2Rzd0x3dmFxcDhjM01PV3RCc2xPcmVTSkNEcWgvdzBYbm1WMFJVWFpNM2JvUmkwVXhsaHVUeDFlM1NTd09pbTlOczNYV3NoTmI4Lzc3VkhnUWhRV
FlSUU1NRllYaWRmMElCKzBtSUpocWNoQTlUeUY3dGRjSDhrUUJUSHNEWS96bFpqK3EwNlFMd0JkbTkxc3IyK3VzZmxlaXB3WUMrcmdiNHROVnA3VU5rYkVqTnR6ZWZsTi9VRTlkbHZtT2x6V1dtZkh2NGVkUGkzMmJmeUNRS1d6SGJVVEV3NU0yVFpsZnpNaTFWUjVsaDBxQ1lqaDNITUlmL2MwcHBKd2I1b1lFTnBBenlxbnlmdmlTV3lBYzc2L1l1VWwvb2FVaysrYzBZc2d1TGo5ZGFQdVVvemhoZ3VjSytQRGlNckI0ODU1Mk83VWg0aHRwNmZ3S2dJa1JCTVFIUTd6MmV5WXovV1AwQm9ZZVhjOGc3aUprclhFNzA1bFo1bXhGU0poT3E1WlNleVJSb21pUm41K3VRemM5ZFdWQjBYb2JURXdOc0VRM2FIZ25JY29BczY2UGplUT09PC94ZW5jOkNpcGhlclZhbHVlPjwveGVuYzpDaXBoZXJEYXRhPjwveGVuYzpFbmNyeXB0ZWREYXRhPjwvc2FtbDI6RW5jcnlwdGVkQXNzZXJ0aW9uPjwvc2FtbDJwOlJlc3BvbnNlPg==
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/tests/backends/data/saml_response_legacy.txt new/social-core-4.5.1/social_core/tests/backends/data/saml_response_legacy.txt
--- old/social-core-4.5.0/social_core/tests/backends/data/saml_response_legacy.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/social-core-4.5.1/social_core/tests/backends/data/saml_response_legacy.txt 2023-11-29 09:52:23.000000000 +0100
@@ -0,0 +1 @@
+http://myapp.com/?RelayState=testshib&SAMLResponse=PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c2FtbDJwOlJlc3BvbnNlIHhtbG5zOnNhbWwycD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOnByb3RvY29sIiBEZXN0aW5hdGlvbj0iaHR0cDovL215YXBwLmNvbSIgSUQ9Il8yNTk2NTFlOTY3ZGIwOGZjYTQ4MjdkODI3YWY1M2RkMCIgSW5SZXNwb25zZVRvPSJURVNUX0lEIiBJc3N1ZUluc3RhbnQ9IjIwMTUtMDUtMDlUMDM6NTc6NDMuNzkyWiIgVmVyc2lvbj0iMi4wIj48c2FtbDI6SXNzdWVyIHhtbG5zOnNhbWwyPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YXNzZXJ0aW9uIiBGb3JtYXQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpuYW1laWQtZm9ybWF0OmVudGl0eSI%2BaHR0cHM6Ly9pZHAudGVzdHNoaWIub3JnL2lkcC9zaGliYm9sZXRoPC9zYW1sMjpJc3N1ZXI%2BPHNhbWwycDpTdGF0dXM%2BPHNhbWwycDpTdGF0dXNDb2RlIFZhbHVlPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6c3RhdHVzOlN1Y2Nlc3MiLz48L3NhbWwycDpTdGF0dXM%2BPHNhbWwyOkVuY3J5cHRlZEFzc2VydGlvbiB4bWxuczpzYW1sMj0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiI%2BPHhlbmM6RW5jcnlwdGVkRGF0YSB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiIElkPSJfMGM0NzYzNzIyOWFkNmEzMTY1
OGU0MDc2ZDNlYzBmNmQiIFR5cGU9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI0VsZW1lbnQiPjx4ZW5jOkVuY3J5cHRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNhZXMxMjgtY2JjIiB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiLz48ZHM6S2V5SW5mbyB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI%2BPHhlbmM6RW5jcnlwdGVkS2V5IElkPSJfYjZmNmU2YWZjMzYyNGI3NmM1N2JmOWZhODA5YzAzNmMiIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI%2BPHhlbmM6RW5jcnlwdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3JzYS1vYWVwLW1nZjFwIiB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSIgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiLz48L3hlbmM6RW5jcnlwdGlvbk1ldGhvZD48ZHM6S2V5SW5mbz48ZHM6WDUwOURhdGE%2BPGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlDc0RDQ0FobWdBd0lCQWdJSkFPN0J3ZGpEWmNVV01BMEdDU3FHU0liM0RRRUJCUVVBTUVVeEN6QUpCZ05WQkFZVEFrTkJNUmt
3CkZ3WURWUVFJRXhCQ2NtbDBhWE5vSUVOdmJIVnRZbWxoTVJzd0dRWURWUVFLRXhKd2VYUm9iMjR0YzI5amFXRnNMV0YxZEdnd0hoY04KTVRVd05UQTRNRGMxT0RRMldoY05NalV3TlRBM01EYzFPRFEyV2pCRk1Rc3dDUVlEVlFRR0V3SkRRVEVaTUJjR0ExVUVDQk1RUW5KcApkR2x6YUNCRGIyeDFiV0pwWVRFYk1Ca0dBMVVFQ2hNU2NIbDBhRzl1TFhOdlkybGhiQzFoZFhSb01JR2ZNQTBHQ1NxR1NJYjNEUUVCCkFRVUFBNEdOQURDQmlRS0JnUUNxM2cxQ2wrM3VSNXZDbk40SGJnalRnK20zbkhodGVFTXliKyt5Y1pZcmUyYnhVZnNzaEVSNngzM2wKMjN0SGNrUll3bTdNZEJicnAzTHJWb2lPQ2RQYmxUbWwxSWhFUFRDd0tNaEJLdnZXcVR2Z2ZjU1NuUnpBV2tMbFFZU3VzYXl5Wks0bgo5cWNZa1Y1TUZuaTFyYmp4K01yNWFPRW1iNXUzM2FtTUtMd1NUd0lEQVFBQm80R25NSUdrTUIwR0ExVWREZ1FXQkJSUmlCUjZ6UzY2CmZLVm9rcDB5SkhiZ3YzUlltakIxQmdOVkhTTUViakJzZ0JSUmlCUjZ6UzY2ZktWb2twMHlKSGJndjNSWW1xRkpwRWN3UlRFTE1Ba0cKQTFVRUJoTUNRMEV4R1RBWEJnTlZCQWdURUVKeWFYUnBjMmdnUTI5c2RXMWlhV0V4R3pBWkJnTlZCQW9URW5CNWRHaHZiaTF6YjJOcApZV3d0WVhWMGFJSUpBTzdCd2RqRFpjVVdNQXdHQTFVZEV3UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUZCUUFEZ1lFQUp3c01VM1lTCmF5YlZqdUo4VVMwZlVobFBPbE00MFFGQ0dMNHZCM1RFYmIyNE1xOEhyalV3clUwSkZQR2xz
OWEyT1l6TjJCM2UzNU5vck11eHMrZ3IKR3RyMnlQNkx2dVgrblY2QTkzd2I0b29HSG9HZkM3VkxseXhTU25zOTM3U1M1UjFwelE0Z1d6Wm1hMktHV0tJQ1dwaDV6UTBBUlZoTAo2Mzk2N21HTG1vST08L2RzOlg1MDlDZXJ0aWZpY2F0ZT48L2RzOlg1MDlEYXRhPjwvZHM6S2V5SW5mbz48eGVuYzpDaXBoZXJEYXRhIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI%2BPHhlbmM6Q2lwaGVyVmFsdWU%2BTElQdkVNVUVGeXhrVHowQ2N4QVA5TjV4Y3NYT2V4aVV4cXBvR2VIeVFMV0R5RVBBUDVnZ1daL3NLZ1ViL2xWSk92bCtuQXhSdVhXUlc5dGxSWWx3R2orRVhIOWhIbmdEY1BWMDNqSUJMQnFJbElBL1RmMGw4cVliOHFKRy9ZM0RTS2RQNkwvUURtYXBtTXpFM29YOEJxMW5Ea3YrUWh4cmQwMGVGK2ZMYVQ0PTwveGVuYzpDaXBoZXJWYWx1ZT48L3hlbmM6Q2lwaGVyRGF0YT48L3hlbmM6RW5jcnlwdGVkS2V5PjwvZHM6S2V5SW5mbz48eGVuYzpDaXBoZXJEYXRhIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI%2BPHhlbmM6Q2lwaGVyVmFsdWU%2BRVpUWDhHTkM0My9yWStTUVlBMXRudHlUTTVVNkN2dUNCaktsVEVlekZPRjBZZHhCWUdFQVVjYU8xNVNKOXBMemJ1L1h0WGxzTkVMZTdKdEx4RUpwYUxubWFENnIranNWczdLaTBLNHRTMGNBUERDWHV2R1FoMmFOVjVQOGJ3N1JWUGhLOGQwYlJ1RklGR09FOHMwTTZYOUpxWDN4S0MvL1lSbVVoeDlybnU3ZWlwM
Gh5ZitPaUZiVGR2SDY2NTB2LzQ3aVdKcDNZeFlUV0QyMHBNbVRJMUpwWUEwYjByWVFQRkR0RU93d0JxYktxanRJc3ZYVFJzeXJhQkxvbnFOeHN5dHpEWHEra0JsMXp3WGUvSE5QcUVQblczdnNxaFhZcDVGM3dkWThkKzNCOTRMZlpOdUd4a0p3VDNzdVR0OGY5VHRBSlI4VytBUmtzT2M4eDBVaVNsVG5BNHFHOTBLMTR5dkVoVHcvd2drZjFXV01RT3dpZDNpakFYbUV4MU5MbVZvYUxYb3p4VExkTjN6YnJ6VEJIRXc3R2J3ZEdrdU5pMlhZOW16YUgwaWtGRm51VUxjMHUwc0pycEdGdzlaK0VlUk44RzNVUVZ5MjhtS2g3ZFBwWU5KbzhyajIxZFFaK2JaeUtTUHZablU3REkyakdJRE5US1g2ZkVyVWFINGlOTzN4cUU2Vk90L2d4T3BMNE5VNUhLV0Q0bG93VzcwdUJjVEVQRmhwaThpYUovdTB6YzUvTEhvdVBjMzByc1RLZFc5cmJLL2NWaHNQUHErZzA5WHZpZ0QweTJvN2tOc1pVL25tRXFiSzBKOTBrazhCR3I5cXRSczY4bUJnSURtUHVwUkhwWjM4eXNnU2VZN3V0VlVaSG5tQ0dzTzZ2NDJ6OTVOK05Pb3RCTEVZbFd1ZEdzYnowQWc4VkRDSlY5ak95QW95MDZyL1AyUHBsOFhjdmJza2d2T1BMMWdDNnVYbVJJS1lmOEw4UDJCNXVjN0haK0dtUHNOWXRLS2VKRDFFUHovdCt2NlBIbXNVb3dsSDhSd3FMRHdtMUF4dlNLQTR3UXBlQ0dQd3A5YXRYS0lWMS84NUZzRWMzajVzNjd6VlRybThrVEpydXV2MDZEdFVRZDNMOFdwTkV4cWhQait6RUp6U3RxSG04ckhNMVhNQUVxdVozc0xycTVqLzFSNlpqS0dOdFJCbjhwOE5ERGtrWm0vWTV5TXlJNX
JJS3U5bnA3bXdaaEVpeWVHeHdxblV3VVMvUzVDRjNnMHVidnd4eVVnalVvd1ZvTkNqYktBbkdtT2VCSW5abkh0eGdIVUhVOUVlTFdyd2pRc3JtUmpJV0R2RkZQa3l6SzJDL20yaitubmNxc2E1OGRLVXZxcGR1VTRJYnNPQng3UGpXdXRBNmY5bXd6YWxyRU1NK0lGR3VPdk9HMC93eUdzQjZLREV6bldjUC83NkQ4angzaHZFSlAzN3REbFgreGM4Qno5TXdKdkd6VG4xbTdCb2xoR0lzSXlCTys1ZXpXa3RDWVVIUURGVE9wbXA0MDlOWHp6ZUNTUGY1U2NDWG5YYjRPd01ULy9VM1JFUnRRbGMrNmU2WG1JRjhoRkJVc0taUUJsS2ppSDkwZHlzYWlsNmN2V3UyQW55Q3QxbWxXcHFLc0MzU2RTRVZDTG1qRjlUQUFUMEtFSGdZQjg3RjZtZUpTTysvOXkyZkRuYVVvUUlUVzdubnVuSCtkT3dWSGZMU0wyL2N5YTltNlQzR29TSVNMbGJPMVRzalhKclVkZW55OTcvM2tkNmhFQlphdGY1U3NETFQ3SjNsQUVJNDROeXJ0NkIxQWdod2JNdkpqd1JNTXRNdUJLc3ltUytKVzc4UFNEWXQ4MG9waDJQTTc1N0tBNCtUMTAvYnZaQkE5Vk1OdVpqNVV3NXRWMnFIS3dwS0t6ZVVETUFiQlBRaGpYcXlQZzFKa09rd2RQMUpnOHRITjJTelBZQTlmT1htV0pBZGJDS2tMb0F4ZTV6cDZBUzYzS3FXMmFmSUt6SHJ3RTJmS1VtamppeURvMnNuMkJHbWtBaTRzbnpiVzc2SUQvSVgwd044aDBaQ2VRc29vKzdtb1RCMEJxSnBkS1MycXlsUktoc3BSTC9henVQdmxaK1pwckJxdXpJdEZkNFVLMkpzQkp6VXcwZkpxcTV1bk9PZENzVWM3SUU3QTNmZ1NmZ3NBd1R3WFZJMEV
oME5ySWZpMkFKV1Z2VFpEMys2eFZ3dS96WWhuVjc0VXkvMFE4Mi8yQWtpSGpFRjNJVGNLWHdTNTB6bWtLakxjZDJqa2h5TUFYMWRoQ0wwZElFMUJoN0RNamVvNC9YbjBqSlpPL3Rrbi9xZmYzc3RNb1BYVG9KTnBIU1RjR2ZheGtaMzJYNCt3Q0xPc0VBRWxlMVZSY0kwUkZyOFhHTSsxWU9BTjBodFdGcFMxaG9kSi9OczJqL1FnUVNEemNpQ1FZeUFDd3lFRWZDZjZybnR0VmJyTlJQZWlmSHhBM3B2UnZ5ZGRhNDE5cXl0ZXI0akJ3cmw3ZUpuVnJ2VEprR2VhU2FRbDdXWk5SQXBscXRnNnZPYmpiMHZDRWlFaFhKbmNzQUhxcXp5QTRGeWFUVGQ2R0FySU9adUNxRWVoWk51T01lOVlrMVpya0VkR3pIalJESWk3Q1BKQk12NEZ4ZHI3bnJvN0I1WEhKb0ZMNE1DSUtOWWU2aWZiTUtYOU5uN1FWdnphUmY2UXlaSW1BWENQZndvU1BkN2x6NXl3UDJLSUIyaGhFMWt5eVZ5YVc5T0praWpUY3dvUnZrSXhIU0RqMXFqeGxueXh0QzhVZ1pNWmlwcGgzQXJpcjRiekIzUDhIbGIzejZ0OW51KzZMemNiN2ZObVo0UHluaU50Vk9OQ0lHbEh4dTBSY3hQK3cwUXNsM1BtTzJLaHBpc2RIanhvSUJ1YVY1NXdoTlFFNmdNNFBrT0xINDc4Rzg4bUxkd2s2RFpkWVl4L2d6RWE3b3ZIL0pReFp2TzRLdFVTNmZjZHJxV2thTFg1cEhkNkdneFBGZ2NFc2Nad1ZqM2hCS0xFQmE5L0dodERINEhzRnNRbmpPZnNDQkNzN0tjRitmTi9oSUdUeHFqTVlKVHJRYmNtdWF5dk9xR3RQMDFPcXltR24rVm5FSVkzKytQcm95SFN3K0Q0b0JIVG1maFNXRmJLZCtuTlVFS3BhRVIx
NkdCU256WktQRVRVSmdRWEw5QWJRQ3RXVjFHb0UzRWNnMDZYaVd2aHFHakpGNldtdEU4dHY4Q25rZmxMNm91TDRvNldpbmx2WnNEdkZrS0R6TDkwUTNsWC9NanBtRTFpWU9uYzdISXdEVGwraFRRcHdsYXJiTDVUNGNkZTg1akNwYU0xU3p1TStiQU5zMHlXVDA0ZXJUVFc2cnhlbXFDTHAra202TVVMTlZOcE1CazBiQjJpRU82UlRtc3VpRlhDUU1xdU5xZjdkWXUwTFFCZzQ0MkJzU1pBV1ZrWEVZblduOURLdTRSby8veEFsb2h5VHozWlZmSkhuWVBSdDloSUErRHVUL3c4T2ZzTURIWnlCelUvL0JEa1NiNkxjMHdraVA3QlhIdjBoNVdud2dNWUxlZDBPalR5UWI2aGxpVnQ5b0FjaDRFVy9EZUlBdkpaQ1BYVm1pUFFYTGVsOVJIRko2bXFiYVo0TCtaZG1ONmQwcFZNZ1FveXhmQTR3dEwwYVpiNnFZYkhibjJMd2VBQVZwL3M2TzVlMVExdnZpZDRTWHo0a2l3RW1LSStIeXZEQ1pnekpQQVN5Z1gvWDJFWEZ0NGV3SjVmUFQyVXZmWnhQWlpqMFZGSFpyUFQwWVd2VE16bjUva3hoT09oM2drVGdDSmNwNWVsZnp4cEFPNFl1a0NoNHJXdVNndDRqVUJyaWNYbFdWdWo5U3JSZVhUalNHTktLK202NWovUDllNHRHT0RkMk9BbjNKTVQ3Q3FuaDhreTZpZjVjbmpVMmU3UDhTZnBONGwxWEFiZEZEcGk5bVJYamEyTzR1RWFHNGNvNW4xcWNDT3ZNMWYyblFBY1ZGNUFoSXhueS96TWhmU2l2RXdOQ0Zyd2tBWDRyQVE0WldUNldFakFyUG5jb1Y4Z1VRclhxQVA4NDJmK1lNWWI5RHFncmFicEg1a3ZuMnQzcWRldGJHODJ0QWlTamhPcUxNYW9iU2F4cXdWa
1lUOHRTMW9rUUt2MWZoZ2t6elpEOE5IQnVQQzdNVHdXS0VCS2tDRUUzRWRFMXhNQURLd1B1M3NSaGpSaExXZyszZ2srejJtdlU4cTBhTlc0Y3hObUdoekx4eEY0Q3NFNStMQ1cwOWFpUVJOM1VvWmg1aktBZzBiMlh3WHBLS3pycUVTY1BYdnI0L1dWUTMyMm5qRWRvQVdXR0t2WnBKMlRlREo0eDdiT21LVElFc2RHWU1UZzFVaEU2eFFQcnhqS3dWeGFJNVJyaVE4a0xpaGgwa0t0WHQvYTVsSDhzUjVwR0ZISGZ3dlNVb3liQTB1eUVDNnNRVitPbTVReUZmRmpqZHFCOGNpOGxQS1hLTHFCTHJ6bjNmUkh3TmQwbzFiRTg0aGllTkx5UlhZVmhrRCtFNEpGaVd3ZWt3U3VWM3BjQk9ybnRVU3RoWmx6M3hIUURUVGNJNWliOFJyQ2swZEZ6YTgvQmw3VUdtWlUwSXZ2UmdvVXF2TXNHT2dMY3pGWmRpZnJ5aGNiUTY4a2ZzZ3lCMHppdC9MN1BSV3V4RkdYdDFoTVZSVUZ3WXBJS04zVkI3cXVKZlgwamZsU1JaRndMaXdlK3VhYndmTVZ6c2doajUvOXZNNzcwK0JaMGtJcE45NzBTMG5BbHl6R0h0aW1nTUl1RXFhbUt5QTNTQlI1aHZIYmRyNENnTHFUbXIzbFFnWmpnSkNvN1FXYUJWTXdCR0RpdzVOVVhUUnBycWc4U3h2eDlnNWZwbXMrL0o2QjFEelNTM3ZRZzgxdHFRU1ZDWVJpc0Y3M2VqZlFuZk4zcUszd3RJRDkxQnRISmFvMEFaUUdKVFpKOXVsZ0kzV3hzdWR4ejB0VHVpNlJlSWpmSWsxekZRdFpwRExGMnB3NGpTQVdQTlJqNDBYdVIrRzFUVlI3OVFiME9FYkw4RDFoTU5zWmo3MTZNbUhSOTlKaUxNdm1FWHV5a1V4VGhGYjRMTzZVbW1kU3UwTl
BpMXQ2NmNkYURpQWhMaVBFTGdUNkZsenA2T2FGSGNSNjRncEtyemtTNDJONEhJeFpNa2R6M0FsYkRhK2pOWHZPR1l3UWl5K0xNNENZWGtrTWtHR3ZTWis5R2xWQ0l5RXBJaXIzbEQ3bmdzZGk4emxGWDYvekNaczlQSUtwZFZlSGJGZi9GS20wV3AreHI0Ykd0R0RrVHR2Nk1Manh2YU8zanFHaUFWeERKVWFkTVBlS2VHSm5uempTdnpKbGdOVHV3c3grRnF5L2dPMkwxMGowWmhDWi92dE9NelVjNjl3cGhKZm9FNzU3V3lOeFJOcThJc0Y1Tkg5Y0x0b3UvbUNxOTc3YnZPSkRrSURCN3lKWEJ6YUhVQkJuSXJra1Qyemg3bGJmUm5SREJUSFZraVZMazVESUxqeC9XL1BSZEZpUUM2SzRmZGx4Y29JbzlMcnM4ZFVWZkt2TTNNYnJ6c1hGT3ZtVVh0K3NsZldvd3UyTC9ndG9mRFhvTUJZZnlEcWIvWlRaRWZ0MC83blliRm1relBEUlZacU5SR0F3YWZVNTU1UjB2SWtNbGR2VjdKUzhNT1BNYWlXQVBpelNLRG4yRzNvcys1MzRFQytaOGZnWmFPVWpZL0xLME9vME9RMmhvNUV6MGNMYWpwUjFINk9FNEhvUm1ydjQzZkFjdGpYc0hYdi81RXg3emdrWk1NZXZhTFNEdjZtcjFGcDk4QXR4L296VTFGVDBoMDUxcVcwR0g2VWpRRXk5aExSZDBBMnFkUTRMZXpReDNvbDFTblhsamt2MG4zTXFlaFozOC94bzZhdHFDdkJtQkc3amlUdXd6YnlVUngzRm1TM0NCNllOYnFON3hPYVRZRnlkOEZDL01nY0xGQmMwS3F4MXllQ2VUd1hucldQb0dvdllVQlYxYjA1cWtIa1d5V0RUaCsveXJFNzF0RjNxbUQvd3F6cUJyNE04NERtWWVuQkdFOWxtb3FIZEMyWnRpK09
KVFZKcmlHZWxQQ3RjZnZRaUlQcHdDZ3BFNmg1ekZhRndLajRuZGtBUkRpTC95L1EwWTZxNU5rM1g5RURlTmdjY1pIcFdmOUpKQ3M2a29wdXRtYjdDczIrbVJYdER1S09DaGY5UVUyN3Bmb1NJaklYK3NGdHY1c0hhSms2aHBZMlpzUUhzaTBYbFowc3FMTnQ5ayszdTVnYnBSU1JCczlHaC9BaVY0dkNyYTRkOTh5U0dCdzRSR1FhSStpQ29RaG9YK3lxc3VrYkx6bXJUU3FXMVRXaXJReUlHZ1Q5VnFERE1mUzAxeGdQSlNFSTlIWlp6TGlFVXVGMm1CMi81Y2dqaEFUaWQrdGV1UVB4aldhN2NSc2t5YUhuTENjQURVUU9ESUFPVjJDWXROcnAwY29ZL091S3ZzaXlJT0lacVJ5dE1PMGVNZ1ZJWTBzWmdxeVEycXlubUx0NDBmWmd3SFVyV245Zm9TYTNtMkVRTy9uOS8yU2NuelJWdVZpVnNjM0tCSElQL3AzNlJlSWowTGlNcCtPQ0p3SHlLVW1UeDRBU1V0dXVhWktlRHl1QjlxcXJuUEFNWUVCeElsTGFvdXMzV1pHakIrcW9ub3QvNmk1UE40bUZjbHFDcUxhMGJHbks4ZnJxYy9yd2tuVGV0YUE0c2tXTEw1L21qNEd5MitFQkh3a0x3UXd2K0FKdmZTOXYvNDl1LzY0N1ZFYW15UzdZQ2ZEUHNBQUREQ1FFcWJNQ1h2Ui8xVmEwWi9YUWhoNlkrZUt0MEVpRDdpNmRZODJtQkFoNEJMRmRVV3VGZHVrdUVwaGZ2WXB3N2loVjNxTjB1NFM1NTRXU0dUa0ZsdlpYNG1hbkF4a1g2ekQxS0NWaEFMdEJnSDgzdkhxam9uc0lwOFMydHgwZ0tiYzEreHVaRVppVWlNVVlVdTByQVFsRFcrZHJoN3lVRHZqekFHSnBmTk01eThaMW45em93VzZ5YW5VZWFBNjhSZDd5
TUxobFd0NVh6bGhBTVZDZmZYZ0pFelR1YzJEbENVOXNMLzVTVkRaV2N4R1E5aFM1cnJtK2VyQ1Jxd2FJQk1DNUtza0RCZHdOWmh2Q0FCdEpqS2Vla1FUSjd5MFp4SGNhbGVCaU1rbkYwZVRDZzFvUEhPUVZLQ3V3NE94cHRZUS9xS1V0TEFIWFZ2OTlLMGRWcWZDMmpVQWlHQmVYa0t3aGRYTGtJYlZxU0EyZmxraXBBeEhYNnByUEExQjF3eTVab3hPUFg4RVExOW92eXpBbFg1dHU0OXEwWC9PSExFN1o5T1cxenltRXR6ZFpyNXJZbWtFcVdtcHVSNU5jeHFwTWlZam93dUNXZWhubzIyeG5JM09IQ0xDZkFKaHRrcklhL1hPc0tZRFpCRzFJMGJsN2taR2R5cEtUQlhYdXl6WE5WUlU5L005ejhaVytwdG1oZ2NOUzBJS2VaaSs5bFl4cWRlS3lnbldTTTV3czdSYUpmNlRRZTNSaWJZUjFvNkhwRzB2VHpiTEtQZTZnRjJGODdiWlBJei9mcTNLWnZiM3UrSnhZcCtJVjBtQi9VN29YelhRRk1RK3VmWllpNzUxbkx6WlVxRE1ybU53TFJPVUFNUk8rVnJtblkwSVB1cFBVMXc0b0hBb1dnVGRnTk5pNk1uTFQ4V0pmUlhjT0pKMk1lbUc2K2ZNeHNZUU52UVJwa1RGY05vaFV6Y3ZjcHJ3NUV3WEVZQTJzbzczL2MvY3RIRGcreU05YlF4REppUlltRnFydkhYb29hS1JyekxnUjZLVWdoM3ltaWxaQ0lSSm9KbTE3aEtHM1pxTTE0Lzl5OUc5OE9BZjNkVTlqMDk3aUNlaEc3a2VxYXRJQ2hFWmJqbmQ4Y00rS3djN2FtVWp2ekQzQmNvMHl3MDJxT054OWF3OGhSblZiWDZhdkRJbGhySHZ6SU44MzFvUjljRHBwMG1DUEJXZFVDQlNqVGJ1RkZqRC90WElSbGxlT
2JraFFKSUdSNlE2U1MxcXkzT29WT1VheFl6THY0U2s3dndrQUMwUitGREVIeVFZbFVhbVVkTWcyUmdwRUdhSVd1V3IxaGNnRm10QmREV2g3ZFBuWTF0U3VKOC95MXp4NkRvN2ZJYmNFenBBK2E0ODNtRG5vemdld3VmaFdqVCsvUS85WlEreFQ5UWJBT1pQSXhHV3VhSXVrVk8zSWxvZDhJM1NGZFJCTHY5ZXBDNzFLeXpSdVlpMktkOHJ5NVNINit1WnMxUHlZUlpRakdDK3Q4VzRtSE82Z1lFRWVXSkJ1UWhnSHdmV2xhZXlWb3hac0NBQVZKRUllT3hPZDZtNW45OHRCUDdHTmgxT1M0eDRCS2FVN1A0UVQzNVVIZW5meE84WWFQUThmbXlobUJhSVJVZklBTVN2ZTJZRFp5SWNNTTkrN0tNSVVabzJ0eXRvYzdCOGVvZzBNaUkrVkpFdFg0c29FRjFSWkhQZVV3NWlCTjI4OTh2MmVTcGNnVUJhWHFzOUN5VlZtTVJQMEtLUDJ1REt4MUdJcUhjS0ZCOXVQVWRkQS9vT3dNa0tVUWsraFZVVDVPbEVMdjd1a0FBUEE0eE4rZkczVmYxeUVKV0FiVGx5dWtGcThjNXBTRkY1cXVHbUgwVmVpQzVvVEFka1VES3Z6WGhWWUs5c3BRYjNVZ1Z0Qld6N1ZScnlOUVVST3BIZU5xeDlhZHA4YWREWCtRSHJUKytYblN4VVI3SVdGanlNTkZJRWlMWmkxdks1UVVrZlRDUU9qdjh2SHdiUi9MRHF3Z3M5bXdsT3pPY0RLdVBVK0dTb2lnVFdRejRWN0N2SHRaVDI3WUdKVG44RFFFM3IzdjB4aWxvODJ2U3VXSDg0WEU3VEJsTUpFb2R5eDNDRngwVUVkc3VhRHBPSEV3UjZYNlUyU0xseERYSXVZeEhlNXh2NjI4bXU0bDRMSnBYUjhkYmljTEZKQW55Q0FVeDJLb2dDamt1cm
U4bXNUZktDbG8wamFlN1hNR05PSk15b0ZYbVlHZUh2eGhNUGMzTEtYLy9VY1p0c3p3dFJrQmNFdURXQysvQWNWZVBOSHVOWWI5MEpIcnRucGg1ZDlhL1lpTkpzY1N3QTFwUVZrdW1TQWtPQWdLdWRzcnl3c0N3Zkg1anNydVpHUTJDd1hKRXQzUU4wU2NLUlVnT1NCQ3FYa1BqZDVSVzJuOFZpamt4anovbWptakhCNmk0eHM5NEU2Nzk5STAyaldYNVd3UDZhTFRaTGt5TjhxNDUxT0RmeUZVZEY5WWsyZXQ5VUpsV1NzRFJMSWVCd0ZyQkEyZTdyRWsybWFLVUNCRW5PUWM2bUhVMXQvZ3gzK1VXVVFXbkpMZVUxbWUvbkFEdy96UGUwd3d0Vm9BaERZdDBoR1hQblJydjFoUHRGS01CeWtqckg3a0J5U0R3WDlQMi9XZkNkQlE5K1J4cHRsR2hvRmdpMUs0NVlOeEpEd05wTmd5MDV2WXUzVUtrMkpRYVNGUzcwK0Y1NzluRE5RenZpK0pPRlRsdDFmWDJGNXk5NEV2NHZobWRQSmRVOFVVRjU2Ymx0emxKREVFdmsySlFrOTM0aHpwTXJGZ1d3ZHUxUkxxSEhCN2h2T2hnaHNqV0ZGY01zNjZaRUtWcVhKUytxWWNVMHk0akwySVQrNlF2N2pvQ3BWbUdzUWtGY1FyblhxOUJiOTdaUS96UCtwaldmWTU0UmNRVlMydUU1YURObVVyVkdLK3E0d0xRcUhuRVViT2puSHFFeGlacUtxOVdRaUtUK2c3QS96bVlIQ2k0YzFTejRNVWhHb0t6U2l4aXoxYUNJUEJXdy9vczR2cUVqbXgzOGx6YnV0OWNWbElzeGNkTUpUTERRK3ZOZ0YyY1ZRaVcxRTQ0d3lWcnI3TUFaOE9KRVpFSzlEZWt5MzJQUkFuSkRUVXVqdGFscmJ0T2VOczhyS09uTjcvNFRqUEwvZmRlbEI4bjA
4WXdSNXdmbU42VGpGWUhRSDFjbUZmK1AvNUxVMTI4Q1pEYjNQUStxMlFJazV3aE40eGwvcy9lb29pallmeWtDcm5aSEhHWkluTGhoU2pWbk5ISWdTL203VWV0NlhBTDdvZUl5UFRLeHVnbDJzRWtUQzNnZ0tjTnFZR0E5U3ZlYVlaQ00vWHNQRUtQbWs3QmlRNmprWFBKaE1yREd4Vkc0SW9aSDgrYjBrUWJYR2l0Mkw0L3hZdHh1bTVzcFNPSjdsTDltVFpRNnBxM2JOaTEwZU1mZ0ZWaDc3NU5JRlc0SEp3U1FtaTU0bk11blZTQjhxdjZKc0w3SGlsZ2N0ZHFSNThTTjVad1lCa2dOR1hzYjA1QXJWemVXbHh1Y21BSHNPT3dyczFnMzh6bTRZN2ZPZmducmFhV1kxanZZOFlEODZQZThkZzR4cE5paTg3UnNDZk5WK2NKVmMraktFdnpuZVY1Zzd0RmlxZCtsZHp4STlKemdSS2t0WUV6RUpRSVU5M2UvclJaN1lrVkZtNVV1cjVhMWYzcG83T0VtYkJUc2MrQ1FaOGNnYmIvbUphRXJoa3NyL3JURjBNcjNxeDl5SlJWSEJ6YWNWd0dScEFRaURPdnJkWU4xQXBVOTRyR1lrVFVzdWs1YjE1Wll2QVZxRlRzVlVMaS9HY29mbEljMm01Z2RFTFZOblRmdXY1Zlk5S1NlWHFoUU80S0pOYVZmbHAwQ0VKYWFFZFNLUXJJNXRaT2w1RkE4VXZlNmxTWVd5TVk0REl4a1RiT1JoWHVBdzR6b1RTMjgrN3d2TXhydVBkZnlKbUJCTkhQdCtEYmdKNHovcHJZWUhpTmFMTXNZamtQZE44ajNKZDczQXJFZk92Um52MzYxSVVVMFg1RDc1dlRSdlpkbzMzWERzanRlOU4weUo3K2lIQnF1a1FJY2pIVW9ic2RQN0hOajBVYWNSMHIvTmRlVTlGNFBNc1VLY2t6Tk4rZGhyMVI2
d1J2R1VZb1pDRWJaWlJMWEt4QnA3SElUNEVQUktHakIvdW1xTFhhMXl6RWx2QW1WQUJhMDFZN3dGdk4wM2Ywb25FbUhTM2w1d1paRmV6cjVibnN5T01XVGxhMU5kaW1ZNXNVeE15VFliZmc4dzB2cXNEc28zWFAxYndLdzZ3M3VIRGQ1UHBSWnVDSnR0eWk0ZzJGeWI0Ymg1UU42ZkdORTI2ekRGN1Y4QmJwZXJLNkFKQ0xTWm5kaDZMMTlPUTBram4xUGpEMGk4c1BZcGFXOWxVeVJkZElPKzRWQS9LemxPUzJ4M2s5VUtUdElsTTBUSVdtZXFIS0dYUVpocGpvVGI2VlNKN203cjZaaVlQMnVsQVVvZmVWL0o2eCtzckxEQXkyQ2ZFNnFrREZ1OU9NWDBBSXVnN3loQUtOMDRyT3hVNk5tcGtjOUZ4bXUvVS9vR3hHdmIzeFVFTDYwdE1sSE9EaWtqY1I5RDJrKzRwbEc1WnV0d0FIY2kwRU02WHRrVEhQOU5QMlRTR1VFN1E5SGYvU0VEc2V0a25hZXhvWmhDczJLWDFMeU5JS0U0N2pkMkR3MTUreDRRVXV0VUFTbzU5Q1lHMVFBeW9BVVhrV3dtbXkzTGdTUWp5T3ZLV25qaE8veWpPd0FyWGd0NFBrSVVnZDQ1N05ReFpMbU41K0J4NVJoQ0FHdkUxYmxOZjlMek9keGJiaG5VZ2Z1RDM5MXVSRkhjS2RYREY3ZmVqb3gveThtaWZJcTRWVzQyajBHQnFOQUtkK0prMnJCMW9hOTRiT2hxcVVzanhqWnlRaGRXTzhNblR6T2tOaGVpZXU2blYxcW5yZ3JHU2huWTNJMlczb29GNFNnczRjZ3drZ2h2dHpFa0xUbU5OUm83RTdudVRuMkxJcmlGSnlvTmZQdUp0aWN0S0JtNzRGZytkWVBTMlIzTzNmOWxBZWxiVWZjbzZGNU9EL3hkS1VuRTh0V3FOMExVcDlWQUptW
VZYZFVDaGJ4MjM4MWtDaStLNDJoRzUydFNQYU1hb1dTb0xQY2Zrb24rc1pYdjdEdEtwZi9HTzdhcUMza1pzRGpva29haHJGZGJWSlNTZWhrNGp5K3RzRHplQnJKSjBrMVZrUnJHN1NoVHZjTmd1cjVucVRUTEE5dlJMQmJNTTlhNlI1NEZ0Z1pQOWFKMU1aMEdCcUVpMnF6Ui8yd2tYQlhwcFhZdi9TcU1RV1dhbTVsSHBMVktxaDN4ZHRjNFdmck9mYldsbU1PNXA5Z0JUSFp1YUcxVGFkZXFRVVpKQmZBS01ENFdSR0NsMDFaeDRTVzE0YzZrdnFKdXExL080N215L3RsVHlLWndpYlBkQTNRMVVGd0I3R2Z4anEwaDN2ckxFbUNrS3Vsc0VBUkN6UnZNVjJSVnBVbFpUV240Y1Boc0hjcTNROElHSUYyKy9nOENFSU4vMU8xcVMvMkpXcXlDNmtIb0w4Y2R2R0VHbmkxSTNDTk1JcXhxaHhJL1V0R3REc2VwYmwrSHI0elh4MzZna3BCbXBoT2xkTFVYTHAzVEtibVVZRWJSWHcvZmRmeFQ3WDdZUFhHQ0hHVG1uTzk4WkxDOTA2Zmkvekd2b04rNlpzbCs3MkpWMGxJWEo0V3dZdWxFUmZHbkFDWGNoa0Yzei9ITWR3elcwTUFFaXptQmwvREo2ZUoyU01PSG1Uc25YbElGRDRlcFRrYnFBQ0dpZ2I1UExFdHdQRVRjYkNRckM5YUtTU1FnSTdEZXd1aWlxM2J0Y0RUWkIzeEI5WWxlbmhpU0FXNjIwcmwzc2ZjY3d3eGFSOHBDV2Rzd0x3dmFxcDhjM01PV3RCc2xPcmVTSkNEcWgvdzBYbm1WMFJVWFpNM2JvUmkwVXhsaHVUeDFlM1NTd09pbTlOczNYV3NoTmI4Lzc3VkhnUWhRVFlSUU1NRllYaWRmMElCKzBtSUpocWNoQTlUeUY3dGRjSDhrUUJUSHNEWS96bF
pqK3EwNlFMd0JkbTkxc3IyK3VzZmxlaXB3WUMrcmdiNHROVnA3VU5rYkVqTnR6ZWZsTi9VRTlkbHZtT2x6V1dtZkh2NGVkUGkzMmJmeUNRS1d6SGJVVEV3NU0yVFpsZnpNaTFWUjVsaDBxQ1lqaDNITUlmL2MwcHBKd2I1b1lFTnBBenlxbnlmdmlTV3lBYzc2L1l1VWwvb2FVaysrYzBZc2d1TGo5ZGFQdVVvemhoZ3VjSytQRGlNckI0ODU1Mk83VWg0aHRwNmZ3S2dJa1JCTVFIUTd6MmV5WXovV1AwQm9ZZVhjOGc3aUprclhFNzA1bFo1bXhGU0poT3E1WlNleVJSb21pUm41K3VRemM5ZFdWQjBYb2JURXdOc0VRM2FIZ25JY29BczY2UGplUT09PC94ZW5jOkNpcGhlclZhbHVlPjwveGVuYzpDaXBoZXJEYXRhPjwveGVuYzpFbmNyeXB0ZWREYXRhPjwvc2FtbDI6RW5jcnlwdGVkQXNzZXJ0aW9uPjwvc2FtbDJwOlJlc3BvbnNlPg==
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/tests/backends/data/saml_response_no_idp_name.txt new/social-core-4.5.1/social_core/tests/backends/data/saml_response_no_idp_name.txt
--- old/social-core-4.5.0/social_core/tests/backends/data/saml_response_no_idp_name.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/social-core-4.5.1/social_core/tests/backends/data/saml_response_no_idp_name.txt 2023-11-29 09:52:23.000000000 +0100
@@ -0,0 +1 @@
+http://myapp.com/?RelayState=%7b%7d&SAMLResponse=PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c2FtbDJwOlJlc3BvbnNlIHhtbG5zOnNhbWwycD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOnByb3RvY29sIiBEZXN0aW5hdGlvbj0iaHR0cDovL215YXBwLmNvbSIgSUQ9Il8yNTk2NTFlOTY3ZGIwOGZjYTQ4MjdkODI3YWY1M2RkMCIgSW5SZXNwb25zZVRvPSJURVNUX0lEIiBJc3N1ZUluc3RhbnQ9IjIwMTUtMDUtMDlUMDM6NTc6NDMuNzkyWiIgVmVyc2lvbj0iMi4wIj48c2FtbDI6SXNzdWVyIHhtbG5zOnNhbWwyPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YXNzZXJ0aW9uIiBGb3JtYXQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpuYW1laWQtZm9ybWF0OmVudGl0eSI%2BaHR0cHM6Ly9pZHAudGVzdHNoaWIub3JnL2lkcC9zaGliYm9sZXRoPC9zYW1sMjpJc3N1ZXI%2BPHNhbWwycDpTdGF0dXM%2BPHNhbWwycDpTdGF0dXNDb2RlIFZhbHVlPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6c3RhdHVzOlN1Y2Nlc3MiLz48L3NhbWwycDpTdGF0dXM%2BPHNhbWwyOkVuY3J5cHRlZEFzc2VydGlvbiB4bWxuczpzYW1sMj0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiI%2BPHhlbmM6RW5jcnlwdGVkRGF0YSB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiIElkPSJfMGM0NzYzNzIyOWFkNmEzMTY1OG
U0MDc2ZDNlYzBmNmQiIFR5cGU9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI0VsZW1lbnQiPjx4ZW5jOkVuY3J5cHRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNhZXMxMjgtY2JjIiB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiLz48ZHM6S2V5SW5mbyB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI%2BPHhlbmM6RW5jcnlwdGVkS2V5IElkPSJfYjZmNmU2YWZjMzYyNGI3NmM1N2JmOWZhODA5YzAzNmMiIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI%2BPHhlbmM6RW5jcnlwdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3JzYS1vYWVwLW1nZjFwIiB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSIgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiLz48L3hlbmM6RW5jcnlwdGlvbk1ldGhvZD48ZHM6S2V5SW5mbz48ZHM6WDUwOURhdGE%2BPGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlDc0RDQ0FobWdBd0lCQWdJSkFPN0J3ZGpEWmNVV01BMEdDU3FHU0liM0RRRUJCUVVBTUVVeEN6QUpCZ05WQkFZVEFrTkJNUmt3C
kZ3WURWUVFJRXhCQ2NtbDBhWE5vSUVOdmJIVnRZbWxoTVJzd0dRWURWUVFLRXhKd2VYUm9iMjR0YzI5amFXRnNMV0YxZEdnd0hoY04KTVRVd05UQTRNRGMxT0RRMldoY05NalV3TlRBM01EYzFPRFEyV2pCRk1Rc3dDUVlEVlFRR0V3SkRRVEVaTUJjR0ExVUVDQk1RUW5KcApkR2x6YUNCRGIyeDFiV0pwWVRFYk1Ca0dBMVVFQ2hNU2NIbDBhRzl1TFhOdlkybGhiQzFoZFhSb01JR2ZNQTBHQ1NxR1NJYjNEUUVCCkFRVUFBNEdOQURDQmlRS0JnUUNxM2cxQ2wrM3VSNXZDbk40SGJnalRnK20zbkhodGVFTXliKyt5Y1pZcmUyYnhVZnNzaEVSNngzM2wKMjN0SGNrUll3bTdNZEJicnAzTHJWb2lPQ2RQYmxUbWwxSWhFUFRDd0tNaEJLdnZXcVR2Z2ZjU1NuUnpBV2tMbFFZU3VzYXl5Wks0bgo5cWNZa1Y1TUZuaTFyYmp4K01yNWFPRW1iNXUzM2FtTUtMd1NUd0lEQVFBQm80R25NSUdrTUIwR0ExVWREZ1FXQkJSUmlCUjZ6UzY2CmZLVm9rcDB5SkhiZ3YzUlltakIxQmdOVkhTTUViakJzZ0JSUmlCUjZ6UzY2ZktWb2twMHlKSGJndjNSWW1xRkpwRWN3UlRFTE1Ba0cKQTFVRUJoTUNRMEV4R1RBWEJnTlZCQWdURUVKeWFYUnBjMmdnUTI5c2RXMWlhV0V4R3pBWkJnTlZCQW9URW5CNWRHaHZiaTF6YjJOcApZV3d0WVhWMGFJSUpBTzdCd2RqRFpjVVdNQXdHQTFVZEV3UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUZCUUFEZ1lFQUp3c01VM1lTCmF5YlZqdUo4VVMwZlVobFBPbE00MFFGQ0dMNHZCM1RFYmIyNE1xOEhyalV3clUwSkZQR2xzOW
EyT1l6TjJCM2UzNU5vck11eHMrZ3IKR3RyMnlQNkx2dVgrblY2QTkzd2I0b29HSG9HZkM3VkxseXhTU25zOTM3U1M1UjFwelE0Z1d6Wm1hMktHV0tJQ1dwaDV6UTBBUlZoTAo2Mzk2N21HTG1vST08L2RzOlg1MDlDZXJ0aWZpY2F0ZT48L2RzOlg1MDlEYXRhPjwvZHM6S2V5SW5mbz48eGVuYzpDaXBoZXJEYXRhIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI%2BPHhlbmM6Q2lwaGVyVmFsdWU%2BTElQdkVNVUVGeXhrVHowQ2N4QVA5TjV4Y3NYT2V4aVV4cXBvR2VIeVFMV0R5RVBBUDVnZ1daL3NLZ1ViL2xWSk92bCtuQXhSdVhXUlc5dGxSWWx3R2orRVhIOWhIbmdEY1BWMDNqSUJMQnFJbElBL1RmMGw4cVliOHFKRy9ZM0RTS2RQNkwvUURtYXBtTXpFM29YOEJxMW5Ea3YrUWh4cmQwMGVGK2ZMYVQ0PTwveGVuYzpDaXBoZXJWYWx1ZT48L3hlbmM6Q2lwaGVyRGF0YT48L3hlbmM6RW5jcnlwdGVkS2V5PjwvZHM6S2V5SW5mbz48eGVuYzpDaXBoZXJEYXRhIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI%2BPHhlbmM6Q2lwaGVyVmFsdWU%2BRVpUWDhHTkM0My9yWStTUVlBMXRudHlUTTVVNkN2dUNCaktsVEVlekZPRjBZZHhCWUdFQVVjYU8xNVNKOXBMemJ1L1h0WGxzTkVMZTdKdEx4RUpwYUxubWFENnIranNWczdLaTBLNHRTMGNBUERDWHV2R1FoMmFOVjVQOGJ3N1JWUGhLOGQwYlJ1RklGR09FOHMwTTZYOUpxWDN4S0MvL1lSbVVoeDlybnU3ZWlwMGh
5ZitPaUZiVGR2SDY2NTB2LzQ3aVdKcDNZeFlUV0QyMHBNbVRJMUpwWUEwYjByWVFQRkR0RU93d0JxYktxanRJc3ZYVFJzeXJhQkxvbnFOeHN5dHpEWHEra0JsMXp3WGUvSE5QcUVQblczdnNxaFhZcDVGM3dkWThkKzNCOTRMZlpOdUd4a0p3VDNzdVR0OGY5VHRBSlI4VytBUmtzT2M4eDBVaVNsVG5BNHFHOTBLMTR5dkVoVHcvd2drZjFXV01RT3dpZDNpakFYbUV4MU5MbVZvYUxYb3p4VExkTjN6YnJ6VEJIRXc3R2J3ZEdrdU5pMlhZOW16YUgwaWtGRm51VUxjMHUwc0pycEdGdzlaK0VlUk44RzNVUVZ5MjhtS2g3ZFBwWU5KbzhyajIxZFFaK2JaeUtTUHZablU3REkyakdJRE5US1g2ZkVyVWFINGlOTzN4cUU2Vk90L2d4T3BMNE5VNUhLV0Q0bG93VzcwdUJjVEVQRmhwaThpYUovdTB6YzUvTEhvdVBjMzByc1RLZFc5cmJLL2NWaHNQUHErZzA5WHZpZ0QweTJvN2tOc1pVL25tRXFiSzBKOTBrazhCR3I5cXRSczY4bUJnSURtUHVwUkhwWjM4eXNnU2VZN3V0VlVaSG5tQ0dzTzZ2NDJ6OTVOK05Pb3RCTEVZbFd1ZEdzYnowQWc4VkRDSlY5ak95QW95MDZyL1AyUHBsOFhjdmJza2d2T1BMMWdDNnVYbVJJS1lmOEw4UDJCNXVjN0haK0dtUHNOWXRLS2VKRDFFUHovdCt2NlBIbXNVb3dsSDhSd3FMRHdtMUF4dlNLQTR3UXBlQ0dQd3A5YXRYS0lWMS84NUZzRWMzajVzNjd6VlRybThrVEpydXV2MDZEdFVRZDNMOFdwTkV4cWhQait6RUp6U3RxSG04ckhNMVhNQUVxdVozc0xycTVqLzFSNlpqS0dOdFJCbjhwOE5ERGtrWm0vWTV5TXlJNXJJ
S3U5bnA3bXdaaEVpeWVHeHdxblV3VVMvUzVDRjNnMHVidnd4eVVnalVvd1ZvTkNqYktBbkdtT2VCSW5abkh0eGdIVUhVOUVlTFdyd2pRc3JtUmpJV0R2RkZQa3l6SzJDL20yaitubmNxc2E1OGRLVXZxcGR1VTRJYnNPQng3UGpXdXRBNmY5bXd6YWxyRU1NK0lGR3VPdk9HMC93eUdzQjZLREV6bldjUC83NkQ4angzaHZFSlAzN3REbFgreGM4Qno5TXdKdkd6VG4xbTdCb2xoR0lzSXlCTys1ZXpXa3RDWVVIUURGVE9wbXA0MDlOWHp6ZUNTUGY1U2NDWG5YYjRPd01ULy9VM1JFUnRRbGMrNmU2WG1JRjhoRkJVc0taUUJsS2ppSDkwZHlzYWlsNmN2V3UyQW55Q3QxbWxXcHFLc0MzU2RTRVZDTG1qRjlUQUFUMEtFSGdZQjg3RjZtZUpTTysvOXkyZkRuYVVvUUlUVzdubnVuSCtkT3dWSGZMU0wyL2N5YTltNlQzR29TSVNMbGJPMVRzalhKclVkZW55OTcvM2tkNmhFQlphdGY1U3NETFQ3SjNsQUVJNDROeXJ0NkIxQWdod2JNdkpqd1JNTXRNdUJLc3ltUytKVzc4UFNEWXQ4MG9waDJQTTc1N0tBNCtUMTAvYnZaQkE5Vk1OdVpqNVV3NXRWMnFIS3dwS0t6ZVVETUFiQlBRaGpYcXlQZzFKa09rd2RQMUpnOHRITjJTelBZQTlmT1htV0pBZGJDS2tMb0F4ZTV6cDZBUzYzS3FXMmFmSUt6SHJ3RTJmS1VtamppeURvMnNuMkJHbWtBaTRzbnpiVzc2SUQvSVgwd044aDBaQ2VRc29vKzdtb1RCMEJxSnBkS1MycXlsUktoc3BSTC9henVQdmxaK1pwckJxdXpJdEZkNFVLMkpzQkp6VXcwZkpxcTV1bk9PZENzVWM3SUU3QTNmZ1NmZ3NBd1R3WFZJMEVoM
E5ySWZpMkFKV1Z2VFpEMys2eFZ3dS96WWhuVjc0VXkvMFE4Mi8yQWtpSGpFRjNJVGNLWHdTNTB6bWtLakxjZDJqa2h5TUFYMWRoQ0wwZElFMUJoN0RNamVvNC9YbjBqSlpPL3Rrbi9xZmYzc3RNb1BYVG9KTnBIU1RjR2ZheGtaMzJYNCt3Q0xPc0VBRWxlMVZSY0kwUkZyOFhHTSsxWU9BTjBodFdGcFMxaG9kSi9OczJqL1FnUVNEemNpQ1FZeUFDd3lFRWZDZjZybnR0VmJyTlJQZWlmSHhBM3B2UnZ5ZGRhNDE5cXl0ZXI0akJ3cmw3ZUpuVnJ2VEprR2VhU2FRbDdXWk5SQXBscXRnNnZPYmpiMHZDRWlFaFhKbmNzQUhxcXp5QTRGeWFUVGQ2R0FySU9adUNxRWVoWk51T01lOVlrMVpya0VkR3pIalJESWk3Q1BKQk12NEZ4ZHI3bnJvN0I1WEhKb0ZMNE1DSUtOWWU2aWZiTUtYOU5uN1FWdnphUmY2UXlaSW1BWENQZndvU1BkN2x6NXl3UDJLSUIyaGhFMWt5eVZ5YVc5T0praWpUY3dvUnZrSXhIU0RqMXFqeGxueXh0QzhVZ1pNWmlwcGgzQXJpcjRiekIzUDhIbGIzejZ0OW51KzZMemNiN2ZObVo0UHluaU50Vk9OQ0lHbEh4dTBSY3hQK3cwUXNsM1BtTzJLaHBpc2RIanhvSUJ1YVY1NXdoTlFFNmdNNFBrT0xINDc4Rzg4bUxkd2s2RFpkWVl4L2d6RWE3b3ZIL0pReFp2TzRLdFVTNmZjZHJxV2thTFg1cEhkNkdneFBGZ2NFc2Nad1ZqM2hCS0xFQmE5L0dodERINEhzRnNRbmpPZnNDQkNzN0tjRitmTi9oSUdUeHFqTVlKVHJRYmNtdWF5dk9xR3RQMDFPcXltR24rVm5FSVkzKytQcm95SFN3K0Q0b0JIVG1maFNXRmJLZCtuTlVFS3BhRVIxNk
dCU256WktQRVRVSmdRWEw5QWJRQ3RXVjFHb0UzRWNnMDZYaVd2aHFHakpGNldtdEU4dHY4Q25rZmxMNm91TDRvNldpbmx2WnNEdkZrS0R6TDkwUTNsWC9NanBtRTFpWU9uYzdISXdEVGwraFRRcHdsYXJiTDVUNGNkZTg1akNwYU0xU3p1TStiQU5zMHlXVDA0ZXJUVFc2cnhlbXFDTHAra202TVVMTlZOcE1CazBiQjJpRU82UlRtc3VpRlhDUU1xdU5xZjdkWXUwTFFCZzQ0MkJzU1pBV1ZrWEVZblduOURLdTRSby8veEFsb2h5VHozWlZmSkhuWVBSdDloSUErRHVUL3c4T2ZzTURIWnlCelUvL0JEa1NiNkxjMHdraVA3QlhIdjBoNVdud2dNWUxlZDBPalR5UWI2aGxpVnQ5b0FjaDRFVy9EZUlBdkpaQ1BYVm1pUFFYTGVsOVJIRko2bXFiYVo0TCtaZG1ONmQwcFZNZ1FveXhmQTR3dEwwYVpiNnFZYkhibjJMd2VBQVZwL3M2TzVlMVExdnZpZDRTWHo0a2l3RW1LSStIeXZEQ1pnekpQQVN5Z1gvWDJFWEZ0NGV3SjVmUFQyVXZmWnhQWlpqMFZGSFpyUFQwWVd2VE16bjUva3hoT09oM2drVGdDSmNwNWVsZnp4cEFPNFl1a0NoNHJXdVNndDRqVUJyaWNYbFdWdWo5U3JSZVhUalNHTktLK202NWovUDllNHRHT0RkMk9BbjNKTVQ3Q3FuaDhreTZpZjVjbmpVMmU3UDhTZnBONGwxWEFiZEZEcGk5bVJYamEyTzR1RWFHNGNvNW4xcWNDT3ZNMWYyblFBY1ZGNUFoSXhueS96TWhmU2l2RXdOQ0Zyd2tBWDRyQVE0WldUNldFakFyUG5jb1Y4Z1VRclhxQVA4NDJmK1lNWWI5RHFncmFicEg1a3ZuMnQzcWRldGJHODJ0QWlTamhPcUxNYW9iU2F4cXdWa1l
UOHRTMW9rUUt2MWZoZ2t6elpEOE5IQnVQQzdNVHdXS0VCS2tDRUUzRWRFMXhNQURLd1B1M3NSaGpSaExXZyszZ2srejJtdlU4cTBhTlc0Y3hObUdoekx4eEY0Q3NFNStMQ1cwOWFpUVJOM1VvWmg1aktBZzBiMlh3WHBLS3pycUVTY1BYdnI0L1dWUTMyMm5qRWRvQVdXR0t2WnBKMlRlREo0eDdiT21LVElFc2RHWU1UZzFVaEU2eFFQcnhqS3dWeGFJNVJyaVE4a0xpaGgwa0t0WHQvYTVsSDhzUjVwR0ZISGZ3dlNVb3liQTB1eUVDNnNRVitPbTVReUZmRmpqZHFCOGNpOGxQS1hLTHFCTHJ6bjNmUkh3TmQwbzFiRTg0aGllTkx5UlhZVmhrRCtFNEpGaVd3ZWt3U3VWM3BjQk9ybnRVU3RoWmx6M3hIUURUVGNJNWliOFJyQ2swZEZ6YTgvQmw3VUdtWlUwSXZ2UmdvVXF2TXNHT2dMY3pGWmRpZnJ5aGNiUTY4a2ZzZ3lCMHppdC9MN1BSV3V4RkdYdDFoTVZSVUZ3WXBJS04zVkI3cXVKZlgwamZsU1JaRndMaXdlK3VhYndmTVZ6c2doajUvOXZNNzcwK0JaMGtJcE45NzBTMG5BbHl6R0h0aW1nTUl1RXFhbUt5QTNTQlI1aHZIYmRyNENnTHFUbXIzbFFnWmpnSkNvN1FXYUJWTXdCR0RpdzVOVVhUUnBycWc4U3h2eDlnNWZwbXMrL0o2QjFEelNTM3ZRZzgxdHFRU1ZDWVJpc0Y3M2VqZlFuZk4zcUszd3RJRDkxQnRISmFvMEFaUUdKVFpKOXVsZ0kzV3hzdWR4ejB0VHVpNlJlSWpmSWsxekZRdFpwRExGMnB3NGpTQVdQTlJqNDBYdVIrRzFUVlI3OVFiME9FYkw4RDFoTU5zWmo3MTZNbUhSOTlKaUxNdm1FWHV5a1V4VGhGYjRMTzZVbW1kU3UwTlBp
MXQ2NmNkYURpQWhMaVBFTGdUNkZsenA2T2FGSGNSNjRncEtyemtTNDJONEhJeFpNa2R6M0FsYkRhK2pOWHZPR1l3UWl5K0xNNENZWGtrTWtHR3ZTWis5R2xWQ0l5RXBJaXIzbEQ3bmdzZGk4emxGWDYvekNaczlQSUtwZFZlSGJGZi9GS20wV3AreHI0Ykd0R0RrVHR2Nk1Manh2YU8zanFHaUFWeERKVWFkTVBlS2VHSm5uempTdnpKbGdOVHV3c3grRnF5L2dPMkwxMGowWmhDWi92dE9NelVjNjl3cGhKZm9FNzU3V3lOeFJOcThJc0Y1Tkg5Y0x0b3UvbUNxOTc3YnZPSkRrSURCN3lKWEJ6YUhVQkJuSXJra1Qyemg3bGJmUm5SREJUSFZraVZMazVESUxqeC9XL1BSZEZpUUM2SzRmZGx4Y29JbzlMcnM4ZFVWZkt2TTNNYnJ6c1hGT3ZtVVh0K3NsZldvd3UyTC9ndG9mRFhvTUJZZnlEcWIvWlRaRWZ0MC83blliRm1relBEUlZacU5SR0F3YWZVNTU1UjB2SWtNbGR2VjdKUzhNT1BNYWlXQVBpelNLRG4yRzNvcys1MzRFQytaOGZnWmFPVWpZL0xLME9vME9RMmhvNUV6MGNMYWpwUjFINk9FNEhvUm1ydjQzZkFjdGpYc0hYdi81RXg3emdrWk1NZXZhTFNEdjZtcjFGcDk4QXR4L296VTFGVDBoMDUxcVcwR0g2VWpRRXk5aExSZDBBMnFkUTRMZXpReDNvbDFTblhsamt2MG4zTXFlaFozOC94bzZhdHFDdkJtQkc3amlUdXd6YnlVUngzRm1TM0NCNllOYnFON3hPYVRZRnlkOEZDL01nY0xGQmMwS3F4MXllQ2VUd1hucldQb0dvdllVQlYxYjA1cWtIa1d5V0RUaCsveXJFNzF0RjNxbUQvd3F6cUJyNE04NERtWWVuQkdFOWxtb3FIZEMyWnRpK09KV
FZKcmlHZWxQQ3RjZnZRaUlQcHdDZ3BFNmg1ekZhRndLajRuZGtBUkRpTC95L1EwWTZxNU5rM1g5RURlTmdjY1pIcFdmOUpKQ3M2a29wdXRtYjdDczIrbVJYdER1S09DaGY5UVUyN3Bmb1NJaklYK3NGdHY1c0hhSms2aHBZMlpzUUhzaTBYbFowc3FMTnQ5ayszdTVnYnBSU1JCczlHaC9BaVY0dkNyYTRkOTh5U0dCdzRSR1FhSStpQ29RaG9YK3lxc3VrYkx6bXJUU3FXMVRXaXJReUlHZ1Q5VnFERE1mUzAxeGdQSlNFSTlIWlp6TGlFVXVGMm1CMi81Y2dqaEFUaWQrdGV1UVB4aldhN2NSc2t5YUhuTENjQURVUU9ESUFPVjJDWXROcnAwY29ZL091S3ZzaXlJT0lacVJ5dE1PMGVNZ1ZJWTBzWmdxeVEycXlubUx0NDBmWmd3SFVyV245Zm9TYTNtMkVRTy9uOS8yU2NuelJWdVZpVnNjM0tCSElQL3AzNlJlSWowTGlNcCtPQ0p3SHlLVW1UeDRBU1V0dXVhWktlRHl1QjlxcXJuUEFNWUVCeElsTGFvdXMzV1pHakIrcW9ub3QvNmk1UE40bUZjbHFDcUxhMGJHbks4ZnJxYy9yd2tuVGV0YUE0c2tXTEw1L21qNEd5MitFQkh3a0x3UXd2K0FKdmZTOXYvNDl1LzY0N1ZFYW15UzdZQ2ZEUHNBQUREQ1FFcWJNQ1h2Ui8xVmEwWi9YUWhoNlkrZUt0MEVpRDdpNmRZODJtQkFoNEJMRmRVV3VGZHVrdUVwaGZ2WXB3N2loVjNxTjB1NFM1NTRXU0dUa0ZsdlpYNG1hbkF4a1g2ekQxS0NWaEFMdEJnSDgzdkhxam9uc0lwOFMydHgwZ0tiYzEreHVaRVppVWlNVVlVdTByQVFsRFcrZHJoN3lVRHZqekFHSnBmTk01eThaMW45em93VzZ5YW5VZWFBNjhSZDd5TU
xobFd0NVh6bGhBTVZDZmZYZ0pFelR1YzJEbENVOXNMLzVTVkRaV2N4R1E5aFM1cnJtK2VyQ1Jxd2FJQk1DNUtza0RCZHdOWmh2Q0FCdEpqS2Vla1FUSjd5MFp4SGNhbGVCaU1rbkYwZVRDZzFvUEhPUVZLQ3V3NE94cHRZUS9xS1V0TEFIWFZ2OTlLMGRWcWZDMmpVQWlHQmVYa0t3aGRYTGtJYlZxU0EyZmxraXBBeEhYNnByUEExQjF3eTVab3hPUFg4RVExOW92eXpBbFg1dHU0OXEwWC9PSExFN1o5T1cxenltRXR6ZFpyNXJZbWtFcVdtcHVSNU5jeHFwTWlZam93dUNXZWhubzIyeG5JM09IQ0xDZkFKaHRrcklhL1hPc0tZRFpCRzFJMGJsN2taR2R5cEtUQlhYdXl6WE5WUlU5L005ejhaVytwdG1oZ2NOUzBJS2VaaSs5bFl4cWRlS3lnbldTTTV3czdSYUpmNlRRZTNSaWJZUjFvNkhwRzB2VHpiTEtQZTZnRjJGODdiWlBJei9mcTNLWnZiM3UrSnhZcCtJVjBtQi9VN29YelhRRk1RK3VmWllpNzUxbkx6WlVxRE1ybU53TFJPVUFNUk8rVnJtblkwSVB1cFBVMXc0b0hBb1dnVGRnTk5pNk1uTFQ4V0pmUlhjT0pKMk1lbUc2K2ZNeHNZUU52UVJwa1RGY05vaFV6Y3ZjcHJ3NUV3WEVZQTJzbzczL2MvY3RIRGcreU05YlF4REppUlltRnFydkhYb29hS1JyekxnUjZLVWdoM3ltaWxaQ0lSSm9KbTE3aEtHM1pxTTE0Lzl5OUc5OE9BZjNkVTlqMDk3aUNlaEc3a2VxYXRJQ2hFWmJqbmQ4Y00rS3djN2FtVWp2ekQzQmNvMHl3MDJxT054OWF3OGhSblZiWDZhdkRJbGhySHZ6SU44MzFvUjljRHBwMG1DUEJXZFVDQlNqVGJ1RkZqRC90WElSbGxlT2J
raFFKSUdSNlE2U1MxcXkzT29WT1VheFl6THY0U2s3dndrQUMwUitGREVIeVFZbFVhbVVkTWcyUmdwRUdhSVd1V3IxaGNnRm10QmREV2g3ZFBuWTF0U3VKOC95MXp4NkRvN2ZJYmNFenBBK2E0ODNtRG5vemdld3VmaFdqVCsvUS85WlEreFQ5UWJBT1pQSXhHV3VhSXVrVk8zSWxvZDhJM1NGZFJCTHY5ZXBDNzFLeXpSdVlpMktkOHJ5NVNINit1WnMxUHlZUlpRakdDK3Q4VzRtSE82Z1lFRWVXSkJ1UWhnSHdmV2xhZXlWb3hac0NBQVZKRUllT3hPZDZtNW45OHRCUDdHTmgxT1M0eDRCS2FVN1A0UVQzNVVIZW5meE84WWFQUThmbXlobUJhSVJVZklBTVN2ZTJZRFp5SWNNTTkrN0tNSVVabzJ0eXRvYzdCOGVvZzBNaUkrVkpFdFg0c29FRjFSWkhQZVV3NWlCTjI4OTh2MmVTcGNnVUJhWHFzOUN5VlZtTVJQMEtLUDJ1REt4MUdJcUhjS0ZCOXVQVWRkQS9vT3dNa0tVUWsraFZVVDVPbEVMdjd1a0FBUEE0eE4rZkczVmYxeUVKV0FiVGx5dWtGcThjNXBTRkY1cXVHbUgwVmVpQzVvVEFka1VES3Z6WGhWWUs5c3BRYjNVZ1Z0Qld6N1ZScnlOUVVST3BIZU5xeDlhZHA4YWREWCtRSHJUKytYblN4VVI3SVdGanlNTkZJRWlMWmkxdks1UVVrZlRDUU9qdjh2SHdiUi9MRHF3Z3M5bXdsT3pPY0RLdVBVK0dTb2lnVFdRejRWN0N2SHRaVDI3WUdKVG44RFFFM3IzdjB4aWxvODJ2U3VXSDg0WEU3VEJsTUpFb2R5eDNDRngwVUVkc3VhRHBPSEV3UjZYNlUyU0xseERYSXVZeEhlNXh2NjI4bXU0bDRMSnBYUjhkYmljTEZKQW55Q0FVeDJLb2dDamt1cmU4
bXNUZktDbG8wamFlN1hNR05PSk15b0ZYbVlHZUh2eGhNUGMzTEtYLy9VY1p0c3p3dFJrQmNFdURXQysvQWNWZVBOSHVOWWI5MEpIcnRucGg1ZDlhL1lpTkpzY1N3QTFwUVZrdW1TQWtPQWdLdWRzcnl3c0N3Zkg1anNydVpHUTJDd1hKRXQzUU4wU2NLUlVnT1NCQ3FYa1BqZDVSVzJuOFZpamt4anovbWptakhCNmk0eHM5NEU2Nzk5STAyaldYNVd3UDZhTFRaTGt5TjhxNDUxT0RmeUZVZEY5WWsyZXQ5VUpsV1NzRFJMSWVCd0ZyQkEyZTdyRWsybWFLVUNCRW5PUWM2bUhVMXQvZ3gzK1VXVVFXbkpMZVUxbWUvbkFEdy96UGUwd3d0Vm9BaERZdDBoR1hQblJydjFoUHRGS01CeWtqckg3a0J5U0R3WDlQMi9XZkNkQlE5K1J4cHRsR2hvRmdpMUs0NVlOeEpEd05wTmd5MDV2WXUzVUtrMkpRYVNGUzcwK0Y1NzluRE5RenZpK0pPRlRsdDFmWDJGNXk5NEV2NHZobWRQSmRVOFVVRjU2Ymx0emxKREVFdmsySlFrOTM0aHpwTXJGZ1d3ZHUxUkxxSEhCN2h2T2hnaHNqV0ZGY01zNjZaRUtWcVhKUytxWWNVMHk0akwySVQrNlF2N2pvQ3BWbUdzUWtGY1FyblhxOUJiOTdaUS96UCtwaldmWTU0UmNRVlMydUU1YURObVVyVkdLK3E0d0xRcUhuRVViT2puSHFFeGlacUtxOVdRaUtUK2c3QS96bVlIQ2k0YzFTejRNVWhHb0t6U2l4aXoxYUNJUEJXdy9vczR2cUVqbXgzOGx6YnV0OWNWbElzeGNkTUpUTERRK3ZOZ0YyY1ZRaVcxRTQ0d3lWcnI3TUFaOE9KRVpFSzlEZWt5MzJQUkFuSkRUVXVqdGFscmJ0T2VOczhyS09uTjcvNFRqUEwvZmRlbEI4bjA4W
XdSNXdmbU42VGpGWUhRSDFjbUZmK1AvNUxVMTI4Q1pEYjNQUStxMlFJazV3aE40eGwvcy9lb29pallmeWtDcm5aSEhHWkluTGhoU2pWbk5ISWdTL203VWV0NlhBTDdvZUl5UFRLeHVnbDJzRWtUQzNnZ0tjTnFZR0E5U3ZlYVlaQ00vWHNQRUtQbWs3QmlRNmprWFBKaE1yREd4Vkc0SW9aSDgrYjBrUWJYR2l0Mkw0L3hZdHh1bTVzcFNPSjdsTDltVFpRNnBxM2JOaTEwZU1mZ0ZWaDc3NU5JRlc0SEp3U1FtaTU0bk11blZTQjhxdjZKc0w3SGlsZ2N0ZHFSNThTTjVad1lCa2dOR1hzYjA1QXJWemVXbHh1Y21BSHNPT3dyczFnMzh6bTRZN2ZPZmducmFhV1kxanZZOFlEODZQZThkZzR4cE5paTg3UnNDZk5WK2NKVmMraktFdnpuZVY1Zzd0RmlxZCtsZHp4STlKemdSS2t0WUV6RUpRSVU5M2UvclJaN1lrVkZtNVV1cjVhMWYzcG83T0VtYkJUc2MrQ1FaOGNnYmIvbUphRXJoa3NyL3JURjBNcjNxeDl5SlJWSEJ6YWNWd0dScEFRaURPdnJkWU4xQXBVOTRyR1lrVFVzdWs1YjE1Wll2QVZxRlRzVlVMaS9HY29mbEljMm01Z2RFTFZOblRmdXY1Zlk5S1NlWHFoUU80S0pOYVZmbHAwQ0VKYWFFZFNLUXJJNXRaT2w1RkE4VXZlNmxTWVd5TVk0REl4a1RiT1JoWHVBdzR6b1RTMjgrN3d2TXhydVBkZnlKbUJCTkhQdCtEYmdKNHovcHJZWUhpTmFMTXNZamtQZE44ajNKZDczQXJFZk92Um52MzYxSVVVMFg1RDc1dlRSdlpkbzMzWERzanRlOU4weUo3K2lIQnF1a1FJY2pIVW9ic2RQN0hOajBVYWNSMHIvTmRlVTlGNFBNc1VLY2t6Tk4rZGhyMVI2d1
J2R1VZb1pDRWJaWlJMWEt4QnA3SElUNEVQUktHakIvdW1xTFhhMXl6RWx2QW1WQUJhMDFZN3dGdk4wM2Ywb25FbUhTM2w1d1paRmV6cjVibnN5T01XVGxhMU5kaW1ZNXNVeE15VFliZmc4dzB2cXNEc28zWFAxYndLdzZ3M3VIRGQ1UHBSWnVDSnR0eWk0ZzJGeWI0Ymg1UU42ZkdORTI2ekRGN1Y4QmJwZXJLNkFKQ0xTWm5kaDZMMTlPUTBram4xUGpEMGk4c1BZcGFXOWxVeVJkZElPKzRWQS9LemxPUzJ4M2s5VUtUdElsTTBUSVdtZXFIS0dYUVpocGpvVGI2VlNKN203cjZaaVlQMnVsQVVvZmVWL0o2eCtzckxEQXkyQ2ZFNnFrREZ1OU9NWDBBSXVnN3loQUtOMDRyT3hVNk5tcGtjOUZ4bXUvVS9vR3hHdmIzeFVFTDYwdE1sSE9EaWtqY1I5RDJrKzRwbEc1WnV0d0FIY2kwRU02WHRrVEhQOU5QMlRTR1VFN1E5SGYvU0VEc2V0a25hZXhvWmhDczJLWDFMeU5JS0U0N2pkMkR3MTUreDRRVXV0VUFTbzU5Q1lHMVFBeW9BVVhrV3dtbXkzTGdTUWp5T3ZLV25qaE8veWpPd0FyWGd0NFBrSVVnZDQ1N05ReFpMbU41K0J4NVJoQ0FHdkUxYmxOZjlMek9keGJiaG5VZ2Z1RDM5MXVSRkhjS2RYREY3ZmVqb3gveThtaWZJcTRWVzQyajBHQnFOQUtkK0prMnJCMW9hOTRiT2hxcVVzanhqWnlRaGRXTzhNblR6T2tOaGVpZXU2blYxcW5yZ3JHU2huWTNJMlczb29GNFNnczRjZ3drZ2h2dHpFa0xUbU5OUm83RTdudVRuMkxJcmlGSnlvTmZQdUp0aWN0S0JtNzRGZytkWVBTMlIzTzNmOWxBZWxiVWZjbzZGNU9EL3hkS1VuRTh0V3FOMExVcDlWQUptWVZ
YZFVDaGJ4MjM4MWtDaStLNDJoRzUydFNQYU1hb1dTb0xQY2Zrb24rc1pYdjdEdEtwZi9HTzdhcUMza1pzRGpva29haHJGZGJWSlNTZWhrNGp5K3RzRHplQnJKSjBrMVZrUnJHN1NoVHZjTmd1cjVucVRUTEE5dlJMQmJNTTlhNlI1NEZ0Z1pQOWFKMU1aMEdCcUVpMnF6Ui8yd2tYQlhwcFhZdi9TcU1RV1dhbTVsSHBMVktxaDN4ZHRjNFdmck9mYldsbU1PNXA5Z0JUSFp1YUcxVGFkZXFRVVpKQmZBS01ENFdSR0NsMDFaeDRTVzE0YzZrdnFKdXExL080N215L3RsVHlLWndpYlBkQTNRMVVGd0I3R2Z4anEwaDN2ckxFbUNrS3Vsc0VBUkN6UnZNVjJSVnBVbFpUV240Y1Boc0hjcTNROElHSUYyKy9nOENFSU4vMU8xcVMvMkpXcXlDNmtIb0w4Y2R2R0VHbmkxSTNDTk1JcXhxaHhJL1V0R3REc2VwYmwrSHI0elh4MzZna3BCbXBoT2xkTFVYTHAzVEtibVVZRWJSWHcvZmRmeFQ3WDdZUFhHQ0hHVG1uTzk4WkxDOTA2Zmkvekd2b04rNlpzbCs3MkpWMGxJWEo0V3dZdWxFUmZHbkFDWGNoa0Yzei9ITWR3elcwTUFFaXptQmwvREo2ZUoyU01PSG1Uc25YbElGRDRlcFRrYnFBQ0dpZ2I1UExFdHdQRVRjYkNRckM5YUtTU1FnSTdEZXd1aWlxM2J0Y0RUWkIzeEI5WWxlbmhpU0FXNjIwcmwzc2ZjY3d3eGFSOHBDV2Rzd0x3dmFxcDhjM01PV3RCc2xPcmVTSkNEcWgvdzBYbm1WMFJVWFpNM2JvUmkwVXhsaHVUeDFlM1NTd09pbTlOczNYV3NoTmI4Lzc3VkhnUWhRVFlSUU1NRllYaWRmMElCKzBtSUpocWNoQTlUeUY3dGRjSDhrUUJUSHNEWS96bFpq
K3EwNlFMd0JkbTkxc3IyK3VzZmxlaXB3WUMrcmdiNHROVnA3VU5rYkVqTnR6ZWZsTi9VRTlkbHZtT2x6V1dtZkh2NGVkUGkzMmJmeUNRS1d6SGJVVEV3NU0yVFpsZnpNaTFWUjVsaDBxQ1lqaDNITUlmL2MwcHBKd2I1b1lFTnBBenlxbnlmdmlTV3lBYzc2L1l1VWwvb2FVaysrYzBZc2d1TGo5ZGFQdVVvemhoZ3VjSytQRGlNckI0ODU1Mk83VWg0aHRwNmZ3S2dJa1JCTVFIUTd6MmV5WXovV1AwQm9ZZVhjOGc3aUprclhFNzA1bFo1bXhGU0poT3E1WlNleVJSb21pUm41K3VRemM5ZFdWQjBYb2JURXdOc0VRM2FIZ25JY29BczY2UGplUT09PC94ZW5jOkNpcGhlclZhbHVlPjwveGVuYzpDaXBoZXJEYXRhPjwveGVuYzpFbmNyeXB0ZWREYXRhPjwvc2FtbDI6RW5jcnlwdGVkQXNzZXJ0aW9uPjwvc2FtbDJwOlJlc3BvbnNlPg==
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/tests/backends/data/saml_response_no_next_url.txt new/social-core-4.5.1/social_core/tests/backends/data/saml_response_no_next_url.txt
--- old/social-core-4.5.0/social_core/tests/backends/data/saml_response_no_next_url.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/social-core-4.5.1/social_core/tests/backends/data/saml_response_no_next_url.txt 2023-11-29 09:52:23.000000000 +0100
@@ -0,0 +1 @@
+http://myapp.com/?RelayState=%7b%22idp%22%3a+%22testshib%22%7d&SAMLResponse=PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c2FtbDJwOlJlc3BvbnNlIHhtbG5zOnNhbWwycD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOnByb3RvY29sIiBEZXN0aW5hdGlvbj0iaHR0cDovL215YXBwLmNvbSIgSUQ9Il8yNTk2NTFlOTY3ZGIwOGZjYTQ4MjdkODI3YWY1M2RkMCIgSW5SZXNwb25zZVRvPSJURVNUX0lEIiBJc3N1ZUluc3RhbnQ9IjIwMTUtMDUtMDlUMDM6NTc6NDMuNzkyWiIgVmVyc2lvbj0iMi4wIj48c2FtbDI6SXNzdWVyIHhtbG5zOnNhbWwyPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YXNzZXJ0aW9uIiBGb3JtYXQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpuYW1laWQtZm9ybWF0OmVudGl0eSI%2BaHR0cHM6Ly9pZHAudGVzdHNoaWIub3JnL2lkcC9zaGliYm9sZXRoPC9zYW1sMjpJc3N1ZXI%2BPHNhbWwycDpTdGF0dXM%2BPHNhbWwycDpTdGF0dXNDb2RlIFZhbHVlPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6c3RhdHVzOlN1Y2Nlc3MiLz48L3NhbWwycDpTdGF0dXM%2BPHNhbWwyOkVuY3J5cHRlZEFzc2VydGlvbiB4bWxuczpzYW1sMj0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiI%2BPHhlbmM6RW5jcnlwdGVkRGF0YSB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiIElkPSJ
fMGM0NzYzNzIyOWFkNmEzMTY1OGU0MDc2ZDNlYzBmNmQiIFR5cGU9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI0VsZW1lbnQiPjx4ZW5jOkVuY3J5cHRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNhZXMxMjgtY2JjIiB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiLz48ZHM6S2V5SW5mbyB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI%2BPHhlbmM6RW5jcnlwdGVkS2V5IElkPSJfYjZmNmU2YWZjMzYyNGI3NmM1N2JmOWZhODA5YzAzNmMiIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI%2BPHhlbmM6RW5jcnlwdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3JzYS1vYWVwLW1nZjFwIiB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSIgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiLz48L3hlbmM6RW5jcnlwdGlvbk1ldGhvZD48ZHM6S2V5SW5mbz48ZHM6WDUwOURhdGE%2BPGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlDc0RDQ0FobWdBd0lCQWdJSkFPN0J3ZGpEWmNVV01BMEdDU3FHU0liM0RRRUJCUVVBTUVVeE
N6QUpCZ05WQkFZVEFrTkJNUmt3CkZ3WURWUVFJRXhCQ2NtbDBhWE5vSUVOdmJIVnRZbWxoTVJzd0dRWURWUVFLRXhKd2VYUm9iMjR0YzI5amFXRnNMV0YxZEdnd0hoY04KTVRVd05UQTRNRGMxT0RRMldoY05NalV3TlRBM01EYzFPRFEyV2pCRk1Rc3dDUVlEVlFRR0V3SkRRVEVaTUJjR0ExVUVDQk1RUW5KcApkR2x6YUNCRGIyeDFiV0pwWVRFYk1Ca0dBMVVFQ2hNU2NIbDBhRzl1TFhOdlkybGhiQzFoZFhSb01JR2ZNQTBHQ1NxR1NJYjNEUUVCCkFRVUFBNEdOQURDQmlRS0JnUUNxM2cxQ2wrM3VSNXZDbk40SGJnalRnK20zbkhodGVFTXliKyt5Y1pZcmUyYnhVZnNzaEVSNngzM2wKMjN0SGNrUll3bTdNZEJicnAzTHJWb2lPQ2RQYmxUbWwxSWhFUFRDd0tNaEJLdnZXcVR2Z2ZjU1NuUnpBV2tMbFFZU3VzYXl5Wks0bgo5cWNZa1Y1TUZuaTFyYmp4K01yNWFPRW1iNXUzM2FtTUtMd1NUd0lEQVFBQm80R25NSUdrTUIwR0ExVWREZ1FXQkJSUmlCUjZ6UzY2CmZLVm9rcDB5SkhiZ3YzUlltakIxQmdOVkhTTUViakJzZ0JSUmlCUjZ6UzY2ZktWb2twMHlKSGJndjNSWW1xRkpwRWN3UlRFTE1Ba0cKQTFVRUJoTUNRMEV4R1RBWEJnTlZCQWdURUVKeWFYUnBjMmdnUTI5c2RXMWlhV0V4R3pBWkJnTlZCQW9URW5CNWRHaHZiaTF6YjJOcApZV3d0WVhWMGFJSUpBTzdCd2RqRFpjVVdNQXdHQTFVZEV3UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUZCUUFEZ1lFQUp3c01VM1lTCmF5YlZqdUo4VVMwZlVobFBPbE00MFFGQ0dMNHZCM1RFYmI
yNE1xOEhyalV3clUwSkZQR2xzOWEyT1l6TjJCM2UzNU5vck11eHMrZ3IKR3RyMnlQNkx2dVgrblY2QTkzd2I0b29HSG9HZkM3VkxseXhTU25zOTM3U1M1UjFwelE0Z1d6Wm1hMktHV0tJQ1dwaDV6UTBBUlZoTAo2Mzk2N21HTG1vST08L2RzOlg1MDlDZXJ0aWZpY2F0ZT48L2RzOlg1MDlEYXRhPjwvZHM6S2V5SW5mbz48eGVuYzpDaXBoZXJEYXRhIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI%2BPHhlbmM6Q2lwaGVyVmFsdWU%2BTElQdkVNVUVGeXhrVHowQ2N4QVA5TjV4Y3NYT2V4aVV4cXBvR2VIeVFMV0R5RVBBUDVnZ1daL3NLZ1ViL2xWSk92bCtuQXhSdVhXUlc5dGxSWWx3R2orRVhIOWhIbmdEY1BWMDNqSUJMQnFJbElBL1RmMGw4cVliOHFKRy9ZM0RTS2RQNkwvUURtYXBtTXpFM29YOEJxMW5Ea3YrUWh4cmQwMGVGK2ZMYVQ0PTwveGVuYzpDaXBoZXJWYWx1ZT48L3hlbmM6Q2lwaGVyRGF0YT48L3hlbmM6RW5jcnlwdGVkS2V5PjwvZHM6S2V5SW5mbz48eGVuYzpDaXBoZXJEYXRhIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI%2BPHhlbmM6Q2lwaGVyVmFsdWU%2BRVpUWDhHTkM0My9yWStTUVlBMXRudHlUTTVVNkN2dUNCaktsVEVlekZPRjBZZHhCWUdFQVVjYU8xNVNKOXBMemJ1L1h0WGxzTkVMZTdKdEx4RUpwYUxubWFENnIranNWczdLaTBLNHRTMGNBUERDWHV2R1FoMmFOVjVQOGJ3N1JWUGhLOGQwYlJ1RklGR09FOHMwTTZYOUpxWDN4
S0MvL1lSbVVoeDlybnU3ZWlwMGh5ZitPaUZiVGR2SDY2NTB2LzQ3aVdKcDNZeFlUV0QyMHBNbVRJMUpwWUEwYjByWVFQRkR0RU93d0JxYktxanRJc3ZYVFJzeXJhQkxvbnFOeHN5dHpEWHEra0JsMXp3WGUvSE5QcUVQblczdnNxaFhZcDVGM3dkWThkKzNCOTRMZlpOdUd4a0p3VDNzdVR0OGY5VHRBSlI4VytBUmtzT2M4eDBVaVNsVG5BNHFHOTBLMTR5dkVoVHcvd2drZjFXV01RT3dpZDNpakFYbUV4MU5MbVZvYUxYb3p4VExkTjN6YnJ6VEJIRXc3R2J3ZEdrdU5pMlhZOW16YUgwaWtGRm51VUxjMHUwc0pycEdGdzlaK0VlUk44RzNVUVZ5MjhtS2g3ZFBwWU5KbzhyajIxZFFaK2JaeUtTUHZablU3REkyakdJRE5US1g2ZkVyVWFINGlOTzN4cUU2Vk90L2d4T3BMNE5VNUhLV0Q0bG93VzcwdUJjVEVQRmhwaThpYUovdTB6YzUvTEhvdVBjMzByc1RLZFc5cmJLL2NWaHNQUHErZzA5WHZpZ0QweTJvN2tOc1pVL25tRXFiSzBKOTBrazhCR3I5cXRSczY4bUJnSURtUHVwUkhwWjM4eXNnU2VZN3V0VlVaSG5tQ0dzTzZ2NDJ6OTVOK05Pb3RCTEVZbFd1ZEdzYnowQWc4VkRDSlY5ak95QW95MDZyL1AyUHBsOFhjdmJza2d2T1BMMWdDNnVYbVJJS1lmOEw4UDJCNXVjN0haK0dtUHNOWXRLS2VKRDFFUHovdCt2NlBIbXNVb3dsSDhSd3FMRHdtMUF4dlNLQTR3UXBlQ0dQd3A5YXRYS0lWMS84NUZzRWMzajVzNjd6VlRybThrVEpydXV2MDZEdFVRZDNMOFdwTkV4cWhQait6RUp6U3RxSG04ckhNMVhNQUVxdVozc0xycTVqLzFSNlpqS0dOdFJCb
jhwOE5ERGtrWm0vWTV5TXlJNXJJS3U5bnA3bXdaaEVpeWVHeHdxblV3VVMvUzVDRjNnMHVidnd4eVVnalVvd1ZvTkNqYktBbkdtT2VCSW5abkh0eGdIVUhVOUVlTFdyd2pRc3JtUmpJV0R2RkZQa3l6SzJDL20yaitubmNxc2E1OGRLVXZxcGR1VTRJYnNPQng3UGpXdXRBNmY5bXd6YWxyRU1NK0lGR3VPdk9HMC93eUdzQjZLREV6bldjUC83NkQ4angzaHZFSlAzN3REbFgreGM4Qno5TXdKdkd6VG4xbTdCb2xoR0lzSXlCTys1ZXpXa3RDWVVIUURGVE9wbXA0MDlOWHp6ZUNTUGY1U2NDWG5YYjRPd01ULy9VM1JFUnRRbGMrNmU2WG1JRjhoRkJVc0taUUJsS2ppSDkwZHlzYWlsNmN2V3UyQW55Q3QxbWxXcHFLc0MzU2RTRVZDTG1qRjlUQUFUMEtFSGdZQjg3RjZtZUpTTysvOXkyZkRuYVVvUUlUVzdubnVuSCtkT3dWSGZMU0wyL2N5YTltNlQzR29TSVNMbGJPMVRzalhKclVkZW55OTcvM2tkNmhFQlphdGY1U3NETFQ3SjNsQUVJNDROeXJ0NkIxQWdod2JNdkpqd1JNTXRNdUJLc3ltUytKVzc4UFNEWXQ4MG9waDJQTTc1N0tBNCtUMTAvYnZaQkE5Vk1OdVpqNVV3NXRWMnFIS3dwS0t6ZVVETUFiQlBRaGpYcXlQZzFKa09rd2RQMUpnOHRITjJTelBZQTlmT1htV0pBZGJDS2tMb0F4ZTV6cDZBUzYzS3FXMmFmSUt6SHJ3RTJmS1VtamppeURvMnNuMkJHbWtBaTRzbnpiVzc2SUQvSVgwd044aDBaQ2VRc29vKzdtb1RCMEJxSnBkS1MycXlsUktoc3BSTC9henVQdmxaK1pwckJxdXpJdEZkNFVLMkpzQkp6VXcwZkpxcTV1bk9PZENzVWM3SU
U3QTNmZ1NmZ3NBd1R3WFZJMEVoME5ySWZpMkFKV1Z2VFpEMys2eFZ3dS96WWhuVjc0VXkvMFE4Mi8yQWtpSGpFRjNJVGNLWHdTNTB6bWtLakxjZDJqa2h5TUFYMWRoQ0wwZElFMUJoN0RNamVvNC9YbjBqSlpPL3Rrbi9xZmYzc3RNb1BYVG9KTnBIU1RjR2ZheGtaMzJYNCt3Q0xPc0VBRWxlMVZSY0kwUkZyOFhHTSsxWU9BTjBodFdGcFMxaG9kSi9OczJqL1FnUVNEemNpQ1FZeUFDd3lFRWZDZjZybnR0VmJyTlJQZWlmSHhBM3B2UnZ5ZGRhNDE5cXl0ZXI0akJ3cmw3ZUpuVnJ2VEprR2VhU2FRbDdXWk5SQXBscXRnNnZPYmpiMHZDRWlFaFhKbmNzQUhxcXp5QTRGeWFUVGQ2R0FySU9adUNxRWVoWk51T01lOVlrMVpya0VkR3pIalJESWk3Q1BKQk12NEZ4ZHI3bnJvN0I1WEhKb0ZMNE1DSUtOWWU2aWZiTUtYOU5uN1FWdnphUmY2UXlaSW1BWENQZndvU1BkN2x6NXl3UDJLSUIyaGhFMWt5eVZ5YVc5T0praWpUY3dvUnZrSXhIU0RqMXFqeGxueXh0QzhVZ1pNWmlwcGgzQXJpcjRiekIzUDhIbGIzejZ0OW51KzZMemNiN2ZObVo0UHluaU50Vk9OQ0lHbEh4dTBSY3hQK3cwUXNsM1BtTzJLaHBpc2RIanhvSUJ1YVY1NXdoTlFFNmdNNFBrT0xINDc4Rzg4bUxkd2s2RFpkWVl4L2d6RWE3b3ZIL0pReFp2TzRLdFVTNmZjZHJxV2thTFg1cEhkNkdneFBGZ2NFc2Nad1ZqM2hCS0xFQmE5L0dodERINEhzRnNRbmpPZnNDQkNzN0tjRitmTi9oSUdUeHFqTVlKVHJRYmNtdWF5dk9xR3RQMDFPcXltR24rVm5FSVkzKytQcm95SFN3K0Q0b0JIVG1
maFNXRmJLZCtuTlVFS3BhRVIxNkdCU256WktQRVRVSmdRWEw5QWJRQ3RXVjFHb0UzRWNnMDZYaVd2aHFHakpGNldtdEU4dHY4Q25rZmxMNm91TDRvNldpbmx2WnNEdkZrS0R6TDkwUTNsWC9NanBtRTFpWU9uYzdISXdEVGwraFRRcHdsYXJiTDVUNGNkZTg1akNwYU0xU3p1TStiQU5zMHlXVDA0ZXJUVFc2cnhlbXFDTHAra202TVVMTlZOcE1CazBiQjJpRU82UlRtc3VpRlhDUU1xdU5xZjdkWXUwTFFCZzQ0MkJzU1pBV1ZrWEVZblduOURLdTRSby8veEFsb2h5VHozWlZmSkhuWVBSdDloSUErRHVUL3c4T2ZzTURIWnlCelUvL0JEa1NiNkxjMHdraVA3QlhIdjBoNVdud2dNWUxlZDBPalR5UWI2aGxpVnQ5b0FjaDRFVy9EZUlBdkpaQ1BYVm1pUFFYTGVsOVJIRko2bXFiYVo0TCtaZG1ONmQwcFZNZ1FveXhmQTR3dEwwYVpiNnFZYkhibjJMd2VBQVZwL3M2TzVlMVExdnZpZDRTWHo0a2l3RW1LSStIeXZEQ1pnekpQQVN5Z1gvWDJFWEZ0NGV3SjVmUFQyVXZmWnhQWlpqMFZGSFpyUFQwWVd2VE16bjUva3hoT09oM2drVGdDSmNwNWVsZnp4cEFPNFl1a0NoNHJXdVNndDRqVUJyaWNYbFdWdWo5U3JSZVhUalNHTktLK202NWovUDllNHRHT0RkMk9BbjNKTVQ3Q3FuaDhreTZpZjVjbmpVMmU3UDhTZnBONGwxWEFiZEZEcGk5bVJYamEyTzR1RWFHNGNvNW4xcWNDT3ZNMWYyblFBY1ZGNUFoSXhueS96TWhmU2l2RXdOQ0Zyd2tBWDRyQVE0WldUNldFakFyUG5jb1Y4Z1VRclhxQVA4NDJmK1lNWWI5RHFncmFicEg1a3ZuMnQzcWRldGJHODJ0
QWlTamhPcUxNYW9iU2F4cXdWa1lUOHRTMW9rUUt2MWZoZ2t6elpEOE5IQnVQQzdNVHdXS0VCS2tDRUUzRWRFMXhNQURLd1B1M3NSaGpSaExXZyszZ2srejJtdlU4cTBhTlc0Y3hObUdoekx4eEY0Q3NFNStMQ1cwOWFpUVJOM1VvWmg1aktBZzBiMlh3WHBLS3pycUVTY1BYdnI0L1dWUTMyMm5qRWRvQVdXR0t2WnBKMlRlREo0eDdiT21LVElFc2RHWU1UZzFVaEU2eFFQcnhqS3dWeGFJNVJyaVE4a0xpaGgwa0t0WHQvYTVsSDhzUjVwR0ZISGZ3dlNVb3liQTB1eUVDNnNRVitPbTVReUZmRmpqZHFCOGNpOGxQS1hLTHFCTHJ6bjNmUkh3TmQwbzFiRTg0aGllTkx5UlhZVmhrRCtFNEpGaVd3ZWt3U3VWM3BjQk9ybnRVU3RoWmx6M3hIUURUVGNJNWliOFJyQ2swZEZ6YTgvQmw3VUdtWlUwSXZ2UmdvVXF2TXNHT2dMY3pGWmRpZnJ5aGNiUTY4a2ZzZ3lCMHppdC9MN1BSV3V4RkdYdDFoTVZSVUZ3WXBJS04zVkI3cXVKZlgwamZsU1JaRndMaXdlK3VhYndmTVZ6c2doajUvOXZNNzcwK0JaMGtJcE45NzBTMG5BbHl6R0h0aW1nTUl1RXFhbUt5QTNTQlI1aHZIYmRyNENnTHFUbXIzbFFnWmpnSkNvN1FXYUJWTXdCR0RpdzVOVVhUUnBycWc4U3h2eDlnNWZwbXMrL0o2QjFEelNTM3ZRZzgxdHFRU1ZDWVJpc0Y3M2VqZlFuZk4zcUszd3RJRDkxQnRISmFvMEFaUUdKVFpKOXVsZ0kzV3hzdWR4ejB0VHVpNlJlSWpmSWsxekZRdFpwRExGMnB3NGpTQVdQTlJqNDBYdVIrRzFUVlI3OVFiME9FYkw4RDFoTU5zWmo3MTZNbUhSOTlKaUxNdm1FWHV5a
1V4VGhGYjRMTzZVbW1kU3UwTlBpMXQ2NmNkYURpQWhMaVBFTGdUNkZsenA2T2FGSGNSNjRncEtyemtTNDJONEhJeFpNa2R6M0FsYkRhK2pOWHZPR1l3UWl5K0xNNENZWGtrTWtHR3ZTWis5R2xWQ0l5RXBJaXIzbEQ3bmdzZGk4emxGWDYvekNaczlQSUtwZFZlSGJGZi9GS20wV3AreHI0Ykd0R0RrVHR2Nk1Manh2YU8zanFHaUFWeERKVWFkTVBlS2VHSm5uempTdnpKbGdOVHV3c3grRnF5L2dPMkwxMGowWmhDWi92dE9NelVjNjl3cGhKZm9FNzU3V3lOeFJOcThJc0Y1Tkg5Y0x0b3UvbUNxOTc3YnZPSkRrSURCN3lKWEJ6YUhVQkJuSXJra1Qyemg3bGJmUm5SREJUSFZraVZMazVESUxqeC9XL1BSZEZpUUM2SzRmZGx4Y29JbzlMcnM4ZFVWZkt2TTNNYnJ6c1hGT3ZtVVh0K3NsZldvd3UyTC9ndG9mRFhvTUJZZnlEcWIvWlRaRWZ0MC83blliRm1relBEUlZacU5SR0F3YWZVNTU1UjB2SWtNbGR2VjdKUzhNT1BNYWlXQVBpelNLRG4yRzNvcys1MzRFQytaOGZnWmFPVWpZL0xLME9vME9RMmhvNUV6MGNMYWpwUjFINk9FNEhvUm1ydjQzZkFjdGpYc0hYdi81RXg3emdrWk1NZXZhTFNEdjZtcjFGcDk4QXR4L296VTFGVDBoMDUxcVcwR0g2VWpRRXk5aExSZDBBMnFkUTRMZXpReDNvbDFTblhsamt2MG4zTXFlaFozOC94bzZhdHFDdkJtQkc3amlUdXd6YnlVUngzRm1TM0NCNllOYnFON3hPYVRZRnlkOEZDL01nY0xGQmMwS3F4MXllQ2VUd1hucldQb0dvdllVQlYxYjA1cWtIa1d5V0RUaCsveXJFNzF0RjNxbUQvd3F6cUJyNE04NERtWW
VuQkdFOWxtb3FIZEMyWnRpK09KVFZKcmlHZWxQQ3RjZnZRaUlQcHdDZ3BFNmg1ekZhRndLajRuZGtBUkRpTC95L1EwWTZxNU5rM1g5RURlTmdjY1pIcFdmOUpKQ3M2a29wdXRtYjdDczIrbVJYdER1S09DaGY5UVUyN3Bmb1NJaklYK3NGdHY1c0hhSms2aHBZMlpzUUhzaTBYbFowc3FMTnQ5ayszdTVnYnBSU1JCczlHaC9BaVY0dkNyYTRkOTh5U0dCdzRSR1FhSStpQ29RaG9YK3lxc3VrYkx6bXJUU3FXMVRXaXJReUlHZ1Q5VnFERE1mUzAxeGdQSlNFSTlIWlp6TGlFVXVGMm1CMi81Y2dqaEFUaWQrdGV1UVB4aldhN2NSc2t5YUhuTENjQURVUU9ESUFPVjJDWXROcnAwY29ZL091S3ZzaXlJT0lacVJ5dE1PMGVNZ1ZJWTBzWmdxeVEycXlubUx0NDBmWmd3SFVyV245Zm9TYTNtMkVRTy9uOS8yU2NuelJWdVZpVnNjM0tCSElQL3AzNlJlSWowTGlNcCtPQ0p3SHlLVW1UeDRBU1V0dXVhWktlRHl1QjlxcXJuUEFNWUVCeElsTGFvdXMzV1pHakIrcW9ub3QvNmk1UE40bUZjbHFDcUxhMGJHbks4ZnJxYy9yd2tuVGV0YUE0c2tXTEw1L21qNEd5MitFQkh3a0x3UXd2K0FKdmZTOXYvNDl1LzY0N1ZFYW15UzdZQ2ZEUHNBQUREQ1FFcWJNQ1h2Ui8xVmEwWi9YUWhoNlkrZUt0MEVpRDdpNmRZODJtQkFoNEJMRmRVV3VGZHVrdUVwaGZ2WXB3N2loVjNxTjB1NFM1NTRXU0dUa0ZsdlpYNG1hbkF4a1g2ekQxS0NWaEFMdEJnSDgzdkhxam9uc0lwOFMydHgwZ0tiYzEreHVaRVppVWlNVVlVdTByQVFsRFcrZHJoN3lVRHZqekFHSnBmTk01eThaMW4
5em93VzZ5YW5VZWFBNjhSZDd5TUxobFd0NVh6bGhBTVZDZmZYZ0pFelR1YzJEbENVOXNMLzVTVkRaV2N4R1E5aFM1cnJtK2VyQ1Jxd2FJQk1DNUtza0RCZHdOWmh2Q0FCdEpqS2Vla1FUSjd5MFp4SGNhbGVCaU1rbkYwZVRDZzFvUEhPUVZLQ3V3NE94cHRZUS9xS1V0TEFIWFZ2OTlLMGRWcWZDMmpVQWlHQmVYa0t3aGRYTGtJYlZxU0EyZmxraXBBeEhYNnByUEExQjF3eTVab3hPUFg4RVExOW92eXpBbFg1dHU0OXEwWC9PSExFN1o5T1cxenltRXR6ZFpyNXJZbWtFcVdtcHVSNU5jeHFwTWlZam93dUNXZWhubzIyeG5JM09IQ0xDZkFKaHRrcklhL1hPc0tZRFpCRzFJMGJsN2taR2R5cEtUQlhYdXl6WE5WUlU5L005ejhaVytwdG1oZ2NOUzBJS2VaaSs5bFl4cWRlS3lnbldTTTV3czdSYUpmNlRRZTNSaWJZUjFvNkhwRzB2VHpiTEtQZTZnRjJGODdiWlBJei9mcTNLWnZiM3UrSnhZcCtJVjBtQi9VN29YelhRRk1RK3VmWllpNzUxbkx6WlVxRE1ybU53TFJPVUFNUk8rVnJtblkwSVB1cFBVMXc0b0hBb1dnVGRnTk5pNk1uTFQ4V0pmUlhjT0pKMk1lbUc2K2ZNeHNZUU52UVJwa1RGY05vaFV6Y3ZjcHJ3NUV3WEVZQTJzbzczL2MvY3RIRGcreU05YlF4REppUlltRnFydkhYb29hS1JyekxnUjZLVWdoM3ltaWxaQ0lSSm9KbTE3aEtHM1pxTTE0Lzl5OUc5OE9BZjNkVTlqMDk3aUNlaEc3a2VxYXRJQ2hFWmJqbmQ4Y00rS3djN2FtVWp2ekQzQmNvMHl3MDJxT054OWF3OGhSblZiWDZhdkRJbGhySHZ6SU44MzFvUjljRHBwMG1DUEJXZFVD
QlNqVGJ1RkZqRC90WElSbGxlT2JraFFKSUdSNlE2U1MxcXkzT29WT1VheFl6THY0U2s3dndrQUMwUitGREVIeVFZbFVhbVVkTWcyUmdwRUdhSVd1V3IxaGNnRm10QmREV2g3ZFBuWTF0U3VKOC95MXp4NkRvN2ZJYmNFenBBK2E0ODNtRG5vemdld3VmaFdqVCsvUS85WlEreFQ5UWJBT1pQSXhHV3VhSXVrVk8zSWxvZDhJM1NGZFJCTHY5ZXBDNzFLeXpSdVlpMktkOHJ5NVNINit1WnMxUHlZUlpRakdDK3Q4VzRtSE82Z1lFRWVXSkJ1UWhnSHdmV2xhZXlWb3hac0NBQVZKRUllT3hPZDZtNW45OHRCUDdHTmgxT1M0eDRCS2FVN1A0UVQzNVVIZW5meE84WWFQUThmbXlobUJhSVJVZklBTVN2ZTJZRFp5SWNNTTkrN0tNSVVabzJ0eXRvYzdCOGVvZzBNaUkrVkpFdFg0c29FRjFSWkhQZVV3NWlCTjI4OTh2MmVTcGNnVUJhWHFzOUN5VlZtTVJQMEtLUDJ1REt4MUdJcUhjS0ZCOXVQVWRkQS9vT3dNa0tVUWsraFZVVDVPbEVMdjd1a0FBUEE0eE4rZkczVmYxeUVKV0FiVGx5dWtGcThjNXBTRkY1cXVHbUgwVmVpQzVvVEFka1VES3Z6WGhWWUs5c3BRYjNVZ1Z0Qld6N1ZScnlOUVVST3BIZU5xeDlhZHA4YWREWCtRSHJUKytYblN4VVI3SVdGanlNTkZJRWlMWmkxdks1UVVrZlRDUU9qdjh2SHdiUi9MRHF3Z3M5bXdsT3pPY0RLdVBVK0dTb2lnVFdRejRWN0N2SHRaVDI3WUdKVG44RFFFM3IzdjB4aWxvODJ2U3VXSDg0WEU3VEJsTUpFb2R5eDNDRngwVUVkc3VhRHBPSEV3UjZYNlUyU0xseERYSXVZeEhlNXh2NjI4bXU0bDRMSnBYUjhkYmljT
EZKQW55Q0FVeDJLb2dDamt1cmU4bXNUZktDbG8wamFlN1hNR05PSk15b0ZYbVlHZUh2eGhNUGMzTEtYLy9VY1p0c3p3dFJrQmNFdURXQysvQWNWZVBOSHVOWWI5MEpIcnRucGg1ZDlhL1lpTkpzY1N3QTFwUVZrdW1TQWtPQWdLdWRzcnl3c0N3Zkg1anNydVpHUTJDd1hKRXQzUU4wU2NLUlVnT1NCQ3FYa1BqZDVSVzJuOFZpamt4anovbWptakhCNmk0eHM5NEU2Nzk5STAyaldYNVd3UDZhTFRaTGt5TjhxNDUxT0RmeUZVZEY5WWsyZXQ5VUpsV1NzRFJMSWVCd0ZyQkEyZTdyRWsybWFLVUNCRW5PUWM2bUhVMXQvZ3gzK1VXVVFXbkpMZVUxbWUvbkFEdy96UGUwd3d0Vm9BaERZdDBoR1hQblJydjFoUHRGS01CeWtqckg3a0J5U0R3WDlQMi9XZkNkQlE5K1J4cHRsR2hvRmdpMUs0NVlOeEpEd05wTmd5MDV2WXUzVUtrMkpRYVNGUzcwK0Y1NzluRE5RenZpK0pPRlRsdDFmWDJGNXk5NEV2NHZobWRQSmRVOFVVRjU2Ymx0emxKREVFdmsySlFrOTM0aHpwTXJGZ1d3ZHUxUkxxSEhCN2h2T2hnaHNqV0ZGY01zNjZaRUtWcVhKUytxWWNVMHk0akwySVQrNlF2N2pvQ3BWbUdzUWtGY1FyblhxOUJiOTdaUS96UCtwaldmWTU0UmNRVlMydUU1YURObVVyVkdLK3E0d0xRcUhuRVViT2puSHFFeGlacUtxOVdRaUtUK2c3QS96bVlIQ2k0YzFTejRNVWhHb0t6U2l4aXoxYUNJUEJXdy9vczR2cUVqbXgzOGx6YnV0OWNWbElzeGNkTUpUTERRK3ZOZ0YyY1ZRaVcxRTQ0d3lWcnI3TUFaOE9KRVpFSzlEZWt5MzJQUkFuSkRUVXVqdGFscmJ0T2VOczhyS0
9uTjcvNFRqUEwvZmRlbEI4bjA4WXdSNXdmbU42VGpGWUhRSDFjbUZmK1AvNUxVMTI4Q1pEYjNQUStxMlFJazV3aE40eGwvcy9lb29pallmeWtDcm5aSEhHWkluTGhoU2pWbk5ISWdTL203VWV0NlhBTDdvZUl5UFRLeHVnbDJzRWtUQzNnZ0tjTnFZR0E5U3ZlYVlaQ00vWHNQRUtQbWs3QmlRNmprWFBKaE1yREd4Vkc0SW9aSDgrYjBrUWJYR2l0Mkw0L3hZdHh1bTVzcFNPSjdsTDltVFpRNnBxM2JOaTEwZU1mZ0ZWaDc3NU5JRlc0SEp3U1FtaTU0bk11blZTQjhxdjZKc0w3SGlsZ2N0ZHFSNThTTjVad1lCa2dOR1hzYjA1QXJWemVXbHh1Y21BSHNPT3dyczFnMzh6bTRZN2ZPZmducmFhV1kxanZZOFlEODZQZThkZzR4cE5paTg3UnNDZk5WK2NKVmMraktFdnpuZVY1Zzd0RmlxZCtsZHp4STlKemdSS2t0WUV6RUpRSVU5M2UvclJaN1lrVkZtNVV1cjVhMWYzcG83T0VtYkJUc2MrQ1FaOGNnYmIvbUphRXJoa3NyL3JURjBNcjNxeDl5SlJWSEJ6YWNWd0dScEFRaURPdnJkWU4xQXBVOTRyR1lrVFVzdWs1YjE1Wll2QVZxRlRzVlVMaS9HY29mbEljMm01Z2RFTFZOblRmdXY1Zlk5S1NlWHFoUU80S0pOYVZmbHAwQ0VKYWFFZFNLUXJJNXRaT2w1RkE4VXZlNmxTWVd5TVk0REl4a1RiT1JoWHVBdzR6b1RTMjgrN3d2TXhydVBkZnlKbUJCTkhQdCtEYmdKNHovcHJZWUhpTmFMTXNZamtQZE44ajNKZDczQXJFZk92Um52MzYxSVVVMFg1RDc1dlRSdlpkbzMzWERzanRlOU4weUo3K2lIQnF1a1FJY2pIVW9ic2RQN0hOajBVYWNSMHIvTmRlVTl
GNFBNc1VLY2t6Tk4rZGhyMVI2d1J2R1VZb1pDRWJaWlJMWEt4QnA3SElUNEVQUktHakIvdW1xTFhhMXl6RWx2QW1WQUJhMDFZN3dGdk4wM2Ywb25FbUhTM2w1d1paRmV6cjVibnN5T01XVGxhMU5kaW1ZNXNVeE15VFliZmc4dzB2cXNEc28zWFAxYndLdzZ3M3VIRGQ1UHBSWnVDSnR0eWk0ZzJGeWI0Ymg1UU42ZkdORTI2ekRGN1Y4QmJwZXJLNkFKQ0xTWm5kaDZMMTlPUTBram4xUGpEMGk4c1BZcGFXOWxVeVJkZElPKzRWQS9LemxPUzJ4M2s5VUtUdElsTTBUSVdtZXFIS0dYUVpocGpvVGI2VlNKN203cjZaaVlQMnVsQVVvZmVWL0o2eCtzckxEQXkyQ2ZFNnFrREZ1OU9NWDBBSXVnN3loQUtOMDRyT3hVNk5tcGtjOUZ4bXUvVS9vR3hHdmIzeFVFTDYwdE1sSE9EaWtqY1I5RDJrKzRwbEc1WnV0d0FIY2kwRU02WHRrVEhQOU5QMlRTR1VFN1E5SGYvU0VEc2V0a25hZXhvWmhDczJLWDFMeU5JS0U0N2pkMkR3MTUreDRRVXV0VUFTbzU5Q1lHMVFBeW9BVVhrV3dtbXkzTGdTUWp5T3ZLV25qaE8veWpPd0FyWGd0NFBrSVVnZDQ1N05ReFpMbU41K0J4NVJoQ0FHdkUxYmxOZjlMek9keGJiaG5VZ2Z1RDM5MXVSRkhjS2RYREY3ZmVqb3gveThtaWZJcTRWVzQyajBHQnFOQUtkK0prMnJCMW9hOTRiT2hxcVVzanhqWnlRaGRXTzhNblR6T2tOaGVpZXU2blYxcW5yZ3JHU2huWTNJMlczb29GNFNnczRjZ3drZ2h2dHpFa0xUbU5OUm83RTdudVRuMkxJcmlGSnlvTmZQdUp0aWN0S0JtNzRGZytkWVBTMlIzTzNmOWxBZWxiVWZjbzZGNU9EL3hk
S1VuRTh0V3FOMExVcDlWQUptWVZYZFVDaGJ4MjM4MWtDaStLNDJoRzUydFNQYU1hb1dTb0xQY2Zrb24rc1pYdjdEdEtwZi9HTzdhcUMza1pzRGpva29haHJGZGJWSlNTZWhrNGp5K3RzRHplQnJKSjBrMVZrUnJHN1NoVHZjTmd1cjVucVRUTEE5dlJMQmJNTTlhNlI1NEZ0Z1pQOWFKMU1aMEdCcUVpMnF6Ui8yd2tYQlhwcFhZdi9TcU1RV1dhbTVsSHBMVktxaDN4ZHRjNFdmck9mYldsbU1PNXA5Z0JUSFp1YUcxVGFkZXFRVVpKQmZBS01ENFdSR0NsMDFaeDRTVzE0YzZrdnFKdXExL080N215L3RsVHlLWndpYlBkQTNRMVVGd0I3R2Z4anEwaDN2ckxFbUNrS3Vsc0VBUkN6UnZNVjJSVnBVbFpUV240Y1Boc0hjcTNROElHSUYyKy9nOENFSU4vMU8xcVMvMkpXcXlDNmtIb0w4Y2R2R0VHbmkxSTNDTk1JcXhxaHhJL1V0R3REc2VwYmwrSHI0elh4MzZna3BCbXBoT2xkTFVYTHAzVEtibVVZRWJSWHcvZmRmeFQ3WDdZUFhHQ0hHVG1uTzk4WkxDOTA2Zmkvekd2b04rNlpzbCs3MkpWMGxJWEo0V3dZdWxFUmZHbkFDWGNoa0Yzei9ITWR3elcwTUFFaXptQmwvREo2ZUoyU01PSG1Uc25YbElGRDRlcFRrYnFBQ0dpZ2I1UExFdHdQRVRjYkNRckM5YUtTU1FnSTdEZXd1aWlxM2J0Y0RUWkIzeEI5WWxlbmhpU0FXNjIwcmwzc2ZjY3d3eGFSOHBDV2Rzd0x3dmFxcDhjM01PV3RCc2xPcmVTSkNEcWgvdzBYbm1WMFJVWFpNM2JvUmkwVXhsaHVUeDFlM1NTd09pbTlOczNYV3NoTmI4Lzc3VkhnUWhRVFlSUU1NRllYaWRmMElCKzBtSUpocWNoQTlUe
UY3dGRjSDhrUUJUSHNEWS96bFpqK3EwNlFMd0JkbTkxc3IyK3VzZmxlaXB3WUMrcmdiNHROVnA3VU5rYkVqTnR6ZWZsTi9VRTlkbHZtT2x6V1dtZkh2NGVkUGkzMmJmeUNRS1d6SGJVVEV3NU0yVFpsZnpNaTFWUjVsaDBxQ1lqaDNITUlmL2MwcHBKd2I1b1lFTnBBenlxbnlmdmlTV3lBYzc2L1l1VWwvb2FVaysrYzBZc2d1TGo5ZGFQdVVvemhoZ3VjSytQRGlNckI0ODU1Mk83VWg0aHRwNmZ3S2dJa1JCTVFIUTd6MmV5WXovV1AwQm9ZZVhjOGc3aUprclhFNzA1bFo1bXhGU0poT3E1WlNleVJSb21pUm41K3VRemM5ZFdWQjBYb2JURXdOc0VRM2FIZ25JY29BczY2UGplUT09PC94ZW5jOkNpcGhlclZhbHVlPjwveGVuYzpDaXBoZXJEYXRhPjwveGVuYzpFbmNyeXB0ZWREYXRhPjwvc2FtbDI6RW5jcnlwdGVkQXNzZXJ0aW9uPjwvc2FtbDJwOlJlc3BvbnNlPg==
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/tests/backends/oauth.py new/social-core-4.5.1/social_core/tests/backends/oauth.py
--- old/social-core-4.5.0/social_core/tests/backends/oauth.py 2023-10-31 13:44:09.000000000 +0100
+++ new/social-core-4.5.1/social_core/tests/backends/oauth.py 2023-11-29 09:52:23.000000000 +0100
@@ -1,7 +1,7 @@
from urllib.parse import urlparse
import requests
-from httpretty import HTTPretty
+from httpretty import HTTPretty, latest_requests
from ...utils import parse_qs, url_add_parameters
from ..models import User
@@ -121,3 +121,57 @@
social = user.social[0]
social.refresh_token(strategy=self.strategy, **self.refresh_token_arguments())
return user, social
+
+
+class OAuth2PkcePlainTest(OAuth2Test):
+ def extra_settings(self):
+ settings = super().extra_settings()
+ settings.update(
+ {f"SOCIAL_AUTH_{self.name}_PKCE_CODE_CHALLENGE_METHOD": "plain"}
+ )
+ return settings
+
+ def do_login(self):
+ user = super().do_login()
+
+ requests = latest_requests()
+ auth_request = [
+ r for r in requests if self.backend.authorization_url() in r.url
+ ][0]
+ code_challenge = auth_request.querystring.get("code_challenge")[0]
+ code_challenge_method = auth_request.querystring.get("code_challenge_method")[0]
+ self.assertIsNotNone(code_challenge)
+ self.assertEqual(code_challenge_method, "plain")
+
+ auth_complete = [
+ r for r in requests if self.backend.access_token_url() in r.url
+ ][0]
+ code_verifier = auth_complete.parsed_body.get("code_verifier")[0]
+ self.assertEqual(code_challenge, code_verifier)
+
+ return user
+
+
+class OAuth2PkceS256Test(OAuth2Test):
+ def do_login(self):
+ # use default value of PKCE_CODE_CHALLENGE_METHOD (s256)
+ user = super().do_login()
+
+ requests = latest_requests()
+ auth_request = [
+ r for r in requests if self.backend.authorization_url() in r.url
+ ][0]
+ code_challenge = auth_request.querystring.get("code_challenge")[0]
+ code_challenge_method = auth_request.querystring.get("code_challenge_method")[0]
+ self.assertIsNotNone(code_challenge)
+ self.assertEqual(code_challenge_method, "s256")
+
+ auth_complete = [
+ r for r in requests if self.backend.access_token_url() in r.url
+ ][0]
+ code_verifier = auth_complete.parsed_body.get("code_verifier")[0]
+ self.assertEqual(
+ self.backend.generate_code_challenge(code_verifier, "s256"), code_challenge
+ )
+
+ return user
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/tests/backends/test_bitbucket_datacenter.py new/social-core-4.5.1/social_core/tests/backends/test_bitbucket_datacenter.py
--- old/social-core-4.5.0/social_core/tests/backends/test_bitbucket_datacenter.py 1970-01-01 01:00:00.000000000 +0100
+++ new/social-core-4.5.1/social_core/tests/backends/test_bitbucket_datacenter.py 2023-11-29 09:52:23.000000000 +0100
@@ -0,0 +1,151 @@
+import json
+
+from httpretty import HTTPretty
+
+from .oauth import OAuth2PkcePlainTest, OAuth2PkceS256Test
+
+
+class BitbucketDataCenterOAuth2Mixin:
+ backend_path = "social_core.backends.bitbucket_datacenter.BitbucketDataCenterOAuth2"
+ application_properties_url = (
+ "https://bachmanity.atlassian.net/rest/api/latest/application-properties"
+ )
+ application_properties_headers = {"x-ausername": "erlich-bachman"}
+ application_properties_body = json.dumps(
+ {
+ "version": "8.15.0",
+ "buildNumber": "8015000",
+ "buildDate": "1697764661289",
+ "displayName": "Bitbucket",
+ }
+ )
+ user_data_url = (
+ "https://bachmanity.atlassian.net/rest/api/latest/users/erlich-bachman"
+ )
+ user_data_body = json.dumps(
+ {
+ "name": "erlich-bachman",
+ "emailAddress": "erlich(a)bachmanity.com",
+ "active": True,
+ "displayName": "Erlich Bachman",
+ "id": 1,
+ "slug": "erlich-bachman",
+ "type": "NORMAL",
+ "links": {
+ "self": [
+ {"href": "https://bachmanity.atlassian.net/users/erlich-bachman"}
+ ]
+ },
+ "avatarUrl": "http://www.gravatar.com/avatar/af7d968fe79ea45271e3100391824b79.jpg?s=48&d=…",
+ }
+ )
+ access_token_body = json.dumps(
+ {
+ "scope": "PUBLIC_REPOS",
+ "access_token": "dummy_access_token",
+ "token_type": "bearer",
+ "expires_in": 3600,
+ "refresh_token": "dummy_refresh_token",
+ }
+ )
+ refresh_token_body = json.dumps(
+ {
+ "scope": "PUBLIC_REPOS",
+ "access_token": "dummy_access_token_refreshed",
+ "token_type": "bearer",
+ "expires_in": 3600,
+ "refresh_token": "dummy_refresh_token_refreshed",
+ }
+ )
+ expected_username = "erlich-bachman"
+
+ def extra_settings(self):
+ settings = super().extra_settings()
+ settings.update(
+ {f"SOCIAL_AUTH_{self.name}_URL": "https://bachmanity.atlassian.net"}
+ )
+ return settings
+
+ def auth_handlers(self, start_url):
+ target_url = super().auth_handlers(start_url)
+ HTTPretty.register_uri(
+ HTTPretty.GET,
+ self.application_properties_url,
+ body=self.application_properties_body,
+ adding_headers=self.application_properties_headers,
+ content_type="text/json",
+ )
+ return target_url
+
+ def test_login(self):
+ user = self.do_login()
+
+ self.assertEqual(len(user.social), 1)
+
+ social = user.social[0]
+ self.assertEqual(social.uid, 1)
+ self.assertEqual(social.extra_data["first_name"], "Erlich")
+ self.assertEqual(social.extra_data["last_name"], "Bachman")
+ self.assertEqual(social.extra_data["email"], "erlich(a)bachmanity.com")
+ self.assertEqual(social.extra_data["name"], "erlich-bachman")
+ self.assertEqual(social.extra_data["username"], "erlich-bachman")
+ self.assertEqual(social.extra_data["display_name"], "Erlich Bachman")
+ self.assertEqual(social.extra_data["type"], "NORMAL")
+ self.assertEqual(social.extra_data["active"], True)
+ self.assertEqual(
+ social.extra_data["url"],
+ "https://bachmanity.atlassian.net/users/erlich-bachman",
+ )
+ self.assertEqual(
+ social.extra_data["avatar_url"],
+ "http://www.gravatar.com/avatar/af7d968fe79ea45271e3100391824b79.jpg?s=48&d=…",
+ )
+ self.assertEqual(social.extra_data["scope"], "PUBLIC_REPOS")
+ self.assertEqual(social.extra_data["access_token"], "dummy_access_token")
+ self.assertEqual(social.extra_data["token_type"], "bearer")
+ self.assertEqual(social.extra_data["expires"], 3600)
+ self.assertEqual(social.extra_data["refresh_token"], "dummy_refresh_token")
+
+ def test_refresh_token(self):
+ _, social = self.do_refresh_token()
+
+ self.assertEqual(social.uid, 1)
+ self.assertEqual(social.extra_data["first_name"], "Erlich")
+ self.assertEqual(social.extra_data["last_name"], "Bachman")
+ self.assertEqual(social.extra_data["email"], "erlich(a)bachmanity.com")
+ self.assertEqual(social.extra_data["name"], "erlich-bachman")
+ self.assertEqual(social.extra_data["username"], "erlich-bachman")
+ self.assertEqual(social.extra_data["display_name"], "Erlich Bachman")
+ self.assertEqual(social.extra_data["type"], "NORMAL")
+ self.assertEqual(social.extra_data["active"], True)
+ self.assertEqual(
+ social.extra_data["url"],
+ "https://bachmanity.atlassian.net/users/erlich-bachman",
+ )
+ self.assertEqual(
+ social.extra_data["avatar_url"],
+ "http://www.gravatar.com/avatar/af7d968fe79ea45271e3100391824b79.jpg?s=48&d=…",
+ )
+ self.assertEqual(social.extra_data["scope"], "PUBLIC_REPOS")
+ self.assertEqual(
+ social.extra_data["access_token"], "dummy_access_token_refreshed"
+ )
+ self.assertEqual(social.extra_data["token_type"], "bearer")
+ self.assertEqual(social.extra_data["expires"], 3600)
+ self.assertEqual(
+ social.extra_data["refresh_token"], "dummy_refresh_token_refreshed"
+ )
+
+
+class BitbucketDataCenterOAuth2TestPkcePlain(
+ BitbucketDataCenterOAuth2Mixin,
+ OAuth2PkcePlainTest,
+):
+ pass
+
+
+class BitbucketDataCenterOAuth2TestPkceS256(
+ BitbucketDataCenterOAuth2Mixin,
+ OAuth2PkceS256Test,
+):
+ pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/tests/backends/test_discogs.py new/social-core-4.5.1/social_core/tests/backends/test_discogs.py
--- old/social-core-4.5.0/social_core/tests/backends/test_discogs.py 1970-01-01 01:00:00.000000000 +0100
+++ new/social-core-4.5.1/social_core/tests/backends/test_discogs.py 2023-11-29 09:52:23.000000000 +0100
@@ -0,0 +1,94 @@
+import json
+from urllib.parse import urlencode
+
+from httpretty import HTTPretty
+
+from .oauth import OAuth1Test
+
+
+class DiscsogsOAuth1Test(OAuth1Test):
+ _test_token = "lalala123boink"
+ backend_path = "social_core.backends.discogs.DiscogsOAuth1"
+ expected_username = "rodneyfool"
+ raw_complete_url = (
+ f"/complete/{0}/?oauth_verifier=wimblewomblefartfart&oauth_token={_test_token}"
+ )
+
+ access_token_body = json.dumps(
+ {"access_token": _test_token, "token_type": "bearer"}
+ )
+ request_token_body = urlencode(
+ {
+ "oauth_token": _test_token,
+ "oauth_token_secret": "xyz789",
+ "oauth_callback_confirmed": "true",
+ }
+ )
+
+ user_data_body = json.dumps(
+ {
+ "profile": "I am a software developer for Discogs.\r\n\r\n[img=http://i.imgur.com/IAk3Ukk.gif]",
+ "wantlist_url": "https://api.discogs.com/users/rodneyfool/wants",
+ "rank": 149,
+ "num_pending": 61,
+ "id": 1578108,
+ "num_for_sale": 0,
+ "home_page": "",
+ "location": "I live in the good ol' Pacific NW",
+ "collection_folders_url": "https://api.discogs.com/users/rodneyfool/collection/folders",
+ "username": expected_username,
+ "collection_fields_url": "https://api.discogs.com/users/rodneyfool/collection/fields",
+ "releases_contributed": 5,
+ "registered": "2012-08-15T21:13:36-07:00",
+ "rating_avg": 3.47,
+ "num_collection": 78,
+ "releases_rated": 116,
+ "num_lists": 0,
+ "name": "Rodney",
+ "num_wantlist": 160,
+ "inventory_url": "https://api.discogs.com/users/rodneyfool/inventory",
+ "avatar_url": "http://www.gravatar.com/avatar/55502f40dc8b7c769880b10874abc9d0?s=52&r=pg&d…",
+ "banner_url": (
+ "https://img.discogs.com/dhuJe-pRJmod7hN3cdVi2PugEh4=/1600x400/"
+ "filters:strip_icc():format(jpeg)/discogs-banners/B-1578108-user-1436314164-9231.jpg.jpg"
+ ),
+ "uri": "https://www.discogs.com/user/rodneyfool",
+ "resource_url": "https://api.discogs.com/users/rodneyfool",
+ "buyer_rating": 100.00,
+ "buyer_rating_stars": 5,
+ "buyer_num_ratings": 144,
+ "seller_rating": 100.00,
+ "seller_rating_stars": 5,
+ "seller_num_ratings": 21,
+ "curr_abbr": "USD",
+ }
+ )
+
+ def _mock(self):
+ HTTPretty.register_uri(
+ HTTPretty.GET,
+ uri="https://api.discogs.com/oauth/identity",
+ status=200,
+ body=json.dumps(
+ {
+ "id": 1,
+ "username": self.expected_username,
+ "resource_url": f"https://api.discogs.com/users/{self.expected_username}",
+ "consumer_name": "SocialCore Discogs Test",
+ }
+ ),
+ )
+ HTTPretty.register_uri(
+ HTTPretty.GET,
+ f"https://api.discogs.com/users/{self.expected_username}",
+ status=200,
+ body=self.user_data_body,
+ )
+
+ def test_login(self):
+ self._mock()
+ self.do_login()
+
+ def test_partial_pipeline(self):
+ self._mock()
+ self.do_partial_pipeline()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/tests/backends/test_saml.py new/social-core-4.5.1/social_core/tests/backends/test_saml.py
--- old/social-core-4.5.0/social_core/tests/backends/test_saml.py 2023-10-31 13:44:09.000000000 +0100
+++ new/social-core-4.5.1/social_core/tests/backends/test_saml.py 2023-11-29 09:52:23.000000000 +0100
@@ -32,6 +32,7 @@
class SAMLTest(BaseBackendTest):
backend_path = "social_core.backends.saml.SAMLAuth"
expected_username = "myself"
+ response_fixture = "saml_response.txt"
def extra_settings(self):
name = path.join(DATA_DIR, "saml_config.json")
@@ -58,7 +59,7 @@
# we will eventually get a redirect back, with SAML assertion
# data in the query string. A pre-recorded correct response
# is kept in this .txt file:
- name = path.join(DATA_DIR, "saml_response.txt")
+ name = path.join(DATA_DIR, self.response_fixture)
with open(name) as response_file:
response_url = response_file.read()
HTTPretty.register_uri(
@@ -91,14 +92,55 @@
self.assertEqual(len(errors), 0)
self.assertEqual(xml.decode()[0], "<")
- def test_login(self):
- """Test that we can authenticate with a SAML IdP (TestShib)"""
- # pretend we've started with a URL like /login/saml/?idp=testshib:
+ def test_login_with_next_url(self):
+ """
+ Test that we login and then redirect to the "next" URL.
+ """
+ # pretend we've started with a URL like /login/saml/?idp=testshib&next=/foo/bar
+ self.strategy.set_request_data(
+ {"idp": "testshib", "next": "/foo/bar"}, self.backend
+ )
+ self.do_login()
+ # The core `do_complete` action assumes the "next" URL is stored in session state or the request data.
+ self.assertEqual(self.strategy.session_get("next"), "/foo/bar")
+
+ def test_login_no_next_url(self):
+ """
+ Test that we handle "next" being omitted from the request data and RelayState.
+ """
+ self.response_fixture = "saml_response_no_next_url.txt"
+
+ # pretend we've started with a URL like /login/saml/?idp=testshib
+ self.strategy.set_request_data({"idp": "testshib"}, self.backend)
+ self.do_login()
+ self.assertEqual(self.strategy.session_get("next"), None)
+
+ def test_login_with_legacy_relay_state(self):
+ """
+ Test that we handle legacy RelayState (i.e. just the IDP name, not a JSON object).
+
+ This is the form that RelayState had in prior versions of this library. It should be supported for backwards
+ compatibility.
+ """
+ self.response_fixture = "saml_response_legacy.txt"
+
self.strategy.set_request_data({"idp": "testshib"}, self.backend)
self.do_login()
- def test_login_no_idp(self):
- """Logging in without an idp param should raise AuthMissingParameter"""
+ def test_login_no_idp_in_initial_request(self):
+ """
+ Logging in without an idp param should raise AuthMissingParameter
+ """
+ with self.assertRaises(AuthMissingParameter):
+ self.do_start()
+
+ def test_login_no_idp_in_saml_response(self):
+ """
+ The RelayState should always contain a JSON object with an "idp" key, or be just the IDP name as a string.
+ This tests that an exception is raised if it is a JSON object, but is missing the "idp" key.
+ """
+ self.response_fixture = "saml_response_no_idp_name.txt"
+
with self.assertRaises(AuthMissingParameter):
self.do_start()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/social-core-4.5.0/social_core/tests/backends/test_twitter_oauth2.py new/social-core-4.5.1/social_core/tests/backends/test_twitter_oauth2.py
--- old/social-core-4.5.0/social_core/tests/backends/test_twitter_oauth2.py 2023-10-31 13:44:09.000000000 +0100
+++ new/social-core-4.5.1/social_core/tests/backends/test_twitter_oauth2.py 2023-11-29 09:52:23.000000000 +0100
@@ -1,13 +1,11 @@
import json
-import httpretty
-
from social_core.exceptions import AuthException
-from .oauth import OAuth2Test
+from .oauth import OAuth2PkcePlainTest, OAuth2PkceS256Test, OAuth2Test
-class TwitterOAuth2Test(OAuth2Test):
+class TwitterOAuth2Mixin:
backend_path = "social_core.backends.twitter_oauth2.TwitterOAuth2"
user_data_url = "https://api.twitter.com/2/users/me"
access_token_body = json.dumps(
@@ -172,58 +170,21 @@
self.assertIsNone(social.extra_data.get("public_metrics"))
-class TwitterOAuth2TestPkcePlain(TwitterOAuth2Test):
- def test_login(self):
- self.strategy.set_settings(
- {"SOCIAL_AUTH_TWITTER_OAUTH2_PKCE_CODE_CHALLENGE_METHOD": "plain"}
- )
-
- self.do_login()
-
- requests = httpretty.latest_requests()
- auth_request = [
- r for r in requests if "https://twitter.com/i/oauth2/authorize" in r.url
- ][0]
- code_challenge = auth_request.querystring.get("code_challenge")[0]
- code_challenge_method = auth_request.querystring.get("code_challenge_method")[0]
- self.assertIsNotNone(code_challenge)
- self.assertEqual(code_challenge_method, "plain")
-
- auth_complete = [
- r for r in requests if "https://api.twitter.com/2/oauth2/token" in r.url
- ][0]
- code_verifier = auth_complete.parsed_body.get("code_verifier")[0]
- self.assertEqual(code_challenge, code_verifier)
-
+class TwitterOAuth2TestPkcePlain(TwitterOAuth2Mixin, OAuth2PkcePlainTest):
+ pass
-class TwitterOAuth2TestPkceS256(TwitterOAuth2Test):
- def test_login(self):
- # use default value of PKCE_CODE_CHALLENGE_METHOD (s256)
- self.do_login()
- requests = httpretty.latest_requests()
- auth_request = [
- r for r in requests if "https://twitter.com/i/oauth2/authorize" in r.url
- ][0]
- code_challenge = auth_request.querystring.get("code_challenge")[0]
- code_challenge_method = auth_request.querystring.get("code_challenge_method")[0]
- self.assertIsNotNone(code_challenge)
- self.assertEqual(code_challenge_method, "s256")
-
- auth_complete = [
- r for r in requests if "https://api.twitter.com/2/oauth2/toke" in r.url
- ][0]
- code_verifier = auth_complete.parsed_body.get("code_verifier")[0]
- self.assertEqual(
- self.backend.generate_code_challenge(code_verifier, "s256"), code_challenge
- )
+class TwitterOAuth2TestPkceS256(TwitterOAuth2Mixin, OAuth2PkceS256Test):
+ pass
-class TwitterOAuth2TestInvalidCodeChallengeMethod(TwitterOAuth2Test):
+class TwitterOAuth2TestInvalidCodeChallengeMethod(
+ TwitterOAuth2Mixin, OAuth2PkcePlainTest
+):
def test_login__error(self):
self.strategy.set_settings(
{
- "SOCIAL_AUTH_TWITTER_OAUTH2_PKCE_CODE_CHALLENGE_METHOD": "invalidmethodname"
+ f"SOCIAL_AUTH_{self.name}_PKCE_CODE_CHALLENGE_METHOD": "invalidmethodname",
}
)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-blosc2 for openSUSE:Factory checked in at 2023-12-01 21:26:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-blosc2 (Old)
and /work/SRC/openSUSE:Factory/.python-blosc2.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-blosc2"
Fri Dec 1 21:26:49 2023 rev:8 rq:1130254 version:2.3.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-blosc2/python-blosc2.changes 2023-10-15 19:29:38.769448900 +0200
+++ /work/SRC/openSUSE:Factory/.python-blosc2.new.25432/python-blosc2.changes 2023-12-01 21:27:16.606084115 +0100
@@ -1,0 +2,35 @@
+Fri Dec 1 13:36:28 UTC 2023 - Ben Greiner <code(a)bnavigator.de>
+
+- Update to 2.3.2
+ * Support for `pathlib.Path` objects in all the places where
+ `urlpath` is used (e.g. `blosc2.open()`). Thanks to Marta
+ Iborra.
+ * Included docs for `SChunk.fill_special()` and `NDArray.dtype`.
+ Thanks to Francesc Alted.
+
+-------------------------------------------------------------------
+Sat Nov 25 12:58:13 UTC 2023 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 2.3.1:
+ * Temporarily disable AVX512 support in C-Blosc2 for wheels
+ built by CI until run-time detection works properly.
+ * Require at least Cython 3 for building. Using previous
+ versions worked but error handling was not correct (wheels
+ were being built with Cython 3 anyway).
+ * New `NDArray.to_cframe()` method and
+ `blosc2.ndarray_from_cframe()` function for serializing and
+ deserializing NDArrays to/from contiguous in-memory frames.
+ Thanks to Francesc Alted.
+ * Add an optional `offset` argument to `blosc2.schunk.open()`,
+ to access super-chunks stored in containers like HDF5. Thanks
+ to Ivan Vilata.
+ * Assorted minor fixes to the blocksize/blockshape computation
+ algorithm, avoiding some cases where it resulted in values
+ exceeding maximum limits. Thanks to Ivan Vilata.
+ * Updated to latest C-Blosc2 2.11.2. It adds AVX512 support for
+ the bitshuffle filter, fixes ARM and Raspberry Pi
+ compatibility and assorted issues.
+ * Add python-blosc2 package definition for Guix. Thanks to Ivan
+ Vilata.
+
+-------------------------------------------------------------------
Old:
----
blosc2-2.2.9.tar.gz
New:
----
blosc2-2.3.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-blosc2.spec ++++++
--- /var/tmp/diff_new_pack.5yOi8q/_old 2023-12-01 21:27:17.518117679 +0100
+++ /var/tmp/diff_new_pack.5yOi8q/_new 2023-12-01 21:27:17.518117679 +0100
@@ -17,7 +17,7 @@
Name: python-blosc2
-Version: 2.2.9
+Version: 2.3.2
Release: 0
Summary: Python wrapper for the C-Blosc2 library
License: BSD-3-Clause
@@ -35,7 +35,7 @@
BuildRequires: fdupes
BuildRequires: pkgconfig
BuildRequires: python-rpm-macros
-BuildRequires: pkgconfig(blosc2) >= 2.10.4
+BuildRequires: pkgconfig(blosc2) >= 2.11.3
Requires: python-msgpack
Requires: python-ndindex >= 1.4
Requires: python-numpy >= 1.20.3
++++++ blosc2-2.2.9.tar.gz -> blosc2-2.3.2.tar.gz ++++++
++++ 5805 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package virt-v2v for openSUSE:Factory checked in at 2023-12-01 21:26:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/virt-v2v (Old)
and /work/SRC/openSUSE:Factory/.virt-v2v.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virt-v2v"
Fri Dec 1 21:26:42 2023 rev:10 rq:1130215 version:2.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/virt-v2v/virt-v2v.changes 2023-06-21 22:41:27.334947622 +0200
+++ /work/SRC/openSUSE:Factory/.virt-v2v.new.25432/virt-v2v.changes 2023-12-01 21:27:13.865983277 +0100
@@ -1,0 +2,7 @@
+Thu Nov 30 22:22:22 UTC 2023 - olaf(a)aepfle.de
+
+- Remove obsolete requirement for ocaml-gettext-stub-devel
+- Require OCaml 4.07+
+- Align ExclusiveArch with libguestfs
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ virt-v2v.spec ++++++
--- /var/tmp/diff_new_pack.wmuN8F/_old 2023-12-01 21:27:14.654012278 +0100
+++ /var/tmp/diff_new_pack.wmuN8F/_new 2023-12-01 21:27:14.658012424 +0100
@@ -45,11 +45,10 @@
BuildRequires: libvirt-devel
BuildRequires: libxml2-devel
BuildRequires: mkisofs
-BuildRequires: ocaml >= 4.01
+BuildRequires: ocaml(ocaml_base_version) >= 4.07
BuildRequires: ocaml-fileutils-devel
BuildRequires: ocaml-findlib-devel
BuildRequires: ocaml-gettext-devel
-BuildRequires: ocaml-gettext-stub-devel
BuildRequires: ocaml-hivex-devel
BuildRequires: ocaml-libguestfs
BuildRequires: ocaml-libguestfs-devel
@@ -78,13 +77,8 @@
Recommends: nbdkit-python-plugin
Recommends: nbdkit-ssh-plugin
Recommends: nbdkit-vddk-plugin
-# libguestfs hasn't been built on i686 for a while since there is no
-# kernel built for this architecture any longer and libguestfs rather
-# fundamentally depends on the kernel. Therefore we must exclude this
-# arch. Note there is no bug filed for this because we do not ever
-# expect that libguestfs or virt-v2v will be available on i686 so
-# there is nothing that needs fixing.
-ExcludeArch: %{ix86}
+# Build only for architectures that have a kernel
+ExclusiveArch: x86_64 ppc64le s390x aarch64 riscv64
%if 0%{patches_touch_autotools}
BuildRequires: autoconf
BuildRequires: automake
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package openSUSE-release-tools for openSUSE:Factory checked in at 2023-12-01 21:26:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools"
Fri Dec 1 21:26:20 2023 rev:516 rq:1130180 version:20231201.6367d8f
Changes:
--------
--- /work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes 2023-11-30 22:05:53.191330504 +0100
+++ /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.25432/openSUSE-release-tools.changes 2023-12-01 21:27:02.805576816 +0100
@@ -1,0 +2,7 @@
+Fri Dec 01 09:59:38 UTC 2023 - opensuse-releaseteam(a)opensuse.org
+
+- Update to version 20231201.6367d8f:
+ * ttm: fix regexp to match 'livecd-x11' check
+ * ttm: Allow bigger images for livecd-x11 on aarch64 since no CD will be used, but usb sticks
+
+-------------------------------------------------------------------
Old:
----
openSUSE-release-tools-20231130.29c388e.obscpio
New:
----
openSUSE-release-tools-20231201.6367d8f.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.4VUm2k/_old 2023-12-01 21:27:03.681608991 +0100
+++ /var/tmp/diff_new_pack.4VUm2k/_new 2023-12-01 21:27:03.681608991 +0100
@@ -20,7 +20,7 @@
%define source_dir openSUSE-release-tools
%define announcer_filename factory-package-news
Name: openSUSE-release-tools
-Version: 20231130.29c388e
+Version: 20231201.6367d8f
Release: 0
Summary: Tools to aid in staging and release work for openSUSE/SUSE
License: GPL-2.0-or-later AND MIT
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.4VUm2k/_old 2023-12-01 21:27:03.717610313 +0100
+++ /var/tmp/diff_new_pack.4VUm2k/_new 2023-12-01 21:27:03.721610460 +0100
@@ -1,7 +1,7 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param>
- <param name="changesrevision">29c388e47a11b36300bb7deab1f31dcf544d7372</param>
+ <param name="changesrevision">6367d8f1869d8044075a89f4614f7a23a41d73b2</param>
</service>
</servicedata>
++++++ openSUSE-release-tools-20231130.29c388e.obscpio -> openSUSE-release-tools-20231201.6367d8f.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20231130.29c388e/ttm/releaser.py new/openSUSE-release-tools-20231201.6367d8f/ttm/releaser.py
--- old/openSUSE-release-tools-20231130.29c388e/ttm/releaser.py 2023-11-30 14:48:11.000000000 +0100
+++ new/openSUSE-release-tools-20231201.6367d8f/ttm/releaser.py 2023-12-01 10:58:54.000000000 +0100
@@ -81,15 +81,15 @@
return self.iso_build_version(self.project.name, self.project.image_products[0].package,
arch=self.project.image_products[0].archs[0])
- def maxsize_for_package(self, package):
+ def maxsize_for_package(self, package, arch):
if re.match(r'.*-mini-.*', package):
return 737280000 # a CD needs to match
if re.match(r'.*-dvd5-.*', package):
return 4700372992 # a DVD needs to match
- if re.match(r'livecd-x11', package):
- return 681574400 # not a full CD
+ if re.match(r'livecd-x11-.*', package) and arch == 'x86_64':
+ return 681574400 # not a full CD on x86
if re.match(r'livecd-.*', package):
return 999999999 # a GB stick
@@ -122,7 +122,7 @@
self.logger.info('No "succeeded" for %s %s %s %s' % (project, package, repository, arch))
return False
- maxsize = self.maxsize_for_package(package)
+ maxsize = self.maxsize_for_package(package, arch)
if not maxsize:
return True
++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.4VUm2k/_old 2023-12-01 21:27:04.469637933 +0100
+++ /var/tmp/diff_new_pack.4VUm2k/_new 2023-12-01 21:27:04.473638080 +0100
@@ -1,5 +1,5 @@
name: openSUSE-release-tools
-version: 20231130.29c388e
-mtime: 1701352091
-commit: 29c388e47a11b36300bb7deab1f31dcf544d7372
+version: 20231201.6367d8f
+mtime: 1701424734
+commit: 6367d8f1869d8044075a89f4614f7a23a41d73b2
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-aiodataloader for openSUSE:Factory checked in at 2023-12-01 21:26:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-aiodataloader (Old)
and /work/SRC/openSUSE:Factory/.python-aiodataloader.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-aiodataloader"
Fri Dec 1 21:26:17 2023 rev:4 rq:1130179 version:0.4.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-aiodataloader/python-aiodataloader.changes 2022-03-17 17:02:10.757716624 +0100
+++ /work/SRC/openSUSE:Factory/.python-aiodataloader.new.25432/python-aiodataloader.changes 2023-12-01 21:26:59.513455905 +0100
@@ -1,0 +2,14 @@
+Fri Dec 1 09:57:04 UTC 2023 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 0.4.0:
+ * Fixed typo in `batch_load_fn` TypeError
+ * Removed `None` default value for `key` arg in
+ `DataLoader.load()`
+ * Removed Python 3.6 as a supported target version
+- update to 0.3.0:
+ * Adds typing
+ * Drops support for Python<3.6
+ * Adds support for overriding `get_cache_key` in subclasses
+ * Improves README.md and removes README.rst
+
+-------------------------------------------------------------------
Old:
----
python-aiodataloader-0.2.1.tar.gz
New:
----
python-aiodataloader-0.4.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-aiodataloader.spec ++++++
--- /var/tmp/diff_new_pack.FLKt1h/_old 2023-12-01 21:27:00.393488227 +0100
+++ /var/tmp/diff_new_pack.FLKt1h/_new 2023-12-01 21:27:00.393488227 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-aiodataloader
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,9 +16,9 @@
#
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%{?sle15_python_module_pythons}
Name: python-aiodataloader
-Version: 0.2.1
+Version: 0.4.0
Release: 0
Summary: Asyncio DataLoader implementation for Python
License: MIT
@@ -26,12 +26,15 @@
Source: https://github.com/syrusakbary/aiodataloader/archive/v%{version}.tar.gz#/%{…
# pypi tarball has no tests
#Source: https://files.pythonhosted.org/packages/source/a/aiodataloader/aiodataloade…
-BuildRequires: %{python_module setuptools}
+BuildRequires: %{python_module pip}
+BuildRequires: %{python_module hatchling}
+BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
# SECTION tests
BuildRequires: %{python_module pytest >= 3.6}
BuildRequires: %{python_module pytest-asyncio}
+BuildRequires: %{python_module typing-extensions}
BuildArch: noarch
%python_subpackages
@@ -45,10 +48,10 @@
%setup -q -n aiodataloader-%{version}
%build
-%python_build
+%pyproject_wheel
%install
-%python_install
+%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
++++++ python-aiodataloader-0.2.1.tar.gz -> python-aiodataloader-0.4.0.tar.gz ++++++
++++ 1986 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package conftest for openSUSE:Factory checked in at 2023-12-01 21:26:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/conftest (Old)
and /work/SRC/openSUSE:Factory/.conftest.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "conftest"
Fri Dec 1 21:26:12 2023 rev:11 rq:1130171 version:0.47.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/conftest/conftest.changes 2023-10-06 21:13:26.033667147 +0200
+++ /work/SRC/openSUSE:Factory/.conftest.new.25432/conftest.changes 2023-12-01 21:26:53.921250518 +0100
@@ -1,0 +2,25 @@
+Fri Dec 01 05:59:23 UTC 2023 - kastl(a)b1-systems.de
+
+- Update to version 0.47.0:
+ * build(deps): bump github.com/open-policy-agent/opa from 0.58.0
+ to 0.59.0 (#891)
+ * ci: Bump Go to 1.21.x (#890)
+ * ci: Bump setup-go and checkout to v4 (#889)
+ * ci: Have Dependabot auto-update upstream parser libraries
+ (#886)
+ * fix: Unmarshal error for Dockerfile in parse_config builtins
+ (#887)
+ * build(deps): bump golang from 1.21.3-alpine to 1.21.4-alpine
+ (#884)
+ * docts: update install.md (#883)
+ * build(deps): bump github.com/open-policy-agent/opa from 0.57.1
+ to 0.58.0 (#882)
+ * feat: Implement option for custom output destinations (#877)
+ * build(deps): bump github.com/open-policy-agent/opa from 0.57.0
+ to 0.57.1 (#880)
+ * feat: Use Regal for Rego linting (#881)
+ * build(deps): bump golang from 1.21.1-alpine to 1.21.3-alpine
+ (#878)
+ * build(deps): bump alpine from 3.18.3 to 3.18.4 (#875)
+
+-------------------------------------------------------------------
Old:
----
conftest-0.46.0.obscpio
New:
----
conftest-0.47.0.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ conftest.spec ++++++
--- /var/tmp/diff_new_pack.MWCXdR/_old 2023-12-01 21:26:55.153295768 +0100
+++ /var/tmp/diff_new_pack.MWCXdR/_new 2023-12-01 21:26:55.153295768 +0100
@@ -17,7 +17,7 @@
Name: conftest
-Version: 0.46.0
+Version: 0.47.0
Release: 0
Summary: Tool to write tests against structured configuration data
License: Apache-2.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.MWCXdR/_old 2023-12-01 21:26:55.181296796 +0100
+++ /var/tmp/diff_new_pack.MWCXdR/_new 2023-12-01 21:26:55.185296943 +0100
@@ -4,7 +4,7 @@
<param name="scm">git</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">v(.*)</param>
- <param name="revision">v0.46.0</param>
+ <param name="revision">v0.47.0</param>
<param name="changesgenerate">enable</param>
</service>
<service name="set_version" mode="manual">
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.MWCXdR/_old 2023-12-01 21:26:55.201297531 +0100
+++ /var/tmp/diff_new_pack.MWCXdR/_new 2023-12-01 21:26:55.201297531 +0100
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/open-policy-agent/conftest.git</param>
- <param name="changesrevision">79220b5b2de5fb851aaaacebb2568353251432cb</param></service></servicedata>
+ <param name="changesrevision">6667f0336875761a10086107039679bfb5fc83e2</param></service></servicedata>
(No newline at EOF)
++++++ conftest-0.46.0.obscpio -> conftest-0.47.0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/.github/dependabot.yml new/conftest-0.47.0/.github/dependabot.yml
--- old/conftest-0.46.0/.github/dependabot.yml 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/.github/dependabot.yml 2023-12-01 05:14:18.000000000 +0100
@@ -6,7 +6,19 @@
- package-ecosystem: "gomod"
directory: "/"
allow:
+ # OPA
- dependency-name: "github.com/open-policy-agent/opa"
+ # Upstream Parsers
+ - dependency-name: "cuelang.org/go"
+ - dependency-name: "github.com/BurntSushi/toml"
+ - dependency-name: "github.com/CycloneDX/cyclonedx-go"
+ - dependency-name: "github.com/cpuguy83/dockercfg"
+ - dependency-name: "github.com/go-ini/ini"
+ - dependency-name: "github.com/google/go-jsonnet"
+ - dependency-name: "github.com/hashicorp/hcl"
+ - dependency-name: "github.com/magiconair/properties"
+ - dependency-name: "github.com/spdx/tools-golang"
+ - dependency-name: "github.com/subosito/gotenv"
schedule:
interval: "daily"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/.github/workflows/pr.yaml new/conftest-0.47.0/.github/workflows/pr.yaml
--- old/conftest-0.46.0/.github/workflows/pr.yaml 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/.github/workflows/pr.yaml 2023-12-01 05:14:18.000000000 +0100
@@ -32,12 +32,12 @@
runs-on: ubuntu-latest
steps:
- name: checkout source
- uses: actions/checkout@v2
+ uses: actions/checkout@v4
- name: setup go
- uses: actions/setup-go@v2
+ uses: actions/setup-go@v4
with:
- go-version: "1.21.0"
+ go-version: "1.21.x"
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
@@ -56,6 +56,14 @@
- name: test examples
run: make test-examples
+ - name: setup regal
+ uses: StyraInc/setup-regal(a)v0.2.0
+ with:
+ version: v0.11.0
+
+ - name: lint examples
+ run: regal lint --format github examples
+
- name: acceptance
run: make test-acceptance
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/.github/workflows/release.yaml new/conftest-0.47.0/.github/workflows/release.yaml
--- old/conftest-0.46.0/.github/workflows/release.yaml 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/.github/workflows/release.yaml 2023-12-01 05:14:18.000000000 +0100
@@ -10,7 +10,7 @@
runs-on: ubuntu-latest
steps:
- name: checkout source
- uses: actions/checkout@v2
+ uses: actions/checkout@v4
with:
fetch-depth: 0
@@ -41,9 +41,9 @@
run: make push TAG=$VERSION
- name: setup go
- uses: actions/setup-go@v2
+ uses: actions/setup-go@v4
with:
- go-version: "1.21.0"
+ go-version: "1.21.x"
- name: release
uses: goreleaser/goreleaser-action@v2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/.regal/config.yaml new/conftest-0.47.0/.regal/config.yaml
--- old/conftest-0.46.0/.regal/config.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/conftest-0.47.0/.regal/config.yaml 2023-12-01 05:14:18.000000000 +0100
@@ -0,0 +1,19 @@
+rules:
+ idiomatic:
+ no-defined-entrypoint:
+ level: ignore
+ imports:
+ prefer-package-imports:
+ level: error
+ ignore-import-paths:
+ - data.services
+ style:
+ line-length:
+ non-breakable-word-threshold: 80
+ opa-fmt:
+ level: ignore
+ prefer-some-in-iteration:
+ level: ignore
+ testing:
+ test-outside-test-package:
+ level: ignore
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/Dockerfile new/conftest-0.47.0/Dockerfile
--- old/conftest-0.46.0/Dockerfile 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/Dockerfile 2023-12-01 05:14:18.000000000 +0100
@@ -1,4 +1,4 @@
-FROM golang:1.21.1-alpine as base
+FROM golang:1.21.4-alpine as base
ARG TARGETARCH
ARG VERSION
ARG COMMIT
@@ -51,7 +51,7 @@
WORKDIR /examples
## RELEASE ##
-FROM alpine:3.18.3
+FROM alpine:3.18.4
# Install git for protocols that depend on it when using conftest pull
RUN apk add --no-cache git
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/acceptance.bats new/conftest-0.47.0/acceptance.bats
--- old/conftest-0.46.0/acceptance.bats 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/acceptance.bats 2023-12-01 05:14:18.000000000 +0100
@@ -176,7 +176,7 @@
@test "Supports print() output" {
run ./conftest test -p examples/report/policy_print/labels.rego examples/kubernetes/deployment.yaml --no-color
[ "$status" -eq 1 ]
- [[ "${lines[0]}" == "PRNT examples/report/policy_print/labels.rego:12: hello-kubernetes" ]]
+ [[ "${lines[0]}" == "PRNT examples/report/policy_print/labels.rego:13: hello-kubernetes" ]]
}
@test "Can parse hcl1 files" {
@@ -282,7 +282,7 @@
}
@test "Can parse newly introduced keywords for docker" {
- run bash -c "cat <<EOF | ./conftest parse --parser dockerfile -
+ run bash -c "cat <<EOF | ./conftest parse --parser dockerfile -
# syntax=docker/dockerfile:1.4
FROM alpine
COPY --link /foo /bar
@@ -415,14 +415,14 @@
}
@test "Can combine yaml files" {
- run ./conftest test -p examples/combine/policy examples/combine/team.yaml examples/combine/user1.yaml examples/combine/user2.yaml --combine
+ run ./conftest test -p examples/combine/policy examples/combine/team.yaml examples/combine/user1.yaml examples/combine/user2.yaml --combine
[ "$status" -eq 1 ]
[[ "$output" =~ "2 tests, 1 passed, 0 warnings, 1 failure" ]]
}
@test "Combining multi-document yaml file has same result" {
- run ./conftest test -p examples/combine/policy examples/combine/team.yaml examples/combine/users.yaml --combine
+ run ./conftest test -p examples/combine/policy examples/combine/team.yaml examples/combine/users.yaml --combine
[ "$status" -eq 1 ]
[[ "$output" =~ "2 tests, 1 passed, 0 warnings, 1 failure" ]]
@@ -438,7 +438,7 @@
run ./conftest test -p examples/spdx/policy examples/spdx/sbom.spdx
[ "$status" -eq 0 ]
- [[ "$output" =~ "1 test, 1 passed, 0 warnings, 0 failures, 0 exceptions" ]]
+ [[ "$output" =~ "1 test, 1 passed, 0 warnings, 0 failures, 0 exceptions" ]]
}
@test "Can test cyclonedx against policy" {
@@ -499,7 +499,7 @@
}
@test "Should show output because of failure" {
- run ./conftest test -p examples/kubernetes/policy/ examples/kubernetes/deployment.yaml --all-namespaces --quiet
+ run ./conftest test -p examples/kubernetes/policy/ examples/kubernetes/deployment.yaml --all-namespaces --quiet
[ "$status" -eq 1 ]
[[ "$output" =~ "5 tests, 1 passed, 0 warnings, 4 failures, 0 exceptions" ]]
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/builtins/parse_config.go new/conftest-0.47.0/builtins/parse_config.go
--- old/conftest-0.46.0/builtins/parse_config.go 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/builtins/parse_config.go 2023-12-01 05:14:18.000000000 +0100
@@ -66,7 +66,7 @@
if err != nil {
return nil, fmt.Errorf("create config parser: %w", err)
}
- var cfg map[string]any
+ var cfg any
if err := parser.Unmarshal([]byte(config), &cfg); err != nil {
return nil, fmt.Errorf("unmarshal config: %w", err)
}
@@ -92,7 +92,7 @@
return nil, fmt.Errorf("read config file %s: %w", filePath, err)
}
- var cfg map[string]any
+ var cfg any
if err := parser.Unmarshal(contents, &cfg); err != nil {
return nil, fmt.Errorf("unmarshal config: %w", err)
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/docs/install.md new/conftest-0.47.0/docs/install.md
--- old/conftest-0.46.0/docs/install.md 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/docs/install.md 2023-12-01 05:14:18.000000000 +0100
@@ -6,8 +6,10 @@
```console
LATEST_VERSION=$(wget -O - "https://api.github.com/repos/open-policy-agent/conftest/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' | cut -c 2-)
-wget "https://github.com/open-policy-agent/conftest/releases/download/v${LATEST_V…"
-tar xzf conftest_${LATEST_VERSION}_Linux_x86_64.tar.gz
+ARCH=$(arch)
+SYSTEM=$(uname)
+wget "https://github.com/open-policy-agent/conftest/releases/download/v${LATEST_V…"
+tar xzf conftest_${LATEST_VERSION}_${SYSTEM}_${ARCH}.tar.gz
sudo mv conftest /usr/local/bin
```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/awssam/policy/policy.rego new/conftest-0.47.0/examples/awssam/policy/policy.rego
--- old/conftest-0.46.0/examples/awssam/policy/policy.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/awssam/policy/policy.rego 2023-12-01 05:14:18.000000000 +0100
@@ -1,15 +1,15 @@
package main
-denylist = ["*"]
+denylist := ["*"]
-sensitive_denylist = [
+sensitive_denylist := [
"password",
"Password",
"Pass",
"pass",
]
-runtime_denylist = [
+runtime_denylist := [
"python2.7",
"node4.3",
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/combine/policy/duplicate.rego new/conftest-0.47.0/examples/combine/policy/duplicate.rego
--- old/conftest-0.46.0/examples/combine/policy/duplicate.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/combine/policy/duplicate.rego 2023-12-01 05:14:18.000000000 +0100
@@ -3,7 +3,7 @@
# Check that no name attribute exists twice among all resources
deny[msg] {
name := input[_].contents.metadata.name
- occurrences := [name | input[i].contents.metadata.name == name; name := input[i].metadata.name]
+ occurrences := [name | some i; input[i].contents.metadata.name == name; name := input[i].metadata.name]
count(occurrences) > 1
msg = sprintf("Error duplicate name : %s", [name])
}
@@ -13,8 +13,10 @@
name := input[_].contents.metadata.name
kind == "team"
+ some i, j
+
# list all existing users
- existing_users = {email | input[i].contents.kind == "user"; email := input[i].contents.metadata.email}
+ existing_users = {email | some i; input[i].contents.kind == "user"; email := input[i].contents.metadata.email}
# gather all configured users in teams
configured_owner_users_array = [user | input[i].contents.kind == "team"; user := input[i].contents.spec.owner]
@@ -31,5 +33,8 @@
# missing users are the ones configured in teams but not in Github
count(missing_users) > 0
- msg = sprintf("Existing users %s | Configured users %s | Missing users %s", [sort(existing_users), sort(configured_users), sort(missing_users)])
+ msg = sprintf(
+ "Existing users %s | Configured users %s | Missing users %s",
+ [sort(existing_users), sort(configured_users), sort(missing_users)],
+ )
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/cyclonedx/policy/policy.rego new/conftest-0.47.0/examples/cyclonedx/policy/policy.rego
--- old/conftest-0.46.0/examples/cyclonedx/policy/policy.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/cyclonedx/policy/policy.rego 2023-12-01 05:14:18.000000000 +0100
@@ -1,7 +1,9 @@
package main
deny[msg] {
- expectedSHAS256 := "sha256:d7ec60cf8390612b360c857688b383068b580d9a6ab78417c9493170ad3f1616"
- input.metadata.component.version != expectedSHAS256
- msg := sprintf("current SHA256 %s is not equal to expected SHA256 %s", [input.metadata.component.version, expectedSHAS256])
+ expected_shas256 := "sha256:d7ec60cf8390612b360c857688b383068b580d9a6ab78417c9493170ad3f1616"
+ input.metadata.component.version != expected_shas256
+ msg := sprintf(
+ "current SHA256 %s is not equal to expected SHA256 %s", [input.metadata.component.version, expected_shas256]
+ )
}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/docker/policy/commands.rego new/conftest-0.47.0/examples/docker/policy/commands.rego
--- old/conftest-0.46.0/examples/docker/policy/commands.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/docker/policy/commands.rego 2023-12-01 05:14:18.000000000 +0100
@@ -1,6 +1,6 @@
package commands
-denylist = [
+denylist := [
"apk",
"apt",
"pip",
@@ -9,9 +9,10 @@
]
deny[msg] {
+ some i
input[i].Cmd == "run"
val := input[i].Value
contains(val[_], denylist[_])
- msg = sprintf("unallowed commands found %s", [val])
+ msg := sprintf("unallowed commands found %s", [val])
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/docker/policy/images.rego new/conftest-0.47.0/examples/docker/policy/images.rego
--- old/conftest-0.46.0/examples/docker/policy/images.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/docker/policy/images.rego 2023-12-01 05:14:18.000000000 +0100
@@ -1,8 +1,9 @@
package main
-denylist = ["openjdk"]
+denylist := ["openjdk"]
deny[msg] {
+ some i
input[i].Cmd == "from"
val := input[i].Value
contains(val[i], denylist[_])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/hcl1/policy/base.rego new/conftest-0.47.0/examples/hcl1/policy/base.rego
--- old/conftest-0.46.0/examples/hcl1/policy/base.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/hcl1/policy/base.rego 2023-12-01 05:14:18.000000000 +0100
@@ -1,6 +1,6 @@
package main
-denylist = [
+denylist := [
"google_iam",
"google_container",
]
@@ -8,7 +8,7 @@
deny[msg] {
check_resources(input.resource_changes, denylist)
banned := concat(", ", denylist)
- msg = sprintf("Terraform plan will change prohibited resources in the following namespaces: %v", [banned])
+ msg := sprintf("Terraform plan will change prohibited resources in the following namespaces: %v", [banned])
}
# Checks whether the plan will cause resources with certain prefixes to change
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/hcl2/policy/deny.rego new/conftest-0.47.0/examples/hcl2/policy/deny.rego
--- old/conftest-0.46.0/examples/hcl2/policy/deny.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/hcl2/policy/deny.rego 2023-12-01 05:14:18.000000000 +0100
@@ -5,12 +5,14 @@
}
deny[msg] {
+ some lb
proto := input.resource.aws_alb_listener[lb].protocol
proto == "HTTP"
msg = sprintf("ALB `%v` is using HTTP rather than HTTPS", [lb])
}
deny[msg] {
+ some name
rule := input.resource.aws_security_group_rule[name]
rule.type == "ingress"
contains(rule.cidr_blocks[_], "0.0.0.0/0")
@@ -18,6 +20,7 @@
}
deny[msg] {
+ some name
disk = input.resource.azurerm_managed_disk[name]
has_field(disk, "encryption_settings")
disk.encryption_settings.enabled != true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/hcl2/policy/deny_test.rego new/conftest-0.47.0/examples/hcl2/policy/deny_test.rego
--- old/conftest-0.46.0/examples/hcl2/policy/deny_test.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/hcl2/policy/deny_test.rego 2023-12-01 05:14:18.000000000 +0100
@@ -13,7 +13,9 @@
}
test_correctly_encrypted_azure_disk {
- no_violations with input as {"resource": {"azurerm_managed_disk": {"sample": {"encryption_settings": {"enabled": true}}}}}
+ no_violations with input as {
+ "resource": {"azurerm_managed_disk": {"sample": {"encryption_settings": {"enabled": true}}}}
+ }
}
test_unencrypted_azure_disk {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/ignore/dockerignore/policy/deny.rego new/conftest-0.47.0/examples/ignore/dockerignore/policy/deny.rego
--- old/conftest-0.46.0/examples/ignore/dockerignore/policy/deny.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/ignore/dockerignore/policy/deny.rego 2023-12-01 05:14:18.000000000 +0100
@@ -1,7 +1,7 @@
package main
any_git_ignored {
- entry := input[o]
+ entry := input[_]
entry.Kind == "Path"
entry.Value == ".git"
@@ -9,5 +9,5 @@
deny[msg] {
not any_git_ignored
- msg = ".git directories should be ignored"
+ msg := ".git directories should be ignored"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/ignore/gitignore/policy/deny.rego new/conftest-0.47.0/examples/ignore/gitignore/policy/deny.rego
--- old/conftest-0.46.0/examples/ignore/gitignore/policy/deny.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/ignore/gitignore/policy/deny.rego 2023-12-01 05:14:18.000000000 +0100
@@ -1,7 +1,7 @@
package main
any_id_rsa_ignored {
- entry := input[i]
+ entry := input[_]
entry.Kind == "Path"
entry.Value == "id_rsa"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/kubernetes/combine/combine.rego new/conftest-0.47.0/examples/kubernetes/combine/combine.rego
--- old/conftest-0.46.0/examples/kubernetes/combine/combine.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/kubernetes/combine/combine.rego 2023-12-01 05:14:18.000000000 +0100
@@ -1,6 +1,7 @@
package main
violation[msg] {
+ some i
input[i].contents.kind == "Deployment"
deployment := input[i].contents
not service_selects_app(deployment.spec.selector.matchLabels.app)
@@ -8,6 +9,7 @@
}
service_selects_app(app) {
+ some i
input[i].contents.kind == "Service"
service := input[i].contents
service.spec.selector.app == app
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/kubernetes/policy/base_test.rego new/conftest-0.47.0/examples/kubernetes/policy/base_test.rego
--- old/conftest-0.46.0/examples/kubernetes/policy/base_test.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/kubernetes/policy/base_test.rego 2023-12-01 05:14:18.000000000 +0100
@@ -13,7 +13,10 @@
}
test_deployment_without_security_context {
- deny["Containers must not run as root in Deployment sample"] with input as {"kind": "Deployment", "metadata": {"name": "sample"}}
+ deny["Containers must not run as root in Deployment sample"] with input as {
+ "kind": "Deployment",
+ "metadata": {"name": "sample"}
+ }
}
test_deployment_with_security_context {
@@ -47,5 +50,10 @@
}
test_services_issue_warning {
- warn["Found service sample but services are not allowed"] with input as {"kind": "Service", "metadata": {"name": "sample"}}
+ warn["Found service sample but services are not allowed"] with input as {
+ "kind": "Service",
+ "metadata": {
+ "name": "sample"
+ }
+ }
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/kubernetes/policy/deny.rego new/conftest-0.47.0/examples/kubernetes/policy/deny.rego
--- old/conftest-0.46.0/examples/kubernetes/policy/deny.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/kubernetes/policy/deny.rego 2023-12-01 05:14:18.000000000 +0100
@@ -2,7 +2,7 @@
import data.kubernetes
-name = input.metadata.name
+name := input.metadata.name
deny[msg] {
kubernetes.is_deployment
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/kubernetes/policy/labels.rego new/conftest-0.47.0/examples/kubernetes/policy/labels.rego
--- old/conftest-0.46.0/examples/kubernetes/policy/labels.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/kubernetes/policy/labels.rego 2023-12-01 05:14:18.000000000 +0100
@@ -2,7 +2,7 @@
import data.kubernetes
-name = input.metadata.name
+name := input.metadata.name
required_deployment_labels {
input.metadata.labels["app.kubernetes.io/name"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/kubernetes/policy/violation.rego new/conftest-0.47.0/examples/kubernetes/policy/violation.rego
--- old/conftest-0.46.0/examples/kubernetes/policy/violation.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/kubernetes/policy/violation.rego 2023-12-01 05:14:18.000000000 +0100
@@ -2,9 +2,9 @@
import data.kubernetes
-name = input.metadata.name
+name := input.metadata.name
violation[{"msg": msg, "details": {}}] {
kubernetes.is_deployment
- msg = sprintf("Found deployment %s but deployments are not allowed", [name])
+ msg := sprintf("Found deployment %s but deployments are not allowed", [name])
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/kubernetes/policy/warn.rego new/conftest-0.47.0/examples/kubernetes/policy/warn.rego
--- old/conftest-0.46.0/examples/kubernetes/policy/warn.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/kubernetes/policy/warn.rego 2023-12-01 05:14:18.000000000 +0100
@@ -2,7 +2,7 @@
import data.kubernetes
-name = input.metadata.name
+name := input.metadata.name
warn[msg] {
kubernetes.is_service
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/properties/policy/test.rego new/conftest-0.47.0/examples/properties/policy/test.rego
--- old/conftest-0.46.0/examples/properties/policy/test.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/properties/policy/test.rego 2023-12-01 05:14:18.000000000 +0100
@@ -1,17 +1,19 @@
package main
deny_valid_uri[msg] {
+ some name
value := input[name]
contains(lower(name), "url")
not contains(lower(value), "http")
msg := sprintf("Must have a valid uri defined '%s'", [value])
}
-secret_exceptions = {
+secret_exceptions := {
"secret.value.exception"
}
deny_no_secrets[msg] {
+ some name
value := input[name]
not secret_exceptions[name]
contains(lower(name), "secret")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/report/policy/labels.rego new/conftest-0.47.0/examples/report/policy/labels.rego
--- old/conftest-0.46.0/examples/report/policy/labels.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/report/policy/labels.rego 2023-12-01 05:14:18.000000000 +0100
@@ -1,6 +1,6 @@
package main
-name = input.metadata.name
+name := input.metadata.name
required_deployment_labels {
input.metadata.labels["app.kubernetes.io/name"]
@@ -10,6 +10,7 @@
deny[msg] {
input.kind = "Deployment"
not required_deployment_labels
+ # regal ignore:print-or-trace-call
trace("just testing notes flag")
msg := sprintf("%s must include Kubernetes recommended labels: https://kubernetes.io/docs/concepts/overview/working-with-objects/common-la…", [name])
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/report/policy_print/labels.rego new/conftest-0.47.0/examples/report/policy_print/labels.rego
--- old/conftest-0.46.0/examples/report/policy_print/labels.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/report/policy_print/labels.rego 2023-12-01 05:14:18.000000000 +0100
@@ -1,6 +1,6 @@
package main
-name = input.metadata.name
+name := input.metadata.name
required_deployment_labels {
input.metadata.labels["app.kubernetes.io/name"]
@@ -8,7 +8,8 @@
}
deny[msg] {
- input.kind = "Deployment"
+ input.kind == "Deployment"
+ # regal ignore:print-or-trace-call
print(name)
not required_deployment_labels
msg := sprintf("%s must include Kubernetes recommended labels: https://kubernetes.io/docs/concepts/overview/working-with-objects/common-la…", [name])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/serverless/policy/base.rego new/conftest-0.47.0/examples/serverless/policy/base.rego
--- old/conftest-0.46.0/examples/serverless/policy/base.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/serverless/policy/base.rego 2023-12-01 05:14:18.000000000 +0100
@@ -6,6 +6,7 @@
}
runtime[name] {
+ some i
input.functions[i].runtime = name
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/serverless/policy/util.rego new/conftest-0.47.0/examples/serverless/policy/util.rego
--- old/conftest-0.46.0/examples/serverless/policy/util.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/serverless/policy/util.rego 2023-12-01 05:14:18.000000000 +0100
@@ -11,7 +11,7 @@
object[field] == false
}
-has_field(object, field) = false {
+has_field(object, field) := false {
not object[field]
not object[field] == false
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/spdx/policy/policy.rego new/conftest-0.47.0/examples/spdx/policy/policy.rego
--- old/conftest-0.46.0/examples/spdx/policy/policy.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/spdx/policy/policy.rego 2023-12-01 05:14:18.000000000 +0100
@@ -1,7 +1,7 @@
package main
deny[msg] {
- expectedDataLicense := "conftest-demo"
- input.CreationInfo.DataLicense != expectedDataLicense
- msg := sprintf("DataLicense should be %d, but found %d", [expectedDataLicense, input.CreationInfo.DataLicense])
+ expected_data_license := "conftest-demo"
+ input.CreationInfo.DataLicense != expected_data_license
+ msg := sprintf("DataLicense should be %d, but found %d", [expected_data_license, input.CreationInfo.DataLicense])
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/traefik/policy/base.rego new/conftest-0.47.0/examples/traefik/policy/base.rego
--- old/conftest-0.46.0/examples/traefik/policy/base.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/traefik/policy/base.rego 2023-12-01 05:14:18.000000000 +0100
@@ -1,10 +1,10 @@
package main
-disallowed_ciphers = ["TLS_RSA_WITH_AES_256_GCM_SHA384"]
+disallowed_ciphers := ["TLS_RSA_WITH_AES_256_GCM_SHA384"]
deny[msg] {
check_trusted_ips(input.entryPoints.http.tls.cipherSuites, disallowed_ciphers)
- msg = sprintf("Following ciphers are not allowed: %v", [disallowed_ciphers])
+ msg := sprintf("Following ciphers are not allowed: %v", [disallowed_ciphers])
}
check_trusted_ips(ciphers, denylist) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/traefik/policy/base_test.rego new/conftest-0.47.0/examples/traefik/policy/base_test.rego
--- old/conftest-0.46.0/examples/traefik/policy/base_test.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/traefik/policy/base_test.rego 2023-12-01 05:14:18.000000000 +0100
@@ -1,5 +1,7 @@
package main
test_ip_with_disallowed_ciphers {
- deny["IPs should not use disallowed ciphers"] with input as {"entryPoints": {"http": {"tls": {"cipherSuites": ["TLS_RSA_WITH_AES_256_GCM_SHA384"]}}}}
+ deny["IPs should not use disallowed ciphers"] with input as {
+ "entryPoints": {"http": {"tls": {"cipherSuites": ["TLS_RSA_WITH_AES_256_GCM_SHA384"]}}}
+ }
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/examples/xml/policy/deny.rego new/conftest-0.47.0/examples/xml/policy/deny.rego
--- old/conftest-0.46.0/examples/xml/policy/deny.rego 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/examples/xml/policy/deny.rego 2023-12-01 05:14:18.000000000 +0100
@@ -1,24 +1,29 @@
package main
-plugin_list = input.project.build.plugins.plugin
+plugin_list := input.project.build.plugins.plugin
deny[msg] {
expected_version := "3.6.1"
+ some i
plugin_list[i].artifactId == "maven-compiler-plugin"
not plugin_list[i].version = expected_version
msg = sprintf("in %s \n--- maven-plugin must have the version: %s \n", [plugin_list[i], expected_version])
}
deny[msg] {
+ some i
plugin_list[i].artifactId == "activejdbc-instrumentation"
not plugin_list[i].executions.execution.goals.goal = "instrument"
- msg = sprintf("in %s \n--- There must be defined 'instrument goal' for activejdbc-instrumentation \n", [plugin_list[i]])
+ msg = sprintf(
+ "in %s \n--- There must be defined 'instrument goal' for activejdbc-instrumentation \n", [plugin_list[i]]
+ )
}
deny[msg] {
expected_version := "2.18.1"
+ some i
plugin_list[i].artifactId == "maven-surefire-plugin"
not plugin_list[i].version = expected_version
msg = sprintf("in %s \n--- Version must be %s for maven-surefire-plugin \n", [plugin_list[i], expected_version])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/go.mod new/conftest-0.47.0/go.mod
--- old/conftest-0.46.0/go.mod 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/go.mod 2023-12-01 05:14:18.000000000 +0100
@@ -12,7 +12,7 @@
github.com/cpuguy83/dockercfg v0.3.1
github.com/go-akka/configuration v0.0.0-20200606091224-a002c0330665
github.com/go-ini/ini v1.67.0
- github.com/google/go-cmp v0.5.9
+ github.com/google/go-cmp v0.6.0
github.com/google/go-jsonnet v0.20.0
github.com/hashicorp/go-getter v1.7.2
github.com/hashicorp/hcl v1.0.0
@@ -21,12 +21,12 @@
github.com/magiconair/properties v1.8.7
github.com/moby/buildkit v0.11.5
github.com/olekukonko/tablewriter v0.0.5
- github.com/open-policy-agent/opa v0.57.0
- github.com/opencontainers/image-spec v1.1.0-rc4
+ github.com/open-policy-agent/opa v0.59.0
+ github.com/opencontainers/image-spec v1.1.0-rc5
github.com/pkg/errors v0.9.1
github.com/shteou/go-ignore v0.3.1
github.com/spdx/tools-golang v0.5.3
- github.com/spf13/cobra v1.7.0
+ github.com/spf13/cobra v1.8.0
github.com/spf13/viper v1.16.0
github.com/subosito/gotenv v1.6.0
github.com/tmccombs/hcl2json v0.3.1
@@ -34,13 +34,13 @@
google.golang.org/protobuf v1.31.0
muzzammil.xyz/jsonc v1.0.0
olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3
- oras.land/oras-go/v2 v2.3.0
- sigs.k8s.io/yaml v1.3.0
+ oras.land/oras-go/v2 v2.3.1
+ sigs.k8s.io/yaml v1.4.0
)
require (
- cloud.google.com/go v0.110.4 // indirect
- cloud.google.com/go/compute v1.21.0 // indirect
+ cloud.google.com/go v0.110.7 // indirect
+ cloud.google.com/go/compute v1.23.0 // indirect
cloud.google.com/go/compute/metadata v0.2.3 // indirect
cloud.google.com/go/iam v1.1.1 // indirect
cloud.google.com/go/storage v1.30.1 // indirect
@@ -59,8 +59,8 @@
github.com/docker/docker v23.0.3+incompatible // indirect
github.com/docker/go-connections v0.4.0 // indirect
github.com/docker/go-units v0.5.0 // indirect
- github.com/fsnotify/fsnotify v1.6.0 // indirect
- github.com/go-logr/logr v1.2.4 // indirect
+ github.com/fsnotify/fsnotify v1.7.0 // indirect
+ github.com/go-logr/logr v1.3.0 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/gobwas/glob v0.2.3 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
@@ -68,10 +68,10 @@
github.com/golang/protobuf v1.5.3 // indirect
github.com/google/flatbuffers v22.9.29+incompatible // indirect
github.com/google/s2a-go v0.1.4 // indirect
- github.com/google/uuid v1.3.1 // indirect
+ github.com/google/uuid v1.4.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect
github.com/googleapis/gax-go/v2 v2.11.0 // indirect
- github.com/gorilla/mux v1.8.0 // indirect
+ github.com/gorilla/mux v1.8.1 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-safetemp v1.0.0 // indirect
github.com/hashicorp/go-version v1.6.0 // indirect
@@ -106,23 +106,23 @@
github.com/yashtewari/glob-intersection v0.2.0 // indirect
github.com/zclconf/go-cty v1.13.2 // indirect
go.opencensus.io v0.24.0 // indirect
- go.opentelemetry.io/otel v1.16.0 // indirect
- go.opentelemetry.io/otel/metric v1.16.0 // indirect
- go.opentelemetry.io/otel/sdk v1.16.0 // indirect
- go.opentelemetry.io/otel/trace v1.16.0 // indirect
- golang.org/x/crypto v0.13.0 // indirect
- golang.org/x/net v0.15.0 // indirect
- golang.org/x/oauth2 v0.10.0 // indirect
- golang.org/x/sync v0.3.0 // indirect
- golang.org/x/sys v0.12.0 // indirect
- golang.org/x/text v0.13.0 // indirect
+ go.opentelemetry.io/otel v1.21.0 // indirect
+ go.opentelemetry.io/otel/metric v1.21.0 // indirect
+ go.opentelemetry.io/otel/sdk v1.21.0 // indirect
+ go.opentelemetry.io/otel/trace v1.21.0 // indirect
+ golang.org/x/crypto v0.16.0 // indirect
+ golang.org/x/net v0.19.0 // indirect
+ golang.org/x/oauth2 v0.11.0 // indirect
+ golang.org/x/sync v0.4.0 // indirect
+ golang.org/x/sys v0.15.0 // indirect
+ golang.org/x/text v0.14.0 // indirect
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
google.golang.org/api v0.126.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
- google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect
- google.golang.org/grpc v1.58.2 // indirect
+ google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect
+ google.golang.org/grpc v1.59.0 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/go.sum new/conftest-0.47.0/go.sum
--- old/conftest-0.46.0/go.sum 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/go.sum 2023-12-01 05:14:18.000000000 +0100
@@ -32,8 +32,8 @@
cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc=
cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU=
cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA=
-cloud.google.com/go v0.110.4 h1:1JYyxKMN9hd5dR2MYTPWkGUgcoxVVhg0LKNKEo0qvmk=
-cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI=
+cloud.google.com/go v0.110.7 h1:rJyC7nWRg2jWGZ4wSJ5nY65GTdYJkg0cd/uXb+ACI6o=
+cloud.google.com/go v0.110.7/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI=
cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw=
cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY=
cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI=
@@ -70,8 +70,8 @@
cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU=
cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U=
cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU=
-cloud.google.com/go/compute v1.21.0 h1:JNBsyXVoOoNJtTQcnEY5uYpZIbeCTYIeDe0Xh1bySMk=
-cloud.google.com/go/compute v1.21.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
+cloud.google.com/go/compute v1.23.0 h1:tP41Zoavr8ptEqaW6j+LQOnyBBhO7OkOMAGrgLopTwY=
+cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I=
@@ -265,7 +265,7 @@
github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E=
github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc=
github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
-github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -292,13 +292,13 @@
github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
-github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk=
+github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
github.com/foxcpp/go-mockdns v1.0.0 h1:7jBqxd3WDWwi/6WhDvacvH1XsN3rOLXyHM1uhvIx6FI=
github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
-github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
-github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
+github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
+github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-akka/configuration v0.0.0-20200606091224-a002c0330665 h1:Iz3aEheYgn+//VX7VisgCmF/wW3BMtXCLbvHV4jMQJA=
github.com/go-akka/configuration v0.0.0-20200606091224-a002c0330665/go.mod h1:19bUnum2ZAeftfwwLZ/wRe7idyfoW2MfmXO464Hrfbw=
@@ -308,8 +308,8 @@
github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A=
github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
-github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
+github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/go-quicktest/qt v1.100.0 h1:I7iSLgIwNp0E0UnSvKJzs7ig0jg/Iq83zsZjtQNW7jY=
@@ -321,7 +321,7 @@
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE=
+github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo=
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -376,8 +376,9 @@
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
-github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
+github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-jsonnet v0.20.0 h1:WG4TTSARuV7bSm4PMB4ohjxe33IHT5WVTrJSU33uT4g=
github.com/google/go-jsonnet v0.20.0/go.mod h1:VbgWF9JX7ztlv770x/TolZNGGFfiHEVx9G6ca2eUmeA=
github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
@@ -406,8 +407,8 @@
github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
-github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4=
+github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8=
github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8=
github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg=
@@ -426,11 +427,11 @@
github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI=
github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4=
github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
-github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
-github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
+github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
+github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 h1:BZHcxBETFHIdVyhyEfOvn/RdU/QGdLI4y34qQGjGWO0=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms=
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
github.com/hashicorp/go-getter v1.7.2 h1:uJDtyXwEfalmp1PqdxuhZqrNkUyClZAhVeZYTArbqkg=
@@ -506,12 +507,12 @@
github.com/mpvl/unique v0.0.0-20150818121801-cbe035fff7de/go.mod h1:kJun4WP5gFuHZgRjZUWWuH1DTxCtxbHDOIJsudS8jzY=
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
-github.com/open-policy-agent/opa v0.57.0 h1:DftxYfOEHOheXvO2Q6HCIM2ZVdKrvnF4cZlU9C64MIQ=
-github.com/open-policy-agent/opa v0.57.0/go.mod h1:3FY6GNSbUqOhjCdvTXCBJ2rNuh66p/XrIc2owr/hSwo=
+github.com/open-policy-agent/opa v0.59.0 h1:1WFU/KUhJAr3qatm0Lf8Ea5jp10ZmlE2M07oaLiHypg=
+github.com/open-policy-agent/opa v0.59.0/go.mod h1:rdJSkEc4oQ+0074/3Fsgno5bkPsYxTjU5aLNmMujIvI=
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
-github.com/opencontainers/image-spec v1.1.0-rc4 h1:oOxKUJWnFC4YGHCCMNql1x4YaDfYBTS5Y4x/Cgeo1E0=
-github.com/opencontainers/image-spec v1.1.0-rc4/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8=
+github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI=
+github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
@@ -557,8 +558,8 @@
github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA=
github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48=
github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
-github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
-github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
+github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
+github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
@@ -627,20 +628,19 @@
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.42.0 h1:pginetY7+onl4qN1vl0xW/V/v6OBZ0vVdH+esuJgvmM=
-go.opentelemetry.io/otel v1.16.0 h1:Z7GVAX/UkAXPKsy94IU+i6thsQS4nb7LviLpnaNeW8s=
-go.opentelemetry.io/otel v1.16.0/go.mod h1:vl0h9NUa1D5s1nv3A5vZOYWn8av4K8Ml6JDeHrT/bx4=
-go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.16.0 h1:t4ZwRPU+emrcvM2e9DHd0Fsf0JTPVcbfa/BhTDF03d0=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.16.0 h1:cbsD4cUcviQGXdw8+bo5x2wazq10SKz8hEbtCRPcU78=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.16.0 h1:TVQp/bboR4mhZSav+MdgXB8FaRho1RC8UwVn3T0vjVc=
-go.opentelemetry.io/otel/metric v1.16.0 h1:RbrpwVG1Hfv85LgnZ7+txXioPDoh6EdbZHo26Q3hqOo=
-go.opentelemetry.io/otel/metric v1.16.0/go.mod h1:QE47cpOmkwipPiefDwo2wDzwJrlfxxNYodqc4xnGCo4=
-go.opentelemetry.io/otel/sdk v1.16.0 h1:Z1Ok1YsijYL0CSJpHt4cS3wDDh7p572grzNrBMiMWgE=
-go.opentelemetry.io/otel/sdk v1.16.0/go.mod h1:tMsIuKXuuIWPBAOrH+eHtvhTL+SntFtXF9QD68aP6p4=
-go.opentelemetry.io/otel/trace v1.16.0 h1:8JRpaObFoW0pxuVPapkgH8UhHQj+bJW8jJsCZEu5MQs=
-go.opentelemetry.io/otel/trace v1.16.0/go.mod h1:Yt9vYq1SdNz3xdjZZK7wcXv1qv2pwLkqr2QVwea0ef0=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 h1:aFJWCqJMNjENlcleuuOkGAPH82y0yULBScfXcIEdS24=
+go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc=
+go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 h1:cl5P5/GIfFh4t6xyruOgJP5QiA1pw4fYYdv6nc6CBWw=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 h1:tIqheXEFWAZ7O8A7m+J0aPTmpJN3YQ7qetUAdkkkKpk=
+go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4=
+go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM=
+go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8=
+go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E=
+go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc=
+go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ=
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
-go.opentelemetry.io/proto/otlp v0.19.0 h1:IVN6GR+mhC4s5yfcTbmzHYODqvWAp3ZedA2SJPI1Nnw=
+go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
@@ -652,8 +652,8 @@
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck=
-golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
+golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY=
+golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -743,8 +743,8 @@
golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
-golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8=
-golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
+golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
+golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -770,8 +770,8 @@
golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A=
-golang.org/x/oauth2 v0.10.0 h1:zHCpF2Khkwy4mMB4bv0U37YtJdTGW8jI0glAApi0Kh8=
-golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI=
+golang.org/x/oauth2 v0.11.0 h1:vPL4xzxBM4niKCW6g9whtaWVXTJf1U5e4aZxxFx/gbU=
+golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -786,8 +786,8 @@
golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
-golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
+golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ=
+golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -856,10 +856,9 @@
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
-golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
+golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -874,8 +873,8 @@
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
-golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
-golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
+golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
+golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -1107,12 +1106,12 @@
google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM=
google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM=
google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s=
-google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g=
-google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98/go.mod h1:S7mY02OqCJTD0E1OiQy1F72PWFB4bZJ87cAtLPYgDR0=
-google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw=
-google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM=
+google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d h1:VBu5YqKPv6XiJ199exd8Br+Aetz+o08F+PLMnwJQHAY=
+google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
+google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q=
+google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
@@ -1148,8 +1147,8 @@
google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
-google.golang.org/grpc v1.58.2 h1:SXUpjxeVF3FKrTYQI4f4KvbGD5u2xccdYdurwowix5I=
-google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0=
+google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk=
+google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
@@ -1194,10 +1193,11 @@
muzzammil.xyz/jsonc v1.0.0/go.mod h1:rFv8tUUKe+QLh7v02BhfxXEf4ZHhYD7unR93HL/1Uvo=
olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 h1:slmdOY3vp8a7KQbHkL+FLbvbkgMqmXojpFUO/jENuqQ=
olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3/go.mod h1:oVgVk4OWVDi43qWBEyGhXgYxt7+ED4iYNpTngSLX2Iw=
-oras.land/oras-go/v2 v2.3.0 h1:lqX1aXdN+DAmDTKjiDyvq85cIaI4RkIKp/PghWlAGIU=
-oras.land/oras-go/v2 v2.3.0/go.mod h1:GeAwLuC4G/JpNwkd+bSZ6SkDMGaaYglt6YK2WvZP7uQ=
+oras.land/oras-go/v2 v2.3.1 h1:lUC6q8RkeRReANEERLfH86iwGn55lbSWP20egdFHVec=
+oras.land/oras-go/v2 v2.3.1/go.mod h1:5AQXVEu1X/FKp1F9DMOb5ZItZBOa0y5dha0yCm4NR9c=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
-sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
+sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
+sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conftest-0.46.0/output/output.go new/conftest-0.47.0/output/output.go
--- old/conftest-0.46.0/output/output.go 2023-10-02 00:17:16.000000000 +0200
+++ new/conftest-0.47.0/output/output.go 2023-12-01 05:14:18.000000000 +0100
@@ -21,6 +21,7 @@
SuppressExceptions bool
ShowSkipped bool
JUnitHideMessage bool
+ File *os.File
}
// The defined output formats represent all of the supported formats
@@ -37,23 +38,27 @@
// Get returns a type that can render output in the given format.
func Get(format string, options Options) Outputter {
+ if options.File == nil {
+ options.File = os.Stdout
+ }
+
switch format {
case OutputStandard:
- return &Standard{Writer: os.Stdout, NoColor: options.NoColor, SuppressExceptions: options.SuppressExceptions, Tracing: options.Tracing, ShowSkipped: options.ShowSkipped}
+ return &Standard{Writer: options.File, NoColor: options.NoColor, SuppressExceptions: options.SuppressExceptions, Tracing: options.Tracing, ShowSkipped: options.ShowSkipped}
case OutputJSON:
- return NewJSON(os.Stdout)
+ return NewJSON(options.File)
case OutputTAP:
- return NewTAP(os.Stdout)
+ return NewTAP(options.File)
case OutputTable:
- return NewTable(os.Stdout)
+ return NewTable(options.File)
case OutputJUnit:
- return NewJUnit(os.Stdout, options.JUnitHideMessage)
+ return NewJUnit(options.File, options.JUnitHideMessage)
case OutputGitHub:
- return NewGitHub(os.Stdout)
+ return NewGitHub(options.File)
case OutputAzureDevOps:
- return NewAzureDevOps(os.Stdout)
+ return NewAzureDevOps(options.File)
default:
- return NewStandard(os.Stdout)
+ return NewStandard(options.File)
}
}
++++++ conftest.obsinfo ++++++
--- /var/tmp/diff_new_pack.MWCXdR/_old 2023-12-01 21:26:55.369303702 +0100
+++ /var/tmp/diff_new_pack.MWCXdR/_new 2023-12-01 21:26:55.369303702 +0100
@@ -1,5 +1,5 @@
name: conftest
-version: 0.46.0
-mtime: 1696198636
-commit: 79220b5b2de5fb851aaaacebb2568353251432cb
+version: 0.47.0
+mtime: 1701404058
+commit: 6667f0336875761a10086107039679bfb5fc83e2
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/conftest/vendor.tar.gz /work/SRC/openSUSE:Factory/.conftest.new.25432/vendor.tar.gz differ: char 5, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package onednn for openSUSE:Factory checked in at 2023-12-01 21:26:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/onednn (Old)
and /work/SRC/openSUSE:Factory/.onednn.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "onednn"
Fri Dec 1 21:26:07 2023 rev:11 rq:1130165 version:3.3.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/onednn/onednn.changes 2023-10-10 21:02:27.846790450 +0200
+++ /work/SRC/openSUSE:Factory/.onednn.new.25432/onednn.changes 2023-12-01 21:26:45.068925396 +0100
@@ -1,0 +2,18 @@
+Fri Dec 1 04:33:49 UTC 2023 - Alessandro de Oliveira Faria <cabelo(a)opensuse.org>
+
+- Update to 3.3.1:
+- This is a patch release containing the following changes to v3.3:
+ * Fixed int8 convolution accuracy issue on Intel GPUs (09c87c7)
+ * Switched internal stream to in-order mode for NVIDIA and AMD GPUs to avoid synchronization issues (db01d62)
+ * Fixed runtime error for avgpool_bwd operation in Graph API (d025ef6, 9e0602a, e0dc1b3)
+ * Fixed benchdnn error reporting for some Graph API cases (98dc9db)
+ * Fixed accuracy issue in experimental Graph Compiler for int8 MHA variant from StarCoder model (5476ef7)
+ * Fixed incorrect results for layer normalization with trivial dimensions on Intel GPUs (a2ec0a0)
+ * Removed redundant synchronization for out-of-order SYCL queues (a96e9b1)
+ * Fixed runtime error in experimental Graph Compiler for int8 MLP subgraph from LLAMA model (595543d)
+ * Fixed SEGFAULT in experimental Graph Compiler for fp32 MLP subgraph (4207105)
+ * Fixed incorrect results in experimental Graph Compiler for MLP subgraph (57e14b5)
+ * Fixed the issue with f16 inner product primitive with s8 output returning unimplemented on Intel GPUs (bf12207, 800b5e9, ec7054a)
+ * Fixed incorrect results for int8 deconvolution with zero-points on processors with Intel AMX instructions support (55d2cec)
+
+-------------------------------------------------------------------
Old:
----
oneDNN-3.3.tar.gz
New:
----
oneDNN-3.3.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ onednn.spec ++++++
--- /var/tmp/diff_new_pack.NseQsm/_old 2023-12-01 21:26:45.728949637 +0100
+++ /var/tmp/diff_new_pack.NseQsm/_new 2023-12-01 21:26:45.728949637 +0100
@@ -32,7 +32,7 @@
%define libname libdnnl3
Name: onednn
-Version: 3.3
+Version: 3.3.1
Release: 0
Summary: Intel Math Kernel Library for Deep Neural Networks
License: Apache-2.0
++++++ oneDNN-3.3.tar.gz -> oneDNN-3.3.1.tar.gz ++++++
/work/SRC/openSUSE:Factory/onednn/oneDNN-3.3.tar.gz /work/SRC/openSUSE:Factory/.onednn.new.25432/oneDNN-3.3.1.tar.gz differ: char 12, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package kew for openSUSE:Factory checked in at 2023-12-01 21:26:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kew (Old)
and /work/SRC/openSUSE:Factory/.kew.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kew"
Fri Dec 1 21:26:03 2023 rev:4 rq:1130123 version:1.8.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/kew/kew.changes 2023-11-27 22:43:58.471161516 +0100
+++ /work/SRC/openSUSE:Factory/.kew.new.25432/kew.changes 2023-12-01 21:26:40.400753946 +0100
@@ -1,0 +2,28 @@
+Wed Nov 29 12:05:29 UTC 2023 - Muhammad Akbar Yanuar Mantari <mantarimay(a)pm.me>
+
+- Update to version 1.8.1
+ * Fixed bug where kew for no reason stopped playing audio but
+ kept counting elapsed seconds.
+ * Fixed bugs relating to showing the playlist.
+ * Fixed bug where trying to seek in ogg files led to strange
+ behavior. Now seeking in ogg is entirely disabled.
+ * More colorful visualizer bars when using album cover colors.
+
+-------------------------------------------------------------------
+Tue Nov 28 00:27:10 UTC 2023 - Muhammad Akbar Yanuar Mantari <mantarimay(a)pm.me>
+
+- Update to version 1.8
+ * visualizer bars now grow and decrease smoothly (if your
+ terminal supports unicode).
+ * m4a files quit properly.
+
+-------------------------------------------------------------------
+Mon Nov 27 10:18:38 UTC 2023 - Muhammad Akbar Yanuar Mantari <mantarimay(a)pm.me>
+
+- Update to version 1.7.4
+ * kew is now interactive when paused.
+ * Fixed issue with crashing after a few plays with repeat
+ enabled.
+ * Deletes cover images from cache after playing the file.
+
+-------------------------------------------------------------------
Old:
----
kew-1.7.3.tar.gz
New:
----
kew-1.8.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kew.spec ++++++
--- /var/tmp/diff_new_pack.hUONxd/_old 2023-12-01 21:26:41.244784945 +0100
+++ /var/tmp/diff_new_pack.hUONxd/_new 2023-12-01 21:26:41.256785386 +0100
@@ -17,7 +17,7 @@
Name: kew
-Version: 1.7.3
+Version: 1.8.1
Release: 0
Summary: A command-line music player
License: GPL-2.0-only
++++++ kew-1.7.3.tar.gz -> kew-1.8.1.tar.gz ++++++
Binary files old/kew-1.7.3/kew-screenshot.png and new/kew-1.8.1/kew-screenshot.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kew-1.7.3/src/cache.c new/kew-1.8.1/src/cache.c
--- old/kew-1.7.3/src/cache.c 2023-11-25 23:57:24.000000000 +0100
+++ new/kew-1.8.1/src/cache.c 2023-11-29 01:42:25.000000000 +0100
@@ -51,4 +51,18 @@
remove(current->filePath);
current = current->next;
}
+}
+
+bool existsInCache(Cache *cache, char *filePath)
+{
+ CacheNode *current = cache->head;
+ while (current != NULL)
+ {
+ if (strcmp(filePath, current->filePath) == 0)
+ {
+ return true;
+ }
+ current = current->next;
+ }
+ return false;
}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kew-1.7.3/src/cache.h new/kew-1.8.1/src/cache.h
--- old/kew-1.7.3/src/cache.h 2023-11-25 23:57:24.000000000 +0100
+++ new/kew-1.8.1/src/cache.h 2023-11-29 01:42:25.000000000 +0100
@@ -3,6 +3,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <stdbool.h>
typedef struct CacheNode
{
@@ -25,4 +26,6 @@
void deleteCachedFiles(Cache *cache);
+bool existsInCache(Cache *cache, char *filePath);
+
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kew-1.7.3/src/kew.c new/kew-1.8.1/src/kew.c
--- old/kew-1.7.3/src/kew.c 2023-11-25 23:57:24.000000000 +0100
+++ new/kew-1.8.1/src/kew.c 2023-11-29 01:42:25.000000000 +0100
@@ -413,6 +413,8 @@
void handleGoToSong()
{
+ resetPlaylistDisplay = true;
+
if (digitsPressedCount == 0)
{
skipToNumberedSong(chosenSong + 1);
@@ -424,7 +426,7 @@
memset(digitsPressed, '\0', sizeof(digitsPressed));
digitsPressedCount = 0;
skipToNumberedSong(songNumber);
- }
+ }
}
void gotoBeginningOfPlaylist()
@@ -498,10 +500,12 @@
case EVENT_VOLUME_DOWN:
adjustVolumePercent(-5);
break;
- case EVENT_NEXT:
+ case EVENT_NEXT:
+ resetPlaylistDisplay = true;
skipToNextSong();
break;
case EVENT_PREV:
+ resetPlaylistDisplay = true;
skipToPrevSong();
break;
case EVENT_SEEKBACK:
@@ -748,6 +752,7 @@
loadingdata.songdataB = NULL;
loadingdata.loadA = true;
initAudioBuffer();
+ initVisuals();
#ifdef DEBUG
g_setenv("G_MESSAGES_DEBUG", "all", TRUE);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kew-1.7.3/src/player.c new/kew-1.8.1/src/player.c
--- old/kew-1.7.3/src/player.c 2023-11-25 23:57:24.000000000 +0100
+++ new/kew-1.8.1/src/player.c 2023-11-29 01:42:25.000000000 +0100
@@ -23,9 +23,9 @@
} PixelData;
#endif
-const char VERSION[] = "1.7.3";
+const char VERSION[] = "1.8.1";
const int LOGO_COLOR = 3;
-const int VERSION_COLOR = 6;
+const int VERSION_COLOR = 2;
const int ABSOLUTE_MIN_WIDTH = 38;
volatile bool refresh = true;
bool visualizerEnabled = true;
@@ -35,12 +35,11 @@
bool timeEnabled = true;
bool drewCover = true;
bool uiEnabled = true;
-bool printInfo = false;
+bool printPlaylist = false;
bool printKeyBindings = false;
bool showList = true;
bool resetPlaylistDisplay = true;
bool useProfileColors = true;
-bool hasPrintedPaused = false;
bool fastForwarding = false;
bool rewinding = false;
int numProgressBars = 15;
@@ -362,7 +361,7 @@
}
void printMetadata(TagSettings const *metadata)
{
- if (!metaDataEnabled || printInfo)
+ if (!metaDataEnabled || printPlaylist)
return;
c_sleep(100);
setColor();
@@ -371,7 +370,7 @@
void printTime(PlayList const *playlist)
{
- if (!timeEnabled || printInfo)
+ if (!timeEnabled || printPlaylist)
return;
setColor();
int term_w, term_h;
@@ -621,7 +620,7 @@
void toggleShowPlaylist()
{
refresh = true;
- printInfo = !printInfo;
+ printPlaylist = !printPlaylist;
printKeyBindings = false;
}
@@ -629,12 +628,12 @@
{
refresh = true;
printKeyBindings = !printKeyBindings;
- printInfo = false;
+ printPlaylist = false;
}
void scrollNext()
{
- if (printInfo)
+ if (printPlaylist)
{
chosenRow++;
refresh = true;
@@ -643,7 +642,7 @@
void scrollPrev()
{
- if (printInfo)
+ if (printPlaylist)
{
chosenRow--;
refresh = true;
@@ -714,7 +713,7 @@
if (chosenSong < startIter)
{
- startIter = chosenSong;
+ startIter = chosenSong;
}
if (chosenRow >= maxListSize - 1 && chosenRow > startIter + maxListSize - 1)
@@ -731,6 +730,7 @@
{
startIter = chosenRow = chosenSong = foundAt;
}
+
for (int i = foundAt; i > startIter; i--)
{
if (i > 0 && node->prev != NULL)
@@ -841,7 +841,7 @@
void printVisualizer()
{
- if (visualizerEnabled && !printInfo)
+ if (visualizerEnabled && !printPlaylist)
{
printf("\n");
int term_w, term_h;
@@ -891,7 +891,7 @@
int printPlayer(SongData *songdata, double elapsedSeconds, PlayList *playlist)
{
- if (!uiEnabled || (hasPrintedPaused && isPaused()))
+ if (!uiEnabled)
{
return 0;
}
@@ -908,7 +908,7 @@
if (preferredWidth <= 0 || preferredHeight <= 0)
return -1;
- if (!printInfo)
+ if (!printPlaylist)
resetPlaylistDisplay = true;
if (printKeyBindings)
@@ -920,7 +920,7 @@
saveCursorPosition();
}
}
- else if (printInfo)
+ else if (printPlaylist)
{
if (refresh)
{
@@ -944,7 +944,7 @@
}
refresh = false;
fflush(stdout);
- hasPrintedPaused = true;
+
return 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kew-1.7.3/src/player.h new/kew-1.8.1/src/player.h
--- old/kew-1.7.3/src/player.h 2023-11-25 23:57:24.000000000 +0100
+++ new/kew-1.8.1/src/player.h 2023-11-29 01:42:25.000000000 +0100
@@ -17,7 +17,7 @@
extern bool coverEnabled;
extern bool uiEnabled;
extern bool coverAnsi;
-extern bool printInfo;
+extern bool printPlaylist;
extern bool printKeyBindings;
extern bool visualizerEnabled;
extern bool useThemeColors;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kew-1.7.3/src/playerops.c new/kew-1.8.1/src/playerops.c
--- old/kew-1.7.3/src/playerops.c 2023-11-25 23:57:24.000000000 +0100
+++ new/kew-1.8.1/src/playerops.c 2023-11-29 01:42:25.000000000 +0100
@@ -35,8 +35,6 @@
volatile bool songLoading = false;
GDBusConnection *connection = NULL;
-UserData userData;
-
void updateLastSongSwitchTime()
{
clock_gettime(CLOCK_MONOTONIC, &start_time);
@@ -159,7 +157,7 @@
{
emitStringPropertyChanged("LoopStatus", "None");
}
- if (printInfo)
+ if (printPlaylist)
refresh = true;
}
@@ -192,7 +190,7 @@
}
loadedNextSong = false;
nextSong = NULL;
- if (printInfo)
+ if (printPlaylist)
refresh = true;
}
@@ -269,6 +267,14 @@
{
if (seekAccumulatedSeconds != 0.0)
{
+ if (currentSong != NULL)
+ {
+ if (endsWith(currentSong->song.filePath, "ogg"))
+ {
+ return;
+ }
+ }
+
setSeekElapsed(getSeekElapsed() + seekAccumulatedSeconds);
seekAccumulatedSeconds = 0.0;
calcElapsedTime();
@@ -286,6 +292,14 @@
void seekForward()
{
+ if (currentSong != NULL)
+ {
+ if (endsWith(currentSong->song.filePath, "ogg"))
+ {
+ return;
+ }
+ }
+
if (duration != 0.0)
{
float step = 100 / numProgressBars;
@@ -296,6 +310,14 @@
void seekBack()
{
+ if (currentSong != NULL)
+ {
+ if (endsWith(currentSong->song.filePath, "ogg"))
+ {
+ return;
+ }
+ }
+
if (duration != 0.0)
{
float step = 100 / numProgressBars;
@@ -328,28 +350,13 @@
void assignLoadedData()
{
- if (usingSongDataA)
- {
- if (loadingdata.songdataB != NULL)
- {
- userData.filenameB = loadingdata.songdataB->pcmFilePath;
- userData.songdataB = loadingdata.songdataB;
- if (hasBuiltinDecoder(loadingdata.songdataB->filePath))
- prepareNextDecoder(loadingdata.songdataB->filePath);
- else if (endsWith(loadingdata.songdataB->filePath, "opus"))
- prepareNextOpusDecoder(loadingdata.songdataB->filePath);
- else if (endsWith(loadingdata.songdataB->filePath, "ogg"))
- prepareNextVorbisDecoder(loadingdata.songdataB->filePath);
- }
- else
- userData.filenameB = NULL;
- }
- else
+ if (loadingdata.loadA)
{
if (loadingdata.songdataA != NULL)
{
userData.filenameA = loadingdata.songdataA->pcmFilePath;
userData.songdataA = loadingdata.songdataA;
+
if (hasBuiltinDecoder(loadingdata.songdataA->filePath))
prepareNextDecoder(loadingdata.songdataA->filePath);
else if (endsWith(loadingdata.songdataA->filePath, "opus"))
@@ -360,6 +367,23 @@
else
userData.filenameA = NULL;
}
+ else
+ {
+ if (loadingdata.songdataB != NULL)
+ {
+ userData.filenameB = loadingdata.songdataB->pcmFilePath;
+ userData.songdataB = loadingdata.songdataB;
+
+ if (hasBuiltinDecoder(loadingdata.songdataB->filePath))
+ prepareNextDecoder(loadingdata.songdataB->filePath);
+ else if (endsWith(loadingdata.songdataB->filePath, "opus"))
+ prepareNextOpusDecoder(loadingdata.songdataB->filePath);
+ else if (endsWith(loadingdata.songdataB->filePath, "ogg"))
+ prepareNextVorbisDecoder(loadingdata.songdataB->filePath);
+ }
+ else
+ userData.filenameB = NULL;
+ }
}
void *songDataReaderThread(void *arg)
@@ -500,6 +524,7 @@
}
updateLastSongSwitchTime();
+
skip();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kew-1.7.3/src/songloader.c new/kew-1.8.1/src/songloader.c
--- old/kew-1.7.3/src/songloader.c 2023-11-25 23:57:24.000000000 +0100
+++ new/kew-1.8.1/src/songloader.c 2023-11-29 01:42:25.000000000 +0100
@@ -328,6 +328,11 @@
data->cover = NULL;
}
+ if (existsInCache(tempCache, data->coverArtPath))
+ {
+ deleteFile(data->coverArtPath);
+ }
+
free(data->red);
free(data->green);
free(data->blue);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kew-1.7.3/src/soundbuiltin.c new/kew-1.8.1/src/soundbuiltin.c
--- old/kew-1.7.3/src/soundbuiltin.c 2023-11-25 23:57:24.000000000 +0100
+++ new/kew-1.8.1/src/soundbuiltin.c 2023-11-29 01:42:25.000000000 +0100
@@ -151,6 +151,8 @@
ma_uint64 framesToRead = 0;
ma_decoder *firstDecoder = getFirstDecoder();
+ pthread_mutex_lock(&dataSourceMutex);
+
if (decoder == NULL || firstDecoder == NULL)
return;
@@ -159,6 +161,8 @@
ma_uint64 cursor;
result = ma_data_source_get_cursor_in_pcm_frames(decoder, &cursor);
+ pthread_mutex_unlock(&dataSourceMutex);
+
if (((pPCMDataSource->totalFrames != 0 && cursor != 0 && cursor >= pPCMDataSource->totalFrames) || framesToRead == 0 || isSkipToNext() || result != MA_SUCCESS) && !isEOFReached())
{
activateSwitch(pPCMDataSource);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kew-1.7.3/src/soundcommon.c new/kew-1.8.1/src/soundcommon.c
--- old/kew-1.7.3/src/soundcommon.c 2023-11-25 23:57:24.000000000 +0100
+++ new/kew-1.8.1/src/soundcommon.c 2023-11-29 01:42:25.000000000 +0100
@@ -2,6 +2,14 @@
#define MAX_DECODERS 2
+/*
+
+soundcommon.c
+
+ Related to common functions for decoders / miniaudio implementations
+
+*/
+
const char BUILTIN_EXTENSIONS[] = "\\.(mp3|flac|wav)$";
bool repeatEnabled = false;
@@ -13,6 +21,8 @@
double seekElapsed;
_Atomic bool EOFReached = false;
_Atomic bool switchReached = false;
+_Atomic bool readingFrames = false;
+pthread_mutex_t dataSourceMutex = PTHREAD_MUTEX_INITIALIZER;
ma_device device = {0};
ma_int32 *audioBuffer = NULL;
ma_decoder *firstDecoder;
@@ -32,16 +42,6 @@
int vorbisDecoderIndex = -1;
bool doQuit = false;
-ma_libopus *getOpus()
-{
- return &opus;
-}
-
-ma_libvorbis *getVorbis()
-{
- return &vorbis;
-}
-
enum AudioImplementation getCurrentImplementationType()
{
return currentImplementation;
@@ -273,6 +273,9 @@
if (firstOpusDecoder != NULL)
{
+ ma_data_source_base * base = (ma_data_source_base *)firstOpusDecoder;
+ base->pCurrent = NULL;
+ base->vtable = NULL;
ma_libopus_uninit(firstOpusDecoder, NULL);
free(firstOpusDecoder);
firstOpusDecoder = NULL;
@@ -659,7 +662,6 @@
ma_device_stop(&device);
paused = true;
}
- hasPrintedPaused = false;
}
void cleanupPlaybackDevice()
@@ -678,7 +680,6 @@
{
ma_device_stop(&device);
paused = true;
- hasPrintedPaused = false;
}
else if (paused)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kew-1.7.3/src/soundcommon.h new/kew-1.8.1/src/soundcommon.h
--- old/kew-1.7.3/src/soundcommon.h 2023-11-25 23:57:24.000000000 +0100
+++ new/kew-1.8.1/src/soundcommon.h 2023-11-29 01:42:25.000000000 +0100
@@ -108,6 +108,7 @@
};
extern bool doQuit;
+extern pthread_mutex_t dataSourceMutex;
ma_libopus *getOpus();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kew-1.7.3/src/soundgapless.c new/kew-1.8.1/src/soundgapless.c
--- old/kew-1.7.3/src/soundgapless.c 2023-11-25 23:57:24.000000000 +0100
+++ new/kew-1.8.1/src/soundgapless.c 2023-11-29 01:42:25.000000000 +0100
@@ -13,15 +13,20 @@
*/
ma_context context;
-UserData *g_userData;
+
+UserData userData;
+
PCMFileDataSource pcmDataSource;
-ma_result pcm_file_data_source_init(PCMFileDataSource *pPCMDataSource, UserData *pUserData)
+ma_result initFirstDatasource(PCMFileDataSource *pPCMDataSource, UserData *pUserData)
{
char *filePath = NULL;
filePath = (pPCMDataSource->currentFileIndex == 0) ? pUserData->songdataA->filePath : pUserData->songdataB->filePath;
+ pPCMDataSource->pUserData = pUserData;
+ pPCMDataSource->currentPCMFrame = 0;
+
if (hasBuiltinDecoder(filePath))
{
prepareNextDecoder(filePath);
@@ -29,7 +34,6 @@
pPCMDataSource->format = first->outputFormat;
pPCMDataSource->channels = first->outputChannels;
pPCMDataSource->sampleRate = first->outputSampleRate;
-
ma_data_source_get_length_in_pcm_frames(first, &pPCMDataSource->totalFrames);
}
else if (endsWith(filePath, "opus"))
@@ -39,6 +43,8 @@
ma_channel channelMap[MA_MAX_CHANNELS];
ma_libopus_ds_get_data_format(first, &pPCMDataSource->format, &pPCMDataSource->channels, &pPCMDataSource->sampleRate, channelMap, MA_MAX_CHANNELS);
ma_data_source_get_length_in_pcm_frames(first, &pPCMDataSource->totalFrames);
+ ma_data_source_base *base = (ma_data_source_base*)first;
+ base->pCurrent = first;
first->pReadSeekTellUserData = pPCMDataSource;
}
else if (endsWith(filePath, "ogg"))
@@ -48,24 +54,28 @@
ma_channel channelMap[MA_MAX_CHANNELS];
ma_libvorbis_ds_get_data_format(first, &pPCMDataSource->format, &pPCMDataSource->channels, &pPCMDataSource->sampleRate, channelMap, MA_MAX_CHANNELS);
ma_data_source_get_length_in_pcm_frames(first, &pPCMDataSource->totalFrames);
+ ma_data_source_base *base = (ma_data_source_base*)first;
+ base->pCurrent = first;
first->pReadSeekTellUserData = pPCMDataSource;
}
else
{
- if (pPCMDataSource->fileA == NULL)
+ if ((pPCMDataSource->currentFileIndex == 0) && pPCMDataSource->fileA == NULL)
{
pPCMDataSource->filenameA = pUserData->filenameA;
pPCMDataSource->fileA = fopen(pUserData->filenameA, "rb");
}
+ else if ((pPCMDataSource->currentFileIndex == 1) && pPCMDataSource->fileB == NULL)
+ {
+ pPCMDataSource->filenameB = pUserData->filenameB;
+ pPCMDataSource->fileB = fopen(pUserData->filenameB, "rb");
+ }
pPCMDataSource->format = SAMPLE_FORMAT;
pPCMDataSource->channels = CHANNELS;
pPCMDataSource->sampleRate = SAMPLE_RATE;
}
- pPCMDataSource->pUserData = pUserData;
- pPCMDataSource->currentPCMFrame = 0;
-
return MA_SUCCESS;
}
@@ -74,7 +84,7 @@
ma_result result;
ma_data_source_uninit(&pcmDataSource);
- pcm_file_data_source_init(&pcmDataSource, userData);
+ initFirstDatasource(&pcmDataSource, userData);
pcmDataSource.base.vtable = vtable;
@@ -103,37 +113,12 @@
createDevice(userData, device, context, vtable, pcm_on_audio_frames);
}
-ma_result vorbis_data_source_init(PCMFileDataSource *pPCMDataSource, ma_libvorbis *vorbis, char *filePath)
-{
- ma_format format;
- ma_uint32 channels;
- ma_uint32 sampleRate;
- ma_channel channelMap[MA_MAX_CHANNELS];
-
- ma_libvorbis_init_file(filePath, NULL, NULL, vorbis);
- ma_libvorbis_ds_get_data_format(vorbis, &format, &channels, &sampleRate, channelMap, MA_MAX_CHANNELS);
- pPCMDataSource->sampleRate = sampleRate;
- pPCMDataSource->channels = channels;
- pPCMDataSource->format = format;
-
- vorbis->format = format;
- vorbis->onRead = ma_libvorbis_read_pcm_frames_wrapper;
- vorbis->onSeek = ma_libvorbis_seek_to_pcm_frame_wrapper;
- vorbis->onTell = ma_libvorbis_get_cursor_in_pcm_frames_wrapper;
- vorbis->pReadSeekTellUserData = pPCMDataSource;
-
- return MA_SUCCESS;
-}
-
void vorbis_createAudioDevice(UserData *userData, ma_device *device, ma_context *context, ma_data_source_vtable *vtable)
{
ma_result result;
- pcm_file_data_source_init(&pcmDataSource, userData);
- char *filePath = pcmDataSource.currentFileIndex == 0 ? userData->songdataA->filePath : userData->songdataB->filePath;
+ initFirstDatasource(&pcmDataSource, userData);
ma_libvorbis *vorbis = getFirstVorbisDecoder();
- vorbis_data_source_init(&pcmDataSource, vorbis, filePath);
-
ma_device_config deviceConfig = ma_device_config_init(ma_device_type_playback);
deviceConfig.playback.format = vorbis->format;
@@ -158,36 +143,12 @@
}
}
-ma_result opus_data_source_init(PCMFileDataSource *pPCMDataSource, ma_libopus *opus, char *filePath)
-{
- ma_format format;
- ma_uint32 channels;
- ma_uint32 sampleRate;
- ma_channel channelMap[MA_MAX_CHANNELS];
-
- ma_libopus_init_file(filePath, NULL, NULL, opus);
- ma_libopus_ds_get_data_format(opus, &format, &channels, &sampleRate, channelMap, MA_MAX_CHANNELS);
- pPCMDataSource->sampleRate = sampleRate;
- pPCMDataSource->channels = channels;
- pPCMDataSource->format = format;
-
- opus->format = format;
- opus->onRead = ma_libopus_read_pcm_frames_wrapper;
- opus->onSeek = ma_libopus_seek_to_pcm_frame_wrapper;
- opus->onTell = ma_libopus_get_cursor_in_pcm_frames_wrapper;
- opus->pReadSeekTellUserData = pPCMDataSource;
-
- return MA_SUCCESS;
-}
-
void opus_createAudioDevice(UserData *userData, ma_device *device, ma_context *context, ma_data_source_vtable *vtable)
{
ma_result result;
- pcm_file_data_source_init(&pcmDataSource, userData);
- char *filePath = pcmDataSource.currentFileIndex == 0 ? userData->songdataA->filePath : userData->songdataB->filePath;
- ma_libopus *opus = getFirstOpusDecoder();
- opus_data_source_init(&pcmDataSource, opus, filePath);
+ initFirstDatasource(&pcmDataSource, userData);
+ ma_libopus *opus = getFirstOpusDecoder();
ma_device_config deviceConfig = ma_device_config_init(ma_device_type_playback);
@@ -217,14 +178,27 @@
{
enum AudioImplementation currentImplementation = getCurrentImplementationType();
- if (g_userData->currentSongData == NULL)
+ if (pcmDataSource.currentFileIndex == 0)
+ {
+ userData.currentSongData = userData.songdataA;
+ }
+ else
+ {
+ userData.currentSongData = userData.songdataB;
+ }
+
+ if (userData.currentSongData == NULL)
+ {
+ setEOFNotReached();
return;
+ }
- char *filePath = strdup(g_userData->currentSongData->filePath);
+ char *filePath = strdup(userData.currentSongData->filePath);
if (filePath == NULL || filePath[0] == '\0' || filePath[0] == '\r')
{
free(filePath);
+ setEOFNotReached();
return;
}
@@ -244,14 +218,23 @@
if (isRepeatEnabled() || !(sameFormat && currentImplementation == BUILTIN))
{
setImplSwitchReached();
+
+ pthread_mutex_lock(&dataSourceMutex);
+
setCurrentImplementationType(BUILTIN);
+
resetDecoders();
resetVorbisDecoders();
resetOpusDecoders();
resetAudioBuffer();
+
cleanupPlaybackDevice();
+
+ builtin_createAudioDevice(&userData, getDevice(), &context, &builtin_file_data_source_vtable);
+
+ pthread_mutex_unlock(&dataSourceMutex);
+
setImplSwitchNotReached();
- builtin_createAudioDevice(g_userData, getDevice(), &context, &builtin_file_data_source_vtable);
}
}
else if (endsWith(filePath, "opus"))
@@ -283,14 +266,23 @@
else
{
setImplSwitchReached();
- setCurrentImplementationType(OPUS);
+
+ pthread_mutex_lock(&dataSourceMutex);
+
+ setCurrentImplementationType(OPUS);
+
resetDecoders();
resetVorbisDecoders();
resetOpusDecoders();
resetAudioBuffer();
+
cleanupPlaybackDevice();
- setImplSwitchNotReached();
- opus_createAudioDevice(g_userData, getDevice(), &context, &pcm_file_data_source_vtable);
+
+ opus_createAudioDevice(&userData, getDevice(), &context, &pcm_file_data_source_vtable);
+
+ pthread_mutex_unlock(&dataSourceMutex);
+
+ setImplSwitchNotReached();
}
}
else if (endsWith(filePath, "ogg"))
@@ -321,15 +313,24 @@
}
else
{
- setImplSwitchReached();
+ setImplSwitchReached();
+
+ pthread_mutex_lock(&dataSourceMutex);
+
setCurrentImplementationType(VORBIS);
+
resetDecoders();
resetVorbisDecoders();
resetOpusDecoders();
resetAudioBuffer();
- cleanupPlaybackDevice();
+
+ cleanupPlaybackDevice();
+
+ vorbis_createAudioDevice(&userData, getDevice(), &context, &pcm_file_data_source_vtable);
+
+ pthread_mutex_unlock(&dataSourceMutex);
+
setImplSwitchNotReached();
- vorbis_createAudioDevice(g_userData, getDevice(), &context, &pcm_file_data_source_vtable);
}
}
else
@@ -337,14 +338,20 @@
if (isRepeatEnabled() || currentImplementation != PCM)
{
setImplSwitchReached();
+
+ pthread_mutex_lock(&dataSourceMutex);
+
setCurrentImplementationType(PCM);
resetDecoders();
resetVorbisDecoders();
resetOpusDecoders();
resetAudioBuffer();
- cleanupPlaybackDevice();
+ cleanupPlaybackDevice();
+ pcm_createAudioDevice(&userData, getDevice(), &context, &pcm_file_data_source_vtable);
+
+ pthread_mutex_unlock(&dataSourceMutex);
+
setImplSwitchNotReached();
- pcm_createAudioDevice(g_userData, getDevice(), &context, &pcm_file_data_source_vtable);
}
}
free(filePath);
@@ -358,7 +365,6 @@
void createAudioDevice(UserData *userData)
{
- g_userData = userData;
ma_context_init(NULL, 0, NULL, &context);
switchAudioImplementation();
}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kew-1.7.3/src/soundgapless.h new/kew-1.8.1/src/soundgapless.h
--- old/kew-1.7.3/src/soundgapless.h 2023-11-25 23:57:24.000000000 +0100
+++ new/kew-1.8.1/src/soundgapless.h 2023-11-29 01:42:25.000000000 +0100
@@ -6,6 +6,7 @@
#include <stdbool.h>
#include <unistd.h>
#include <stdatomic.h>
+#include <pthread.h>
#include <fcntl.h>
#include <stdio.h>
#include <sys/wait.h>
@@ -32,6 +33,8 @@
} UserData;
#endif
+extern UserData userData;
+
void setDecoders(bool usingA, char *filePath);
void createAudioDevice(UserData *userData);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kew-1.7.3/src/soundopus.c new/kew-1.8.1/src/soundopus.c
--- old/kew-1.7.3/src/soundopus.c 2023-11-25 23:57:24.000000000 +0100
+++ new/kew-1.8.1/src/soundopus.c 2023-11-29 01:42:25.000000000 +0100
@@ -63,7 +63,7 @@
ma_uint64 seekPercent = getSeekPercentage();
if (seekPercent >= 100.0)
seekPercent = 100.0;
- ma_uint64 targetFrame = (totalFrames * seekPercent) / 100;
+ ma_uint64 targetFrame = (totalFrames * seekPercent) / 100 - 1; // Remove one frame or we get invalid args if we send in totalframes
// Set the read pointer for the decoder
ma_result seekResult = ma_libopus_seek_to_pcm_frame(decoder, targetFrame);
@@ -82,12 +82,22 @@
ma_result result;
ma_uint64 remainingFrames = frameCount - framesRead;
ma_libopus *firstDecoder = getFirstOpusDecoder();
+
+ pthread_mutex_lock(&dataSourceMutex);
+
+ if (firstDecoder == NULL)
+ {
+ return;
+ }
+
result = ma_data_source_read_pcm_frames(firstDecoder, (ma_int32 *)pFramesOut + framesRead * pPCMDataSource->channels, remainingFrames, &framesToRead);
ma_uint64 cursor;
ma_data_source_get_cursor_in_pcm_frames(decoder, &cursor);
+ pthread_mutex_unlock(&dataSourceMutex);
+
if (((cursor != 0 && cursor >= pPCMDataSource->totalFrames) || framesToRead == 0 || isSkipToNext() || result != MA_SUCCESS) && !isEOFReached())
{
activateSwitch(pPCMDataSource);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kew-1.7.3/src/soundpcm.c new/kew-1.8.1/src/soundpcm.c
--- old/kew-1.7.3/src/soundpcm.c 2023-11-25 23:57:24.000000000 +0100
+++ new/kew-1.8.1/src/soundpcm.c 2023-11-29 01:42:25.000000000 +0100
@@ -68,11 +68,6 @@
if (currentFile != NULL)
bytesRead = (ma_uint32)fread((char *)pFramesOut + (framesRead * bytesPerFrame), 1, bytesToRead, currentFile);
- else if (pPCMDataSource->pUserData->currentSongData == NULL ||
- hasBuiltinDecoder(pPCMDataSource->pUserData->currentSongData->filePath) ||
- (endsWith(pPCMDataSource->pUserData->currentSongData->filePath, "opus")) ||
- (endsWith(pPCMDataSource->pUserData->currentSongData->filePath, "ogg")))
- return;
// If file is empty, skip
if ((bytesRead == 0 || isSkipToNext()) && !isEOFReached())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kew-1.7.3/src/soundvorbis.c new/kew-1.8.1/src/soundvorbis.c
--- old/kew-1.7.3/src/soundvorbis.c 2023-11-25 23:57:24.000000000 +0100
+++ new/kew-1.8.1/src/soundvorbis.c 2023-11-29 01:42:25.000000000 +0100
@@ -81,7 +81,18 @@
ma_uint64 framesToRead = 0;
ma_result result;
ma_uint64 remainingFrames = frameCount - framesRead;
- result = ma_data_source_read_pcm_frames(getFirstVorbisDecoder(), (ma_int32 *)pFramesOut + framesRead * pPCMDataSource->channels, remainingFrames, &framesToRead);
+ ma_libvorbis *firstDecoder = getFirstVorbisDecoder();
+
+ pthread_mutex_lock(&dataSourceMutex);
+
+ if (firstDecoder == NULL)
+ {
+ return;
+ }
+
+ result = ma_data_source_read_pcm_frames(firstDecoder, (ma_int32 *)pFramesOut + framesRead * pPCMDataSource->channels, remainingFrames, &framesToRead);
+
+ pthread_mutex_unlock(&dataSourceMutex);
if ((getPercentageElapsed() >= 1.0 || isSkipToNext() || result != MA_SUCCESS) &&
!isEOFReached())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kew-1.7.3/src/visuals.c new/kew-1.8.1/src/visuals.c
--- old/kew-1.7.3/src/visuals.c 2023-11-25 23:57:24.000000000 +0100
+++ new/kew-1.8.1/src/visuals.c 2023-11-29 01:42:25.000000000 +0100
@@ -13,6 +13,8 @@
float magnitudeCeil = 120;
float alpha = 0.2;
float lastMax = 60;
+bool unicodeSupport = false;
+
/*
visuals.c
@@ -25,6 +27,14 @@
float magnitudeBuffer[MAX_BUFFER_SIZE] = {0.0f};
float lastMagnitudes[MAX_BUFFER_SIZE] = {0.0f};
+void initVisuals()
+{
+ unicodeSupport = false;
+ char *locale = setlocale(LC_ALL, "");
+ if (locale != NULL)
+ unicodeSupport = true;
+}
+
void printBlankSpaces(int numSpaces)
{
for (int i = 0; i < numSpaces; i++)
@@ -119,7 +129,7 @@
int beat = detectBeats(magnitudes, width);
if (beat > 0)
{
- jumpFactor = jumpAmount;
+ jumpFactor = jumpAmount;
}
for (int i = 0; i < width; i++)
@@ -130,7 +140,8 @@
{
exponent = 2.0;
}
- else {
+ else
+ {
exponent = 1.0;
}
float normalizedMagnitude = magnitudes[i] / maxMagnitude;
@@ -182,7 +193,7 @@
int j = 0;
for (int i = 0; i < bufferSize; i++)
- {
+ {
ma_int32 sample = audioBuffer[i];
float normalizedSample;
@@ -224,12 +235,12 @@
{
// Unsupported bit depth
return;
- }
+ }
if (bitDepth == 32)
{
if (i % 3 != 0)
- {
+ {
continue;
}
}
@@ -266,6 +277,29 @@
updateMagnitudes(height, numBars, maxMagnitude, magnitudes);
}
+wchar_t *getUpwardMotionChar(int level) {
+ switch (level) {
+ case 0:
+ return L" ";
+ case 1:
+ return L"▁";
+ case 2:
+ return L"▂";
+ case 3:
+ return L"▃";
+ case 4:
+ return L"▄";
+ case 5:
+ return L"▅";
+ case 6:
+ return L"▆";
+ case 7:
+ return L"▇";
+ default:
+ return L"█";
+ }
+}
+
void calcSpectrum(int height, int numBars, fftwf_complex *fftInput, fftwf_complex *fftOutput, float *magnitudes, fftwf_plan plan)
{
@@ -292,7 +326,7 @@
case ma_format_s24:
bitDepth = 24;
break;
-
+
case ma_format_f32:
case ma_format_s32:
bitDepth = 32;
@@ -330,6 +364,8 @@
printf("\n");
clearRestOfScreen();
+ PixelData tmp;
+
for (int j = height; j > 0; j--)
{
printf("\r");
@@ -338,33 +374,46 @@
{
if (!useProfileColors)
{
- if (j == height)
- {
- color = increaseLuminosity(color, 100);
- printf("\033[38;2;%d;%d;%dm", color.r, color.g, color.b);
- }
- else
- {
- color = decreaseLuminosity(color, 100 / height);
- printf("\033[38;2;%d;%d;%dm", color.r, color.g, color.b);
- }
+ tmp = increaseLuminosity(color, round(j * height * 2));
+ printf("\033[38;2;%d;%d;%dm", tmp.r, tmp.g, tmp.b);
}
}
else
{
setDefaultTextColor();
}
- for (int i = 0; i < width; i++)
+ if (isPaused())
{
- if (j >= 0)
+ for (int i = 0; i < width; i++)
{
- if ((int)round(magnitudes[i]) >= j)
- {
- printf(" █");
- }
- else
+ printf(" ");
+ }
+ }
+ else
+ {
+ for (int i = 0; i < width; i++)
+ {
+ if (j >= 0)
{
- printf(" ");
+ if (magnitudes[i] >= j)
+ {
+ if (unicodeSupport)
+ {
+ printf(" %S", getUpwardMotionChar(10));
+ }
+ else {
+ printf(" █");
+ }
+ }
+ else if (magnitudes[i] + 1 >= j && unicodeSupport)
+ {
+ int firstDecimalDigit = (int)(fmod(magnitudes[i] * 10, 10));
+ printf(" %S", getUpwardMotionChar(firstDecimalDigit));
+ }
+ else
+ {
+ printf(" ");
+ }
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kew-1.7.3/src/visuals.h new/kew-1.8.1/src/visuals.h
--- old/kew-1.7.3/src/visuals.h 2023-11-25 23:57:24.000000000 +0100
+++ new/kew-1.8.1/src/visuals.h 2023-11-29 01:42:25.000000000 +0100
@@ -4,10 +4,13 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
+#include <locale.h>
#include "soundgapless.h"
#include "term.h"
#include "write_ascii.h"
+void initVisuals();
+
void drawSpectrumVisualizer(int height, int width, PixelData c);
PixelData increaseLuminosity(PixelData pixel, int amount);
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-tables for openSUSE:Factory checked in at 2023-12-01 21:26:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-tables (Old)
and /work/SRC/openSUSE:Factory/.python-tables.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-tables"
Fri Dec 1 21:26:00 2023 rev:23 rq:1130124 version:3.9.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-tables/python-tables.changes 2023-08-21 11:46:11.091758192 +0200
+++ /work/SRC/openSUSE:Factory/.python-tables.new.25432/python-tables.changes 2023-12-01 21:26:37.968664622 +0100
@@ -1,0 +2,40 @@
+Fri Dec 1 02:23:22 UTC 2023 - Steve Kowalik <steven.kowalik(a)suse.com>
+
+- Update to 3.9.2:
+ * Minimum supported version for Python is 3.9 (see gh-1062).
+ * New features
+ + Apply optimized slice read to Blosc2-compressed CArray and EArray
+ + Add basic API for column-level attributes as Col._v_col_attrs
+ * Bugfixes
+ + Fix the assembly of returned slice data in Blosc2 NDim optimized
+ slice reads by using Blosc2’s b2nd_copy_buffer
+ + Fix crash in Blosc2 optimized path with large tables
+ + Fix compatibility with NumExpr v2.8.5
+ + Fix ptrepack failures with external links
+ + Replace stderr messages with Python warnings
+ + Fix Cython slice indexing under Python 3.12
+ + Fix unsafe temporary file creation in benchmark
+ * Improvements
+ + PyTables wheels now use a threadsafe build of the HDF5 library
+ + Partial support for the future NumPy 2, with some tests still failing
+ + Relax the reading of Blosc2 NDim to cope with datasets stored with
+ other tools
+ + Use H5Dchunk_iter (when available) to speed up walking over many chunks
+ in a very large table, as well as with random reads
+ + Improve setup.py (now using pyproject.toml as per PEP 518) and
+ blosc2 discovery mechanism
+ + Enable compatibility with Cython 3
+ + Handle py-cpuinfo missing in some platforms
+ + Avoid NumPy >= 1.25 deprecations, use numpy.all, numpy.any, etc. instead.
+ * Other changes
+ + Drop compatibility with the obsolete HDF5 1.8 API
+ + Require python-blosc2 >= 2.3.0 or c-blosc2 >= 2.11.0
+ + Assorted fixes to b2nd slicing optimization tips
+ + New benchmark for ERA5 climate data
+ + New “100 trillion baby” benchmark
+ + New benchmark for querying meteorologic data
+- Unpin Cython, Cython 3 is now supported
+- Drop patches tables-pr1000-debundled-blosc2.patch and numpy-1.25.patch:
+ * Both included upstream
+
+-------------------------------------------------------------------
Old:
----
numpy-1.25.patch
tables-3.8.0.tar.gz
tables-pr1000-debundled-blosc2.patch
New:
----
tables-3.9.2.tar.gz
BETA DEBUG BEGIN:
Old:- Unpin Cython, Cython 3 is now supported
- Drop patches tables-pr1000-debundled-blosc2.patch and numpy-1.25.patch:
* Both included upstream
Old:- Unpin Cython, Cython 3 is now supported
- Drop patches tables-pr1000-debundled-blosc2.patch and numpy-1.25.patch:
* Both included upstream
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-tables.spec ++++++
--- /var/tmp/diff_new_pack.5iLNlp/_old 2023-12-01 21:26:38.992702232 +0100
+++ /var/tmp/diff_new_pack.5iLNlp/_new 2023-12-01 21:26:38.996702379 +0100
@@ -51,20 +51,16 @@
%endif
Name: python-tables%{psuffix}
-Version: 3.8.0
+Version: 3.9.2
Release: 0
Summary: Hierarchical datasets for Python
License: BSD-3-Clause
URL: https://github.com/PyTables/PyTables
Source0: https://files.pythonhosted.org/packages/source/t/tables/tables-%{version}.t…
-# PATCH-FIX-UPSTREAM tables-pr1000-debundled-blosc2.patch gh#PyTables/PyTables#1000
-Patch0: tables-pr1000-debundled-blosc2.patch
-# PATCH-FIX-UPSTREAM numpy-1.25.patch gh#PyTables/PyTables@337792561e59
-Patch1: numpy-1.25.patch
-BuildRequires: %{python_module base >= 3.8}
+BuildRequires: %{python_module base >= 3.9}
BuildRequires: python-rpm-macros
%if ! %{with test}
-BuildRequires: %{python_module Cython < 3}
+BuildRequires: %{python_module Cython}
BuildRequires: %{python_module devel}
BuildRequires: %{python_module numexpr >= 2.6.2}
BuildRequires: %{python_module numpy-devel >= 1.19}
@@ -74,7 +70,7 @@
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
BuildRequires: blosc-devel >= 1.21.1
-BuildRequires: blosc2-devel
+BuildRequires: blosc2-devel >= 2.11
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: hdf5-devel
@@ -86,7 +82,7 @@
# usage of pkg_resources in tests
BuildRequires: %{python_module setuptools}
%endif
-Requires: python-Cython >= 0.29.21
+Requires: python-Cython
Requires: python-numexpr >= 2.6.2
Requires: python-numpy >= 1.19
Requires: python-packaging
@@ -112,8 +108,6 @@
%autosetup -p1 -n tables-%{version}
# make sure we use the system blosc
rm -r c-blosc
-# https://github.com/PyTables/PyTables/issues/1001
-rm tables/libblosc2.so
%if !%{with test}
%build
++++++ tables-3.8.0.tar.gz -> tables-3.9.2.tar.gz ++++++
/work/SRC/openSUSE:Factory/python-tables/tables-3.8.0.tar.gz /work/SRC/openSUSE:Factory/.python-tables.new.25432/tables-3.9.2.tar.gz differ: char 5, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package teleport for openSUSE:Factory checked in at 2023-12-01 21:25:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/teleport (Old)
and /work/SRC/openSUSE:Factory/.teleport.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "teleport"
Fri Dec 1 21:25:47 2023 rev:85 rq:1130157 version:14.2.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/teleport/teleport.changes 2023-11-21 21:34:02.491824554 +0100
+++ /work/SRC/openSUSE:Factory/.teleport.new.25432/teleport.changes 2023-12-01 21:26:32.740472605 +0100
@@ -1,0 +2,40 @@
+Fri Dec 1 06:22:19 UTC 2023 - Johannes Kastl <kastl(a)b1-systems.de>
+
+- update to 14.2.1:
+ * Fixed issue that could cause app and desktop session recording
+ events to be written to the audit log. #35183
+ * Fixed a possible panic when downgrading Teleport roles to older
+ versions. #35236
+ * Fixed a regression issue where tsh db connect to Redis 7 fails
+ with an error on REDIS_REPLY_STATUS. #35162
+ * Allow Teleport to complete abandoned uploads faster in HA
+ deployments. #35102
+ * Fixed error when installing a v13 node with the default
+ installer from a v14 cluster. #35058
+ * Fixed issue with the absence of membership expiry circumventing
+ membership requirements check. #35057
+ * Added read verb to suggested role spec when enrolling new
+ resources. #35053
+ * Added more new "Enroll Integration" tiles for Machine ID
+ guides. #35050
+ * Fixed default installer yum error on RHEL and Amazon Linux.
+ #35021
+ * External Audit Storage enables Cloud customers to store Audit
+ Logs and Session Recordings in their own AWS account. #35008
+ * Fixed IP propagation for nodes/bots joining the cluster and add
+ LoginIP to bot certificates. #34958
+ * Fixed an issue tsh db connect <mongodb> does not give reason on
+ connection errors. #34910
+ * Updated distroless images to use Debian 12. #34878
+ * Added new email-based UI for inviting new local users on
+ Teleport Cloud clusters. #34869
+ * Fix an issue "Allowed Users" in "tsh db ls" shows wrong user
+ for databases with Automatic User Provisioning enabled. #34850
+ * Fixed issue with application access requests and web UI large
+ file downloads timing out after 30 seconds. #34849
+ * Added default database support for PostgreSQL auto-user
+ provisioning. #34840
+ * Machine ID: handle kernel version check failing more
+ gracefully. #34828
+
+-------------------------------------------------------------------
Old:
----
teleport-14.2.0.obscpio
New:
----
teleport-14.2.1.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ teleport.spec ++++++
--- /var/tmp/diff_new_pack.mr20u2/_old 2023-12-01 21:26:36.300603359 +0100
+++ /var/tmp/diff_new_pack.mr20u2/_new 2023-12-01 21:26:36.300603359 +0100
@@ -19,7 +19,7 @@
%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
Name: teleport
-Version: 14.2.0
+Version: 14.2.1
Release: 0
Summary: Identity-aware, multi-protocol access proxy
License: Apache-2.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.mr20u2/_old 2023-12-01 21:26:36.336604681 +0100
+++ /var/tmp/diff_new_pack.mr20u2/_new 2023-12-01 21:26:36.340604828 +0100
@@ -4,7 +4,7 @@
<param name="scm">git</param>
<param name="submodules">disable</param>
<param name="exclude">.git</param>
- <param name="revision">v14.2.0</param>
+ <param name="revision">v14.2.1</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">disable</param>
<param name="versionrewrite-pattern">v(.*)</param>
++++++ teleport-14.2.0.obscpio -> teleport-14.2.1.obscpio ++++++
/work/SRC/openSUSE:Factory/teleport/teleport-14.2.0.obscpio /work/SRC/openSUSE:Factory/.teleport.new.25432/teleport-14.2.1.obscpio differ: char 49, line 1
++++++ teleport.obsinfo ++++++
--- /var/tmp/diff_new_pack.mr20u2/_old 2023-12-01 21:26:36.388606591 +0100
+++ /var/tmp/diff_new_pack.mr20u2/_new 2023-12-01 21:26:36.388606591 +0100
@@ -1,5 +1,5 @@
name: teleport
-version: 14.2.0
-mtime: 1700515419
-commit: 5d4cf8198cc0e479c08479ffe76129cf6c75d2f2
+version: 14.2.1
+mtime: 1701392054
+commit: e6737fe00510a9fb8c5f240bc04d708d1142bee0
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/teleport/vendor.tar.gz /work/SRC/openSUSE:Factory/.teleport.new.25432/vendor.tar.gz differ: char 5, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package konstraint for openSUSE:Factory checked in at 2023-12-01 21:25:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/konstraint (Old)
and /work/SRC/openSUSE:Factory/.konstraint.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "konstraint"
Fri Dec 1 21:25:45 2023 rev:24 rq:1130151 version:0.33.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/konstraint/konstraint.changes 2023-10-02 20:09:27.097245841 +0200
+++ /work/SRC/openSUSE:Factory/.konstraint.new.25432/konstraint.changes 2023-12-01 21:26:25.648212125 +0100
@@ -1,0 +2,30 @@
+Fri Dec 01 05:59:28 UTC 2023 - kastl(a)b1-systems.de
+
+- Update to version 0.33.0:
+ * build(deps): bump github.com/open-policy-agent/opa from 0.58.0
+ to 0.59.0 (#458)
+ * Add Regal for linting Rego (#454)
+ * build(deps): bump k8s.io/apiextensions-apiserver from 0.28.3 to
+ 0.28.4 (#456)
+ * build(deps): bump github.com/spf13/cobra from 1.7.0 to 1.8.0
+ (#452)
+ * build(deps): bump golang from 1.21.3-alpine to 1.21.4-alpine
+ (#453)
+ * build(deps): bump golang.org/x/text from 0.13.0 to 0.14.0
+ (#451)
+ * fix: Add missing docs (#457)
+ * fix: cover empty securityContext in container_deny_escalation
+ (#449)
+ * build(deps): bump k8s.io/apiextensions-apiserver from 0.28.2 to
+ 0.28.3 (#443)
+ * build(deps): bump github.com/spf13/viper from 1.16.0 to 1.17.0
+ (#439)
+ * build(deps): bump k8s.io/apimachinery from 0.28.2 to 0.28.3
+ (#445)
+ * build(deps): bump golang from 1.21.1-alpine to 1.21.3-alpine
+ (#442)
+ * build(deps): bump github.com/open-policy-agent/opa from 0.57.0
+ to 0.58.0 (#448)
+ * build(deps): bump alpine from 3.18.3 to 3.18.4 (#438)
+
+-------------------------------------------------------------------
Old:
----
konstraint-0.32.0.obscpio
New:
----
konstraint-0.33.0.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ konstraint.spec ++++++
--- /var/tmp/diff_new_pack.Lq0a6l/_old 2023-12-01 21:26:26.460241949 +0100
+++ /var/tmp/diff_new_pack.Lq0a6l/_new 2023-12-01 21:26:26.460241949 +0100
@@ -19,7 +19,7 @@
%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
Name: konstraint
-Version: 0.32.0
+Version: 0.33.0
Release: 0
Summary: A policy management tool for interacting with Gatekeeper
License: Apache-2.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.Lq0a6l/_old 2023-12-01 21:26:26.484242830 +0100
+++ /var/tmp/diff_new_pack.Lq0a6l/_new 2023-12-01 21:26:26.488242977 +0100
@@ -3,7 +3,7 @@
<param name="url">https://github.com/plexsystems/konstraint</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">v0.32.0</param>
+ <param name="revision">v0.33.0</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
<param name="versionrewrite-pattern">v(.*)</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.Lq0a6l/_old 2023-12-01 21:26:26.508243712 +0100
+++ /var/tmp/diff_new_pack.Lq0a6l/_new 2023-12-01 21:26:26.508243712 +0100
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/plexsystems/konstraint</param>
- <param name="changesrevision">99782549c0e3299c06a0e16eba22fd893a42e846</param></service></servicedata>
+ <param name="changesrevision">704138825234400fe1fe0ad480670a0f84c49faf</param></service></servicedata>
(No newline at EOF)
++++++ konstraint-0.32.0.obscpio -> konstraint-0.33.0.obscpio ++++++
++++ 3996 lines of diff (skipped)
++++++ konstraint.obsinfo ++++++
--- /var/tmp/diff_new_pack.Lq0a6l/_old 2023-12-01 21:26:26.640248560 +0100
+++ /var/tmp/diff_new_pack.Lq0a6l/_new 2023-12-01 21:26:26.644248707 +0100
@@ -1,5 +1,5 @@
name: konstraint
-version: 0.32.0
-mtime: 1696199256
-commit: 99782549c0e3299c06a0e16eba22fd893a42e846
+version: 0.33.0
+mtime: 1701404079
+commit: 704138825234400fe1fe0ad480670a0f84c49faf
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/konstraint/vendor.tar.gz /work/SRC/openSUSE:Factory/.konstraint.new.25432/vendor.tar.gz differ: char 5, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package guestfs-tools for openSUSE:Factory checked in at 2023-12-01 21:25:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/guestfs-tools (Old)
and /work/SRC/openSUSE:Factory/.guestfs-tools.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "guestfs-tools"
Fri Dec 1 21:25:41 2023 rev:11 rq:1130122 version:1.51.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/guestfs-tools/guestfs-tools.changes 2023-05-02 16:21:58.378858848 +0200
+++ /work/SRC/openSUSE:Factory/.guestfs-tools.new.25432/guestfs-tools.changes 2023-12-01 21:26:19.207975593 +0100
@@ -1,0 +2,16 @@
+Thu Nov 30 22:22:22 UTC 2023 - olaf(a)aepfle.de
+
+- Remove obsolete requirement for ocaml-gettext-stub-devel
+- Require OCaml 4.07+
+
+-------------------------------------------------------------------
+Tue Nov 28 12:46:46 MST 2023 - carnold(a)suse.com
+
+- Update to version 1.51.5
+ * No upstream changelog found in sources or webpage
+ * customize: Change --chown to use UID:GID:FILENAME
+ * Implement virt-customize --tar-in
+ * Dropped the virt-dib tool
+ * Various bug fixes and language translations
+
+-------------------------------------------------------------------
Old:
----
guestfs-tools-1.50.1.tar.gz
guestfs-tools-1.50.1.tar.gz.sig
New:
----
guestfs-tools-1.51.5.tar.gz
guestfs-tools-1.51.5.tar.gz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ guestfs-tools.spec ++++++
--- /var/tmp/diff_new_pack.LzvhTC/_old 2023-12-01 21:26:20.512023487 +0100
+++ /var/tmp/diff_new_pack.LzvhTC/_new 2023-12-01 21:26:20.520023780 +0100
@@ -20,7 +20,7 @@
%global patches_touch_autotools 1
# The source directory.
-%global source_directory 1.50-stable
+%global source_directory 1.51-development
#
%define guestfs_docdir %{_defaultdocdir}/%{name}
@@ -30,7 +30,7 @@
Summary: Tools to access and modify virtual machine disk images
Name: guestfs-tools
-Version: 1.50.1
+Version: 1.51.5
Release: 0
License: GPL-2.0-or-later
@@ -63,11 +63,9 @@
BuildRequires: libxml2-devel
BuildRequires: make
BuildRequires: ncurses-devel
+BuildRequires: ocaml(ocaml_base_version) >= 4.07
BuildRequires: ocaml-findlib-devel
BuildRequires: ocaml-gettext-devel
-%if 0%{?suse_version} <= 1500
-BuildRequires: ocaml-gettext-stub-devel
-%endif
BuildRequires: ocaml-libguestfs-devel
BuildRequires: ocaml-ounit-devel
BuildRequires: pcre2-devel
++++++ guestfs-tools-1.50.1.tar.gz -> guestfs-tools-1.51.5.tar.gz ++++++
/work/SRC/openSUSE:Factory/guestfs-tools/guestfs-tools-1.50.1.tar.gz /work/SRC/openSUSE:Factory/.guestfs-tools.new.25432/guestfs-tools-1.51.5.tar.gz differ: char 12, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package texlab for openSUSE:Factory checked in at 2023-12-01 21:25:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/texlab (Old)
and /work/SRC/openSUSE:Factory/.texlab.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "texlab"
Fri Dec 1 21:25:38 2023 rev:21 rq:1130111 version:5.11.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/texlab/texlab.changes 2023-10-04 22:31:37.140004491 +0200
+++ /work/SRC/openSUSE:Factory/.texlab.new.25432/texlab.changes 2023-12-01 21:26:12.327722900 +0100
@@ -1,0 +2,15 @@
+Wed Nov 29 16:38:20 UTC 2023 - Atri Bhattacharya <badshah400(a)gmail.com>
+
+- Update to version 5.11.0:
+ * Add texlab.inlayHints.labelDefinitions and
+ texlab.inlayHints.labelReferences options
+ (gh#latex-lsp/texlab#753)
+ * Display inlay hints for label references by default
+ (gh#latex-lsp/texlab#753)
+ * Moving the build logs to the recycle bin will now clear the
+ diagnostics (gh#latex-lsp/texlab-vscode#825)
+ * Fix false positive when reporting syntax errors for BibTeX
+ accents (gh#latex-lsp/texlab#945)
+- Update rust+cargo required version to 1.70.0.
+
+-------------------------------------------------------------------
Old:
----
texlab-5.10.0.tar.gz
New:
----
texlab-5.11.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ texlab.spec ++++++
--- /var/tmp/diff_new_pack.8gjoaI/_old 2023-12-01 21:26:15.775849540 +0100
+++ /var/tmp/diff_new_pack.8gjoaI/_new 2023-12-01 21:26:15.779849687 +0100
@@ -17,7 +17,7 @@
Name: texlab
-Version: 5.10.0
+Version: 5.11.0
Release: 0
Summary: Implementation of the Language Server Protocol for LaTeX
License: ( 0BSD OR MIT OR Apache-2.0 ) AND ( Apache-2.0 OR BSL-1.0 ) AND ( Apache-2.0 OR MIT ) AND ( Apache-2.0 OR Apache-2.0 OR MIT ) AND ( CC0-1.0 OR Artistic-2.0 ) AND ( MIT OR Apache-2.0 OR Zlib ) AND ( MIT OR Zlib OR Apache-2.0 ) AND ( Unlicense OR MIT ) AND ( Zlib OR Apache-2.0 OR MIT ) AND Apache-2.0 AND BSD-3-Clause AND GPL-3.0 AND GPL-3.0+ AND ISC AND MIT AND MPL-2.0 AND MPL-2.0+ AND GPL-3.0
@@ -27,17 +27,17 @@
Source1: vendor.tar.zst
Source2: cargo_config
BuildRequires: cargo-packaging
-BuildRequires: rust+cargo
+BuildRequires: rust+cargo >= 1.70.0
BuildRequires: zstd
ExclusiveArch: %{rust_tier1_arches}
%description
-Cross-platform implementation of the Language Server Protocol providing rich cross-editing support for the LaTeX typesetting system.
+Cross-platform implementation of the Language Server Protocol providing rich
+cross-editing support for the LaTeX typesetting system.
The server may be used with any editor that implements the Language Server Protocol.
%prep
%autosetup -a1
-mkdir .cargo
cp %{SOURCE2} .cargo/config
%build
++++++ _service ++++++
--- /var/tmp/diff_new_pack.8gjoaI/_old 2023-12-01 21:26:15.823851303 +0100
+++ /var/tmp/diff_new_pack.8gjoaI/_new 2023-12-01 21:26:15.835851743 +0100
@@ -1,7 +1,7 @@
<services>
<service name="download_files" mode="manual" />
<service name="cargo_vendor" mode="manual">
- <param name="srctar">texlab-5.10.0.tar.gz</param>
+ <param name="srctar">texlab-5.11.0.tar.gz</param>
<param name="compression">zst</param>
<param name="update">true</param>
</service>
++++++ texlab-5.10.0.tar.gz -> texlab-5.11.0.tar.gz ++++++
/work/SRC/openSUSE:Factory/texlab/texlab-5.10.0.tar.gz /work/SRC/openSUSE:Factory/.texlab.new.25432/texlab-5.11.0.tar.gz differ: char 13, line 1
++++++ vendor.tar.zst ++++++
Binary files /var/tmp/diff_new_pack.8gjoaI/_old and /var/tmp/diff_new_pack.8gjoaI/_new differ
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package monero for openSUSE:Factory checked in at 2023-12-01 21:25:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/monero (Old)
and /work/SRC/openSUSE:Factory/.monero.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "monero"
Fri Dec 1 21:25:22 2023 rev:14 rq:1130089 version:0.18.3.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/monero/monero.changes 2023-11-14 21:42:43.559939023 +0100
+++ /work/SRC/openSUSE:Factory/.monero.new.25432/monero.changes 2023-12-01 21:25:48.650853312 +0100
@@ -1,0 +2,4 @@
+Thu Nov 30 15:26:40 UTC 2023 - Kevin Whitaker <eyecreate(a)eyecreate.org>
+
+- Fix wrong name used for monerod config file
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ monero.spec ++++++
--- /var/tmp/diff_new_pack.T2Qb5y/_old 2023-12-01 21:25:50.626925888 +0100
+++ /var/tmp/diff_new_pack.T2Qb5y/_new 2023-12-01 21:25:50.630926035 +0100
@@ -117,7 +117,7 @@
# setup systemd service
sed -i 's#^Description=Monero Full Node$#Description=%{display_name} Daemon#g' utils/systemd/%{daemon_name}.service
sed -i 's#^PIDFile=/run/monero/monerod.pid$#PIDFile=%{_rundir}/%{name}/%{daemon_name}.pid#g' utils/systemd/%{daemon_name}.service
-sed -i 's#^ExecStart=%{_bindir}/monerod --config-file %{_sysconfdir}/monerod.conf \\$#ExecStart=%{_bindir}/%{daemon_name} --detach --pidfile %{_rundir}/%{name}/%{daemon_name}.pid --config-file=%{_sysconfdir}/%{name}.conf --data-dir=%{_localstatedir}/lib/%{name}#g' utils/systemd/%{daemon_name}.service
+sed -i 's#^ExecStart=%{_bindir}/monerod --config-file %{_sysconfdir}/%{daemon_name}.conf \\$#ExecStart=%{_bindir}/%{daemon_name} --detach --pidfile %{_rundir}/%{name}/%{daemon_name}.pid --config-file=%{_sysconfdir}/%{name}.conf --data-dir=%{_localstatedir}/lib/%{name}#g' utils/systemd/%{daemon_name}.service
sed -i 's#^ --detach --pidfile /run/monero/monerod.pid#ExecReload=/bin/kill -HUP \$MAINPID#g' utils/systemd/%{daemon_name}.service
sed -i 's#^User=monero$#User=%{name}#g' utils/systemd/%{daemon_name}.service
sed -i 's#^Group=monero$#Group=%{name}#g' utils/systemd/%{daemon_name}.service
@@ -149,7 +149,7 @@
rm -rf %{buildroot}%{_prefix}/lib*
# install daemon supplementary files
-install -D -m 0644 utils/conf/%{daemon_name}.conf %{buildroot}%{_sysconfdir}/%{name}.conf
+install -D -m 0644 utils/conf/%{daemon_name}.conf %{buildroot}%{_sysconfdir}/%{daemon_name}.conf
install -D -m 0644 utils/systemd/%{daemon_name}.service %{buildroot}%{_unitdir}/%{daemon_name}.service
mkdir -p %{buildroot}%{_localstatedir}/lib/%{name}
mkdir -p %{buildroot}%{_localstatedir}/log/%{name}
@@ -198,7 +198,7 @@
%{_bindir}/%{daemon_name}
%{_sbindir}/rc%{daemon_name}
%{_unitdir}/%{daemon_name}.service
-%config(noreplace) %{_sysconfdir}/%{name}.conf
+%config(noreplace) %{_sysconfdir}/%{daemon_name}.conf
%dir %attr(700,%{name},%{name}) %{_localstatedir}/lib/%{name}
%dir %attr(700,%{name},%{name}) %{_localstatedir}/log/%{name}
%ghost %{_rundir}/%{name}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package openQA for openSUSE:Factory checked in at 2023-12-01 21:25:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openQA (Old)
and /work/SRC/openSUSE:Factory/.openQA.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openQA"
Fri Dec 1 21:25:15 2023 rev:525 rq:1130086 version:4.6.1701312647.3c8b171
Changes:
--------
openQA-devel-test.changes: same change
openQA-test.changes: same change
openQA-worker-test.changes: same change
--- /work/SRC/openSUSE:Factory/openQA/openQA.changes 2023-11-26 19:38:36.349028191 +0100
+++ /work/SRC/openSUSE:Factory/.openQA.new.25432/openQA.changes 2023-12-01 21:25:43.826676133 +0100
@@ -1,0 +2,10 @@
+Thu Nov 30 02:50:56 UTC 2023 - okurz(a)suse.com
+
+- Update to version 4.6.1701312647.3c8b171:
+ * Dependency cron 2023-11-30
+ * Show FQDN in VNC command if available via `WORKER_HOSTNAME`
+ * Add YAML:PP as direct dependecy of generate assetpack script
+ * Cleanup openQA spec files
+ * infopanel: render scenario_description as markdown
+
+-------------------------------------------------------------------
Old:
----
openQA-4.6.1700951825.872b397.obscpio
New:
----
openQA-4.6.1701312647.3c8b171.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openQA-client-test.spec ++++++
--- /var/tmp/diff_new_pack.wLBEVe/_old 2023-12-01 21:25:44.850713743 +0100
+++ /var/tmp/diff_new_pack.wLBEVe/_new 2023-12-01 21:25:44.850713743 +0100
@@ -18,12 +18,12 @@
%define short_name openQA-client
Name: %{short_name}-test
-Version: 4.6.1700951825.872b397
+Version: 4.6.1701312647.3c8b171
Release: 0
Summary: Test package for %{short_name}
License: GPL-2.0-or-later
BuildRequires: %{short_name} == %{version}
-ExcludeArch: i586
+ExcludeArch: %{ix86}
%description
.
++++++ openQA-devel-test.spec ++++++
--- /var/tmp/diff_new_pack.wLBEVe/_old 2023-12-01 21:25:44.874714625 +0100
+++ /var/tmp/diff_new_pack.wLBEVe/_new 2023-12-01 21:25:44.874714625 +0100
@@ -18,12 +18,12 @@
%define short_name openQA-devel
Name: %{short_name}-test
-Version: 4.6.1700951825.872b397
+Version: 4.6.1701312647.3c8b171
Release: 0
Summary: Test package for %{short_name}
License: GPL-2.0-or-later
BuildRequires: %{short_name} == %{version}
-ExcludeArch: i586
+ExcludeArch: %{ix86}
%ifarch ppc ppc64 ppc64le s390x
# missing chromedriver dependency
ExclusiveArch: do_not_build
++++++ openQA-test.spec ++++++
--- /var/tmp/diff_new_pack.wLBEVe/_old 2023-12-01 21:25:44.902715653 +0100
+++ /var/tmp/diff_new_pack.wLBEVe/_new 2023-12-01 21:25:44.906715800 +0100
@@ -18,7 +18,7 @@
%define short_name openQA
Name: %{short_name}-test
-Version: 4.6.1700951825.872b397
+Version: 4.6.1701312647.3c8b171
Release: 0
Summary: Test package for openQA
License: GPL-2.0-or-later
@@ -27,7 +27,7 @@
%if 0%{?suse_version} > 1500
BuildRequires: user(geekotest)
%endif
-ExcludeArch: i586
+ExcludeArch: %{ix86}
%description
.
++++++ openQA-worker-test.spec ++++++
--- /var/tmp/diff_new_pack.wLBEVe/_old 2023-12-01 21:25:44.926716534 +0100
+++ /var/tmp/diff_new_pack.wLBEVe/_new 2023-12-01 21:25:44.926716534 +0100
@@ -18,7 +18,7 @@
%define short_name openQA-worker
Name: %{short_name}-test
-Version: 4.6.1700951825.872b397
+Version: 4.6.1701312647.3c8b171
Release: 0
Summary: Test package for %{short_name}
License: GPL-2.0-or-later
@@ -26,7 +26,7 @@
%if 0%{?suse_version} > 1500
BuildRequires: user(_openqa-worker)
%endif
-ExcludeArch: i586
+ExcludeArch: %{ix86}
%description
.
++++++ openQA.spec ++++++
--- /var/tmp/diff_new_pack.wLBEVe/_old 2023-12-01 21:25:44.954717563 +0100
+++ /var/tmp/diff_new_pack.wLBEVe/_new 2023-12-01 21:25:44.958717710 +0100
@@ -47,7 +47,7 @@
%define python_scripts_requires %{nil}
%endif
# The following line is generated from dependencies.yaml
-%define assetpack_requires perl(CSS::Minifier::XS) >= 0.01 perl(JavaScript::Minifier::XS) >= 0.11 perl(Mojolicious::Plugin::AssetPack) >= 1.36
+%define assetpack_requires perl(CSS::Minifier::XS) >= 0.01 perl(JavaScript::Minifier::XS) >= 0.11 perl(Mojolicious::Plugin::AssetPack) >= 1.36 perl(YAML::PP) >= 0.026
# The following line is generated from dependencies.yaml
%define common_requires ntp-daemon perl >= 5.20.0 perl(Carp::Always) >= 0.14.02 perl(Config::IniFiles) perl(Config::Tiny) perl(Cpanel::JSON::XS) >= 4.09 perl(Cwd) perl(Data::Dump) perl(Data::Dumper) perl(Digest::MD5) perl(Filesys::Df) perl(Getopt::Long) perl(Minion) >= 10.25 perl(Mojolicious) >= 9.340.0 perl(Regexp::Common) perl(Storable) perl(Time::Moment) perl(Try::Tiny)
# runtime requirements for the main package that are not required by other sub-packages
@@ -78,11 +78,10 @@
%define devel_requires %devel_no_selenium_requires chromedriver
Name: openQA
-Version: 4.6.1700951825.872b397
+Version: 4.6.1701312647.3c8b171
Release: 0
Summary: The openQA web-frontend, scheduler and tools
License: GPL-2.0-or-later
-Group: Development/Tools/Other
URL: http://os-autoinst.github.io/openQA/
Source0: %{name}-%{version}.tar.xz
# a workaround for set_version looking at random files (so we can't name it .tar.xz)
@@ -122,14 +121,12 @@
# version of that module. Then when we install on Tumbleweed, it doesn't
# have that older version anymore
#BuildArch: noarch
-ExcludeArch: i586
+ExcludeArch: %{ix86}
%{?systemd_requires}
%if %{with tests}
BuildRequires: %{test_requires}
%endif
-%if 0%{?suse_version} >= 1330
Requires(pre): group(nogroup)
-%endif
%if 0%{?suse_version} > 1500
BuildRequires: sysuser-tools
%sysusers_requires
@@ -156,7 +153,6 @@
%package no-selenium-devel
Summary: Development package pulling in all build+test dependencies except chromedriver for Selenium based tests
-Group: Development/Tools/Other
Requires: %{devel_no_selenium_requires}
%description no-selenium-devel
@@ -164,7 +160,6 @@
%package devel
Summary: Development package pulling in all build+test dependencies
-Group: Development/Tools/Other
Requires: %{devel_requires}
%ifarch s390x
# missing chromedriver dependency
@@ -176,7 +171,6 @@
%package common
Summary: The openQA common tools for web-frontend and workers
-Group: Development/Tools/Other
Requires: %{common_requires}
Requires: perl(Mojolicious) >= 8.24
@@ -186,7 +180,6 @@
%package worker
Summary: The openQA worker
-Group: Development/Tools/Other
%define worker_requires_including_uncovered_in_tests %worker_requires perl(SQL::SplitStatement)
Requires: %{worker_requires_including_uncovered_in_tests}
# FIXME: use proper Requires(pre/post/preun/...)
@@ -209,7 +202,6 @@
%package client
Summary: Client tools for remote openQA management
-Group: Development/Tools/Other
Requires: %client_requires
Requires: openQA-common = %{version}
@@ -220,7 +212,6 @@
%if %{with python_scripts}
%package python-scripts
Summary: Additional scripts in python
-Group: Development/Tools/Other
Requires: %python_scripts_requires
%description python-scripts
@@ -229,7 +220,6 @@
%package local-db
Summary: Helper package to ease setup of postgresql DB
-Group: Development/Tools/Other
Requires: %{name} = %{version}
Requires: postgresql-server
BuildRequires: postgresql-server
@@ -241,7 +231,6 @@
%package single-instance
Summary: Convenience package for a single-instance setup using apache proxy
-Group: Development/Tools/Other
Provides: %{name}-single-instance-apache
Provides: %{name}-single-instance-apache2
Requires: %{name} = %{version}
@@ -254,7 +243,6 @@
%package single-instance-nginx
Summary: Convenience package for a single-instance setup using nginx proxy
-Group: Development/Tools/Other
Requires: %{name} = %{version}
Requires: %{name}-local-db
Requires: %{name}-worker = %{version}
@@ -265,7 +253,6 @@
%package bootstrap
Summary: Automated openQA setup
-Group: Development/Tools/Other
%description bootstrap
This can automatically setup openQA - either directly on your system
@@ -273,7 +260,6 @@
%package doc
Summary: The openQA documentation
-Group: Development/Tools/Other
%description doc
Documentation material covering installation, configuration, basic test writing, etc.
@@ -281,7 +267,6 @@
%package auto-update
Summary: Automatically upgrade and reboot the system when required
-Group: Development/Tools/Other
Requires: %{name}-common
Requires: curl
Requires: rebootmgr
@@ -292,7 +277,6 @@
%package continuous-update
Summary: Continuously update packages from devel:openQA
-Group: Development/Tools/Other
Requires: %{name}-common
Requires: curl
@@ -304,7 +288,6 @@
%package munin
Summary: Munin scripts
-Group: Development/Tools/Other
Requires: curl
Requires: munin
Requires: munin-node
++++++ openQA-4.6.1700951825.872b397.obscpio -> openQA-4.6.1701312647.3c8b171.obscpio ++++++
/work/SRC/openSUSE:Factory/openQA/openQA-4.6.1700951825.872b397.obscpio /work/SRC/openSUSE:Factory/.openQA.new.25432/openQA-4.6.1701312647.3c8b171.obscpio differ: char 50, line 1
++++++ openQA.obsinfo ++++++
--- /var/tmp/diff_new_pack.wLBEVe/_old 2023-12-01 21:25:45.042720795 +0100
+++ /var/tmp/diff_new_pack.wLBEVe/_new 2023-12-01 21:25:45.046720942 +0100
@@ -1,5 +1,5 @@
name: openQA
-version: 4.6.1700951825.872b397
-mtime: 1700951825
-commit: 872b39721c693fc06ede88b366975bf4e2352c7d
+version: 4.6.1701312647.3c8b171
+mtime: 1701312647
+commit: 3c8b171d6b82a462969346252e20775098476ac3
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gdal for openSUSE:Factory checked in at 2023-12-01 21:25:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gdal (Old)
and /work/SRC/openSUSE:Factory/.gdal.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gdal"
Fri Dec 1 21:25:13 2023 rev:81 rq:1130090 version:3.7.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/gdal/gdal.changes 2023-10-04 22:32:02.768930806 +0200
+++ /work/SRC/openSUSE:Factory/.gdal.new.25432/gdal.changes 2023-12-01 21:25:30.570189258 +0100
@@ -1,0 +2,6 @@
+Sun Nov 19 10:37:35 UTC 2023 - Bruno Friedmann <bruno(a)ioda-net.ch>
+
+- update to bugfix release version 3.7.3
+ see https://github.com/OSGeo/gdal/blob/v3.7.3/NEWS.md
+
+-------------------------------------------------------------------
Old:
----
gdal-3.7.2.tar.xz
gdal-3.7.2.tar.xz.md5
gdalautotest-3.7.2.tar.gz
New:
----
gdal-3.7.3.tar.xz
gdal-3.7.3.tar.xz.md5
gdalautotest-3.7.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gdal.spec ++++++
--- /var/tmp/diff_new_pack.dkbCYD/_old 2023-12-01 21:25:36.450405221 +0100
+++ /var/tmp/diff_new_pack.dkbCYD/_new 2023-12-01 21:25:36.450405221 +0100
@@ -31,7 +31,7 @@
%bcond_with deflate_support
%bcond_with tests_support
Name: gdal
-Version: 3.7.2
+Version: 3.7.3
Release: 0
Summary: GDAL/OGR - a translator library for raster and vector geospatial data formats
License: BSD-3-Clause AND MIT AND SUSE-Public-Domain
++++++ gdal-3.7.2.tar.xz -> gdal-3.7.3.tar.xz ++++++
/work/SRC/openSUSE:Factory/gdal/gdal-3.7.2.tar.xz /work/SRC/openSUSE:Factory/.gdal.new.25432/gdal-3.7.3.tar.xz differ: char 26, line 1
++++++ gdal-3.7.2.tar.xz.md5 -> gdal-3.7.3.tar.xz.md5 ++++++
--- /work/SRC/openSUSE:Factory/gdal/gdal-3.7.2.tar.xz.md5 2023-10-04 22:32:02.760930517 +0200
+++ /work/SRC/openSUSE:Factory/.gdal.new.25432/gdal-3.7.3.tar.xz.md5 2023-12-01 21:25:30.258177798 +0100
@@ -1 +1 @@
-5c1eca0e695b67f1d9075854cd180285 gdal-3.7.2.tar.xz
+cc94f0fea5d07e5d1f8fa47892e8f8ea gdal-3.7.3.tar.xz
++++++ gdalautotest-3.7.2.tar.gz -> gdalautotest-3.7.3.tar.gz ++++++
/work/SRC/openSUSE:Factory/gdal/gdalautotest-3.7.2.tar.gz /work/SRC/openSUSE:Factory/.gdal.new.25432/gdalautotest-3.7.3.tar.gz differ: char 13, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libmediainfo for openSUSE:Factory checked in at 2023-12-01 21:25:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libmediainfo (Old)
and /work/SRC/openSUSE:Factory/.libmediainfo.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libmediainfo"
Fri Dec 1 21:25:07 2023 rev:33 rq:1130024 version:23.11
Changes:
--------
--- /work/SRC/openSUSE:Factory/libmediainfo/libmediainfo.changes 2023-10-05 20:05:08.139010366 +0200
+++ /work/SRC/openSUSE:Factory/.libmediainfo.new.25432/libmediainfo.changes 2023-12-01 21:25:18.361740874 +0100
@@ -1,0 +2,29 @@
+Fri Nov 24 14:34:32 UTC 2023 - Maxime Gervais <maxime(a)mediaarea.net>
+
+- Update to version 23.11
+ Added features:
+ * XMP: support of a couple of additional metadata
+ * PNG: pixel aspect ratio, gamma, active bit depth
+ * PNG: support of textual metadata
+ * Detection of active width/height/DAR (based on FFmpeg),
+ Windows only
+ * Matroska: show ST-12 timecode of first frame
+ * ADM: rounding of FFoA to 0 decimal and Start/End time codes to
+ 2 decimals
+ * WAV: support of big (1+ GB) axml chunks
+ * ADM: support of big (1+ GB) files on 32-bit systems
+ Fixed bugs:
+ * I1876, BWF: fix missing precision in TimeReference export
+ * I1607, MPEG-TS/PS: Less Inform() with Open(memory) than
+ Open(file)
+ * MP4/MOV: show right time code of last frame with complex
+ time code tracks
+ * Duration: timecode output should not use drop frame for
+ 23.976fps
+ * AVC+HEVC: fix handling of DF timestamps
+ * SF1188, ID3v2: fix wrong handling of chunks having padding
+ * I1887, TS DVB: fix wrong handling of UTF-8 strings in service
+ name
+ * I1892, Matroska: fix date readout if before the millennium
+
+-------------------------------------------------------------------
Old:
----
libmediainfo_23.10.tar.xz
New:
----
libmediainfo_23.11.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libmediainfo.spec ++++++
--- /var/tmp/diff_new_pack.Ym7g6m/_old 2023-12-01 21:25:19.241773195 +0100
+++ /var/tmp/diff_new_pack.Ym7g6m/_new 2023-12-01 21:25:19.245773343 +0100
@@ -19,7 +19,7 @@
%define sover 0
Name: libmediainfo
-Version: 23.10
+Version: 23.11
Release: 0
Summary: Library for supplying technical and tag information about a video or audio file
License: BSD-2-Clause
++++++ libmediainfo_23.10.tar.xz -> libmediainfo_23.11.tar.xz ++++++
++++ 6390 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package snapper for openSUSE:Factory checked in at 2023-12-01 21:25:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/snapper (Old)
and /work/SRC/openSUSE:Factory/.snapper.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "snapper"
Fri Dec 1 21:25:04 2023 rev:160 rq:1130172 version:0.10.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/snapper/snapper.changes 2023-09-17 19:29:19.429635627 +0200
+++ /work/SRC/openSUSE:Factory/.snapper.new.25432/snapper.changes 2023-12-01 21:25:15.145622755 +0100
@@ -1,0 +2,17 @@
+Tue Nov 28 08:22:41 CET 2023 - aschnell(a)suse.com
+
+- report plugin failures (gh#openSUSE/snapper#846)
+- version 0.10.7
+
+-------------------------------------------------------------------
+Wed Nov 22 16:15:37 CET 2023 - aschnell(a)suse.com
+
+- fix building with libxml 2.12.0 (gh#openSUSE/snapper#848)
+
+-------------------------------------------------------------------
+Fri Oct 13 08:56:18 CEST 2023 - aschnell(a)suse.com
+
+- fix diff for lvm based configs (bsc#1216191)
+- make SystemCmd take vector of strings
+
+-------------------------------------------------------------------
Old:
----
snapper-0.10.6.tar.xz
New:
----
snapper-0.10.7.tar.xz
snapper-xUbuntu_23.10.dsc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ snapper.spec ++++++
--- /var/tmp/diff_new_pack.JpYIB6/_old 2023-12-01 21:25:15.965652872 +0100
+++ /var/tmp/diff_new_pack.JpYIB6/_new 2023-12-01 21:25:15.969653019 +0100
@@ -35,7 +35,7 @@
%bcond_with coverage
Name: snapper
-Version: 0.10.6
+Version: 0.10.7
Release: 0
Summary: Tool for filesystem snapshot management
License: GPL-2.0-only
++++++ debian.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/debian/changelog new/debian/changelog
--- old/debian/changelog 2023-09-15 08:17:44.000000000 +0200
+++ new/debian/changelog 2023-11-30 09:46:19.000000000 +0100
@@ -1,3 +1,9 @@
+snapper (0.10.7) stable; urgency=low
+
+ * Updated to version 0.10.7
+
+ -- Arvin Schnell <aschnell(a)suse.com> Thu, 30 Nov 2023 09:30:41 +0000
+
snapper (0.10.6) stable; urgency=low
* Updated to version 0.10.6
++++++ snapper-0.10.6.tar.xz -> snapper-0.10.7.tar.xz ++++++
++++ 6759 lines of diff (skipped)
++++++ snapper-Debian_10.0.dsc ++++++
--- /var/tmp/diff_new_pack.JpYIB6/_old 2023-12-01 21:25:16.229662568 +0100
+++ /var/tmp/diff_new_pack.JpYIB6/_new 2023-12-01 21:25:16.233662716 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: snapper
-Version: 0.10.6-1
+Version: 0.10.7-1
Binary: snapper
Maintainer: Arvin Schnell <aschnell(a)suse.com>
Architecture: any
@@ -11,5 +11,5 @@
# 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz
#
Files:
-ccc63434f67c465d1b5d2e9aa3a9837d 533708 snapper-0.10.6.tar.xz
+92c295cda4f97a9bd73c401aa6cbcb05 536324 snapper-0.10.7.tar.xz
++++++ snapper-Debian_11.0.dsc ++++++
--- /var/tmp/diff_new_pack.JpYIB6/_old 2023-12-01 21:25:16.253663450 +0100
+++ /var/tmp/diff_new_pack.JpYIB6/_new 2023-12-01 21:25:16.257663597 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: snapper
-Version: 0.10.6-1
+Version: 0.10.7-1
Binary: snapper
Maintainer: Arvin Schnell <aschnell(a)suse.com>
Architecture: any
@@ -11,5 +11,5 @@
# 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz
#
Files:
-ccc63434f67c465d1b5d2e9aa3a9837d 533708 snapper-0.10.6.tar.xz
+92c295cda4f97a9bd73c401aa6cbcb05 536324 snapper-0.10.7.tar.xz
++++++ snapper-Debian_12.0.dsc ++++++
--- /var/tmp/diff_new_pack.JpYIB6/_old 2023-12-01 21:25:16.273664185 +0100
+++ /var/tmp/diff_new_pack.JpYIB6/_new 2023-12-01 21:25:16.277664332 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: snapper
-Version: 0.10.6-1
+Version: 0.10.7-1
Binary: snapper
Maintainer: Arvin Schnell <aschnell(a)suse.com>
Architecture: any
@@ -11,5 +11,5 @@
# 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz
#
Files:
-ccc63434f67c465d1b5d2e9aa3a9837d 533708 snapper-0.10.6.tar.xz
+92c295cda4f97a9bd73c401aa6cbcb05 536324 snapper-0.10.7.tar.xz
++++++ snapper-Debian_Unstable.dsc ++++++
--- /var/tmp/diff_new_pack.JpYIB6/_old 2023-12-01 21:25:16.293664919 +0100
+++ /var/tmp/diff_new_pack.JpYIB6/_new 2023-12-01 21:25:16.297665066 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: snapper
-Version: 0.10.6-1
+Version: 0.10.7-1
Binary: snapper
Maintainer: Arvin Schnell <aschnell(a)suse.com>
Architecture: any
@@ -11,5 +11,5 @@
# 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz
#
Files:
-ccc63434f67c465d1b5d2e9aa3a9837d 533708 snapper-0.10.6.tar.xz
+92c295cda4f97a9bd73c401aa6cbcb05 536324 snapper-0.10.7.tar.xz
++++++ snapper-Raspbian_10.dsc ++++++
--- /var/tmp/diff_new_pack.JpYIB6/_old 2023-12-01 21:25:16.317665801 +0100
+++ /var/tmp/diff_new_pack.JpYIB6/_new 2023-12-01 21:25:16.317665801 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: snapper
-Version: 0.10.6-1
+Version: 0.10.7-1
Binary: snapper
Maintainer: Arvin Schnell <aschnell(a)suse.com>
Architecture: any
++++++ snapper-Raspbian_11.dsc ++++++
--- /var/tmp/diff_new_pack.JpYIB6/_old 2023-12-01 21:25:16.333666388 +0100
+++ /var/tmp/diff_new_pack.JpYIB6/_new 2023-12-01 21:25:16.337666535 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: snapper
-Version: 0.10.6-1
+Version: 0.10.7-1
Binary: snapper
Maintainer: Arvin Schnell <aschnell(a)suse.com>
Architecture: any
++++++ snapper-xUbuntu_18.04.dsc ++++++
--- /var/tmp/diff_new_pack.JpYIB6/_old 2023-12-01 21:25:16.353667123 +0100
+++ /var/tmp/diff_new_pack.JpYIB6/_new 2023-12-01 21:25:16.357667270 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: snapper
-Version: 0.10.6-1
+Version: 0.10.7-1
Binary: snapper
Maintainer: Arvin Schnell <aschnell(a)suse.com>
Architecture: any
@@ -11,5 +11,5 @@
# 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz
#
Files:
-ccc63434f67c465d1b5d2e9aa3a9837d 533708 snapper-0.10.6.tar.xz
+92c295cda4f97a9bd73c401aa6cbcb05 536324 snapper-0.10.7.tar.xz
++++++ snapper-xUbuntu_18.10.dsc ++++++
--- /var/tmp/diff_new_pack.JpYIB6/_old 2023-12-01 21:25:16.373667858 +0100
+++ /var/tmp/diff_new_pack.JpYIB6/_new 2023-12-01 21:25:16.373667858 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: snapper
-Version: 0.10.6-1
+Version: 0.10.7-1
Binary: snapper
Maintainer: Arvin Schnell <aschnell(a)suse.com>
Architecture: any
@@ -11,5 +11,5 @@
# 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz
#
Files:
-ccc63434f67c465d1b5d2e9aa3a9837d 533708 snapper-0.10.6.tar.xz
+92c295cda4f97a9bd73c401aa6cbcb05 536324 snapper-0.10.7.tar.xz
++++++ snapper-xUbuntu_19.04.dsc ++++++
--- /var/tmp/diff_new_pack.JpYIB6/_old 2023-12-01 21:25:16.393668592 +0100
+++ /var/tmp/diff_new_pack.JpYIB6/_new 2023-12-01 21:25:16.393668592 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: snapper
-Version: 0.10.6-1
+Version: 0.10.7-1
Binary: snapper
Maintainer: Arvin Schnell <aschnell(a)suse.com>
Architecture: any
@@ -11,5 +11,5 @@
# 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz
#
Files:
-ccc63434f67c465d1b5d2e9aa3a9837d 533708 snapper-0.10.6.tar.xz
+92c295cda4f97a9bd73c401aa6cbcb05 536324 snapper-0.10.7.tar.xz
++++++ snapper-xUbuntu_19.10.dsc ++++++
--- /var/tmp/diff_new_pack.JpYIB6/_old 2023-12-01 21:25:16.413669327 +0100
+++ /var/tmp/diff_new_pack.JpYIB6/_new 2023-12-01 21:25:16.413669327 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: snapper
-Version: 0.10.6-1
+Version: 0.10.7-1
Binary: snapper
Maintainer: Arvin Schnell <aschnell(a)suse.com>
Architecture: any
@@ -11,5 +11,5 @@
# 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz
#
Files:
-ccc63434f67c465d1b5d2e9aa3a9837d 533708 snapper-0.10.6.tar.xz
+92c295cda4f97a9bd73c401aa6cbcb05 536324 snapper-0.10.7.tar.xz
++++++ snapper-xUbuntu_20.04.dsc ++++++
--- /var/tmp/diff_new_pack.JpYIB6/_old 2023-12-01 21:25:16.433670061 +0100
+++ /var/tmp/diff_new_pack.JpYIB6/_new 2023-12-01 21:25:16.433670061 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: snapper
-Version: 0.10.6-1
+Version: 0.10.7-1
Binary: snapper
Maintainer: Arvin Schnell <aschnell(a)suse.com>
Architecture: any
@@ -11,5 +11,5 @@
# 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz
#
Files:
-ccc63434f67c465d1b5d2e9aa3a9837d 533708 snapper-0.10.6.tar.xz
+92c295cda4f97a9bd73c401aa6cbcb05 536324 snapper-0.10.7.tar.xz
++++++ snapper-xUbuntu_20.10.dsc ++++++
--- /var/tmp/diff_new_pack.JpYIB6/_old 2023-12-01 21:25:16.453670796 +0100
+++ /var/tmp/diff_new_pack.JpYIB6/_new 2023-12-01 21:25:16.453670796 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: snapper
-Version: 0.10.6-1
+Version: 0.10.7-1
Binary: snapper
Maintainer: Arvin Schnell <aschnell(a)suse.com>
Architecture: any
@@ -11,5 +11,5 @@
# 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz
#
Files:
-ccc63434f67c465d1b5d2e9aa3a9837d 533708 snapper-0.10.6.tar.xz
+92c295cda4f97a9bd73c401aa6cbcb05 536324 snapper-0.10.7.tar.xz
++++++ snapper-xUbuntu_21.04.dsc ++++++
--- /var/tmp/diff_new_pack.JpYIB6/_old 2023-12-01 21:25:16.473671531 +0100
+++ /var/tmp/diff_new_pack.JpYIB6/_new 2023-12-01 21:25:16.473671531 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: snapper
-Version: 0.10.6-1
+Version: 0.10.7-1
Binary: snapper
Maintainer: Arvin Schnell <aschnell(a)suse.com>
Architecture: any
@@ -11,5 +11,5 @@
# 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz
#
Files:
-ccc63434f67c465d1b5d2e9aa3a9837d 533708 snapper-0.10.6.tar.xz
+92c295cda4f97a9bd73c401aa6cbcb05 536324 snapper-0.10.7.tar.xz
++++++ snapper-xUbuntu_21.10.dsc ++++++
--- /var/tmp/diff_new_pack.JpYIB6/_old 2023-12-01 21:25:16.489672118 +0100
+++ /var/tmp/diff_new_pack.JpYIB6/_new 2023-12-01 21:25:16.493672265 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: snapper
-Version: 0.10.6-1
+Version: 0.10.7-1
Binary: snapper
Maintainer: Arvin Schnell <aschnell(a)suse.com>
Architecture: any
@@ -11,5 +11,5 @@
# 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz
#
Files:
-ccc63434f67c465d1b5d2e9aa3a9837d 533708 snapper-0.10.6.tar.xz
+92c295cda4f97a9bd73c401aa6cbcb05 536324 snapper-0.10.7.tar.xz
++++++ snapper-xUbuntu_22.04.dsc ++++++
--- /var/tmp/diff_new_pack.JpYIB6/_old 2023-12-01 21:25:16.509672853 +0100
+++ /var/tmp/diff_new_pack.JpYIB6/_new 2023-12-01 21:25:16.513673000 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: snapper
-Version: 0.10.6-1
+Version: 0.10.7-1
Binary: snapper
Maintainer: Arvin Schnell <aschnell(a)suse.com>
Architecture: any
@@ -11,5 +11,5 @@
# 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz
#
Files:
-ccc63434f67c465d1b5d2e9aa3a9837d 533708 snapper-0.10.6.tar.xz
+92c295cda4f97a9bd73c401aa6cbcb05 536324 snapper-0.10.7.tar.xz
++++++ snapper-xUbuntu_22.10.dsc ++++++
--- /var/tmp/diff_new_pack.JpYIB6/_old 2023-12-01 21:25:16.529673587 +0100
+++ /var/tmp/diff_new_pack.JpYIB6/_new 2023-12-01 21:25:16.529673587 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: snapper
-Version: 0.10.6-1
+Version: 0.10.7-1
Binary: snapper
Maintainer: Arvin Schnell <aschnell(a)suse.com>
Architecture: any
@@ -11,5 +11,5 @@
# 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz
#
Files:
-ccc63434f67c465d1b5d2e9aa3a9837d 533708 snapper-0.10.6.tar.xz
+92c295cda4f97a9bd73c401aa6cbcb05 536324 snapper-0.10.7.tar.xz
++++++ snapper-xUbuntu_23.04.dsc ++++++
--- /var/tmp/diff_new_pack.JpYIB6/_old 2023-12-01 21:25:16.545674175 +0100
+++ /var/tmp/diff_new_pack.JpYIB6/_new 2023-12-01 21:25:16.553674469 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: snapper
-Version: 0.10.6-1
+Version: 0.10.7-1
Binary: snapper
Maintainer: Arvin Schnell <aschnell(a)suse.com>
Architecture: any
@@ -11,5 +11,5 @@
# 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz
#
Files:
-ccc63434f67c465d1b5d2e9aa3a9837d 533708 snapper-0.10.6.tar.xz
+92c295cda4f97a9bd73c401aa6cbcb05 536324 snapper-0.10.7.tar.xz
++++++ snapper-xUbuntu_23.10.dsc ++++++
Format: 1.0
Source: snapper
Version: 0.10.7-1
Binary: snapper
Maintainer: Arvin Schnell <aschnell(a)suse.com>
Architecture: any
Build-Depends: debhelper (>= 4.1.16), acl-dev, dbus, g++, libboost-dev, libboost-thread-dev, libboost-system-dev, libboost-test-dev, libxml2-dev, libz-dev, libdbus-1-dev, libjson-c-dev, libpam-dev, xsltproc, docbook-xsl, language-pack-en, language-pack-de, language-pack-fr, ncurses-dev
#
# The 'Files' line is generated during 'make package':
# Files:
# 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz
#
Files:
92c295cda4f97a9bd73c401aa6cbcb05 536324 snapper-0.10.7.tar.xz
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package php8-pear for openSUSE:Factory checked in at 2023-12-01 21:25:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/php8-pear (Old)
and /work/SRC/openSUSE:Factory/.php8-pear.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "php8-pear"
Fri Dec 1 21:25:03 2023 rev:3 rq:1130168 version:1.10.22
Changes:
--------
--- /work/SRC/openSUSE:Factory/php8-pear/php8-pear.changes 2021-08-11 11:49:26.441586030 +0200
+++ /work/SRC/openSUSE:Factory/.php8-pear.new.25432/php8-pear.changes 2023-12-01 21:25:11.289481129 +0100
@@ -1,0 +2,18 @@
+Sun Nov 26 17:26:02 UTC 2023 - Arjen de Korte <suse+build(a)de-korte.org>
+
+- Update to 1.10.22
+ - PEAR 1.10.14
+ * Put glue and pieces parameters to implode in correct order for
+ PHP 7.4+
+ * Fix PHP bug 81653: Typo in install-pear-nozlib.phar
+ * Add %S EXPECTF capability
+ * Fix: Creation of dynamic property PEAR_Error::$callback is
+ deprecated
+ * Fixed extension loaded check for pecl binaries
+ * Remove -n option from pecl.bat for shared extensions
+ * Fix Using ${var} in strings is deprecated
+ * Fix lingering license references to PHP license
+ * Exclude tests from composer classmap
+ * Fix private lastError name
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ php8-pear.spec ++++++
--- /var/tmp/diff_new_pack.MDAMBp/_old 2023-12-01 21:25:11.997507133 +0100
+++ /var/tmp/diff_new_pack.MDAMBp/_new 2023-12-01 21:25:11.997507133 +0100
@@ -1,7 +1,7 @@
#
# spec file for package php8-pear
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -23,7 +23,7 @@
%define pear_module_version(m) %(sed -n 's/.*=>.*%{1}-\\(.*\\)\\.tar.*/\\1/p' %{SOURCE0})
Name: php8-pear
-Version: 1.10.21
+Version: 1.10.22
Release: 0
Summary: PHP Extension and Application Repository
License: BSD-2-Clause
++++++ install-pear-nozlib.phar ++++++
++++ 2824 lines (skipped)
++++ between install-pear-nozlib.phar
++++ and /work/SRC/openSUSE:Factory/.php8-pear.new.25432/install-pear-nozlib.phar
++++++ install-pear-nozlib.phar.sig ++++++
Binary files /var/tmp/diff_new_pack.MDAMBp/_old and /var/tmp/diff_new_pack.MDAMBp/_new differ
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package iproute2 for openSUSE:Factory checked in at 2023-12-01 21:24:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/iproute2 (Old)
and /work/SRC/openSUSE:Factory/.iproute2.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "iproute2"
Fri Dec 1 21:24:54 2023 rev:137 rq:1130110 version:6.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/iproute2/iproute2.changes 2023-09-21 22:13:48.752754206 +0200
+++ /work/SRC/openSUSE:Factory/.iproute2.new.25432/iproute2.changes 2023-12-01 21:25:06.141292050 +0100
@@ -1,0 +2,14 @@
+Thu Nov 30 22:40:27 UTC 2023 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 6.6
+ * bridge: Add backup nexthop ID support
+ * tc: Classifier support for SPI field
+ * tc: support the netem seed parameter for loss and corruption
+ events
+ * tc: remove support for CBQ
+ * tc: remove support for RSVP classifier
+ * tc: remove tcindex classifier
+ * tc: remove dsmark qdisc
+ * tc: drop support for ATM qdisc
+
+-------------------------------------------------------------------
Old:
----
iproute2-6.5.0.tar.sign
iproute2-6.5.0.tar.xz
New:
----
iproute2-6.6.0.tar.sign
iproute2-6.6.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ iproute2.spec ++++++
--- /var/tmp/diff_new_pack.XsZlkg/_old 2023-12-01 21:25:06.925320846 +0100
+++ /var/tmp/diff_new_pack.XsZlkg/_new 2023-12-01 21:25:06.925320846 +0100
@@ -18,7 +18,7 @@
%define _buildshell /bin/bash
Name: iproute2
-Version: 6.5
+Version: 6.6
Release: 0
Summary: Linux network configuration utilities
License: GPL-2.0-only
++++++ adjust-installation-directories-for-openSUSE-SLE.patch ++++++
--- /var/tmp/diff_new_pack.XsZlkg/_old 2023-12-01 21:25:06.945321580 +0100
+++ /var/tmp/diff_new_pack.XsZlkg/_new 2023-12-01 21:25:06.949321727 +0100
@@ -10,10 +10,10 @@
tc/q_netem.c | 2 +-
3 files changed, 7 insertions(+), 6 deletions(-)
-Index: iproute2-6.5.0/Makefile
+Index: iproute2-6.6.0/Makefile
===================================================================
---- iproute2-6.5.0.orig/Makefile
-+++ iproute2-6.5.0/Makefile
+--- iproute2-6.6.0.orig/Makefile
++++ iproute2-6.6.0/Makefile
@@ -15,10 +15,10 @@ MAKEFLAGS += --no-print-directory
endif
@@ -21,7 +21,7 @@
-SBINDIR?=/sbin
+SBINDIR?=/usr/sbin
CONF_ETC_DIR?=/etc/iproute2
- CONF_USR_DIR?=$(PREFIX)/lib/iproute2
+ CONF_USR_DIR?=$(LIBDIR)/iproute2
-NETNS_RUN_DIR?=/var/run/netns
+NETNS_RUN_DIR?=/run/netns
NETNS_ETC_DIR?=/etc/netns
@@ -36,10 +36,10 @@
ifneq ($(SHARED_LIBS),y)
DEFINES+= -DNO_SHARED_LIBS
endif
-Index: iproute2-6.5.0/netem/Makefile
+Index: iproute2-6.6.0/netem/Makefile
===================================================================
---- iproute2-6.5.0.orig/netem/Makefile
-+++ iproute2-6.5.0/netem/Makefile
+--- iproute2-6.6.0.orig/netem/Makefile
++++ iproute2-6.6.0/netem/Makefile
@@ -7,6 +7,7 @@ DISTDATA = normal.dist pareto.dist paret
HOSTCC ?= $(CC)
CCOPTS = $(CBUILD_CFLAGS)
@@ -60,11 +60,11 @@
done
clean:
-Index: iproute2-6.5.0/tc/q_netem.c
+Index: iproute2-6.6.0/tc/q_netem.c
===================================================================
---- iproute2-6.5.0.orig/tc/q_netem.c
-+++ iproute2-6.5.0/tc/q_netem.c
-@@ -130,7 +130,7 @@ static int get_distribution(const char *
+--- iproute2-6.6.0.orig/tc/q_netem.c
++++ iproute2-6.6.0/tc/q_netem.c
+@@ -131,7 +131,7 @@ static int get_distribution(const char *
char *line = NULL;
char name[128];
++++++ iproute2-6.5.0.tar.xz -> iproute2-6.6.0.tar.xz ++++++
++++ 5141 lines of diff (skipped)
++++++ use-sysconf-_SC_CLK_TCK-if-HZ-undefined.patch ++++++
--- /var/tmp/diff_new_pack.XsZlkg/_old 2023-12-01 21:25:07.269333480 +0100
+++ /var/tmp/diff_new_pack.XsZlkg/_new 2023-12-01 21:25:07.273333626 +0100
@@ -4,15 +4,15 @@
Patch-mainline: No
---
- lib/utils.c | 4 ++++
+ lib/utils.c | 4 ++++
1 file changed, 4 insertions(+)
-Index: iproute2-6.3.0/lib/utils.c
+Index: iproute2-6.6.0/lib/utils.c
===================================================================
---- iproute2-6.3.0.orig/lib/utils.c
-+++ iproute2-6.3.0/lib/utils.c
-@@ -108,6 +108,10 @@ int get_hex(char c)
- return -1;
+--- iproute2-6.6.0.orig/lib/utils.c
++++ iproute2-6.6.0/lib/utils.c
+@@ -138,6 +138,10 @@ int get_long(long *val, const char *arg,
+ return 0;
}
+#ifndef HZ
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ethtool for openSUSE:Factory checked in at 2023-12-01 21:24:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ethtool (Old)
and /work/SRC/openSUSE:Factory/.ethtool.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ethtool"
Fri Dec 1 21:24:53 2023 rev:81 rq:1130109 version:6.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/ethtool/ethtool.changes 2023-09-21 22:13:59.793154899 +0200
+++ /work/SRC/openSUSE:Factory/.ethtool.new.25432/ethtool.changes 2023-12-01 21:25:04.417228729 +0100
@@ -1,0 +2,7 @@
+Thu Nov 23 21:44:24 UTC 2023 - Michal Kubecek <mkubecek(a)suse.cz>
+
+- update to upstream release 6.6
+ * Feature: support for more CMIS transceiver modules (-m)
+ * Fix: fix build on systems with old kernel uapi headers
+
+-------------------------------------------------------------------
Old:
----
ethtool-6.5.tar.sign
ethtool-6.5.tar.xz
New:
----
ethtool-6.6.tar.sign
ethtool-6.6.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ethtool.spec ++++++
--- /var/tmp/diff_new_pack.hj0LdV/_old 2023-12-01 21:25:05.201257524 +0100
+++ /var/tmp/diff_new_pack.hj0LdV/_new 2023-12-01 21:25:05.205257672 +0100
@@ -17,7 +17,7 @@
Name: ethtool
-Version: 6.5
+Version: 6.6
Release: 0
Summary: Utility for examining and tuning Ethernet-based network interfaces
License: GPL-2.0-only
++++++ ethtool-6.5.tar.xz -> ethtool-6.6.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/Makefile.am new/ethtool-6.6/Makefile.am
--- old/ethtool-6.5/Makefile.am 2023-09-11 22:14:13.000000000 +0200
+++ new/ethtool-6.6/Makefile.am 2023-11-23 22:08:50.000000000 +0100
@@ -6,8 +6,12 @@
EXTRA_DIST = LICENSE ethtool.8 ethtool.spec.in aclocal.m4 ChangeLog autogen.sh
sbin_PROGRAMS = ethtool
-ethtool_SOURCES = ethtool.c uapi/linux/ethtool.h internal.h \
+ethtool_SOURCES = ethtool.c uapi/linux/const.h uapi/linux/ethtool.h internal.h \
uapi/linux/net_tstamp.h uapi/linux/if.h uapi/linux/hdlc/ioctl.h \
+ uapi/linux/if_addr.h uapi/linux/if_ether.h uapi/linux/if_link.h \
+ uapi/linux/libc-compat.h uapi/linux/net_tstamp.h uapi/linux/neighbour.h \
+ uapi/linux/posix_types.h uapi/linux/rtnetlink.h uapi/linux/socket.h \
+ uapi/linux/stddef.h uapi/linux/types.h \
rxclass.c common.c common.h \
json_writer.c json_writer.h json_print.c json_print.h \
list.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/Makefile.in new/ethtool-6.6/Makefile.in
--- old/ethtool-6.5/Makefile.in 2023-09-12 22:40:47.000000000 +0200
+++ new/ethtool-6.6/Makefile.in 2023-11-23 22:39:53.000000000 +0100
@@ -144,31 +144,35 @@
am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man8dir)" \
"$(DESTDIR)$(bashcompletiondir)"
PROGRAMS = $(sbin_PROGRAMS)
-am__ethtool_SOURCES_DIST = ethtool.c uapi/linux/ethtool.h internal.h \
- uapi/linux/net_tstamp.h uapi/linux/if.h \
- uapi/linux/hdlc/ioctl.h rxclass.c common.c common.h \
- json_writer.c json_writer.h json_print.c json_print.h list.h \
- amd8111e.c de2104x.c dsa.c e100.c e1000.c et131x.c igb.c fec.c \
- fec_8xx.c fsl_enetc.c ibm_emac.c ixgb.c ixgbe.c natsemi.c \
- pcnet32.c realtek.c tg3.c marvell.c vioc.c smsc911x.c \
- at76c50x-usb.c sfc.c stmmac.c sff-common.c sff-common.h \
- sfpid.c sfpdiag.c ixgbevf.c tse.c vmxnet3.c qsfp.c qsfp.h \
- fjes.c lan78xx.c igc.c cmis.c cmis.h bnxt.c cpsw.c lan743x.c \
- hns3.c netlink/netlink.c netlink/netlink.h netlink/extapi.h \
- netlink/msgbuff.c netlink/msgbuff.h netlink/nlsock.c \
- netlink/nlsock.h netlink/strset.c netlink/strset.h \
- netlink/monitor.c netlink/bitset.c netlink/bitset.h \
- netlink/settings.c netlink/parser.c netlink/parser.h \
- netlink/permaddr.c netlink/prettymsg.c netlink/prettymsg.h \
- netlink/features.c netlink/privflags.c netlink/rings.c \
- netlink/channels.c netlink/coalesce.c netlink/pause.c \
- netlink/eee.c netlink/tsinfo.c netlink/fec.c netlink/stats.c \
- netlink/mm.c netlink/desc-ethtool.c netlink/desc-genlctrl.c \
+am__ethtool_SOURCES_DIST = ethtool.c uapi/linux/const.h \
+ uapi/linux/ethtool.h internal.h uapi/linux/net_tstamp.h \
+ uapi/linux/if.h uapi/linux/hdlc/ioctl.h uapi/linux/if_addr.h \
+ uapi/linux/if_ether.h uapi/linux/if_link.h \
+ uapi/linux/libc-compat.h uapi/linux/neighbour.h \
+ uapi/linux/posix_types.h uapi/linux/rtnetlink.h \
+ uapi/linux/socket.h uapi/linux/stddef.h uapi/linux/types.h \
+ rxclass.c common.c common.h json_writer.c json_writer.h \
+ json_print.c json_print.h list.h amd8111e.c de2104x.c dsa.c \
+ e100.c e1000.c et131x.c igb.c fec.c fec_8xx.c fsl_enetc.c \
+ ibm_emac.c ixgb.c ixgbe.c natsemi.c pcnet32.c realtek.c tg3.c \
+ marvell.c vioc.c smsc911x.c at76c50x-usb.c sfc.c stmmac.c \
+ sff-common.c sff-common.h sfpid.c sfpdiag.c ixgbevf.c tse.c \
+ vmxnet3.c qsfp.c qsfp.h fjes.c lan78xx.c igc.c cmis.c cmis.h \
+ bnxt.c cpsw.c lan743x.c hns3.c netlink/netlink.c \
+ netlink/netlink.h netlink/extapi.h netlink/msgbuff.c \
+ netlink/msgbuff.h netlink/nlsock.c netlink/nlsock.h \
+ netlink/strset.c netlink/strset.h netlink/monitor.c \
+ netlink/bitset.c netlink/bitset.h netlink/settings.c \
+ netlink/parser.c netlink/parser.h netlink/permaddr.c \
+ netlink/prettymsg.c netlink/prettymsg.h netlink/features.c \
+ netlink/privflags.c netlink/rings.c netlink/channels.c \
+ netlink/coalesce.c netlink/pause.c netlink/eee.c \
+ netlink/tsinfo.c netlink/fec.c netlink/stats.c netlink/mm.c \
+ netlink/desc-ethtool.c netlink/desc-genlctrl.c \
netlink/module-eeprom.c netlink/module.c netlink/rss.c \
netlink/desc-rtnl.c netlink/cable_test.c netlink/tunnels.c \
netlink/plca.c netlink/pse-pd.c uapi/linux/ethtool_netlink.h \
- uapi/linux/netlink.h uapi/linux/genetlink.h \
- uapi/linux/rtnetlink.h uapi/linux/if_link.h
+ uapi/linux/netlink.h uapi/linux/genetlink.h
@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@am__objects_1 = amd8111e.$(OBJEXT) \
@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ de2104x.$(OBJEXT) \
@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ dsa.$(OBJEXT) e100.$(OBJEXT) \
@@ -243,31 +247,35 @@
am__DEPENDENCIES_1 =
ethtool_DEPENDENCIES = $(am__DEPENDENCIES_1)
am__test_cmdline_SOURCES_DIST = test-cmdline.c test-common.c ethtool.c \
- uapi/linux/ethtool.h internal.h uapi/linux/net_tstamp.h \
- uapi/linux/if.h uapi/linux/hdlc/ioctl.h rxclass.c common.c \
- common.h json_writer.c json_writer.h json_print.c json_print.h \
- list.h amd8111e.c de2104x.c dsa.c e100.c e1000.c et131x.c \
- igb.c fec.c fec_8xx.c fsl_enetc.c ibm_emac.c ixgb.c ixgbe.c \
- natsemi.c pcnet32.c realtek.c tg3.c marvell.c vioc.c \
- smsc911x.c at76c50x-usb.c sfc.c stmmac.c sff-common.c \
- sff-common.h sfpid.c sfpdiag.c ixgbevf.c tse.c vmxnet3.c \
- qsfp.c qsfp.h fjes.c lan78xx.c igc.c cmis.c cmis.h bnxt.c \
- cpsw.c lan743x.c hns3.c netlink/netlink.c netlink/netlink.h \
- netlink/extapi.h netlink/msgbuff.c netlink/msgbuff.h \
- netlink/nlsock.c netlink/nlsock.h netlink/strset.c \
- netlink/strset.h netlink/monitor.c netlink/bitset.c \
- netlink/bitset.h netlink/settings.c netlink/parser.c \
- netlink/parser.h netlink/permaddr.c netlink/prettymsg.c \
- netlink/prettymsg.h netlink/features.c netlink/privflags.c \
- netlink/rings.c netlink/channels.c netlink/coalesce.c \
- netlink/pause.c netlink/eee.c netlink/tsinfo.c netlink/fec.c \
- netlink/stats.c netlink/mm.c netlink/desc-ethtool.c \
- netlink/desc-genlctrl.c netlink/module-eeprom.c \
- netlink/module.c netlink/rss.c netlink/desc-rtnl.c \
- netlink/cable_test.c netlink/tunnels.c netlink/plca.c \
- netlink/pse-pd.c uapi/linux/ethtool_netlink.h \
- uapi/linux/netlink.h uapi/linux/genetlink.h \
- uapi/linux/rtnetlink.h uapi/linux/if_link.h
+ uapi/linux/const.h uapi/linux/ethtool.h internal.h \
+ uapi/linux/net_tstamp.h uapi/linux/if.h \
+ uapi/linux/hdlc/ioctl.h uapi/linux/if_addr.h \
+ uapi/linux/if_ether.h uapi/linux/if_link.h \
+ uapi/linux/libc-compat.h uapi/linux/neighbour.h \
+ uapi/linux/posix_types.h uapi/linux/rtnetlink.h \
+ uapi/linux/socket.h uapi/linux/stddef.h uapi/linux/types.h \
+ rxclass.c common.c common.h json_writer.c json_writer.h \
+ json_print.c json_print.h list.h amd8111e.c de2104x.c dsa.c \
+ e100.c e1000.c et131x.c igb.c fec.c fec_8xx.c fsl_enetc.c \
+ ibm_emac.c ixgb.c ixgbe.c natsemi.c pcnet32.c realtek.c tg3.c \
+ marvell.c vioc.c smsc911x.c at76c50x-usb.c sfc.c stmmac.c \
+ sff-common.c sff-common.h sfpid.c sfpdiag.c ixgbevf.c tse.c \
+ vmxnet3.c qsfp.c qsfp.h fjes.c lan78xx.c igc.c cmis.c cmis.h \
+ bnxt.c cpsw.c lan743x.c hns3.c netlink/netlink.c \
+ netlink/netlink.h netlink/extapi.h netlink/msgbuff.c \
+ netlink/msgbuff.h netlink/nlsock.c netlink/nlsock.h \
+ netlink/strset.c netlink/strset.h netlink/monitor.c \
+ netlink/bitset.c netlink/bitset.h netlink/settings.c \
+ netlink/parser.c netlink/parser.h netlink/permaddr.c \
+ netlink/prettymsg.c netlink/prettymsg.h netlink/features.c \
+ netlink/privflags.c netlink/rings.c netlink/channels.c \
+ netlink/coalesce.c netlink/pause.c netlink/eee.c \
+ netlink/tsinfo.c netlink/fec.c netlink/stats.c netlink/mm.c \
+ netlink/desc-ethtool.c netlink/desc-genlctrl.c \
+ netlink/module-eeprom.c netlink/module.c netlink/rss.c \
+ netlink/desc-rtnl.c netlink/cable_test.c netlink/tunnels.c \
+ netlink/plca.c netlink/pse-pd.c uapi/linux/ethtool_netlink.h \
+ uapi/linux/netlink.h uapi/linux/genetlink.h
@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@am__objects_3 = test_cmdline-amd8111e.$(OBJEXT) \
@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ test_cmdline-de2104x.$(OBJEXT) \
@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ test_cmdline-dsa.$(OBJEXT) \
@@ -350,31 +358,35 @@
test_cmdline_LINK = $(CCLD) $(test_cmdline_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
am__test_features_SOURCES_DIST = test-features.c test-common.c \
- ethtool.c uapi/linux/ethtool.h internal.h \
+ ethtool.c uapi/linux/const.h uapi/linux/ethtool.h internal.h \
uapi/linux/net_tstamp.h uapi/linux/if.h \
- uapi/linux/hdlc/ioctl.h rxclass.c common.c common.h \
- json_writer.c json_writer.h json_print.c json_print.h list.h \
- amd8111e.c de2104x.c dsa.c e100.c e1000.c et131x.c igb.c fec.c \
- fec_8xx.c fsl_enetc.c ibm_emac.c ixgb.c ixgbe.c natsemi.c \
- pcnet32.c realtek.c tg3.c marvell.c vioc.c smsc911x.c \
- at76c50x-usb.c sfc.c stmmac.c sff-common.c sff-common.h \
- sfpid.c sfpdiag.c ixgbevf.c tse.c vmxnet3.c qsfp.c qsfp.h \
- fjes.c lan78xx.c igc.c cmis.c cmis.h bnxt.c cpsw.c lan743x.c \
- hns3.c netlink/netlink.c netlink/netlink.h netlink/extapi.h \
- netlink/msgbuff.c netlink/msgbuff.h netlink/nlsock.c \
- netlink/nlsock.h netlink/strset.c netlink/strset.h \
- netlink/monitor.c netlink/bitset.c netlink/bitset.h \
- netlink/settings.c netlink/parser.c netlink/parser.h \
- netlink/permaddr.c netlink/prettymsg.c netlink/prettymsg.h \
- netlink/features.c netlink/privflags.c netlink/rings.c \
- netlink/channels.c netlink/coalesce.c netlink/pause.c \
- netlink/eee.c netlink/tsinfo.c netlink/fec.c netlink/stats.c \
- netlink/mm.c netlink/desc-ethtool.c netlink/desc-genlctrl.c \
+ uapi/linux/hdlc/ioctl.h uapi/linux/if_addr.h \
+ uapi/linux/if_ether.h uapi/linux/if_link.h \
+ uapi/linux/libc-compat.h uapi/linux/neighbour.h \
+ uapi/linux/posix_types.h uapi/linux/rtnetlink.h \
+ uapi/linux/socket.h uapi/linux/stddef.h uapi/linux/types.h \
+ rxclass.c common.c common.h json_writer.c json_writer.h \
+ json_print.c json_print.h list.h amd8111e.c de2104x.c dsa.c \
+ e100.c e1000.c et131x.c igb.c fec.c fec_8xx.c fsl_enetc.c \
+ ibm_emac.c ixgb.c ixgbe.c natsemi.c pcnet32.c realtek.c tg3.c \
+ marvell.c vioc.c smsc911x.c at76c50x-usb.c sfc.c stmmac.c \
+ sff-common.c sff-common.h sfpid.c sfpdiag.c ixgbevf.c tse.c \
+ vmxnet3.c qsfp.c qsfp.h fjes.c lan78xx.c igc.c cmis.c cmis.h \
+ bnxt.c cpsw.c lan743x.c hns3.c netlink/netlink.c \
+ netlink/netlink.h netlink/extapi.h netlink/msgbuff.c \
+ netlink/msgbuff.h netlink/nlsock.c netlink/nlsock.h \
+ netlink/strset.c netlink/strset.h netlink/monitor.c \
+ netlink/bitset.c netlink/bitset.h netlink/settings.c \
+ netlink/parser.c netlink/parser.h netlink/permaddr.c \
+ netlink/prettymsg.c netlink/prettymsg.h netlink/features.c \
+ netlink/privflags.c netlink/rings.c netlink/channels.c \
+ netlink/coalesce.c netlink/pause.c netlink/eee.c \
+ netlink/tsinfo.c netlink/fec.c netlink/stats.c netlink/mm.c \
+ netlink/desc-ethtool.c netlink/desc-genlctrl.c \
netlink/module-eeprom.c netlink/module.c netlink/rss.c \
netlink/desc-rtnl.c netlink/cable_test.c netlink/tunnels.c \
netlink/plca.c netlink/pse-pd.c uapi/linux/ethtool_netlink.h \
- uapi/linux/netlink.h uapi/linux/genetlink.h \
- uapi/linux/rtnetlink.h uapi/linux/if_link.h
+ uapi/linux/netlink.h uapi/linux/genetlink.h
@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@am__objects_6 = test_features-amd8111e.$(OBJEXT) \
@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ test_features-de2104x.$(OBJEXT) \
@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ test_features-dsa.$(OBJEXT) \
@@ -849,11 +861,16 @@
LDADD = -lm $(am__append_4)
man_MANS = ethtool.8
EXTRA_DIST = LICENSE ethtool.8 ethtool.spec.in aclocal.m4 ChangeLog autogen.sh
-ethtool_SOURCES = ethtool.c uapi/linux/ethtool.h internal.h \
- uapi/linux/net_tstamp.h uapi/linux/if.h \
- uapi/linux/hdlc/ioctl.h rxclass.c common.c common.h \
- json_writer.c json_writer.h json_print.c json_print.h list.h \
- $(am__append_1) $(am__append_2)
+ethtool_SOURCES = ethtool.c uapi/linux/const.h uapi/linux/ethtool.h \
+ internal.h uapi/linux/net_tstamp.h uapi/linux/if.h \
+ uapi/linux/hdlc/ioctl.h uapi/linux/if_addr.h \
+ uapi/linux/if_ether.h uapi/linux/if_link.h \
+ uapi/linux/libc-compat.h uapi/linux/net_tstamp.h \
+ uapi/linux/neighbour.h uapi/linux/posix_types.h \
+ uapi/linux/rtnetlink.h uapi/linux/socket.h uapi/linux/stddef.h \
+ uapi/linux/types.h rxclass.c common.c common.h json_writer.c \
+ json_writer.h json_print.c json_print.h list.h $(am__append_1) \
+ $(am__append_2)
@ENABLE_BASH_COMPLETION_TRUE@bashcompletiondir = $(BASH_COMPLETION_DIR)
@ENABLE_BASH_COMPLETION_TRUE@dist_bashcompletion_DATA = shell-completion/bash/ethtool
test_cmdline_SOURCES = test-cmdline.c test-common.c $(ethtool_SOURCES)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/NEWS new/ethtool-6.6/NEWS
--- old/ethtool-6.5/NEWS 2023-09-12 22:27:56.000000000 +0200
+++ new/ethtool-6.6/NEWS 2023-11-23 22:08:35.000000000 +0100
@@ -1,3 +1,7 @@
+Version 6.6 - November, 23, 2023
+ * Feature: support for more CMIS transceiver modules (-m)
+ * Fix: fix build on systems with old kernel uapi headers
+
Version 6.5 - September 12, 2023
* Feature: register dump for hns3 driver (-d)
* Fix: fix fallback to ioctl for sset (-s)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/configure new/ethtool-6.6/configure
--- old/ethtool-6.5/configure 2023-09-12 22:40:47.000000000 +0200
+++ new/ethtool-6.6/configure 2023-11-23 22:39:52.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ethtool 6.5.
+# Generated by GNU Autoconf 2.69 for ethtool 6.6.
#
# Report bugs to <netdev(a)vger.kernel.org>.
#
@@ -580,8 +580,8 @@
# Identity of this package.
PACKAGE_NAME='ethtool'
PACKAGE_TARNAME='ethtool'
-PACKAGE_VERSION='6.5'
-PACKAGE_STRING='ethtool 6.5'
+PACKAGE_VERSION='6.6'
+PACKAGE_STRING='ethtool 6.6'
PACKAGE_BUGREPORT='netdev(a)vger.kernel.org'
PACKAGE_URL=''
@@ -1254,7 +1254,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 ethtool 6.5 to adapt to many kinds of systems.
+\`configure' configures ethtool 6.6 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1320,7 +1320,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ethtool 6.5:";;
+ short | recursive ) echo "Configuration of ethtool 6.6:";;
esac
cat <<\_ACEOF
@@ -1430,7 +1430,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-ethtool configure 6.5
+ethtool configure 6.6
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1677,7 +1677,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by ethtool $as_me 6.5, which was
+It was created by ethtool $as_me 6.6, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2543,7 +2543,7 @@
# Define the identity of the package.
PACKAGE='ethtool'
- VERSION='6.5'
+ VERSION='6.6'
cat >>confdefs.h <<_ACEOF
@@ -5233,7 +5233,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by ethtool $as_me 6.5, which was
+This file was extended by ethtool $as_me 6.6, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -5299,7 +5299,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-ethtool config.status 6.5
+ethtool config.status 6.6
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/configure.ac new/ethtool-6.6/configure.ac
--- old/ethtool-6.5/configure.ac 2023-09-12 22:21:56.000000000 +0200
+++ new/ethtool-6.6/configure.ac 2023-11-23 22:07:15.000000000 +0100
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-AC_INIT(ethtool, 6.5, netdev(a)vger.kernel.org)
+AC_INIT(ethtool, 6.6, netdev(a)vger.kernel.org)
AC_PREREQ(2.52)
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_SRCDIR([ethtool.c])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/ethtool.8 new/ethtool-6.6/ethtool.8
--- old/ethtool-6.5/ethtool.8 2023-09-12 22:40:48.000000000 +0200
+++ new/ethtool-6.6/ethtool.8 2023-11-23 22:39:54.000000000 +0100
@@ -117,7 +117,7 @@
. hy \\n(HY
..
.
-.TH ETHTOOL 8 "September 2023" "Ethtool version 6.5"
+.TH ETHTOOL 8 "November 2023" "Ethtool version 6.6"
.SH NAME
ethtool \- query or control network driver and hardware settings
.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/ethtool.8.in new/ethtool-6.6/ethtool.8.in
--- old/ethtool-6.5/ethtool.8.in 2023-09-12 22:21:41.000000000 +0200
+++ new/ethtool-6.6/ethtool.8.in 2023-11-23 22:07:06.000000000 +0100
@@ -117,7 +117,7 @@
. hy \\n(HY
..
.
-.TH ETHTOOL 8 "September 2023" "Ethtool version @VERSION@"
+.TH ETHTOOL 8 "November 2023" "Ethtool version @VERSION@"
.SH NAME
ethtool \- query or control network driver and hardware settings
.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/ethtool.spec new/ethtool-6.6/ethtool.spec
--- old/ethtool-6.5/ethtool.spec 2023-09-12 22:40:49.000000000 +0200
+++ new/ethtool-6.6/ethtool.spec 2023-11-23 22:39:54.000000000 +0100
@@ -1,5 +1,5 @@
Name : ethtool
-Version : 6.5
+Version : 6.6
Release : 1
Group : Utilities
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/netlink/module-eeprom.c new/ethtool-6.6/netlink/module-eeprom.c
--- old/ethtool-6.5/netlink/module-eeprom.c 2022-04-04 02:14:43.000000000 +0200
+++ new/ethtool-6.6/netlink/module-eeprom.c 2023-11-23 18:22:33.000000000 +0100
@@ -225,6 +225,9 @@
case SFF8024_ID_QSFP_DD:
case SFF8024_ID_OSFP:
case SFF8024_ID_DSFP:
+ case SFF8024_ID_QSFP_PLUS_CMIS:
+ case SFF8024_ID_SFP_DD_CMIS:
+ case SFF8024_ID_SFP_PLUS_CMIS:
return cmis_show_all_nl(ctx);
#endif
default:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/qsfp.c new/ethtool-6.6/qsfp.c
--- old/ethtool-6.5/qsfp.c 2023-06-14 20:46:26.000000000 +0200
+++ new/ethtool-6.6/qsfp.c 2023-11-23 18:22:33.000000000 +0100
@@ -977,9 +977,13 @@
{
struct sff8636_memory_map map = {};
- if (id[SFF8636_ID_OFFSET] == SFF8024_ID_QSFP_DD ||
- id[SFF8636_ID_OFFSET] == SFF8024_ID_OSFP ||
- id[SFF8636_ID_OFFSET] == SFF8024_ID_DSFP) {
+ switch (id[SFF8636_ID_OFFSET]) {
+ case SFF8024_ID_QSFP_DD:
+ case SFF8024_ID_OSFP:
+ case SFF8024_ID_DSFP:
+ case SFF8024_ID_QSFP_PLUS_CMIS:
+ case SFF8024_ID_SFP_DD_CMIS:
+ case SFF8024_ID_SFP_PLUS_CMIS:
cmis_show_all_ioctl(id);
return;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/sff-common.c new/ethtool-6.6/sff-common.c
--- old/ethtool-6.5/sff-common.c 2023-06-14 20:46:26.000000000 +0200
+++ new/ethtool-6.6/sff-common.c 2023-11-23 18:22:33.000000000 +0100
@@ -162,6 +162,15 @@
case SFF8024_ID_DSFP:
printf(" (DSFP Dual Small Form Factor Pluggable Transceiver)\n");
break;
+ case SFF8024_ID_QSFP_PLUS_CMIS:
+ printf(" (QSFP+ or later with Common Management Interface Specification (CMIS))\n");
+ break;
+ case SFF8024_ID_SFP_DD_CMIS:
+ printf(" (SFP-DD Double Density 2X Pluggable Transceiver with Common Management Interface Specification (CMIS))\n");
+ break;
+ case SFF8024_ID_SFP_PLUS_CMIS:
+ printf(" (SFP+ and later with Common Management Interface Specification (CMIS))\n");
+ break;
default:
printf(" (reserved or unknown)\n");
break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/sff-common.h new/ethtool-6.6/sff-common.h
--- old/ethtool-6.5/sff-common.h 2023-06-14 20:46:26.000000000 +0200
+++ new/ethtool-6.6/sff-common.h 2023-11-23 18:22:33.000000000 +0100
@@ -64,7 +64,10 @@
#define SFF8024_ID_QSFP_DD 0x18
#define SFF8024_ID_OSFP 0x19
#define SFF8024_ID_DSFP 0x1B
-#define SFF8024_ID_LAST SFF8024_ID_DSFP
+#define SFF8024_ID_QSFP_PLUS_CMIS 0x1E
+#define SFF8024_ID_SFP_DD_CMIS 0x1F
+#define SFF8024_ID_SFP_PLUS_CMIS 0x20
+#define SFF8024_ID_LAST SFF8024_ID_SFP_PLUS_CMIS
#define SFF8024_ID_UNALLOCATED_LAST 0x7F
#define SFF8024_ID_VENDOR_START 0x80
#define SFF8024_ID_VENDOR_LAST 0xFF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/uapi/linux/const.h new/ethtool-6.6/uapi/linux/const.h
--- old/ethtool-6.5/uapi/linux/const.h 1970-01-01 01:00:00.000000000 +0100
+++ new/ethtool-6.6/uapi/linux/const.h 2023-09-12 23:00:14.000000000 +0200
@@ -0,0 +1,36 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/* const.h: Macros for dealing with constants. */
+
+#ifndef _LINUX_CONST_H
+#define _LINUX_CONST_H
+
+/* Some constant macros are used in both assembler and
+ * C code. Therefore we cannot annotate them always with
+ * 'UL' and other type specifiers unilaterally. We
+ * use the following macros to deal with this.
+ *
+ * Similarly, _AT() will cast an expression with a type in C, but
+ * leave it unchanged in asm.
+ */
+
+#ifdef __ASSEMBLY__
+#define _AC(X,Y) X
+#define _AT(T,X) X
+#else
+#define __AC(X,Y) (X##Y)
+#define _AC(X,Y) __AC(X,Y)
+#define _AT(T,X) ((T)(X))
+#endif
+
+#define _UL(x) (_AC(x, UL))
+#define _ULL(x) (_AC(x, ULL))
+
+#define _BITUL(x) (_UL(1) << (x))
+#define _BITULL(x) (_ULL(1) << (x))
+
+#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (__typeof__(x))(a) - 1)
+#define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask))
+
+#define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
+
+#endif /* _LINUX_CONST_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/uapi/linux/if_addr.h new/ethtool-6.6/uapi/linux/if_addr.h
--- old/ethtool-6.5/uapi/linux/if_addr.h 1970-01-01 01:00:00.000000000 +0100
+++ new/ethtool-6.6/uapi/linux/if_addr.h 2023-09-12 23:00:14.000000000 +0200
@@ -0,0 +1,77 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+#ifndef __LINUX_IF_ADDR_H
+#define __LINUX_IF_ADDR_H
+
+#include <linux/types.h>
+#include <linux/netlink.h>
+
+struct ifaddrmsg {
+ __u8 ifa_family;
+ __u8 ifa_prefixlen; /* The prefix length */
+ __u8 ifa_flags; /* Flags */
+ __u8 ifa_scope; /* Address scope */
+ __u32 ifa_index; /* Link index */
+};
+
+/*
+ * Important comment:
+ * IFA_ADDRESS is prefix address, rather than local interface address.
+ * It makes no difference for normally configured broadcast interfaces,
+ * but for point-to-point IFA_ADDRESS is DESTINATION address,
+ * local address is supplied in IFA_LOCAL attribute.
+ *
+ * IFA_FLAGS is a u32 attribute that extends the u8 field ifa_flags.
+ * If present, the value from struct ifaddrmsg will be ignored.
+ */
+enum {
+ IFA_UNSPEC,
+ IFA_ADDRESS,
+ IFA_LOCAL,
+ IFA_LABEL,
+ IFA_BROADCAST,
+ IFA_ANYCAST,
+ IFA_CACHEINFO,
+ IFA_MULTICAST,
+ IFA_FLAGS,
+ IFA_RT_PRIORITY, /* u32, priority/metric for prefix route */
+ IFA_TARGET_NETNSID,
+ IFA_PROTO, /* u8, address protocol */
+ __IFA_MAX,
+};
+
+#define IFA_MAX (__IFA_MAX - 1)
+
+/* ifa_flags */
+#define IFA_F_SECONDARY 0x01
+#define IFA_F_TEMPORARY IFA_F_SECONDARY
+
+#define IFA_F_NODAD 0x02
+#define IFA_F_OPTIMISTIC 0x04
+#define IFA_F_DADFAILED 0x08
+#define IFA_F_HOMEADDRESS 0x10
+#define IFA_F_DEPRECATED 0x20
+#define IFA_F_TENTATIVE 0x40
+#define IFA_F_PERMANENT 0x80
+#define IFA_F_MANAGETEMPADDR 0x100
+#define IFA_F_NOPREFIXROUTE 0x200
+#define IFA_F_MCAUTOJOIN 0x400
+#define IFA_F_STABLE_PRIVACY 0x800
+
+struct ifa_cacheinfo {
+ __u32 ifa_prefered;
+ __u32 ifa_valid;
+ __u32 cstamp; /* created timestamp, hundredths of seconds */
+ __u32 tstamp; /* updated timestamp, hundredths of seconds */
+};
+
+/* backwards compatibility for userspace */
+#define IFA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifaddrmsg))))
+#define IFA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifaddrmsg))
+
+/* ifa_proto */
+#define IFAPROT_UNSPEC 0
+#define IFAPROT_KERNEL_LO 1 /* loopback */
+#define IFAPROT_KERNEL_RA 2 /* set by kernel from router announcement */
+#define IFAPROT_KERNEL_LL 3 /* link-local set by kernel */
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/uapi/linux/if_ether.h new/ethtool-6.6/uapi/linux/if_ether.h
--- old/ethtool-6.5/uapi/linux/if_ether.h 1970-01-01 01:00:00.000000000 +0100
+++ new/ethtool-6.6/uapi/linux/if_ether.h 2023-09-12 23:00:14.000000000 +0200
@@ -0,0 +1,181 @@
+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
+/*
+ * INET An implementation of the TCP/IP protocol suite for the LINUX
+ * operating system. INET is implemented using the BSD Socket
+ * interface as the means of communication with the user level.
+ *
+ * Global definitions for the Ethernet IEEE 802.3 interface.
+ *
+ * Version: @(#)if_ether.h 1.0.1a 02/08/94
+ *
+ * Author: Fred N. van Kempen, <waltje(a)uWalt.NL.Mugnet.ORG>
+ * Donald Becker, <becker(a)super.org>
+ * Alan Cox, <alan(a)lxorguk.ukuu.org.uk>
+ * Steve Whitehouse, <gw7rrm(a)eeshack3.swan.ac.uk>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ */
+
+#ifndef _LINUX_IF_ETHER_H
+#define _LINUX_IF_ETHER_H
+
+#include <linux/types.h>
+
+/*
+ * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble
+ * and FCS/CRC (frame check sequence).
+ */
+
+#define ETH_ALEN 6 /* Octets in one ethernet addr */
+#define ETH_TLEN 2 /* Octets in ethernet type field */
+#define ETH_HLEN 14 /* Total octets in header. */
+#define ETH_ZLEN 60 /* Min. octets in frame sans FCS */
+#define ETH_DATA_LEN 1500 /* Max. octets in payload */
+#define ETH_FRAME_LEN 1514 /* Max. octets in frame sans FCS */
+#define ETH_FCS_LEN 4 /* Octets in the FCS */
+
+#define ETH_MIN_MTU 68 /* Min IPv4 MTU per RFC791 */
+#define ETH_MAX_MTU 0xFFFFU /* 65535, same as IP_MAX_MTU */
+
+/*
+ * These are the defined Ethernet Protocol ID's.
+ */
+
+#define ETH_P_LOOP 0x0060 /* Ethernet Loopback packet */
+#define ETH_P_PUP 0x0200 /* Xerox PUP packet */
+#define ETH_P_PUPAT 0x0201 /* Xerox PUP Addr Trans packet */
+#define ETH_P_TSN 0x22F0 /* TSN (IEEE 1722) packet */
+#define ETH_P_ERSPAN2 0x22EB /* ERSPAN version 2 (type III) */
+#define ETH_P_IP 0x0800 /* Internet Protocol packet */
+#define ETH_P_X25 0x0805 /* CCITT X.25 */
+#define ETH_P_ARP 0x0806 /* Address Resolution packet */
+#define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */
+#define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */
+#define ETH_P_IEEEPUPAT 0x0a01 /* Xerox IEEE802.3 PUP Addr Trans packet */
+#define ETH_P_BATMAN 0x4305 /* B.A.T.M.A.N.-Advanced packet [ NOT AN OFFICIALLY REGISTERED ID ] */
+#define ETH_P_DEC 0x6000 /* DEC Assigned proto */
+#define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */
+#define ETH_P_DNA_RC 0x6002 /* DEC DNA Remote Console */
+#define ETH_P_DNA_RT 0x6003 /* DEC DNA Routing */
+#define ETH_P_LAT 0x6004 /* DEC LAT */
+#define ETH_P_DIAG 0x6005 /* DEC Diagnostics */
+#define ETH_P_CUST 0x6006 /* DEC Customer use */
+#define ETH_P_SCA 0x6007 /* DEC Systems Comms Arch */
+#define ETH_P_TEB 0x6558 /* Trans Ether Bridging */
+#define ETH_P_RARP 0x8035 /* Reverse Addr Res packet */
+#define ETH_P_ATALK 0x809B /* Appletalk DDP */
+#define ETH_P_AARP 0x80F3 /* Appletalk AARP */
+#define ETH_P_8021Q 0x8100 /* 802.1Q VLAN Extended Header */
+#define ETH_P_ERSPAN 0x88BE /* ERSPAN type II */
+#define ETH_P_IPX 0x8137 /* IPX over DIX */
+#define ETH_P_IPV6 0x86DD /* IPv6 over bluebook */
+#define ETH_P_PAUSE 0x8808 /* IEEE Pause frames. See 802.3 31B */
+#define ETH_P_SLOW 0x8809 /* Slow Protocol. See 802.3ad 43B */
+#define ETH_P_WCCP 0x883E /* Web-cache coordination protocol
+ * defined in draft-wilson-wrec-wccp-v2-00.txt */
+#define ETH_P_MPLS_UC 0x8847 /* MPLS Unicast traffic */
+#define ETH_P_MPLS_MC 0x8848 /* MPLS Multicast traffic */
+#define ETH_P_ATMMPOA 0x884c /* MultiProtocol Over ATM */
+#define ETH_P_PPP_DISC 0x8863 /* PPPoE discovery messages */
+#define ETH_P_PPP_SES 0x8864 /* PPPoE session messages */
+#define ETH_P_LINK_CTL 0x886c /* HPNA, wlan link local tunnel */
+#define ETH_P_ATMFATE 0x8884 /* Frame-based ATM Transport
+ * over Ethernet
+ */
+#define ETH_P_PAE 0x888E /* Port Access Entity (IEEE 802.1X) */
+#define ETH_P_PROFINET 0x8892 /* PROFINET */
+#define ETH_P_REALTEK 0x8899 /* Multiple proprietary protocols */
+#define ETH_P_AOE 0x88A2 /* ATA over Ethernet */
+#define ETH_P_ETHERCAT 0x88A4 /* EtherCAT */
+#define ETH_P_8021AD 0x88A8 /* 802.1ad Service VLAN */
+#define ETH_P_802_EX1 0x88B5 /* 802.1 Local Experimental 1. */
+#define ETH_P_PREAUTH 0x88C7 /* 802.11 Preauthentication */
+#define ETH_P_TIPC 0x88CA /* TIPC */
+#define ETH_P_LLDP 0x88CC /* Link Layer Discovery Protocol */
+#define ETH_P_MRP 0x88E3 /* Media Redundancy Protocol */
+#define ETH_P_MACSEC 0x88E5 /* 802.1ae MACsec */
+#define ETH_P_8021AH 0x88E7 /* 802.1ah Backbone Service Tag */
+#define ETH_P_MVRP 0x88F5 /* 802.1Q MVRP */
+#define ETH_P_1588 0x88F7 /* IEEE 1588 Timesync */
+#define ETH_P_NCSI 0x88F8 /* NCSI protocol */
+#define ETH_P_PRP 0x88FB /* IEC 62439-3 PRP/HSRv0 */
+#define ETH_P_CFM 0x8902 /* Connectivity Fault Management */
+#define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */
+#define ETH_P_IBOE 0x8915 /* Infiniband over Ethernet */
+#define ETH_P_TDLS 0x890D /* TDLS */
+#define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */
+#define ETH_P_80221 0x8917 /* IEEE 802.21 Media Independent Handover Protocol */
+#define ETH_P_HSR 0x892F /* IEC 62439-3 HSRv1 */
+#define ETH_P_NSH 0x894F /* Network Service Header */
+#define ETH_P_LOOPBACK 0x9000 /* Ethernet loopback packet, per IEEE 802.3 */
+#define ETH_P_QINQ1 0x9100 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
+#define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
+#define ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
+#define ETH_P_EDSA 0xDADA /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */
+#define ETH_P_DSA_8021Q 0xDADB /* Fake VLAN Header for DSA [ NOT AN OFFICIALLY REGISTERED ID ] */
+#define ETH_P_DSA_A5PSW 0xE001 /* A5PSW Tag Value [ NOT AN OFFICIALLY REGISTERED ID ] */
+#define ETH_P_IFE 0xED3E /* ForCES inter-FE LFB type */
+#define ETH_P_AF_IUCV 0xFBFB /* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */
+
+#define ETH_P_802_3_MIN 0x0600 /* If the value in the ethernet type is more than this value
+ * then the frame is Ethernet II. Else it is 802.3 */
+
+/*
+ * Non DIX types. Won't clash for 1500 types.
+ */
+
+#define ETH_P_802_3 0x0001 /* Dummy type for 802.3 frames */
+#define ETH_P_AX25 0x0002 /* Dummy protocol id for AX.25 */
+#define ETH_P_ALL 0x0003 /* Every packet (be careful!!!) */
+#define ETH_P_802_2 0x0004 /* 802.2 frames */
+#define ETH_P_SNAP 0x0005 /* Internal only */
+#define ETH_P_DDCMP 0x0006 /* DEC DDCMP: Internal only */
+#define ETH_P_WAN_PPP 0x0007 /* Dummy type for WAN PPP frames*/
+#define ETH_P_PPP_MP 0x0008 /* Dummy type for PPP MP frames */
+#define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */
+#define ETH_P_CAN 0x000C /* CAN: Controller Area Network */
+#define ETH_P_CANFD 0x000D /* CANFD: CAN flexible data rate*/
+#define ETH_P_CANXL 0x000E /* CANXL: eXtended frame Length */
+#define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/
+#define ETH_P_TR_802_2 0x0011 /* 802.2 frames */
+#define ETH_P_MOBITEX 0x0015 /* Mobitex (kaz(a)cafe.net) */
+#define ETH_P_CONTROL 0x0016 /* Card specific control frames */
+#define ETH_P_IRDA 0x0017 /* Linux-IrDA */
+#define ETH_P_ECONET 0x0018 /* Acorn Econet */
+#define ETH_P_HDLC 0x0019 /* HDLC frames */
+#define ETH_P_ARCNET 0x001A /* 1A for ArcNet :-) */
+#define ETH_P_DSA 0x001B /* Distributed Switch Arch. */
+#define ETH_P_TRAILER 0x001C /* Trailer switch tagging */
+#define ETH_P_PHONET 0x00F5 /* Nokia Phonet frames */
+#define ETH_P_IEEE802154 0x00F6 /* IEEE802.15.4 frame */
+#define ETH_P_CAIF 0x00F7 /* ST-Ericsson CAIF protocol */
+#define ETH_P_XDSA 0x00F8 /* Multiplexed DSA protocol */
+#define ETH_P_MAP 0x00F9 /* Qualcomm multiplexing and
+ * aggregation protocol
+ */
+#define ETH_P_MCTP 0x00FA /* Management component transport
+ * protocol packets
+ */
+
+/*
+ * This is an Ethernet frame header.
+ */
+
+/* allow libcs like musl to deactivate this, glibc does not implement this. */
+#ifndef __UAPI_DEF_ETHHDR
+#define __UAPI_DEF_ETHHDR 1
+#endif
+
+#if __UAPI_DEF_ETHHDR
+struct ethhdr {
+ unsigned char h_dest[ETH_ALEN]; /* destination eth addr */
+ unsigned char h_source[ETH_ALEN]; /* source ether addr */
+ __be16 h_proto; /* packet type ID field */
+} __attribute__((packed));
+#endif
+
+
+#endif /* _LINUX_IF_ETHER_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/uapi/linux/if_link.h new/ethtool-6.6/uapi/linux/if_link.h
--- old/ethtool-6.5/uapi/linux/if_link.h 2023-09-12 22:20:52.000000000 +0200
+++ new/ethtool-6.6/uapi/linux/if_link.h 2023-09-12 23:00:58.000000000 +0200
@@ -568,6 +568,7 @@
IFLA_BRPORT_MCAST_N_GROUPS,
IFLA_BRPORT_MCAST_MAX_GROUPS,
IFLA_BRPORT_NEIGH_VLAN_SUPPRESS,
+ IFLA_BRPORT_BACKUP_NHID,
__IFLA_BRPORT_MAX
};
#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/uapi/linux/libc-compat.h new/ethtool-6.6/uapi/linux/libc-compat.h
--- old/ethtool-6.5/uapi/linux/libc-compat.h 1970-01-01 01:00:00.000000000 +0100
+++ new/ethtool-6.6/uapi/linux/libc-compat.h 2023-09-12 23:00:14.000000000 +0200
@@ -0,0 +1,267 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
+ * Compatibility interface for userspace libc header coordination:
+ *
+ * Define compatibility macros that are used to control the inclusion or
+ * exclusion of UAPI structures and definitions in coordination with another
+ * userspace C library.
+ *
+ * This header is intended to solve the problem of UAPI definitions that
+ * conflict with userspace definitions. If a UAPI header has such conflicting
+ * definitions then the solution is as follows:
+ *
+ * * Synchronize the UAPI header and the libc headers so either one can be
+ * used and such that the ABI is preserved. If this is not possible then
+ * no simple compatibility interface exists (you need to write translating
+ * wrappers and rename things) and you can't use this interface.
+ *
+ * Then follow this process:
+ *
+ * (a) Include libc-compat.h in the UAPI header.
+ * e.g. #include <linux/libc-compat.h>
+ * This include must be as early as possible.
+ *
+ * (b) In libc-compat.h add enough code to detect that the comflicting
+ * userspace libc header has been included first.
+ *
+ * (c) If the userspace libc header has been included first define a set of
+ * guard macros of the form __UAPI_DEF_FOO and set their values to 1, else
+ * set their values to 0.
+ *
+ * (d) Back in the UAPI header with the conflicting definitions, guard the
+ * definitions with:
+ * #if __UAPI_DEF_FOO
+ * ...
+ * #endif
+ *
+ * This fixes the situation where the linux headers are included *after* the
+ * libc headers. To fix the problem with the inclusion in the other order the
+ * userspace libc headers must be fixed like this:
+ *
+ * * For all definitions that conflict with kernel definitions wrap those
+ * defines in the following:
+ * #if !__UAPI_DEF_FOO
+ * ...
+ * #endif
+ *
+ * This prevents the redefinition of a construct already defined by the kernel.
+ */
+#ifndef _LIBC_COMPAT_H
+#define _LIBC_COMPAT_H
+
+/* We have included glibc headers... */
+#if defined(__GLIBC__)
+
+/* Coordinate with glibc net/if.h header. */
+#if defined(_NET_IF_H) && defined(__USE_MISC)
+
+/* GLIBC headers included first so don't define anything
+ * that would already be defined. */
+
+#define __UAPI_DEF_IF_IFCONF 0
+#define __UAPI_DEF_IF_IFMAP 0
+#define __UAPI_DEF_IF_IFNAMSIZ 0
+#define __UAPI_DEF_IF_IFREQ 0
+/* Everything up to IFF_DYNAMIC, matches net/if.h until glibc 2.23 */
+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS 0
+/* For the future if glibc adds IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO */
+#ifndef __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO
+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 1
+#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO */
+
+#else /* _NET_IF_H */
+
+/* Linux headers included first, and we must define everything
+ * we need. The expectation is that glibc will check the
+ * __UAPI_DEF_* defines and adjust appropriately. */
+
+#define __UAPI_DEF_IF_IFCONF 1
+#define __UAPI_DEF_IF_IFMAP 1
+#define __UAPI_DEF_IF_IFNAMSIZ 1
+#define __UAPI_DEF_IF_IFREQ 1
+/* Everything up to IFF_DYNAMIC, matches net/if.h until glibc 2.23 */
+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS 1
+/* For the future if glibc adds IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO */
+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 1
+
+#endif /* _NET_IF_H */
+
+/* Coordinate with glibc netinet/in.h header. */
+#if defined(_NETINET_IN_H)
+
+/* GLIBC headers included first so don't define anything
+ * that would already be defined. */
+#define __UAPI_DEF_IN_ADDR 0
+#define __UAPI_DEF_IN_IPPROTO 0
+#define __UAPI_DEF_IN_PKTINFO 0
+#define __UAPI_DEF_IP_MREQ 0
+#define __UAPI_DEF_SOCKADDR_IN 0
+#define __UAPI_DEF_IN_CLASS 0
+
+#define __UAPI_DEF_IN6_ADDR 0
+/* The exception is the in6_addr macros which must be defined
+ * if the glibc code didn't define them. This guard matches
+ * the guard in glibc/inet/netinet/in.h which defines the
+ * additional in6_addr macros e.g. s6_addr16, and s6_addr32. */
+#if defined(__USE_MISC) || defined (__USE_GNU)
+#define __UAPI_DEF_IN6_ADDR_ALT 0
+#else
+#define __UAPI_DEF_IN6_ADDR_ALT 1
+#endif
+#define __UAPI_DEF_SOCKADDR_IN6 0
+#define __UAPI_DEF_IPV6_MREQ 0
+#define __UAPI_DEF_IPPROTO_V6 0
+#define __UAPI_DEF_IPV6_OPTIONS 0
+#define __UAPI_DEF_IN6_PKTINFO 0
+#define __UAPI_DEF_IP6_MTUINFO 0
+
+#else
+
+/* Linux headers included first, and we must define everything
+ * we need. The expectation is that glibc will check the
+ * __UAPI_DEF_* defines and adjust appropriately. */
+#define __UAPI_DEF_IN_ADDR 1
+#define __UAPI_DEF_IN_IPPROTO 1
+#define __UAPI_DEF_IN_PKTINFO 1
+#define __UAPI_DEF_IP_MREQ 1
+#define __UAPI_DEF_SOCKADDR_IN 1
+#define __UAPI_DEF_IN_CLASS 1
+
+#define __UAPI_DEF_IN6_ADDR 1
+/* We unconditionally define the in6_addr macros and glibc must
+ * coordinate. */
+#define __UAPI_DEF_IN6_ADDR_ALT 1
+#define __UAPI_DEF_SOCKADDR_IN6 1
+#define __UAPI_DEF_IPV6_MREQ 1
+#define __UAPI_DEF_IPPROTO_V6 1
+#define __UAPI_DEF_IPV6_OPTIONS 1
+#define __UAPI_DEF_IN6_PKTINFO 1
+#define __UAPI_DEF_IP6_MTUINFO 1
+
+#endif /* _NETINET_IN_H */
+
+/* Coordinate with glibc netipx/ipx.h header. */
+#if defined(__NETIPX_IPX_H)
+
+#define __UAPI_DEF_SOCKADDR_IPX 0
+#define __UAPI_DEF_IPX_ROUTE_DEFINITION 0
+#define __UAPI_DEF_IPX_INTERFACE_DEFINITION 0
+#define __UAPI_DEF_IPX_CONFIG_DATA 0
+#define __UAPI_DEF_IPX_ROUTE_DEF 0
+
+#else /* defined(__NETIPX_IPX_H) */
+
+#define __UAPI_DEF_SOCKADDR_IPX 1
+#define __UAPI_DEF_IPX_ROUTE_DEFINITION 1
+#define __UAPI_DEF_IPX_INTERFACE_DEFINITION 1
+#define __UAPI_DEF_IPX_CONFIG_DATA 1
+#define __UAPI_DEF_IPX_ROUTE_DEF 1
+
+#endif /* defined(__NETIPX_IPX_H) */
+
+/* Definitions for xattr.h */
+#if defined(_SYS_XATTR_H)
+#define __UAPI_DEF_XATTR 0
+#else
+#define __UAPI_DEF_XATTR 1
+#endif
+
+/* If we did not see any headers from any supported C libraries,
+ * or we are being included in the kernel, then define everything
+ * that we need. Check for previous __UAPI_* definitions to give
+ * unsupported C libraries a way to opt out of any kernel definition. */
+#else /* !defined(__GLIBC__) */
+
+/* Definitions for if.h */
+#ifndef __UAPI_DEF_IF_IFCONF
+#define __UAPI_DEF_IF_IFCONF 1
+#endif
+#ifndef __UAPI_DEF_IF_IFMAP
+#define __UAPI_DEF_IF_IFMAP 1
+#endif
+#ifndef __UAPI_DEF_IF_IFNAMSIZ
+#define __UAPI_DEF_IF_IFNAMSIZ 1
+#endif
+#ifndef __UAPI_DEF_IF_IFREQ
+#define __UAPI_DEF_IF_IFREQ 1
+#endif
+/* Everything up to IFF_DYNAMIC, matches net/if.h until glibc 2.23 */
+#ifndef __UAPI_DEF_IF_NET_DEVICE_FLAGS
+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS 1
+#endif
+/* For the future if glibc adds IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO */
+#ifndef __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO
+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 1
+#endif
+
+/* Definitions for in.h */
+#ifndef __UAPI_DEF_IN_ADDR
+#define __UAPI_DEF_IN_ADDR 1
+#endif
+#ifndef __UAPI_DEF_IN_IPPROTO
+#define __UAPI_DEF_IN_IPPROTO 1
+#endif
+#ifndef __UAPI_DEF_IN_PKTINFO
+#define __UAPI_DEF_IN_PKTINFO 1
+#endif
+#ifndef __UAPI_DEF_IP_MREQ
+#define __UAPI_DEF_IP_MREQ 1
+#endif
+#ifndef __UAPI_DEF_SOCKADDR_IN
+#define __UAPI_DEF_SOCKADDR_IN 1
+#endif
+#ifndef __UAPI_DEF_IN_CLASS
+#define __UAPI_DEF_IN_CLASS 1
+#endif
+
+/* Definitions for in6.h */
+#ifndef __UAPI_DEF_IN6_ADDR
+#define __UAPI_DEF_IN6_ADDR 1
+#endif
+#ifndef __UAPI_DEF_IN6_ADDR_ALT
+#define __UAPI_DEF_IN6_ADDR_ALT 1
+#endif
+#ifndef __UAPI_DEF_SOCKADDR_IN6
+#define __UAPI_DEF_SOCKADDR_IN6 1
+#endif
+#ifndef __UAPI_DEF_IPV6_MREQ
+#define __UAPI_DEF_IPV6_MREQ 1
+#endif
+#ifndef __UAPI_DEF_IPPROTO_V6
+#define __UAPI_DEF_IPPROTO_V6 1
+#endif
+#ifndef __UAPI_DEF_IPV6_OPTIONS
+#define __UAPI_DEF_IPV6_OPTIONS 1
+#endif
+#ifndef __UAPI_DEF_IN6_PKTINFO
+#define __UAPI_DEF_IN6_PKTINFO 1
+#endif
+#ifndef __UAPI_DEF_IP6_MTUINFO
+#define __UAPI_DEF_IP6_MTUINFO 1
+#endif
+
+/* Definitions for ipx.h */
+#ifndef __UAPI_DEF_SOCKADDR_IPX
+#define __UAPI_DEF_SOCKADDR_IPX 1
+#endif
+#ifndef __UAPI_DEF_IPX_ROUTE_DEFINITION
+#define __UAPI_DEF_IPX_ROUTE_DEFINITION 1
+#endif
+#ifndef __UAPI_DEF_IPX_INTERFACE_DEFINITION
+#define __UAPI_DEF_IPX_INTERFACE_DEFINITION 1
+#endif
+#ifndef __UAPI_DEF_IPX_CONFIG_DATA
+#define __UAPI_DEF_IPX_CONFIG_DATA 1
+#endif
+#ifndef __UAPI_DEF_IPX_ROUTE_DEF
+#define __UAPI_DEF_IPX_ROUTE_DEF 1
+#endif
+
+/* Definitions for xattr.h */
+#ifndef __UAPI_DEF_XATTR
+#define __UAPI_DEF_XATTR 1
+#endif
+
+#endif /* __GLIBC__ */
+
+#endif /* _LIBC_COMPAT_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/uapi/linux/neighbour.h new/ethtool-6.6/uapi/linux/neighbour.h
--- old/ethtool-6.5/uapi/linux/neighbour.h 1970-01-01 01:00:00.000000000 +0100
+++ new/ethtool-6.6/uapi/linux/neighbour.h 2023-09-12 23:00:14.000000000 +0200
@@ -0,0 +1,224 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+#ifndef __LINUX_NEIGHBOUR_H
+#define __LINUX_NEIGHBOUR_H
+
+#include <linux/types.h>
+#include <linux/netlink.h>
+
+struct ndmsg {
+ __u8 ndm_family;
+ __u8 ndm_pad1;
+ __u16 ndm_pad2;
+ __s32 ndm_ifindex;
+ __u16 ndm_state;
+ __u8 ndm_flags;
+ __u8 ndm_type;
+};
+
+enum {
+ NDA_UNSPEC,
+ NDA_DST,
+ NDA_LLADDR,
+ NDA_CACHEINFO,
+ NDA_PROBES,
+ NDA_VLAN,
+ NDA_PORT,
+ NDA_VNI,
+ NDA_IFINDEX,
+ NDA_MASTER,
+ NDA_LINK_NETNSID,
+ NDA_SRC_VNI,
+ NDA_PROTOCOL, /* Originator of entry */
+ NDA_NH_ID,
+ NDA_FDB_EXT_ATTRS,
+ NDA_FLAGS_EXT,
+ NDA_NDM_STATE_MASK,
+ NDA_NDM_FLAGS_MASK,
+ __NDA_MAX
+};
+
+#define NDA_MAX (__NDA_MAX - 1)
+
+/*
+ * Neighbor Cache Entry Flags
+ */
+
+#define NTF_USE (1 << 0)
+#define NTF_SELF (1 << 1)
+#define NTF_MASTER (1 << 2)
+#define NTF_PROXY (1 << 3) /* == ATF_PUBL */
+#define NTF_EXT_LEARNED (1 << 4)
+#define NTF_OFFLOADED (1 << 5)
+#define NTF_STICKY (1 << 6)
+#define NTF_ROUTER (1 << 7)
+/* Extended flags under NDA_FLAGS_EXT: */
+#define NTF_EXT_MANAGED (1 << 0)
+#define NTF_EXT_LOCKED (1 << 1)
+
+/*
+ * Neighbor Cache Entry States.
+ */
+
+#define NUD_INCOMPLETE 0x01
+#define NUD_REACHABLE 0x02
+#define NUD_STALE 0x04
+#define NUD_DELAY 0x08
+#define NUD_PROBE 0x10
+#define NUD_FAILED 0x20
+
+/* Dummy states */
+#define NUD_NOARP 0x40
+#define NUD_PERMANENT 0x80
+#define NUD_NONE 0x00
+
+/* NUD_NOARP & NUD_PERMANENT are pseudostates, they never change and make no
+ * address resolution or NUD.
+ *
+ * NUD_PERMANENT also cannot be deleted by garbage collectors. This holds true
+ * for dynamic entries with NTF_EXT_LEARNED flag as well. However, upon carrier
+ * down event, NUD_PERMANENT entries are not flushed whereas NTF_EXT_LEARNED
+ * flagged entries explicitly are (which is also consistent with the routing
+ * subsystem).
+ *
+ * When NTF_EXT_LEARNED is set for a bridge fdb entry the different cache entry
+ * states don't make sense and thus are ignored. Such entries don't age and
+ * can roam.
+ *
+ * NTF_EXT_MANAGED flagged neigbor entries are managed by the kernel on behalf
+ * of a user space control plane, and automatically refreshed so that (if
+ * possible) they remain in NUD_REACHABLE state.
+ *
+ * NTF_EXT_LOCKED flagged bridge FDB entries are entries generated by the
+ * bridge in response to a host trying to communicate via a locked bridge port
+ * with MAB enabled. Their purpose is to notify user space that a host requires
+ * authentication.
+ */
+
+struct nda_cacheinfo {
+ __u32 ndm_confirmed;
+ __u32 ndm_used;
+ __u32 ndm_updated;
+ __u32 ndm_refcnt;
+};
+
+/*****************************************************************
+ * Neighbour tables specific messages.
+ *
+ * To retrieve the neighbour tables send RTM_GETNEIGHTBL with the
+ * NLM_F_DUMP flag set. Every neighbour table configuration is
+ * spread over multiple messages to avoid running into message
+ * size limits on systems with many interfaces. The first message
+ * in the sequence transports all not device specific data such as
+ * statistics, configuration, and the default parameter set.
+ * This message is followed by 0..n messages carrying device
+ * specific parameter sets.
+ * Although the ordering should be sufficient, NDTA_NAME can be
+ * used to identify sequences. The initial message can be identified
+ * by checking for NDTA_CONFIG. The device specific messages do
+ * not contain this TLV but have NDTPA_IFINDEX set to the
+ * corresponding interface index.
+ *
+ * To change neighbour table attributes, send RTM_SETNEIGHTBL
+ * with NDTA_NAME set. Changeable attribute include NDTA_THRESH[1-3],
+ * NDTA_GC_INTERVAL, and all TLVs in NDTA_PARMS unless marked
+ * otherwise. Device specific parameter sets can be changed by
+ * setting NDTPA_IFINDEX to the interface index of the corresponding
+ * device.
+ ****/
+
+struct ndt_stats {
+ __u64 ndts_allocs;
+ __u64 ndts_destroys;
+ __u64 ndts_hash_grows;
+ __u64 ndts_res_failed;
+ __u64 ndts_lookups;
+ __u64 ndts_hits;
+ __u64 ndts_rcv_probes_mcast;
+ __u64 ndts_rcv_probes_ucast;
+ __u64 ndts_periodic_gc_runs;
+ __u64 ndts_forced_gc_runs;
+ __u64 ndts_table_fulls;
+};
+
+enum {
+ NDTPA_UNSPEC,
+ NDTPA_IFINDEX, /* u32, unchangeable */
+ NDTPA_REFCNT, /* u32, read-only */
+ NDTPA_REACHABLE_TIME, /* u64, read-only, msecs */
+ NDTPA_BASE_REACHABLE_TIME, /* u64, msecs */
+ NDTPA_RETRANS_TIME, /* u64, msecs */
+ NDTPA_GC_STALETIME, /* u64, msecs */
+ NDTPA_DELAY_PROBE_TIME, /* u64, msecs */
+ NDTPA_QUEUE_LEN, /* u32 */
+ NDTPA_APP_PROBES, /* u32 */
+ NDTPA_UCAST_PROBES, /* u32 */
+ NDTPA_MCAST_PROBES, /* u32 */
+ NDTPA_ANYCAST_DELAY, /* u64, msecs */
+ NDTPA_PROXY_DELAY, /* u64, msecs */
+ NDTPA_PROXY_QLEN, /* u32 */
+ NDTPA_LOCKTIME, /* u64, msecs */
+ NDTPA_QUEUE_LENBYTES, /* u32 */
+ NDTPA_MCAST_REPROBES, /* u32 */
+ NDTPA_PAD,
+ NDTPA_INTERVAL_PROBE_TIME_MS, /* u64, msecs */
+ __NDTPA_MAX
+};
+#define NDTPA_MAX (__NDTPA_MAX - 1)
+
+struct ndtmsg {
+ __u8 ndtm_family;
+ __u8 ndtm_pad1;
+ __u16 ndtm_pad2;
+};
+
+struct ndt_config {
+ __u16 ndtc_key_len;
+ __u16 ndtc_entry_size;
+ __u32 ndtc_entries;
+ __u32 ndtc_last_flush; /* delta to now in msecs */
+ __u32 ndtc_last_rand; /* delta to now in msecs */
+ __u32 ndtc_hash_rnd;
+ __u32 ndtc_hash_mask;
+ __u32 ndtc_hash_chain_gc;
+ __u32 ndtc_proxy_qlen;
+};
+
+enum {
+ NDTA_UNSPEC,
+ NDTA_NAME, /* char *, unchangeable */
+ NDTA_THRESH1, /* u32 */
+ NDTA_THRESH2, /* u32 */
+ NDTA_THRESH3, /* u32 */
+ NDTA_CONFIG, /* struct ndt_config, read-only */
+ NDTA_PARMS, /* nested TLV NDTPA_* */
+ NDTA_STATS, /* struct ndt_stats, read-only */
+ NDTA_GC_INTERVAL, /* u64, msecs */
+ NDTA_PAD,
+ __NDTA_MAX
+};
+#define NDTA_MAX (__NDTA_MAX - 1)
+
+ /* FDB activity notification bits used in NFEA_ACTIVITY_NOTIFY:
+ * - FDB_NOTIFY_BIT - notify on activity/expire for any entry
+ * - FDB_NOTIFY_INACTIVE_BIT - mark as inactive to avoid multiple notifications
+ */
+enum {
+ FDB_NOTIFY_BIT = (1 << 0),
+ FDB_NOTIFY_INACTIVE_BIT = (1 << 1)
+};
+
+/* embedded into NDA_FDB_EXT_ATTRS:
+ * [NDA_FDB_EXT_ATTRS] = {
+ * [NFEA_ACTIVITY_NOTIFY]
+ * ...
+ * }
+ */
+enum {
+ NFEA_UNSPEC,
+ NFEA_ACTIVITY_NOTIFY,
+ NFEA_DONT_REFRESH,
+ __NFEA_MAX
+};
+#define NFEA_MAX (__NFEA_MAX - 1)
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/uapi/linux/posix_types.h new/ethtool-6.6/uapi/linux/posix_types.h
--- old/ethtool-6.5/uapi/linux/posix_types.h 1970-01-01 01:00:00.000000000 +0100
+++ new/ethtool-6.6/uapi/linux/posix_types.h 2023-09-12 23:00:14.000000000 +0200
@@ -0,0 +1,38 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+#ifndef _LINUX_POSIX_TYPES_H
+#define _LINUX_POSIX_TYPES_H
+
+#include <linux/stddef.h>
+
+/*
+ * This allows for 1024 file descriptors: if NR_OPEN is ever grown
+ * beyond that you'll have to change this too. But 1024 fd's seem to be
+ * enough even for such "real" unices like OSF/1, so hopefully this is
+ * one limit that doesn't have to be changed [again].
+ *
+ * Note that POSIX wants the FD_CLEAR(fd,fdsetp) defines to be in
+ * <sys/time.h> (and thus <linux/time.h>) - but this is a more logical
+ * place for them. Solved by having dummy defines in <sys/time.h>.
+ */
+
+/*
+ * This macro may have been defined in <gnu/types.h>. But we always
+ * use the one here.
+ */
+#undef __FD_SETSIZE
+#define __FD_SETSIZE 1024
+
+typedef struct {
+ unsigned long fds_bits[__FD_SETSIZE / (8 * sizeof(long))];
+} __kernel_fd_set;
+
+/* Type of a signal handler. */
+typedef void (*__kernel_sighandler_t)(int);
+
+/* Type of a SYSV IPC key. */
+typedef int __kernel_key_t;
+typedef int __kernel_mqd_t;
+
+#include <asm/posix_types.h>
+
+#endif /* _LINUX_POSIX_TYPES_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/uapi/linux/socket.h new/ethtool-6.6/uapi/linux/socket.h
--- old/ethtool-6.5/uapi/linux/socket.h 1970-01-01 01:00:00.000000000 +0100
+++ new/ethtool-6.6/uapi/linux/socket.h 2023-09-12 23:00:14.000000000 +0200
@@ -0,0 +1,38 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+#ifndef _LINUX_SOCKET_H
+#define _LINUX_SOCKET_H
+
+/*
+ * Desired design of maximum size and alignment (see RFC2553)
+ */
+#define _K_SS_MAXSIZE 128 /* Implementation specific max size */
+
+typedef unsigned short __kernel_sa_family_t;
+
+/*
+ * The definition uses anonymous union and struct in order to control the
+ * default alignment.
+ */
+struct __kernel_sockaddr_storage {
+ union {
+ struct {
+ __kernel_sa_family_t ss_family; /* address family */
+ /* Following field(s) are implementation specific */
+ char __data[_K_SS_MAXSIZE - sizeof(unsigned short)];
+ /* space to achieve desired size, */
+ /* _SS_MAXSIZE value minus size of ss_family */
+ };
+ void *__align; /* implementation specific desired alignment */
+ };
+};
+
+#define SOCK_SNDBUF_LOCK 1
+#define SOCK_RCVBUF_LOCK 2
+
+#define SOCK_BUF_LOCK_MASK (SOCK_SNDBUF_LOCK | SOCK_RCVBUF_LOCK)
+
+#define SOCK_TXREHASH_DEFAULT 255
+#define SOCK_TXREHASH_DISABLED 0
+#define SOCK_TXREHASH_ENABLED 1
+
+#endif /* _LINUX_SOCKET_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/uapi/linux/stddef.h new/ethtool-6.6/uapi/linux/stddef.h
--- old/ethtool-6.5/uapi/linux/stddef.h 1970-01-01 01:00:00.000000000 +0100
+++ new/ethtool-6.6/uapi/linux/stddef.h 2023-09-12 23:00:58.000000000 +0200
@@ -0,0 +1,51 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+#ifndef _LINUX_STDDEF_H
+#define _LINUX_STDDEF_H
+
+
+
+#ifndef __always_inline
+#define __always_inline __inline__
+#endif
+
+/**
+ * __struct_group() - Create a mirrored named and anonyomous struct
+ *
+ * @TAG: The tag name for the named sub-struct (usually empty)
+ * @NAME: The identifier name of the mirrored sub-struct
+ * @ATTRS: Any struct attributes (usually empty)
+ * @MEMBERS: The member declarations for the mirrored structs
+ *
+ * Used to create an anonymous union of two structs with identical layout
+ * and size: one anonymous and one named. The former's members can be used
+ * normally without sub-struct naming, and the latter can be used to
+ * reason about the start, end, and size of the group of struct members.
+ * The named struct can also be explicitly tagged for layer reuse, as well
+ * as both having struct attributes appended.
+ */
+#define __struct_group(TAG, NAME, ATTRS, MEMBERS...) \
+ union { \
+ struct { MEMBERS } ATTRS; \
+ struct TAG { MEMBERS } ATTRS NAME; \
+ }
+
+/**
+ * __DECLARE_FLEX_ARRAY() - Declare a flexible array usable in a union
+ *
+ * @TYPE: The type of each flexible array element
+ * @NAME: The name of the flexible array member
+ *
+ * In order to have a flexible array member in a union or alone in a
+ * struct, it needs to be wrapped in an anonymous struct with at least 1
+ * named member, but that member can be empty.
+ */
+#define __DECLARE_FLEX_ARRAY(TYPE, NAME) \
+ struct { \
+ struct { } __empty_ ## NAME; \
+ TYPE NAME[]; \
+ }
+#endif
+
+#ifndef __counted_by
+#define __counted_by(m)
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.5/uapi/linux/types.h new/ethtool-6.6/uapi/linux/types.h
--- old/ethtool-6.5/uapi/linux/types.h 1970-01-01 01:00:00.000000000 +0100
+++ new/ethtool-6.6/uapi/linux/types.h 2023-09-12 23:00:14.000000000 +0200
@@ -0,0 +1,57 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+#ifndef _LINUX_TYPES_H
+#define _LINUX_TYPES_H
+
+#include <asm/types.h>
+
+#ifndef __ASSEMBLY__
+
+#include <linux/posix_types.h>
+
+#ifdef __SIZEOF_INT128__
+typedef __signed__ __int128 __s128 __attribute__((aligned(16)));
+typedef unsigned __int128 __u128 __attribute__((aligned(16)));
+#endif
+
+/*
+ * Below are truly Linux-specific types that should never collide with
+ * any application/library that wants linux/types.h.
+ */
+
+/* sparse defines __CHECKER__; see Documentation/dev-tools/sparse.rst */
+#ifdef __CHECKER__
+#define __bitwise __attribute__((bitwise))
+#else
+#define __bitwise
+#endif
+
+/* The kernel doesn't use this legacy form, but user space does */
+#define __bitwise__ __bitwise
+
+typedef __u16 __bitwise __le16;
+typedef __u16 __bitwise __be16;
+typedef __u32 __bitwise __le32;
+typedef __u32 __bitwise __be32;
+typedef __u64 __bitwise __le64;
+typedef __u64 __bitwise __be64;
+
+typedef __u16 __bitwise __sum16;
+typedef __u32 __bitwise __wsum;
+
+/*
+ * aligned_u64 should be used in defining kernel<->userspace ABIs to avoid
+ * common 32/64-bit compat problems.
+ * 64-bit values align to 4-byte boundaries on x86_32 (and possibly other
+ * architectures) and to 8-byte boundaries on 64-bit architectures. The new
+ * aligned_64 type enforces 8-byte alignment so that structs containing
+ * aligned_64 values have the same alignment on 32-bit and 64-bit architectures.
+ * No conversions are necessary between 32-bit user-space and a 64-bit kernel.
+ */
+#define __aligned_u64 __u64 __attribute__((aligned(8)))
+#define __aligned_be64 __be64 __attribute__((aligned(8)))
+#define __aligned_le64 __le64 __attribute__((aligned(8)))
+
+typedef unsigned __bitwise __poll_t;
+
+#endif /* __ASSEMBLY__ */
+#endif /* _LINUX_TYPES_H */
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-referencing for openSUSE:Factory checked in at 2023-12-01 21:24:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-referencing (Old)
and /work/SRC/openSUSE:Factory/.python-referencing.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-referencing"
Fri Dec 1 21:24:51 2023 rev:18 rq:1130038 version:0.31.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-referencing/python-referencing.changes 2023-11-17 20:49:22.564781945 +0100
+++ /work/SRC/openSUSE:Factory/.python-referencing.new.25432/python-referencing.changes 2023-12-01 21:25:03.117180983 +0100
@@ -1,0 +2,10 @@
+Thu Nov 30 09:10:06 UTC 2023 - kastl(a)b1-systems.de
+
+- Update to version 0.31.1:
+ * Do more silly things to pepper over type checking nonsense.
+ * Minor noxfile tweaking.
+ * Add the explicit Tidelift link.
+ * Complain about spurious type: ignores.
+ * [pre-commit.ci] pre-commit autoupdate
+
+-------------------------------------------------------------------
Old:
----
referencing-0.31.0.tar.gz
New:
----
referencing-0.31.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-referencing.spec ++++++
--- /var/tmp/diff_new_pack.sw9z4C/_old 2023-12-01 21:25:03.701202432 +0100
+++ /var/tmp/diff_new_pack.sw9z4C/_new 2023-12-01 21:25:03.701202432 +0100
@@ -26,7 +26,7 @@
%endif
%{?sle15_python_module_pythons}
Name: python-referencing%{psuffix}
-Version: 0.31.0
+Version: 0.31.1
Release: 0
Summary: JSON Referencing + Python
License: MIT
++++++ _service ++++++
--- /var/tmp/diff_new_pack.sw9z4C/_old 2023-12-01 21:25:03.737203754 +0100
+++ /var/tmp/diff_new_pack.sw9z4C/_new 2023-12-01 21:25:03.741203901 +0100
@@ -2,7 +2,7 @@
<service name="tar_scm" mode="manual">
<param name="url">https://github.com/python-jsonschema/referencing</param>
<param name="scm">git</param>
- <param name="revision">v0.31.0</param>
+ <param name="revision">v0.31.1</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
<param name="versionrewrite-pattern">v(.*)</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.sw9z4C/_old 2023-12-01 21:25:03.761204636 +0100
+++ /var/tmp/diff_new_pack.sw9z4C/_new 2023-12-01 21:25:03.761204636 +0100
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/python-jsonschema/referencing</param>
- <param name="changesrevision">fdc8ab0116c82622a1ed0cd642e51237788ad1eb</param></service></servicedata>
+ <param name="changesrevision">4f7e8bc935d89644546bf900de012b4df5b9b06a</param></service></servicedata>
(No newline at EOF)
++++++ referencing-0.31.0.tar.gz -> referencing-0.31.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.git/FETCH_HEAD new/referencing-0.31.1/.git/FETCH_HEAD
--- old/referencing-0.31.0/.git/FETCH_HEAD 1970-01-01 01:00:00.000000000 +0100
+++ new/referencing-0.31.1/.git/FETCH_HEAD 2023-11-29 21:16:01.000000000 +0100
@@ -0,0 +1,5 @@
+7eeaff6d636d3a3b66a2064f722ed1d706c7fded not-for-merge branch 'dependabot/submodules/suite-306c985' of https://github.com/python-jsonschema/referencing
+7f0b8d7379f3ceeadbb9cc7de7d693cc7d44c572 not-for-merge branch 'hypothesis' of https://github.com/python-jsonschema/referencing
+4f7e8bc935d89644546bf900de012b4df5b9b06a not-for-merge branch 'main' of https://github.com/python-jsonschema/referencing
+29f587735daddcf3fde3318382227e6d1f561e6a not-for-merge branch 'retrieval' of https://github.com/python-jsonschema/referencing
+2c788931eebb3f16187e45b0d90f39c7f082e1b1 not-for-merge branch 'url' of https://github.com/python-jsonschema/referencing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.git/HEAD new/referencing-0.31.1/.git/HEAD
--- old/referencing-0.31.0/.git/HEAD 2023-11-14 19:30:44.000000000 +0100
+++ new/referencing-0.31.1/.git/HEAD 2023-11-29 21:16:01.000000000 +0100
@@ -1 +1 @@
-fdc8ab0116c82622a1ed0cd642e51237788ad1eb
+4f7e8bc935d89644546bf900de012b4df5b9b06a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.git/ORIG_HEAD new/referencing-0.31.1/.git/ORIG_HEAD
--- old/referencing-0.31.0/.git/ORIG_HEAD 2023-11-14 19:30:44.000000000 +0100
+++ new/referencing-0.31.1/.git/ORIG_HEAD 2023-11-29 21:16:01.000000000 +0100
@@ -1 +1 @@
-fdc8ab0116c82622a1ed0cd642e51237788ad1eb
+373bbd2bc42eea588d4b324932b089bcf7da7d38
Binary files old/referencing-0.31.0/.git/index and new/referencing-0.31.1/.git/index differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.git/logs/HEAD new/referencing-0.31.1/.git/logs/HEAD
--- old/referencing-0.31.0/.git/logs/HEAD 2023-11-14 19:30:44.000000000 +0100
+++ new/referencing-0.31.1/.git/logs/HEAD 2023-11-29 21:16:01.000000000 +0100
@@ -1,2 +1,4 @@
0000000000000000000000000000000000000000 fdc8ab0116c82622a1ed0cd642e51237788ad1eb Johannes Kastl <kastl(a)b1-systems.de> 1700146261 +0100 clone: from https://github.com/python-jsonschema/referencing
fdc8ab0116c82622a1ed0cd642e51237788ad1eb fdc8ab0116c82622a1ed0cd642e51237788ad1eb Johannes Kastl <kastl(a)b1-systems.de> 1700146262 +0100 checkout: moving from main to v0.31.0
+fdc8ab0116c82622a1ed0cd642e51237788ad1eb 373bbd2bc42eea588d4b324932b089bcf7da7d38 Johannes Kastl <kastl(a)b1-systems.de> 1701335405 +0100 merge v0.31.1: Merge made by the 'ort' strategy.
+373bbd2bc42eea588d4b324932b089bcf7da7d38 4f7e8bc935d89644546bf900de012b4df5b9b06a Johannes Kastl <kastl(a)b1-systems.de> 1701335406 +0100 reset: moving to v0.31.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.git/logs/refs/remotes/origin/dependabot/submodules/suite-306c985 new/referencing-0.31.1/.git/logs/refs/remotes/origin/dependabot/submodules/suite-306c985
--- old/referencing-0.31.0/.git/logs/refs/remotes/origin/dependabot/submodules/suite-306c985 1970-01-01 01:00:00.000000000 +0100
+++ new/referencing-0.31.1/.git/logs/refs/remotes/origin/dependabot/submodules/suite-306c985 2023-11-29 21:16:01.000000000 +0100
@@ -0,0 +1 @@
+0000000000000000000000000000000000000000 7eeaff6d636d3a3b66a2064f722ed1d706c7fded Johannes Kastl <kastl(a)b1-systems.de> 1701335398 +0100 fetch --filter=tree:0 --tags: storing head
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.git/logs/refs/remotes/origin/main new/referencing-0.31.1/.git/logs/refs/remotes/origin/main
--- old/referencing-0.31.0/.git/logs/refs/remotes/origin/main 1970-01-01 01:00:00.000000000 +0100
+++ new/referencing-0.31.1/.git/logs/refs/remotes/origin/main 2023-11-29 21:16:01.000000000 +0100
@@ -0,0 +1 @@
+fdc8ab0116c82622a1ed0cd642e51237788ad1eb 4f7e8bc935d89644546bf900de012b4df5b9b06a Johannes Kastl <kastl(a)b1-systems.de> 1701335398 +0100 fetch --filter=tree:0 --tags: fast-forward
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.git/logs/refs/remotes/origin/url new/referencing-0.31.1/.git/logs/refs/remotes/origin/url
--- old/referencing-0.31.0/.git/logs/refs/remotes/origin/url 1970-01-01 01:00:00.000000000 +0100
+++ new/referencing-0.31.1/.git/logs/refs/remotes/origin/url 2023-11-29 21:16:01.000000000 +0100
@@ -0,0 +1 @@
+b28bba0bdc70161850d8cb27356d4ad9a7d4efcc 2c788931eebb3f16187e45b0d90f39c7f082e1b1 Johannes Kastl <kastl(a)b1-systems.de> 1701335398 +0100 fetch --filter=tree:0 --tags: forced-update
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.git/modules/suite/FETCH_HEAD new/referencing-0.31.1/.git/modules/suite/FETCH_HEAD
--- old/referencing-0.31.0/.git/modules/suite/FETCH_HEAD 1970-01-01 01:00:00.000000000 +0100
+++ new/referencing-0.31.1/.git/modules/suite/FETCH_HEAD 2023-11-29 21:16:01.000000000 +0100
@@ -0,0 +1,2 @@
+63a80bcbdddcc7670e36a3f8b51bcf5295a00856 not-for-merge branch 'cross-draft' of https://github.com/python-jsonschema/referencing-suite
+306c985290edb4ebc6669acd67731c8a50459126 not-for-merge branch 'main' of https://github.com/python-jsonschema/referencing-suite
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.git/modules/suite/logs/refs/remotes/origin/main new/referencing-0.31.1/.git/modules/suite/logs/refs/remotes/origin/main
--- old/referencing-0.31.0/.git/modules/suite/logs/refs/remotes/origin/main 1970-01-01 01:00:00.000000000 +0100
+++ new/referencing-0.31.1/.git/modules/suite/logs/refs/remotes/origin/main 2023-11-29 21:16:01.000000000 +0100
@@ -0,0 +1 @@
+2561713b88a544629f85e6220b4098cd06155078 306c985290edb4ebc6669acd67731c8a50459126 Johannes Kastl <kastl(a)b1-systems.de> 1701335405 +0100 fetch --no-prune --no-prune-tags --tags --recurse-submodules-default on-demand --submodule-prefix suite/: fast-forward
Binary files old/referencing-0.31.0/.git/modules/suite/objects/0c/90ee094a7cae6e0cdbeafebc94d904e65addd6 and new/referencing-0.31.1/.git/modules/suite/objects/0c/90ee094a7cae6e0cdbeafebc94d904e65addd6 differ
Binary files old/referencing-0.31.0/.git/modules/suite/objects/20/06f9409eeada438cd2062b512ebe058c148451 and new/referencing-0.31.1/.git/modules/suite/objects/20/06f9409eeada438cd2062b512ebe058c148451 differ
Binary files old/referencing-0.31.0/.git/modules/suite/objects/20/ca7cfedd2f4616a4cfa7a09f127c68727627bb and new/referencing-0.31.1/.git/modules/suite/objects/20/ca7cfedd2f4616a4cfa7a09f127c68727627bb differ
Binary files old/referencing-0.31.0/.git/modules/suite/objects/2c/76e59a6c7cd29431bff7540c370d35b904b702 and new/referencing-0.31.1/.git/modules/suite/objects/2c/76e59a6c7cd29431bff7540c370d35b904b702 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.git/modules/suite/objects/30/6c985290edb4ebc6669acd67731c8a50459126 new/referencing-0.31.1/.git/modules/suite/objects/30/6c985290edb4ebc6669acd67731c8a50459126
--- old/referencing-0.31.0/.git/modules/suite/objects/30/6c985290edb4ebc6669acd67731c8a50459126 1970-01-01 01:00:00.000000000 +0100
+++ new/referencing-0.31.1/.git/modules/suite/objects/30/6c985290edb4ebc6669acd67731c8a50459126 2023-11-29 21:16:01.000000000 +0100
@@ -0,0 +1,4 @@
+xKj1D³Ö)²¶éFêQ!E È^-ðHf$ÃøöQÈ
²*^AQ/ÔuÍ€µ}cÈ°¶Î
+QÚYM>%Ò3EögO(ÅÕm\:žEk1íëC0&ZÈD"ÆÅ
+wëçºÁ×í]wÞÖÏøú¹¹ûw.Ü¡®/0¢A"©àQvXvþï^ŒÅ[oD?3ZŒçÖs9A»îvXóþK®¡ÚFFžÖ\Æo;
+ñq©Û<øæ`®
\ No newline at end of file
Binary files old/referencing-0.31.0/.git/modules/suite/objects/36/396eb69cae1d9c39b748b3380aa36bd3446281 and new/referencing-0.31.1/.git/modules/suite/objects/36/396eb69cae1d9c39b748b3380aa36bd3446281 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.git/modules/suite/objects/3b/1025fd2f1ff4071eb3abd477f785de5acf5fa3 new/referencing-0.31.1/.git/modules/suite/objects/3b/1025fd2f1ff4071eb3abd477f785de5acf5fa3
--- old/referencing-0.31.0/.git/modules/suite/objects/3b/1025fd2f1ff4071eb3abd477f785de5acf5fa3 1970-01-01 01:00:00.000000000 +0100
+++ new/referencing-0.31.1/.git/modules/suite/objects/3b/1025fd2f1ff4071eb3abd477f785de5acf5fa3 2023-11-29 21:16:01.000000000 +0100
@@ -0,0 +1,4 @@
+xPÛ
+@íÙ¯XÖk zðW"bµ1
mm/`ÿÞÎzÉÀ ÑáÌsæL\Èö»UB×:É 4"1î^Úl;ÝŽŒÓ
Ò\smÔÓñpÌ!1UÄ9Ô¢¬
+`,ùØDÝ€z8(ò@ž'Tö]ŽlÑX œÁâ
skkJÚÉ䧪îßÖ§ÁžÜÑOuŒŽ³U9ÊÎÅÖs×HºDÜåžÕØ¥|&£,xïJúË-4
+9õ΀YŒüOÉÿÝQNAŒ1£Ÿ
\ No newline at end of file
Binary files old/referencing-0.31.0/.git/modules/suite/objects/5a/34eeb5fce4de09445a34607526e615e884ca76 and new/referencing-0.31.1/.git/modules/suite/objects/5a/34eeb5fce4de09445a34607526e615e884ca76 differ
Binary files old/referencing-0.31.0/.git/modules/suite/objects/82/e78b2391cd00e9c984035aa55e881d1b210197 and new/referencing-0.31.1/.git/modules/suite/objects/82/e78b2391cd00e9c984035aa55e881d1b210197 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.git/modules/suite/objects/8c/0724f347da503172cbded3655a99445394cb23 new/referencing-0.31.1/.git/modules/suite/objects/8c/0724f347da503172cbded3655a99445394cb23
--- old/referencing-0.31.0/.git/modules/suite/objects/8c/0724f347da503172cbded3655a99445394cb23 1970-01-01 01:00:00.000000000 +0100
+++ new/referencing-0.31.1/.git/modules/suite/objects/8c/0724f347da503172cbded3655a99445394cb23 2023-11-29 21:16:01.000000000 +0100
@@ -0,0 +1 @@
+x¥PË0ôÌW4Õ£¶£¿bá±HPì#A
ÿînÄD*!°Ù䀶Z/'·1>³ieÌ7!ñu`Ý¢ÅÑêÏfà ¬3äÑ"
sõFJhâ²>Hu)&¶3ÈU¥ÒÁØȵ~©!>¥më"DàIlH+œo8kGóϺ¯º?}Û¿mêi{oÉŸËÙijäÄ!çrX·Æh²ê°'ìfCþžnúÇŸë7ÉþòQø[]<Ó.j£;fn³=
\ No newline at end of file
Binary files old/referencing-0.31.0/.git/modules/suite/objects/97/82382b8eaf4ac1647d6bc4598f7a7148d65e24 and new/referencing-0.31.1/.git/modules/suite/objects/97/82382b8eaf4ac1647d6bc4598f7a7148d65e24 differ
Binary files old/referencing-0.31.0/.git/modules/suite/objects/9b/c7216af913c8d0d8b835eeaec149468fea1453 and new/referencing-0.31.1/.git/modules/suite/objects/9b/c7216af913c8d0d8b835eeaec149468fea1453 differ
Binary files old/referencing-0.31.0/.git/modules/suite/objects/a3/c2fa3ff64d60f1b7fc51b1dd69dc4805b0a181 and new/referencing-0.31.1/.git/modules/suite/objects/a3/c2fa3ff64d60f1b7fc51b1dd69dc4805b0a181 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.git/modules/suite/objects/a8/3699f22ddc5b6b1f9189bcc67f17876d77e089 new/referencing-0.31.1/.git/modules/suite/objects/a8/3699f22ddc5b6b1f9189bcc67f17876d77e089
--- old/referencing-0.31.0/.git/modules/suite/objects/a8/3699f22ddc5b6b1f9189bcc67f17876d77e089 1970-01-01 01:00:00.000000000 +0100
+++ new/referencing-0.31.1/.git/modules/suite/objects/a8/3699f22ddc5b6b1f9189bcc67f17876d77e089 2023-11-29 21:16:01.000000000 +0100
@@ -0,0 +1,4 @@
+xuRK0î_a©Ç(]l€¶*l!ÛºIª6LxeÓ__ÚUÕK;ùæùUy!oºFÀq¢K¥4IjBb*Å(MM+MF9bH«y#ªè(Â1cÜ ÄÔ-Éaê: ŽXB€ìO>Óe±-4Æ °
Î
C0Rë"jŒïNªËþó
+8¢)GõþÕýä5üŸË+ÑŸKTù
+á8ÔFtŒª
ðònÑÇà}¥Q_;õñʲ:kóLãzþlŒ
|omyÞº¿q
hàÖ:cÛΣmNžŒìÇ»·Î=$pãßl{á}ÛœÜÏ=ÛÁO1YLÖõÏ(Ô|ø8·šóÙ4Ÿætn
ózYä)O滲ê|p?Ìå1^íÏH<«f®
+zÆŠúÏ}sJ¹¬èãOêÃÑbÞÉ.w~ôÆslÛÕÞ®¶¥Ÿ'Õöš§c±[×ãP..Ô9/TµY=ËðvlðõJnÜhöãz¢ÓÍÉ¥a
âçØV8îqíOÝÓB)rA)qrùàN'4xx¹K)æyA»Ëènáa×àj@ÌÃ4eUŸ¬kçâõ!ŒÁßÕÖý¹Go7riöT83=:ºíîÎ
Ý
ÁsÙ×Õ
|Ø@k¯?s׳L[& î/Ðk/ÚŒÅ:*A}VMVUmr%š1}¥Ð4ɧ}òîPÉ<ÓŽo£ïü;øë³ê5û'Z·
\ No newline at end of file
Binary files old/referencing-0.31.0/.git/modules/suite/objects/db/fb731cb8fda7e86cee2de027e4bd233b1a86d8 and new/referencing-0.31.1/.git/modules/suite/objects/db/fb731cb8fda7e86cee2de027e4bd233b1a86d8 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.git/modules/suite/refs/remotes/origin/main new/referencing-0.31.1/.git/modules/suite/refs/remotes/origin/main
--- old/referencing-0.31.0/.git/modules/suite/refs/remotes/origin/main 1970-01-01 01:00:00.000000000 +0100
+++ new/referencing-0.31.1/.git/modules/suite/refs/remotes/origin/main 2023-11-29 21:16:01.000000000 +0100
@@ -0,0 +1 @@
+306c985290edb4ebc6669acd67731c8a50459126
Binary files old/referencing-0.31.0/.git/objects/37/3bbd2bc42eea588d4b324932b089bcf7da7d38 and new/referencing-0.31.1/.git/objects/37/3bbd2bc42eea588d4b324932b089bcf7da7d38 differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-1384484bc8d3bf207758c056db2e7713b8d3ae20.idx and new/referencing-0.31.1/.git/objects/pack/pack-1384484bc8d3bf207758c056db2e7713b8d3ae20.idx differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-1384484bc8d3bf207758c056db2e7713b8d3ae20.pack and new/referencing-0.31.1/.git/objects/pack/pack-1384484bc8d3bf207758c056db2e7713b8d3ae20.pack differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-1384484bc8d3bf207758c056db2e7713b8d3ae20.rev and new/referencing-0.31.1/.git/objects/pack/pack-1384484bc8d3bf207758c056db2e7713b8d3ae20.rev differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-243fc956e45fd4b77532156ca9cc0308447eaa90.idx and new/referencing-0.31.1/.git/objects/pack/pack-243fc956e45fd4b77532156ca9cc0308447eaa90.idx differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-243fc956e45fd4b77532156ca9cc0308447eaa90.pack and new/referencing-0.31.1/.git/objects/pack/pack-243fc956e45fd4b77532156ca9cc0308447eaa90.pack differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-243fc956e45fd4b77532156ca9cc0308447eaa90.rev and new/referencing-0.31.1/.git/objects/pack/pack-243fc956e45fd4b77532156ca9cc0308447eaa90.rev differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-5c0d15a28e34f2d5c297a206a305264a37d90cbc.idx and new/referencing-0.31.1/.git/objects/pack/pack-5c0d15a28e34f2d5c297a206a305264a37d90cbc.idx differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-5c0d15a28e34f2d5c297a206a305264a37d90cbc.pack and new/referencing-0.31.1/.git/objects/pack/pack-5c0d15a28e34f2d5c297a206a305264a37d90cbc.pack differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-5c0d15a28e34f2d5c297a206a305264a37d90cbc.rev and new/referencing-0.31.1/.git/objects/pack/pack-5c0d15a28e34f2d5c297a206a305264a37d90cbc.rev differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-6f7c41b92e89f2a0e3701d92c9e1949d8890224c.idx and new/referencing-0.31.1/.git/objects/pack/pack-6f7c41b92e89f2a0e3701d92c9e1949d8890224c.idx differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-6f7c41b92e89f2a0e3701d92c9e1949d8890224c.pack and new/referencing-0.31.1/.git/objects/pack/pack-6f7c41b92e89f2a0e3701d92c9e1949d8890224c.pack differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-6f7c41b92e89f2a0e3701d92c9e1949d8890224c.rev and new/referencing-0.31.1/.git/objects/pack/pack-6f7c41b92e89f2a0e3701d92c9e1949d8890224c.rev differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-9a279906b3144fb1b4f16792967fe569c4b7028d.idx and new/referencing-0.31.1/.git/objects/pack/pack-9a279906b3144fb1b4f16792967fe569c4b7028d.idx differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-9a279906b3144fb1b4f16792967fe569c4b7028d.pack and new/referencing-0.31.1/.git/objects/pack/pack-9a279906b3144fb1b4f16792967fe569c4b7028d.pack differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-9a279906b3144fb1b4f16792967fe569c4b7028d.rev and new/referencing-0.31.1/.git/objects/pack/pack-9a279906b3144fb1b4f16792967fe569c4b7028d.rev differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-9c1c4a00765beff5ebfeb8b4fdd6a01f44d9e8b3.idx and new/referencing-0.31.1/.git/objects/pack/pack-9c1c4a00765beff5ebfeb8b4fdd6a01f44d9e8b3.idx differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-9c1c4a00765beff5ebfeb8b4fdd6a01f44d9e8b3.pack and new/referencing-0.31.1/.git/objects/pack/pack-9c1c4a00765beff5ebfeb8b4fdd6a01f44d9e8b3.pack differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-9c1c4a00765beff5ebfeb8b4fdd6a01f44d9e8b3.rev and new/referencing-0.31.1/.git/objects/pack/pack-9c1c4a00765beff5ebfeb8b4fdd6a01f44d9e8b3.rev differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-aa3f591d8e37fd1ccd7af75164db062782c8ffec.idx and new/referencing-0.31.1/.git/objects/pack/pack-aa3f591d8e37fd1ccd7af75164db062782c8ffec.idx differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-aa3f591d8e37fd1ccd7af75164db062782c8ffec.pack and new/referencing-0.31.1/.git/objects/pack/pack-aa3f591d8e37fd1ccd7af75164db062782c8ffec.pack differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-aa3f591d8e37fd1ccd7af75164db062782c8ffec.rev and new/referencing-0.31.1/.git/objects/pack/pack-aa3f591d8e37fd1ccd7af75164db062782c8ffec.rev differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-ad83a9200b2792d2a9eb9e8c95956e806a637f20.idx and new/referencing-0.31.1/.git/objects/pack/pack-ad83a9200b2792d2a9eb9e8c95956e806a637f20.idx differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-ad83a9200b2792d2a9eb9e8c95956e806a637f20.pack and new/referencing-0.31.1/.git/objects/pack/pack-ad83a9200b2792d2a9eb9e8c95956e806a637f20.pack differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-ad83a9200b2792d2a9eb9e8c95956e806a637f20.rev and new/referencing-0.31.1/.git/objects/pack/pack-ad83a9200b2792d2a9eb9e8c95956e806a637f20.rev differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-d1ccc07f69db0d34205f2d99f740e726efb72a7d.idx and new/referencing-0.31.1/.git/objects/pack/pack-d1ccc07f69db0d34205f2d99f740e726efb72a7d.idx differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-d1ccc07f69db0d34205f2d99f740e726efb72a7d.pack and new/referencing-0.31.1/.git/objects/pack/pack-d1ccc07f69db0d34205f2d99f740e726efb72a7d.pack differ
Binary files old/referencing-0.31.0/.git/objects/pack/pack-d1ccc07f69db0d34205f2d99f740e726efb72a7d.rev and new/referencing-0.31.1/.git/objects/pack/pack-d1ccc07f69db0d34205f2d99f740e726efb72a7d.rev differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.git/refs/remotes/origin/dependabot/submodules/suite-306c985 new/referencing-0.31.1/.git/refs/remotes/origin/dependabot/submodules/suite-306c985
--- old/referencing-0.31.0/.git/refs/remotes/origin/dependabot/submodules/suite-306c985 1970-01-01 01:00:00.000000000 +0100
+++ new/referencing-0.31.1/.git/refs/remotes/origin/dependabot/submodules/suite-306c985 2023-11-29 21:16:01.000000000 +0100
@@ -0,0 +1 @@
+7eeaff6d636d3a3b66a2064f722ed1d706c7fded
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.git/refs/remotes/origin/main new/referencing-0.31.1/.git/refs/remotes/origin/main
--- old/referencing-0.31.0/.git/refs/remotes/origin/main 1970-01-01 01:00:00.000000000 +0100
+++ new/referencing-0.31.1/.git/refs/remotes/origin/main 2023-11-29 21:16:01.000000000 +0100
@@ -0,0 +1 @@
+4f7e8bc935d89644546bf900de012b4df5b9b06a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.git/refs/remotes/origin/url new/referencing-0.31.1/.git/refs/remotes/origin/url
--- old/referencing-0.31.0/.git/refs/remotes/origin/url 1970-01-01 01:00:00.000000000 +0100
+++ new/referencing-0.31.1/.git/refs/remotes/origin/url 2023-11-29 21:16:01.000000000 +0100
@@ -0,0 +1 @@
+2c788931eebb3f16187e45b0d90f39c7f082e1b1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.git/refs/tags/v0.31.1 new/referencing-0.31.1/.git/refs/tags/v0.31.1
--- old/referencing-0.31.0/.git/refs/tags/v0.31.1 1970-01-01 01:00:00.000000000 +0100
+++ new/referencing-0.31.1/.git/refs/tags/v0.31.1 2023-11-29 21:16:01.000000000 +0100
@@ -0,0 +1 @@
+ee1e527c55d5c3f3b9a36e22233cf1ca155e60ec
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/.pre-commit-config.yaml new/referencing-0.31.1/.pre-commit-config.yaml
--- old/referencing-0.31.0/.pre-commit-config.yaml 2023-11-14 19:30:44.000000000 +0100
+++ new/referencing-0.31.1/.pre-commit-config.yaml 2023-11-29 21:16:01.000000000 +0100
@@ -13,7 +13,7 @@
args: [--fix, lf]
- id: trailing-whitespace
- repo: https://github.com/astral-sh/ruff-pre-commit
- rev: "v0.1.5"
+ rev: "v0.1.6"
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/docs/api.rst new/referencing-0.31.1/docs/api.rst
--- old/referencing-0.31.0/docs/api.rst 2023-11-14 19:30:44.000000000 +0100
+++ new/referencing-0.31.1/docs/api.rst 2023-11-29 21:16:01.000000000 +0100
@@ -39,6 +39,12 @@
:members:
:undoc-members:
+.. class:: referencing._core._Unset
+
+ A sentinel object used internally to satisfy the type checker.
+
+ Neither accessing nor explicitly passing this object anywhere is public API, and it is only documented here at all to get Sphinx to not complain.
+
Submodules
----------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/docs/changes.rst new/referencing-0.31.1/docs/changes.rst
--- old/referencing-0.31.0/docs/changes.rst 2023-11-14 19:30:44.000000000 +0100
+++ new/referencing-0.31.1/docs/changes.rst 2023-11-29 21:16:01.000000000 +0100
@@ -2,6 +2,11 @@
Changelog
=========
+v0.31.1
+-------
+
+* No user facing changes.
+
v0.31.0
-------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/noxfile.py new/referencing-0.31.1/noxfile.py
--- old/referencing-0.31.0/noxfile.py 2023-11-14 19:30:44.000000000 +0100
+++ new/referencing-0.31.1/noxfile.py 2023-11-29 21:16:01.000000000 +0100
@@ -9,25 +9,35 @@
DOCS = ROOT / "docs"
REFERENCING = ROOT / "referencing"
+REQUIREMENTS = dict(
+ docs=DOCS / "requirements.txt",
+ tests=ROOT / "test-requirements.txt",
+)
+REQUIREMENTS_IN = [ # this is actually ordered, as files depend on each other
+ path.parent / f"{path.stem}.in" for path in REQUIREMENTS.values()
+]
+
+SUPPORTED = ["3.8", "3.9", "3.10", "3.11", "3.12", "pypy3.10"]
+LATEST = "3.12"
nox.options.sessions = []
-def session(default=True, **kwargs): # noqa: D103
+def session(default=True, python=LATEST, **kwargs): # noqa: D103
def _session(fn):
if default:
nox.options.sessions.append(kwargs.get("name", fn.__name__))
- return nox.session(**kwargs)(fn)
+ return nox.session(python=python, **kwargs)(fn)
return _session
-@session(python=["3.8", "3.9", "3.10", "3.11", "3.12", "pypy3"])
+@session(python=SUPPORTED)
def tests(session):
"""
Run the test suite with a corresponding Python version.
"""
- session.install("-r", ROOT / "test-requirements.txt")
+ session.install("-r", REQUIREMENTS["tests"])
if session.posargs and session.posargs[0] == "coverage":
if len(session.posargs) > 1 and session.posargs[1] == "github":
@@ -109,7 +119,7 @@
"""
Build the documentation using a specific Sphinx builder.
"""
- session.install("-r", DOCS / "requirements.txt")
+ session.install("-r", REQUIREMENTS["docs"])
with TemporaryDirectory() as tmpdir_str:
tmpdir = Path(tmpdir_str)
argv = ["-n", "-T", "-W"]
@@ -147,7 +157,7 @@
Update the project's pinned requirements. Commit the result.
"""
session.install("pip-tools")
- for each in [DOCS / "requirements.in", ROOT / "test-requirements.in"]:
+ for each in REQUIREMENTS_IN:
session.run(
"pip-compile",
"--resolver",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/pyproject.toml new/referencing-0.31.1/pyproject.toml
--- old/referencing-0.31.0/pyproject.toml 2023-11-14 19:30:44.000000000 +0100
+++ new/referencing-0.31.1/pyproject.toml 2023-11-29 21:16:01.000000000 +0100
@@ -43,6 +43,7 @@
Homepage = "https://github.com/python-jsonschema/referencing"
Issues = "https://github.com/python-jsonschema/referencing/issues/"
Funding = "https://github.com/sponsors/Julian"
+Tidelift = "https://tidelift.com/subscription/pkg/pypi-referencing?utm_source=pypi-refe…"
Source = "https://github.com/python-jsonschema/referencing"
[tool.coverage.html]
@@ -77,6 +78,7 @@
use_parentheses = true
[tool.pyright]
+reportUnnecessaryTypeIgnoreComment = true
strict = ["**/*"]
exclude = [
"**/tests/__init__.py",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/referencing/_core.py new/referencing-0.31.1/referencing/_core.py
--- old/referencing-0.31.0/referencing/_core.py 2023-11-14 19:30:44.000000000 +0100
+++ new/referencing-0.31.1/referencing/_core.py 2023-11-29 21:16:01.000000000 +0100
@@ -1,6 +1,7 @@
from __future__ import annotations
from collections.abc import Iterable, Iterator, Sequence
+from enum import Enum
from typing import Any, Callable, ClassVar, Generic, Protocol, TypeVar
from urllib.parse import unquote, urldefrag, urljoin
@@ -15,6 +16,17 @@
EMPTY_PREVIOUS_RESOLVERS: List[URI] = List()
+class _Unset(Enum):
+ """
+ What sillyness...
+ """
+
+ SENTINEL = 1
+
+
+_UNSET = _Unset.SENTINEL
+
+
class _MaybeInSubresource(Protocol[D]):
def __call__(
self,
@@ -101,7 +113,7 @@
def from_contents(
cls,
contents: D,
- default_specification: Specification[D] = None, # type: ignore[reportGeneralTypeIssues]
+ default_specification: Specification[D] | _Unset = _UNSET,
) -> Resource[D]:
"""
Attempt to discern which specification applies to the given contents.
@@ -125,7 +137,7 @@
default=default_specification,
)
- if specification is None: # type: ignore[reportUnnecessaryComparison]
+ if specification is _UNSET:
raise exceptions.CannotDetermineSpecification(contents)
return cls(contents=contents, specification=specification) # type: ignore[reportUnknownArgumentType]
@@ -192,7 +204,7 @@
resolver = self._specification.maybe_in_subresource(
segments=segments,
resolver=resolver,
- subresource=self._specification.create_resource(contents), # type: ignore[reportUnknownArgumentType]
+ subresource=self._specification.create_resource(contents),
)
if resolver is not last:
segments = []
@@ -233,7 +245,7 @@
converter=HashTrieMap.convert, # type: ignore[reportGeneralTypeIssues]
alias="resources",
)
- _anchors: HashTrieMap[tuple[URI, str], AnchorType[D]] = HashTrieMap() # type: ignore[reportGeneralTypeIssues]
+ _anchors: HashTrieMap[tuple[URI, str], AnchorType[D]] = HashTrieMap()
_uncrawled: HashTrieSet[URI] = EMPTY_UNCRAWLED
_retrieve: Retrieve[D] = field(default=_fail_to_retrieve, alias="retrieve")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/referencing-0.31.0/referencing/jsonschema.py new/referencing-0.31.1/referencing/jsonschema.py
--- old/referencing-0.31.0/referencing/jsonschema.py 2023-11-14 19:30:44.000000000 +0100
+++ new/referencing-0.31.1/referencing/jsonschema.py 2023-11-29 21:16:01.000000000 +0100
@@ -9,6 +9,8 @@
from referencing import Anchor, Registry, Resource, Specification, exceptions
from referencing._attrs import frozen
+from referencing._core import _UNSET # type: ignore[reportPrivateUsage]
+from referencing._core import _Unset # type: ignore[reportPrivateUsage]
from referencing._core import Resolved as _Resolved, Resolver as _Resolver
from referencing.typing import URI, Anchor as AnchorType, Mapping
@@ -559,7 +561,7 @@
def specification_with(
dialect_id: URI,
- default: Specification[Any] = None, # type: ignore[reportGeneralTypeIssues]
+ default: Specification[Any] | _Unset = _UNSET,
) -> Specification[Any]:
"""
Retrieve the `Specification` with the given dialect identifier.
@@ -573,7 +575,7 @@
resource = _SPECIFICATIONS.get(dialect_id.rstrip("#"))
if resource is not None:
return resource.contents
- if default is None: # type: ignore[reportUnnecessaryComparison]
+ if default is _UNSET:
raise UnknownDialect(dialect_id)
return default
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package openssl-1_1 for openSUSE:Factory checked in at 2023-12-01 21:24:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openssl-1_1 (Old)
and /work/SRC/openSUSE:Factory/.openssl-1_1.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openssl-1_1"
Fri Dec 1 21:24:50 2023 rev:55 rq:1130033 version:1.1.1w
Changes:
--------
--- /work/SRC/openSUSE:Factory/openssl-1_1/openssl-1_1.changes 2023-11-17 20:48:48.571523906 +0100
+++ /work/SRC/openSUSE:Factory/.openssl-1_1.new.25432/openssl-1_1.changes 2023-12-01 21:25:00.817096507 +0100
@@ -1,0 +2,14 @@
+Thu Nov 23 09:43:39 UTC 2023 - Otto Hollmann <otto.hollmann(a)suse.com>
+
+- Skip SHA1 test in 20-test_dgst.t when in FIPS mode
+ * Add openssl-Skip_SHA1-test-in-FIPS-mode.patch
+- FIPS: add openssl-1_1-fips-bsc1190652_release_num_in_version_string.patch
+ * bsc#1190652 - Provide a service to output module name/identifier
+ and version
+- Sync patches with SLE:
+ * Merge openssl-keep_EVP_KDF_functions_version.patch into
+ openssl-1.1.1-evp-kdf.patch
+ * Refresh openssl-1_1-fips-bsc1215215_fips_in_version_string.patch
+ * Remove openssl-no-date.patch
+
+-------------------------------------------------------------------
Old:
----
openssl-keep_EVP_KDF_functions_version.patch
openssl-no-date.patch
New:
----
openssl-1_1-fips-bsc1190652_release_num_in_version_string.patch
openssl-Skip_SHA1-test-in-FIPS-mode.patch
BETA DEBUG BEGIN:
Old:- Sync patches with SLE:
* Merge openssl-keep_EVP_KDF_functions_version.patch into
openssl-1.1.1-evp-kdf.patch
Old: * Refresh openssl-1_1-fips-bsc1215215_fips_in_version_string.patch
* Remove openssl-no-date.patch
BETA DEBUG END:
BETA DEBUG BEGIN:
New: * Add openssl-Skip_SHA1-test-in-FIPS-mode.patch
- FIPS: add openssl-1_1-fips-bsc1190652_release_num_in_version_string.patch
* bsc#1190652 - Provide a service to output module name/identifier
New:- Skip SHA1 test in 20-test_dgst.t when in FIPS mode
* Add openssl-Skip_SHA1-test-in-FIPS-mode.patch
- FIPS: add openssl-1_1-fips-bsc1190652_release_num_in_version_string.patch
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openssl-1_1.spec ++++++
--- /var/tmp/diff_new_pack.PesRiw/_old 2023-12-01 21:25:02.493158064 +0100
+++ /var/tmp/diff_new_pack.PesRiw/_new 2023-12-01 21:25:02.493158064 +0100
@@ -60,7 +60,6 @@
Patch4: openssl-DEFAULT_SUSE_cipher.patch
Patch5: openssl-ppc64-config.patch
Patch6: openssl-riscv64-config.patch
-Patch7: openssl-no-date.patch
# PATCH-FIX-UPSTREAM jsc#SLE-6126 and jsc#SLE-6129
Patch8: 0001-s390x-assembly-pack-perlasm-support.patch
Patch9: 0002-crypto-chacha-asm-chacha-s390x.pl-add-vx-code-path.patch
@@ -95,7 +94,6 @@
Patch40: openssl-fips-selftests_in_nonfips_mode.patch
Patch41: openssl-fips-clearerror.patch
Patch42: openssl-fips-ignore_broken_atexit_test.patch
-Patch43: openssl-keep_EVP_KDF_functions_version.patch
Patch45: openssl-fips-add-SHA3-selftest.patch
Patch46: openssl-fips_selftest_upstream_drbg.patch
Patch47: openssl-unknown_dgst.patch
@@ -126,15 +124,17 @@
Patch73: openssl-FIPS-KAT-before-integrity-tests.patch
# PATCH-FIX-SUSE bsc#1182959 FIPS: Fix function and reason error codes
Patch74: openssl-1_1-FIPS-fix-error-reason-codes.patch
+#PATCH-FIX-SUSE bsc#1190652 FIPS: Add release number to version string
+Patch75: openssl-1_1-fips-bsc1190652_release_num_in_version_string.patch
# PATCH-FIX-SUSE bsc#1180995 Default to RFC7919 groups in FIPS mode
-Patch75: openssl-1_1-paramgen-default_to_rfc7919.patch
+Patch76: openssl-1_1-paramgen-default_to_rfc7919.patch
# PATCH-FIX-SUSE bsc#1194187 bsc#1004463 Add engines section in openssl.cnf
-Patch76: openssl-1_1-use-include-directive.patch
+Patch77: openssl-1_1-use-include-directive.patch
# PATCH-FIX-SUSE bsc#1197280 FIPS: Additional PBKDF2 requirements for KAT
-Patch77: openssl-1_1-FIPS-PBKDF2-KAT-requirements.patch
-Patch78: bsc1185319-FIPS-KAT-for-ECDSA.patch
-Patch79: bsc1198207-FIPS-add-hash_hmac-drbg-kat.patch
-Patch81: openssl-1_1-shortcut-test_afalg_aes_cbc.patch
+Patch78: openssl-1_1-FIPS-PBKDF2-KAT-requirements.patch
+Patch79: bsc1185319-FIPS-KAT-for-ECDSA.patch
+Patch80: bsc1198207-FIPS-add-hash_hmac-drbg-kat.patch
+Patch82: openssl-1_1-shortcut-test_afalg_aes_cbc.patch
# PATCH-FIX-SUSE bsc#1190653 FIPS: Provide methods to zeroize all unprotected SSPs and key components
Patch84: openssl-1_1-Zeroization.patch
# PATCH-FIX-SUSE bsc#1190651 FIPS: Provide a service-level indicator
@@ -188,6 +188,8 @@
# PATCH-FIX-UPSTREAM: bsc#1216922 CVE-2023-5678 Generating excessively long X9.42 DH keys or
# checking excessively long X9.42 DH keys or parameters may be very slow
Patch115: openssl-CVE-2023-5678.patch
+# PATCH-FIX-OPENSUSE skip SHA1 test in FIPS mode
+Patch116: openssl-Skip_SHA1-test-in-FIPS-mode.patch
BuildRequires: jitterentropy-devel >= 3.4.0
BuildRequires: pkgconfig
BuildRequires: pkgconfig(zlib)
++++++ openssl-1.1.1-evp-kdf.patch ++++++
--- /var/tmp/diff_new_pack.PesRiw/_old 2023-12-01 21:25:02.629163059 +0100
+++ /var/tmp/diff_new_pack.PesRiw/_new 2023-12-01 21:25:02.637163353 +0100
@@ -5228,14 +5228,14 @@
FIPS_rand_strength 6380 1_1_0g EXIST::FUNCTION:
FIPS_drbg_get_blocklength 6381 1_1_0g EXIST::FUNCTION:
FIPS_drbg_init 6382 1_1_0g EXIST::FUNCTION:
-+EVP_KDF_CTX_new_id 6590 1_1_1b EXIST::FUNCTION:
-+EVP_KDF_CTX_free 6591 1_1_1b EXIST::FUNCTION:
-+EVP_KDF_reset 6592 1_1_1b EXIST::FUNCTION:
-+EVP_KDF_ctrl 6593 1_1_1b EXIST::FUNCTION:
-+EVP_KDF_vctrl 6594 1_1_1b EXIST::FUNCTION:
-+EVP_KDF_ctrl_str 6595 1_1_1b EXIST::FUNCTION:
-+EVP_KDF_size 6596 1_1_1b EXIST::FUNCTION:
-+EVP_KDF_derive 6597 1_1_1b EXIST::FUNCTION:
++EVP_KDF_CTX_new_id 6590 1_1_1d EXIST::FUNCTION:
++EVP_KDF_CTX_free 6591 1_1_1d EXIST::FUNCTION:
++EVP_KDF_reset 6592 1_1_1d EXIST::FUNCTION:
++EVP_KDF_ctrl 6593 1_1_1d EXIST::FUNCTION:
++EVP_KDF_vctrl 6594 1_1_1d EXIST::FUNCTION:
++EVP_KDF_ctrl_str 6595 1_1_1d EXIST::FUNCTION:
++EVP_KDF_size 6596 1_1_1d EXIST::FUNCTION:
++EVP_KDF_derive 6597 1_1_1d EXIST::FUNCTION:
Index: openssl-1.1.1n/util/private.num
===================================================================
--- openssl-1.1.1n.orig/util/private.num
++++++ openssl-1_1-fips-bsc1190652_release_num_in_version_string.patch ++++++
diff --git a/include/openssl/opensslv.h b/include/openssl/opensslv.h
index cbbfab1..7576de8 100644
--- a/include/openssl/opensslv.h
+++ b/include/openssl/opensslv.h
@@ -14,6 +14,9 @@
extern "C" {
#endif
+#define SUSE_OPENSSL_STRING_PARAM_FUNCA(x) #x
+#define SUSE_OPENSSL_STRING_PARAM_FUNCB(x) SUSE_OPENSSL_STRING_PARAM_FUNCA(x)
+
/*-
* Numeric release version identifier:
* MNNFFPPS: major minor fix patch status
@@ -40,7 +43,7 @@ extern "C" {
* major minor fix final patch/beta)
*/
# define OPENSSL_VERSION_NUMBER 0x1010117fL
-# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1w 11 Sep 2023"
+# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1w 11 Sep 2023 SUSE release " SUSE_OPENSSL_STRING_PARAM_FUNCB(SUSE_OPENSSL_RELEASE)
/*-
* The macros below are to be used for shared library (.so, .dll, ...)
++++++ openssl-1_1-fips-bsc1215215_fips_in_version_string.patch ++++++
--- /var/tmp/diff_new_pack.PesRiw/_old 2023-12-01 21:25:02.749167467 +0100
+++ /var/tmp/diff_new_pack.PesRiw/_new 2023-12-01 21:25:02.753167613 +0100
@@ -35,11 +35,11 @@
* major minor fix final patch/beta)
*/
# define OPENSSL_VERSION_NUMBER 0x1010117fL
--# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1w 11 Sep 2023"
+-# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1w 11 Sep 2023 SUSE release " SUSE_OPENSSL_STRING_PARAM_FUNCB(SUSE_OPENSSL_RELEASE)
+# ifdef OPENSSL_FIPS
-+# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1w-fips 11 Sep 2023"
++# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1w-fips 11 Sep 2023 SUSE release " SUSE_OPENSSL_STRING_PARAM_FUNCB(SUSE_OPENSSL_RELEASE)
+# else
-+# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1w 11 Sep 2023"
++# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1w 11 Sep 2023 SUSE release " SUSE_OPENSSL_STRING_PARAM_FUNCB(SUSE_OPENSSL_RELEASE)
+# endif
/*-
++++++ openssl-Skip_SHA1-test-in-FIPS-mode.patch ++++++
Index: openssl-1.1.1w/test/recipes/20-test_dgst.t
===================================================================
--- openssl-1.1.1w.orig/test/recipes/20-test_dgst.t
+++ openssl-1.1.1w/test/recipes/20-test_dgst.t
@@ -104,8 +105,8 @@ SKIP: {
}
SKIP: {
- skip "dgst with engine is not supported by this OpenSSL build", 1
- if disabled("engine") || disabled("dynamic-engine");
+ skip "dgst with engine is not supported by this OpenSSL build or we are in FIPS mode", 1
+ if disabled("engine") || disabled("dynamic-engine") || ($ENV{OPENSSL_FORCE_FIPS_MODE});
subtest "SHA1 generation by engine with `dgst` CLI" => sub {
plan tests => 1;
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package xdmbgrd for openSUSE:Factory checked in at 2023-12-01 21:24:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xdmbgrd (Old)
and /work/SRC/openSUSE:Factory/.xdmbgrd.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xdmbgrd"
Fri Dec 1 21:24:47 2023 rev:23 rq:1130020 version:0.8
Changes:
--------
--- /work/SRC/openSUSE:Factory/xdmbgrd/xdmbgrd.changes 2022-05-01 18:53:50.635177174 +0200
+++ /work/SRC/openSUSE:Factory/.xdmbgrd.new.25432/xdmbgrd.changes 2023-12-01 21:24:54.088849396 +0100
@@ -1,0 +2,5 @@
+Thu Nov 30 13:54:18 UTC 2023 - Guillaume GARDET <guillaume.gardet(a)opensuse.org>
+
+- USe %{optflags} to build package
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xdmbgrd.spec ++++++
--- /var/tmp/diff_new_pack.ndrNUZ/_old 2023-12-01 21:24:55.508901551 +0100
+++ /var/tmp/diff_new_pack.ndrNUZ/_new 2023-12-01 21:24:55.524902139 +0100
@@ -38,6 +38,7 @@
%build
PATH=$PATH:.
+export RPM_OPT_FLAGS="%{optflags}"
make XLIBD=%{_libdir} openSUSE=SuSE_Linux_6 SLES=SuSE_Linux_8
%install
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package zxing-cpp for openSUSE:Factory checked in at 2023-12-01 21:24:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/zxing-cpp (Old)
and /work/SRC/openSUSE:Factory/.zxing-cpp.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "zxing-cpp"
Fri Dec 1 21:24:46 2023 rev:16 rq:1130018 version:2.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/zxing-cpp/zxing-cpp.changes 2023-10-10 20:52:02.220111124 +0200
+++ /work/SRC/openSUSE:Factory/.zxing-cpp.new.25432/zxing-cpp.changes 2023-12-01 21:24:51.488753902 +0100
@@ -1,0 +2,6 @@
+Thu Nov 30 14:32:19 UTC 2023 - Guillaume GARDET <guillaume.gardet(a)opensuse.org>
+
+- Add back %{optflags} in c++ flags
+ This was unintentionally disabled when c++17 was forced
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ zxing-cpp.spec ++++++
--- /var/tmp/diff_new_pack.QjSWNJ/_old 2023-12-01 21:24:53.328821483 +0100
+++ /var/tmp/diff_new_pack.QjSWNJ/_new 2023-12-01 21:24:53.344822070 +0100
@@ -79,7 +79,7 @@
export CC="gcc-7"
export CXX="g++-7"
%endif
-export CXXFLAGS="-std=c++17"
+export CXXFLAGS="%{optflags} -std=c++17"
# Examples require QT5-base/multimedia, but doing so creates a cycle
# Blackbox tests require fmt
%cmake \
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package pv for openSUSE:Factory checked in at 2023-12-01 21:24:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pv (Old)
and /work/SRC/openSUSE:Factory/.pv.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pv"
Fri Dec 1 21:24:45 2023 rev:23 rq:1129999 version:1.7.24
Changes:
--------
--- /work/SRC/openSUSE:Factory/pv/pv.changes 2023-11-16 20:27:05.301110216 +0100
+++ /work/SRC/openSUSE:Factory/.pv.new.25432/pv.changes 2023-12-01 21:24:50.120703657 +0100
@@ -1,0 +2,8 @@
+Thu Nov 30 11:24:57 UTC 2023 - pgajdos(a)suse.com
+
+- disable testsuite for s390x [bsc#1215338]
+- remove _constraints again as it didn't help
+- deleted sources
+ - _constraints (not needed)
+
+-------------------------------------------------------------------
Old:
----
_constraints
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pv.spec ++++++
--- /var/tmp/diff_new_pack.MWdGu1/_old 2023-12-01 21:24:50.776727751 +0100
+++ /var/tmp/diff_new_pack.MWdGu1/_new 2023-12-01 21:24:50.780727898 +0100
@@ -55,6 +55,9 @@
%find_lang %name
%check
+%ifarch s390x
+exit 0
+%endif
%make_build test
%files -f %name.lang
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package jeos-firstboot for openSUSE:Factory checked in at 2023-12-01 21:24:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/jeos-firstboot (Old)
and /work/SRC/openSUSE:Factory/.jeos-firstboot.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "jeos-firstboot"
Fri Dec 1 21:24:44 2023 rev:50 rq:1129992 version:1.2.0.9
Changes:
--------
--- /work/SRC/openSUSE:Factory/jeos-firstboot/jeos-firstboot.changes 2023-09-11 21:20:45.834339785 +0200
+++ /work/SRC/openSUSE:Factory/.jeos-firstboot.new.25432/jeos-firstboot.changes 2023-12-01 21:24:49.052664431 +0100
@@ -1,0 +2,6 @@
+Thu Nov 30 12:50:24 UTC 2023 - jeos-internal(a)suse.de
+
+- Update to version 1.2.0.9:
+ * Add KeyringMode=shared
+
+-------------------------------------------------------------------
Old:
----
jeos-firstboot-1.2.0.7.obscpio
New:
----
jeos-firstboot-1.2.0.9.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ jeos-firstboot.spec ++++++
--- /var/tmp/diff_new_pack.Bjs3F3/_old 2023-12-01 21:24:49.732689406 +0100
+++ /var/tmp/diff_new_pack.Bjs3F3/_new 2023-12-01 21:24:49.736689553 +0100
@@ -23,7 +23,7 @@
%endif
Name: jeos-firstboot
-Version: 1.2.0.7
+Version: 1.2.0.9
Release: 0
Summary: Simple text based JeOS first boot wizard
License: MIT
++++++ _service ++++++
--- /var/tmp/diff_new_pack.Bjs3F3/_old 2023-12-01 21:24:49.760690435 +0100
+++ /var/tmp/diff_new_pack.Bjs3F3/_new 2023-12-01 21:24:49.768690729 +0100
@@ -1,5 +1,5 @@
<services>
- <service name="obs_scm" mode="disabled">
+ <service name="obs_scm" mode="manual">
<param name="url">https://github.com/openSUSE/jeos-firstboot.git</param>
<param name="scm">git</param>
<param name="versionformat">@PARENT_TAG@.@TAG_OFFSET@</param>
@@ -7,7 +7,7 @@
<param name="changesgenerate">enable</param>
<param name="changesauthor">jeos-internal(a)suse.de</param>
</service>
- <service name="set_version" mode="disabled"/>
+ <service name="set_version" mode="manual"/>
<service name="tar" mode="buildtime" />
<service name="recompress" mode="buildtime">
<param name="file">*.tar</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.Bjs3F3/_old 2023-12-01 21:24:49.804692051 +0100
+++ /var/tmp/diff_new_pack.Bjs3F3/_new 2023-12-01 21:24:49.808692198 +0100
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/openSUSE/jeos-firstboot.git</param>
- <param name="changesrevision">fc44ff651d4d10cdce979806e46938911f0ea2f0</param></service></servicedata>
+ <param name="changesrevision">7fbff4911e3c13a9d83716629992fb0b4f8e76fd</param></service></servicedata>
(No newline at EOF)
++++++ jeos-firstboot-1.2.0.7.obscpio -> jeos-firstboot-1.2.0.9.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jeos-firstboot-1.2.0.7/files/usr/lib/systemd/system/jeos-firstboot.service new/jeos-firstboot-1.2.0.9/files/usr/lib/systemd/system/jeos-firstboot.service
--- old/jeos-firstboot-1.2.0.7/files/usr/lib/systemd/system/jeos-firstboot.service 2023-08-22 09:30:49.000000000 +0200
+++ new/jeos-firstboot-1.2.0.9/files/usr/lib/systemd/system/jeos-firstboot.service 2023-11-30 13:49:59.000000000 +0100
@@ -34,6 +34,8 @@
StandardOutput=tty
StandardInput=tty
#StandardError=tty
+# enable accessing global keyring to get data from eg. initrd
+KeyringMode=shared
[Install]
WantedBy=default.target
++++++ jeos-firstboot.obsinfo ++++++
--- /var/tmp/diff_new_pack.Bjs3F3/_old 2023-12-01 21:24:49.928696605 +0100
+++ /var/tmp/diff_new_pack.Bjs3F3/_new 2023-12-01 21:24:49.936696899 +0100
@@ -1,5 +1,5 @@
name: jeos-firstboot
-version: 1.2.0.7
-mtime: 1692689449
-commit: fc44ff651d4d10cdce979806e46938911f0ea2f0
+version: 1.2.0.9
+mtime: 1701348599
+commit: 7fbff4911e3c13a9d83716629992fb0b4f8e76fd
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-ddt for openSUSE:Factory checked in at 2023-12-01 21:24:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ddt (Old)
and /work/SRC/openSUSE:Factory/.python-ddt.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ddt"
Fri Dec 1 21:24:33 2023 rev:20 rq:1129175 version:1.7.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-ddt/python-ddt.changes 2023-04-22 22:02:27.909935581 +0200
+++ /work/SRC/openSUSE:Factory/.python-ddt.new.25432/python-ddt.changes 2023-12-01 21:24:33.840105715 +0100
@@ -1,0 +2,7 @@
+Mon Nov 27 15:42:45 UTC 2023 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 1.7.0:
+ * Add async flag when wrapping async function (#111)
+ * Dropping support for Python 2.7
+
+-------------------------------------------------------------------
Old:
----
ddt-1.6.0.tar.gz
New:
----
ddt-1.7.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-ddt.spec ++++++
--- /var/tmp/diff_new_pack.eA6Lym/_old 2023-12-01 21:24:34.664135979 +0100
+++ /var/tmp/diff_new_pack.eA6Lym/_new 2023-12-01 21:24:34.664135979 +0100
@@ -16,10 +16,9 @@
#
-%bcond_without python2
%{?sle15_python_module_pythons}
Name: python-ddt
-Version: 1.6.0
+Version: 1.7.0
Release: 0
Summary: Data-Driven/Decorated Tests
License: MIT
@@ -33,11 +32,8 @@
BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module PyYAML}
+BuildRequires: %{python_module aiounittest}
BuildRequires: %{python_module pytest}
-%if %{with python2}
-BuildRequires: python2-enum34
-BuildRequires: python2-mock
-%endif
# /SECTION
%python_subpackages
++++++ ddt-1.6.0.tar.gz -> ddt-1.7.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ddt-1.6.0/PKG-INFO new/ddt-1.7.0/PKG-INFO
--- old/ddt-1.6.0/PKG-INFO 2022-08-10 18:45:43.834721600 +0200
+++ new/ddt-1.7.0/PKG-INFO 2023-11-08 04:05:40.583957200 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: ddt
-Version: 1.6.0
+Version: 1.7.0
Summary: Data-Driven/Decorated Tests
Home-page: https://github.com/datadriventests/ddt
Author: Carles Barrobés
@@ -20,5 +20,6 @@
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Software Development :: Testing
License-File: LICENSE.md
+Requires-Dist: enum34; python_version < "3"
A library to multiply test cases
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ddt-1.6.0/ddt.egg-info/PKG-INFO new/ddt-1.7.0/ddt.egg-info/PKG-INFO
--- old/ddt-1.6.0/ddt.egg-info/PKG-INFO 2022-08-10 18:45:43.000000000 +0200
+++ new/ddt-1.7.0/ddt.egg-info/PKG-INFO 2023-11-08 04:05:40.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: ddt
-Version: 1.6.0
+Version: 1.7.0
Summary: Data-Driven/Decorated Tests
Home-page: https://github.com/datadriventests/ddt
Author: Carles Barrobés
@@ -20,5 +20,6 @@
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Software Development :: Testing
License-File: LICENSE.md
+Requires-Dist: enum34; python_version < "3"
A library to multiply test cases
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ddt-1.6.0/ddt.egg-info/SOURCES.txt new/ddt-1.7.0/ddt.egg-info/SOURCES.txt
--- old/ddt-1.6.0/ddt.egg-info/SOURCES.txt 2022-08-10 18:45:43.000000000 +0200
+++ new/ddt-1.7.0/ddt.egg-info/SOURCES.txt 2023-11-08 04:05:40.000000000 +0100
@@ -12,6 +12,7 @@
ddt.egg-info/top_level.txt
test/__init__.py
test/mycode.py
+test/test_async.py
test/test_example.py
test/test_functional.py
test/test_named_data.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ddt-1.6.0/ddt.py new/ddt-1.7.0/ddt.py
--- old/ddt-1.6.0/ddt.py 2022-08-10 18:45:24.000000000 +0200
+++ new/ddt-1.7.0/ddt.py 2023-11-08 04:05:30.000000000 +0100
@@ -27,7 +27,7 @@
# Python 2.7
from collections import Sequence
-__version__ = '1.6.0'
+__version__ = '1.7.0'
# These attributes will not conflict with any real python attribute
# They are added to the decorated test method and processed later
@@ -215,9 +215,15 @@
This internal method decorator feeds the test data item to the test.
"""
- @wraps(func)
- def wrapper(self):
- return func(self, *args, **kwargs)
+ if inspect.iscoroutinefunction(func):
+ @wraps(func)
+ async def wrapper(self):
+ return await func(self, *args, **kwargs)
+ else:
+ @wraps(func)
+ def wrapper(self):
+ return func(self, *args, **kwargs)
+
wrapper.__name__ = new_name
wrapper.__wrapped__ = func
# set docstring if exists
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ddt-1.6.0/test/test_async.py new/ddt-1.7.0/test/test_async.py
--- old/ddt-1.6.0/test/test_async.py 1970-01-01 01:00:00.000000000 +0100
+++ new/ddt-1.7.0/test/test_async.py 2023-11-08 04:05:30.000000000 +0100
@@ -0,0 +1,11 @@
+import aiounittest
+
+from ddt import ddt, data
+from test.mycode import larger_than_two
+
+
+@ddt
+class TestAsync(aiounittest.AsyncTestCase):
+ @data(3, 4, 12, 23)
+ async def test_larger_than_two(self, value):
+ self.assertTrue(larger_than_two(value))
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl for openSUSE:Factory checked in at 2023-12-01 21:24:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl (Old)
and /work/SRC/openSUSE:Factory/.perl.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl"
Fri Dec 1 21:24:30 2023 rev:132 rq:1129960 version:5.38.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl/perl.changes 2023-10-08 12:20:42.183301636 +0200
+++ /work/SRC/openSUSE:Factory/.perl.new.25432/perl.changes 2023-12-01 21:24:32.364051503 +0100
@@ -1,0 +2,9 @@
+Mon Nov 27 10:50:24 CET 2023 - mls(a)suse.de
+
+- Update to perl 5.38.2
+ * fixes [CVE-2023-47038] Write past buffer end via illegal
+ user-defined Unicode property [bnc#1217084]
+ * fixes [CVE-2023-47039] Perl for Windows binary hijacking
+ vulnerability [bnc#1217085]
+
+-------------------------------------------------------------------
Old:
----
perl-5.38.0.tar.xz
New:
----
perl-5.38.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl.spec ++++++
--- /var/tmp/diff_new_pack.O7cyMK/_old 2023-12-01 21:24:33.404089701 +0100
+++ /var/tmp/diff_new_pack.O7cyMK/_new 2023-12-01 21:24:33.408089848 +0100
@@ -23,11 +23,11 @@
%define name_suffix %{nil}
%endif
-%define pversion 5.38.0
+%define pversion 5.38.2
# set to nil when equal to pversion
-%global versionlist %nil
+%global versionlist 5.38.0
Name: perl%{?name_suffix}
-Version: 5.38.0
+Version: 5.38.2
Release: 0
Summary: The Perl interpreter
License: Artistic-1.0 OR GPL-1.0-or-later
++++++ perl-5.38.0.tar.xz -> perl-5.38.2.tar.xz ++++++
/work/SRC/openSUSE:Factory/perl/perl-5.38.0.tar.xz /work/SRC/openSUSE:Factory/.perl.new.25432/perl-5.38.2.tar.xz differ: char 26, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000update-repos for openSUSE:Factory checked in at 2023-12-01 21:05:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000update-repos (Old)
and /work/SRC/openSUSE:Factory/.000update-repos.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000update-repos"
Fri Dec 1 21:05:14 2023 rev:2386 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
factory:non-oss_3822.2.packages.zst
factory_20231129.packages.zst
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000release-packages for openSUSE:Factory checked in at 2023-12-01 09:05:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000release-packages (Old)
and /work/SRC/openSUSE:Factory/.000release-packages.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000release-packages"
Fri Dec 1 09:05:40 2023 rev:2618 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
MicroOS-release.spec: same change
openSUSE-Addon-NonOss-release.spec: same change
openSUSE-release.spec: same change
stub.spec: same change
++++++ weakremovers.inc ++++++
--- /var/tmp/diff_new_pack.yDHvn5/_old 2023-12-01 09:05:43.613243024 +0100
+++ /var/tmp/diff_new_pack.yDHvn5/_new 2023-12-01 09:05:43.625243465 +0100
@@ -14372,6 +14372,7 @@
Provides: weakremover(libmrss0-32bit)
Provides: weakremover(libmruby3_0_0)
Provides: weakremover(libmruby_core3_0_0)
+Provides: weakremover(libmsgpackc2)
Provides: weakremover(libmsi0)
Provides: weakremover(libmumps-gnu-openmpi1-hpc)
Provides: weakremover(libmumps-gnu-openmpi2-hpc)
@@ -16955,11 +16956,13 @@
Provides: weakremover(libwireshark13)
Provides: weakremover(libwireshark14)
Provides: weakremover(libwireshark15)
+Provides: weakremover(libwireshark16)
Provides: weakremover(libwireshark8)
Provides: weakremover(libwireshark9)
Provides: weakremover(libwiretap10)
Provides: weakremover(libwiretap11)
Provides: weakremover(libwiretap12)
+Provides: weakremover(libwiretap13)
Provides: weakremover(libwiretap6)
Provides: weakremover(libwiretap7)
Provides: weakremover(libwiretap8)
@@ -16980,11 +16983,13 @@
Provides: weakremover(libwnck-3-0-32bit)
Provides: weakremover(libwscodecs0)
Provides: weakremover(libwscodecs1)
+Provides: weakremover(libwscodecs2)
Provides: weakremover(libwsman3)
Provides: weakremover(libwsutil10)
Provides: weakremover(libwsutil11)
Provides: weakremover(libwsutil12)
Provides: weakremover(libwsutil13)
+Provides: weakremover(libwsutil14)
Provides: weakremover(libwsutil7)
Provides: weakremover(libwsutil8)
Provides: weakremover(libwsutil9)
@@ -20260,6 +20265,7 @@
Provides: weakremover(postgresql10-server)
Provides: weakremover(postgresql10-test)
Provides: weakremover(postgresql10-timescaledb)
+Provides: weakremover(postgresql11-libversion)
Provides: weakremover(postgresql11-timescaledb)
Provides: weakremover(postgresql12-devel-mini)
Provides: weakremover(postgresql12-timescaledb)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package livecd-openSUSE for openSUSE:Factory checked in at 2023-12-01 09:03:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/livecd-openSUSE (Old)
and /work/SRC/openSUSE:Factory/.livecd-openSUSE.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "livecd-openSUSE"
Fri Dec 1 09:03:13 2023 rev:213 rq: version:unknown
Changes:
--------
--- /work/SRC/openSUSE:Factory/livecd-openSUSE/livecd-openSUSE.changes 2023-11-29 12:18:22.058574447 +0100
+++ /work/SRC/openSUSE:Factory/.livecd-openSUSE.new.25432/livecd-openSUSE.changes 2023-12-01 09:03:14.739764777 +0100
@@ -1,0 +2,6 @@
+Fri Dec 1 08:02:36 UTC 2023 - Dominique Leuenberger <dleuenberger(a)suse.com>
+
+- list-gnome.sh: no longer install the games pattern. We really run
+ low on space.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ livecd-leap-gnome.kiwi ++++++
--- /var/tmp/diff_new_pack.0lIlt1/_old 2023-12-01 09:03:15.875806561 +0100
+++ /var/tmp/diff_new_pack.0lIlt1/_new 2023-12-01 09:03:15.879806708 +0100
@@ -575,7 +575,6 @@
<package name="xf86-video-vmware" arch="i686,x86_64"/>
<package name="alsa-firmware"/>
<namedCollection name="apparmor"/>
- <namedCollection name="games"/>
<namedCollection name="gnome"/>
<namedCollection name="gnome_basis"/>
<namedCollection name="gnome_imaging"/>
livecd-leap-x11.kiwi: same change
livecd-leap-xfce.kiwi: same change
livecd-openSUSE.kiwi: same change
++++++ livecd-tumbleweed-gnome.kiwi ++++++
--- /var/tmp/diff_new_pack.0lIlt1/_old 2023-12-01 09:03:15.931808621 +0100
+++ /var/tmp/diff_new_pack.0lIlt1/_new 2023-12-01 09:03:15.935808768 +0100
@@ -566,7 +566,6 @@
<package name="xf86-video-vmware" arch="i686,x86_64"/>
<package name="alsa-firmware"/>
<namedCollection name="apparmor"/>
- <namedCollection name="games"/>
<namedCollection name="gnome"/>
<namedCollection name="gnome_basis"/>
<namedCollection name="gnome_imaging"/>
livecd-tumbleweed-x11.kiwi: same change
livecd-tumbleweed-xfce.kiwi: same change
++++++ list-gnome.sh ++++++
--- /var/tmp/diff_new_pack.0lIlt1/_old 2023-12-01 09:03:16.039812593 +0100
+++ /var/tmp/diff_new_pack.0lIlt1/_new 2023-12-01 09:03:16.043812740 +0100
@@ -98,7 +98,6 @@
# Previously required by rest_cd_gnome
installPattern apparmor
-installPattern games
installPattern gnome
installPattern gnome_basis
installPattern gnome_imaging
1
0