From ea8f5ea85288e31c0718c6833face5d61189ec03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 5 Oct 2021 10:10:21 +0000 Subject: [PATCH 01/84] - rebased to 2.18.0 --- s390-tools-zipl-blscfg-rpm-nvr-sort.patch | 4 ++-- s390utils.spec | 12 ++++++++++-- sources | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/s390-tools-zipl-blscfg-rpm-nvr-sort.patch b/s390-tools-zipl-blscfg-rpm-nvr-sort.patch index d69192f..2278c3f 100644 --- a/s390-tools-zipl-blscfg-rpm-nvr-sort.patch +++ b/s390-tools-zipl-blscfg-rpm-nvr-sort.patch @@ -8,8 +8,8 @@ diff -up s390-tools-2.9.0/zipl/src/Makefile.blscfg-rpm-nvr-sort s390-tools-2.9.0 -libs = $(rootdir)/libutil/libutil.a +libs = $(rootdir)/libutil/libutil.a -lrpmio -lrpm - objects = misc.o error.o scan.o job.o boot.o bootmap.o disk.o \ - install.o zipl.o $(rootdir)/zipl/boot/data.o + 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 diff --git a/s390utils.spec b/s390utils.spec index e9b0e0e..961083e 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -5,8 +5,8 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.17.0 -Release: 2%{?dist} +Version: 2.18.0 +Release: 1%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -181,10 +181,12 @@ This package provides minimal set of tools needed to system to boot. %{_sbindir}/fdasd %{_sbindir}/lszdev %{_sbindir}/zipl +%{_sbindir}/zipl-editenv %dir /lib/s390-tools /lib/s390-tools/{zipl,chreipl}_helper.* /lib/s390-tools/cpictl /lib/s390-tools/stage3.bin +/lib/s390-tools/zdev_id /lib/s390-tools/zdev-root-update /lib/s390-tools/zipl.conf %ghost %config(noreplace) %{_sysconfdir}/zipl.conf @@ -200,6 +202,7 @@ This package provides minimal set of tools needed to system to boot. %{_mandir}/man8/fdasd.8* %{_mandir}/man8/lszdev.8* %{_mandir}/man8/zipl.8* +%{_mandir}/man8/zipl-editenv.8* # Additional Fedora/RHEL specific stuff %ghost %config(noreplace) %{_sysconfdir}/dasd.conf @@ -219,6 +222,7 @@ This package provides minimal set of tools needed to system to boot. %{_udevrulesdir}/59-dasd.rules %{_udevrulesdir}/60-readahead.rules %{_udevrulesdir}/81-ccw.rules +%{_udevrulesdir}/81-dpm.rules %{_udevrulesdir}/90-cpi.rules %{_sysconfdir}/kernel/install.d/20-grubby.install %{_prefix}/lib/kernel/install.d/10-zfcpdump.install @@ -430,6 +434,7 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_sbindir}/qethconf %{_sbindir}/qethqoat %{_sbindir}/scsi_logging_level +%{_sbindir}/sclpdbf %{_sbindir}/start_hsnc.sh %{_sbindir}/tape390_crypt %{_sbindir}/tape390_display @@ -821,6 +826,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Tue Oct 05 2021 Dan Horák - 2:2.18.0-1 +- rebased to 2.18.0 + * Fri Jul 23 2021 Fedora Release Engineering - 2:2.17.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild diff --git a/sources b/sources index f999e3d..94bec67 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (s390-tools-2.17.0.tar.gz) = 57d1c90e2a270c380fd7b4ac8efdd301299d9e8671a7ff10747557135b27a06e8124a49f50b8729b450550ced61599f392606bcbe5e499c5bd488b9e207945da +SHA512 (s390-tools-2.18.0.tar.gz) = 498cbc55d7d84f72e9ec0f625267a26377a80f7be3bd967ec380531b6430d5ea0a192d92024ccd1f70acfe4a1c5aeaa9004110a158830972ca0a0204e7b9d328 From c69c48c992c552b1b6d764aefcb871ea1e48c123 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 21 Oct 2021 13:13:40 +0200 Subject: [PATCH 02/84] - move vmcp to core (#1931287) --- s390utils.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index 961083e..1a2b42c 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -6,7 +6,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.18.0 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -180,6 +180,7 @@ This package provides minimal set of tools needed to system to boot. %{_sbindir}/dasdinfo %{_sbindir}/fdasd %{_sbindir}/lszdev +%{_sbindir}/vmcp %{_sbindir}/zipl %{_sbindir}/zipl-editenv %dir /lib/s390-tools @@ -201,6 +202,7 @@ This package provides minimal set of tools needed to system to boot. %{_mandir}/man8/dasdinfo.8* %{_mandir}/man8/fdasd.8* %{_mandir}/man8/lszdev.8* +%{_mandir}/man8/vmcp.8* %{_mandir}/man8/zipl.8* %{_mandir}/man8/zipl-editenv.8* @@ -440,7 +442,6 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_sbindir}/tape390_display %{_sbindir}/ttyrun %{_sbindir}/tunedasd -%{_sbindir}/vmcp %{_sbindir}/vmur %{_sbindir}/xcec-bridge %{_sbindir}/zcryptctl @@ -513,7 +514,6 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_mandir}/man8/tape390_display.8* %{_mandir}/man8/ttyrun.8* %{_mandir}/man8/tunedasd.8* -%{_mandir}/man8/vmcp.8* %{_mandir}/man8/vmur.8* %{_mandir}/man8/zcryptctl.8* %{_mandir}/man8/zcryptstats.8* @@ -826,6 +826,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Wed Oct 20 2021 Dan Horák - 2:2.18.0-2 +- move vmcp to core (#1931287) + * Tue Oct 05 2021 Dan Horák - 2:2.18.0-1 - rebased to 2.18.0 From b385215dedef42d754d741d0e56efcf6013c32b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 16 Nov 2021 15:38:15 +0000 Subject: [PATCH 03/84] - rebased to 2.19.0 - cmsfs-fuse Requires glibc-gconv-extra (#2022652) --- s390utils.spec | 55 +++++++++++++++++++++++++++++++++++++++++++++++--- sources | 2 +- 2 files changed, 53 insertions(+), 4 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index 1a2b42c..35637f2 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -5,8 +5,8 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.18.0 -Release: 2%{?dist} +Version: 2.19.0 +Release: 1%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -65,9 +65,12 @@ find . -name Makefile | xargs sed -i 's/$(INSTALL) -s/$(INSTALL)/g' %build make \ - CFLAGS="%{build_cflags}" CXXFLAGS="%{build_cflags}" LDFLAGS="%{build_ldflags}" \ + CFLAGS="%{build_cflags}" CXXFLAGS="%{build_cxxflags}" LDFLAGS="%{build_ldflags}" \ + HAVE_DRACUT=1 \ + ENABLE_DOC=1 \ NO_PIE_LDFLAGS="" \ BINDIR=/usr/sbin \ + UDEVRUNDIR=/run/udev \ DISTRELEASE=%{release} \ V=1 @@ -75,9 +78,11 @@ make \ %install make install \ HAVE_DRACUT=1 \ + ENABLE_DOC=1 \ DESTDIR=%{buildroot} \ BINDIR=/usr/sbin \ SYSTEMDSYSTEMUNITDIR=%{_unitdir} \ + UDEVRUNDIR=/run/udev \ DISTRELEASE=%{release} \ V=1 @@ -727,6 +732,7 @@ fi Summary: CMS file system based on FUSE BuildRequires: fuse-devel Requires: fuse +Requires: glibc-gconv-extra Obsoletes: %{name}-cmsfs < 2:2.7.0-3 %description cmsfs-fuse @@ -806,6 +812,45 @@ getent group cpacfstats >/dev/null || groupadd -r cpacfstats %{_mandir}/man8/cpacfstatsd.8* %{_unitdir}/cpacfstatsd.service +# +# *********************** chreipl-fcp-mpath package *********************** +# +%package chreipl-fcp-mpath +Summary: Use multipath information for re-IPL path failover +BuildRequires: make +BuildRequires: bash +BuildRequires: coreutils +BuildRequires: pandoc +BuildRequires: gawk +BuildRequires: gzip +BuildRequires: sed +Requires: bash +Requires: coreutils +Requires: util-linux +Requires: systemd-udev +Requires: device-mapper-multipath +Requires: dracut + +%description chreipl-fcp-mpath +The chreipl-fcp-mpath toolset monitors udev events about paths to the re-IPL +volume. If the currently configured FCP re-IPL path becomes unavailable, the +toolset checks for operational paths to the same volume. If available, it +reconfigures the FCP re-IPL settings to use an operational path. + +%files chreipl-fcp-mpath +%doc chreipl-fcp-mpath/README.md +%doc chreipl-fcp-mpath/README.html +%dir %{_prefix}/lib/chreipl-fcp-mpath/ +%{_prefix}/lib/chreipl-fcp-mpath/* +%{_prefix}/lib/dracut/dracut.conf.d/70-chreipl-fcp-mpath.conf +%{_prefix}/lib/udev/chreipl-fcp-mpath-is-ipl-tgt +%{_prefix}/lib/udev/chreipl-fcp-mpath-is-ipl-vol +%{_prefix}/lib/udev/chreipl-fcp-mpath-is-reipl-zfcp +%{_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 *********************** # @@ -826,6 +871,10 @@ User-space development files for the s390/s390x architecture. %changelog +* Fri Nov 12 2021 Dan Horák - 2:2.19.0-1 +- rebased to 2.19.0 +- cmsfs-fuse Requires glibc-gconv-extra (#2022652) + * Wed Oct 20 2021 Dan Horák - 2:2.18.0-2 - move vmcp to core (#1931287) diff --git a/sources b/sources index 94bec67..9d62e20 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (s390-tools-2.18.0.tar.gz) = 498cbc55d7d84f72e9ec0f625267a26377a80f7be3bd967ec380531b6430d5ea0a192d92024ccd1f70acfe4a1c5aeaa9004110a158830972ca0a0204e7b9d328 +SHA512 (s390-tools-2.19.0.tar.gz) = 16c67d74e657e3c7653c7618bfcd80625991f6cc748d8c5863a891ce6148397439e2fb245d424c470d929be57baf99433f733df12db9c6eb080e746ef5ac8079 From 78ef6e86e555bc7f37021ffec698a513bd15c9e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 18 Nov 2021 12:06:45 +0000 Subject: [PATCH 04/84] fix cpictl permissions (#2024102) --- s390utils.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/s390utils.spec b/s390utils.spec index 35637f2..d10bf39 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -146,6 +146,10 @@ 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 From a48389088443301343e177356016c94adc3ef437 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Fri, 26 Nov 2021 16:49:21 +0100 Subject: [PATCH 05/84] - update ccw udev rules --- ccw.udev | 2 +- s390utils.spec | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ccw.udev b/ccw.udev index 8ef72db..c5db932 100644 --- a/ccw.udev +++ b/ccw.udev @@ -1,4 +1,4 @@ -ACTION!="bind", GOTO="ccw_end" +ACTION!="add|bind|change", GOTO="ccw_end" SUBSYSTEM!="ccw", GOTO="ccw_end" DRIVER=="ctcm|lcs|qeth", RUN+="ccw_init" LABEL="ccw_end" diff --git a/s390utils.spec b/s390utils.spec index d10bf39..20f3e8c 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -6,7 +6,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.19.0 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -875,6 +875,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Fri Nov 26 2021 Dan Horák - 2:2.19.0-2 +- update ccw udev rules + * Fri Nov 12 2021 Dan Horák - 2:2.19.0-1 - rebased to 2.19.0 - cmsfs-fuse Requires glibc-gconv-extra (#2022652) From ad7942bd0cf48a900c92d135efc4382e660acfb7 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 22 Jan 2022 00:14:49 +0000 Subject: [PATCH 06/84] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- s390utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index 20f3e8c..bde70d4 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -6,7 +6,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.19.0 -Release: 2%{?dist} +Release: 3%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -875,6 +875,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Sat Jan 22 2022 Fedora Release Engineering - 2:2.19.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Fri Nov 26 2021 Dan Horák - 2:2.19.0-2 - update ccw udev rules From 6dc91fa6eac27af012544e4ce6e0256f990fdda5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Mon, 7 Feb 2022 09:53:18 +0000 Subject: [PATCH 07/84] - rebased to 2.20.0 - switch to fuse3 --- s390utils.spec | 37 +++++++++++++++++++++++++++++-------- sources | 2 +- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index bde70d4..c5a82fe 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -3,10 +3,14 @@ %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 -Release: 3%{?dist} +Version: 2.20.0 +Release: 1%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -59,6 +63,9 @@ be used together with the zSeries (s390) Linux kernel and device drivers. %patch0 -p1 -b .zipl-invert-script-options %patch1 -p1 -b .blscfg-rpm-nvr-sort +# 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' @@ -67,7 +74,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 \ @@ -78,7 +87,9 @@ make \ %install make install \ HAVE_DRACUT=1 \ +%if 0%{?with_pandoc} ENABLE_DOC=1 \ +%endif DESTDIR=%{buildroot} \ BINDIR=/usr/sbin \ SYSTEMDSYSTEMUNITDIR=%{_unitdir} \ @@ -734,8 +745,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 @@ -753,9 +764,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. @@ -769,8 +780,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 @@ -824,7 +835,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 @@ -843,7 +856,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 @@ -853,7 +868,9 @@ 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 +%if 0%{?with_pandoc} %{_mandir}/man7/chreipl-fcp-mpath.7* +%endif # # *********************** devel package *********************** @@ -875,6 +892,10 @@ User-space development files for the s390/s390x architecture. %changelog +* Mon Feb 07 2022 Dan Horák - 2:2.20.0-1 +- rebased to 2.20.0 +- switch to fuse3 + * Sat Jan 22 2022 Fedora Release Engineering - 2:2.19.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild diff --git a/sources b/sources index 9d62e20..9d4a776 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (s390-tools-2.19.0.tar.gz) = 16c67d74e657e3c7653c7618bfcd80625991f6cc748d8c5863a891ce6148397439e2fb245d424c470d929be57baf99433f733df12db9c6eb080e746ef5ac8079 +SHA512 (s390-tools-2.20.0.tar.gz) = 88eaeb52a4e75099434868d2a11d9fa559002f6291f8a2d373223a8c349ed3716a769256933b9ac57a09f2b5570c855462844385795c9ab9eebf9d184e7b175f From a2cb8e5beba0b26eabeac96f5ecb49f2411b0ee3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Fri, 22 Apr 2022 13:27:04 +0000 Subject: [PATCH 08/84] - rebased to 2.21.0 --- s390utils.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index c5a82fe..8d9f339 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -9,7 +9,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.20.0 +Version: 2.21.0 Release: 1%{?dist} Epoch: 2 License: MIT @@ -892,6 +892,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Fri Apr 22 2022 Dan Horák - 2:2.21.0-1 +- rebased to 2.21.0 + * Mon Feb 07 2022 Dan Horák - 2:2.20.0-1 - rebased to 2.20.0 - switch to fuse3 diff --git a/sources b/sources index 9d4a776..f3ddb38 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (s390-tools-2.20.0.tar.gz) = 88eaeb52a4e75099434868d2a11d9fa559002f6291f8a2d373223a8c349ed3716a769256933b9ac57a09f2b5570c855462844385795c9ab9eebf9d184e7b175f +SHA512 (s390-tools-2.21.0.tar.gz) = 3f37e2c58cc2b7cdb4c7e51b0344e190cd5c6551ee310c6602238e2eeba0a29c6b95a3b20a582e6b4c4654108f9426ebc6b56c8a2f923a2539830b3e5341b5ca From 1c936472933d50bb61b3d4e5ab46c064718f9afa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 26 Apr 2022 11:15:46 +0200 Subject: [PATCH 09/84] Revert "fix cpictl permissions (#2024102)" This reverts commit 78ef6e86e555bc7f37021ffec698a513bd15c9e7. --- s390utils.spec | 4 ---- 1 file changed, 4 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index 8d9f339..122d470 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -157,10 +157,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 From f7710610d866a21da0bf6a07068494d5729e39b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 26 Apr 2022 11:47:55 +0200 Subject: [PATCH 10/84] chreipl-fcp-mpath man page is distributed pregenerated --- s390utils.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index 122d470..79fbccc 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -864,9 +864,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 -%if 0%{?with_pandoc} %{_mandir}/man7/chreipl-fcp-mpath.7* -%endif # # *********************** devel package *********************** From cc536faf67c5c1a363a5eb9ceda6161e0e6cc6e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 31 May 2022 11:53:12 +0000 Subject: [PATCH 11/84] - do not fail on emtpy /proc/cmdline when installing kernel (#1899759) --- 20-zipl-kernel.install | 6 ------ 52-zipl-rescue.install | 6 ------ s390utils.spec | 5 ++++- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/20-zipl-kernel.install b/20-zipl-kernel.install index 3487aa2..4fadd1d 100755 --- a/20-zipl-kernel.install +++ b/20-zipl-kernel.install @@ -88,12 +88,6 @@ case "$COMMAND" in done fi - if ! [[ ${BOOT_OPTIONS[*]} ]]; then - echo "Could not determine the kernel command line parameters." >&2 - echo "Please specify the kernel command line in /etc/kernel/cmdline!" >&2 - exit 1 - fi - [[ -d "$BLS_DIR" ]] || mkdir -m 0700 -p "$BLS_DIR" BLS_TARGET="${BLS_DIR}/${MACHINE_ID}-${KERNEL_VERSION}.conf" if [[ -f "${KERNEL_DIR}/bls.conf" ]]; then diff --git a/52-zipl-rescue.install b/52-zipl-rescue.install index dbf0c1b..8acfbe0 100755 --- a/52-zipl-rescue.install +++ b/52-zipl-rescue.install @@ -29,12 +29,6 @@ case "$COMMAND" in done fi - if ! [[ ${BOOT_OPTIONS[*]} ]]; then - echo "Could not determine the kernel command line parameters." >&2 - echo "Please specify the kernel command line in /etc/kernel/cmdline!" >&2 - exit 1 - fi - BLS_RESCUE="${BLS_DIR}/${MACHINE_ID}-0-rescue.conf" if [[ -f "${BLS_RESCUE}" ]] && grep -q '^options.*$kernelopts' "${BLS_RESCUE}"; then sed -i -e "s,^linux.*,linux /boot/vmlinuz-0-rescue-${MACHINE_ID},g" "${BLS_RESCUE}" diff --git a/s390utils.spec b/s390utils.spec index 79fbccc..d85d6b5 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -10,7 +10,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.21.0 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -886,6 +886,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Tue May 31 2022 Dan Horák - 2:2.21.0-2 +- do not fail on emtpy /proc/cmdline when installing kernel (#1899759) + * Fri Apr 22 2022 Dan Horák - 2:2.21.0-1 - rebased to 2.21.0 From ca6b193ac3a17e32a89d7271f999e7a522fd29be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Mon, 27 Jun 2022 10:20:07 +0000 Subject: [PATCH 12/84] - rebased to 2.22.0 --- s390-tools-zipl-blscfg-rpm-nvr-sort.patch | 235 +++++++++++++++++++- s390-tools-zipl-invert-script-options.patch | 6 +- s390utils.spec | 30 ++- sources | 2 +- 4 files changed, 253 insertions(+), 20 deletions(-) diff --git a/s390-tools-zipl-blscfg-rpm-nvr-sort.patch b/s390-tools-zipl-blscfg-rpm-nvr-sort.patch index 2278c3f..90866f8 100644 --- a/s390-tools-zipl-blscfg-rpm-nvr-sort.patch +++ b/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/s390-tools-zipl-invert-script-options.patch b/s390-tools-zipl-invert-script-options.patch index 93d5cc7..d7d936f 100644 --- a/s390-tools-zipl-invert-script-options.patch +++ b/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/s390utils.spec b/s390utils.spec index d85d6b5..af6a52d 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -9,8 +9,8 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.21.0 -Release: 2%{?dist} +Version: 2.22.0 +Release: 1%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -207,6 +207,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/ @@ -448,6 +449,7 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_sbindir}/lstape %{_sbindir}/lszcrypt %{_sbindir}/lszfcp +%{_sbindir}/pai %{_sbindir}/qetharp %{_sbindir}/qethconf %{_sbindir}/qethqoat @@ -470,12 +472,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 @@ -486,13 +492,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* @@ -506,14 +512,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* @@ -523,6 +531,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* @@ -533,7 +542,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 @@ -886,6 +897,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Mon Jun 20 2022 Dan Horák - 2:2.22.0-1 +- rebased to 2.22.0 + * Tue May 31 2022 Dan Horák - 2:2.21.0-2 - do not fail on emtpy /proc/cmdline when installing kernel (#1899759) diff --git a/sources b/sources index f3ddb38..0d0a345 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (s390-tools-2.21.0.tar.gz) = 3f37e2c58cc2b7cdb4c7e51b0344e190cd5c6551ee310c6602238e2eeba0a29c6b95a3b20a582e6b4c4654108f9426ebc6b56c8a2f923a2539830b3e5341b5ca +SHA512 (s390-tools-2.22.0.tar.gz) = ac613cddd6d85191f874d8d9eb014b9edc00868f7432a7ac057db0f7011d3ab3371b58a3881d78726e17c8e416d486e6fffb64264d5500abcaabcd56d9f181f6 From 6f524eab5a2960a72983d87c446ea857c933490d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Mon, 27 Jun 2022 11:49:35 +0000 Subject: [PATCH 13/84] add missing BR --- s390utils.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/s390utils.spec b/s390utils.spec index af6a52d..23ae596 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -272,6 +272,7 @@ BuildRequires: json-c-devel BuildRequires: rpm-devel BuildRequires: glib2-devel BuildRequires: libxml2-devel +BuildRequires: liblockfile-devel %description base From a7424a8ff05119b5d88a4b66c5912bba8e27e729 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 23 Jul 2022 07:54:12 +0000 Subject: [PATCH 14/84] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- s390utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index 23ae596..eecbb2f 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -10,7 +10,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.22.0 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -898,6 +898,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Sat Jul 23 2022 Fedora Release Engineering - 2:2.22.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Mon Jun 20 2022 Dan Horák - 2:2.22.0-1 - rebased to 2.22.0 From 473c14c9ab2f948964f7be7d7214fd7688e15b6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Fri, 19 Aug 2022 09:04:27 +0000 Subject: [PATCH 15/84] - rebased to 2.23.0 --- s390utils.spec | 10 ++++++---- sources | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index eecbb2f..2d30444 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -9,8 +9,8 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.22.0 -Release: 2%{?dist} +Version: 2.23.0 +Release: 1%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -79,7 +79,6 @@ make \ %endif NO_PIE_LDFLAGS="" \ BINDIR=/usr/sbin \ - UDEVRUNDIR=/run/udev \ DISTRELEASE=%{release} \ V=1 @@ -93,7 +92,6 @@ make install \ DESTDIR=%{buildroot} \ BINDIR=/usr/sbin \ SYSTEMDSYSTEMUNITDIR=%{_unitdir} \ - UDEVRUNDIR=/run/udev \ DISTRELEASE=%{release} \ V=1 @@ -811,6 +809,7 @@ Requires(preun): systemd Requires(postun): systemd Requires(pre): shadow-utils BuildRequires: systemd +BuildRequires: systemd-devel %description cpacfstatsd The cpacfstats tools provide a client/server application set to monitor @@ -898,6 +897,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Fri Aug 19 2022 Dan Horák - 2:2.23.0-1 +- rebased to 2.23.0 + * Sat Jul 23 2022 Fedora Release Engineering - 2:2.22.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild diff --git a/sources b/sources index 0d0a345..3c71431 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (s390-tools-2.22.0.tar.gz) = ac613cddd6d85191f874d8d9eb014b9edc00868f7432a7ac057db0f7011d3ab3371b58a3881d78726e17c8e416d486e6fffb64264d5500abcaabcd56d9f181f6 +SHA512 (s390-tools-2.23.0.tar.gz) = 839ea737db0bbfb2c726c757867e5d38b771282aa3484b90c3cc6376efa6c564874fe62879dccc8c5547a768e29aa5389ecf20d244574c5479887504addaee3b From af41c81d1b7316b1faf7cec697d5c41b2809b483 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 10 Nov 2022 16:45:34 +0000 Subject: [PATCH 16/84] - rebased to 2.24.0 --- s390utils.spec | 6 ++++-- sources | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index 2d30444..9328bd5 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -9,7 +9,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.23.0 +Version: 2.24.0 Release: 1%{?dist} Epoch: 2 License: MIT @@ -270,7 +270,6 @@ BuildRequires: json-c-devel BuildRequires: rpm-devel BuildRequires: glib2-devel BuildRequires: libxml2-devel -BuildRequires: liblockfile-devel %description base @@ -897,6 +896,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Thu Nov 10 2022 Dan Horák - 2:2.24.0-1 +- rebased to 2.24.0 + * Fri Aug 19 2022 Dan Horák - 2:2.23.0-1 - rebased to 2.23.0 diff --git a/sources b/sources index 3c71431..0c54d2e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (s390-tools-2.23.0.tar.gz) = 839ea737db0bbfb2c726c757867e5d38b771282aa3484b90c3cc6376efa6c564874fe62879dccc8c5547a768e29aa5389ecf20d244574c5479887504addaee3b +SHA512 (s390-tools-2.24.0.tar.gz) = 5c681a031c2bab0ab167623ad08da67bfd236e4892f8a5de813ebfbbc1c60a842f0954bcbca6d2f6ab125ee089b2b5dcbfbb24152bcdde3401810232e21460f4 From bef2b35dc932fb71175b783fa2e1309922e01674 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 22 Nov 2022 17:35:10 +0000 Subject: [PATCH 17/84] - update for Transparent DASD PPRC (Peer-to-Peer Remote Copy) handling --- s390utils-2.24.0-fedora.patch | 1665 +++++++++++++++++++++++++++++++++ s390utils.spec | 11 +- 2 files changed, 1675 insertions(+), 1 deletion(-) create mode 100644 s390utils-2.24.0-fedora.patch diff --git a/s390utils-2.24.0-fedora.patch b/s390utils-2.24.0-fedora.patch new file mode 100644 index 0000000..c03075c --- /dev/null +++ b/s390utils-2.24.0-fedora.patch @@ -0,0 +1,1665 @@ +From 5107a7be16e4849fbda7beae0504fdbc0f2cb4b5 Mon Sep 17 00:00:00 2001 +From: Stefan Haberland +Date: Tue, 9 Aug 2022 13:12:26 +0200 +Subject: [PATCH 1/7] zconf/lsdasd: fix Copy Pair related output +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fix the default output for copy pair secondary devices to not show +a faulty blockdevice entry and major:minor combination. + +The new output looks like: + + # lsdasd + Bus-ID Status Name Device Type BlkSz Size Blocks + ================================================================================ + 0.0.9740 secondary ECKD + 0.0.9741 secondary ECKD + 0.0.9742 secondary ECKD + 0.0.e964 active dasda 94:0 ECKD 4096 21129MB 5409180 + 0.0.e967 active dasdb 94:4 ECKD 4096 21129MB 5409180 + 0.0.9330 active dasdc 94:8 ECKD 4096 782MB 200340 + 0.0.9700 active dasdd 94:12 ECKD 4096 782MB 200340 + 0.0.9701 active dasdf 94:20 ECKD 4096 782MB 200340 + 0.0.9702 active dasdh 94:28 ECKD 4096 782MB 200340 + +Also add copy_pairs to extended output: + + # lsdasd -l 9700 + 0.0.9700/dasdd/94:12 + status: active + type: ECKD + blksz: 4096 + size: 782MB + blocks: 200340 + extent_size: 1113 + logical_capacity: 1113 + space_allocated: 1113 + use_diag: 0 + readonly: 0 + eer_enabled: 0 + erplog: 0 + hpf: 1 + uid: IBM.750000000ABT31.9700.00 + fc_security: Unsupported + paths_installed: 38 39 3a 3b + paths_in_use: 38 39 3a 3b + paths_non_preferred: + paths_invalid_cabling: + paths_cuir_quiesced: + paths_invalid_hpf_characteristics: + paths_error_threshold_exceeded: + copy_pairs: 0.0.9700,0.0.9740 0.0.9700,0.0.9743 0.0.9700,0.0.9744 0.0.9700,0.0.9745 + +Signed-off-by: Stefan Haberland +Reviewed-by: Jan Hoeppner +Signed-off-by: Jan Höppner +--- + zconf/lsdasd | 113 +++++++++++++++++++++++++++++++++++++++++++-------- + 1 file changed, 96 insertions(+), 17 deletions(-) + +diff --git a/zconf/lsdasd b/zconf/lsdasd +index 795b33b..8b2cc0f 100755 +--- a/zconf/lsdasd ++++ b/zconf/lsdasd +@@ -146,6 +146,62 @@ function findDASDDebugfsDirectorie() { + fi + } + ++#------------------------------------------------------------------------------ ++# The blockpath can usually be found over the DEVPATH ++# In case of a swapped Copy Pair device the blockdev is likely associated ++# with one of the secondary devices ++# this function checks if the blockdev is associated with the primary device ++# and if not search for it in the secondary device list ++#------------------------------------------------------------------------------ ++function setCorrectBlockPath() { ++ local DRIVERECKD="$SYSFSDIR/bus/ccw/drivers/dasd-eckd/" ++ local DRIVERFBA="$SYSFSDIR/bus/ccw/drivers/dasd-fba/" ++ local SEARCHDIRS= ++ local SEARCHLIST= ++ ++ if [[ "$COPYROLE" == "none" ]] || [[ -d "$DEVPATH/block" ]]; then ++ BLOCKPATH="$DEVPATH"/block/dasd* ++ return ++ fi ++ ++ if [[ -d "$DRIVERECKD" ]]; then ++ SEARCHDIRS="$DRIVERECKD" ++ fi ++ if [[ -d "$DRIVERFBA" ]]; then ++ SEARCHDIRS="$SEARCHDIRS $DRIVERFBA" ++ fi ++ ++ SEARCHLIST=$(echo $SECONDARY_LIST | sed 's/,/ /g') ++ for SEARCHDEV in $SEARCHLIST ++ do ++ if [[ -n "$SEARCHDIRS" ]]; then ++ PRIM_DEVPATH=$(find $SEARCHDIRS -type l -name $SEARCHDEV \ ++ -printf "%h/%l\n" 2> /dev/null) ++ if [[ -d "$PRIM_DEVPATH/block" ]]; then ++ break ++ fi ++ else ++ # The above paths may become invalid in the future, so we keep the ++ # following query as backup: ++ PRIM_DEVPATH=$(find "$SYSFSDIR/devices" -type l -name $SEARCHDEV \ ++ "driver" -lname "*/dasd*" -printf "%h\n" \ ++ 2> /dev/null) ++ fi ++ done ++ ++ BLOCKPATH="$PRIM_DEVPATH"/block/dasd* ++} ++ ++#------------------------------------------------------------------------------ ++# gather Copy Pair related data ++#------------------------------------------------------------------------------ ++function gatherCopyPairData() { ++ read COPYPAIR 2> /dev/null < $DEVPATH/copy_pair ++ PRIMARY_UID=`echo $COPYPAIR | cut -d " " -f1 | cut -d "," -f1` ++ COPYPAIR=`echo "$COPYPAIR" | sed 's/ /,/g' | sed 's/^,//' ` ++ SECONDARY_LIST=`echo ${COPYPAIR//$PRIMARY_UID","/} ` ++} ++ + #------------------------------------------------------------------------------ + # gather device data and call appropriate output function + #------------------------------------------------------------------------------ +@@ -165,16 +221,18 @@ function gatherDeviceData() { + read READONLY 2> /dev/null < $DEVPATH/readonly || continue + read DISCIPLINE 2> /dev/null < $DEVPATH/discipline || continue + read ESE 2> /dev/null < $DEVPATH/ese ++ read COPYROLE 2> /dev/null < $DEVPATH/copy_role + ++ if [[ "$COPYROLE" != "none" ]]; then ++ gatherCopyPairData ++ fi + # Block device specific information is only available for + # devices that are online and not a PAV alias +- if [[ ! "$ONLINE" == 0 ]] && [[ ! "$ALIAS" == 1 ]]; then +- #find device Path to the block device +- if [[ -d "$DEVPATH/block" ]]; then +- set - "$DEVPATH"/block/dasd* +- else +- set - "$DEVPATH"/block:dasd* +- fi ++ if [[ ! "$ONLINE" == 0 ]] && [[ ! "$ALIAS" == 1 ]] && ++ [[ ! "$COPYROLE" == "secondary" ]]; then ++ #find device Path to the block device ++ setCorrectBlockPath ++ set - $BLOCKPATH + MAJMIN= + MAJOR= + MINOR= +@@ -194,10 +252,12 @@ function gatherDeviceData() { + fi + fi + else +- # BLOCKNAME for offline and alias devices will not be +- # printed, it's just a key for sorting ++ # BLOCKNAME for offline, alias and secondary devices ++ # will not be printed, it's just a key for sorting + if [[ "$ONLINE" == 0 ]]; then + BLOCKNAME="" ++ elif [[ "$COPYROLE" == "secondary" ]]; then ++ BLOCKNAME="b" + else + BLOCKNAME="a" + fi +@@ -261,6 +321,15 @@ function newoutput() + return + fi + ++ if [[ "$COPYROLE" == "secondary" ]]; then ++ printf "%s:%s:%-8s secondary %-8s %13s\n" \ ++ "$SORTKEYLEN" "$SORTKEY" \ ++ "$BUSID" \ ++ "$PRIMARY_BLOCKNAME" \ ++ "$DISCIPLINE" ++ return ++ fi ++ + if [[ "$READONLY" == 0 ]]; then + ROSTRING="" + else +@@ -519,10 +588,14 @@ function extended() + "${HPF_PATHS[@]}" \ + "${IFCC_PATHS[@]}" ; + return +- elif [[ "$ALIAS" == 1 ]]; then +- if [[ "$BASEONLY" == "false" ]]; then +- ACTIVE="alias" +- printf "%s:%s:%s# status:\t\t\t\t%s# type: \t\t\t\t%s# use_diag:\t\t\t\t%s# readonly:\t\t\t\t%s# eer_enabled:\t\t\t\t%s# erplog:\t\t\t\t%s# hpf:\t\t\t\t\t%s # uid: \t\t\t\t%s# fc_security: \t\t\t\t%s# paths_installed: \t\t\t%s %s %s %s %s %s %s %s# paths_in_use: \t\t\t%s %s %s %s %s %s %s %s# paths_non_preferred: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_cabling: \t\t%s %s %s %s %s %s %s %s# paths_cuir_quiesced: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_hpf_characteristics: \t%s %s %s %s %s %s %s %s# paths_error_threshold_exceeded: \t%s %s %s %s %s %s %s %s#\n" \ ++ elif [[ "$ALIAS" == 1 ]] || [[ "$COPYROLE" == "secondary" ]]; then ++ if [[ "$BASEONLY" == "false" ]] || [[ "$COPYROLE" == "secondary" ]]; then ++ if [[ "$COPYROLE" == "secondary" ]]; then ++ ACTIVE="secondary" ++ else ++ ACTIVE="alias" ++ fi ++ printf "%s:%s:%s# status:\t\t\t\t%s# type: \t\t\t\t%s# use_diag:\t\t\t\t%s# readonly:\t\t\t\t%s# eer_enabled:\t\t\t\t%s# erplog:\t\t\t\t%s# hpf:\t\t\t\t\t%s # uid: \t\t\t\t%s# fc_security: \t\t\t\t%s# paths_installed: \t\t\t%s %s %s %s %s %s %s %s# paths_in_use: \t\t\t%s %s %s %s %s %s %s %s# paths_non_preferred: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_cabling: \t\t%s %s %s %s %s %s %s %s# paths_cuir_quiesced: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_hpf_characteristics: \t%s %s %s %s %s %s %s %s# paths_error_threshold_exceeded: \t%s %s %s %s %s %s %s %s# copy_pairs:\t\t\t\t%s#\n" \ + "$SORTKEYLEN" "$SORTKEY" \ + "$BUSID" \ + "$ACTIVE" \ +@@ -540,7 +613,8 @@ function extended() + "${CABLE_PATHS[@]}" \ + "${CUIR_PATHS[@]}" \ + "${HPF_PATHS[@]}" \ +- "${IFCC_PATHS[@]}" ; ++ "${IFCC_PATHS[@]}" \ ++ "${COPYPAIR}" ; + fi + return + elif [[ -z "$BLOCKNAME" ]] || [[ -z "$SIZE" ]]; then +@@ -565,7 +639,7 @@ function extended() + DISCIPLINE="${DISCIPLINE} (ESE)" + fi + +- printf "%s:%s:%s/%s/%s%s%s# status:\t\t\t\t%s# type: \t\t\t\t%s# blksz:\t\t\t\t%s# size: \t\t\t\t%s# blocks:\t\t\t\t%s# extent_size:\t\t\t\t%s# logical_capacity:\t\t\t%s# space_allocated:\t\t\t%s# use_diag:\t\t\t\t%s# readonly:\t\t\t\t%s# eer_enabled:\t\t\t\t%s# erplog:\t\t\t\t%s# hpf:\t\t\t\t\t%s# uid: \t\t\t\t%s# fc_security: \t\t\t\t%s# paths_installed: \t\t\t%s %s %s %s %s %s %s %s# paths_in_use: \t\t\t%s %s %s %s %s %s %s %s# paths_non_preferred: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_cabling: \t\t%s %s %s %s %s %s %s %s# paths_cuir_quiesced: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_hpf_characteristics: \t%s %s %s %s %s %s %s %s# paths_error_threshold_exceeded: \t%s %s %s %s %s %s %s %s#\n" \ ++ printf "%s:%s:%s/%s/%s%s%s# status:\t\t\t\t%s# type: \t\t\t\t%s# blksz:\t\t\t\t%s# size: \t\t\t\t%s# blocks:\t\t\t\t%s# extent_size:\t\t\t\t%s# logical_capacity:\t\t\t%s# space_allocated:\t\t\t%s# use_diag:\t\t\t\t%s# readonly:\t\t\t\t%s# eer_enabled:\t\t\t\t%s# erplog:\t\t\t\t%s# hpf:\t\t\t\t\t%s# uid: \t\t\t\t%s# fc_security: \t\t\t\t%s# paths_installed: \t\t\t%s %s %s %s %s %s %s %s# paths_in_use: \t\t\t%s %s %s %s %s %s %s %s# paths_non_preferred: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_cabling: \t\t%s %s %s %s %s %s %s %s# paths_cuir_quiesced: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_hpf_characteristics: \t%s %s %s %s %s %s %s %s# paths_error_threshold_exceeded: \t%s %s %s %s %s %s %s %s# copy_pairs:\t\t\t\t%s#\n" \ + "$SORTKEYLEN" "$SORTKEY" \ + "$BUSID" \ + "$BLOCKNAME" \ +@@ -593,7 +667,8 @@ function extended() + "${CABLE_PATHS[@]}" \ + "${CUIR_PATHS[@]}" \ + "${HPF_PATHS[@]}" \ +- "${IFCC_PATHS[@]}" ; ++ "${IFCC_PATHS[@]}" \ ++ "${COPYPAIR}" ; + } + + function host() +@@ -710,7 +785,11 @@ function uid() + fi + fi + +- printf "%s:%s:%-8s %-8s %s\n" \ ++ if [[ "$COPYROLE" == "secondary" ]]; then ++ BLOCKNAME="secondary" ++ fi ++ ++ printf "%s:%s:%-8s %-10s %s\n" \ + "$SORTKEYLEN" "$SORTKEY" \ + "$BUSID" \ + "$BLOCKNAME" \ +-- +2.38.1 + + +From 803b87e324d704036c5bef1d1daba6cf5b69b668 Mon Sep 17 00:00:00 2001 +From: Stefan Haberland +Date: Wed, 12 Oct 2022 15:55:43 +0200 +Subject: [PATCH 2/7] zconf/lsdasd: add Copy Pair output option +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add an option -P|--copy-pairs to show all DASD devices with copy +relations set up in the system and their roles. + +The output looks like: + + # ./s390-tools/zconf/lsdasd -h + [...] + -P|--copy-pairs + Print information about copy pairs. + + # ./s390-tools/zconf/lsdasd -P + Bus-ID Role Name Paired devices + ================================================================================ + 0.0.9700 primary dasdd 0.0.9740,0.0.9743,0.0.9744,0.0.9745 + 0.0.9740 secondary 0.0.9700 + 0.0.9701 primary dasdf 0.0.9741 + 0.0.9741 secondary 0.0.9701 + 0.0.9702 primary dasdh 0.0.9742 + 0.0.9742 secondary 0.0.9702 + +Signed-off-by: Stefan Haberland +Reviewed-by: Jan Hoeppner +Signed-off-by: Jan Höppner +--- + zconf/lsdasd | 45 +++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 45 insertions(+) + +diff --git a/zconf/lsdasd b/zconf/lsdasd +index 8b2cc0f..59720b6 100755 +--- a/zconf/lsdasd ++++ b/zconf/lsdasd +@@ -35,6 +35,8 @@ function PrintUsage() { + Print extended information about DASDs. + -H|--host-access-list + Print information about hosts accessing DASDs. ++ -P|--copy-pairs ++ Print information about copy pairs. + -v|--verbose + For compatibility/future use. Currently ignored. + --version +@@ -292,6 +294,8 @@ function gatherDeviceData() { + uid + elif [[ "$OUTPUT" == "host" ]]; then + host ++ elif [[ "$OUTPUT" == "copy" ]]; then ++ copy + else + newoutput + fi +@@ -769,6 +773,41 @@ printf "\n"; + rm -f $temp + } + ++# pad sortkey with given number zeroes ++function padSortKey() ++{ ++ local LEN=$1 ++ for (( i=0; i<$LEN; i++ )) ++ do ++ printf -v SORTKEY "%s0" $SORTKEY ++ done ++} ++ ++function copy() ++{ ++ if [[ "$COPYROLE" == "none" ]]; then ++ return ++ fi ++ ++ SORTKEYLEN=$((${#PRIMARY_UID}+${#DEV_UID})) ++ if [[ "$COPYROLE" == "secondary" ]]; then ++ SORTKEY=$PRIMARY_UID$DEV_UID ++ PAIREDDEVICES=$PRIMARY_UID ++ BLOCKNAME="" ++ else ++ SORTKEY=$PRIMARY_UID ++ padSortKey ${#DEV_UID} ++ PAIREDDEVICES=$SECONDARY_LIST ++ fi ++ ++ printf "%s:%s:%-8s %-10s %-8s %-8s %s \n" \ ++ "$SORTKEYLEN" "$SORTKEY" \ ++ "$BUSID" \ ++ "$COPYROLE" \ ++ "$BLOCKNAME" \ ++ "$PAIREDDEVICES"; ++} ++ + function uid() + { + #-------------------------------------------# +@@ -835,6 +874,9 @@ while [ $# -gt 0 ]; do + --host-access-list|-H) + OUTPUT="host" + ;; ++ --copy-pairs|-P) ++ OUTPUT="copy" ++ ;; + --version) + PrintVersion + exit 0 +@@ -889,6 +931,9 @@ if [[ "$PRINTUID" == "true" ]] && [[ "$OUTPUT" != "old" ]]; then + elif [[ "$OUTPUT" == "new" ]]; then + printf "Bus-ID Status Name Device Type BlkSz Size Blocks\n" + printf "================================================================================\n" ++elif [[ "$OUTPUT" == "copy" ]]; then ++ printf "Bus-ID Role Name Paired devices\n"; ++ printf "================================================================================\n"; + elif [[ "$OUTPUT" == "extended" ]]; then + PROCESSING=" $PROCESSING | sed 's/#/\n/g' " + fi +-- +2.38.1 + + +From e742d1c9ae5103c9f88d3fde085e0694efaeeb5a Mon Sep 17 00:00:00 2001 +From: Stefan Haberland +Date: Thu, 11 Aug 2022 13:52:30 +0200 +Subject: [PATCH 3/7] zdev: correctly handle multiple values for CCW devices +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Correctly create multiple lines in the udev rule for CCW device attributes +with multi bit set that contain multiple values. + +Suggested-by: Peter Oberparleiter +Signed-off-by: Stefan Haberland +Reviewed-by: Jan Hoeppner +Reviewed-by: Peter Oberparleiter +Signed-off-by: Jan Höppner +--- + zdev/src/udev_ccw.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/zdev/src/udev_ccw.c b/zdev/src/udev_ccw.c +index 7c0a703..3375a5e 100644 +--- a/zdev/src/udev_ccw.c ++++ b/zdev/src/udev_ccw.c +@@ -221,6 +221,7 @@ static void write_attr_to_file(FILE *fd, struct device_state *state, const char + struct ptrlist_node *p; + struct setting *s; + struct util_list *list = NULL; ++ struct strlist_node *str; + + /* Apply attributes in correct order. */ + list = setting_list_get_sorted(state->settings); +@@ -229,8 +230,13 @@ static void write_attr_to_file(FILE *fd, struct device_state *state, const char + s = p->ptr; + if (s->removed) + continue; +- if ((s->attrib && s->attrib->internal) || +- internal_by_name(s->name)) { ++ if (s->values) { ++ util_list_iterate(s->values, str) { ++ fprintf(fd, "ATTR{[ccw/%s]%s}=\"%s\"\n", ++ id, s->name, str->str); ++ } ++ } else if ((s->attrib && s->attrib->internal) || ++ internal_by_name(s->name)) { + fprintf(fd, "ENV{zdev_%s}=\"%s\"\n", + internal_get_name(s->name), s->value); + } else { +-- +2.38.1 + + +From f654b971d0e78a139c7ed8c0df821af2f4356a8b Mon Sep 17 00:00:00 2001 +From: Stefan Haberland +Date: Tue, 9 Aug 2022 16:17:23 +0200 +Subject: [PATCH 4/7] zdev: add copy_pair attribute for DASD devices +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The DASD device driver has a new attribute copy_pair to make storage +server copy pairs known to the driver. +Add this attribute to zdev. + +Usage example: + +Add two copy pairs 1000,2000 and 1000,3000 to a DASD device 1000 +$ chzdev dasd 1000 copy_pairs=1000,2000 copy_pairs=1000,3000 + +or + +$ chzdev dasd 1000 copy_pairs="1000,2000 1000,3000" + +To add a third copy pair later on: +$ chzdev dasd 1000 copy_pairs=1000,4000 + +To remove all copy pairs from the device 1000: +$ chzdev dasd 1000 -r copy_pairs + +Signed-off-by: Stefan Haberland +Reviewed-by: Peter Oberparleiter +Signed-off-by: Jan Höppner +--- + zdev/src/dasd.c | 93 +++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 93 insertions(+) + +diff --git a/zdev/src/dasd.c b/zdev/src/dasd.c +index daec916..f9fd231 100644 +--- a/zdev/src/dasd.c ++++ b/zdev/src/dasd.c +@@ -137,6 +137,21 @@ static struct attrib dasd_attr_readonly = { + .accept = ACCEPT_ARRAY(ACCEPT_RANGE(0, 1)), + }; + ++static struct attrib dasd_attr_copy_pair = { ++ .name = "copy_pair", ++ .title = "Modify copy-pair relations", ++ .desc = "Make a copy-pair relation for this device known to the DASD " ++ "driver.\n" ++ "A copy-pair is a comma-separated pair of device bus-IDs\n" ++ ",.\n" ++ "Example: 0.0.1000,0.0.2000\n" ++ "Up to 4 copy-pairs are accepted by the DASD driver for each " ++ "device.\n", ++ .unstable = 1, ++ .multi = 1, ++ .activerem = 1, ++}; ++ + static struct attrib dasd_attr_erplog = { + .name = "erplog", + .title = "Enable logging of Error Recovery Processing", +@@ -600,6 +615,81 @@ persistent: + return rc; + } + ++/* Remove all entries from the copy_pair attribute by writing 'clear' to it. */ ++static void dasd_clear_copy_pair(struct setting *s) ++{ ++ free(s->value); ++ s->value = misc_strdup("clear"); ++ strlist_free(s->values); ++ s->values = strlist_new(); ++ strlist_add(s->values, "clear"); ++ s->removed = 0; ++ s->modified = 1; ++} ++ ++/* ++ * Copy-pair values may contain multiple values in one line ++ * those need to be split up and put in multiple values entries ++ * delimiter is " " and "\n" depending on the source ++ * values read from sysfs have " " as delimiter and values from ++ * zdev have "\n" ++ */ ++static void dasd_split_copy_pair(struct setting *s) ++{ ++ struct util_list *new = NULL; ++ struct strlist_node *node; ++ ++ new = strlist_new(); ++ util_list_iterate(s->values, node) ++ strlist_add_multi(new, node->str, "\n ", 0); ++ ++ strlist_free(s->values); ++ s->values = new; ++} ++ ++/* ++ * For persistent configurations one value per values[] entry is required ++ * to achieve a correct multi-line copy-pair statement in the resulting ++ * udev-rule. ++ */ ++static exit_code_t dasd_st_configure_persistent(struct subtype *st, ++ struct device *dev) ++{ ++ struct setting *s; ++ ++ util_list_iterate(&dev->persistent.settings->list, s) { ++ if (strcmp(s->name, "copy_pair") == 0) ++ dasd_split_copy_pair(s); ++ } ++ ++ return st->super->configure_persistent(st, dev); ++} ++ ++/* ++ * For active configurations one value per values[] entry is required to ++ * correctly operate the sysfs attribute. ++ * ++ * In case of removal the string "clear" has to be written to the ++ * value and values[] entry. ++ */ ++static exit_code_t dasd_st_configure_active(struct subtype *st, ++ struct device *dev) ++{ ++ struct setting *s; ++ ++ util_list_iterate(&dev->active.settings->list, s) { ++ if (strcmp(s->name, "copy_pair") != 0) ++ continue; ++ ++ if (s->removed) ++ dasd_clear_copy_pair(s); ++ else ++ dasd_split_copy_pair(s); ++ } ++ ++ return st->super->configure_active(st, dev); ++} ++ + /* + * DASD device sub-types. + */ +@@ -634,10 +724,13 @@ struct subtype dasd_subtype_eckd = { + &dasd_attr_last_known_reservation_state, + &dasd_attr_safe_offline, + &dasd_attr_fc_security, ++ &dasd_attr_copy_pair, + &internal_attr_early, + ), + .unknown_dev_attribs = 1, + ++ .configure_active = &dasd_st_configure_active, ++ .configure_persistent = &dasd_st_configure_persistent, + .check_pre_configure = &dasd_st_check_pre_configure, + .add_modules = &dasd_st_add_modules, + }; +-- +2.38.1 + + +From 4e28047eb4cacc7b7208018a8c095102517517e8 Mon Sep 17 00:00:00 2001 +From: Stefan Haberland +Date: Thu, 10 Nov 2022 16:11:09 +0100 +Subject: [PATCH 5/7] tunedasd: move tunedasd ioctls to libdasd +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Move all DASD IOCTLs to libdasd and adapt all affected +users accordingly. + +Signed-off-by: Stefan Haberland +Reviewed-by: Jan Hoeppner +Signed-off-by: Jan Höppner +--- + include/lib/dasd_base.h | 73 +++++++++++ + libdasd/dasd_ioctl.c | 129 +++++++++++++++++++ + tunedasd/src/disk.c | 268 ++++++++-------------------------------- + 3 files changed, 252 insertions(+), 218 deletions(-) + +diff --git a/include/lib/dasd_base.h b/include/lib/dasd_base.h +index b12e1f9..11ec94b 100644 +--- a/include/lib/dasd_base.h ++++ b/include/lib/dasd_base.h +@@ -187,6 +187,61 @@ typedef struct format_check_t { + #define DASD_FMT_ERR_RECORD_ID 4 + #define DASD_FMT_ERR_KEY_LENGTH 5 + ++/* ++ * struct profile_info_t ++ * holds the profiling information ++ */ ++typedef struct dasd_profile_info_t { ++ unsigned int dasd_io_reqs; /* # of requests processed at all */ ++ unsigned int dasd_io_sects; /* # of sectors processed at all */ ++ unsigned int dasd_io_secs[32]; /* request's sizes */ ++ unsigned int dasd_io_times[32]; /* requests's times */ ++ unsigned int dasd_io_timps[32]; /* requests's times per sector */ ++ unsigned int dasd_io_time1[32]; /* time from build to start */ ++ unsigned int dasd_io_time2[32]; /* time from start to irq */ ++ unsigned int dasd_io_time2ps[32]; /* time from start to irq */ ++ unsigned int dasd_io_time3[32]; /* time from irq to end */ ++ unsigned int dasd_io_nr_req[32]; /* # of requests in chanq */ ++} dasd_profile_info_t; ++ ++/* ++ * struct attrib_data_t ++ * represents the operation (cache) bits for the device. ++ * Used in DE to influence caching of the DASD. ++ */ ++typedef struct attrib_data_t { ++ unsigned char operation : 3; /* cache operation mode */ ++ unsigned char reserved : 5; ++ unsigned short nr_cyl; /* no of cyliners for read ahaed */ ++ unsigned char reserved2[29]; /* for future use */ ++} __attribute__((packed)) attrib_data_t; ++ ++/* definition of operation (cache) bits within attributes of DE */ ++#define DASD_NORMAL_CACHE 0x0 ++#define DASD_BYPASS_CACHE 0x1 ++#define DASD_INHIBIT_LOAD 0x2 ++#define DASD_SEQ_ACCESS 0x3 ++#define DASD_SEQ_PRESTAGE 0x4 ++#define DASD_REC_ACCESS 0x5 ++ ++/* ++ * Data returned by Sense Path Group ID (SNID) ++ */ ++struct dasd_snid_data { ++ struct { ++ __u8 group : 2; ++ __u8 reserve : 2; ++ __u8 mode : 1; ++ __u8 res : 3; ++ } __attribute__((packed)) path_state; ++ __u8 pgid[11]; ++} __attribute__((packed)); ++ ++struct dasd_snid_ioctl_data { ++ struct dasd_snid_data data; ++ __u8 path_mask; ++} __attribute__((packed)); ++ + #ifndef __linux__ + /* definition from hdreg.h */ + struct hd_geometry { +@@ -207,12 +262,24 @@ struct hd_geometry { + #define BIODASDRSRV _IO(DASD_IOCTL_LETTER, 2) + /* Release the device for the current LPAR */ + #define BIODASDRLSE _IO(DASD_IOCTL_LETTER, 3) ++/* Unconditional reserve the device for the current LPAR */ ++#define BIODASDSLCK _IO(DASD_IOCTL_LETTER, 4) ++/* reset profiling information of a device */ ++#define BIODASDPRRST _IO(DASD_IOCTL_LETTER, 5) ++/* retrieve profiling information of a device */ ++#define BIODASDPRRD _IOR(DASD_IOCTL_LETTER, 2, dasd_profile_info_t) + /* Get information on a dasd device (enhanced) */ + #define BIODASDINFO2 _IOR(DASD_IOCTL_LETTER, 3, dasd_information2_t) ++/* Get Attributes (cache operations) */ ++#define BIODASDGATTR _IOR(DASD_IOCTL_LETTER, 5, attrib_data_t) + /* #define BIODASDFORMAT _IOW(IOCTL_LETTER,0,format_data_t) , deprecated */ + #define BIODASDFMT _IOW(DASD_IOCTL_LETTER, 1, format_data_t) ++/* Set Attributes (cache operations) */ ++#define BIODASDSATTR _IOW(DASD_IOCTL_LETTER, 2, attrib_data_t) + /* Release Allocated Space */ + #define BIODASDRAS _IOW(DASD_IOCTL_LETTER, 3, format_data_t) ++/* Get Sense Path Group ID (SNID) data */ ++#define BIODASDSNID _IOWR(DASD_IOCTL_LETTER, 1, struct dasd_snid_ioctl_data) + /* Check device format according to format_data_t */ + #define BIODASDCHECKFMT _IOWR(DASD_IOCTL_LETTER, 2, format_check_t) + +@@ -245,5 +312,11 @@ int dasd_is_ro(const char *device, bool *ro); + int dasd_reread_partition_table(const char *device, int ntries); + int dasd_disk_reserve(const char *device); + int dasd_disk_release(const char *device); ++int dasd_slock(const char *device); ++int dasd_get_cache(const char *device, attrib_data_t *attrib_data); ++int dasd_set_cache(const char *device, attrib_data_t *attrib_data); ++int dasd_query_reserve(const char *device); ++int dasd_profile(const char *device, dasd_profile_info_t *dasd_profile_info); ++int dasd_reset_profile(const char *device); + + #endif /* LIB_DASD_BASE_H */ +diff --git a/libdasd/dasd_ioctl.c b/libdasd/dasd_ioctl.c +index f954961..40e726c 100644 +--- a/libdasd/dasd_ioctl.c ++++ b/libdasd/dasd_ioctl.c +@@ -16,6 +16,7 @@ + #include + #include + #include ++#include + + #include "lib/dasd_base.h" + +@@ -321,3 +322,131 @@ int dasd_disk_release(const char *device) + + return 0; + } ++ ++/* ++ * Unconditionally reserve DASD disk ++ * ++ * An existing reserve lock is lifted (steal lock) and the device ++ * is reserved. ++ * ++ * @param[in] device node device node's name ++ * ++ * @retval 0 in case of success ++ * @retval errno in case of failure ++ */ ++int dasd_slock(const char *device) ++{ ++ int fd; ++ ++ fd = dasd_open_device(device, O_RDONLY); ++ RUN_IOCTL(fd, BIODASDSLCK, NULL); ++ dasd_close_device(fd); ++ ++ return 0; ++} ++ ++/* ++ * Get the caching algorithm used for the channel programs of this device. ++ * ++ * @param[in] device node device node's name ++ * @param[out] attrib_data pointer to dasd attrib data with: ++ * 'cache' is the caching mode ++ * 'no_cyl' the number of cylinders to be cached. ++ * ++ * @retval 0 in case of success ++ * @retval errno in case of failure ++ */ ++int dasd_get_cache(const char *device, attrib_data_t *attrib_data) ++{ ++ int fd; ++ ++ fd = dasd_open_device(device, O_RDONLY); ++ RUN_IOCTL(fd, BIODASDGATTR, attrib_data); ++ dasd_close_device(fd); ++ ++ return 0; ++} ++ ++/* ++ * Set the caching algorithm used for the channel programs of this device. ++ * ++ * @param[in] device node device node's name ++ * @param[in] attrib_data pointer to dasd attrib data with: ++ * 'cache' is the caching mode ++ * 'no_cyl' the number of cylinders to be cached. ++ * ++ * @retval 0 in case of success ++ * @retval errno in case of failure ++ */ ++int dasd_set_cache(const char *device, attrib_data_t *attrib_data) ++{ ++ int fd; ++ ++ fd = dasd_open_device(device, O_RDONLY); ++ RUN_IOCTL(fd, BIODASDSATTR, attrib_data); ++ dasd_close_device(fd); ++ ++ return 0; ++} ++ ++/* ++ * Get reserve status of device. ++ * ++ * @param[in] device node device node's name ++ * ++ * @retval errno in case of failure ++ * @retval 0 unreserved ++ * @retval 1 implicit reserved ++ * @retval 2 other reservation ++ * @retval 3 reserved ++ */ ++int dasd_query_reserve(const char *device) ++{ ++ struct dasd_snid_ioctl_data snid = { 0 }; ++ int fd; ++ ++ fd = dasd_open_device(device, O_RDONLY); ++ RUN_IOCTL(fd, BIODASDSNID, &snid); ++ dasd_close_device(fd); ++ ++ return snid.data.path_state.reserve; ++} ++ ++/* ++ * Get and print the profiling info of the device. ++ * ++ * @param[in] device node device node's name ++ * @param[in] dasd_profile_info pointer to dasd profile info ++ * ++ * @retval 0 in case of success ++ * @retval errno in case of failure ++ */ ++int dasd_profile(const char *device, dasd_profile_info_t *dasd_profile_info) ++{ ++ int fd; ++ ++ fd = dasd_open_device(device, O_RDONLY); ++ RUN_IOCTL(fd, BIODASDPRRD, dasd_profile_info); ++ dasd_close_device(fd); ++ ++ return 0; ++} ++ ++/* ++ * Reset the profiling counters of the device. ++ * ++ * @param[in] device node device node's name ++ * ++ * @retval 0 in case of success ++ * @retval errno in case of failure ++ */ ++int dasd_reset_profile(const char *device) ++{ ++ int fd; ++ ++ fd = dasd_open_device(device, O_RDONLY); ++ RUN_IOCTL(fd, BIODASDPRRST, NULL); ++ dasd_close_device(fd); ++ ++ return 0; ++} +diff --git a/tunedasd/src/disk.c b/tunedasd/src/disk.c +index f240651..1e8de16 100644 +--- a/tunedasd/src/disk.c ++++ b/tunedasd/src/disk.c +@@ -19,6 +19,7 @@ + #include + #include + ++#include "lib/dasd_base.h" + #include "lib/dasd_sys.h" + + #include "disk.h" +@@ -26,91 +27,6 @@ + + #define BUS_ID_SIZE 30 + +-/* +- * DASD DEFINITIONS (copied from dasd.h) +- */ +- +-#define DASD_IOCTL_LETTER 'D' +- +-/* +- * struct profile_info_t +- * holds the profiling information +- */ +-typedef struct dasd_profile_info_t { +- unsigned int dasd_io_reqs; /* # of requests processed at all */ +- unsigned int dasd_io_sects; /* # of sectors processed at all */ +- unsigned int dasd_io_secs[32]; /* request's sizes */ +- unsigned int dasd_io_times[32]; /* requests's times */ +- unsigned int dasd_io_timps[32]; /* requests's times per sector */ +- unsigned int dasd_io_time1[32]; /* time from build to start */ +- unsigned int dasd_io_time2[32]; /* time from start to irq */ +- unsigned int dasd_io_time2ps[32]; /*time from start to irq */ +- unsigned int dasd_io_time3[32]; /* time from irq to end */ +- unsigned int dasd_io_nr_req[32]; /* # of requests in chanq */ +-} dasd_profile_info_t; +- +- +-/* +- * struct attrib_data_t +- * represents the operation (cache) bits for the device. +- * Used in DE to influence caching of the DASD. +- */ +-typedef struct attrib_data_t { +- unsigned char operation:3; /* cache operation mode */ +- unsigned char reserved:5; +- unsigned short nr_cyl; /* no of cyliners for read ahaed */ +- unsigned char reserved2[29]; /* for future use */ +-} __attribute__ ((packed)) attrib_data_t; +- +-/* definition of operation (cache) bits within attributes of DE */ +-#define DASD_NORMAL_CACHE 0x0 +-#define DASD_BYPASS_CACHE 0x1 +-#define DASD_INHIBIT_LOAD 0x2 +-#define DASD_SEQ_ACCESS 0x3 +-#define DASD_SEQ_PRESTAGE 0x4 +-#define DASD_REC_ACCESS 0x5 +- +-/* +- * Data returned by Sense Path Group ID (SNID) +- */ +-struct dasd_snid_data { +- struct { +- __u8 group:2; +- __u8 reserve:2; +- __u8 mode:1; +- __u8 res:3; +- } __attribute__ ((packed)) path_state; +- __u8 pgid[11]; +-} __attribute__ ((packed)); +- +-struct dasd_snid_ioctl_data { +- struct dasd_snid_data data; +- __u8 path_mask; +-} __attribute__ ((packed)); +- +- +-/* +- * DASD-IOCTLs (copied from dasd.h) +- */ +-/* Issue a reserve/release command, rsp. */ +-#define BIODASDRSRV _IO (DASD_IOCTL_LETTER,2) /* reserve */ +-#define BIODASDRLSE _IO (DASD_IOCTL_LETTER,3) /* release */ +-#define BIODASDSLCK _IO (DASD_IOCTL_LETTER,4) /* steal lock */ +-/* reset profiling information of a device */ +-#define BIODASDPRRST _IO (DASD_IOCTL_LETTER,5) +- +-/* retrieve profiling information of a device */ +-#define BIODASDPRRD _IOR (DASD_IOCTL_LETTER,2,dasd_profile_info_t) +-/* Get Attributes (cache operations) */ +-#define BIODASDGATTR _IOR(DASD_IOCTL_LETTER,5,attrib_data_t) +- +-/* Set Attributes (cache operations) */ +-#define BIODASDSATTR _IOW (DASD_IOCTL_LETTER,2,attrib_data_t) +- +-/* Get Sense Path Group ID (SNID) data */ +-#define BIODASDSNID _IOWR(DASD_IOCTL_LETTER, 1, struct dasd_snid_ioctl_data) +- +- + /* id definition for profile items */ + enum prof_id { + prof_reqs = 0, +@@ -241,48 +157,33 @@ check_prof_item (char* prof_item) + * 'cache' is the caching mode (see ESS docu for more info) and 'no_cyl' + * the number of cylinders to be cached. + */ +-int +-disk_get_cache (char* device) ++int disk_get_cache(char *device) + { +- int fd; + attrib_data_t attrib_data; +- +- /* Open device file */ +- fd = open (device, O_RDONLY); +- if (fd == -1) { +- error_print ("<%s> - %s", device, strerror (errno)); +- return -1; +- } ++ int rc; + +- /* Get the given caching attributes */ +- if (ioctl (fd, BIODASDGATTR, &attrib_data)) { +- error_print ("Could not get cache attributes for device <%s>", +- device); +- close (fd); +- return -1; +- } ++ rc = dasd_get_cache(device, &attrib_data); ++ if (rc) ++ return rc; + + printf ("%s (%i cyl)\n", + get_cache_name(attrib_data.operation), + attrib_data.nr_cyl); + +- close (fd); + return 0; + } + +- + /* + * Set the caching algorithm used for the channel programs of this device. + * 'cache' is the caching mode (see ESS docu for more info) and 'no_cyl' + * the number of cylinders to be cached. + */ +-int +-disk_set_cache (char* device, char* cache, char* no_cyl) ++int disk_set_cache(char *device, char *cache, char *no_cyl) + { +- int fd; + attrib_data_t attrib_data; +- +- /* get caching mode and # cylinders */ ++ int rc; ++ ++ /* get caching mode and # cylinders */ + attrib_data.operation = check_cache (cache); + attrib_data.nr_cyl = check_no_cyl (no_cyl); + +@@ -292,52 +193,34 @@ disk_set_cache (char* device, char* cache, char* no_cyl) + attrib_data.nr_cyl); + } + +- /* Open device file */ +- fd = open (device, O_RDONLY); +- if (fd == -1) { +- error_print ("<%s> - %s", device, strerror (errno)); +- return -1; +- } +- + /* Set the given caching attributes */ + printf ("Setting cache mode for device <%s>...\n", device); +- if (ioctl (fd, BIODASDSATTR, &attrib_data)) { +- error_print ("Could not set caching for device <%s>", device); +- close (fd); ++ rc = dasd_set_cache(device, &attrib_data); ++ if (rc) { ++ error_print("Could not set caching for device <%s>", device); + return -1; + } +- + printf ("Done.\n"); +- close (fd); ++ + return 0; + } + +- + /* + * Reserve the device. + */ +-int +-disk_reserve (char* device) ++int disk_reserve(char *device) + { +- int fd; +- +- /* Open device file */ +- fd = open (device, O_RDONLY); +- if (fd == -1) { +- error_print ("<%s> - %s", device, strerror (errno)); +- return -1; +- } ++ int rc; + + /* Reserve device */ + printf ("Reserving device <%s>...\n", device); +- if (ioctl (fd, BIODASDRSRV)) { +- error_print ("Could not reserve device <%s>", device); +- close (fd); ++ rc = dasd_disk_reserve(device); ++ if (rc) { ++ error_print("Could not reserve device <%s>", device); + return -1; + } + +- printf ("Done.\n"); +- close (fd); ++ printf("Done.\n"); + return 0; + } + +@@ -345,28 +228,18 @@ disk_reserve (char* device) + /* + * Release the device. + */ +-int +-disk_release (char* device) ++int disk_release(char *device) + { +- int fd; +- +- /* Open device file */ +- fd = open (device, O_RDONLY); +- if (fd == -1) { +- error_print ("<%s> - %s", device, strerror (errno)); +- return -1; +- } ++ int rc; + +- /* Release device */ + printf ("Releasing device <%s>...\n", device); +- if (ioctl (fd, BIODASDRLSE)) { +- error_print ("Could not release device <%s>", device); +- close (fd); ++ rc = dasd_disk_release(device); ++ if (rc) { ++ error_print("Could not release device <%s>", device); + return -1; + } + +- printf ("Done.\n"); +- close (fd); ++ printf("Done.\n"); + return 0; + } + +@@ -376,29 +249,19 @@ disk_release (char* device) + * This means to reserve the device even if it was already reserved. + * The current reserve is broken (steal lock). + */ +-int +-disk_slock (char* device) ++int disk_slock(char *device) + { +- int fd; +- +- /* Open device file */ +- fd = open (device, O_RDONLY); +- if (fd == -1) { +- error_print ("<%s> - %s", device, strerror (errno)); +- return -1; +- } ++ int rc; + + /* Unconditional reserve device */ + printf ("Unconditional reserving device <%s>...\n", device); +- if (ioctl (fd, BIODASDSLCK)) { +- error_print ("Could not unconditional reserve device <%s>", +- device); +- close (fd); ++ rc = dasd_slock(device); ++ if (rc) { ++ error_print("Could not unconditional reserve device <%s>", device); + return -1; + } +- + printf ("Done.\n"); +- close (fd); ++ + return 0; + } + +@@ -407,27 +270,16 @@ disk_slock (char* device) + * Uses the Sense Path Group ID (SNID) ioctl to find out if + * a device is reserved to it's path group. + */ +-int +-disk_query_reserve_status(char* device) ++int disk_query_reserve_status(char *device) + { +- int fd; +- struct dasd_snid_ioctl_data snid; ++ int rc; + +- /* Open device file */ +- fd = open (device, O_RDONLY); +- if (fd == -1) { +- error_print ("<%s> - %s", device, strerror (errno)); ++ rc = dasd_query_reserve(device); ++ if (rc < 0) { ++ error_print("Could not read reserve status for device <%s>", device); + return -1; + } +- snid.path_mask = 0; +- /* Release device */ +- if (ioctl(fd, BIODASDSNID, &snid)) { +- error_print("Could not read reserve status" +- " for device <%s>", device); +- close (fd); +- return -1; +- } +- switch (snid.data.path_state.reserve) { ++ switch (rc) { + case 0: + printf("none\n"); + break; +@@ -441,7 +293,7 @@ disk_query_reserve_status(char* device) + printf("reserved\n"); + break; + } +- close (fd); ++ + return 0; + } + +@@ -615,21 +467,14 @@ static int disk_profile_item(dasd_profile_info_t dasd_profile_info, + /* + * Get and print the profiling info of the device. + */ +-int +-disk_profile (char* device, char* prof_item) ++int disk_profile(char *device, char *prof_item) + { +- int fd, rc; + dasd_profile_info_t dasd_profile_info; +- +- /* Open device file */ +- fd = open (device, O_RDONLY); +- if (fd == -1) { +- error_print ("<%s> - %s", device, strerror (errno)); +- return -1; +- } ++ int rc; + + /* Get the profile info */ +- if (ioctl (fd, BIODASDPRRD, &dasd_profile_info)) { ++ rc = dasd_profile(device, &dasd_profile_info); ++ if (rc) { + switch (errno) { + case EIO: /* profiling is not active */ + error_print ("Profiling (on device <%s>) is not " +@@ -639,7 +484,6 @@ disk_profile (char* device, char* prof_item) + error_print ("Could not get profile info for device " + "<%s>.", device); + } +- close (fd); + return -1; + } + /* Check for profile item or summary */ +@@ -648,38 +492,26 @@ disk_profile (char* device, char* prof_item) + } else { + rc = disk_profile_item (dasd_profile_info, prof_item); + } +- +- close (fd); ++ + return rc; + } + +- + /* + * Reset the profiling counters of the device. + */ +-int +-disk_reset_prof (char* device) ++int disk_reset_prof(char *device) + { +- int fd; +- +- /* Open device file */ +- fd = open (device, O_RDONLY); +- if (fd == -1) { +- error_print ("<%s> - %s", device, strerror (errno)); +- return -1; +- } ++ int rc; + + /* reset profile info */ + printf ("Resetting profile info for device <%s>...\n", device); +- if (ioctl (fd, BIODASDPRRST)) { +- error_print ("Could not reset profile info for device <%s>", +- device); +- close (fd); ++ rc = dasd_reset_profile(device); ++ if (rc) { ++ error_print("Could not reset profile info for device <%s>", device); + return -1; + } +- + printf ("Done.\n"); +- close (fd); ++ + return 0; + } + +-- +2.38.1 + + +From 3aa7f6e29871c06537ab95bf2a14b5eb3ca6e847 Mon Sep 17 00:00:00 2001 +From: Stefan Haberland +Date: Thu, 27 Oct 2022 15:51:00 +0200 +Subject: [PATCH 6/7] libdasd: fix ioctl macro to return also positive return + codes +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +In case of an error the ioctl macro only returns errno to the calling +function. +This misses positive returncodes from ioctls. +Change the macro to also return positive return codes. + +Signed-off-by: Stefan Haberland +Reviewed-by: Jan Hoeppner +Signed-off-by: Jan Höppner +--- + libdasd/dasd_ioctl.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/libdasd/dasd_ioctl.c b/libdasd/dasd_ioctl.c +index 40e726c..3a36375 100644 +--- a/libdasd/dasd_ioctl.c ++++ b/libdasd/dasd_ioctl.c +@@ -28,11 +28,13 @@ + + #define RUN_IOCTL(fd, req, argp) \ + do { \ +- if (ioctl(fd, req, argp) != 0) { \ +- int err = errno; \ +- if (err != EBADF) \ ++ int rc = ioctl(fd, req, argp); \ ++ if (rc != 0) { \ ++ if (rc == -1) \ ++ rc = errno; \ ++ if (rc != EBADF) \ + dasd_close_device(fd); \ +- return err; \ ++ return rc; \ + } \ + } while (0) + +-- +2.38.1 + + +From 3f12bdf4c728caeaeaa64158efb26f917d905b08 Mon Sep 17 00:00:00 2001 +From: Stefan Haberland +Date: Fri, 11 Nov 2022 13:17:32 +0100 +Subject: [PATCH 7/7] tunedasd: add copy_pair swap capability +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add an option to tunedasd to trigger a copy pair swap using the appropriate +ioctl for DASD devices. + + -s, --copy-pair-swap COPY_PAIR + +This command requires a comma separated pair of primary,secondary to be +specified. In case of success the old secondary will become the new primary +device and the old primary will become a secondary device. + +Example: + +tunedasd /dev/dasda -s 0.0.9700,0.0.9740 + +This will set the old secondary device 0.0.9740 as the new primary. +The old primary device 0.0.9700 will automatically become a secondary +device. + +Signed-off-by: Stefan Haberland +Reviewed-by: Jan Hoeppner +Signed-off-by: Jan Höppner +--- + include/lib/dasd_base.h | 14 ++++++++-- + libdasd/dasd_ioctl.c | 28 ++++++++++++++++++++ + tunedasd/include/disk.h | 1 + + tunedasd/man/tunedasd.8 | 14 ++++++++++ + tunedasd/src/disk.c | 50 ++++++++++++++++++++++++++++++++++-- + tunedasd/src/tunedasd.c | 57 +++++++++++++++++++++++++---------------- + 6 files changed, 138 insertions(+), 26 deletions(-) + +diff --git a/include/lib/dasd_base.h b/include/lib/dasd_base.h +index 11ec94b..400e374 100644 +--- a/include/lib/dasd_base.h ++++ b/include/lib/dasd_base.h +@@ -20,8 +20,8 @@ + #include + #include + +-/* A bus id of a DASD is 8 characters long. E.g. 0.0.4711 */ +-#define DASD_BUS_ID_SIZE 9 ++/* the definition of a BUSID in the DASD driver is 20 */ ++#define DASD_BUS_ID_SIZE 20 + + typedef struct dasd_information2_t { + unsigned int devno; /* S/390 devno */ +@@ -242,6 +242,13 @@ struct dasd_snid_ioctl_data { + __u8 path_mask; + } __attribute__((packed)); + ++struct dasd_copypair_swap_data { ++ char primary[DASD_BUS_ID_SIZE]; /* BUSID of primary */ ++ char secondary[DASD_BUS_ID_SIZE]; /* BUSID of secondary */ ++ /* Reserved for future updates. */ ++ char reserved[64]; ++}; ++ + #ifndef __linux__ + /* definition from hdreg.h */ + struct hd_geometry { +@@ -278,6 +285,8 @@ struct hd_geometry { + #define BIODASDSATTR _IOW(DASD_IOCTL_LETTER, 2, attrib_data_t) + /* Release Allocated Space */ + #define BIODASDRAS _IOW(DASD_IOCTL_LETTER, 3, format_data_t) ++/* Swap copy pair */ ++#define BIODASDPPRCSWAP _IOW(DASD_IOCTL_LETTER, 4, struct dasd_copypair_swap_data) + /* Get Sense Path Group ID (SNID) data */ + #define BIODASDSNID _IOWR(DASD_IOCTL_LETTER, 1, struct dasd_snid_ioctl_data) + /* Check device format according to format_data_t */ +@@ -318,5 +327,6 @@ int dasd_set_cache(const char *device, attrib_data_t *attrib_data); + int dasd_query_reserve(const char *device); + int dasd_profile(const char *device, dasd_profile_info_t *dasd_profile_info); + int dasd_reset_profile(const char *device); ++int dasd_copy_swap(const char *device, struct dasd_copypair_swap_data *data); + + #endif /* LIB_DASD_BASE_H */ +diff --git a/libdasd/dasd_ioctl.c b/libdasd/dasd_ioctl.c +index 3a36375..f684761 100644 +--- a/libdasd/dasd_ioctl.c ++++ b/libdasd/dasd_ioctl.c +@@ -452,3 +452,31 @@ int dasd_reset_profile(const char *device) + + return 0; + } ++ ++/* ++ * Initiate the swap of a copy pairs primary,secondary relation. ++ * The old secondary will become the new primary and vice versa. ++ * ++ * @param[in] device node device node's name ++ * @param[in] copy_pair data pointer to dasd copypair data with: ++ * 'primary' old primary, becoming secondary ++ * 'secondary' old secondary, becoming primary. ++ * ++ * @retval errno in case of failure ++ * @retval 0 in case of success ++ * @retval 1 swap data invalid ++ * @retval 2 no active device found ++ * @retval 3 wrong primary specified ++ * @retval 4 secondary device not found ++ * @retval 5 swap already running ++ */ ++int dasd_copy_swap(const char *device, struct dasd_copypair_swap_data *data) ++{ ++ int fd; ++ ++ fd = dasd_open_device(device, O_RDONLY); ++ RUN_IOCTL(fd, BIODASDPPRCSWAP, data); ++ dasd_close_device(fd); ++ ++ return 0; ++} +diff --git a/tunedasd/include/disk.h b/tunedasd/include/disk.h +index ea35f6f..55a32d0 100644 +--- a/tunedasd/include/disk.h ++++ b/tunedasd/include/disk.h +@@ -31,6 +31,7 @@ int disk_query_reserve_status(char* device); + int disk_profile (char* device, char* prof_item); + int disk_reset_prof(char *device); + int disk_reset_chpid(char *device, char *chpid); ++int disk_copy_swap(char *device, char *copy_pair); + + #endif /* not DISK_H */ + +diff --git a/tunedasd/man/tunedasd.8 b/tunedasd/man/tunedasd.8 +index 94c3608..ae41b97 100644 +--- a/tunedasd/man/tunedasd.8 ++++ b/tunedasd/man/tunedasd.8 +@@ -174,6 +174,14 @@ Reset all channel paths of the selected device. The channel paths + might be suspended due to high IFCC error rates or a High Performance + FICON failure. Use this option to resume considering all defined + channel paths for I/O. ++.TP ++.BR "\-s" " or " "\-\-copy\-pair\-swap " ++Swap the copy roles of the specified copy pair. The has to ++be a comma separated pair of \fBPRIMARY,SECONDARY\fR where ++\fBPRIMARY\fR is the old primary device that will become a secondary ++automatically. The old \fBSECONDARY\fR device will become the new ++primary device. Both devices have to be online for this operation to ++succeed. + .\" + .\".TP + .\".BR "\-o" " or " "\-\-online" +@@ -197,6 +205,12 @@ channel paths for I/O. + .br + + tunedasd -p 45 /dev/dasdc ++ ++.br ++4. Scenario: Swap copy pair 0.0.9700 and 0.0.9740 ++.br ++ ++ tunedasd -s 0.0.9700,0.0.9740 /dev/dasdc + .br + .SH "SEE ALSO" + .BR dasdview (8), +diff --git a/tunedasd/src/disk.c b/tunedasd/src/disk.c +index 1e8de16..490c1c5 100644 +--- a/tunedasd/src/disk.c ++++ b/tunedasd/src/disk.c +@@ -21,12 +21,11 @@ + + #include "lib/dasd_base.h" + #include "lib/dasd_sys.h" ++#include "lib/util_libc.h" + + #include "disk.h" + #include "tunedasd.h" + +-#define BUS_ID_SIZE 30 +- + /* id definition for profile items */ + enum prof_id { + prof_reqs = 0, +@@ -549,3 +548,50 @@ int disk_reset_chpid(char *device, char *chpid) + + return -1; + } ++ ++int disk_copy_swap(char *device, char *copy_pair) ++{ ++ struct dasd_copypair_swap_data data = { 0 }; ++ char *primary, *secondary; ++ int rc = 0; ++ ++ primary = strtok(copy_pair, ","); ++ secondary = strtok(NULL, ","); ++ ++ if (!primary || !secondary) { ++ error_print("%s: Error parsing Copy Pair %s", device, copy_pair); ++ return -1; ++ } ++ ++ util_strlcpy(data.primary, primary, DASD_BUS_ID_SIZE); ++ util_strlcpy(data.secondary, secondary, DASD_BUS_ID_SIZE); ++ ++ printf("Swapping copy pair %s %s on device <%s>...\n", primary, secondary, device); ++ rc = dasd_copy_swap(device, &data); ++ ++ switch (rc) { ++ case 0: ++ printf("Done.\n"); ++ return 0; ++ case 1: ++ error_print("Swap data invalid"); ++ break; ++ case 2: ++ error_print("No active device found"); ++ break; ++ case 3: ++ error_print("Wrong primary device specified"); ++ break; ++ case 4: ++ error_print("Secondary device not found"); ++ break; ++ case 5: ++ error_print("Swap already running"); ++ break; ++ default: ++ error_print("Swap not successful rc %d", rc); ++ break; ++ } ++ ++ return -1; ++} +diff --git a/tunedasd/src/tunedasd.c b/tunedasd/src/tunedasd.c +index 3c14eb8..691841c 100644 +--- a/tunedasd/src/tunedasd.c ++++ b/tunedasd/src/tunedasd.c +@@ -119,12 +119,17 @@ static struct util_opt opt_vec[] = { + .desc = "Reset all channel paths of a device", + .flags = UTIL_OPT_FLAG_NOSHORT, + }, ++ { ++ .option = { "copy-pair-swap", required_argument, NULL, 's' }, ++ .argument = "COPY_PAIR", ++ .desc = "Swap a specified, comma separated copy pair.", ++ }, + UTIL_OPT_HELP, + UTIL_OPT_VERSION, + UTIL_OPT_END + }; + +-#define CMD_KEYWORD_NUM 16 ++#define CMD_KEYWORD_NUM 17 + #define DEVICES_NUM 256 + + enum cmd_keyword_id { +@@ -144,6 +149,7 @@ enum cmd_keyword_id { + cmd_keyword_path_all, + cmd_keyword_enable_stats, + cmd_keyword_disable_stats, ++ cmd_keyword_copy_swap, + }; + + +@@ -167,7 +173,8 @@ static const struct { + { "path_reset", cmd_keyword_path }, + { "path_reset_all", cmd_keyword_path_all }, + { "enable-stats", cmd_keyword_enable_stats }, +- { "disable-stats", cmd_keyword_disable_stats } ++ { "disable-stats", cmd_keyword_disable_stats }, ++ { "copy-swap", cmd_keyword_copy_swap }, + }; + + +@@ -180,26 +187,27 @@ enum cmd_key_state { + + /* Determines which combination of keywords are valid */ + static enum cmd_key_state cmd_key_table[CMD_KEYWORD_NUM][CMD_KEYWORD_NUM] = { +- /* help vers get_ cach no_c rese rele sloc prof prof rese quer path path +- * ion cach e yl rve ase k ile _ite t_pr y_re _all +- * e m of serv ++ /* help vers get_ cach no_c rese rele sloc prof prof rese quer path path enab disa copy ++ * ion cach e yl rve ase k ile _ite t_pr y_re _all le-s ble- -swa ++ * e m of serv tats stat p + */ +- /* help */ { req, opt, opt, opt, opt, opt, opt, opt, opt, opt, opt, inv, inv, inv, inv, inv }, +- /* version */ { inv, req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, +- /* get_cache */ { opt, opt, req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, +- /* cache */ { opt, opt, inv, req, opt, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, +- /* no_cyl */ { opt, opt, inv, req, req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, +- /* reserve */ { opt, opt, inv, inv, inv, req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, +- /* release */ { opt, opt, inv, inv, inv, inv, req, inv, inv, inv, inv, inv, inv, inv, inv, inv }, +- /* slock */ { opt, opt, inv, inv, inv, inv, inv, req, inv, inv, inv, inv, inv, inv, inv, inv }, +- /* profile */ { opt, opt, inv, inv, inv, inv, inv, inv, req, opt, inv, inv, inv, inv, inv, inv }, +- /* prof_item */ { opt, opt, inv, inv, inv, inv, inv, inv, req, req, inv, inv, inv, inv, inv, inv }, +- /* reset_prof */ { opt, opt, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv, inv, inv, inv }, +- /* query_reserve */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv, inv, inv }, +- /* path */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv, inv }, +- /* path_all */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv }, +- /* enable-stats */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv }, +- /* disable-stats */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req }, ++ /* help */ { req, opt, opt, opt, opt, opt, opt, opt, opt, opt, opt, inv, inv, inv, inv, inv, inv }, ++ /* version */ { inv, req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, ++ /* get_cache */ { opt, opt, req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, ++ /* cache */ { opt, opt, inv, req, opt, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, ++ /* no_cyl */ { opt, opt, inv, req, req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, ++ /* reserve */ { opt, opt, inv, inv, inv, req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, ++ /* release */ { opt, opt, inv, inv, inv, inv, req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, ++ /* slock */ { opt, opt, inv, inv, inv, inv, inv, req, inv, inv, inv, inv, inv, inv, inv, inv, inv }, ++ /* profile */ { opt, opt, inv, inv, inv, inv, inv, inv, req, opt, inv, inv, inv, inv, inv, inv, inv }, ++ /* prof_item */ { opt, opt, inv, inv, inv, inv, inv, inv, req, req, inv, inv, inv, inv, inv, inv, inv }, ++ /* reset_prof */ { opt, opt, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv, inv, inv, inv, inv }, ++ /* query_reserve */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv, inv, inv, inv }, ++ /* path */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv, inv, inv }, ++ /* path_all */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv, inv }, ++ /* enable-stats */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv }, ++ /* disable-stats */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv }, ++ /* copy-swap */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req }, + }; + + struct parameter { +@@ -439,7 +447,9 @@ static int get_command_line(int argc, char *argv[], struct command_line *line) + rc = store_option (&cmdline, cmd_keyword_query_reserve, + optarg); + break; +- ++ case 's': ++ rc = store_option(&cmdline, cmd_keyword_copy_swap, optarg); ++ break; + case -1: + /* End of options string - start of devices list */ + cmdline.device_id = optind; +@@ -508,6 +518,9 @@ static int do_command(char *device, struct command_line cmdline) + case cmd_keyword_path_all: + rc = disk_reset_chpid(device, NULL); + break; ++ case cmd_keyword_copy_swap: ++ rc = disk_copy_swap(device, cmdline.parm[cmd_keyword_copy_swap].data); ++ break; + default: + error_print ("Unknown command '%s' specified", + get_keyword_name (i)); +-- +2.38.1 + diff --git a/s390utils.spec b/s390utils.spec index 9328bd5..9ea9a6d 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -10,7 +10,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.24.0 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -37,6 +37,9 @@ Source25: 91-zipl.install Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch +# upstream fixes/updates +Patch100: s390utils-%{version}-fedora.patch + Requires: s390utils-core = %{epoch}:%{version}-%{release} Requires: s390utils-base = %{epoch}:%{version}-%{release} Requires: s390utils-osasnmpd = %{epoch}:%{version}-%{release} @@ -63,6 +66,9 @@ be used together with the zSeries (s390) Linux kernel and device drivers. %patch0 -p1 -b .zipl-invert-script-options %patch1 -p1 -b .blscfg-rpm-nvr-sort +# upstream fixes/updates +%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 @@ -896,6 +902,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Tue Nov 22 2022 Dan Horák - 2:2.24.0-2 +- update for Transparent DASD PPRC (Peer-to-Peer Remote Copy) handling + * Thu Nov 10 2022 Dan Horák - 2:2.24.0-1 - rebased to 2.24.0 From c33643ba1021a9c0e30fde5c41ac193a957a80dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Fri, 9 Dec 2022 13:54:52 +0000 Subject: [PATCH 18/84] - rebased to 2.25.0 --- s390-tools-zipl-blscfg-rpm-nvr-sort.patch | 23 +- s390utils-2.24.0-fedora.patch | 1665 --------------------- s390utils-2.25.0-fedora.patch | 0 s390utils.spec | 16 +- sources | 2 +- 5 files changed, 24 insertions(+), 1682 deletions(-) delete mode 100644 s390utils-2.24.0-fedora.patch create mode 100644 s390utils-2.25.0-fedora.patch diff --git a/s390-tools-zipl-blscfg-rpm-nvr-sort.patch b/s390-tools-zipl-blscfg-rpm-nvr-sort.patch index 90866f8..3960de1 100644 --- a/s390-tools-zipl-blscfg-rpm-nvr-sort.patch +++ b/s390-tools-zipl-blscfg-rpm-nvr-sort.patch @@ -1,4 +1,4 @@ -From 14119148dabb7f4f633623c00eece44c5771db10 Mon Sep 17 00:00:00 2001 +From a17c57bf2b7b6d64a509cb5fb02fe46849bc550c 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 @@ -194,10 +194,10 @@ index 0cea1d4..9352f76 100644 return n; -- -2.36.1 +2.37.3 -From 661f143bb0b429c732d0ad9756c745dcb8799bc7 Mon Sep 17 00:00:00 2001 +From 7a51cfc15b870d90bffe1e24a1da922663ffe1d7 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 @@ -208,20 +208,19 @@ Content-Transfer-Encoding: 8bit Signed-off-by: Peter Jones Signed-off-by: Dan Horák --- - zipl/src/Makefile | 2 +- + zipl/src/Makefile | 1 + zipl/src/scan.c | 96 ++++++++++++++++++++++++++++++++++++++++++++++- - 2 files changed, 95 insertions(+), 3 deletions(-) + 2 files changed, 95 insertions(+), 2 deletions(-) diff --git a/zipl/src/Makefile b/zipl/src/Makefile -index 786bb7f..1adc486 100644 +index 64eabe4..7043005 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) +@@ -9,6 +9,7 @@ ALL_LDFLAGS += -Wl,-z,noexecstack $(NO_PIE_LDFLAGS) --libs = $(rootdir)/libutil/libutil.a -+libs = $(rootdir)/libutil/libutil.a -lrpmio -lrpm + libs = $(rootdir)/libutil/libutil.a \ + $(rootdir)/libvtoc/libvtoc.a \ ++ -lrpmio -lrpm 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 @@ -345,5 +344,5 @@ index 9352f76..3327e2d 100644 static int scan_append_section_heading(struct scan_token* scan, int* index, char* name); -- -2.36.1 +2.37.3 diff --git a/s390utils-2.24.0-fedora.patch b/s390utils-2.24.0-fedora.patch deleted file mode 100644 index c03075c..0000000 --- a/s390utils-2.24.0-fedora.patch +++ /dev/null @@ -1,1665 +0,0 @@ -From 5107a7be16e4849fbda7beae0504fdbc0f2cb4b5 Mon Sep 17 00:00:00 2001 -From: Stefan Haberland -Date: Tue, 9 Aug 2022 13:12:26 +0200 -Subject: [PATCH 1/7] zconf/lsdasd: fix Copy Pair related output -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fix the default output for copy pair secondary devices to not show -a faulty blockdevice entry and major:minor combination. - -The new output looks like: - - # lsdasd - Bus-ID Status Name Device Type BlkSz Size Blocks - ================================================================================ - 0.0.9740 secondary ECKD - 0.0.9741 secondary ECKD - 0.0.9742 secondary ECKD - 0.0.e964 active dasda 94:0 ECKD 4096 21129MB 5409180 - 0.0.e967 active dasdb 94:4 ECKD 4096 21129MB 5409180 - 0.0.9330 active dasdc 94:8 ECKD 4096 782MB 200340 - 0.0.9700 active dasdd 94:12 ECKD 4096 782MB 200340 - 0.0.9701 active dasdf 94:20 ECKD 4096 782MB 200340 - 0.0.9702 active dasdh 94:28 ECKD 4096 782MB 200340 - -Also add copy_pairs to extended output: - - # lsdasd -l 9700 - 0.0.9700/dasdd/94:12 - status: active - type: ECKD - blksz: 4096 - size: 782MB - blocks: 200340 - extent_size: 1113 - logical_capacity: 1113 - space_allocated: 1113 - use_diag: 0 - readonly: 0 - eer_enabled: 0 - erplog: 0 - hpf: 1 - uid: IBM.750000000ABT31.9700.00 - fc_security: Unsupported - paths_installed: 38 39 3a 3b - paths_in_use: 38 39 3a 3b - paths_non_preferred: - paths_invalid_cabling: - paths_cuir_quiesced: - paths_invalid_hpf_characteristics: - paths_error_threshold_exceeded: - copy_pairs: 0.0.9700,0.0.9740 0.0.9700,0.0.9743 0.0.9700,0.0.9744 0.0.9700,0.0.9745 - -Signed-off-by: Stefan Haberland -Reviewed-by: Jan Hoeppner -Signed-off-by: Jan Höppner ---- - zconf/lsdasd | 113 +++++++++++++++++++++++++++++++++++++++++++-------- - 1 file changed, 96 insertions(+), 17 deletions(-) - -diff --git a/zconf/lsdasd b/zconf/lsdasd -index 795b33b..8b2cc0f 100755 ---- a/zconf/lsdasd -+++ b/zconf/lsdasd -@@ -146,6 +146,62 @@ function findDASDDebugfsDirectorie() { - fi - } - -+#------------------------------------------------------------------------------ -+# The blockpath can usually be found over the DEVPATH -+# In case of a swapped Copy Pair device the blockdev is likely associated -+# with one of the secondary devices -+# this function checks if the blockdev is associated with the primary device -+# and if not search for it in the secondary device list -+#------------------------------------------------------------------------------ -+function setCorrectBlockPath() { -+ local DRIVERECKD="$SYSFSDIR/bus/ccw/drivers/dasd-eckd/" -+ local DRIVERFBA="$SYSFSDIR/bus/ccw/drivers/dasd-fba/" -+ local SEARCHDIRS= -+ local SEARCHLIST= -+ -+ if [[ "$COPYROLE" == "none" ]] || [[ -d "$DEVPATH/block" ]]; then -+ BLOCKPATH="$DEVPATH"/block/dasd* -+ return -+ fi -+ -+ if [[ -d "$DRIVERECKD" ]]; then -+ SEARCHDIRS="$DRIVERECKD" -+ fi -+ if [[ -d "$DRIVERFBA" ]]; then -+ SEARCHDIRS="$SEARCHDIRS $DRIVERFBA" -+ fi -+ -+ SEARCHLIST=$(echo $SECONDARY_LIST | sed 's/,/ /g') -+ for SEARCHDEV in $SEARCHLIST -+ do -+ if [[ -n "$SEARCHDIRS" ]]; then -+ PRIM_DEVPATH=$(find $SEARCHDIRS -type l -name $SEARCHDEV \ -+ -printf "%h/%l\n" 2> /dev/null) -+ if [[ -d "$PRIM_DEVPATH/block" ]]; then -+ break -+ fi -+ else -+ # The above paths may become invalid in the future, so we keep the -+ # following query as backup: -+ PRIM_DEVPATH=$(find "$SYSFSDIR/devices" -type l -name $SEARCHDEV \ -+ "driver" -lname "*/dasd*" -printf "%h\n" \ -+ 2> /dev/null) -+ fi -+ done -+ -+ BLOCKPATH="$PRIM_DEVPATH"/block/dasd* -+} -+ -+#------------------------------------------------------------------------------ -+# gather Copy Pair related data -+#------------------------------------------------------------------------------ -+function gatherCopyPairData() { -+ read COPYPAIR 2> /dev/null < $DEVPATH/copy_pair -+ PRIMARY_UID=`echo $COPYPAIR | cut -d " " -f1 | cut -d "," -f1` -+ COPYPAIR=`echo "$COPYPAIR" | sed 's/ /,/g' | sed 's/^,//' ` -+ SECONDARY_LIST=`echo ${COPYPAIR//$PRIMARY_UID","/} ` -+} -+ - #------------------------------------------------------------------------------ - # gather device data and call appropriate output function - #------------------------------------------------------------------------------ -@@ -165,16 +221,18 @@ function gatherDeviceData() { - read READONLY 2> /dev/null < $DEVPATH/readonly || continue - read DISCIPLINE 2> /dev/null < $DEVPATH/discipline || continue - read ESE 2> /dev/null < $DEVPATH/ese -+ read COPYROLE 2> /dev/null < $DEVPATH/copy_role - -+ if [[ "$COPYROLE" != "none" ]]; then -+ gatherCopyPairData -+ fi - # Block device specific information is only available for - # devices that are online and not a PAV alias -- if [[ ! "$ONLINE" == 0 ]] && [[ ! "$ALIAS" == 1 ]]; then -- #find device Path to the block device -- if [[ -d "$DEVPATH/block" ]]; then -- set - "$DEVPATH"/block/dasd* -- else -- set - "$DEVPATH"/block:dasd* -- fi -+ if [[ ! "$ONLINE" == 0 ]] && [[ ! "$ALIAS" == 1 ]] && -+ [[ ! "$COPYROLE" == "secondary" ]]; then -+ #find device Path to the block device -+ setCorrectBlockPath -+ set - $BLOCKPATH - MAJMIN= - MAJOR= - MINOR= -@@ -194,10 +252,12 @@ function gatherDeviceData() { - fi - fi - else -- # BLOCKNAME for offline and alias devices will not be -- # printed, it's just a key for sorting -+ # BLOCKNAME for offline, alias and secondary devices -+ # will not be printed, it's just a key for sorting - if [[ "$ONLINE" == 0 ]]; then - BLOCKNAME="" -+ elif [[ "$COPYROLE" == "secondary" ]]; then -+ BLOCKNAME="b" - else - BLOCKNAME="a" - fi -@@ -261,6 +321,15 @@ function newoutput() - return - fi - -+ if [[ "$COPYROLE" == "secondary" ]]; then -+ printf "%s:%s:%-8s secondary %-8s %13s\n" \ -+ "$SORTKEYLEN" "$SORTKEY" \ -+ "$BUSID" \ -+ "$PRIMARY_BLOCKNAME" \ -+ "$DISCIPLINE" -+ return -+ fi -+ - if [[ "$READONLY" == 0 ]]; then - ROSTRING="" - else -@@ -519,10 +588,14 @@ function extended() - "${HPF_PATHS[@]}" \ - "${IFCC_PATHS[@]}" ; - return -- elif [[ "$ALIAS" == 1 ]]; then -- if [[ "$BASEONLY" == "false" ]]; then -- ACTIVE="alias" -- printf "%s:%s:%s# status:\t\t\t\t%s# type: \t\t\t\t%s# use_diag:\t\t\t\t%s# readonly:\t\t\t\t%s# eer_enabled:\t\t\t\t%s# erplog:\t\t\t\t%s# hpf:\t\t\t\t\t%s # uid: \t\t\t\t%s# fc_security: \t\t\t\t%s# paths_installed: \t\t\t%s %s %s %s %s %s %s %s# paths_in_use: \t\t\t%s %s %s %s %s %s %s %s# paths_non_preferred: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_cabling: \t\t%s %s %s %s %s %s %s %s# paths_cuir_quiesced: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_hpf_characteristics: \t%s %s %s %s %s %s %s %s# paths_error_threshold_exceeded: \t%s %s %s %s %s %s %s %s#\n" \ -+ elif [[ "$ALIAS" == 1 ]] || [[ "$COPYROLE" == "secondary" ]]; then -+ if [[ "$BASEONLY" == "false" ]] || [[ "$COPYROLE" == "secondary" ]]; then -+ if [[ "$COPYROLE" == "secondary" ]]; then -+ ACTIVE="secondary" -+ else -+ ACTIVE="alias" -+ fi -+ printf "%s:%s:%s# status:\t\t\t\t%s# type: \t\t\t\t%s# use_diag:\t\t\t\t%s# readonly:\t\t\t\t%s# eer_enabled:\t\t\t\t%s# erplog:\t\t\t\t%s# hpf:\t\t\t\t\t%s # uid: \t\t\t\t%s# fc_security: \t\t\t\t%s# paths_installed: \t\t\t%s %s %s %s %s %s %s %s# paths_in_use: \t\t\t%s %s %s %s %s %s %s %s# paths_non_preferred: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_cabling: \t\t%s %s %s %s %s %s %s %s# paths_cuir_quiesced: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_hpf_characteristics: \t%s %s %s %s %s %s %s %s# paths_error_threshold_exceeded: \t%s %s %s %s %s %s %s %s# copy_pairs:\t\t\t\t%s#\n" \ - "$SORTKEYLEN" "$SORTKEY" \ - "$BUSID" \ - "$ACTIVE" \ -@@ -540,7 +613,8 @@ function extended() - "${CABLE_PATHS[@]}" \ - "${CUIR_PATHS[@]}" \ - "${HPF_PATHS[@]}" \ -- "${IFCC_PATHS[@]}" ; -+ "${IFCC_PATHS[@]}" \ -+ "${COPYPAIR}" ; - fi - return - elif [[ -z "$BLOCKNAME" ]] || [[ -z "$SIZE" ]]; then -@@ -565,7 +639,7 @@ function extended() - DISCIPLINE="${DISCIPLINE} (ESE)" - fi - -- printf "%s:%s:%s/%s/%s%s%s# status:\t\t\t\t%s# type: \t\t\t\t%s# blksz:\t\t\t\t%s# size: \t\t\t\t%s# blocks:\t\t\t\t%s# extent_size:\t\t\t\t%s# logical_capacity:\t\t\t%s# space_allocated:\t\t\t%s# use_diag:\t\t\t\t%s# readonly:\t\t\t\t%s# eer_enabled:\t\t\t\t%s# erplog:\t\t\t\t%s# hpf:\t\t\t\t\t%s# uid: \t\t\t\t%s# fc_security: \t\t\t\t%s# paths_installed: \t\t\t%s %s %s %s %s %s %s %s# paths_in_use: \t\t\t%s %s %s %s %s %s %s %s# paths_non_preferred: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_cabling: \t\t%s %s %s %s %s %s %s %s# paths_cuir_quiesced: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_hpf_characteristics: \t%s %s %s %s %s %s %s %s# paths_error_threshold_exceeded: \t%s %s %s %s %s %s %s %s#\n" \ -+ printf "%s:%s:%s/%s/%s%s%s# status:\t\t\t\t%s# type: \t\t\t\t%s# blksz:\t\t\t\t%s# size: \t\t\t\t%s# blocks:\t\t\t\t%s# extent_size:\t\t\t\t%s# logical_capacity:\t\t\t%s# space_allocated:\t\t\t%s# use_diag:\t\t\t\t%s# readonly:\t\t\t\t%s# eer_enabled:\t\t\t\t%s# erplog:\t\t\t\t%s# hpf:\t\t\t\t\t%s# uid: \t\t\t\t%s# fc_security: \t\t\t\t%s# paths_installed: \t\t\t%s %s %s %s %s %s %s %s# paths_in_use: \t\t\t%s %s %s %s %s %s %s %s# paths_non_preferred: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_cabling: \t\t%s %s %s %s %s %s %s %s# paths_cuir_quiesced: \t\t\t%s %s %s %s %s %s %s %s# paths_invalid_hpf_characteristics: \t%s %s %s %s %s %s %s %s# paths_error_threshold_exceeded: \t%s %s %s %s %s %s %s %s# copy_pairs:\t\t\t\t%s#\n" \ - "$SORTKEYLEN" "$SORTKEY" \ - "$BUSID" \ - "$BLOCKNAME" \ -@@ -593,7 +667,8 @@ function extended() - "${CABLE_PATHS[@]}" \ - "${CUIR_PATHS[@]}" \ - "${HPF_PATHS[@]}" \ -- "${IFCC_PATHS[@]}" ; -+ "${IFCC_PATHS[@]}" \ -+ "${COPYPAIR}" ; - } - - function host() -@@ -710,7 +785,11 @@ function uid() - fi - fi - -- printf "%s:%s:%-8s %-8s %s\n" \ -+ if [[ "$COPYROLE" == "secondary" ]]; then -+ BLOCKNAME="secondary" -+ fi -+ -+ printf "%s:%s:%-8s %-10s %s\n" \ - "$SORTKEYLEN" "$SORTKEY" \ - "$BUSID" \ - "$BLOCKNAME" \ --- -2.38.1 - - -From 803b87e324d704036c5bef1d1daba6cf5b69b668 Mon Sep 17 00:00:00 2001 -From: Stefan Haberland -Date: Wed, 12 Oct 2022 15:55:43 +0200 -Subject: [PATCH 2/7] zconf/lsdasd: add Copy Pair output option -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Add an option -P|--copy-pairs to show all DASD devices with copy -relations set up in the system and their roles. - -The output looks like: - - # ./s390-tools/zconf/lsdasd -h - [...] - -P|--copy-pairs - Print information about copy pairs. - - # ./s390-tools/zconf/lsdasd -P - Bus-ID Role Name Paired devices - ================================================================================ - 0.0.9700 primary dasdd 0.0.9740,0.0.9743,0.0.9744,0.0.9745 - 0.0.9740 secondary 0.0.9700 - 0.0.9701 primary dasdf 0.0.9741 - 0.0.9741 secondary 0.0.9701 - 0.0.9702 primary dasdh 0.0.9742 - 0.0.9742 secondary 0.0.9702 - -Signed-off-by: Stefan Haberland -Reviewed-by: Jan Hoeppner -Signed-off-by: Jan Höppner ---- - zconf/lsdasd | 45 +++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 45 insertions(+) - -diff --git a/zconf/lsdasd b/zconf/lsdasd -index 8b2cc0f..59720b6 100755 ---- a/zconf/lsdasd -+++ b/zconf/lsdasd -@@ -35,6 +35,8 @@ function PrintUsage() { - Print extended information about DASDs. - -H|--host-access-list - Print information about hosts accessing DASDs. -+ -P|--copy-pairs -+ Print information about copy pairs. - -v|--verbose - For compatibility/future use. Currently ignored. - --version -@@ -292,6 +294,8 @@ function gatherDeviceData() { - uid - elif [[ "$OUTPUT" == "host" ]]; then - host -+ elif [[ "$OUTPUT" == "copy" ]]; then -+ copy - else - newoutput - fi -@@ -769,6 +773,41 @@ printf "\n"; - rm -f $temp - } - -+# pad sortkey with given number zeroes -+function padSortKey() -+{ -+ local LEN=$1 -+ for (( i=0; i<$LEN; i++ )) -+ do -+ printf -v SORTKEY "%s0" $SORTKEY -+ done -+} -+ -+function copy() -+{ -+ if [[ "$COPYROLE" == "none" ]]; then -+ return -+ fi -+ -+ SORTKEYLEN=$((${#PRIMARY_UID}+${#DEV_UID})) -+ if [[ "$COPYROLE" == "secondary" ]]; then -+ SORTKEY=$PRIMARY_UID$DEV_UID -+ PAIREDDEVICES=$PRIMARY_UID -+ BLOCKNAME="" -+ else -+ SORTKEY=$PRIMARY_UID -+ padSortKey ${#DEV_UID} -+ PAIREDDEVICES=$SECONDARY_LIST -+ fi -+ -+ printf "%s:%s:%-8s %-10s %-8s %-8s %s \n" \ -+ "$SORTKEYLEN" "$SORTKEY" \ -+ "$BUSID" \ -+ "$COPYROLE" \ -+ "$BLOCKNAME" \ -+ "$PAIREDDEVICES"; -+} -+ - function uid() - { - #-------------------------------------------# -@@ -835,6 +874,9 @@ while [ $# -gt 0 ]; do - --host-access-list|-H) - OUTPUT="host" - ;; -+ --copy-pairs|-P) -+ OUTPUT="copy" -+ ;; - --version) - PrintVersion - exit 0 -@@ -889,6 +931,9 @@ if [[ "$PRINTUID" == "true" ]] && [[ "$OUTPUT" != "old" ]]; then - elif [[ "$OUTPUT" == "new" ]]; then - printf "Bus-ID Status Name Device Type BlkSz Size Blocks\n" - printf "================================================================================\n" -+elif [[ "$OUTPUT" == "copy" ]]; then -+ printf "Bus-ID Role Name Paired devices\n"; -+ printf "================================================================================\n"; - elif [[ "$OUTPUT" == "extended" ]]; then - PROCESSING=" $PROCESSING | sed 's/#/\n/g' " - fi --- -2.38.1 - - -From e742d1c9ae5103c9f88d3fde085e0694efaeeb5a Mon Sep 17 00:00:00 2001 -From: Stefan Haberland -Date: Thu, 11 Aug 2022 13:52:30 +0200 -Subject: [PATCH 3/7] zdev: correctly handle multiple values for CCW devices -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Correctly create multiple lines in the udev rule for CCW device attributes -with multi bit set that contain multiple values. - -Suggested-by: Peter Oberparleiter -Signed-off-by: Stefan Haberland -Reviewed-by: Jan Hoeppner -Reviewed-by: Peter Oberparleiter -Signed-off-by: Jan Höppner ---- - zdev/src/udev_ccw.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/zdev/src/udev_ccw.c b/zdev/src/udev_ccw.c -index 7c0a703..3375a5e 100644 ---- a/zdev/src/udev_ccw.c -+++ b/zdev/src/udev_ccw.c -@@ -221,6 +221,7 @@ static void write_attr_to_file(FILE *fd, struct device_state *state, const char - struct ptrlist_node *p; - struct setting *s; - struct util_list *list = NULL; -+ struct strlist_node *str; - - /* Apply attributes in correct order. */ - list = setting_list_get_sorted(state->settings); -@@ -229,8 +230,13 @@ static void write_attr_to_file(FILE *fd, struct device_state *state, const char - s = p->ptr; - if (s->removed) - continue; -- if ((s->attrib && s->attrib->internal) || -- internal_by_name(s->name)) { -+ if (s->values) { -+ util_list_iterate(s->values, str) { -+ fprintf(fd, "ATTR{[ccw/%s]%s}=\"%s\"\n", -+ id, s->name, str->str); -+ } -+ } else if ((s->attrib && s->attrib->internal) || -+ internal_by_name(s->name)) { - fprintf(fd, "ENV{zdev_%s}=\"%s\"\n", - internal_get_name(s->name), s->value); - } else { --- -2.38.1 - - -From f654b971d0e78a139c7ed8c0df821af2f4356a8b Mon Sep 17 00:00:00 2001 -From: Stefan Haberland -Date: Tue, 9 Aug 2022 16:17:23 +0200 -Subject: [PATCH 4/7] zdev: add copy_pair attribute for DASD devices -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The DASD device driver has a new attribute copy_pair to make storage -server copy pairs known to the driver. -Add this attribute to zdev. - -Usage example: - -Add two copy pairs 1000,2000 and 1000,3000 to a DASD device 1000 -$ chzdev dasd 1000 copy_pairs=1000,2000 copy_pairs=1000,3000 - -or - -$ chzdev dasd 1000 copy_pairs="1000,2000 1000,3000" - -To add a third copy pair later on: -$ chzdev dasd 1000 copy_pairs=1000,4000 - -To remove all copy pairs from the device 1000: -$ chzdev dasd 1000 -r copy_pairs - -Signed-off-by: Stefan Haberland -Reviewed-by: Peter Oberparleiter -Signed-off-by: Jan Höppner ---- - zdev/src/dasd.c | 93 +++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 93 insertions(+) - -diff --git a/zdev/src/dasd.c b/zdev/src/dasd.c -index daec916..f9fd231 100644 ---- a/zdev/src/dasd.c -+++ b/zdev/src/dasd.c -@@ -137,6 +137,21 @@ static struct attrib dasd_attr_readonly = { - .accept = ACCEPT_ARRAY(ACCEPT_RANGE(0, 1)), - }; - -+static struct attrib dasd_attr_copy_pair = { -+ .name = "copy_pair", -+ .title = "Modify copy-pair relations", -+ .desc = "Make a copy-pair relation for this device known to the DASD " -+ "driver.\n" -+ "A copy-pair is a comma-separated pair of device bus-IDs\n" -+ ",.\n" -+ "Example: 0.0.1000,0.0.2000\n" -+ "Up to 4 copy-pairs are accepted by the DASD driver for each " -+ "device.\n", -+ .unstable = 1, -+ .multi = 1, -+ .activerem = 1, -+}; -+ - static struct attrib dasd_attr_erplog = { - .name = "erplog", - .title = "Enable logging of Error Recovery Processing", -@@ -600,6 +615,81 @@ persistent: - return rc; - } - -+/* Remove all entries from the copy_pair attribute by writing 'clear' to it. */ -+static void dasd_clear_copy_pair(struct setting *s) -+{ -+ free(s->value); -+ s->value = misc_strdup("clear"); -+ strlist_free(s->values); -+ s->values = strlist_new(); -+ strlist_add(s->values, "clear"); -+ s->removed = 0; -+ s->modified = 1; -+} -+ -+/* -+ * Copy-pair values may contain multiple values in one line -+ * those need to be split up and put in multiple values entries -+ * delimiter is " " and "\n" depending on the source -+ * values read from sysfs have " " as delimiter and values from -+ * zdev have "\n" -+ */ -+static void dasd_split_copy_pair(struct setting *s) -+{ -+ struct util_list *new = NULL; -+ struct strlist_node *node; -+ -+ new = strlist_new(); -+ util_list_iterate(s->values, node) -+ strlist_add_multi(new, node->str, "\n ", 0); -+ -+ strlist_free(s->values); -+ s->values = new; -+} -+ -+/* -+ * For persistent configurations one value per values[] entry is required -+ * to achieve a correct multi-line copy-pair statement in the resulting -+ * udev-rule. -+ */ -+static exit_code_t dasd_st_configure_persistent(struct subtype *st, -+ struct device *dev) -+{ -+ struct setting *s; -+ -+ util_list_iterate(&dev->persistent.settings->list, s) { -+ if (strcmp(s->name, "copy_pair") == 0) -+ dasd_split_copy_pair(s); -+ } -+ -+ return st->super->configure_persistent(st, dev); -+} -+ -+/* -+ * For active configurations one value per values[] entry is required to -+ * correctly operate the sysfs attribute. -+ * -+ * In case of removal the string "clear" has to be written to the -+ * value and values[] entry. -+ */ -+static exit_code_t dasd_st_configure_active(struct subtype *st, -+ struct device *dev) -+{ -+ struct setting *s; -+ -+ util_list_iterate(&dev->active.settings->list, s) { -+ if (strcmp(s->name, "copy_pair") != 0) -+ continue; -+ -+ if (s->removed) -+ dasd_clear_copy_pair(s); -+ else -+ dasd_split_copy_pair(s); -+ } -+ -+ return st->super->configure_active(st, dev); -+} -+ - /* - * DASD device sub-types. - */ -@@ -634,10 +724,13 @@ struct subtype dasd_subtype_eckd = { - &dasd_attr_last_known_reservation_state, - &dasd_attr_safe_offline, - &dasd_attr_fc_security, -+ &dasd_attr_copy_pair, - &internal_attr_early, - ), - .unknown_dev_attribs = 1, - -+ .configure_active = &dasd_st_configure_active, -+ .configure_persistent = &dasd_st_configure_persistent, - .check_pre_configure = &dasd_st_check_pre_configure, - .add_modules = &dasd_st_add_modules, - }; --- -2.38.1 - - -From 4e28047eb4cacc7b7208018a8c095102517517e8 Mon Sep 17 00:00:00 2001 -From: Stefan Haberland -Date: Thu, 10 Nov 2022 16:11:09 +0100 -Subject: [PATCH 5/7] tunedasd: move tunedasd ioctls to libdasd -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Move all DASD IOCTLs to libdasd and adapt all affected -users accordingly. - -Signed-off-by: Stefan Haberland -Reviewed-by: Jan Hoeppner -Signed-off-by: Jan Höppner ---- - include/lib/dasd_base.h | 73 +++++++++++ - libdasd/dasd_ioctl.c | 129 +++++++++++++++++++ - tunedasd/src/disk.c | 268 ++++++++-------------------------------- - 3 files changed, 252 insertions(+), 218 deletions(-) - -diff --git a/include/lib/dasd_base.h b/include/lib/dasd_base.h -index b12e1f9..11ec94b 100644 ---- a/include/lib/dasd_base.h -+++ b/include/lib/dasd_base.h -@@ -187,6 +187,61 @@ typedef struct format_check_t { - #define DASD_FMT_ERR_RECORD_ID 4 - #define DASD_FMT_ERR_KEY_LENGTH 5 - -+/* -+ * struct profile_info_t -+ * holds the profiling information -+ */ -+typedef struct dasd_profile_info_t { -+ unsigned int dasd_io_reqs; /* # of requests processed at all */ -+ unsigned int dasd_io_sects; /* # of sectors processed at all */ -+ unsigned int dasd_io_secs[32]; /* request's sizes */ -+ unsigned int dasd_io_times[32]; /* requests's times */ -+ unsigned int dasd_io_timps[32]; /* requests's times per sector */ -+ unsigned int dasd_io_time1[32]; /* time from build to start */ -+ unsigned int dasd_io_time2[32]; /* time from start to irq */ -+ unsigned int dasd_io_time2ps[32]; /* time from start to irq */ -+ unsigned int dasd_io_time3[32]; /* time from irq to end */ -+ unsigned int dasd_io_nr_req[32]; /* # of requests in chanq */ -+} dasd_profile_info_t; -+ -+/* -+ * struct attrib_data_t -+ * represents the operation (cache) bits for the device. -+ * Used in DE to influence caching of the DASD. -+ */ -+typedef struct attrib_data_t { -+ unsigned char operation : 3; /* cache operation mode */ -+ unsigned char reserved : 5; -+ unsigned short nr_cyl; /* no of cyliners for read ahaed */ -+ unsigned char reserved2[29]; /* for future use */ -+} __attribute__((packed)) attrib_data_t; -+ -+/* definition of operation (cache) bits within attributes of DE */ -+#define DASD_NORMAL_CACHE 0x0 -+#define DASD_BYPASS_CACHE 0x1 -+#define DASD_INHIBIT_LOAD 0x2 -+#define DASD_SEQ_ACCESS 0x3 -+#define DASD_SEQ_PRESTAGE 0x4 -+#define DASD_REC_ACCESS 0x5 -+ -+/* -+ * Data returned by Sense Path Group ID (SNID) -+ */ -+struct dasd_snid_data { -+ struct { -+ __u8 group : 2; -+ __u8 reserve : 2; -+ __u8 mode : 1; -+ __u8 res : 3; -+ } __attribute__((packed)) path_state; -+ __u8 pgid[11]; -+} __attribute__((packed)); -+ -+struct dasd_snid_ioctl_data { -+ struct dasd_snid_data data; -+ __u8 path_mask; -+} __attribute__((packed)); -+ - #ifndef __linux__ - /* definition from hdreg.h */ - struct hd_geometry { -@@ -207,12 +262,24 @@ struct hd_geometry { - #define BIODASDRSRV _IO(DASD_IOCTL_LETTER, 2) - /* Release the device for the current LPAR */ - #define BIODASDRLSE _IO(DASD_IOCTL_LETTER, 3) -+/* Unconditional reserve the device for the current LPAR */ -+#define BIODASDSLCK _IO(DASD_IOCTL_LETTER, 4) -+/* reset profiling information of a device */ -+#define BIODASDPRRST _IO(DASD_IOCTL_LETTER, 5) -+/* retrieve profiling information of a device */ -+#define BIODASDPRRD _IOR(DASD_IOCTL_LETTER, 2, dasd_profile_info_t) - /* Get information on a dasd device (enhanced) */ - #define BIODASDINFO2 _IOR(DASD_IOCTL_LETTER, 3, dasd_information2_t) -+/* Get Attributes (cache operations) */ -+#define BIODASDGATTR _IOR(DASD_IOCTL_LETTER, 5, attrib_data_t) - /* #define BIODASDFORMAT _IOW(IOCTL_LETTER,0,format_data_t) , deprecated */ - #define BIODASDFMT _IOW(DASD_IOCTL_LETTER, 1, format_data_t) -+/* Set Attributes (cache operations) */ -+#define BIODASDSATTR _IOW(DASD_IOCTL_LETTER, 2, attrib_data_t) - /* Release Allocated Space */ - #define BIODASDRAS _IOW(DASD_IOCTL_LETTER, 3, format_data_t) -+/* Get Sense Path Group ID (SNID) data */ -+#define BIODASDSNID _IOWR(DASD_IOCTL_LETTER, 1, struct dasd_snid_ioctl_data) - /* Check device format according to format_data_t */ - #define BIODASDCHECKFMT _IOWR(DASD_IOCTL_LETTER, 2, format_check_t) - -@@ -245,5 +312,11 @@ int dasd_is_ro(const char *device, bool *ro); - int dasd_reread_partition_table(const char *device, int ntries); - int dasd_disk_reserve(const char *device); - int dasd_disk_release(const char *device); -+int dasd_slock(const char *device); -+int dasd_get_cache(const char *device, attrib_data_t *attrib_data); -+int dasd_set_cache(const char *device, attrib_data_t *attrib_data); -+int dasd_query_reserve(const char *device); -+int dasd_profile(const char *device, dasd_profile_info_t *dasd_profile_info); -+int dasd_reset_profile(const char *device); - - #endif /* LIB_DASD_BASE_H */ -diff --git a/libdasd/dasd_ioctl.c b/libdasd/dasd_ioctl.c -index f954961..40e726c 100644 ---- a/libdasd/dasd_ioctl.c -+++ b/libdasd/dasd_ioctl.c -@@ -16,6 +16,7 @@ - #include - #include - #include -+#include - - #include "lib/dasd_base.h" - -@@ -321,3 +322,131 @@ int dasd_disk_release(const char *device) - - return 0; - } -+ -+/* -+ * Unconditionally reserve DASD disk -+ * -+ * An existing reserve lock is lifted (steal lock) and the device -+ * is reserved. -+ * -+ * @param[in] device node device node's name -+ * -+ * @retval 0 in case of success -+ * @retval errno in case of failure -+ */ -+int dasd_slock(const char *device) -+{ -+ int fd; -+ -+ fd = dasd_open_device(device, O_RDONLY); -+ RUN_IOCTL(fd, BIODASDSLCK, NULL); -+ dasd_close_device(fd); -+ -+ return 0; -+} -+ -+/* -+ * Get the caching algorithm used for the channel programs of this device. -+ * -+ * @param[in] device node device node's name -+ * @param[out] attrib_data pointer to dasd attrib data with: -+ * 'cache' is the caching mode -+ * 'no_cyl' the number of cylinders to be cached. -+ * -+ * @retval 0 in case of success -+ * @retval errno in case of failure -+ */ -+int dasd_get_cache(const char *device, attrib_data_t *attrib_data) -+{ -+ int fd; -+ -+ fd = dasd_open_device(device, O_RDONLY); -+ RUN_IOCTL(fd, BIODASDGATTR, attrib_data); -+ dasd_close_device(fd); -+ -+ return 0; -+} -+ -+/* -+ * Set the caching algorithm used for the channel programs of this device. -+ * -+ * @param[in] device node device node's name -+ * @param[in] attrib_data pointer to dasd attrib data with: -+ * 'cache' is the caching mode -+ * 'no_cyl' the number of cylinders to be cached. -+ * -+ * @retval 0 in case of success -+ * @retval errno in case of failure -+ */ -+int dasd_set_cache(const char *device, attrib_data_t *attrib_data) -+{ -+ int fd; -+ -+ fd = dasd_open_device(device, O_RDONLY); -+ RUN_IOCTL(fd, BIODASDSATTR, attrib_data); -+ dasd_close_device(fd); -+ -+ return 0; -+} -+ -+/* -+ * Get reserve status of device. -+ * -+ * @param[in] device node device node's name -+ * -+ * @retval errno in case of failure -+ * @retval 0 unreserved -+ * @retval 1 implicit reserved -+ * @retval 2 other reservation -+ * @retval 3 reserved -+ */ -+int dasd_query_reserve(const char *device) -+{ -+ struct dasd_snid_ioctl_data snid = { 0 }; -+ int fd; -+ -+ fd = dasd_open_device(device, O_RDONLY); -+ RUN_IOCTL(fd, BIODASDSNID, &snid); -+ dasd_close_device(fd); -+ -+ return snid.data.path_state.reserve; -+} -+ -+/* -+ * Get and print the profiling info of the device. -+ * -+ * @param[in] device node device node's name -+ * @param[in] dasd_profile_info pointer to dasd profile info -+ * -+ * @retval 0 in case of success -+ * @retval errno in case of failure -+ */ -+int dasd_profile(const char *device, dasd_profile_info_t *dasd_profile_info) -+{ -+ int fd; -+ -+ fd = dasd_open_device(device, O_RDONLY); -+ RUN_IOCTL(fd, BIODASDPRRD, dasd_profile_info); -+ dasd_close_device(fd); -+ -+ return 0; -+} -+ -+/* -+ * Reset the profiling counters of the device. -+ * -+ * @param[in] device node device node's name -+ * -+ * @retval 0 in case of success -+ * @retval errno in case of failure -+ */ -+int dasd_reset_profile(const char *device) -+{ -+ int fd; -+ -+ fd = dasd_open_device(device, O_RDONLY); -+ RUN_IOCTL(fd, BIODASDPRRST, NULL); -+ dasd_close_device(fd); -+ -+ return 0; -+} -diff --git a/tunedasd/src/disk.c b/tunedasd/src/disk.c -index f240651..1e8de16 100644 ---- a/tunedasd/src/disk.c -+++ b/tunedasd/src/disk.c -@@ -19,6 +19,7 @@ - #include - #include - -+#include "lib/dasd_base.h" - #include "lib/dasd_sys.h" - - #include "disk.h" -@@ -26,91 +27,6 @@ - - #define BUS_ID_SIZE 30 - --/* -- * DASD DEFINITIONS (copied from dasd.h) -- */ -- --#define DASD_IOCTL_LETTER 'D' -- --/* -- * struct profile_info_t -- * holds the profiling information -- */ --typedef struct dasd_profile_info_t { -- unsigned int dasd_io_reqs; /* # of requests processed at all */ -- unsigned int dasd_io_sects; /* # of sectors processed at all */ -- unsigned int dasd_io_secs[32]; /* request's sizes */ -- unsigned int dasd_io_times[32]; /* requests's times */ -- unsigned int dasd_io_timps[32]; /* requests's times per sector */ -- unsigned int dasd_io_time1[32]; /* time from build to start */ -- unsigned int dasd_io_time2[32]; /* time from start to irq */ -- unsigned int dasd_io_time2ps[32]; /*time from start to irq */ -- unsigned int dasd_io_time3[32]; /* time from irq to end */ -- unsigned int dasd_io_nr_req[32]; /* # of requests in chanq */ --} dasd_profile_info_t; -- -- --/* -- * struct attrib_data_t -- * represents the operation (cache) bits for the device. -- * Used in DE to influence caching of the DASD. -- */ --typedef struct attrib_data_t { -- unsigned char operation:3; /* cache operation mode */ -- unsigned char reserved:5; -- unsigned short nr_cyl; /* no of cyliners for read ahaed */ -- unsigned char reserved2[29]; /* for future use */ --} __attribute__ ((packed)) attrib_data_t; -- --/* definition of operation (cache) bits within attributes of DE */ --#define DASD_NORMAL_CACHE 0x0 --#define DASD_BYPASS_CACHE 0x1 --#define DASD_INHIBIT_LOAD 0x2 --#define DASD_SEQ_ACCESS 0x3 --#define DASD_SEQ_PRESTAGE 0x4 --#define DASD_REC_ACCESS 0x5 -- --/* -- * Data returned by Sense Path Group ID (SNID) -- */ --struct dasd_snid_data { -- struct { -- __u8 group:2; -- __u8 reserve:2; -- __u8 mode:1; -- __u8 res:3; -- } __attribute__ ((packed)) path_state; -- __u8 pgid[11]; --} __attribute__ ((packed)); -- --struct dasd_snid_ioctl_data { -- struct dasd_snid_data data; -- __u8 path_mask; --} __attribute__ ((packed)); -- -- --/* -- * DASD-IOCTLs (copied from dasd.h) -- */ --/* Issue a reserve/release command, rsp. */ --#define BIODASDRSRV _IO (DASD_IOCTL_LETTER,2) /* reserve */ --#define BIODASDRLSE _IO (DASD_IOCTL_LETTER,3) /* release */ --#define BIODASDSLCK _IO (DASD_IOCTL_LETTER,4) /* steal lock */ --/* reset profiling information of a device */ --#define BIODASDPRRST _IO (DASD_IOCTL_LETTER,5) -- --/* retrieve profiling information of a device */ --#define BIODASDPRRD _IOR (DASD_IOCTL_LETTER,2,dasd_profile_info_t) --/* Get Attributes (cache operations) */ --#define BIODASDGATTR _IOR(DASD_IOCTL_LETTER,5,attrib_data_t) -- --/* Set Attributes (cache operations) */ --#define BIODASDSATTR _IOW (DASD_IOCTL_LETTER,2,attrib_data_t) -- --/* Get Sense Path Group ID (SNID) data */ --#define BIODASDSNID _IOWR(DASD_IOCTL_LETTER, 1, struct dasd_snid_ioctl_data) -- -- - /* id definition for profile items */ - enum prof_id { - prof_reqs = 0, -@@ -241,48 +157,33 @@ check_prof_item (char* prof_item) - * 'cache' is the caching mode (see ESS docu for more info) and 'no_cyl' - * the number of cylinders to be cached. - */ --int --disk_get_cache (char* device) -+int disk_get_cache(char *device) - { -- int fd; - attrib_data_t attrib_data; -- -- /* Open device file */ -- fd = open (device, O_RDONLY); -- if (fd == -1) { -- error_print ("<%s> - %s", device, strerror (errno)); -- return -1; -- } -+ int rc; - -- /* Get the given caching attributes */ -- if (ioctl (fd, BIODASDGATTR, &attrib_data)) { -- error_print ("Could not get cache attributes for device <%s>", -- device); -- close (fd); -- return -1; -- } -+ rc = dasd_get_cache(device, &attrib_data); -+ if (rc) -+ return rc; - - printf ("%s (%i cyl)\n", - get_cache_name(attrib_data.operation), - attrib_data.nr_cyl); - -- close (fd); - return 0; - } - -- - /* - * Set the caching algorithm used for the channel programs of this device. - * 'cache' is the caching mode (see ESS docu for more info) and 'no_cyl' - * the number of cylinders to be cached. - */ --int --disk_set_cache (char* device, char* cache, char* no_cyl) -+int disk_set_cache(char *device, char *cache, char *no_cyl) - { -- int fd; - attrib_data_t attrib_data; -- -- /* get caching mode and # cylinders */ -+ int rc; -+ -+ /* get caching mode and # cylinders */ - attrib_data.operation = check_cache (cache); - attrib_data.nr_cyl = check_no_cyl (no_cyl); - -@@ -292,52 +193,34 @@ disk_set_cache (char* device, char* cache, char* no_cyl) - attrib_data.nr_cyl); - } - -- /* Open device file */ -- fd = open (device, O_RDONLY); -- if (fd == -1) { -- error_print ("<%s> - %s", device, strerror (errno)); -- return -1; -- } -- - /* Set the given caching attributes */ - printf ("Setting cache mode for device <%s>...\n", device); -- if (ioctl (fd, BIODASDSATTR, &attrib_data)) { -- error_print ("Could not set caching for device <%s>", device); -- close (fd); -+ rc = dasd_set_cache(device, &attrib_data); -+ if (rc) { -+ error_print("Could not set caching for device <%s>", device); - return -1; - } -- - printf ("Done.\n"); -- close (fd); -+ - return 0; - } - -- - /* - * Reserve the device. - */ --int --disk_reserve (char* device) -+int disk_reserve(char *device) - { -- int fd; -- -- /* Open device file */ -- fd = open (device, O_RDONLY); -- if (fd == -1) { -- error_print ("<%s> - %s", device, strerror (errno)); -- return -1; -- } -+ int rc; - - /* Reserve device */ - printf ("Reserving device <%s>...\n", device); -- if (ioctl (fd, BIODASDRSRV)) { -- error_print ("Could not reserve device <%s>", device); -- close (fd); -+ rc = dasd_disk_reserve(device); -+ if (rc) { -+ error_print("Could not reserve device <%s>", device); - return -1; - } - -- printf ("Done.\n"); -- close (fd); -+ printf("Done.\n"); - return 0; - } - -@@ -345,28 +228,18 @@ disk_reserve (char* device) - /* - * Release the device. - */ --int --disk_release (char* device) -+int disk_release(char *device) - { -- int fd; -- -- /* Open device file */ -- fd = open (device, O_RDONLY); -- if (fd == -1) { -- error_print ("<%s> - %s", device, strerror (errno)); -- return -1; -- } -+ int rc; - -- /* Release device */ - printf ("Releasing device <%s>...\n", device); -- if (ioctl (fd, BIODASDRLSE)) { -- error_print ("Could not release device <%s>", device); -- close (fd); -+ rc = dasd_disk_release(device); -+ if (rc) { -+ error_print("Could not release device <%s>", device); - return -1; - } - -- printf ("Done.\n"); -- close (fd); -+ printf("Done.\n"); - return 0; - } - -@@ -376,29 +249,19 @@ disk_release (char* device) - * This means to reserve the device even if it was already reserved. - * The current reserve is broken (steal lock). - */ --int --disk_slock (char* device) -+int disk_slock(char *device) - { -- int fd; -- -- /* Open device file */ -- fd = open (device, O_RDONLY); -- if (fd == -1) { -- error_print ("<%s> - %s", device, strerror (errno)); -- return -1; -- } -+ int rc; - - /* Unconditional reserve device */ - printf ("Unconditional reserving device <%s>...\n", device); -- if (ioctl (fd, BIODASDSLCK)) { -- error_print ("Could not unconditional reserve device <%s>", -- device); -- close (fd); -+ rc = dasd_slock(device); -+ if (rc) { -+ error_print("Could not unconditional reserve device <%s>", device); - return -1; - } -- - printf ("Done.\n"); -- close (fd); -+ - return 0; - } - -@@ -407,27 +270,16 @@ disk_slock (char* device) - * Uses the Sense Path Group ID (SNID) ioctl to find out if - * a device is reserved to it's path group. - */ --int --disk_query_reserve_status(char* device) -+int disk_query_reserve_status(char *device) - { -- int fd; -- struct dasd_snid_ioctl_data snid; -+ int rc; - -- /* Open device file */ -- fd = open (device, O_RDONLY); -- if (fd == -1) { -- error_print ("<%s> - %s", device, strerror (errno)); -+ rc = dasd_query_reserve(device); -+ if (rc < 0) { -+ error_print("Could not read reserve status for device <%s>", device); - return -1; - } -- snid.path_mask = 0; -- /* Release device */ -- if (ioctl(fd, BIODASDSNID, &snid)) { -- error_print("Could not read reserve status" -- " for device <%s>", device); -- close (fd); -- return -1; -- } -- switch (snid.data.path_state.reserve) { -+ switch (rc) { - case 0: - printf("none\n"); - break; -@@ -441,7 +293,7 @@ disk_query_reserve_status(char* device) - printf("reserved\n"); - break; - } -- close (fd); -+ - return 0; - } - -@@ -615,21 +467,14 @@ static int disk_profile_item(dasd_profile_info_t dasd_profile_info, - /* - * Get and print the profiling info of the device. - */ --int --disk_profile (char* device, char* prof_item) -+int disk_profile(char *device, char *prof_item) - { -- int fd, rc; - dasd_profile_info_t dasd_profile_info; -- -- /* Open device file */ -- fd = open (device, O_RDONLY); -- if (fd == -1) { -- error_print ("<%s> - %s", device, strerror (errno)); -- return -1; -- } -+ int rc; - - /* Get the profile info */ -- if (ioctl (fd, BIODASDPRRD, &dasd_profile_info)) { -+ rc = dasd_profile(device, &dasd_profile_info); -+ if (rc) { - switch (errno) { - case EIO: /* profiling is not active */ - error_print ("Profiling (on device <%s>) is not " -@@ -639,7 +484,6 @@ disk_profile (char* device, char* prof_item) - error_print ("Could not get profile info for device " - "<%s>.", device); - } -- close (fd); - return -1; - } - /* Check for profile item or summary */ -@@ -648,38 +492,26 @@ disk_profile (char* device, char* prof_item) - } else { - rc = disk_profile_item (dasd_profile_info, prof_item); - } -- -- close (fd); -+ - return rc; - } - -- - /* - * Reset the profiling counters of the device. - */ --int --disk_reset_prof (char* device) -+int disk_reset_prof(char *device) - { -- int fd; -- -- /* Open device file */ -- fd = open (device, O_RDONLY); -- if (fd == -1) { -- error_print ("<%s> - %s", device, strerror (errno)); -- return -1; -- } -+ int rc; - - /* reset profile info */ - printf ("Resetting profile info for device <%s>...\n", device); -- if (ioctl (fd, BIODASDPRRST)) { -- error_print ("Could not reset profile info for device <%s>", -- device); -- close (fd); -+ rc = dasd_reset_profile(device); -+ if (rc) { -+ error_print("Could not reset profile info for device <%s>", device); - return -1; - } -- - printf ("Done.\n"); -- close (fd); -+ - return 0; - } - --- -2.38.1 - - -From 3aa7f6e29871c06537ab95bf2a14b5eb3ca6e847 Mon Sep 17 00:00:00 2001 -From: Stefan Haberland -Date: Thu, 27 Oct 2022 15:51:00 +0200 -Subject: [PATCH 6/7] libdasd: fix ioctl macro to return also positive return - codes -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -In case of an error the ioctl macro only returns errno to the calling -function. -This misses positive returncodes from ioctls. -Change the macro to also return positive return codes. - -Signed-off-by: Stefan Haberland -Reviewed-by: Jan Hoeppner -Signed-off-by: Jan Höppner ---- - libdasd/dasd_ioctl.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git a/libdasd/dasd_ioctl.c b/libdasd/dasd_ioctl.c -index 40e726c..3a36375 100644 ---- a/libdasd/dasd_ioctl.c -+++ b/libdasd/dasd_ioctl.c -@@ -28,11 +28,13 @@ - - #define RUN_IOCTL(fd, req, argp) \ - do { \ -- if (ioctl(fd, req, argp) != 0) { \ -- int err = errno; \ -- if (err != EBADF) \ -+ int rc = ioctl(fd, req, argp); \ -+ if (rc != 0) { \ -+ if (rc == -1) \ -+ rc = errno; \ -+ if (rc != EBADF) \ - dasd_close_device(fd); \ -- return err; \ -+ return rc; \ - } \ - } while (0) - --- -2.38.1 - - -From 3f12bdf4c728caeaeaa64158efb26f917d905b08 Mon Sep 17 00:00:00 2001 -From: Stefan Haberland -Date: Fri, 11 Nov 2022 13:17:32 +0100 -Subject: [PATCH 7/7] tunedasd: add copy_pair swap capability -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Add an option to tunedasd to trigger a copy pair swap using the appropriate -ioctl for DASD devices. - - -s, --copy-pair-swap COPY_PAIR - -This command requires a comma separated pair of primary,secondary to be -specified. In case of success the old secondary will become the new primary -device and the old primary will become a secondary device. - -Example: - -tunedasd /dev/dasda -s 0.0.9700,0.0.9740 - -This will set the old secondary device 0.0.9740 as the new primary. -The old primary device 0.0.9700 will automatically become a secondary -device. - -Signed-off-by: Stefan Haberland -Reviewed-by: Jan Hoeppner -Signed-off-by: Jan Höppner ---- - include/lib/dasd_base.h | 14 ++++++++-- - libdasd/dasd_ioctl.c | 28 ++++++++++++++++++++ - tunedasd/include/disk.h | 1 + - tunedasd/man/tunedasd.8 | 14 ++++++++++ - tunedasd/src/disk.c | 50 ++++++++++++++++++++++++++++++++++-- - tunedasd/src/tunedasd.c | 57 +++++++++++++++++++++++++---------------- - 6 files changed, 138 insertions(+), 26 deletions(-) - -diff --git a/include/lib/dasd_base.h b/include/lib/dasd_base.h -index 11ec94b..400e374 100644 ---- a/include/lib/dasd_base.h -+++ b/include/lib/dasd_base.h -@@ -20,8 +20,8 @@ - #include - #include - --/* A bus id of a DASD is 8 characters long. E.g. 0.0.4711 */ --#define DASD_BUS_ID_SIZE 9 -+/* the definition of a BUSID in the DASD driver is 20 */ -+#define DASD_BUS_ID_SIZE 20 - - typedef struct dasd_information2_t { - unsigned int devno; /* S/390 devno */ -@@ -242,6 +242,13 @@ struct dasd_snid_ioctl_data { - __u8 path_mask; - } __attribute__((packed)); - -+struct dasd_copypair_swap_data { -+ char primary[DASD_BUS_ID_SIZE]; /* BUSID of primary */ -+ char secondary[DASD_BUS_ID_SIZE]; /* BUSID of secondary */ -+ /* Reserved for future updates. */ -+ char reserved[64]; -+}; -+ - #ifndef __linux__ - /* definition from hdreg.h */ - struct hd_geometry { -@@ -278,6 +285,8 @@ struct hd_geometry { - #define BIODASDSATTR _IOW(DASD_IOCTL_LETTER, 2, attrib_data_t) - /* Release Allocated Space */ - #define BIODASDRAS _IOW(DASD_IOCTL_LETTER, 3, format_data_t) -+/* Swap copy pair */ -+#define BIODASDPPRCSWAP _IOW(DASD_IOCTL_LETTER, 4, struct dasd_copypair_swap_data) - /* Get Sense Path Group ID (SNID) data */ - #define BIODASDSNID _IOWR(DASD_IOCTL_LETTER, 1, struct dasd_snid_ioctl_data) - /* Check device format according to format_data_t */ -@@ -318,5 +327,6 @@ int dasd_set_cache(const char *device, attrib_data_t *attrib_data); - int dasd_query_reserve(const char *device); - int dasd_profile(const char *device, dasd_profile_info_t *dasd_profile_info); - int dasd_reset_profile(const char *device); -+int dasd_copy_swap(const char *device, struct dasd_copypair_swap_data *data); - - #endif /* LIB_DASD_BASE_H */ -diff --git a/libdasd/dasd_ioctl.c b/libdasd/dasd_ioctl.c -index 3a36375..f684761 100644 ---- a/libdasd/dasd_ioctl.c -+++ b/libdasd/dasd_ioctl.c -@@ -452,3 +452,31 @@ int dasd_reset_profile(const char *device) - - return 0; - } -+ -+/* -+ * Initiate the swap of a copy pairs primary,secondary relation. -+ * The old secondary will become the new primary and vice versa. -+ * -+ * @param[in] device node device node's name -+ * @param[in] copy_pair data pointer to dasd copypair data with: -+ * 'primary' old primary, becoming secondary -+ * 'secondary' old secondary, becoming primary. -+ * -+ * @retval errno in case of failure -+ * @retval 0 in case of success -+ * @retval 1 swap data invalid -+ * @retval 2 no active device found -+ * @retval 3 wrong primary specified -+ * @retval 4 secondary device not found -+ * @retval 5 swap already running -+ */ -+int dasd_copy_swap(const char *device, struct dasd_copypair_swap_data *data) -+{ -+ int fd; -+ -+ fd = dasd_open_device(device, O_RDONLY); -+ RUN_IOCTL(fd, BIODASDPPRCSWAP, data); -+ dasd_close_device(fd); -+ -+ return 0; -+} -diff --git a/tunedasd/include/disk.h b/tunedasd/include/disk.h -index ea35f6f..55a32d0 100644 ---- a/tunedasd/include/disk.h -+++ b/tunedasd/include/disk.h -@@ -31,6 +31,7 @@ int disk_query_reserve_status(char* device); - int disk_profile (char* device, char* prof_item); - int disk_reset_prof(char *device); - int disk_reset_chpid(char *device, char *chpid); -+int disk_copy_swap(char *device, char *copy_pair); - - #endif /* not DISK_H */ - -diff --git a/tunedasd/man/tunedasd.8 b/tunedasd/man/tunedasd.8 -index 94c3608..ae41b97 100644 ---- a/tunedasd/man/tunedasd.8 -+++ b/tunedasd/man/tunedasd.8 -@@ -174,6 +174,14 @@ Reset all channel paths of the selected device. The channel paths - might be suspended due to high IFCC error rates or a High Performance - FICON failure. Use this option to resume considering all defined - channel paths for I/O. -+.TP -+.BR "\-s" " or " "\-\-copy\-pair\-swap " -+Swap the copy roles of the specified copy pair. The has to -+be a comma separated pair of \fBPRIMARY,SECONDARY\fR where -+\fBPRIMARY\fR is the old primary device that will become a secondary -+automatically. The old \fBSECONDARY\fR device will become the new -+primary device. Both devices have to be online for this operation to -+succeed. - .\" - .\".TP - .\".BR "\-o" " or " "\-\-online" -@@ -197,6 +205,12 @@ channel paths for I/O. - .br - - tunedasd -p 45 /dev/dasdc -+ -+.br -+4. Scenario: Swap copy pair 0.0.9700 and 0.0.9740 -+.br -+ -+ tunedasd -s 0.0.9700,0.0.9740 /dev/dasdc - .br - .SH "SEE ALSO" - .BR dasdview (8), -diff --git a/tunedasd/src/disk.c b/tunedasd/src/disk.c -index 1e8de16..490c1c5 100644 ---- a/tunedasd/src/disk.c -+++ b/tunedasd/src/disk.c -@@ -21,12 +21,11 @@ - - #include "lib/dasd_base.h" - #include "lib/dasd_sys.h" -+#include "lib/util_libc.h" - - #include "disk.h" - #include "tunedasd.h" - --#define BUS_ID_SIZE 30 -- - /* id definition for profile items */ - enum prof_id { - prof_reqs = 0, -@@ -549,3 +548,50 @@ int disk_reset_chpid(char *device, char *chpid) - - return -1; - } -+ -+int disk_copy_swap(char *device, char *copy_pair) -+{ -+ struct dasd_copypair_swap_data data = { 0 }; -+ char *primary, *secondary; -+ int rc = 0; -+ -+ primary = strtok(copy_pair, ","); -+ secondary = strtok(NULL, ","); -+ -+ if (!primary || !secondary) { -+ error_print("%s: Error parsing Copy Pair %s", device, copy_pair); -+ return -1; -+ } -+ -+ util_strlcpy(data.primary, primary, DASD_BUS_ID_SIZE); -+ util_strlcpy(data.secondary, secondary, DASD_BUS_ID_SIZE); -+ -+ printf("Swapping copy pair %s %s on device <%s>...\n", primary, secondary, device); -+ rc = dasd_copy_swap(device, &data); -+ -+ switch (rc) { -+ case 0: -+ printf("Done.\n"); -+ return 0; -+ case 1: -+ error_print("Swap data invalid"); -+ break; -+ case 2: -+ error_print("No active device found"); -+ break; -+ case 3: -+ error_print("Wrong primary device specified"); -+ break; -+ case 4: -+ error_print("Secondary device not found"); -+ break; -+ case 5: -+ error_print("Swap already running"); -+ break; -+ default: -+ error_print("Swap not successful rc %d", rc); -+ break; -+ } -+ -+ return -1; -+} -diff --git a/tunedasd/src/tunedasd.c b/tunedasd/src/tunedasd.c -index 3c14eb8..691841c 100644 ---- a/tunedasd/src/tunedasd.c -+++ b/tunedasd/src/tunedasd.c -@@ -119,12 +119,17 @@ static struct util_opt opt_vec[] = { - .desc = "Reset all channel paths of a device", - .flags = UTIL_OPT_FLAG_NOSHORT, - }, -+ { -+ .option = { "copy-pair-swap", required_argument, NULL, 's' }, -+ .argument = "COPY_PAIR", -+ .desc = "Swap a specified, comma separated copy pair.", -+ }, - UTIL_OPT_HELP, - UTIL_OPT_VERSION, - UTIL_OPT_END - }; - --#define CMD_KEYWORD_NUM 16 -+#define CMD_KEYWORD_NUM 17 - #define DEVICES_NUM 256 - - enum cmd_keyword_id { -@@ -144,6 +149,7 @@ enum cmd_keyword_id { - cmd_keyword_path_all, - cmd_keyword_enable_stats, - cmd_keyword_disable_stats, -+ cmd_keyword_copy_swap, - }; - - -@@ -167,7 +173,8 @@ static const struct { - { "path_reset", cmd_keyword_path }, - { "path_reset_all", cmd_keyword_path_all }, - { "enable-stats", cmd_keyword_enable_stats }, -- { "disable-stats", cmd_keyword_disable_stats } -+ { "disable-stats", cmd_keyword_disable_stats }, -+ { "copy-swap", cmd_keyword_copy_swap }, - }; - - -@@ -180,26 +187,27 @@ enum cmd_key_state { - - /* Determines which combination of keywords are valid */ - static enum cmd_key_state cmd_key_table[CMD_KEYWORD_NUM][CMD_KEYWORD_NUM] = { -- /* help vers get_ cach no_c rese rele sloc prof prof rese quer path path -- * ion cach e yl rve ase k ile _ite t_pr y_re _all -- * e m of serv -+ /* help vers get_ cach no_c rese rele sloc prof prof rese quer path path enab disa copy -+ * ion cach e yl rve ase k ile _ite t_pr y_re _all le-s ble- -swa -+ * e m of serv tats stat p - */ -- /* help */ { req, opt, opt, opt, opt, opt, opt, opt, opt, opt, opt, inv, inv, inv, inv, inv }, -- /* version */ { inv, req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, -- /* get_cache */ { opt, opt, req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, -- /* cache */ { opt, opt, inv, req, opt, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, -- /* no_cyl */ { opt, opt, inv, req, req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, -- /* reserve */ { opt, opt, inv, inv, inv, req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, -- /* release */ { opt, opt, inv, inv, inv, inv, req, inv, inv, inv, inv, inv, inv, inv, inv, inv }, -- /* slock */ { opt, opt, inv, inv, inv, inv, inv, req, inv, inv, inv, inv, inv, inv, inv, inv }, -- /* profile */ { opt, opt, inv, inv, inv, inv, inv, inv, req, opt, inv, inv, inv, inv, inv, inv }, -- /* prof_item */ { opt, opt, inv, inv, inv, inv, inv, inv, req, req, inv, inv, inv, inv, inv, inv }, -- /* reset_prof */ { opt, opt, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv, inv, inv, inv }, -- /* query_reserve */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv, inv, inv }, -- /* path */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv, inv }, -- /* path_all */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv }, -- /* enable-stats */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv }, -- /* disable-stats */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req }, -+ /* help */ { req, opt, opt, opt, opt, opt, opt, opt, opt, opt, opt, inv, inv, inv, inv, inv, inv }, -+ /* version */ { inv, req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, -+ /* get_cache */ { opt, opt, req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, -+ /* cache */ { opt, opt, inv, req, opt, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, -+ /* no_cyl */ { opt, opt, inv, req, req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, -+ /* reserve */ { opt, opt, inv, inv, inv, req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, -+ /* release */ { opt, opt, inv, inv, inv, inv, req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv }, -+ /* slock */ { opt, opt, inv, inv, inv, inv, inv, req, inv, inv, inv, inv, inv, inv, inv, inv, inv }, -+ /* profile */ { opt, opt, inv, inv, inv, inv, inv, inv, req, opt, inv, inv, inv, inv, inv, inv, inv }, -+ /* prof_item */ { opt, opt, inv, inv, inv, inv, inv, inv, req, req, inv, inv, inv, inv, inv, inv, inv }, -+ /* reset_prof */ { opt, opt, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv, inv, inv, inv, inv }, -+ /* query_reserve */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv, inv, inv, inv }, -+ /* path */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv, inv, inv }, -+ /* path_all */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv, inv }, -+ /* enable-stats */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv }, -+ /* disable-stats */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv }, -+ /* copy-swap */ { inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req }, - }; - - struct parameter { -@@ -439,7 +447,9 @@ static int get_command_line(int argc, char *argv[], struct command_line *line) - rc = store_option (&cmdline, cmd_keyword_query_reserve, - optarg); - break; -- -+ case 's': -+ rc = store_option(&cmdline, cmd_keyword_copy_swap, optarg); -+ break; - case -1: - /* End of options string - start of devices list */ - cmdline.device_id = optind; -@@ -508,6 +518,9 @@ static int do_command(char *device, struct command_line cmdline) - case cmd_keyword_path_all: - rc = disk_reset_chpid(device, NULL); - break; -+ case cmd_keyword_copy_swap: -+ rc = disk_copy_swap(device, cmdline.parm[cmd_keyword_copy_swap].data); -+ break; - default: - error_print ("Unknown command '%s' specified", - get_keyword_name (i)); --- -2.38.1 - diff --git a/s390utils-2.25.0-fedora.patch b/s390utils-2.25.0-fedora.patch new file mode 100644 index 0000000..e69de29 diff --git a/s390utils.spec b/s390utils.spec index 9ea9a6d..49a054f 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -9,8 +9,8 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.24.0 -Release: 2%{?dist} +Version: 2.25.0 +Release: 1%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -38,7 +38,7 @@ Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch # upstream fixes/updates -Patch100: s390utils-%{version}-fedora.patch +#Patch100: s390utils-%%{version}-fedora.patch Requires: s390utils-core = %{epoch}:%{version}-%{release} Requires: s390utils-base = %{epoch}:%{version}-%{release} @@ -67,7 +67,7 @@ be used together with the zSeries (s390) Linux kernel and device drivers. %patch1 -p1 -b .blscfg-rpm-nvr-sort # upstream fixes/updates -%patch100 -p1 +#%%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 @@ -486,6 +486,11 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %config(noreplace) %{_sysconfdir}/sysconfig/dumpconf %{_sysconfdir}/mdevctl.d/* /usr/lib/dracut/modules.d/99ngdump/ +# own the mdevctl dirs until new release is available +%dir /usr/lib/mdevctl +%dir /usr/lib/mdevctl/scripts.d +%dir /usr/lib/mdevctl/scripts.d/callouts +/usr/lib/mdevctl/scripts.d/callouts/ap-check /lib/s390-tools/dumpconf /lib/s390-tools/lsznet.raw %dir /lib/s390-tools/zfcpdump @@ -902,6 +907,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Fri Dec 09 2022 Dan Horák - 2:2.25.0-1 +- rebased to 2.25.0 + * Tue Nov 22 2022 Dan Horák - 2:2.24.0-2 - update for Transparent DASD PPRC (Peer-to-Peer Remote Copy) handling diff --git a/sources b/sources index 0c54d2e..4fb12d4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (s390-tools-2.24.0.tar.gz) = 5c681a031c2bab0ab167623ad08da67bfd236e4892f8a5de813ebfbbc1c60a842f0954bcbca6d2f6ab125ee089b2b5dcbfbb24152bcdde3401810232e21460f4 +SHA512 (s390-tools-2.25.0.tar.gz) = 1c766a4bd19c957596c741a80141712acf150591c0ff1a47caf1aa8a17f7153c1441560f05aef78bb3f05bd35c1fef431569cabd7e7d6b003bd74beedb7213d9 From 77693cd7eb3309e9ab592f886b7bafdaa0622664 Mon Sep 17 00:00:00 2001 From: Robbie Harwood Date: Tue, 17 Jan 2023 11:33:21 -0500 Subject: [PATCH 19/84] Generate /etc/kernel/cmdline if it does not exist Don't fall back to reading /proc/cmdline: that will likely reflect the installer environment which will result in a non-booting kernel entry. See-also: rhbz#1940288 Signed-off-by: Robbie Harwood --- 20-zipl-kernel.install | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/20-zipl-kernel.install b/20-zipl-kernel.install index 4fadd1d..a592380 100755 --- a/20-zipl-kernel.install +++ b/20-zipl-kernel.install @@ -76,16 +76,24 @@ case "$COMMAND" in if [[ ! -f /sbin/new-kernel-pkg || -d "${BLS_DIR}" ]]; then declare -a BOOT_OPTIONS + if [[ ! -f /etc/kernel/cmdline ]]; then + last='' + for entry in "${BLS_DIR}"/*.conf; do + last="$entry" + done + if [[ ! -z "$last" ]]; then + args="$(awk '/options/{$1="";$0=$0;$1=$1;print}' $last)" + echo "$args" > /etc/kernel/cmdline + fi + fi if [[ -f /etc/kernel/cmdline ]]; then read -r -d '' -a BOOT_OPTIONS < /etc/kernel/cmdline fi if ! [[ ${BOOT_OPTIONS[*]} ]]; then - read -r -d '' -a line < /proc/cmdline - for i in "${line[@]}"; do - [[ "${i#initrd=*}" != "$i" || "${i#BOOT_IMAGE=*}" != "$i" ]] && continue - BOOT_OPTIONS+=("$i") - done + echo "Could not determine the kernel command line parameters." >&2 + echo "Please specify the kernel command line in /etc/kernel/cmdline!" >&2 + exit 1 fi [[ -d "$BLS_DIR" ]] || mkdir -m 0700 -p "$BLS_DIR" From 685ce32c07b60e1b931e1b9d9bbd46fcd7baa99d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 19 Jan 2023 10:00:30 +0100 Subject: [PATCH 20/84] - update kernel install script to write /etc/kernel/cmdline --- s390utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index 49a054f..2d3296a 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -10,7 +10,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.25.0 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -907,6 +907,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Thu Jan 19 2023 Dan Horák - 2:2.25.0-2 +- update kernel install script to write /etc/kernel/cmdline + * Fri Dec 09 2022 Dan Horák - 2:2.25.0-1 - rebased to 2.25.0 From 607a6825f4526de310cc84c9b77f0cb10122ffef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Mon, 23 Jan 2023 12:16:40 +0000 Subject: [PATCH 21/84] Revert "Generate /etc/kernel/cmdline if it does not exist" This reverts commit 77693cd7eb3309e9ab592f886b7bafdaa0622664. Although it fixes the situation when a new kernel is being installed in a %post script, it breaks the initial kernel installation, because the BLS snippet doesn't exists yet. --- 20-zipl-kernel.install | 18 +++++------------- s390utils.spec | 5 ++++- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/20-zipl-kernel.install b/20-zipl-kernel.install index a592380..4fadd1d 100755 --- a/20-zipl-kernel.install +++ b/20-zipl-kernel.install @@ -76,24 +76,16 @@ case "$COMMAND" in if [[ ! -f /sbin/new-kernel-pkg || -d "${BLS_DIR}" ]]; then declare -a BOOT_OPTIONS - if [[ ! -f /etc/kernel/cmdline ]]; then - last='' - for entry in "${BLS_DIR}"/*.conf; do - last="$entry" - done - if [[ ! -z "$last" ]]; then - args="$(awk '/options/{$1="";$0=$0;$1=$1;print}' $last)" - echo "$args" > /etc/kernel/cmdline - fi - fi if [[ -f /etc/kernel/cmdline ]]; then read -r -d '' -a BOOT_OPTIONS < /etc/kernel/cmdline fi if ! [[ ${BOOT_OPTIONS[*]} ]]; then - echo "Could not determine the kernel command line parameters." >&2 - echo "Please specify the kernel command line in /etc/kernel/cmdline!" >&2 - exit 1 + read -r -d '' -a line < /proc/cmdline + for i in "${line[@]}"; do + [[ "${i#initrd=*}" != "$i" || "${i#BOOT_IMAGE=*}" != "$i" ]] && continue + BOOT_OPTIONS+=("$i") + done fi [[ -d "$BLS_DIR" ]] || mkdir -m 0700 -p "$BLS_DIR" diff --git a/s390utils.spec b/s390utils.spec index 2d3296a..0523b15 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -10,7 +10,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.25.0 -Release: 2%{?dist} +Release: 3%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -907,6 +907,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Mon Jan 23 2023 Dan Horák - 2:2.25.0-3 +- revert the kernel install script change + * Thu Jan 19 2023 Dan Horák - 2:2.25.0-2 - update kernel install script to write /etc/kernel/cmdline From 9e98b44d8b9b53c040a8219df970a5a359d0260a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 31 Jan 2023 15:24:52 +0100 Subject: [PATCH 22/84] - add post GA fixes --- s390utils-2.25.0-fedora.patch | 77 +++++++++++++++++++++++++++++++++++ s390utils.spec | 9 ++-- 2 files changed, 83 insertions(+), 3 deletions(-) diff --git a/s390utils-2.25.0-fedora.patch b/s390utils-2.25.0-fedora.patch index e69de29..ee35822 100644 --- a/s390utils-2.25.0-fedora.patch +++ b/s390utils-2.25.0-fedora.patch @@ -0,0 +1,77 @@ +From d721eb018973842a432869f6f9efd5752b2e7f19 Mon Sep 17 00:00:00 2001 +From: Marc Hartmayer +Date: Mon, 19 Dec 2022 09:51:51 +0000 +Subject: [PATCH 1/2] zgetdump/Makefile: don't use `.check_dep_zgetdump` as + linker input + +The `.check_dep_zgetdump` file is used to cache the result of the +dependency checks and should not be used as input for linking or +anything else. Let's add it as dependency for the objects file. This +shouldn't cause any problems since the Makefile rule for object files is +defined in `common.mak` as follows: + +%.o: %.c + $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c $< -o $@ + +Fixes: https://github.com/ibm-s390-linux/s390-tools/issues/147 +Fixes: 8d8d5e9746a4 ("zdump: Fix Makefile dependencies") +Signed-off-by: Marc Hartmayer +Reviewed-by: Jan Hoeppner +Signed-off-by: Jan Hoeppner +--- + zdump/Makefile | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/zdump/Makefile b/zdump/Makefile +index ca8aadc..934dc47 100644 +--- a/zdump/Makefile ++++ b/zdump/Makefile +@@ -119,7 +119,9 @@ libs = $(rootdir)/libutil/libutil.a $(LIBPV) + + all: $(BUILD_TARGETS) + +-zgetdump: .check_dep_zgetdump $(OBJECTS) $(libs) ++$(OBJECTS): .check_dep_zgetdump ++ ++zgetdump: $(OBJECTS) $(libs) + + skip-zgetdump: + echo " SKIP zgetdump due to unresolved dependencies" +-- +2.39.1 + + +From d9f54f76e2e6f17e0b5bafdc0d09ff0e72edd474 Mon Sep 17 00:00:00 2001 +From: Ingo Franzki +Date: Fri, 20 Jan 2023 11:04:18 +0100 +Subject: [PATCH 2/2] zkey: Support EP11 host library version 4 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Try to load libep11.so.4 if available, but fallback to older +library versions if not. + +Reviewed-by: Jörg Schmidbauer +Signed-off-by: Ingo Franzki +Signed-off-by: Steffen Eiden +--- + zkey/ep11.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/zkey/ep11.c b/zkey/ep11.c +index 58dc3c5..8359929 100644 +--- a/zkey/ep11.c ++++ b/zkey/ep11.c +@@ -35,7 +35,7 @@ + * Definitions for the EP11 library + */ + #define EP11_LIBRARY_NAME "libep11.so" +-#define EP11_LIBRARY_VERSION 3 ++#define EP11_LIBRARY_VERSION 4 + #define EP11_WEB_PAGE "http://www.ibm.com/security/cryptocards" + + /** +-- +2.39.1 + diff --git a/s390utils.spec b/s390utils.spec index 0523b15..065b0da 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -10,7 +10,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.25.0 -Release: 3%{?dist} +Release: 4%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -38,7 +38,7 @@ Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch # upstream fixes/updates -#Patch100: s390utils-%%{version}-fedora.patch +Patch100: s390utils-%%{version}-fedora.patch Requires: s390utils-core = %{epoch}:%{version}-%{release} Requires: s390utils-base = %{epoch}:%{version}-%{release} @@ -67,7 +67,7 @@ be used together with the zSeries (s390) Linux kernel and device drivers. %patch1 -p1 -b .blscfg-rpm-nvr-sort # upstream fixes/updates -#%%patch100 -p1 +%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 @@ -907,6 +907,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Tue Jan 31 2023 Dan Horák - 2:2.25.0-4 +- add post GA fixes + * Mon Jan 23 2023 Dan Horák - 2:2.25.0-3 - revert the kernel install script change From d6f3723e10b9dd2a1e0047ab32c6874440d1f2b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Fri, 3 Mar 2023 10:01:46 +0000 Subject: [PATCH 23/84] - rebased to 2.26.0 --- s390-tools-zipl-blscfg-rpm-nvr-sort.patch | 12 +-- s390utils-2.25.0-fedora.patch | 77 --------------- s390utils-2.26.0-fedora.patch | 115 ++++++++++++++++++++++ s390utils.spec | 17 +--- sources | 2 +- 5 files changed, 127 insertions(+), 96 deletions(-) delete mode 100644 s390utils-2.25.0-fedora.patch create mode 100644 s390utils-2.26.0-fedora.patch diff --git a/s390-tools-zipl-blscfg-rpm-nvr-sort.patch b/s390-tools-zipl-blscfg-rpm-nvr-sort.patch index 3960de1..366efba 100644 --- a/s390-tools-zipl-blscfg-rpm-nvr-sort.patch +++ b/s390-tools-zipl-blscfg-rpm-nvr-sort.patch @@ -1,4 +1,4 @@ -From a17c57bf2b7b6d64a509cb5fb02fe46849bc550c Mon Sep 17 00:00:00 2001 +From b2daaa34776ba6afec879e362378f6f7563590a6 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 @@ -194,10 +194,10 @@ index 0cea1d4..9352f76 100644 return n; -- -2.37.3 +2.39.2 -From 7a51cfc15b870d90bffe1e24a1da922663ffe1d7 Mon Sep 17 00:00:00 2001 +From 692e70bcfc32a05e30146bd7077c41e0eaceff03 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 @@ -213,7 +213,7 @@ Signed-off-by: Dan Horák 2 files changed, 95 insertions(+), 2 deletions(-) diff --git a/zipl/src/Makefile b/zipl/src/Makefile -index 64eabe4..7043005 100644 +index cab5655..7ec215d 100644 --- a/zipl/src/Makefile +++ b/zipl/src/Makefile @@ -9,6 +9,7 @@ ALL_LDFLAGS += -Wl,-z,noexecstack $(NO_PIE_LDFLAGS) @@ -223,7 +223,7 @@ index 64eabe4..7043005 100644 + -lrpmio -lrpm 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 + bootmap_header.o envblk.o install.o zipl.o diff --git a/zipl/src/scan.c b/zipl/src/scan.c index 9352f76..3327e2d 100644 --- a/zipl/src/scan.c @@ -344,5 +344,5 @@ index 9352f76..3327e2d 100644 static int scan_append_section_heading(struct scan_token* scan, int* index, char* name); -- -2.37.3 +2.39.2 diff --git a/s390utils-2.25.0-fedora.patch b/s390utils-2.25.0-fedora.patch deleted file mode 100644 index ee35822..0000000 --- a/s390utils-2.25.0-fedora.patch +++ /dev/null @@ -1,77 +0,0 @@ -From d721eb018973842a432869f6f9efd5752b2e7f19 Mon Sep 17 00:00:00 2001 -From: Marc Hartmayer -Date: Mon, 19 Dec 2022 09:51:51 +0000 -Subject: [PATCH 1/2] zgetdump/Makefile: don't use `.check_dep_zgetdump` as - linker input - -The `.check_dep_zgetdump` file is used to cache the result of the -dependency checks and should not be used as input for linking or -anything else. Let's add it as dependency for the objects file. This -shouldn't cause any problems since the Makefile rule for object files is -defined in `common.mak` as follows: - -%.o: %.c - $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c $< -o $@ - -Fixes: https://github.com/ibm-s390-linux/s390-tools/issues/147 -Fixes: 8d8d5e9746a4 ("zdump: Fix Makefile dependencies") -Signed-off-by: Marc Hartmayer -Reviewed-by: Jan Hoeppner -Signed-off-by: Jan Hoeppner ---- - zdump/Makefile | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/zdump/Makefile b/zdump/Makefile -index ca8aadc..934dc47 100644 ---- a/zdump/Makefile -+++ b/zdump/Makefile -@@ -119,7 +119,9 @@ libs = $(rootdir)/libutil/libutil.a $(LIBPV) - - all: $(BUILD_TARGETS) - --zgetdump: .check_dep_zgetdump $(OBJECTS) $(libs) -+$(OBJECTS): .check_dep_zgetdump -+ -+zgetdump: $(OBJECTS) $(libs) - - skip-zgetdump: - echo " SKIP zgetdump due to unresolved dependencies" --- -2.39.1 - - -From d9f54f76e2e6f17e0b5bafdc0d09ff0e72edd474 Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Fri, 20 Jan 2023 11:04:18 +0100 -Subject: [PATCH 2/2] zkey: Support EP11 host library version 4 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Try to load libep11.so.4 if available, but fallback to older -library versions if not. - -Reviewed-by: Jörg Schmidbauer -Signed-off-by: Ingo Franzki -Signed-off-by: Steffen Eiden ---- - zkey/ep11.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/zkey/ep11.c b/zkey/ep11.c -index 58dc3c5..8359929 100644 ---- a/zkey/ep11.c -+++ b/zkey/ep11.c -@@ -35,7 +35,7 @@ - * Definitions for the EP11 library - */ - #define EP11_LIBRARY_NAME "libep11.so" --#define EP11_LIBRARY_VERSION 3 -+#define EP11_LIBRARY_VERSION 4 - #define EP11_WEB_PAGE "http://www.ibm.com/security/cryptocards" - - /** --- -2.39.1 - diff --git a/s390utils-2.26.0-fedora.patch b/s390utils-2.26.0-fedora.patch new file mode 100644 index 0000000..9a8b060 --- /dev/null +++ b/s390utils-2.26.0-fedora.patch @@ -0,0 +1,115 @@ +From a12dfc9ee92722c3fdf9f9fbd358023bef7a6ed9 Mon Sep 17 00:00:00 2001 +From: Steffen Eiden +Date: Fri, 17 Feb 2023 15:12:46 +0100 +Subject: [PATCH] Make -Werror optional +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Enforcing `-Werror` can cause problems when compiling with newer +compilers that have additional warnings on by default. + +By default `-Werror` is turned off and can be turned on via +`ENABLE_WERROR=1`. + +Fixes: https://github.com/ibm-s390-linux/s390-tools/issues/148 +Signed-off-by: Steffen Eiden +Reviewed-by: Jan Höppner +Signed-off-by: Jan Höppner +(cherry picked from commit d3a3b26d16efdc4e9f896e616b5c8b7cac1b1a63) +--- + common.mak | 17 +++++++++++------ + genprotimg/boot/Makefile | 2 +- + genprotimg/src/Makefile | 2 +- + libpv/Makefile | 1 - + pvattest/src/Makefile | 1 - + 5 files changed, 13 insertions(+), 10 deletions(-) + +diff --git a/common.mak b/common.mak +index dbd1ebb..1d5e1a2 100644 +--- a/common.mak ++++ b/common.mak +@@ -101,6 +101,10 @@ else + DEFAULT_CFLAGS += -O3 + endif + ++ifeq ("${ENABLE_WERROR}", "1") ++ DEFAULT_CFLAGS += -Werror ++endif ++ + DEFAULT_CPPFLAGS = -D_GNU_SOURCE + DEFAULT_LDFLAGS = -rdynamic + +@@ -302,12 +306,13 @@ help: + @echo ' clean Delete all generated files' + @echo '' + @echo 'OPTIONS' +- @echo ' D=1 Build with debugging option "-Og"' +- @echo ' C=1 Build with check tool defined with "CHECK=" (default=sparse)' +- @echo ' G=1 Build with gcov to collect code coverage data' +- @echo ' V=1 Generate verbose build output' +- @echo ' W=1 Build with higher warning level' +- @echo ' ASAN=1 Build with address sanitizer' ++ @echo ' D=1 Build with debugging option "-Og"' ++ @echo ' C=1 Build with check tool defined with "CHECK=" (default=sparse)' ++ @echo ' G=1 Build with gcov to collect code coverage data' ++ @echo ' V=1 Generate verbose build output' ++ @echo ' W=1 Build with higher warning level' ++ @echo ' ASAN=1 Build with address sanitizer' ++ @echo ' ENABLE_WERROR=1 Build with -Werror' + @echo '' + @echo 'EXAMPLES' + @echo ' # make clean all D=1 W=1 -j' +diff --git a/genprotimg/boot/Makefile b/genprotimg/boot/Makefile +index b1b1421..6f3ae5c 100644 +--- a/genprotimg/boot/Makefile ++++ b/genprotimg/boot/Makefile +@@ -15,7 +15,7 @@ ALL_CFLAGS := $(NO_PIE_CFLAGS) -Os -g \ + -fno-delete-null-pointer-checks -fno-stack-protector \ + -fexec-charset=IBM1047 -m64 -mpacked-stack \ + -mstack-size=4096 -mstack-guard=128 -msoft-float \ +- -Wall -Wformat-security -Wextra -Werror \ ++ -Wall -Wformat-security -Wextra \ + -Wno-array-bounds + + FILES := stage3a.bin stage3b.bin stage3b_reloc.bin +diff --git a/genprotimg/src/Makefile b/genprotimg/src/Makefile +index 0e811d6..6c80ed2 100644 +--- a/genprotimg/src/Makefile ++++ b/genprotimg/src/Makefile +@@ -17,7 +17,7 @@ WARNINGS := -Wall -Wextra -Wshadow \ + -Wcast-align -Wwrite-strings -Wmissing-prototypes \ + -Wmissing-declarations -Wredundant-decls -Wnested-externs \ + -Wno-long-long -Wuninitialized -Wconversion -Wstrict-prototypes \ +- -Wpointer-arith -Werror -Wno-error=inline \ ++ -Wpointer-arith -Wno-error=inline \ + $(NULL) + + $(bin_PROGRAM)_SRCS := $(bin_PROGRAM).c pv/pv_stage3.c pv/pv_image.c \ +diff --git a/libpv/Makefile b/libpv/Makefile +index d9a1cff..5b518c7 100644 +--- a/libpv/Makefile ++++ b/libpv/Makefile +@@ -28,7 +28,6 @@ WARNINGS := -Wall -Wextra -Wshadow \ + -Wno-long-long -Wuninitialized -Wconversion -Wstrict-prototypes \ + -Wpointer-arith -Wno-error=inline \ + -Wno-unused-function -Wno-unused-parameter -Wno-unused-variable \ +- -Werror \ + $(NULL) + + ALL_CFLAGS += -std=gnu11 \ +diff --git a/pvattest/src/Makefile b/pvattest/src/Makefile +index a1f0e1a..cd56af0 100644 +--- a/pvattest/src/Makefile ++++ b/pvattest/src/Makefile +@@ -17,7 +17,6 @@ WARNINGS := -Wall -Wextra -Wshadow \ + -Wno-long-long -Wuninitialized -Wconversion -Wstrict-prototypes \ + -Wpointer-arith -Wno-error=inline \ + -Wno-unused-function -Wno-unused-parameter -Wno-unused-variable \ +- -Werror \ + $(NULL) + + PVATTEST_SRCS := $(wildcard *.c) \ +-- +2.39.2 + diff --git a/s390utils.spec b/s390utils.spec index 065b0da..914cb7d 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -9,8 +9,8 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.25.0 -Release: 4%{?dist} +Version: 2.26.0 +Release: 1%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -69,9 +69,6 @@ be used together with the zSeries (s390) Linux kernel and device drivers. # upstream fixes/updates %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' @@ -340,11 +337,6 @@ s390 base tools. This collection provides the following utilities: * tunedasd: Adjust tunable parameters on DASD devices. - * vmconvert: - Convert system dumps created by the z/VM VMDUMP command into dumps with - LKCD format. These LKCD dumps can then be analyzed with the dump analysis - tool lcrash. - * vmcp: Allows Linux users to send commands to the z/VM control program (CP). The normal usage is to invoke vmcp with the command you want to @@ -478,7 +470,6 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_bindir}/mk-s390image %{_bindir}/pvattest %{_bindir}/pvextract-hdr -%{_bindir}/vmconvert %{_bindir}/zkey %{_bindir}/zkey-cryptsetup %{_unitdir}/dumpconf.service @@ -507,7 +498,6 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_mandir}/man1/pvattest-create.1* %{_mandir}/man1/pvattest-perform.1* %{_mandir}/man1/pvattest-verify.1* -%{_mandir}/man1/vmconvert.1* %{_mandir}/man1/zkey.1* %{_mandir}/man1/zkey-cryptsetup.1* %{_mandir}/man1/zkey-ekmfweb.1* @@ -907,6 +897,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Fri Mar 03 2023 Dan Horák - 2:2.26.0-1 +- rebased to 2.26.0 + * Tue Jan 31 2023 Dan Horák - 2:2.25.0-4 - add post GA fixes diff --git a/sources b/sources index 4fb12d4..7bbbf61 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (s390-tools-2.25.0.tar.gz) = 1c766a4bd19c957596c741a80141712acf150591c0ff1a47caf1aa8a17f7153c1441560f05aef78bb3f05bd35c1fef431569cabd7e7d6b003bd74beedb7213d9 +SHA512 (s390-tools-2.26.0.tar.gz) = 83cd717553f5bb7b9faac8beadfe9d88b211b2e86942c763778825ef840ed398201e1fe4e085f8eafdc3dc6ab0e231b22cb51277aae23106a964e5a14f2997fc From 57b37fee1fc8524ed612708743dc30e3f7c334c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Fri, 19 May 2023 16:25:40 +0200 Subject: [PATCH 24/84] Rebuild against rpm-4.19 (https://fedoraproject.org/wiki/Changes/RPM-4.19) --- s390utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index 914cb7d..41029fc 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -10,7 +10,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.26.0 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -897,6 +897,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Fri May 19 2023 Petr Pisar - 2:2.26.0-2 +- Rebuild against rpm-4.19 (https://fedoraproject.org/wiki/Changes/RPM-4.19) + * Fri Mar 03 2023 Dan Horák - 2:2.26.0-1 - rebased to 2.26.0 From a6e30a308a910c5fc82590a0f44f18ea86c77998 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Fri, 19 May 2023 16:38:39 +0200 Subject: [PATCH 25/84] Unescape Patch100 definition Broken with commit 9e98b44d8b9b53c040a8219df970a5a359d0260a. --- s390utils.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index 41029fc..ffdc483 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -38,7 +38,7 @@ Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch # upstream fixes/updates -Patch100: s390utils-%%{version}-fedora.patch +Patch100: s390utils-%{version}-fedora.patch Requires: s390utils-core = %{epoch}:%{version}-%{release} Requires: s390utils-base = %{epoch}:%{version}-%{release} From b43bfd7eed3ce7ca6779f6fbb5c5929318f6787f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Wed, 31 May 2023 12:44:16 +0000 Subject: [PATCH 26/84] - rebased to 2.27.0 --- s390utils-2.26.0-fedora.patch | 115 ---------------------------------- s390utils-2.27.0-fedora.patch | 108 +++++++++++++++++++++++++++++++ s390utils.spec | 8 ++- sources | 2 +- 4 files changed, 115 insertions(+), 118 deletions(-) delete mode 100644 s390utils-2.26.0-fedora.patch create mode 100644 s390utils-2.27.0-fedora.patch diff --git a/s390utils-2.26.0-fedora.patch b/s390utils-2.26.0-fedora.patch deleted file mode 100644 index 9a8b060..0000000 --- a/s390utils-2.26.0-fedora.patch +++ /dev/null @@ -1,115 +0,0 @@ -From a12dfc9ee92722c3fdf9f9fbd358023bef7a6ed9 Mon Sep 17 00:00:00 2001 -From: Steffen Eiden -Date: Fri, 17 Feb 2023 15:12:46 +0100 -Subject: [PATCH] Make -Werror optional -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Enforcing `-Werror` can cause problems when compiling with newer -compilers that have additional warnings on by default. - -By default `-Werror` is turned off and can be turned on via -`ENABLE_WERROR=1`. - -Fixes: https://github.com/ibm-s390-linux/s390-tools/issues/148 -Signed-off-by: Steffen Eiden -Reviewed-by: Jan Höppner -Signed-off-by: Jan Höppner -(cherry picked from commit d3a3b26d16efdc4e9f896e616b5c8b7cac1b1a63) ---- - common.mak | 17 +++++++++++------ - genprotimg/boot/Makefile | 2 +- - genprotimg/src/Makefile | 2 +- - libpv/Makefile | 1 - - pvattest/src/Makefile | 1 - - 5 files changed, 13 insertions(+), 10 deletions(-) - -diff --git a/common.mak b/common.mak -index dbd1ebb..1d5e1a2 100644 ---- a/common.mak -+++ b/common.mak -@@ -101,6 +101,10 @@ else - DEFAULT_CFLAGS += -O3 - endif - -+ifeq ("${ENABLE_WERROR}", "1") -+ DEFAULT_CFLAGS += -Werror -+endif -+ - DEFAULT_CPPFLAGS = -D_GNU_SOURCE - DEFAULT_LDFLAGS = -rdynamic - -@@ -302,12 +306,13 @@ help: - @echo ' clean Delete all generated files' - @echo '' - @echo 'OPTIONS' -- @echo ' D=1 Build with debugging option "-Og"' -- @echo ' C=1 Build with check tool defined with "CHECK=" (default=sparse)' -- @echo ' G=1 Build with gcov to collect code coverage data' -- @echo ' V=1 Generate verbose build output' -- @echo ' W=1 Build with higher warning level' -- @echo ' ASAN=1 Build with address sanitizer' -+ @echo ' D=1 Build with debugging option "-Og"' -+ @echo ' C=1 Build with check tool defined with "CHECK=" (default=sparse)' -+ @echo ' G=1 Build with gcov to collect code coverage data' -+ @echo ' V=1 Generate verbose build output' -+ @echo ' W=1 Build with higher warning level' -+ @echo ' ASAN=1 Build with address sanitizer' -+ @echo ' ENABLE_WERROR=1 Build with -Werror' - @echo '' - @echo 'EXAMPLES' - @echo ' # make clean all D=1 W=1 -j' -diff --git a/genprotimg/boot/Makefile b/genprotimg/boot/Makefile -index b1b1421..6f3ae5c 100644 ---- a/genprotimg/boot/Makefile -+++ b/genprotimg/boot/Makefile -@@ -15,7 +15,7 @@ ALL_CFLAGS := $(NO_PIE_CFLAGS) -Os -g \ - -fno-delete-null-pointer-checks -fno-stack-protector \ - -fexec-charset=IBM1047 -m64 -mpacked-stack \ - -mstack-size=4096 -mstack-guard=128 -msoft-float \ -- -Wall -Wformat-security -Wextra -Werror \ -+ -Wall -Wformat-security -Wextra \ - -Wno-array-bounds - - FILES := stage3a.bin stage3b.bin stage3b_reloc.bin -diff --git a/genprotimg/src/Makefile b/genprotimg/src/Makefile -index 0e811d6..6c80ed2 100644 ---- a/genprotimg/src/Makefile -+++ b/genprotimg/src/Makefile -@@ -17,7 +17,7 @@ WARNINGS := -Wall -Wextra -Wshadow \ - -Wcast-align -Wwrite-strings -Wmissing-prototypes \ - -Wmissing-declarations -Wredundant-decls -Wnested-externs \ - -Wno-long-long -Wuninitialized -Wconversion -Wstrict-prototypes \ -- -Wpointer-arith -Werror -Wno-error=inline \ -+ -Wpointer-arith -Wno-error=inline \ - $(NULL) - - $(bin_PROGRAM)_SRCS := $(bin_PROGRAM).c pv/pv_stage3.c pv/pv_image.c \ -diff --git a/libpv/Makefile b/libpv/Makefile -index d9a1cff..5b518c7 100644 ---- a/libpv/Makefile -+++ b/libpv/Makefile -@@ -28,7 +28,6 @@ WARNINGS := -Wall -Wextra -Wshadow \ - -Wno-long-long -Wuninitialized -Wconversion -Wstrict-prototypes \ - -Wpointer-arith -Wno-error=inline \ - -Wno-unused-function -Wno-unused-parameter -Wno-unused-variable \ -- -Werror \ - $(NULL) - - ALL_CFLAGS += -std=gnu11 \ -diff --git a/pvattest/src/Makefile b/pvattest/src/Makefile -index a1f0e1a..cd56af0 100644 ---- a/pvattest/src/Makefile -+++ b/pvattest/src/Makefile -@@ -17,7 +17,6 @@ WARNINGS := -Wall -Wextra -Wshadow \ - -Wno-long-long -Wuninitialized -Wconversion -Wstrict-prototypes \ - -Wpointer-arith -Wno-error=inline \ - -Wno-unused-function -Wno-unused-parameter -Wno-unused-variable \ -- -Werror \ - $(NULL) - - PVATTEST_SRCS := $(wildcard *.c) \ --- -2.39.2 - diff --git a/s390utils-2.27.0-fedora.patch b/s390utils-2.27.0-fedora.patch new file mode 100644 index 0000000..d73d4ec --- /dev/null +++ b/s390utils-2.27.0-fedora.patch @@ -0,0 +1,108 @@ +From 493af760ed47454f5719f05a6e6316f43a3be98a Mon Sep 17 00:00:00 2001 +From: Stefan Haberland +Date: Mon, 8 May 2023 14:52:54 +0200 +Subject: [PATCH] zdev: add support for autoquiesce related sysfs attributes + +Autoquiesce is a mechanism that tells Linux to stop issuing I/Os to a +specific DASD after certain events. + +Add support for configuring related DASD device attributes +that govern the following aspects of autoquiesce: + +aq_mask - Configure which events lead to autoquiesce. +aq_requeue - Configure if autoquiesce will requeue all I/O to blocklayer. +aq_timeouts - Configure the number of timeouts before autoquiesce. + +Signed-off-by: Stefan Haberland +Reviewed-by: Peter Oberparleiter +Signed-off-by: Steffen Eiden +--- + zdev/src/dasd.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 65 insertions(+) + +diff --git a/zdev/src/dasd.c b/zdev/src/dasd.c +index f9fd231..4330229 100644 +--- a/zdev/src/dasd.c ++++ b/zdev/src/dasd.c +@@ -344,6 +344,68 @@ static struct attrib dasd_attr_fc_security = { + .readonly = 1, + }; + ++static struct attrib dasd_attr_aq_mask = { ++ .name = "aq_mask", ++ .title = "Specify autoquiesce triggers", ++ .desc = ++ "Use the aq_mask attribute to automatically quiesce a device and block\n" ++ "new I/O after certain events.\n" ++ "\n" ++ "The value is a bitmask in decimal or hexadecimal format where each set bit\n" ++ "indicates that the associated event shown in the table below triggers an\n" ++ "autoquiesce.\n" ++ " Bit 0 is not used.\n" ++ " 1 - 0x02 - A terminal I/O error occurred\n" ++ " 2 - 0x04 - No active channel paths remain for the device\n" ++ " 3 - 0x08 - A state change interrupt occurred\n" ++ " 4 - 0x10 - The device is PPRC suspended\n" ++ " 5 - 0x20 - No space is left on an ESE device\n" ++ " 6 - 0x40 – The number of timeouts specified in aq_timeouts is reached\n" ++ " 7 - 0x80 - I/O was not started because of an error in the start function\n" ++ "\n" ++ "For example bits 1,3 and 5 set (0010 1010) lead to an integer value of 42\n" ++ "or 0x2A.\n" ++ "An integer value of 0 turns off the autoquiesce function.\n", ++ .order_cmp = ccw_online_only_order_cmp, ++ .check = ccw_online_only_check, ++ .defval = "0", ++ /* ++ * Currently only 8 bits are defined and the max value is 255. ++ * This needs to be adjusted if more bits are defined. ++ */ ++ .accept = ACCEPT_ARRAY(ACCEPT_RANGE(0, 255)), ++}; ++ ++static struct attrib dasd_attr_aq_requeue = { ++ .name = "aq_requeue", ++ .title = "Control I/O requeing during autoquiesce", ++ .desc = ++ "Use the aq_requeue attribute to control whether outstanding I/O\n" ++ "operations to the blocklayer should be automatically requeued after\n" ++ "an autoquiesce event.\n" ++ "Valid values are 1 for requeuing, or 0 for no requeueing.\n" ++ "Requeing the I/O requests to the blocklayer might benefit I/O\n" ++ "in case of a copy_pair swap operation.\n", ++ .order_cmp = ccw_online_only_order_cmp, ++ .check = ccw_online_only_check, ++ .defval = "0", ++ .accept = ACCEPT_ARRAY(ACCEPT_RANGE(0, 1)), ++}; ++ ++static struct attrib dasd_attr_aq_timeouts = { ++ .name = "aq_timeouts", ++ .title = "Specify timeout retry threshold", ++ .desc = ++ "Specify the number of sequential timeout events for an I/O operation\n" ++ "before an autoquiesce is triggered on a device.\n" ++ "This requires that the corresponding trigger bit 6 is set\n" ++ "in the aq_mask attribute.\n", ++ .order_cmp = ccw_online_only_order_cmp, ++ .check = ccw_online_only_check, ++ .defval = "32768", ++ .accept = ACCEPT_ARRAY(ACCEPT_RANGE(0, 32768)), ++}; ++ + /* + * DASD subtype methods. + */ +@@ -725,6 +787,9 @@ struct subtype dasd_subtype_eckd = { + &dasd_attr_safe_offline, + &dasd_attr_fc_security, + &dasd_attr_copy_pair, ++ &dasd_attr_aq_mask, ++ &dasd_attr_aq_requeue, ++ &dasd_attr_aq_timeouts, + &internal_attr_early, + ), + .unknown_dev_attribs = 1, +-- +2.39.2 + diff --git a/s390utils.spec b/s390utils.spec index ffdc483..9d73508 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -9,8 +9,8 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.26.0 -Release: 2%{?dist} +Version: 2.27.0 +Release: 1%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -212,6 +212,7 @@ This package provides minimal set of tools needed to system to boot. %{_unitdir}/cpi.service %config(noreplace) %{_sysconfdir}/sysconfig/cpi /usr/lib/dracut/modules.d/95zdev/ +/usr/lib/dracut/modules.d/95zdev-kdump/ %{_mandir}/man5/zipl.conf.5* %{_mandir}/man8/chreipl.8* %{_mandir}/man8/chzdev.8* @@ -897,6 +898,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Wed May 31 2023 Dan Horák - 2:2.27.0-1 +- rebased to 2.27.0 + * Fri May 19 2023 Petr Pisar - 2:2.26.0-2 - Rebuild against rpm-4.19 (https://fedoraproject.org/wiki/Changes/RPM-4.19) diff --git a/sources b/sources index 7bbbf61..95bf181 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (s390-tools-2.26.0.tar.gz) = 83cd717553f5bb7b9faac8beadfe9d88b211b2e86942c763778825ef840ed398201e1fe4e085f8eafdc3dc6ab0e231b22cb51277aae23106a964e5a14f2997fc +SHA512 (s390-tools-2.27.0.tar.gz) = 8ec83718639d17fe7b1990f4e492f1e1bdd11e814b7838c921733eeccb212f417141042118eadf1e8db498e3ff2ce0c8d404189e436cefe17d9a3dacea22429f From da9838c8001714d9af6d7309792ea0994378f32e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Wed, 31 May 2023 13:10:36 +0000 Subject: [PATCH 27/84] modernize %patch usage --- s390utils.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index 9d73508..6c3db96 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -63,11 +63,11 @@ be used together with the zSeries (s390) Linux kernel and device drivers. %setup -q -n s390-tools-%{version} # Fedora/RHEL changes -%patch0 -p1 -b .zipl-invert-script-options -%patch1 -p1 -b .blscfg-rpm-nvr-sort +%patch 0 -p1 -b .zipl-invert-script-options +%patch 1 -p1 -b .blscfg-rpm-nvr-sort # upstream fixes/updates -%patch100 -p1 +%patch 100 -p1 # remove --strip from install find . -name Makefile | xargs sed -i 's/$(INSTALL) -s/$(INSTALL)/g' From d81d4fd38338529058508c1ba7523184980b2f43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 13 Jul 2023 15:10:59 +0000 Subject: [PATCH 28/84] - rebased to 2.28.0 --- s390utils-2.27.0-fedora.patch | 108 ---------------------------------- s390utils-2.28.0-fedora.patch | 0 s390utils.spec | 12 ++-- sources | 2 +- 4 files changed, 7 insertions(+), 115 deletions(-) delete mode 100644 s390utils-2.27.0-fedora.patch create mode 100644 s390utils-2.28.0-fedora.patch diff --git a/s390utils-2.27.0-fedora.patch b/s390utils-2.27.0-fedora.patch deleted file mode 100644 index d73d4ec..0000000 --- a/s390utils-2.27.0-fedora.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 493af760ed47454f5719f05a6e6316f43a3be98a Mon Sep 17 00:00:00 2001 -From: Stefan Haberland -Date: Mon, 8 May 2023 14:52:54 +0200 -Subject: [PATCH] zdev: add support for autoquiesce related sysfs attributes - -Autoquiesce is a mechanism that tells Linux to stop issuing I/Os to a -specific DASD after certain events. - -Add support for configuring related DASD device attributes -that govern the following aspects of autoquiesce: - -aq_mask - Configure which events lead to autoquiesce. -aq_requeue - Configure if autoquiesce will requeue all I/O to blocklayer. -aq_timeouts - Configure the number of timeouts before autoquiesce. - -Signed-off-by: Stefan Haberland -Reviewed-by: Peter Oberparleiter -Signed-off-by: Steffen Eiden ---- - zdev/src/dasd.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 65 insertions(+) - -diff --git a/zdev/src/dasd.c b/zdev/src/dasd.c -index f9fd231..4330229 100644 ---- a/zdev/src/dasd.c -+++ b/zdev/src/dasd.c -@@ -344,6 +344,68 @@ static struct attrib dasd_attr_fc_security = { - .readonly = 1, - }; - -+static struct attrib dasd_attr_aq_mask = { -+ .name = "aq_mask", -+ .title = "Specify autoquiesce triggers", -+ .desc = -+ "Use the aq_mask attribute to automatically quiesce a device and block\n" -+ "new I/O after certain events.\n" -+ "\n" -+ "The value is a bitmask in decimal or hexadecimal format where each set bit\n" -+ "indicates that the associated event shown in the table below triggers an\n" -+ "autoquiesce.\n" -+ " Bit 0 is not used.\n" -+ " 1 - 0x02 - A terminal I/O error occurred\n" -+ " 2 - 0x04 - No active channel paths remain for the device\n" -+ " 3 - 0x08 - A state change interrupt occurred\n" -+ " 4 - 0x10 - The device is PPRC suspended\n" -+ " 5 - 0x20 - No space is left on an ESE device\n" -+ " 6 - 0x40 – The number of timeouts specified in aq_timeouts is reached\n" -+ " 7 - 0x80 - I/O was not started because of an error in the start function\n" -+ "\n" -+ "For example bits 1,3 and 5 set (0010 1010) lead to an integer value of 42\n" -+ "or 0x2A.\n" -+ "An integer value of 0 turns off the autoquiesce function.\n", -+ .order_cmp = ccw_online_only_order_cmp, -+ .check = ccw_online_only_check, -+ .defval = "0", -+ /* -+ * Currently only 8 bits are defined and the max value is 255. -+ * This needs to be adjusted if more bits are defined. -+ */ -+ .accept = ACCEPT_ARRAY(ACCEPT_RANGE(0, 255)), -+}; -+ -+static struct attrib dasd_attr_aq_requeue = { -+ .name = "aq_requeue", -+ .title = "Control I/O requeing during autoquiesce", -+ .desc = -+ "Use the aq_requeue attribute to control whether outstanding I/O\n" -+ "operations to the blocklayer should be automatically requeued after\n" -+ "an autoquiesce event.\n" -+ "Valid values are 1 for requeuing, or 0 for no requeueing.\n" -+ "Requeing the I/O requests to the blocklayer might benefit I/O\n" -+ "in case of a copy_pair swap operation.\n", -+ .order_cmp = ccw_online_only_order_cmp, -+ .check = ccw_online_only_check, -+ .defval = "0", -+ .accept = ACCEPT_ARRAY(ACCEPT_RANGE(0, 1)), -+}; -+ -+static struct attrib dasd_attr_aq_timeouts = { -+ .name = "aq_timeouts", -+ .title = "Specify timeout retry threshold", -+ .desc = -+ "Specify the number of sequential timeout events for an I/O operation\n" -+ "before an autoquiesce is triggered on a device.\n" -+ "This requires that the corresponding trigger bit 6 is set\n" -+ "in the aq_mask attribute.\n", -+ .order_cmp = ccw_online_only_order_cmp, -+ .check = ccw_online_only_check, -+ .defval = "32768", -+ .accept = ACCEPT_ARRAY(ACCEPT_RANGE(0, 32768)), -+}; -+ - /* - * DASD subtype methods. - */ -@@ -725,6 +787,9 @@ struct subtype dasd_subtype_eckd = { - &dasd_attr_safe_offline, - &dasd_attr_fc_security, - &dasd_attr_copy_pair, -+ &dasd_attr_aq_mask, -+ &dasd_attr_aq_requeue, -+ &dasd_attr_aq_timeouts, - &internal_attr_early, - ), - .unknown_dev_attribs = 1, --- -2.39.2 - diff --git a/s390utils-2.28.0-fedora.patch b/s390utils-2.28.0-fedora.patch new file mode 100644 index 0000000..e69de29 diff --git a/s390utils.spec b/s390utils.spec index 6c3db96..dd7c95a 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -9,7 +9,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.27.0 +Version: 2.28.0 Release: 1%{?dist} Epoch: 2 License: MIT @@ -38,7 +38,7 @@ Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch # upstream fixes/updates -Patch100: s390utils-%{version}-fedora.patch +#Patch100: s390utils-%%{version}-fedora.patch Requires: s390utils-core = %{epoch}:%{version}-%{release} Requires: s390utils-base = %{epoch}:%{version}-%{release} @@ -67,10 +67,7 @@ be used together with the zSeries (s390) Linux kernel and device drivers. %patch 1 -p1 -b .blscfg-rpm-nvr-sort # upstream fixes/updates -%patch 100 -p1 - -# remove --strip from install -find . -name Makefile | xargs sed -i 's/$(INSTALL) -s/$(INSTALL)/g' +#%%patch 100 -p1 %build @@ -898,6 +895,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Tue Jul 11 2023 Dan Horák - 2:2.28.0-1 +- rebased to 2.28.0 + * Wed May 31 2023 Dan Horák - 2:2.27.0-1 - rebased to 2.27.0 diff --git a/sources b/sources index 95bf181..a766dea 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (s390-tools-2.27.0.tar.gz) = 8ec83718639d17fe7b1990f4e492f1e1bdd11e814b7838c921733eeccb212f417141042118eadf1e8db498e3ff2ce0c8d404189e436cefe17d9a3dacea22429f +SHA512 (s390-tools-2.28.0.tar.gz) = ece3a1463e2c8b8e5626a5a8956c5d1a1227661dce2e75cbda0cb30b0a3fecb3f17a0cffc631c500eb7fda4094691f9cdbc342b7b9d1b7539f1a754cae9d6a84 From 4b655c64f1698180e7a7de44a2a92030d341f8a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Fri, 14 Jul 2023 10:04:29 +0200 Subject: [PATCH 29/84] add rpminspect.yaml --- rpminspect.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 rpminspect.yaml diff --git a/rpminspect.yaml b/rpminspect.yaml new file mode 100644 index 0000000..8ca8a53 --- /dev/null +++ b/rpminspect.yaml @@ -0,0 +1,8 @@ +--- +pathmigration: + excluded_paths: + - /lib/s390-tools + +badfuncs: + ignore: + - /usr/sbin/qethqoat From 262d603726783e4a1271d338133123102b65ed89 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 22 Jul 2023 00:55:06 +0000 Subject: [PATCH 30/84] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- s390utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index dd7c95a..bb28334 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -10,7 +10,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.28.0 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -895,6 +895,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Sat Jul 22 2023 Fedora Release Engineering - 2:2.28.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Tue Jul 11 2023 Dan Horák - 2:2.28.0-1 - rebased to 2.28.0 From 087a10568c7743d0d734873d02882bc56e741225 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Mon, 7 Aug 2023 08:50:46 +0000 Subject: [PATCH 31/84] - rebased to 2.29.0 --- s390utils.spec | 9 +++++++-- sources | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index bb28334..ee9542c 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -9,8 +9,8 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.28.0 -Release: 2%{?dist} +Version: 2.29.0 +Release: 1%{?dist} Epoch: 2 License: MIT ExclusiveArch: s390 s390x @@ -73,6 +73,7 @@ be used together with the zSeries (s390) Linux kernel and device drivers. %build make \ CFLAGS="%{build_cflags}" CXXFLAGS="%{build_cxxflags}" LDFLAGS="%{build_ldflags}" \ + HAVE_CARGO=0 \ HAVE_DRACUT=1 \ %if 0%{?with_pandoc} ENABLE_DOC=1 \ @@ -85,6 +86,7 @@ make \ %install make install \ + HAVE_CARGO=0 \ HAVE_DRACUT=1 \ %if 0%{?with_pandoc} ENABLE_DOC=1 \ @@ -895,6 +897,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Mon Aug 07 2023 Dan Horák - 2:2.29.0-1 +- rebased to 2.29.0 + * Sat Jul 22 2023 Fedora Release Engineering - 2:2.28.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild diff --git a/sources b/sources index a766dea..6100d46 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (s390-tools-2.28.0.tar.gz) = ece3a1463e2c8b8e5626a5a8956c5d1a1227661dce2e75cbda0cb30b0a3fecb3f17a0cffc631c500eb7fda4094691f9cdbc342b7b9d1b7539f1a754cae9d6a84 +SHA512 (s390-tools-2.29.0.tar.gz) = 3eeaab0e0c6559b9fb0b4c7cca49358a7cc7fe0cb11684d2d761fe105cc2bfd791d33ecc2070e3dfd877039b68e868699cd3cea318e64aee1cc0f348c7b41617 From 9e549c2e6c6fae409a34c38d3f5c0a38c3c44ede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20=C4=8Cajka?= Date: Tue, 1 Aug 2023 15:26:25 +0200 Subject: [PATCH 32/84] Convert to the SPDX --- s390utils.spec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index ee9542c..ad15f12 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -12,7 +12,8 @@ Summary: Utilities and daemons for IBM z Systems Version: 2.29.0 Release: 1%{?dist} Epoch: 2 -License: MIT +# MIT covers nearly all the files, except init files +License: MIT AND LGPL-2.1-or-later ExclusiveArch: s390 s390x URL: https://github.com/ibm-s390-linux/s390-tools Source0: https://github.com/ibm-s390-linux/s390-tools/archive/v%{version}.tar.gz#/s390-tools-%{version}.tar.gz @@ -256,7 +257,7 @@ This package provides minimal set of tools needed to system to boot. # %package base -License: MIT +License: MIT AND LGPL-2.1-or-later Summary: S390 base tools Requires: gawk sed coreutils Requires: sg3_utils From 3fa397e687ca21fd0664e11afc6cdf6bd276d4f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20=C4=8Cajka?= Date: Thu, 31 Aug 2023 13:08:54 +0200 Subject: [PATCH 33/84] Fix missing semicolon Resolves: BZ#2235734 --- s390utils.spec | 2 ++ snmp-semicolon.patch | 12 ++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 snmp-semicolon.patch diff --git a/s390utils.spec b/s390utils.spec index ad15f12..44fac82 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -37,6 +37,7 @@ Source25: 91-zipl.install # change the defaults to match Fedora environment Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch +Patch2: snmp-semicolon.patch # upstream fixes/updates #Patch100: s390utils-%%{version}-fedora.patch @@ -66,6 +67,7 @@ be used together with the zSeries (s390) Linux kernel and device drivers. # Fedora/RHEL changes %patch 0 -p1 -b .zipl-invert-script-options %patch 1 -p1 -b .blscfg-rpm-nvr-sort +%patch 2 -p1 -b .snmp # upstream fixes/updates #%%patch 100 -p1 diff --git a/snmp-semicolon.patch b/snmp-semicolon.patch new file mode 100644 index 0000000..131d2a0 --- /dev/null +++ b/snmp-semicolon.patch @@ -0,0 +1,12 @@ +diff -ruNp a/osasnmpd/ibmOSAMib.h b/osasnmpd/ibmOSAMib.h +--- a/osasnmpd/ibmOSAMib.h 2023-08-30 20:13:41.231150334 +0200 ++++ b/osasnmpd/ibmOSAMib.h 2023-08-30 20:13:27.414030798 +0200 +@@ -16,7 +16,7 @@ + + /* we may use header_generic and header_simple_table from the util_funcs module */ + +-config_require(util_funcs) ++config_require(util_funcs); + + + /* function prototypes */ From 702b044c209f5f16b46a0b3cd9405ea3ee2e5d3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20=C4=8Cajka?= Date: Thu, 31 Aug 2023 17:50:12 +0200 Subject: [PATCH 34/84] Enable rust based tools --- s390utils.spec | 60 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 5 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index 44fac82..28fa1c0 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -6,11 +6,12 @@ %if 0%{?fedora} %global with_pandoc 1 %endif +%bcond_without rust Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.29.0 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -37,7 +38,8 @@ Source25: 91-zipl.install # change the defaults to match Fedora environment Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch -Patch2: snmp-semicolon.patch +# https://github.com/ibm-s390-linux/s390-tools/pull/155 +Patch2: snmp-semicolon.patch # upstream fixes/updates #Patch100: s390utils-%%{version}-fedora.patch @@ -52,6 +54,31 @@ Requires: s390utils-ziomon = %{epoch}:%{version}-%{release} BuildRequires: make BuildRequires: gcc-c++ +%if %{with rust} +BuildRequires: crate(anstream) +BuildRequires: crate(anstyle-query) +BuildRequires: crate(anyhow) +BuildRequires: crate(byteorder) +BuildRequires: crate(cfg-if) +BuildRequires: crate(clap) +BuildRequires: crate(clap_complete) +BuildRequires: crate(clap_derive) +BuildRequires: crate(colorchoice) +BuildRequires: crate(curl) +BuildRequires: crate(is-terminal) +BuildRequires: crate(libc) +BuildRequires: crate(log) +BuildRequires: crate(openssl) +BuildRequires: crate(openssl-probe) +BuildRequires: crate(serde) +BuildRequires: crate(serde_derive) +BuildRequires: crate(serde_yaml) +BuildRequires: crate(strsim) +BuildRequires: crate(terminal_size) +BuildRequires: crate(thiserror) +BuildRequires: crate(zerocopy) +BuildRequires: rust-packaging +%endif %description This is a meta package for installing the default s390-tools sub packages. @@ -71,13 +98,18 @@ be used together with the zSeries (s390) Linux kernel and device drivers. # upstream fixes/updates #%%patch 100 -p1 - +%if %{with rust} +%cargo_prep +rm -rf ./rust/pvsecret/Cargo.lock +%endif %build make \ CFLAGS="%{build_cflags}" CXXFLAGS="%{build_cxxflags}" LDFLAGS="%{build_ldflags}" \ - HAVE_CARGO=0 \ HAVE_DRACUT=1 \ +%if %{without rust} + HAVE_CARGO=0 \ +%endif %if 0%{?with_pandoc} ENABLE_DOC=1 \ %endif @@ -89,8 +121,10 @@ make \ %install make install \ - HAVE_CARGO=0 \ HAVE_DRACUT=1 \ +%if %{without rust} + HAVE_CARGO=0 \ +%endif %if 0%{?with_pandoc} ENABLE_DOC=1 \ %endif @@ -473,6 +507,9 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_bindir}/mk-s390image %{_bindir}/pvattest %{_bindir}/pvextract-hdr +%if %{with rust} +%{_bindir}/pvsecret +%endif %{_bindir}/zkey %{_bindir}/zkey-cryptsetup %{_unitdir}/dumpconf.service @@ -501,6 +538,16 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_mandir}/man1/pvattest-create.1* %{_mandir}/man1/pvattest-perform.1* %{_mandir}/man1/pvattest-verify.1* +%if %{with rust} +%{_mandir}/man1/pvsecret-add.1* +%{_mandir}/man1/pvsecret-create-association.1* +%{_mandir}/man1/pvsecret-create-meta.1* +%{_mandir}/man1/pvsecret-create.1* +%{_mandir}/man1/pvsecret-list.1* +%{_mandir}/man1/pvsecret-lock.1* +%{_mandir}/man1/pvsecret-version.1* +%{_mandir}/man1/pvsecret.1* +%endif %{_mandir}/man1/zkey.1* %{_mandir}/man1/zkey-cryptsetup.1* %{_mandir}/man1/zkey-ekmfweb.1* @@ -900,6 +947,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Thu Aug 31 2023 Jakub Čajka - 2:2.29.0-2 +- enable rust based tools + * Mon Aug 07 2023 Dan Horák - 2:2.29.0-1 - rebased to 2.29.0 From 3b4ba770c1bba446aab251ce6d8f7608b64c490a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20=C4=8Cajka?= Date: Wed, 6 Sep 2023 11:00:23 +0200 Subject: [PATCH 35/84] Move all package options to bconds --- s390utils.spec | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index 28fa1c0..97f5d60 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -1,11 +1,16 @@ # secure boot support is for RHEL only %if 0%{?rhel} >= 8 -%global signzipl 1 +%bcond_without signzipl +%else +%bcond_with signzipl %endif %if 0%{?fedora} -%global with_pandoc 1 +%bcond_without pandoc +%else +%bcond_with pandoc %endif + %bcond_without rust Name: s390utils @@ -31,7 +36,7 @@ Source23: 20-zipl-kernel.install Source24: 52-zipl-rescue.install Source25: 91-zipl.install -%if 0%{?signzipl} +%if %{with signzipl} %define pesign_name redhatsecureboot302 %endif @@ -110,7 +115,7 @@ make \ %if %{without rust} HAVE_CARGO=0 \ %endif -%if 0%{?with_pandoc} +%if %{with pandoc} ENABLE_DOC=1 \ %endif NO_PIE_LDFLAGS="" \ @@ -125,7 +130,7 @@ make install \ %if %{without rust} HAVE_CARGO=0 \ %endif -%if 0%{?with_pandoc} +%if %{with pandoc} ENABLE_DOC=1 \ %endif DESTDIR=%{buildroot} \ @@ -135,7 +140,7 @@ make install \ V=1 # sign the stage3 bootloader -%if 0%{?signzipl} +%if %{with signzipl} if [ -x /usr/bin/rpm-sign ]; then pushd %{buildroot}/lib/s390-tools/ rpm-sign --key "%{pesign_name}" --lkmsign stage3.bin --output stage3.signed @@ -892,7 +897,7 @@ Summary: Use multipath information for re-IPL path failover BuildRequires: make BuildRequires: bash BuildRequires: coreutils -%if 0%{?with_pandoc} +%if %{with pandoc} BuildRequires: pandoc %endif BuildRequires: gawk @@ -913,7 +918,7 @@ 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} +%if %{with pandoc} %doc chreipl-fcp-mpath/README.html %endif %dir %{_prefix}/lib/chreipl-fcp-mpath/ From 535cc10766cc93d4ac53c41ba04e7f91d14943b4 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Mon, 23 Oct 2023 20:45:57 -0400 Subject: [PATCH 36/84] Use vendored dependencies in RHEL builds RHEL does not package individual rust crate dependencies. Instead, rust-based packages must vendor these, and use the RHEL macros to build them. --- .gitignore | 1 + s390utils.spec | 22 +++++++++++++++++++++- sources | 1 + 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 7a88321..4b33380 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ src_vipa-2.0.4.tar.gz /src_vipa-2.1.0.tar.gz /s390-tools-*.tar.bz2 /s390-tools-*.tar.gz +/s390-tools-*-rust-vendor.tar.xz diff --git a/s390utils.spec b/s390utils.spec index 97f5d60..3efc9dc 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -16,13 +16,18 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.29.0 -Release: 2%{?dist} +Release: 3%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later ExclusiveArch: s390 s390x URL: https://github.com/ibm-s390-linux/s390-tools Source0: https://github.com/ibm-s390-linux/s390-tools/archive/v%{version}.tar.gz#/s390-tools-%{version}.tar.gz +# To create the vendor tarball: +# tar xf s390-tools-%%{version}.tar.gz ; pushd s390-tools-%%{version}/rust/pvsecret ; \ +# rm -f Cargo.lock && cargo vendor && \ +# tar Jvcf ../../../s390-tools-%%{version}-rust-vendor.tar.xz vendor/ ; popd +Source1: s390-tools-%{version}-rust-vendor.tar.xz Source5: https://fedorapeople.org/cgit/sharkcz/public_git/utils.git/tree/zfcpconf.sh Source7: https://fedorapeople.org/cgit/sharkcz/public_git/utils.git/tree/zfcp.udev Source12: https://fedorapeople.org/cgit/sharkcz/public_git/utils.git/tree/dasd.udev @@ -60,6 +65,11 @@ Requires: s390utils-ziomon = %{epoch}:%{version}-%{release} BuildRequires: make BuildRequires: gcc-c++ %if %{with rust} +%if 0%{?rhel} +BuildRequires: libcurl-devel +BuildRequires: openssl-devel +BuildRequires: rust-toolset +%else BuildRequires: crate(anstream) BuildRequires: crate(anstyle-query) BuildRequires: crate(anyhow) @@ -84,6 +94,7 @@ BuildRequires: crate(thiserror) BuildRequires: crate(zerocopy) BuildRequires: rust-packaging %endif +%endif %description This is a meta package for installing the default s390-tools sub packages. @@ -104,7 +115,13 @@ be used together with the zSeries (s390) Linux kernel and device drivers. # upstream fixes/updates #%%patch 100 -p1 %if %{with rust} +%if 0%{?rhel} +pushd rust +%cargo_prep -V 1 +popd +%else %cargo_prep +%endif rm -rf ./rust/pvsecret/Cargo.lock %endif @@ -952,6 +969,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Mon Oct 23 2023 Yaakov Selkowitz - 2:2.29.0-3 +- Use vendored dependencies in RHEL builds + * Thu Aug 31 2023 Jakub Čajka - 2:2.29.0-2 - enable rust based tools diff --git a/sources b/sources index 6100d46..cb9b8cc 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ SHA512 (s390-tools-2.29.0.tar.gz) = 3eeaab0e0c6559b9fb0b4c7cca49358a7cc7fe0cb11684d2d761fe105cc2bfd791d33ecc2070e3dfd877039b68e868699cd3cea318e64aee1cc0f348c7b41617 +SHA512 (s390-tools-2.29.0-rust-vendor.tar.xz) = 7ee717c5848e7b59c3e11ef6b461122e5f1195e67d11e378352b297926b498180222bfc23719d952fb11677a3fd440d299e0035ca6ab0c6d784573e9a5698594 From 5184801f0e597aad6316632316ba7423da826785 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 24 Oct 2023 12:35:34 +0000 Subject: [PATCH 37/84] switch to %autosetup --- s390utils.spec | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index 3efc9dc..e9ffe0b 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -105,15 +105,8 @@ The s390utils packages contain a set of user space utilities that should to be used together with the zSeries (s390) Linux kernel and device drivers. %prep -%setup -q -n s390-tools-%{version} +%autosetup -n s390-tools-%{version} -p1 -# Fedora/RHEL changes -%patch 0 -p1 -b .zipl-invert-script-options -%patch 1 -p1 -b .blscfg-rpm-nvr-sort -%patch 2 -p1 -b .snmp - -# upstream fixes/updates -#%%patch 100 -p1 %if %{with rust} %if 0%{?rhel} pushd rust From 51cd104ddd8dc6a4fc7189e0b82f0a76eb8fff7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 9 Nov 2023 09:46:07 +0100 Subject: [PATCH 38/84] use %license for LICENSE --- s390utils.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index e9ffe0b..5119aa4 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -240,7 +240,7 @@ This package provides minimal set of tools needed to system to boot. %files core %doc README.md zdev/src/chzdev_usage.txt -%doc LICENSE +%license LICENSE %{_sbindir}/chreipl %{_sbindir}/chzdev %{_sbindir}/cio_ignore From 70bd1af9bd39133fcee61f9ec70b2150ad4adc8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 9 Nov 2023 11:20:35 +0100 Subject: [PATCH 39/84] request a specific version of zerocopy as we have a newer one too --- s390utils.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index 5119aa4..928a515 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -91,7 +91,7 @@ BuildRequires: crate(serde_yaml) BuildRequires: crate(strsim) BuildRequires: crate(terminal_size) BuildRequires: crate(thiserror) -BuildRequires: crate(zerocopy) +BuildRequires: crate(zerocopy) = 0.6.5 BuildRequires: rust-packaging %endif %endif From 40db3a57aee8449123eb4e77aa235169a52c767a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Fri, 10 Nov 2023 11:41:36 +0100 Subject: [PATCH 40/84] rename installed kernel to match name used in boot entry clone of https://src.fedoraproject.org/rpms/grub2/c/af4f1536b6e498b88c1b07d00fc047184453839a?branch=rawhide --- 20-zipl-kernel.install | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/20-zipl-kernel.install b/20-zipl-kernel.install index 4fadd1d..5ec4576 100755 --- a/20-zipl-kernel.install +++ b/20-zipl-kernel.install @@ -54,8 +54,13 @@ EOF case "$COMMAND" in add) if [[ "${KERNEL_DIR}" != "/boot" ]]; then + # rename to match the name used in the pseudo-BLS snippet above + rm -f "/boot/vmlinuz-${KERNEL_VERSION}" + cp -aT "${KERNEL_IMAGE}" "/boot/vmlinuz-${KERNEL_VERSION}" + command -v restorecon &>/dev/null && \ + restorecon -R "/boot/vmlinuz-${KERNEL_VERSION}" + for i in \ - "$KERNEL_IMAGE" \ "$KERNEL_DIR"/System.map \ "$KERNEL_DIR"/config \ "$KERNEL_DIR"/zImage.stub From 7a5c89e84a4eb00cc3c75908aa30dde11fee1d54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Fri, 10 Nov 2023 11:48:10 +0100 Subject: [PATCH 41/84] do not preserve ownership or xattrs on copied files clone of https://src.fedoraproject.org/rpms/grub2/c/8800efcb0bea5750f77f88a05ac9211a19cbc7a0?branch=rawhide --- 20-zipl-kernel.install | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/20-zipl-kernel.install b/20-zipl-kernel.install index 5ec4576..6847a20 100755 --- a/20-zipl-kernel.install +++ b/20-zipl-kernel.install @@ -56,7 +56,7 @@ case "$COMMAND" in if [[ "${KERNEL_DIR}" != "/boot" ]]; then # rename to match the name used in the pseudo-BLS snippet above rm -f "/boot/vmlinuz-${KERNEL_VERSION}" - cp -aT "${KERNEL_IMAGE}" "/boot/vmlinuz-${KERNEL_VERSION}" + cp --preserve=timestamps -T "${KERNEL_IMAGE}" "/boot/vmlinuz-${KERNEL_VERSION}" command -v restorecon &>/dev/null && \ restorecon -R "/boot/vmlinuz-${KERNEL_VERSION}" @@ -66,14 +66,14 @@ case "$COMMAND" in "$KERNEL_DIR"/zImage.stub do [[ -e "$i" ]] || continue - cp -aT "$i" "/boot/${i##*/}-${KERNEL_VERSION}" + cp --preserve=timestamps -T "$i" "/boot/${i##*/}-${KERNEL_VERSION}" command -v restorecon &>/dev/null && \ restorecon -R "/boot/${i##*/}-${KERNEL_VERSION}" done # hmac is .vmlinuz-.hmac so needs a special treatment i="$KERNEL_DIR/.${KERNEL_IMAGE##*/}.hmac" if [[ -e "$i" ]]; then - cp -a "$i" "/boot/.${KERNEL_IMAGE##*/}-${KERNEL_VERSION}.hmac" + cp --preserve=timestamps "$i" "/boot/.${KERNEL_IMAGE##*/}-${KERNEL_VERSION}.hmac" command -v restorecon &>/dev/null && \ restorecon "/boot/.${KERNEL_IMAGE##*/}-${KERNEL_VERSION}.hmac" fi @@ -96,7 +96,7 @@ case "$COMMAND" in [[ -d "$BLS_DIR" ]] || mkdir -m 0700 -p "$BLS_DIR" BLS_TARGET="${BLS_DIR}/${MACHINE_ID}-${KERNEL_VERSION}.conf" if [[ -f "${KERNEL_DIR}/bls.conf" ]]; then - cp -aT "${KERNEL_DIR}/bls.conf" "${BLS_TARGET}" || exit $? + cp --preserve=timestamps -T "${KERNEL_DIR}/bls.conf" "${BLS_TARGET}" || exit $? sed -i -e "s,^linux.*,linux /boot/vmlinuz-${KERNEL_VERSION},g" "${BLS_TARGET}" sed -i -e "s,^initrd.*,initrd /boot/initramfs-${KERNEL_VERSION}.img,g" "${BLS_TARGET}" sed -i -e "s#^options.*#options ${BOOT_OPTIONS[*]}#g" "${BLS_TARGET}" @@ -117,7 +117,7 @@ case "$COMMAND" in if [ "x${MAKEDEBUG}" = "xyes" ]; then BLS_DEBUG="$(echo ${BLS_TARGET} | sed -e "s/${KERNEL_VERSION}/${KERNEL_VERSION}~debug/")" - cp -aT "${BLS_TARGET}" "${BLS_DEBUG}" + cp --preserve=timestamps -T "${BLS_TARGET}" "${BLS_DEBUG}" TITLE="$(grep '^title[ \t]' "${BLS_DEBUG}" | sed -e 's/^title[ \t]*//')" VERSION="$(grep '^version[ \t]' "${BLS_DEBUG}" | sed -e 's/^version[ \t]*//')" BLSID="$(grep '^id[ \t]' "${BLS_DEBUG}" | sed -e "s/${KERNEL_VERSION}/${KERNEL_VERSION}~debug/")" From ca71fe340e090fe641f2e03aea254135e64abcc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Fri, 10 Nov 2023 11:59:34 +0100 Subject: [PATCH 42/84] let cp remove the destination files clone of https://src.fedoraproject.org/rpms/grub2/c/e1206cf45b3bdde97e166d5c0d55842c864a1c9e?branch=rawhide --- 20-zipl-kernel.install | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/20-zipl-kernel.install b/20-zipl-kernel.install index 6847a20..8cb8d86 100755 --- a/20-zipl-kernel.install +++ b/20-zipl-kernel.install @@ -55,8 +55,7 @@ case "$COMMAND" in add) if [[ "${KERNEL_DIR}" != "/boot" ]]; then # rename to match the name used in the pseudo-BLS snippet above - rm -f "/boot/vmlinuz-${KERNEL_VERSION}" - cp --preserve=timestamps -T "${KERNEL_IMAGE}" "/boot/vmlinuz-${KERNEL_VERSION}" + cp --remove-destination --preserve=timestamps -T "${KERNEL_IMAGE}" "/boot/vmlinuz-${KERNEL_VERSION}" command -v restorecon &>/dev/null && \ restorecon -R "/boot/vmlinuz-${KERNEL_VERSION}" From 8a3c26800a02938c00ebf75819f1906dbea64e4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Fri, 10 Nov 2023 12:11:20 +0100 Subject: [PATCH 43/84] - fix upstream kernel installations Apply changes from the grub2 kernel install helper script to the zipl helper. Related: rhbz#2239008 --- s390utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index 928a515..c23ffb3 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -16,7 +16,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.29.0 -Release: 3%{?dist} +Release: 4%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -962,6 +962,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Fri Nov 10 2023 Dan Horák - 2:2.29.0-4 +- fix upstream kernel installations + * Mon Oct 23 2023 Yaakov Selkowitz - 2:2.29.0-3 - Use vendored dependencies in RHEL builds From 2c0b6d2ea2d7cac483d2b2c73d03154f3bfc31e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Fri, 10 Nov 2023 12:09:35 +0100 Subject: [PATCH 44/84] enable multi-arch builds Select tools are expected to be used on non-s390x platforms, so drop ExclusiveArch and add a special %files section for this case. The tools will be available in the s390utils binary rpm. --- s390utils.spec | 72 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 68 insertions(+), 4 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index c23ffb3..c090677 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -16,11 +16,10 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.29.0 -Release: 4%{?dist} +Release: 5%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later -ExclusiveArch: s390 s390x URL: https://github.com/ibm-s390-linux/s390-tools Source0: https://github.com/ibm-s390-linux/s390-tools/archive/v%{version}.tar.gz#/s390-tools-%{version}.tar.gz # To create the vendor tarball: @@ -54,6 +53,13 @@ Patch2: snmp-semicolon.patch # upstream fixes/updates #Patch100: s390utils-%%{version}-fedora.patch +# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval +ExcludeArch: %{ix86} + +%ifarch s390x +# +# s390x/native package structure +# Requires: s390utils-core = %{epoch}:%{version}-%{release} Requires: s390utils-base = %{epoch}:%{version}-%{release} Requires: s390utils-osasnmpd = %{epoch}:%{version}-%{release} @@ -61,9 +67,11 @@ Requires: s390utils-cpuplugd = %{epoch}:%{version}-%{release} Requires: s390utils-mon_statd = %{epoch}:%{version}-%{release} Requires: s390utils-iucvterm = %{epoch}:%{version}-%{release} Requires: s390utils-ziomon = %{epoch}:%{version}-%{release} +%endif BuildRequires: make BuildRequires: gcc-c++ +BuildRequires: glib2-devel %if %{with rust} %if 0%{?rhel} BuildRequires: libcurl-devel @@ -149,6 +157,10 @@ make install \ DISTRELEASE=%{release} \ V=1 +%ifarch s390x +# +# s390x/native specific %%install section +# # sign the stage3 bootloader %if %{with signzipl} if [ -x /usr/bin/rpm-sign ]; then @@ -208,11 +220,56 @@ install -p -m 644 %{SOURCE17} %{buildroot}%{_udevrulesdir}/81-ccw.rules # zipl.conf to be ghosted touch %{buildroot}%{_sysconfdir}/zipl.conf +%endif - +%ifarch s390x +# +# s390x/native main %%files section +# %files %doc README.md +%else +# +# multiarch %%files section +# + +%files +%doc README.md +%license LICENSE +%{_bindir}/genprotimg +%{_bindir}/pvattest +%{_bindir}/pvextract-hdr +%if %{with rust} +%{_bindir}/pvsecret +%endif +%{_mandir}/man1/genprotimg.1* +%{_mandir}/man1/pvattest.1* +%{_mandir}/man1/pvattest-create.1* +%{_mandir}/man1/pvattest-perform.1* +%{_mandir}/man1/pvattest-verify.1* +%if %{with rust} +%{_mandir}/man1/pvsecret-add.1* +%{_mandir}/man1/pvsecret-create-association.1* +%{_mandir}/man1/pvsecret-create-meta.1* +%{_mandir}/man1/pvsecret-create.1* +%{_mandir}/man1/pvsecret-list.1* +%{_mandir}/man1/pvsecret-lock.1* +%{_mandir}/man1/pvsecret-version.1* +%{_mandir}/man1/pvsecret.1* +%endif +%dir %{_datadir}/s390-tools +%{_datadir}/s390-tools/genprotimg/ + +# +# enf of multi-arch section +# +%endif + +%ifarch s390x +# +# s390x specific sub-packages +# # # ************************* s390-tools core package ************************* # @@ -323,7 +380,6 @@ BuildRequires: glibc-static BuildRequires: cryptsetup-devel >= 2.0.3 BuildRequires: json-c-devel BuildRequires: rpm-devel -BuildRequires: glib2-devel BuildRequires: libxml2-devel @@ -960,8 +1016,16 @@ User-space development files for the s390/s390x architecture. %{_libdir}/libekmfweb.so %{_libdir}/libkmipclient.so +# +# end of s390x specific sub-packages +# +%endif + %changelog +* Fri Nov 10 2023 Dan Horák - 2:2.29.0-5 +- enable multi-arch build + * Fri Nov 10 2023 Dan Horák - 2:2.29.0-4 - fix upstream kernel installations From f00ff2ac5578b9bcd7ececd4c0172230a8f18ee5 Mon Sep 17 00:00:00 2001 From: Fabio Valentini Date: Fri, 1 Dec 2023 16:17:48 +0100 Subject: [PATCH 45/84] Rebuild for openssl crate >= v0.10.60 (RUSTSEC-2023-0044, RUSTSEC-2023-0072) --- s390utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index c090677..15bdcb1 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -16,7 +16,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.29.0 -Release: 5%{?dist} +Release: 6%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -1023,6 +1023,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Fri Dec 01 2023 Fabio Valentini - 2:2.29.0-6 +- Rebuild for openssl crate >= v0.10.60 (RUSTSEC-2023-0044, RUSTSEC-2023-0072) + * Fri Nov 10 2023 Dan Horák - 2:2.29.0-5 - enable multi-arch build From 0f03699129760490a28f63770bf1a4d59862cdcf Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Tue, 12 Dec 2023 19:50:01 -0500 Subject: [PATCH 46/84] Fix build with libxml2-2.12.0 https://github.com/ibm-s390-linux/s390-tools/pull/160 --- libxml2-parser.patch | 12 ++++++++++++ s390utils.spec | 3 +++ 2 files changed, 15 insertions(+) create mode 100644 libxml2-parser.patch diff --git a/libxml2-parser.patch b/libxml2-parser.patch new file mode 100644 index 0000000..920d86d --- /dev/null +++ b/libxml2-parser.patch @@ -0,0 +1,12 @@ +diff --git a/libkmipclient/kmip.h b/libkmipclient/kmip.h +index e918577..3344cb0 100644 +--- a/libkmipclient/kmip.h ++++ b/libkmipclient/kmip.h +@@ -16,6 +16,7 @@ + #include + + #include ++#include + #include + #include + diff --git a/s390utils.spec b/s390utils.spec index 15bdcb1..9111266 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -49,6 +49,9 @@ Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch # https://github.com/ibm-s390-linux/s390-tools/pull/155 Patch2: snmp-semicolon.patch +# fix build with libxml2-2.12.0 +# https://github.com/ibm-s390-linux/s390-tools/pull/160 +Patch3: libxml2-parser.patch # upstream fixes/updates #Patch100: s390utils-%%{version}-fedora.patch From ad9e1ad7a00beb32c07d1188ad2fd77bf1d88334 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 2 Jan 2024 14:26:47 +0000 Subject: [PATCH 47/84] - rebased to 2.30.0 (rhbz#2252519) --- libxml2-parser.patch | 12 ------------ s390utils-2.28.0-fedora.patch | 0 s390utils-2.30.0-fedora.patch | 33 +++++++++++++++++++++++++++++++++ s390utils.spec | 29 ++++++++++++++++------------- snmp-semicolon.patch | 12 ------------ sources | 4 ++-- 6 files changed, 51 insertions(+), 39 deletions(-) delete mode 100644 libxml2-parser.patch delete mode 100644 s390utils-2.28.0-fedora.patch create mode 100644 s390utils-2.30.0-fedora.patch delete mode 100644 snmp-semicolon.patch diff --git a/libxml2-parser.patch b/libxml2-parser.patch deleted file mode 100644 index 920d86d..0000000 --- a/libxml2-parser.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/libkmipclient/kmip.h b/libkmipclient/kmip.h -index e918577..3344cb0 100644 ---- a/libkmipclient/kmip.h -+++ b/libkmipclient/kmip.h -@@ -16,6 +16,7 @@ - #include - - #include -+#include - #include - #include - diff --git a/s390utils-2.28.0-fedora.patch b/s390utils-2.28.0-fedora.patch deleted file mode 100644 index e69de29..0000000 diff --git a/s390utils-2.30.0-fedora.patch b/s390utils-2.30.0-fedora.patch new file mode 100644 index 0000000..a4bb576 --- /dev/null +++ b/s390utils-2.30.0-fedora.patch @@ -0,0 +1,33 @@ +From 6274294bc5cca34d626125072eb5befdd80d381f Mon Sep 17 00:00:00 2001 +From: Yaakov Selkowitz +Date: Tue, 12 Dec 2023 19:44:05 -0500 +Subject: [PATCH] libkmipclient: Fix build with libxml2-2.12.0 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.12.0 + +"Several cyclic dependencies in public header files were fixed. As a +result, certain headers won't include other headers as before." + +Closes: https://github.com/ibm-s390-linux/s390-tools/pull/160 +Signed-off-by: Yaakov Selkowitz +Reviewed-by: Ingo Franzki +Signed-off-by: Jan Höppner +--- + libkmipclient/kmip.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/libkmipclient/kmip.h b/libkmipclient/kmip.h +index e91857761..3344cb016 100644 +--- a/libkmipclient/kmip.h ++++ b/libkmipclient/kmip.h +@@ -16,6 +16,7 @@ + #include + + #include ++#include + #include + #include + diff --git a/s390utils.spec b/s390utils.spec index 9111266..66d1b54 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -15,17 +15,17 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.29.0 -Release: 6%{?dist} +Version: 2.30.0 +Release: 1%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later URL: https://github.com/ibm-s390-linux/s390-tools Source0: https://github.com/ibm-s390-linux/s390-tools/archive/v%{version}.tar.gz#/s390-tools-%{version}.tar.gz # To create the vendor tarball: -# tar xf s390-tools-%%{version}.tar.gz ; pushd s390-tools-%%{version}/rust/pvsecret ; \ +# tar xf s390-tools-%%{version}.tar.gz ; pushd s390-tools-%%{version}/rust ; \ # rm -f Cargo.lock && cargo vendor && \ -# tar Jvcf ../../../s390-tools-%%{version}-rust-vendor.tar.xz vendor/ ; popd +# tar Jvcf ../../s390-tools-%%{version}-rust-vendor.tar.xz vendor/ ; popd Source1: s390-tools-%{version}-rust-vendor.tar.xz Source5: https://fedorapeople.org/cgit/sharkcz/public_git/utils.git/tree/zfcpconf.sh Source7: https://fedorapeople.org/cgit/sharkcz/public_git/utils.git/tree/zfcp.udev @@ -47,14 +47,9 @@ Source25: 91-zipl.install # change the defaults to match Fedora environment Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch -# https://github.com/ibm-s390-linux/s390-tools/pull/155 -Patch2: snmp-semicolon.patch -# fix build with libxml2-2.12.0 -# https://github.com/ibm-s390-linux/s390-tools/pull/160 -Patch3: libxml2-parser.patch # upstream fixes/updates -#Patch100: s390utils-%%{version}-fedora.patch +Patch100: s390utils-%{version}-fedora.patch # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} @@ -92,17 +87,20 @@ BuildRequires: crate(clap_derive) BuildRequires: crate(colorchoice) BuildRequires: crate(curl) BuildRequires: crate(is-terminal) +BuildRequires: crate(lazy_static) BuildRequires: crate(libc) BuildRequires: crate(log) +BuildRequires: crate(mockito) BuildRequires: crate(openssl) BuildRequires: crate(openssl-probe) BuildRequires: crate(serde) BuildRequires: crate(serde_derive) +BuildRequires: crate(serde_test) BuildRequires: crate(serde_yaml) BuildRequires: crate(strsim) BuildRequires: crate(terminal_size) BuildRequires: crate(thiserror) -BuildRequires: crate(zerocopy) = 0.6.5 +BuildRequires: crate(zerocopy) = 0.6.6 BuildRequires: rust-packaging %endif %endif @@ -126,7 +124,7 @@ popd %else %cargo_prep %endif -rm -rf ./rust/pvsecret/Cargo.lock +rm ./rust/Cargo.lock %endif %build @@ -547,8 +545,9 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_sbindir}/lscss %{_sbindir}/lsdasd %{_sbindir}/lshwc -%{_sbindir}/lsqeth %{_sbindir}/lsluns +%{_sbindir}/lsqeth +%{_sbindir}/lspai %{_sbindir}/lsreipl %{_sbindir}/lsscm %{_sbindir}/lsshut @@ -646,6 +645,7 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_mandir}/man8/lsdasd.8* %{_mandir}/man8/lshwc.8* %{_mandir}/man8/lsluns.8* +%{_mandir}/man8/lspai.8* %{_mandir}/man8/lsqeth.8* %{_mandir}/man8/lsreipl.8* %{_mandir}/man8/lsscm.8* @@ -1026,6 +1026,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Tue Jan 02 2024 Dan Horák - 2:2.30.0-1 +- rebased to 2.30.0 (rhbz#2252519) + * Fri Dec 01 2023 Fabio Valentini - 2:2.29.0-6 - Rebuild for openssl crate >= v0.10.60 (RUSTSEC-2023-0044, RUSTSEC-2023-0072) diff --git a/snmp-semicolon.patch b/snmp-semicolon.patch deleted file mode 100644 index 131d2a0..0000000 --- a/snmp-semicolon.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ruNp a/osasnmpd/ibmOSAMib.h b/osasnmpd/ibmOSAMib.h ---- a/osasnmpd/ibmOSAMib.h 2023-08-30 20:13:41.231150334 +0200 -+++ b/osasnmpd/ibmOSAMib.h 2023-08-30 20:13:27.414030798 +0200 -@@ -16,7 +16,7 @@ - - /* we may use header_generic and header_simple_table from the util_funcs module */ - --config_require(util_funcs) -+config_require(util_funcs); - - - /* function prototypes */ diff --git a/sources b/sources index cb9b8cc..8c0f1fb 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (s390-tools-2.29.0.tar.gz) = 3eeaab0e0c6559b9fb0b4c7cca49358a7cc7fe0cb11684d2d761fe105cc2bfd791d33ecc2070e3dfd877039b68e868699cd3cea318e64aee1cc0f348c7b41617 -SHA512 (s390-tools-2.29.0-rust-vendor.tar.xz) = 7ee717c5848e7b59c3e11ef6b461122e5f1195e67d11e378352b297926b498180222bfc23719d952fb11677a3fd440d299e0035ca6ab0c6d784573e9a5698594 +SHA512 (s390-tools-2.30.0.tar.gz) = 414ce95a0952b7b48aea94661e7a95a26d426ce27136800a91bd1cced46998741229c5d058a9c55484491c771a112e4c1401b569c67a5d52d7ba8d33b1a0cba1 +SHA512 (s390-tools-2.30.0-rust-vendor.tar.xz) = a20a8da5e134883309a88ee1e796dcdd60a191917307fc3d129e1d3a6363117fc6f95c2319cd4b451ea7d3fbd599227a3ae53a8871076613877e15e0a4eda5dd From 3eddb1a0360da6219746ba6963e3138c5546d5f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Fri, 26 Jan 2024 08:26:23 +0000 Subject: [PATCH 48/84] - add s390utils-se-data as a noarch subpackage with Secure Execution data files --- s390utils.spec | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index 66d1b54..bb107af 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -16,7 +16,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.30.0 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -65,6 +65,11 @@ Requires: s390utils-cpuplugd = %{epoch}:%{version}-%{release} Requires: s390utils-mon_statd = %{epoch}:%{version}-%{release} Requires: s390utils-iucvterm = %{epoch}:%{version}-%{release} Requires: s390utils-ziomon = %{epoch}:%{version}-%{release} +%else +# +# multiarch package structure +# +Requires: s390utils-se-data = %{epoch}:%{version}-%{release} %endif BuildRequires: make @@ -374,6 +379,7 @@ Requires: ethtool Requires: tar Requires: file Requires: s390utils-core = %{epoch}:%{version}-%{release} +Requires: s390utils-se-data = %{epoch}:%{version}-%{release} %{?systemd_requires} BuildRequires: perl-generators BuildRequires: ncurses-devel @@ -671,7 +677,6 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_mandir}/man8/znetconf.8* %{_mandir}/man8/zpcictl.8* %dir %{_datadir}/s390-tools -%{_datadir}/s390-tools/genprotimg/ %{_datadir}/s390-tools/netboot/ %dir %attr(0770,root,zkeyadm) %{_sysconfdir}/zkey %dir %attr(0770,root,zkeyadm) %{_sysconfdir}/zkey/kmip @@ -683,6 +688,18 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm # Additional Fedora/RHEL specific stuff /boot/tape0 +%package se-data +License: MIT +Summary: Data for Secure Execution +BuildArch: noarch + +%description se-data +%{summary}. + +%files se-data +%dir %{_datadir}/s390-tools +%{_datadir}/s390-tools/genprotimg/ + # # *********************** s390-tools osasnmpd package *********************** # @@ -1026,6 +1043,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Thu Jan 25 2024 Dan Horák - 2:2.30.0-2 +- add s390utils-se-data as a noarch subpackage with Secure Execution data files + * Tue Jan 02 2024 Dan Horák - 2:2.30.0-1 - rebased to 2.30.0 (rhbz#2252519) From 0226a1b211c6f94017623548bd9f544dd9168299 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Mon, 5 Feb 2024 11:05:29 +0000 Subject: [PATCH 49/84] - rebased to 2.31.0 (rhbz#2262499) --- s390utils-2.30.0-fedora.patch | 33 --------------------------------- s390utils-2.31.0-fedora.patch | 0 s390utils.spec | 30 ++++++++++++++++++++++++------ sources | 4 ++-- 4 files changed, 26 insertions(+), 41 deletions(-) delete mode 100644 s390utils-2.30.0-fedora.patch create mode 100644 s390utils-2.31.0-fedora.patch diff --git a/s390utils-2.30.0-fedora.patch b/s390utils-2.30.0-fedora.patch deleted file mode 100644 index a4bb576..0000000 --- a/s390utils-2.30.0-fedora.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 6274294bc5cca34d626125072eb5befdd80d381f Mon Sep 17 00:00:00 2001 -From: Yaakov Selkowitz -Date: Tue, 12 Dec 2023 19:44:05 -0500 -Subject: [PATCH] libkmipclient: Fix build with libxml2-2.12.0 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.12.0 - -"Several cyclic dependencies in public header files were fixed. As a -result, certain headers won't include other headers as before." - -Closes: https://github.com/ibm-s390-linux/s390-tools/pull/160 -Signed-off-by: Yaakov Selkowitz -Reviewed-by: Ingo Franzki -Signed-off-by: Jan Höppner ---- - libkmipclient/kmip.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/libkmipclient/kmip.h b/libkmipclient/kmip.h -index e91857761..3344cb016 100644 ---- a/libkmipclient/kmip.h -+++ b/libkmipclient/kmip.h -@@ -16,6 +16,7 @@ - #include - - #include -+#include - #include - #include - diff --git a/s390utils-2.31.0-fedora.patch b/s390utils-2.31.0-fedora.patch new file mode 100644 index 0000000..e69de29 diff --git a/s390utils.spec b/s390utils.spec index bb107af..3a3eeca 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -15,8 +15,8 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.30.0 -Release: 2%{?dist} +Version: 2.31.0 +Release: 1%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -49,7 +49,7 @@ Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch # upstream fixes/updates -Patch100: s390utils-%{version}-fedora.patch +#Patch100: s390utils-%%{version}-fedora.patch # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} @@ -105,7 +105,7 @@ BuildRequires: crate(serde_yaml) BuildRequires: crate(strsim) BuildRequires: crate(terminal_size) BuildRequires: crate(thiserror) -BuildRequires: crate(zerocopy) = 0.6.6 +BuildRequires: crate(zerocopy) BuildRequires: rust-packaging %endif %endif @@ -244,12 +244,18 @@ touch %{buildroot}%{_sysconfdir}/zipl.conf %doc README.md %license LICENSE %{_bindir}/genprotimg +%if %{with rust} +%{_bindir}/pvapconfig +%endif %{_bindir}/pvattest %{_bindir}/pvextract-hdr %if %{with rust} %{_bindir}/pvsecret %endif %{_mandir}/man1/genprotimg.1* +%if %{with rust} +%{_mandir}/man1/pvapconfig.1* +%endif %{_mandir}/man1/pvattest.1* %{_mandir}/man1/pvattest-create.1* %{_mandir}/man1/pvattest-perform.1* @@ -261,7 +267,7 @@ touch %{buildroot}%{_sysconfdir}/zipl.conf %{_mandir}/man1/pvsecret-create.1* %{_mandir}/man1/pvsecret-list.1* %{_mandir}/man1/pvsecret-lock.1* -%{_mandir}/man1/pvsecret-version.1* +%{_mandir}/man1/pvsecret-verify.1* %{_mandir}/man1/pvsecret.1* %endif %dir %{_datadir}/s390-tools @@ -319,7 +325,10 @@ This package provides minimal set of tools needed to system to boot. /lib/s390-tools/cpictl /lib/s390-tools/stage3.bin /lib/s390-tools/zdev_id +/lib/s390-tools/zdev-from-dasd_mod.dasd /lib/s390-tools/zdev-root-update +/lib/s390-tools/zdev-to-dasd_mod.dasd +/lib/s390-tools/zdev-to-rd.znet /lib/s390-tools/zipl.conf %ghost %config(noreplace) %{_sysconfdir}/zipl.conf %config(noreplace) %{_sysconfdir}/ziplenv @@ -583,6 +592,9 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_sbindir}/zpcictl %{_bindir}/dump2tar %{_bindir}/genprotimg +%if %{with rust} +%{_bindir}/pvapconfig +%endif %{_bindir}/mk-s390image %{_bindir}/pvattest %{_bindir}/pvextract-hdr @@ -613,6 +625,9 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_libdir}/zkey/zkey-kmip.so %{_mandir}/man1/dump2tar.1* %{_mandir}/man1/genprotimg.1* +%if %{with rust} +%{_mandir}/man1/pvapconfig.1* +%endif %{_mandir}/man1/pvattest.1* %{_mandir}/man1/pvattest-create.1* %{_mandir}/man1/pvattest-perform.1* @@ -624,7 +639,7 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_mandir}/man1/pvsecret-create.1* %{_mandir}/man1/pvsecret-list.1* %{_mandir}/man1/pvsecret-lock.1* -%{_mandir}/man1/pvsecret-version.1* +%{_mandir}/man1/pvsecret-verify.1* %{_mandir}/man1/pvsecret.1* %endif %{_mandir}/man1/zkey.1* @@ -1043,6 +1058,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Mon Feb 05 2024 Dan Horák - 2:2.31.0-1 +- rebased to 2.31.0 (rhbz#2262499) + * Thu Jan 25 2024 Dan Horák - 2:2.30.0-2 - add s390utils-se-data as a noarch subpackage with Secure Execution data files diff --git a/sources b/sources index 8c0f1fb..7e4bf25 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (s390-tools-2.30.0.tar.gz) = 414ce95a0952b7b48aea94661e7a95a26d426ce27136800a91bd1cced46998741229c5d058a9c55484491c771a112e4c1401b569c67a5d52d7ba8d33b1a0cba1 -SHA512 (s390-tools-2.30.0-rust-vendor.tar.xz) = a20a8da5e134883309a88ee1e796dcdd60a191917307fc3d129e1d3a6363117fc6f95c2319cd4b451ea7d3fbd599227a3ae53a8871076613877e15e0a4eda5dd +SHA512 (s390-tools-2.31.0.tar.gz) = d05722dff760605baad92b25a7a9264b3c936ff851b87a02ab39604a74d02ae4e14632d9b3d83eb9cb82a14bfcbb0d40bb4797896051ed3dd36d7690abfb1c64 +SHA512 (s390-tools-2.31.0-rust-vendor.tar.xz) = f9dc2887bb2502ba6f71ef7ea807380c322a46df8c65f0fc7993f3fb4eec4da120369d3e380dbcca9b6250307da0f6236a649504d542f44730e8009ace8ed450 From 882b26e4687aac8b62c050b51ab50dc44a37a1e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Mon, 5 Feb 2024 11:25:21 +0000 Subject: [PATCH 50/84] unconditionally build with rust --- s390utils.spec | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index 3a3eeca..3ab9bab 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -11,8 +11,6 @@ %bcond_with pandoc %endif -%bcond_without rust - Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.31.0 @@ -75,7 +73,6 @@ Requires: s390utils-se-data = %{epoch}:%{version}-%{release} BuildRequires: make BuildRequires: gcc-c++ BuildRequires: glib2-devel -%if %{with rust} %if 0%{?rhel} BuildRequires: libcurl-devel BuildRequires: openssl-devel @@ -108,7 +105,6 @@ BuildRequires: crate(thiserror) BuildRequires: crate(zerocopy) BuildRequires: rust-packaging %endif -%endif %description This is a meta package for installing the default s390-tools sub packages. @@ -121,7 +117,6 @@ be used together with the zSeries (s390) Linux kernel and device drivers. %prep %autosetup -n s390-tools-%{version} -p1 -%if %{with rust} %if 0%{?rhel} pushd rust %cargo_prep -V 1 @@ -130,15 +125,11 @@ popd %cargo_prep %endif rm ./rust/Cargo.lock -%endif %build make \ CFLAGS="%{build_cflags}" CXXFLAGS="%{build_cxxflags}" LDFLAGS="%{build_ldflags}" \ HAVE_DRACUT=1 \ -%if %{without rust} - HAVE_CARGO=0 \ -%endif %if %{with pandoc} ENABLE_DOC=1 \ %endif @@ -151,9 +142,6 @@ make \ %install make install \ HAVE_DRACUT=1 \ -%if %{without rust} - HAVE_CARGO=0 \ -%endif %if %{with pandoc} ENABLE_DOC=1 \ %endif @@ -244,23 +232,16 @@ touch %{buildroot}%{_sysconfdir}/zipl.conf %doc README.md %license LICENSE %{_bindir}/genprotimg -%if %{with rust} %{_bindir}/pvapconfig -%endif %{_bindir}/pvattest %{_bindir}/pvextract-hdr -%if %{with rust} %{_bindir}/pvsecret -%endif %{_mandir}/man1/genprotimg.1* -%if %{with rust} %{_mandir}/man1/pvapconfig.1* -%endif %{_mandir}/man1/pvattest.1* %{_mandir}/man1/pvattest-create.1* %{_mandir}/man1/pvattest-perform.1* %{_mandir}/man1/pvattest-verify.1* -%if %{with rust} %{_mandir}/man1/pvsecret-add.1* %{_mandir}/man1/pvsecret-create-association.1* %{_mandir}/man1/pvsecret-create-meta.1* @@ -269,7 +250,6 @@ touch %{buildroot}%{_sysconfdir}/zipl.conf %{_mandir}/man1/pvsecret-lock.1* %{_mandir}/man1/pvsecret-verify.1* %{_mandir}/man1/pvsecret.1* -%endif %dir %{_datadir}/s390-tools %{_datadir}/s390-tools/genprotimg/ @@ -592,15 +572,11 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_sbindir}/zpcictl %{_bindir}/dump2tar %{_bindir}/genprotimg -%if %{with rust} %{_bindir}/pvapconfig -%endif %{_bindir}/mk-s390image %{_bindir}/pvattest %{_bindir}/pvextract-hdr -%if %{with rust} %{_bindir}/pvsecret -%endif %{_bindir}/zkey %{_bindir}/zkey-cryptsetup %{_unitdir}/dumpconf.service @@ -625,14 +601,11 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_libdir}/zkey/zkey-kmip.so %{_mandir}/man1/dump2tar.1* %{_mandir}/man1/genprotimg.1* -%if %{with rust} %{_mandir}/man1/pvapconfig.1* -%endif %{_mandir}/man1/pvattest.1* %{_mandir}/man1/pvattest-create.1* %{_mandir}/man1/pvattest-perform.1* %{_mandir}/man1/pvattest-verify.1* -%if %{with rust} %{_mandir}/man1/pvsecret-add.1* %{_mandir}/man1/pvsecret-create-association.1* %{_mandir}/man1/pvsecret-create-meta.1* @@ -641,7 +614,6 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_mandir}/man1/pvsecret-lock.1* %{_mandir}/man1/pvsecret-verify.1* %{_mandir}/man1/pvsecret.1* -%endif %{_mandir}/man1/zkey.1* %{_mandir}/man1/zkey-cryptsetup.1* %{_mandir}/man1/zkey-ekmfweb.1* From 93479b677f4fdaba567a3ddda5fb5de876c8e7eb Mon Sep 17 00:00:00 2001 From: Neal Gompa Date: Fri, 8 Mar 2024 10:45:47 -0500 Subject: [PATCH 51/84] Add 's390-tools' Provides to all packages The upstream name of this is 's390-tools', and nearly all other Linux distributions ship it as such. Make life easier for people by also providing this name. --- s390utils.spec | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index 3ab9bab..e89237e 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -14,7 +14,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.31.0 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -52,6 +52,9 @@ Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} +# Add Provides for upstream name +Provides: s390-tools = %{epoch}:%{version}-%{release} + %ifarch s390x # # s390x/native package structure @@ -268,6 +271,7 @@ touch %{buildroot}%{_sysconfdir}/zipl.conf %package core License: MIT Summary: S390 core tools +Provides: s390-tools-core = %{epoch}:%{version}-%{release} Requires: coreutils %{?systemd_requires} # BRs are covered via the base package @@ -362,6 +366,7 @@ This package provides minimal set of tools needed to system to boot. %package base License: MIT AND LGPL-2.1-or-later Summary: S390 base tools +Provides: s390-tools-base = %{epoch}:%{version}-%{release} Requires: gawk sed coreutils Requires: sg3_utils Requires: ethtool @@ -678,6 +683,7 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %package se-data License: MIT Summary: Data for Secure Execution +Provides: s390-tools-se-data = %{epoch}:%{version}-%{release} BuildArch: noarch %description se-data @@ -692,6 +698,7 @@ BuildArch: noarch # %package osasnmpd Summary: SNMP sub-agent for OSA-Express cards +Provides: s390-tools-osasnmpd = %{epoch}:%{version}-%{release} Requires: net-snmp Requires: psmisc BuildRequires: net-snmp-devel @@ -711,6 +718,7 @@ ATM Ethernet LAN Emulation in QDIO mode. # %package mon_statd Summary: Monitoring daemons for Linux in z/VM +Provides: s390-tools-mon_statd = %{epoch}:%{version}-%{release} Requires: coreutils %{?systemd_requires} @@ -750,6 +758,7 @@ Monitoring daemons for Linux in z/VM: # %package cpuplugd Summary: Daemon that manages CPU and memory resources +Provides: s390-tools-cpuplugd = %{epoch}:%{version}-%{release} %{?systemd_requires} BuildRequires: systemd @@ -779,6 +788,7 @@ memory can be increased or decreased exploiting the CMM1 feature. # %package ziomon Summary: S390 ziomon tools +Provides: s390-tools-ziomon = %{epoch}:%{version}-%{release} Requires: blktrace Requires: coreutils Requires: device-mapper-multipath @@ -817,6 +827,7 @@ Tool set to collect data for zfcp performance analysis and report. # %package iucvterm Summary: z/VM IUCV terminal applications +Provides: s390-tools-iucvterm = %{epoch}:%{version}-%{release} Requires(pre): shadow-utils Requires(post): grep Requires(postun): grep @@ -881,6 +892,7 @@ fi Summary: CMS file system based on FUSE BuildRequires: fuse3-devel Requires: fuse3 +Provides: s390-tools-cmsfs-fuse = %{epoch}:%{version}-%{release} Requires: glibc-gconv-extra Obsoletes: %{name}-cmsfs < 2:2.7.0-3 @@ -901,6 +913,7 @@ Summary: z/OS data set access based on FUSE BuildRequires: fuse3-devel BuildRequires: libcurl-devel Requires: fuse3 +Provides: s390-tools-zdsfs = %{epoch}:%{version}-%{release} %description zdsfs This package contains the z/OS data set access based on FUSE. @@ -916,6 +929,7 @@ This package contains the z/OS data set access based on FUSE. Summary: HMC drive file system based on FUSE BuildRequires: fuse3-devel Requires: fuse3 +Provides: s390-tools-hmcdrvfs = %{epoch}:%{version}-%{release} %description hmcdrvfs This package contains a HMC drive file system based on FUSE and a tool @@ -932,6 +946,7 @@ to list files and directories. # %package cpacfstatsd Summary: Monitor and maintain CPACF activity counters +Provides: s390-tools-cpacfstatsd = %{epoch}:%{version}-%{release} Requires(post): systemd Requires(preun): systemd Requires(postun): systemd @@ -976,6 +991,7 @@ BuildRequires: pandoc BuildRequires: gawk BuildRequires: gzip BuildRequires: sed +Provides: s390-tools-chreipl-fcp-mpath = %{epoch}:%{version}-%{release} Requires: bash Requires: coreutils Requires: util-linux @@ -1010,7 +1026,7 @@ reconfigures the FCP re-IPL settings to use an operational path. # %package devel Summary: Development files - +Provides: s390-tools-devel = %{epoch}:%{version}-%{release} Requires: %{name}-base%{?_isa} = %{epoch}:%{version}-%{release} %description devel @@ -1030,6 +1046,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Fri Mar 08 2024 Neal Gompa - 2:2.31.0-2 +- Add 's390-tools' Provides to all packages + * Mon Feb 05 2024 Dan Horák - 2:2.31.0-1 - rebased to 2.31.0 (rhbz#2262499) From 38dd409cb6e7dee446533d56efd1e9333b263a47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 4 Apr 2024 09:57:42 +0000 Subject: [PATCH 52/84] - rebased to 2.32.0 (rhbz#2273003) --- ...ls-2.31.0-fedora.patch => s390utils-2.32.0-fedora.patch | 0 s390utils.spec | 7 +++++-- sources | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) rename s390utils-2.31.0-fedora.patch => s390utils-2.32.0-fedora.patch (100%) diff --git a/s390utils-2.31.0-fedora.patch b/s390utils-2.32.0-fedora.patch similarity index 100% rename from s390utils-2.31.0-fedora.patch rename to s390utils-2.32.0-fedora.patch diff --git a/s390utils.spec b/s390utils.spec index e89237e..cd86156 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -13,8 +13,8 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.31.0 -Release: 2%{?dist} +Version: 2.32.0 +Release: 1%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -1046,6 +1046,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Thu Apr 04 2024 Dan Horák - 2:2.32.0-1 +- rebased to 2.32.0 (rhbz#2273003) + * Fri Mar 08 2024 Neal Gompa - 2:2.31.0-2 - Add 's390-tools' Provides to all packages diff --git a/sources b/sources index 7e4bf25..c85491e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (s390-tools-2.31.0.tar.gz) = d05722dff760605baad92b25a7a9264b3c936ff851b87a02ab39604a74d02ae4e14632d9b3d83eb9cb82a14bfcbb0d40bb4797896051ed3dd36d7690abfb1c64 -SHA512 (s390-tools-2.31.0-rust-vendor.tar.xz) = f9dc2887bb2502ba6f71ef7ea807380c322a46df8c65f0fc7993f3fb4eec4da120369d3e380dbcca9b6250307da0f6236a649504d542f44730e8009ace8ed450 +SHA512 (s390-tools-2.32.0.tar.gz) = 88678b577a036e726b03c8725c548ead814563235b06cece789c66b33c943b6757597abc3f0ea8f5c933fed57a7fa7df668a0eb7a7aa7efda550aebba4707fb4 +SHA512 (s390-tools-2.32.0-rust-vendor.tar.xz) = c0dff24f4f8e08b81e8752c868697a278fd7056e17acbbc244ef403eaacb1b3ba5cf379718760e8ec7999791e45add21db1a45724a19fbc2c4499ff7fb26f388 From 4a01dbe43e5b592c6b5a5e9e0d55c0fcf2bb66f4 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Tue, 21 May 2024 18:51:12 -0400 Subject: [PATCH 53/84] Update Rust macro usage The rust-toolset macros in RHEL 10 are now compatible with Fedora's in terms of handling vendoring and automatic generation of license information and bundled provides. --- s390utils.spec | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index cd86156..3d15e98 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -122,7 +122,8 @@ be used together with the zSeries (s390) Linux kernel and device drivers. %if 0%{?rhel} pushd rust -%cargo_prep -V 1 +tar xf %{SOURCE1} +%cargo_prep -v vendor popd %else %cargo_prep @@ -141,6 +142,14 @@ make \ DISTRELEASE=%{release} \ V=1 +pushd rust +%cargo_license_summary +%{cargo_license} > LICENSE.dependencies +%if 0%{?rhel} +%cargo_vendor_manifest +%endif +popd + %install make install \ @@ -234,6 +243,10 @@ touch %{buildroot}%{_sysconfdir}/zipl.conf %files %doc README.md %license LICENSE +%license rust/LICENSE.dependencies +%if 0%{?rhel} +%license rust/cargo-vendor.txt +%endif %{_bindir}/genprotimg %{_bindir}/pvapconfig %{_bindir}/pvattest @@ -528,6 +541,10 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %files base %doc README.md zdev/src/lszdev_usage.txt +%license rust/LICENSE.dependencies +%if 0%{?rhel} +%license rust/cargo-vendor.txt +%endif %{_sbindir}/chccwdev %{_sbindir}/chchp %{_sbindir}/chcpumf From 7471fc863b7e75518e630e86a49768cf90b85b26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 28 May 2024 09:37:35 +0000 Subject: [PATCH 54/84] - rebased to 2.33.1 (rhbz#2283542) --- s390utils.spec | 7 ++++++- sources | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index 3d15e98..a64d441 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -13,7 +13,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.32.0 +Version: 2.33.1 Release: 1%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files @@ -548,6 +548,7 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_sbindir}/chccwdev %{_sbindir}/chchp %{_sbindir}/chcpumf +%{_sbindir}/chpstat %{_sbindir}/chshut %{_sbindir}/chzcrypt %{_sbindir}/dasdstat @@ -645,6 +646,7 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_mandir}/man8/chccwdev.8* %{_mandir}/man8/chchp.8* %{_mandir}/man8/chcpumf.8* +%{_mandir}/man8/chpstat.8* %{_mandir}/man8/chshut.8* %{_mandir}/man8/chzcrypt.8* %{_mandir}/man8/dasdstat.8* @@ -1063,6 +1065,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Tue May 28 2024 Dan Horák - 2:2.33.1-1 +- rebased to 2.33.1 (rhbz#2283542) + * Thu Apr 04 2024 Dan Horák - 2:2.32.0-1 - rebased to 2.32.0 (rhbz#2273003) diff --git a/sources b/sources index c85491e..e20d197 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (s390-tools-2.32.0.tar.gz) = 88678b577a036e726b03c8725c548ead814563235b06cece789c66b33c943b6757597abc3f0ea8f5c933fed57a7fa7df668a0eb7a7aa7efda550aebba4707fb4 -SHA512 (s390-tools-2.32.0-rust-vendor.tar.xz) = c0dff24f4f8e08b81e8752c868697a278fd7056e17acbbc244ef403eaacb1b3ba5cf379718760e8ec7999791e45add21db1a45724a19fbc2c4499ff7fb26f388 +SHA512 (s390-tools-2.33.1.tar.gz) = 8e5cba1e5264787a2f89b340d4d9372df7cd28ae9fa263dcbc6cbbf460e48c1db167110ff901f35f82e36d0d8c97105acd7167b40d889a829c71b182e175b96c +SHA512 (s390-tools-2.33.1-rust-vendor.tar.xz) = 12b0d3af1eba223b63028b5fec85ff4cc79ec646671e56d4c3606b0b4a9d3f79469dc860141ff86e9a0fd2bc1d54f32f2588615997a9865adbe20a110237b98d From b2e91e120ae4b10bcfd82915458612f69d9a6a90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 20 Jun 2024 10:18:37 +0200 Subject: [PATCH 55/84] Add which as a dependency for base and ziomon subpackages Some tools in the base and ziomon subpackages require which, so add the depedency explictly. --- s390utils.spec | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index a64d441..d671602 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -14,7 +14,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.33.1 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -380,11 +380,14 @@ This package provides minimal set of tools needed to system to boot. License: MIT AND LGPL-2.1-or-later Summary: S390 base tools Provides: s390-tools-base = %{epoch}:%{version}-%{release} -Requires: gawk sed coreutils -Requires: sg3_utils +Requires: coreutils Requires: ethtool -Requires: tar Requires: file +Requires: gawk +Requires: sed +Requires: sg3_utils +Requires: tar +Requires: which Requires: s390utils-core = %{epoch}:%{version}-%{release} Requires: s390utils-se-data = %{epoch}:%{version}-%{release} %{?systemd_requires} @@ -819,6 +822,7 @@ Requires: rsync Requires: sed Requires: tar Requires: util-linux +Requires: which %description ziomon Tool set to collect data for zfcp performance analysis and report. @@ -1065,6 +1069,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Thu Jun 20 2024 Dan Horák - 2:2.33.1-2 +- add which as a dependency for base and ziomon subpackages (RHEL-38488) + * Tue May 28 2024 Dan Horák - 2:2.33.1-1 - rebased to 2.33.1 (rhbz#2283542) From 32cf987a5468f76c13fe0a5b733b82490e5e7d4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Wed, 26 Jun 2024 15:26:25 +0000 Subject: [PATCH 56/84] update fedora patch filename for 2.33.1 --- s390utils-2.32.0-fedora.patch => s390utils-2.33.1-fedora.patch | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename s390utils-2.32.0-fedora.patch => s390utils-2.33.1-fedora.patch (100%) diff --git a/s390utils-2.32.0-fedora.patch b/s390utils-2.33.1-fedora.patch similarity index 100% rename from s390utils-2.32.0-fedora.patch rename to s390utils-2.33.1-fedora.patch From fdae42f94f2a5843a78f9e60c0774917ded9bfc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Mon, 15 Jul 2024 13:27:44 +0200 Subject: [PATCH 57/84] - "which" is not required any more - Revert "zipl/src: Fix problems when target parameters are specified by user" --- s390utils-2.33.1-fedora.patch | 311 ++++++++++++++++++++++++++++++++++ s390utils.spec | 10 +- 2 files changed, 317 insertions(+), 4 deletions(-) diff --git a/s390utils-2.33.1-fedora.patch b/s390utils-2.33.1-fedora.patch index e69de29..c97b193 100644 --- a/s390utils-2.33.1-fedora.patch +++ b/s390utils-2.33.1-fedora.patch @@ -0,0 +1,311 @@ +From ab26b43985f44b71abf40f8d0e50bfbd0808f8b9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jan=20H=C3=B6ppner?= +Date: Fri, 14 Jun 2024 14:25:40 +0200 +Subject: [PATCH 1/2] s390-tools: Replace 'which' with built-in 'command -v' +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +There are still a few scripts using the 'which' command to determine +either the full path or the mere existence of an executable. +Some of these scripts might run in minimal environments where 'which' is +not available due to dependency restriction. 'which' is also considered +unreliable for historical implementation details. + +Use the POSIX defined [1] built-in 'command -v' instead to reduce +package dependencies and improve reliability. + +[1] https://pubs.opengroup.org/onlinepubs/9699919799/ +Reviewed-by: Benjamin Block +Signed-off-by: Jan Höppner +Signed-off-by: Steffen Eiden +(cherry picked from commit 0b0960254e8c2b556cefa97f83651a92f54a5e42) +--- + iucvterm/doc/ts-shell/iucvconn_on_login | 2 +- + netboot/mk-pxelinux-ramfs | 2 +- + ziomon/ziomon | 3 +-- + 3 files changed, 3 insertions(+), 4 deletions(-) + +diff --git a/iucvterm/doc/ts-shell/iucvconn_on_login b/iucvterm/doc/ts-shell/iucvconn_on_login +index 860c4cc..92010df 100755 +--- a/iucvterm/doc/ts-shell/iucvconn_on_login ++++ b/iucvterm/doc/ts-shell/iucvconn_on_login +@@ -15,7 +15,7 @@ + prog_name=`basename $0` + guest_name=${USER:-`whoami 2>/dev/null`} + terminal=lnxhvc0 +-iucvconn=`which iucvconn 2>/dev/null` ++iucvconn=`command -v iucvconn 2>/dev/null` + + __error() { + printf "$prog_name: $@\n" >&2 +diff --git a/netboot/mk-pxelinux-ramfs b/netboot/mk-pxelinux-ramfs +index 64ebde1..07f8b07 100755 +--- a/netboot/mk-pxelinux-ramfs ++++ b/netboot/mk-pxelinux-ramfs +@@ -127,7 +127,7 @@ echo "$cmd: Copying kexec" + # Install both binary and required shared libraries + OLDPATH=$PATH + PATH=$OLDPATH:/sbin:/usr/sbin +-kexec_bin=$(which kexec) ++kexec_bin=$(command -v kexec) + kexec_sos=$(sharedobjs $kexec_bin) + PATH=$OLDPATH + +diff --git a/ziomon/ziomon b/ziomon/ziomon +index fd6248a..d1545cc 100755 +--- a/ziomon/ziomon ++++ b/ziomon/ziomon +@@ -667,8 +667,7 @@ function check_free_space_mileage() { + + + function check_blktrace() { +- which blktrace >/dev/null 2>&1; +- if [ $? -ne 0 ]; then ++ if ! command -v blktrace >/dev/null 2>&1; then + echo "$WRP_TOOLNAME: Could not find blktrace. Please make sure that the blktrace package is installed and matches the level in the documentation."; + exit 1; + fi +-- +2.45.2 + + +From 9770d8bff4b2ef6f01af1c273d1eac121b672a85 Mon Sep 17 00:00:00 2001 +From: Marc Hartmayer +Date: Thu, 6 Jun 2024 15:07:45 +0000 +Subject: [PATCH 2/2] Revert "zipl/src: Fix problems when target parameters are + specified by user" + +The commit fb0b6263d1a9 ("zipl/src: Fix problems when target parameters +are specified by user") breaks the case where the user has to provide +all target attributes via the zipl command line, because the target +device cannot be used to retrieve those attributes. + +$ zipl -V --blsdir /tmp/tmp.xHmFUdgBCi/boot//loader/entries/ --config /tmp/tmp.dSv9MJ3svs +Looking for components in '/lib/s390-tools' +Using config file '/tmp/tmp.dSv9MJ3svs' (from command line) +Using BLS config file '/tmp/tmp.xHmFUdgBCi/boot//loader/entries//50_normal.conf' +Using BLS config file '/tmp/tmp.xHmFUdgBCi/boot//loader/entries//45_normal_swiotlb.conf' +Using BLS config file '/tmp/tmp.xHmFUdgBCi/boot//loader/entries//40_pv.conf' +Using BLS config file '/tmp/tmp.xHmFUdgBCi/boot//loader/entries//30_pv_reboot.conf' +Secure boot support: yes +Target device information + Device..........................: 2b:00 + Device name.....................: nbd0 *) + Device driver name..............: nbd + Type............................: disk device + Disk layout.....................: SCSI disk layout *) + Geometry - start................: 2048 *) + File system block size..........: 4096 + Physical block size.............: 512 *) + Device size in physical blocks..: 2095071 + *) Data provided by user. +Building bootmap in '/tmp/tmp.xHmFUdgBCi/boot/' +Building menu 'zipl-automatic-menu' +Adding #1: IPL section 'Normal Guest' (default) + initial ramdisk...: /tmp/tmp.xHmFUdgBCi/boot//ramdisk-s390x + kernel image......: /tmp/tmp.xHmFUdgBCi/boot//vmlinux-s390x +zIPL environment block content: +Error: Could not add image file '/tmp/tmp.xHmFUdgBCi/boot//vmlinux-s390x': Could not get disk geometry + +This reverts commit fb0b6263d1a9a497760a21ccb178748ec5ccf955. + +Acked-by: Eduard Shishkin +Signed-off-by: Marc Hartmayer +Signed-off-by: Steffen Eiden +(cherry picked from commit 63ff07ba38dda99e2661a097d05266555c727a2e) +--- + zipl/include/job.h | 1 - + zipl/src/bootmap.c | 40 +++++++++++++++++++--------------------- + zipl/src/disk.c | 3 --- + zipl/src/job.c | 3 ++- + 4 files changed, 21 insertions(+), 26 deletions(-) + +diff --git a/zipl/include/job.h b/zipl/include/job.h +index e46788b..597d400 100644 +--- a/zipl/include/job.h ++++ b/zipl/include/job.h +@@ -152,7 +152,6 @@ static inline int target_parameters_are_set(struct job_target_data *td) + + int job_get(int argc, char* argv[], struct job_data** data); + void job_free(struct job_data* job); +-void free_target_data(struct job_target_data *td); + int type_from_target(char *target, disk_type_t *type); + int check_job_dump_images(struct job_dump_data* dump, char* name); + int check_job_images_ngdump(struct job_dump_data* dump, char* name); +diff --git a/zipl/src/bootmap.c b/zipl/src/bootmap.c +index 82b77d0..f6f5bac 100644 +--- a/zipl/src/bootmap.c ++++ b/zipl/src/bootmap.c +@@ -304,6 +304,7 @@ static int add_component_file_range(struct install_set *bis, + address_t load_address, + size_t trailer, void *component, + int add_files, ++ struct job_target_data *target, + int comp_id, int menu_idx, + int program_table_id) + { +@@ -338,15 +339,8 @@ static int add_component_file_range(struct install_set *bis, + return -1; + } + } else { +- /* +- * Make sure that file is on target device. +- * For this, retrieve info of the underlying disk without +- * any user hints +- */ +- struct job_target_data tmp = {.source = source_unknown}; +- +- rc = disk_get_info_from_file(filename, &tmp, &file_info); +- free_target_data(&tmp); ++ /* Make sure file is on correct device */ ++ rc = disk_get_info_from_file(filename, target, &file_info); + if (rc) + return -1; + if (file_info->device != bis->info->device) { +@@ -383,11 +377,12 @@ write_segment_table: + static int add_component_file(struct install_set *bis, const char *filename, + address_t load_address, size_t trailer, + void *component, int add_files, +- int comp_id, int menu_idx, int program_table_id) ++ struct job_target_data *target, int comp_id, ++ int menu_idx, int program_table_id) + { + return add_component_file_range(bis, filename, NULL, load_address, + trailer, component, add_files, +- comp_id, menu_idx, ++ target, comp_id, menu_idx, + program_table_id); + } + +@@ -549,7 +544,8 @@ static int add_ipl_program(struct install_set *bis, char *filename, + bool add_envblk, struct job_envblk_data *envblk, + struct job_ipl_data *ipl, disk_blockptr_t *program, + int verbose, int add_files, component_header_type type, +- int is_secure, int menu_idx, int program_table_id) ++ struct job_target_data *target, int is_secure, ++ int menu_idx, int program_table_id) + { + struct signature_header sig_head; + size_t ramdisk_size, image_size; +@@ -671,7 +667,7 @@ static int add_ipl_program(struct install_set *bis, char *filename, + /* Add stage 3 loader to bootmap */ + rc = add_component_file(bis, ZIPL_STAGE3_PATH, STAGE3_LOAD_ADDRESS, + signature_size, VOID_ADD(table, offset), 1, +- COMPONENT_ID_LOADER, menu_idx, ++ target, COMPONENT_ID_LOADER, menu_idx, + program_table_id); + if (rc) { + error_text("Could not add internal loader file '%s'", +@@ -749,7 +745,7 @@ static int add_ipl_program(struct install_set *bis, char *filename, + + rc = add_component_file(bis, ipl->common.image, ipl->common.image_addr, + signature_size, VOID_ADD(table, offset), +- add_files, COMPONENT_ID_KERNEL_IMAGE, ++ add_files, target, COMPONENT_ID_KERNEL_IMAGE, + menu_idx, program_table_id); + if (rc) { + error_text("Could not add image file '%s'", ipl->common.image); +@@ -809,7 +805,7 @@ static int add_ipl_program(struct install_set *bis, char *filename, + ipl->common.ramdisk_addr, + signature_size, + VOID_ADD(table, offset), +- add_files, COMPONENT_ID_RAMDISK, ++ add_files, target, COMPONENT_ID_RAMDISK, + menu_idx, program_table_id); + if (rc) { + error_text("Could not add ramdisk '%s'", +@@ -865,7 +861,7 @@ static int add_ipl_program(struct install_set *bis, char *filename, + rc = add_component_file_range(bis, filename, ®, + ipl->envblk_addr, 0, + VOID_ADD(table, offset), +- 0, ++ 0, target, + COMPONENT_ID_ENVBLK, + menu_idx, + program_table_id); +@@ -897,6 +893,7 @@ static int add_segment_program(struct install_set *bis, + struct job_segment_data *segment, + disk_blockptr_t *program, int verbose, + int add_files, component_header_type type, ++ struct job_target_data *target, + int program_table_id) + { + void *table; +@@ -916,7 +913,7 @@ static int add_segment_program(struct install_set *bis, + printf(" segment file......: %s\n", segment->segment); + + rc = add_component_file(bis, segment->segment, segment->segment_addr, 0, +- VOID_ADD(table, offset), add_files, ++ VOID_ADD(table, offset), add_files, target, + COMPONENT_ID_SEGMENT_FILE, 0 /* menu_idx */, + program_table_id); + if (rc) { +@@ -999,7 +996,7 @@ static int add_dump_program(struct install_set *bis, struct job_data *job, + ipl.common.parmline = dump->common.parmline; + ipl.common.parm_addr = dump->common.parm_addr; + return add_ipl_program(bis, NULL, false, NULL, &ipl, program, +- verbose, 1, type, SECURE_BOOT_DISABLED, ++ verbose, 1, type, target, SECURE_BOOT_DISABLED, + 0 /* menu_idx */, program_table_id); + } + +@@ -1044,7 +1041,8 @@ static int build_program_table(struct job_data *job, + true, &job->envblk, &job->data.ipl, + &table[0], verbose || job->command_line, + job->add_files, component_header, +- job->is_secure, 0, program_table_id); ++ &job->target, job->is_secure, 0, ++ program_table_id); + break; + case job_segment: + if (bis->print_details) { +@@ -1057,7 +1055,7 @@ static int build_program_table(struct job_data *job, + rc = add_segment_program(bis, &job->data.segment, &table[0], + verbose || job->command_line, + job->add_files, COMPONENT_HEADER_IPL, +- program_table_id); ++ &job->target, program_table_id); + break; + case job_dump_partition: + /* Only useful for a partition dump that uses a dump kernel*/ +@@ -1116,7 +1114,7 @@ static int build_program_table(struct job_data *job, + &table[job->data.menu.entry[i].pos], + verbose || job->command_line, + job->add_files, component_header, +- is_secure, i, ++ &job->target, is_secure, i, + program_table_id); + break; + case job_print_usage: +diff --git a/zipl/src/disk.c b/zipl/src/disk.c +index b4bd49a..38a637c 100644 +--- a/zipl/src/disk.c ++++ b/zipl/src/disk.c +@@ -528,9 +528,6 @@ static int disk_set_info_complete(struct job_target_data *td, + * config file, or special "target options" of zipl tool. + * If target parameters were specified by user, then the step 1 above + * is skipped. +- +- * To exclude any user assumptions about the DEVICE, this function +- * should be called with TD pointing to a zeroed structure. + * + * DEVICE: logical, or physical device, optionally formated with a + * file system. +diff --git a/zipl/src/job.c b/zipl/src/job.c +index 2066402..27f0181 100644 +--- a/zipl/src/job.c ++++ b/zipl/src/job.c +@@ -370,7 +370,8 @@ get_command_line(int argc, char* argv[], struct command_line* line) + } + + +-void free_target_data(struct job_target_data *data) ++static void ++free_target_data(struct job_target_data* data) + { + free(data->bootmap_dir); + free(data->targetbase); +-- +2.45.2 + diff --git a/s390utils.spec b/s390utils.spec index d671602..3fc3870 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -14,7 +14,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.33.1 -Release: 2%{?dist} +Release: 3%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -47,7 +47,7 @@ Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch # upstream fixes/updates -#Patch100: s390utils-%%{version}-fedora.patch +Patch100: s390utils-%{version}-fedora.patch # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} @@ -387,7 +387,6 @@ Requires: gawk Requires: sed Requires: sg3_utils Requires: tar -Requires: which Requires: s390utils-core = %{epoch}:%{version}-%{release} Requires: s390utils-se-data = %{epoch}:%{version}-%{release} %{?systemd_requires} @@ -822,7 +821,6 @@ Requires: rsync Requires: sed Requires: tar Requires: util-linux -Requires: which %description ziomon Tool set to collect data for zfcp performance analysis and report. @@ -1069,6 +1067,10 @@ User-space development files for the s390/s390x architecture. %changelog +* Mon Jul 15 2024 Dan Horák - 2:2.33.1-3 +- "which" is not required any more +- Revert "zipl/src: Fix problems when target parameters are specified by user" + * Thu Jun 20 2024 Dan Horák - 2:2.33.1-2 - add which as a dependency for base and ziomon subpackages (RHEL-38488) From 9aeeea236fc9054171ce34c425a90ec0a858d304 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 20 Jul 2024 04:41:16 +0000 Subject: [PATCH 58/84] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- s390utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index 3fc3870..d3ad760 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -14,7 +14,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.33.1 -Release: 3%{?dist} +Release: 4%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -1067,6 +1067,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Sat Jul 20 2024 Fedora Release Engineering - 2:2.33.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Mon Jul 15 2024 Dan Horák - 2:2.33.1-3 - "which" is not required any more - Revert "zipl/src: Fix problems when target parameters are specified by user" From 4ac12c1bd1b4687eb489583cc88ec404c0364b25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Mon, 12 Aug 2024 11:52:33 +0000 Subject: [PATCH 59/84] - rebased to 2.34.0 (rhbz#2302462) --- s390utils-2.33.1-fedora.patch | 311 ---------------------------------- s390utils-2.34.0-fedora.patch | 0 s390utils.spec | 9 +- sources | 4 +- 4 files changed, 8 insertions(+), 316 deletions(-) delete mode 100644 s390utils-2.33.1-fedora.patch create mode 100644 s390utils-2.34.0-fedora.patch diff --git a/s390utils-2.33.1-fedora.patch b/s390utils-2.33.1-fedora.patch deleted file mode 100644 index c97b193..0000000 --- a/s390utils-2.33.1-fedora.patch +++ /dev/null @@ -1,311 +0,0 @@ -From ab26b43985f44b71abf40f8d0e50bfbd0808f8b9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jan=20H=C3=B6ppner?= -Date: Fri, 14 Jun 2024 14:25:40 +0200 -Subject: [PATCH 1/2] s390-tools: Replace 'which' with built-in 'command -v' -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -There are still a few scripts using the 'which' command to determine -either the full path or the mere existence of an executable. -Some of these scripts might run in minimal environments where 'which' is -not available due to dependency restriction. 'which' is also considered -unreliable for historical implementation details. - -Use the POSIX defined [1] built-in 'command -v' instead to reduce -package dependencies and improve reliability. - -[1] https://pubs.opengroup.org/onlinepubs/9699919799/ -Reviewed-by: Benjamin Block -Signed-off-by: Jan Höppner -Signed-off-by: Steffen Eiden -(cherry picked from commit 0b0960254e8c2b556cefa97f83651a92f54a5e42) ---- - iucvterm/doc/ts-shell/iucvconn_on_login | 2 +- - netboot/mk-pxelinux-ramfs | 2 +- - ziomon/ziomon | 3 +-- - 3 files changed, 3 insertions(+), 4 deletions(-) - -diff --git a/iucvterm/doc/ts-shell/iucvconn_on_login b/iucvterm/doc/ts-shell/iucvconn_on_login -index 860c4cc..92010df 100755 ---- a/iucvterm/doc/ts-shell/iucvconn_on_login -+++ b/iucvterm/doc/ts-shell/iucvconn_on_login -@@ -15,7 +15,7 @@ - prog_name=`basename $0` - guest_name=${USER:-`whoami 2>/dev/null`} - terminal=lnxhvc0 --iucvconn=`which iucvconn 2>/dev/null` -+iucvconn=`command -v iucvconn 2>/dev/null` - - __error() { - printf "$prog_name: $@\n" >&2 -diff --git a/netboot/mk-pxelinux-ramfs b/netboot/mk-pxelinux-ramfs -index 64ebde1..07f8b07 100755 ---- a/netboot/mk-pxelinux-ramfs -+++ b/netboot/mk-pxelinux-ramfs -@@ -127,7 +127,7 @@ echo "$cmd: Copying kexec" - # Install both binary and required shared libraries - OLDPATH=$PATH - PATH=$OLDPATH:/sbin:/usr/sbin --kexec_bin=$(which kexec) -+kexec_bin=$(command -v kexec) - kexec_sos=$(sharedobjs $kexec_bin) - PATH=$OLDPATH - -diff --git a/ziomon/ziomon b/ziomon/ziomon -index fd6248a..d1545cc 100755 ---- a/ziomon/ziomon -+++ b/ziomon/ziomon -@@ -667,8 +667,7 @@ function check_free_space_mileage() { - - - function check_blktrace() { -- which blktrace >/dev/null 2>&1; -- if [ $? -ne 0 ]; then -+ if ! command -v blktrace >/dev/null 2>&1; then - echo "$WRP_TOOLNAME: Could not find blktrace. Please make sure that the blktrace package is installed and matches the level in the documentation."; - exit 1; - fi --- -2.45.2 - - -From 9770d8bff4b2ef6f01af1c273d1eac121b672a85 Mon Sep 17 00:00:00 2001 -From: Marc Hartmayer -Date: Thu, 6 Jun 2024 15:07:45 +0000 -Subject: [PATCH 2/2] Revert "zipl/src: Fix problems when target parameters are - specified by user" - -The commit fb0b6263d1a9 ("zipl/src: Fix problems when target parameters -are specified by user") breaks the case where the user has to provide -all target attributes via the zipl command line, because the target -device cannot be used to retrieve those attributes. - -$ zipl -V --blsdir /tmp/tmp.xHmFUdgBCi/boot//loader/entries/ --config /tmp/tmp.dSv9MJ3svs -Looking for components in '/lib/s390-tools' -Using config file '/tmp/tmp.dSv9MJ3svs' (from command line) -Using BLS config file '/tmp/tmp.xHmFUdgBCi/boot//loader/entries//50_normal.conf' -Using BLS config file '/tmp/tmp.xHmFUdgBCi/boot//loader/entries//45_normal_swiotlb.conf' -Using BLS config file '/tmp/tmp.xHmFUdgBCi/boot//loader/entries//40_pv.conf' -Using BLS config file '/tmp/tmp.xHmFUdgBCi/boot//loader/entries//30_pv_reboot.conf' -Secure boot support: yes -Target device information - Device..........................: 2b:00 - Device name.....................: nbd0 *) - Device driver name..............: nbd - Type............................: disk device - Disk layout.....................: SCSI disk layout *) - Geometry - start................: 2048 *) - File system block size..........: 4096 - Physical block size.............: 512 *) - Device size in physical blocks..: 2095071 - *) Data provided by user. -Building bootmap in '/tmp/tmp.xHmFUdgBCi/boot/' -Building menu 'zipl-automatic-menu' -Adding #1: IPL section 'Normal Guest' (default) - initial ramdisk...: /tmp/tmp.xHmFUdgBCi/boot//ramdisk-s390x - kernel image......: /tmp/tmp.xHmFUdgBCi/boot//vmlinux-s390x -zIPL environment block content: -Error: Could not add image file '/tmp/tmp.xHmFUdgBCi/boot//vmlinux-s390x': Could not get disk geometry - -This reverts commit fb0b6263d1a9a497760a21ccb178748ec5ccf955. - -Acked-by: Eduard Shishkin -Signed-off-by: Marc Hartmayer -Signed-off-by: Steffen Eiden -(cherry picked from commit 63ff07ba38dda99e2661a097d05266555c727a2e) ---- - zipl/include/job.h | 1 - - zipl/src/bootmap.c | 40 +++++++++++++++++++--------------------- - zipl/src/disk.c | 3 --- - zipl/src/job.c | 3 ++- - 4 files changed, 21 insertions(+), 26 deletions(-) - -diff --git a/zipl/include/job.h b/zipl/include/job.h -index e46788b..597d400 100644 ---- a/zipl/include/job.h -+++ b/zipl/include/job.h -@@ -152,7 +152,6 @@ static inline int target_parameters_are_set(struct job_target_data *td) - - int job_get(int argc, char* argv[], struct job_data** data); - void job_free(struct job_data* job); --void free_target_data(struct job_target_data *td); - int type_from_target(char *target, disk_type_t *type); - int check_job_dump_images(struct job_dump_data* dump, char* name); - int check_job_images_ngdump(struct job_dump_data* dump, char* name); -diff --git a/zipl/src/bootmap.c b/zipl/src/bootmap.c -index 82b77d0..f6f5bac 100644 ---- a/zipl/src/bootmap.c -+++ b/zipl/src/bootmap.c -@@ -304,6 +304,7 @@ static int add_component_file_range(struct install_set *bis, - address_t load_address, - size_t trailer, void *component, - int add_files, -+ struct job_target_data *target, - int comp_id, int menu_idx, - int program_table_id) - { -@@ -338,15 +339,8 @@ static int add_component_file_range(struct install_set *bis, - return -1; - } - } else { -- /* -- * Make sure that file is on target device. -- * For this, retrieve info of the underlying disk without -- * any user hints -- */ -- struct job_target_data tmp = {.source = source_unknown}; -- -- rc = disk_get_info_from_file(filename, &tmp, &file_info); -- free_target_data(&tmp); -+ /* Make sure file is on correct device */ -+ rc = disk_get_info_from_file(filename, target, &file_info); - if (rc) - return -1; - if (file_info->device != bis->info->device) { -@@ -383,11 +377,12 @@ write_segment_table: - static int add_component_file(struct install_set *bis, const char *filename, - address_t load_address, size_t trailer, - void *component, int add_files, -- int comp_id, int menu_idx, int program_table_id) -+ struct job_target_data *target, int comp_id, -+ int menu_idx, int program_table_id) - { - return add_component_file_range(bis, filename, NULL, load_address, - trailer, component, add_files, -- comp_id, menu_idx, -+ target, comp_id, menu_idx, - program_table_id); - } - -@@ -549,7 +544,8 @@ static int add_ipl_program(struct install_set *bis, char *filename, - bool add_envblk, struct job_envblk_data *envblk, - struct job_ipl_data *ipl, disk_blockptr_t *program, - int verbose, int add_files, component_header_type type, -- int is_secure, int menu_idx, int program_table_id) -+ struct job_target_data *target, int is_secure, -+ int menu_idx, int program_table_id) - { - struct signature_header sig_head; - size_t ramdisk_size, image_size; -@@ -671,7 +667,7 @@ static int add_ipl_program(struct install_set *bis, char *filename, - /* Add stage 3 loader to bootmap */ - rc = add_component_file(bis, ZIPL_STAGE3_PATH, STAGE3_LOAD_ADDRESS, - signature_size, VOID_ADD(table, offset), 1, -- COMPONENT_ID_LOADER, menu_idx, -+ target, COMPONENT_ID_LOADER, menu_idx, - program_table_id); - if (rc) { - error_text("Could not add internal loader file '%s'", -@@ -749,7 +745,7 @@ static int add_ipl_program(struct install_set *bis, char *filename, - - rc = add_component_file(bis, ipl->common.image, ipl->common.image_addr, - signature_size, VOID_ADD(table, offset), -- add_files, COMPONENT_ID_KERNEL_IMAGE, -+ add_files, target, COMPONENT_ID_KERNEL_IMAGE, - menu_idx, program_table_id); - if (rc) { - error_text("Could not add image file '%s'", ipl->common.image); -@@ -809,7 +805,7 @@ static int add_ipl_program(struct install_set *bis, char *filename, - ipl->common.ramdisk_addr, - signature_size, - VOID_ADD(table, offset), -- add_files, COMPONENT_ID_RAMDISK, -+ add_files, target, COMPONENT_ID_RAMDISK, - menu_idx, program_table_id); - if (rc) { - error_text("Could not add ramdisk '%s'", -@@ -865,7 +861,7 @@ static int add_ipl_program(struct install_set *bis, char *filename, - rc = add_component_file_range(bis, filename, ®, - ipl->envblk_addr, 0, - VOID_ADD(table, offset), -- 0, -+ 0, target, - COMPONENT_ID_ENVBLK, - menu_idx, - program_table_id); -@@ -897,6 +893,7 @@ static int add_segment_program(struct install_set *bis, - struct job_segment_data *segment, - disk_blockptr_t *program, int verbose, - int add_files, component_header_type type, -+ struct job_target_data *target, - int program_table_id) - { - void *table; -@@ -916,7 +913,7 @@ static int add_segment_program(struct install_set *bis, - printf(" segment file......: %s\n", segment->segment); - - rc = add_component_file(bis, segment->segment, segment->segment_addr, 0, -- VOID_ADD(table, offset), add_files, -+ VOID_ADD(table, offset), add_files, target, - COMPONENT_ID_SEGMENT_FILE, 0 /* menu_idx */, - program_table_id); - if (rc) { -@@ -999,7 +996,7 @@ static int add_dump_program(struct install_set *bis, struct job_data *job, - ipl.common.parmline = dump->common.parmline; - ipl.common.parm_addr = dump->common.parm_addr; - return add_ipl_program(bis, NULL, false, NULL, &ipl, program, -- verbose, 1, type, SECURE_BOOT_DISABLED, -+ verbose, 1, type, target, SECURE_BOOT_DISABLED, - 0 /* menu_idx */, program_table_id); - } - -@@ -1044,7 +1041,8 @@ static int build_program_table(struct job_data *job, - true, &job->envblk, &job->data.ipl, - &table[0], verbose || job->command_line, - job->add_files, component_header, -- job->is_secure, 0, program_table_id); -+ &job->target, job->is_secure, 0, -+ program_table_id); - break; - case job_segment: - if (bis->print_details) { -@@ -1057,7 +1055,7 @@ static int build_program_table(struct job_data *job, - rc = add_segment_program(bis, &job->data.segment, &table[0], - verbose || job->command_line, - job->add_files, COMPONENT_HEADER_IPL, -- program_table_id); -+ &job->target, program_table_id); - break; - case job_dump_partition: - /* Only useful for a partition dump that uses a dump kernel*/ -@@ -1116,7 +1114,7 @@ static int build_program_table(struct job_data *job, - &table[job->data.menu.entry[i].pos], - verbose || job->command_line, - job->add_files, component_header, -- is_secure, i, -+ &job->target, is_secure, i, - program_table_id); - break; - case job_print_usage: -diff --git a/zipl/src/disk.c b/zipl/src/disk.c -index b4bd49a..38a637c 100644 ---- a/zipl/src/disk.c -+++ b/zipl/src/disk.c -@@ -528,9 +528,6 @@ static int disk_set_info_complete(struct job_target_data *td, - * config file, or special "target options" of zipl tool. - * If target parameters were specified by user, then the step 1 above - * is skipped. -- -- * To exclude any user assumptions about the DEVICE, this function -- * should be called with TD pointing to a zeroed structure. - * - * DEVICE: logical, or physical device, optionally formated with a - * file system. -diff --git a/zipl/src/job.c b/zipl/src/job.c -index 2066402..27f0181 100644 ---- a/zipl/src/job.c -+++ b/zipl/src/job.c -@@ -370,7 +370,8 @@ get_command_line(int argc, char* argv[], struct command_line* line) - } - - --void free_target_data(struct job_target_data *data) -+static void -+free_target_data(struct job_target_data* data) - { - free(data->bootmap_dir); - free(data->targetbase); --- -2.45.2 - diff --git a/s390utils-2.34.0-fedora.patch b/s390utils-2.34.0-fedora.patch new file mode 100644 index 0000000..e69de29 diff --git a/s390utils.spec b/s390utils.spec index d3ad760..6bf2935 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -13,8 +13,8 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.33.1 -Release: 4%{?dist} +Version: 2.34.0 +Release: 1%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -47,7 +47,7 @@ Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch # upstream fixes/updates -Patch100: s390utils-%{version}-fedora.patch +#Patch100: s390utils-%%{version}-fedora.patch # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} @@ -1067,6 +1067,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Mon Aug 12 2024 Dan Horák - 2:2.34.0-1 +- rebased to 2.34.0 (rhbz#2302462) + * Sat Jul 20 2024 Fedora Release Engineering - 2:2.33.1-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild diff --git a/sources b/sources index e20d197..414897d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (s390-tools-2.33.1.tar.gz) = 8e5cba1e5264787a2f89b340d4d9372df7cd28ae9fa263dcbc6cbbf460e48c1db167110ff901f35f82e36d0d8c97105acd7167b40d889a829c71b182e175b96c -SHA512 (s390-tools-2.33.1-rust-vendor.tar.xz) = 12b0d3af1eba223b63028b5fec85ff4cc79ec646671e56d4c3606b0b4a9d3f79469dc860141ff86e9a0fd2bc1d54f32f2588615997a9865adbe20a110237b98d +SHA512 (s390-tools-2.34.0.tar.gz) = 1ae9bc5e14efe818570227b326f6572fedb99afd9ffd68af649a1d736d9b963a068dd878bcea21b23b9368414c32a5d98aa2ea0aa7a260a9267d6331983dfcf8 +SHA512 (s390-tools-2.34.0-rust-vendor.tar.xz) = 77543e418cdac7628c0ddf562473b5fdd104679be572ed62b461dc2dd896a2f60c9f4aa366e9dd5c59ece09c6387ca52782c0f23f3e6b76adfc85c233b36351a From 33c843d37489e5de86f67414b510dd604d644bcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Wed, 14 Aug 2024 09:09:23 +0000 Subject: [PATCH 60/84] be more specific for the rpminspect badfuncs check --- rpminspect.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rpminspect.yaml b/rpminspect.yaml index 8ca8a53..9d4a1bf 100644 --- a/rpminspect.yaml +++ b/rpminspect.yaml @@ -4,5 +4,6 @@ pathmigration: - /lib/s390-tools badfuncs: - ignore: - - /usr/sbin/qethqoat + allowed: + /usr/sbin/qethqoat: + - inet_ntoa From 35192dda78a42ed8395f79ec6b06056085fae114 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Mon, 26 Aug 2024 13:11:02 +0200 Subject: [PATCH 61/84] - don't make Rust warnings fatal --- s390utils-2.34.0-fedora.patch | 55 +++++++++++++++++++++++++++++++++++ s390utils.spec | 7 +++-- 2 files changed, 60 insertions(+), 2 deletions(-) diff --git a/s390utils-2.34.0-fedora.patch b/s390utils-2.34.0-fedora.patch index e69de29..5785622 100644 --- a/s390utils-2.34.0-fedora.patch +++ b/s390utils-2.34.0-fedora.patch @@ -0,0 +1,55 @@ +From 54e9e22cc0fb54a954e8b6b700402af934135fc7 Mon Sep 17 00:00:00 2001 +From: Steffen Eiden +Date: Fri, 23 Aug 2024 09:16:26 +0200 +Subject: [PATCH] rust/pv: Lower most lints to warn +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Lower the lint level to warn for the styling lints. +This avoids compile issues during packaging for newer tooling with +potential more lint findings. +Still deny compiling if a public symbol has no documentation. + +Fixes: https://github.com/ibm-s390-linux/s390-tools/issues/173 +Reviewed-by: Jan Höppner +Signed-off-by: Steffen Eiden +(cherry picked from commit 6a55d0c2e57952600164822dd100e8247b4b010f) +--- + rust/pv/src/lib.rs | 4 ++-- + rust/pv_core/src/lib.rs | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/rust/pv/src/lib.rs b/rust/pv/src/lib.rs +index 9a64761..1084f8e 100644 +--- a/rust/pv/src/lib.rs ++++ b/rust/pv/src/lib.rs +@@ -2,8 +2,8 @@ + // + // Copyright IBM Corp. 2023, 2024 + +-#![deny( +- missing_docs, ++#![deny(missing_docs)] ++#![warn( + missing_debug_implementations, + trivial_numeric_casts, + unstable_features, +diff --git a/rust/pv_core/src/lib.rs b/rust/pv_core/src/lib.rs +index 1356c1b..b617b8f 100644 +--- a/rust/pv_core/src/lib.rs ++++ b/rust/pv_core/src/lib.rs +@@ -1,8 +1,8 @@ + // SPDX-License-Identifier: MIT + // + // Copyright IBM Corp. 2023, 2024 +-#![deny( +- missing_docs, ++#![deny(missing_docs)] ++#![warn( + missing_debug_implementations, + trivial_numeric_casts, + unstable_features, +-- +2.46.0 + diff --git a/s390utils.spec b/s390utils.spec index 6bf2935..e6cb28e 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -14,7 +14,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.34.0 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -47,7 +47,7 @@ Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch # upstream fixes/updates -#Patch100: s390utils-%%{version}-fedora.patch +Patch100: s390utils-%{version}-fedora.patch # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} @@ -1067,6 +1067,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Mon Aug 26 2024 Dan Horák - 2:2.34.0-2 +- don't make Rust warnings fatal + * Mon Aug 12 2024 Dan Horák - 2:2.34.0-1 - rebased to 2.34.0 (rhbz#2302462) From d55343afd6d9aaffbffad6d6a61755cf067c8ba0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 3 Oct 2024 09:12:25 +0000 Subject: [PATCH 62/84] - rebased to 2.35.0 (rhbz#2316232) --- s390utils-2.34.0-fedora.patch | 55 ----------------------------------- s390utils-2.35.0-fedora.patch | 0 s390utils.spec | 11 +++---- sources | 4 +-- 4 files changed, 8 insertions(+), 62 deletions(-) delete mode 100644 s390utils-2.34.0-fedora.patch create mode 100644 s390utils-2.35.0-fedora.patch diff --git a/s390utils-2.34.0-fedora.patch b/s390utils-2.34.0-fedora.patch deleted file mode 100644 index 5785622..0000000 --- a/s390utils-2.34.0-fedora.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 54e9e22cc0fb54a954e8b6b700402af934135fc7 Mon Sep 17 00:00:00 2001 -From: Steffen Eiden -Date: Fri, 23 Aug 2024 09:16:26 +0200 -Subject: [PATCH] rust/pv: Lower most lints to warn -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Lower the lint level to warn for the styling lints. -This avoids compile issues during packaging for newer tooling with -potential more lint findings. -Still deny compiling if a public symbol has no documentation. - -Fixes: https://github.com/ibm-s390-linux/s390-tools/issues/173 -Reviewed-by: Jan Höppner -Signed-off-by: Steffen Eiden -(cherry picked from commit 6a55d0c2e57952600164822dd100e8247b4b010f) ---- - rust/pv/src/lib.rs | 4 ++-- - rust/pv_core/src/lib.rs | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/rust/pv/src/lib.rs b/rust/pv/src/lib.rs -index 9a64761..1084f8e 100644 ---- a/rust/pv/src/lib.rs -+++ b/rust/pv/src/lib.rs -@@ -2,8 +2,8 @@ - // - // Copyright IBM Corp. 2023, 2024 - --#![deny( -- missing_docs, -+#![deny(missing_docs)] -+#![warn( - missing_debug_implementations, - trivial_numeric_casts, - unstable_features, -diff --git a/rust/pv_core/src/lib.rs b/rust/pv_core/src/lib.rs -index 1356c1b..b617b8f 100644 ---- a/rust/pv_core/src/lib.rs -+++ b/rust/pv_core/src/lib.rs -@@ -1,8 +1,8 @@ - // SPDX-License-Identifier: MIT - // - // Copyright IBM Corp. 2023, 2024 --#![deny( -- missing_docs, -+#![deny(missing_docs)] -+#![warn( - missing_debug_implementations, - trivial_numeric_casts, - unstable_features, --- -2.46.0 - diff --git a/s390utils-2.35.0-fedora.patch b/s390utils-2.35.0-fedora.patch new file mode 100644 index 0000000..e69de29 diff --git a/s390utils.spec b/s390utils.spec index e6cb28e..8878c75 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -13,8 +13,8 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.34.0 -Release: 2%{?dist} +Version: 2.35.0 +Release: 1%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -47,7 +47,7 @@ Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch # upstream fixes/updates -Patch100: s390utils-%{version}-fedora.patch +#Patch100: s390utils-%%{version}-fedora.patch # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} @@ -248,12 +248,10 @@ touch %{buildroot}%{_sysconfdir}/zipl.conf %license rust/cargo-vendor.txt %endif %{_bindir}/genprotimg -%{_bindir}/pvapconfig %{_bindir}/pvattest %{_bindir}/pvextract-hdr %{_bindir}/pvsecret %{_mandir}/man1/genprotimg.1* -%{_mandir}/man1/pvapconfig.1* %{_mandir}/man1/pvattest.1* %{_mandir}/man1/pvattest-create.1* %{_mandir}/man1/pvattest-perform.1* @@ -1067,6 +1065,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Thu Oct 03 2024 Dan Horák - 2:2.35.0-1 +- rebased to 2.35.0 (rhbz#2316232) + * Mon Aug 26 2024 Dan Horák - 2:2.34.0-2 - don't make Rust warnings fatal diff --git a/sources b/sources index 414897d..aa65d49 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (s390-tools-2.34.0.tar.gz) = 1ae9bc5e14efe818570227b326f6572fedb99afd9ffd68af649a1d736d9b963a068dd878bcea21b23b9368414c32a5d98aa2ea0aa7a260a9267d6331983dfcf8 -SHA512 (s390-tools-2.34.0-rust-vendor.tar.xz) = 77543e418cdac7628c0ddf562473b5fdd104679be572ed62b461dc2dd896a2f60c9f4aa366e9dd5c59ece09c6387ca52782c0f23f3e6b76adfc85c233b36351a +SHA512 (s390-tools-2.35.0.tar.gz) = 1ee6e7dc5a0c504bb23bde00e5e6a2ed333e7712677056075caf68a02eb222cd9c00d16fcf17e0a7c9f89609901d343b55953b0036c0d2cab35830ea8eb53fea +SHA512 (s390-tools-2.35.0-rust-vendor.tar.xz) = 116adeac121c56d7d5bc37b3a7972a78e1ce86fd53f919d293d4bfe92999449ce6f30a592fdb3f4d48fda64817c9b19587a038bf832c7b745a715b9b469e1ee4 From 865e5c3bac85937a17386e130262d987d4560c51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Mon, 13 Jan 2025 20:42:27 +0000 Subject: [PATCH 63/84] Build against rust-thiserror1-devel --- s390utils.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index 8878c75..80609a9 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -104,7 +104,7 @@ BuildRequires: crate(serde_test) BuildRequires: crate(serde_yaml) BuildRequires: crate(strsim) BuildRequires: crate(terminal_size) -BuildRequires: crate(thiserror) +BuildRequires: crate(thiserror) < 2 BuildRequires: crate(zerocopy) BuildRequires: rust-packaging %endif From a0ae4f8f73b7a72563a6db43702902bc93c5582d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 14 Jan 2025 14:08:22 +0000 Subject: [PATCH 64/84] switch to %make_install --- s390utils.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index 80609a9..83e481c 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -152,12 +152,11 @@ popd %install -make install \ +%make_install \ HAVE_DRACUT=1 \ %if %{with pandoc} ENABLE_DOC=1 \ %endif - DESTDIR=%{buildroot} \ BINDIR=/usr/sbin \ SYSTEMDSYSTEMUNITDIR=%{_unitdir} \ DISTRELEASE=%{release} \ From c0f10fd579e42197575d5773d98da89a0ff22f16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 14 Jan 2025 14:43:02 +0000 Subject: [PATCH 65/84] don't package scsi_logging_level as it is provided by sg3_utils --- s390utils.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index 83e481c..753d3ac 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -576,7 +576,7 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %{_sbindir}/qetharp %{_sbindir}/qethconf %{_sbindir}/qethqoat -%{_sbindir}/scsi_logging_level +%exclude %{_sbindir}/scsi_logging_level %{_sbindir}/sclpdbf %{_sbindir}/start_hsnc.sh %{_sbindir}/tape390_crypt From 2add3e66cd5d988f3a492f86f29c000869b83236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 14 Jan 2025 14:45:36 +0000 Subject: [PATCH 66/84] support merged bin and sbin https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin) --- s390utils.spec | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index 753d3ac..dd6e2a7 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -14,7 +14,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.35.0 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -138,7 +138,12 @@ make \ ENABLE_DOC=1 \ %endif NO_PIE_LDFLAGS="" \ +%if "%{_sbindir}" == "%{_bindir}" + BINDIR=/usr/bin \ + USRSBINDIR=/usr/bin \ +%else BINDIR=/usr/sbin \ +%endif DISTRELEASE=%{release} \ V=1 @@ -157,7 +162,12 @@ popd %if %{with pandoc} ENABLE_DOC=1 \ %endif +%if "%{_sbindir}" == "%{_bindir}" + BINDIR=/usr/bin \ + USRSBINDIR=/usr/bin \ +%else BINDIR=/usr/sbin \ +%endif SYSTEMDSYSTEMUNITDIR=%{_unitdir} \ DISTRELEASE=%{release} \ V=1 @@ -1064,6 +1074,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Tue Jan 14 2025 Dan Horák - 2:2.35.0-2 +- updated for https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin + * Thu Oct 03 2024 Dan Horák - 2:2.35.0-1 - rebased to 2.35.0 (rhbz#2316232) From a3da2ffb3c0140673045aecd9c49c5c19f372dff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Wed, 15 Jan 2025 11:30:13 +0100 Subject: [PATCH 67/84] add sysusers.d config For https://pagure.io/releng/failed-composes/issue/7714#comment-951273. --- s390utils.spec | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index dd6e2a7..242cda8 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -14,7 +14,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.35.0 -Release: 2%{?dist} +Release: 3%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -130,6 +130,11 @@ popd %endif rm ./rust/Cargo.lock +# Create sysusers config files +echo 'g zkeyadm' >s390utils-base.conf +echo 'g ts-shell' >s390utils-iucvterm.conf +echo 'g cpacfstats' >s390utils-cpacfstatsd.conf + %build make \ CFLAGS="%{build_cflags}" CXXFLAGS="%{build_cxxflags}" LDFLAGS="%{build_ldflags}" \ @@ -235,6 +240,9 @@ install -p -m 644 %{SOURCE17} %{buildroot}%{_udevrulesdir}/81-ccw.rules # zipl.conf to be ghosted touch %{buildroot}%{_sysconfdir}/zipl.conf + +install -Dt %{buildroot}%{_sysusersdir}/ s390utils-{base,iucvterm,cpacfstatsd}.conf + %endif %ifarch s390x @@ -615,6 +623,7 @@ getent group zkeyadm > /dev/null || groupadd -r zkeyadm %ghost %config(noreplace) %{_sysconfdir}/zipl.conf %config(noreplace) %{_sysconfdir}/sysconfig/dumpconf %{_sysconfdir}/mdevctl.d/* +%{_sysusersdir}/s390utils-base.conf /usr/lib/dracut/modules.d/99ngdump/ # own the mdevctl dirs until new release is available %dir /usr/lib/mdevctl @@ -901,6 +910,7 @@ fi %{_bindir}/ts-shell %{_sbindir}/chiucvallow %{_sbindir}/lsiucvallow +%{_sysusersdir}/s390utils-iucvterm.conf %dir %attr(2770,root,ts-shell) /var/log/ts-shell %doc iucvterm/doc/ts-shell %{_mandir}/man1/iucvconn.1* @@ -1004,6 +1014,7 @@ getent group cpacfstats >/dev/null || groupadd -r cpacfstats %{_mandir}/man1/cpacfstats.1* %{_mandir}/man8/cpacfstatsd.8* %{_unitdir}/cpacfstatsd.service +%{_sysusersdir}/s390utils-cpacfstatsd.conf # # *********************** chreipl-fcp-mpath package *********************** @@ -1074,6 +1085,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Wed Jan 15 2025 Zbigniew Jedrzejewski-Szmek - 2:2.35.0-3 +- Add sysusers.d config + * Tue Jan 14 2025 Dan Horák - 2:2.35.0-2 - updated for https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin From 9886d22bc2f4af942f60627b6345779d6194d4ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Mon, 20 Jan 2025 19:08:37 +0100 Subject: [PATCH 68/84] - fix build with gcc15 - Resolves: rhbz#2338176 --- s390utils-2.35.0-gcc15-zipl.patch | 33 +++++++++++++++++++++++++++++++ s390utils.spec | 10 +++++++++- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 s390utils-2.35.0-gcc15-zipl.patch diff --git a/s390utils-2.35.0-gcc15-zipl.patch b/s390utils-2.35.0-gcc15-zipl.patch new file mode 100644 index 0000000..ba4e9cc --- /dev/null +++ b/s390utils-2.35.0-gcc15-zipl.patch @@ -0,0 +1,33 @@ +From 2afcc33c90f142bfa2fd348fdf27778e23e32c6e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dan=20Hor=C3=A1k?= +Date: Thu, 16 Jan 2025 14:32:52 +0000 +Subject: [PATCH] zipl: Update inline assembly for GCC 15 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Properly escape % (as %%) for extended assembly in stage3.c in start_kernel(). + +Fixes: https://github.com/ibm-s390-linux/s390-tools/issues/179 +Signed-off-by: Dan Horák +--- + zipl/boot/stage3.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/zipl/boot/stage3.c b/zipl/boot/stage3.c +index 82b7b2ad..76275f65 100644 +--- a/zipl/boot/stage3.c ++++ b/zipl/boot/stage3.c +@@ -48,9 +48,9 @@ static inline void __noreturn start_kernel(void) + " diag %[code],%[code],0x308\n" + ".no_diag308:\n" + " sam31\n" +- " sr %r1,%r1\n" +- " sr %r2,%r2\n" +- " sigp %r1,%r2,%[order]\n" ++ " sr %%r1,%%r1\n" ++ " sr %%r2,%%r2\n" ++ " sigp %%r1,%%r2,%[order]\n" + " lpsw 0\n" + : [addr] "=&d" (addr), + [code] "+&d" (code) diff --git a/s390utils.spec b/s390utils.spec index 242cda8..b8d3753 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -14,7 +14,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.35.0 -Release: 3%{?dist} +Release: 4%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -46,6 +46,10 @@ Source25: 91-zipl.install Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch +# build fix +# https://github.com/ibm-s390-linux/s390-tools/pull/180 +Patch99: s390utils-%{version}-gcc15-zipl.patch + # upstream fixes/updates #Patch100: s390utils-%%{version}-fedora.patch @@ -1085,6 +1089,10 @@ User-space development files for the s390/s390x architecture. %changelog +* Mon Jan 20 2025 Dan Horák - 2:2.35.0-4 +- fix build with gcc15 +- Resolves: rhbz#2338176 + * Wed Jan 15 2025 Zbigniew Jedrzejewski-Szmek - 2:2.35.0-3 - Add sysusers.d config From 7b6090d409d07e4851b38e28ec2f946cdde0b52b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Mon, 20 Jan 2025 22:10:31 +0100 Subject: [PATCH 69/84] update for merged bin and sbin --- rpminspect.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpminspect.yaml b/rpminspect.yaml index 9d4a1bf..7e19000 100644 --- a/rpminspect.yaml +++ b/rpminspect.yaml @@ -5,5 +5,5 @@ pathmigration: badfuncs: allowed: - /usr/sbin/qethqoat: + /usr/bin/qethqoat: - inet_ntoa From 008037d366ddd2558eb493f1eb1c7d2aadd7bc5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 4 Feb 2025 18:59:34 +0100 Subject: [PATCH 70/84] finish migration to sysusers.d by removing the now redundant %pre scriptlets --- s390utils.spec | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index b8d3753..f78d7a0 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -547,10 +547,6 @@ For more information refer to the following publications: * "Device Drivers, Features, and Commands" chapter "Useful Linux commands" * "Using the dump tools" -%pre base -# check for zkeyadm group and create it -getent group zkeyadm > /dev/null || groupadd -r zkeyadm - %post base %systemd_post dumpconf.service @@ -885,10 +881,6 @@ active TCP/IP connection between two Linux guest operating systems. - ts-shell: Terminal server shell to authorize and control IUCV terminal connections for individual Linux users. -%pre iucvterm -# check for ts-shell group and create it -getent group ts-shell > /dev/null || groupadd -r ts-shell - %post iucvterm # /etc/shells is provided by "setup" grep -q '^/usr/bin/ts-shell$' /etc/shells \ @@ -1009,9 +1001,6 @@ and maintain CPACF activity counters. %postun cpacfstatsd %systemd_postun_with_restart cpacfstatsd.service -%pre cpacfstatsd -getent group cpacfstats >/dev/null || groupadd -r cpacfstats - %files cpacfstatsd %{_bindir}/cpacfstats %{_sbindir}/cpacfstatsd From ffe5dc6c52ded79afd050720ee368c5388ba647c Mon Sep 17 00:00:00 2001 From: Fabio Valentini Date: Thu, 6 Feb 2025 13:47:34 +0100 Subject: [PATCH 71/84] Rebuild for openssl crate >= v0.10.70 (RUSTSEC-2025-0004) --- s390utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index f78d7a0..81903f1 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -14,7 +14,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.35.0 -Release: 4%{?dist} +Release: 5%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -1078,6 +1078,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Thu Feb 06 2025 Fabio Valentini - 2:2.35.0-5 +- Rebuild for openssl crate >= v0.10.70 (RUSTSEC-2025-0004) + * Mon Jan 20 2025 Dan Horák - 2:2.35.0-4 - fix build with gcc15 - Resolves: rhbz#2338176 From 3484222eb4bd12cf930486c17931808ea885dcdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 6 Feb 2025 14:53:09 +0000 Subject: [PATCH 72/84] use systemd-tmpfiles for /var/log/ts-shell Also generalize the systemd-sysusers and systemd-tmpfiles support. --- s390utils.spec | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index 81903f1..ea6072f 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -135,9 +135,12 @@ popd rm ./rust/Cargo.lock # Create sysusers config files -echo 'g zkeyadm' >s390utils-base.conf -echo 'g ts-shell' >s390utils-iucvterm.conf -echo 'g cpacfstats' >s390utils-cpacfstatsd.conf +echo 'g zkeyadm' > s390utils-base.conf.usr +echo 'g ts-shell' > s390utils-iucvterm.conf.usr +echo 'g cpacfstats' > s390utils-cpacfstatsd.conf.usr + +# Create tmpfiles config files +echo 'd /var/log/ts-shell 2770 root ts-shell' > s390utils-iucvterm.conf.tmp %build make \ @@ -245,7 +248,14 @@ install -p -m 644 %{SOURCE17} %{buildroot}%{_udevrulesdir}/81-ccw.rules # zipl.conf to be ghosted touch %{buildroot}%{_sysconfdir}/zipl.conf -install -Dt %{buildroot}%{_sysusersdir}/ s390utils-{base,iucvterm,cpacfstatsd}.conf +# install systemd sysusers and tmpfiles +mkdir -p %{buildroot}{%{_sysusersdir},%{_tmpfilesdir}}/ +for f in s390utils-*.conf.usr; do + install -p $f %{buildroot}%{_sysusersdir}/$(basename -s .usr $f) +done +for f in s390utils-*.conf.tmp; do + install -p $f %{buildroot}%{_tmpfilesdir}/$(basename -s .tmp $f) +done %endif @@ -907,7 +917,8 @@ fi %{_sbindir}/chiucvallow %{_sbindir}/lsiucvallow %{_sysusersdir}/s390utils-iucvterm.conf -%dir %attr(2770,root,ts-shell) /var/log/ts-shell +%{_tmpfilesdir}/s390utils-iucvterm.conf +%ghost %dir %attr(2770,root,ts-shell) /var/log/ts-shell %doc iucvterm/doc/ts-shell %{_mandir}/man1/iucvconn.1* %{_mandir}/man1/iucvtty.1* From 8cf2e7926d3fd4fc09be0a3d8e06dcba04334d46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 14 Jan 2025 12:53:46 +0000 Subject: [PATCH 73/84] - rebased to 2.36.0 (rhbz#2330787) --- s390utils-2.35.0-fedora.patch | 0 s390utils-2.36.0-fedora.patch | 16 ++++++++++++++++ s390utils.spec | 33 +++++++++++++++++++++++++++------ sources | 4 ++-- 4 files changed, 45 insertions(+), 8 deletions(-) delete mode 100644 s390utils-2.35.0-fedora.patch create mode 100644 s390utils-2.36.0-fedora.patch diff --git a/s390utils-2.35.0-fedora.patch b/s390utils-2.35.0-fedora.patch deleted file mode 100644 index e69de29..0000000 diff --git a/s390utils-2.36.0-fedora.patch b/s390utils-2.36.0-fedora.patch new file mode 100644 index 0000000..4a20bb7 --- /dev/null +++ b/s390utils-2.36.0-fedora.patch @@ -0,0 +1,16 @@ +diff --git a/zipl/src/Makefile b/zipl/src/Makefile +index 7927974..e9f68b4 100644 +--- a/zipl/src/Makefile ++++ b/zipl/src/Makefile +@@ -38,9 +38,8 @@ install: all + $(INSTALL) -d -m 755 $(DESTDIR)$(BINDIR) + $(INSTALL) -c zipl $(DESTDIR)$(BINDIR) + $(INSTALL) -c zipl-editenv $(DESTDIR)$(BINDIR) +- $(INSTALL) -m 755 $(zipl_helpers) $(chreipl_helpers) \ +- $(DESTDIR)$(TOOLS_LIBDIR) +- $(CP) --no-dereference $(chreipl_helpers) $(DESTDIR)$(TOOLS_LIBDIR) ++ $(CP) --no-dereference $(zipl_helpers) $(chreipl_helpers) \ ++ $(DESTDIR)$(TOOLS_LIBDIR) + + clean: + rm -f *.o $(zipl_helpers) $(chreipl_helpers) zipl zipl-editenv diff --git a/s390utils.spec b/s390utils.spec index ea6072f..7384627 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -13,8 +13,8 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.35.0 -Release: 5%{?dist} +Version: 2.36.0 +Release: 1%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -48,7 +48,7 @@ Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch # build fix # https://github.com/ibm-s390-linux/s390-tools/pull/180 -Patch99: s390utils-%{version}-gcc15-zipl.patch +Patch99: s390utils-2.35.0-gcc15-zipl.patch # upstream fixes/updates #Patch100: s390utils-%%{version}-fedora.patch @@ -124,7 +124,7 @@ be used together with the zSeries (s390) Linux kernel and device drivers. %prep %autosetup -n s390-tools-%{version} -p1 -%if 0%{?rhel} +%if 1%{?rhel} pushd rust tar xf %{SOURCE1} %cargo_prep -v vendor @@ -281,12 +281,18 @@ done %{_bindir}/genprotimg %{_bindir}/pvattest %{_bindir}/pvextract-hdr +%{_bindir}/pvimg %{_bindir}/pvsecret %{_mandir}/man1/genprotimg.1* %{_mandir}/man1/pvattest.1* +%{_mandir}/man1/pvattest-check.1* %{_mandir}/man1/pvattest-create.1* %{_mandir}/man1/pvattest-perform.1* %{_mandir}/man1/pvattest-verify.1* +%{_mandir}/man1/pvimg.1* +%{_mandir}/man1/pvimg-create.1* +%{_mandir}/man1/pvimg-info.1* +%{_mandir}/man1/pvimg-test.1* %{_mandir}/man1/pvsecret-add.1* %{_mandir}/man1/pvsecret-create-association.1* %{_mandir}/man1/pvsecret-create-meta.1* @@ -296,7 +302,7 @@ done %{_mandir}/man1/pvsecret-verify.1* %{_mandir}/man1/pvsecret.1* %dir %{_datadir}/s390-tools -%{_datadir}/s390-tools/genprotimg/ +%{_datadir}/s390-tools/pvimg/ # # enf of multi-arch section @@ -426,6 +432,7 @@ BuildRequires: cryptsetup-devel >= 2.0.3 BuildRequires: json-c-devel BuildRequires: rpm-devel BuildRequires: libxml2-devel +BuildRequires: libnl3-devel %description base @@ -600,6 +607,7 @@ For more information refer to the following publications: %{_sbindir}/lstape %{_sbindir}/lszcrypt %{_sbindir}/lszfcp +%{_sbindir}/opticsmon %{_sbindir}/pai %{_sbindir}/qetharp %{_sbindir}/qethconf @@ -620,9 +628,11 @@ For more information refer to the following publications: %{_sbindir}/zipl-switch-to-blscfg %{_sbindir}/znetconf %{_sbindir}/zpcictl +%{_bindir}/cpacfinfo %{_bindir}/dump2tar %{_bindir}/genprotimg %{_bindir}/pvapconfig +%{_bindir}/pvimg %{_bindir}/mk-s390image %{_bindir}/pvattest %{_bindir}/pvextract-hdr @@ -630,6 +640,7 @@ For more information refer to the following publications: %{_bindir}/zkey %{_bindir}/zkey-cryptsetup %{_unitdir}/dumpconf.service +%{_unitdir}/opticsmon.service %ghost %config(noreplace) %{_sysconfdir}/zipl.conf %config(noreplace) %{_sysconfdir}/sysconfig/dumpconf %{_sysconfdir}/mdevctl.d/* @@ -650,13 +661,19 @@ For more information refer to the following publications: %dir %{_libdir}/zkey %{_libdir}/zkey/zkey-ekmfweb.so %{_libdir}/zkey/zkey-kmip.so +%{_mandir}/man1/cpacfinfo.1* %{_mandir}/man1/dump2tar.1* %{_mandir}/man1/genprotimg.1* %{_mandir}/man1/pvapconfig.1* %{_mandir}/man1/pvattest.1* +%{_mandir}/man1/pvattest-check.1* %{_mandir}/man1/pvattest-create.1* %{_mandir}/man1/pvattest-perform.1* %{_mandir}/man1/pvattest-verify.1* +%{_mandir}/man1/pvimg.1* +%{_mandir}/man1/pvimg-create.1* +%{_mandir}/man1/pvimg-info.1* +%{_mandir}/man1/pvimg-test.1* %{_mandir}/man1/pvsecret-add.1* %{_mandir}/man1/pvsecret-create-association.1* %{_mandir}/man1/pvsecret-create-meta.1* @@ -699,6 +716,7 @@ For more information refer to the following publications: %{_mandir}/man8/lstape.8* %{_mandir}/man8/lszcrypt.8* %{_mandir}/man8/lszfcp.8* +%{_mandir}/man8/opticsmon.8* %{_mandir}/man8/pai.8* %{_mandir}/man8/qetharp.8* %{_mandir}/man8/qethconf.8* @@ -738,7 +756,7 @@ BuildArch: noarch %files se-data %dir %{_datadir}/s390-tools -%{_datadir}/s390-tools/genprotimg/ +%{_datadir}/s390-tools/pvimg/ # # *********************** s390-tools osasnmpd package *********************** @@ -1089,6 +1107,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Mon Feb 24 2025 Dan Horák - 2:2.36.0-1 +- rebased to 2.36.0 (rhbz#2330787) + * Thu Feb 06 2025 Fabio Valentini - 2:2.35.0-5 - Rebuild for openssl crate >= v0.10.70 (RUSTSEC-2025-0004) diff --git a/sources b/sources index aa65d49..444acfa 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (s390-tools-2.35.0.tar.gz) = 1ee6e7dc5a0c504bb23bde00e5e6a2ed333e7712677056075caf68a02eb222cd9c00d16fcf17e0a7c9f89609901d343b55953b0036c0d2cab35830ea8eb53fea -SHA512 (s390-tools-2.35.0-rust-vendor.tar.xz) = 116adeac121c56d7d5bc37b3a7972a78e1ce86fd53f919d293d4bfe92999449ce6f30a592fdb3f4d48fda64817c9b19587a038bf832c7b745a715b9b469e1ee4 +SHA512 (s390-tools-2.36.0.tar.gz) = 5704dcbfc88972ff74b5d81acf549e719b90f2ce60b66ca6935c16c0b266ca6728adca72133aa51e1a5acfbabfd6f121b7f9b5023be498c5a203217adc4f5c46 +SHA512 (s390-tools-2.36.0-rust-vendor.tar.xz) = 2e4f53b64e71307e79a3a433c7bd2a6304b0c4e6e34cb84c57e459e86ec25c14b64eab870f0081f2f31d5b8003b071e8f45cf639111a1e759f0dfa070a96d765 From 488af3d803cd13c564c3541b3a1fb12db0403281 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20=C4=8Cajka?= Date: Thu, 27 Feb 2025 10:01:38 +0100 Subject: [PATCH 74/84] rebased to 2.37.0 (rhbz#2330787) --- s390utils-2.35.0-gcc15-zipl.patch | 33 ------------------------------- s390utils.spec | 13 +++++++----- sources | 4 ++-- 3 files changed, 10 insertions(+), 40 deletions(-) delete mode 100644 s390utils-2.35.0-gcc15-zipl.patch diff --git a/s390utils-2.35.0-gcc15-zipl.patch b/s390utils-2.35.0-gcc15-zipl.patch deleted file mode 100644 index ba4e9cc..0000000 --- a/s390utils-2.35.0-gcc15-zipl.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 2afcc33c90f142bfa2fd348fdf27778e23e32c6e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Dan=20Hor=C3=A1k?= -Date: Thu, 16 Jan 2025 14:32:52 +0000 -Subject: [PATCH] zipl: Update inline assembly for GCC 15 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Properly escape % (as %%) for extended assembly in stage3.c in start_kernel(). - -Fixes: https://github.com/ibm-s390-linux/s390-tools/issues/179 -Signed-off-by: Dan Horák ---- - zipl/boot/stage3.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/zipl/boot/stage3.c b/zipl/boot/stage3.c -index 82b7b2ad..76275f65 100644 ---- a/zipl/boot/stage3.c -+++ b/zipl/boot/stage3.c -@@ -48,9 +48,9 @@ static inline void __noreturn start_kernel(void) - " diag %[code],%[code],0x308\n" - ".no_diag308:\n" - " sam31\n" -- " sr %r1,%r1\n" -- " sr %r2,%r2\n" -- " sigp %r1,%r2,%[order]\n" -+ " sr %%r1,%%r1\n" -+ " sr %%r2,%%r2\n" -+ " sigp %%r1,%%r2,%[order]\n" - " lpsw 0\n" - : [addr] "=&d" (addr), - [code] "+&d" (code) diff --git a/s390utils.spec b/s390utils.spec index 7384627..f3e56be 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -13,7 +13,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.36.0 +Version: 2.37.0 Release: 1%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files @@ -46,10 +46,6 @@ Source25: 91-zipl.install Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch -# build fix -# https://github.com/ibm-s390-linux/s390-tools/pull/180 -Patch99: s390utils-2.35.0-gcc15-zipl.patch - # upstream fixes/updates #Patch100: s390utils-%%{version}-fedora.patch @@ -296,9 +292,11 @@ done %{_mandir}/man1/pvsecret-add.1* %{_mandir}/man1/pvsecret-create-association.1* %{_mandir}/man1/pvsecret-create-meta.1* +%{_mandir}/man1/pvsecret-create-retrievable.1* %{_mandir}/man1/pvsecret-create.1* %{_mandir}/man1/pvsecret-list.1* %{_mandir}/man1/pvsecret-lock.1* +%{_mandir}/man1/pvsecret-retrieve.1* %{_mandir}/man1/pvsecret-verify.1* %{_mandir}/man1/pvsecret.1* %dir %{_datadir}/s390-tools @@ -677,9 +675,11 @@ For more information refer to the following publications: %{_mandir}/man1/pvsecret-add.1* %{_mandir}/man1/pvsecret-create-association.1* %{_mandir}/man1/pvsecret-create-meta.1* +%{_mandir}/man1/pvsecret-create-retrievable.1* %{_mandir}/man1/pvsecret-create.1* %{_mandir}/man1/pvsecret-list.1* %{_mandir}/man1/pvsecret-lock.1* +%{_mandir}/man1/pvsecret-retrieve.1* %{_mandir}/man1/pvsecret-verify.1* %{_mandir}/man1/pvsecret.1* %{_mandir}/man1/zkey.1* @@ -1107,6 +1107,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Thu Feb 27 2025 Jakub Čajka - 2:2.37.0-1 +- rebased to 2.37.0 (rhbz#2330787) + * Mon Feb 24 2025 Dan Horák - 2:2.36.0-1 - rebased to 2.36.0 (rhbz#2330787) diff --git a/sources b/sources index 444acfa..44ec9c0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (s390-tools-2.36.0.tar.gz) = 5704dcbfc88972ff74b5d81acf549e719b90f2ce60b66ca6935c16c0b266ca6728adca72133aa51e1a5acfbabfd6f121b7f9b5023be498c5a203217adc4f5c46 -SHA512 (s390-tools-2.36.0-rust-vendor.tar.xz) = 2e4f53b64e71307e79a3a433c7bd2a6304b0c4e6e34cb84c57e459e86ec25c14b64eab870f0081f2f31d5b8003b071e8f45cf639111a1e759f0dfa070a96d765 +SHA512 (s390-tools-2.37.0.tar.gz) = 3577d25bc0a0f2c86912327b4fc844c9ce16ce978c39aa8dbde0e082a0657066bb4cafcb75b5b022a75138afb6e0efe904f62ed3a53bc8f61a9093119b3b95f7 +SHA512 (s390-tools-2.37.0-rust-vendor.tar.xz) = 86ae3311fc5ef5e2274c8fe1553c3caea671875e77ef0d197512fe346f644f46a56c8de5589e040b83480b37765319ef9bd4ad6fda3dc5ecebac8c3e7aa578b0 From ee43d0c73bd34a448b7c740600c0a516df54d273 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20=C4=8Cajka?= Date: Thu, 27 Feb 2025 10:05:11 +0100 Subject: [PATCH 75/84] Debundle rust dependencies --- s390utils.spec | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index f3e56be..f9e8572 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -24,7 +24,9 @@ Source0: https://github.com/ibm-s390-linux/s390-tools/archive/v%{version} # tar xf s390-tools-%%{version}.tar.gz ; pushd s390-tools-%%{version}/rust ; \ # rm -f Cargo.lock && cargo vendor && \ # tar Jvcf ../../s390-tools-%%{version}-rust-vendor.tar.xz vendor/ ; popd +%if 0%{?rhel} Source1: s390-tools-%{version}-rust-vendor.tar.xz +%endif Source5: https://fedorapeople.org/cgit/sharkcz/public_git/utils.git/tree/zfcpconf.sh Source7: https://fedorapeople.org/cgit/sharkcz/public_git/utils.git/tree/zfcp.udev Source12: https://fedorapeople.org/cgit/sharkcz/public_git/utils.git/tree/dasd.udev @@ -84,6 +86,9 @@ BuildRequires: rust-toolset BuildRequires: crate(anstream) BuildRequires: crate(anstyle-query) BuildRequires: crate(anyhow) +BuildRequires: crate(base64) +BuildRequires: crate(bit-set) +BuildRequires: crate(bitvec) BuildRequires: crate(byteorder) BuildRequires: crate(cfg-if) BuildRequires: crate(clap) @@ -91,6 +96,8 @@ BuildRequires: crate(clap_complete) BuildRequires: crate(clap_derive) BuildRequires: crate(colorchoice) BuildRequires: crate(curl) +BuildRequires: crate(deku) +BuildRequires: crate(enum_dispatch) BuildRequires: crate(is-terminal) BuildRequires: crate(lazy_static) BuildRequires: crate(libc) @@ -98,13 +105,17 @@ BuildRequires: crate(log) BuildRequires: crate(mockito) BuildRequires: crate(openssl) BuildRequires: crate(openssl-probe) +BuildRequires: crate(proc-macro-crate) +BuildRequires: crate(proptest) +BuildRequires: crate(rusty-fork) BuildRequires: crate(serde) BuildRequires: crate(serde_derive) BuildRequires: crate(serde_test) BuildRequires: crate(serde_yaml) BuildRequires: crate(strsim) BuildRequires: crate(terminal_size) -BuildRequires: crate(thiserror) < 2 +BuildRequires: crate(thiserror) +BuildRequires: crate(wait-timeout) BuildRequires: crate(zerocopy) BuildRequires: rust-packaging %endif @@ -120,7 +131,7 @@ be used together with the zSeries (s390) Linux kernel and device drivers. %prep %autosetup -n s390-tools-%{version} -p1 -%if 1%{?rhel} +%if 0%{?rhel} pushd rust tar xf %{SOURCE1} %cargo_prep -v vendor From 745b0f7706a898bbf67e2c396289b11a7b6621aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Fri, 28 Feb 2025 18:33:21 +0100 Subject: [PATCH 76/84] update fedora patch filename --- s390utils-2.36.0-fedora.patch => s390utils-2.37.0-fedora.patch | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename s390utils-2.36.0-fedora.patch => s390utils-2.37.0-fedora.patch (100%) diff --git a/s390utils-2.36.0-fedora.patch b/s390utils-2.37.0-fedora.patch similarity index 100% rename from s390utils-2.36.0-fedora.patch rename to s390utils-2.37.0-fedora.patch From 7efda8631f0328d746e605006ad4f8a336df5b72 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Thu, 13 Mar 2025 11:17:20 -0400 Subject: [PATCH 77/84] Properly generate Rust BuildRequires on Fedora --- s390utils.spec | 51 +++++++++++++++----------------------------------- 1 file changed, 15 insertions(+), 36 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index f9e8572..36f03f1 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -11,10 +11,13 @@ %bcond_with pandoc %endif +# Also controls whether %%cargo_generate_buildrequires generates dev-dependencies +%bcond_without check + Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.37.0 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files License: MIT AND LGPL-2.1-or-later @@ -83,41 +86,7 @@ BuildRequires: libcurl-devel BuildRequires: openssl-devel BuildRequires: rust-toolset %else -BuildRequires: crate(anstream) -BuildRequires: crate(anstyle-query) -BuildRequires: crate(anyhow) -BuildRequires: crate(base64) -BuildRequires: crate(bit-set) -BuildRequires: crate(bitvec) -BuildRequires: crate(byteorder) -BuildRequires: crate(cfg-if) -BuildRequires: crate(clap) -BuildRequires: crate(clap_complete) -BuildRequires: crate(clap_derive) -BuildRequires: crate(colorchoice) -BuildRequires: crate(curl) -BuildRequires: crate(deku) -BuildRequires: crate(enum_dispatch) -BuildRequires: crate(is-terminal) -BuildRequires: crate(lazy_static) -BuildRequires: crate(libc) -BuildRequires: crate(log) -BuildRequires: crate(mockito) -BuildRequires: crate(openssl) -BuildRequires: crate(openssl-probe) -BuildRequires: crate(proc-macro-crate) -BuildRequires: crate(proptest) -BuildRequires: crate(rusty-fork) -BuildRequires: crate(serde) -BuildRequires: crate(serde_derive) -BuildRequires: crate(serde_test) -BuildRequires: crate(serde_yaml) -BuildRequires: crate(strsim) -BuildRequires: crate(terminal_size) -BuildRequires: crate(thiserror) -BuildRequires: crate(wait-timeout) -BuildRequires: crate(zerocopy) -BuildRequires: rust-packaging +BuildRequires: cargo-rpm-macros >= 24 %endif %description @@ -149,6 +118,13 @@ echo 'g cpacfstats' > s390utils-cpacfstatsd.conf.usr # Create tmpfiles config files echo 'd /var/log/ts-shell 2770 root ts-shell' > s390utils-iucvterm.conf.tmp +%if !0%{?rhel} +%generate_buildrequires +pushd rust >/dev/null +%cargo_generate_buildrequires +popd >/dev/null +%endif + %build make \ CFLAGS="%{build_cflags}" CXXFLAGS="%{build_cxxflags}" LDFLAGS="%{build_ldflags}" \ @@ -1118,6 +1094,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Thu Mar 13 2025 Benjamin A. Beasley - 2:2.37.0-2 +- Properly generate Rust BuildRequires on Fedora + * Thu Feb 27 2025 Jakub Čajka - 2:2.37.0-1 - rebased to 2.37.0 (rhbz#2330787) From 43b62453bdbb43b7ea0d76a4db5ddbe19feb249d Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Thu, 13 Mar 2025 13:08:31 -0400 Subject: [PATCH 78/84] Update License (for s390utils/s390utils-base) to reflect Rust deps. --- s390utils.spec | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index 36f03f1..4494d69 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -19,8 +19,30 @@ Summary: Utilities and daemons for IBM z Systems Version: 2.37.0 Release: 2%{?dist} Epoch: 2 -# MIT covers nearly all the files, except init files -License: MIT AND LGPL-2.1-or-later +# MIT covers nearly all the files, except init files (LGPL-2.1-or-later) +# +# Statically-linked Rust dependencies contribute additional license terms, +# listed in the output of %%{cargo_license_summary}: +# +# (MIT OR Apache-2.0) AND Unicode-DFS-2016 +# Apache-2.0 +# Apache-2.0 OR BSL-1.0 +# Apache-2.0 OR MIT +# Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT +# BSD-2-Clause OR Apache-2.0 OR MIT +# MIT +# MIT OR Apache-2.0 +# Unlicense OR MIT +%global extra_licenses_from_rust_deps %{shrink: +Apache-2.0 AND +(Apache-2.0 OR BSL-1.0) AND +(Apache-2.0 OR MIT) AND +(Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND +(BSD-2-Clause OR Apache-2.0 OR MIT) AND +Unicode-DFS-2016 AND +(Unlicense OR MIT) +} +License: MIT AND LGPL-2.1-or-later AND %{extra_licenses_from_rust_deps} URL: https://github.com/ibm-s390-linux/s390-tools Source0: https://github.com/ibm-s390-linux/s390-tools/archive/v%{version}.tar.gz#/s390-tools-%{version}.tar.gz # To create the vendor tarball: @@ -397,7 +419,7 @@ This package provides minimal set of tools needed to system to boot. # %package base -License: MIT AND LGPL-2.1-or-later +License: MIT AND LGPL-2.1-or-later AND %{extra_licenses_from_rust_deps} Summary: S390 base tools Provides: s390-tools-base = %{epoch}:%{version}-%{release} Requires: coreutils @@ -1096,6 +1118,7 @@ User-space development files for the s390/s390x architecture. %changelog * Thu Mar 13 2025 Benjamin A. Beasley - 2:2.37.0-2 - Properly generate Rust BuildRequires on Fedora +- Update License (for s390utils/s390utils-base) to reflect Rust deps. * Thu Feb 27 2025 Jakub Čajka - 2:2.37.0-1 - rebased to 2.37.0 (rhbz#2330787) From f7557efaba2054d61a919c4317009a01e6775d34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Fri, 27 Jun 2025 11:57:38 +0000 Subject: [PATCH 79/84] - rebased to 2.38.0 (rhbz#2374765) --- s390utils-2.37.0-fedora.patch | 16 ---------------- s390utils-2.38.0-fedora.patch | 0 s390utils.spec | 23 +++++++++++++++++------ sources | 4 ++-- 4 files changed, 19 insertions(+), 24 deletions(-) delete mode 100644 s390utils-2.37.0-fedora.patch create mode 100644 s390utils-2.38.0-fedora.patch diff --git a/s390utils-2.37.0-fedora.patch b/s390utils-2.37.0-fedora.patch deleted file mode 100644 index 4a20bb7..0000000 --- a/s390utils-2.37.0-fedora.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/zipl/src/Makefile b/zipl/src/Makefile -index 7927974..e9f68b4 100644 ---- a/zipl/src/Makefile -+++ b/zipl/src/Makefile -@@ -38,9 +38,8 @@ install: all - $(INSTALL) -d -m 755 $(DESTDIR)$(BINDIR) - $(INSTALL) -c zipl $(DESTDIR)$(BINDIR) - $(INSTALL) -c zipl-editenv $(DESTDIR)$(BINDIR) -- $(INSTALL) -m 755 $(zipl_helpers) $(chreipl_helpers) \ -- $(DESTDIR)$(TOOLS_LIBDIR) -- $(CP) --no-dereference $(chreipl_helpers) $(DESTDIR)$(TOOLS_LIBDIR) -+ $(CP) --no-dereference $(zipl_helpers) $(chreipl_helpers) \ -+ $(DESTDIR)$(TOOLS_LIBDIR) - - clean: - rm -f *.o $(zipl_helpers) $(chreipl_helpers) zipl zipl-editenv diff --git a/s390utils-2.38.0-fedora.patch b/s390utils-2.38.0-fedora.patch new file mode 100644 index 0000000..e69de29 diff --git a/s390utils.spec b/s390utils.spec index 4494d69..2d5c72c 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -16,8 +16,8 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.37.0 -Release: 2%{?dist} +Version: 2.38.0 +Release: 1%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files (LGPL-2.1-or-later) # @@ -302,6 +302,7 @@ done %{_mandir}/man1/pvsecret-create-association.1* %{_mandir}/man1/pvsecret-create-meta.1* %{_mandir}/man1/pvsecret-create-retrievable.1* +%{_mandir}/man1/pvsecret-create-update-cck.1* %{_mandir}/man1/pvsecret-create.1* %{_mandir}/man1/pvsecret-list.1* %{_mandir}/man1/pvsecret-lock.1* @@ -310,6 +311,8 @@ done %{_mandir}/man1/pvsecret.1* %dir %{_datadir}/s390-tools %{_datadir}/s390-tools/pvimg/ +%{bash_completions_dir}/*.bash +%{zsh_completions_dir}/_* # # enf of multi-arch section @@ -407,6 +410,7 @@ This package provides minimal set of tools needed to system to boot. %{_udevrulesdir}/81-ccw.rules %{_udevrulesdir}/81-dpm.rules %{_udevrulesdir}/90-cpi.rules +%{_udevrulesdir}/80-hotplug-cpu.rules %{_sysconfdir}/kernel/install.d/20-grubby.install %{_prefix}/lib/kernel/install.d/10-zfcpdump.install %{_prefix}/lib/kernel/install.d/20-zipl-kernel.install @@ -517,9 +521,6 @@ s390 base tools. This collection provides the following utilities: feature. Those traces are filtered with the zfcpdbf script, i.e. merge several traces, make it more readable etc. - * scsi_logging_level: - Create, get or set the logging level for the SCSI logging facility. - * zconf: Set of scripts to configure and list status information of Linux for zSeries IO devices. @@ -619,7 +620,6 @@ For more information refer to the following publications: %{_sbindir}/qetharp %{_sbindir}/qethconf %{_sbindir}/qethqoat -%exclude %{_sbindir}/scsi_logging_level %{_sbindir}/sclpdbf %{_sbindir}/start_hsnc.sh %{_sbindir}/tape390_crypt @@ -633,6 +633,7 @@ For more information refer to the following publications: %{_sbindir}/zfcpdbf %{_sbindir}/zgetdump %{_sbindir}/zipl-switch-to-blscfg +%{_sbindir}/zmemtopo %{_sbindir}/znetconf %{_sbindir}/zpcictl %{_bindir}/cpacfinfo @@ -646,6 +647,7 @@ For more information refer to the following publications: %{_bindir}/pvsecret %{_bindir}/zkey %{_bindir}/zkey-cryptsetup +%{_bindir}/zpwr %{_unitdir}/dumpconf.service %{_unitdir}/opticsmon.service %ghost %config(noreplace) %{_sysconfdir}/zipl.conf @@ -653,6 +655,7 @@ For more information refer to the following publications: %{_sysconfdir}/mdevctl.d/* %{_sysusersdir}/s390utils-base.conf /usr/lib/dracut/modules.d/99ngdump/ +/usr/lib/dracut/dracut.conf.d/99-pkey.conf # own the mdevctl dirs until new release is available %dir /usr/lib/mdevctl %dir /usr/lib/mdevctl/scripts.d @@ -685,6 +688,7 @@ For more information refer to the following publications: %{_mandir}/man1/pvsecret-create-association.1* %{_mandir}/man1/pvsecret-create-meta.1* %{_mandir}/man1/pvsecret-create-retrievable.1* +%{_mandir}/man1/pvsecret-create-update-cck.1* %{_mandir}/man1/pvsecret-create.1* %{_mandir}/man1/pvsecret-list.1* %{_mandir}/man1/pvsecret-lock.1* @@ -695,6 +699,7 @@ For more information refer to the following publications: %{_mandir}/man1/zkey-cryptsetup.1* %{_mandir}/man1/zkey-ekmfweb.1* %{_mandir}/man1/zkey-kmip.1* +%{_mandir}/man1/zpwr.1* %{_mandir}/man4/prandom.4* %{_mandir}/man5/hsavmcore.conf.5* %{_mandir}/man8/chccwdev.8* @@ -740,10 +745,13 @@ For more information refer to the following publications: %{_mandir}/man8/zfcpdbf.8* %{_mandir}/man8/zgetdump.8* %{_mandir}/man8/zipl-switch-to-blscfg.8* +%{_mandir}/man8/zmemtopo.8* %{_mandir}/man8/znetconf.8* %{_mandir}/man8/zpcictl.8* %dir %{_datadir}/s390-tools %{_datadir}/s390-tools/netboot/ +%{bash_completions_dir}/*.bash +%{zsh_completions_dir}/_* %dir %attr(0770,root,zkeyadm) %{_sysconfdir}/zkey %dir %attr(0770,root,zkeyadm) %{_sysconfdir}/zkey/kmip %dir %attr(0770,root,zkeyadm) %{_sysconfdir}/zkey/kmip/profiles @@ -1116,6 +1124,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Fri Jun 27 2025 Dan Horák - 2:2.38.0-1 +- rebased to 2.38.0 (rhbz#2374765) + * Thu Mar 13 2025 Benjamin A. Beasley - 2:2.37.0-2 - Properly generate Rust BuildRequires on Fedora - Update License (for s390utils/s390utils-base) to reflect Rust deps. diff --git a/sources b/sources index 44ec9c0..16b71cb 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (s390-tools-2.37.0.tar.gz) = 3577d25bc0a0f2c86912327b4fc844c9ce16ce978c39aa8dbde0e082a0657066bb4cafcb75b5b022a75138afb6e0efe904f62ed3a53bc8f61a9093119b3b95f7 -SHA512 (s390-tools-2.37.0-rust-vendor.tar.xz) = 86ae3311fc5ef5e2274c8fe1553c3caea671875e77ef0d197512fe346f644f46a56c8de5589e040b83480b37765319ef9bd4ad6fda3dc5ecebac8c3e7aa578b0 +SHA512 (s390-tools-2.38.0.tar.gz) = 9ca9393e9deeab5c1df5e9eaa3c12e340917ffd5fe07d9a09087d6488d8e2ec0a136805650830d128595854b818a1da94151003e15954e556ba373b226a7369e +SHA512 (s390-tools-2.38.0-rust-vendor.tar.xz) = c55d2870ad9f90333de2536e7921951185746f0972d5d488bf317b56e754525e4dbd0f63d547229197199b51d41b7032172b6ba7ffacd9a96a01dbd13b9c4d9e From 41042d250b92ce83b1bf43bd2d091f19d4d7225b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 17:51:29 +0000 Subject: [PATCH 80/84] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- s390utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index 2d5c72c..d6235bc 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -17,7 +17,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems Version: 2.38.0 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files (LGPL-2.1-or-later) # @@ -1124,6 +1124,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Fri Jul 25 2025 Fedora Release Engineering - 2:2.38.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Fri Jun 27 2025 Dan Horák - 2:2.38.0-1 - rebased to 2.38.0 (rhbz#2374765) From 09f8677bca73d4c361df866a365542a039e37b15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Fri, 14 Nov 2025 09:14:49 +0000 Subject: [PATCH 81/84] - rebased to 2.39.0 (rhbz#2403755) --- s390utils-2.38.0-fedora.patch | 0 s390utils-2.39.0-fedora.patch | 63 +++++++++++++++++++++++++++++++++++ s390utils.spec | 20 +++++++---- sources | 4 +-- 4 files changed, 79 insertions(+), 8 deletions(-) delete mode 100644 s390utils-2.38.0-fedora.patch create mode 100644 s390utils-2.39.0-fedora.patch diff --git a/s390utils-2.38.0-fedora.patch b/s390utils-2.38.0-fedora.patch deleted file mode 100644 index e69de29..0000000 diff --git a/s390utils-2.39.0-fedora.patch b/s390utils-2.39.0-fedora.patch new file mode 100644 index 0000000..f6f0d44 --- /dev/null +++ b/s390utils-2.39.0-fedora.patch @@ -0,0 +1,63 @@ +From 6bf9a8579cc184e64ab54e08073280ad005d50f6 Mon Sep 17 00:00:00 2001 +From: Peter Jin +Date: Wed, 1 Oct 2025 15:02:10 -0400 +Subject: [PATCH 1/2] udev/rules.d: make virtio-blk devices non-rotational +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Performance measurements turned out that in certain situations the +paging/swap logic turns on the rotational feature for block devices. In the +past, this feature has been disabled for DASD devices. FCP and NVMe devices +are considered non-rotational by default (or exposed by the storage server). +Because those are the backing devices on Linux on Z/LinuxONE instances, +ensure that virtio-blk devices are always non-rotational. + +Signed-off-by: Peter Jin +Signed-off-by: Jan Höppner +(cherry picked from commit 82f8c137e1881577d89309223f6d459361c671dd) +--- + etc/udev/rules.d/59-virtio-blk.rules | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 etc/udev/rules.d/59-virtio-blk.rules + +diff --git a/etc/udev/rules.d/59-virtio-blk.rules b/etc/udev/rules.d/59-virtio-blk.rules +new file mode 100644 +index 00000000..2e3c13f7 +--- /dev/null ++++ b/etc/udev/rules.d/59-virtio-blk.rules +@@ -0,0 +1 @@ ++SUBSYSTEM=="block", ACTION=="add", KERNEL=="vd*[!0-9]", TEST=="queue/rotational", ATTR{queue/rotational}="0" +-- +2.51.1 + + +From 6e854376073b2907301310b1110f1fc6e02f0dc5 Mon Sep 17 00:00:00 2001 +From: Peter Jin +Date: Wed, 1 Oct 2025 15:09:49 -0400 +Subject: [PATCH 2/2] udev/rules.d: Set default io scheduler to 'none' for + virtio-blk +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Use 'none' as default io scheduler for virtio-blk devices. Performance +improvements for multi-queue setups and to reduce CPU consumption. + +Signed-off-by: Peter Jin +Signed-off-by: Jan Höppner +(cherry picked from commit 6ee5ffef91cb4157079fecb89bf42aa41e81e801) +--- + etc/udev/rules.d/59-virtio-blk.rules | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/etc/udev/rules.d/59-virtio-blk.rules b/etc/udev/rules.d/59-virtio-blk.rules +index 2e3c13f7..ca6e1c4d 100644 +--- a/etc/udev/rules.d/59-virtio-blk.rules ++++ b/etc/udev/rules.d/59-virtio-blk.rules +@@ -1 +1,2 @@ + SUBSYSTEM=="block", ACTION=="add", KERNEL=="vd*[!0-9]", TEST=="queue/rotational", ATTR{queue/rotational}="0" ++SUBSYSTEM=="block", ACTION=="add", KERNEL=="vd*[!0-9]", TEST=="queue/scheduler", ATTR{queue/scheduler}="none" +-- +2.51.1 + diff --git a/s390utils.spec b/s390utils.spec index d6235bc..026c593 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -16,8 +16,8 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.38.0 -Release: 2%{?dist} +Version: 2.39.0 +Release: 1%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files (LGPL-2.1-or-later) # @@ -74,7 +74,7 @@ Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch # upstream fixes/updates -#Patch100: s390utils-%%{version}-fedora.patch +Patch100: s390utils-%%{version}-fedora.patch # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} @@ -207,6 +207,7 @@ fi # move tools to searchable dir mv %{buildroot}%{_datadir}/s390-tools/netboot/mk-s390image %{buildroot}%{_bindir} +mv %{buildroot}%{_datadir}/s390-tools/netboot/mk-s390image.1 %{buildroot}%{_mandir}/man1 mkdir -p %{buildroot}{/boot,%{_udevrulesdir},%{_sysconfdir}/{profile.d,sysconfig},%{_prefix}/lib/modules-load.d} install -p -m 644 zipl/boot/tape0.bin %{buildroot}/boot/tape0 @@ -256,10 +257,10 @@ touch %{buildroot}%{_sysconfdir}/zipl.conf # install systemd sysusers and tmpfiles mkdir -p %{buildroot}{%{_sysusersdir},%{_tmpfilesdir}}/ for f in s390utils-*.conf.usr; do - install -p $f %{buildroot}%{_sysusersdir}/$(basename -s .usr $f) + install -p -m 644 $f %{buildroot}%{_sysusersdir}/$(basename -s .usr $f) done for f in s390utils-*.conf.tmp; do - install -p $f %{buildroot}%{_tmpfilesdir}/$(basename -s .tmp $f) + install -p -m 644 $f %{buildroot}%{_tmpfilesdir}/$(basename -s .tmp $f) done %endif @@ -331,6 +332,7 @@ License: MIT Summary: S390 core tools Provides: s390-tools-core = %{epoch}:%{version}-%{release} Requires: coreutils +Requires: makedumpfile %{?systemd_requires} # BRs are covered via the base package @@ -406,6 +408,7 @@ This package provides minimal set of tools needed to system to boot. %{_udevrulesdir}/56-dasd.rules %{_udevrulesdir}/56-zfcp.rules %{_udevrulesdir}/59-dasd.rules +%{_udevrulesdir}/59-virtio-blk.rules %{_udevrulesdir}/60-readahead.rules %{_udevrulesdir}/81-ccw.rules %{_udevrulesdir}/81-dpm.rules @@ -639,9 +642,9 @@ For more information refer to the following publications: %{_bindir}/cpacfinfo %{_bindir}/dump2tar %{_bindir}/genprotimg +%{_bindir}/mk-s390image %{_bindir}/pvapconfig %{_bindir}/pvimg -%{_bindir}/mk-s390image %{_bindir}/pvattest %{_bindir}/pvextract-hdr %{_bindir}/pvsecret @@ -674,6 +677,7 @@ For more information refer to the following publications: %{_mandir}/man1/cpacfinfo.1* %{_mandir}/man1/dump2tar.1* %{_mandir}/man1/genprotimg.1* +%{_mandir}/man1/mk-s390image.1* %{_mandir}/man1/pvapconfig.1* %{_mandir}/man1/pvattest.1* %{_mandir}/man1/pvattest-check.1* @@ -960,6 +964,7 @@ fi %{_mandir}/man1/ts-shell.1* %{_mandir}/man7/af_iucv.7* %{_mandir}/man8/chiucvallow.8* +%{_mandir}/man8/lsiucvallow.8* %{_mandir}/man9/hvc_iucv.9* %{_unitdir}/iucvtty-login@.service %{_unitdir}/ttyrun-getty@.service @@ -1124,6 +1129,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Thu Nov 13 2025 Dan Horák - 2:2.39.0-1 +- rebased to 2.39.0 (rhbz#2403755) + * Fri Jul 25 2025 Fedora Release Engineering - 2:2.38.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild diff --git a/sources b/sources index 16b71cb..17deb64 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (s390-tools-2.38.0.tar.gz) = 9ca9393e9deeab5c1df5e9eaa3c12e340917ffd5fe07d9a09087d6488d8e2ec0a136805650830d128595854b818a1da94151003e15954e556ba373b226a7369e -SHA512 (s390-tools-2.38.0-rust-vendor.tar.xz) = c55d2870ad9f90333de2536e7921951185746f0972d5d488bf317b56e754525e4dbd0f63d547229197199b51d41b7032172b6ba7ffacd9a96a01dbd13b9c4d9e +SHA512 (s390-tools-2.39.0.tar.gz) = ee9447f28f0cc43b4eba8110879174372a4ed85e2e53c3500e02723275c0aee01fd4913558ef3eaa62be40a0f5e634c3eb59587150e809fe14e8b4794e340ac7 +SHA512 (s390-tools-2.39.0-rust-vendor.tar.xz) = eb0cd352e8d3721ba52f79968494e72fc99b5655bbd34c359dfb98d81748a367d87854c799e5d7e88d9fef5209ce0cc5e91286a8259e3fef90e0e53a7b195a20 From 020fb911109c1775c45bf2f59034168197599f81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 6 Jan 2026 18:13:01 +0000 Subject: [PATCH 82/84] - rebased to 2.40.0 (rhbz#2421447) --- s390utils.spec | 13 +++++++++++-- sources | 4 ++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/s390utils.spec b/s390utils.spec index 026c593..6a85b8c 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -16,7 +16,7 @@ Name: s390utils Summary: Utilities and daemons for IBM z Systems -Version: 2.39.0 +Version: 2.40.0 Release: 1%{?dist} Epoch: 2 # MIT covers nearly all the files, except init files (LGPL-2.1-or-later) @@ -74,7 +74,7 @@ Patch0: s390-tools-zipl-invert-script-options.patch Patch1: s390-tools-zipl-blscfg-rpm-nvr-sort.patch # upstream fixes/updates -Patch100: s390utils-%%{version}-fedora.patch +#Patch100: s390utils-%%{version}-fedora.patch # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} @@ -288,7 +288,9 @@ done %{_bindir}/pvattest %{_bindir}/pvextract-hdr %{_bindir}/pvimg +%{_bindir}/pvinfo %{_bindir}/pvsecret +%{_bindir}/pvverify %{_mandir}/man1/genprotimg.1* %{_mandir}/man1/pvattest.1* %{_mandir}/man1/pvattest-check.1* @@ -310,6 +312,7 @@ done %{_mandir}/man1/pvsecret-retrieve.1* %{_mandir}/man1/pvsecret-verify.1* %{_mandir}/man1/pvsecret.1* +%{_mandir}/man1/pvverify.1* %dir %{_datadir}/s390-tools %{_datadir}/s390-tools/pvimg/ %{bash_completions_dir}/*.bash @@ -645,9 +648,11 @@ For more information refer to the following publications: %{_bindir}/mk-s390image %{_bindir}/pvapconfig %{_bindir}/pvimg +%{_bindir}/pvinfo %{_bindir}/pvattest %{_bindir}/pvextract-hdr %{_bindir}/pvsecret +%{_bindir}/pvverify %{_bindir}/zkey %{_bindir}/zkey-cryptsetup %{_bindir}/zpwr @@ -699,6 +704,7 @@ For more information refer to the following publications: %{_mandir}/man1/pvsecret-retrieve.1* %{_mandir}/man1/pvsecret-verify.1* %{_mandir}/man1/pvsecret.1* +%{_mandir}/man1/pvverify.1* %{_mandir}/man1/zkey.1* %{_mandir}/man1/zkey-cryptsetup.1* %{_mandir}/man1/zkey-ekmfweb.1* @@ -1129,6 +1135,9 @@ User-space development files for the s390/s390x architecture. %changelog +* Tue Jan 06 2026 Dan Horák - 2:2.40.0-1 +- rebased to 2.40.0 (rhbz#2421447) + * Thu Nov 13 2025 Dan Horák - 2:2.39.0-1 - rebased to 2.39.0 (rhbz#2403755) diff --git a/sources b/sources index 17deb64..8572938 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (s390-tools-2.39.0.tar.gz) = ee9447f28f0cc43b4eba8110879174372a4ed85e2e53c3500e02723275c0aee01fd4913558ef3eaa62be40a0f5e634c3eb59587150e809fe14e8b4794e340ac7 -SHA512 (s390-tools-2.39.0-rust-vendor.tar.xz) = eb0cd352e8d3721ba52f79968494e72fc99b5655bbd34c359dfb98d81748a367d87854c799e5d7e88d9fef5209ce0cc5e91286a8259e3fef90e0e53a7b195a20 +SHA512 (s390-tools-2.40.0.tar.gz) = 1943429581b280bf9ea370da3700a234d509837cb45b2354cdf79b38db87d2183010d18d9132defd77b9d8e11b7e002c447ffd7c912e20a50da4cb6877758c0e +SHA512 (s390-tools-2.40.0-rust-vendor.tar.xz) = fd1894c4e950a3c51054432731a3aeef4318e794aa4af2dc5fed31da16dce2020f014a64241e44766fb40b0fd6c1ac5943366e38dcfebf264875220ecf1285b5 From 1e19416b2bce1f3042d9ca4f98025fd909007f1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 6 Jan 2026 19:31:58 +0100 Subject: [PATCH 83/84] drop outdated patch and add new placeholder one --- s390utils-2.39.0-fedora.patch | 63 ----------------------------------- s390utils-2.40.0-fedora.patch | 0 2 files changed, 63 deletions(-) delete mode 100644 s390utils-2.39.0-fedora.patch create mode 100644 s390utils-2.40.0-fedora.patch diff --git a/s390utils-2.39.0-fedora.patch b/s390utils-2.39.0-fedora.patch deleted file mode 100644 index f6f0d44..0000000 --- a/s390utils-2.39.0-fedora.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 6bf9a8579cc184e64ab54e08073280ad005d50f6 Mon Sep 17 00:00:00 2001 -From: Peter Jin -Date: Wed, 1 Oct 2025 15:02:10 -0400 -Subject: [PATCH 1/2] udev/rules.d: make virtio-blk devices non-rotational -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Performance measurements turned out that in certain situations the -paging/swap logic turns on the rotational feature for block devices. In the -past, this feature has been disabled for DASD devices. FCP and NVMe devices -are considered non-rotational by default (or exposed by the storage server). -Because those are the backing devices on Linux on Z/LinuxONE instances, -ensure that virtio-blk devices are always non-rotational. - -Signed-off-by: Peter Jin -Signed-off-by: Jan Höppner -(cherry picked from commit 82f8c137e1881577d89309223f6d459361c671dd) ---- - etc/udev/rules.d/59-virtio-blk.rules | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 etc/udev/rules.d/59-virtio-blk.rules - -diff --git a/etc/udev/rules.d/59-virtio-blk.rules b/etc/udev/rules.d/59-virtio-blk.rules -new file mode 100644 -index 00000000..2e3c13f7 ---- /dev/null -+++ b/etc/udev/rules.d/59-virtio-blk.rules -@@ -0,0 +1 @@ -+SUBSYSTEM=="block", ACTION=="add", KERNEL=="vd*[!0-9]", TEST=="queue/rotational", ATTR{queue/rotational}="0" --- -2.51.1 - - -From 6e854376073b2907301310b1110f1fc6e02f0dc5 Mon Sep 17 00:00:00 2001 -From: Peter Jin -Date: Wed, 1 Oct 2025 15:09:49 -0400 -Subject: [PATCH 2/2] udev/rules.d: Set default io scheduler to 'none' for - virtio-blk -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Use 'none' as default io scheduler for virtio-blk devices. Performance -improvements for multi-queue setups and to reduce CPU consumption. - -Signed-off-by: Peter Jin -Signed-off-by: Jan Höppner -(cherry picked from commit 6ee5ffef91cb4157079fecb89bf42aa41e81e801) ---- - etc/udev/rules.d/59-virtio-blk.rules | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/etc/udev/rules.d/59-virtio-blk.rules b/etc/udev/rules.d/59-virtio-blk.rules -index 2e3c13f7..ca6e1c4d 100644 ---- a/etc/udev/rules.d/59-virtio-blk.rules -+++ b/etc/udev/rules.d/59-virtio-blk.rules -@@ -1 +1,2 @@ - SUBSYSTEM=="block", ACTION=="add", KERNEL=="vd*[!0-9]", TEST=="queue/rotational", ATTR{queue/rotational}="0" -+SUBSYSTEM=="block", ACTION=="add", KERNEL=="vd*[!0-9]", TEST=="queue/scheduler", ATTR{queue/scheduler}="none" --- -2.51.1 - diff --git a/s390utils-2.40.0-fedora.patch b/s390utils-2.40.0-fedora.patch new file mode 100644 index 0000000..e69de29 From 44975e04d93d0818ecac033a2e833404de693091 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 6 Jan 2026 19:41:55 +0100 Subject: [PATCH 84/84] update filelist for multi-arch builds --- s390utils.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/s390utils.spec b/s390utils.spec index 6a85b8c..7da6a02 100644 --- a/s390utils.spec +++ b/s390utils.spec @@ -288,7 +288,6 @@ done %{_bindir}/pvattest %{_bindir}/pvextract-hdr %{_bindir}/pvimg -%{_bindir}/pvinfo %{_bindir}/pvsecret %{_bindir}/pvverify %{_mandir}/man1/genprotimg.1* @@ -314,6 +313,7 @@ done %{_mandir}/man1/pvsecret.1* %{_mandir}/man1/pvverify.1* %dir %{_datadir}/s390-tools +%{_datadir}/s390-tools/netboot/ %{_datadir}/s390-tools/pvimg/ %{bash_completions_dir}/*.bash %{zsh_completions_dir}/_*