s390-tools/s390-tools.spec

476 lines
16 KiB
RPMSpec

#
# spec file for package s390-tools
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#
Name: s390-tools
Version: 2.1.0
Release: 0
Url: https://github.com/ibm-s390-tools/s390-tools
Summary: S/390 tools like zipl and dasdfmt
License: MIT
Group: System/Kernel
BuildRequires: dracut
BuildRequires: fuse-devel
BuildRequires: gcc-c++
BuildRequires: gettext-tools
BuildRequires: glibc-devel-static
BuildRequires: kernel-zfcpdump
BuildRequires: libpfm-devel
BuildRequires: ncurses-devel
BuildRequires: net-snmp-devel
BuildRequires: qclib-devel-static
BuildRequires: tcpd-devel
BuildRequires: zlib-devel-static
PreReq: shadow %insserv_prereq %fillup_prereq dracut permissions
Requires: coreutils
Requires: gawk
Requires: perl-base
Requires: procps
Requires: rsync
Requires: tar
Requires: util-linux
Provides: s390utils:/sbin/dasdfmt
# Don't build with pie to avoid problems with zipl
#!BuildIgnore: gcc-PIE
Source: 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
Source9: vmlogrdr
Source10: dasdro
Source11: dasd_reload
Source12: mkdump.pl
Source13: sysconfig.osasnmpd
Source14: zfcp_san_disc
Source15: mkdump.8
Source18: zpxe.rexx
Source19: rules.xpram
Source20: rules.hw_random
Source21: 59-graf.rules
Source22: s390-tools-zdsfs.caution.txt
Source23: README.SUSE
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
Source31: detach_disks.sh
Source32: killcdl
Source33: lgr_check
Source34: sysconfig.virtsetup
Source35: virtsetup.service
Source36: virtsetup.sh
### 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
Source89: dasd_configure
Source90: iucv_configure
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
###
Patch1: s390-tools-sles12-zipl_boot_msg.patch
Patch2: s390-tools-sles12-sysconfig-compatible-dumpconf.patch
Patch3: s390-tools-sles12-create-filesystem-links.patch
Patch4: s390-tools-sles12-update-by_id-links-on-change-and-add-action.patch
Patch5: s390-tools-sles15-Fixup-dasdfmt_get_volser.patch
Patch6: s390-tools-sles15-Fixup-device-name-handling.patch
Patch7: s390-tools-sles15-Drop-device_id-parameter.patch
Patch8: s390-tools-sles15-Allow-multiple-device-arguments.patch
Patch9: s390-tools-sles15-Format-devices-in-parallel.patch
Patch10: s390-tools-sles15-Implement-Y-yast_mode.patch
Patch11: s390-tools-sles15-Implement-f-for-backwards-compability.patch
Patch12: dasdfmt-retry-BIODASDINFO-if-device-is-busy.patch
Patch13: 59-dasd.rules-wait_for.patch
Patch14: s390-tools-sles12-fdasd-skip-partition-check-and-BLKRRPART-ioctl.patch
Patch15: s390-tools-sles15-Fix-truncation-warning.patch
Patch16: s390-tools-sles15-iucvterm-include-ctype-for-toupper.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: s390 s390x
%description
This package contains the tools needed to use Linux on IBM z Systems
and exploit many of the various capabilities of the hardware or z/VM.
For example:
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
%package -n osasnmpd
Summary: OSA-Express SNMP subagent
License: GPL-2.0+
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+ and SUSE-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
Group: System Environment/Base
Requires: fuse
%description hmcdrvfs
This package contains a HMC drive file system based on FUSE and a tool
to list files and directories.
%prep
%setup -q -n %{name}-%{version}
# SUSE patches
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
cp -vi %{S:22} CAUTION
%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 ZFCPDUMP_DIR=/usr/lib/s390-tools/zfcpdump DISTRELEASE=%{release}
gcc -static -o read_values ${OPT_FLAGS} %{S:86} -lqc
%install
mkdir -p %{buildroot}/boot/zipl
%make_install \
ZFCPDUMP_DIR=/usr/lib/s390-tools/zfcpdump \
DISTRELEASE=%{release} \
SYSTEMDSYSTEMUNITDIR=%{_unitdir}
install -m 755 read_values %{buildroot}/%{_bindir}/
install -m644 -t %{buildroot}/%{_mandir}/man8 %{S:87}
export ROOT_BUILD_DIR="%{_builddir}/%{name}-%{version}/zfcpdump/kernel"
install -D -m600 /boot/image-*-zfcpdump %{buildroot}/usr/lib/s390-tools/zfcpdump/zfcpdump_part.image
install -D -m644 etc/udev/rules.d/40-z90crypt.rules %{buildroot}/usr/lib/udev/rules.d/40-z90crypt.rules
install -D -m644 etc/udev/rules.d/57-osasnmpd.rules %{buildroot}/usr/lib/udev/rules.d/57-osasnmpd.rules
install -D -m644 etc/udev/rules.d/59-dasd.rules %{buildroot}/usr/lib/udev/rules.d/59-dasd.rules
install -D -m644 etc/udev/rules.d/90-cpi.rules %{buildroot}/usr/lib/udev/rules.d/90-cpi.rules
install -D -m644 etc/sysconfig/cpi %{buildroot}/var/adm/fillup-templates/sysconfig.cpi
install -D -m644 etc/sysconfig/dumpconf %{buildroot}/var/adm/fillup-templates/sysconfig.dumpconf
install -D -m644 etc/sysconfig/mon_fsstatd %{buildroot}/var/adm/fillup-templates/sysconfig.mon_fsstatd
install -D -m644 etc/sysconfig/mon_procd %{buildroot}/var/adm/fillup-templates/sysconfig.mon_procd
install -D -m644 etc/sysconfig/mon_statd %{buildroot}/var/adm/fillup-templates/sysconfig.mon_statd
mv iucvterm/doc/ts-shell/iucvconn_on_login %{buildroot}/usr/bin/iucvconn_on_login
install -D -m644 %{S:26} %{buildroot}/%{_unitdir}/cio_ignore.service
install -D -m755 %{S:27} %{buildroot}/usr/lib/systemd/scripts/setup_cio_ignore.sh
install -D -m755 %{S:31} %{buildroot}/usr/lib/systemd/scripts/detach_disks.sh
install -D -m644 %{S:35} %{buildroot}/%{_unitdir}/virtsetup.service
install -D -m755 %{S:36} %{buildroot}/usr/lib/systemd/scripts/virtsetup.sh
cp %{S:18} zpxe.rexx
cp %{S:2} zipl.conf.sample
cp %{S:23} README.SUSE
cd %{buildroot}
install -D -m755 %{S:3} etc/init.d/hsnc
install -D -m644 %{S:4} var/adm/fillup-templates/sysconfig.hsnc
install -D -m755 %{S:5} etc/init.d/xpram
install -D -m644 %{S:6} var/adm/fillup-templates/sysconfig.xpram
install -D -m755 %{S:7} etc/init.d/appldata
install -D -m644 %{S:8} var/adm/fillup-templates/sysconfig.appldata
install -D -m755 %{S:9} etc/init.d/vmlogrdr
install -D -m755 %{S:10} sbin/dasdro
install -D -m755 %{S:11} sbin/dasd_reload
install -D -m755 %{S:12} sbin/mkdump
install -D -m644 %{S:13} var/adm/fillup-templates/sysconfig.osasnmpd
install -D -m755 %{S:14} sbin/zfcp_san_disc
install -D -m644 %{S:15} %{buildroot}/%{_mandir}/man8
install -D -m644 %{S:19} %{buildroot}/usr/lib/udev/rules.d/52-xpram.rules
install -D -m644 %{S:20} %{buildroot}/usr/lib/udev/rules.d/52-hw_random.rules
install -D -m644 %{S:21} %{buildroot}/usr/lib/udev/rules.d/59-graf.rules
install -D -m644 %{S:28} %{buildroot}/usr/lib/udev/rules.d/59-prng.rules
install -D -m644 %{S:29} %{buildroot}/usr/lib/udev/rules.d/59-zfcp-compat.rules
install -D -m644 %{S:30} %{buildroot}/etc/modprobe.d/90-s390-tools.conf
install -D -m755 %{S:32} %{buildroot}/sbin/killcdl
install -D -m755 %{S:33} %{buildroot}/sbin/lgr_check
install -D -m644 %{S:34} var/adm/fillup-templates/sysconfig.virtsetup
if [ ! -d %{_sbindir} ]; then
rm -f %{_sbindir}
mkdir -p %{_sbindir}
fi
(cd usr/sbin; ln -s ../../etc/init.d/appldata rcappldata)
(cd usr/sbin; ln -s ../../etc/init.d/hsnc rchsnc)
(cd usr/sbin; ln -s ../../etc/init.d/vmlogrdr rcvmlogrdr)
(cd usr/sbin; ln -s ../../etc/init.d/xpram rcxpram)
(cd usr/sbin; ln -s service rccio_ignore)
(cd usr/sbin; ln -s service rccpacfstatsd)
(cd usr/sbin; ln -s service rccpi)
(cd usr/sbin; ln -s service rccpuplugd)
(cd usr/sbin; ln -s service rcdumpconf)
(cd usr/sbin; ln -s service rcmon_fsstatd)
(cd usr/sbin; ln -s service rcmon_procd)
(cd usr/sbin; ln -s service rcvirtsetup)
if [ ! -d %{_bindir} ]; then
rm -f %{_bindir}
mkdir -p %{_bindir}
fi
install -D -m755 %{S:24} usr/bin/cputype
install -m644 -t %{buildroot}/%{_mandir}/man8 %{S:25}
### Obsolete scripts and man pages to be removed once changes in other tools are made
install -m755 -t sbin/ %{S:88} %{S:89} %{S:90} %{S:91} %{S:92} %{S:93}
install -m644 -t %{buildroot}/%{_mandir}/man8 %{S:94} %{S:95} %{S:96} %{S:97} %{S:98} %{S:99}
###
### 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}/%{_sbindir}/lsmem
rm -fv %{buildroot}/%{_sbindir}/chmem
find . ! -type d |
%__sed 's/^.//;\-/man/-s/^.*$/%doc &.gz/' > %{_builddir}/%{name}-filelist
grep -v -E 'osasnmp|*\.conf$' %{_builddir}/%{name}-filelist >%{_builddir}/%{name}.list
grep osasnmp[^-] %{_builddir}/%{name}-filelist >%{_builddir}/%{name}.osasnmp
touch boot/zipl/active_devices.txt
mkdir -p usr/lib/net-snmp/agents
cd usr/lib/net-snmp/agents
cat <<EOT >osasnmpd
#!/bin/sh
PIDFILE=/var/run/osasnmpd.pid
function cleanup
{
rm -f \$PIDFILE
kill \`cat /var/run/osasnmpd.real.pid\`
}
. /etc/sysconfig/osasnmpd
trap cleanup 0
echo \$\$ >\$PIDFILE
/usr/sbin/osasnmpd -f -P /var/run/osasnmpd.real.pid \$OSASNMPD_PARAMETERS "\$@"
EOT
chmod 755 osasnmpd
%verifyscript
%verify_permissions -e /var/log/ts-shell
%pre
# check for ts-shell group or create it
getent group ts-shell >/dev/null 2>&1 || groupadd -r ts-shell
%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 mon_fsstatd.service
%service_add_pre mon_procd.service
%service_add_pre virtsetup.service
%post
read INITPGM < /proc/1/comm
if [ "${INITPGM}" == "systemd" ]; then
echo "Running systemctl daemon-reload."
systemctl daemon-reload
fi
%set_permissions /var/log/ts-shell
# Create symbolic links to the scripts from setup and boot directories
%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 mon_fsstatd.service
%service_add_post mon_procd.service
%service_add_post virtsetup.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 '^/usr/bin/ts-shell$' /etc/shells \
|| echo "/usr/bin/ts-shell" >> /etc/shells
%post -n osasnmpd
%{fillup_only -i -n osasnmpd}
%preun
%{stop_on_removal appldata}
%{stop_on_removal hsnc}
%{stop_on_removal vmlogrdr}
%{stop_on_removal xpram}
%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 mon_fsstatd.service
%service_del_preun mon_procd.service
%service_del_preun virtsetup.service
%postun
%{restart_on_update appldata}
%{restart_on_update hsnc}
%{restart_on_update vmlogrdr}
%{restart_on_update xpram}
%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 mon_fsstatd.service
%service_del_postun mon_procd.service
%service_del_postun virtsetup.service
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
%{insserv_cleanup}
if test x$1 = x0; then
# remove ts-shell from /etc/shells
grep -v '^/usr/bin/ts-shell$' /etc/shells > /etc/shells.ts-new
mv /etc/shells.ts-new /etc/shells
chmod 0644 /etc/shells
fi
%preun -n osasnmpd
%{stop_on_removal osasnmpd}
%files -f %{_builddir}/%{name}.list
%defattr(-,root,root)
%doc README.md
%doc README.SUSE
%doc iucvterm/doc/ts-shell
%doc zpxe.rexx
%doc zipl.conf.sample
%dir /etc/iucvterm
%config %attr(0640,root,ts-shell) /etc/iucvterm/ts-audit-systems.conf
%config %attr(0640,root,ts-shell) /etc/iucvterm/ts-authorization.conf
%config %attr(0640,root,ts-shell) /etc/iucvterm/ts-shell.conf
%config %attr(0640,root,ts-shell) /etc/iucvterm/unrestricted.conf
%config /etc/modprobe.d/90-s390-tools.conf
%config /boot/zipl/active_devices.txt
%dir %attr(2770,root,ts-shell) /var/log/ts-shell
%dir /etc/cmsfs-fuse
%config %attr(0640,root,root) /etc/cmsfs-fuse/filetypes.conf
%dir /usr/lib/s390-tools
%dir /usr/lib/s390-tools/zfcpdump
%dir /usr/lib/udev/rules.d
%dir /usr/lib/systemd/scripts
%dir %{_unitdir}
%dir /usr/share/s390-tools
%dir /usr/share/s390-tools/cpumf
%dir /usr/share/s390-tools/netboot
%dir /boot/zipl
%dir /lib/s390-tools/
%exclude /usr/lib/udev/rules.d/57-osasnmpd.rules
%exclude /usr/bin/zdsfs
%exclude /usr/bin/hmcdrvfs
%exclude /usr/sbin/lshmc
%exclude %{_mandir}/man1/zdsfs.1.gz
%exclude %{_mandir}/man1/hmcdrvfs.1.gz
%exclude %{_mandir}/man8/lshmc.8.gz
%files -n osasnmpd -f %{_builddir}/%{name}.osasnmp
%defattr(-,root,root)
/usr/lib/net-snmp/agents/osasnmpd
%files zdsfs
%defattr(-,root,root)
%doc CAUTION
/usr/bin/zdsfs
/usr/share/man/man1/zdsfs.1.gz
%files hmcdrvfs
%defattr(-,root,root)
/usr/bin/hmcdrvfs
/usr/sbin/lshmc
%{_mandir}/man1/hmcdrvfs.1.gz
%{_mandir}/man8/lshmc.8.gz
%changelog