openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
January 2024
- 1 participants
- 1743 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package cloud-init for openSUSE:Factory checked in at 2024-01-31 23:53:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cloud-init (Old)
and /work/SRC/openSUSE:Factory/.cloud-init.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cloud-init"
Wed Jan 31 23:53:26 2024 rev:95 rq:1142867 version:23.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/cloud-init/cloud-init.changes 2023-12-19 23:15:37.121066431 +0100
+++ /work/SRC/openSUSE:Factory/.cloud-init.new.1815/cloud-init.changes 2024-01-31 23:53:36.232672668 +0100
@@ -1,0 +2,12 @@
+Sat Jan 20 09:20:42 UTC 2024 - Robert Schweikert <rjschwei(a)suse.com>
+
+- Add cloud-init-skip-empty-conf.patch
+ + Skip tests with empty config
+
+-------------------------------------------------------------------
+Fri Jan 19 19:19:49 UTC 2024 - Robert Schweikert <rjschwei(a)suse.com>
+
+- Add cloud-init-pckg-reboot.patch (boo#1198533, bsc#1218952, jsc#SMO-326)
+ + Support reboot on package update/upgrade via the cloud-init config
+
+-------------------------------------------------------------------
New:
----
cloud-init-pckg-reboot.patch
cloud-init-skip-empty-conf.patch
BETA DEBUG BEGIN:
New:
- Add cloud-init-pckg-reboot.patch (boo#1198533, bsc#1218952, jsc#SMO-326)
+ Support reboot on package update/upgrade via the cloud-init config
New:
- Add cloud-init-skip-empty-conf.patch
+ Skip tests with empty config
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cloud-init.spec ++++++
--- /var/tmp/diff_new_pack.mrQvVA/_old 2024-01-31 23:53:37.656724045 +0100
+++ /var/tmp/diff_new_pack.mrQvVA/_new 2024-01-31 23:53:37.660724190 +0100
@@ -39,6 +39,10 @@
# FIXME (https://github.com/canonical/cloud-init/issues/4339)
Patch7: cloud-init-keep-flake.patch
Patch8: cloud-init-lint-fixes.patch
+# FIXME (https://github.com/canonical/cloud-init/pull/4788)
+Patch9: cloud-init-pckg-reboot.patch
+# FIXME
+Patch10: cloud-init-skip-empty-conf.patch
BuildRequires: fdupes
BuildRequires: filesystem
# pkg-config is needed to find correct systemd unit dir
@@ -145,6 +149,8 @@
%patch6
%patch7
%patch8
+%patch9
+%patch10
# patch in the full version to version.py
version_pys=$(find . -name version.py -type f)
++++++ cloud-init-pckg-reboot.patch ++++++
--- cloudinit/config/cc_package_update_upgrade_install.py.orig
+++ cloudinit/config/cc_package_update_upgrade_install.py
@@ -18,7 +18,7 @@ from cloudinit.config.schema import Meta
from cloudinit.distros import ALL_DISTROS
from cloudinit.settings import PER_INSTANCE
-REBOOT_FILE = "/var/run/reboot-required"
+REBOOT_FILES = ("/var/run/reboot-required", "/run/reboot-needed")
REBOOT_CMD = ["/sbin/reboot"]
MODULE_DESCRIPTION = """\
@@ -120,11 +120,14 @@ def handle(name: str, cfg: Config, cloud
# kernel and openssl (possibly some other packages)
# write a file /var/run/reboot-required after upgrading.
# if that file exists and configured, then just stop right now and reboot
- reboot_fn_exists = os.path.isfile(REBOOT_FILE)
+ for reboot_marker in REBOOT_FILES:
+ reboot_fn_exists = os.path.isfile(reboot_marker)
+ if reboot_fn_exists:
+ break
if (upgrade or pkglist) and reboot_if_required and reboot_fn_exists:
try:
LOG.warning(
- "Rebooting after upgrade or install per %s", REBOOT_FILE
+ "Rebooting after upgrade or install per %s", reboot_marker
)
# Flush the above warning + anything else out...
logging.flushLoggers(LOG)
++++++ cloud-init-skip-empty-conf.patch ++++++
--- tests/unittests/config/test_cc_yum_add_repo.py.orig
+++ tests/unittests/config/test_cc_yum_add_repo.py
@@ -2,7 +2,7 @@
import configparser
import logging
-import re
+# import re
import shutil
import tempfile
@@ -137,10 +137,10 @@ class TestAddYumRepoSchema:
{"yum_repo_dir": True},
"yum_repo_dir: True is not of type 'string'",
),
- (
- {"yum_repos": {}},
- re.escape("yum_repos: {} does not have enough properties"),
- ),
+ # (
+ # {"yum_repos": {}},
+ # re.escape("yum_repos: {} does not have enough properties"),
+ # ),
# baseurl required
(
{"yum_repos": {"My-Repo": {}}},
--- tests/unittests/config/test_cc_apk_configure.py.orig
+++ tests/unittests/config/test_cc_apk_configure.py
@@ -352,11 +352,11 @@ class TestApkConfigureSchema:
" allowed ('bogus' was unexpected)"
),
),
- (
- {"apk_repos": {"alpine_repo": {}}},
- "apk_repos.alpine_repo: 'version' is a required property,"
- " apk_repos.alpine_repo: {} does not have enough properties",
- ),
+ # (
+ # {"apk_repos": {"alpine_repo": {}}},
+ # "apk_repos.alpine_repo: 'version' is a required property,"
+ # " apk_repos.alpine_repo: {} does not have enough properties",
+ # ),
(
{"apk_repos": {"alpine_repo": True}},
"apk_repos.alpine_repo: True is not of type 'object', 'null'",
@@ -366,10 +366,10 @@ class TestApkConfigureSchema:
"apk_repos.preserve_repositories: 'wrongtype' is not of type"
" 'boolean'",
),
- (
- {"apk_repos": {}},
- "apk_repos: {} does not have enough properties",
- ),
+ # (
+ # {"apk_repos": {}},
+ # "apk_repos: {} does not have enough properties",
+ # ),
(
{"apk_repos": {"local_repo_base_url": None}},
"apk_repos.local_repo_base_url: None is not of type 'string'",
--- tests/unittests/config/test_cc_apt_configure.py.orig
+++ tests/unittests/config/test_cc_apt_configure.py
@@ -32,7 +32,7 @@ class TestAPTConfigureSchema:
" ('boguskey' was unexpected)"
),
),
- ({"apt": {}}, "apt: {} does not have enough properties"),
+ # ({"apt": {}}, "apt: {} does not have enough properties"),
(
{"apt": {"preserve_sources_list": 1}},
"apt.preserve_sources_list: 1 is not of type 'boolean'",
@@ -41,10 +41,10 @@ class TestAPTConfigureSchema:
{"apt": {"disable_suites": 1}},
"apt.disable_suites: 1 is not of type 'array'",
),
- (
- {"apt": {"disable_suites": []}},
- re.escape("apt.disable_suites: [] is too short"),
- ),
+ # (
+ # {"apt": {"disable_suites": []}},
+ # re.escape("apt.disable_suites: [] is too short"),
+ # ),
(
{"apt": {"disable_suites": [1]}},
"apt.disable_suites.0: 1 is not of type 'string'",
@@ -61,18 +61,18 @@ class TestAPTConfigureSchema:
{"apt": {"primary": "nonlist"}},
"apt.primary: 'nonlist' is not of type 'array'",
),
- (
- {"apt": {"primary": []}},
- re.escape("apt.primary: [] is too short"),
- ),
+ # (
+ # {"apt": {"primary": []}},
+ # re.escape("apt.primary: [] is too short"),
+ # ),
(
{"apt": {"primary": ["nonobj"]}},
"apt.primary.0: 'nonobj' is not of type 'object'",
),
- (
- {"apt": {"primary": [{}]}},
- "apt.primary.0: 'arches' is a required property",
- ),
+ # (
+ # {"apt": {"primary": [{}]}},
+ # "apt.primary.0: 'arches' is a required property",
+ # ),
(
{"apt": {"primary": [{"boguskey": True}]}},
re.escape(
@@ -98,10 +98,10 @@ class TestAPTConfigureSchema:
},
"apt.primary.0.search: 'non-array' is not of type 'array'",
),
- (
- {"apt": {"primary": [{"arches": ["amd64"], "search": []}]}},
- re.escape("apt.primary.0.search: [] is too short"),
- ),
+ # (
+ # {"apt": {"primary": [{"arches": ["amd64"], "search": []}]}},
+ # re.escape("apt.primary.0.search: [] is too short"),
+ # ),
(
{
"apt": {
@@ -130,10 +130,10 @@ class TestAPTConfigureSchema:
{"apt": {"debconf_selections": True}},
"apt.debconf_selections: True is not of type 'object'",
),
- (
- {"apt": {"debconf_selections": {}}},
- "apt.debconf_selections: {} does not have enough properties",
- ),
+ # (
+ # {"apt": {"debconf_selections": {}}},
+ # "apt.debconf_selections: {} does not have enough properties",
+ # ),
(
{"apt": {"sources_list": True}},
"apt.sources_list: True is not of type 'string'",
@@ -166,10 +166,10 @@ class TestAPTConfigureSchema:
{"apt": {"sources": {"opaquekey": True}}},
"apt.sources.opaquekey: True is not of type 'object'",
),
- (
- {"apt": {"sources": {"opaquekey": {}}}},
- "apt.sources.opaquekey: {} does not have enough properties",
- ),
+ # (
+ # {"apt": {"sources": {"opaquekey": {}}}},
+ # "apt.sources.opaquekey: {} does not have enough properties",
+ # ),
(
{"apt": {"sources": {"opaquekey": {"boguskey": True}}}},
re.escape(
--- tests/unittests/config/test_cc_bootcmd.py.orig
+++ tests/unittests/config/test_cc_bootcmd.py
@@ -1,5 +1,5 @@
# This file is part of cloud-init. See LICENSE file for license information.
-import re
+# import re
import tempfile
import pytest
@@ -128,13 +128,13 @@ class TestBootCMDSchema:
"Cloud config schema errors: bootcmd: 1 is not of type"
" 'array'",
),
- ({"bootcmd": []}, re.escape("bootcmd: [] is too short")),
- (
- {"bootcmd": []},
- re.escape(
- "Cloud config schema errors: bootcmd: [] is too short"
- ),
- ),
+ # ({"bootcmd": []}, re.escape("bootcmd: [] is too short")),
+ # (
+ # {"bootcmd": []},
+ # re.escape(
+ # "Cloud config schema errors: bootcmd: [] is too short"
+ # ),
+ # ),
(
{
"bootcmd": [
--- tests/unittests/config/test_cc_ca_certs.py.orig
+++ tests/unittests/config/test_cc_ca_certs.py
@@ -394,10 +394,10 @@ class TestCACertsSchema:
{"ca_certs": 1},
"ca_certs: 1 is not of type 'object'",
),
- (
- {"ca_certs": {}},
- re.escape("ca_certs: {} does not have enough properties"),
- ),
+ # (
+ # {"ca_certs": {}},
+ # re.escape("ca_certs: {} does not have enough properties"),
+ # ),
(
{"ca_certs": {"boguskey": 1}},
re.escape(
@@ -413,10 +413,10 @@ class TestCACertsSchema:
{"ca_certs": {"trusted": [1]}},
"ca_certs.trusted.0: 1 is not of type 'string'",
),
- (
- {"ca_certs": {"trusted": []}},
- re.escape("ca_certs.trusted: [] is too short"),
- ),
+ # (
+ # {"ca_certs": {"trusted": []}},
+ # re.escape("ca_certs.trusted: [] is too short"),
+ # ),
),
)
@skipUnlessJsonSchema()
--- tests/unittests/config/test_cc_chef.py.orig
+++ tests/unittests/config/test_cc_chef.py
@@ -304,10 +304,10 @@ class TestBootCMDSchema:
{"chef": 1},
"chef: 1 is not of type 'object'",
),
- (
- {"chef": {}},
- re.escape(" chef: {} does not have enough properties"),
- ),
+ # (
+ # {"chef": {}},
+ # re.escape(" chef: {} does not have enough properties"),
+ # ),
(
{"chef": {"boguskey": True}},
re.escape(
@@ -319,10 +319,10 @@ class TestBootCMDSchema:
{"chef": {"directories": 1}},
"chef.directories: 1 is not of type 'array'",
),
- (
- {"chef": {"directories": []}},
- re.escape("chef.directories: [] is too short"),
- ),
+ # (
+ # {"chef": {"directories": []}},
+ # re.escape("chef.directories: [] is too short"),
+ # ),
(
{"chef": {"directories": [1]}},
"chef.directories.0: 1 is not of type 'string'",
--- tests/unittests/config/test_cc_lxd.py.orig
+++ tests/unittests/config/test_cc_lxd.py
@@ -385,7 +385,7 @@ class TestLXDSchema:
# Require bridge.mode
({"lxd": {"bridge": {}}}, "bridge: 'mode' is a required property"),
# Require init or bridge keys
- ({"lxd": {}}, "lxd: {} does not have enough properties"),
+ # ({"lxd": {}}, "lxd: {} does not have enough properties"),
# Require some non-empty preseed config of type string
({"lxd": {"preseed": {}}}, "not of type 'string'"),
({"lxd": {"preseed": ""}}, None),
--- tests/unittests/config/test_cc_mounts.py.orig
+++ tests/unittests/config/test_cc_mounts.py
@@ -583,9 +583,9 @@ class TestMountsSchema:
"config, error_msg",
[
# We expect to see one mount if provided in user-data.
- ({"mounts": []}, re.escape("mounts: [] is too short")),
+ # ({"mounts": []}, re.escape("mounts: [] is too short")),
# Disallow less than 1 item per mount entry
- ({"mounts": [[]]}, re.escape("mounts.0: [] is too short")),
+ # ({"mounts": [[]]}, re.escape("mounts.0: [] is too short")),
# Disallow more than 6 items per mount entry
({"mounts": [["1"] * 7]}, "mounts.0:.* is too long"),
# Disallow mount_default_fields will anything other than 6 items
--- tests/unittests/config/test_cc_package_update_upgrade_install.py.orig
+++ tests/unittests/config/test_cc_package_update_upgrade_install.py
@@ -17,7 +17,7 @@ class TestPackageUpdateUpgradeSchema:
# packages list with three entries (2 required)
({"packages": ["p1", ["p2", "p3", "p4"]]}, ""),
# empty packages list
- ({"packages": []}, "is too short"),
+ # ({"packages": []}, "is too short"),
(
{"apt_update": False},
(
--- tests/unittests/config/test_cc_runcmd.py.orig
+++ tests/unittests/config/test_cc_runcmd.py
@@ -90,7 +90,7 @@ class TestRunCmdSchema:
({"runcmd": ["echo bye", "echo bye"]}, None),
# Invalid schemas
({"runcmd": 1}, "1 is not of type 'array'"),
- ({"runcmd": []}, r"runcmd: \[\] is too short"),
+ # ({"runcmd": []}, r"runcmd: \[\] is too short"),
(
{
"runcmd": [
--- tests/unittests/config/test_cc_set_passwords.py.orig
+++ tests/unittests/config/test_cc_set_passwords.py
@@ -715,12 +715,12 @@ class TestSetPasswordsSchema:
{"chpasswd": {"list": ["user"]}},
pytest.raises(SchemaValidationError),
),
- (
- {"chpasswd": {"list": []}},
- pytest.raises(
- SchemaValidationError, match=r"\[\] is too short"
- ),
- ),
+ # (
+ # {"chpasswd": {"list": []}},
+ # pytest.raises(
+ # SchemaValidationError, match=r"\[\] is too short"
+ # ),
+ # ),
],
)
@skipUnlessJsonSchema()
--- tests/unittests/config/test_cc_snap.py.orig
+++ tests/unittests/config/test_cc_snap.py
@@ -279,16 +279,17 @@ class TestSnapSchema:
{"snap": {"commands": ["ls"], "invalid-key": ""}},
"Additional properties are not allowed",
),
- ({"snap": {}}, "{} does not have enough properties"),
+ # ({"snap": {}}, "{} does not have enough properties"),
(
{"snap": {"commands": "broken"}},
"'broken' is not of type 'object', 'array'",
),
- ({"snap": {"commands": []}}, r"snap.commands: \[\] is too short"),
- (
- {"snap": {"commands": {}}},
- r"snap.commands: {} does not have enough properties",
- ),
+ # ({"snap": {
+ # "commands": []}}, r"snap.commands: \[\] is too short"),
+ # (
+ # {"snap": {"commands": {}}},
+ # r"snap.commands: {} does not have enough properties",
+ # ),
({"snap": {"commands": [123]}}, ""),
({"snap": {"commands": {"01": 123}}}, ""),
({"snap": {"commands": [["snap", "install", 123]]}}, ""),
@@ -302,11 +303,11 @@ class TestSnapSchema:
{"snap": {"assertions": "broken"}},
"'broken' is not of type 'object', 'array'",
),
- ({"snap": {"assertions": []}}, r"\[\] is too short"),
- (
- {"snap": {"assertions": {}}},
- r"\{} does not have enough properties",
- ),
+ # ({"snap": {"assertions": []}}, r"\[\] is too short"),
+ # (
+ # {"snap": {"assertions": {}}},
+ # r"\{} does not have enough properties",
+ # ),
],
)
@skipUnlessJsonSchema()
--- tests/unittests/config/test_cc_write_files.py.orig
+++ tests/unittests/config/test_cc_write_files.py
@@ -222,7 +222,7 @@ class TestWriteFilesSchema:
[
# Top-level write_files type validation
({"write_files": 1}, "write_files: 1 is not of type 'array'"),
- ({"write_files": []}, re.escape("write_files: [] is too short")),
+ # ({"write_files": []}, re.escape("write_files: [] is too short")),
(
{"write_files": [{}]},
"write_files.0: 'path' is a required property",
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-nest-asyncio for openSUSE:Factory checked in at 2024-01-31 23:53:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-nest-asyncio (Old)
and /work/SRC/openSUSE:Factory/.python-nest-asyncio.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-nest-asyncio"
Wed Jan 31 23:53:25 2024 rev:9 rq:1142841 version:1.6.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-nest-asyncio/python-nest-asyncio.changes 2024-01-21 23:07:24.203421397 +0100
+++ /work/SRC/openSUSE:Factory/.python-nest-asyncio.new.1815/python-nest-asyncio.changes 2024-01-31 23:53:34.668616240 +0100
@@ -1,0 +2,7 @@
+Tue Jan 30 18:04:45 UTC 2024 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 1.6.0:
+ * Pre-empt current task before running handle, allowing unpatched
+ tasks
+
+-------------------------------------------------------------------
Old:
----
nest_asyncio-1.5.9.tar.gz
New:
----
nest_asyncio-1.6.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-nest-asyncio.spec ++++++
--- /var/tmp/diff_new_pack.NfjPoK/_old 2024-01-31 23:53:35.932661845 +0100
+++ /var/tmp/diff_new_pack.NfjPoK/_new 2024-01-31 23:53:35.932661845 +0100
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-nest-asyncio
-Version: 1.5.9
+Version: 1.6.0
Release: 0
Summary: Patch asyncio to allow nested event loops
License: BSD-2-Clause
++++++ nest_asyncio-1.5.9.tar.gz -> nest_asyncio-1.6.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nest_asyncio-1.5.9/PKG-INFO new/nest_asyncio-1.6.0/PKG-INFO
--- old/nest_asyncio-1.5.9/PKG-INFO 2024-01-15 15:01:12.687237300 +0100
+++ new/nest_asyncio-1.6.0/PKG-INFO 2024-01-21 15:25:16.197325700 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: nest_asyncio
-Version: 1.5.9
+Version: 1.6.0
Summary: Patch asyncio to allow nested event loops
Home-page: https://github.com/erdewit/nest_asyncio
Author: Ewald R. de Wit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nest_asyncio-1.5.9/nest_asyncio.egg-info/PKG-INFO new/nest_asyncio-1.6.0/nest_asyncio.egg-info/PKG-INFO
--- old/nest_asyncio-1.5.9/nest_asyncio.egg-info/PKG-INFO 2024-01-15 15:01:12.000000000 +0100
+++ new/nest_asyncio-1.6.0/nest_asyncio.egg-info/PKG-INFO 2024-01-21 15:25:16.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: nest-asyncio
-Version: 1.5.9
+Version: 1.6.0
Summary: Patch asyncio to allow nested event loops
Home-page: https://github.com/erdewit/nest_asyncio
Author: Ewald R. de Wit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nest_asyncio-1.5.9/nest_asyncio.py new/nest_asyncio-1.6.0/nest_asyncio.py
--- old/nest_asyncio-1.5.9/nest_asyncio.py 2024-01-15 14:55:26.000000000 +0100
+++ new/nest_asyncio-1.6.0/nest_asyncio.py 2024-01-21 15:10:29.000000000 +0100
@@ -13,7 +13,6 @@
"""Patch asyncio to make its event loop reentrant."""
_patch_asyncio()
_patch_policy()
- _patch_task()
_patch_tornado()
loop = loop or asyncio.get_event_loop()
@@ -126,7 +125,17 @@
break
handle = ready.popleft()
if not handle._cancelled:
- handle._run()
+ # preempt the current task so that that checks in
+ # Task.__step do not raise
+ curr_task = curr_tasks.pop(self, None)
+
+ try:
+ handle._run()
+ finally:
+ # restore the current task
+ if curr_task is not None:
+ curr_tasks[self] = curr_task
+
handle = None
@contextmanager
@@ -193,45 +202,11 @@
os.name == 'nt' and issubclass(cls, asyncio.ProactorEventLoop))
if sys.version_info < (3, 7, 0):
cls._set_coroutine_origin_tracking = cls._set_coroutine_wrapper
+ curr_tasks = asyncio.tasks._current_tasks \
+ if sys.version_info >= (3, 7, 0) else asyncio.Task._current_tasks
cls._nest_patched = True
-def _patch_task():
- """Patch the Task's step and enter/leave methods to make it reentrant."""
-
- def step(task, exc=None):
- curr_task = curr_tasks.get(task._loop)
- try:
- step_orig(task, exc)
- finally:
- if curr_task is None:
- curr_tasks.pop(task._loop, None)
- else:
- curr_tasks[task._loop] = curr_task
-
- Task = asyncio.Task
- if hasattr(Task, '_nest_patched'):
- return
- if sys.version_info >= (3, 7, 0):
-
- def enter_task(loop, task):
- curr_tasks[loop] = task
-
- def leave_task(loop, task):
- curr_tasks.pop(loop, None)
-
- asyncio.tasks._enter_task = enter_task
- asyncio.tasks._leave_task = leave_task
- curr_tasks = asyncio.tasks._current_tasks
- step_orig = Task._Task__step
- Task._Task__step = step
- else:
- curr_tasks = Task._current_tasks
- step_orig = Task._step
- Task._step = step
- Task._nest_patched = True
-
-
def _patch_tornado():
"""
If tornado is imported before nest_asyncio, make tornado aware of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nest_asyncio-1.5.9/setup.cfg new/nest_asyncio-1.6.0/setup.cfg
--- old/nest_asyncio-1.5.9/setup.cfg 2024-01-15 15:01:12.687237300 +0100
+++ new/nest_asyncio-1.6.0/setup.cfg 2024-01-21 15:25:16.198325600 +0100
@@ -1,6 +1,6 @@
[metadata]
name = nest_asyncio
-version = 1.5.9
+version = 1.6.0
author = Ewald R. de Wit
author_email = ewald.de.wit(a)gmail.com
license = BSD
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package virtiofsd for openSUSE:Factory checked in at 2024-01-31 23:53:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/virtiofsd (Old)
and /work/SRC/openSUSE:Factory/.virtiofsd.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virtiofsd"
Wed Jan 31 23:53:23 2024 rev:4 rq:1142838 version:1.10.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/virtiofsd/virtiofsd.changes 2023-09-02 22:07:22.914682372 +0200
+++ /work/SRC/openSUSE:Factory/.virtiofsd.new.1815/virtiofsd.changes 2024-01-31 23:53:32.812549276 +0100
@@ -1,0 +2,14 @@
+Tue Jan 30 17:09:25 UTC 2024 - caleb.crane(a)suse.com
+
+- Fix CVE-2023-50711: vmm-sys-util: out of bounds memory accesses (bsc#1218502, bsc#1218500)
+- Update to version 1.10.1:
+ * Bump version to v1.10.1
+ * Fix mandatory user namespaces
+ * Don't drop supplemental groups in unprivileged user namespace
+ * Bump version to v1.10.0
+ * Update rust-vmm dependencies (bsc#1218500)
+ * Bump version to v1.9.0
+- Spec: switch to using the upstream virtio-fs config file for qemu
+- Spec: switch back to greedy cargo updates of vendored dependencies
+
+-------------------------------------------------------------------
Old:
----
50-qemu-virtiofsd.json
virtiofsd-1.7.2.tar.xz
New:
----
virtiofsd-1.10.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ virtiofsd.spec ++++++
--- /var/tmp/diff_new_pack.h6GduW/_old 2024-01-31 23:53:34.136597045 +0100
+++ /var/tmp/diff_new_pack.h6GduW/_new 2024-01-31 23:53:34.136597045 +0100
@@ -1,7 +1,7 @@
#
# spec file for package virtiofsd
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: virtiofsd
-Version: 1.7.2
+Version: 1.10.1
Release: 0
Summary: vhost-user virtio-fs device backend written in Rust
Group: Development/Libraries/Rust
@@ -26,7 +26,6 @@
Source0: %{name}-%{version}.tar.xz
Source1: vendor.tar.xz
Source2: cargo_config
-Source3: 50-qemu-virtiofsd.json
BuildRequires: cargo-packaging
BuildRequires: libcap-ng-devel
BuildRequires: libseccomp-devel
@@ -47,7 +46,7 @@
%install
mkdir -p %{buildroot}%{_libexecdir}
install -D -p -m 0755 %{_builddir}/%{name}-%{version}/target/release/virtiofsd %{buildroot}%{_libexecdir}/virtiofsd
-install -D -p -m 0644 %{SOURCE3} %{buildroot}%{_datadir}/qemu/vhost-user/50-qemu-virtiofsd.json
+install -D -p -m 0644 %{_builddir}/%{name}-%{version}/50-virtiofsd.json %{buildroot}%{_datadir}/qemu/vhost-user/50-virtiofsd.json
%check
%{cargo_test}
@@ -57,5 +56,5 @@
%{_libexecdir}/virtiofsd
%dir %{_datadir}/qemu
%dir %{_datadir}/qemu/vhost-user
-%{_datadir}/qemu/vhost-user/50-qemu-virtiofsd.json
+%{_datadir}/qemu/vhost-user/50-virtiofsd.json
++++++ _service ++++++
--- /var/tmp/diff_new_pack.h6GduW/_old 2024-01-31 23:53:34.164598055 +0100
+++ /var/tmp/diff_new_pack.h6GduW/_new 2024-01-31 23:53:34.168598199 +0100
@@ -3,10 +3,11 @@
<param name="url">https://gitlab.com/virtio-fs/virtiofsd.git</param>
<param name="scm">git</param>
<param name="filename">virtiofsd</param>
- <param name="revision">v1.7.2</param>
+ <param name="revision">v1.10.1</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">[v]?([^\+]+)(.*)</param>
<param name="versionrewrite-replacement">\1</param>
+ <param name="changesgenerate">enable</param>
</service>
<service name="set_version" mode="disabled"/>
@@ -25,7 +26,7 @@
<service name="cargo_vendor" mode="disabled">
<param name="srcdir">virtiofsd</param>
<param name="compression">xz</param>
- <param name="update">false</param>
+ <param name="update">true</param>
</service>
</services>
++++++ vendor.tar.xz ++++++
/work/SRC/openSUSE:Factory/virtiofsd/vendor.tar.xz /work/SRC/openSUSE:Factory/.virtiofsd.new.1815/vendor.tar.xz differ: char 26, line 1
++++++ virtiofsd-1.7.2.tar.xz -> virtiofsd-1.10.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virtiofsd-1.7.2/50-qemu-virtiofsd.json new/virtiofsd-1.10.1/50-qemu-virtiofsd.json
--- old/virtiofsd-1.7.2/50-qemu-virtiofsd.json 2023-08-22 12:40:10.000000000 +0200
+++ new/virtiofsd-1.10.1/50-qemu-virtiofsd.json 1970-01-01 01:00:00.000000000 +0100
@@ -1,5 +0,0 @@
-{
- "description": "QEMU virtiofsd vhost-user-fs",
- "type": "fs",
- "binary": "/usr/libexec/virtiofsd"
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virtiofsd-1.7.2/50-virtiofsd.json new/virtiofsd-1.10.1/50-virtiofsd.json
--- old/virtiofsd-1.7.2/50-virtiofsd.json 1970-01-01 01:00:00.000000000 +0100
+++ new/virtiofsd-1.10.1/50-virtiofsd.json 2024-01-24 10:36:29.000000000 +0100
@@ -0,0 +1,5 @@
+{
+ "description": "virtiofsd vhost-user-fs",
+ "type": "fs",
+ "binary": "/usr/libexec/virtiofsd"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virtiofsd-1.7.2/Cargo.lock new/virtiofsd-1.10.1/Cargo.lock
--- old/virtiofsd-1.7.2/Cargo.lock 2023-08-22 12:40:10.000000000 +0200
+++ new/virtiofsd-1.10.1/Cargo.lock 2024-01-24 10:36:29.000000000 +0100
@@ -91,9 +91,9 @@
[[package]]
name = "bitflags"
-version = "2.3.3"
+version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
[[package]]
name = "capng"
@@ -469,7 +469,7 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "172891ebdceb05aa0005f533a6cbfca599ddd7d966f6f5d4d9b2e70478e70399"
dependencies = [
- "bitflags 2.3.3",
+ "bitflags 2.4.1",
"errno",
"libc",
"linux-raw-sys",
@@ -586,11 +586,11 @@
[[package]]
name = "vhost"
-version = "0.8.1"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61957aeb36daf0b00b87fff9c10dd28a161bd35ab157553d340d183b3d8756e6"
+checksum = "2b64e816d0d49769fbfaa1494eb77cc2a3ddc526ead05c7f922cb7d64106286f"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.1",
"libc",
"vm-memory",
"vmm-sys-util",
@@ -598,9 +598,9 @@
[[package]]
name = "vhost-user-backend"
-version = "0.10.1"
+version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab069cdedaf18a0673766eb0a07a0f4ee3ed1b8e17fbfe4aafe5b988e2de1d01"
+checksum = "72c8c447d076ac508d78cb45664d203df7989e891656dce260a7e93d72352c9a"
dependencies = [
"libc",
"log",
@@ -613,15 +613,15 @@
[[package]]
name = "virtio-bindings"
-version = "0.2.1"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c18d7b74098a946470ea265b5bacbbf877abc3373021388454de0d47735a5b98"
+checksum = "878bcb1b2812a10c30d53b0ed054999de3d98f25ece91fc173973f9c57aaae86"
[[package]]
name = "virtio-queue"
-version = "0.9.0"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35aca00da06841bd99162c381ec65893cace23ca0fb89254302cfe4bec4c300f"
+checksum = "e3f69a13d6610db9312acbb438b0390362af905d37634a2106be70c0f734986d"
dependencies = [
"log",
"virtio-bindings",
@@ -631,7 +631,7 @@
[[package]]
name = "virtiofsd"
-version = "1.7.2"
+version = "1.10.1"
dependencies = [
"bitflags 1.3.2",
"capng",
@@ -652,21 +652,23 @@
[[package]]
name = "vm-memory"
-version = "0.12.0"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a77c7a0891cbac53618f5f6eec650ed1dc4f7e506bbe14877aff49d94b8408b0"
+checksum = "74ffc42216c32c35f858fa4bfdcd9b61017dfd691e0240268fdc85dbf59e5459"
dependencies = [
"arc-swap",
+ "bitflags 2.4.1",
"libc",
"thiserror",
+ "vmm-sys-util",
"winapi",
]
[[package]]
name = "vmm-sys-util"
-version = "0.11.1"
+version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd64fe09d8e880e600c324e7d664760a17f56e9672b7495a86381b49e4f72f46"
+checksum = "1d1435039746e20da4f8d507a72ee1b916f7b4b05af7a91c093d2c6561934ede"
dependencies = [
"bitflags 1.3.2",
"libc",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virtiofsd-1.7.2/Cargo.toml new/virtiofsd-1.10.1/Cargo.toml
--- old/virtiofsd-1.7.2/Cargo.toml 2023-08-22 12:40:10.000000000 +0200
+++ new/virtiofsd-1.10.1/Cargo.toml 2024-01-24 10:36:29.000000000 +0100
@@ -1,7 +1,7 @@
[package]
name = "virtiofsd"
description = "A virtio-fs vhost-user device daemon"
-version = "1.7.2"
+version = "1.10.1"
authors = ["The Virtiofs Project Developers"]
edition = "2018"
homepage = "https://virtio-fs.gitlab.io/"
@@ -11,6 +11,10 @@
exclude = [".gitlab-ci.yml"]
+[features]
+# Enabling Xen support will _disable_ QEMU/KVM support!
+xen = ["vhost-user-backend/xen", "vhost/xen", "vm-memory/xen"]
+
[dependencies]
bitflags = "1.2"
capng = "0.2.2"
@@ -20,12 +24,12 @@
log = "0.4"
libseccomp-sys = "0.2"
clap = { version = "4", features = ["derive"] }
-vhost-user-backend = "0.10.1"
-vhost = "0.8.1"
-virtio-bindings = { version = "0.2", features = ["virtio-v5_0_0"] }
-vm-memory = { version = "0.12.0", features = ["backend-mmap", "backend-atomic"] }
-virtio-queue = "0.9.0"
-vmm-sys-util = "0.11.1"
+vhost-user-backend = "0.13.1"
+vhost = "0.10.0"
+virtio-bindings = { version = "0.2.1", features = ["virtio-v5_0_0"] }
+vm-memory = { version = "0.14.0", features = ["backend-mmap", "backend-atomic"] }
+virtio-queue = "0.11.0"
+vmm-sys-util = "0.12.1"
syslog = "6.0"
[profile.release]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virtiofsd-1.7.2/README.md new/virtiofsd-1.10.1/README.md
--- old/virtiofsd-1.7.2/README.md 2023-08-22 12:40:10.000000000 +0200
+++ new/virtiofsd-1.10.1/README.md 2024-01-24 10:36:29.000000000 +0100
@@ -167,6 +167,17 @@
Shared directory path.
```shell
+--tag <tag>
+```
+The tag that the virtio device advertises.
+
+Setting this option will enable advertising of VHOST_USER_PROTOCOL_F_CONFIG.
+However, the vhost-user frontend of your hypervisor may not negotiate this
+feature and (or) ignore this value. Notably, QEMU currently (as of 8.1) ignores
+the CONFIG feature. QEMU versions from 7.1 to 8.0 will crash while attempting to
+log a warning about not supporting the feature.
+
+```shell
--socket-group <socket-group>
```
Name of group for the vhost-user socket.
@@ -245,7 +256,7 @@
```shell
--cache <cache>
```
-The caching policy the file system should use (auto, always, never).
+The caching policy the file system should use (auto, always, metadata, never).
Default: auto.
@@ -324,13 +335,15 @@
-device virtio-blk,drive=hdd \
-chardev socket,id=char0,path=/tmp/vfsd.sock \
-device vhost-user-fs-pci,queue-size=1024,chardev=char0,tag=myfs \
- -object memory-backend-file,id=mem,size=4G,mem-path=/dev/shm,share=on \
+ -object memory-backend-memfd,id=mem,size=4G,share=on \
-numa node,memdev=mem \
-accel kvm -m 4G
guest# mount -t virtiofs myfs /mnt
```
+See [FAQ](#faq) for adding virtiofs config to an existing qemu command-line.
+
### Running as non-privileged user
When run without root, virtiofsd requires a user namespace (see `user_namespaces(7)`)
to be able to switch between arbitrary user/group IDs within the guest.
@@ -406,6 +419,23 @@
```
Note the use of `--announce-submounts` to prevent data loss/corruption.
+- How to add virtiofs devices to an existing qemu command-line:
+
+ If `-object memory-backend-memfd,id=mem` and either `-numa node,memdev=mem`
+ or a `memory-backend=mem` property in the `-machine` option
+ have not already been added to the command, add them.
+
+ If a different memory backend is already configured then it should be changed
+ to `memory-backend-memfd`.
+
+ `-object memory-backend-memfd` **must** have the option `share=on`
+ and `size=` **must** match the memory size defined by `-m`.
+
+ For each virtiofs device mount add a
+ `-chardev socket,id=${MATCHING_ID},path=${VIRTIOFSD_SOCKET_PATH}` and
+ `-device vhost-user-fs-pci,queue-size=1024,chardev=${MATCHING_ID},tag=${VIRTIOFS_TAG}`
+ substituting appropriate values for the shell-style variables.
+
## SELinux Support
One can enable support for SELinux by running virtiofsd with option
"--security-label". But this will try to save guest's security context
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virtiofsd-1.7.2/src/descriptor_utils.rs new/virtiofsd-1.10.1/src/descriptor_utils.rs
--- old/virtiofsd-1.7.2/src/descriptor_utils.rs 2023-08-22 12:40:10.000000000 +0200
+++ new/virtiofsd-1.10.1/src/descriptor_utils.rs 2024-01-24 10:36:29.000000000 +0100
@@ -291,9 +291,12 @@
for vs in bufs {
let copy_len = cmp::min(rem.len(), vs.len());
- // Safe because we have already verified that `vs` points to valid memory.
+ // SAFETY: Safe because we verify that we do not read outside
+ // of the slice's bound. The slice guard will only get dropped
+ // after the function returns. This will keep the pointer valid
+ // while reads are happening.
unsafe {
- copy_nonoverlapping(vs.as_ptr() as *const u8, rem.as_mut_ptr(), copy_len);
+ copy_nonoverlapping(vs.ptr_guard().as_ptr(), rem.as_mut_ptr(), copy_len);
}
rem = &mut rem[copy_len..];
total += copy_len;
@@ -405,9 +408,12 @@
for vs in bufs {
let copy_len = cmp::min(rem.len(), vs.len());
- // Safe because we have already verified that `vs` points to valid memory.
+ // SAFETY: Safe because we ensure that we do not write over the
+ // slice's bounds. The slice guard will only get dropped after
+ // the function returns. This will keep the pointer valid while
+ // writes are happening.
unsafe {
- copy_nonoverlapping(rem.as_ptr(), vs.as_ptr(), copy_len);
+ copy_nonoverlapping(rem.as_ptr(), vs.ptr_guard_mut().as_ptr(), copy_len);
}
vs.bitmap().mark_dirty(0, copy_len);
rem = &rem[copy_len..];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virtiofsd-1.7.2/src/file_traits.rs new/virtiofsd-1.10.1/src/file_traits.rs
--- old/virtiofsd-1.7.2/src/file_traits.rs 2023-08-22 12:40:10.000000000 +0200
+++ new/virtiofsd-1.10.1/src/file_traits.rs 2024-01-24 10:36:29.000000000 +0100
@@ -72,7 +72,8 @@
bufs: &[&VolatileSlice<B>],
offset: u64,
) -> Result<usize> {
- let iovecs: Vec<libc::iovec> = bufs
+ let slice_guards: Vec<_> = bufs.iter().map(|s| s.ptr_guard_mut()).collect();
+ let iovecs: Vec<libc::iovec> = slice_guards
.iter()
.map(|s| libc::iovec {
iov_base: s.as_ptr() as *mut c_void,
@@ -84,8 +85,10 @@
return Ok(0);
}
- // Safe because only bytes inside the buffers are accessed and the kernel is
- // expected to handle arbitrary memory for I/O.
+ // SAFETY: Safe because only bytes inside the buffers are
+ // accessed and the kernel is expected to handle arbitrary
+ // memory for I/O. The pointers into the slice are valid since
+ // the slice_guards are still in scope.
let ret = unsafe {
preadv64(
self.as_raw_fd(),
@@ -119,7 +122,8 @@
offset: u64,
flags: Option<oslib::WritevFlags>,
) -> Result<usize> {
- let iovecs: Vec<libc::iovec> = bufs
+ let slice_guards: Vec<_> = bufs.iter().map(|s| s.ptr_guard()).collect();
+ let iovecs: Vec<libc::iovec> = slice_guards
.iter()
.map(|s| libc::iovec {
iov_base: s.as_ptr() as *mut c_void,
@@ -131,8 +135,10 @@
return Ok(0);
}
- // SAFETY: Each `libc::iovec` element is created from a `VolatileSlice`
- // of the guest memory.
+ // SAFETY: Each `libc::iovec` element is created from a
+ // `VolatileSlice` of the guest memory. The pointers are valid
+ // because the slice guards are still in scope. We also ensure
+ // that we do not read over the slice bounds.
unsafe {
oslib::writev_at(
self.as_fd(),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virtiofsd-1.7.2/src/fs_cache_req_handler.rs new/virtiofsd-1.10.1/src/fs_cache_req_handler.rs
--- old/virtiofsd-1.7.2/src/fs_cache_req_handler.rs 2023-08-22 12:40:10.000000000 +0200
+++ new/virtiofsd-1.10.1/src/fs_cache_req_handler.rs 2024-01-24 10:36:29.000000000 +0100
@@ -2,9 +2,9 @@
use std::io;
use std::os::unix::io::RawFd;
use vhost::vhost_user::message::{
- VhostUserFSSlaveMsg, VhostUserFSSlaveMsgFlags, VHOST_USER_FS_SLAVE_ENTRIES,
+ VhostUserFSBackendMsg, VhostUserFSBackendMsgFlags, VHOST_USER_FS_BACKEND_ENTRIES,
};
-use vhost::vhost_user::{Slave, VhostUserMasterReqHandler};
+use vhost::vhost_user::{Backend, VhostUserFrontendReqHandler};
/// Trait for virtio-fs cache requests operations. This is mainly used to hide
/// vhost-user details from virtio-fs's fuse part.
@@ -23,7 +23,7 @@
fn unmap(&mut self, requests: Vec<fuse::RemovemappingOne>) -> io::Result<()>;
}
-impl FsCacheReqHandler for Slave {
+impl FsCacheReqHandler for Backend {
fn map(
&mut self,
foffset: u64,
@@ -32,30 +32,30 @@
flags: u64,
fd: RawFd,
) -> io::Result<()> {
- let mut msg: VhostUserFSSlaveMsg = Default::default();
+ let mut msg: VhostUserFSBackendMsg = Default::default();
msg.fd_offset[0] = foffset;
msg.cache_offset[0] = moffset;
msg.len[0] = len;
msg.flags[0] = if (flags & fuse::SetupmappingFlags::WRITE.bits()) != 0 {
- VhostUserFSSlaveMsgFlags::MAP_W | VhostUserFSSlaveMsgFlags::MAP_R
+ VhostUserFSBackendMsgFlags::MAP_W | VhostUserFSBackendMsgFlags::MAP_R
} else {
- VhostUserFSSlaveMsgFlags::MAP_R
+ VhostUserFSBackendMsgFlags::MAP_R
};
- self.fs_slave_map(&msg, &fd)?;
+ self.fs_backend_map(&msg, &fd)?;
Ok(())
}
fn unmap(&mut self, requests: Vec<fuse::RemovemappingOne>) -> io::Result<()> {
- for chunk in requests.chunks(VHOST_USER_FS_SLAVE_ENTRIES) {
- let mut msg: VhostUserFSSlaveMsg = Default::default();
+ for chunk in requests.chunks(VHOST_USER_FS_BACKEND_ENTRIES) {
+ let mut msg: VhostUserFSBackendMsg = Default::default();
for (ind, req) in chunk.iter().enumerate() {
msg.len[ind] = req.len;
msg.cache_offset[ind] = req.moffset;
}
- self.fs_slave_unmap(&msg)?;
+ self.fs_backend_unmap(&msg)?;
}
Ok(())
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virtiofsd-1.7.2/src/main.rs new/virtiofsd-1.10.1/src/main.rs
--- old/virtiofsd-1.7.2/src/main.rs 2023-08-22 12:40:10.000000000 +0200
+++ new/virtiofsd-1.10.1/src/main.rs 2024-01-24 10:36:29.000000000 +0100
@@ -21,7 +21,7 @@
use vhost::vhost_user::message::*;
use vhost::vhost_user::Error::Disconnected;
-use vhost::vhost_user::{Listener, Slave};
+use vhost::vhost_user::{Backend, Listener};
use vhost_user_backend::Error::HandleRequest;
use vhost_user_backend::{VhostUserBackend, VhostUserDaemon, VringMutex, VringState, VringT};
use virtio_bindings::bindings::virtio_config::*;
@@ -37,18 +37,27 @@
use virtiofsd::server::Server;
use virtiofsd::util::write_pid_file;
use virtiofsd::{limits, oslib, Error as VhostUserFsError};
-use vm_memory::{GuestAddressSpace, GuestMemoryAtomic, GuestMemoryLoadGuard, GuestMemoryMmap};
+use vm_memory::{
+ ByteValued, GuestAddressSpace, GuestMemoryAtomic, GuestMemoryLoadGuard, GuestMemoryMmap, Le32,
+};
use vmm_sys_util::epoll::EventSet;
use vmm_sys_util::eventfd::EventFd;
const QUEUE_SIZE: usize = 1024;
-const NUM_QUEUES: usize = 2;
+// The spec allows for multiple request queues. We currently only support one.
+const REQUEST_QUEUES: u32 = 1;
+// In addition to the request queue there is one high-prio queue.
+// Since VIRTIO_FS_F_NOTIFICATION is not advertised we do not have a
+// notification queue.
+const NUM_QUEUES: usize = REQUEST_QUEUES as usize + 1;
// The guest queued an available buffer for the high priority queue.
const HIPRIO_QUEUE_EVENT: u16 = 0;
// The guest queued an available buffer for the request queue.
const REQ_QUEUE_EVENT: u16 = 1;
+const MAX_TAG_LEN: usize = 36;
+
type Result<T> = std::result::Result<T, Error>;
type VhostUserBackendResult<T> = std::result::Result<T, std::io::Error>;
@@ -74,6 +83,8 @@
QueueWriter(VufDescriptorError),
/// The unshare(CLONE_FS) call failed.
UnshareCloneFs(io::Error),
+ /// Invalid tag name
+ InvalidTag,
}
impl fmt::Display for Error {
@@ -88,6 +99,10 @@
runtime seccomp policy allows unshare."
)
}
+ Self::InvalidTag => write!(
+ f,
+ "The tag may not be empty or longer than {MAX_TAG_LEN} bytes (encoded as UTF-8)."
+ ),
_ => write!(f, "{self:?}"),
}
}
@@ -105,8 +120,8 @@
mem: Option<GuestMemoryAtomic<GuestMemoryMmap>>,
kill_evt: EventFd,
server: Arc<Server<F>>,
- // handle request from slave to master
- vu_req: Option<Slave>,
+ // handle request from backend to frontend
+ vu_req: Option<Backend>,
event_idx: bool,
pool: Option<ThreadPool>,
}
@@ -284,7 +299,7 @@
&self,
device_event: u16,
vrings: &[VringMutex],
- ) -> VhostUserBackendResult<bool> {
+ ) -> VhostUserBackendResult<()> {
let idx = match device_event {
HIPRIO_QUEUE_EVENT => {
debug!("HIPRIO_QUEUE_EVENT");
@@ -314,14 +329,14 @@
self.process_queue_pool(vrings[idx].clone())?;
}
- Ok(false)
+ Ok(())
}
fn handle_event_serial(
&self,
device_event: u16,
vrings: &[VringMutex],
- ) -> VhostUserBackendResult<bool> {
+ ) -> VhostUserBackendResult<()> {
let mut vring_state = match device_event {
HIPRIO_QUEUE_EVENT => {
debug!("HIPRIO_QUEUE_EVENT");
@@ -351,22 +366,46 @@
self.process_queue_serial(&mut vring_state)?;
}
- Ok(false)
+ Ok(())
+ }
+}
+
+#[repr(C)]
+#[derive(Clone, Copy)]
+struct VirtioFsConfig {
+ tag: [u8; MAX_TAG_LEN],
+ num_request_queues: Le32,
+}
+
+// vm-memory needs a Default implementation even though these values are never
+// used anywhere...
+impl Default for VirtioFsConfig {
+ fn default() -> Self {
+ Self {
+ tag: [0; MAX_TAG_LEN],
+ num_request_queues: Le32::default(),
+ }
}
}
+unsafe impl ByteValued for VirtioFsConfig {}
+
struct VhostUserFsBackend<F: FileSystem + Send + Sync + 'static> {
thread: RwLock<VhostUserFsThread<F>>,
+ tag: Option<String>,
}
impl<F: FileSystem + Send + Sync + 'static> VhostUserFsBackend<F> {
- fn new(fs: F, thread_pool_size: usize) -> Result<Self> {
+ fn new(fs: F, thread_pool_size: usize, tag: Option<String>) -> Result<Self> {
let thread = RwLock::new(VhostUserFsThread::new(fs, thread_pool_size)?);
- Ok(VhostUserFsBackend { thread })
+ Ok(VhostUserFsBackend { thread, tag })
}
}
-impl<F: FileSystem + Send + Sync + 'static> VhostUserBackend<VringMutex> for VhostUserFsBackend<F> {
+impl<F: FileSystem + Send + Sync + 'static> VhostUserBackend for VhostUserFsBackend<F> {
+ type Bitmap = ();
+ type Vring = VringMutex;
+
fn num_queues(&self) -> usize {
NUM_QUEUES
}
@@ -383,11 +422,50 @@
}
fn protocol_features(&self) -> VhostUserProtocolFeatures {
- VhostUserProtocolFeatures::MQ
- | VhostUserProtocolFeatures::SLAVE_REQ
- | VhostUserProtocolFeatures::SLAVE_SEND_FD
+ let mut protocol_features = VhostUserProtocolFeatures::MQ
+ | VhostUserProtocolFeatures::BACKEND_REQ
+ | VhostUserProtocolFeatures::BACKEND_SEND_FD
| VhostUserProtocolFeatures::REPLY_ACK
- | VhostUserProtocolFeatures::CONFIGURE_MEM_SLOTS
+ | VhostUserProtocolFeatures::CONFIGURE_MEM_SLOTS;
+
+ if self.tag.is_some() {
+ protocol_features |= VhostUserProtocolFeatures::CONFIG;
+ }
+
+ protocol_features
+ }
+
+ fn get_config(&self, offset: u32, size: u32) -> Vec<u8> {
+ // virtio spec 1.2, 5.11.4:
+ // The tag is encoded in UTF-8 and padded with NUL bytes if shorter than
+ // the available space. This field is not NUL-terminated if the encoded
+ // bytes take up the entire field.
+ // The length was already checked when parsing the arguments. Hence, we
+ // only assert that everything looks sane and pad with NUL bytes to the
+ // fixed length.
+ let tag = self.tag.as_ref().expect("Did not expect read of config if tag is not set. We do not advertise F_CONFIG in that case!");
+ assert!(tag.len() <= MAX_TAG_LEN, "too long tag length");
+ assert!(!tag.is_empty(), "tag should not be empty");
+ let mut fixed_len_tag = [0; MAX_TAG_LEN];
+ fixed_len_tag[0..tag.len()].copy_from_slice(tag.as_bytes());
+
+ let config = VirtioFsConfig {
+ tag: fixed_len_tag,
+ num_request_queues: Le32::from(REQUEST_QUEUES),
+ };
+
+ let offset = offset as usize;
+ let size = size as usize;
+ let mut result: Vec<_> = config
+ .as_slice()
+ .iter()
+ .skip(offset)
+ .take(size)
+ .copied()
+ .collect();
+ // pad with 0s up to `size`
+ result.resize(size, 0);
+ result
}
fn set_event_idx(&self, enabled: bool) {
@@ -405,7 +483,7 @@
evset: EventSet,
vrings: &[VringMutex],
_thread_id: usize,
- ) -> VhostUserBackendResult<bool> {
+ ) -> VhostUserBackendResult<()> {
if evset != EventSet::IN {
return Err(Error::HandleEventNotEpollIn.into());
}
@@ -423,7 +501,7 @@
Some(self.thread.read().unwrap().kill_evt.try_clone().unwrap())
}
- fn set_slave_req_fd(&self, vu_req: Slave) {
+ fn set_backend_req_fd(&self, vu_req: Backend) {
self.thread.write().unwrap().vu_req = Some(vu_req);
}
}
@@ -479,6 +557,14 @@
}
}
+fn parse_tag(tag: &str) -> Result<String> {
+ if !tag.is_empty() && tag.len() <= MAX_TAG_LEN {
+ Ok(tag.into())
+ } else {
+ Err(Error::InvalidTag)
+ }
+}
+
#[derive(Clone, Debug, Parser)]
#[command(
name = "virtiofsd",
@@ -491,6 +577,17 @@
#[arg(long)]
shared_dir: Option<String>,
+ /// The tag that the virtio device advertises
+ ///
+ /// Setting this option will enable advertising of
+ /// VHOST_USER_PROTOCOL_F_CONFIG. However, the vhost-user frontend of your
+ /// hypervisor may not negotiate this feature and (or) ignore this value.
+ /// Notably, QEMU currently (as of 8.1) ignores the CONFIG feature. QEMU
+ /// versions from 7.1 to 8.0 will crash while attempting to log a warning
+ /// about not supporting the feature.
+ #[arg(long, value_parser = parse_tag)]
+ tag: Option<String>,
+
/// vhost-user socket path [deprecated]
#[arg(long, required_unless_present_any = &["fd", "socket_path", "print_capabilities"])]
socket: Option<String>,
@@ -559,7 +656,7 @@
#[arg(long, require_equals = true, default_value = "never")]
inode_file_handles: InodeFileHandlesCommandLineMode,
- /// The caching policy the file system should use (auto, always, never)
+ /// The caching policy the file system should use (auto, always, never, metadata)
#[arg(long, default_value = "auto")]
cache: CachePolicy,
@@ -674,6 +771,7 @@
"auto" => opt.cache = CachePolicy::Auto,
"always" => opt.cache = CachePolicy::Always,
"none" => opt.cache = CachePolicy::Never,
+ "metadata" => opt.cache = CachePolicy::Metadata,
_ => value_error("cache", value),
},
["loglevel", value] => match value {
@@ -925,6 +1023,7 @@
let timeout = match opt.cache {
CachePolicy::Never => Duration::from_secs(0),
+ CachePolicy::Metadata => Duration::from_secs(86400),
CachePolicy::Auto => Duration::from_secs(1),
CachePolicy::Always => Duration::from_secs(86400),
};
@@ -1059,7 +1158,7 @@
};
let fs_backend = Arc::new(
- VhostUserFsBackend::new(fs, thread_pool_size).unwrap_or_else(|error| {
+ VhostUserFsBackend::new(fs, thread_pool_size, opt.tag).unwrap_or_else(|error| {
error!("Error creating vhost-user backend: {}", error);
process::exit(1)
}),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virtiofsd-1.7.2/src/passthrough/mod.rs new/virtiofsd-1.10.1/src/passthrough/mod.rs
--- old/virtiofsd-1.7.2/src/passthrough/mod.rs 2023-08-22 12:40:10.000000000 +0200
+++ new/virtiofsd-1.10.1/src/passthrough/mod.rs 2024-01-24 10:36:29.000000000 +0100
@@ -77,6 +77,15 @@
/// the FUSE client (i.e., the file system does not have exclusive access to the directory).
Never,
+ /// This is almost same as Never, but it allows page cache of directories, dentries and attr
+ /// cache in guest. In other words, it acts like cache=never for normal files, and like
+ /// cache=always for directories, besides, metadata like dentries and attrs are kept as well.
+ /// This policy can be used if:
+ /// 1. the client wants to use Never policy but it's performance in I/O is not good enough
+ /// 2. the file system has exclusive access to the directory
+ /// 3. cache directory content and other fs metadata can make a difference on performance.
+ Metadata,
+
/// The client is free to choose when and how to cache file data. This is the default policy and
/// uses close-to-open consistency as described in the enum documentation.
#[default]
@@ -93,10 +102,11 @@
type Err = &'static str;
fn from_str(s: &str) -> Result<Self, Self::Err> {
- match s {
- "never" | "Never" | "NEVER" => Ok(CachePolicy::Never),
- "auto" | "Auto" | "AUTO" => Ok(CachePolicy::Auto),
- "always" | "Always" | "ALWAYS" => Ok(CachePolicy::Always),
+ match &s.to_lowercase()[..] {
+ "never" => Ok(CachePolicy::Never),
+ "metadata" => Ok(CachePolicy::Metadata),
+ "auto" => Ok(CachePolicy::Auto),
+ "always" => Ok(CachePolicy::Always),
_ => Err("invalid cache policy"),
}
}
@@ -792,6 +802,13 @@
OpenOptions::DIRECT_IO,
flags & (libc::O_DIRECTORY as u32) == 0,
),
+ CachePolicy::Metadata => {
+ if flags & (libc::O_DIRECTORY as u32) == 0 {
+ opts |= OpenOptions::DIRECT_IO;
+ } else {
+ opts |= OpenOptions::CACHE_DIR | OpenOptions::KEEP_CACHE;
+ }
+ }
CachePolicy::Always => {
opts |= OpenOptions::KEEP_CACHE;
if flags & (libc::O_DIRECTORY as u32) != 0 {
@@ -1435,6 +1452,7 @@
let mut opts = OpenOptions::empty();
match self.cfg.cache_policy {
CachePolicy::Never => opts |= OpenOptions::DIRECT_IO,
+ CachePolicy::Metadata => opts |= OpenOptions::DIRECT_IO,
CachePolicy::Always => opts |= OpenOptions::KEEP_CACHE,
_ => {}
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virtiofsd-1.7.2/src/sandbox.rs new/virtiofsd-1.10.1/src/sandbox.rs
--- old/virtiofsd-1.7.2/src/sandbox.rs 2023-08-22 12:40:10.000000000 +0200
+++ new/virtiofsd-1.10.1/src/sandbox.rs 2024-01-24 10:36:29.000000000 +0100
@@ -8,6 +8,7 @@
use std::fs::{self, File};
use std::io::{Read, Write};
use std::os::unix::io::{AsRawFd, FromRawFd};
+use std::path::Path;
use std::process::{self, Command};
use std::str::FromStr;
use std::{error, fmt, io};
@@ -402,10 +403,16 @@
// Setup uid/gid mappings
if uid != 0 {
let ppid = unsafe { libc::getppid() };
- if let Err(why) =
+ if let Err(error) =
self.setup_id_mappings(self.uid_map.as_ref(), self.gid_map.as_ref(), ppid)
{
- panic!("couldn't setup id mappings: {}", why)
+ // We don't really need to close the pipes here, since the OS will close the FDs
+ // after the process exits. But let's do it explicitly to signal an error to the
+ // other end of the pipe.
+ drop(x_reader);
+ drop(y_writer);
+ error!("sandbox: couldn't setup id mappings: {}", error);
+ process::exit(1);
};
}
@@ -432,7 +439,9 @@
.write_all(&[IdMapSetUpPipeMessage::Request as u8])
.unwrap();
- // Receive the signal that mapping is done
+ // Receive the signal that mapping is done. If the child process exits
+ // before setting up the mapping, closing the pipe before sending the
+ // message, `read_exact()` will fail with `UnexpectedEof`.
y_reader
.read_exact(&mut output)
.unwrap_or_else(|_| process::exit(1));
@@ -495,6 +504,37 @@
Ok(())
}
+ fn must_drop_supplemental_groups(&self) -> Result<bool, Error> {
+ let uid = unsafe { libc::geteuid() };
+ if uid != 0 {
+ return Ok(false);
+ }
+
+ // If we are running as root and the system does not support user namespaces,
+ // we must drop supplemental groups.
+ if !Path::new("/proc/self/ns/user").exists() {
+ return Ok(true);
+ }
+
+ let uid_mmap_data =
+ fs::read_to_string("/proc/self/uid_map").map_err(Error::DropSupplementalGroups)?;
+ let uid_map: Vec<_> = uid_mmap_data.split_whitespace().collect();
+
+ let gid_map_data =
+ fs::read_to_string("/proc/self/gid_map").map_err(Error::DropSupplementalGroups)?;
+ let gid_map: Vec<_> = gid_map_data.split_whitespace().collect();
+
+ let setgroups =
+ fs::read_to_string("/proc/self/setgroups").map_err(Error::DropSupplementalGroups)?;
+
+ // A single line mapping only has 3 fields, and the 'count' field should
+ // be 1.
+ let single_uid_mapping = uid_map.len() == 3 && uid_map[2] == "1";
+ let single_gid_mapping = gid_map.len() == 3 && gid_map[2] == "1";
+
+ Ok(setgroups.trim() != "deny" || !single_uid_mapping || !single_gid_mapping)
+ }
+
fn drop_supplemental_groups(&self) -> Result<(), Error> {
let ngroups = unsafe { libc::getgroups(0, std::ptr::null_mut()) };
if ngroups < 0 {
@@ -526,19 +566,26 @@
return Err(Error::SandboxModeInvalidGidMap);
}
- // Drop supplemental groups. This is running as root and will
- // support arbitrary uid/gid switching and we don't want to
- // retain membership of any supplementary groups.
- //
- // This is not necessarily required for non-root case, where
- // unprivileged user has started us. We are not going to setup
- // any sandbox or we will setup one user namespace with 1:1
- // mapping and there is no arbitrary uid/gid switching at all.
- // In this mode setgroups() is not allowed, so we can't drop
- // supplementary groups even if wanted to. Only way to do this
- // will be to use newuidmap/newgidmap to setup user namespace
- // which will allow setgroups().
- if uid == 0 {
+ // We must drop supplemental groups membership if we support switching
+ // between arbitrary uids/gids, unless the following conditions are met:
+ // we're not running as root or we are inside a user namespace with only
+ // one uid and gid mapping and '/proc/self/setgroups' is equal to
+ // "deny". In both of these cases, no arbitrary uid/gid switching is
+ // possible and thus there's no need to drop supplemental groups. In
+ // both of these scenarios calling setgroups() is also not allowed so we
+ // avoid calling it since we know it will return a privilege error.
+ let must_drop_supplemental_groups = match self.must_drop_supplemental_groups() {
+ Ok(must_drop) => must_drop,
+ Err(error) => {
+ warn!(
+ "Failed to determine whether supplemental groups must be dropped: {error}; \
+ defaulting to trying to drop supplemental groups"
+ );
+ true
+ }
+ };
+
+ if must_drop_supplemental_groups {
self.drop_supplemental_groups()?;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virtiofsd-1.7.2/src/seccomp.rs new/virtiofsd-1.10.1/src/seccomp.rs
--- old/virtiofsd-1.7.2/src/seccomp.rs 2023-08-22 12:40:10.000000000 +0200
+++ new/virtiofsd-1.10.1/src/seccomp.rs 2024-01-24 10:36:29.000000000 +0100
@@ -106,7 +106,7 @@
allow_syscall!(ctx, libc::SYS_fsetxattr);
#[cfg(not(target_arch = "loongarch64"))]
allow_syscall!(ctx, libc::SYS_fstat);
- #[cfg(target_arch = "s390x")]
+ #[cfg(any(target_arch = "s390x", target_arch = "powerpc64"))]
allow_syscall!(ctx, libc::SYS_fstatfs64);
allow_syscall!(ctx, libc::SYS_fstatfs);
allow_syscall!(ctx, libc::SYS_fsync);
@@ -122,6 +122,7 @@
allow_syscall!(ctx, libc::SYS_getegid);
allow_syscall!(ctx, libc::SYS_geteuid);
allow_syscall!(ctx, libc::SYS_getpid);
+ allow_syscall!(ctx, libc::SYS_getrandom);
allow_syscall!(ctx, libc::SYS_gettid);
allow_syscall!(ctx, libc::SYS_gettimeofday);
allow_syscall!(ctx, libc::SYS_getxattr);
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package local-npm-registry for openSUSE:Factory checked in at 2024-01-31 23:53:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/local-npm-registry (Old)
and /work/SRC/openSUSE:Factory/.local-npm-registry.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "local-npm-registry"
Wed Jan 31 23:53:22 2024 rev:5 rq:1142809 version:1.0.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/local-npm-registry/local-npm-registry.changes 2024-01-04 15:57:20.948412916 +0100
+++ /work/SRC/openSUSE:Factory/.local-npm-registry.new.1815/local-npm-registry.changes 2024-01-31 23:53:30.048449553 +0100
@@ -1,0 +2,8 @@
+Tue Jan 30 14:43:02 UTC 2024 - Adam Majer <adam.majer(a)suse.de>
+
+- update to 1.0.2
+ * --help invocation fixes
+ * cleanup npm's config.registry on exit
+ * adds support for non-standard alternative versions
+
+-------------------------------------------------------------------
Old:
----
local_npm_registry-v1.0.1.tar.gz
New:
----
local_npm_registry-v1.0.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ local-npm-registry.spec ++++++
--- /var/tmp/diff_new_pack.kG2YfV/_old 2024-01-31 23:53:30.956482313 +0100
+++ /var/tmp/diff_new_pack.kG2YfV/_new 2024-01-31 23:53:30.956482313 +0100
@@ -1,7 +1,7 @@
#
# spec file for package local-npm-registry
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: local-npm-registry
-Version: 1.0.1
+Version: 1.0.2
Release: 0
Summary: Localhost-only version of NPM registry
License: GPL-3.0-or-later
++++++ local_npm_registry-v1.0.1.tar.gz -> local_npm_registry-v1.0.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local_npm_registry-v1.0.1/dist/index.d.ts new/local_npm_registry-v1.0.2/dist/index.d.ts
--- old/local_npm_registry-v1.0.1/dist/index.d.ts 2023-07-21 15:45:01.492368395 +0200
+++ new/local_npm_registry-v1.0.2/dist/index.d.ts 2024-01-30 15:38:06.289031984 +0100
@@ -16,5 +16,5 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-declare function mainEntryFunction(): void;
+declare function mainEntryFunction(): Promise<void>;
export { mainEntryFunction };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local_npm_registry-v1.0.1/dist/index.js new/local_npm_registry-v1.0.2/dist/index.js
--- old/local_npm_registry-v1.0.1/dist/index.js 2023-07-21 15:45:01.492368395 +0200
+++ new/local_npm_registry-v1.0.2/dist/index.js 2024-01-30 15:38:06.289031984 +0100
@@ -33,7 +33,8 @@
for (let i = 0; i < concurrent_processes; i++)
processes.push(Promise.resolve(0));
for (let i = 2; i < process_1.argv.length; ++i) {
- processes[i % concurrent_processes] = processes[i % concurrent_processes].then((processed) => registry.register(process_1.argv[i]).then(n => {
+ const fn = process_1.argv[i];
+ processes[i % concurrent_processes] = processes[i % concurrent_processes].then((processed) => registry.register(fn).then(n => {
if (n == 0)
install_options.push(process_1.argv[i]);
return processed + n;
@@ -65,6 +66,14 @@
});
});
}
+function cleanupNpmLocalhostConfig() {
+ return new Promise((accept, reject) => {
+ (0, child_process_1.spawn)("npm", ['config', 'delete', 'registry'])
+ .on("exit", (code) => {
+ code === 0 ? accept() : reject();
+ });
+ });
+}
function runNpmInstall() {
if (install_options.length === 0) {
console.log("npm install skipped");
@@ -84,23 +93,26 @@
function mainEntryFunction() {
if (process_1.argv.includes("--help")) {
printHelpInformation();
+ return;
}
const registry = new registry_1.Registry();
registry.addBackend(new fs_registry_1.TarballRegistryBackend);
registry.addBackend(new dir_registry_1.DirRegistryBackend);
const service = new service_1.Service({ url: new url_1.URL("http://localhost") });
registry.serviceProvider = service;
- registerTarballsFromCommandline(registry)
+ return registerTarballsFromCommandline(registry)
.then(() => setupServerAndGetPort(service, registry))
.then(port => configureNpmToSpecificLocalhostPort(service, port))
.then(() => runNpmInstall())
.then(() => {
console.log("npm done. Shutting down proxy");
- return service.stop();
})
.catch(msg => {
console.log("An error occurred: " + msg);
- process.exit(1);
+ })
+ .finally(() => {
+ return service.stop()
+ .then(cleanupNpmLocalhostConfig);
});
}
exports.mainEntryFunction = mainEntryFunction;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local_npm_registry-v1.0.1/dist/index.js.map new/local_npm_registry-v1.0.2/dist/index.js.map
--- old/local_npm_registry-v1.0.1/dist/index.js.map 2023-07-21 15:45:01.492368395 +0200
+++ new/local_npm_registry-v1.0.2/dist/index.js.map 2024-01-30 15:38:06.289031984 +0100
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;EAiBE;;;AAEF,qCAA8B;AAC9B,iDAAqC;AACrC,6BAA0B;AAE1B,yCAAsC;AACtC,uCAAoC;AACpC,+CAAuD;AACvD,iDAAmD;AAEnD,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,eAAe,GAAY,EAAE,CAAC;AAEpC,SAAS,+BAA+B,CAAC,QAAiB;IACzD,MAAM,SAAS,GAAqB,EAAE,CAAC;IACvC,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,oBAAoB,EAAE,CAAC,EAAE;QACxC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,cAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACjC,MAAM,EAAE,GAAG,cAAI,CAAC,CAAC,CAAC,CAAC;QAEnB,SAAS,CAAC,CAAC,GAAC,oBAAoB,CAAC,GAAG,SAAS,CAAC,CAAC,GAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACxH,IAAI,CAAC,IAAI,CAAC;gBACT,eAAe,CAAC,IAAI,CAAC,cAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/B,OAAO,SAAS,GAAG,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EA
AE;QAC3C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/B,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QAElB,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe,EAAE,QAAiB;IAChE,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YACzD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAC3B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,mCAAmC,CAAC,OAAe,EAAE,IAA2B;IACxF,OAAO,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACrC,IAAA,qBAAK,EAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAC,KAAK,EAAE,SAAS,EAAC,CAAC;aACtF,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACpB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAClC,CAAC,CAAC,
CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB;IACjC,OAAO,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACrC,IAAA,qBAAK,EAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;aAC7C,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACpB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa;IACrB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;QACjC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;KAC7C;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACrC,IAAA,qBAAK,EAAC,KAAK,EAAE,eAAe,EAAE,EAAC,KAAK,EAAE,SAAS,EAAC,CAAC;aAChD,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACpB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB;IAC5B,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;IAC9F,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,iBAAiB;IACzB,IAAI,cAAI,CAAC,QAAQ,CAAC,QAAQ,CA
AC,EAAE;QAC5B,oBAAoB,EAAE,CAAC;QACvB,OAAO;KACP;IAED,MAAM,QAAQ,GAAG,IAAI,mBAAQ,EAAE,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,IAAI,oCAAsB,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,CAAC,IAAI,iCAAkB,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAC,GAAG,EAAE,IAAI,SAAG,CAAC,kBAAkB,CAAC,EAAC,CAAC,CAAC;IAChE,QAAQ,CAAC,eAAe,GAAG,OAAO,CAAC;IAEnC,OAAO,+BAA+B,CAAC,QAAQ,CAAC;SAC/C,IAAI,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;SACpD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,mCAAmC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SAChE,IAAI,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC;SAC3B,IAAI,CAAC,GAAG,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC9C,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,CAAC,EAAE;QACZ,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAC;SACD,OAAO,CAAC,GAAG,EAAE;QACb,OAAO,OAAO,CAAC,IAAI,EAAE;aACpB,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAClC,CAAC,CAAC,CAAA;AACH,CAAC;AAKQ,8CAAiB;AAH1B,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;IAC1B,iBAAiB,EAAE,CAAC"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local_npm_registry-v1.0.1/dist/registry.js new/local_npm_registry-v1.0.2/dist/registry.js
--- old/local_npm_registry-v1.0.1/dist/registry.js 2023-07-21 15:45:01.492368395 +0200
+++ new/local_npm_registry-v1.0.2/dist/registry.js 2024-01-30 15:38:06.289031984 +0100
@@ -68,9 +68,16 @@
return obj;
}
fetchPkgVersion(pkg_name, version) {
- let obj = this.fetchVersions(pkg_name);
- if (!Object.keys(obj['versions']).includes(version))
- throw new Error("not found");
+ const obj = this.fetchVersions(pkg_name);
+ const versions = Object.keys(obj['versions']).sort();
+ if (!versions.includes(version)) {
+ const non_standard_version = version.match(/[^\d\.]/);
+ if (non_standard_version == null)
+ throw new Error("not found");
+ const new_version = versions[versions.length - 1];
+ console.warn("pkg: %s is asking for non-standard version '%s'. Fallback to version %s", pkg_name, version, new_version);
+ return obj['versions'][new_version];
+ }
return obj['versions'][version];
}
static verifyPkgJsonType(pkg_json) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local_npm_registry-v1.0.1/dist/registry.js.map new/local_npm_registry-v1.0.2/dist/registry.js.map
--- old/local_npm_registry-v1.0.1/dist/registry.js.map 2023-07-21 15:45:01.492368395 +0200
+++ new/local_npm_registry-v1.0.2/dist/registry.js.map 2024-01-30 15:38:06.285698651 +0100
@@ -1 +1 @@
-{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local_npm_registry-v1.0.1/dist/service.js new/local_npm_registry-v1.0.2/dist/service.js
--- old/local_npm_registry-v1.0.1/dist/service.js 2023-07-21 15:45:01.492368395 +0200
+++ new/local_npm_registry-v1.0.2/dist/service.js 2024-01-30 15:38:06.289031984 +0100
@@ -134,10 +134,8 @@
this.server.close(err => {
if (err)
rejected(err);
- else
- resolved();
+ resolved();
});
- return null;
});
}
constructor(requestHandler) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local_npm_registry-v1.0.1/dist/service.js.map new/local_npm_registry-v1.0.2/dist/service.js.map
--- old/local_npm_registry-v1.0.1/dist/service.js.map 2023-07-21 15:45:01.492368395 +0200
+++ new/local_npm_registry-v1.0.2/dist/service.js.map 2024-01-30 15:38:06.289031984 +0100
@@ -1 +1 @@
-{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local_npm_registry-v1.0.1/node_modules/.package-lock.json new/local_npm_registry-v1.0.2/node_modules/.package-lock.json
--- old/local_npm_registry-v1.0.1/node_modules/.package-lock.json 2023-07-21 15:45:02.608369356 +0200
+++ new/local_npm_registry-v1.0.2/node_modules/.package-lock.json 2024-01-30 15:38:07.272365464 +0100
@@ -1,6 +1,6 @@
{
"name": "local_npm_registry",
- "version": "1.0.1",
+ "version": "1.0.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local_npm_registry-v1.0.1/npm-shrinkwrap.json new/local_npm_registry-v1.0.2/npm-shrinkwrap.json
--- old/local_npm_registry-v1.0.1/npm-shrinkwrap.json 2023-07-21 15:45:03.244369905 +0200
+++ new/local_npm_registry-v1.0.2/npm-shrinkwrap.json 2024-01-30 15:38:08.179032266 +0100
@@ -1,12 +1,12 @@
{
"name": "local_npm_registry",
- "version": "1.0.1",
+ "version": "1.0.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "local_npm_registry",
- "version": "1.0.1",
+ "version": "1.0.2",
"license": "GPL-3.0-or-later",
"dependencies": {
"ssri": "^10.0.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local_npm_registry-v1.0.1/package.json new/local_npm_registry-v1.0.2/package.json
--- old/local_npm_registry-v1.0.1/package.json 2023-07-21 15:45:01.848368702 +0200
+++ new/local_npm_registry-v1.0.2/package.json 2024-01-30 15:38:06.639032036 +0100
@@ -1,6 +1,6 @@
{
"name": "local_npm_registry",
- "version": "1.0.1",
+ "version": "1.0.2",
"description": "proxies NPM packages over localhost allowing non-network run of `npm install`",
"private": "true",
"directories": {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local_npm_registry-v1.0.1/src/index.ts new/local_npm_registry-v1.0.2/src/index.ts
--- old/local_npm_registry-v1.0.1/src/index.ts 2023-07-21 15:45:01.492368395 +0200
+++ new/local_npm_registry-v1.0.2/src/index.ts 2024-01-30 15:38:06.289031984 +0100
@@ -34,7 +34,9 @@
for (let i=0; i<concurrent_processes; i++)
processes.push(Promise.resolve(0));
for (let i=2; i<argv.length; ++i) {
- processes[i%concurrent_processes] = processes[i%concurrent_processes].then((processed) => registry.register(argv[i]).then(n => {
+ const fn = argv[i];
+
+ processes[i%concurrent_processes] = processes[i%concurrent_processes].then((processed) => registry.register(fn).then(n => {
if (n == 0)
install_options.push(argv[i]);
@@ -72,6 +74,15 @@
});
}
+function cleanupNpmLocalhostConfig(): Promise<void> {
+ return new Promise((accept, reject) => {
+ spawn("npm", ['config', 'delete', 'registry'])
+ .on("exit", (code) => {
+ code === 0 ? accept() : reject();
+ });
+ });
+}
+
function runNpmInstall(): Promise<void> {
if (install_options.length === 0) {
console.log("npm install skipped");
@@ -91,9 +102,10 @@
console.log("--help prints this help message");
}
-function mainEntryFunction(): void {
+function mainEntryFunction(): Promise<void> {
if (argv.includes("--help")) {
printHelpInformation();
+ return;
}
const registry = new Registry();
@@ -102,18 +114,20 @@
const service = new Service({url: new URL("http://localhost")});
registry.serviceProvider = service;
- registerTarballsFromCommandline(registry)
+ return registerTarballsFromCommandline(registry)
.then(() => setupServerAndGetPort(service, registry))
.then(port => configureNpmToSpecificLocalhostPort(service, port))
.then(() => runNpmInstall())
.then(() => {
console.log("npm done. Shutting down proxy");
- return service.stop()
})
.catch(msg => {
console.log("An error occurred: " + msg);
- process.exit(1);
- });
+ })
+ .finally(() => {
+ return service.stop()
+ .then(cleanupNpmLocalhostConfig);
+ })
}
if (require.main === module)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local_npm_registry-v1.0.1/src/registry.ts new/local_npm_registry-v1.0.2/src/registry.ts
--- old/local_npm_registry-v1.0.1/src/registry.ts 2023-07-21 15:45:01.492368395 +0200
+++ new/local_npm_registry-v1.0.2/src/registry.ts 2024-01-30 15:38:06.289031984 +0100
@@ -96,9 +96,17 @@
}
public fetchPkgVersion(pkg_name: string, version: string): Object {
- let obj = this.fetchVersions(pkg_name);
- if (!Object.keys(obj['versions']).includes(version))
- throw new Error("not found");
+ const obj = this.fetchVersions(pkg_name);
+ const versions = Object.keys(obj['versions']).sort()
+ if (!versions.includes(version)) {
+ const non_standard_version = version.match(/[^\d\.]/)
+ if (non_standard_version == null)
+ throw new Error("not found");
+
+ const new_version = versions[versions.length - 1]
+ console.warn("pkg: %s is asking for non-standard version '%s'. Fallback to version %s", pkg_name, version, new_version);
+ return obj['versions'][new_version];
+ }
return obj['versions'][version];
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local_npm_registry-v1.0.1/src/service.ts new/local_npm_registry-v1.0.2/src/service.ts
--- old/local_npm_registry-v1.0.1/src/service.ts 2023-07-21 15:45:01.492368395 +0200
+++ new/local_npm_registry-v1.0.2/src/service.ts 2024-01-30 15:38:06.289031984 +0100
@@ -155,16 +155,13 @@
}
public stop(): Promise<void> {
- return new Promise((resolved, rejected) => {
+ return new Promise<void>((resolved, rejected) => {
this.server.close(err => {
if (err)
rejected(err);
- else
- resolved();
- });
-
- return null;
- });
+ resolved();
+ })
+ })
}
constructor(requestHandler: registry.RequestHandler) {
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package grpc for openSUSE:Factory checked in at 2024-01-31 23:53:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/grpc (Old)
and /work/SRC/openSUSE:Factory/.grpc.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "grpc"
Wed Jan 31 23:53:20 2024 rev:72 rq:1142787 version:1.60.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/grpc/grpc.changes 2024-01-25 18:40:27.761067467 +0100
+++ /work/SRC/openSUSE:Factory/.grpc.new.1815/grpc.changes 2024-01-31 23:53:29.080414628 +0100
@@ -1,0 +2,5 @@
+Mon Jan 29 17:25:06 UTC 2024 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Force-replace all /usr/bin/env python by python3.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ grpc.spec ++++++
--- /var/tmp/diff_new_pack.DaGIO9/_old 2024-01-31 23:53:29.836441904 +0100
+++ /var/tmp/diff_new_pack.DaGIO9/_new 2024-01-31 23:53:29.836441904 +0100
@@ -126,18 +126,27 @@
%prep
%autosetup -N
+find "." -type f -exec grep -l '/usr/bin/env ' {} + |
+ xargs -r perl -i -lpe \
+ 's{#! ?/usr/bin/env python\S*}{#!/usr/bin/python3}g;
+ s{#! ?/usr/bin/env sh}{#!/bin/sh}g;
+ s{#! ?/usr/bin/env bash}{#!/bin/bash}g;
+ s{#! ?/usr/bin/env }{#!/usr/bin/}g;'
pushd third_party/xxhash
%patch1 -p1
%patch2 -p1
popd
rm -Rf third_party/abseil-cpp/
+%build
# protoc is invoked strangely; make it happy with this dir or it will assert()
mkdir -p third_party/protobuf/src
cp -a /usr/src/opencensus-proto third_party/
export CFLAGS="%optflags -Wno-error"
export CXXFLAGS="$CFLAGS"
+find "." -type f -exec grep '/usr/bin/env ' {} + || :
+pushd .
%cmake -DgRPC_INSTALL=ON \
-DgRPC_INSTALL_LIBDIR:PATH="%_lib" \
-DgRPC_INSTALL_CMAKEDIR:PATH="%_libdir/cmake/grpc" \
@@ -150,6 +159,8 @@
-DgRPC_ZLIB_PROVIDER=package \
-DCMAKE_CXX_STANDARD=17
%cmake_build
+popd
+find "." -type f -exec grep '/usr/bin/env ' {} + || :
%install
b="%buildroot"
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-jsonschema for openSUSE:Factory checked in at 2024-01-31 23:53:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jsonschema (Old)
and /work/SRC/openSUSE:Factory/.python-jsonschema.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jsonschema"
Wed Jan 31 23:53:18 2024 rev:47 rq:1140382 version:4.21.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-jsonschema/python-jsonschema.changes 2023-11-26 19:36:38.192696571 +0100
+++ /work/SRC/openSUSE:Factory/.python-jsonschema.new.1815/python-jsonschema.changes 2024-01-31 23:53:26.312314759 +0100
@@ -1,0 +2,14 @@
+Sat Jan 20 17:35:00 UTC 2024 - Johannes Kastl <opensuse_buildservice(a)ojkastl.de>
+
+- update to 4.21.1:
+ * Slightly speed up the contains keyword by removing some
+ unnecessary validator (re-)creation.
+
+-------------------------------------------------------------------
+Wed Jan 17 07:29:22 UTC 2024 - Johannes Kastl <opensuse_buildservice(a)ojkastl.de>
+
+- update to 4.21.0:
+ * Wrong behaviour for enum keyword by @otto-ifak in
+ https://github.com/python-jsonschema/jsonschema/pull/1208
+
+------------------------------------------------------------------
Old:
----
jsonschema-4.20.0.tar.gz
New:
----
jsonschema-4.21.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jsonschema.spec ++++++
--- /var/tmp/diff_new_pack.c8wMSN/_old 2024-01-31 23:53:27.120343912 +0100
+++ /var/tmp/diff_new_pack.c8wMSN/_new 2024-01-31 23:53:27.124344056 +0100
@@ -1,7 +1,7 @@
#
# spec file
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -33,7 +33,7 @@
%{?sle15_python_module_pythons}
Name: python-jsonschema%{psuffix}
-Version: 4.20.0
+Version: 4.21.1
Release: 0
Summary: An implementation of JSON-Schema validation for Python
License: MIT
++++++ jsonschema-4.20.0.tar.gz -> jsonschema-4.21.1.tar.gz ++++++
++++ 5386 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libssh for openSUSE:Factory checked in at 2024-01-31 23:53:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libssh (Old)
and /work/SRC/openSUSE:Factory/.libssh.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libssh"
Wed Jan 31 23:53:17 2024 rev:72 rq:1134726 version:0.10.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/libssh/libssh.changes 2023-09-29 21:12:46.052003138 +0200
+++ /work/SRC/openSUSE:Factory/.libssh.new.1815/libssh.changes 2024-01-31 23:53:24.904263960 +0100
@@ -1,0 +2,15 @@
+Sat Dec 23 10:35:07 UTC 2023 - Andreas Schneider <asn(a)cryptomilk.org>
+
+- Fix regression parsing IPv6 addresses provided as hostname
+ * Added libssh-fix-ipv6-hostname-regression.patch
+
+-------------------------------------------------------------------
+Tue Dec 19 12:28:53 UTC 2023 - Andreas Schneider <asn(a)cryptomilk.org>
+
+- Update to version 0.10.6
+ https://www.libssh.org/2023/12/18/libssh-0-10-6-and-libssh-0-9-8-security-r…
+- Fix CVE-2023-6004: ProxyCommand/ProxyJump features allow injection of malicious code through hostname (bsc#1218209)
+- Fix CVE-2023-48795: prefix truncation breaking ssh channel integrity (bsc#1218126)
+- Fix CVE-2023-6918: Added Missing checks for return values for digests (bsc#1218186)
+
+-------------------------------------------------------------------
Old:
----
libssh-0.10.5.tar.xz
libssh-0.10.5.tar.xz.asc
New:
----
libssh-0.10.6.tar.xz
libssh-0.10.6.tar.xz.asc
libssh-fix-ipv6-hostname-regression.patch
BETA DEBUG BEGIN:
New:- Fix regression parsing IPv6 addresses provided as hostname
* Added libssh-fix-ipv6-hostname-regression.patch
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libssh.spec ++++++
--- /var/tmp/diff_new_pack.RCbD3i/_old 2024-01-31 23:53:25.460284020 +0100
+++ /var/tmp/diff_new_pack.RCbD3i/_new 2024-01-31 23:53:25.460284020 +0100
@@ -30,7 +30,7 @@
%bcond_with test
%endif
Name: libssh%{pkg_suffix}
-Version: 0.10.5
+Version: 0.10.6
Release: 0
Summary: The SSH library
License: LGPL-2.1-or-later
@@ -43,6 +43,7 @@
Source4: libssh_server.config
Source99: baselibs.conf
Patch0: 0001-disable-timeout-test-on-slow-buildsystems.patch
+Patch1: https://gitlab.com/libssh/libssh-mirror/-/merge_requests/431.patch#/libssh-…
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: krb5-devel
++++++ libssh-0.10.5.tar.xz -> libssh-0.10.6.tar.xz ++++++
++++ 3543 lines of diff (skipped)
++++++ libssh-fix-ipv6-hostname-regression.patch ++++++
From 66ac6343b246458a6645ae32f75556a1407031ec Mon Sep 17 00:00:00 2001
From: Jakub Jelen <jjelen(a)redhat.com>
Date: Fri, 22 Dec 2023 10:32:40 +0100
Subject: [PATCH 1/2] Fix regression in IPv6 addresses in hostname parsing
Signed-off-by: Jakub Jelen <jjelen(a)redhat.com>
---
include/libssh/config_parser.h | 11 ++++++++---
src/config.c | 4 ++--
src/config_parser.c | 19 ++++++++++++++-----
src/options.c | 10 ++--------
4 files changed, 26 insertions(+), 18 deletions(-)
diff --git a/include/libssh/config_parser.h b/include/libssh/config_parser.h
index a7dd42a2c..ca353432b 100644
--- a/include/libssh/config_parser.h
+++ b/include/libssh/config_parser.h
@@ -30,6 +30,8 @@
extern "C" {
#endif
+#include <stdbool.h>
+
char *ssh_config_get_cmd(char **str);
char *ssh_config_get_token(char **str);
@@ -49,14 +51,17 @@ int ssh_config_get_yesno(char **str, int notfound);
* be stored or NULL if we do not care about the result.
* @param[out] port Pointer to the location, where the new port will
* be stored or NULL if we do not care about the result.
+ * @param[in] ignore_port Set to true if the we should not attempt to parse
+ * port number.
*
* @returns SSH_OK if the provided string is in format of SSH URI,
* SSH_ERROR on failure
*/
int ssh_config_parse_uri(const char *tok,
- char **username,
- char **hostname,
- char **port);
+ char **username,
+ char **hostname,
+ char **port,
+ bool ignore_port);
#ifdef __cplusplus
}
diff --git a/src/config.c b/src/config.c
index 5eedbce96..7135c3b19 100644
--- a/src/config.c
+++ b/src/config.c
@@ -464,7 +464,7 @@ ssh_config_parse_proxy_jump(ssh_session session, const char *s, bool do_parsing)
}
if (parse_entry) {
/* We actually care only about the first item */
- rv = ssh_config_parse_uri(cp, &username, &hostname, &port);
+ rv = ssh_config_parse_uri(cp, &username, &hostname, &port, false);
/* The rest of the list needs to be passed on */
if (endp != NULL) {
next = strdup(endp + 1);
@@ -475,7 +475,7 @@ ssh_config_parse_proxy_jump(ssh_session session, const char *s, bool do_parsing)
}
} else {
/* The rest is just sanity-checked to avoid failures later */
- rv = ssh_config_parse_uri(cp, NULL, NULL, NULL);
+ rv = ssh_config_parse_uri(cp, NULL, NULL, NULL, false);
}
if (rv != SSH_OK) {
goto out;
diff --git a/src/config_parser.c b/src/config_parser.c
index 9ffc8b8b0..b30e94091 100644
--- a/src/config_parser.c
+++ b/src/config_parser.c
@@ -161,10 +161,14 @@ int ssh_config_get_yesno(char **str, int notfound)
return notfound;
}
+/* Parse the URI extracting parts such as a username, hostname and port.
+ * If the port is NULL, do not expect port present and be more lax for example
+ * with matching IPv6 address which have the same separators as host:port */
int ssh_config_parse_uri(const char *tok,
- char **username,
- char **hostname,
- char **port)
+ char **username,
+ char **hostname,
+ char **port,
+ bool ignore_port)
{
char *endp = NULL;
long port_n;
@@ -210,12 +214,17 @@ int ssh_config_parse_uri(const char *tok,
if (endp == NULL) {
goto error;
}
- } else {
- /* Hostnames or aliases expand to the last colon or to the end */
+ } else if (!ignore_port) {
+ /* Hostnames or aliases expand to the last colon (if port is requested)
+ * or to the end */
endp = strrchr(tok, ':');
if (endp == NULL) {
endp = strchr(tok, '\0');
}
+ } else {
+ /* If no port is requested, expand to the end of line
+ * (to accommodate the IPv6 addresses) */
+ endp = strchr(tok, '\0');
}
if (tok == endp) {
/* Zero-length hostnames are not valid */
diff --git a/src/options.c b/src/options.c
index 2e73be462..676c49e7a 100644
--- a/src/options.c
+++ b/src/options.c
@@ -634,17 +634,11 @@ int ssh_options_set(ssh_session session, enum ssh_options_e type,
ssh_set_error_invalid(session);
return -1;
} else {
- char *username = NULL, *hostname = NULL, *port = NULL;
- rc = ssh_config_parse_uri(value, &username, &hostname, &port);
+ char *username = NULL, *hostname = NULL;
+ rc = ssh_config_parse_uri(value, &username, &hostname, NULL, true);
if (rc != SSH_OK) {
return -1;
}
- if (port != NULL) {
- SAFE_FREE(username);
- SAFE_FREE(hostname);
- SAFE_FREE(port);
- return -1;
- }
if (username != NULL) {
SAFE_FREE(session->opts.username);
session->opts.username = username;
--
GitLab
From f2ec751f09901b9c539ae096f5ee4fc63f305f30 Mon Sep 17 00:00:00 2001
From: Jakub Jelen <jjelen(a)redhat.com>
Date: Fri, 22 Dec 2023 09:52:18 +0100
Subject: [PATCH 2/2] tests: Increase test coverage for IPv6 address parsing as
hostnames
This was an issue in cockpit:
https://github.com/cockpit-project/cockpit/issues/19772
Signed-off-by: Jakub Jelen <jjelen(a)redhat.com>
---
tests/unittests/torture_config.c | 49 +++++++++++++++++++++++++++++++
tests/unittests/torture_options.c | 16 ++++++++++
2 files changed, 65 insertions(+)
diff --git a/tests/unittests/torture_config.c b/tests/unittests/torture_config.c
index bc6b08f94..751aa126c 100644
--- a/tests/unittests/torture_config.c
+++ b/tests/unittests/torture_config.c
@@ -2332,6 +2332,53 @@ static void torture_config_make_absolute_no_sshdir(void **state)
torture_config_make_absolute_int(state, 1);
}
+static void torture_config_parse_uri(void **state)
+{
+ char *username = NULL;
+ char *hostname = NULL;
+ char *port = NULL;
+ int rc;
+
+ (void)state; /* unused */
+
+ rc = ssh_config_parse_uri("localhost", &username, &hostname, &port, false);
+ assert_return_code(rc, errno);
+ assert_null(username);
+ assert_string_equal(hostname, "localhost");
+ SAFE_FREE(hostname);
+ assert_null(port);
+
+ rc = ssh_config_parse_uri("1.2.3.4", &username, &hostname, &port, false);
+ assert_return_code(rc, errno);
+ assert_null(username);
+ assert_string_equal(hostname, "1.2.3.4");
+ SAFE_FREE(hostname);
+ assert_null(port);
+
+ rc = ssh_config_parse_uri("1.2.3.4:2222", &username, &hostname, &port, false);
+ assert_return_code(rc, errno);
+ assert_null(username);
+ assert_string_equal(hostname, "1.2.3.4");
+ SAFE_FREE(hostname);
+ assert_string_equal(port, "2222");
+ SAFE_FREE(port);
+
+ rc = ssh_config_parse_uri("[1:2:3::4]:2222", &username, &hostname, &port, false);
+ assert_return_code(rc, errno);
+ assert_null(username);
+ assert_string_equal(hostname, "1:2:3::4");
+ SAFE_FREE(hostname);
+ assert_string_equal(port, "2222");
+ SAFE_FREE(port);
+
+ /* do not want port */
+ rc = ssh_config_parse_uri("1:2:3::4", &username, &hostname, NULL, true);
+ assert_return_code(rc, errno);
+ assert_null(username);
+ assert_string_equal(hostname, "1:2:3::4");
+ SAFE_FREE(hostname);
+}
+
int torture_run_tests(void)
{
int rc;
@@ -2424,6 +2471,8 @@ int torture_run_tests(void)
setup, teardown),
cmocka_unit_test_setup_teardown(torture_config_make_absolute_no_sshdir,
setup_no_sshdir, teardown),
+ cmocka_unit_test_setup_teardown(torture_config_parse_uri,
+ setup, teardown),
};
diff --git a/tests/unittests/torture_options.c b/tests/unittests/torture_options.c
index 5ba3bdc6a..b07712d86 100644
--- a/tests/unittests/torture_options.c
+++ b/tests/unittests/torture_options.c
@@ -57,6 +57,20 @@ static void torture_options_set_host(void **state) {
assert_non_null(session->opts.host);
assert_string_equal(session->opts.host, "localhost");
+ /* IPv4 address */
+ rc = ssh_options_set(session, SSH_OPTIONS_HOST, "127.1.1.1");
+ assert_true(rc == 0);
+ assert_non_null(session->opts.host);
+ assert_string_equal(session->opts.host, "127.1.1.1");
+ assert_null(session->opts.username);
+
+ /* IPv6 address */
+ rc = ssh_options_set(session, SSH_OPTIONS_HOST, "::1");
+ assert_true(rc == 0);
+ assert_non_null(session->opts.host);
+ assert_string_equal(session->opts.host, "::1");
+ assert_null(session->opts.username);
+
rc = ssh_options_set(session, SSH_OPTIONS_HOST, "guru@meditation");
assert_true(rc == 0);
assert_non_null(session->opts.host);
@@ -64,12 +78,14 @@ static void torture_options_set_host(void **state) {
assert_non_null(session->opts.username);
assert_string_equal(session->opts.username, "guru");
+ /* more @ in uri is OK -- it should go to the username */
rc = ssh_options_set(session, SSH_OPTIONS_HOST, "at@login@hostname");
assert_true(rc == 0);
assert_non_null(session->opts.host);
assert_string_equal(session->opts.host, "hostname");
assert_non_null(session->opts.username);
assert_string_equal(session->opts.username, "at@login");
+
}
static void torture_options_set_ciphers(void **state) {
--
GitLab
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000product for openSUSE:Factory checked in at 2024-01-30 23:07:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000product (Old)
and /work/SRC/openSUSE:Factory/.000product.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000product"
Tue Jan 30 23:07:43 2024 rev:3893 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
openSUSE-Addon-NonOss-ftp-ftp-x86_64.kiwi: same change
openSUSE-cd-mini-x86_64.kiwi: same change
++++++ openSUSE-dvd5-dvd-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.TSkRUz/_old 2024-01-30 23:07:46.773272051 +0100
+++ /var/tmp/diff_new_pack.TSkRUz/_new 2024-01-30 23:07:46.797272916 +0100
@@ -363,6 +363,7 @@
<repopackage name="dracut"/>
<repopackage name="dracut-transactional-update"/>
<repopackage name="drbd"/>
+ <repopackage name="drbd-kmp-default"/>
<repopackage name="drbd-utils"/>
<repopackage name="drkonqi5"/>
<repopackage name="drkonqi5-lang"/>
@@ -1008,6 +1009,7 @@
<repopackage name="kernel-firmware-network"/>
<repopackage name="kernel-firmware-nfp"/>
<repopackage name="kernel-firmware-nvidia"/>
+ <repopackage name="kernel-firmware-nvidia-gspx-G06"/>
<repopackage name="kernel-firmware-platform"/>
<repopackage name="kernel-firmware-prestera"/>
<repopackage name="kernel-firmware-qcom"/>
@@ -3110,6 +3112,7 @@
<repopackage name="ntfsprogs"/>
<repopackage name="numactl"/>
<repopackage name="numlockx"/>
+ <repopackage name="nvidia-open-driver-G06-signed-kmp-default"/>
<repopackage name="nvme-cli"/>
<repopackage name="nvme-cli-bash-completion"/>
<repopackage name="obex-data-server"/>
openSUSE-ftp-ftp-x86_64.kiwi: same change
stub.kiwi: same change
++++++ dvd.group ++++++
--- /var/tmp/diff_new_pack.TSkRUz/_old 2024-01-30 23:07:47.265289781 +0100
+++ /var/tmp/diff_new_pack.TSkRUz/_new 2024-01-30 23:07:47.293290791 +0100
@@ -366,6 +366,7 @@
<package name="dracut" supportstatus="unsupported"/> <!-- reason: dvd:patterns-base-console -->
<package name="dracut-transactional-update" supportstatus="unsupported"/> <!-- reason: dvd:patterns-base-transactional_base -->
<package name="drbd" supportstatus="unsupported"/> <!-- reason: common_locks:expansion -->
+ <package name="drbd-kmp-default" supportstatus="unsupported"/> <!-- reason: common_locks:expansion -->
<package name="drbd-utils" supportstatus="unsupported"/> <!-- reason: common_locks:expansion -->
<package name="drkonqi5" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde -->
<package name="drkonqi5-lang" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde -->
@@ -1008,6 +1009,7 @@
<package name="kernel-firmware-network" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_cd_core -->
<package name="kernel-firmware-nfp" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_cd_core -->
<package name="kernel-firmware-nvidia" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_cd_core -->
+ <package name="kernel-firmware-nvidia-gspx-G06" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_dvd -->
<package name="kernel-firmware-platform" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_cd_core -->
<package name="kernel-firmware-prestera" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_cd_core -->
<package name="kernel-firmware-qcom" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_cd_core -->
@@ -3069,6 +3071,7 @@
<package name="ntfsprogs" supportstatus="unsupported"/> <!-- reason: dvd:patterns-base-console -->
<package name="numactl" supportstatus="unsupported"/> <!-- reason: dvd:patterns-base-console -->
<package name="numlockx" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_cd_core -->
+ <package name="nvidia-open-driver-G06-signed-kmp-default" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_dvd -->
<package name="nvme-cli" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_dvd -->
<package name="nvme-cli-bash-completion" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_dvd -->
<package name="obex-data-server" supportstatus="unsupported"/> <!-- reason: dvd:patterns-xfce-xfce -->
++++++ unsorted.yml ++++++
--- /var/tmp/diff_new_pack.TSkRUz/_old 2024-01-30 23:07:47.625302756 +0100
+++ /var/tmp/diff_new_pack.TSkRUz/_new 2024-01-30 23:07:47.665304197 +0100
@@ -3283,7 +3283,6 @@
- drawing
- drawing-lang
- drbd-formula
- - drbd-kmp-default
- drc
- drc-doc
- driverctl
@@ -9422,7 +9421,6 @@
- kernel-docs-html
- kernel-firmware
- kernel-firmware-nvidia-gsp-G06
- - kernel-firmware-nvidia-gspx-G06
- kernel-install-tools
- kernel-kvmsmall
- kernel-kvmsmall-devel
@@ -18798,7 +18796,6 @@
- nut-drivers-net
- nvdock
- nvidia-open-driver-G06-signed-default-devel
- - nvidia-open-driver-G06-signed-kmp-default
- nvidia-texture-tools
- nvimpager
- nvimpager-zsh-completion
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000product for openSUSE:Factory checked in at 2024-01-30 21:07:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000product (Old)
and /work/SRC/openSUSE:Factory/.000product.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000product"
Tue Jan 30 21:07:27 2024 rev:3891 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ MicroOS-dvd5-dvd-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.ch1QzG/_old 2024-01-30 21:07:31.452837980 +0100
+++ /var/tmp/diff_new_pack.ch1QzG/_new 2024-01-30 21:07:31.452837980 +0100
@@ -1,4 +1,4 @@
-<image name="OBS__MicroOS___20240129" schemaversion="4.1">
+<image name="OBS__MicroOS___20240130" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20240129</productvar>
+ <productvar name="VERSION">20240130</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:microos:20240129,openSUSE MicroOS</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:microos:20240130,openSUSE MicroOS</productinfo>
<productinfo name="LINGUAS">en_US </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/MicroOS/20240129/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/MicroOS/20240130/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
++++++ openSUSE-Addon-NonOss-ftp-ftp-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.ch1QzG/_old 2024-01-30 21:07:31.480838990 +0100
+++ /var/tmp/diff_new_pack.ch1QzG/_new 2024-01-30 21:07:31.484839134 +0100
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE-Addon-NonOss___20240129" schemaversion="4.1">
+<image name="OBS__openSUSE-Addon-NonOss___20240130" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20240129</productvar>
+ <productvar name="VERSION">20240130</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse-addon-nonoss:20240129,openSUSE NonOSS Addon</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse-addon-nonoss:20240130,openSUSE NonOSS Addon</productinfo>
<productinfo name="LINGUAS">af ar be_BY bg br ca cy el et ga gl gu_IN he hi_IN hr ka km ko lt mk nn pa_IN rw sk sl sr_CS ss st tg th tr uk ve vi xh zu </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE-Addon-NonOss/2024…</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE-Addon-NonOss/2024…</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
++++++ openSUSE-cd-mini-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.ch1QzG/_old 2024-01-30 21:07:31.504839855 +0100
+++ /var/tmp/diff_new_pack.ch1QzG/_new 2024-01-30 21:07:31.508839999 +0100
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20240129" schemaversion="4.1">
+<image name="OBS__openSUSE___20240130" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20240129</productvar>
+ <productvar name="VERSION">20240130</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240129,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240130,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de el en en_GB en_US es fr hu it ja pl pt pt_BR ru zh zh_CN zh_TW </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240129/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240130/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
++++++ openSUSE-dvd5-dvd-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.ch1QzG/_old 2024-01-30 21:07:31.528840720 +0100
+++ /var/tmp/diff_new_pack.ch1QzG/_new 2024-01-30 21:07:31.532840864 +0100
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20240129" schemaversion="4.1">
+<image name="OBS__openSUSE___20240130" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20240129</productvar>
+ <productvar name="VERSION">20240130</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240129,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240130,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de el en en_GB en_US es fr hu it ja pl pt pt_BR ru zh zh_CN zh_TW </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240129/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240130/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
@@ -986,6 +986,7 @@
<repopackage name="kdoctools-lang"/>
<repopackage name="kdump"/>
<repopackage name="kernel-default"/>
+ <repopackage name="kernel-default-base"/>
<repopackage name="kernel-firmware-all"/>
<repopackage name="kernel-firmware-amdgpu"/>
<repopackage name="kernel-firmware-ath10k"/>
++++++ openSUSE-ftp-ftp-i586.kiwi ++++++
--- /var/tmp/diff_new_pack.ch1QzG/_old 2024-01-30 21:07:31.552841585 +0100
+++ /var/tmp/diff_new_pack.ch1QzG/_new 2024-01-30 21:07:31.556841729 +0100
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20240129" schemaversion="4.1">
+<image name="OBS__openSUSE___20240130" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -20,7 +20,7 @@
<productvar name="DISTNAME">openSUSE</productvar>
<productvar name="FLAVOR">ftp</productvar>
<productvar name="MAKE_LISTINGS">true</productvar>
- <productvar name="MEDIUM_NAME">openSUSE-20240129-i586</productvar>
+ <productvar name="MEDIUM_NAME">openSUSE-20240130-i586</productvar>
<productvar name="MULTIPLE_MEDIA">true</productvar>
<productvar name="PRODUCT_DIR">/</productvar>
<productvar name="PRODUCT_NAME">$DISTNAME-$FLAVOR</productvar>
@@ -32,11 +32,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20240129</productvar>
+ <productvar name="VERSION">20240130</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240129,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240130,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de el en en_GB en_US es fr hu it ja pl pt pt_BR ru zh zh_CN zh_TW </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240129/i586</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240130/i586</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="DEBUGMEDIUM">2</productoption>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
++++++ openSUSE-ftp-ftp-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.ch1QzG/_old 2024-01-30 21:07:31.572842306 +0100
+++ /var/tmp/diff_new_pack.ch1QzG/_new 2024-01-30 21:07:31.576842450 +0100
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20240129" schemaversion="4.1">
+<image name="OBS__openSUSE___20240130" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -23,7 +23,7 @@
<productvar name="DISTNAME">openSUSE</productvar>
<productvar name="FLAVOR">ftp</productvar>
<productvar name="MAKE_LISTINGS">true</productvar>
- <productvar name="MEDIUM_NAME">openSUSE-20240129-x86_64</productvar>
+ <productvar name="MEDIUM_NAME">openSUSE-20240130-x86_64</productvar>
<productvar name="MULTIPLE_MEDIA">true</productvar>
<productvar name="PRODUCT_DIR">/</productvar>
<productvar name="PRODUCT_NAME">$DISTNAME-$FLAVOR</productvar>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20240129</productvar>
+ <productvar name="VERSION">20240130</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240129,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20240130,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de el en en_GB en_US es fr hu it ja pl pt pt_BR ru zh zh_CN zh_TW </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240129/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20240130/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="DEBUGMEDIUM">2</productoption>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
++++++ Aeon.product ++++++
--- /var/tmp/diff_new_pack.ch1QzG/_old 2024-01-30 21:07:31.616843892 +0100
+++ /var/tmp/diff_new_pack.ch1QzG/_new 2024-01-30 21:07:31.620844036 +0100
@@ -6,7 +6,7 @@
<name>Aeon</name>
<releasepkgname>Aeon-release</releasepkgname>
<endoflife/>
- <version>20240129</version>
+ <version>20240130</version>
<!-- release is no longer optional -->
<release>0</release>
<productline>Aeon</productline>
++++++ Kalpa.product ++++++
--- /var/tmp/diff_new_pack.ch1QzG/_old 2024-01-30 21:07:31.632844469 +0100
+++ /var/tmp/diff_new_pack.ch1QzG/_new 2024-01-30 21:07:31.636844613 +0100
@@ -6,7 +6,7 @@
<name>Kalpa</name>
<releasepkgname>Kalpa-release</releasepkgname>
<endoflife/>
- <version>20240129</version>
+ <version>20240130</version>
<!-- release is no longer optional -->
<release>0</release>
<productline>Kalpa</productline>
++++++ MicroOS.product ++++++
--- /var/tmp/diff_new_pack.ch1QzG/_old 2024-01-30 21:07:31.656845334 +0100
+++ /var/tmp/diff_new_pack.ch1QzG/_new 2024-01-30 21:07:31.656845334 +0100
@@ -6,7 +6,7 @@
<name>MicroOS</name>
<releasepkgname>MicroOS-release</releasepkgname>
<endoflife/>
- <version>20240129</version>
+ <version>20240130</version>
<!-- release is no longer optional -->
<release>0</release>
<productline>MicroOS</productline>
++++++ dvd.group ++++++
--- /var/tmp/diff_new_pack.ch1QzG/_old 2024-01-30 21:07:31.748848651 +0100
+++ /var/tmp/diff_new_pack.ch1QzG/_new 2024-01-30 21:07:31.756848939 +0100
@@ -986,6 +986,7 @@
<package name="kdoctools-lang" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_dvd -->
<package name="kdump" supportstatus="unsupported"/> <!-- reason: dvd:kdump -->
<package name="kernel-default" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_cd_core -->
+ <package name="kernel-default-base" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_dvd -->
<package name="kernel-firmware-all" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_cd_core -->
<package name="kernel-firmware-amdgpu" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_cd_core -->
<package name="kernel-firmware-ath10k" supportstatus="unsupported"/> <!-- reason: dvd:patterns-media-rest_cd_core -->
++++++ openSUSE-Addon-NonOss.product ++++++
--- /var/tmp/diff_new_pack.ch1QzG/_old 2024-01-30 21:07:31.772849516 +0100
+++ /var/tmp/diff_new_pack.ch1QzG/_new 2024-01-30 21:07:31.776849660 +0100
@@ -4,7 +4,7 @@
<product>
<vendor>openSUSE</vendor>
<name>openSUSE-Addon-NonOss</name>
- <version>20240129</version>
+ <version>20240130</version>
<release>0</release>
<summary>openSUSE NonOSS Addon</summary>
<shortsummary>non oss addon</shortsummary>
++++++ openSUSE.product ++++++
--- /var/tmp/diff_new_pack.ch1QzG/_old 2024-01-30 21:07:31.796850381 +0100
+++ /var/tmp/diff_new_pack.ch1QzG/_new 2024-01-30 21:07:31.800850525 +0100
@@ -4,7 +4,7 @@
<product>
<vendor>openSUSE</vendor>
<name>openSUSE</name>
- <version>20240129</version>
+ <version>20240130</version>
<release>0</release>
<productline>openSUSE</productline>
++++++ unsorted.yml ++++++
--- /var/tmp/diff_new_pack.ch1QzG/_old 2024-01-30 21:07:31.904854274 +0100
+++ /var/tmp/diff_new_pack.ch1QzG/_new 2024-01-30 21:07:31.912854563 +0100
@@ -14103,7 +14103,9 @@
- libopenssl-1_1-devel-32bit
- libopenssl-3-devel
- libopenssl-3-devel-32bit
+ - libopenssl-3-fips-provider
- libopenssl-devel
+ - libopenssl-fips-provider
- libopenssl10
- libopenssl1_0_0
- libopenssl1_0_0-32bit
@@ -18836,8 +18838,6 @@
- obs-scm-bridge
- obs-service-appimage
- obs-service-cargo
- - obs-service-cargo_audit
- - obs-service-cargo_vendor
- obs-service-cdi_containers_meta
- obs-service-compose_kiwi_description
- obs-service-docker_label_helper
@@ -22473,7 +22473,6 @@
- python-novaclient-doc
- python-nss-doc
- python-octaviaclient-doc
- - python-onionshare
- python-openstackclient-doc
- python-openstacksdk-doc
- python-osc-lib-doc
@@ -22733,6 +22732,7 @@
- python3-ntp
- python3-obexftp
- python3-octaviaclient
+ - python3-onionshare
- python3-openbabel
- python3-opencv
- python3-opencv3
@@ -23062,6 +23062,7 @@
- python310-SpeechRecognition
- python310-Sphinx
- python310-Sphinx-latex
+ - python310-StrEnum
- python310-TagStats
- python310-Telethon
- python310-Tempita
@@ -23809,7 +23810,6 @@
- python310-copr
- python310-copr-cli
- python310-coreapi
- - python310-coreapi-cli
- python310-coreschema
- python310-cornice
- python310-cov-core
@@ -24798,7 +24798,6 @@
- python310-merge3
- python310-mergedeep
- python310-meson-python
- - python310-mesonpep517
- python310-metaextract
- python310-metakernel
- python310-metamagic.json
@@ -24826,6 +24825,7 @@
- python310-mocket
- python310-mockito
- python310-model-bakery
+ - python310-modern-colorthief
- python310-modernize
- python310-mohawk
- python310-mongoengine
@@ -24978,7 +24978,6 @@
- python310-opcodes
- python310-openTSNE
- python310-openai
- - python310-openapi-codec
- python310-openapi-core
- python310-openapi-schema-validator
- python310-openapi-spec-validator
@@ -25424,7 +25423,6 @@
- python310-pyqt-builder
- python310-pyqtgraph
- python310-pyquery
- - python310-pyquil
- python310-pyrad
- python310-pyramid
- python310-pyramid-chameleon
@@ -26605,6 +26603,7 @@
- python311-SpeechRecognition
- python311-Sphinx
- python311-Sphinx-latex
+ - python311-StrEnum
- python311-TagStats
- python311-Telethon
- python311-Tempita
@@ -27324,7 +27323,6 @@
- python311-copr
- python311-copr-cli
- python311-coreapi
- - python311-coreapi-cli
- python311-coreschema
- python311-cornice
- python311-cov-core
@@ -28261,7 +28259,6 @@
- python311-merge3
- python311-mergedeep
- python311-meson-python
- - python311-mesonpep517
- python311-metaextract
- python311-metakernel
- python311-metamagic.json
@@ -28289,6 +28286,7 @@
- python311-mocket
- python311-mockito
- python311-model-bakery
+ - python311-modern-colorthief
- python311-modernize
- python311-mohawk
- python311-mongoengine
@@ -28431,7 +28429,6 @@
- python311-opcodes
- python311-openTSNE
- python311-openai
- - python311-openapi-codec
- python311-openapi-core
- python311-openapi-schema-validator
- python311-openapi-spec-validator
@@ -28852,7 +28849,6 @@
- python311-pyqt-builder
- python311-pyqtgraph
- python311-pyquery
- - python311-pyquil
- python311-pyrad
- python311-pyramid
- python311-pyramid-chameleon
@@ -30037,6 +30033,7 @@
- python39-SpeechRecognition
- python39-Sphinx
- python39-Sphinx-latex
+ - python39-StrEnum
- python39-TagStats
- python39-Telethon
- python39-Tempita
@@ -30785,7 +30782,6 @@
- python39-copr
- python39-copr-cli
- python39-coreapi
- - python39-coreapi-cli
- python39-coreschema
- python39-cornice
- python39-cov-core
@@ -31770,7 +31766,6 @@
- python39-merge3
- python39-mergedeep
- python39-meson-python
- - python39-mesonpep517
- python39-metaextract
- python39-metakernel
- python39-metamagic.json
@@ -31798,6 +31793,7 @@
- python39-mocket
- python39-mockito
- python39-model-bakery
+ - python39-modern-colorthief
- python39-modernize
- python39-mohawk
- python39-mongoengine
@@ -31949,7 +31945,6 @@
- python39-opcodes
- python39-openTSNE
- python39-openai
- - python39-openapi-codec
- python39-openapi-core
- python39-openapi-schema-validator
- python39-openapi-spec-validator
@@ -32396,7 +32391,6 @@
- python39-pyqt-builder
- python39-pyqtgraph
- python39-pyquery
- - python39-pyquil
- python39-pyrad
- python39-pyramid
- python39-pyramid-chameleon
@@ -36051,7 +36045,6 @@
- termrec
- termshark
- termsyn-bitmap-fonts
- - terraform
- terragrunt
- teseq
- tesla-polyglot-common
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-yarg for openSUSE:Factory checked in at 2024-01-30 18:27:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-yarg (Old)
and /work/SRC/openSUSE:Factory/.python-yarg.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-yarg"
Tue Jan 30 18:27:15 2024 rev:4 rq:1142816 version:0.1.9
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-yarg/python-yarg.changes 2023-06-14 16:32:03.999474046 +0200
+++ /work/SRC/openSUSE:Factory/.python-yarg.new.1815/python-yarg.changes 2024-01-30 18:27:25.882306503 +0100
@@ -1,0 +2,5 @@
+Tue Jan 30 15:10:26 UTC 2024 - Antonio Larrosa <alarrosa(a)suse.com>
+
+- Fix (C) line in spec file
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-yarg.spec ++++++
--- /var/tmp/diff_new_pack.cLHCc7/_old 2024-01-30 18:27:26.334322811 +0100
+++ /var/tmp/diff_new_pack.cLHCc7/_new 2024-01-30 18:27:26.334322811 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-yarg
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
1
0