From 874fdd8a2c1cff47e82fa650f09b7cdbe8ffcd93 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 27 Sep 2022 10:57:38 -0400 Subject: [PATCH] import s390utils-2.22.0-2.el9 --- .gitignore | 2 +- .s390utils.metadata | 2 +- .../s390-tools-zipl-blscfg-rpm-nvr-sort.patch | 235 +++++++++++++++++- ...390-tools-zipl-invert-script-options.patch | 6 +- SOURCES/s390utils-2.19.0-rhel.patch | 0 SOURCES/s390utils-2.22.0-rhel.patch | 32 +++ SPECS/s390utils.spec | 88 +++++-- 7 files changed, 334 insertions(+), 31 deletions(-) delete mode 100644 SOURCES/s390utils-2.19.0-rhel.patch create mode 100644 SOURCES/s390utils-2.22.0-rhel.patch diff --git a/.gitignore b/.gitignore index 9c1cd55..35f0cd5 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/s390-tools-2.19.0.tar.gz +SOURCES/s390-tools-2.22.0.tar.gz diff --git a/.s390utils.metadata b/.s390utils.metadata index d3afc55..9162b5d 100644 --- a/.s390utils.metadata +++ b/.s390utils.metadata @@ -1 +1 @@ -5b4eeed3868297ca65b7d5720484786172dc11d1 SOURCES/s390-tools-2.19.0.tar.gz +7023dd992d5cb418cb522a62c6f8550bf3d4ec37 SOURCES/s390-tools-2.22.0.tar.gz diff --git a/SOURCES/s390-tools-zipl-blscfg-rpm-nvr-sort.patch b/SOURCES/s390-tools-zipl-blscfg-rpm-nvr-sort.patch index 2278c3f..90866f8 100644 --- a/SOURCES/s390-tools-zipl-blscfg-rpm-nvr-sort.patch +++ b/SOURCES/s390-tools-zipl-blscfg-rpm-nvr-sort.patch @@ -1,6 +1,221 @@ -diff -up s390-tools-2.9.0/zipl/src/Makefile.blscfg-rpm-nvr-sort s390-tools-2.9.0/zipl/src/Makefile ---- s390-tools-2.9.0/zipl/src/Makefile.blscfg-rpm-nvr-sort 2019-05-22 08:16:17.317273801 -0400 -+++ s390-tools-2.9.0/zipl/src/Makefile 2019-05-22 08:18:02.947273801 -0400 +From 14119148dabb7f4f633623c00eece44c5771db10 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dan=20Hor=C3=A1k?= +Date: Mon, 20 Jun 2022 17:43:05 +0200 +Subject: [PATCH 1/2] Revert "zipl/src: Implement sorting bls entries by + versions" + +This reverts commit a0dba6bfdb50ff373fa710ffe2a307cc0748f18b. +--- + zipl/src/scan.c | 139 ++---------------------------------------------- + 1 file changed, 3 insertions(+), 136 deletions(-) + +diff --git a/zipl/src/scan.c b/zipl/src/scan.c +index 0cea1d4..9352f76 100644 +--- a/zipl/src/scan.c ++++ b/zipl/src/scan.c +@@ -10,7 +10,6 @@ + * + */ + +-static const char *VERSION_KEYWORD = "version"; + + /* Need ISOC99 function isblank() in ctype.h */ + #ifndef __USE_ISOC99 +@@ -646,7 +645,7 @@ scan_file(const char* filename, struct scan_token** token) + + + static int +-bls_filter_by_names(const struct dirent *ent) ++bls_filter(const struct dirent *ent) + { + int offset = strlen(ent->d_name) - strlen(".conf"); + +@@ -656,111 +655,13 @@ bls_filter_by_names(const struct dirent *ent) + return strncmp(ent->d_name + offset, ".conf", strlen(".conf")) == 0; + } + +-struct version { +- char *line; /* pointer to a line with version keyword */ +- int offset; /* offset of version value in the line */ +-}; +- +-/* +- * Locate version in bls file represented by ENT +- */ +-static void get_version(const struct dirent *ent, struct version *v) +-{ +- char *line = NULL; +- size_t len = 0; +- char *d_name; +- FILE *stream; +- ssize_t read; +- +- memset(v, 0, sizeof(*v)); +- d_name = misc_make_path((char *)blsdir, (char *)ent->d_name); +- if (!d_name) +- return; +- +- stream = fopen(d_name, "r"); +- free(d_name); +- if (!stream) +- return; +- +- while ((read = getline(&line, &len, stream)) != -1) { +- if (line[read - 1] == '\n') { +- line[read - 1] = '\0'; +- read--; +- } +- if ((size_t)read <= strlen(VERSION_KEYWORD) + 1) +- continue; +- if (strcmp(VERSION_KEYWORD, line) > 0) +- continue; +- if (!isblank(line[strlen(VERSION_KEYWORD)])) +- continue; +- /* skip blanks */ +- v->offset = strlen(VERSION_KEYWORD) + 1; +- while (v->offset < read - 1 && isblank(line[v->offset])) +- v->offset++; +- if (isblank(line[v->offset])) +- /* +- * all characters after the keyword +- * are blanks. Invalid version +- */ +- continue; +- v->line = line; +- fclose(stream); +- return; +- } +- free(line); +- fclose(stream); +-} +- +-static void put_version(struct version *v) +-{ +- free(v->line); +-} +- +-/** +- * Check version in bls file represented by ENT. +- * Return 1 if version is valid. Otherwise return 0 +- */ +-static int bls_filter_by_versions(const struct dirent *ent) +-{ +- struct version v; +- +- if (bls_filter_by_names(ent) == 0) +- return 0; +- +- get_version(ent, &v); +- if (v.line) { +- put_version(&v); +- return 1; +- } +- return 0; +-} +- + + static int +-bls_sort_by_names(const struct dirent **ent_a, const struct dirent **ent_b) ++bls_sort(const struct dirent **ent_a, const struct dirent **ent_b) + { + return strverscmp((*ent_a)->d_name, (*ent_b)->d_name); + } + +-static int +-bls_sort_by_versions(const struct dirent **ent_a, const struct dirent **ent_b) +-{ +- struct version v1, v2; +- int ret; +- +- get_version(*ent_a, &v1); +- get_version(*ent_b, &v2); +- /* +- * Both versions are valid. +- * It is guaranteed by bls_filter_by_versions() +- */ +- ret = strverscmp(v1.line + v1.offset, v2.line + v2.offset); +- +- put_version(&v1); +- put_version(&v2); +- +- return ret; +-} + + static int + scan_append_section_heading(struct scan_token* scan, int* index, char* name); +@@ -1110,40 +1011,6 @@ scan_count_target_keywords(char* keyword[]) + return num; + } + +-static int bls_scandir(struct dirent ***bls_entries) +-{ +- struct dirent **entries1; +- struct dirent **entries2; +- int n1, n2; +- +- /* arrange by names */ +- n1 = scandir(blsdir, &entries1, +- bls_filter_by_names, bls_sort_by_names); +- if (n1 <= 0) +- return n1; +- /* arrange by versions */ +- n2 = scandir(blsdir, &entries2, +- bls_filter_by_versions, bls_sort_by_versions); +- +- if (n2 <= 0 || n2 < n1) { +- /* +- * failed to sort by versions, +- * fall back to sorting by filenames +- */ +- *bls_entries = entries1; +- while (n2--) +- free(entries2[n2]); +- free(entries2); +- return n1; +- } +- /* use arrangement by versions */ +- *bls_entries = entries2; +- while (n1--) +- free(entries1[n1]); +- free(entries1); +- return n2; +-} +- + int + scan_check_target_data(char* keyword[], int* line) + { +@@ -1464,7 +1331,7 @@ int scan_bls(struct scan_token **token, int scan_size) + if (!(stat(blsdir, &sb) == 0 && S_ISDIR(sb.st_mode))) + return 0; + +- n = bls_scandir(&bls_entries); ++ n = scandir(blsdir, &bls_entries, bls_filter, bls_sort); + if (n <= 0) + return n; + +-- +2.36.1 + + +From 661f143bb0b429c732d0ad9756c745dcb8799bc7 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Mon, 20 Jun 2022 17:46:59 +0200 +Subject: [PATCH 2/2] blscfg: sort like rpm nvr, not like a single version +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Peter Jones +Signed-off-by: Dan Horák +--- + zipl/src/Makefile | 2 +- + zipl/src/scan.c | 96 ++++++++++++++++++++++++++++++++++++++++++++++- + 2 files changed, 95 insertions(+), 3 deletions(-) + +diff --git a/zipl/src/Makefile b/zipl/src/Makefile +index 786bb7f..1adc486 100644 +--- a/zipl/src/Makefile ++++ b/zipl/src/Makefile @@ -7,7 +7,7 @@ ALL_CPPFLAGS += -I../include -I../boot \ -D_FILE_OFFSET_BITS=64 $(NO_PIE_CFLAGS) ALL_LDFLAGS += -Wl,-z,noexecstack $(NO_PIE_LDFLAGS) @@ -10,10 +225,11 @@ diff -up s390-tools-2.9.0/zipl/src/Makefile.blscfg-rpm-nvr-sort s390-tools-2.9.0 objects = misc.o error.o scan.o job.o boot.o bootmap.o fs-map.o disk.o \ bootmap_header.o envblk.o install.o zipl.o $(rootdir)/zipl/boot/data.o -diff -up s390-tools-2.9.0/zipl/src/scan.c.blscfg-rpm-nvr-sort s390-tools-2.9.0/zipl/src/scan.c ---- s390-tools-2.9.0/zipl/src/scan.c.blscfg-rpm-nvr-sort 2019-05-21 09:13:36.000000000 -0400 -+++ s390-tools-2.9.0/zipl/src/scan.c 2019-05-22 08:16:17.317273801 -0400 -@@ -33,6 +33,8 @@ +diff --git a/zipl/src/scan.c b/zipl/src/scan.c +index 9352f76..3327e2d 100644 +--- a/zipl/src/scan.c ++++ b/zipl/src/scan.c +@@ -35,6 +35,8 @@ #include "lib/util_base.h" @@ -22,7 +238,7 @@ diff -up s390-tools-2.9.0/zipl/src/scan.c.blscfg-rpm-nvr-sort s390-tools-2.9.0/z #include "boot.h" #include "error.h" #include "misc.h" -@@ -653,13 +655,103 @@ bls_filter(const struct dirent *ent) +@@ -655,13 +657,103 @@ bls_filter(const struct dirent *ent) return strncmp(ent->d_name + offset, ".conf", strlen(".conf")) == 0; } @@ -128,3 +344,6 @@ diff -up s390-tools-2.9.0/zipl/src/scan.c.blscfg-rpm-nvr-sort s390-tools-2.9.0/z static int scan_append_section_heading(struct scan_token* scan, int* index, char* name); +-- +2.36.1 + diff --git a/SOURCES/s390-tools-zipl-invert-script-options.patch b/SOURCES/s390-tools-zipl-invert-script-options.patch index 93d5cc7..d7d936f 100644 --- a/SOURCES/s390-tools-zipl-invert-script-options.patch +++ b/SOURCES/s390-tools-zipl-invert-script-options.patch @@ -61,10 +61,10 @@ index 871935c783f..d8d5eca5867 100755 ;; --) shift -diff --git a/scripts/zipl-switch-to-blscfg.1 b/scripts/zipl-switch-to-blscfg.1 +diff --git a/scripts/zipl-switch-to-blscfg.8 b/scripts/zipl-switch-to-blscfg.8 index 6bd14d00d14..71b904ffd1c 100644 ---- a/scripts/zipl-switch-to-blscfg.1 -+++ b/scripts/zipl-switch-to-blscfg.1 +--- a/scripts/zipl-switch-to-blscfg.8 ++++ b/scripts/zipl-switch-to-blscfg.8 @@ -37,9 +37,9 @@ The DIRECTORY where the BLS fragments will be generated. The directory is create The FILE used for zipl configuration file, defaults to /etc/zipl.conf. diff --git a/SOURCES/s390utils-2.19.0-rhel.patch b/SOURCES/s390utils-2.19.0-rhel.patch deleted file mode 100644 index e69de29..0000000 diff --git a/SOURCES/s390utils-2.22.0-rhel.patch b/SOURCES/s390utils-2.22.0-rhel.patch new file mode 100644 index 0000000..623ce0e --- /dev/null +++ b/SOURCES/s390utils-2.22.0-rhel.patch @@ -0,0 +1,32 @@ +From 2844d07e4bba2301fef66f56574c92054bac7cac Mon Sep 17 00:00:00 2001 +From: Steffen Eiden +Date: Mon, 25 Jul 2022 12:57:53 +0200 +Subject: [PATCH] zipl: Add missing check for a nullpointer. + +Fixes a bug that leads to a segmentation fault when no parmline is +provided. + +Fixes: 11b401b5 ("zipl: move and make check for maximum command line length dynamic") +Signed-off-by: Steffen Eiden +Reviewed-by: Marc Hartmayer +Reviewed-by: Stefan Haberland +--- + zipl/src/job.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/zipl/src/job.c b/zipl/src/job.c +index ffdc297..b5bf5b2 100644 +--- a/zipl/src/job.c ++++ b/zipl/src/job.c +@@ -790,7 +790,7 @@ check_common_ipl_data(struct job_common_ipl_data *common, const char *section, + if (!max_parm_size) + max_parm_size = LEGACY_MAXIMUM_PARMLINE_SIZE; + +- len = strlen(common->parmline); ++ len = common->parmline ? strlen(common->parmline) : 0; + if (len > max_parm_size) { + error_text("The length of the parameters line " + "(%d bytes) exceeds the allowed maximum " +-- +2.37.1 + diff --git a/SPECS/s390utils.spec b/SPECS/s390utils.spec index 3ac4191..21f1c36 100644 --- a/SPECS/s390utils.spec +++ b/SPECS/s390utils.spec @@ -3,9 +3,13 @@ %global signzipl 1 %endif +%if 0%{?fedora} +%global with_pandoc 1 +%endif + Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.19.0 +Version: 2.22.0 Release: 2%{?dist} Epoch: 2 License: MIT @@ -34,7 +38,7 @@ Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch # backported fixes -Patch100: s390utils-2.19.0-rhel.patch +Patch100: s390utils-%{version}-rhel.patch Requires: s390utils-core = %{epoch}:%{version}-%{release} Requires: s390utils-base = %{epoch}:%{version}-%{release} @@ -64,6 +68,9 @@ be used together with the zSeries (s390) Linux kernel and device drivers. %patch100 -p1 +# drop -Werror from genprotimg to allow building with GCC 12 +sed -i.bak -e 's/-Werror//g' genprotimg/src/Makefile genprotimg/boot/Makefile + # remove --strip from install find . -name Makefile | xargs sed -i 's/$(INSTALL) -s/$(INSTALL)/g' @@ -72,6 +79,9 @@ find . -name Makefile | xargs sed -i 's/$(INSTALL) -s/$(INSTALL)/g' make \ CFLAGS="%{build_cflags}" CXXFLAGS="%{build_cxxflags}" LDFLAGS="%{build_ldflags}" \ HAVE_DRACUT=1 \ +%if 0%{?with_pandoc} + ENABLE_DOC=1 \ +%endif NO_PIE_LDFLAGS="" \ BINDIR=/usr/sbin \ UDEVRUNDIR=/run/udev \ @@ -82,6 +92,9 @@ make \ %install make install \ HAVE_DRACUT=1 \ +%if 0%{?with_pandoc} + ENABLE_DOC=1 \ +%endif DESTDIR=%{buildroot} \ BINDIR=/usr/sbin \ SYSTEMDSYSTEMUNITDIR=%{_unitdir} \ @@ -149,10 +162,6 @@ install -p -m 644 %{SOURCE17} %{buildroot}%{_udevrulesdir}/81-ccw.rules # zipl.conf to be ghosted touch %{buildroot}%{_sysconfdir}/zipl.conf -# fixups -# https://bugzilla.redhat.com/show_bug.cgi?id=2024102 -chmod 755 %{buildroot}/lib/s390-tools/cpictl - %files %doc README.md @@ -203,6 +212,7 @@ This package provides minimal set of tools needed to system to boot. /lib/s390-tools/zdev-root-update /lib/s390-tools/zipl.conf %ghost %config(noreplace) %{_sysconfdir}/zipl.conf +%config(noreplace) %{_sysconfdir}/ziplenv %{_unitdir}/cpi.service %config(noreplace) %{_sysconfdir}/sysconfig/cpi /usr/lib/dracut/modules.d/95zdev/ @@ -267,6 +277,7 @@ BuildRequires: json-c-devel BuildRequires: rpm-devel BuildRequires: glib2-devel BuildRequires: libxml2-devel +BuildRequires: liblockfile-devel %description base @@ -444,6 +455,7 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_sbindir}/lstape %{_sbindir}/lszcrypt %{_sbindir}/lszfcp +%{_sbindir}/pai %{_sbindir}/qetharp %{_sbindir}/qethconf %{_sbindir}/qethqoat @@ -466,12 +478,16 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_bindir}/dump2tar %{_bindir}/genprotimg %{_bindir}/mk-s390image +%{_bindir}/pvattest +%{_bindir}/pvextract-hdr %{_bindir}/vmconvert %{_bindir}/zkey %{_bindir}/zkey-cryptsetup %{_unitdir}/dumpconf.service %ghost %config(noreplace) %{_sysconfdir}/zipl.conf %config(noreplace) %{_sysconfdir}/sysconfig/dumpconf +%{_sysconfdir}/mdevctl.d/* +/usr/lib/dracut/modules.d/99ngdump/ /lib/s390-tools/dumpconf /lib/s390-tools/lsznet.raw %dir /lib/s390-tools/zfcpdump @@ -482,13 +498,13 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %dir %{_libdir}/zkey %{_libdir}/zkey/zkey-ekmfweb.so %{_libdir}/zkey/zkey-kmip.so -%{_mandir}/man1/dbginfo.sh.1* %{_mandir}/man1/dump2tar.1* -%{_mandir}/man1/lscpumf.1* -%{_mandir}/man1/lshwc.1* +%{_mandir}/man1/genprotimg.1* +%{_mandir}/man1/pvattest.1* +%{_mandir}/man1/pvattest-create.1* +%{_mandir}/man1/pvattest-perform.1* +%{_mandir}/man1/pvattest-verify.1* %{_mandir}/man1/vmconvert.1* -%{_mandir}/man1/zfcpdbf.1* -%{_mandir}/man1/zipl-switch-to-blscfg.1* %{_mandir}/man1/zkey.1* %{_mandir}/man1/zkey-cryptsetup.1* %{_mandir}/man1/zkey-ekmfweb.1* @@ -502,14 +518,16 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_mandir}/man8/chzcrypt.8* %{_mandir}/man8/dasdstat.8* %{_mandir}/man8/dasdview.8* +%{_mandir}/man8/dbginfo.sh.8* %{_mandir}/man8/dumpconf.8* -%{_mandir}/man8/genprotimg.8.* %{_mandir}/man8/hsavmcore.8* %{_mandir}/man8/hsci.8* %{_mandir}/man8/hyptop.8* %{_mandir}/man8/lschp.8* +%{_mandir}/man8/lscpumf.8* %{_mandir}/man8/lscss.8* %{_mandir}/man8/lsdasd.8* +%{_mandir}/man8/lshwc.8* %{_mandir}/man8/lsluns.8* %{_mandir}/man8/lsqeth.8* %{_mandir}/man8/lsreipl.8* @@ -519,6 +537,7 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_mandir}/man8/lstape.8* %{_mandir}/man8/lszcrypt.8* %{_mandir}/man8/lszfcp.8* +%{_mandir}/man8/pai.8* %{_mandir}/man8/qetharp.8* %{_mandir}/man8/qethconf.8* %{_mandir}/man8/qethqoat.8* @@ -529,7 +548,9 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_mandir}/man8/vmur.8* %{_mandir}/man8/zcryptctl.8* %{_mandir}/man8/zcryptstats.8* +%{_mandir}/man8/zfcpdbf.8* %{_mandir}/man8/zgetdump.8* +%{_mandir}/man8/zipl-switch-to-blscfg.8* %{_mandir}/man8/znetconf.8* %{_mandir}/man8/zpcictl.8* %dir %{_datadir}/s390-tools @@ -737,8 +758,8 @@ fi # %package cmsfs-fuse Summary: CMS file system based on FUSE -BuildRequires: fuse-devel -Requires: fuse +BuildRequires: fuse3-devel +Requires: fuse3 Requires: glibc-gconv-extra Obsoletes: %{name}-cmsfs < 2:2.7.0-3 @@ -756,9 +777,9 @@ This package contains the CMS file system based on FUSE. # %package zdsfs Summary: z/OS data set access based on FUSE -BuildRequires: fuse-devel +BuildRequires: fuse3-devel BuildRequires: libcurl-devel -Requires: fuse +Requires: fuse3 %description zdsfs This package contains the z/OS data set access based on FUSE. @@ -772,8 +793,8 @@ This package contains the z/OS data set access based on FUSE. # %package hmcdrvfs Summary: HMC drive file system based on FUSE -BuildRequires: fuse-devel -Requires: fuse +BuildRequires: fuse3-devel +Requires: fuse3 %description hmcdrvfs This package contains a HMC drive file system based on FUSE and a tool @@ -827,6 +848,9 @@ Summary: Use multipath information for re-IPL path failover BuildRequires: make BuildRequires: bash BuildRequires: coreutils +%if 0%{?with_pandoc} +BuildRequires: pandoc +%endif BuildRequires: gawk BuildRequires: gzip BuildRequires: sed @@ -845,6 +869,9 @@ reconfigures the FCP re-IPL settings to use an operational path. %files chreipl-fcp-mpath %doc chreipl-fcp-mpath/README.md +%if 0%{?with_pandoc} +%doc chreipl-fcp-mpath/README.html +%endif %dir %{_prefix}/lib/chreipl-fcp-mpath/ %{_prefix}/lib/chreipl-fcp-mpath/* %{_prefix}/lib/dracut/dracut.conf.d/70-chreipl-fcp-mpath.conf @@ -854,6 +881,7 @@ reconfigures the FCP re-IPL settings to use an operational path. %{_prefix}/lib/udev/chreipl-fcp-mpath-record-volume-identifier %{_prefix}/lib/udev/chreipl-fcp-mpath-try-change-ipl-path %{_udevrulesdir}/70-chreipl-fcp-mpath.rules +%{_mandir}/man7/chreipl-fcp-mpath.7* # # *********************** devel package *********************** @@ -875,6 +903,30 @@ User-space development files for the s390/s390x architecture. %changelog +* Thu Aug 04 2022 Dan Horák - 2:2.22.0-2 +- zipl: Add missing check for a nullpointer (#2113884) +- Resolves: #2113884 + +* Mon Jul 11 2022 Dan Horák - 2:2.22.0-1 +- rebased to 2.22.0 (#2044205) +- add tool to persistently configure vfio-ap devices (#1870699) +- NVMe stand-alone dump support (#1878081) +- zipl: Site-aware environment block (#2044199) +- KVM: Secure Execution Attestation Userspace Tool (#2044203) +- Add new CPU-MF Counters for IBM z16 Hardware (#2047722) +- Resolves: #2044205 #1870699 #1878081 #2044199 #2044203 #2047722 + +* Tue Apr 26 2022 Dan Horák - 2:2.21.0-1 +- rebased to 2.21.0 (#2044205) +- cpictl: Suppress messages for unwritable sysfs files (#1985745) +- KVM: Secure Execution guest dump encryption with customer keys (#2044204) +- KVM: Allow long kernel command lines for Secure Execution guests (#2044197) +- zcrypt DD: Exploitation Support of new IBM Z Crypto Hardware (#2044206) +- Long Kernel Commmand Line for s390x (#2060826) +- zcryptctl support for control domains (#2076920) +- Add additional information to SCLP CPI (#2046680) +- Resolves: #2044205 #1985745 #2044204 #2044197 #2044206 #2060826 #2076920 #2046680 + * Tue Dec 14 2021 Dan Horák - 2:2.19.0-2 - update ccw udev rules for synthetic events (#2027357) - Resolves: #2027357