openSUSE Commits
Threads by month
- ----- 2024 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
August 2024
- 2 participants
- 1399 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libusrp for openSUSE:Factory checked in at 2024-08-14 14:16:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libusrp (Old)
and /work/SRC/openSUSE:Factory/.libusrp.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libusrp"
Wed Aug 14 14:16:17 2024 rev:7 rq:1193833 version:3.4.9
Changes:
--------
--- /work/SRC/openSUSE:Factory/libusrp/libusrp.changes 2023-09-20 13:25:10.618020109 +0200
+++ /work/SRC/openSUSE:Factory/.libusrp.new.7232/libusrp.changes 2024-08-14 14:16:59.201895979 +0200
@@ -1,0 +2,7 @@
+Sun Aug 11 15:36:50 UTC 2024 - Wojciech Kazubski <wk(a)ire.pw.edu.pl>
+
+- Update to version 3.4.9
+ * fix build for armv8l
+ * removed rpm specfile from tarball
+
+-------------------------------------------------------------------
Old:
----
libusrp-3.4.8.tar.xz
New:
----
libusrp-3.4.9.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libusrp.spec ++++++
--- /var/tmp/diff_new_pack.PHCEhm/_old 2024-08-14 14:16:59.721917717 +0200
+++ /var/tmp/diff_new_pack.PHCEhm/_new 2024-08-14 14:16:59.721917717 +0200
@@ -1,7 +1,7 @@
#
# spec file for package libusrp
#
-# Copyright (c) 2021-2023 SUSE LLC
+# Copyright (c) 2021-2024 SUSE LLC
# Copyright (c) 2018-2021, Martin Hauke <mardnh(a)gmx.de>
#
# All modifications and additions to the file contributed by third parties
@@ -20,7 +20,7 @@
%define sover 1
%define libname libusrp%{sover}
Name: libusrp
-Version: 3.4.8
+Version: 3.4.9
Release: 0
Summary: Stand-alone libusrp for USRP1 from old gnuradio.git
License: GPL-3.0-or-later
++++++ libusrp-3.4.8.tar.xz -> libusrp-3.4.9.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libusrp-3.4.8/Makefile.am new/libusrp-3.4.9/Makefile.am
--- old/libusrp-3.4.8/Makefile.am 2023-09-12 12:28:52.000000000 +0200
+++ new/libusrp-3.4.9/Makefile.am 2024-07-24 14:34:15.000000000 +0200
@@ -29,7 +29,7 @@
usrp.inf \
.version \
debian \
- contrib/libusrp.spec.in
+ $(NULL)
SUBDIRS = host fpga doc firmware
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libusrp-3.4.8/TODO-RELEASE new/libusrp-3.4.9/TODO-RELEASE
--- old/libusrp-3.4.8/TODO-RELEASE 2023-09-12 12:28:52.000000000 +0200
+++ new/libusrp-3.4.9/TODO-RELEASE 2024-07-24 14:34:15.000000000 +0200
@@ -1,9 +1,9 @@
# When cleaning up this file: bump API version in corresponding Makefile.am and rename corresponding debian/lib*.install
-# according to https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info…
-# In short:
+# according to https://osmocom.org/projects/cellular-infrastructure/wiki/Make_a_new_release
+# In short: https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info…
# LIBVERSION=c:r:a
# If the library source code has changed at all since the last update, then increment revision: c:r + 1:a.
-# If any interfaces have been added, removed, or changed since the last update: c + 1:0:0.
+# If any interfaces have been added, removed, or changed since the last update: c + 1:0:a.
# If any interfaces have been added since the last public release: c:r:a + 1.
# If any interfaces have been removed or changed since the last public release: c:r:0.
-#library what description / commit summary line
+#library what description / commit summary line
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libusrp-3.4.8/configure.ac new/libusrp-3.4.9/configure.ac
--- old/libusrp-3.4.8/configure.ac 2023-09-12 12:28:52.000000000 +0200
+++ new/libusrp-3.4.9/configure.ac 2024-07-24 14:34:15.000000000 +0200
@@ -112,4 +112,4 @@
fpga/rbf/rev2/Makefile
fpga/rbf/rev4/Makefile
])
-AC_OUTPUT([contrib/libusrp.spec])
+AC_OUTPUT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libusrp-3.4.8/contrib/libusrp.spec.in new/libusrp-3.4.9/contrib/libusrp.spec.in
--- old/libusrp-3.4.8/contrib/libusrp.spec.in 2023-09-12 12:28:52.000000000 +0200
+++ new/libusrp-3.4.9/contrib/libusrp.spec.in 1970-01-01 01:00:00.000000000 +0100
@@ -1,119 +0,0 @@
-#
-# spec file for package libusrp
-#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
-# Copyright (c) 2018, 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
-# upon. The license for this file, and modifications and additions to the
-# file, is the same license as for the pristine package itself (unless the
-# license for the pristine package is not an Open Source License, in which
-# case the license is the MIT License). An "Open Source License" is a
-# license that conforms to the Open Source Definition (Version 1.9)
-# published by the Open Source Initiative.
-
-%define libname libusrp1
-Name: libusrp
-Version: @VERSION@
-Release: 0
-Summary: Stand-alone libusrp for USRP1 from old gnuradio.git
-License: GPL-3.0-or-later
-Group: Development/Libraries/C and C++
-URL: https://git.osmocom.org/libusrp
-Source: %{name}-%{version}.tar.xz
-BuildRequires: autoconf
-BuildRequires: automake
-BuildRequires: fdupes
-BuildRequires: gcc-c++
-BuildRequires: libtool
-BuildRequires: pkgconfig
-BuildRequires: sdcc
-BuildRequires: python3
-BuildRequires: pkgconfig(libusb-1.0)
-%if 0%{?suse_version} > 1325
-BuildRequires: libboost_date_time-devel
-BuildRequires: libboost_filesystem-devel
-BuildRequires: libboost_program_options-devel
-BuildRequires: libboost_system-devel
-BuildRequires: libboost_thread-devel
-%else
-BuildRequires: boost-devel
-%endif
-
-%description
-Stand-alone libusrp for USRP1 from old gnuradio.git.
-
-%package -n %{libname}
-Summary: Stand-alone libusrp for USRP1 from old gnuradio.git
-Group: System/Libraries
-
-%description -n %{libname}
-Stand-alone libusrp for USRP1 from old gnuradio.git.
-
-%package devel
-Summary: Development files for libusrp
-Group: Development/Libraries/C and C++
-Requires: %{libname} = %{version}
-
-%description devel
-Stand-alone libusrp for USRP1 from old gnuradio.git.
-
-This subpackage contains libraries and header files for developing
-applications that want to make use of libusrp.
-
-%package -n usrp-tools
-Summary: Tools for the URSP1 SDR
-Group: Hardware/Other
-
-%description -n usrp-tools
-Tools for the URSP1 SDR.
-
-%package -n usrp-firmware
-Summary: Firmware files for the URSP1 SDR
-Group: Hardware/Other
-Requires: usrp-tools = %{version}
-BuildArch: noarch
-
-%description -n usrp-firmware
-Firmware files for the USRP1 SDR.
-
-%prep
-%setup -q
-
-%build
-echo "%{version}" >.tarball-version
-autoreconf -fiv
-%configure
-# parallel build is br0ken
-# -> https://osmocom.org/issues/3970#change-15556
-make V=1 # %{?_smp_mflags}
-
-%install
-%make_install
-rm -f %{buildroot}%{_libdir}/libusrp.la
-# FIXME: gnuradio swig stuff shouldn't be there
-rm -rf %{buildroot}%{_includedir}/gnuradio/
-%fdupes %{buildroot}%{_datadir}/usrp
-
-%post -n %{libname} -p /sbin/ldconfig
-%postun -n %{libname} -p /sbin/ldconfig
-
-%files -n usrp-tools
-%{_bindir}/usrp_cal_dc_offset
-%{_bindir}/usrper
-
-%files -n %{libname}
-%{_libdir}/libusrp*.so.*
-
-%files -n usrp-firmware
-%dir %{_datadir}/usrp
-%{_datadir}/usrp/rev2
-%{_datadir}/usrp/rev4
-
-%files devel
-%{_includedir}/usrp
-%{_libdir}/libusrp.so
-%{_libdir}/pkgconfig/usrp.pc
-
-%changelog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libusrp-3.4.8/debian/changelog new/libusrp-3.4.9/debian/changelog
--- old/libusrp-3.4.8/debian/changelog 2023-09-12 12:28:52.000000000 +0200
+++ new/libusrp-3.4.9/debian/changelog 2024-07-24 14:34:15.000000000 +0200
@@ -1,3 +1,10 @@
+libusrp (3.4.9) unstable; urgency=medium
+
+ * contrib: remove rpm spec file
+ * m4/ax_boost_base.m4: Fix debian multiarch_libsubdir path for armv8l
+
+ -- Oliver Smith <osmith(a)sysmocom.de> Wed, 24 Jul 2024 14:34:15 +0200
+
libusrp (3.4.8) unstable; urgency=medium
[ Oliver Smith ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libusrp-3.4.8/m4/ax_boost_base.m4 new/libusrp-3.4.9/m4/ax_boost_base.m4
--- old/libusrp-3.4.8/m4/ax_boost_base.m4 2023-09-12 12:28:52.000000000 +0200
+++ new/libusrp-3.4.9/m4/ax_boost_base.m4 2024-07-24 14:34:15.000000000 +0200
@@ -124,6 +124,7 @@
AS_CASE([${host_cpu}],
[i?86],[multiarch_libsubdir="lib/i386-${host_os}"],
[armv7l],[multiarch_libsubdir="lib/arm-${host_os}"],
+ [armv8l],[multiarch_libsubdir="lib/arm-${host_os}"],
[multiarch_libsubdir="lib/${host_cpu}-${host_os}"]
)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package scrot for openSUSE:Factory checked in at 2024-08-14 14:16:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/scrot (Old)
and /work/SRC/openSUSE:Factory/.scrot.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "scrot"
Wed Aug 14 14:16:14 2024 rev:13 rq:1193835 version:1.11.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/scrot/scrot.changes 2024-07-25 16:01:46.561640331 +0200
+++ /work/SRC/openSUSE:Factory/.scrot.new.7232/scrot.changes 2024-08-14 14:16:57.689832770 +0200
@@ -1,0 +2,7 @@
+Tue Aug 13 06:08:58 UTC 2024 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 1.11.1:
+ * Fixes: remove trailing slash from etc/ from Makefile.am to
+ allow the 'make dist' command to run correctly.
+
+-------------------------------------------------------------------
Old:
----
scrot-1.11.tar.gz
New:
----
scrot-1.11.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ scrot.spec ++++++
--- /var/tmp/diff_new_pack.ErudIb/_old 2024-08-14 14:16:58.277857351 +0200
+++ /var/tmp/diff_new_pack.ErudIb/_new 2024-08-14 14:16:58.281857519 +0200
@@ -17,7 +17,7 @@
Name: scrot
-Version: 1.11
+Version: 1.11.1
Release: 0
Summary: Screenshot Capture Utility
License: SUSE-Scrot
++++++ scrot-1.11.tar.gz -> scrot-1.11.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scrot-1.11/ChangeLog new/scrot-1.11.1/ChangeLog
--- old/scrot-1.11/ChangeLog 2024-06-10 13:30:17.000000000 +0200
+++ new/scrot-1.11.1/ChangeLog 2024-06-10 19:40:32.000000000 +0200
@@ -1,3 +1,11 @@
+Mon Jun 10 14:36:36 -03:00 2024 Joao Eriberto Mota Filho <eriberto(a)eriberto.pro.br>
+Version 1.11.1
+
+ [ NRK ] alias @N-R-K
+
+ * Fixes: remove trailing slash from etc/ from Makefile.am to allow the
+ 'make dist' command to run correctly.
+
Sun Jun 09 21:19:28 -03:00 2024 Joao Eriberto Mota Filho <eriberto(a)eriberto.pro.br>
Version 1.11
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scrot-1.11/Makefile.in new/scrot-1.11.1/Makefile.in
--- old/scrot-1.11/Makefile.in 2024-06-10 13:32:09.000000000 +0200
+++ new/scrot-1.11.1/Makefile.in 2024-06-10 19:54:01.000000000 +0200
@@ -212,7 +212,7 @@
done | $(am__uniquify_input)`
DIST_SUBDIRS = $(SUBDIRS)
am__DIST_COMMON = $(srcdir)/Makefile.in AUTHORS COPYING ChangeLog \
- README.md compile depcomp install-sh missing
+ README.md compile install-sh missing
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scrot-1.11/configure new/scrot-1.11.1/configure
--- old/scrot-1.11/configure 2024-06-10 13:30:21.000000000 +0200
+++ new/scrot-1.11.1/configure 2024-06-10 19:54:01.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for scrot 1.11.
+# Generated by GNU Autoconf 2.71 for scrot 1.11.1.
#
# Report bugs to <https://github.com/resurrecting-open-source-projects/scrot/issues>.
#
@@ -611,8 +611,8 @@
# Identity of this package.
PACKAGE_NAME='scrot'
PACKAGE_TARNAME='scrot'
-PACKAGE_VERSION='1.11'
-PACKAGE_STRING='scrot 1.11'
+PACKAGE_VERSION='1.11.1'
+PACKAGE_STRING='scrot 1.11.1'
PACKAGE_BUGREPORT='https://github.com/resurrecting-open-source-projects/scrot/issues'
PACKAGE_URL='https://github.com/resurrecting-open-source-projects/scrot'
@@ -1287,7 +1287,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 scrot 1.11 to adapt to many kinds of systems.
+\`configure' configures scrot 1.11.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1354,7 +1354,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of scrot 1.11:";;
+ short | recursive ) echo "Configuration of scrot 1.11.1:";;
esac
cat <<\_ACEOF
@@ -1461,7 +1461,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-scrot configure 1.11
+scrot configure 1.11.1
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1580,7 +1580,7 @@
#define $2 innocuous_$2
/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (void); below. */
+ which can conflict with char $2 (); below. */
#include <limits.h>
#undef $2
@@ -1591,7 +1591,7 @@
#ifdef __cplusplus
extern "C"
#endif
-char $2 (void);
+char $2 ();
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
@@ -1646,7 +1646,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by scrot $as_me 1.11, which was
+It was created by scrot $as_me 1.11.1, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -1932,7 +1932,9 @@
/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */
struct buf { int x; };
struct buf * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (char **p, int i)
+static char *e (p, i)
+ char **p;
+ int i;
{
return p[i];
}
@@ -1983,7 +1985,6 @@
extern int printf (const char *, ...);
extern int dprintf (int, const char *, ...);
extern void *malloc (size_t);
-extern void free (void *);
// Check varargs macros. These examples are taken from C99 6.10.3.5.
// dprintf is used instead of fprintf to avoid needing to declare
@@ -2906,7 +2907,7 @@
# Define the identity of the package.
PACKAGE='scrot'
- VERSION='1.11'
+ VERSION='1.11.1'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -6068,7 +6069,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by scrot $as_me 1.11, which was
+This file was extended by scrot $as_me 1.11.1, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -6128,7 +6129,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-scrot config.status 1.11
+scrot config.status 1.11.1
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/scrot-1.11/configure.ac new/scrot-1.11.1/configure.ac
--- old/scrot-1.11/configure.ac 2024-06-10 13:30:17.000000000 +0200
+++ new/scrot-1.11.1/configure.ac 2024-06-10 19:41:36.000000000 +0200
@@ -1,6 +1,6 @@
dnl Process this file with autoconf to create configure.
-AC_INIT([scrot], [1.11],
+AC_INIT([scrot], [1.11.1],
[https://github.com/resurrecting-open-source-projects/scrot/issues]
[https://github.com/resurrecting-open-source-projects/scrot]
AC_CONFIG_SRCDIR([src/scrot.c])
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-MooseX-App for openSUSE:Factory checked in at 2024-08-14 14:16:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-MooseX-App (Old)
and /work/SRC/openSUSE:Factory/.perl-MooseX-App.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-MooseX-App"
Wed Aug 14 14:16:10 2024 rev:8 rq:1193826 version:1.430.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-MooseX-App/perl-MooseX-App.changes 2024-03-09 20:56:27.862497879 +0100
+++ /work/SRC/openSUSE:Factory/.perl-MooseX-App.new.7232/perl-MooseX-App.changes 2024-08-14 14:16:54.637705181 +0200
@@ -1,0 +2,7 @@
+Fri Aug 9 18:26:30 UTC 2024 - Frank Schreiner <FSchreiner(a)suse.com>
+
+- Add 0001_fix_bashcompletion_with_subcommands.patch
+ * Fixes: (#72) https://github.com/maros/MooseX-App/issues/72
+ * UPSTREAM PR: https://github.com/maros/MooseX-App/pull/73
+
+-------------------------------------------------------------------
New:
----
0001_fix_bashcompletion_with_subcommands.patch
BETA DEBUG BEGIN:
New:
- Add 0001_fix_bashcompletion_with_subcommands.patch
* Fixes: (#72) https://github.com/maros/MooseX-App/issues/72
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-MooseX-App.spec ++++++
--- /var/tmp/diff_new_pack.SeptXg/_old 2024-08-14 14:16:55.601745481 +0200
+++ /var/tmp/diff_new_pack.SeptXg/_new 2024-08-14 14:16:55.605745648 +0200
@@ -18,7 +18,7 @@
%define cpan_name MooseX-App
Name: perl-MooseX-App
-Version: 1.430.0
+Version: 1.430.1
Release: 0
%define cpan_version 1.43
License: Artistic-1.0 OR GPL-1.0-or-later
@@ -26,6 +26,8 @@
URL: https://metacpan.org/release/%{cpan_name}
Source0: https://cpan.metacpan.org/authors/id/M/MA/MAROS/%{cpan_name}-%{cpan_version…
Source1: cpanspec.yml
+# PATCH-FIX-UPSTREAM M0ses https://github.com/maros/MooseX-App/issues/72
+Patch0: 0001_fix_bashcompletion_with_subcommands.patch
BuildArch: noarch
BuildRequires: perl
BuildRequires: perl-macros
@@ -111,7 +113,7 @@
keywords respectively.
%prep
-%autosetup -n %{cpan_name}-%{cpan_version}
+%autosetup -n %{cpan_name}-%{cpan_version} -p 1
find . -type f ! -path "*/t/*" ! -name "*.pl" ! -path "*/bin/*" ! -path "*/script/*" ! -path "*/scripts/*" ! -name "configure" -print0 | xargs -0 chmod 644
++++++ 0001_fix_bashcompletion_with_subcommands.patch ++++++
diff --git a/lib/MooseX/App/Plugin/BashCompletion/Command.pm b/lib/MooseX/App/Plugin/BashCompletion/Command.pm
index afe5c66..cdc1bc2 100644
--- a/lib/MooseX/App/Plugin/BashCompletion/Command.pm
+++ b/lib/MooseX/App/Plugin/BashCompletion/Command.pm
@@ -17,8 +17,10 @@ sub bash_completion {
my %command_map;
my $app_meta = $app->meta;
my $commands = $app_meta->app_commands;
- my @commands_to_complete = grep { $_ ne 'bash_completion' } sort keys %{$commands};
- my $command_list = join (' ', @commands_to_complete);
+ my @filtered_cmds = grep { $_ ne 'bash_completion' } keys %{$commands};
+ my %unique_cmds = map { my @c = split ' ', $_; ($c[0], 1); } @filtered_cmds;
+ my @cmds2complete = sort(@filtered_cmds);
+ my $command_list = join (' ', sort(keys(%unique_cmds)));
my $package = __PACKAGE__;
my $prefix = $app_meta->app_base;
@@ -29,14 +31,17 @@ sub bash_completion {
$prefix =~ tr/./_/;
- foreach my $command (@commands_to_complete) {
+ foreach my $command (@cmds2complete) {
my $command_class = $commands->{$command};
Class::Load::load_class($command_class);
- #my @parameters = $app_meta->command_usage_attributes($command_class->meta,'parameter');
- my @options = $app_meta->command_usage_attributes($command_class->meta,[qw(option proto)]);
+ my @sub_map = map { $_ =~ /^${command} (\w+)/; $1; } sort(@filtered_cmds);
+ my @sub_cmds = grep { defined $_ } @sub_map;
+ my @options = $app_meta->command_usage_attributes(
+ $command_class->meta,
+ [qw(option proto)],
+ );
$command_map{$command} = {
- #parameters => [ map { $_->is_required } @parameters ],
- options => [ map { $_->cmd_usage_name } @options ],
+ options => [@sub_cmds, sort(map { $_->cmd_usage_name } @options)],
};
}
@@ -60,9 +65,11 @@ _${prefix}_macc_help() {
EOT
foreach my $command (sort keys %command_map) {
- $syntax .= "_${prefix}_macc_${command}() {\n _${prefix}_compreply \"";
+ my $fn_suffix = $command;
+ $fn_suffix =~ s/ /_/g;
+ $syntax .= "_${prefix}_macc_${fn_suffix}() {\n _${prefix}_compreply \"";
#$syntax .= join(" ", @{$data->{parameters}});
- $syntax .= join(" ", sort @{$command_map{$command}->{options}});
+ $syntax .= join(" ", @{$command_map{$command}->{options}});
$syntax .= "\"\n}\n\n";
}
diff --git a/t/08_plugin_various.t b/t/08_plugin_various.t
index d84ad23..179431e 100644
--- a/t/08_plugin_various.t
+++ b/t/08_plugin_various.t
@@ -19,6 +19,10 @@ subtest 'Bash completion' => sub {
like($bash_completion,qr/_test03_macc_somecommand\(\)\s\{/,'some_command present');
like($bash_completion,qr/--global_option/,'global_option present');
like($bash_completion,qr/--roleattr/,'roleattr present');
+ like($bash_completion,qr/_test03_macc_cmdwithsubcommands_subb/,'subcommand B present');
+ like($bash_completion,qr/_test03_macc_cmdwithsubcommands_subb/,'subcommand B present');
+ unlike($bash_completion,qr/_test03_macc_cmdwithsubcommands subb/,'subcommand B present');
+ unlike($bash_completion,qr/_test03_macc_cmdwithsubcommands subb/,'subcommand B present');
unlike($bash_completion,qr/bash_completion/,'bash_completion is not included');
};
diff --git a/t/testlib/Test03/CmdWithSubCommands/SubA.pm b/t/testlib/Test03/CmdWithSubCommands/SubA.pm
new file mode 100644
index 0000000..bf62c43
--- /dev/null
+++ b/t/testlib/Test03/CmdWithSubCommands/SubA.pm
@@ -0,0 +1,14 @@
+package Test03::CmdWithSubCommands::SubA;
+
+use MooseX::App::Command;
+
+sub run {
+ my ($self) = @_;
+ use Data::Dumper;
+ {
+ local $Data::Dumper::Maxdepth = 2;
+ warn __FILE__.':line'.__LINE__.':'.Dumper($self);
+ }
+}
+
+1;
diff --git a/t/testlib/Test03/CmdWithSubCommands/SubB.pm b/t/testlib/Test03/CmdWithSubCommands/SubB.pm
new file mode 100644
index 0000000..bb2678f
--- /dev/null
+++ b/t/testlib/Test03/CmdWithSubCommands/SubB.pm
@@ -0,0 +1,14 @@
+package Test03::CmdWithSubCommands::SubB;
+
+use MooseX::App::Command;
+
+sub run {
+ my ($self) = @_;
+ use Data::Dumper;
+ {
+ local $Data::Dumper::Maxdepth = 2;
+ warn __FILE__.':line'.__LINE__.':'.Dumper($self);
+ }
+}
+
+1;
++++++ cpanspec.yml ++++++
--- /var/tmp/diff_new_pack.SeptXg/_old 2024-08-14 14:16:55.649747487 +0200
+++ /var/tmp/diff_new_pack.SeptXg/_new 2024-08-14 14:16:55.653747655 +0200
@@ -7,8 +7,8 @@
#sources:
# - source1
# - source2
-#patches:
-# bar.patch:
+patches:
+ 0001_fix_bashcompletion_with_subcommands.patch: -p1 PATCH-FIX-UPSTREAM M0ses https://github.com/maros/MooseX-App/issues/72
preamble: |-
BuildRequires: perl(Config::Any)
#post_prep: |-
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package klp-build for openSUSE:Factory checked in at 2024-08-14 14:16:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/klp-build (Old)
and /work/SRC/openSUSE:Factory/.klp-build.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "klp-build"
Wed Aug 14 14:16:04 2024 rev:7 rq:1193818 version:0~20240812.ad9f0e0
Changes:
--------
--- /work/SRC/openSUSE:Factory/klp-build/klp-build.changes 2024-08-01 22:05:51.460001070 +0200
+++ /work/SRC/openSUSE:Factory/.klp-build.new.7232/klp-build.changes 2024-08-14 14:16:50.221520570 +0200
@@ -1,0 +2,29 @@
+Wed Aug 14 06:12:41 UTC 2024 - mvetter(a)suse.com
+
+- Update to version 0~20240812.ad9f0e0:
+ * setup: Ignore cs_is_affected if CVE is empty
+ * Rename and fix user_path config names for kgraft-patches
+ * ibs: Move kgraft_path to where it's being used
+ * ibs: Do not remove extracted vmlinux and modules
+ * config: Support 'kgraft-patches' in config file
+ * config: Support 'patches-tests' in config file
+ * klp-ccp: Remove KLP_CCP_PATH env variable
+ * config: Support 'ccp-pol-scripts' in config file
+ * config: Support 'kernel-source' in config file
+ * config: Support per-user configuration file
+ * config.py: Check for supported attribute on modinfo by using startswith
+ * setup: Skip codestreams missing backports (not affected)
+ * ksrc: Add 15.6 RT to get the backports
+ * config: Skip symbols with empty names
+ * ibs: Fix typo when validating the livepatch
+ * ksrc: Check if all branch patches are present to mark as not affected
+ * ksrc: Simplify getting patched codestreams
+ * test.sh: Add new test for CVE-2024-40909
+ * Add zstd support
+ * Use pyelftools to parse .modinfo
+ * config: Add support to read gzipped files, like vmlinux
+ * Replace all invocations of nm binary with pyelftools
+ * Use PyElfTools in order to read object symbols
+ * test.sh: Adjust LoC count with recent clang-extract changes
+
+-------------------------------------------------------------------
Old:
----
klp-build-0~20240731.edfe0bf.tar.xz
New:
----
klp-build-0~20240812.ad9f0e0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ klp-build.spec ++++++
--- /var/tmp/diff_new_pack.YSDoMN/_old 2024-08-14 14:16:50.753542810 +0200
+++ /var/tmp/diff_new_pack.YSDoMN/_new 2024-08-14 14:16:50.757542978 +0200
@@ -18,7 +18,7 @@
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
Name: klp-build
-Version: 0~20240731.edfe0bf
+Version: 0~20240812.ad9f0e0
Release: 0
Summary: The kernel livepatching creation tool
License: GPL-2.0-only
++++++ _service ++++++
--- /var/tmp/diff_new_pack.YSDoMN/_old 2024-08-14 14:16:50.785544148 +0200
+++ /var/tmp/diff_new_pack.YSDoMN/_new 2024-08-14 14:16:50.789544315 +0200
@@ -2,7 +2,7 @@
<service name="tar_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://github.com/SUSE/klp-build</param>
- <param name="revision">edfe0bfa92a2a247816292a4059c206a2783bd50</param>
+ <param name="revision">ad9f0e08623439b67ecfa9b079f9816f10f51562</param>
<param name="versionformat">0~%cd.%h</param>
<param name="changesgenerate">enable</param>
<param name="changesauthor">mvetter(a)suse.com</param>
++++++ klp-build-0~20240731.edfe0bf.tar.xz -> klp-build-0~20240812.ad9f0e0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klp-build-0~20240731.edfe0bf/klpbuild/ccp.py new/klp-build-0~20240812.ad9f0e0/klpbuild/ccp.py
--- old/klp-build-0~20240731.edfe0bf/klpbuild/ccp.py 2024-07-31 22:46:43.000000000 +0200
+++ new/klp-build-0~20240812.ad9f0e0/klpbuild/ccp.py 2024-08-12 22:38:35.000000000 +0200
@@ -17,30 +17,13 @@
self.env = os.environ
- # Prefer the env var to the HOME directory location
- ccp_path = os.getenv("KLP_CCP_PATH", "")
- if ccp_path and not Path(ccp_path).is_file():
- raise RuntimeError("KLP_CCP_PATH does not point to a file")
-
- elif not ccp_path:
- ccp_path = shutil.which("klp-ccp")
- if not ccp_path:
- raise RuntimeError("klp-ccp not found. Aborting.")
+ ccp_path = shutil.which("klp-ccp")
+ if not ccp_path:
+ raise RuntimeError("klp-ccp not found. Aborting.")
self.ccp_path = str(ccp_path)
- pol_path = os.getenv("KLP_CCP_POL_PATH")
- if pol_path and not Path(pol_path).is_dir():
- raise RuntimeError("KLP_CCP_POL_PATH does not point to a directory")
-
- elif not pol_path:
- pol_path = Path(Path().home(), "kgr", "scripts", "ccp-pol")
- if not pol_path.is_dir():
- raise RuntimeError(
- "ccp-pol not found at ~/kgr/scripts/ccp-pol/. Please set KLP_CCP_POL_PATH env var to a valid ccp-pol directory"
- )
-
- self.pol_path = str(pol_path)
+ self.pol_path = self.get_user_path('ccp_pol_dir')
# List of symbols that are currently not resolvable for klp-ccp
avoid_syms = [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klp-build-0~20240731.edfe0bf/klpbuild/config.py new/klp-build-0~20240812.ad9f0e0/klpbuild/config.py
--- old/klp-build-0~20240731.edfe0bf/klpbuild/config.py 2024-07-31 22:46:43.000000000 +0200
+++ new/klp-build-0~20240812.ad9f0e0/klpbuild/config.py 2024-08-12 22:38:35.000000000 +0200
@@ -3,7 +3,10 @@
# Copyright (C) 2021-2024 SUSE
# Author: Marcos Paulo de Souza <mpdesouza(a)suse.com>
+import configparser
import copy
+import gzip
+import io
import json
import logging
import os
@@ -19,16 +22,30 @@
from klpbuild.utils import ARCH
from klpbuild.utils import classify_codestreams
+from elftools.common.utils import bytes2str
+from elftools.elf.elffile import ELFFile
+from elftools.elf.sections import SymbolTableSection
+
+import zstandard
class Config:
def __init__(self, lp_name, lp_filter, kdir=False, data_dir=None, skips="", working_cs={}):
- work_dir = os.getenv("KLP_WORK_DIR")
- if not work_dir:
- raise ValueError("KLP_WORK_DIR should be defined")
-
- work = Path(work_dir)
- if not work.is_dir():
- raise ValueError("Work dir should be a directory")
+ # FIXME: Config is instantiated multiple times, meaning that the
+ # config file gets loaded and the logs are printed as many times.
+
+ logging.basicConfig(level=logging.INFO, format="%(message)s")
+
+ home = Path.home()
+ self.user_conf_file = Path(home, ".config/klp-build/config")
+ if not self.user_conf_file.is_file():
+ logging.warning(f"Warning: user configuration file not found")
+ # If there's no configuration file assume fresh install.
+ # Prepare the system with a default environment and conf.
+ self.setup_user_env(Path(home, "klp"))
+
+ self.load_user_conf()
+
+ work = self.get_user_path('work_dir')
self.lp_name = lp_name
self.lp_path = Path(work, self.lp_name)
@@ -54,19 +71,61 @@
self.kdir = self.conf.get("kdir", False)
self.data = Path(self.conf.get("data", "non-existent"))
if not self.data.exists():
- data_dir = os.getenv("KLP_DATA_DIR", "")
- if not data_dir:
- raise ValueError("KLP_DATA_DIR should be defined")
- self.data = Path(data_dir)
-
- if not self.data.is_dir():
- raise ValueError("Data dir should be a directory")
-
- # will contain the nm output from the to be livepatched object
- # cache nm calls for the codestream : object
- self.nm_out = {}
+ self.data = self.get_user_path('data_dir')
- logging.basicConfig(level=logging.INFO, format="%(message)s")
+ # will contain the symbols from the to be livepatched object
+ # cached by the codestream : object
+ self.obj_symbols = {}
+
+
+ def setup_user_env(self, basedir):
+ workdir = Path(basedir, "livepatches")
+ datadir = Path(basedir, "data")
+
+ config = configparser.ConfigParser(allow_no_value=True)
+
+ config['Paths'] = {'work_dir': workdir,
+ 'data_dir': datadir,
+ '## SUSE internal use only ##': None,
+ '#kgr_patches_dir': 'kgraft-patches/',
+ '#kgr_patches_tests_dir': 'kgraft-patches_testscripts/',
+ '#kernel_src_dir': 'kernel-src/',
+ '#ccp_pol_dir': 'kgr-scripts/ccp-pol/'}
+
+ logging.info(f"Creating default user configuration: '{self.user_conf_file}'")
+ os.makedirs(os.path.dirname(self.user_conf_file), exist_ok=True)
+ with open(self.user_conf_file, 'w') as f:
+ config.write(f)
+
+ os.makedirs(workdir, exist_ok=True)
+ os.makedirs(datadir, exist_ok=True)
+
+ def load_user_conf(self):
+ config = configparser.ConfigParser()
+ logging.info(f"Loading user configuration from '{self.user_conf_file}'")
+ config.read(self.user_conf_file)
+
+ # Check mandatory fields
+ if 'Paths' not in config:
+ raise ValueError(f"config: 'Paths' section not found")
+
+ self.user_conf = config
+
+ def get_user_path(self, entry, isdir=True, isopt=False):
+ if entry not in self.user_conf['Paths']:
+ if isopt:
+ return ""
+ raise ValueError(f"config: '{entry}' entry not found")
+
+ p = Path(self.user_conf['Paths'][entry])
+ if not p.exists():
+ raise ValueError(f"'{p}' file or directory not found")
+ if isdir and not p.is_dir():
+ raise ValueError("{p} should be a directory")
+ if not isdir and not p.is_file():
+ raise ValueError("{p} should be a file")
+
+ return p
def lp_out_file(self, fname):
fpath = f'{str(fname).replace("/", "_").replace("-", "_")}'
@@ -307,9 +366,7 @@
return self.get_data_dir(arch)
def get_tests_path(self):
- self.kgraft_tests_path = Path(Path().home(), "kgr", "kgraft-patches_testscripts")
- if not self.kgraft_tests_path.is_dir():
- raise RuntimeError(f"Couldn't find {self.kgraft_tests_path}")
+ self.kgraft_tests_path = self.get_user_path('kgr_patches_tests_dir')
test_sh = Path(self.kgraft_tests_path, f"{self.lp_name}_test_script.sh")
test_dir_sh = Path(self.kgraft_tests_path, f"{self.lp_name}/test_script.sh")
@@ -340,7 +397,13 @@
if not obj:
obj = self.find_module_obj(arch, cs, module)
- return str(Path(self.get_mod_path(cs, arch, module), obj))
+ tmp_path = Path(self.get_mod_path(cs, arch, module), obj)
+ if not tmp_path.exists():
+ # For vmlinux files, we can have it uncompress it decompressed
+ if not self.is_mod(module):
+ return Path(str(tmp_path) + ".gz")
+
+ return tmp_path
# Return only the name of the module to be livepatched
def find_module_obj(self, arch, cs, mod, check_support=False):
@@ -355,19 +418,22 @@
mod_path = self.get_mod_path(cs, arch, mod)
with open(Path(mod_path, "modules.order")) as f:
- obj = re.search(rf"([\w\/\-]+\/{mod}.k?o)", f.read())
- if not obj:
+ obj_match = re.search(rf"([\w\/\-]+\/{mod}.k?o)", f.read())
+ if not obj_match:
raise RuntimeError(f"{cs}-{arch} ({kernel}): Module not found: {mod}")
# if kdir if set, modules.order will show the module with suffix .o, so
- # make sure the extension
- obj = str(PurePath(obj.group(1)).with_suffix(".ko"))
+ # make sure the extension. Also check for multiple extensions since we
+ # can have modules being compressed using different algorithms.
+ for ext in [".ko", ".ko.zst", ".ko.gz"]:
+ obj = str(PurePath(obj_match.group(1)).with_suffix(ext))
+ if Path(mod_path, obj).exists():
+ break
if check_support:
# Validate if the module being livepatches is supported or not
- out = subprocess.check_output(["/sbin/modinfo", obj], cwd=mod_path, stderr=subprocess.STDOUT).decode()
-
- if re.search(r"supported:\s+no", out):
+ elffile = self.get_elf_object(Path(mod_path, obj))
+ if "no" == self.get_elf_modinfo_entry(elffile, "supported"):
print(f"WARN: {cs}-{arch} ({kernel}): Module {mod} is not supported by SLE")
return obj
@@ -405,25 +471,76 @@
keys = natsorted(full_cs.keys())
return OrderedDict((k, full_cs[k]) for k in keys)
- # Cache the output of nm by using the object path. It differs for each
+ def get_elf_modinfo_entry(self, elffile, conf):
+ sec = elffile.get_section_by_name(".modinfo")
+ if not sec:
+ return None
+
+ # Iterate over all info on modinfo section
+ for line in bytes2str(sec.data()).split("\0"):
+ if line.startswith(conf):
+ key, val = line.split("=")
+ return val.strip()
+
+ return ""
+
+ def get_elf_object(self, obj):
+ with open(obj, "rb") as f:
+ data = f.read()
+
+ # FIXME: use magic lib instead of checking the file extension
+ if str(obj).endswith(".gz"):
+ io_bytes = io.BytesIO(gzip.decompress(data))
+ elif str(obj).endswith(".zst"):
+ dctx = zstandard.ZstdDecompressor()
+ io_bytes = io.BytesIO(dctx.decompress(data))
+ else:
+ io_bytes = io.BytesIO(data)
+
+ return ELFFile(io_bytes)
+
+ # Load the ELF object and return all symbols
+ def get_all_symbols_from_object(self, obj, defined):
+ syms = []
+
+ elffile = self.get_elf_object(obj)
+ for sec in elffile.iter_sections():
+ if not isinstance(sec, SymbolTableSection):
+ continue
+
+ if sec['sh_entsize'] == 0:
+ continue
+
+ for symbol in sec.iter_symbols():
+ # Somehow we end up receiving an empty symbol
+ if not symbol.name:
+ continue
+ if str(symbol["st_shndx"]) == "SHN_UNDEF" and not defined:
+ syms.append(symbol.name)
+ elif str(symbol["st_shndx"]) != "SHN_UNDEF" and defined:
+ syms.append(symbol.name)
+
+ return syms
+
+ # Cache the symbols using the object path. It differs for each
# codestream and architecture
# Return all the symbols not found per arch/obj
def check_symbol(self, arch, cs, mod, symbols):
- self.nm_out.setdefault(arch, {})
- self.nm_out[arch].setdefault(cs, {})
+ self.obj_symbols.setdefault(arch, {})
+ self.obj_symbols[arch].setdefault(cs, {})
- if not self.nm_out[arch][cs].get(mod, ""):
+ if not self.obj_symbols[arch][cs].get(mod, ""):
obj = self.get_module_obj(arch, cs, mod)
- self.nm_out[arch][cs][mod] = subprocess.check_output(["nm", "--defined-only", obj]).decode().strip()
+ self.obj_symbols[arch][cs][mod] = self.get_all_symbols_from_object(obj, True)
ret = []
for symbol in symbols:
- syms = re.findall(r"[\w]+ \w {}\n".format(symbol), self.nm_out[arch][cs][mod])
- if len(syms) == 0:
+ nsyms = self.obj_symbols[arch][cs][mod].count(symbol)
+ if nsyms == 0:
ret.append(symbol)
- elif len(syms) > 1:
+ elif nsyms > 1:
kernel = self.get_cs_kernel(cs)
print(f"WARNING: {cs}-{arch} ({kernel}): symbol {symbol} duplicated on {mod}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klp-build-0~20240731.edfe0bf/klpbuild/extractor.py new/klp-build-0~20240812.ad9f0e0/klpbuild/extractor.py
--- old/klp-build-0~20240731.edfe0bf/klpbuild/extractor.py 2024-07-31 22:46:43.000000000 +0200
+++ new/klp-build-0~20240812.ad9f0e0/klpbuild/extractor.py 2024-08-12 22:38:35.000000000 +0200
@@ -340,8 +340,8 @@
if self.apply_patches:
self.remove_patches(cs, self.quilt_log)
- # Map all symbols related to each obj, to make it check the output
- # of nm only once per object
+ # Map all symbols related to each obj, to make it check the symbols
+ # only once per object
obj_syms = {}
for f, fdata in self.get_cs_files(cs).items():
for obj, syms in fdata["ext_symbols"].items():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klp-build-0~20240731.edfe0bf/klpbuild/ibs.py new/klp-build-0~20240812.ad9f0e0/klpbuild/ibs.py
--- old/klp-build-0~20240731.edfe0bf/klpbuild/ibs.py 2024-07-31 22:46:43.000000000 +0200
+++ new/klp-build-0~20240812.ad9f0e0/klpbuild/ibs.py 2024-08-12 22:38:35.000000000 +0200
@@ -37,10 +37,6 @@
self.ibs_user = self.osc.username
self.prj_prefix = f"home:{self.ibs_user}:{self.lp_name}-klp"
- self.kgraft_path = Path(Path().home(), "kgr", "kgraft-patches")
- if not self.kgraft_path.is_dir():
- raise RuntimeError("Couldn't find ~/kgr/kgraft-patches")
-
self.ksrc = GitHelper(self.lp_name, self.filter, False, None)
# Total number of work items
@@ -191,14 +187,14 @@
for arch in self.get_cs_archs(cs):
# Extract modules and vmlinux files that are compressed
mod_path = Path(self.get_data_dir(arch), "lib", "modules")
- for fext, ecmd in [("zst", "unzstd --rm -f -d"), ("xz", "xz --quiet -d")]:
+ for fext, ecmd in [("zst", "unzstd -f -d"), ("xz", "xz --quiet -d -k")]:
cmd = rf'find {mod_path} -name "*ko.{fext}" -exec {ecmd} --quiet {{}} \;'
subprocess.check_output(cmd, shell=True)
# Extract all gzipped files under arch//boot, including vmlinux,
# symvers and maybe others.
vmlinux_path = Path(self.get_data_dir(arch), "boot")
- subprocess.check_output(rf'find {vmlinux_path} -name "*gz" -exec gzip -d -f {{}} \;', shell=True)
+ subprocess.check_output(rf'find {vmlinux_path} -name "*gz" -exec gzip -k -d -f {{}} \;', shell=True)
# Use the SLE .config
shutil.copy(self.get_cs_kernel_config(cs, ARCH), Path(self.get_odir(cs), ".config"))
@@ -241,21 +237,16 @@
def find_missing_symbols(self, cs, arch, lp_mod_path):
vmlinux_path = self.get_cs_boot_file(cs, "vmlinux", arch)
- vmlinux_syms = subprocess.check_output(
- ["nm", "--defined-only", str(vmlinux_path)], stderr=subprocess.STDOUT
- ).decode()
+ vmlinux_syms = self.get_all_symbols_from_object(vmlinux_path, True)
# Get list of UNDEFINED symbols from the livepatch module
- out = subprocess.check_output(["nm", "--undefined-only", str(lp_mod_path)], stderr=subprocess.STDOUT).decode()
-
- # Remove the U flag from every line
- lp_und_symbols = re.findall(r"\s+U\s([\w]+)", out)
+ lp_und_symbols = self.get_all_symbols_from_object(lp_mod_path, False)
missing_syms = []
# Find all UNDEFINED symbols that exists in the livepatch module that
# aren't defined in the vmlinux
for sym in lp_und_symbols:
- if not re.search(f" {sym}", vmlinux_syms):
+ if sym not in vmlinux_syms:
missing_syms.append(sym)
return missing_syms
@@ -278,17 +269,14 @@
cmd = f"rpm2cpio {fdest} | cpio --quiet -uidm"
subprocess.check_output(cmd, shell=True, cwd=rpm_dir)
- lp_mod_path = Path(rpm_dir, "lib", "modules", f"{self.get_cs_kernel(cs)}-{ktype}", dir_path, lp_file)
- out = subprocess.check_output(["/sbin/modinfo", str(lp_mod_path)], stderr=subprocess.STDOUT).decode()
-
# Check depends field
# At this point we found that our livepatch module depends on
# exported functions from other modules. List the modules here.
- match = re.search("depends:(.+)", out)
- if match:
- deps = match.group(1).strip()
- if len(deps):
- logging.warning(f"{cs}:{arch} has dependencies: {deps}.")
+ lp_mod_path = Path(rpm_dir, "lib", "modules", f"{self.get_cs_kernel(cs)}-{ktype}", dir_path, lp_file)
+ elffile = self.get_elf_object(lp_mod_path)
+ deps = self.get_elf_modinfo_entry(elffile, "depends")
+ if len(deps):
+ logging.warning(f"{cs}:{arch} has dependencies: {deps}.")
funcs = self.find_missing_symbols(cs, arch, lp_mod_path)
if funcs:
@@ -545,9 +533,11 @@
self.osc.packages.checkout(prj, "klp", prj_path)
+ kgraft_path = self.get_user_path('kgr_patches_dir')
+
# Get the code from codestream
subprocess.check_output(
- ["/usr/bin/git", "clone", "--single-branch", "-b", branch, str(self.kgraft_path), str(code_path)],
+ ["/usr/bin/git", "clone", "--single-branch", "-b", branch, str(kgraft_path), str(code_path)],
stderr=subprocess.STDOUT,
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klp-build-0~20240731.edfe0bf/klpbuild/ksrc.py new/klp-build-0~20240812.ad9f0e0/klpbuild/ksrc.py
--- old/klp-build-0~20240731.edfe0bf/klpbuild/ksrc.py 2024-07-31 22:46:43.000000000 +0200
+++ new/klp-build-0~20240812.ad9f0e0/klpbuild/ksrc.py 2024-08-12 22:38:35.000000000 +0200
@@ -24,9 +24,7 @@
def __init__(self, lp_name, lp_filter, kdir, data_dir):
super().__init__(lp_name, lp_filter, kdir, data_dir)
- self.kern_src = os.getenv("KLP_KERNEL_SOURCE", "")
- if self.kern_src and not Path(self.kern_src).is_dir():
- raise ValueError("KLP_KERNEL_SOURCE should point to a directory")
+ self.kern_src = self.get_user_path('kernel_src_dir', isopt=True)
self.kernel_branches = {
"12.5": "SLE12-SP5",
@@ -36,15 +34,16 @@
"15.5": "SLE15-SP5",
"15.5rt": "SLE15-SP5-RT",
"15.6": "SLE15-SP6",
+ "15.6rt": "SLE15-SP6-RT",
"cve-5.3": "cve/linux-5.3-LTSS",
"cve-5.14": "cve/linux-5.14-LTSS",
}
self.branches = []
- self.kgr_patches = Path(Path().home(), "kgr", "kgraft-patches")
- if not self.kgr_patches.is_dir():
- logging.warning("kgraft-patches does not exists in ~/kgr")
+ self.kgr_patches = self.get_user_path('kgr_patches_dir', isopt=True)
+ if not self.kgr_patches:
+ logging.warning("kgr_patches_dir not found")
else:
# Filter only the branches related to this BSC
repo = git.Repo(self.kgr_patches).branches
@@ -55,8 +54,8 @@
def get_cs_branch(self, cs):
cs_sle, sp, cs_up, rt = self.get_cs_tuple(cs)
- if not self.kgr_patches.is_dir():
- logging.warning("kgraft-patches does not exists in ~/kgr")
+ if not self.kgr_patches:
+ logging.warning("kgr_patches_dir not found")
return ""
branch_name = ""
@@ -114,8 +113,8 @@
# index 1 will be the test file
index = 2
- if not self.kgr_patches.is_dir():
- logging.warning("kgraft-patches does not exists in ~/kgr, patches will be incomplete")
+ if not self.kgr_patches:
+ logging.warning("kgr_patches_dir not found, patches will be incomplete")
# Remove dir to avoid leftover patches with different names
patches_dir = Path(self.lp_path, "patches")
@@ -192,7 +191,7 @@
def get_commits(self, cve):
if not self.kern_src:
- logging.info("KLP_KERNEL_SOURCE not defined, skip getting SUSE commits")
+ logging.info("kernel_src_dir not found, skip getting SUSE commits")
return {}
# ensure that the user informed the commits at least once per 'project'
@@ -362,7 +361,7 @@
return []
if not self.kern_src:
- logging.info("KLP_KERNEL_SOURCE not defined, skip getting SUSE commits")
+ logging.info("kernel_src_dir not found, skip getting SUSE commits")
return []
print("Searching for already patched codestreams...")
@@ -373,24 +372,33 @@
if not suse_commits:
continue
+ tag_commits = {}
+
# Grab only the first commit, since they would be put together
# in a release either way. The order of the array is backards, the
# first entry will be the last patch found.
- suse_commit = suse_commits[-1]
-
- tags = subprocess.check_output(["/usr/bin/git", "-C", self.kern_src, "tag", f"--contains={suse_commit}"])
+ for su in suse_commits:
+ tag_commits[su] = []
- for tag in tags.decode().splitlines():
- tag = tag.strip()
- if not tag.startswith("rpm-"):
- continue
-
- # Remove noise around the kernel version, like
- # rpm-5.3.18-150200.24.112--sle15-sp2-ltss-updates
- tag = tag.replace("rpm-", "")
- tag = re.sub("--.*", "", tag)
+ tags = subprocess.check_output(["/usr/bin/git", "-C", self.kern_src, "tag",
+ f"--contains={su}",
+ "rpm-*"])
+
+ for tag in tags.decode().splitlines():
+ # Remove noise around the kernel version, like
+ # rpm-5.3.18-150200.24.112--sle15-sp2-ltss-updates
+ if "--" in tag:
+ continue
- patched.append(tag)
+ tag = tag.replace("rpm-", "")
+ tag_commits.setdefault(tag, [])
+ tag_commits[tag].append(su)
+
+ # "patched branches" are those who contain all commits
+ total_commits = len(suse_commits)
+ for tag, b in tag_commits.items():
+ if len(b) == total_commits:
+ patched.append(tag)
# remove duplicates
return natsorted(list(set(patched)))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klp-build-0~20240731.edfe0bf/klpbuild/setup.py new/klp-build-0~20240812.ad9f0e0/klpbuild/setup.py
--- old/klp-build-0~20240731.edfe0bf/klpbuild/setup.py 2024-07-31 22:46:43.000000000 +0200
+++ new/klp-build-0~20240812.ad9f0e0/klpbuild/setup.py 2024-08-12 22:38:35.000000000 +0200
@@ -166,6 +166,21 @@
return f"{repo}_Products_SLERT_Update"
+ def cs_is_affected(self, cs):
+ # We can only check if the cs is affected or not if the CVE was informed
+ # (so we can get all commits related to that specific CVE). Otherwise we
+ # consider all codestreams as affected.
+ if not self.conf.get("cve", ""):
+ return True
+
+ sle, sp, up, rt = self.get_cs_tuple(cs)
+
+ to_check = f"{sle}.{sp}"
+ if rt:
+ to_check = f"{sle}.{sp}rt"
+
+ return len(self.conf["commits"][to_check]["commits"]) > 0
+
def setup_codestreams(self):
# Always get the latest supported.csv file and check the content
# against the codestreams informed by the user
@@ -185,6 +200,7 @@
# list of codestreams that matches the file-funcs argument
self.working_cs = OrderedDict()
patched_cs = []
+ unaffected_cs = []
if self.no_check:
logging.info("Option --no-check was specified, checking all codestreams that are not filtered out...")
@@ -195,9 +211,14 @@
continue
# Skip patched codestreams
- if data["kernel"] in patched_kernels and not self.no_check:
- patched_cs.append(cs)
- continue
+ if not self.no_check:
+ if data["kernel"] in patched_kernels:
+ patched_cs.append(cs)
+ continue
+
+ if not self.cs_is_affected(cs):
+ unaffected_cs.append(cs)
+ continue
data["files"] = copy.deepcopy(self.file_funcs)
data["repo"] = self.cs_repo(cs)
@@ -220,6 +241,11 @@
logging.info("Skipping already patched codestreams:")
logging.info(f'\t{" ".join(cs_list)}')
+ if unaffected_cs:
+ cs_list = utils.classify_codestreams(unaffected_cs)
+ logging.info("Skipping unaffected codestreams (missing backports):")
+ logging.info(f'\t{" ".join(cs_list)}')
+
if not self.working_cs.keys():
logging.info("All supported codestreams are already patched. Exiting klp-build")
sys.exit(0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klp-build-0~20240731.edfe0bf/setup.py new/klp-build-0~20240812.ad9f0e0/setup.py
--- old/klp-build-0~20240731.edfe0bf/setup.py 2024-07-31 22:46:43.000000000 +0200
+++ new/klp-build-0~20240812.ad9f0e0/setup.py 2024-08-12 22:38:35.000000000 +0200
@@ -24,6 +24,7 @@
"console_scripts": ["klp-build=klpbuild.main:main"],
},
install_requires=[
+ "configparser",
"cached_property",
"GitPython",
"lxml",
@@ -32,6 +33,8 @@
"natsort",
"osc-tiny",
"requests",
- "filelock"
+ "filelock",
+ "pyelftools",
+ "zstandard"
],
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klp-build-0~20240731.edfe0bf/tests/test.sh new/klp-build-0~20240812.ad9f0e0/tests/test.sh
--- old/klp-build-0~20240731.edfe0bf/tests/test.sh 2024-07-31 22:46:43.000000000 +0200
+++ new/klp-build-0~20240812.ad9f0e0/tests/test.sh 2024-08-12 22:38:35.000000000 +0200
@@ -47,28 +47,26 @@
fi
}
-# FIXME: we should take a look into it to reduce the number of lines generated
-# for:
-# lp_cve_2024_35950
-# lp_cve_2021_47378
LPS=$(cat << EOF
lp_proc_cmdline_show 105 CONFIG_PROC_FS vmlinux fs/proc/cmdline.c \
cmdline_proc_show
-lp_cve_2021_22600 640 CONFIG_UNIX af_packet net/packet/af_packet.c \
+lp_cve_2021_22600 654 CONFIG_UNIX af_packet net/packet/af_packet.c \
packet_set_ring
-lp_ipv6_route_multipath_add 700 CONFIG_IPV6 ipv6 net/ipv6/route.c \
+lp_ipv6_route_multipath_add 443 CONFIG_IPV6 ipv6 net/ipv6/route.c \
ip6_route_multipath_add
lp_cve_2024_27398 88 CONFIG_BT bluetooth net/bluetooth/sco.c \
sco_sock_timeout
-lp_cve_2024_26923 170 CONFIG_UNIX vmlinux net/unix/garbage.c \
+lp_cve_2024_26923 171 CONFIG_UNIX vmlinux net/unix/garbage.c \
unix_gc
-lp_cve_2024_35950 830 CONFIG_DRM vmlinux drivers/gpu/drm/drm_client_modeset.c \
+lp_cve_2024_35950 842 CONFIG_DRM vmlinux drivers/gpu/drm/drm_client_modeset.c \
drm_client_modeset_probe
-lp_cve_2021_47378 2832 CONFIG_NVME_RDMA nvme-rdma drivers/nvme/host/rdma.c \
+lp_cve_2021_47378 958 CONFIG_NVME_RDMA nvme-rdma drivers/nvme/host/rdma.c \
nvme_rdma_free_queue \
nvme_rdma_cm_handler
-lp_cve_2021_47402 194 CONFIG_NET_CLS_FLOWER cls_flower net/sched/cls_flower.c \
+lp_cve_2021_47402 197 CONFIG_NET_CLS_FLOWER cls_flower net/sched/cls_flower.c \
fl_walk
+lp_cve_2024_40909 155 CONFIG_BPF_SYSCALL vmlinux kernel/bpf/syscall.c \
+ bpf_link_free
EOF
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klp-build-0~20240731.edfe0bf/tests/test_ccp.py new/klp-build-0~20240812.ad9f0e0/tests/test_ccp.py
--- old/klp-build-0~20240731.edfe0bf/tests/test_ccp.py 2024-07-31 22:46:43.000000000 +0200
+++ new/klp-build-0~20240812.ad9f0e0/tests/test_ccp.py 2024-08-12 22:38:35.000000000 +0200
@@ -13,8 +13,6 @@
class CcpTesting(utils.TestUtils):
def setUp(self):
- os.environ["KLP_KERNEL_SOURCE"] = ""
-
logging.disable(logging.INFO)
def test_detect_file_without_ftrace_support(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klp-build-0~20240731.edfe0bf/tests/test_lp_setup.py new/klp-build-0~20240812.ad9f0e0/tests/test_lp_setup.py
--- old/klp-build-0~20240731.edfe0bf/tests/test_lp_setup.py 2024-07-31 22:46:43.000000000 +0200
+++ new/klp-build-0~20240812.ad9f0e0/tests/test_lp_setup.py 2024-08-12 22:38:35.000000000 +0200
@@ -14,9 +14,6 @@
class LpSetupTest(utils.TestUtils):
def setUp(self):
- # Avoid searching for patches kernels
- os.environ["KLP_KERNEL_SOURCE"] = ""
-
logging.disable(logging.INFO)
def test_missing_conf_archs(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klp-build-0~20240731.edfe0bf/tests/test_templ.py new/klp-build-0~20240812.ad9f0e0/tests/test_templ.py
--- old/klp-build-0~20240731.edfe0bf/tests/test_templ.py 2024-07-31 22:46:43.000000000 +0200
+++ new/klp-build-0~20240812.ad9f0e0/tests/test_templ.py 2024-08-12 22:38:35.000000000 +0200
@@ -13,8 +13,6 @@
class TemplTesting(utils.TestUtils):
def setUp(self):
- os.environ["KLP_KERNEL_SOURCE"] = ""
-
logging.disable(logging.INFO)
logging.disable(logging.WARNING)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package fastfetch for openSUSE:Factory checked in at 2024-08-14 14:15:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fastfetch (Old)
and /work/SRC/openSUSE:Factory/.fastfetch.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fastfetch"
Wed Aug 14 14:15:57 2024 rev:40 rq:1193796 version:2.21.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/fastfetch/fastfetch.changes 2024-08-09 16:17:04.332963150 +0200
+++ /work/SRC/openSUSE:Factory/.fastfetch.new.7232/fastfetch.changes 2024-08-14 14:16:45.257313050 +0200
@@ -1,0 +2,12 @@
+Wed Aug 14 04:30:20 UTC 2024 - Gordon Leung <pirateclip(a)protonmail.com>
+
+- update to 2.21.2
+ Features:
+ * Support --stat <num_in_ms> to display long running modules in yellow or red
+ Bugfixes:
+ * Fix bad Intel Arc GPU name and type detection (GPU, Linux)
+ * Fix uninited struct fields (GPU, Linux)
+ * Skip cpu model smbios detection on ARM platforms (CPU, Linux)
+ * Fixing detection of pthread_timedjoin_np (Linux)
+
+-------------------------------------------------------------------
Old:
----
fastfetch-2.21.1.tar.gz
New:
----
fastfetch-2.21.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fastfetch.spec ++++++
--- /var/tmp/diff_new_pack.8U8Xej/_old 2024-08-14 14:16:45.769334454 +0200
+++ /var/tmp/diff_new_pack.8U8Xej/_new 2024-08-14 14:16:45.773334621 +0200
@@ -17,7 +17,7 @@
Name: fastfetch
-Version: 2.21.1
+Version: 2.21.2
Release: 0
Summary: Neofetch-like tool written mostly in C
License: MIT
++++++ fastfetch-2.21.1.tar.gz -> fastfetch-2.21.2.tar.gz ++++++
++++ 5092 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package go1.23 for openSUSE:Factory checked in at 2024-08-14 14:15:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/go1.23 (Old)
and /work/SRC/openSUSE:Factory/.go1.23.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "go1.23"
Wed Aug 14 14:15:43 2024 rev:2 rq:1193775 version:1.23.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/go1.23/go1.23.changes 2024-07-25 11:51:28.615672768 +0200
+++ /work/SRC/openSUSE:Factory/.go1.23.new.7232/go1.23.changes 2024-08-14 14:16:33.840835804 +0200
@@ -1,0 +2,418 @@
+Tue Aug 13 16:16:34 UTC 2024 - Jeff Kowalczyk <jkowalczyk(a)suse.com>
+
+- go1.23 (released 2024-08-13) is a major release of Go.
+ go1.23.x minor releases will be provided through August 2025.
+ https://github.com/golang/go/wiki/Go-Release-Cycle
+ go1.23 arrives six months after go1.22. Most of its changes are
+ in the implementation of the toolchain, runtime, and libraries.
+ As always, the release maintains the Go 1 promise of
+ compatibility. We expect almost all Go programs to continue to
+ compile and run as before.
+ Refs boo#1229122 go1.23 release tracking
+ * Language change: Go 1.23 makes the (Go 1.22) "range-over-func"
+ experiment a part of the language. The "range" clause in a
+ "for-range" loop now accepts iterator functions of the
+ following types:
+ func(func() bool)
+ func(func(K) bool)
+ func(func(K, V) bool)
+ as range expressions. Calls of the iterator argument function
+ produce the iteration values for the "for-range" loop. For
+ details see the iter package documentation and the language
+ spec. For motivation see the 2022 "range-over-func" discussion.
+ * Language change: Go 1.23 includes preview support for generic
+ type aliases. Building the toolchain with
+ GOEXPERIMENT=aliastypeparams enables this feature within a
+ package. (Using generic alias types across package boundaries
+ is not yet supported.)
+ * Opt-in Telemetry: Starting in Go 1.23, the Go toolchain can
+ collect usage and breakage statistics that help the Go team
+ understand how the Go toolchain is used and how well it is
+ working. We refer to these statistics as Go telemetry.
+ Go telemetry is an opt-in system, controlled by the go
+ telemetry command. By default, the toolchain programs collect
+ statistics in counter files that can be inspected locally but
+ are otherwise unused (go telemetry local).
+ To help us keep Go working well and understand Go usage, please
+ consider opting in to Go telemetry by running go telemetry
+ on. In that mode, anonymous counter reports are uploaded to
+ telemetry.go.dev weekly, where they are aggregated into graphs
+ and also made available for download by any Go contributors or
+ users wanting to analyze the data. See "Go Telemetry" for more
+ details about the Go Telemetry system.
+ * go command: Setting the GOROOT_FINAL environment variable no
+ longer has an effect (#62047). Distributions that install the
+ go command to a location other than $GOROOT/bin/go should
+ install a symlink instead of relocating or copying the go
+ binary.
+ * go command: The new go env -changed flag causes the command to
+ print only those settings whose effective value differs from
+ the default value that would be obtained in an empty
+ environment with no prior uses of the -w flag.
+ * go command: The new go mod tidy -diff flag causes the command
+ not to modify the files but instead print the necessary changes
+ as a unified diff. It exits with a non-zero code if updates are
+ needed.
+ * go command: The go list -m -json command now includes new Sum
+ and GoModSum fields. This is similar to the existing behavior
+ of the go mod download -json command.
+ * go command: The new godebug directive in go.mod and go.work
+ declares a GODEBUG setting to apply for the work module or
+ workspace in use.
+ * go vet: The go vet subcommand now includes the stdversion
+ analyzer, which flags references to symbols that are too new
+ for the version of Go in effect in the referring file. (The
+ effective version is determined by the go directive in the
+ file's enclosing go.mod file, and by any //go:build constraints
+ in the file.)
+ For example, it will report a diagnostic for a reference to the
+ reflect.TypeFor function (introduced in go1.22) from a file in
+ a module whose go.mod file specifies go 1.21.
+ * cgo: cmd/cgo supports the new -ldflags flag for passing flags
+ to the C linker. The go command uses it automatically, avoiding
+ "argument list too long" errors with a very large CGO_LDFLAGS.
+ * go trace: The trace tool now better tolerates partially broken
+ traces by attempting to recover what trace data it can. This
+ functionality is particularly helpful when viewing a trace that
+ was collected during a program crash, since the trace data
+ leading up to the crash will now be recoverable under most
+ circumstances.
+ * Runtime: The traceback printed by the runtime after an
+ unhandled panic or other fatal error now indents the second and
+ subsequent lines of the error message (for example, the
+ argument to panic) by a single tab, so that it can be
+ unambiguously distinguished from the stack trace of the first
+ goroutine. See go#64590 for discussion.
+ * Compiler: The build time overhead to building with Profile
+ Guided Optimization has been reduced significantly. Previously,
+ large builds could see 100%+ build time increase from enabling
+ PGO. In Go 1.23, overhead should be in the single digit
+ percentages.
+ * Compiler: The compiler in Go 1.23 can now overlap the stack
+ frame slots of local variables accessed in disjoint regions of
+ a function, which reduces stack usage for Go applications.
+ * Compiler: For 386 and amd64, the compiler will use information
+ from PGO to align certain hot blocks in loops. This improves
+ performance an additional 1-1.5% at a cost of an additional
+ 0.1% text and binary size. This is currently only implemented
+ on 386 and amd64 because it has not shown an improvement on
+ other platforms. Hot block alignment can be disabled with
+ -gcflags=[<packages>=]-d=alignhot=0.
+ * Linker: The linker now disallows using a //go:linkname
+ directive to refer to internal symbols in the standard library
+ (including the runtime) that are not marked with //go:linkname
+ on their definitions. Similarly, the linker disallows
+ references to such symbols from assembly code. For backward
+ compatibility, existing usages of //go:linkname found in a
+ large open-source code corpus remain supported. Any new
+ references to standard library internal symbols will be
+ disallowed.
+ * Linker: A linker command line flag -checklinkname=0 can be used
+ to disable this check, for debugging and experimenting
+ purposes.
+ * Linker: When building a dynamically linked ELF binary
+ (including PIE binary), the new -bindnow flag enables immediate
+ function binding.
+ * Standard library changes:
+ * timer: 1.23 makes two significant changes to the implementation
+ of time.Timer and time.Ticker.
+ First, Timers and Tickers that are no longer referred to by the
+ program become eligible for garbage collection immediately,
+ even if their Stop methods have not been called. Earlier
+ versions of Go did not collect unstopped Timers until after
+ they had fired and never collected unstopped Tickers.
+ Second, the timer channel associated with a Timer or Ticker is
+ now unbuffered, with capacity 0. The main effect of this change
+ is that Go now guarantees that for any call to a Reset or Stop
+ method, no stale values prepared before that call will be sent
+ or received after the call. Earlier versions of Go used
+ channels with a one-element buffer, making it difficult to use
+ Reset and Stop correctly. A visible effect of this change is
+ that len and cap of timer channels now returns 0 instead of 1,
+ which may affect programs that poll the length to decide
+ whether a receive on the timer channel will succeed. Such code
+ should use a non-blocking receive instead.
+ These new behaviors are only enabled when the main Go program
+ is in a module with a go.mod go line using Go 1.23.0 or
+ later. When Go 1.23 builds older programs, the old behaviors
+ remain in effect. The new GODEBUG setting asynctimerchan=1 can
+ be used to revert back to asynchronous channel behaviors even
+ when a program names Go 1.23.0 or later in its go.mod file.
+ * unique: The new unique package provides facilities for
+ canonicalizing values (like "interning" or "hash-consing").
+ Any value of comparable type may be canonicalized with the new
+ Make[T] function, which produces a reference to a canonical
+ copy of the value in the form of a Handle[T]. Two Handle[T] are
+ equal if and only if the values used to produce the handles are
+ equal, allowing programs to deduplicate values and reduce their
+ memory footprint. Comparing two Handle[T] values is efficient,
+ reducing down to a simple pointer comparison.
+ * iter: The new iter package provides the basic definitions for
+ working with user-defined iterators.
+ * slices: The slices package adds several functions that work
+ with iterators:
+ - All returns an iterator over slice indexes and values.
+ - Values returns an iterator over slice elements.
+ - Backward returns an iterator that loops over a slice backward.
+ - Collect collects values from an iterator into a new slice.
+ - AppendSeq appends values from an iterator to an existing slice.
+ - Sorted collects values from an iterator into a new slice, and then sorts the slice.
+ - SortedFunc is like Sorted but with a comparison function.
+ - SortedStableFunc is like SortFunc but uses a stable sort algorithm.
+ - Chunk returns an iterator over consecutive sub-slices of up to n elements of a slice.
+ * maps: The maps package adds several functions that work with
+ iterators:
+ - All returns an iterator over key-value pairs from a map.
+ - Keys returns an iterator over keys in a map.
+ - Values returns an iterator over values in a map.
+ - Insert adds the key-value pairs from an iterator to an existing map.
+ - Collect collects key-value pairs from an iterator into a new map and returns it.
+ * structs: The new structs package provides types for struct
+ fields that modify properties of the containing struct type
+ such as memory layout.
+ In this release, the only such type is HostLayout which
+ indicates that a structure with a field of that type has a
+ layout that conforms to host platform expectations.
+ * Minor changes to the standard library: As always, there are
+ various minor changes and updates to the library, made with the
+ Go 1 promise of compatibility in mind.
+ * archive/tar: If the argument to FileInfoHeader implements the
+ new FileInfoNames interface, then the interface methods will be
+ used to set the Uname/Gname of the file header. This allows
+ applications to override the system-dependent Uname/Gname
+ lookup.
+ * crypto/tls: The TLS client now supports the Encrypted Client
+ Hello draft specification. This feature can be enabled by
+ setting the Config.EncryptedClientHelloConfigList field to an
+ encoded ECHConfigList for the host that is being connected to.
+ * crypto/tls: The QUICConn type used by QUIC implementations
+ includes new events reporting on the state of session
+ resumption, and provides a way for the QUIC layer to add data
+ to session tickets and session cache entries.
+ * crypto/tls: 3DES cipher suites were removed from the default
+ list used when Config.CipherSuites is nil. The default can be
+ reverted by adding tls3des=1 to the GODEBUG environment
+ variable.
+ * crypto/tls: The experimental post-quantum key exchange
+ mechanism X25519Kyber768Draft00 is now enabled by default when
+ Config.CurvePreferences is nil. The default can be reverted by
+ adding tlskyber=0 to the GODEBUG environment variable.
+ * crypto/tls: Go 1.23 changed the behavior of X509KeyPair and
+ LoadX509KeyPair to populate the Certificate.Leaf field of the
+ returned Certificate. The new x509keypairleaf GODEBUG setting
+ is added for this behavior.
+ * crypto/x509: CreateCertificateRequest now correctly supports
+ RSA-PSS signature algorithms.
+ * crypto/x509: CreateCertificateRequest and CreateRevocationList
+ now verify the generated signature using the signer's public
+ key. If the signature is invalid, an error is returned. This
+ has been the behavior of CreateCertificate since Go 1.16.
+ * crypto/x509: The x509sha1 GODEBUG setting will be removed in
+ the next Go major release (Go 1.24). This will mean that
+ crypto/x509 will no longer support verifying signatures on
+ certificates that use SHA-1 based signature algorithms.
+ * crypto/x509: The new ParseOID function parses a dot-encoded
+ ASN.1 Object Identifier string. The OID type now implements the
+ encoding.BinaryMarshaler, encoding.BinaryUnmarshaler,
+ encoding.TextMarshaler, encoding.TextUnmarshaler interfaces.
+ database/sql
+ * crypto/x509: Errors returned by driver.Valuer implementations
+ are now wrapped for improved error handling during operations
+ like DB.Query, DB.Exec, and DB.QueryRow.
+ * debug/elf: The debug/elf package now defines
+ PT_OPENBSD_NOBTCFI. This ProgType is used to disable Branch
+ Tracking Control Flow Integrity (BTCFI) enforcement on OpenBSD
+ binaries.
+ * debug/elf: Now defines the symbol type constants STT_RELC,
+ STT_SRELC, and STT_GNU_IFUNC.
+ * encoding/binary The new Encode and Decode functions are byte
+ slice equivalents to Read and Write. Append allows marshaling
+ multiple data into the same byte slice.
+ * go/ast: The new Preorder function returns a convenient iterator
+ over all the nodes of a syntax tree.
+ * go/types: The Func type, which represents a function or method
+ symbol, now has a Func.Signature method that returns the
+ function's type, which is always a Signature.
+ * go/types: The Alias type now has an Rhs method that returns the
+ type on the right-hand side of its declaration: given type A =
+ B, the Rhs of A is B. (go#66559)
+ * go/types: The methods Alias.Origin, Alias.SetTypeParams,
+ Alias.TypeParams, and Alias.TypeArgs have been added. They are
+ needed for generic alias types.
+ * go/types: By default, go/types now produces Alias type nodes
+ for type aliases. This behavior can be controlled by the
+ GODEBUG gotypesalias flag. Its default has changed from 0 in Go
+ 1.22 to 1 in Go 1.23.
+ * math/rand/v2: The Uint function and Rand.Uint method have been
+ added. They were inadvertently left out of Go 1.22.
+ * math/rand/v2: The new ChaCha8.Read method implements the
+ io.Reader interface.
+ * net: The new type KeepAliveConfig permits fine-tuning the
+ keep-alive options for TCP connections, via a new
+ TCPConn.SetKeepAliveConfig method and new KeepAliveConfig
+ fields for Dialer and ListenConfig.
+ * net: The DNSError type now wraps errors caused by timeouts or
+ cancellation. For example, errors.Is(someDNSErr,
+ context.DeadlineExceedeed) will now report whether a DNS error
+ was caused by a timeout.
+ * net: The new GODEBUG setting netedns0=0 disables sending EDNS0
+ additional headers on DNS requests, as they reportedly break
+ the DNS server on some modems.
+ * net/http: Cookie now preserves double quotes surrounding a
+ cookie value. The new Cookie.Quoted field indicates whether the
+ Cookie.Value was originally quoted.
+ * net/http: The new Request.CookiesNamed method retrieves all
+ cookies that match the given name.
+ * net/http: The new Cookie.Partitioned field identifies cookies
+ with the Partitioned attribute.
+ * net/http: The patterns used by ServeMux now allow one or more
+ spaces or tabs after the method name. Previously, only a single
+ space was permitted.
+ * net/http: The new ParseCookie function parses a Cookie header
+ value and returns all the cookies which were set in it. Since
+ the same cookie name can appear multiple times the returned
+ Values can contain more than one value for a given key.
+ * net/http: The new ParseSetCookie function parses a Set-Cookie
+ header value and returns a cookie. It returns an error on
+ syntax error.
+ * net/http: ServeContent, ServeFile, and ServeFileFS now remove
+ the Cache-Control, Content-Encoding, Etag, and Last-Modified
+ headers when serving an error. These headers usually apply to
+ the non-error content, but not to the text of errors.
+ * net/http: Middleware which wraps a ResponseWriter and applies
+ on-the-fly encoding, such as Content-Encoding: gzip, will not
+ function after this change. The previous behavior of
+ ServeContent, ServeFile, and ServeFileFS may be restored by
+ setting GODEBUG=httpservecontentkeepheaders=1.
+ Note that middleware which changes the size of the served
+ content (such as by compressing it) already does not function
+ properly when ServeContent handles a Range request. On-the-fly
+ compression should use the Transfer-Encoding header instead of
+ Content-Encoding.
+ * net/http: For inbound requests, the new Request.Pattern field
+ contains the ServeMux pattern (if any) that matched the
+ request. This field is not set when GODEBUG=httpmuxgo121=1 is
+ set.
+ * net/http/httptest: The new NewRequestWithContext method creates
+ an incoming request with a context.Context.
++++ 121 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/go1.23/go1.23.changes
++++ and /work/SRC/openSUSE:Factory/.go1.23.new.7232/go1.23.changes
Old:
----
go1.23rc1.src.tar.gz
New:
----
go1.23.0.src.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ go1.23.spec ++++++
--- /var/tmp/diff_new_pack.HUgbcs/_old 2024-08-14 14:16:34.684871088 +0200
+++ /var/tmp/diff_new_pack.HUgbcs/_new 2024-08-14 14:16:34.684871088 +0200
@@ -122,7 +122,7 @@
%endif
Name: go1.23
-Version: 1.23rc1
+Version: 1.23.0
Release: 0
Summary: A compiled, garbage-collected, concurrent programming language
License: BSD-3-Clause
@@ -410,7 +410,7 @@
# documentation and examples
# fix documetation permissions (rpmlint warning)
find doc/ misc/ -type f -exec chmod 0644 '{}' +
-# remove markdown doc source templates new in go1.23rc1
+# remove markdown doc source templates new in go1.23
# templates do not appear to be rendered markdown content
rm -rf doc/{initial,next}
# remove unwanted arch-dependant binaries (rpmlint warning)
++++++ go1.23rc1.src.tar.gz -> go1.23.0.src.tar.gz ++++++
/work/SRC/openSUSE:Factory/go1.23/go1.23rc1.src.tar.gz /work/SRC/openSUSE:Factory/.go1.23.new.7232/go1.23.0.src.tar.gz differ: char 110, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package werf for openSUSE:Factory checked in at 2024-08-14 14:15:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/werf (Old)
and /work/SRC/openSUSE:Factory/.werf.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "werf"
Wed Aug 14 14:15:36 2024 rev:7 rq:1193756 version:2.10.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/werf/werf.changes 2024-08-08 10:58:29.435847567 +0200
+++ /work/SRC/openSUSE:Factory/.werf.new.7232/werf.changes 2024-08-14 14:16:29.132638986 +0200
@@ -1,0 +2,20 @@
+Tue Aug 13 18:04:48 UTC 2024 - opensuse_buildservice(a)ojkastl.de
+
+- Update to version 2.10.2:
+ * chore: release 2.10.2
+ * fix(compose): detect werf environment variables when extends
+ functionality used
+ * chore(ci): enable docs unit test
+ * chore(ci): remove senseless profiling for e2e/integrations
+ tests
+ * test: update coverage profiling for integration tests
+ * chore(ci): enable coverage for all daily tests
+ * test(e2e, build, dockerfile): fix fixtures
+ * test(e2e, build, dockerfile): test only
+ WERF_STAGED_DOCKERFILE_VERSION=v2
+ * chore(ci): uncomment complex e2e tests
+ * fix(build, buildah, dockerfile, staged): fix panic when another
+ image is used as a base image (through dependencies)
+ * chore(channels): bump alpha
+
+-------------------------------------------------------------------
Old:
----
werf-2.10.1.obscpio
New:
----
werf-2.10.2.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ werf.spec ++++++
--- /var/tmp/diff_new_pack.WPiNco/_old 2024-08-14 14:16:30.148681460 +0200
+++ /var/tmp/diff_new_pack.WPiNco/_new 2024-08-14 14:16:30.152681628 +0200
@@ -19,7 +19,7 @@
%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
Name: werf
-Version: 2.10.1
+Version: 2.10.2
Release: 0
Summary: CLI for the Werf CI/CD system
License: Apache-2.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.WPiNco/_old 2024-08-14 14:16:30.184682965 +0200
+++ /var/tmp/diff_new_pack.WPiNco/_new 2024-08-14 14:16:30.188683132 +0200
@@ -3,7 +3,7 @@
<param name="url">https://github.com/werf/werf</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">v2.10.1</param>
+ <param name="revision">v2.10.2</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
<param name="versionrewrite-pattern">v(.*)</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.WPiNco/_old 2024-08-14 14:16:30.212684136 +0200
+++ /var/tmp/diff_new_pack.WPiNco/_new 2024-08-14 14:16:30.212684136 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/werf/werf</param>
- <param name="changesrevision">f742dd60ddff8a208f14e0d6010dfbb312d64f7f</param></service></servicedata>
+ <param name="changesrevision">e9556f34f64a46002f0359a0e3f8031bfd5eb0c5</param></service></servicedata>
(No newline at EOF)
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/werf/vendor.tar.gz /work/SRC/openSUSE:Factory/.werf.new.7232/vendor.tar.gz differ: char 5, line 1
++++++ werf-2.10.1.obscpio -> werf-2.10.2.obscpio ++++++
/work/SRC/openSUSE:Factory/werf/werf-2.10.1.obscpio /work/SRC/openSUSE:Factory/.werf.new.7232/werf-2.10.2.obscpio differ: char 50, line 1
++++++ werf.obsinfo ++++++
--- /var/tmp/diff_new_pack.WPiNco/_old 2024-08-14 14:16:30.264686310 +0200
+++ /var/tmp/diff_new_pack.WPiNco/_new 2024-08-14 14:16:30.268686477 +0200
@@ -1,5 +1,5 @@
name: werf
-version: 2.10.1
-mtime: 1723032413
-commit: f742dd60ddff8a208f14e0d6010dfbb312d64f7f
+version: 2.10.2
+mtime: 1723542234
+commit: e9556f34f64a46002f0359a0e3f8031bfd5eb0c5
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package kubectl-directpv for openSUSE:Factory checked in at 2024-08-14 14:15:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kubectl-directpv (Old)
and /work/SRC/openSUSE:Factory/.kubectl-directpv.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kubectl-directpv"
Wed Aug 14 14:15:34 2024 rev:2 rq:1193752 version:4.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/kubectl-directpv/kubectl-directpv.changes 2024-08-01 22:06:22.141266856 +0200
+++ /work/SRC/openSUSE:Factory/.kubectl-directpv.new.7232/kubectl-directpv.changes 2024-08-14 14:16:25.932505210 +0200
@@ -1,0 +2,13 @@
+Tue Aug 13 18:08:46 UTC 2024 - opensuse_buildservice(a)ojkastl.de
+
+- Update to version 4.1.0:
+ * Upgrade sidecar images (#920)
+ * Remove unsupported PodSecurityPolicy (#918)
+
+-------------------------------------------------------------------
+Tue Aug 13 18:00:58 UTC 2024 - opensuse_buildservice(a)ojkastl.de
+
+- Update to version 4.0.13:
+ * Upgrade sidecar images (#922)
+
+-------------------------------------------------------------------
Old:
----
directpv-4.0.12.obscpio
New:
----
directpv-4.1.0.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kubectl-directpv.spec ++++++
--- /var/tmp/diff_new_pack.HbYP3Q/_old 2024-08-14 14:16:27.172557049 +0200
+++ /var/tmp/diff_new_pack.HbYP3Q/_new 2024-08-14 14:16:27.176557216 +0200
@@ -1,7 +1,7 @@
#
# spec file for package kubectl-directpv
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
Name: kubectl-directpv
-Version: 4.0.12
+Version: 4.1.0
Release: 0
Summary: Kubectl plugin for the MinIO CSI driver for Direct Attached Storage
License: Apache-2.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.HbYP3Q/_old 2024-08-14 14:16:27.204558386 +0200
+++ /var/tmp/diff_new_pack.HbYP3Q/_new 2024-08-14 14:16:27.208558553 +0200
@@ -3,20 +3,22 @@
<param name="url">https://github.com/minio/directpv</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">v4.0.12</param>
+ <param name="revision">v4.1.0</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
<param name="versionrewrite-pattern">v(.*)</param>
</service>
<service name="set_version" mode="manual">
</service>
- <service name="tar" mode="buildtime"/>
+ <service name="go_modules" mode="manual">
+ <param name="archive">directpv-4.1.0.obscpio</param>
+ </service>
+ <!-- services below are running at buildtime -->
+ <service name="tar" mode="buildtime">
+ </service>
<service name="recompress" mode="buildtime">
<param name="file">*.tar</param>
<param name="compression">gz</param>
</service>
- <service name="go_modules" mode="manual">
- <param name="archive">directpv-4.0.12.obscpio</param>
- </service>
</services>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.HbYP3Q/_old 2024-08-14 14:16:27.228559390 +0200
+++ /var/tmp/diff_new_pack.HbYP3Q/_new 2024-08-14 14:16:27.232559557 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/minio/directpv</param>
- <param name="changesrevision">7d9939223470ee015a4122c8b4d0e0124feaefae</param></service></servicedata>
+ <param name="changesrevision">87975890af1ec749c2a80f989c38a506d3b78e96</param></service></servicedata>
(No newline at EOF)
++++++ directpv-4.0.12.obscpio -> directpv-4.1.0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/directpv-4.0.12/cmd/kubectl-directpv/list_volumes.go new/directpv-4.1.0/cmd/kubectl-directpv/list_volumes.go
--- old/directpv-4.0.12/cmd/kubectl-directpv/list_volumes.go 2024-07-26 06:46:33.000000000 +0200
+++ new/directpv-4.1.0/cmd/kubectl-directpv/list_volumes.go 2024-08-05 11:42:32.000000000 +0200
@@ -24,7 +24,6 @@
"github.com/jedib0t/go-pretty/v6/table"
directpvtypes "github.com/minio/directpv/pkg/apis/directpv.min.io/types"
"github.com/minio/directpv/pkg/consts"
- "github.com/minio/directpv/pkg/k8s"
"github.com/minio/directpv/pkg/types"
"github.com/minio/directpv/pkg/utils"
"github.com/spf13/cobra"
@@ -146,7 +145,7 @@
}
func getPVCName(ctx context.Context, volume types.Volume) string {
- pv, err := k8s.KubeClient().CoreV1().PersistentVolumes().Get(ctx, volume.Name, metav1.GetOptions{})
+ pv, err := adminClient.Kube().CoreV1().PersistentVolumes().Get(ctx, volume.Name, metav1.GetOptions{})
if err == nil && pv != nil && pv.Spec.ClaimRef != nil {
return pv.Spec.ClaimRef.Name
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/directpv-4.0.12/docs/installation.md new/directpv-4.1.0/docs/installation.md
--- old/directpv-4.0.12/docs/installation.md 2024-07-26 06:46:33.000000000 +0200
+++ new/directpv-4.1.0/docs/installation.md 2024-08-05 11:42:32.000000000 +0200
@@ -37,11 +37,11 @@
### Prerequisites
* Kubernetes >= v1.20 on GNU/Linux on amd64.
* If you use private registry, below images must be pushed into your registry. You could use [this helper script](tools/push-images.sh) to do that.
- - quay.io/minio/csi-node-driver-registrar:v2.8.0
- - quay.io/minio/csi-provisioner:v3.5.0 _(for Kubernetes >= v1.20)_
+ - quay.io/minio/csi-node-driver-registrar:v2.11.1
+ - quay.io/minio/csi-provisioner:v5.0.1 _(for Kubernetes >= v1.20)_
- quay.io/minio/csi-provisioner:v2.2.0-go1.18 _(for kubernetes < v1.20)_
- - quay.io/minio/livenessprobe:v2.10.0
- - quay.io/minio/csi-resizer:v1.8.0
+ - quay.io/minio/livenessprobe:v2.13.1
+ - quay.io/minio/csi-resizer:v1.11.2
- quay.io/minio/directpv:latest
* If `seccomp` is enabled, load [DirectPV seccomp profile](../seccomp.json) on nodes where you want to install DirectPV and use `--seccomp-profile` flag to `kubectl directpv install` command. For more information, refer Kubernetes documentation [here](https://kubernetes.io/docs/tutorials/clusters/seccomp/)
* If `apparmor` is enabled, load [DirectPV apparmor profile](../apparmor.profile) on nodes where you want to install DirectPV and use `--apparmor-profile` flag to `kubectl directpv install` command. For more information, refer to the [Kubernetes documentation](https://kubernetes.io/docs/tutorials/clusters/apparmor/).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/directpv-4.0.12/docs/tools/install.sh new/directpv-4.1.0/docs/tools/install.sh
--- old/directpv-4.0.12/docs/tools/install.sh 2024-07-26 06:46:33.000000000 +0200
+++ new/directpv-4.1.0/docs/tools/install.sh 2024-08-05 11:42:32.000000000 +0200
@@ -112,6 +112,10 @@
fi
}
+function is_psp_found() {
+ kubectl get --ignore-not-found=true psp directpv-min-io --no-headers -o NAME | grep -q .
+}
+
function init() {
help_flag=0
for arg in "$@"; do
@@ -165,6 +169,13 @@
echo "kubectl directpv plugin not found; please install"
exit 255
fi
+
+ if is_psp_found; then
+ echo "[WARNING] Older PodSecurityPolicy found !!!"
+ echo "[WARNING] DirectPV removed PodSecurityPolicy support as per Kubernetes supportability"
+ echo "[WARNING] This installation does not change anything related to existing PodSecurityPolicy"
+ echo "[WARNING] You can remove it manually and use Pod Security Admission as per your requirement"
+ fi
}
function wait_for_crd() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/directpv-4.0.12/docs/tools/push-images.sh new/directpv-4.1.0/docs/tools/push-images.sh
--- old/directpv-4.0.12/docs/tools/push-images.sh 2024-07-26 06:46:33.000000000 +0200
+++ new/directpv-4.1.0/docs/tools/push-images.sh 2024-08-05 11:42:32.000000000 +0200
@@ -63,11 +63,11 @@
}
function main() {
- push_image "quay.io/minio/csi-node-driver-registrar:v2.8.0"
- push_image "quay.io/minio/csi-provisioner:v3.5.0"
+ push_image "quay.io/minio/csi-node-driver-registrar:v2.11.1"
+ push_image "quay.io/minio/csi-provisioner:v5.0.1"
push_image "quay.io/minio/csi-provisioner:v2.2.0-go1.18"
- push_image "quay.io/minio/livenessprobe:v2.10.0"
- push_image "quay.io/minio/csi-resizer:v1.8.0"
+ push_image "quay.io/minio/livenessprobe:v2.13.1"
+ push_image "quay.io/minio/csi-resizer:v1.11.2"
release=$(curl -sfL "https://api.github.com/repos/minio/directpv/releases/latest" | awk '/tag_name/ { print substr($2, 3, length($2)-4) }')
push_image "quay.io/minio/directpv:v${release}"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/directpv-4.0.12/functests/multi-node-tests.sh new/directpv-4.1.0/functests/multi-node-tests.sh
--- old/directpv-4.0.12/functests/multi-node-tests.sh 2024-07-26 06:46:33.000000000 +0200
+++ new/directpv-4.1.0/functests/multi-node-tests.sh 2024-08-05 11:42:32.000000000 +0200
@@ -295,7 +295,7 @@
fi
EOF
chmod a+x "${setup_sh}"
- scp_cmd "${DIRECTPV_DIR}/CREDITS" "${DIRECTPV_DIR}/LICENSE" "${DIRECTPV_DIR}/centos.repo" "${DIRECTPV_DIR}/directpv" "${DIRECTPV_DIR}/kubectl-directpv" "${DIRECTPV_DIR}/Dockerfile" "${sleep_dockerfile}" "${setup_sh}" "root@${MASTER_VM_IP}:"
+ scp_cmd "${DIRECTPV_DIR}/CREDITS" "${DIRECTPV_DIR}/LICENSE" "${DIRECTPV_DIR}/AlmaLinux.repo" "${DIRECTPV_DIR}/directpv" "${DIRECTPV_DIR}/kubectl-directpv" "${DIRECTPV_DIR}/Dockerfile" "${sleep_dockerfile}" "${setup_sh}" "root@${MASTER_VM_IP}:"
ssh_cmd "${MASTER_VM_IP}" "./${setup_sh}"
if [ "${NODE_COUNT}" -eq 0 ]; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/directpv-4.0.12/go.mod new/directpv-4.1.0/go.mod
--- old/directpv-4.0.12/go.mod 2024-07-26 06:46:33.000000000 +0200
+++ new/directpv-4.1.0/go.mod 2024-08-05 11:42:32.000000000 +0200
@@ -14,7 +14,7 @@
github.com/freddierice/go-losetup/v2 v2.0.1
github.com/google/uuid v1.6.0
github.com/jedib0t/go-pretty/v6 v6.5.9
- github.com/kubernetes-csi/csi-lib-utils v0.16.0
+ github.com/kubernetes-csi/csi-lib-utils v0.18.1
github.com/minio/sha256-simd v1.0.1
github.com/mitchellh/go-homedir v1.1.0
github.com/prometheus/client_golang v1.19.1
@@ -24,13 +24,13 @@
golang.org/x/time v0.5.0
google.golang.org/grpc v1.65.0
gopkg.in/yaml.v3 v3.0.1
- k8s.io/api v0.28.11
- k8s.io/apiextensions-apiserver v0.28.11
- k8s.io/apimachinery v0.28.11
- k8s.io/client-go v0.28.11
+ k8s.io/api v0.30.3
+ k8s.io/apiextensions-apiserver v0.30.3
+ k8s.io/apimachinery v0.30.3
+ k8s.io/client-go v0.30.3
k8s.io/klog/v2 v2.130.1
- k8s.io/kube-openapi v0.0.0-20240709000949-962c6f1e0765
- k8s.io/pod-security-admission v0.28.11
+ k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f
+ k8s.io/pod-security-admission v0.30.3
sigs.k8s.io/yaml v1.4.0
)
@@ -105,7 +105,7 @@
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
- k8s.io/component-base v0.28.11 // indirect
+ k8s.io/component-base v0.30.3 // indirect
k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/directpv-4.0.12/go.sum new/directpv-4.1.0/go.sum
--- old/directpv-4.0.12/go.sum 2024-07-26 06:46:33.000000000 +0200
+++ new/directpv-4.1.0/go.sum 2024-08-05 11:42:32.000000000 +0200
@@ -52,7 +52,8 @@
github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=
github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ=
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
-github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=
+github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
+github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
@@ -91,8 +92,8 @@
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/kubernetes-csi/csi-lib-utils v0.16.0 h1:LXCvkhXHtFOkl7LoDqFdho/MuebccZqWxLwhKiRGiBg=
-github.com/kubernetes-csi/csi-lib-utils v0.16.0/go.mod h1:fp1Oik+45tP2o4X9SD/SBWXLTQYT9wtLxGasBE3+vBI=
+github.com/kubernetes-csi/csi-lib-utils v0.18.1 h1:vpg1kbQ6lFVCz7mY71zcqVE7W0GAQXXBoFfHvbW3gdw=
+github.com/kubernetes-csi/csi-lib-utils v0.18.1/go.mod h1:PIcn27zmbY0KBue4JDdZVfDF56tjcS3jKroZPi+pMoY=
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
@@ -130,10 +131,10 @@
github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
-github.com/onsi/ginkgo/v2 v2.9.4 h1:xR7vG4IXt5RWx6FfIjyAtsoMAtnc3C/rFXBBd2AjZwE=
-github.com/onsi/ginkgo/v2 v2.9.4/go.mod h1:gCQYp2Q+kSoIj7ykSVb9nskRSsR6PUj4AiLywzIhbKM=
-github.com/onsi/gomega v1.27.6 h1:ENqfyGeS5AX/rlXDd/ETokDz93u0YufY1Pgxuy/PvWE=
-github.com/onsi/gomega v1.27.6/go.mod h1:PIQNjfQwkP3aQAH7lf7j87O/5FiNr+ZR8+ipb+qQlhg=
+github.com/onsi/ginkgo/v2 v2.17.2 h1:7eMhcy3GimbsA3hEnVKdw/PQM9XN9krpKVXsZdph0/g=
+github.com/onsi/ginkgo/v2 v2.17.2/go.mod h1:nP2DPOQoNsQmsVyv5rDA8JkXQoCs6goXIvr/PRJ1eCc=
+github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk=
+github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0=
github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
@@ -256,22 +257,22 @@
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-k8s.io/api v0.28.11 h1:2qFr3jSpjy/9QirmlRP0LZeomexuwyRlE8CWUn9hPNY=
-k8s.io/api v0.28.11/go.mod h1:nQSGyxQ2sbS73i1zEJyaktFvFfD72z/7nU+LqxzNnXk=
-k8s.io/apiextensions-apiserver v0.28.11 h1:EbHGxLgPVupsobUhwY9kLYES0yRLn65fV/aAuW52+xo=
-k8s.io/apiextensions-apiserver v0.28.11/go.mod h1:eKJx8UVKgeaqFZWdU39Q8bNOnv21aFK55+riFdUhAJg=
-k8s.io/apimachinery v0.28.11 h1:Ovrx7IOkKSgFJn8+d5BXOC7POzP4i7kOAVlx46iRQ04=
-k8s.io/apimachinery v0.28.11/go.mod h1:zUG757HaKs6Dc3iGtKjzIpBfqTM4yiRsEe3/E7NX15o=
-k8s.io/client-go v0.28.11 h1:YHtF6Bg4/DdYHHsx6f5Ti/0giwoo19t3DbBYYmo9xks=
-k8s.io/client-go v0.28.11/go.mod h1:yi2BW8PQhFDLGmZ3WbyTJYX5J8YM6n3WUj1fvL7pJ4g=
-k8s.io/component-base v0.28.11 h1:/CyCF+Mgb737LnvJ0pHxZHKnK/OPiXtxGBr9fcE82K4=
-k8s.io/component-base v0.28.11/go.mod h1:GDfDeCmn5CKKfdqvSxFJEcyoiBYzujP2bMj1rU919Dc=
+k8s.io/api v0.30.3 h1:ImHwK9DCsPA9uoU3rVh4QHAHHK5dTSv1nxJUapx8hoQ=
+k8s.io/api v0.30.3/go.mod h1:GPc8jlzoe5JG3pb0KJCSLX5oAFIW3/qNJITlDj8BH04=
+k8s.io/apiextensions-apiserver v0.30.3 h1:oChu5li2vsZHx2IvnGP3ah8Nj3KyqG3kRSaKmijhB9U=
+k8s.io/apiextensions-apiserver v0.30.3/go.mod h1:uhXxYDkMAvl6CJw4lrDN4CPbONkF3+XL9cacCT44kV4=
+k8s.io/apimachinery v0.30.3 h1:q1laaWCmrszyQuSQCfNB8cFgCuDAoPszKY4ucAjDwHc=
+k8s.io/apimachinery v0.30.3/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc=
+k8s.io/client-go v0.30.3 h1:bHrJu3xQZNXIi8/MoxYtZBBWQQXwy16zqJwloXXfD3k=
+k8s.io/client-go v0.30.3/go.mod h1:8d4pf8vYu665/kUbsxWAQ/JDBNWqfFeZnvFiVdmx89U=
+k8s.io/component-base v0.30.3 h1:Ci0UqKWf4oiwy8hr1+E3dsnliKnkMLZMVbWzeorlk7s=
+k8s.io/component-base v0.30.3/go.mod h1:C1SshT3rGPCuNtBs14RmVD2xW0EhRSeLvBh7AGk1quA=
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
-k8s.io/kube-openapi v0.0.0-20240709000949-962c6f1e0765 h1:2ew3670P0mKVdxKUO80QfVr8yW0nL/6DeXADxguoa1g=
-k8s.io/kube-openapi v0.0.0-20240709000949-962c6f1e0765/go.mod h1:6uyuxUpeMJR3XnM2dWN/A6l46bSq43XHN2kOQG8eID0=
-k8s.io/pod-security-admission v0.28.11 h1:PmlNJFuMmjXmwiYHjBwnsFJPwtfvCDhAe0jNcQgHzIw=
-k8s.io/pod-security-admission v0.28.11/go.mod h1:GspkpEoW8Ddm/3DSnH/uURfyUYpyDhlqTWURdI7Gf2w=
+k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f h1:2sXuKesAYbRHxL3aE2PN6zX/gcJr22cjrsej+W784Tc=
+k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f/go.mod h1:UxDHUPsUwTOOxSU+oXURfFBcAS6JwiRXTYqYwfuGowc=
+k8s.io/pod-security-admission v0.30.3 h1:UDGZWR3ry/XrN/Ki/w7qrp49OwgQsKyh+6xWbexvJi8=
+k8s.io/pod-security-admission v0.30.3/go.mod h1:T1EQSOLl9YyDMnXNJfsq2jeci6uoymY0mrRkkKihd98=
k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 h1:jgGTlFYnhF1PM1Ax/lAlxUPE+KfCIXHaathvJg1C3ak=
k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/directpv-4.0.12/pkg/admin/installer/args.go new/directpv-4.1.0/pkg/admin/installer/args.go
--- old/directpv-4.0.12/pkg/admin/installer/args.go 2024-07-26 06:46:33.000000000 +0200
+++ new/directpv-4.1.0/pkg/admin/installer/args.go 2024-08-05 11:42:32.000000000 +0200
@@ -30,24 +30,25 @@
)
const (
- // csiProvisionerImage = csi-provisioner:v3.5.0
- csiProvisionerImage = "csi-provisioner@sha256:7b5c070ec70d30b0895d91b10c39a0e6cc81c18e0d1566c77aeff2a3587fa316"
- openshiftCSIProvisionerImage = "registry.redhat.io/openshift4/ose-csi-external-provisioner@sha256:778aa6e5ea046bfcd865e665679c30362dc8c00cfb33a0cdcc56b2395e8ab504"
-
+ // csiProvisionerImage = csi-provisioner:v5.0.1
+ csiProvisionerImage = "csi-provisioner@sha256:acf6e876a3fc5f367ea3ad5aeb2ce16c47b051cb853d8b2c5fb498c51166726e"
// csiProvisionerImageV2_2_0 = "csi-provisioner:v2.2.0-go1.18"
csiProvisionerImageV2_2_0 = "csi-provisioner@sha256:c185db49ba02c384633165894147f8d7041b34b173e82a49d7145e50e809b8d6"
-
- // nodeDriverRegistrarImage = csi-node-driver-registrar:v2.8.0
- nodeDriverRegistrarImage = "csi-node-driver-registrar@sha256:c805fdc166761218dc9478e7ac8e0ad0e42ad442269e75608823da3eb761e67e"
- openshiftNodeDriverRegistrarImage = "registry.redhat.io/openshift4/ose-csi-node-driver-registrar@sha256:0db5ea72a708503516f33f221848f0adaee71901769699ef5322a79e2da4f6d1"
-
- // livenessProbeImage = livenessprobe:v2.10.0
- livenessProbeImage = "livenessprobe@sha256:f3bc9a84f149cd7362e4bd0ae8cd90b26ad020c2591bfe19e63ff97aacf806c3"
- openshiftLivenessProbeImage = "registry.redhat.io/openshift4/ose-csi-livenessprobe@sha256:81f9f06a7de9a79013a4690ad616c1aff9638ab64284626491f44645a07051ec"
-
- // csiResizerImage = csi-resizer:v1.8.0
- csiResizerImage = "csi-resizer@sha256:819f68a4daf75acec336302843f303cf360d4941249f9f5019ffbb690c8ac7c0"
- openshiftCSIResizerImage = "registry.redhat.io/openshift4/ose-csi-external-resizer-rhel8@sha256:837b32a0c432123e2605ad6d029e7f3b4489d9c52a9d272c7a133d41ad10db87"
+ // nodeDriverRegistrarImage = csi-node-driver-registrar:v2.11.1
+ nodeDriverRegistrarImage = "csi-node-driver-registrar@sha256:7cd4053e52c0028bd9c711ca6de667a7c459a024679ae967c7f800e81baec0bf"
+ // livenessProbeImage = livenessprobe:v2.13.1
+ livenessProbeImage = "livenessprobe@sha256:4106724032620c7679bf065e6e11c7d841cf1d9db69c5e33514a6139681d0689"
+ // csiResizerImage = csi-resizer:v1.11.2
+ csiResizerImage = "csi-resizer@sha256:33f6fd174f2dc121c0e87176856cc36b25374737c5441bccb5b3679905df7ab9"
+
+ // openshiftCSIProvisionerImage = openshift4/ose-csi-external-provisioner-rhel8:v4.12.0-202407151105.p0.g3aa7c52.assembly.stream.el8
+ openshiftCSIProvisionerImage = "registry.redhat.io/openshift4/ose-csi-external-provisioner-rhel8@sha256:8bf8aa8975790e19ba107fd58699f98389e3fb692d192f4df3078fff7f0a4bba"
+ // openshiftNodeDriverRegistrarImage = openshift4/ose-csi-node-driver-registrar-rhel8:v4.12.0-202407151105.p0.gc316b89.assembly.stream.el8
+ openshiftNodeDriverRegistrarImage = "registry.redhat.io/openshift4/ose-csi-node-driver-registrar-rhel8@sha256:ab54e6a2e8a6a1ca2da5aaf25f784c09f5bf22ea32224ec1bdb6c564f88695a9"
+ // openshiftLivenessProbeImage = openshift4/ose-csi-livenessprobe-rhel8:v4.12.0-202407151105.p0.ge6545e7.assembly.stream.el8
+ openshiftLivenessProbeImage = "registry.redhat.io/openshift4/ose-csi-livenessprobe-rhel8@sha256:b28029f929fe2a28e666910d1acc57c3474fabdb2f9129688ef1ca56c7231d90"
+ // openshiftCSIResizerImage = openshift4/ose-csi-external-resizer-rhel8:v4.12.0-202407151105.p0.g5b066ba.assembly.stream.el8
+ openshiftCSIResizerImage = "registry.redhat.io/openshift4/ose-csi-external-resizer-rhel8@sha256:bed8de36bac80108909205342b2d92e4de5adbfa33bf13f9346236fca52a0d3e"
)
// Args represents DirectPV installation arguments.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/directpv-4.0.12/pkg/admin/installer/installer.go new/directpv-4.1.0/pkg/admin/installer/installer.go
--- old/directpv-4.0.12/pkg/admin/installer/installer.go 2024-07-26 06:46:33.000000000 +0200
+++ new/directpv-4.1.0/pkg/admin/installer/installer.go 2024-08-05 11:42:32.000000000 +0200
@@ -30,7 +30,6 @@
return []Task{
namespaceTask{client},
rbacTask{client},
- pspTask{client},
crdTask{client},
migrateTask{client, legacyClient},
csiDriverTask{client},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/directpv-4.0.12/pkg/admin/installer/psp.go new/directpv-4.1.0/pkg/admin/installer/psp.go
--- old/directpv-4.0.12/pkg/admin/installer/psp.go 2024-07-26 06:46:33.000000000 +0200
+++ new/directpv-4.1.0/pkg/admin/installer/psp.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,228 +0,0 @@
-// This file is part of MinIO DirectPV
-// Copyright (c) 2021, 2022 MinIO, Inc.
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-package installer
-
-import (
- "context"
- "errors"
-
- directpvtypes "github.com/minio/directpv/pkg/apis/directpv.min.io/types"
- "github.com/minio/directpv/pkg/client"
- "github.com/minio/directpv/pkg/consts"
- corev1 "k8s.io/api/core/v1"
- policy "k8s.io/api/policy/v1beta1"
- rbac "k8s.io/api/rbac/v1"
- apierrors "k8s.io/apimachinery/pkg/api/errors"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/runtime/schema"
-)
-
-const pspClusterRoleBindingName = "psp-" + consts.Identity
-
-var errPSPUnsupported = errors.New("pod security policy is not supported in your kubernetes version")
-
-type pspTask struct {
- client *client.Client
-}
-
-func (pspTask) Name() string {
- return "PSP"
-}
-
-func (pspTask) Start(ctx context.Context, args *Args) error {
- if !sendStartMessage(ctx, args.ProgressCh, 2) {
- return errSendProgress
- }
- return nil
-}
-
-func (pspTask) End(ctx context.Context, args *Args, err error) error {
- if !sendEndMessage(ctx, args.ProgressCh, err) {
- return errSendProgress
- }
- return nil
-}
-
-func (t pspTask) Execute(ctx context.Context, args *Args) error {
- return t.createPSP(ctx, args)
-}
-
-func (t pspTask) Delete(ctx context.Context, _ *Args) error {
- major, minor, err := t.client.K8s().GetKubeVersion()
- if err != nil {
- return err
- }
- podSecurityAdmission := (major == 1 && minor > 24)
- if podSecurityAdmission {
- return nil
- }
- return t.deletePSP(ctx)
-}
-
-func (t pspTask) createPSPClusterRoleBinding(ctx context.Context, args *Args) (err error) {
- if !sendProgressMessage(ctx, args.ProgressCh, "Creating psp cluster role binding", 2, nil) {
- return errSendProgress
- }
- defer func() {
- if err == nil {
- if !sendProgressMessage(ctx, args.ProgressCh, "Created psp cluster role binding", 2, clusterRoleBindingComponent(pspClusterRoleBindingName)) {
- err = errSendProgress
- }
- }
- }()
- crb := &rbac.ClusterRoleBinding{
- TypeMeta: metav1.TypeMeta{
- APIVersion: "rbac.authorization.k8s.io/v1",
- Kind: "ClusterRoleBinding",
- },
- ObjectMeta: metav1.ObjectMeta{
- Name: pspClusterRoleBindingName,
- Namespace: metav1.NamespaceNone,
- Annotations: map[string]string{
- string(directpvtypes.PluginVersionLabelKey): args.PluginVersion,
- },
- Labels: defaultLabels,
- },
- Subjects: []rbac.Subject{
- {
- Kind: "Group",
- APIGroup: "rbac.authorization.k8s.io",
- Name: "system:serviceaccounts:" + consts.Identity,
- },
- },
- RoleRef: rbac.RoleRef{
- APIGroup: "rbac.authorization.k8s.io",
- Kind: "ClusterRole",
- Name: consts.Identity,
- },
- }
-
- if !args.DryRun && !args.Declarative {
- _, err = t.client.Kube().RbacV1().ClusterRoleBindings().Create(ctx, crb, metav1.CreateOptions{})
- if err != nil && !apierrors.IsAlreadyExists(err) {
- return err
- }
- }
-
- return args.writeObject(crb)
-}
-
-func (t pspTask) createPodSecurityPolicy(ctx context.Context, args *Args) (err error) {
- if !sendProgressMessage(ctx, args.ProgressCh, "Creating pod security policy", 1, nil) {
- return errSendProgress
- }
- defer func() {
- if err == nil {
- if !sendProgressMessage(ctx, args.ProgressCh, "Created pod security policy", 1, podSecurityPolicyComponent(consts.Identity)) {
- err = errSendProgress
- }
- }
- }()
- psp := &policy.PodSecurityPolicy{
- TypeMeta: metav1.TypeMeta{
- APIVersion: "policy/v1beta1",
- Kind: "PodSecurityPolicy",
- },
- ObjectMeta: metav1.ObjectMeta{
- Name: consts.Identity,
- Namespace: metav1.NamespaceNone,
- Annotations: map[string]string{
- string(directpvtypes.PluginVersionLabelKey): args.PluginVersion,
- },
- Labels: defaultLabels,
- },
- Spec: policy.PodSecurityPolicySpec{
- Privileged: true,
- HostPID: true,
- HostIPC: false,
- AllowedCapabilities: []corev1.Capability{policy.AllowAllCapabilities},
- Volumes: []policy.FSType{policy.HostPath},
- AllowedHostPaths: []policy.AllowedHostPath{
- {PathPrefix: "/proc", ReadOnly: true},
- {PathPrefix: consts.SysDirVolumePath},
- {PathPrefix: consts.UdevDataDir, ReadOnly: true},
- {PathPrefix: consts.AppRootDir},
- {PathPrefix: csiDirVolumePath},
- {PathPrefix: kubeletDirPath},
- },
- SELinux: policy.SELinuxStrategyOptions{
- Rule: policy.SELinuxStrategyRunAsAny,
- },
- RunAsUser: policy.RunAsUserStrategyOptions{
- Rule: policy.RunAsUserStrategyRunAsAny,
- },
- SupplementalGroups: policy.SupplementalGroupsStrategyOptions{
- Rule: policy.SupplementalGroupsStrategyRunAsAny,
- },
- FSGroup: policy.FSGroupStrategyOptions{
- Rule: policy.FSGroupStrategyRunAsAny,
- },
- },
- }
-
- if !args.DryRun && !args.Declarative {
- _, err = t.client.Kube().PolicyV1beta1().PodSecurityPolicies().Create(
- ctx, psp, metav1.CreateOptions{},
- )
- if err != nil && !apierrors.IsAlreadyExists(err) {
- return err
- }
- }
-
- return args.writeObject(psp)
-}
-
-func (t pspTask) createPSP(ctx context.Context, args *Args) error {
- if args.podSecurityAdmission {
- return nil
- }
- var gvk *schema.GroupVersionKind
- if !args.DryRun {
- var err error
- if gvk, err = t.client.K8s().GetGroupVersionKind("policy", "PodSecurityPolicy", "v1beta1"); err != nil {
- return err
- }
- } else {
- gvk = &schema.GroupVersionKind{Version: "v1beta1"}
- }
-
- if gvk.Version == "v1beta1" {
- if err := t.createPodSecurityPolicy(ctx, args); err != nil {
- return err
- }
- return t.createPSPClusterRoleBinding(ctx, args)
- }
-
- return errPSPUnsupported
-}
-
-func (t pspTask) deletePSP(ctx context.Context) error {
- err := t.client.Kube().RbacV1().ClusterRoleBindings().Delete(
- ctx, pspClusterRoleBindingName, metav1.DeleteOptions{},
- )
- if err != nil && !apierrors.IsNotFound(err) {
- return err
- }
-
- err = t.client.Kube().PolicyV1beta1().PodSecurityPolicies().Delete(
- ctx, consts.Identity, metav1.DeleteOptions{},
- )
- if err != nil && !apierrors.IsNotFound(err) {
- return err
- }
- return nil
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/directpv-4.0.12/pkg/admin/installer/utils.go new/directpv-4.1.0/pkg/admin/installer/utils.go
--- old/directpv-4.0.12/pkg/admin/installer/utils.go 2024-07-26 06:46:33.000000000 +0200
+++ new/directpv-4.1.0/pkg/admin/installer/utils.go 2024-08-05 11:42:32.000000000 +0200
@@ -109,13 +109,6 @@
}
}
-func podSecurityPolicyComponent(name string) *Component {
- return &Component{
- Name: name,
- Kind: "PodSecurityPolicy",
- }
-}
-
func crdComponent(name string) *Component {
return &Component{
Name: name,
++++++ directpv.obsinfo ++++++
--- /var/tmp/diff_new_pack.HbYP3Q/_old 2024-08-14 14:16:27.556573102 +0200
+++ /var/tmp/diff_new_pack.HbYP3Q/_new 2024-08-14 14:16:27.560573269 +0200
@@ -1,5 +1,5 @@
name: directpv
-version: 4.0.12
-mtime: 1721969193
-commit: 7d9939223470ee015a4122c8b4d0e0124feaefae
+version: 4.1.0
+mtime: 1722850952
+commit: 87975890af1ec749c2a80f989c38a506d3b78e96
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/kubectl-directpv/vendor.tar.gz /work/SRC/openSUSE:Factory/.kubectl-directpv.new.7232/vendor.tar.gz differ: char 5, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package virt-v2v for openSUSE:Factory checked in at 2024-08-14 14:15:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/virt-v2v (Old)
and /work/SRC/openSUSE:Factory/.virt-v2v.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virt-v2v"
Wed Aug 14 14:15:27 2024 rev:18 rq:1193743 version:2.5.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/virt-v2v/virt-v2v.changes 2024-07-25 12:12:20.150316250 +0200
+++ /work/SRC/openSUSE:Factory/.virt-v2v.new.7232/virt-v2v.changes 2024-08-14 14:16:13.367979973 +0200
@@ -1,0 +2,12 @@
+Tue Aug 6 10:31:04 MDT 2024 - carnold(a)suse.com
+
+- Update to virt-v2v 2.5.6 (jsc#PED-6305)
+ * -i ova: Ignore dot-underscore-files in OVA files
+ * mlcustomize: firstboot: Use Linux path for Powershell script path
+ * mlcustomize: firstboot: Use powershell.exe instead of path
+ * mlcustomize: firstboot: Use Powershell -NoProfile flag
+ * mlcustomize: Revert delay installation of qemu-ga MSI
+ * --mac: Allow gw and len fields to be empty
+ * Debugging enhancements
+
+-------------------------------------------------------------------
Old:
----
virt-v2v-2.5.5.tar.gz
virt-v2v-2.5.5.tar.gz.sig
New:
----
virt-v2v-2.5.6.tar.gz
virt-v2v-2.5.6.tar.gz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ virt-v2v.spec ++++++
--- /var/tmp/diff_new_pack.mMYXvW/_old 2024-08-14 14:16:13.856000373 +0200
+++ /var/tmp/diff_new_pack.mMYXvW/_new 2024-08-14 14:16:13.860000540 +0200
@@ -23,7 +23,7 @@
#%global source_directory 2.4-stable
%global source_directory 2.5-development
Name: virt-v2v
-Version: 2.5.5
+Version: 2.5.6
Release: 0
Summary: Tools to convert a virtual machine to run on KVM
License: GPL-2.0-or-later
++++++ virt-v2v-2.5.5.tar.gz -> virt-v2v-2.5.6.tar.gz ++++++
/work/SRC/openSUSE:Factory/virt-v2v/virt-v2v-2.5.5.tar.gz /work/SRC/openSUSE:Factory/.virt-v2v.new.7232/virt-v2v-2.5.6.tar.gz differ: char 13, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package shotwell for openSUSE:Factory checked in at 2024-08-14 14:15:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/shotwell (Old)
and /work/SRC/openSUSE:Factory/.shotwell.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "shotwell"
Wed Aug 14 14:15:21 2024 rev:112 rq:1193724 version:0.32.8
Changes:
--------
--- /work/SRC/openSUSE:Factory/shotwell/shotwell.changes 2024-07-02 18:17:14.673164216 +0200
+++ /work/SRC/openSUSE:Factory/.shotwell.new.7232/shotwell.changes 2024-08-14 14:16:07.379729644 +0200
@@ -1,0 +2,11 @@
+Mon Aug 12 14:59:58 UTC 2024 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 0.32.8:
+ + Fix an abort if WEBP contains animation
+ + Fix expensinve DateTime comparison
+ + Fix an assert on batch importing
+ + Prevent Events being resorted on startup
+ + Prevent navigation tree being re-layouted all the time while
+ populating
+
+-------------------------------------------------------------------
Old:
----
shotwell-0.32.7.tar.xz
New:
----
shotwell-0.32.8.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ shotwell.spec ++++++
--- /var/tmp/diff_new_pack.CyqbBo/_old 2024-08-14 14:16:08.731786165 +0200
+++ /var/tmp/diff_new_pack.CyqbBo/_new 2024-08-14 14:16:08.731786165 +0200
@@ -17,7 +17,7 @@
Name: shotwell
-Version: 0.32.7
+Version: 0.32.8
Release: 0
Summary: Photo Manager for GNOME
License: LGPL-2.1-or-later
++++++ shotwell-0.32.7.tar.xz -> shotwell-0.32.8.tar.xz ++++++
/work/SRC/openSUSE:Factory/shotwell/shotwell-0.32.7.tar.xz /work/SRC/openSUSE:Factory/.shotwell.new.7232/shotwell-0.32.8.tar.xz differ: char 26, line 1
1
0