forked from pool/s390-tools
Accepting request 931286 from Base:System
- Upgraded to version 2.19.0 (jsc#SLE-18324) * v2.19.0 (2021-11-10)__ Add new tools / libraries: - chreipl-fcp-mpath: New toolset that uses multipath information to change the configured FCP re-IPL path on detecting issues with the current path Changes of existing tools: - dbginfo.sh: Add retry timeout and remove possible blocking "blockdev --report" - dbginfo.sh: Collect config- and debug-data for chreipl-fcp-mpath - hsci: Add support for multiple MAC addresses Bug Fixes: - lshwc: Fix compile error for gcc <8.1 - zdump: Various clean-ups and fixes - ziomon: Correct throughput calculation in ziorep_printers - zipl: Fix segmentation fault when setting stage3_parms * v2.18.0 (2021-10-01)__ Add new tools: - scripts: Add tool for parsing sclp s390dbf logs - zdev: Add udev rule helper tool - zipl-editenv: Add tool to operate with zIPL environment installed in the boot record Changes of existing tools: - Makefile: Fix order of build of libraries for parallel builds - dbginfo.sh: Add collection in area of timedate, coredump and --check option - dbginfo.sh: Add exception on dump2tar for /sys/kernel/mm/page_idle/bitmap - dbginfo.sh: Cleanup of outdated sections and general code rework - dbginfo.sh: Collect zipl boot menu entries from boot loader specification - lszcrypt: Add support for vfio-ap status field - lszcrypt: Improved output for deconfig cards and queues - lszfcp: Add linkdown case to host marker of extended output - zdev: Add auto-config for PCI and crypto devices - zdump: Introduce multi-level message logging - zipl: Add support for environment block interpretation - zkey-cryptsetup: Support LUKS2 volumes with integrity support enabled Bug Fixes: - hsavmcore: Avoid recompilation of overlay during install step - libkmipclient: Fix parsing of hex values for XML and JSON encoding - vmur/vmur.cpp: Fix error handling on transfer failure - zdump: Lots of smaller fixes across the board * v2.17.0 (2021-07-07)__ Add new tools / libraries: - hsavmcore: New utility to make the dump process with kdump more efficient - libkmipclient: Add KMIP client shared library - libseckey: Add a secure key library - lshwc: New tool to extract and list complete counter sets Changes of existing tools: - genprotimg: Add '--(enable|disable)-pckmo' options - genprotimg: Add OpenSSL 3.0 support - genprotimg: Change plaintext control flags defaults so PCKMO functions are allowed - libutil: Introduce multi-level message logging (util_log) - libutil: Introduce util_arch module - udev/dasd: Change DASD udev-rule to set none scheduler - zdsfs: Add transparent codepage conversion - zkey: Add support for KMIP-based key management systems Bug Fixes: - ttyrun-getty: Avoid conflicts with serial-getty@ - dbginfo: add /proc/kallsyms - refresh zVM, lscpu - fix WORKARCHIVE handling - dbginfo: add KVM data collection for server and guest - fix lszdev - genprotimg: Add missing return values in error paths - zkey: Fix conversion of CCA DATA keys to CCA CIPHER keys - znetconf: avoid conflict with "chzdev -e" * v2.16.0 (2021-02-19)__ Add new tool: - hsci: New tool to manage HSCI (HiperSockets Converged Interfaces) Changes of existing tools: - genprotimg: Add host-key document verification support - genprotimg: boot: Make boot loader -march=z900 compatible - libekmfweb: Make install directory for shared libraries configurable - lsdasd: Add FC Endpoint Security information - make: Add address sanitizer support - netboot: Add version information to scripts - netboot: Bump busybox version in pxelinux.0 build - zdev: Add FC Endpoint Security information for DASD devices - zdev: Add build option to update initial RAM-disk by default - zkey-ekmfweb: Avoid sequence number clash when generating keys - zkey/zkey-ekmfweb: Install KMS plugins into configurable location - zkey: Add support to store LUKS2 dummy passphrase in key repository Bug Fixes: - dasdfmt: Fix segfault when an incorrect option is specified - genprotimg: Fix several build issues - genprotimg: Require argument for 'ramdisk' and 'parmfile' options - zcryptstats: Fix handling of partial results with many domains - zfcpdbf: Deal with crash 7.2.9 change in caller name formatting - zipl/boot: Fix memory use after free in stage2 - zipl/boot: Fix potential heap overflow in stage2 - zipl: Fix reading 4k disk's geometry - Removed the following obsolete patches * s390-tools-sles15sp3-dasdfmt-Fix-segfault-when-an-incorrect-option-is-spe.patch * s390-tools-sles15sp3-libutil-Compare-proc-entries-to-vfstype.patch * s390-tools-sles15sp3-01-zdev-Add-FC-Endpoint-Security-information-for-DASD-d.patch * s390-tools-sles15sp3-02-lsdasd-Add-FC-Endpoint-Security-information.patch * s390-tools-sles15sp3-hsci-Add-new-tool-to-control-HiperSockets-Converged-.patch * s390-tools-sles15sp3-zcryptstats-Fix-handling-of-partial-results-with-man.patch * s390-tools-sles15sp3-01-genprotimg-abort-if-one-of-the-recursive-targets-is-.patch * s390-tools-sles15sp3-02-genprotimg-fix-two-memory-leaks.patch * s390-tools-sles15sp3-03-genprotimg-require-argument-for-ramdisk-and-parmfile.patch * s390-tools-sles15sp3-04-genprotimg-add-host-key-document-verification-suppor.patch * s390-tools-sles15sp3-zkey-Fix-APQN-property-names.patch * s390-tools-sles15sp3-zipl-fix-4k-scsi-ipl.patch * s390-tools-sles15sp3-dasd-change-DASD-udev-rule-to-set-none-scheduler.patch * s390-tools-sles15sp3-check-return-code-from-util_file_read_l.patch - Removed an obsolete "export ROOT_BUILD_DIR" statement from the spec file. - Removed unnecessary defattr statements in the files section. - Updated the spec file to correspond to the changes made to the location and name of the kernel image in the kernel-zfcpdump package (bsc#1189841) - Did some spec file cleanup based on the recommendations from spec-cleaner. OBS-URL: https://build.opensuse.org/request/show/931286 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/s390-tools?expand=0&rev=41
This commit is contained in:
commit
cb493329ea
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8dc1180031018756ccd5acf6c26c4175bcac79e512e8a2ea8569fdf5d3f9bd6c
|
||||
size 1390556
|
3
s390-tools-2.19.0.tar.gz
Normal file
3
s390-tools-2.19.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:17dc163e6a1e940f895c64955c130058600e1df834e1ab134410be7266ef724a
|
||||
size 1681093
|
@ -27,7 +27,7 @@ index 4503d3e..f04dc3d 100644
|
||||
if (!anc->silent)
|
||||
printf("rereading partition table...\n");
|
||||
|
||||
- if (dasd_reread_partition_table(options.device, 1) != 0) {
|
||||
- if (dasd_reread_partition_table(options.device, 5) != 0) {
|
||||
+ rc = dasd_reread_partition_table(options.device, 1);
|
||||
+ if (rc == EINVAL && !anc->force_virtual) {
|
||||
fdasd_error(anc, unable_to_ioctl, "Error while rereading "
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- s390-tools-1.24.1/zipl/boot/menu.c 2013-12-18 11:11:45.000000000 -0500
|
||||
+++ s390-tools-1.24.1/zipl/boot/menu.c 2013-12-18 11:59:18.000000000 -0500
|
||||
@@ -167,8 +167,11 @@
|
||||
@@ -168,8 +168,11 @@
|
||||
/* print config list */
|
||||
menu_list();
|
||||
|
||||
|
@ -1,38 +0,0 @@
|
||||
Subject: [PATCH] [FEAT VS2010] genprotimg: abort if one of the recursive targets is failing
|
||||
From: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
|
||||
Summary: genprotimg: add host-key document verification
|
||||
Description: Add host-key document verification support to genprotimg. This
|
||||
ensures that a host-key document is genuine and provided by
|
||||
IBM. For this the user must provide the IBM Z signing key, the
|
||||
intermediate CA certificate (signed by the root CA used) so a
|
||||
chain of trust starting from the host-key document and ending in
|
||||
the root CA can be established.
|
||||
Upstream-ID: 6db7fbe0187042f44a63a5c7dbeb9f116909d02e
|
||||
Problem-ID: VS2010
|
||||
|
||||
Upstream-Description:
|
||||
|
||||
genprotimg: abort if one of the recursive targets is failing
|
||||
|
||||
Abort compilation as soon as one of the recursive targets is failing.
|
||||
|
||||
Fixes: 65b9fc442c1a ("genprotimg: introduce new tool for the creation of PV images")
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
|
||||
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Index: s390-tools-service/genprotimg/Makefile
|
||||
===================================================================
|
||||
--- s390-tools-service.orig/genprotimg/Makefile
|
||||
+++ s390-tools-service/genprotimg/Makefile
|
||||
@@ -21,7 +21,7 @@ clean: clean-recursive
|
||||
$(RECURSIVE_TARGETS):
|
||||
@target=`echo $@ |sed s/-recursive//`; \
|
||||
for d in $(SUBDIRS); do \
|
||||
- $(MAKE) -C $$d $$target; \
|
||||
+ $(MAKE) -C $$d $$target || exit 1; \
|
||||
done
|
||||
|
||||
.PHONY: all install clean $(RECURSIVE_TARGETS)
|
@ -1,47 +0,0 @@
|
||||
Subject: [PATCH] [FEAT IO1812] zdev/lsdasd: Add FC Endpoint Security information
|
||||
From: Jan Hoeppner <hoeppner@linux.ibm.com>
|
||||
|
||||
Summary: zdev/lsdasd: Add FC Endpoint Security information
|
||||
Description: Provide the status of the FC Endpoint Security information via the
|
||||
long output of lsdasd for online Base and Alias devices.
|
||||
Upstream-ID: -
|
||||
Problem-ID: IO1812
|
||||
|
||||
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
|
||||
---
|
||||
zdev/src/dasd.c | 17 +++++++++++++++++
|
||||
1 file changed, 17 insertions(+)
|
||||
|
||||
--- a/zdev/src/dasd.c
|
||||
+++ b/zdev/src/dasd.c
|
||||
@@ -313,6 +313,22 @@ static struct attrib dasd_attr_safe_offl
|
||||
.writeonly = 1,
|
||||
};
|
||||
|
||||
+static struct attrib dasd_attr_fc_security = {
|
||||
+ .name = "fc_security",
|
||||
+ .title = "Show FC Endpoint Security state of DASD device",
|
||||
+ .desc =
|
||||
+ "This read-only attribute shows the Fibre Channel Endpoint Security\n"
|
||||
+ "status of the connection to the DASD device:\n"
|
||||
+ " Unsupported : The DASD device does not support Fibre Channel\n"
|
||||
+ " Endpoint Security\n"
|
||||
+ " Inconsistent : The operational channel paths of the DASD device\n"
|
||||
+ " report inconsistent Fibre Channel Endpoint\n"
|
||||
+ " Security status\n"
|
||||
+ " Authentication: The connection has been authenticated\n"
|
||||
+ " Encryption : The connection is encrypted\n",
|
||||
+ .readonly = 1,
|
||||
+};
|
||||
+
|
||||
/*
|
||||
* DASD subtype methods.
|
||||
*/
|
||||
@@ -617,6 +633,7 @@ struct subtype dasd_subtype_eckd = {
|
||||
&dasd_attr_reservation_policy,
|
||||
&dasd_attr_last_known_reservation_state,
|
||||
&dasd_attr_safe_offline,
|
||||
+ &dasd_attr_fc_security,
|
||||
&internal_attr_early,
|
||||
),
|
||||
.unknown_dev_attribs = 1,
|
@ -1,56 +0,0 @@
|
||||
Subject: [PATCH] [FEAT VS2010] genprotimg: fix two memory leaks
|
||||
From: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
|
||||
Summary: genprotimg: add host-key document verification
|
||||
Description: Add host-key document verification support to genprotimg. This
|
||||
ensures that a host-key document is genuine and provided by
|
||||
IBM. For this the user must provide the IBM Z signing key, the
|
||||
intermediate CA certificate (signed by the root CA used) so a
|
||||
chain of trust starting from the host-key document and ending in
|
||||
the root CA can be established.
|
||||
Upstream-ID: db6f272607842a6279fee589fb101f3a1f6148f3
|
||||
Problem-ID: VS2010
|
||||
|
||||
Upstream-Description:
|
||||
|
||||
genprotimg: fix two memory leaks
|
||||
|
||||
==1005844== HEAP SUMMARY:
|
||||
==1005844== in use at exit: 18,907 bytes in 14 blocks
|
||||
==1005844== total heap usage: 82 allocs, 68 frees, 32,529 bytes allocated
|
||||
==1005844==
|
||||
==1005844== 136 (104 direct, 32 indirect) bytes in 1 blocks are definitely lost in loss record 12 of 14
|
||||
==1005844== at 0x483885A: calloc (vg_replace_malloc.c:760)
|
||||
==1005844== by 0x48C950D: g_malloc0 (gmem.c:132)
|
||||
==1005844== by 0x100EC41: pv_args_new (pv_args.c:364)
|
||||
==1005844== by 0x100587F: main (genprotimg.c:122)
|
||||
==1005844==
|
||||
==1005844== LEAK SUMMARY:
|
||||
==1005844== definitely lost: 104 bytes in 1 blocks
|
||||
==1005844== indirectly lost: 32 bytes in 1 blocks
|
||||
==1005844== possibly lost: 0 bytes in 0 blocks
|
||||
==1005844== still reachable: 18,771 bytes in 12 blocks
|
||||
==1005844== suppressed: 0 bytes in 0 blocks
|
||||
==1005844== Reachable blocks (those to which a pointer was found) are not shown.
|
||||
==1005844== To see them, rerun with: --leak-check=full --show-leak-kinds=all
|
||||
==1005844==
|
||||
==1005844== For lists of detected and suppressed errors, rerun with: -s
|
||||
==1005844== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
|
||||
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Index: s390-tools-service/genprotimg/src/genprotimg.c
|
||||
===================================================================
|
||||
--- s390-tools-service.orig/genprotimg/src/genprotimg.c
|
||||
+++ s390-tools-service/genprotimg/src/genprotimg.c
|
||||
@@ -177,5 +177,7 @@ error:
|
||||
rmdir_recursive(tmp_dir, NULL);
|
||||
remove_signal_handler(signals, G_N_ELEMENTS(signals));
|
||||
g_free(tmp_dir);
|
||||
+ g_clear_pointer(&img, pv_img_free);
|
||||
+ g_clear_pointer(&args, pv_args_free);
|
||||
exit(ret);
|
||||
}
|
@ -1,58 +0,0 @@
|
||||
Subject: [PATCH] [FEAT IO1812] zdev/lsdasd: Add FC Endpoint Security information
|
||||
From: Jan Hoeppner <hoeppner@linux.ibm.com>
|
||||
|
||||
Summary: zdev/lsdasd: Add FC Endpoint Security information
|
||||
Description: Provide the status of the FC Endpoint Security information via the
|
||||
long output of lsdasd for online Base and Alias devices.
|
||||
Upstream-ID: -
|
||||
Problem-ID: IO1812
|
||||
|
||||
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
|
||||
---
|
||||
zconf/lsdasd | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/zconf/lsdasd
|
||||
+++ b/zconf/lsdasd
|
||||
@@ -387,6 +387,7 @@ function extended()
|
||||
read EXTSZ 2> /dev/null < $DEVPATH/extent_pool/extent_size
|
||||
read CAPACITY 2> /dev/null < $DEVPATH/capacity/logical_capacity
|
||||
read ALLOCATED 2> /dev/null < $DEVPATH/capacity/space_allocated
|
||||
+ read FC_SEC 2> /dev/null < $DEVPATH/fc_security
|
||||
|
||||
# convert to hexadecimal values
|
||||
PIM=0x$PIM
|
||||
@@ -521,7 +522,7 @@ function extended()
|
||||
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# 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# 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" \
|
||||
"$SORTKEYLEN" "$SORTKEY" \
|
||||
"$BUSID" \
|
||||
"$ACTIVE" \
|
||||
@@ -532,6 +533,7 @@ function extended()
|
||||
"$ERP" \
|
||||
"$HPF" \
|
||||
"$DEV_UID" \
|
||||
+ "$FC_SEC" \
|
||||
"${INSTALLED_PATHS[@]}" \
|
||||
"${USED_PATHS[@]}" \
|
||||
"${NP_PATHS[@]}" \
|
||||
@@ -563,7 +565,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# 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#\n" \
|
||||
"$SORTKEYLEN" "$SORTKEY" \
|
||||
"$BUSID" \
|
||||
"$BLOCKNAME" \
|
||||
@@ -584,6 +586,7 @@ function extended()
|
||||
"$ERP" \
|
||||
"$HPF" \
|
||||
"$DEV_UID" \
|
||||
+ "$FC_SEC" \
|
||||
"${INSTALLED_PATHS[@]}" \
|
||||
"${USED_PATHS[@]}" \
|
||||
"${NP_PATHS[@]}" \
|
@ -1,49 +0,0 @@
|
||||
Subject: [PATCH] [FEAT VS2010] genprotimg: require argument for 'ramdisk' and 'parmfile' options
|
||||
From: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
|
||||
Summary: genprotimg: add host-key document verification
|
||||
Description: Add host-key document verification support to genprotimg. This
|
||||
ensures that a host-key document is genuine and provided by
|
||||
IBM. For this the user must provide the IBM Z signing key, the
|
||||
intermediate CA certificate (signed by the root CA used) so a
|
||||
chain of trust starting from the host-key document and ending in
|
||||
the root CA can be established.
|
||||
Upstream-ID: 895a88b2f8d775e45ab1251f0b4bb275efd44a64
|
||||
Problem-ID: VS2010
|
||||
|
||||
Upstream-Description:
|
||||
|
||||
genprotimg: require argument for 'ramdisk' and 'parmfile' options
|
||||
|
||||
A argument is required for the optional options 'ramdisk' and
|
||||
'parmfile'.
|
||||
|
||||
Fixes: 65b9fc442c1a ("genprotimg: introduce new tool for the creation of PV images")
|
||||
Reviewed-by: Bjoern Walk <bwalk@linux.ibm.com>
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
|
||||
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Index: s390-tools-service/genprotimg/src/pv/pv_args.c
|
||||
===================================================================
|
||||
--- s390-tools-service.orig/genprotimg/src/pv/pv_args.c
|
||||
+++ s390-tools-service/genprotimg/src/pv/pv_args.c
|
||||
@@ -227,7 +227,7 @@ gint pv_args_parse_options(PvArgs *args,
|
||||
.arg_description = _("IMAGE") },
|
||||
{ .long_name = "ramdisk",
|
||||
.short_name = 'r',
|
||||
- .flags = G_OPTION_FLAG_OPTIONAL_ARG | G_OPTION_FLAG_FILENAME,
|
||||
+ .flags = G_OPTION_FLAG_FILENAME,
|
||||
.arg = G_OPTION_ARG_CALLBACK,
|
||||
.arg_data = cb_add_component,
|
||||
.description = _("Use RAMDISK as the initial RAM disk\n" INDENT
|
||||
@@ -235,7 +235,7 @@ gint pv_args_parse_options(PvArgs *args,
|
||||
.arg_description = _("RAMDISK") },
|
||||
{ .long_name = "parmfile",
|
||||
.short_name = 'p',
|
||||
- .flags = G_OPTION_FLAG_OPTIONAL_ARG | G_OPTION_FLAG_FILENAME,
|
||||
+ .flags = G_OPTION_FLAG_FILENAME,
|
||||
.arg = G_OPTION_ARG_CALLBACK,
|
||||
.arg_data = cb_add_component,
|
||||
.description = _("Use the kernel parameters stored in PARMFILE\n" INDENT
|
File diff suppressed because it is too large
Load Diff
@ -63,7 +63,7 @@ index e7fc501..07c674b 100644
|
||||
|
||||
#include "lib/dasd_base.h"
|
||||
#include "lib/dasd_sys.h"
|
||||
@@ -81,6 +82,7 @@
|
||||
@@ -81,6 +82,7 @@ static struct dasdfmt_globals {
|
||||
int mode_specified;
|
||||
int ese;
|
||||
int no_discard;
|
||||
@ -71,7 +71,7 @@ index e7fc501..07c674b 100644
|
||||
} g = {
|
||||
.dasd_info = { 0 },
|
||||
};
|
||||
@@ -105,6 +107,11 @@
|
||||
@@ -105,6 +107,11 @@ static struct util_opt opt_vec[] = {
|
||||
.desc = "Perform complete format check on device",
|
||||
.flags = UTIL_OPT_FLAG_NOSHORT,
|
||||
},
|
||||
@ -83,7 +83,7 @@ index e7fc501..07c674b 100644
|
||||
UTIL_OPT_SECTION("FORMAT OPTIONS"),
|
||||
{
|
||||
.option = { "blocksize", required_argument, NULL, 'b' },
|
||||
@@ -162,7 +170,7 @@
|
||||
@@ -162,7 +169,7 @@ static struct util_opt opt_vec[] = {
|
||||
.desc = "Show a progressbar",
|
||||
},
|
||||
{
|
||||
@ -92,16 +92,7 @@ index e7fc501..07c674b 100644
|
||||
.desc = "Show progress in percent",
|
||||
},
|
||||
UTIL_OPT_SECTION("MISC"),
|
||||
@@ -297,7 +305,7 @@
|
||||
p_old = p_new;
|
||||
barlength = cyl * 33 / cylinders;
|
||||
for (i = 1; i <= barlength; i++)
|
||||
- printf("#");
|
||||
+ printf("%d|", g.procnum);
|
||||
for (i = barlength + 1; i <= 33; i++)
|
||||
printf("-");
|
||||
printf("|%3d%%", p_new);
|
||||
@@ -311,7 +318,7 @@
|
||||
@@ -311,7 +318,7 @@ static void draw_progress(int cyl, unsig
|
||||
}
|
||||
|
||||
if (g.print_hashmarks && (cyl / g.hashstep - hashcount) != 0) {
|
||||
@ -110,7 +101,7 @@ index e7fc501..07c674b 100644
|
||||
fflush(stdout);
|
||||
hashcount++;
|
||||
}
|
||||
@@ -1560,7 +1568,11 @@
|
||||
@@ -1560,7 +1567,11 @@ int main(int argc, char *argv[])
|
||||
char *reqsize_param_str = NULL;
|
||||
char *hashstep_str = NULL;
|
||||
|
||||
@ -123,7 +114,7 @@ index e7fc501..07c674b 100644
|
||||
|
||||
/* Establish a handler for interrupt signals. */
|
||||
signal(SIGTERM, program_interrupt_signal);
|
||||
@@ -1623,7 +1635,7 @@
|
||||
@@ -1623,7 +1634,7 @@ int main(int argc, char *argv[])
|
||||
g.print_hashmarks = 1;
|
||||
}
|
||||
break;
|
||||
@ -132,7 +123,7 @@ index e7fc501..07c674b 100644
|
||||
if (!(g.print_hashmarks || g.print_progressbar))
|
||||
g.print_percentage = 1;
|
||||
break;
|
||||
@@ -1682,6 +1694,9 @@
|
||||
@@ -1682,6 +1693,9 @@ int main(int argc, char *argv[])
|
||||
case OPT_NODISCARD:
|
||||
g.no_discard = 1;
|
||||
break;
|
||||
@ -142,7 +133,7 @@ index e7fc501..07c674b 100644
|
||||
case OPT_CHECK:
|
||||
g.check = 1;
|
||||
break;
|
||||
@@ -1733,15 +1748,35 @@
|
||||
@@ -1733,15 +1747,35 @@ int main(int argc, char *argv[])
|
||||
if (numdev > 1 && g.labelspec)
|
||||
error("Specifying a volser to be written doesn't make sense when formatting multiple DASD volumes.");
|
||||
|
||||
|
@ -60,7 +60,18 @@ index 6dd28fa..5b6023a 100644
|
||||
UTIL_OPT_SECTION("MISC"),
|
||||
{
|
||||
.option = { "check_host_count", no_argument, NULL, 'C' },
|
||||
@@ -392,7 +397,7 @@ static void evaluate_format_error(format
|
||||
@@ -318,7 +323,9 @@ static void draw_progress(int cyl, unsig
|
||||
}
|
||||
|
||||
if (g.print_hashmarks && (cyl / g.hashstep - hashcount) != 0) {
|
||||
- printf("%d|", g.procnum);
|
||||
+ if (g.yast_mode)
|
||||
+ printf("%d|", g.procnum);
|
||||
+ else printf("#");
|
||||
fflush(stdout);
|
||||
hashcount++;
|
||||
}
|
||||
@@ -392,7 +399,7 @@ static void evaluate_format_error(format
|
||||
unsigned int kl = 0;
|
||||
int blksize = cdata->expect.blksize;
|
||||
|
||||
@ -69,7 +80,7 @@ index 6dd28fa..5b6023a 100644
|
||||
printf("\n");
|
||||
|
||||
/*
|
||||
@@ -780,8 +785,9 @@ static void check_hashmarks(void)
|
||||
@@ -780,8 +787,9 @@ static void check_hashmarks(void)
|
||||
g.hashstep = 10;
|
||||
}
|
||||
|
||||
@ -81,7 +92,7 @@ index 6dd28fa..5b6023a 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1462,17 +1468,19 @@ static void do_format_dasd(volume_label_
|
||||
@@ -1462,17 +1470,19 @@ static void do_format_dasd(volume_label_
|
||||
break;
|
||||
}
|
||||
|
||||
@ -104,18 +115,45 @@ index 6dd28fa..5b6023a 100644
|
||||
printf("ok\n");
|
||||
}
|
||||
}
|
||||
@@ -1548,6 +1556,10 @@
|
||||
@@ -1548,6 +1558,7 @@ void process_dasd(volume_label_t *orig_v
|
||||
error("%s", str);
|
||||
|
||||
set_geo(&cylinders, &heads);
|
||||
+ if (g.yast_mode) {
|
||||
+ printf("%d\n", cylinders);
|
||||
+ fflush(stdout);
|
||||
+ }
|
||||
+
|
||||
set_label(&vlabel, &format_params, cylinders);
|
||||
|
||||
if (g.check)
|
||||
@@ -1693,6 +1703,10 @@ int main(int argc, char *argv[])
|
||||
@@ -1557,6 +1568,29 @@ void process_dasd(volume_label_t *orig_v
|
||||
|
||||
}
|
||||
|
||||
+static void yast_print_cylinfo(const char *dev_filename)
|
||||
+{
|
||||
+ unsigned int cylinders = -1u;
|
||||
+ int fd;
|
||||
+ dasd_information2_t dasd_info;
|
||||
+ struct dasd_eckd_characteristics *characteristics;
|
||||
+
|
||||
+ fd = open(dev_filename, O_RDONLY);
|
||||
+ if ((fd != -1) && ( ! ioctl(fd, BIODASDINFO2, &dasd_info))) {
|
||||
+
|
||||
+ characteristics = (struct dasd_eckd_characteristics *) &dasd_info.characteristics;
|
||||
+ if (characteristics->no_cyl == LV_COMPAT_CYL && characteristics->long_no_cyl)
|
||||
+ cylinders = characteristics->long_no_cyl;
|
||||
+ else
|
||||
+ cylinders = characteristics->no_cyl;
|
||||
+ }
|
||||
+
|
||||
+ if (fd != -1)
|
||||
+ close(fd);
|
||||
+ printf("%u\n", cylinders);
|
||||
+ fflush(stdout);
|
||||
+}
|
||||
+
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
volume_label_t vlabel;
|
||||
@@ -1693,6 +1727,10 @@ int main(int argc, char *argv[])
|
||||
case OPT_NODISCARD:
|
||||
g.no_discard = 1;
|
||||
break;
|
||||
@ -126,6 +164,41 @@ index 6dd28fa..5b6023a 100644
|
||||
case 'P':
|
||||
max_parallel = atoi(optarg);
|
||||
break;
|
||||
@@ -1728,6 +1766,21 @@ int main(int argc, char *argv[])
|
||||
reqsize = DEFAULT_REQUESTSIZE;
|
||||
}
|
||||
|
||||
+/* If -Y (YaST mode) was specified by the caller, then we need to suppress
|
||||
+ * most of all the other output that might be generated. But, we _do_ want
|
||||
+ * hashmarks printed so that YaST can track what's going on. If it wasn't
|
||||
+ * specified on the command line, set it to a default of 10 cylinders.
|
||||
+ */
|
||||
+ if (g.yast_mode) {
|
||||
+ g.verbosity = 0;
|
||||
+ g.print_progressbar = 0;
|
||||
+ g.print_percentage = 0;
|
||||
+ if (! g.print_hashmarks) {
|
||||
+ g.print_hashmarks = 1;
|
||||
+ hashstep_str = "10";
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (g.print_hashmarks)
|
||||
PARSE_PARAM_INTO(g.hashstep, hashstep_str, 10, "hashstep");
|
||||
|
||||
@@ -1747,6 +1800,12 @@ int main(int argc, char *argv[])
|
||||
if (numdev > 1 && g.labelspec)
|
||||
error("Specifying a volser to be written doesn't make sense when formatting multiple DASD volumes.");
|
||||
|
||||
+ if (g.yast_mode) {
|
||||
+ for (numproc = 0; numproc < numdev; numproc++)
|
||||
+ yast_print_cylinfo(g.dev_path_array[numproc]);
|
||||
+
|
||||
+ }
|
||||
+
|
||||
for (numproc = 0; numproc < numdev; numproc++) {
|
||||
chpid = fork();
|
||||
if (chpid == -1 )
|
||||
--
|
||||
1.7.12.4
|
||||
|
||||
|
@ -52,7 +52,7 @@ index 5b6023a..cdd80df 100644
|
||||
UTIL_OPT_SECTION("FORMAT OPTIONS"),
|
||||
{
|
||||
.option = { "blocksize", required_argument, NULL, 'b' },
|
||||
@@ -1627,6 +1631,12 @@
|
||||
@@ -1649,6 +1653,12 @@
|
||||
}
|
||||
g.layout_specified = 1;
|
||||
break;
|
||||
|
@ -1,12 +0,0 @@
|
||||
--- a/libdasd/dasd_sys.c 2020-10-28 10:31:59.000000000 -0400
|
||||
+++ b/libdasd/dasd_sys.c 2021-02-27 17:41:04.937023501 -0500
|
||||
@@ -218,7 +218,8 @@
|
||||
return 0;
|
||||
|
||||
path = util_path_sysfs("bus/ccw/devices/%s/host_access_count", busid);
|
||||
- util_file_read_l(&value, 10, path);
|
||||
+ if (util_file_read_l(&value, 10, path) == -1)
|
||||
+ value=0;
|
||||
free(path);
|
||||
|
||||
return value;
|
@ -1,52 +0,0 @@
|
||||
Subject: [PATCH] [BZ 192049] udev/dasd: change DASD udev-rule to set none scheduler
|
||||
From: Stefan Haberland <sth@linux.ibm.com>
|
||||
|
||||
Description: dasd: change default scheduler to reduce CPU consumption
|
||||
Symptom: CPU consumption up to 20% higher for mq-deadline
|
||||
compared to none scheduler for DASD devices with no
|
||||
difference in throughput.
|
||||
Problem: Performance analysis showed that with recent DASD
|
||||
device drivers using multi-queue block queuing the
|
||||
throughput of mq-deadline and none scheduler is nearly
|
||||
identical but the CPU consumption of mq-deadline
|
||||
scheduler due to its optimizations is up to 20% higher
|
||||
compared to none scheduler.
|
||||
Solution: Set none scheduler as default in the DASD udev rule.
|
||||
Reproduction: Use DASD devices with mq-deadline scheduler.
|
||||
Upstream-ID: a65bc51cf4e5c1fe628bb182cc1a02ee83eb102d
|
||||
Problem-ID: 192049
|
||||
|
||||
Upstream-Description:
|
||||
|
||||
udev/dasd: change DASD udev-rule to set none scheduler
|
||||
|
||||
Performance evaluation showed that using the mq-deadline scheduler for DASD
|
||||
devices leads to a significantly higher CPU consumption compared to using
|
||||
none scheduler while having the same amount of throughput.
|
||||
Setting none scheduler as default in the dasd udev rule.
|
||||
|
||||
Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
|
||||
Reviewed-by: Jan Hoeppner <hoeppner@linux.ibm.com>
|
||||
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
|
||||
|
||||
|
||||
Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
|
||||
---
|
||||
etc/udev/rules.d/59-dasd.rules | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
--- a/etc/udev/rules.d/59-dasd.rules
|
||||
+++ b/etc/udev/rules.d/59-dasd.rules
|
||||
@@ -26,10 +26,10 @@
|
||||
|
||||
LABEL="dasd_symlinks_end"
|
||||
|
||||
-# on device add set request queue scheduler to deadline
|
||||
+# on device add set request queue scheduler to none
|
||||
SUBSYSTEM!="block", GOTO="sched_end"
|
||||
|
||||
ACTION!="change", GOTO="sched_end"
|
||||
-KERNEL=="dasd*[!0-9]", TEST=="queue/scheduler", ATTR{queue/scheduler}="deadline"
|
||||
+KERNEL=="dasd*[!0-9]", TEST=="queue/scheduler", ATTR{queue/scheduler}="none"
|
||||
|
||||
LABEL="sched_end"
|
@ -1,34 +0,0 @@
|
||||
From 148d3f9b64da599adf453baf65e7a8596e2e7d97 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20H=C3=B6ppner?= <hoeppner@linux.ibm.com>
|
||||
Date: Mon, 2 Nov 2020 09:09:51 +0100
|
||||
Subject: [PATCH] dasdfmt: Fix segfault when an incorrect option is specified
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
When specifying an incorrect program option, dasdfmt segfaults as the
|
||||
format string for the corresponding error message has no parameter.
|
||||
Add the missing parameter to fix this.
|
||||
|
||||
Fixes: 732b3dddab84 ("dasdfmt: Replace ERRMSG_EXIT macro with an error handling function")
|
||||
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
|
||||
---
|
||||
dasdfmt/dasdfmt.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dasdfmt/dasdfmt.c b/dasdfmt/dasdfmt.c
|
||||
index a424f3c..5665f64 100644
|
||||
--- a/dasdfmt/dasdfmt.c
|
||||
+++ b/dasdfmt/dasdfmt.c
|
||||
@@ -1637,7 +1637,7 @@ int main(int argc, char *argv[])
|
||||
/* End of options string - start of devices list */
|
||||
break;
|
||||
default:
|
||||
- error("Try '%s --help' for more information.");
|
||||
+ error("Try '%s --help' for more information.", prog_name);
|
||||
}
|
||||
|
||||
if (rc == -1)
|
||||
--
|
||||
2.26.2
|
||||
|
@ -23,7 +23,7 @@ diff --git a/dasdfmt/dasdfmt.c b/dasdfmt/dasdfmt.c
|
||||
index e1877ac..f03cbad 100644
|
||||
--- a/dasdfmt/dasdfmt.c
|
||||
+++ b/dasdfmt/dasdfmt.c
|
||||
@@ -619,7 +619,7 @@
|
||||
@@ -621,7 +621,7 @@
|
||||
*/
|
||||
static void check_disk(void)
|
||||
{
|
||||
@ -32,7 +32,7 @@ index e1877ac..f03cbad 100644
|
||||
bool ro;
|
||||
|
||||
err = dasd_is_ro(g.dev_node, &ro);
|
||||
@@ -629,6 +629,23 @@
|
||||
@@ -631,6 +631,23 @@
|
||||
if (ro)
|
||||
error("Disk %s is read only!", g.dev_path);
|
||||
if (!g.force) {
|
||||
|
@ -1,633 +0,0 @@
|
||||
From ef090dda8333a778cb2d9e7f65ca8021e2ae9e67 Mon Sep 17 00:00:00 2001
|
||||
From: Karsten Graul <kgraul@linux.ibm.com>
|
||||
Date: Tue, 10 Nov 2020 12:07:03 +0100
|
||||
Subject: [PATCH] hsci: Add new tool to control HiperSockets Converged
|
||||
Interfaces
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
hsci is used to control and show HSCI (HiperSockets Converged Interfaces)
|
||||
settings. A HiperSockets interface and an external network interface are
|
||||
converged to an HSCI interface.
|
||||
|
||||
Signed-off-by: Alexandra Winter <wintera@linux.ibm.com>
|
||||
Signed-off-by: Wenjia Zhang <wenjia@linux.ibm.com>
|
||||
Reviewed-by: Jan Hoeppner <hoeppner@linux.ibm.com>
|
||||
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
|
||||
---
|
||||
Makefile | 2 +-
|
||||
README.md | 3 +
|
||||
hsci/Makefile | 16 ++
|
||||
hsci/hsci | 441 ++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
hsci/hsci.8 | 100 ++++++++++++
|
||||
5 files changed, 561 insertions(+), 1 deletion(-)
|
||||
create mode 100644 hsci/Makefile
|
||||
create mode 100755 hsci/hsci
|
||||
create mode 100644 hsci/hsci.8
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index cc277b8e..cfbbd950 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -9,7 +9,7 @@ TOOL_DIRS = zipl zdump fdasd dasdfmt dasdview tunedasd \
|
||||
vmconvert vmcp man mon_tools dasdinfo vmur cpuplugd ipl_tools \
|
||||
ziomon iucvterm hyptop cmsfs-fuse qethqoat zfcpdump zdsfs cpumf \
|
||||
systemd hmcdrvfs cpacfstats zdev dump2tar zkey netboot etc zpcictl \
|
||||
- genprotimg lsstp
|
||||
+ genprotimg lsstp hsci
|
||||
|
||||
SUB_DIRS = $(LIB_DIRS) $(TOOL_DIRS)
|
||||
|
||||
diff --git a/README.md b/README.md
|
||||
index aa2188a5..581353fd 100644
|
||||
--- a/README.md
|
||||
+++ b/README.md
|
||||
@@ -249,6 +249,9 @@ Package contents
|
||||
Management Foundation - Web Edition, and is used to manage keys in an
|
||||
enterprise.
|
||||
|
||||
+ * hsci:
|
||||
+ Manage HiperSockets Converged Interfaces (HSCI).
|
||||
+
|
||||
For more information refer to the following publications:
|
||||
|
||||
* "Device Drivers, Features, and Commands" chapter "Useful Linux commands"
|
||||
diff --git a/hsci/Makefile b/hsci/Makefile
|
||||
new file mode 100644
|
||||
index 00000000..6f7474c5
|
||||
--- /dev/null
|
||||
+++ b/hsci/Makefile
|
||||
@@ -0,0 +1,16 @@
|
||||
+include ../common.mak
|
||||
+
|
||||
+all:
|
||||
+
|
||||
+install: hsci
|
||||
+ $(SED) -e 's/%S390_TOOLS_VERSION%/$(S390_TOOLS_RELEASE)/' \
|
||||
+ < hsci >$(DESTDIR)$(BINDIR)/hsci; \
|
||||
+ chown $(OWNER).$(GROUP) $(DESTDIR)$(BINDIR)/hsci; \
|
||||
+ chmod 755 $(DESTDIR)$(BINDIR)/hsci; \
|
||||
+ $(INSTALL) -d -m 755 $(DESTDIR)$(BINDIR) $(DESTDIR)$(MANDIR)/man8
|
||||
+ $(INSTALL) -g $(GROUP) -o $(OWNER) -m 644 hsci.8 \
|
||||
+ $(DESTDIR)$(MANDIR)/man8
|
||||
+
|
||||
+clean:
|
||||
+
|
||||
+.PHONY: all install clean
|
||||
diff --git a/hsci/hsci b/hsci/hsci
|
||||
new file mode 100755
|
||||
index 00000000..9a56aa0d
|
||||
--- /dev/null
|
||||
+++ b/hsci/hsci
|
||||
@@ -0,0 +1,441 @@
|
||||
+#!/bin/bash
|
||||
+#
|
||||
+# hsci - Tool to manage HiperSockets Converged Interfaces (HSCI)
|
||||
+#
|
||||
+# Copyright IBM Corp. 2020
|
||||
+#
|
||||
+# s390-tools is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the MIT license. See LICENSE for details.
|
||||
+#
|
||||
+
|
||||
+hsdev=""
|
||||
+ndev=""
|
||||
+hsci=""
|
||||
+hsdev_mac=""
|
||||
+hsif_pnetid=""
|
||||
+netif_pnetid=""
|
||||
+hsci_pnetid=""
|
||||
+
|
||||
+function usage {
|
||||
+cat <<-EOD
|
||||
+Usage: hsci COMMAND [OPTION]
|
||||
+
|
||||
+This tool is designed to control and show HSCI (HiperSockets Converged
|
||||
+Interfaces) settings. A HiperSockets interface and an external network
|
||||
+
|
||||
+COMMANDS
|
||||
+ add HIPERSOCKETS_DEV NET_DEV Adds an HSCI interface
|
||||
+ del HSCI_NAME Deletes an HSCI interface
|
||||
+ show Lists the configured HSCI interfaces
|
||||
+
|
||||
+OPTIONS:
|
||||
+ -v, --version Prints the version number of the hsci tool and exits
|
||||
+ -h, --help Displays the help information for the command
|
||||
+EOD
|
||||
+}
|
||||
+
|
||||
+function prereqs_check {
|
||||
+ if ! [ -x "$(command -v ip)" ]; then
|
||||
+ echo "Error: No iproute2 installed on this system" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
+function check_pnetids {
|
||||
+ # get PNETID of the HS
|
||||
+ local hsif_pnetids=""
|
||||
+ local netif_pnetids=""
|
||||
+
|
||||
+ if [ -e /sys/class/net/$hsdev/device/util_string ]; then
|
||||
+ hsif_pnetids="$(cat /sys/class/net/$hsdev/device/util_string | tr -d '\000' | iconv -f IBM-1047 -t ASCII)"
|
||||
+ else
|
||||
+ if [ -e /sys/class/net/$hsdev/device/chpid ]; then
|
||||
+ chpid="$(cat /sys/class/net/$hsdev/device/chpid | tr [:upper:] [:lower:])"
|
||||
+ hsif_pnetids="$(cat /sys/devices/css0/chp0.$chpid/util_string | tr -d '\000' | iconv -f IBM-1047 -t ASCII)"
|
||||
+ fi
|
||||
+ fi
|
||||
+ if [ "$hsif_pnetids" != "" ]; then
|
||||
+ port_hsif="$(cat /sys/class/net/$hsdev/dev_port)"
|
||||
+ (( idx=16*$port_hsif+1 ))
|
||||
+ (( end=$idx+15 ))
|
||||
+ hsif_pnetid="$(echo "$hsif_pnetids" | cut -c $idx-$end | tr -d ' ')"
|
||||
+ fi
|
||||
+
|
||||
+ # get PNETID of the NET_DEV
|
||||
+ if [ -e /sys/class/net/$ndev/device/util_string ]; then
|
||||
+ netif_pnetids="$(cat /sys/class/net/$ndev/device/util_string | tr -d '\000' | iconv -f IBM-1047 -t ASCII)"
|
||||
+ else
|
||||
+ if [ -e /sys/class/net/$ndev/device/chpid ]; then
|
||||
+ chpid="$(cat /sys/class/net/$ndev/device/chpid | tr [:upper:] [:lower:])"
|
||||
+ netif_pnetids="$(cat /sys/devices/css0/chp0.$chpid/util_string | tr -d '\000' | iconv -f IBM-1047 -t ASCII)"
|
||||
+ fi
|
||||
+ fi
|
||||
+ if [ "$netif_pnetids" != "" ]; then
|
||||
+ port_netif="$(cat /sys/class/net/$ndev/dev_port)"
|
||||
+ (( idx=16*$port_netif+1 ))
|
||||
+ (( end=$idx+15 ))
|
||||
+ netif_pnetid="$(echo "$netif_pnetids" | cut -c $idx-$end | tr -d ' ')"
|
||||
+ fi
|
||||
+
|
||||
+ #Check PNETIDs
|
||||
+ if [ "$hsif_pnetid" != "" ] && [ "$netif_pnetid" != "" ] && [ "$netif_pnetid" != "$hsif_pnetid" ]; then
|
||||
+ echo "Error: $hsdev and $ndev have different PNETIDs! They are $hsif_pnetid and $netif_pnetid respectively" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+
|
||||
+ if [ "$hsif_pnetid" != "" ] && [ "$netif_pnetid" != "" ] && [ "$netif_pnetid" == "$hsif_pnetid" ]; then
|
||||
+ hsci_pnetid=$hsif_pnetid
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
+function verify_precon {
|
||||
+ echo "Verifying net dev $ndev and HiperSockets dev $hsdev"
|
||||
+
|
||||
+ if [ ! -e /sys/class/net/$hsdev ]; then
|
||||
+ echo "Error: $hsdev does not exist" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ if [ "$(cat /sys/class/net/$hsdev/device/card_type)" != "HiperSockets" ]; then
|
||||
+ echo "Error: $hsdev is not a HiperSockets device" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ if [ "$(cat /sys/class/net/$hsdev/device/layer2)" != "1" ]; then
|
||||
+ echo "Error: $hsdev is not in layer 2 mode" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ if [ ! -e /sys/class/net/$hsdev/device/vnicc/bridge_invisible ]; then
|
||||
+ echo "Error: Missing vnic-characteristics support" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ if [ "$(cat /sys/class/net/$hsdev/device/vnicc/bridge_invisible)" == "n/a" ]; then
|
||||
+ echo "Error: $hsdev does not support vnicc" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ if [ $(ip link show $hsdev | grep UP | wc -l) -eq 0 ]; then
|
||||
+ echo "Error: $hsdev is not in state UP" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ if [ $(bridge -d link show dev $hsdev self | grep learning_sync | wc -l) -eq 0 ]; then
|
||||
+ echo "Error: $hsdev does not support attribute learning_sync" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ if [ $(ip link show $hsdev | grep master | wc -l) -ne 0 ]; then
|
||||
+ echo "Error: $hsdev is already a bridge port" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+
|
||||
+ #Pre-verify net_dev
|
||||
+ if [ ! -e /sys/class/net/$ndev ]; then
|
||||
+ echo "Error: $ndev does not exist" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ if [ "$(cat /sys/class/net/$ndev/device/card_type)" == "HiperSockets" ]; then
|
||||
+ echo "Error: $ndev is also a HiperSockets device" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ if [ $(ip link show $ndev | grep UP | wc -l) -eq 0 ]; then
|
||||
+ echo "Error: $ndev is not in state UP" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ if [ $(ip link show $ndev | grep master | wc -l) -ne 0 ]; then
|
||||
+ echo "Error: $ndev is already a bridge port" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+
|
||||
+ #Check PNETIDs
|
||||
+ check_pnetids
|
||||
+ if [ $? -ne 0 ]; then
|
||||
+ return $?
|
||||
+ fi
|
||||
+
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+function clean_up {
|
||||
+ bridge link set dev $hsdev learning_sync off self >/dev/null 2>&1
|
||||
+ echo 0 > /sys/class/net/$hsdev/device/vnicc/bridge_invisible >/dev/null 2>&1
|
||||
+ bridge fdb del $hsdev_mac dev $ndev >/dev/null 2>&1
|
||||
+ ip link del $hsci >/dev/null 2>&1
|
||||
+}
|
||||
+
|
||||
+##############################################################################
|
||||
+## add a new HSCI interface
|
||||
+##############################################################################
|
||||
+function add_hsci {
|
||||
+
|
||||
+ if [ $# != 2 ]; then
|
||||
+ echo "hsci: Invalid parameters" >&2
|
||||
+ echo "Use 'hsci --help' for more information" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ hsdev=$1
|
||||
+ ndev=$2
|
||||
+
|
||||
+ #### Verify preconditions
|
||||
+ verify_precon
|
||||
+ if [ $? -ne 0 ]; then
|
||||
+ return $?
|
||||
+ fi
|
||||
+
|
||||
+ hsci_postfix="$(readlink /sys/class/net/$hsdev/device/cdev0 | tail -c5)"
|
||||
+ hsci=hsci$hsci_postfix
|
||||
+
|
||||
+ echo "Adding $hsci with a HiperSockets dev $hsdev and an external dev $ndev"
|
||||
+
|
||||
+ #### Create bridge
|
||||
+ ip link add name $hsci type bridge stp_state 0 >/dev/null 2>&1
|
||||
+ if [ $? -ne 0 ]; then
|
||||
+ echo "Error: Could not create a bridge" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+
|
||||
+ #### Prepare hsdev
|
||||
+ # Set VNICC of hsdev to invisible
|
||||
+ #(mandatory for co-existence with HS-OSA bridges!)
|
||||
+ echo 1 > /sys/class/net/$hsdev/device/vnicc/bridge_invisible
|
||||
+
|
||||
+ #### Create bridge ports
|
||||
+ ip link set dev $ndev master $hsci >/dev/null 2>&1
|
||||
+ if [ $? -ne 0 ]; then
|
||||
+ echo "Error: Could not set master for $ndev" >&2
|
||||
+ clean_up
|
||||
+ return 1
|
||||
+ fi
|
||||
+ ip link set dev $hsdev master $hsci >/dev/null 2>&1
|
||||
+ if [ $? -ne 0 ]; then
|
||||
+ echo "Error: Could not set master for $hsdev" >&2
|
||||
+ clean_up
|
||||
+ return 1
|
||||
+ fi
|
||||
+
|
||||
+ # no forwarding between ndev and hsdev -> isolated on
|
||||
+ # ndev is default for outgoing unknown targets -> flood on
|
||||
+ # no need to learn external LAN targets into fdb -> learning off
|
||||
+ bridge link set dev $ndev isolated on learning off flood on mcast_flood on >/dev/null 2>&1
|
||||
+ if [ $? -ne 0 ]; then
|
||||
+ echo "Error: Failed to set bridge attributes on $ndev" >&2
|
||||
+ clean_up
|
||||
+ return 1
|
||||
+ fi
|
||||
+
|
||||
+ # no forwarding between ndev and hsdev -> isolated on
|
||||
+ # fdb will be populated by dev-to-bridge-notification, no need to learn
|
||||
+ # -> learning off
|
||||
+ # only send to hsdev, if listed in fdb -> flood off
|
||||
+ # don't send MC/BC on hsdev -> mcast_flood off
|
||||
+ bridge link set dev $hsdev isolated on learning off flood off mcast_flood off >/dev/null 2>&1
|
||||
+ if [ $? -ne 0 ]; then
|
||||
+ echo "Error: Failed to set bridge attributes on $hsdev" >&2
|
||||
+ clean_up
|
||||
+ return 1
|
||||
+ fi
|
||||
+
|
||||
+ # NOTE: Although not required, BCs will be sent out on hsdev.
|
||||
+ # NOTE: We need to receive BCs on hsdev, as z/OS HSCI does ARP requests on HS.
|
||||
+
|
||||
+ hsdev_mac="$(cat /sys/class/net/$hsdev/address)"
|
||||
+ echo "Set $hsdev MAC $hsdev_mac on $ndev and $hsci"
|
||||
+
|
||||
+ # set HS MAC on OSA as secondary MAC
|
||||
+ bridge fdb add $hsdev_mac dev $ndev >/dev/null 2>&1
|
||||
+ if [ $? -ne 0 ]; then
|
||||
+ echo "Error: Failed to set HS MAC on OSA as secondary MAC" >&2
|
||||
+ clean_up
|
||||
+ return 1
|
||||
+ fi
|
||||
+
|
||||
+ # set HS MAC (common MAC) on HSCI as primary MAC
|
||||
+ ip link set address $hsdev_mac dev $hsci >/dev/null 2>&1
|
||||
+ if [ $? -ne 0 ]; then
|
||||
+ echo "Error: Failed to set HiperSockets MAC (common MAC) on HSCI as primary MAC" >&2
|
||||
+ clean_up
|
||||
+ return 1
|
||||
+ fi
|
||||
+
|
||||
+ # use hsdev MTU
|
||||
+ if [ -e /sys/class/net/$hsdev/mtu ]; then
|
||||
+ hs_mtu="$(cat /sys/class/net/$hsdev/mtu)"
|
||||
+ ip link set dev $hsci mtu $hs_mtu >/dev/null 2>&1
|
||||
+ if [ $? -ne 0 ]; then
|
||||
+ echo "Error: Failed to set MTU for $hsci " >&2
|
||||
+ clean_up
|
||||
+ return 1
|
||||
+ fi
|
||||
+ fi
|
||||
+ ip link set dev $hsci up >/dev/null 2>&1
|
||||
+ if [ $? -ne 0 ]; then
|
||||
+ echo "Error: Failed to set $hsci up" >&2
|
||||
+ clean_up
|
||||
+ return 1
|
||||
+ fi
|
||||
+
|
||||
+ # Turn on device for bridge notification
|
||||
+ bridge link set dev $hsdev learning_sync on self >/dev/null 2>&1
|
||||
+ if [ $? -ne 0 ]; then
|
||||
+ echo "Error: Failed to turn on device for bridge notification" >&2
|
||||
+ clean_up
|
||||
+ return 1
|
||||
+ fi
|
||||
+ echo "Successfully added HSCI interface $hsci"
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+##############################################################################
|
||||
+## Delete HSCI
|
||||
+##############################################################################
|
||||
+
|
||||
+function del_hsci {
|
||||
+ if [ $# != 1 ]; then
|
||||
+ echo "hsci: invalid parameters" >&2
|
||||
+ echo "Use 'hsci --help' for more information" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ hsci=$1
|
||||
+ if [ $(ip link show dev $hsci | wc -l) -eq 0 ]; then
|
||||
+ echo "Error: $hsci does not exit" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ if [ $(ip link show | grep "master $hsci" | wc -l) -eq 0 ]; then
|
||||
+ echo "Error: $hsci is not an active HSCI interface" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+
|
||||
+ bports="$(ip link show | grep "master $hsci" | awk '{print $2}')"
|
||||
+ for bport in $bports; do
|
||||
+ if [ $(bridge -d link show dev $bport | grep "learning_sync on" | wc -l) -ne 0 ]; then
|
||||
+ hsdev=${bport%:}
|
||||
+ else
|
||||
+ ndev=${bport%:}
|
||||
+ fi
|
||||
+ done
|
||||
+ if [ "$hsdev" == "" ]; then
|
||||
+ echo "Error: $hsci has no active HiperSockets port" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ echo "Deleting HSCI interface $hsci with the HiperSockets $hsdev and the external $ndev"
|
||||
+
|
||||
+ bridge link set dev $hsdev learning_sync off self >/dev/null 2>&1
|
||||
+ if [ $? -ne 0 ]; then
|
||||
+ echo "Error: Failed to turn off learning_sync on $hsdev" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ echo 0 > /sys/class/net/$hsdev/device/vnicc/bridge_invisible
|
||||
+
|
||||
+ hsdev_mac="$(cat /sys/class/net/$hsdev/address)"
|
||||
+ echo "Deleting $hsev MAC $hsdev_mac on $ndev"
|
||||
+ bridge fdb del $hsdev_mac dev $ndev >/dev/null 2>&1
|
||||
+ if [ $? -ne 0 ]; then
|
||||
+ echo "Error: Failed to delete $hsev MAC $hsdev_mac on $ndev" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+
|
||||
+ ip link del $hsci >/dev/null 2>&1
|
||||
+ if [ $? -ne 0 ]; then
|
||||
+ echo "Error: Failed to delete $hsci" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ echo "Successfully deleted device $hsci"
|
||||
+
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+##############################################################################
|
||||
+## Show HSCI
|
||||
+##############################################################################
|
||||
+
|
||||
+function list_active {
|
||||
+ hsdev=$1
|
||||
+ local ext=""
|
||||
+
|
||||
+ hsci="$(ip link show dev $hsdev | awk '{for(x=1;x<NF;x++) if($x~/master/) print $(x+1)}')"
|
||||
+ ext="$(ip link show | grep "master $hsci" | grep --invert-match $hsdev | awk '{print $2}')"
|
||||
+ # remove trailing ':'
|
||||
+ ndev="${ext%:}"
|
||||
+
|
||||
+ check_pnetids
|
||||
+
|
||||
+ printf '%-8s %-16s %-15s %-15s\n' "$hsci" "$hsci_pnetid" "$hsdev" "$ndev"
|
||||
+
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+function print_header {
|
||||
+ if [ $header -eq 0 ]; then
|
||||
+ echo "HSCI PNET_ID HiperSockets External "
|
||||
+ echo "------------------------------------------------------------"
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
+function list_one {
|
||||
+ local hsnetdev=$1
|
||||
+
|
||||
+ if [ $(bridge -d link show dev $hsnetdev | grep "learning_sync on" | wc -l) -ne 0 ]; then
|
||||
+ print_header
|
||||
+ list_active $hsnetdev
|
||||
+ fi
|
||||
+
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+function show_hsci {
|
||||
+ if [ $# != 0 ]; then
|
||||
+ echo "hsci: invalid parameters" >&2
|
||||
+ echo "Use 'hsci --help' for more information" >&2
|
||||
+ return 1
|
||||
+ fi
|
||||
+ header=0
|
||||
+
|
||||
+ for hs_net_dev in $(ls -1 /sys/class/net/); do
|
||||
+ list_one $hs_net_dev
|
||||
+ done
|
||||
+
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+#==============================================================================
|
||||
+
|
||||
+function print_version()
|
||||
+{
|
||||
+ echo "hsci utility: version %S390_TOOLS_VERSION%"
|
||||
+ echo "Copyright IBM Corp. 2020"
|
||||
+}
|
||||
+
|
||||
+##############################################################################
|
||||
+##### Main
|
||||
+##############################################################################
|
||||
+prereqs_check
|
||||
+
|
||||
+args="$(getopt -u -o hv -l help,version -- $*)"
|
||||
+[ $? -ne 0 ] && exit 2
|
||||
+set -- $args
|
||||
+while true; do
|
||||
+ case $1 in
|
||||
+ -v | --version)
|
||||
+ print_version
|
||||
+ exit 0
|
||||
+ ;;
|
||||
+ -h | --help)
|
||||
+ usage
|
||||
+ exit 0
|
||||
+ ;;
|
||||
+ --)
|
||||
+ ;;
|
||||
+ add) shift
|
||||
+ add_hsci "$@"
|
||||
+ exit $?
|
||||
+ ;;
|
||||
+ del) shift
|
||||
+ del_hsci "$@"
|
||||
+ exit $?
|
||||
+ ;;
|
||||
+ show) shift
|
||||
+ show_hsci "$@"
|
||||
+ exit $?
|
||||
+ ;;
|
||||
+ *) echo "hsci: Please specify a valid command or option" >&2
|
||||
+ echo "Use 'hsci --help' for more information" >&2
|
||||
+ exit 1
|
||||
+ esac
|
||||
+ shift
|
||||
+done
|
||||
+
|
||||
diff --git a/hsci/hsci.8 b/hsci/hsci.8
|
||||
new file mode 100644
|
||||
index 00000000..fc170532
|
||||
--- /dev/null
|
||||
+++ b/hsci/hsci.8
|
||||
@@ -0,0 +1,100 @@
|
||||
+.\" Copyright IBM Corp. 2020
|
||||
+
|
||||
+.TH HSCI 8 "November 2020" "s390-tools" "Linux Programmer's Manual"
|
||||
+
|
||||
+
|
||||
+.SH NAME
|
||||
+.B hsci
|
||||
+\- control and show HSCI settings.
|
||||
+
|
||||
+
|
||||
+.SH SYNOPSIS
|
||||
+.B hsci add
|
||||
+.I HSDEV
|
||||
+.I NETDEV
|
||||
+.br
|
||||
+.B hsci del
|
||||
+.I HSCINAME
|
||||
+.br
|
||||
+.B hsci show
|
||||
+.br
|
||||
+.B hsci [\-hv]
|
||||
+
|
||||
+.SH DESCRIPTION
|
||||
+.BI hsci
|
||||
+is used to control and show HSCI (HiperSockets Converged Interfaces) settings. A HiperSockets interface and an external network interface are converged into an HSCI interface.
|
||||
+
|
||||
+.SH COMMANDS
|
||||
+.TP
|
||||
+.B add \fIHSDEV\fR \fINETDEV\fR
|
||||
+.RS .4i
|
||||
+.PP
|
||||
+Adds an HSCI interface
|
||||
+.PP
|
||||
+.I HSDEV
|
||||
+is the interface name of the HiperSockets device to be converged into the HSCI interface.
|
||||
+.PP
|
||||
+.I NETDEV
|
||||
+is the interface name of the external network device to be converged into the HSCI interface.
|
||||
+.RE
|
||||
+
|
||||
+.TP
|
||||
+.B del \fIHSCINAME\fR
|
||||
+.RS .4i
|
||||
+.PP
|
||||
+Deletes an HSCI interface
|
||||
+.PP
|
||||
+.I HSCINAME
|
||||
+is the name of the HSCI interface for the HiperSockets device and the external network device.
|
||||
+.RE
|
||||
+
|
||||
+.TP
|
||||
+.B show
|
||||
+.RS .4i
|
||||
+.PP
|
||||
+Lists the configured HSCI interfaces.
|
||||
+.RE
|
||||
+
|
||||
+.SH OPTIONS
|
||||
+.TP
|
||||
+.BR \-v ", " \-\-version
|
||||
+Prints the version number of hsci and exits.
|
||||
+.TP
|
||||
+.BR \-h ", " \-\-help
|
||||
+Displays the help information for the command.
|
||||
+
|
||||
+.SH EXIT CODES
|
||||
+.TP
|
||||
+.BR "0"
|
||||
+The hsci command ran successfully.
|
||||
+
|
||||
+.TP
|
||||
+.BR "1"
|
||||
+An error occurred.
|
||||
+
|
||||
+.SH EXAMPLE
|
||||
+.BR "hsci show"
|
||||
+.TP
|
||||
+.RB
|
||||
+Lists the configured HSCI interfaces:
|
||||
+.RS 1.2i
|
||||
+
|
||||
+HSCI PNET_ID HiperSockets External
|
||||
+.br
|
||||
+-----------------------------------------
|
||||
+.br
|
||||
+hsci8410 NET1 enc8410 encb040
|
||||
+
|
||||
+.RE
|
||||
+
|
||||
+.SH SEE ALSO
|
||||
+.nf
|
||||
+ip(8), bridge(8)
|
||||
+.fi
|
||||
+
|
||||
+.SH AUTHOR
|
||||
+.nf
|
||||
+Written by Alexandra Winter <wintera@linux.ibm.com>
|
||||
+ Wenjia Zhang <wenjia@linux.ibm.com>
|
||||
+.fi
|
||||
+
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,41 +0,0 @@
|
||||
From 8ec47052397a868c0764900db69fda4a892bd512 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20H=C3=B6ppner?= <hoeppner@linux.ibm.com>
|
||||
Date: Fri, 6 Nov 2020 18:47:07 +0100
|
||||
Subject: [PATCH] libutil: Compare proc entries to vfstype
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Modern systems have systemd manage system mount points like sysfs which
|
||||
specify 'sysfs' as a keyword for the device as there is no device
|
||||
associated with this special filesystem. However, any arbitrary string
|
||||
could be specified here and the determination of the sysfs mount point
|
||||
would fail in such a case.
|
||||
To make sure that the mount point of the sysfs is still found when
|
||||
mounted with a device keyword specified other than 'sysfs', check for
|
||||
the filesystem type instead, which is more specific.
|
||||
|
||||
Fixes: https://github.com/ibm-s390-tools/s390-tools/issues/91
|
||||
Suggested-by: Mark Post <mpost@suse.com>
|
||||
Reviewed-by: Stefan Haberland <sth@linux.ibm.com>
|
||||
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
|
||||
---
|
||||
libutil/util_proc.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libutil/util_proc.c b/libutil/util_proc.c
|
||||
index 080f831..9ac4381 100644
|
||||
--- a/libutil/util_proc.c
|
||||
+++ b/libutil/util_proc.c
|
||||
@@ -460,7 +460,7 @@ int util_proc_mnt_get_entry(const char *file_name, const char *spec,
|
||||
rc = scan_mnt_entry(&file, entry);
|
||||
if (rc)
|
||||
goto out_free;
|
||||
- if (!strcmp(entry->spec, spec)) {
|
||||
+ if (!strcmp(entry->vfstype, spec)) {
|
||||
rc = 0;
|
||||
goto out_free;
|
||||
}
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- s390-tools-2.15.1/common.mak 2020-10-28 10:31:59.000000000 -0400
|
||||
+++ s390-tools-2.15.1/common.mak 2021-03-01 11:16:20.285597140 -0500
|
||||
@@ -224,8 +224,8 @@
|
||||
@@ -252,8 +252,8 @@
|
||||
|
||||
ifneq ($(shell $(CC_SILENT) -dumpspecs 2>/dev/null | grep -e '[^f]no-pie'),)
|
||||
NO_PIE_CFLAGS := -fno-pie
|
||||
|
@ -1,73 +0,0 @@
|
||||
Subject: [PATCH] [BZ 189239] zcryptstats: Fix handling of partial results with many domains
|
||||
From: Ingo Franzki <ifranzki@linux.ibm.com>
|
||||
|
||||
Description: zcryptstats: Fix handling of partial results with many domains
|
||||
Symptom: Running zcryptstats when many domains are available per cryto
|
||||
card does not produce any output, and is hanging in a loop.
|
||||
Problem: When many domains per card are available, then the results of
|
||||
the SCDMD CHSC call may not fit into the output area, and a
|
||||
partial result is returned. The further results must be
|
||||
retrieved with another CHSC call. Fix the code to pass the
|
||||
correct next-domain to the subsequent CHSC call of a partial
|
||||
response. Otherwise the same set of domains 1 to n are retrieved
|
||||
again, resulting in an infinite loop, because this will always
|
||||
produce a partial result.
|
||||
Solution: Fix the code to pass the correct next-domain to the subsequent
|
||||
CHSC call of a partial response.
|
||||
Reproduction: Run zcryptstats on a system with many domains per card.
|
||||
Upstream-ID: cf2311f1f1de17435b49ba8c8697be91705ba031
|
||||
Problem-ID: 189239
|
||||
|
||||
Upstream-Description:
|
||||
|
||||
zcryptstats: Fix handling of partial results with many domains
|
||||
|
||||
When many domains per card are available, then the results of the SCDMD
|
||||
CHSC call may not fit into the output area, and a partial result is
|
||||
returned. The further results must be retrieved with another CHSC call.
|
||||
|
||||
Fix the code to pass the correct next-domain to the subsequent CHSC call
|
||||
of a partial response. Otherwise the same set of domains 1 to n are
|
||||
retrieved again, resulting in an infinite loop, because this will always
|
||||
produce a partial result.
|
||||
|
||||
Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
|
||||
Reviewed-by: Harald Freudenberger <freude@linux.ibm.com>
|
||||
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
|
||||
|
||||
|
||||
Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
|
||||
---
|
||||
zconf/zcrypt/zcryptstats.c | 14 ++++++++------
|
||||
1 file changed, 8 insertions(+), 6 deletions(-)
|
||||
|
||||
--- a/zconf/zcrypt/zcryptstats.c
|
||||
+++ b/zconf/zcrypt/zcryptstats.c
|
||||
@@ -1178,8 +1178,14 @@ static int get_apqn_measurement_data(uin
|
||||
scdmd_area.request.header.code = 0x102d;
|
||||
scdmd_area.request.header.length =
|
||||
sizeof(struct chsc_scdmd_request);
|
||||
- scdmd_area.request.first_drid.ap_index = card;
|
||||
- scdmd_area.request.first_drid.domain_index = g.min_domain;
|
||||
+ if (scdmd_area.response.p) {
|
||||
+ scdmd_area.request.first_drid =
|
||||
+ scdmd_area.response.crid;
|
||||
+ } else {
|
||||
+ scdmd_area.request.first_drid.ap_index = card;
|
||||
+ scdmd_area.request.first_drid.domain_index =
|
||||
+ g.min_domain;
|
||||
+ }
|
||||
scdmd_area.request.last_drid.ap_index = card;
|
||||
scdmd_area.request.last_drid.domain_index = g.max_domain;
|
||||
scdmd_area.request.s = 1;
|
||||
@@ -1217,10 +1223,6 @@ static int get_apqn_measurement_data(uin
|
||||
rc = process_apqn_measurement_data(&scdmd_area);
|
||||
if (rc != 0)
|
||||
break;
|
||||
-
|
||||
- if (scdmd_area.response.p)
|
||||
- scdmd_area.request.first_drid =
|
||||
- scdmd_area.response.crid;
|
||||
} while (scdmd_area.response.p);
|
||||
|
||||
return rc;
|
@ -1,64 +0,0 @@
|
||||
Subject: [PATCH] [BZ 191696] zipl: fix reading 4k disk's geometry
|
||||
From: Stefan Haberland <sth@linux.ibm.com>
|
||||
|
||||
Description: zipl: fix IPL on 4K SCSI disks
|
||||
Symptom: IPL is not working when bootloader is installed
|
||||
on a SCSI disk with 4k physical blocksize without using
|
||||
a devicemapper target.
|
||||
Problem: The getgeo ioctl that is used reports the partition
|
||||
start in multiple of 512 byte sectors but the blocksize
|
||||
that is used is the physical blocksize of 4k and
|
||||
therefore the calculated partition start does not
|
||||
match. For device mapper targets the zipl-helper script
|
||||
is used that adjusts the partition start correctly to
|
||||
the physical blocksize.
|
||||
Solution: Adjust the partition start depending on the physical
|
||||
blocksize.
|
||||
Reproduction: Use zipl to install a bootloader on a SCSI disk with 4k
|
||||
physical blocksize and without usage of a device mapper
|
||||
target.
|
||||
Upstream-ID: 4a3957fab5696cc410c5b495956859a424e3552a
|
||||
Problem-ID: 191696
|
||||
|
||||
Upstream-Description:
|
||||
|
||||
zipl: fix reading 4k disk's geometry
|
||||
|
||||
On 4k SCSI disks zipl stores wrong values to 'scsi_mbr.program_table_pointer',
|
||||
which makes system unbootable.
|
||||
This happens in 'zipl/src/disk.c:656':
|
||||
|
||||
```
|
||||
/* Convert file system block to physical */
|
||||
*physical = mapped * phy_per_fs + subblock;
|
||||
/* Add partition start */
|
||||
*physical += info->geo.start;
|
||||
|
||||
```
|
||||
|
||||
So 'hd_geometry.start' should be adjusted before being used.
|
||||
|
||||
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1918723
|
||||
Closes: https://github.com/ibm-s390-linux/s390-tools/pull/107
|
||||
Signed-off-by: Nikita Dubrovskii <nikita@linux.ibm.com>
|
||||
Reviewed-by: Stefan Haberland <sth@linux.ibm.com>
|
||||
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
|
||||
|
||||
|
||||
Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
|
||||
---
|
||||
zipl/src/disk.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
--- a/zipl/src/disk.c
|
||||
+++ b/zipl/src/disk.c
|
||||
@@ -444,6 +444,9 @@ type_determined:
|
||||
}
|
||||
/* Convert device size to size in physical blocks */
|
||||
data->phy_blocks = devsize / (data->phy_block_size / 512);
|
||||
+ /* Adjust start on SCSI according to block_size. device-mapper devices are skipped */
|
||||
+ if (data->type == disk_type_scsi && target->targetbase == NULL)
|
||||
+ data->geo.start = data->geo.start / (data->phy_block_size / 512);
|
||||
if (data->partnum != 0)
|
||||
data->partition = stats.st_rdev;
|
||||
/* Try to get device name */
|
@ -1,49 +0,0 @@
|
||||
Subject: [PATCH] [BZ 189965] zkey: Fix APQN property names
|
||||
From: Ingo Franzki <ifranzki@linux.ibm.com>
|
||||
|
||||
Description: zkey: Fix KMS plugin configuration to store APQNs correctly.
|
||||
Symptom: When a KMS plugin is configured with APQNs, the set of
|
||||
APQNs is stored per card type, i.e. the set of CCA APQNs and
|
||||
the set of EP11 APQNs is stored separately in the KMS
|
||||
plugin configuration file. Unfortunately, the names of the
|
||||
configuration properties are swapped, so that CCA APQNs are
|
||||
stored as EP11 APQNs, and vice versa.
|
||||
This does not cause any malfunction as of today, however
|
||||
if this is fixed later, while a KMS plugin configuration
|
||||
already exists, then the KMS plugin will fail to work once
|
||||
the fix is applied. A KMS plugin reconfiguration would then
|
||||
be needed to make the plugin work again.
|
||||
Problem: The KMS configuration property names to store the CCA and
|
||||
EP11 APQNs are incorrect, i.e. swapped.
|
||||
Solution: Correct the KMS configuration property names.
|
||||
Reproduction: Configure a KMS plugin with APQNs and check the KMS config
|
||||
file.
|
||||
Upstream-ID: 07d181e29b484108bce5ea07c1561ffb62a1b56e
|
||||
Problem-ID: 189965
|
||||
|
||||
Upstream-Description:
|
||||
|
||||
zkey: Fix APQN property names
|
||||
|
||||
Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
|
||||
Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com>
|
||||
|
||||
|
||||
Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
|
||||
---
|
||||
zkey/kms.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/zkey/kms.c
|
||||
+++ b/zkey/kms.c
|
||||
@@ -46,8 +46,8 @@
|
||||
#define KMS_CONFIG_PROP_KMS "kms"
|
||||
#define KMS_CONFIG_PROP_KMS_CONFIG "config"
|
||||
#define KMS_CONFIG_PROP_APQNS "apqns"
|
||||
-#define KMS_CONFIG_PROP_CCA_APQNS "ep11_apqns"
|
||||
-#define KMS_CONFIG_PROP_EP11_APQNS "cca_apqns"
|
||||
+#define KMS_CONFIG_PROP_CCA_APQNS "cca_apqns"
|
||||
+#define KMS_CONFIG_PROP_EP11_APQNS "ep11_apqns"
|
||||
#define KMS_CONFIG_LOCAL "local"
|
||||
|
||||
#define KMS_KEY_PROP_NAME "zkey-name"
|
@ -1,3 +1,108 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 8 20:08:54 UTC 2021 - Mark Post <mpost@suse.com>
|
||||
|
||||
- Upgraded to version 2.19.0 (jsc#SLE-18324)
|
||||
* v2.19.0 (2021-11-10)__
|
||||
Add new tools / libraries:
|
||||
- chreipl-fcp-mpath: New toolset that uses multipath information to change
|
||||
the configured FCP re-IPL path on detecting issues with the current path
|
||||
Changes of existing tools:
|
||||
- dbginfo.sh: Add retry timeout and remove possible blocking "blockdev --report"
|
||||
- dbginfo.sh: Collect config- and debug-data for chreipl-fcp-mpath
|
||||
- hsci: Add support for multiple MAC addresses
|
||||
Bug Fixes:
|
||||
- lshwc: Fix compile error for gcc <8.1
|
||||
- zdump: Various clean-ups and fixes
|
||||
- ziomon: Correct throughput calculation in ziorep_printers
|
||||
- zipl: Fix segmentation fault when setting stage3_parms
|
||||
* v2.18.0 (2021-10-01)__
|
||||
Add new tools:
|
||||
- scripts: Add tool for parsing sclp s390dbf logs
|
||||
- zdev: Add udev rule helper tool
|
||||
- zipl-editenv: Add tool to operate with zIPL environment installed in the boot record
|
||||
Changes of existing tools:
|
||||
- Makefile: Fix order of build of libraries for parallel builds
|
||||
- dbginfo.sh: Add collection in area of timedate, coredump and --check option
|
||||
- dbginfo.sh: Add exception on dump2tar for /sys/kernel/mm/page_idle/bitmap
|
||||
- dbginfo.sh: Cleanup of outdated sections and general code rework
|
||||
- dbginfo.sh: Collect zipl boot menu entries from boot loader specification
|
||||
- lszcrypt: Add support for vfio-ap status field
|
||||
- lszcrypt: Improved output for deconfig cards and queues
|
||||
- lszfcp: Add linkdown case to host marker of extended output
|
||||
- zdev: Add auto-config for PCI and crypto devices
|
||||
- zdump: Introduce multi-level message logging
|
||||
- zipl: Add support for environment block interpretation
|
||||
- zkey-cryptsetup: Support LUKS2 volumes with integrity support enabled
|
||||
Bug Fixes:
|
||||
- hsavmcore: Avoid recompilation of overlay during install step
|
||||
- libkmipclient: Fix parsing of hex values for XML and JSON encoding
|
||||
- vmur/vmur.cpp: Fix error handling on transfer failure
|
||||
- zdump: Lots of smaller fixes across the board
|
||||
* v2.17.0 (2021-07-07)__
|
||||
Add new tools / libraries:
|
||||
- hsavmcore: New utility to make the dump process with kdump more efficient
|
||||
- libkmipclient: Add KMIP client shared library
|
||||
- libseckey: Add a secure key library
|
||||
- lshwc: New tool to extract and list complete counter sets
|
||||
Changes of existing tools:
|
||||
- genprotimg: Add '--(enable|disable)-pckmo' options
|
||||
- genprotimg: Add OpenSSL 3.0 support
|
||||
- genprotimg: Change plaintext control flags defaults so PCKMO functions are allowed
|
||||
- libutil: Introduce multi-level message logging (util_log)
|
||||
- libutil: Introduce util_arch module
|
||||
- udev/dasd: Change DASD udev-rule to set none scheduler
|
||||
- zdsfs: Add transparent codepage conversion
|
||||
- zkey: Add support for KMIP-based key management systems
|
||||
Bug Fixes:
|
||||
- ttyrun-getty: Avoid conflicts with serial-getty@
|
||||
- dbginfo: add /proc/kallsyms - refresh zVM, lscpu - fix WORKARCHIVE handling
|
||||
- dbginfo: add KVM data collection for server and guest - fix lszdev
|
||||
- genprotimg: Add missing return values in error paths
|
||||
- zkey: Fix conversion of CCA DATA keys to CCA CIPHER keys
|
||||
- znetconf: avoid conflict with "chzdev -e"
|
||||
* v2.16.0 (2021-02-19)__
|
||||
Add new tool:
|
||||
- hsci: New tool to manage HSCI (HiperSockets Converged Interfaces)
|
||||
Changes of existing tools:
|
||||
- genprotimg: Add host-key document verification support
|
||||
- genprotimg: boot: Make boot loader -march=z900 compatible
|
||||
- libekmfweb: Make install directory for shared libraries configurable
|
||||
- lsdasd: Add FC Endpoint Security information
|
||||
- make: Add address sanitizer support
|
||||
- netboot: Add version information to scripts
|
||||
- netboot: Bump busybox version in pxelinux.0 build
|
||||
- zdev: Add FC Endpoint Security information for DASD devices
|
||||
- zdev: Add build option to update initial RAM-disk by default
|
||||
- zkey-ekmfweb: Avoid sequence number clash when generating keys
|
||||
- zkey/zkey-ekmfweb: Install KMS plugins into configurable location
|
||||
- zkey: Add support to store LUKS2 dummy passphrase in key repository
|
||||
Bug Fixes:
|
||||
- dasdfmt: Fix segfault when an incorrect option is specified
|
||||
- genprotimg: Fix several build issues
|
||||
- genprotimg: Require argument for 'ramdisk' and 'parmfile' options
|
||||
- zcryptstats: Fix handling of partial results with many domains
|
||||
- zfcpdbf: Deal with crash 7.2.9 change in caller name formatting
|
||||
- zipl/boot: Fix memory use after free in stage2
|
||||
- zipl/boot: Fix potential heap overflow in stage2
|
||||
- zipl: Fix reading 4k disk's geometry
|
||||
- Removed the following obsolete patches
|
||||
* s390-tools-sles15sp3-dasdfmt-Fix-segfault-when-an-incorrect-option-is-spe.patch
|
||||
* s390-tools-sles15sp3-libutil-Compare-proc-entries-to-vfstype.patch
|
||||
* s390-tools-sles15sp3-01-zdev-Add-FC-Endpoint-Security-information-for-DASD-d.patch
|
||||
* s390-tools-sles15sp3-02-lsdasd-Add-FC-Endpoint-Security-information.patch
|
||||
* s390-tools-sles15sp3-hsci-Add-new-tool-to-control-HiperSockets-Converged-.patch
|
||||
* s390-tools-sles15sp3-zcryptstats-Fix-handling-of-partial-results-with-man.patch
|
||||
* s390-tools-sles15sp3-01-genprotimg-abort-if-one-of-the-recursive-targets-is-.patch
|
||||
* s390-tools-sles15sp3-02-genprotimg-fix-two-memory-leaks.patch
|
||||
* s390-tools-sles15sp3-03-genprotimg-require-argument-for-ramdisk-and-parmfile.patch
|
||||
* s390-tools-sles15sp3-04-genprotimg-add-host-key-document-verification-suppor.patch
|
||||
* s390-tools-sles15sp3-zkey-Fix-APQN-property-names.patch
|
||||
* s390-tools-sles15sp3-zipl-fix-4k-scsi-ipl.patch
|
||||
* s390-tools-sles15sp3-dasd-change-DASD-udev-rule-to-set-none-scheduler.patch
|
||||
* s390-tools-sles15sp3-check-return-code-from-util_file_read_l.patch
|
||||
- Removed an obsolete "export ROOT_BUILD_DIR" statement from the spec file.
|
||||
- Removed unnecessary defattr statements in the files section.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 18 17:51:04 UTC 2021 - Mark Post <mpost@suse.com>
|
||||
|
||||
@ -7,6 +112,26 @@ Mon Oct 18 17:51:04 UTC 2021 - Mark Post <mpost@suse.com>
|
||||
- Did some spec file cleanup based on the recommendations from
|
||||
spec-cleaner.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 18 20:55:06 UTC 2021 - Mark Post <mpost@suse.com>
|
||||
|
||||
- Reworked s390-tools-sles15sp2-Implement-Y-yast_mode.patch (yet
|
||||
again). If more DASD volumes are to be formatted than are allowed
|
||||
by the "maximum number to do in parallel" parameter, dasdfmt
|
||||
waits until one of the child processes ends before starting another.
|
||||
For YaST to be able to figure out how many cylinders a particular
|
||||
DASD volume has, that information has to be output for _all_ of the
|
||||
volumes, before any of the child processes are spawned.
|
||||
(bsc#1187012)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 26 21:13:23 UTC 2021 - Mark Post <mpost@suse.com>
|
||||
|
||||
- Modified the following patches to correct the output from the
|
||||
dasdfmt command when *not* using "YaST mode." (bsc#1182816, bsc#1182820)
|
||||
* s390-tools-sles15sp3-Format-devices-in-parallel.patch
|
||||
* s390-tools-sles15sp3-Implement-Y-yast_mode.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 6 13:59:15 UTC 2021 - Mark Post <mpost@suse.com>
|
||||
|
||||
|
127
s390-tools.spec
127
s390-tools.spec
@ -23,7 +23,7 @@
|
||||
%endif
|
||||
|
||||
Name: s390-tools
|
||||
Version: 2.15.1
|
||||
Version: 2.19.0
|
||||
Release: 0
|
||||
Summary: S/390 tools like zipl and dasdfmt
|
||||
License: MIT
|
||||
@ -87,20 +87,6 @@ Source98: zfcp_disk_configure.8
|
||||
Source99: zfcp_host_configure.8
|
||||
###
|
||||
|
||||
Patch1: s390-tools-sles15sp3-dasdfmt-Fix-segfault-when-an-incorrect-option-is-spe.patch
|
||||
Patch2: s390-tools-sles15sp3-libutil-Compare-proc-entries-to-vfstype.patch
|
||||
Patch3: s390-tools-sles15sp3-01-zdev-Add-FC-Endpoint-Security-information-for-DASD-d.patch
|
||||
Patch4: s390-tools-sles15sp3-02-lsdasd-Add-FC-Endpoint-Security-information.patch
|
||||
Patch5: s390-tools-sles15sp3-hsci-Add-new-tool-to-control-HiperSockets-Converged-.patch
|
||||
Patch6: s390-tools-sles15sp3-zcryptstats-Fix-handling-of-partial-results-with-man.patch
|
||||
Patch7: s390-tools-sles15sp3-01-genprotimg-abort-if-one-of-the-recursive-targets-is-.patch
|
||||
Patch8: s390-tools-sles15sp3-02-genprotimg-fix-two-memory-leaks.patch
|
||||
Patch9: s390-tools-sles15sp3-03-genprotimg-require-argument-for-ramdisk-and-parmfile.patch
|
||||
Patch10: s390-tools-sles15sp3-04-genprotimg-add-host-key-document-verification-suppor.patch
|
||||
Patch11: s390-tools-sles15sp3-zkey-Fix-APQN-property-names.patch
|
||||
Patch12: s390-tools-sles15sp3-zipl-fix-4k-scsi-ipl.patch
|
||||
Patch13: s390-tools-sles15sp3-dasd-change-DASD-udev-rule-to-set-none-scheduler.patch
|
||||
|
||||
# SUSE patches
|
||||
Patch900: s390-tools-sles12-zipl_boot_msg.patch
|
||||
Patch901: s390-tools-sles15-sysconfig-compatible-dumpconf.patch
|
||||
@ -113,8 +99,7 @@ Patch907: s390-tools-sles15sp3-Implement-f-for-backwards-compability.patch
|
||||
Patch908: s390-tools-sles15sp3-dasdfmt-retry-BIODASDINFO-if-device-is-busy.patch
|
||||
Patch909: s390-tools-sles12-fdasd-skip-partition-check-and-BLKRRPART-ioctl.patch
|
||||
Patch910: s390-tools-sles15sp1-11-zdev-Do-not-call-zipl-on-initrd-update.patch
|
||||
Patch911: s390-tools-sles15sp3-check-return-code-from-util_file_read_l.patch
|
||||
Patch912: s390-tools-sles15sp3-remove-no-pie-link-arguments.patch
|
||||
Patch911: s390-tools-sles15sp3-remove-no-pie-link-arguments.patch
|
||||
|
||||
BuildRequires: curl-devel
|
||||
BuildRequires: dracut
|
||||
@ -127,8 +112,10 @@ BuildRequires: kernel-zfcpdump
|
||||
BuildRequires: libcryptsetup-devel > 2.0.3
|
||||
BuildRequires: libjson-c-devel
|
||||
BuildRequires: libpfm-devel
|
||||
BuildRequires: libxml2-devel
|
||||
BuildRequires: ncurses-devel
|
||||
BuildRequires: net-snmp-devel
|
||||
BuildRequires: openssl-devel >= 1.1.1l
|
||||
BuildRequires: pesign-obs-integration
|
||||
BuildRequires: qclib-devel-static
|
||||
BuildRequires: tcpd-devel
|
||||
@ -211,7 +198,7 @@ on IBM Z servers.
|
||||
Summary: IBM Enterprise Key Management Foundation - Web Edition client library
|
||||
License: MIT
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: libekmfweb1
|
||||
Requires: libekmfweb1 = %{version}
|
||||
|
||||
%description -n libekmfweb1-devel
|
||||
libekmfweb1 is a client library that provides access to IBM' Enterprise Key
|
||||
@ -219,6 +206,54 @@ Management Foundation – Web Edition.0 EKMF Web provides efficient and
|
||||
security-rich centralized key management for IBM z/OS data set encryption
|
||||
on IBM Z servers.
|
||||
|
||||
%package -n libkmipclient1
|
||||
Summary: IBM Key Management Interoperability Protocol (KMIP) client library
|
||||
License: MIT
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libkmipclient1
|
||||
Key Management Interoperability Protocol (KMIP) is a client/server
|
||||
communication protocol for the storage and maintenance of key,
|
||||
certificate, and secret objects. This client library enables secure
|
||||
creation and storage of cryptographic objects on the IBM Security Key
|
||||
Lifecycle Manager server. You must configure client devices to connect
|
||||
to the server for key management operations.
|
||||
|
||||
%package -n libkmipclient1-devel
|
||||
Summary: Header files for the IBM Z KMIP client library
|
||||
License: MIT
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: libkmipclient1 = %{version}
|
||||
|
||||
%description -n libkmipclient1-devel
|
||||
This package provides the header files and symbolic link to the
|
||||
shared library for the IBM Z KMIP client library.
|
||||
|
||||
%package chreipl-fcp-mpath
|
||||
Summary: Use multipath information for re-IPL path failover
|
||||
License: MIT
|
||||
Group: System/Boot
|
||||
BuildRequires: bash
|
||||
BuildRequires: coreutils
|
||||
## Required for build+install with ENABLE_DOC=1
|
||||
#BuildRequires: pandoc
|
||||
BuildRequires: sed
|
||||
#BuildRequires: gawk
|
||||
#BuildRequires: gzip
|
||||
Requires: bash
|
||||
# Required for use with HAVE_DRACUT=1
|
||||
Requires: dracut
|
||||
Requires: multipath-tools
|
||||
Requires: udev
|
||||
Requires(post): udev
|
||||
|
||||
%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.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
|
||||
@ -234,7 +269,9 @@ export OPT_FLAGS="%{optflags}"
|
||||
export KERNELIMAGE_MAKEFLAGS="%%{?_smp_mflags}"
|
||||
%make_build \
|
||||
ZFCPDUMP_DIR=%{_prefix}/lib/s390-tools/zfcpdump \
|
||||
DISTRELEASE=%{release}
|
||||
DISTRELEASE=%{release} \
|
||||
UDEVRUNDIR=/run/udev \
|
||||
HAVE_DRACUT=1
|
||||
gcc -static -o read_values ${OPT_FLAGS} %{SOURCE86} -lqc
|
||||
|
||||
%install
|
||||
@ -244,6 +281,7 @@ mkdir -p %{buildroot}%{_sysconfdir}/zkey/repository
|
||||
ZFCPDUMP_DIR=%{_prefix}/lib/s390-tools/zfcpdump \
|
||||
DISTRELEASE=%{release} \
|
||||
SYSTEMDSYSTEMUNITDIR=%{_unitdir} \
|
||||
UDEVRUNDIR=/run/udev \
|
||||
HAVE_DRACUT=1
|
||||
|
||||
# The make install command puts things in /etc/sysconfig and not the
|
||||
@ -258,8 +296,13 @@ popd
|
||||
install -m 755 read_values %{buildroot}/%{_bindir}/
|
||||
install -m644 -t %{buildroot}/%{_mandir}/man8 %{SOURCE87}
|
||||
|
||||
export ROOT_BUILD_DIR="%{_builddir}/%{name}-%{version}/zfcpdump/kernel"
|
||||
# The "usrmerge" has happened in openSUSE:Factory, but not yet in SLES.
|
||||
# Make sure we look for the zfcpdump kernel image in the right place.
|
||||
%if 0%{?usrmerged}
|
||||
install -D -m600 %{_prefix}/lib/modules/*-zfcpdump/image %{buildroot}%{_prefix}/lib/s390-tools/zfcpdump/zfcpdump-image
|
||||
%else
|
||||
install -D -m600 /boot/image-*-zfcpdump %{buildroot}%{_prefix}/lib/s390-tools/zfcpdump/zfcpdump-image
|
||||
%endif
|
||||
|
||||
install -D -m644 etc/cpuplugd.conf %{buildroot}%{_sysconfdir}/cpuplugd.conf
|
||||
install -D -m644 etc/udev/rules.d/40-z90crypt.rules %{buildroot}%{_prefix}/lib/udev/rules.d/40-z90crypt.rules
|
||||
@ -343,7 +386,7 @@ rm -fv %{buildroot}/%{_sbindir}/chmem
|
||||
|
||||
find . ! -type d |
|
||||
sed 's/^.//;\-/man/-s/^.*$/%doc &.gz/' > %{_builddir}/%{name}-filelist
|
||||
grep -v -E 'osasnmp|*\.conf$|ekmfweb.so|ekmfweb.h' %{_builddir}/%{name}-filelist >%{_builddir}/%{name}.list
|
||||
grep -v -E 'osasnmp|*\.conf$|ekmfweb.so|ekmfweb.h|kmipclient|kmip/profiles/*\.profile|chreipl-fcp-mpath' %{_builddir}/%{name}-filelist >%{_builddir}/%{name}.list
|
||||
grep osasnmp[^-] %{_builddir}/%{name}-filelist >%{_builddir}/%{name}.osasnmp
|
||||
|
||||
touch boot/zipl/active_devices.txt
|
||||
@ -435,6 +478,12 @@ grep -q '^%{_bindir}/ts-shell$' %{_sysconfdir}/shells \
|
||||
%post -n libekmfweb1
|
||||
ldconfig
|
||||
|
||||
%post -n libkmipclient1
|
||||
ldconfig
|
||||
|
||||
%post chreipl-fcp-mpath
|
||||
%udev_rules_update
|
||||
|
||||
%preun
|
||||
%service_del_preun appldata.service
|
||||
%service_del_preun cio_ignore.service
|
||||
@ -466,6 +515,9 @@ ldconfig
|
||||
%postun -n libekmfweb1
|
||||
ldconfig
|
||||
|
||||
%postun -n libkmipclient1
|
||||
ldconfig
|
||||
|
||||
# Even though SLES15+ is systemd based, the build service doesn't
|
||||
# run it, so we have to make sure we can safely issue the
|
||||
# systemctl command.
|
||||
@ -496,7 +548,7 @@ fi
|
||||
%{stop_on_removal osasnmpd}
|
||||
|
||||
%files -f %{_builddir}/%{name}.list
|
||||
%defattr(-,root,root)
|
||||
|
||||
%doc README.md
|
||||
%doc README.SUSE
|
||||
|
||||
@ -509,7 +561,10 @@ fi
|
||||
%config %attr(0640,root,ts-shell) %{_sysconfdir}/iucvterm/ts-shell.conf
|
||||
%config %attr(0640,root,ts-shell) %{_sysconfdir}/iucvterm/unrestricted.conf
|
||||
%dir %attr(0770,root,zkeyadm) %{_sysconfdir}/zkey
|
||||
%dir %attr(0770,root,zkeyadm) %{_sysconfdir}/zkey/kmip
|
||||
%dir %attr(0770,root,zkeyadm) %{_sysconfdir}/zkey/kmip/profiles
|
||||
%dir %attr(0770,root,zkeyadm) %{_sysconfdir}/zkey/repository
|
||||
%config %{_sysconfdir}/zkey/kmip/profiles/*
|
||||
%config %{_sysconfdir}/modprobe.d/90-s390-tools.conf
|
||||
%config %{_sysconfdir}/cpuplugd.conf
|
||||
%config %{_sysconfdir}/zkey/kms-plugins.conf
|
||||
@ -540,24 +595,20 @@ fi
|
||||
%exclude %{_mandir}/man8/lshmc.8.gz
|
||||
|
||||
%files -n osasnmpd -f %{_builddir}/%{name}.osasnmp
|
||||
%defattr(-,root,root)
|
||||
%{_libexecdir}/net-snmp/agents/osasnmpd
|
||||
|
||||
%files zdsfs
|
||||
%defattr(-,root,root)
|
||||
%doc CAUTION
|
||||
%{_bindir}/zdsfs
|
||||
%{_mandir}/man1/zdsfs.1%{?ext_man}
|
||||
|
||||
%files hmcdrvfs
|
||||
%defattr(-,root,root)
|
||||
%{_bindir}/hmcdrvfs
|
||||
%{_sbindir}/lshmc
|
||||
%{_mandir}/man1/hmcdrvfs.1%{?ext_man}
|
||||
%{_mandir}/man8/lshmc.8%{?ext_man}
|
||||
|
||||
%files -n libekmfweb1
|
||||
%defattr(-,root,root)
|
||||
%{_libdir}/libekmfweb.so.*
|
||||
|
||||
%files -n libekmfweb1-devel
|
||||
@ -565,4 +616,28 @@ fi
|
||||
%dir %attr(755,root,root) %{_includedir}/ekmfweb
|
||||
%attr(644,root,root) %{_includedir}/ekmfweb/ekmfweb.h
|
||||
|
||||
%files -n libkmipclient1
|
||||
%{_libdir}/libkmipclient.so.*
|
||||
|
||||
%files -n libkmipclient1-devel
|
||||
%{_libdir}/libkmipclient.so
|
||||
%dir %attr(755,root,root) %{_includedir}/kmipclient
|
||||
%attr(644,root,root) %{_includedir}/kmipclient/kmipclient.h
|
||||
|
||||
%files chreipl-fcp-mpath
|
||||
%doc chreipl-fcp-mpath/README.md
|
||||
## Requires build+install with ENABLE_DOC=1
|
||||
#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
|
||||
## Requires build+install with ENABLE_DOC=1
|
||||
#{_mandir}/man7/chreipl-fcp-mpath.7.gz
|
||||
|
||||
%changelog
|
||||
|
Loading…
Reference in New Issue
Block a user