# # spec file for package s390-tools # # Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # # needssslcertforbuild #Compat macro for new _fillupdir macro introduced in Nov 2017 %if ! %{defined _fillupdir} %define _fillupdir %{_localstatedir}/adm/fillup-templates %endif %if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150300 # systemd-rpm-macros is wrong in 15.3 and below %define _modprobedir /lib/modprobe.d %endif %global modprobe_d_files 90-s390-tools.conf %if 0%{?suse_version} >= 1550 %define _mysbindir %{_sbindir} %else %define _mysbindir /sbin %endif Name: s390-tools Version: 2.31.0 Release: 0 Summary: S/390 tools like zipl and dasdfmt for s390x (plus selected tools for x86_64) License: MIT Group: System/Kernel URL: https://github.com/ibm-s390-tools/s390-tools Source: https://github.com/ibm-s390-tools/s390-tools/archive/v%{version}.tar.gz#/s390-tools-%{version}.tar.gz Source1: s390-tools-rpmlintrc Source2: zipl.conf Source3: hsnc Source4: sysconfig.hsnc Source5: xpram Source6: sysconfig.xpram Source7: appldata Source8: sysconfig.appldata Source10: dasdro %if 0%{?suse_version} >= 1550 Source11: dasd_reload.opensuse Source12: mkdump.pl.opensuse %else Source11: dasd_reload.suse Source12: mkdump.pl.suse %endif Source13: sysconfig.osasnmpd Source14: zfcp_san_disc Source15: mkdump.8 Source18: zpxe.rexx Source19: rules.xpram Source20: rules.hw_random %if 0%{?suse_version} >= 1550 Source21: 59-graf.rules.opensuse %else Source21: 59-graf.rules.suse %endif Source22: s390-tools-zdsfs.caution.txt %if 0%{?suse_version} >= 1550 Source23: README.SUSE.opensuse %else Source23: README.SUSE.suse %endif Source24: cputype Source25: cputype.1 Source26: cio_ignore.service Source27: setup_cio_ignore.sh Source28: 59-prng.rules Source29: 59-zfcp-compat.rules Source30: 90-s390-tools.conf %if 0%{?suse_version} >= 1550 Source31: detach_disks.sh.opensuse Source32: killcdl.opensuse %else Source31: detach_disks.sh.suse Source32: killcdl.suse %endif Source33: lgr_check Source34: sysconfig.virtsetup Source35: virtsetup.service %if 0%{?suse_version} >= 1550 Source36: virtsetup.sh.opensuse %else Source36: virtsetup.sh.suse %endif Source37: appldata.service Source38: hsnc.service %if 0%{?suse_version} >= 1550 Source39: vmlogrdr.service.opensuse %else Source39: vmlogrdr.service.suse %endif Source40: xpram.service Source41: pkey.conf ### Obsolete scripts and man pages to be removed once changes in other tools are made ### That's been delayed to at least SLES12 SP1, but I'm leaving the comments here. Source86: read_values.c Source87: read_values.8 Source88: ctc_configure %if 0%{?suse_version} >= 1550 Source89: dasd_configure.opensuse Source90: iucv_configure.opensuse %else Source89: dasd_configure.suse Source90: iucv_configure.suse %endif Source91: qeth_configure Source92: zfcp_disk_configure Source93: zfcp_host_configure Source94: ctc_configure.8 Source95: dasd_configure.8 Source96: iucv_configure.8 Source97: qeth_configure.8 Source98: zfcp_disk_configure.8 Source99: zfcp_host_configure.8 ### Source200: cargo_config Source201: vendor.tar.gz ### ### # IBM patches ### # SUSE patches Patch900: s390-tools-sles12-zipl_boot_msg.patch Patch901: s390-tools-sles15-sysconfig-compatible-dumpconf.patch Patch902: s390-tools-sles12-create-filesystem-links.patch %if 0%{?suse_version} >= 1550 Patch903: s390-tools-sles12-update-by_id-links-on-change-and-add-action.patch.opensuse %else Patch903: s390-tools-sles12-update-by_id-links-on-change-and-add-action.patch.suse %endif Patch904: s390-tools-sles15sp3-Allow-multiple-device-arguments.patch Patch905: s390-tools-sles15sp3-Format-devices-in-parallel.patch Patch906: s390-tools-sles15sp3-Implement-Y-yast_mode.patch 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-sles15sp5-remove-no-pie-link-arguments.patch Patch912: s390-tools-ALP-zdev-live.patch Patch913: s390-tools-sles15sp6-kdump-initrd-59-zfcp-compat-rules.patch Patch914: s390-tools-sles15sp6-genprotimg-makefile.patch Patch915: s390-tools-slfo-01-parse-ipl-device-for-activation.patch ### SE-tooling: New IBM host-key subject locality (s390-tools) Patch916: s390-tools-sles15sp5-01-rust-pv-support-Armonk-in-IBM-signing-key-subject.patch Patch917: s390-tools-sles15sp6-02-genprotimg-support-Armonk-in-IBM-signing-key-subject.patch Patch918: s390-tools-sles15sp6-03-libpv-support-Armonk-in-IBM-signing-key-subject.patch Patch919: s390-tools-sles15sp6-04-pvattest-Fix-root-ca-parsing.patch ### BuildRequires: curl-devel BuildRequires: dracut BuildRequires: fuse3-devel BuildRequires: gcc13 BuildRequires: gcc13-c++ BuildRequires: gettext-tools BuildRequires: glib2-devel BuildRequires: glibc-devel-static BuildRequires: libcryptsetup-devel > 2.0.3 BuildRequires: libjson-c-devel BuildRequires: libxml2-devel BuildRequires: mdevctl BuildRequires: ncurses-devel BuildRequires: net-snmp-devel BuildRequires: openssl-devel >= 1.1.1l BuildRequires: pesign-obs-integration BuildRequires: systemd-devel BuildRequires: tcpd-devel BuildRequires: zlib-devel-static ### s390x %ifarch s390x BuildRequires: kernel-zfcpdump BuildRequires: qclib-devel-static %endif ### Cargo BuildRequires: rust BuildRequires: cargo BuildRequires: cargo-packaging BuildRequires: openssl ### # Don't build with pie to avoid problems with zipl #!BuildIgnore: gcc-PIE Requires: coreutils Requires: procps Requires: util-linux %ifarch s390x Requires: gawk Requires: perl-base Requires: rsync Requires: s390-tools-genprotimg-data Requires: tar %endif Requires(post): %fillup_prereq Requires(post): permissions Requires(pre): shadow Recommends: blktrace Provides: s390utils:/sbin/dasdfmt Provides: group(cpacfstats) Provides: group(ts-shell) Provides: group(zkeyadm) %ifarch x86_64 Recommends: s390-tools-genprotimg-data %endif ### ExclusiveArch: s390x x86_64 %description This package contains the tools (s390x, x86_64) needed to use Linux on IBM z Systems and exploit many of the various capabilities of the hardware or z/VM. For example: - s390x dasdfmt - low-level format tool for ECKD DASD fdasd - partitions ECKD DASDs with z/OS compatible disk layout zipl - boot loader and dump DASD initializer zgetdump - tool to get linux system dumps from DASD - x86_64 genprotimg - create a protected virtualization image pvattest - create, perform, and verify protected virtualization attestation measurements pvsecret - manage secrets for IBM Secure Execution guests. pvapconfig - used to automatically set up the AP configuration within an IBM Secure Execution guest. Note: Auxiliary data package - s390-tools-genprotimg-data %package -n osasnmpd Summary: OSA-Express SNMP subagent License: GPL-2.0-or-later Group: Productivity/Networking/Other Requires: perl %description -n osasnmpd Supports management information bases (MIBs) provided by OSA-Express Fast Ethernet, Gigabit Ethernet, High Speed Token Ring and ATM Ethernet LAN Emulation features in QDIO mode. It extends the capabilities of the net-snmp master agent (snmpd) and communicates with him via the AgentX protocol. %package zdsfs Summary: QSAM access to z/OS data License: GPL-2.0-or-later AND NonFree Group: Productivity/Networking/Other %description zdsfs Use the zdsfs command for read access to z/OS data sets stored on one or more DASDs. The zdsfs file system translates the record-based z/OS data sets to UNIX file system semantics. After mounting the devices, you can use common Linux tools to access the files on the disk. Physical sequential data sets are represented as files. Partitioned data sets are represented as directories, with each member being represented as a file in that directory. %package hmcdrvfs Summary: HMC drive file system based on FUSE License: GPL-2.0-only Group: System/Filesystems Requires: fuse %description hmcdrvfs This package contains a HMC drive file system based on FUSE and a tool to list files and directories. %package -n libekmfweb1 Summary: IBM Enterprise Key Management Foundation - Web Edition client library License: MIT Group: System/Libraries %description -n libekmfweb1 libekmfweb1 is a client library that provides access to IBM' Enterprise Key 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 libekmfweb1-devel Summary: IBM Enterprise Key Management Foundation - Web Edition client library License: MIT Group: Development/Libraries/C and C++ Requires: libekmfweb1 = %{version} %description -n libekmfweb1-devel libekmfweb1 is a client library that provides access to IBM' Enterprise Key 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. %package genprotimg-data Summary: Auxiliary data used by genprotimg License: MIT Group: System/Boot BuildArch: noarch Requires(pre): filesystem %description genprotimg-data The genprotimg allows preparing and analyzing boot images in the realm of IBM Secure Execution on a trusted environment, such as the laptop of an admin by limiting the build targets depending on the defined or detected host architecture. This package provides auxiliary data used by genprotimg. ### *** s390x ************************************************************************* ### %ifarch s390x %prep %autosetup -p1 cp -vi %{SOURCE22} CAUTION install -D -m 0644 %{SOURCE200} .cargo/config tar -xzf %{SOURCE201} %build # The "DISTRELEASE=%%{release}" needs to be on both the make and make install # commands, since make install runs sed commands against various scripts to # modify the "-v" output appropriately. export OPT_FLAGS="%{optflags}" export KERNELIMAGE_MAKEFLAGS="%%{?_smp_mflags}" %make_build \ ZFCPDUMP_DIR=%{_prefix}/lib/s390-tools/zfcpdump \ DISTRELEASE=%{release} \ UDEVRUNDIR=/run/udev \ HAVE_CARGO=1 \ HAVE_DRACUT=1 \ CC=gcc-13 \ CXX=g++-13 ### all gcc-13 -static -o read_values ${OPT_FLAGS} %{SOURCE86} -lqc %install mkdir -p %{buildroot}/boot/zipl mkdir -p %{buildroot}%{_sysconfdir}/zkey/repository %make_install \ ZFCPDUMP_DIR=%{_prefix}/lib/s390-tools/zfcpdump \ DISTRELEASE=%{release} \ SYSTEMDSYSTEMUNITDIR=%{_unitdir} \ UDEVRUNDIR=/run/udev \ HAVE_CARGO=1 \ HAVE_DRACUT=1 \ CC=gcc-13 \ CXX=g++-13 ### all # The make install command puts things in /etc/sysconfig and not the # fillup-templates directory. Let's try moving them where they belong mkdir -p %{buildroot}%{_fillupdir} pushd %{buildroot}%{_sysconfdir}/sysconfig/ for sysconffile in * do mv -vi $sysconffile %{buildroot}%{_fillupdir}/sysconfig.$sysconffile done popd install -m 755 read_values %{buildroot}/%{_bindir}/ install -m644 -t %{buildroot}/%{_mandir}/man8 %{SOURCE87} # 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%{?suse_version} >= 1550 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 install -D -m644 etc/udev/rules.d/57-osasnmpd.rules %{buildroot}%{_prefix}/lib/udev/rules.d/57-osasnmpd.rules install -D -m644 etc/udev/rules.d/59-dasd.rules %{buildroot}%{_prefix}/lib/udev/rules.d/59-dasd.rules install -D -m644 etc/udev/rules.d/90-cpi.rules %{buildroot}%{_prefix}/lib/udev/rules.d/90-cpi.rules mv iucvterm/doc/ts-shell/iucvconn_on_login %{buildroot}%{_bindir}/iucvconn_on_login install -D -m644 %{SOURCE26} %{buildroot}/%{_unitdir}/cio_ignore.service install -D -m755 %{SOURCE27} %{buildroot}%{_prefix}/lib/systemd/scripts/setup_cio_ignore.sh install -D -m755 %{SOURCE31} %{buildroot}%{_prefix}/lib/systemd/scripts/detach_disks.sh install -D -m644 %{SOURCE35} %{buildroot}/%{_unitdir}/virtsetup.service install -D -m755 %{SOURCE36} %{buildroot}%{_prefix}/lib/systemd/scripts/virtsetup.sh install -D -m644 %{SOURCE37} %{buildroot}/%{_unitdir}/appldata.service install -D -m644 %{SOURCE38} %{buildroot}/%{_unitdir}/hsnc.service install -D -m644 %{SOURCE39} %{buildroot}/%{_unitdir}/vmlogrdr.service install -D -m644 %{SOURCE40} %{buildroot}/%{_unitdir}/xpram.service install -D -m644 %{SOURCE41} %{buildroot}%{_prefix}/lib/modules-load.d/pkey.conf cp %{SOURCE18} zpxe.rexx cp %{SOURCE2} zipl.conf.sample cp %{SOURCE23} README.SUSE cd %{buildroot} install -D -m755 %{SOURCE3} %{buildroot}%{_prefix}/lib/systemd/scripts/hsnc install -D -m644 %{SOURCE4} %{buildroot}%{_fillupdir}/sysconfig.hsnc install -D -m755 %{SOURCE5} %{buildroot}%{_prefix}/lib/systemd/scripts/xpram install -D -m644 %{SOURCE6} %{buildroot}%{_fillupdir}/sysconfig.xpram install -D -m755 %{SOURCE7} %{buildroot}%{_prefix}/lib/systemd/scripts/appldata install -D -m644 %{SOURCE8} %{buildroot}%{_fillupdir}/sysconfig.appldata install -D -m755 %{SOURCE10} %{buildroot}%{_mysbindir}/dasdro install -D -m755 %{SOURCE11} %{buildroot}%{_mysbindir}/dasd_reload install -D -m755 %{SOURCE12} %{buildroot}%{_mysbindir}/mkdump install -D -m644 %{SOURCE13} %{buildroot}%{_fillupdir}/sysconfig.osasnmpd install -D -m755 %{SOURCE14} %{buildroot}%{_mysbindir}/zfcp_san_disc install -D -m644 %{SOURCE15} %{buildroot}/%{_mandir}/man8 install -D -m644 %{SOURCE19} %{buildroot}%{_prefix}/lib/udev/rules.d/52-xpram.rules install -D -m644 %{SOURCE20} %{buildroot}%{_prefix}/lib/udev/rules.d/52-hw_random.rules install -D -m644 %{SOURCE21} %{buildroot}%{_prefix}/lib/udev/rules.d/59-graf.rules install -D -m644 %{SOURCE28} %{buildroot}%{_prefix}/lib/udev/rules.d/59-prng.rules install -D -m644 %{SOURCE29} %{buildroot}%{_prefix}/lib/udev/rules.d/59-zfcp-compat.rules install -D -m644 %{SOURCE30} %{buildroot}%{_modprobedir}/90-s390-tools.conf install -D -m755 %{SOURCE32} %{buildroot}%{_mysbindir}/killcdl install -D -m755 %{SOURCE33} %{buildroot}%{_mysbindir}/lgr_check install -D -m644 %{SOURCE34} %{buildroot}%{_fillupdir}/sysconfig.virtsetup if [ ! -d %{_mysbindir} ]; then rm -f %{_mysbindir} mkdir -p %{_mysbindir} fi (cd %{buildroot}%{_sbindir}; ln -s service rcappldata) (cd %{buildroot}%{_sbindir}; ln -s service rchsnc) (cd %{buildroot}%{_sbindir}; ln -s service rcvmlogrdr) (cd %{buildroot}%{_sbindir}; ln -s service rcxpram) (cd %{buildroot}%{_sbindir}; ln -s service rccio_ignore) (cd %{buildroot}%{_sbindir}; ln -s service rccpacfstatsd) (cd %{buildroot}%{_sbindir}; ln -s service rccpi) (cd %{buildroot}%{_sbindir}; ln -s service rccpuplugd) (cd %{buildroot}%{_sbindir}; ln -s service rcdumpconf) (cd %{buildroot}%{_sbindir}; ln -s service rcmon_fsstatd) (cd %{buildroot}%{_sbindir}; ln -s service rcmon_procd) (cd %{buildroot}%{_sbindir}; ln -s service rcvirtsetup) if [ ! -d %{_bindir} ]; then rm -f %{_bindir} mkdir -p %{_bindir} fi install -D -m755 %{SOURCE24} %{buildroot}%{_bindir}/cputype install -m644 -t %{buildroot}/%{_mandir}/man8 %{SOURCE25} # If building for openSUSE, move all the binaries installed via # the IBM-provided Makefile from /sbin to /usr/sbin/ to # align with the openSUSE "usrmerge" project %if 0%{?suse_version} >= 1550 mv -vi %{buildroot}/sbin/* %{buildroot}%{_mysbindir}/ %endif ### Obsolete scripts and man pages to be removed once changes in other tools are made install -m755 -t %{buildroot}%{_mysbindir}/ %{SOURCE88} %{SOURCE91} %{SOURCE92} %{SOURCE93} install %{SOURCE89} %{buildroot}%{_mysbindir}/dasd_configure install %{SOURCE90} %{buildroot}%{_mysbindir}/iucv_configure install -m644 -t %{buildroot}/%{_mandir}/man8 %{SOURCE94} %{SOURCE95} %{SOURCE96} %{SOURCE97} %{SOURCE98} %{SOURCE99} ### ### lsmem/chmem have been added to util-linux rm -fv %{buildroot}%{_mandir}/man8/lsmem.8* rm -fv %{buildroot}%{_mandir}/man8/chmem.8* rm -fv %{buildroot}%{_mysbindir}/lsmem rm -fv %{buildroot}%{_mysbindir}/chmem ### find . ! -type d | sed 's/^.//;\-/man/-s/^.*$/%doc &.gz/' > %{_builddir}/%{name}-filelist grep -v -E 'osasnmp|etc/ziplenv|\.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 mkdir -p ./%{_libexecdir}/net-snmp/agents cd ./%{_libexecdir}/net-snmp/agents cat <osasnmpd #!/bin/sh PIDFILE=%{_localstatedir}/run/osasnmpd.pid function cleanup { rm -f \$PIDFILE kill \`cat %{_localstatedir}/run/osasnmpd.real.pid\` } . %{_sysconfdir}/sysconfig/osasnmpd trap cleanup 0 echo \$\$ >\$PIDFILE %{_mysbindir}/osasnmpd -f -P %{_localstatedir}/run/osasnmpd.real.pid \$OSASNMPD_PARAMETERS "\$@" EOT chmod 755 osasnmpd export BRP_PESIGN_FILES='/lib/s390-tools/stage3.bin' %verifyscript %verify_permissions -e %{_localstatedir}/log/ts-shell/ %pre # check for ts-shell group or create it getent group ts-shell >/dev/null 2>&1 || groupadd -r ts-shell # check for zkeyadm group or create it getent group zkeyadm >/dev/null 2>&1 || groupadd -r zkeyadm # check for cpacfstats group or create it getent group cpacfstats >/dev/null 2>&1 || groupadd -r cpacfstats %service_add_pre appldata.service %service_add_pre cio_ignore.service %service_add_pre cpacfstatsd.service %service_add_pre cpi.service %service_add_pre cpuplugd.service %service_add_pre dumpconf.service %service_add_pre hsnc.service %service_add_pre mon_fsstatd.service %service_add_pre mon_procd.service %service_add_pre virtsetup.service %service_add_pre vmlogrdr.service %service_add_pre xpram.service # Avoid restoring outdated stuff in posttrans for _f in %{?modprobe_d_files}; do [ ! -f "/etc/modprobe.d/${_f}.rpmsave" ] || \ mv -f "/etc/modprobe.d/${_f}.rpmsave" "/etc/modprobe.d/${_f}.rpmsave.old" || : done %post read INITPGM < /proc/1/comm if [ "${INITPGM}" = "systemd" ]; then echo "Running systemctl daemon-reload." systemctl daemon-reload fi %set_permissions %{_localstatedir}/log/ts-shell/ # Create symbolic links to the scripts from setup and boot directories %service_add_post appldata.service %service_add_post cio_ignore.service %service_add_post cpacfstatsd.service %service_add_post cpi.service %service_add_post cpuplugd.service %service_add_post dumpconf.service %service_add_post hsnc.service %service_add_post mon_fsstatd.service %service_add_post mon_procd.service %service_add_post virtsetup.service %service_add_post vmlogrdr.service %service_add_post xpram.service # Create the initial versions of the sysconfig files: %{fillup_only -n appldata} %{fillup_only -n cpi} %{fillup_only -n dumpconf} %{fillup_only -n hsnc} %{fillup_only -n mon_fsstatd} %{fillup_only -n mon_procd} %{fillup_only -n mon_statd} %{fillup_only -n virtsetup} %{fillup_only -n xpram} %triggerin -- kernel-default grep -q '^%{_bindir}/ts-shell$' %{_sysconfdir}/shells \ || echo "%{_bindir}/ts-shell" >> %{_sysconfdir}/shells %{?regenerate_initrd_post} %post -n osasnmpd %{fillup_only -n osasnmpd} %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 %service_del_preun cpacfstatsd.service %service_del_preun cpi.service %service_del_preun cpuplugd.service %service_del_preun dumpconf.service %service_del_preun hsnc.service %service_del_preun mon_fsstatd.service %service_del_preun mon_procd.service %service_del_preun virtsetup.service %service_del_preun vmlogrdr.service %service_del_preun xpram.service %postun %service_del_postun appldata.service %service_del_postun cio_ignore.service %service_del_postun cpacfstatsd.service %service_del_postun cpi.service %service_del_postun cpuplugd.service %service_del_postun dumpconf.service %service_del_postun hsnc.service %service_del_postun mon_fsstatd.service %service_del_postun mon_procd.service %service_del_postun virtsetup.service %service_del_postun vmlogrdr.service %service_del_postun xpram.service %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. read INITPGM < /proc/1/comm if [ "${INITPGM}" = "systemd" ]; then echo "Running systemctl daemon-reload." systemctl daemon-reload fi if [ ! -x /boot/zipl ]; then echo "Attention, after uninstalling this package," echo "you will NOT be able to IPL from DASD anymore!!!" fi if test x$1 = x0; then # remove ts-shell from /etc/shells grep -v '^%{_bindir}/ts-shell$' %{_sysconfdir}/shells > %{_sysconfdir}/shells.ts-new mv %{_sysconfdir}/shells.ts-new %{_sysconfdir}/shells chmod 0644 %{_sysconfdir}/shells fi %{?regenerate_initrd_post} %posttrans # Migration of modprobe.conf files to _modprobedir for _f in %{?modprobe_d_files}; do [ ! -f "/etc/modprobe.d/${_f}.rpmsave" ] || \ mv -fv "/etc/modprobe.d/${_f}.rpmsave" "/etc/modprobe.d/${_f}" || : done %{?regenerate_initrd_posttrans} %preun -n osasnmpd %{stop_on_removal osasnmpd} %files -f %{_builddir}/%{name}.list %doc README.md %doc README.SUSE %doc iucvterm/doc/ts-shell %doc zpxe.rexx %doc zipl.conf.sample %dir %{_sysconfdir}/iucvterm %config %attr(0640,root,ts-shell) %{_sysconfdir}/iucvterm/ts-audit-systems.conf %config %attr(0640,root,ts-shell) %{_sysconfdir}/iucvterm/ts-authorization.conf %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(noreplace) %{_sysconfdir}/ziplenv %dir %{_modprobedir} %{_modprobedir}/90-s390-tools.conf %config %{_sysconfdir}/cpuplugd.conf %config %{_sysconfdir}/zkey/kms-plugins.conf %config(noreplace) /boot/zipl/active_devices.txt %dir %attr(2770,root,ts-shell) %{_localstatedir}/log/ts-shell %dir %{_sysconfdir}/cmsfs-fuse %config %attr(0640,root,root) %{_sysconfdir}/cmsfs-fuse/filetypes.conf %dir %{_prefix}/lib/mdevctl %dir %{_prefix}/lib/mdevctl/scripts.d %dir %{_prefix}/lib/mdevctl/scripts.d/callouts %dir %{_prefix}/lib/s390-tools %dir %{_prefix}/lib/s390-tools/zfcpdump %dir %{_prefix}/lib/udev/rules.d %dir %{_prefix}/lib/systemd/scripts %dir %{_datadir}/s390-tools %dir %{_datadir}/s390-tools/netboot %dir %{_datadir}/s390-tools/genprotimg %dir %{_prefix}/lib/dracut/modules.d/95zdev %dir %{_prefix}/lib/dracut/modules.d/95zdev-kdump %dir %{_prefix}/lib/dracut/modules.d/96zdev-live %dir %{_prefix}/lib/dracut/modules.d/99ngdump %dir /boot/zipl %dir %{_libdir}/zkey %{_libdir}/zkey/zkey-ekmfweb.so %dir /lib/s390-tools/ /lib/s390-tools/zipl.conf %{_prefix}/lib/modules-load.d/pkey.conf %exclude %{_prefix}/lib/udev/rules.d/57-osasnmpd.rules %exclude %{_bindir}/zdsfs %exclude %{_bindir}/hmcdrvfs %exclude %{_sbindir}/lshmc %exclude %{_mandir}/man1/zdsfs.1.gz %exclude %{_mandir}/man1/hmcdrvfs.1.gz %exclude %{_mandir}/man8/lshmc.8.gz ### %dir /etc/mdevctl.d/scripts.d/ %dir /etc/mdevctl.d/scripts.d/callouts/ ### %exclude /lib/s390-tools/stage3.bin %exclude %{_datadir}/s390-tools/genprotimg/stage3a.bin %exclude %{_datadir}/s390-tools/genprotimg/stage3b_reloc.bin ### %files -n osasnmpd -f %{_builddir}/%{name}.osasnmp %{_libexecdir}/net-snmp/agents/osasnmpd %files zdsfs %doc CAUTION %{_bindir}/zdsfs %{_mandir}/man1/zdsfs.1%{?ext_man} %files hmcdrvfs %{_bindir}/hmcdrvfs %{_sbindir}/lshmc %{_mandir}/man1/hmcdrvfs.1%{?ext_man} %{_mandir}/man8/lshmc.8%{?ext_man} %files -n libekmfweb1 %{_libdir}/libekmfweb.so.* %files -n libekmfweb1-devel %{_libdir}/libekmfweb.so %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 %{_mandir}/man7/chreipl-fcp-mpath.7%{?ext_man} ### genprotimg %files genprotimg-data /lib/s390-tools/stage3.bin %{_datadir}/s390-tools/genprotimg/stage3a.bin %{_datadir}/s390-tools/genprotimg/stage3b_reloc.bin ### _endif ### *** !s390x ************************************************************************* ### ### _ifarch x86_64 %else %prep %autosetup -p1 install -D -m 0644 %{SOURCE200} .cargo/config tar -xzf %{SOURCE201} %build export OPT_FLAGS="%{optflags}" export KERNELIMAGE_MAKEFLAGS="%%{?_smp_mflags}" %make_build \ DISTRELEASE=%{release} \ UDEVRUNDIR=/run/udev \ HAVE_CARGO=1 \ HAVE_DRACUT=1 %install %make_install \ DISTRELEASE=%{release} \ SYSTEMDSYSTEMUNITDIR=%{_unitdir} \ UDEVRUNDIR=/run/udev \ HAVE_CARGO=1 \ HAVE_DRACUT=1 %files %{_prefix}/bin/* %dir %{_datadir}/s390-tools %dir %{_datadir}/s390-tools/genprotimg %{_datadir}/s390-tools/genprotimg/check_hostkeydoc %{_mandir}/man1/* %endif %changelog