Compare commits

...
Sign in to create a new pull request.

99 commits

Author SHA1 Message Date
Dan Horák
44975e04d9 update filelist for multi-arch builds 2026-01-06 19:41:55 +01:00
Dan Horák
1e19416b2b drop outdated patch and add new placeholder one 2026-01-06 19:31:58 +01:00
Dan Horák
020fb91110 - rebased to 2.40.0 (rhbz#2421447) 2026-01-06 18:13:01 +00:00
Dan Horák
09f8677bca - rebased to 2.39.0 (rhbz#2403755) 2025-11-14 09:14:49 +00:00
Fedora Release Engineering
41042d250b Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 17:51:29 +00:00
Dan Horák
f7557efaba - rebased to 2.38.0 (rhbz#2374765) 2025-06-27 15:19:56 +00:00
Benjamin A. Beasley
43b62453bd Update License (for s390utils/s390utils-base) to reflect Rust deps. 2025-03-13 13:08:31 -04:00
Benjamin A. Beasley
7efda8631f Properly generate Rust BuildRequires on Fedora 2025-03-13 11:27:33 -04:00
Dan Horák
745b0f7706 update fedora patch filename 2025-02-28 18:33:21 +01:00
Jakub Čajka
ee43d0c73b
Debundle rust dependencies 2025-02-28 11:15:18 +01:00
Jakub Čajka
488af3d803
rebased to 2.37.0 (rhbz#2330787) 2025-02-28 11:15:11 +01:00
Dan Horák
8cf2e7926d - rebased to 2.36.0 (rhbz#2330787) 2025-02-24 14:39:27 +00:00
Dan Horák
3484222eb4 use systemd-tmpfiles for /var/log/ts-shell
Also generalize the systemd-sysusers and systemd-tmpfiles support.
2025-02-07 14:56:33 +00:00
Fabio Valentini
ffe5dc6c52
Rebuild for openssl crate >= v0.10.70 (RUSTSEC-2025-0004) 2025-02-06 13:47:34 +01:00
Dan Horák
008037d366 finish migration to sysusers.d by removing the now redundant %pre scriptlets 2025-02-04 18:59:34 +01:00
Dan Horák
7b6090d409 update for merged bin and sbin 2025-01-20 22:10:31 +01:00
Dan Horák
9886d22bc2 - fix build with gcc15
- Resolves: rhbz#2338176
2025-01-20 19:08:37 +01:00
Zbigniew Jędrzejewski-Szmek
a3da2ffb3c add sysusers.d config
For https://pagure.io/releng/failed-composes/issue/7714#comment-951273.
2025-01-15 11:49:26 +01:00
Dan Horák
2add3e66cd support merged bin and sbin
https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin)
2025-01-14 15:04:02 +00:00
Dan Horák
c0f10fd579 don't package scsi_logging_level as it is provided by sg3_utils 2025-01-14 14:43:02 +00:00
Dan Horák
a0ae4f8f73 switch to %make_install 2025-01-14 14:08:22 +00:00
Zbigniew Jędrzejewski-Szmek
865e5c3bac Build against rust-thiserror1-devel 2025-01-14 13:02:34 +00:00
Dan Horák
d55343afd6 - rebased to 2.35.0 (rhbz#2316232) 2024-10-03 09:12:25 +00:00
Dan Horák
35192dda78 - don't make Rust warnings fatal 2024-08-26 13:11:02 +02:00
Dan Horák
33c843d374 be more specific for the rpminspect badfuncs check 2024-08-14 09:09:23 +00:00
Dan Horák
4ac12c1bd1 - rebased to 2.34.0 (rhbz#2302462) 2024-08-12 13:50:19 +00:00
Fedora Release Engineering
9aeeea236f Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 04:41:16 +00:00
Dan Horák
fdae42f94f - "which" is not required any more
- Revert "zipl/src: Fix problems when target parameters are specified by user"
2024-07-15 13:30:55 +02:00
Dan Horák
32cf987a54 update fedora patch filename for 2.33.1 2024-06-26 15:26:25 +00:00
Dan Horák
b2e91e120a Add which as a dependency for base and ziomon subpackages
Some tools in the base and ziomon subpackages require which, so add the
depedency explictly.
2024-06-20 10:23:46 +02:00
Dan Horák
7471fc863b - rebased to 2.33.1 (rhbz#2283542) 2024-05-28 09:37:35 +00:00
Yaakov Selkowitz
4a01dbe43e Update Rust macro usage
The rust-toolset macros in RHEL 10 are now compatible with Fedora's in
terms of handling vendoring and automatic generation of license information
and bundled provides.
2024-05-21 18:51:12 -04:00
Dan Horák
38dd409cb6 - rebased to 2.32.0 (rhbz#2273003) 2024-04-04 09:57:42 +00:00
Neal Gompa
93479b677f Add 's390-tools' Provides to all packages
The upstream name of this is 's390-tools', and nearly all
other Linux distributions ship it as such. Make life easier
for people by also providing this name.
2024-03-08 10:45:47 -05:00
Dan Horák
882b26e468 unconditionally build with rust 2024-02-05 11:25:21 +00:00
Dan Horák
0226a1b211 - rebased to 2.31.0 (rhbz#2262499) 2024-02-05 11:07:42 +00:00
Dan Horák
3eddb1a036 - add s390utils-se-data as a noarch subpackage with Secure Execution data files 2024-01-26 08:38:00 +00:00
Dan Horák
ad9e1ad7a0 - rebased to 2.30.0 (rhbz#2252519) 2024-01-02 14:26:47 +00:00
Yaakov Selkowitz
0f03699129 Fix build with libxml2-2.12.0
https://github.com/ibm-s390-linux/s390-tools/pull/160
2023-12-12 19:50:01 -05:00
Fabio Valentini
f00ff2ac55
Rebuild for openssl crate >= v0.10.60 (RUSTSEC-2023-0044, RUSTSEC-2023-0072) 2023-12-01 16:17:48 +01:00
Dan Horák
2c0b6d2ea2 enable multi-arch builds
Select tools are expected to be used on non-s390x platforms, so drop
ExclusiveArch and add a special %files section for this case. The tools
will be available in the s390utils binary rpm.
2023-11-13 10:10:17 +01:00
Dan Horák
8a3c26800a - fix upstream kernel installations
Apply changes from the grub2 kernel install helper script to the zipl
helper.

Related: rhbz#2239008
2023-11-10 12:11:25 +01:00
Dan Horák
ca71fe340e let cp remove the destination files
clone of https://src.fedoraproject.org/rpms/grub2/c/e1206cf45b3bdde97e166d5c0d55842c864a1c9e?branch=rawhide
2023-11-10 11:59:34 +01:00
Dan Horák
7a5c89e84a do not preserve ownership or xattrs on copied files
clone of https://src.fedoraproject.org/rpms/grub2/c/8800efcb0bea5750f77f88a05ac9211a19cbc7a0?branch=rawhide
2023-11-10 11:48:10 +01:00
Dan Horák
40db3a57ae rename installed kernel to match name used in boot entry
clone of https://src.fedoraproject.org/rpms/grub2/c/af4f1536b6e498b88c1b07d00fc047184453839a?branch=rawhide
2023-11-10 11:41:36 +01:00
Dan Horák
70bd1af9bd request a specific version of zerocopy as we have a newer one too 2023-11-09 11:20:35 +01:00
Dan Horák
51cd104ddd use %license for LICENSE 2023-11-09 09:46:07 +01:00
Dan Horák
5184801f0e switch to %autosetup 2023-10-24 13:40:29 +00:00
Yaakov Selkowitz
535cc10766 Use vendored dependencies in RHEL builds
RHEL does not package individual rust crate dependencies.  Instead,
rust-based packages must vendor these, and use the RHEL macros to
build them.
2023-10-23 20:50:30 -04:00
Jakub Čajka
3b4ba770c1
Move all package options to bconds 2023-09-06 11:00:23 +02:00
Jakub Čajka
702b044c20
Enable rust based tools 2023-09-01 12:44:40 +02:00
Jakub Čajka
3fa397e687
Fix missing semicolon
Resolves: BZ#2235734
2023-08-31 13:08:54 +02:00
Jakub Čajka
9e549c2e6c Convert to the SPDX 2023-08-08 08:51:16 +00:00
Dan Horák
087a10568c - rebased to 2.29.0 2023-08-07 08:50:46 +00:00
Fedora Release Engineering
262d603726 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 00:55:06 +00:00
Dan Horák
4b655c64f1 add rpminspect.yaml 2023-07-14 10:04:29 +02:00
Dan Horák
d81d4fd383 - rebased to 2.28.0 2023-07-13 15:10:59 +00:00
Dan Horák
da9838c800 modernize %patch usage 2023-05-31 13:10:36 +00:00
Dan Horák
b43bfd7eed - rebased to 2.27.0 2023-05-31 12:44:16 +00:00
Petr Písař
a6e30a308a Unescape Patch100 definition
Broken with commit 9e98b44d8b.
2023-05-19 16:40:48 +02:00
Petr Písař
57b37fee1f Rebuild against rpm-4.19 (https://fedoraproject.org/wiki/Changes/RPM-4.19) 2023-05-19 16:25:40 +02:00
Dan Horák
d6f3723e10 - rebased to 2.26.0 2023-03-03 10:01:46 +00:00
Dan Horák
9e98b44d8b - add post GA fixes 2023-01-31 15:24:52 +01:00
Dan Horák
607a6825f4 Revert "Generate /etc/kernel/cmdline if it does not exist"
This reverts commit 77693cd7eb.

Although it fixes the situation when a new kernel is being installed in
a %post script, it breaks the initial kernel installation, because the
BLS snippet doesn't exists yet.
2023-01-23 13:26:41 +00:00
Dan Horák
685ce32c07 - update kernel install script to write /etc/kernel/cmdline 2023-01-19 10:00:30 +01:00
Robbie Harwood
77693cd7eb Generate /etc/kernel/cmdline if it does not exist
Don't fall back to reading /proc/cmdline: that will likely reflect the
installer environment which will result in a non-booting kernel entry.

See-also: rhbz#1940288
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
2023-01-17 11:35:16 -05:00
Dan Horák
c33643ba10 - rebased to 2.25.0 2022-12-09 13:54:52 +00:00
Dan Horák
bef2b35dc9 - update for Transparent DASD PPRC (Peer-to-Peer Remote Copy) handling 2022-11-22 17:35:10 +00:00
Dan Horák
af41c81d1b - rebased to 2.24.0 2022-11-10 16:45:34 +00:00
Dan Horák
473c14c9ab - rebased to 2.23.0 2022-08-19 09:04:27 +00:00
Fedora Release Engineering
a7424a8ff0 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 07:54:12 +00:00
Dan Horák
6f524eab5a add missing BR 2022-06-27 11:49:35 +00:00
Dan Horák
ca6b193ac3 - rebased to 2.22.0 2022-06-27 10:20:07 +00:00
Dan Horák
cc536faf67 - do not fail on emtpy /proc/cmdline when installing kernel (#1899759) 2022-05-31 11:54:12 +00:00
Dan Horák
f7710610d8 chreipl-fcp-mpath man page is distributed pregenerated 2022-04-26 11:47:55 +02:00
Dan Horák
1c93647293 Revert "fix cpictl permissions (#2024102)"
This reverts commit 78ef6e86e5.
2022-04-26 11:15:46 +02:00
Dan Horák
a2cb8e5beb - rebased to 2.21.0 2022-04-22 13:27:04 +00:00
Dan Horák
6dc91fa6ea - rebased to 2.20.0
- switch to fuse3
2022-02-07 09:53:18 +00:00
Fedora Release Engineering
ad7942bd0c - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-22 00:14:49 +00:00
Dan Horák
a483890884 - update ccw udev rules 2021-11-26 16:49:21 +01:00
Dan Horák
78ef6e86e5 fix cpictl permissions (#2024102) 2021-11-18 12:06:45 +00:00
Dan Horák
b385215ded - rebased to 2.19.0
- cmsfs-fuse Requires glibc-gconv-extra (#2022652)
2021-11-16 15:38:15 +00:00
Dan Horák
c69c48c992 - move vmcp to core (#1931287) 2021-10-21 13:13:40 +02:00
Dan Horák
ea8f5ea852 - rebased to 2.18.0 2021-10-05 10:10:21 +00:00
Fedora Release Engineering
083020797b - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 16:57:00 +00:00
Dan Horák
a8e761756e drop trailing slash when listing dirs with %dir in %files 2021-07-15 10:48:13 +02:00
Dan Horák
287377b414 base should own the /usr/lib64/zkey directory 2021-07-15 10:46:57 +02:00
Dan Horák
c1e8b3a309 workaround a build issue with new ld (binutils >= 2.36)
The new ld doesn't ignore an unrecorgnized -no-pie option.

Related: https://github.com/ibm-s390-linux/s390-tools/pull/106
2021-07-14 14:26:27 +02:00
Dan Horák
0419550a2a remove a comment 2021-07-08 11:44:55 +02:00
Dan Horák
9e8e130a7c use URLs for RHEL/Fedora specific scripts and configs 2021-07-08 11:42:31 +02:00
Dan Horák
2a913049ee modernize ccw udev rules 2021-07-08 11:38:29 +02:00
Dan Horák
ce7722eab4 - rebased to 2.17.0 2021-07-07 17:49:40 +00:00
Dan Horák
e4da637a53 zfcpconf: set exit code explicitly (#1977434) 2021-06-30 11:36:03 +02:00
Dan Horák
b2e74b0a3e mk-s390image script requires file 2021-06-22 21:31:28 +02:00
Dan Horák
2bf7d95c95 - drop obsolete setting from device_cio_free.service 2021-06-17 10:00:57 +02:00
Dan Horák
02409651fa - drop superfluous Require from s390utils-base 2021-03-01 10:54:27 +00:00
Dan Horák
3d1d949272 - rebased to 2.16.0 2021-02-24 18:05:21 +00:00
Fedora Release Engineering
d792b32be1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 19:51:30 +00:00
Tom Stellard
7a34f7d689 Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2021-01-08 21:02:58 +00:00
12 changed files with 845 additions and 143 deletions

20
.gitignore vendored
View file

@ -5,21 +5,5 @@ src_vipa-2.0.4.tar.gz
/lib-zfcp-hbaapi-2.1.tar.gz
/src_vipa-2.1.0.tar.gz
/s390-tools-*.tar.bz2
/s390-tools-2.0.0.tar.gz
/s390-tools-2.1.0.tar.gz
/s390-tools-2.2.0.tar.gz
/s390-tools-2.3.0.tar.gz
/s390-tools-2.4.0.tar.gz
/s390-tools-2.5.0.tar.gz
/s390-tools-2.6.0.tar.gz
/s390-tools-2.7.0.tar.gz
/s390-tools-2.7.1.tar.gz
/s390-tools-2.8.0.tar.gz
/s390-tools-2.9.0.tar.gz
/s390-tools-2.10.0.tar.gz
/s390-tools-2.11.0.tar.gz
/s390-tools-2.12.0.tar.gz
/s390-tools-2.13.0.tar.gz
/s390-tools-2.14.0.tar.gz
/s390-tools-2.15.0.tar.gz
/s390-tools-2.15.1.tar.gz
/s390-tools-*.tar.gz
/s390-tools-*-rust-vendor.tar.xz

View file

@ -54,21 +54,25 @@ EOF
case "$COMMAND" in
add)
if [[ "${KERNEL_DIR}" != "/boot" ]]; then
# rename to match the name used in the pseudo-BLS snippet above
cp --remove-destination --preserve=timestamps -T "${KERNEL_IMAGE}" "/boot/vmlinuz-${KERNEL_VERSION}"
command -v restorecon &>/dev/null && \
restorecon -R "/boot/vmlinuz-${KERNEL_VERSION}"
for i in \
"$KERNEL_IMAGE" \
"$KERNEL_DIR"/System.map \
"$KERNEL_DIR"/config \
"$KERNEL_DIR"/zImage.stub
do
[[ -e "$i" ]] || continue
cp -aT "$i" "/boot/${i##*/}-${KERNEL_VERSION}"
cp --preserve=timestamps -T "$i" "/boot/${i##*/}-${KERNEL_VERSION}"
command -v restorecon &>/dev/null && \
restorecon -R "/boot/${i##*/}-${KERNEL_VERSION}"
done
# hmac is .vmlinuz-<version>.hmac so needs a special treatment
i="$KERNEL_DIR/.${KERNEL_IMAGE##*/}.hmac"
if [[ -e "$i" ]]; then
cp -a "$i" "/boot/.${KERNEL_IMAGE##*/}-${KERNEL_VERSION}.hmac"
cp --preserve=timestamps "$i" "/boot/.${KERNEL_IMAGE##*/}-${KERNEL_VERSION}.hmac"
command -v restorecon &>/dev/null && \
restorecon "/boot/.${KERNEL_IMAGE##*/}-${KERNEL_VERSION}.hmac"
fi
@ -88,16 +92,10 @@ case "$COMMAND" in
done
fi
if ! [[ ${BOOT_OPTIONS[*]} ]]; then
echo "Could not determine the kernel command line parameters." >&2
echo "Please specify the kernel command line in /etc/kernel/cmdline!" >&2
exit 1
fi
[[ -d "$BLS_DIR" ]] || mkdir -m 0700 -p "$BLS_DIR"
BLS_TARGET="${BLS_DIR}/${MACHINE_ID}-${KERNEL_VERSION}.conf"
if [[ -f "${KERNEL_DIR}/bls.conf" ]]; then
cp -aT "${KERNEL_DIR}/bls.conf" "${BLS_TARGET}" || exit $?
cp --preserve=timestamps -T "${KERNEL_DIR}/bls.conf" "${BLS_TARGET}" || exit $?
sed -i -e "s,^linux.*,linux /boot/vmlinuz-${KERNEL_VERSION},g" "${BLS_TARGET}"
sed -i -e "s,^initrd.*,initrd /boot/initramfs-${KERNEL_VERSION}.img,g" "${BLS_TARGET}"
sed -i -e "s#^options.*#options ${BOOT_OPTIONS[*]}#g" "${BLS_TARGET}"
@ -118,7 +116,7 @@ case "$COMMAND" in
if [ "x${MAKEDEBUG}" = "xyes" ]; then
BLS_DEBUG="$(echo ${BLS_TARGET} | sed -e "s/${KERNEL_VERSION}/${KERNEL_VERSION}~debug/")"
cp -aT "${BLS_TARGET}" "${BLS_DEBUG}"
cp --preserve=timestamps -T "${BLS_TARGET}" "${BLS_DEBUG}"
TITLE="$(grep '^title[ \t]' "${BLS_DEBUG}" | sed -e 's/^title[ \t]*//')"
VERSION="$(grep '^version[ \t]' "${BLS_DEBUG}" | sed -e 's/^version[ \t]*//')"
BLSID="$(grep '^id[ \t]' "${BLS_DEBUG}" | sed -e "s/${KERNEL_VERSION}/${KERNEL_VERSION}~debug/")"

View file

@ -29,12 +29,6 @@ case "$COMMAND" in
done
fi
if ! [[ ${BOOT_OPTIONS[*]} ]]; then
echo "Could not determine the kernel command line parameters." >&2
echo "Please specify the kernel command line in /etc/kernel/cmdline!" >&2
exit 1
fi
BLS_RESCUE="${BLS_DIR}/${MACHINE_ID}-0-rescue.conf"
if [[ -f "${BLS_RESCUE}" ]] && grep -q '^options.*$kernelopts' "${BLS_RESCUE}"; then
sed -i -e "s,^linux.*,linux /boot/vmlinuz-0-rescue-${MACHINE_ID},g" "${BLS_RESCUE}"

View file

@ -1,13 +1,4 @@
ACTION!="add|change", GOTO="ccw_end"
ACTION!="add|bind|change", GOTO="ccw_end"
SUBSYSTEM!="ccw", GOTO="ccw_end"
ATTRS{cutype}=="1731/01", RUN+="ccw_init"
ATTRS{cutype}=="1731/02", RUN+="ccw_init"
ATTRS{cutype}=="1731/05", RUN+="ccw_init"
ATTRS{cutype}=="1731/06", RUN+="ccw_init"
ATTRS{cutype}=="3088/01", RUN+="ccw_init"
ATTRS{cutype}=="3088/08", RUN+="ccw_init"
ATTRS{cutype}=="3088/60", RUN+="ccw_init"
ATTRS{cutype}=="3088/61", RUN+="ccw_init"
ATTRS{cutype}=="3088/1e", RUN+="ccw_init"
ATTRS{cutype}=="3088/1f", RUN+="ccw_init"
DRIVER=="ctcm|lcs|qeth", RUN+="ccw_init"
LABEL="ccw_end"

View file

@ -7,7 +7,6 @@ Before=sysinit.target systemd-udev-trigger.service
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/device_cio_free
StandardOutput=syslog
[Install]
WantedBy=sysinit.target

9
rpminspect.yaml Normal file
View file

@ -0,0 +1,9 @@
---
pathmigration:
excluded_paths:
- /lib/s390-tools
badfuncs:
allowed:
/usr/bin/qethqoat:
- inet_ntoa

View file

@ -1,19 +1,234 @@
diff -up s390-tools-2.9.0/zipl/src/Makefile.blscfg-rpm-nvr-sort s390-tools-2.9.0/zipl/src/Makefile
--- s390-tools-2.9.0/zipl/src/Makefile.blscfg-rpm-nvr-sort 2019-05-22 08:16:17.317273801 -0400
+++ s390-tools-2.9.0/zipl/src/Makefile 2019-05-22 08:18:02.947273801 -0400
@@ -7,7 +7,7 @@ ALL_CPPFLAGS += -I../include -I../boot \
-D_FILE_OFFSET_BITS=64 $(NO_PIE_CFLAGS)
ALL_LDFLAGS += -Wl,-z,noexecstack $(NO_PIE_LDFLAGS)
From b2daaa34776ba6afec879e362378f6f7563590a6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
Date: Mon, 20 Jun 2022 17:43:05 +0200
Subject: [PATCH 1/2] Revert "zipl/src: Implement sorting bls entries by
versions"
This reverts commit a0dba6bfdb50ff373fa710ffe2a307cc0748f18b.
---
zipl/src/scan.c | 139 ++----------------------------------------------
1 file changed, 3 insertions(+), 136 deletions(-)
diff --git a/zipl/src/scan.c b/zipl/src/scan.c
index 0cea1d4..9352f76 100644
--- a/zipl/src/scan.c
+++ b/zipl/src/scan.c
@@ -10,7 +10,6 @@
*
*/
-libs = $(rootdir)/libutil/libutil.a
+libs = $(rootdir)/libutil/libutil.a -lrpmio -lrpm
-static const char *VERSION_KEYWORD = "version";
objects = misc.o error.o scan.o job.o boot.o bootmap.o disk.o \
install.o zipl.o $(rootdir)/zipl/boot/data.o
diff -up s390-tools-2.9.0/zipl/src/scan.c.blscfg-rpm-nvr-sort s390-tools-2.9.0/zipl/src/scan.c
--- s390-tools-2.9.0/zipl/src/scan.c.blscfg-rpm-nvr-sort 2019-05-21 09:13:36.000000000 -0400
+++ s390-tools-2.9.0/zipl/src/scan.c 2019-05-22 08:16:17.317273801 -0400
@@ -33,6 +33,8 @@
/* Need ISOC99 function isblank() in ctype.h */
#ifndef __USE_ISOC99
@@ -646,7 +645,7 @@ scan_file(const char* filename, struct scan_token** token)
static int
-bls_filter_by_names(const struct dirent *ent)
+bls_filter(const struct dirent *ent)
{
int offset = strlen(ent->d_name) - strlen(".conf");
@@ -656,111 +655,13 @@ bls_filter_by_names(const struct dirent *ent)
return strncmp(ent->d_name + offset, ".conf", strlen(".conf")) == 0;
}
-struct version {
- char *line; /* pointer to a line with version keyword */
- int offset; /* offset of version value in the line */
-};
-
-/*
- * Locate version in bls file represented by ENT
- */
-static void get_version(const struct dirent *ent, struct version *v)
-{
- char *line = NULL;
- size_t len = 0;
- char *d_name;
- FILE *stream;
- ssize_t read;
-
- memset(v, 0, sizeof(*v));
- d_name = misc_make_path((char *)blsdir, (char *)ent->d_name);
- if (!d_name)
- return;
-
- stream = fopen(d_name, "r");
- free(d_name);
- if (!stream)
- return;
-
- while ((read = getline(&line, &len, stream)) != -1) {
- if (line[read - 1] == '\n') {
- line[read - 1] = '\0';
- read--;
- }
- if ((size_t)read <= strlen(VERSION_KEYWORD) + 1)
- continue;
- if (strcmp(VERSION_KEYWORD, line) > 0)
- continue;
- if (!isblank(line[strlen(VERSION_KEYWORD)]))
- continue;
- /* skip blanks */
- v->offset = strlen(VERSION_KEYWORD) + 1;
- while (v->offset < read - 1 && isblank(line[v->offset]))
- v->offset++;
- if (isblank(line[v->offset]))
- /*
- * all characters after the keyword
- * are blanks. Invalid version
- */
- continue;
- v->line = line;
- fclose(stream);
- return;
- }
- free(line);
- fclose(stream);
-}
-
-static void put_version(struct version *v)
-{
- free(v->line);
-}
-
-/**
- * Check version in bls file represented by ENT.
- * Return 1 if version is valid. Otherwise return 0
- */
-static int bls_filter_by_versions(const struct dirent *ent)
-{
- struct version v;
-
- if (bls_filter_by_names(ent) == 0)
- return 0;
-
- get_version(ent, &v);
- if (v.line) {
- put_version(&v);
- return 1;
- }
- return 0;
-}
-
static int
-bls_sort_by_names(const struct dirent **ent_a, const struct dirent **ent_b)
+bls_sort(const struct dirent **ent_a, const struct dirent **ent_b)
{
return strverscmp((*ent_a)->d_name, (*ent_b)->d_name);
}
-static int
-bls_sort_by_versions(const struct dirent **ent_a, const struct dirent **ent_b)
-{
- struct version v1, v2;
- int ret;
-
- get_version(*ent_a, &v1);
- get_version(*ent_b, &v2);
- /*
- * Both versions are valid.
- * It is guaranteed by bls_filter_by_versions()
- */
- ret = strverscmp(v1.line + v1.offset, v2.line + v2.offset);
-
- put_version(&v1);
- put_version(&v2);
-
- return ret;
-}
static int
scan_append_section_heading(struct scan_token* scan, int* index, char* name);
@@ -1110,40 +1011,6 @@ scan_count_target_keywords(char* keyword[])
return num;
}
-static int bls_scandir(struct dirent ***bls_entries)
-{
- struct dirent **entries1;
- struct dirent **entries2;
- int n1, n2;
-
- /* arrange by names */
- n1 = scandir(blsdir, &entries1,
- bls_filter_by_names, bls_sort_by_names);
- if (n1 <= 0)
- return n1;
- /* arrange by versions */
- n2 = scandir(blsdir, &entries2,
- bls_filter_by_versions, bls_sort_by_versions);
-
- if (n2 <= 0 || n2 < n1) {
- /*
- * failed to sort by versions,
- * fall back to sorting by filenames
- */
- *bls_entries = entries1;
- while (n2--)
- free(entries2[n2]);
- free(entries2);
- return n1;
- }
- /* use arrangement by versions */
- *bls_entries = entries2;
- while (n1--)
- free(entries1[n1]);
- free(entries1);
- return n2;
-}
-
int
scan_check_target_data(char* keyword[], int* line)
{
@@ -1464,7 +1331,7 @@ int scan_bls(struct scan_token **token, int scan_size)
if (!(stat(blsdir, &sb) == 0 && S_ISDIR(sb.st_mode)))
return 0;
- n = bls_scandir(&bls_entries);
+ n = scandir(blsdir, &bls_entries, bls_filter, bls_sort);
if (n <= 0)
return n;
--
2.39.2
From 692e70bcfc32a05e30146bd7077c41e0eaceff03 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Mon, 20 Jun 2022 17:46:59 +0200
Subject: [PATCH 2/2] blscfg: sort like rpm nvr, not like a single version
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Peter Jones <pjones@redhat.com>
Signed-off-by: Dan Horák <dan@danny.cz>
---
zipl/src/Makefile | 1 +
zipl/src/scan.c | 96 ++++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 95 insertions(+), 2 deletions(-)
diff --git a/zipl/src/Makefile b/zipl/src/Makefile
index cab5655..7ec215d 100644
--- a/zipl/src/Makefile
+++ b/zipl/src/Makefile
@@ -9,6 +9,7 @@ ALL_LDFLAGS += -Wl,-z,noexecstack $(NO_PIE_LDFLAGS)
libs = $(rootdir)/libutil/libutil.a \
$(rootdir)/libvtoc/libvtoc.a \
+ -lrpmio -lrpm
objects = misc.o error.o scan.o job.o boot.o bootmap.o fs-map.o disk.o \
bootmap_header.o envblk.o install.o zipl.o
diff --git a/zipl/src/scan.c b/zipl/src/scan.c
index 9352f76..3327e2d 100644
--- a/zipl/src/scan.c
+++ b/zipl/src/scan.c
@@ -35,6 +35,8 @@
#include "lib/util_base.h"
@ -22,7 +237,7 @@ diff -up s390-tools-2.9.0/zipl/src/scan.c.blscfg-rpm-nvr-sort s390-tools-2.9.0/z
#include "boot.h"
#include "error.h"
#include "misc.h"
@@ -653,13 +655,103 @@ bls_filter(const struct dirent *ent)
@@ -655,13 +657,103 @@ bls_filter(const struct dirent *ent)
return strncmp(ent->d_name + offset, ".conf", strlen(".conf")) == 0;
}
@ -128,3 +343,6 @@ diff -up s390-tools-2.9.0/zipl/src/scan.c.blscfg-rpm-nvr-sort s390-tools-2.9.0/z
static int
scan_append_section_heading(struct scan_token* scan, int* index, char* name);
--
2.39.2

View file

@ -61,10 +61,10 @@ index 871935c783f..d8d5eca5867 100755
;;
--)
shift
diff --git a/scripts/zipl-switch-to-blscfg.1 b/scripts/zipl-switch-to-blscfg.1
diff --git a/scripts/zipl-switch-to-blscfg.8 b/scripts/zipl-switch-to-blscfg.8
index 6bd14d00d14..71b904ffd1c 100644
--- a/scripts/zipl-switch-to-blscfg.1
+++ b/scripts/zipl-switch-to-blscfg.1
--- a/scripts/zipl-switch-to-blscfg.8
+++ b/scripts/zipl-switch-to-blscfg.8
@@ -37,9 +37,9 @@ The DIRECTORY where the BLS fragments will be generated. The directory is create
The FILE used for zipl configuration file, defaults to /etc/zipl.conf.

View file

File diff suppressed because it is too large Load diff

View file

@ -1 +1,2 @@
SHA512 (s390-tools-2.15.1.tar.gz) = a62ab491bac153b78161b7b1fb80ef1aa5ddb8657a9329f5ad9f8a16f106a9a9af1a37ceb328ed34eb44adb406207faec12ed0fb6648b5198498bf2fd411f0cf
SHA512 (s390-tools-2.40.0.tar.gz) = 1943429581b280bf9ea370da3700a234d509837cb45b2354cdf79b38db87d2183010d18d9132defd77b9d8e11b7e002c447ffd7c912e20a50da4cb6877758c0e
SHA512 (s390-tools-2.40.0-rust-vendor.tar.xz) = fd1894c4e950a3c51054432731a3aeef4318e794aa4af2dc5fed31da16dce2020f014a64241e44766fb40b0fd6c1ac5943366e38dcfebf264875220ecf1285b5

View file

@ -36,7 +36,7 @@ if [ -f "$CONFIG" ]; then
modprobe zfcp
fi
if [ ! -d /sys/bus/ccw/drivers/zfcp ]; then
return
exit 1
fi
sed 'y/ABCDEF/abcdef/' < $CONFIG | while read line; do
case $line in
@ -74,3 +74,4 @@ if [ -f "$CONFIG" ]; then
esac
done
fi
exit 0