openSUSE Commits
Threads by month
- ----- 2024 -----
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
August 2023
- 1 participants
- 1988 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package girara for openSUSE:Factory checked in at 2023-08-31 13:46:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/girara (Old)
and /work/SRC/openSUSE:Factory/.girara.new.1766 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "girara"
Thu Aug 31 13:46:17 2023 rev:16 rq:1108209 version:0.4.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/girara/girara.changes 2023-02-27 12:55:22.971427848 +0100
+++ /work/SRC/openSUSE:Factory/.girara.new.1766/girara.changes 2023-08-31 13:52:24.298563811 +0200
@@ -1,0 +2,6 @@
+Mon Aug 28 09:50:00 UTC 2023 - Andrea Manzini <andrea.manzini(a)suse.com>
+
+- update to 0.4.0
+ * Fix use after free
+
+-------------------------------------------------------------------
Old:
----
girara-0.3.9.tar.xz
New:
----
girara-0.4.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ girara.spec ++++++
--- /var/tmp/diff_new_pack.Z8reN8/_old 2023-08-31 13:52:25.318600269 +0200
+++ /var/tmp/diff_new_pack.Z8reN8/_new 2023-08-31 13:52:25.322600412 +0200
@@ -19,7 +19,7 @@
%define libname libgirara-gtk3
%define so_ver 3
Name: girara
-Version: 0.3.9
+Version: 0.4.0
Release: 0
Summary: Graphical user interface library
License: Zlib
++++++ girara-0.3.9.tar.xz -> girara-0.4.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/girara-0.3.9/girara/datastructures.c new/girara-0.4.0/girara/datastructures.c
--- old/girara-0.3.9/girara/datastructures.c 2023-01-15 16:58:16.000000000 +0100
+++ new/girara-0.4.0/girara/datastructures.c 2023-03-18 21:17:00.000000000 +0100
@@ -457,9 +457,10 @@
GNode* childnode = node->node->children;
while (childnode != NULL) {
+ GNode* nextnode = childnode->next;
girara_tree_node_data_t* childnodedata = childnode->data;
girara_node_free(childnodedata->node);
- childnode = childnode->next;
+ childnode = nextnode;
}
g_node_destroy(node->node);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/girara-0.3.9/meson.build new/girara-0.4.0/meson.build
--- old/girara-0.3.9/meson.build 2023-01-15 16:58:16.000000000 +0100
+++ new/girara-0.4.0/meson.build 2023-03-18 21:17:00.000000000 +0100
@@ -1,5 +1,5 @@
project('girara', 'c',
- version: '0.3.9',
+ version: '0.4.0',
meson_version: '>=0.56',
default_options: ['c_std=c11', 'warning_level=3'],
)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package courier-imap for openSUSE:Factory checked in at 2023-08-31 13:46:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/courier-imap (Old)
and /work/SRC/openSUSE:Factory/.courier-imap.new.1766 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "courier-imap"
Thu Aug 31 13:46:15 2023 rev:72 rq:1108199 version:5.2.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/courier-imap/courier-imap.changes 2023-05-02 16:24:06.311617444 +0200
+++ /work/SRC/openSUSE:Factory/.courier-imap.new.1766/courier-imap.changes 2023-08-31 13:52:20.422425268 +0200
@@ -1,0 +2,9 @@
+Wed Aug 30 19:25:32 UTC 2023 - Arjen de Korte <suse+build(a)de-korte.org>
+
+- update to 5.2.5
+ * Turn off IMAP_TLS_REQUIRED if IMAP_TLS is already set.
+ * Compiling with -DMAILDIR_SKIP_SYMLINK_CHECKS turns off checking for
+ rogue symlinks in maildirs.
+- update courier-imap.keyring with new signing key
+
+-------------------------------------------------------------------
Old:
----
courier-imap-5.2.4.tar.bz2
courier-imap-5.2.4.tar.bz2.sig
New:
----
courier-imap-5.2.5.tar.bz2
courier-imap-5.2.5.tar.bz2.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ courier-imap.spec ++++++
--- /var/tmp/diff_new_pack.lDTcry/_old 2023-08-31 13:52:22.338493754 +0200
+++ /var/tmp/diff_new_pack.lDTcry/_new 2023-08-31 13:52:22.342493896 +0200
@@ -19,7 +19,7 @@
%bcond_with valgrind
Name: courier-imap
-Version: 5.2.4
+Version: 5.2.5
Release: 0
Summary: An IMAP and POP3 Server for Maildir MTAs
License: GPL-3.0-or-later
++++++ courier-imap-5.2.4.tar.bz2 -> courier-imap-5.2.5.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/courier-imap-5.2.4/configure new/courier-imap-5.2.5/configure
--- old/courier-imap-5.2.4/configure 2023-04-25 04:26:34.000000000 +0200
+++ new/courier-imap-5.2.5/configure 2023-08-29 03:46:56.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for courier-imap 5.2.4.
+# Generated by GNU Autoconf 2.71 for courier-imap 5.2.5.
#
# Report bugs to <courier-imap(a)lists.sourceforge.net>.
#
@@ -621,8 +621,8 @@
# Identity of this package.
PACKAGE_NAME='courier-imap'
PACKAGE_TARNAME='courier-imap'
-PACKAGE_VERSION='5.2.4'
-PACKAGE_STRING='courier-imap 5.2.4'
+PACKAGE_VERSION='5.2.5'
+PACKAGE_STRING='courier-imap 5.2.5'
PACKAGE_BUGREPORT='courier-imap(a)lists.sourceforge.net'
PACKAGE_URL=''
@@ -1393,7 +1393,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures courier-imap 5.2.4 to adapt to many kinds of systems.
+\`configure' configures courier-imap 5.2.5 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1464,7 +1464,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of courier-imap 5.2.4:";;
+ short | recursive ) echo "Configuration of courier-imap 5.2.5:";;
esac
cat <<\_ACEOF
@@ -1589,7 +1589,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-courier-imap configure 5.2.4
+courier-imap configure 5.2.5
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1807,7 +1807,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by courier-imap $as_me 5.2.4, which was
+It was created by courier-imap $as_me 5.2.5, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -3079,7 +3079,7 @@
# Define the identity of the package.
PACKAGE='courier-imap'
- VERSION='5.2.4'
+ VERSION='5.2.5'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -14216,7 +14216,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by courier-imap $as_me 5.2.4, which was
+This file was extended by courier-imap $as_me 5.2.5, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -14284,7 +14284,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-courier-imap config.status 5.2.4
+courier-imap config.status 5.2.5
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/courier-imap-5.2.4/configure.ac new/courier-imap-5.2.5/configure.ac
--- old/courier-imap-5.2.4/configure.ac 2023-04-25 04:20:15.000000000 +0200
+++ new/courier-imap-5.2.5/configure.ac 2023-08-29 03:45:27.000000000 +0200
@@ -3,7 +3,7 @@
dnl Copyright 1998 - 2022 Double Precision, Inc. See COPYING for
dnl distribution information.
-AC_INIT([courier-imap],[5.2.4],[courier-imap(a)lists.sourceforge.net])
+AC_INIT([courier-imap],[5.2.5],[courier-imap(a)lists.sourceforge.net])
AC_CONFIG_SRCDIR(libs/imap/imapd.c)
AC_CONFIG_HEADERS(config.h)
AM_INIT_AUTOMAKE(foreign)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/courier-imap-5.2.4/courier-debuild new/courier-imap-5.2.5/courier-debuild
--- old/courier-imap-5.2.4/courier-debuild 2023-04-25 04:26:39.000000000 +0200
+++ new/courier-imap-5.2.5/courier-debuild 2023-08-29 03:47:02.000000000 +0200
@@ -9,14 +9,14 @@
set -e
shopt -s extglob
-f=`cd .. && ls courier-imap-5.2.4.tar* | sed -n 1p`
+f=`cd .. && ls courier-imap-5.2.5.tar* | sed -n 1p`
rm -rf deb
mkdir deb
cp ../$f deb/`echo $f | sed 's/courier-imap-/courier-imap_/;s/.tar./.orig.tar./'`
cd deb
tar xf *
-cd courier-imap-5.2.4
+cd courier-imap-5.2.5
cp -pr packaging/debian .
if test "$DEBGCC" = ""
@@ -48,5 +48,5 @@
debuild "$@"
cd ..
-rm -rf courier-imap-5.2.4
+rm -rf courier-imap-5.2.5
echo "Built packages in the deb subdirectory."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/courier-imap-5.2.4/courier-imap.spec new/courier-imap-5.2.5/courier-imap.spec
--- old/courier-imap-5.2.4/courier-imap.spec 2023-04-28 02:44:20.000000000 +0200
+++ new/courier-imap-5.2.5/courier-imap.spec 2023-08-29 04:08:51.000000000 +0200
@@ -26,13 +26,13 @@
%define _missing_doc_files_terminate_build 1
%define _unpackaged_files_terminate_build 1
-Summary: Courier-IMAP 5.2.4 IMAP server
+Summary: Courier-IMAP 5.2.5 IMAP server
Name: courier-imap
-Version: 5.2.4
-Release: 1%{courier_release}
+Version: 5.2.5
+Release: 2%{courier_release}
License: GPL
Group: Applications/Mail
-Source: %{name}-5.2.4.tar.bz2
+Source: %{name}-5.2.5.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
Requires: coreutils sed
%if %suse_version
@@ -93,7 +93,7 @@
# SuSE specific settings
%if %suse_version
# some templates for SuSE distribs.
-%define templdir ${RPM_BUILD_DIR}/%{name}-5.2.4/packaging/suse
+%define templdir ${RPM_BUILD_DIR}/%{name}-5.2.5/packaging/suse
%define _sysconfdir /etc/courier-imap
%define _mandir /usr/share/man
%define initlndir /usr/sbin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/courier-imap-5.2.4/libs/imap/ChangeLog new/courier-imap-5.2.5/libs/imap/ChangeLog
--- old/courier-imap-5.2.4/libs/imap/ChangeLog 2023-04-25 04:19:24.000000000 +0200
+++ new/courier-imap-5.2.5/libs/imap/ChangeLog 2023-08-29 03:46:24.000000000 +0200
@@ -1,3 +1,12 @@
+5.2.5
+
+2023-08-16 Jaco Kroon <jaco(a)uls.co.za>
+
+ * Turn off IMAP_TLS_REQUIRED if IMAP_TLS is already set.
+
+ * Compiling with -DMAILDIR_SKIP_SYMLINK_CHECKS turns off checking for
+ rogue symlinks in maildirs.
+
5.2.4
2023-04-24 Sam Varshavchik <mrsam(a)courier-mta.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/courier-imap-5.2.4/libs/imap/capability.c new/courier-imap-5.2.5/libs/imap/capability.c
--- old/courier-imap-5.2.4/libs/imap/capability.c 2018-07-17 03:39:43.000000000 +0200
+++ new/courier-imap-5.2.5/libs/imap/capability.c 2023-08-16 11:00:10.000000000 +0200
@@ -44,8 +44,12 @@
{
const char *p=getenv("IMAP_TLS_REQUIRED");
- if (p && atoi(p)) return (1);
- return (0);
+ if (!p || !atoi(p)) return(0);
+
+ p=getenv("IMAP_TLS");
+ if (p && atoi(p)) return (0);
+
+ return (1);
}
int keywords()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/courier-imap-5.2.4/libs/imap/configure new/courier-imap-5.2.5/libs/imap/configure
--- old/courier-imap-5.2.4/libs/imap/configure 2023-04-25 04:26:42.000000000 +0200
+++ new/courier-imap-5.2.5/libs/imap/configure 2023-08-29 03:47:08.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for courier-imap 5.2.4.
+# Generated by GNU Autoconf 2.71 for courier-imap 5.2.5.
#
# Report bugs to <courier-users(a)lists.sourceforge.net>.
#
@@ -621,8 +621,8 @@
# Identity of this package.
PACKAGE_NAME='courier-imap'
PACKAGE_TARNAME='courier-imap'
-PACKAGE_VERSION='5.2.4'
-PACKAGE_STRING='courier-imap 5.2.4'
+PACKAGE_VERSION='5.2.5'
+PACKAGE_STRING='courier-imap 5.2.5'
PACKAGE_BUGREPORT='courier-users(a)lists.sourceforge.net'
PACKAGE_URL=''
@@ -1403,7 +1403,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures courier-imap 5.2.4 to adapt to many kinds of systems.
+\`configure' configures courier-imap 5.2.5 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1475,7 +1475,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of courier-imap 5.2.4:";;
+ short | recursive ) echo "Configuration of courier-imap 5.2.5:";;
esac
cat <<\_ACEOF
@@ -1602,7 +1602,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-courier-imap configure 5.2.4
+courier-imap configure 5.2.5
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2001,7 +2001,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by courier-imap $as_me 5.2.4, which was
+It was created by courier-imap $as_me 5.2.5, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -3609,7 +3609,7 @@
# Define the identity of the package.
PACKAGE='courier-imap'
- VERSION='5.2.4'
+ VERSION='5.2.5'
# Some tools Automake needs.
@@ -20132,7 +20132,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by courier-imap $as_me 5.2.4, which was
+This file was extended by courier-imap $as_me 5.2.5, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -20200,7 +20200,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-courier-imap config.status 5.2.4
+courier-imap config.status 5.2.5
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/courier-imap-5.2.4/libs/imap/configure.ac new/courier-imap-5.2.5/libs/imap/configure.ac
--- old/courier-imap-5.2.4/libs/imap/configure.ac 2023-04-25 04:19:24.000000000 +0200
+++ new/courier-imap-5.2.5/libs/imap/configure.ac 2023-08-29 03:45:53.000000000 +0200
@@ -4,7 +4,7 @@
dnl Copyright 1998 - 2022 Double Precision, Inc. See COPYING for
dnl distribution information.
-AC_INIT([courier-imap],[5.2.4],[courier-users(a)lists.sourceforge.net])
+AC_INIT([courier-imap],[5.2.5],[courier-users(a)lists.sourceforge.net])
>confdefs.h # Kill PACKAGE_ macros
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/courier-imap-5.2.4/libs/imap/pop3dcapa.c new/courier-imap-5.2.5/libs/imap/pop3dcapa.c
--- old/courier-imap-5.2.4/libs/imap/pop3dcapa.c 2021-04-02 11:00:03.000000000 +0200
+++ new/courier-imap-5.2.5/libs/imap/pop3dcapa.c 2023-08-16 11:00:10.000000000 +0200
@@ -38,9 +38,12 @@
int tls_required()
{
const char *p=getenv("POP3_TLS_REQUIRED");
+ if (!p || !atoi(p)) return(0);
- if (p && atoi(p)) return (1);
- return (0);
+ p=getenv("POP3_TLS");
+ if (p && atoi(p)) return (0);
+
+ return (1);
}
const char *pop3_externalauth()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/courier-imap-5.2.4/libs/maildir/maildiropen.c new/courier-imap-5.2.5/libs/maildir/maildiropen.c
--- old/courier-imap-5.2.4/libs/maildir/maildiropen.c 2013-08-25 20:52:10.000000000 +0200
+++ new/courier-imap-5.2.5/libs/maildir/maildiropen.c 2023-08-17 11:00:11.000000000 +0200
@@ -100,18 +100,17 @@
return (maildir_safeopen(path, mode, perm));
}
-
+
int maildir_safeopen(const char *path, int mode, int perm)
{
- struct stat stat1;
-
- return maildir_safeopen_stat(path, mode, perm, &stat1);
+ return maildir_safeopen_stat(path, mode, perm, NULL);
}
int maildir_safeopen_stat(const char *path, int mode, int perm,
struct stat *stat1)
{
- struct stat stat2;
+ struct stat stat2, statt;
+ char *p;
int fd=open(path, mode
#ifdef O_NONBLOCK
@@ -122,17 +121,30 @@
, perm);
if (fd < 0) return (fd);
- if (fcntl(fd, F_SETFL, (mode & O_APPEND)) || fstat(fd, stat1)
- || lstat(path, &stat2))
+ if (fcntl(fd, F_SETFL, (mode & O_APPEND)) || (stat1 && fstat(fd, stat1)))
{
close(fd);
return (-1);
}
- if (stat1->st_dev != stat2.st_dev || stat1->st_ino != stat2.st_ino)
+ p = getenv("MAILDIR_SKIP_SYMLINK_CHECKS");
+ if (p && atoi(p)) return (fd);
+
+ if (!stat1)
+ {
+ stat1 = &statt;
+ if (fstat(fd, stat1))
+ {
+ close(fd);
+ return (-1);
+ }
+ }
+
+ errno = 0;
+ if (lstat(path, &stat2) || stat1->st_dev != stat2.st_dev || stat1->st_ino != stat2.st_ino)
{
close(fd);
- errno=ENOENT;
+ if (!errno) errno=ENOENT;
return (-1);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/courier-imap-5.2.4/libs/rfc2045/rfc2045acchk.c new/courier-imap-5.2.5/libs/rfc2045/rfc2045acchk.c
--- old/courier-imap-5.2.4/libs/rfc2045/rfc2045acchk.c 2017-12-27 10:00:34.000000000 +0100
+++ new/courier-imap-5.2.5/libs/rfc2045/rfc2045acchk.c 2023-07-06 11:00:11.000000000 +0200
@@ -75,26 +75,14 @@
rfc2045_enomem();
if (p->mime_version
- && p->firstpart == 0 /* sam - don't trigger rewrites on changes to multipart headers */
- )
+ && !p->firstpart /* sam - don't trigger rewrites on changes to multipart headers */
+ )
{
flag=1;
}
}
-#if 0
- if (RFC2045_ISMIME1DEF(p->mime_version)
- && strncmp(p->content_type, "text/", 5) == 0 && !hasnon7bit
- && strcmp(p->content_transfer_encoding, "7bit"))
- {
- if (p->mime_version)
- {
- flag=1;
- }
- }
-#endif
-
- if (RFC2045_ISMIME1DEF(p->mime_version))
+ if (RFC2045_ISMIME1DEF(p->mime_version) && !p->firstpart)
{
/* Check for conversions */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/courier-imap-5.2.4/packaging/debian/changelog new/courier-imap-5.2.5/packaging/debian/changelog
--- old/courier-imap-5.2.4/packaging/debian/changelog 2023-04-28 02:44:20.000000000 +0200
+++ new/courier-imap-5.2.5/packaging/debian/changelog 2023-08-29 04:08:52.000000000 +0200
@@ -1,5 +1,5 @@
-courier-imap (5.2.4-100) devel; urgency=medium
+courier-imap (5.2.5-100) devel; urgency=medium
* Upstream release
- -- Sam Varshavchik <mrsam(a)courier-mta.com> Thu, 27 Apr 2023 20:44:20 -0400
+ -- Sam Varshavchik <mrsam(a)courier-mta.com> Mon, 28 Aug 2023 22:08:51 -0400
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/courier-imap-5.2.4/packaging/debian/changelog.in new/courier-imap-5.2.5/packaging/debian/changelog.in
--- old/courier-imap-5.2.4/packaging/debian/changelog.in 2023-04-28 02:44:20.000000000 +0200
+++ new/courier-imap-5.2.5/packaging/debian/changelog.in 2023-08-29 04:08:51.000000000 +0200
@@ -2,4 +2,4 @@
* Upstream release
- -- Sam Varshavchik <mrsam(a)courier-mta.com> Thu, 27 Apr 2023 20:44:20 -0400
+ -- Sam Varshavchik <mrsam(a)courier-mta.com> Mon, 28 Aug 2023 22:08:51 -0400
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/courier-imap-5.2.4/rpm.release new/courier-imap-5.2.5/rpm.release
--- old/courier-imap-5.2.4/rpm.release 2023-04-28 02:44:20.000000000 +0200
+++ new/courier-imap-5.2.5/rpm.release 2023-08-29 04:08:51.000000000 +0200
@@ -1,2 +1,2 @@
-VERSION=5.2.4
-RELEASE=1
+VERSION=5.2.5
+RELEASE=2
++++++ courier-imap.keyring ++++++
--- /var/tmp/diff_new_pack.lDTcry/_old 2023-08-31 13:52:24.118557377 +0200
+++ /var/tmp/diff_new_pack.lDTcry/_new 2023-08-31 13:52:24.122557520 +0200
@@ -1,110 +1,78 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.14 (GNU/Linux)
-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
-=Hyk4
+mDMEZMuHLRYJKwYBBAHaRw8BAQdAe5JtcuSmqfCc9heHcxw01+ldcRpzdgIrpIX5
+jkkimDO0J1NhbSBWYXJzaGF2Y2hpayA8bXJzYW1AY291cmllci1tdGEuY29tPoiZ
+BBMWCgBBFiEEbqZCiyT/emlu+aSDimD4KKI2UuIFAmTLhy0CGwMFCRLZMgAFCwkI
+BwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQimD4KKI2UuJ2XgEA6GptTHupqpaz
+rv5GGN3AVga+XyOtzG6TvVu2BvYdS10BAOyw4SARKv4BYmdfD4mERxE7XNZDs0fF
+DIB1C5rJzgAKiQIzBBABCAAdFiEEMWrVnbBKLOeG9ifkazpiviedvyUFAmTLiPEA
+CgkQazpiviedvyXMBhAAnO5/nlyyJTVkiwLxfHj7j6A50oByON5cu+1bwkLIXACx
+2IBhFlaEJ694EPIQf8EvALrGu9Dh3+XySM4wQkOvhOE9D15KYBBf3x68xYzHbjfS
+jNoweDa23P+RRF3HFIDIHgyc4A9haFTU+utD9eEXjU/gEdTIXCKlSxGYxCjrJLjC
+vJkPnTDeq6msj4YRRyOsSqpryihuniDVA0T4QIXTfgFhQVY9dzhxdZ/vY+hNj6If
+nEkGm3WWY4nQ4DZvNJ+vuOkS9p3PnllUhMkvYpBV8/8GkSTfkR3tMhtHaQW/AnvX
+b/Qll7GuLH4stg9QkDF5ueDWXpA4Fu1HfO6XP+Y2xdM/6upqJZpm+/dseQZUdC2V
+f0EVY3IKm+oBDV+qmJ4HuVKgQGr6KH6ycPVofxxLLHz5r6diL2LlKL581CwYDImz
+B/vCu6+zpXxtgxHqEqGCL3rDBZotaas9Z5qY+b8dxJM+jPCLGBLKz6kCnd0k0x6q
+EVyRo9epE1gUAwj8dFJBlAJiRcawtbap0M2s50NFmImDOHjjcQ2ETqVidUlLVUio
+a5q8dewpzjhvM2YyG36jMXWi4/DqBs3phKYYyxAx2DYnh6qoQKfq35QVDXjdTrDL
+8sr0maOSuVqe/VpyqB99UJ4V0Abeu78zoztMGi7tqBRgHM2F9TkVUjiTx5rEjuO4
+OARky4ctEgorBgEEAZdVAQUBAQdAzlNbe5g9ZRuoJAt1JcsqKoAhRKWuxBbhS1Dw
+zCDfNT4DAQgHiH4EGBYKACYWIQRupkKLJP96aW75pIOKYPgoojZS4gUCZMuHLQIb
+DAUJEtkyAAAKCRCKYPgoojZS4oCIAQCcPDRM+uagL9ubiHvYvxXo/MHGTcb2sqW6
+TmAEAOiLPAEAhBvjajICx0k/YZxEbBLACqeVZQYx+0wYlq+KFex2bgo=
+=HMW7
+-----END PGP PUBLIC KEY BLOCK-----
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=85Hx
-----END PGP PUBLIC KEY BLOCK-----
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package redfishtool for openSUSE:Factory checked in at 2023-08-31 13:46:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/redfishtool (Old)
and /work/SRC/openSUSE:Factory/.redfishtool.new.1766 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "redfishtool"
Thu Aug 31 13:46:14 2023 rev:6 rq:1108202 version:1.1.8
Changes:
--------
--- /work/SRC/openSUSE:Factory/redfishtool/redfishtool.changes 2023-07-11 15:57:14.785151519 +0200
+++ /work/SRC/openSUSE:Factory/.redfishtool.new.1766/redfishtool.changes 2023-08-31 13:52:19.178380803 +0200
@@ -1,0 +2,13 @@
+Sun Aug 27 12:23:51 UTC 2023 - Martin Hauke <mardnh(a)gmx.de>
+
+- Update to version 1.1.8
+ * Corrected matching logic to return the matched resource if
+ found.
+- Update to version 1.1.7
+ * Added workaround to specify the 'BootSourceOverrideMode'
+ property when modifying the boot override properties even if
+ the mode is not changing.
+- Update to version 1.1.6
+ * Minor spelling fixes
+
+-------------------------------------------------------------------
Old:
----
redfishtool-1.1.5.tar.gz
New:
----
redfishtool-1.1.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ redfishtool.spec ++++++
--- /var/tmp/diff_new_pack.CUGahq/_old 2023-08-31 13:52:20.142415260 +0200
+++ /var/tmp/diff_new_pack.CUGahq/_new 2023-08-31 13:52:20.146415404 +0200
@@ -2,7 +2,7 @@
# spec file for package redfishtool
#
# Copyright (c) 2023 SUSE LLC
-# Copyright (c) 2020-2021, Martin Hauke <mardnh(a)gmx.de>
+# Copyright (c) 2020-2023, Martin Hauke <mardnh(a)gmx.de>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
Name: redfishtool
-Version: 1.1.5
+Version: 1.1.8
Release: 0
Summary: A CLI tool for accessing the Redfish API
License: BSD-3-Clause
@@ -28,7 +28,7 @@
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildRequires: python3-setuptools
-Requires: python3-dateutils
+Requires: python3-dateutil
Requires: python3-requests
BuildArch: noarch
++++++ redfishtool-1.1.5.tar.gz -> redfishtool-1.1.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Redfishtool-1.1.5/.github/workflows/release.yml new/Redfishtool-1.1.8/.github/workflows/release.yml
--- old/Redfishtool-1.1.5/.github/workflows/release.yml 1970-01-01 01:00:00.000000000 +0100
+++ new/Redfishtool-1.1.8/.github/workflows/release.yml 2023-08-16 22:27:39.000000000 +0200
@@ -0,0 +1,102 @@
+name: Release and Publish
+on:
+ workflow_dispatch:
+ inputs:
+ version:
+ description: 'Version number'
+ required: true
+ changes_1:
+ description: 'Change entry'
+ required: true
+ changes_2:
+ description: 'Change entry'
+ required: false
+ changes_3:
+ description: 'Change entry'
+ required: false
+ changes_4:
+ description: 'Change entry'
+ required: false
+ changes_5:
+ description: 'Change entry'
+ required: false
+ changes_6:
+ description: 'Change entry'
+ required: false
+ changes_7:
+ description: 'Change entry'
+ required: false
+ changes_8:
+ description: 'Change entry'
+ required: false
+jobs:
+ release_build:
+ name: Build the release
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ token: ${{secrets.GITHUB_TOKEN}}
+ - name: Build the changelog text
+ run: |
+ echo 'CHANGES<<EOF' >> $GITHUB_ENV
+ echo "## [${{github.event.inputs.version}}] - $(date +'%Y-%m-%d')" >> $GITHUB_ENV
+ echo "- ${{github.event.inputs.changes_1}}" >> $GITHUB_ENV
+ if [[ -n "${{github.event.inputs.changes_2}}" ]]; then echo "- ${{github.event.inputs.changes_2}}" >> $GITHUB_ENV; fi
+ if [[ -n "${{github.event.inputs.changes_3}}" ]]; then echo "- ${{github.event.inputs.changes_3}}" >> $GITHUB_ENV; fi
+ if [[ -n "${{github.event.inputs.changes_4}}" ]]; then echo "- ${{github.event.inputs.changes_4}}" >> $GITHUB_ENV; fi
+ if [[ -n "${{github.event.inputs.changes_5}}" ]]; then echo "- ${{github.event.inputs.changes_5}}" >> $GITHUB_ENV; fi
+ if [[ -n "${{github.event.inputs.changes_6}}" ]]; then echo "- ${{github.event.inputs.changes_6}}" >> $GITHUB_ENV; fi
+ if [[ -n "${{github.event.inputs.changes_7}}" ]]; then echo "- ${{github.event.inputs.changes_7}}" >> $GITHUB_ENV; fi
+ if [[ -n "${{github.event.inputs.changes_8}}" ]]; then echo "- ${{github.event.inputs.changes_8}}" >> $GITHUB_ENV; fi
+ echo "" >> $GITHUB_ENV
+ echo 'EOF' >> $GITHUB_ENV
+ - name: Update version numbers
+ run: |
+ sed -i -E 's/ version=.+,/ version='\'${{github.event.inputs.version}}\'',/' setup.py
+ sed -i -E 's/ self\.version=".+"/ self.version="'${{github.event.inputs.version}}'"/' redfishtoollib/redfishtoolTransport.py
+ sed -i -E 's/ self\.releaseDate=".+"/ self.releaseDate="'$(date +'%m\/%d\/%Y')'"/' redfishtoollib/redfishtoolTransport.py
+ - name: Update the changelog
+ run: |
+ ex CHANGELOG.md <<eof
+ 3 insert
+ $CHANGES
+ .
+ xit
+ eof
+ - name: Commit and push the updates
+ run: |
+ git config user.name "GitHub Release Workflow"
+ git config user.email "<>"
+ git add CHANGELOG.md setup.py redfishtoollib/redfishtoolTransport.py
+ git commit -s -m "${{github.event.inputs.version}} versioning"
+ git push origin main
+ - name: Make the release
+ id: create_release
+ uses: actions/create-release@v1
+ env:
+ GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
+ with:
+ tag_name: ${{github.event.inputs.version}}
+ release_name: ${{github.event.inputs.version}}
+ body: |
+ Changes since last release:
+
+ ${{env.CHANGES}}
+ draft: false
+ prerelease: false
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: '3.x'
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install setuptools wheel twine
+ - name: Build and publish to pypi
+ env:
+ TWINE_USERNAME: ${{secrets.PYPI_USERNAME}}
+ TWINE_PASSWORD: ${{secrets.PYPI_PASSWORD}}
+ run: |
+ python setup.py sdist bdist_wheel
+ twine upload dist/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Redfishtool-1.1.5/CHANGELOG.md new/Redfishtool-1.1.8/CHANGELOG.md
--- old/Redfishtool-1.1.5/CHANGELOG.md 2021-03-02 16:46:48.000000000 +0100
+++ new/Redfishtool-1.1.8/CHANGELOG.md 2023-08-16 22:27:39.000000000 +0200
@@ -1,5 +1,11 @@
# Change Log
+## [1.1.7] - 2023-06-30
+- Added workaround to specify the 'BootSourceOverrideMode' property when modifying the boot override properties even if the mode is not changing
+
+## [1.1.6] - 2022-06-20
+- Minor spelling fixes
+
## [1.1.5] - 2021-03-02
- Added --no-proxy option
- Fixed missing documentation to show PowerCycle is a valid reset option
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Redfishtool-1.1.5/CONTRIBUTING.md new/Redfishtool-1.1.8/CONTRIBUTING.md
--- old/Redfishtool-1.1.5/CONTRIBUTING.md 1970-01-01 01:00:00.000000000 +0100
+++ new/Redfishtool-1.1.8/CONTRIBUTING.md 2023-08-16 22:27:39.000000000 +0200
@@ -0,0 +1,64 @@
+# Contributing
+
+## Overview
+
+This repository is maintained by the [DMTF](https://www.dmtf.org/ "https://www.dmtf.org/"). All contributions are reviewed and approved by members of the organization.
+
+## Submitting Issues
+
+Bugs, feature requests, and questions are all submitted in the "Issues" section for the project. DMTF members are responsible for triaging and addressing issues.
+
+## Contribution Process
+
+1. Fork the repository.
+2. Make and commit changes.
+3. Make a pull request.
+
+All contributions must adhere to the BSD 3-Clause License described in the LICENSE.md file, and the [Developer Certificate of Origin](#developer-certificate-of-origin).
+
+Pull requests are reviewed and approved by DMTF members.
+
+## Developer Certificate of Origin
+
+All contributions must adhere to the [Developer Certificate of Origin (DCO)](http://developercertificate.org "http://developercertificate.org").
+
+The DCO is an attestation attached to every contribution made by every developer. In the commit message of the contribution, the developer adds a "Signed-off-by" statement and thereby agrees to the DCO. This can be added by using the `--signoff` parameter with `git commit`.
+
+Full text of the DCO:
+
+```
+Developer Certificate of Origin
+Version 1.1
+
+Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
+
+Everyone is permitted to copy and distribute verbatim copies of this
+license document, but changing it is not allowed.
+
+
+Developer's Certificate of Origin 1.1
+
+By making a contribution to this project, I certify that:
+
+(a) The contribution was created in whole or in part by me and I
+ have the right to submit it under the open source license
+ indicated in the file; or
+
+(b) The contribution is based upon previous work that, to the best
+ of my knowledge, is covered under an appropriate open source
+ license and I have the right under that license to submit that
+ work with modifications, whether created in whole or in part
+ by me, under the same open source license (unless I am
+ permitted to submit under a different license), as indicated
+ in the file; or
+
+(c) The contribution was provided directly to me by some other
+ person who certified (a), (b) or (c) and I have not modified
+ it.
+
+(d) I understand and agree that this project and the contribution
+ are public and that a record of the contribution (including all
+ personal information I submit with it, including my sign-off) is
+ maintained indefinitely and may be redistributed consistent with
+ this project or the open source license(s) involved.
+```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Redfishtool-1.1.5/README.md new/Redfishtool-1.1.8/README.md
--- old/Redfishtool-1.1.5/README.md 2021-03-02 16:46:48.000000000 +0100
+++ new/Redfishtool-1.1.8/README.md 2023-08-16 22:27:39.000000000 +0200
@@ -28,10 +28,10 @@
## Why redfishtool?
1. ***redfishtool*** was originally written during the development of the Redfish specification to help find ambiguities in the spec.
-1. ***redfishtool*** is now also being used to test inter-operability between redfish service implementations.
+1. ***redfishtool*** is now also being used to test interoperability between redfish service implementations.
1. In addition, ***redfishtool*** provides an example implementation for how a client can execute common server management functions like inventory; power-on/off/reset; setting power limits, indicator LEDs, and AssetTags, and searching a multi-node redfish service to find a specific node (with specific UUID, redfish Id, etc). redfishtool follows strict rules of interoperability. To support this goal, liberal comments are added throughout code to explain why each step is being executed.
1. As described above, it makes it easy to use the Redfish API from a BASH script, or as an easy-to-use interactive CLI -- but WITHOUIT creating a 'new API'. All (rather most) of the responses from ***redfishtool*** are Redfish-defined responses. The properties and resources are defined in the redfish spec. ***redfishtool*** is just a tool to access the Redfish API-not a new interface itself.
- * The execption is that a 'list' operation was added for all collections to display the key properties for each of the members--rather than just the URIs to the members.
+ * The exception is that a 'list' operation was added for all collections to display the key properties for each of the members--rather than just the URIs to the members.
## Installation
@@ -140,7 +140,7 @@
hello -- redfishtool hello world subcommand for dev testing
about -- display version and other information about this version of redfishtool
versions -- get redfishProtocol versions supported by rhost: GET ^/redfish
- root | serviceRoot -- get serviceRoot resouce: GET ^/redfish/v1/
+ root | serviceRoot -- get serviceRoot resource: GET ^/redfish/v1/
Systems -- operations on Computer Systems in the /Systems collection
Chassis -- operations on Chassis in the /Chassis collection
Managers -- operations on Managers in the /Managers collection
@@ -600,11 +600,8 @@
## Release Process
-1. Update `CHANGELOG.md` with the list of changes since the last release
-2. Update the `self.version` and `self.releaseDate` variables in `redfishtool/redfishtoolTransport.py` to reflect the new tool version
-3. Update setup.py to reflect the new tool version
-4. Push changes to Github
-5. Create a new release in Github
-6. Push the new tool version to pypi.org
- * `python setup.py sdist`
- * `twine upload dist/*`
+1. Go to the "Actions" page
+2. Select the "Release and Publish" workflow
+3. Click "Run workflow"
+4. Fill out the form
+5. Click "Run workflow"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Redfishtool-1.1.5/redfishtool.py new/Redfishtool-1.1.8/redfishtool.py
--- old/Redfishtool-1.1.5/redfishtool.py 2021-03-02 16:46:48.000000000 +0100
+++ new/Redfishtool-1.1.8/redfishtool.py 2023-08-16 22:27:39.000000000 +0200
@@ -1,7 +1,7 @@
#!/usr/bin/python
# Copyright Notice:
# Copyright 2016, 2020 DMTF. All rights reserved.
-# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/master/LICENSE.md
+# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/main/LICENSE.md
# redfishtool: redfishtool.py
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Redfishtool-1.1.5/redfishtoollib/AccountService.py new/Redfishtool-1.1.8/redfishtoollib/AccountService.py
--- old/Redfishtool-1.1.5/redfishtoollib/AccountService.py 2021-03-02 16:46:48.000000000 +0100
+++ new/Redfishtool-1.1.8/redfishtoollib/AccountService.py 2023-08-16 22:27:39.000000000 +0200
@@ -1,6 +1,6 @@
# Copyright Notice:
# Copyright 2016 DMTF. All rights reserved.
-# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/master/LICENSE.md
+# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/main/LICENSE.md
# redfishtool: AccountService.py
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Redfishtool-1.1.5/redfishtoollib/Chassis.py new/Redfishtool-1.1.8/redfishtoollib/Chassis.py
--- old/Redfishtool-1.1.5/redfishtoollib/Chassis.py 2021-03-02 16:46:48.000000000 +0100
+++ new/Redfishtool-1.1.8/redfishtoollib/Chassis.py 2023-08-16 22:27:39.000000000 +0200
@@ -1,6 +1,6 @@
# Copyright Notice:
# Copyright 2016 DMTF. All rights reserved.
-# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/master/LICENSE.md
+# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/main/LICENSE.md
# redfishtool: Chassis.py
#
@@ -575,7 +575,7 @@
powerLimitData["LimitException"]=exceptionVal
includeException=True
- # check if there is an optional 4th arg <correctionTime> in miliseconds
+ # check if there is an optional 4th arg <correctionTime> in milliseconds
includeCorrectionTime=False
if (sc.argnum > 3 ):
correctionPattern="(^([1-9][0-9]{,6})$)" # 1-999999 ms
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Redfishtool-1.1.5/redfishtoollib/Managers.py new/Redfishtool-1.1.8/redfishtoollib/Managers.py
--- old/Redfishtool-1.1.5/redfishtoollib/Managers.py 2021-03-02 16:46:48.000000000 +0100
+++ new/Redfishtool-1.1.8/redfishtoollib/Managers.py 2023-08-16 22:27:39.000000000 +0200
@@ -1,6 +1,6 @@
# Copyright Notice:
# Copyright 2016 DMTF. All rights reserved.
-# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/master/LICENSE.md
+# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/main/LICENSE.md
# redfishtool: Managers.py
#
@@ -323,7 +323,7 @@
#now read remote service to find out if specified resetType is one of the allowable values for this rhost
rc,r,j,d=op.get(sc,op,rft,prop="Actions")
if(rc != 0):
- print("Error, cant read Actions properties from remote service")
+ print("Error, can't read Actions properties from remote service")
return(8,None,False,None)
if( (j is True) and ("Actions" in d) and ("#Manager.Reset" in d["Actions"])):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Redfishtool-1.1.5/redfishtoollib/ServiceRoot.py new/Redfishtool-1.1.8/redfishtoollib/ServiceRoot.py
--- old/Redfishtool-1.1.5/redfishtoollib/ServiceRoot.py 2021-03-02 16:46:48.000000000 +0100
+++ new/Redfishtool-1.1.8/redfishtoollib/ServiceRoot.py 2023-08-16 22:27:39.000000000 +0200
@@ -1,6 +1,6 @@
# Copyright Notice:
# Copyright 2016 DMTF. All rights reserved.
-# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/master/LICENSE.md
+# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/main/LICENSE.md
# redfishtool: ServiceRoot.py
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Redfishtool-1.1.5/redfishtoollib/SessionService.py new/Redfishtool-1.1.8/redfishtoollib/SessionService.py
--- old/Redfishtool-1.1.5/redfishtoollib/SessionService.py 2021-03-02 16:46:48.000000000 +0100
+++ new/Redfishtool-1.1.8/redfishtoollib/SessionService.py 2023-08-16 22:27:39.000000000 +0200
@@ -1,6 +1,6 @@
# Copyright Notice:
# Copyright 2016 DMTF. All rights reserved.
-# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/master/LICENSE.md
+# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/main/LICENSE.md
# redfishtool: SessionService.py
#
@@ -361,7 +361,7 @@
# get the Sessions collection
rc,r,j,d=rft.rftSendRecvRequest(rft.AUTHENTICATED_API, 'GET', r.url, relPath=sessionsLink, prop=prop)
if(rc != 0):
- rft.printErr("Error: logout: cant read sessions collection")
+ rft.printErr("Error: logout: can't read sessions collection")
return(6,None,False,None)
# now search for 2nd level resource and return
path2,rc,r,j,d=rft.getLevel2ResourceById(rft,r,d)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Redfishtool-1.1.5/redfishtoollib/Systems.py new/Redfishtool-1.1.8/redfishtoollib/Systems.py
--- old/Redfishtool-1.1.5/redfishtoollib/Systems.py 2021-03-02 16:46:48.000000000 +0100
+++ new/Redfishtool-1.1.8/redfishtoollib/Systems.py 2023-08-16 22:27:39.000000000 +0200
@@ -1,6 +1,6 @@
# Copyright Notice:
# Copyright 2016 DMTF. All rights reserved.
-# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/master/LICENSE.md
+# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/main/LICENSE.md
# redfishtool: Systems.py
#
@@ -383,7 +383,7 @@
#now read remote service to find out if specified resetType is one of the allowable values for this rhost
rc,r,j,d=op.get(sc,op,rft,prop="Actions")
if(rc != 0):
- print("Error, cant read Actions properties from remote service")
+ print("Error, can't read Actions properties from remote service")
return(8,None,False,None)
if( (j is True) and ("Actions" in d) and ("#ComputerSystem.Reset" in d["Actions"])):
@@ -531,11 +531,11 @@
return(8,None,False,None)
#now read target,
- # we will need to check that the properteis we are patching are there, and chk for etag hdr
+ # we will need to check that the properties we are patching are there, and chk for etag hdr
# and to see if the value specified is one of the allowable values for this rhost
rc,r,j,d=op.get(sc,op,rft,prop="Boot")
if(rc != 0):
- print("Error, cant read boot properties from remote service")
+ print("Error, can't read boot properties from remote service")
return(8,None,False,None)
# verify that they have a BootSourceOverrideEnabled prop
@@ -584,7 +584,13 @@
return(8,None,False,None)
#form the patch data
- patchData={"Boot": {"BootSourceOverrideEnabled": enabledVal, "BootSourceOverrideTarget": targetVal } }
+
+ # Get the value of "BootSourceOverrideTarget" property and pass it in the patch request.
+ # Some HW vendors need this property to be passed explicitly.
+ if "BootSourceOverrideMode" in d["Boot"]:
+ patchData={"Boot": {"BootSourceOverrideEnabled": enabledVal, "BootSourceOverrideTarget": targetVal, "BootSourceOverrideMode": d["Boot"]["BootSourceOverrideMode"] } }
+ else:
+ patchData={"Boot": {"BootSourceOverrideEnabled": enabledVal, "BootSourceOverrideTarget": targetVal } }
#call the generic patch command to send the patch. This takes care of etag support
rc,r,j,d=rft.patchResource(rft, r, patchData)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Redfishtool-1.1.5/redfishtoollib/__init__.py new/Redfishtool-1.1.8/redfishtoollib/__init__.py
--- old/Redfishtool-1.1.5/redfishtoollib/__init__.py 2021-03-02 16:46:48.000000000 +0100
+++ new/Redfishtool-1.1.8/redfishtoollib/__init__.py 2023-08-16 22:27:39.000000000 +0200
@@ -1,6 +1,6 @@
# Copyright Notice:
# Copyright 2016 DMTF. All rights reserved.
-# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/master/LICENSE.md
+# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/main/LICENSE.md
from .redfishtoolMain import main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Redfishtool-1.1.5/redfishtoollib/raw.py new/Redfishtool-1.1.8/redfishtoollib/raw.py
--- old/Redfishtool-1.1.5/redfishtoollib/raw.py 2021-03-02 16:46:48.000000000 +0100
+++ new/Redfishtool-1.1.8/redfishtoollib/raw.py 2023-08-16 22:27:39.000000000 +0200
@@ -1,6 +1,6 @@
# Copyright Notice:
# Copyright 2016 DMTF. All rights reserved.
-# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/master/LICENSE.md
+# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/main/LICENSE.md
# redfishtool: rawMain.py
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Redfishtool-1.1.5/redfishtoollib/redfishtoolMain.py new/Redfishtool-1.1.8/redfishtoollib/redfishtoolMain.py
--- old/Redfishtool-1.1.5/redfishtoollib/redfishtoolMain.py 2021-03-02 16:46:48.000000000 +0100
+++ new/Redfishtool-1.1.8/redfishtoollib/redfishtoolMain.py 2023-08-16 22:27:39.000000000 +0200
@@ -1,6 +1,6 @@
# Copyright Notice:
# Copyright 2016 DMTF. All rights reserved.
-# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/master/LICENSE.md
+# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/main/LICENSE.md
# redfishtool: redfishtool.py Main
#
@@ -98,7 +98,7 @@
print(" hello -- redfishtool hello world subcommand for dev testing")
print(" about -- display version and other information about this version of {}".format(rft.program))
print(" versions -- get redfishProtocol versions supported by rhost: GET ^/redfish")
- print(" root | serviceRoot -- get serviceRoot resouce: GET ^/redfish/v1/")
+ print(" root | serviceRoot -- get serviceRoot resource: GET ^/redfish/v1/")
print(" Systems -- operations on Computer Systems in the /Systems collection ")
print(" Chassis -- operations on Chassis in the /Chassis collection")
print(" Managers -- operations on Managers in the /Managers collection")
@@ -377,7 +377,7 @@
rft.printVerbose(5,"Main: options parsed. Now lookup subcommand and execute it")
- # instansiate the SubCmd object, and run the specified subcommand
+ # instantiate the SubCmd object, and run the specified subcommand
#rfCmds=RfSubCmds()
#rc=rfCmds.runSubCmd(rft)
rc,r,j,d=runSubCmd(rft)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Redfishtool-1.1.5/redfishtoollib/redfishtoolTransport.py new/Redfishtool-1.1.8/redfishtoollib/redfishtoolTransport.py
--- old/Redfishtool-1.1.5/redfishtoollib/redfishtoolTransport.py 2021-03-02 16:46:48.000000000 +0100
+++ new/Redfishtool-1.1.8/redfishtoollib/redfishtoolTransport.py 2023-08-16 22:27:39.000000000 +0200
@@ -1,6 +1,6 @@
# Copyright Notice:
# Copyright 2016 DMTF. All rights reserved.
-# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/master/LICENSE.md
+# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/main/LICENSE.md
# redfishtool: redfishtoolTransport.py
#
@@ -60,8 +60,8 @@
def __init__(self):
# constant parameters-- these dont change and are not updated
self.program="redfishtool" # program name (in case we want to change it)
- self.version="1.1.5" # this redfishtool version
- self.releaseDate="03/02/2021" # release date for this version of redfishtool
+ self.version="1.1.7" # this redfishtool version
+ self.releaseDate="06/30/2023" # release date for this version of redfishtool
self.downloadFrom="https://github.com/DMTF/Redfishtool" # where to find redfishtool
self.magic="12345" # used for debug to test for a known parameter in this object
self.UNAUTHENTICATED_API=1 # unauthenticated API that doesn't send credentials in body data
@@ -260,23 +260,23 @@
rft.printStatus(3,r=r,authMsg=None)
except requests.exceptions.ConnectTimeout:
- # connect timeout occured. try again w/o sleeping since a timeout already occured
- rft.printVerbose(5,"Tranport: connectTimeout, try again")
+ # connect timeout occurred. try again w/o sleeping since a timeout already occurred
+ rft.printVerbose(5,"Transport: connectTimeout, try again")
pass
except (socket.error):
# this exception needed as requests is not catching socket timeouts
# especially "connection refused" eg web server not started
# issue: https://github.com/kennethreitz/requests/issues/1236
# Nothing timed out. this is a connect error. So wait and retry
- rft.printVerbose(5,"Tranport: socket.error, wait and try again")
+ rft.printVerbose(5,"Transport: socket.error, wait and try again")
time.sleep(rft.waitTime)
except (requests.exceptions.ReadTimeout):
- # read timeout occured. This shouldn't happen, so fail it
+ # read timeout occurred. This shouldn't happen, so fail it
rft.printErr("Transport: Fatal timeout waiting for response from rhost")
return(5)
except (requests.exceptions.ConnectionError):
# eg DNS error, connection refused. wait and try again
- rft.printVerbose(5,"Tranport: ConnectionError, wait and try again")
+ rft.printVerbose(5,"Transport: ConnectionError, wait and try again")
time.sleep(rft.waitTime)
except requests.exceptions.RequestException as e:
# otherl requests exceptions. return with error
@@ -294,7 +294,7 @@
if not success: # retries were exceeded w/o success
- rft.printErr("Transport: Cant connect to remote redfish service. Aborting command")
+ rft.printErr("Transport: Can't connect to remote redfish service. Aborting command")
if( (r is not None) and ( r.status_code >= 400 )):
rft.printStatusErr4xx(r.status_code)
else:
@@ -341,7 +341,7 @@
rft.printErr(" between {} and remote service".format(rft.program),noprog=True)
# second, calculate the version to use if the user specifies a specific version number eg -P v2
- else: # user explicitely specified a version to use. Check if service supports it
+ else: # user explicitly specified a version to use. Check if service supports it
if rft.protocolVer in rft.supportedVersions:
if rft.protocolVer in serviceSupportedVersions:
rfVer=rft.protocolVer
@@ -502,23 +502,23 @@
except requests.exceptions.ConnectTimeout:
# connect timeout occured. try again w/o sleeping since a timeout already occured
- rft.printVerbose(5,"Tranport: connectTimeout, try again")
+ rft.printVerbose(5,"Transport: connectTimeout, try again")
return(5,r,False,None)
except (socket.error):
# this exception needed as requests is not catching socket timeouts
# especially "connection refused" eg web server not started
# issue: https://github.com/kennethreitz/requests/issues/1236
# Nothing timed out. this is a connect error. So wait and retry
- rft.printVerbose(5,"Tranport: socket.error, wait and try again")
+ rft.printVerbose(5,"Transport: socket.error, wait and try again")
time.sleep(rft.waitTime)
return(5,r,False,None)
except (requests.exceptions.ReadTimeout):
- # read timeout occured. This shouldn't happen, so fail it
+ # read timeout occurred. This shouldn't happen, so fail it
rft.printErr("Transport: Fatal timeout waiting for response from rhost")
return(5,r,False,None)
except (requests.exceptions.ConnectionError):
# eg DNS error, connection refused. wait and try again
- rft.printVerbose(5,"Tranport: ConnectionError, wait and try again")
+ rft.printVerbose(5,"Transport: ConnectionError, wait and try again")
time.sleep(rft.waitTime)
return(5,r,False,None)
except requests.exceptions.RequestException as e:
@@ -1008,7 +1008,7 @@
elif(rft.gotMatchOptn):
baseUrl=r.url
- matchedPath=None
+ matchedPath,matchedRc,matchedR,matchedJ,matchedD=None,1,None,False,None
matches=0
for i in range (0,numOfLinks):
if( '@odata.id' not in coll['Members'][i] ):
@@ -1019,13 +1019,13 @@
rc,r,j,d=rft.rftSendRecvRequest(rft.AUTHENTICATED_API, 'GET', baseUrl, relPath=path)
if(rc==0): # if matchProp found
if( d[rft.matchProp] == rft.matchValue ):
- matchedPath=path
+ matchedPath,matchedRc,matchedR,matchedJ,matchedD=path,rc,r,j,d
matches +=1
if( matches > 1 ):
rft.printErr("Error: getPathBy --Id or --Match option: failed: found multiple matches.")
return(None,1,None,False,None)
if(rft.firstOptn):
- return(matchedPath,rc,r,j,d)
+ return(matchedPath,matchedRc,matchedR,matchedJ,matchedD)
else:
rft.printVerbose(4,"Transport:getPathBy:Match: failed match: matchProp={}, matchValue={}, readValue={}".format(rft.matchProp,rft.matchValue,d[rft.matchProp]))
pass
@@ -1035,7 +1035,7 @@
#after looping over all members in the array,
#if here, if we got a match, return the path. If not, then no match was found. return none
if( matches > 0 ):
- return(matchedPath,rc,r,j,d)
+ return(matchedPath,matchedRc,matchedR,matchedJ,matchedD)
else:
rft.printErr("Error: getPathBy --Id or --Match option: no match found in collection")
return(None,1,None,False,None)
@@ -1208,7 +1208,7 @@
#where in this case, the getEtag header will have double quotes embedded in it
else:
getEtag=None
- #patchHeaders={ "content-type": "application/json"} --dont need to specifiy this now
+ #patchHeaders={ "content-type": "application/json"} --dont need to specify this now
patchHeaders=None
# ideally, we should verify that the property to be patched is supported in the get response
@@ -1218,7 +1218,7 @@
# send patch to rhost
rc,r,j,d=rft.rftSendRecvRequest(rft.AUTHENTICATED_API, 'PATCH', r.url,
headersInput=patchHeaders, reqData=reqPatchData)
- # if response was good but no data retured (status_Code=204), then do another GET to get the response
+ # if response was good but no data returned (status_Code=204), then do another GET to get the response
if(rc==0):
if(r.status_code==204): #no data returned, get the response
# if the getResponseAfterPatch was set False, dont get a response
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Redfishtool-1.1.5/scripts/redfishtool new/Redfishtool-1.1.8/scripts/redfishtool
--- old/Redfishtool-1.1.5/scripts/redfishtool 2021-03-02 16:46:48.000000000 +0100
+++ new/Redfishtool-1.1.8/scripts/redfishtool 2023-08-16 22:27:39.000000000 +0200
@@ -1,7 +1,7 @@
#!/usr/bin/python
# Copyright Notice:
# Copyright 2016, 2020 DMTF. All rights reserved.
-# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/master/LICENSE.md
+# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/main/LICENSE.md
# redfishtool: scripts/redfishtool
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Redfishtool-1.1.5/scripts/redfishtool.py new/Redfishtool-1.1.8/scripts/redfishtool.py
--- old/Redfishtool-1.1.5/scripts/redfishtool.py 2021-03-02 16:46:48.000000000 +0100
+++ new/Redfishtool-1.1.8/scripts/redfishtool.py 2023-08-16 22:27:39.000000000 +0200
@@ -1,7 +1,7 @@
#!/usr/bin/python
# Copyright Notice:
# Copyright 2016, 2020 DMTF. All rights reserved.
-# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/master/LICENSE.md
+# License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/Redfishtool/blob/main/LICENSE.md
# redfishtool: scripts/redfishtool.py
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Redfishtool-1.1.5/setup.py new/Redfishtool-1.1.8/setup.py
--- old/Redfishtool-1.1.5/setup.py 2021-03-02 16:46:48.000000000 +0100
+++ new/Redfishtool-1.1.8/setup.py 2023-08-16 22:27:39.000000000 +0200
@@ -6,7 +6,7 @@
long_description = f.read()
setup(name='redfishtool',
- version='1.1.5',
+ version='1.1.7',
description='Redfishtool package and command-line client',
long_description=long_description,
long_description_content_type='text/markdown',
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gnome-shell-extension-pop-shell for openSUSE:Factory checked in at 2023-08-31 13:46:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-shell-extension-pop-shell (Old)
and /work/SRC/openSUSE:Factory/.gnome-shell-extension-pop-shell.new.1766 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-shell-extension-pop-shell"
Thu Aug 31 13:46:13 2023 rev:7 rq:1108200 version:1.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-shell-extension-pop-shell/gnome-shell-extension-pop-shell.changes 2022-09-25 15:35:15.399616225 +0200
+++ /work/SRC/openSUSE:Factory/.gnome-shell-extension-pop-shell.new.1766/gnome-shell-extension-pop-shell.changes 2023-08-31 13:52:17.818332192 +0200
@@ -1,0 +2,6 @@
+Wed Aug 30 13:37:16 UTC 2023 - Robert Munteanu <rombert(a)apache.org>
+
+- Add 8be10fa999b6631382c4f71826ee78ea9993f459.patch, fixes TSC
+ compilation
+
+-------------------------------------------------------------------
New:
----
8be10fa999b6631382c4f71826ee78ea9993f459.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-shell-extension-pop-shell.spec ++++++
--- /var/tmp/diff_new_pack.FVVeVc/_old 2023-08-31 13:52:19.010374798 +0200
+++ /var/tmp/diff_new_pack.FVVeVc/_new 2023-08-31 13:52:19.014374941 +0200
@@ -1,7 +1,7 @@
#
# spec file for package gnome-shell-extension-pop-shell
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -30,6 +30,7 @@
Source1: series
Patch0: 0143b0b5eb14291cbd9e0b8328eeec93c4871ba9.patch
Patch1: 4520e7813dcbca57ff19cba68085f5d8adf4785e.patch
+Patch2: 8be10fa999b6631382c4f71826ee78ea9993f459.patch
BuildRequires: gnome-shell >= 3.36
BuildRequires: gobject-introspection
BuildRequires: typescript >= 3.8
++++++ 8be10fa999b6631382c4f71826ee78ea9993f459.patch ++++++
From 8be10fa999b6631382c4f71826ee78ea9993f459 Mon Sep 17 00:00:00 2001
From: Michael Aaron Murphy <mmstick(a)pm.me>
Date: Tue, 31 Aug 2021 16:29:01 +0200
Subject: [PATCH] fix: TypeScript 4.4 compiler error
---
src/settings.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/settings.ts b/src/settings.ts
index 1ae463f2..46ecfbdb 100644
--- a/src/settings.ts
+++ b/src/settings.ts
@@ -20,9 +20,9 @@ interface Settings extends GObject.Object {
function settings_new_id(schema_id: string): Settings | null {
try {
return new Gio.Settings({ schema_id });
- } catch (err) {
+ } catch (why) {
if (schema_id !== "org.gnome.shell.extensions.user-theme") {
- global.log(err)
+ global.log(`failed to get settings for ${schema_id}: ${why}`)
}
return null
++++++ series ++++++
--- /var/tmp/diff_new_pack.FVVeVc/_old 2023-08-31 13:52:19.066376800 +0200
+++ /var/tmp/diff_new_pack.FVVeVc/_new 2023-08-31 13:52:19.070376943 +0200
@@ -1,3 +1,4 @@
0143b0b5eb14291cbd9e0b8328eeec93c4871ba9.patch
4520e7813dcbca57ff19cba68085f5d8adf4785e.patch
+8be10fa999b6631382c4f71826ee78ea9993f459.patch
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gede for openSUSE:Factory checked in at 2023-08-31 13:46:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gede (Old)
and /work/SRC/openSUSE:Factory/.gede.new.1766 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gede"
Thu Aug 31 13:46:08 2023 rev:4 rq:1108167 version:2.19.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/gede/gede.changes 2023-06-26 18:16:48.838662314 +0200
+++ /work/SRC/openSUSE:Factory/.gede.new.1766/gede.changes 2023-08-31 13:52:15.814260561 +0200
@@ -1,0 +2,6 @@
+Wed Aug 30 17:39:32 UTC 2023 - Bruno Pitrus <brunopitrus(a)hotmail.com>
+
+- New upstream release 2.19.1
+ * Added support for remote debugging over serial port
+
+-------------------------------------------------------------------
Old:
----
gede-2.18.3.tar.xz
New:
----
gede-2.19.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gede.spec ++++++
--- /var/tmp/diff_new_pack.f7gKvY/_old 2023-08-31 13:52:16.822296591 +0200
+++ /var/tmp/diff_new_pack.f7gKvY/_new 2023-08-31 13:52:16.830296878 +0200
@@ -18,7 +18,7 @@
Name: gede
-Version: 2.18.3
+Version: 2.19.1
Release: 0
Summary: Qt-based GUI to GDB
License: BSD-2-Clause
@@ -26,6 +26,7 @@
URL: https://gede.dexar.se
Source0: https://gede.dexar.se/uploads/source/gede-%{version}.tar.xz
Source1: gede.desktop
+BuildRequires: libQt5SerialPort-devel
BuildRequires: libQt5Widgets-devel
BuildRequires: libqt5-qtbase-common-devel
Requires: ctags
++++++ gede-2.18.3.tar.xz -> gede-2.19.1.tar.xz ++++++
++++ 1634 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package openSUSE-release-tools for openSUSE:Factory checked in at 2023-08-31 13:46:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.1766 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools"
Thu Aug 31 13:46:08 2023 rev:500 rq:1108195 version:20230829.44bcd82
Changes:
--------
--- /work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes 2023-08-30 10:23:29.830602548 +0200
+++ /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.1766/openSUSE-release-tools.changes 2023-08-31 13:52:13.466176635 +0200
@@ -1,0 +2,6 @@
+Tue Aug 29 09:58:47 UTC 2023 - opensuse-releaseteam(a)opensuse.org
+
+- Update to version 20230829.44bcd82:
+ * Don't crash when trying to fetch owner for 404 devel prjs
+
+-------------------------------------------------------------------
Old:
----
openSUSE-release-tools-20230828.37393de.obscpio
New:
----
openSUSE-release-tools-20230829.44bcd82.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.g3wV9B/_old 2023-08-31 13:52:14.874226962 +0200
+++ /var/tmp/diff_new_pack.g3wV9B/_new 2023-08-31 13:52:14.878227105 +0200
@@ -20,7 +20,7 @@
%define source_dir openSUSE-release-tools
%define announcer_filename factory-package-news
Name: openSUSE-release-tools
-Version: 20230828.37393de
+Version: 20230829.44bcd82
Release: 0
Summary: Tools to aid in staging and release work for openSUSE/SUSE
License: GPL-2.0-or-later AND MIT
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.g3wV9B/_old 2023-08-31 13:52:14.938229250 +0200
+++ /var/tmp/diff_new_pack.g3wV9B/_new 2023-08-31 13:52:14.938229250 +0200
@@ -1,7 +1,7 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param>
- <param name="changesrevision">37393de0bb4f60790972b15d6a5a1a9ae2597c63</param>
+ <param name="changesrevision">44bcd829043b8a062d627c050e6ac47e9b9e15a5</param>
</service>
</servicedata>
++++++ openSUSE-release-tools-20230828.37393de.obscpio -> openSUSE-release-tools-20230829.44bcd82.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20230828.37393de/osclib/core.py new/openSUSE-release-tools-20230829.44bcd82/osclib/core.py
--- old/openSUSE-release-tools-20230828.37393de/osclib/core.py 2023-08-28 10:20:05.000000000 +0200
+++ new/openSUSE-release-tools-20230829.44bcd82/osclib/core.py 2023-08-29 11:57:17.000000000 +0200
@@ -122,7 +122,7 @@
@memoize(session=True)
def owner_fallback(apiurl, project, package):
root = owner(apiurl, package, project=project)
- entry = root.find('owner')
+ entry = root.find('owner') if root else None
if not entry or project.startswith(entry.get('project')):
# Fallback to global (ex Factory) maintainer.
root = owner(apiurl, package)
++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.g3wV9B/_old 2023-08-31 13:52:15.694256272 +0200
+++ /var/tmp/diff_new_pack.g3wV9B/_new 2023-08-31 13:52:15.702256558 +0200
@@ -1,5 +1,5 @@
name: openSUSE-release-tools
-version: 20230828.37393de
-mtime: 1693210805
-commit: 37393de0bb4f60790972b15d6a5a1a9ae2597c63
+version: 20230829.44bcd82
+mtime: 1693303037
+commit: 44bcd829043b8a062d627c050e6ac47e9b9e15a5
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python3-ec2metadata for openSUSE:Factory checked in at 2023-08-31 13:46:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-ec2metadata (Old)
and /work/SRC/openSUSE:Factory/.python3-ec2metadata.new.1766 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-ec2metadata"
Thu Aug 31 13:46:06 2023 rev:4 rq:1108194 version:5.0.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-ec2metadata/python3-ec2metadata.changes 2022-10-18 12:45:48.393833930 +0200
+++ /work/SRC/openSUSE:Factory/.python3-ec2metadata.new.1766/python3-ec2metadata.changes 2023-08-31 13:52:12.090127453 +0200
@@ -1,0 +2,11 @@
+Wed Aug 23 21:26:04 UTC 2023 - Robert Schweikert <rjschwei(a)suse.com>
+
+- Update to version 5.0.0 (bsc#1214215)
+ + Remove the --use-token command line option. Aws is deprecating access
+ to instance metadata without authentication token. Ability to access
+ metadat without token has been removed
+ + Support access to the metadata server over IPv6. If the customer
+ enables the IPv6 endpoint for an instance it will be preferred over the
+ IPv4 endpoint
+
+-------------------------------------------------------------------
Old:
----
ec2metadata-4.0.0.tar.bz2
New:
----
ec2metadata-5.0.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-ec2metadata.spec ++++++
--- /var/tmp/diff_new_pack.CJ78PL/_old 2023-08-31 13:52:13.062162196 +0200
+++ /var/tmp/diff_new_pack.CJ78PL/_new 2023-08-31 13:52:13.066162338 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python3-ec2metadata
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%define upstream_name ec2metadata
Name: python3-ec2metadata
-Version: 4.0.0
+Version: 5.0.0
Release: 0
Summary: Collect instance metadata in EC2
License: GPL-3.0-or-later
++++++ ec2metadata-4.0.0.tar.bz2 -> ec2metadata-5.0.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ec2metadata-4.0.0/ec2metadata new/ec2metadata-5.0.0/ec2metadata
--- old/ec2metadata-4.0.0/ec2metadata 2022-10-10 22:51:55.448845562 +0200
+++ new/ec2metadata-5.0.0/ec2metadata 2023-08-23 23:25:51.057552629 +0200
@@ -68,7 +68,6 @@
getopt_metaopts.append('help')
getopt_metaopts.append('listapis')
getopt_metaopts.append('output')
- getopt_metaopts.append('use-token-access')
getopt_metaopts.append('version')
getopt_metaopts.append('xml')
getopt_metaopts.sort()
@@ -105,9 +104,6 @@
elif opt in ('-x', '--xml'):
generate_xml = True
continue
- elif opt == '--use-token-access':
- meta.use_token_access()
- continue
metaopts.append(opt.replace('--', ''))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ec2metadata-4.0.0/lib/ec2metadata/VERSION new/ec2metadata-5.0.0/lib/ec2metadata/VERSION
--- old/ec2metadata-4.0.0/lib/ec2metadata/VERSION 2022-10-10 22:51:55.444845583 +0200
+++ new/ec2metadata-5.0.0/lib/ec2metadata/VERSION 2023-08-23 23:25:51.057552629 +0200
@@ -1 +1 @@
-4.0.0
+5.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ec2metadata-4.0.0/lib/ec2metadata/__init__.py new/ec2metadata-5.0.0/lib/ec2metadata/__init__.py
--- old/ec2metadata-4.0.0/lib/ec2metadata/__init__.py 2022-10-10 22:51:55.444845583 +0200
+++ new/ec2metadata-5.0.0/lib/ec2metadata/__init__.py 2023-08-23 23:25:51.057552629 +0200
@@ -1,5 +1,5 @@
# Copyright (c) 2013 Alon Swartz <alon(a)turnkeylinux.org>
-# Copyright (c) 2019 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# This file is part of ec2metadata.
#
@@ -20,7 +20,8 @@
import urllib.request
import urllib.parse
import urllib.error
-import socket
+
+from socket import (has_ipv6, create_connection)
class EC2MetadataError(Exception):
@@ -30,33 +31,22 @@
class EC2Metadata:
"""Class for querying metadata from EC2"""
- def __init__(self, addr='169.254.169.254', api='2008-02-01'):
- self.addr = addr
+ def __init__(self, api='2008-02-01'):
self.api = api
self.data_categories = ['dynamic/', 'meta-data/']
self.duplicate_names = []
+
+ self.addr = None
+ self._set_ipaddress()
- if not self._test_connectivity(self.addr, 80):
- msg = 'Could not establish connection to: %s' % self.addr
+ if not self.addr:
+ msg = 'Could not establish connection to: IMDS'
raise EC2MetadataError(msg)
self._set_api_header()
self._reset_meta_options_api_map()
self._set_meta_options()
- @staticmethod
- def _test_connectivity(addr, port):
- for i in range(6):
- s = socket.socket()
- try:
- s.connect((addr, port))
- s.close()
- return True
- except socket.error:
- time.sleep(1)
-
- return False
-
def _add_meta_option(self, path):
"""Add meta options available under the current path to the options
to API map"""
@@ -119,20 +109,48 @@
}
def _set_api_header(self):
- """Set the header to be used in requests to the metadata service,
- IMDs. Prefer IMDSv2 which requires a token."""
+ """Set the header to be used in requests to the metadata service"""
request = urllib.request.Request(
- 'http://169.254.169.254/latest/api/token',
+ 'http://%s/latest/api/token' % self.addr,
headers={'X-aws-ec2-metadata-token-ttl-seconds': '21600'},
method='PUT'
)
try:
token = urllib.request.urlopen(request).read().decode()
except urllib.error.URLError:
- self.request_header = {}
+ raise EC2MetadataError('Unable to retrieve metadata token')
self.request_header = {'X-aws-ec2-metadata-token': token}
-
+
+ def _set_ipaddress(self):
+ metadata_ip_addrs = {
+ 'ipv6_addr': 'fd00:ec2::254',
+ 'ipv4_addr': '169.254.169.254'
+ }
+ # Check if the Python implementation has IPv6 support in the first place
+ if not has_ipv6:
+ self.addr = metadata_ip_addrs.get('ipv4_addr')
+ return
+
+ # Python keeps the order in which entries were added to a dictionary
+ # therefore we comply with the RFC and try IPv6 first
+ for ip_family, ip_addr in metadata_ip_addrs.items():
+ for i in range(3):
+ try:
+ socket = create_connection((ip_addr, 80), timeout=1)
+ socket.close()
+ if ip_family == 'ipv6_addr':
+ # Make the IPv6 address http friendly
+ self.addr = '[%s]' % ip_addr
+ else:
+ self.addr = ip_addr
+ except OSError:
+ # Cannot reach the network
+ break
+ except TimeoutError:
+ # Not ready yet wait a little bit
+ time.sleep(1)
+
def _set_meta_options(self):
"""Set the metadata options for the current API on this object."""
for path in self.data_categories:
@@ -189,7 +207,3 @@
self._reset_meta_options_api_map()
self._set_meta_options()
- def use_token_access(self):
- """Use token based access to retrieve the metadata information. This
- supports IMDSv2"""
- self.token_access = True
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package spectre-meltdown-checker for openSUSE:Factory checked in at 2023-08-31 13:46:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/spectre-meltdown-checker (Old)
and /work/SRC/openSUSE:Factory/.spectre-meltdown-checker.new.1766 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "spectre-meltdown-checker"
Thu Aug 31 13:46:03 2023 rev:12 rq:1108155 version:0.46
Changes:
--------
--- /work/SRC/openSUSE:Factory/spectre-meltdown-checker/spectre-meltdown-checker.changes 2022-04-01 21:37:35.076524018 +0200
+++ /work/SRC/openSUSE:Factory/.spectre-meltdown-checker.new.1766/spectre-meltdown-checker.changes 2023-08-31 13:52:10.810081700 +0200
@@ -1,0 +2,17 @@
+Wed Aug 30 15:39:04 UTC 2023 - Marcus Meissner <meissner(a)suse.com>
+
+- updated to 0.46
+ This release mainly focuses on the detection of the new Zenbleed
+ (CVE-2023-20593) vulnerability, among few other changes that were in
+ line waiting for a release:
+
+ - feat: detect the vulnerability and mitigation of Zenbleed (CVE-2023-20593)
+ - feat: add the linux-firmware repository as another source for CPU microcode versions
+ - feat: arm: add Neoverse-N2, Neoverse-V1 and Neoverse-V2
+ - fix: docker: adding missing utils (#433)
+ - feat: add support for Guix System kernel
+ - fix: rewrite SQL to be sqlite3 >= 3.41 compatible (#443)
+ - fix: a /devnull file was mistakenly created on the filesystem
+ - fix: fwdb: ignore MCEdb versions where an official Intel version exists (fixes #430)
+
+-------------------------------------------------------------------
Old:
----
v0.45.tar.gz
New:
----
v0.46.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ spectre-meltdown-checker.spec ++++++
--- /var/tmp/diff_new_pack.baEV9Q/_old 2023-08-31 13:52:11.870119588 +0200
+++ /var/tmp/diff_new_pack.baEV9Q/_new 2023-08-31 13:52:11.874119732 +0200
@@ -1,7 +1,7 @@
#
# spec file for package spectre-meltdown-checker
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: spectre-meltdown-checker
-Version: 0.45
+Version: 0.46
Release: 0
Summary: Spectre & Meltdown Vulnerability Checker
License: GPL-3.0-only
++++++ v0.45.tar.gz -> v0.46.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spectre-meltdown-checker-0.45/.github/workflows/check.yml new/spectre-meltdown-checker-0.46/.github/workflows/check.yml
--- old/spectre-meltdown-checker-0.45/.github/workflows/check.yml 2022-03-27 12:41:17.000000000 +0200
+++ new/spectre-meltdown-checker-0.46/.github/workflows/check.yml 2023-07-26 18:07:02.000000000 +0200
@@ -24,7 +24,7 @@
fi
- name: check direct execution
run: |
- expected=15
+ expected=16
nb=$(sudo ./spectre-meltdown-checker.sh --batch json | jq '.[]|.CVE' | wc -l)
if [ "$nb" -ne "$expected" ]; then
echo "Invalid number of CVEs reported: $nb instead of $expected"
@@ -34,7 +34,7 @@
fi
- name: check docker-compose run execution
run: |
- expected=15
+ expected=16
docker-compose build
nb=$(docker-compose run --rm spectre-meltdown-checker --batch json | jq '.[]|.CVE' | wc -l)
if [ "$nb" -ne "$expected" ]; then
@@ -45,7 +45,7 @@
fi
- name: check docker run execution
run: |
- expected=15
+ expected=16
docker build -t spectre-meltdown-checker .
nb=$(docker run --rm --privileged -v /boot:/boot:ro -v /dev/cpu:/dev/cpu:ro -v /lib/modules:/lib/modules:ro spectre-meltdown-checker --batch json | jq '.[]|.CVE' | wc -l)
if [ "$nb" -ne "$expected" ]; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spectre-meltdown-checker-0.45/Dockerfile new/spectre-meltdown-checker-0.46/Dockerfile
--- old/spectre-meltdown-checker-0.45/Dockerfile 2022-03-27 12:41:17.000000000 +0200
+++ new/spectre-meltdown-checker-0.46/Dockerfile 2023-07-26 18:07:02.000000000 +0200
@@ -1,7 +1,7 @@
-FROM alpine:3.7
+FROM alpine:latest
-RUN apk --update --no-cache add kmod binutils grep perl
+RUN apk --update --no-cache add kmod binutils grep perl zstd wget sharutils unzip sqlite procps coreutils iucode-tool gzip xz bzip2 lz4
-COPY . /check
+COPY spectre-meltdown-checker.sh /
-ENTRYPOINT ["/check/spectre-meltdown-checker.sh"]
+ENTRYPOINT ["/spectre-meltdown-checker.sh"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spectre-meltdown-checker-0.45/README.md new/spectre-meltdown-checker-0.46/README.md
--- old/spectre-meltdown-checker-0.45/README.md 2022-03-27 12:41:17.000000000 +0200
+++ new/spectre-meltdown-checker-0.46/README.md 2023-07-26 18:07:02.000000000 +0200
@@ -18,8 +18,9 @@
[CVE-2018-12127](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-121… | Microarchitectural Load Port Data Sampling | MLPDS, RIDL
[CVE-2019-11091](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-110… | Microarchitectural Data Sampling Uncacheable Memory | MDSUM, RIDL
[CVE-2019-11135](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-111… | TSX asynchronous abort | TAA, ZombieLoad V2
-[CVE-2018-12207](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-12207) | Machine Mheck Exception on Page Size Changes | MCEPSC, No eXcuses, iTLB Multihit
+[CVE-2018-12207](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-12207) | Machine Check Exception on Page Size Changes | MCEPSC, No eXcuses, iTLB Multihit
[CVE-2020-0543](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-0543) | Special Register Buffer Data Sampling | SRBDS
+[CVE-2023-20593](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-20593) | Cross-Process Information Leak | Zenbleed
Supported operating systems:
- Linux (all versions, flavors and distros)
@@ -178,3 +179,9 @@
- Impact: Kernel
- Mitigation: microcode update + kernel update helping to protect various CPU internal buffers from unprivileged speculative access to data
- Performance impact of the mitigation: low
+
+**CVE-2023-20593** Cross-Process Information Leak (Zenbleed)
+
+ - Impact: Kernel & all software
+ - Mitigation: either kernel mitigation by disabling a CPU optimization through an MSR bit, or CPU microcode mitigation
+ - Performance impact of the mitigation: TBD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spectre-meltdown-checker-0.45/spectre-meltdown-checker.sh new/spectre-meltdown-checker-0.46/spectre-meltdown-checker.sh
--- old/spectre-meltdown-checker-0.45/spectre-meltdown-checker.sh 2022-03-27 12:41:17.000000000 +0200
+++ new/spectre-meltdown-checker-0.46/spectre-meltdown-checker.sh 2023-07-26 18:07:02.000000000 +0200
@@ -12,24 +12,27 @@
#
# Stephane Lesimple
#
-VERSION='0.45'
+VERSION='0.46'
trap 'exit_cleanup' EXIT
trap '_warn "interrupted, cleaning up..."; exit_cleanup; exit 1' INT
exit_cleanup()
{
+ saved_ret=$?
# cleanup the temp decompressed config & kernel image
[ -n "${dumped_config:-}" ] && [ -f "$dumped_config" ] && rm -f "$dumped_config"
[ -n "${kerneltmp:-}" ] && [ -f "$kerneltmp" ] && rm -f "$kerneltmp"
[ -n "${kerneltmp2:-}" ] && [ -f "$kerneltmp2" ] && rm -f "$kerneltmp2"
[ -n "${mcedb_tmp:-}" ] && [ -f "$mcedb_tmp" ] && rm -f "$mcedb_tmp"
[ -n "${intel_tmp:-}" ] && [ -d "$intel_tmp" ] && rm -rf "$intel_tmp"
+ [ -n "${linuxfw_tmp:-}" ] && [ -f "$linuxfw_tmp" ] && rm -f "$linuxfw_tmp"
[ "${mounted_debugfs:-}" = 1 ] && umount /sys/kernel/debug 2>/dev/null
[ "${mounted_procfs:-}" = 1 ] && umount "$procfs" 2>/dev/null
[ "${insmod_cpuid:-}" = 1 ] && rmmod cpuid 2>/dev/null
[ "${insmod_msr:-}" = 1 ] && rmmod msr 2>/dev/null
[ "${kldload_cpuctl:-}" = 1 ] && kldunload cpuctl 2>/dev/null
[ "${kldload_vmm:-}" = 1 ] && kldunload vmm 2>/dev/null
+ exit $saved_ret
}
# if we were git clone'd, adjust VERSION
@@ -84,10 +87,11 @@
--batch nrpe produce machine readable output formatted for NRPE
--batch prometheus produce output for consumption by prometheus-node-exporter
- --variant VARIANT specify which variant you'd like to check, by default all variants are checked
- VARIANT can be one of 1, 2, 3, 3a, 4, l1tf, msbds, mfbds, mlpds, mdsum, taa, mcepsc, srbds
- can be specified multiple times (e.g. --variant 2 --variant 3)
- --cve [cve1,cve2,...] specify which CVE you'd like to check, by default all supported CVEs are checked
+ --variant VARIANT specify which variant you'd like to check, by default all variants are checked.
+ can be used multiple times (e.g. --variant 3a --variant l1tf)
+ for a list of supported VARIANT parameters, use --variant help
+ --cve CVE specify which CVE you'd like to check, by default all supported CVEs are checked
+ can be used multiple times (e.g. --cve CVE-2017-5753 --cve CVE-2020-0543)
--hw-only only check for CPU information, don't check for any variant
--no-hw skip CPU information and checks, if you're inspecting a kernel not to be run on this host
--vmm [auto,yes,no] override the detection of the presence of a hypervisor, default: auto
@@ -168,7 +172,7 @@
global_unknown=0
nrpe_vuln=''
-supported_cve_list='CVE-2017-5753 CVE-2017-5715 CVE-2017-5754 CVE-2018-3640 CVE-2018-3639 CVE-2018-3615 CVE-2018-3620 CVE-2018-3646 CVE-2018-12126 CVE-2018-12130 CVE-2018-12127 CVE-2019-11091 CVE-2019-11135 CVE-2018-12207 CVE-2020-0543'
+supported_cve_list='CVE-2017-5753 CVE-2017-5715 CVE-2017-5754 CVE-2018-3640 CVE-2018-3639 CVE-2018-3615 CVE-2018-3620 CVE-2018-3646 CVE-2018-12126 CVE-2018-12130 CVE-2018-12127 CVE-2019-11091 CVE-2019-11135 CVE-2018-12207 CVE-2020-0543 CVE-2023-20593'
# find a sane command to print colored messages, we prefer `printf` over `echo`
# because `printf` behavior is more standard across Linux/BSD
@@ -293,6 +297,7 @@
CVE-2019-11135) echo "ZombieLoad V2, TSX Asynchronous Abort (TAA)";;
CVE-2018-12207) echo "No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)";;
CVE-2020-0543) echo "Special Register Buffer Data Sampling (SRBDS)";;
+ CVE-2023-20593) echo "Zenbleed, cross-process information leak";;
*) echo "$0: error: invalid CVE '$1' passed to cve2name()" >&2; exit 255;;
esac
}
@@ -317,6 +322,7 @@
CVE-2019-11135) return $variant_taa;;
CVE-2018-12207) return $variant_itlbmh;;
CVE-2020-0543) return $variant_srbds;;
+ CVE-2023-20593) return $variant_zenbleed;;
*) echo "$0: error: invalid variant '$1' passed to is_cpu_affected()" >&2; exit 255;;
esac
}
@@ -346,6 +352,8 @@
variant_taa=''
variant_itlbmh=''
variant_srbds=''
+ # Zenbleed if extremely AMD specific, look for "is_and" below:
+ variant_zenbleed=immune
if is_cpu_mds_free; then
[ -z "$variant_msbds" ] && variant_msbds=immune
@@ -467,6 +475,11 @@
_debug "is_cpu_affected: cpu not affected by speculative store bypass so not vuln to variant4"
fi
variantl1tf=immune
+
+ # Zenbleed
+ amd_legacy_erratum "$(amd_model_range 0x17 0x30 0x0 0x4f 0xf)" && variant_zenbleed=vuln
+ amd_legacy_erratum "$(amd_model_range 0x17 0x60 0x0 0x7f 0xf)" && variant_zenbleed=vuln
+ amd_legacy_erratum "$(amd_model_range 0x17 0xa0 0x0 0xaf 0xf)" && variant_zenbleed=vuln
elif [ "$cpu_vendor" = CAVIUM ]; then
variant3=immune
variant3a=immune
@@ -493,9 +506,9 @@
if [ -n "$cpupart" ] && [ -n "$cpuarch" ]; then
# Cortex-R7 and Cortex-R8 are real-time and only used in medical devices or such
# I can't find their CPU part number, but it's probably not that useful anyway
- # model R7 R8 A8 A9 A12 A15 A17 A57 A72 A73 A75 A76 Neoverse-N1 A77
- # part ? ? c08 c09 c0d c0f c0e d07 d08 d09 d0a d0b d0c d0d
- # arch 7? 7? 7 7 7 7 7 8 8 8 8 8 8 8
+ # model R7 R8 A8 A9 A12 A15 A17 A57 A72 A73 A75 A76 A77 Neoverse-N1 Neoverse-V1 Neoverse-N1 Neoverse-V2
+ # part ? ? c08 c09 c0d c0f c0e d07 d08 d09 d0a d0b d0d d0c d40 d49 d4f
+ # arch 7? 7? 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8
#
# Whitelist identified non-affected processors, use vulnerability information from
# https://developer.arm.com/support/arm-security-updates/speculative-processo…
@@ -546,6 +559,13 @@
[ -z "$variant3a" ] && variant3a=immune
variant4=vuln
_debug "checking cpu$i: armv8 A76/A77/NeoverseN1 non affected to variant 2, 3 & 3a"
+ elif [ "$cpuarch" = 8 ] && echo "$cpupart" | grep -q -w -e 0xd40 -e 0xd49 -e 0xd4f; then
+ variant1=vuln
+ [ -z "$variant2" ] && variant2=immune
+ [ -z "$variant3" ] && variant3=immune
+ [ -z "$variant3a" ] && variant3a=immune
+ [ -z "$variant4" ] && variant4=immune
+ _debug "checking cpu$i: armv8 NeoverseN2/V1/V2 non affected to variant 2, 3, 3a & 4"
elif [ "$cpuarch" -le 7 ] || { [ "$cpuarch" = 8 ] && [ $(( cpupart )) -lt $(( 0xd07 )) ]; } ; then
[ -z "$variant1" ] && variant1=immune
[ -z "$variant2" ] && variant2=immune
@@ -615,6 +635,7 @@
[ "$variant_taa" = "immune" ] && variant_taa=1 || variant_taa=0
[ "$variant_itlbmh" = "immune" ] && variant_itlbmh=1 || variant_itlbmh=0
[ "$variant_srbds" = "immune" ] && variant_srbds=1 || variant_srbds=0
+ [ "$variant_zenbleed" = "immune" ] && variant_zenbleed=1 || variant_zenbleed=0
variantl1tf_sgx="$variantl1tf"
# even if we are affected to L1TF, if there's no SGX, we're not affected to the original foreshadow
[ "$cpuid_sgx" = 0 ] && variantl1tf_sgx=1
@@ -837,6 +858,29 @@
_info
}
+# Family-Model-Stepping to CPUID
+# prints CPUID in base-10 to stdout
+fms2cpuid()
+{
+ _family="$1"
+ _model="$2"
+ _stepping="$3"
+
+ if [ "$(( _family ))" -le 15 ]; then
+ _extfamily=0
+ _lowfamily=$(( _family ))
+ else
+ # when we have a family > 0xF, then lowfamily is stuck at 0xF
+ # and extfamily is ADDED to it (as in "+"), to ensure old software
+ # never sees a lowfamily < 0xF for newer families
+ _lowfamily=15
+ _extfamily=$(( (_family) - 15 ))
+ fi
+ _extmodel=$(( (_model & 0xF0 ) >> 4 ))
+ _lowmodel=$(( (_model & 0x0F ) >> 0 ))
+ echo $(( (_stepping & 0x0F) | (_lowmodel << 4) | (_lowfamily << 8) | (_extmodel << 16) | (_extfamily << 20) ))
+}
+
[ -z "$HOME" ] && HOME="$(getent passwd "$(whoami)" | cut -d: -f6)"
mcedb_cache="$HOME/.mcedb"
update_fwdb()
@@ -896,13 +940,15 @@
echo ERROR "please install the \`sqlite3\` program"
return 1
fi
- mcedb_revision=$(sqlite3 "$mcedb_tmp" "select revision from MCE")
+ mcedb_revision=$(sqlite3 "$mcedb_tmp" "SELECT \"revision\" from \"MCE\"")
if [ -z "$mcedb_revision" ]; then
echo ERROR "downloaded file seems invalid"
return 1
fi
- sqlite3 "$mcedb_tmp" "alter table Intel add column origin text"
- sqlite3 "$mcedb_tmp" "update Intel set origin='mce'"
+ sqlite3 "$mcedb_tmp" "ALTER TABLE \"Intel\" ADD COLUMN \"origin\" TEXT"
+ sqlite3 "$mcedb_tmp" "ALTER TABLE \"AMD\" ADD COLUMN \"origin\" TEXT"
+ sqlite3 "$mcedb_tmp" "UPDATE \"Intel\" SET \"origin\"='mce'"
+ sqlite3 "$mcedb_tmp" "UPDATE \"AMD\" SET \"origin\"='mce'"
echo OK "MCExtractor database revision $mcedb_revision"
@@ -940,7 +986,7 @@
_version=$(echo "$_line" | awk '{print $8}')
_version=$(( _version ))
_version=$(printf "0x%08X" "$_version")
- _sqlstm="$(printf "INSERT INTO Intel (origin,cpuid,version,yyyymmdd) VALUES (\"%s\",\"%s\",\"%s\",\"%s\");" "intel" "$(printf "%08X" "$_cpuid")" "$(printf "%08X" "$_version")" "$_date")"
+ _sqlstm="$(printf "INSERT INTO \"Intel\" (\"origin\",\"cpuid\",\"version\",\"yyyymmdd\") VALUES ('%s','%s','%s','%s');" "intel" "$(printf "%08X" "$_cpuid")" "$(printf "%08X" "$_version")" "$_date")"
sqlite3 "$mcedb_tmp" "$_sqlstm"
done
_intel_timestamp=$(stat -c %Y "$intel_tmp/Intel-Linux-Processor-Microcode-Data-Files-main/license" 2>/dev/null)
@@ -949,10 +995,52 @@
_intel_latest_date=$(date +%Y%m%d -d @"$_intel_timestamp")
else
echo "Falling back to the latest microcode date"
- _intel_latest_date=$(sqlite3 "$mcedb_tmp" "SELECT yyyymmdd from Intel WHERE origin = 'intel' ORDER BY yyyymmdd DESC LIMIT 1;")
+ _intel_latest_date=$(sqlite3 "$mcedb_tmp" "SELECT \"yyyymmdd\" FROM \"Intel\" WHERE \"origin\"='intel' ORDER BY \"yyyymmdd\" DESC LIMIT 1;")
fi
echo DONE "(version $_intel_latest_date)"
+ # now parse the most recent linux-firmware amd-ucode README file
+ _info_nol "Fetching latest amd-ucode README from linux-firmware project... "
+ linuxfw_url="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git…"
+ linuxfw_tmp=$(mktemp -t smc-linuxfw-XXXXXX)
+ if command -v wget >/dev/null 2>&1; then
+ wget -q "$linuxfw_url" -O "$linuxfw_tmp"; ret=$?
+ elif command -v curl >/dev/null 2>&1; then
+ curl -sL "$linuxfw_url" -o "$linuxfw_tmp"; ret=$?
+ elif command -v fetch >/dev/null 2>&1; then
+ fetch -q "$linuxfw_url" -o "$linuxfw_tmp"; ret=$?
+ else
+ echo ERROR "please install one of \`wget\`, \`curl\` of \`fetch\` programs"
+ return 1
+ fi
+ if [ "$ret" != 0 ]; then
+ echo ERROR "error $ret while downloading linux-firmware README"
+ return $ret
+ fi
+ echo DONE
+
+ _info_nol "Parsing the README... "
+ nbfound=0
+ for line in $(grep -E 'Family=0x[0-9a-f]+ Model=0x[0-9a-f]+ Stepping=0x[0-9a-f]+: Patch=0x[0-9a-f]+' "$linuxfw_tmp" | tr " " ","); do
+ _debug "Parsing line $line"
+ _family=$( echo "$line" | grep -Eoi 'Family=0x[0-9a-f]+' | cut -d= -f2)
+ _model=$( echo "$line" | grep -Eoi 'Model=0x[0-9a-f]+' | cut -d= -f2)
+ _stepping=$(echo "$line" | grep -Eoi 'Stepping=0x[0-9a-f]+' | cut -d= -f2)
+ _version=$( echo "$line" | grep -Eoi 'Patch=0x[0-9a-f]+' | cut -d= -f2)
+ _version=$(printf "0x%08X" "$(( _version ))")
+ _cpuid=$(fms2cpuid "$_family" "$_model" "$_stepping")
+ _cpuid=$(printf "0x%08X" "$_cpuid")
+ _date="20000101"
+ _sqlstm="$(printf "INSERT INTO \"AMD\" (\"origin\",\"cpuid\",\"version\",\"yyyymmdd\") VALUES ('%s','%s','%s','%s');" "linux-firmware" "$(printf "%08X" "$_cpuid")" "$(printf "%08X" "$_version")" "$_date")"
+ _debug "family $_family model $_model stepping $_stepping cpuid $_cpuid"
+ _debug "$_sqlstm"
+ sqlite3 "$mcedb_tmp" "$_sqlstm"
+ nbfound=$((nbfound + 1))
+ unset _family _model _stepping _version _cpuid _date _sqlstm
+ done
+ echo "found $nbfound microcodes"
+ unset nbfound
+
dbversion="$mcedb_revision+i$_intel_latest_date"
if [ "$1" != builtin ] && [ -n "$previous_dbversion" ] && [ "$previous_dbversion" = "v$dbversion" ]; then
@@ -964,8 +1052,11 @@
{
echo "# Spectre & Meltdown Checker";
echo "# %%% MCEDB v$dbversion";
- sqlite3 "$mcedb_tmp" "SELECT '# I,0x'||t1.cpuid||',0x'||MAX(t1.version)||','||t1.yyyymmdd FROM Intel AS t1 LEFT OUTER JOIN Intel AS t2 ON t2.cpuid=t1.cpuid AND t2.yyyymmdd > t1.yyyymmdd WHERE t2.yyyymmdd IS NULL GROUP BY t1.cpuid ORDER BY t1.cpuid ASC;" | grep -v '^# .,0x00000000,';
- sqlite3 "$mcedb_tmp" "SELECT '# A,0x'||t1.cpuid||',0x'||MAX(t1.version)||','||t1.yyyymmdd FROM AMD AS t1 LEFT OUTER JOIN AMD AS t2 ON t2.cpuid=t1.cpuid AND t2.yyyymmdd > t1.yyyymmdd WHERE t2.yyyymmdd IS NULL GROUP BY t1.cpuid ORDER BY t1.cpuid ASC;" | grep -v '^# .,0x00000000,';
+ # ensure the official Intel DB always has precedence over mcedb, even if mcedb has seen a more recent fw
+ sqlite3 "$mcedb_tmp" "DELETE FROM \"Intel\" WHERE \"origin\"!='intel' AND \"cpuid\" IN (SELECT \"cpuid\" FROM \"Intel\" WHERE \"origin\"='intel' GROUP BY \"cpuid\" ORDER BY \"cpuid\" ASC);"
+ # we'll use the more recent fw for Intel and AMD
+ sqlite3 "$mcedb_tmp" "SELECT '# I,0x'||\"t1\".\"cpuid\"||',0x'||MAX(\"t1\".\"version\")||','||\"t1\".\"yyyymmdd\" FROM \"Intel\" AS \"t1\" LEFT OUTER JOIN \"Intel\" AS \"t2\" ON \"t2\".\"cpuid\"=\"t1\".\"cpuid\" AND \"t2\".\"yyyymmdd\" > \"t1\".\"yyyymmdd\" WHERE \"t2\".\"yyyymmdd\" IS NULL GROUP BY \"t1\".\"cpuid\" ORDER BY \"t1\".\"cpuid\" ASC;" | grep -v '^# .,0x00000000,';
+ sqlite3 "$mcedb_tmp" "SELECT '# A,0x'||\"t1\".\"cpuid\"||',0x'||MAX(\"t1\".\"version\")||','||\"t1\".\"yyyymmdd\" FROM \"AMD\" AS \"t1\" LEFT OUTER JOIN \"AMD\" AS \"t2\" ON \"t2\".\"cpuid\"=\"t1\".\"cpuid\" AND \"t2\".\"yyyymmdd\" > \"t1\".\"yyyymmdd\" WHERE \"t2\".\"yyyymmdd\" IS NULL GROUP BY \"t1\".\"cpuid\" ORDER BY \"t1\".\"cpuid\" ASC;" | grep -v '^# .,0x00000000,';
} > "$mcedb_cache"
echo DONE "(version $dbversion)"
@@ -1126,25 +1217,29 @@
shift 2
elif [ "$1" = "--variant" ]; then
if [ -z "$2" ]; then
- echo "$0: error: option --variant expects a parameter (1, 2, 3, 3a, 4 or l1tf)" >&2
+ echo "$0: error: option --variant expects a parameter (see --variant help)" >&2
exit 255
fi
case "$2" in
- 1) opt_cve_list="$opt_cve_list CVE-2017-5753"; opt_cve_all=0;;
- 2) opt_cve_list="$opt_cve_list CVE-2017-5715"; opt_cve_all=0;;
- 3) opt_cve_list="$opt_cve_list CVE-2017-5754"; opt_cve_all=0;;
- 3a) opt_cve_list="$opt_cve_list CVE-2018-3640"; opt_cve_all=0;;
- 4) opt_cve_list="$opt_cve_list CVE-2018-3639"; opt_cve_all=0;;
- msbds) opt_cve_list="$opt_cve_list CVE-2018-12126"; opt_cve_all=0;;
- mfbds) opt_cve_list="$opt_cve_list CVE-2018-12130"; opt_cve_all=0;;
- mlpds) opt_cve_list="$opt_cve_list CVE-2018-12127"; opt_cve_all=0;;
- mdsum) opt_cve_list="$opt_cve_list CVE-2019-11091"; opt_cve_all=0;;
- l1tf) opt_cve_list="$opt_cve_list CVE-2018-3615 CVE-2018-3620 CVE-2018-3646"; opt_cve_all=0;;
- taa) opt_cve_list="$opt_cve_list CVE-2019-11135"; opt_cve_all=0;;
- mcepsc) opt_cve_list="$opt_cve_list CVE-2018-12207"; opt_cve_all=0;;
- srbds) opt_cve_list="$opt_cve_list CVE-2020-0543"; opt_cve_all=0;;
+ help) echo "The following parameters are supported for --variant (can be used multiple times):";
+ echo "1, 2, 3, 3a, 4, msbds, mfbds, mlpds, mdsum, l1tf, taa, mcepsc, srbds, zenbleed";
+ exit 0;;
+ 1) opt_cve_list="$opt_cve_list CVE-2017-5753"; opt_cve_all=0;;
+ 2) opt_cve_list="$opt_cve_list CVE-2017-5715"; opt_cve_all=0;;
+ 3) opt_cve_list="$opt_cve_list CVE-2017-5754"; opt_cve_all=0;;
+ 3a) opt_cve_list="$opt_cve_list CVE-2018-3640"; opt_cve_all=0;;
+ 4) opt_cve_list="$opt_cve_list CVE-2018-3639"; opt_cve_all=0;;
+ msbds) opt_cve_list="$opt_cve_list CVE-2018-12126"; opt_cve_all=0;;
+ mfbds) opt_cve_list="$opt_cve_list CVE-2018-12130"; opt_cve_all=0;;
+ mlpds) opt_cve_list="$opt_cve_list CVE-2018-12127"; opt_cve_all=0;;
+ mdsum) opt_cve_list="$opt_cve_list CVE-2019-11091"; opt_cve_all=0;;
+ l1tf) opt_cve_list="$opt_cve_list CVE-2018-3615 CVE-2018-3620 CVE-2018-3646"; opt_cve_all=0;;
+ taa) opt_cve_list="$opt_cve_list CVE-2019-11135"; opt_cve_all=0;;
+ mcepsc) opt_cve_list="$opt_cve_list CVE-2018-12207"; opt_cve_all=0;;
+ srbds) opt_cve_list="$opt_cve_list CVE-2020-0543"; opt_cve_all=0;;
+ zenbleed) opt_cve_list="$opt_cve_list CVE-2023-20593"; opt_cve_all=0;;
*)
- echo "$0: error: invalid parameter '$2' for --variant, expected either 1, 2, 3, 3a, 4, l1tf, msbds, mfbds, mlpds, mdsum, taa, mcepsc or srbds" >&2;
+ echo "$0: error: invalid parameter '$2' for --variant, see --variant help for a list" >&2;
exit 255
;;
esac
@@ -1235,6 +1330,7 @@
CVE-2019-11135) aka="TAA";;
CVE-2018-12207) aka="ITLBMH";;
CVE-2020-0543) aka="SRBDS";;
+ CVE-2023-20593) aka="ZENBLEED";;
*) echo "$0: error: invalid CVE '$1' passed to pvulnstatus()" >&2; exit 255;;
esac
@@ -1975,6 +2071,7 @@
[ "$cpu_family" = 23 ] && return 0
return 1
}
+
is_moksha_cpu()
{
parse_cpu_details
@@ -1983,6 +2080,68 @@
return 1
}
+# mimick the Linux macro
+##define AMD_MODEL_RANGE(f, m_start, s_start, m_end, s_end) \
+# ((f << 24) | (m_start << 16) | (s_start << 12) | (m_end << 4) | (s_end))
+amd_model_range()
+{
+ echo $(( ($1 << 24) | ($2 << 16) | ($3 << 12) | ($4 << 4) | ($5) ))
+}
+
+# mimick the Linux func, usage:
+# amd_legacy_erratum $(amd_model_range 0x17 0x30 0x0 0x4f 0xf)
+# return true (0) if the current CPU is affected by this erratum, 1 otherwise
+amd_legacy_erratum()
+{
+ _range="$1"
+ _ms=$((cpu_model << 4 | cpu_stepping))
+ if [ "$cpu_family" = $(( ( (_range) >> 24) & 0xff )) ] && \
+ [ $_ms -ge $(( ( (_range) >> 12) & 0xfff )) ] && \
+ [ $_ms -le $(( (_range) & 0xfff )) ]; then
+ return 0
+ fi
+ return 1
+}
+
+# returns 0 (true) if yes, 1 otherwise
+# returns 2 if not applicable
+has_zenbleed_fixed_firmware()
+{
+ # return cached data
+ [ -n "$zenbleed_fw" ] && return "$zenbleed_fw"
+ # or compute it:
+ zenbleed_fw=2 # unknown
+ # only amd
+ if ! is_amd; then
+ zenbleed_fw=1
+ return $zenbleed_fw
+ fi
+ # list of known fixed firmwares, from commit 522b1d69219d8f083173819fde04f994aa051a98
+ _tuples="
+ 0x30,0x3f,0x0830107a
+ 0x60,0x67,0x0860010b
+ 0x68,0x6f,0x08608105
+ 0x70,0x7f,0x08701032
+ 0xa0,0xaf,0x08a00008
+ "
+ for tuple in $_tuples; do
+ _model_low=$( echo "$tuple" | cut -d, -f1)
+ _model_high=$(echo "$tuple" | cut -d, -f2)
+ _fwver=$( echo "$tuple" | cut -d, -f3)
+ if [ $((cpu_model)) -ge $((_model_low)) ] && [ $((cpu_model)) -le $((_model_high)) ]; then
+ if [ $((cpu_ucode)) -ge $((_fwver)) ]; then
+ zenbleed_fw=0 # true
+ break
+ else
+ zenbleed_fw=1 # false
+ zenbleed_fw_required=$_fwver
+ fi
+ fi
+ done
+ unset _tuples
+ return $zenbleed_fw
+}
+
# Test if the current host is a Xen PV Dom0 / DomU
is_xen() {
if [ ! -d "$procfs/xen" ]; then
@@ -2248,6 +2407,8 @@
[ -e "/boot/kernel-genkernel-$(uname -m)-$(uname -r)" ] && opt_kernel="/boot/kernel-genkernel-$(uname -m)-$(uname -r)"
# NixOS:
[ -e "/run/booted-system/kernel" ] && opt_kernel="/run/booted-system/kernel"
+ # Guix System:
+ [ -e "/run/booted-system/kernel/bzImage" ] && opt_kernel="/run/booted-system/kernel/bzImage"
# systemd kernel-install:
[ -e "/etc/machine-id" ] && [ -e "/boot/$(cat /etc/machine-id)/$(uname -r)/linux" ] && opt_kernel="/boot/$(cat /etc/machine-id)/$(uname -r)/linux"
# Clear Linux:
@@ -3282,6 +3443,21 @@
cpuid_srbds=0
fi
+ if is_amd; then
+ _info_nol " * CPU microcode is known to fix Zenbleed: "
+ has_zenbleed_fixed_firmware; ret=$?
+ if [ $ret -eq 0 ]; then
+ # affected CPU, new fw
+ pstatus green YES
+ elif [ $ret -eq 1 ]; then
+ # affected CPU, old fw
+ pstatus red NO "required version: $zenbleed_fw_required"
+ else
+ # unaffected CPU
+ pstatus yellow NO
+ fi
+ fi
+
_info_nol " * CPU microcode is known to cause stability problems: "
if is_ucode_blacklisted; then
pstatus red YES "$ucode_found"
@@ -3383,7 +3559,7 @@
else
# ignore SC2009 as `ps ax` is actually used as a fallback if `pgrep` isn't installed
# shellcheck disable=SC2009
- if command -v ps >/devnull && ps ax | grep -vw grep | grep -q -e '\<qemu' -e '/qemu' -e '<\kvm' -e '/kvm' -e '/xenstored' -e '/xenconsoled'; then
+ if command -v ps >/dev/null && ps ax | grep -vw grep | grep -q -e '\<qemu' -e '/qemu' -e '<\kvm' -e '/kvm' -e '/xenstored' -e '/xenconsoled'; then
has_vmm=1
fi
fi
@@ -5744,6 +5920,132 @@
fi
}
+####################
+# Zenbleed section
+
+check_CVE_2023_20593()
+{
+ cve='CVE-2023-20593'
+ _info "\033[1;34m$cve aka '$(cve2name "$cve")'\033[0m"
+ if [ "$os" = Linux ]; then
+ check_CVE_2023_20593_linux
+ #elif echo "$os" | grep -q BSD; then
+ # check_CVE_2023_20593_bsd
+ else
+ _warn "Unsupported OS ($os)"
+ fi
+}
+
+check_CVE_2023_20593_linux()
+{
+ status=UNK
+ sys_interface_available=0
+ msg=''
+ if [ "$opt_sysfs_only" != 1 ]; then
+ _info_nol "* Zenbleed mitigation is supported by kernel: "
+ kernel_zenbleed=''
+ if [ -n "$kernel_err" ]; then
+ kernel_zenbleed_err="$kernel_err"
+ # commit 522b1d69219d8f083173819fde04f994aa051a98
+ elif grep -q 'Zenbleed:' "$kernel"; then
+ kernel_zenbleed="found zenbleed message in kernel image"
+ fi
+ if [ -n "$kernel_zenbleed" ]; then
+ pstatus green YES "$kernel_zenbleed"
+ elif [ -n "$kernel_zenbleed_err" ]; then
+ pstatus yellow UNKNOWN "$kernel_zenbleed_err"
+ else
+ pstatus yellow NO
+ fi
+ _info_nol "* Zenbleed kernel mitigation enabled and active: "
+ if [ "$opt_live" = 1 ]; then
+ # read the DE_CFG MSR, we want to check the 9th bit
+ # don't do it on non-Zen2 AMD CPUs or later, aka Family 17h,
+ # as the behavior could be unknown on others
+ if is_amd && [ "$cpu_family" -ge $((0x17)) ]; then
+ read_msr 0xc0011029; ret=$?
+ if [ $ret = $READ_MSR_RET_OK ]; then
+ if [ $(( read_msr_value >> 9 & 1 )) -eq 1 ]; then
+ pstatus green YES "FP_BACKUP_FIX bit set in DE_CFG"
+ fp_backup_fix=1
+ else
+ pstatus yellow NO "FP_BACKUP_FIX is cleared in DE_CFG"
+ fp_backup_fix=0
+ fi
+ elif [ $ret = $READ_MSR_RET_KO ]; then
+ pstatus yellow UNKNOWN "Couldn't read the DE_CFG MSR"
+ else
+ pstatus yellow UNKNOWN "$read_msr_msg"
+ fi
+ else
+ fp_backup_fix=0
+ pstatus blue N/A "CPU is incompatible"
+ fi
+ else
+ pstatus blue N/A "not testable in offline mode"
+ fi
+
+ _info_nol "* Zenbleed mitigation is supported by CPU microcode: "
+ has_zenbleed_fixed_firmware; ret=$?
+ if [ $ret -eq 0 ]; then
+ pstatus green YES
+ cpu_ucode_zenbleed=1
+ elif [ $ret -eq 1 ]; then
+ pstatus yellow NO
+ cpu_ucode_zenbleed=2
+ else
+ pstatus yellow UNKNOWN
+ cpu_ucode_zenbleed=3
+ fi
+
+ elif [ "$sys_interface_available" = 0 ]; then
+ # we have no sysfs but were asked to use it only!
+ msg="/sys vulnerability interface use forced, but it's not available!"
+ status=UNK
+ fi
+
+ if ! is_cpu_affected "$cve" ; then
+ # override status & msg in case CPU is not vulnerable after all
+ pvulnstatus "$cve" OK "your CPU vendor reported your CPU model as not affected"
+ elif [ -z "$msg" ]; then
+ # if msg is empty, sysfs check didn't fill it, rely on our own test
+ zenbleed_print_vuln=0
+ if [ "$opt_live" = 1 ]; then
+ if [ "$fp_backup_fix" = 1 ] && [ "$cpu_ucode_zenbleed" = 1 ]; then
+ # this should never happen, but if it does, it's interesting to know
+ pvulnstatus $cve OK "Both your CPU microcode and kernel are mitigating Zenbleed"
+ elif [ "$cpu_ucode_zenbleed" = 1 ]; then
+ pvulnstatus $cve OK "Your CPU microcode mitigates Zenbleed"
+ elif [ "$fp_backup_fix" = 1 ]; then
+ pvulnstatus $cve OK "Your kernel mitigates Zenbleed"
+ else
+ zenbleed_print_vuln=1
+ fi
+ else
+ if [ "$cpu_ucode_zenbleed" = 1 ]; then
+ pvulnstatus $cve OK "Your CPU microcode mitigates Zenbleed"
+ elif [ -n "$kernel_zenbleed" ]; then
+ pvulnstatus $cve OK "Your kernel mitigates Zenbleed"
+ else
+ zenbleed_print_vuln=1
+ fi
+ fi
+ if [ "$zenbleed_print_vuln" = 1 ]; then
+ pvulnstatus $cve VULN "Your kernel is too old to mitigate Zenbleed and your CPU microcode doesn't mitigate it either"
+ explain "Your CPU vendor may have a new microcode for your CPU model that mitigates this issue (refer to the hardware section above).\n " \
+"Otherwise, the Linux kernel is able to mitigate this issue regardless of the microcode version you have, but in this case\n " \
+"your kernel is too old to support this, your Linux distribution vendor might have a more recent version you should upgrade to.\n " \
+"Note that either having an up to date microcode OR an up to date kernel is enough to mitigate this issue.\n " \
+"To manually mitigate the issue right now, you may use the following command: \`wrmsr -a 0xc0011029 \$((\$(rdmsr -c 0xc0011029) | (1<<9)))\`,\n " \
+"however note that this manual mitigation will only be active until the next reboot."
+ fi
+ unset zenbleed_print_vuln
+ else
+ pvulnstatus $cve "$status" "$msg"
+ fi
+}
+
+
#######################
# END OF VULNS SECTIONS
@@ -5836,7 +6138,7 @@
# The builtin version follows, but the user can download an up-to-date copy (to be stored in his $HOME) by using --update-fwdb
# To update the builtin version itself (by *modifying* this very file), use --update-builtin-fwdb
-# %%% MCEDB v222+i20220208
+# %%% MCEDB v271+i20230614
# I,0x00000611,0x00000B27,19961218
# I,0x00000612,0x000000C6,19961210
# I,0x00000616,0x000000C6,19961210
@@ -5847,8 +6149,8 @@
# I,0x00000633,0x00000036,19980923
# I,0x00000634,0x00000037,19980923
# I,0x00000650,0x00000045,19990525
-# I,0x00000651,0x00000042,19990525
-# I,0x00000652,0x0000002D,19990518
+# I,0x00000651,0x00000040,19990525
+# I,0x00000652,0x0000002C,19990517
# I,0x00000653,0x00000010,19990628
# I,0x00000660,0x0000000A,19990505
# I,0x00000665,0x00000003,19990505
@@ -5859,8 +6161,8 @@
# I,0x00000672,0x00000038,19990922
# I,0x00000673,0x0000002E,19990910
# I,0x00000680,0x00000017,19990610
-# I,0x00000681,0x00000014,19991209
-# I,0x00000683,0x00000014,20010206
+# I,0x00000681,0x00000011,19990921
+# I,0x00000683,0x00000008,19991015
# I,0x00000686,0x00000008,20000505
# I,0x0000068A,0x00000005,20001207
# I,0x00000690,0x00000004,20000206
@@ -5883,8 +6185,8 @@
# I,0x000006E0,0x00000008,20050215
# I,0x000006E1,0x0000000C,20050413
# I,0x000006E4,0x00000026,20050816
-# I,0x000006E8,0x0000003C,20060208
-# I,0x000006EC,0x0000005B,20070208
+# I,0x000006E8,0x00000039,20051115
+# I,0x000006EC,0x00000059,20060912
# I,0x000006F0,0x00000005,20050818
# I,0x000006F1,0x00000012,20051129
# I,0x000006F2,0x0000005D,20101002
@@ -5894,7 +6196,7 @@
# I,0x000006F7,0x0000006B,20101002
# I,0x000006F9,0x00000084,20061012
# I,0x000006FA,0x00000095,20101002
-# I,0x000006FB,0x000000C1,20111004
+# I,0x000006FB,0x000000BC,20101003
# I,0x000006FD,0x000000A4,20101002
# I,0x00000F00,0xFFFF0001,20000130
# I,0x00000F01,0xFFFF0007,20000404
@@ -5908,7 +6210,7 @@
# I,0x00000F09,0x00000008,20010104
# I,0x00000F0A,0x00000015,20020821
# I,0x00000F11,0x0000000A,20030729
-# I,0x00000F12,0x0000002F,20030502
+# I,0x00000F12,0x0000002E,20030502
# I,0x00000F13,0x00000005,20030508
# I,0x00000F20,0x00000001,20010423
# I,0x00000F21,0x00000003,20010529
@@ -5941,23 +6243,23 @@
# I,0x00000F62,0x0000000F,20051215
# I,0x00000F63,0x00000005,20051010
# I,0x00000F64,0x00000004,20051223
-# I,0x00000F65,0x0000000B,20070510
+# I,0x00000F65,0x00000008,20060426
# I,0x00000F66,0x0000001B,20060310
# I,0x00000F68,0x00000009,20060714
# I,0x00001632,0x00000002,19980610
# I,0x00010650,0x00000002,20060513
# I,0x00010660,0x00000004,20060612
-# I,0x00010661,0x00000045,20101004
+# I,0x00010661,0x00000044,20101004
# I,0x00010670,0x00000005,20070209
# I,0x00010671,0x00000106,20070329
# I,0x00010674,0x84050100,20070726
-# I,0x00010676,0x00000612,20150802
-# I,0x00010677,0x0000070D,20150802
-# I,0x0001067A,0x00000A0E,20150729
+# I,0x00010676,0x0000060F,20100929
+# I,0x00010677,0x0000070A,20100929
+# I,0x0001067A,0x00000A0B,20100928
# I,0x000106A0,0xFFFF001A,20071128
# I,0x000106A1,0xFFFF000B,20080220
# I,0x000106A2,0xFFFF0019,20080714
-# I,0x000106A4,0x00000013,20150630
+# I,0x000106A4,0x00000012,20130621
# I,0x000106A5,0x0000001D,20180511
# I,0x000106C0,0x00000007,20070824
# I,0x000106C1,0x00000109,20071203
@@ -5965,7 +6267,7 @@
# I,0x000106C9,0x00000007,20090213
# I,0x000106CA,0x00000107,20090825
# I,0x000106D0,0x00000005,20071204
-# I,0x000106D1,0x0000002A,20150803
+# I,0x000106D1,0x00000029,20100930
# I,0x000106E0,0xFFFF0022,20090116
# I,0x000106E1,0xFFFF000D,20090206
# I,0x000106E2,0xFFFF0011,20090924
@@ -6061,20 +6363,20 @@
# I,0x000406D8,0x0000012D,20190916
# I,0x000406E1,0x00000020,20141111
# I,0x000406E2,0x0000002C,20150521
-# I,0x000406E3,0x000000EC,20210428
+# I,0x000406E3,0x000000F0,20211112
# I,0x000406E8,0x00000026,20160414
# I,0x000406F0,0x00000014,20150702
# I,0x000406F1,0x0B000040,20210519
# I,0x00050650,0x8000002B,20160208
# I,0x00050651,0x8000002B,20160208
# I,0x00050652,0x80000037,20170502
-# I,0x00050653,0x0100015C,20210526
-# I,0x00050654,0x02006C0A,20210616
-# I,0x00050655,0x03000012,20190412
-# I,0x00050656,0x0400320A,20210813
-# I,0x00050657,0x0500320A,20210813
+# I,0x00050653,0x01000171,20221221
+# I,0x00050654,0x02006F05,20221221
+# I,0x00050655,0x03000010,20181116
+# I,0x00050656,0x04003501,20221221
+# I,0x00050657,0x05003501,20221221
# I,0x0005065A,0x86002302,20210416
-# I,0x0005065B,0x07002402,20210604
+# I,0x0005065B,0x07002601,20221221
# I,0x00050661,0xF1000008,20150130
# I,0x00050662,0x0000001C,20190617
# I,0x00050663,0x0700001C,20210612
@@ -6083,10 +6385,11 @@
# I,0x00050670,0xFFFF0030,20151113
# I,0x00050671,0x000001B6,20180108
# I,0x000506A0,0x00000038,20150112
+# I,0x000506C0,0x00000002,20140613
# I,0x000506C2,0x00000014,20180511
# I,0x000506C8,0x90011010,20160323
-# I,0x000506C9,0x00000046,20210510
-# I,0x000506CA,0x00000022,20210622
+# I,0x000506C9,0x00000048,20211116
+# I,0x000506CA,0x00000028,20211116
# I,0x000506D1,0x00000102,20150605
# I,0x000506E0,0x00000018,20141119
# I,0x000506E1,0x0000002A,20150602
@@ -6094,7 +6397,7 @@
# I,0x000506E3,0x000000F0,20211112
# I,0x000506E8,0x00000034,20160710
# I,0x000506F0,0x00000010,20160607
-# I,0x000506F1,0x00000036,20210510
+# I,0x000506F1,0x00000038,20211202
# I,0x00060660,0x0000000C,20160821
# I,0x00060661,0x0000000E,20170128
# I,0x00060662,0x00000022,20171129
@@ -6102,64 +6405,79 @@
# I,0x000606A0,0x80000031,20200308
# I,0x000606A4,0x0B000280,20200817
# I,0x000606A5,0x0C0002F0,20210308
-# I,0x000606A6,0x0D000332,20211217
+# I,0x000606A6,0x0D000390,20221228
+# I,0x000606C0,0xFD000220,20210629
+# I,0x000606C1,0x01000230,20230127
# I,0x000606E0,0x0000000B,20161104
# I,0x000606E1,0x00000108,20190423
# I,0x000706A0,0x00000026,20170712
-# I,0x000706A1,0x00000038,20210510
-# I,0x000706A8,0x0000001C,20210510
+# I,0x000706A1,0x0000003E,20220916
+# I,0x000706A8,0x00000022,20220920
# I,0x000706E0,0x0000002C,20180614
# I,0x000706E1,0x00000042,20190420
# I,0x000706E2,0x00000042,20190420
# I,0x000706E3,0x81000008,20181002
# I,0x000706E4,0x00000046,20190905
-# I,0x000706E5,0x000000A8,20210526
+# I,0x000706E5,0x000000BA,20221225
# I,0x00080650,0x00000018,20180108
-# I,0x00080664,0x0B00000F,20210217
-# I,0x00080665,0x0B00000F,20210217
+# I,0x00080664,0x4C000021,20220815
+# I,0x00080665,0x4C000021,20220815
+# I,0x00080667,0x4C000021,20220815
# I,0x000806A0,0x00000010,20190507
-# I,0x000806A1,0x0000002D,20210902
+# I,0x000806A1,0x00000033,20230113
# I,0x000806C0,0x00000068,20200402
-# I,0x000806C1,0x0000009C,20211026
-# I,0x000806C2,0x00000022,20210716
+# I,0x000806C1,0x000000AA,20221228
+# I,0x000806C2,0x0000002A,20221228
# I,0x000806D0,0x00000050,20201217
-# I,0x000806D1,0x0000003C,20210716
-# I,0x000806E9,0x000000EC,20210428
-# I,0x000806EA,0x000000EC,20210428
-# I,0x000806EB,0x000000EC,20210428
-# I,0x000806EC,0x000000EC,20210428
+# I,0x000806D1,0x00000044,20221228
+# I,0x000806E9,0x000000F2,20230102
+# I,0x000806EA,0x000000F2,20221226
+# I,0x000806EB,0x000000F2,20221226
+# I,0x000806EC,0x000000F6,20221226
+# I,0x000806F3,0x8D000520,20220812
+# I,0x000806F4,0x2B000461,20230313
+# I,0x000806F5,0x2B000461,20230313
+# I,0x000806F6,0x2B000461,20230313
+# I,0x000806F7,0x2B000461,20230313
+# I,0x000806F8,0x2B000461,20230313
# I,0x00090660,0x00000009,20200617
-# I,0x00090661,0x00000015,20210921
+# I,0x00090661,0x00000017,20220715
# I,0x00090670,0x00000019,20201111
# I,0x00090671,0x0000001C,20210614
-# I,0x00090672,0x0000001F,20220303
+# I,0x00090672,0x0000002C,20230104
# I,0x00090674,0x00000219,20210425
-# I,0x00090675,0x0000001F,20220303
+# I,0x00090675,0x0000002C,20230104
# I,0x000906A0,0x0000001C,20210614
# I,0x000906A1,0x0000011F,20211104
# I,0x000906A2,0x00000315,20220102
-# I,0x000906A3,0x0000041B,20220308
-# I,0x000906A4,0x0000041B,20220308
-# I,0x000906C0,0x2400001F,20210809
-# I,0x000906E9,0x000000F0,20211112
-# I,0x000906EA,0x000000EC,20210428
-# I,0x000906EB,0x000000EC,20210428
-# I,0x000906EC,0x000000EC,20210428
-# I,0x000906ED,0x000000EC,20210428
+# I,0x000906A3,0x0000042A,20230214
+# I,0x000906A4,0x0000042A,20230214
+# I,0x000906C0,0x24000024,20220902
+# I,0x000906E9,0x000000F2,20221226
+# I,0x000906EA,0x000000F2,20230112
+# I,0x000906EB,0x000000F2,20221226
+# I,0x000906EC,0x000000F2,20230112
+# I,0x000906ED,0x000000F8,20230205
# I,0x000A0650,0x000000BE,20191010
# I,0x000A0651,0x000000C2,20191113
-# I,0x000A0652,0x000000EC,20210428
-# I,0x000A0653,0x000000EC,20210428
+# I,0x000A0652,0x000000F6,20221227
+# I,0x000A0653,0x000000F6,20230101
# I,0x000A0654,0x000000C6,20200123
-# I,0x000A0655,0x000000EE,20210428
-# I,0x000A0660,0x000000EA,20210428
-# I,0x000A0661,0x000000EC,20210429
+# I,0x000A0655,0x000000F6,20221226
+# I,0x000A0660,0x000000F6,20221226
+# I,0x000A0661,0x000000F6,20221226
# I,0x000A0670,0x0000002C,20201124
-# I,0x000A0671,0x00000050,20210829
+# I,0x000A0671,0x00000058,20221225
# I,0x000A0680,0x80000002,20200121
-# I,0x000B0670,0x00000009,20211115
-# I,0x000B06F2,0x0000001F,20220303
-# I,0x000B06F5,0x0000001F,20220303
+# I,0x000B0670,0x0000000E,20220220
+# I,0x000B0671,0x00000113,20230206
+# I,0x000B06A2,0x00004112,20230222
+# I,0x000B06A3,0x00004112,20230222
+# I,0x000B06E0,0x00000010,20221219
+# I,0x000B06F2,0x0000002C,20230104
+# I,0x000B06F5,0x0000002C,20230104
+# I,0x000C06F1,0x21000030,20230410
+# I,0x000C06F2,0x21000030,20230410
# A,0x00000F00,0x02000008,20070614
# A,0x00000F01,0x0000001C,20021031
# A,0x00000F10,0x00000003,20020325
@@ -6183,13 +6501,17 @@
# A,0x00100F00,0x01000020,20070326
# A,0x00100F20,0x010000CA,20100331
# A,0x00100F22,0x010000C9,20100331
+# A,0x00100F2A,0x01000084,20000101
# A,0x00100F40,0x01000085,20080501
# A,0x00100F41,0x010000DB,20111024
# A,0x00100F42,0x01000092,20081021
# A,0x00100F43,0x010000C8,20100311
+# A,0x00100F52,0x010000DB,20000101
+# A,0x00100F53,0x010000C8,20000101
# A,0x00100F62,0x010000C7,20100311
# A,0x00100F80,0x010000DA,20111024
# A,0x00100F81,0x010000D9,20111012
+# A,0x00100F91,0x010000D9,20000101
# A,0x00100FA0,0x010000DC,20111024
# A,0x00120F00,0x03000002,20100324
# A,0x00200F30,0x02000018,20070921
@@ -6239,20 +6561,36 @@
# A,0x00820F00,0x08200002,20180214
# A,0x00820F01,0x08200103,20190417
# A,0x00830F00,0x08300027,20190401
-# A,0x00830F10,0x08301052,20211111
+# A,0x00830F10,0x0830107A,20230517
# A,0x00850F00,0x08500004,20180212
# A,0x00860F00,0x0860000E,20200127
-# A,0x00860F01,0x08600106,20200619
-# A,0x00860F81,0x08608103,20200702
+# A,0x00860F01,0x08600109,20220328
+# A,0x00860F81,0x08608104,20220328
# A,0x00870F00,0x08700004,20181206
-# A,0x00870F10,0x08701021,20200125
+# A,0x00870F10,0x08701030,20220328
+# A,0x008A0F00,0x08A00008,20230615
# A,0x00A00F00,0x0A000033,20200413
-# A,0x00A00F10,0x0A001053,20211217
-# A,0x00A00F11,0x0A00115D,20211119
-# A,0x00A00F12,0x0A001227,20211215
+# A,0x00A00F10,0x0A001079,20230609
+# A,0x00A00F11,0x0A0011D1,20230710
+# A,0x00A00F12,0x0A001234,20230710
# A,0x00A00F80,0x0A008003,20211015
-# A,0x00A00F82,0x0A008204,20211015
+# A,0x00A00F82,0x0A008205,20220414
+# A,0x00A10F00,0x0A10004B,20220309
+# A,0x00A10F01,0x0A100104,20220207
+# A,0x00A10F0B,0x0A100B07,20220610
+# A,0x00A10F10,0x0A101020,20220913
+# A,0x00A10F11,0x0A101135,20230509
+# A,0x00A10F12,0x0A101235,20230509
# A,0x00A20F00,0x0A200025,20200121
-# A,0x00A20F10,0x0A201016,20210408
-# A,0x00A20F12,0x0A201205,20210719
-# A,0x00A50F00,0x0A50000C,20201208
+# A,0x00A20F10,0x0A201025,20211014
+# A,0x00A20F12,0x0A20120A,20211014
+# A,0x00A40F00,0x0A400016,20210330
+# A,0x00A40F40,0x0A404002,20210408
+# A,0x00A40F41,0x0A404102,20211018
+# A,0x00A50F00,0x0A50000D,20211014
+# A,0x00A60F00,0x0A600005,20211220
+# A,0x00A60F11,0x0A601114,20220712
+# A,0x00A60F12,0x0A601203,20220715
+# A,0x00AA0F00,0x0AA00009,20221006
+# A,0x00AA0F01,0x0AA00112,20230510
+# A,0x00AA0F02,0x0AA0020E,20230510
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package rshim for openSUSE:Factory checked in at 2023-08-31 13:46:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rshim (Old)
and /work/SRC/openSUSE:Factory/.rshim.new.1766 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rshim"
Thu Aug 31 13:46:02 2023 rev:12 rq:1108149 version:2.0.9.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/rshim/rshim.changes 2023-04-28 16:25:00.934587116 +0200
+++ /work/SRC/openSUSE:Factory/.rshim.new.1766/rshim.changes 2023-08-31 13:52:09.590038093 +0200
@@ -1,0 +2,7 @@
+Wed Aug 30 15:00:03 UTC 2023 - Matthias Brugger <mbrugger(a)suse.com>
+
+- Update to 2.0.9
+ * Fix fallback logic of direct mapping
+ * Make timeout configurable through /dev/rshimX/misc
+
+-------------------------------------------------------------------
Old:
----
rshim-2.0.7.0.tar
New:
----
rshim-2.0.9.0.tar
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rshim.spec ++++++
--- /var/tmp/diff_new_pack.PEfD1P/_old 2023-08-31 13:52:10.618074838 +0200
+++ /var/tmp/diff_new_pack.PEfD1P/_new 2023-08-31 13:52:10.622074980 +0200
@@ -18,7 +18,7 @@
Name: rshim
-Version: 2.0.7.0
+Version: 2.0.9.0
Release: 0
Summary: User-space driver for Mellanox BlueField SoC
License: GPL-2.0 or BSD-3-Clause
++++++ rshim-2.0.7.0.tar -> rshim-2.0.9.0.tar ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rshim-2.0.7.0/configure.ac new/rshim-2.0.9.0/configure.ac
--- old/rshim-2.0.7.0/configure.ac 2023-03-30 18:24:11.000000000 +0200
+++ new/rshim-2.0.9.0/configure.ac 2023-06-17 19:58:49.000000000 +0200
@@ -2,7 +2,7 @@
# Copyright (C) 2019 Mellanox Technologies. All Rights Reserved.
#
-AC_INIT([rshim], [2.0.7])
+AC_INIT([rshim], [2.0.9])
AC_CONFIG_AUX_DIR(config)
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_LANG(C)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rshim-2.0.7.0/debian/changelog new/rshim-2.0.9.0/debian/changelog
--- old/rshim-2.0.7.0/debian/changelog 2023-03-30 18:24:11.000000000 +0200
+++ new/rshim-2.0.9.0/debian/changelog 2023-06-17 19:58:49.000000000 +0200
@@ -1,3 +1,15 @@
+rshim (2.0.9) UNRELEASED; urgency=low
+
+ * rshim/usb/bf3: fix timeout logic
+
+ -- Liming Sun <limings(a)nvidia.com> Sat, 17 Jun 2023 13:55:20 -0400
+
+rshim (2.0.8) UNRELEASED; urgency=low
+
+ * Fix the fall-back logic of direct-mapping
+
+ -- Liming Sun <limings(a)nvidia.com> Tue, 16 May 2023 11:40:25 -0400
+
rshim (2.0.7) UNRELEASED; urgency=low
* Avoid opening /dev/uio multiple times
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rshim-2.0.7.0/rhel/rshim.spec.in new/rshim-2.0.9.0/rhel/rshim.spec.in
--- old/rshim-2.0.7.0/rhel/rshim.spec.in 2023-03-30 18:24:11.000000000 +0200
+++ new/rshim-2.0.9.0/rhel/rshim.spec.in 2023-06-17 19:58:49.000000000 +0200
@@ -54,6 +54,12 @@
%{_mandir}/man8/rshim.8.gz
%changelog
+* Sat Jun 17 2023 Liming Sun <limings(a)nvidia.com> - 2.0.9
+- rshim/usb/bf3: fix timeout logic
+
+* Tue May 16 2023 Liming Sun <limings(a)nvidia.com> - 2.0.8
+- Fix the fall-back logic of direct-mapping
+
* Thu Mar 30 2023 Liming Sun <limings(a)nvidia.com> - 2.0.7
- Avoid opening /dev/uio multiple times
- Update common files to dual-license
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rshim-2.0.7.0/rshim.spec.in new/rshim-2.0.9.0/rshim.spec.in
--- old/rshim-2.0.7.0/rshim.spec.in 2023-03-30 18:24:11.000000000 +0200
+++ new/rshim-2.0.9.0/rshim.spec.in 2023-06-17 19:58:49.000000000 +0200
@@ -95,6 +95,12 @@
%{_mandir}/man8/bfb-install.8.gz
%changelog
+* Sat Jun 17 2023 Liming Sun <limings(a)nvidia.com> - 2.0.9
+- rshim/usb/bf3: fix timeout logic
+
+* Tue May 16 2023 Liming Sun <limings(a)nvidia.com> - 2.0.8
+- Fix the fall-back logic of direct-mapping
+
* Thu Mar 30 2023 Liming Sun <limings(a)nvidia.com> - 2.0.7
- Avoid opening /dev/uio multiple times
- Update common files to dual-license
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rshim-2.0.7.0/src/rshim_pcie.c new/rshim-2.0.9.0/src/rshim_pcie.c
--- old/rshim-2.0.7.0/src/rshim_pcie.c 2023-03-30 18:24:11.000000000 +0200
+++ new/rshim-2.0.9.0/src/rshim_pcie.c 2023-06-17 19:58:49.000000000 +0200
@@ -1092,7 +1092,7 @@
}
/* Fall-back to direct map if failed. */
- if (rc < 0 && dev->mmap_mode == RSHIM_PCIE_MMAP_UIO) {
+ if (rc < 0 && dev->mmap_mode != RSHIM_PCIE_MMAP_DIRECT) {
RSHIM_INFO("Fall-back to direct io\n");
rshim_pcie_bind(dev, false);
dev->pci_path = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rshim-2.0.7.0/src/rshim_usb.c new/rshim-2.0.9.0/src/rshim_usb.c
--- old/rshim-2.0.7.0/src/rshim_usb.c 2023-03-30 18:24:11.000000000 +0200
+++ new/rshim-2.0.9.0/src/rshim_usb.c 2023-06-17 19:58:49.000000000 +0200
@@ -249,7 +249,7 @@
int rc, tmp_tsfr;
int size_addr;
uint64_t reg;
- int retries = 60;
+ time_t t0, t1;
int i = 0;
size_addr = bd->regs->boot_fifo_count;
@@ -257,12 +257,12 @@
temp_count = count;
while (temp_count) {
-
/* Check whether the BOOT FIFO is full. If it is, poll, until
* there is free space. The BOOT FIFO has a max size of
* is 0x400 (lines) * 8 = 8192 (bytes).
*/
do {
+ time(&t0);
rc = bd->read_rshim(bd, RSHIM_CHANNEL, size_addr, ®, RSHIM_REG_SIZE_8B);
if (rc < 0) {
@@ -274,10 +274,9 @@
if (avail_fifo_bytes > 0)
break;
- /* TODO: Make this delay smaller for real HW */
- sleep(1);
-
- } while(retries--);
+ usleep(50000);
+ time(&t1);
+ } while(difftime(t1, t0) < bd->boot_timeout);
if (avail_fifo_bytes) {
if (temp_count < avail_fifo_bytes)
@@ -299,7 +298,7 @@
} else {
RSHIM_ERR("Timeout boot fifo count\n");
- return -EBUSY;
+ return transferred;
}
}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package accel-config for openSUSE:Factory checked in at 2023-08-31 13:46:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/accel-config (Old)
and /work/SRC/openSUSE:Factory/.accel-config.new.1766 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "accel-config"
Thu Aug 31 13:46:01 2023 rev:16 rq:1108157 version:4.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/accel-config/accel-config.changes 2023-05-02 16:24:03.099598398 +0200
+++ /work/SRC/openSUSE:Factory/.accel-config.new.1766/accel-config.changes 2023-08-31 13:52:08.229989482 +0200
@@ -1,0 +2,15 @@
+Wed Aug 30 15:47:17 UTC 2023 - Danilo Spinella <danilo.spinella(a)suse.com>
+
+- Update to version 4.1:
+ * add missing libssl-dev dependency
+ * Skip configuring ats_disable if the attribute is not present
+ * Add config-user-default command
+ * Add option "-c <config_file>" to load default configurations from
+ the file
+ * Disable default configured WQs and devices
+ * Add "-n <wq_name>" to specify WQ name for disabling WQs
+ * Add user_default_profile.conf
+ * Add doumentation for new command "config-user-default"
+
+
+-------------------------------------------------------------------
Old:
----
idxd-config-accel-config-v4.0.tar.gz
New:
----
idxd-config-accel-config-v4.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ accel-config.spec ++++++
--- /var/tmp/diff_new_pack.nLMwgC/_old 2023-08-31 13:52:09.262026369 +0200
+++ /var/tmp/diff_new_pack.nLMwgC/_new 2023-08-31 13:52:09.266026512 +0200
@@ -19,7 +19,7 @@
%define pkg_libname libaccel-config1
%define src_name idxd-config-accel-config-v%{version}
Name: accel-config
-Version: 4.0
+Version: 4.1
Release: 0
Summary: Configure accelerator subsystem devices
License: GPL-2.0-only
@@ -88,6 +88,7 @@
%config %{_sysconfdir}/accel-config/contrib/configs/os_profile.conf
%config %{_sysconfdir}/accel-config/contrib/configs/profilenote.txt
%config %{_sysconfdir}/accel-config/contrib/configs/storage_profile.conf
+%config %{_sysconfdir}/accel-config/contrib/configs/user_default_profile.conf
%files -n %{pkg_libname}
%doc README.md
++++++ idxd-config-accel-config-v4.0.tar.gz -> idxd-config-accel-config-v4.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/idxd-config-accel-config-v4.0/Documentation/accfg/Makefile.am new/idxd-config-accel-config-v4.1/Documentation/accfg/Makefile.am
--- old/idxd-config-accel-config-v4.0/Documentation/accfg/Makefile.am 2023-03-08 05:32:03.000000000 +0100
+++ new/idxd-config-accel-config-v4.1/Documentation/accfg/Makefile.am 2023-08-22 03:10:43.000000000 +0200
@@ -29,7 +29,8 @@
accel-config-disable-device.1 \
accel-config-disable-wq.1 \
accel-config-enable-wq.1 \
- accel-config-enable-device.1
+ accel-config-enable-device.1 \
+ accel-config-config-user-default.1
EXTRA_DIST = \
$(man1_MANS) \
@@ -44,7 +45,8 @@
accel-config-disable-device.txt \
accel-config-disable-wq.txt \
accel-config-enable-wq.txt \
- accel-config-enable-device.txt
+ accel-config-enable-device.txt \
+ accel-config-config-user-default.txt
CLEANFILES = $(man1_MANS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/idxd-config-accel-config-v4.0/Documentation/accfg/accel-config-config-user-default.txt new/idxd-config-accel-config-v4.1/Documentation/accfg/accel-config-config-user-default.txt
--- old/idxd-config-accel-config-v4.0/Documentation/accfg/accel-config-config-user-default.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/idxd-config-accel-config-v4.1/Documentation/accfg/accel-config-config-user-default.txt 2023-08-22 03:10:43.000000000 +0200
@@ -0,0 +1,75 @@
+// SPDX-License-Identifier: GPL-2.0
+
+accel-config-config-user-default(1)
+===================================
+
+NAME
+----
+accel-config-config-user-default - load a pre-defined user default configuration
+
+SYNOPSIS
+--------
+[verse]
+'accel-config config-user-default' [<options>]
+
+Without an option, config-user-default loads a pre-defined user default
+configuration.
+
+There is a config file template at contrib/configs/user_default_profile.conf.
+Run "accel-config config-user-default -c user_default_profile.conf" to
+configure all available devices with the template values. Any modifications to
+the template file should retain the json format.
+
+EXAMPLE
+-------
+# accel-config config-user-default
+
+The command will load the pre-defined user default config to all available
+WQs and engines on all available DSA and IAX devices with the following
+attributes:
+ All WQs and all engines are in group 0
+
+ WQ attributes:
+ priority: 1
+ group_id: 0
+ block_on_fault: 1
+ ats_disable: 0
+ prs_disable: 1
+ mode: "shared"
+ type: "user"
+ name: "user_default_wq"
+ driver_name: "user"
+ size: max WQ size / max WQs
+ threshold: size
+ max_transfer_size: default value
+ max_batch_size: default value on DSA. N/A on IAX
+ op_config: default value
+
+ Attributes of all devices and groups are default values.
+
+# accel-config config-user-default -c /etc/accel-config/contrib/configs/user_default_profile.conf
+
+The command will load the specified user default config file. The config
+file is a template that specifies attributes and devices. User can edit
+the config file per requirements.
+
+# accel-config config-user-default -d -n <wq_name>
+The command will disable all WQs named <wq_name> (default name is
+"user_default_wq").
+
+OPTIONS
+-------
+-c::
+--config-file::
+ to specify the location of the customized user default config file
+
+-n::
+--name::
+ to specify WQ name which will be used to disable enabled WQs
+-d::
+--disable::
+ to disable the configured devices and wqs
+
+-v::
+--verbose::
+ verbose
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/idxd-config-accel-config-v4.0/accfg/accel-config.c new/idxd-config-accel-config-v4.1/accfg/accel-config.c
--- old/idxd-config-accel-config-v4.0/accfg/accel-config.c 2023-03-08 05:32:03.000000000 +0100
+++ new/idxd-config-accel-config-v4.1/accfg/accel-config.c 2023-08-22 03:10:43.000000000 +0200
@@ -67,6 +67,7 @@
{"config-group", cmd_config_group},
{"config-wq", cmd_config_wq},
{"config-engine", cmd_config_engine},
+ {"config-user-default", cmd_config_default},
#ifdef ENABLE_TEST
{"test", cmd_test},
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/idxd-config-accel-config-v4.0/accfg/config.c new/idxd-config-accel-config-v4.1/accfg/config.c
--- old/idxd-config-accel-config-v4.0/accfg/config.c 2023-03-08 05:32:03.000000000 +0100
+++ new/idxd-config-accel-config-v4.1/accfg/config.c 2023-08-22 03:10:43.000000000 +0200
@@ -39,6 +39,7 @@
bool engines;
bool wqs;
const char *config_file;
+ const char *user_default_wq_name;
char *buf;
} config;
@@ -117,6 +118,90 @@
static bool is_wq_threshold_writable(struct accfg_wq *wq, int val);
static bool is_wq_prs_disable_writable(struct accfg_wq *wq, int val);
+static bool is_wq_ats_disable_writable(struct accfg_wq *wq, int val);
+
+static int get_wq_size(struct accfg_device *dev)
+{
+ int max_wq_size, max_wqs;
+
+ max_wq_size = accfg_device_get_max_work_queues_size(dev);
+ max_wqs = accfg_device_get_max_work_queues(dev);
+
+ return max_wq_size / max_wqs;
+}
+
+static int config_default_wq_set_prs_disable(struct accfg_wq *wq, int val)
+{
+ if (!is_wq_prs_disable_writable(wq, val))
+ return -EPERM;
+
+ return accfg_wq_set_prs_disable(wq, val);
+}
+
+static int config_default_wq_set_ats_disable(struct accfg_wq *wq, int val)
+{
+ if (!is_wq_ats_disable_writable(wq, val))
+ return -EPERM;
+
+ return accfg_wq_set_ats_disable(wq, val);
+}
+
+static int config_default_wq_set_threshold(struct accfg_wq *wq, int val)
+{
+ if (!is_wq_threshold_writable(wq, val))
+ return -EPERM;
+
+ return accfg_wq_set_threshold(wq, val);
+}
+
+static struct conf_def_wq_param {
+ struct wq_parameters param;
+ bool configured;
+} conf_def_wq_param[ACCFG_DEVICE_MAX];
+
+static bool config_default_file;
+
+/* Return WQ parameter for dev type. */
+static struct wq_parameters *get_conf_def_wq_param(enum accfg_device_type type)
+{
+ if (type == ACCFG_DEVICE_DSA)
+ return &conf_def_wq_param[ACCFG_DEVICE_DSA].param;
+ else if (type == ACCFG_DEVICE_IAX)
+ return &conf_def_wq_param[ACCFG_DEVICE_IAX].param;
+
+ return NULL;
+}
+
+/* Check if dev is configured. */
+static bool conf_def_dev_configured(struct accfg_device *dev)
+{
+ if (accfg_device_get_type(dev) == ACCFG_DEVICE_DSA)
+ return conf_def_wq_param[ACCFG_DEVICE_DSA].configured;
+ else if (accfg_device_get_type(dev) == ACCFG_DEVICE_IAX)
+ return conf_def_wq_param[ACCFG_DEVICE_IAX].configured;
+
+ return false;
+}
+
+/* Set WQ parameters based on device cap: size and threshold. */
+static int config_default_wq_set_on_dev(struct accfg_device *dev)
+{
+ enum accfg_device_type dev_type;
+ struct wq_parameters *p;
+
+ dev_type = accfg_device_get_type(dev);
+ p = get_conf_def_wq_param(dev_type);
+ if (!p)
+ return -EINVAL;
+
+ p->wq_size = get_wq_size(dev);
+ if (p->wq_size <= 0)
+ return -ENOSPC;
+
+ p->threshold = p->wq_size;
+
+ return 0;
+}
static const struct wq_set_table wq_table[] = {
{ "size", accfg_wq_set_size, NULL, NULL, NULL },
@@ -132,7 +217,8 @@
{ "max_transfer_size", NULL, accfg_wq_set_max_transfer_size, NULL, NULL },
{ "threshold", accfg_wq_set_threshold, NULL, NULL,
is_wq_threshold_writable },
- { "ats_disable", accfg_wq_set_ats_disable, NULL, NULL, NULL },
+ { "ats_disable", accfg_wq_set_ats_disable, NULL, NULL,
+ is_wq_ats_disable_writable },
{ "prs_disable", accfg_wq_set_prs_disable, NULL, NULL,
is_wq_prs_disable_writable },
};
@@ -231,6 +317,17 @@
return true;
}
+static bool is_wq_ats_disable_writable(struct accfg_wq *wq, int val)
+{
+ if (val < 0 || val > 1)
+ return false;
+
+ if (accfg_wq_get_ats_disable(wq) < 0)
+ return false;
+
+ return true;
+}
+
static int device_attribute_filter(char *key)
{
for (int i = 0; i < (int)ARRAY_SIZE(device_table); i++) {
@@ -543,6 +640,39 @@
return 0;
}
+static void config_default_json(struct accfg_wq *wq,
+ json_object *jobj, char *key)
+{
+ enum accfg_device_type dev_type;
+ struct accfg_device *dev;
+ struct wq_parameters *p;
+ char *dev_type_str;
+
+ dev = accfg_wq_get_device(wq);
+ dev_type = accfg_device_get_type(dev);
+ dev_type_str = accfg_device_get_type_str(dev);
+ p = get_conf_def_wq_param(dev_type);
+ if (!p) {
+ fprintf(stderr, "parsing dev type %s failed\n", dev_type_str);
+
+ return;
+ }
+
+ printf("dev type = %s, key = %s\n", dev_type_str, key);
+ if (!strcmp(key, "name"))
+ p->name = strdup(json_object_get_string(jobj));
+ else if (!strcmp(key, "priority"))
+ p->priority = json_object_get_int(jobj);
+ else if (!strcmp(key, "group_id"))
+ p->group_id = json_object_get_int(jobj);
+ else if (!strcmp(key, "block_on_fault"))
+ p->block_on_fault = json_object_get_int(jobj);
+ else if (!strcmp(key, "ats_disable"))
+ p->ats_disable = json_object_get_int(jobj);
+ else if (!strcmp(key, "prs_disable"))
+ p->prs_disable = json_object_get_int(jobj);
+}
+
/*
* Configuring the value corresponding to integer and strings
*/
@@ -685,6 +815,12 @@
warn_once = false;
}
+ if (wq && config_default_file) {
+ config_default_json(wq, jobj, key);
+
+ return 0;
+ }
+
if (dev && dev_state != ACCFG_DEVICE_ENABLED) {
rc = device_json_set_val(dev, jobj, key);
if (rc < 0) {
@@ -1221,3 +1357,347 @@
return rc;
}
+
+static int config_default_wq(struct accfg_wq *wq)
+{
+ struct accfg_device *dev = accfg_wq_get_device(wq);
+ enum accfg_device_type dev_type;
+ struct wq_parameters *p;
+
+ if (!conf_def_dev_configured(dev))
+ return 0;
+
+ dev_type = accfg_device_get_type(dev);
+ p = get_conf_def_wq_param(dev_type);
+ if (!p)
+ return -EINVAL;
+
+ accfg_wq_set_priority(wq, p->priority);
+ accfg_wq_set_group_id(wq, p->group_id);
+ accfg_wq_set_block_on_fault(wq, p->block_on_fault);
+ accfg_wq_set_str_mode(wq, p->mode);
+ accfg_wq_set_str_type(wq, p->type);
+ accfg_wq_set_str_name(wq, p->name);
+ accfg_wq_set_str_driver_name(wq, p->driver_name);
+
+ accfg_wq_set_size(wq, p->wq_size);
+ config_default_wq_set_threshold(wq, p->threshold);
+ config_default_wq_set_prs_disable(wq, p->prs_disable);
+ config_default_wq_set_ats_disable(wq, p->ats_disable);
+
+ return 0;
+}
+
+static int config_default_engine(struct accfg_engine *engine,
+ struct accfg_device *dev)
+{
+ enum accfg_device_type dev_type;
+ struct wq_parameters *p;
+
+ /* Engine's group_id is same as WQ's. */
+ dev_type = accfg_device_get_type(dev);
+ p = get_conf_def_wq_param(dev_type);
+ if (!p)
+ return -EINVAL;
+
+ return accfg_engine_set_group_id(engine, p->group_id);
+}
+
+static void config_default_activate_devices(void *ctx)
+{
+ enum accfg_device_state dev_state;
+ const char *dev_name, *wq_name;
+ struct accfg_engine *engine;
+ struct accfg_device *dev;
+ struct accfg_wq *wq;
+ int rc = 0;
+
+ accfg_device_foreach(ctx, dev) {
+ /* Skip device that is not configured. */
+ if (!conf_def_dev_configured(dev))
+ continue;
+
+ /* Don't enable WQs/engines on partially enabled devices. */
+ dev_state = accfg_device_get_state(dev);
+ if (dev_state == ACCFG_DEVICE_ENABLED)
+ continue;
+
+ /* Set WQ parameters calculated based on dev. */
+ config_default_wq_set_on_dev(dev);
+
+ /* Config WQs */
+ accfg_wq_foreach(dev, wq) {
+ if (verbose)
+ printf("config %s\n", accfg_wq_get_devname(wq));
+
+ config_default_wq(wq);
+ }
+
+ /* Config engines */
+ accfg_engine_foreach(dev, engine)
+ config_default_engine(engine, dev);
+
+ /* Enable device */
+ dev_name = accfg_device_get_devname(dev);
+ if (verbose)
+ printf("enable %s\n", dev_name);
+ rc = accfg_device_enable(dev);
+ if (rc) {
+ fprintf(stderr, "Error enabling %s\n", dev_name);
+ continue;
+ }
+
+ /* Enable WQs */
+ accfg_wq_foreach(dev, wq) {
+ wq_name = accfg_wq_get_devname(wq);
+ if (verbose)
+ printf("enable %s\n", wq_name);
+
+ rc = accfg_wq_enable(wq);
+ if (rc) {
+ fprintf(stderr, "Error enabling %s\n", wq_name);
+ continue;
+ }
+ }
+ }
+}
+
+#define CONFIG_DEFAULT_WQ_PRIORITY 10
+#define CONFIG_DEFAULT_WQ_GROUP_ID 0
+#define CONFIG_DEFAULT_WQ_BLOCK_ON_FAULT 1
+#define CONFIG_DEFAULT_WQ_PRS_DISABLE 1
+#define CONFIG_DEFAULT_WQ_ATS_DISABLE 0
+#define CONFIG_DEFAULT_WQ_NAME "user_default_wq"
+#define CONFIG_DEFAULT_WQ_TYPE "user"
+#define CONFIG_DEFAULT_WQ_MODE "shared"
+#define CONFIG_DEFAULT_WQ_DRV_NAME "user"
+
+/* Set fixed WQ parameters: mode, type, driver_name */
+static int config_default_wq_set_fixed(void)
+{
+ struct wq_parameters *p;
+ int i;
+
+ for (i = 0; i < ACCFG_DEVICE_MAX; i++) {
+ p = &conf_def_wq_param[i].param;
+
+ p->mode = strdup(CONFIG_DEFAULT_WQ_MODE);
+ if (!p->mode) {
+ fprintf(stderr, "strdup WQ mode failed\n");
+ return -ENOMEM;
+ }
+
+ p->type = strdup(CONFIG_DEFAULT_WQ_TYPE);
+ if (!p->type) {
+ fprintf(stderr, "strdup WQ type failed\n");
+ return -ENOMEM;
+ }
+
+ p->driver_name = strdup(CONFIG_DEFAULT_WQ_DRV_NAME);
+ if (!p->driver_name) {
+ fprintf(stderr, "strdup WQ driver_name failed\n");
+ return -ENOMEM;
+ }
+ }
+
+ return 0;
+}
+
+static void config_default(void *ctx)
+{
+ struct wq_parameters *p;
+ int i;
+
+ /*
+ * Configure WQ parameters except:
+ * 1. size and threshold will be configured when enabling WQs.
+ * 2. max_buffer_size, max_batch_size, op_config will be default values
+ * which have been initialized by driver.
+ */
+ for (i = 0; i < ACCFG_DEVICE_MAX; i++) {
+ p = &conf_def_wq_param[i].param;
+
+ p->priority = CONFIG_DEFAULT_WQ_PRIORITY;
+ p->group_id = CONFIG_DEFAULT_WQ_GROUP_ID;
+ p->block_on_fault = CONFIG_DEFAULT_WQ_BLOCK_ON_FAULT;
+ p->mode = strdup(CONFIG_DEFAULT_WQ_MODE);
+ p->type = strdup(CONFIG_DEFAULT_WQ_TYPE);
+ p->name = strdup(CONFIG_DEFAULT_WQ_NAME);
+ p->driver_name = strdup(CONFIG_DEFAULT_WQ_DRV_NAME);
+ p->prs_disable = CONFIG_DEFAULT_WQ_PRS_DISABLE;
+ p->ats_disable = CONFIG_DEFAULT_WQ_ATS_DISABLE;
+
+ conf_def_wq_param[i].configured = true;
+ }
+}
+
+static void config_default_param_free(void)
+{
+ struct wq_parameters *p;
+ int i;
+
+ for (i = 0; i < ACCFG_DEVICE_MAX; i++) {
+ if (!conf_def_wq_param[i].configured)
+ continue;
+
+ p = &conf_def_wq_param[i].param;
+
+ free((char *)p->name);
+ free((char *)p->type);
+ free((char *)p->mode);
+ free((char *)p->driver_name);
+ }
+}
+
+static int config_default_from_file(void *ctx)
+{
+ int rc;
+
+ rc = read_config_file(ctx, &config, &util_param);
+ if (rc < 0) {
+ fprintf(stderr, "Reading config file failed: %d\n", rc);
+ return rc;
+ }
+
+ config_default_file = true;
+ rc = parse_config(ctx, &config);
+ if (rc < 0) {
+ fprintf(stderr, "Parse json and set device fail: %d\n", rc);
+ return rc;
+ }
+
+ config_default_wq_set_fixed();
+ if (conf_def_wq_param[ACCFG_DEVICE_DSA].param.name)
+ conf_def_wq_param[ACCFG_DEVICE_DSA].configured = true;
+ if (conf_def_wq_param[ACCFG_DEVICE_IAX].param.name)
+ conf_def_wq_param[ACCFG_DEVICE_IAX].configured = true;
+
+ return 0;
+}
+
+void config_default_disable(void *ctx)
+{
+ char *user_default_wq_name;
+ struct accfg_device *dev;
+
+ if (config.user_default_wq_name)
+ user_default_wq_name = strdup(config.user_default_wq_name);
+ else
+ user_default_wq_name = strdup(CONFIG_DEFAULT_WQ_NAME);
+ if (!user_default_wq_name) {
+ fprintf(stderr, "strdup user default wq name failed\n");
+ return;
+ }
+
+ printf("disable WQs named as %s\n", user_default_wq_name);
+
+ accfg_device_foreach(ctx, dev) {
+ enum accfg_device_state dev_state;
+ enum accfg_wq_state wq_state;
+ bool non_default_wq_enabled;
+ struct accfg_wq *wq;
+ const char *wq_name;
+
+ non_default_wq_enabled = false;
+ /* Disable enabled default WQs */
+ accfg_wq_foreach(dev, wq) {
+ wq_name = accfg_wq_get_type_name(wq);
+ wq_state = accfg_wq_get_state(wq);
+ if (wq_state == ACCFG_WQ_DISABLED)
+ continue;
+
+ if (!strcmp(wq_name, user_default_wq_name)) {
+ if (verbose) {
+ printf("disable %s\n",
+ accfg_wq_get_devname(wq));
+ }
+ accfg_wq_disable(wq, true);
+ } else {
+ non_default_wq_enabled = true;
+ }
+ }
+
+ /* Disable enabled device only when all WQs are disabled. */
+ dev_state = accfg_device_get_state(dev);
+ if (dev_state == ACCFG_DEVICE_ENABLED &&
+ !non_default_wq_enabled) {
+ if (verbose) {
+ printf("enable %s\n",
+ accfg_device_get_devname(dev));
+ }
+ accfg_device_disable(dev, true);
+ }
+ }
+ free(user_default_wq_name);
+}
+
+int cmd_config_default(int argc, const char **argv, void *ctx)
+{
+ bool disable = false;
+ const struct option options[] = {
+ OPT_FILENAME('c', "config-file", &config.config_file, "config-file",
+ "override the default config"),
+ OPT_BOOLEAN('d', "disable", &disable,
+ "disable configured default devices and wqs"),
+ OPT_STRING('n', "name", &config.user_default_wq_name, "user default wq name",
+ "specify user default wq name. Default \"user_default_wq\""),
+ OPT_BOOLEAN('v', "verbose", &verbose,
+ "emit extra debug messages to stderr"),
+ OPT_END(),
+ };
+ const char *const u[] = {
+ "accfg config-default [<options>]", NULL
+ };
+ struct util_filter_ctx fctx = {
+ 0
+ };
+ struct list_filter_arg cfa = {
+ 0
+ };
+ const char *prefix = "./";
+ int i, rc = 0;
+
+ argc = parse_options_prefix(argc, argv, prefix, options, u, 0);
+ for (i = 0; i < argc; i++)
+ error("unknown parameter \"%s\"\n", argv[i]);
+ if (argc)
+ usage_with_options(u, options);
+
+ cfa.jdevices = json_object_new_array();
+ if (!cfa.jdevices)
+ return -ENOMEM;
+ list_head_init(&cfa.jdev_list);
+
+ fctx.filter_device = filter_device;
+ fctx.filter_group = filter_group;
+ fctx.filter_wq = filter_wq;
+ fctx.filter_engine = filter_engine;
+ fctx.list = &cfa;
+ cfa.flags = config_opts_to_flags();
+
+ rc = util_filter_walk(ctx, &fctx, &util_param);
+ if (rc)
+ return rc;
+
+ free_containers(&cfa);
+
+ if (disable) {
+ config_default_disable(ctx);
+
+ return 0;
+ }
+
+ if (config.config_file) {
+ /* Parse the default config file and set configs. */
+ rc = config_default_from_file(ctx);
+ } else {
+ config_default(ctx);
+ }
+
+ if (!rc)
+ config_default_activate_devices(ctx);
+
+ config_default_param_free();
+
+ return 0;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/idxd-config-accel-config-v4.0/accfg/libaccel_config.h new/idxd-config-accel-config-v4.1/accfg/libaccel_config.h
--- old/idxd-config-accel-config-v4.0/accfg/libaccel_config.h 2023-03-08 05:32:03.000000000 +0100
+++ new/idxd-config-accel-config-v4.1/accfg/libaccel_config.h 2023-08-22 03:10:43.000000000 +0200
@@ -36,6 +36,7 @@
enum accfg_device_type {
ACCFG_DEVICE_DSA = 0,
ACCFG_DEVICE_IAX = 1,
+ ACCFG_DEVICE_MAX = 2,
ACCFG_DEVICE_TYPE_UNKNOWN = -1,
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/idxd-config-accel-config-v4.0/accfg-test.spec.in new/idxd-config-accel-config-v4.1/accfg-test.spec.in
--- old/idxd-config-accel-config-v4.0/accfg-test.spec.in 2023-03-08 05:32:03.000000000 +0100
+++ new/idxd-config-accel-config-v4.1/accfg-test.spec.in 2023-08-22 03:10:43.000000000 +0200
@@ -2,7 +2,7 @@
Version: VERSION
Release: 2%{?dist}
Summary: Configure accelerator subsystem devices
-License: GPLv2
+License: GPL-2.0
Group: System Environment/Base
Source0: %{name}-%{version}.tar.gz
@@ -22,7 +22,7 @@
%package -n DNAME
Summary: Development files for libaccfg
-License: LGPLv2.1
+License: LGPL-2.1-only
Group: Development/Libraries
Requires: LNAME%{?_isa} = %{version}-%{release}
@@ -33,7 +33,7 @@
%package -n LNAME
Summary: Configuration library for accelerator subsystem devices
-License: LGPLv2.1
+License: LGPL-2.1-only
Group: System Environment/Libraries
%description -n LNAME
@@ -41,7 +41,7 @@
%package -n %{name}-test
Summary: Unit tests for %{name}.
-License: GPLv2
+License: GPL-2.0
Group: Unspecified
%description -n %{name}-test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/idxd-config-accel-config-v4.0/accfg.spec.in new/idxd-config-accel-config-v4.1/accfg.spec.in
--- old/idxd-config-accel-config-v4.0/accfg.spec.in 2023-03-08 05:32:03.000000000 +0100
+++ new/idxd-config-accel-config-v4.1/accfg.spec.in 2023-08-22 03:10:43.000000000 +0200
@@ -2,7 +2,7 @@
Version: VERSION
Release: 2%{?dist}
Summary: Configure accelerator subsystem devices
-License: GPLv2
+License: GPL-2.0
Group: System Environment/Base
Source0: %{name}-%{version}.tar.gz
@@ -22,7 +22,7 @@
%package -n DNAME
Summary: Development files for libaccfg
-License: LGPLv2.1
+License: LGPL-2.1-only
Group: Development/Libraries
Requires: LNAME%{?_isa} = %{version}-%{release}
@@ -33,7 +33,7 @@
%package -n LNAME
Summary: Configuration library for accelerator subsystem devices
-License: LGPLv2.1
+License: LGPL-2.1-only
Group: System Environment/Libraries
%description -n LNAME
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/idxd-config-accel-config-v4.0/builtin.h new/idxd-config-accel-config-v4.1/builtin.h
--- old/idxd-config-accel-config-v4.0/builtin.h 2023-03-08 05:32:03.000000000 +0100
+++ new/idxd-config-accel-config-v4.1/builtin.h 2023-08-22 03:10:43.000000000 +0200
@@ -30,6 +30,7 @@
int cmd_config_group(int argc, const char **argv, void *ctx);
int cmd_config_wq(int argc, const char **argv, void *ctx);
int cmd_config_engine(int argc, const char **argv, void *ctx);
+int cmd_config_default(int argc, const char **argv, void *ctx);
#ifdef ENABLE_TEST
int cmd_test(int argc, const char **argv, void *ctx);
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/idxd-config-accel-config-v4.0/contrib/configs/profilenote.txt new/idxd-config-accel-config-v4.1/contrib/configs/profilenote.txt
--- old/idxd-config-accel-config-v4.0/contrib/configs/profilenote.txt 2023-03-08 05:32:03.000000000 +0100
+++ new/idxd-config-accel-config-v4.1/contrib/configs/profilenote.txt 2023-08-22 03:10:43.000000000 +0200
@@ -34,3 +34,31 @@
for throughput ops
- targeting SPDK-like uses
- DWQ threshold default 0
+
+5. user_default_profile.conf
+ Recommended dsa and iax accel profile template
+ - The template specifies one DSA device and one IAX device
+ - The attributes are applied to all WQs and engines on DSA and IAX
+ - Run "accel-config config-user-default -c user_default_profile.conf"
+ to load the config to all WQs and engines on all available DSA and
+ IAX devices
+ - The attributes can be edited. Two devices can be tailored to one device.
+ - 1 group with all available WQs/all engs per group
+ - Attributes that can be changed:
+ "group_id":0
+ "priority":10
+ "block_on_fault":1
+ "ats_disable":0
+ "prs_disable":1
+ "name":"user_default_wq"
+ - Calcuated attributes:
+ "size": max WQ size / max WQs
+ "threshold": WQ size
+ - Fixed attributes:
+ "type": "user"
+ "mode":"shared"
+ "driver_name":"user",
+ - Attributes with default values set by driver:
+ "max_batch_size": default value
+ "max_transfer_size": default value
+ "op_config": default value
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/idxd-config-accel-config-v4.0/contrib/configs/user_default_profile.conf new/idxd-config-accel-config-v4.1/contrib/configs/user_default_profile.conf
--- old/idxd-config-accel-config-v4.0/contrib/configs/user_default_profile.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/idxd-config-accel-config-v4.1/contrib/configs/user_default_profile.conf 2023-08-22 03:10:43.000000000 +0200
@@ -0,0 +1,42 @@
+[
+ {
+ "dev":"dsa0",
+ "groups":[
+ {
+ "dev":"group0.0",
+ "grouped_workqueues":[
+ {
+ "dev":"wq0.0",
+ "mode":"shared",
+ "group_id":0,
+ "priority":10,
+ "block_on_fault":1,
+ "name":"user_default_wq",
+ "ats_disable":0,
+ "prs_disable":1
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "dev":"iax1",
+ "groups":[
+ {
+ "dev":"group1.0",
+ "grouped_workqueues":[
+ {
+ "dev":"wq1.0",
+ "mode":"shared",
+ "group_id":0,
+ "priority":10,
+ "block_on_fault":1,
+ "name":"user_default_wq",
+ "ats_disable":0,
+ "prs_disable":1
+ }
+ ]
+ }
+ ]
+ }
+]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/idxd-config-accel-config-v4.0/debian/accel-config-test.install new/idxd-config-accel-config-v4.1/debian/accel-config-test.install
--- old/idxd-config-accel-config-v4.0/debian/accel-config-test.install 2023-03-08 05:32:03.000000000 +0100
+++ new/idxd-config-accel-config-v4.1/debian/accel-config-test.install 2023-08-22 03:10:43.000000000 +0200
@@ -1 +1 @@
-usr/lib/accel-config/test/* usr/libexec/accel-config/test
+usr/libexec/accel-config/test/* usr/libexec/accel-config/test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/idxd-config-accel-config-v4.0/debian/changelog new/idxd-config-accel-config-v4.1/debian/changelog
--- old/idxd-config-accel-config-v4.0/debian/changelog 2023-03-08 05:32:03.000000000 +0100
+++ new/idxd-config-accel-config-v4.1/debian/changelog 2023-08-22 03:10:43.000000000 +0200
@@ -1,3 +1,24 @@
+accel-config (4.1-1) unstable; urgency=medium
+
+ [ Colin Ian King ]
+ * add missing libssl-dev dependency
+ * debian/accel-config-test.install fix path on copy
+
+ [ Fenghua Yu ]
+ * Skip configuring ats_disable if the attribute is not present
+ * Add config-user-default command
+ * Add option "-c <config_file>" to load default configurations from
+ the file
+ * Disable default configured WQs and devices
+ * Add "-n <wq_name>" to specify WQ name for disabling WQs
+ * Add user_default_profile.conf
+ * Add doumentation for new command "config-user-default"
+
+ [ Jerry Snitselaar ]
+ * Update spec file templates to use SPDX identifiers
+
+ -- Ramesh Thomas <ramesh.thomas(a)intel.com> Mon, 21 Aug 2023 18:08:39 -0700
+
accel-config (4.0-1) unstable; urgency=medium
[ Colin Ian King ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/idxd-config-accel-config-v4.0/debian/control new/idxd-config-accel-config-v4.1/debian/control
--- old/idxd-config-accel-config-v4.0/debian/control 2023-03-08 05:32:03.000000000 +0100
+++ new/idxd-config-accel-config-v4.1/debian/control 2023-08-22 03:10:43.000000000 +0200
@@ -14,7 +14,8 @@
pkg-config,
uuid-dev,
xmlto,
- zlib1g-dev
+ zlib1g-dev,
+ libssl-dev
Package: accel-config
Section: misc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/idxd-config-accel-config-v4.0/git-version new/idxd-config-accel-config-v4.1/git-version
--- old/idxd-config-accel-config-v4.0/git-version 2023-03-08 05:32:03.000000000 +0100
+++ new/idxd-config-accel-config-v4.1/git-version 2023-08-22 03:10:43.000000000 +0200
@@ -19,7 +19,7 @@
fi
}
-DEF_VER=4.0
+DEF_VER=4.1
LF='
'
1
0