- rebased to 2.33.1 (RHEL-23874)

- Resolves: RHEL-23874
This commit is contained in:
Dan Horák 2024-07-16 11:12:46 +02:00
parent c7efb4bdb5
commit 9de89da52c
4 changed files with 362 additions and 10 deletions

311
s390utils-2.33.1-rhel.patch Normal file
View File

@ -0,0 +1,311 @@
From ab26b43985f44b71abf40f8d0e50bfbd0808f8b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20H=C3=B6ppner?= <hoeppner@linux.ibm.com>
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 <bblock@linux.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
Signed-off-by: Steffen Eiden <seiden@linux.ibm.com>
(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 <mhartmay@linux.ibm.com>
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 <edward6@linux.ibm.com>
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Signed-off-by: Steffen Eiden <seiden@linux.ibm.com>
(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, &reg,
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

View File

@ -13,8 +13,8 @@
Name: s390utils
Summary: Utilities and daemons for IBM z Systems
Version: 2.31.0
Release: 2%{?dist}
Version: 2.33.1
Release: 1%{?dist}
Epoch: 2
# MIT covers nearly all the files, except init files
License: MIT AND LGPL-2.1-or-later
@ -47,11 +47,14 @@ 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}-rhel.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
@ -119,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
@ -138,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 \
@ -231,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
@ -268,6 +284,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,11 +379,14 @@ 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
Requires: gawk sed coreutils
Requires: sg3_utils
Provides: s390-tools-base = %{epoch}:%{version}-%{release}
Requires: coreutils
Requires: ethtool
Requires: tar
Requires: file
Requires: gawk
Requires: sed
Requires: sg3_utils
Requires: tar
Requires: s390utils-core = %{epoch}:%{version}-%{release}
Requires: s390utils-se-data = %{epoch}:%{version}-%{release}
%{?systemd_requires}
@ -523,9 +543,14 @@ 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
%{_sbindir}/chpstat
%{_sbindir}/chshut
%{_sbindir}/chzcrypt
%{_sbindir}/dasdstat
@ -623,6 +648,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*
@ -678,6 +704,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 +719,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 +739,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 +779,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 +809,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 +848,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 +913,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 +934,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 +950,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 +967,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 +1012,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 +1047,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 +1067,10 @@ User-space development files for the s390/s390x architecture.
%changelog
* Tue Jul 16 2024 Dan Horák <dhorak@redhat.com> - 2:2.33.1-1
- rebased to 2.33.1 (RHEL-23874)
- Resolves: RHEL-23874
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 2:2.31.0-2
- Bump release for June 2024 mass rebuild

View File

@ -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.33.1.tar.gz) = 8e5cba1e5264787a2f89b340d4d9372df7cd28ae9fa263dcbc6cbbf460e48c1db167110ff901f35f82e36d0d8c97105acd7167b40d889a829c71b182e175b96c
SHA512 (s390-tools-2.33.1-rust-vendor.tar.xz) = 12b0d3af1eba223b63028b5fec85ff4cc79ec646671e56d4c3606b0b4a9d3f79469dc860141ff86e9a0fd2bc1d54f32f2588615997a9865adbe20a110237b98d