Compare commits

...

No commits in common. "c8" and "c9s" have entirely different histories.
c8 ... c9s

15 changed files with 163 additions and 39 deletions

4
.gitignore vendored
View File

@ -1 +1,3 @@
SOURCES/syslinux-6.04-pre1.tar.xz clog
syslinux-*.tar.*
*.rpm

View File

@ -1 +0,0 @@
599b7a85d522b1b6658a1fe290e4d23dc64b1470 SOURCES/syslinux-6.04-pre1.tar.xz

View File

@ -0,0 +1,78 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Chris Riches <chris.riches@nutanix.com>
Date: Fri, 13 Jun 2025 13:10:03 -0600
Subject: [PATCH] isohybrid: Make GPT GUIDs reproducible with --uefi and --id
We already have the --id option to make the MBR ID reproducible,
however the GPT GUIDs are always random, making it impossible to
hybridise reproducibly with the --uefi option.
Switch from v4 to v5 UUIDs when --id is set, computing them from the MBR
ID via arbitrary fixed namespaces + SHA1 hashing.
Signed-off-by: Chris Riches <chris.riches at nutanix.com>
Signed-off-by: Leo Sandoval <lsandova@redhat.com>
---
utils/isohybrid.c | 28 +++++++++++++++++++++++++---
1 file changed, 25 insertions(+), 3 deletions(-)
diff --git a/utils/isohybrid.c b/utils/isohybrid.c
index 1a203213..681157cd 100644
--- a/utils/isohybrid.c
+++ b/utils/isohybrid.c
@@ -48,6 +48,18 @@ unsigned int padding = 0;
uuid_t disk_uuid, part_uuid, iso_uuid;
+UUID_DEFINE(disk_uuid_ns,
+ 0x13, 0x40, 0x46, 0xef, 0x45, 0x39, 0x4c, 0xd6,
+ 0x83, 0x23, 0x27, 0xa9, 0x23, 0x77, 0x78, 0x68);
+
+UUID_DEFINE(part_uuid_ns,
+ 0x24, 0x08, 0x39, 0x02, 0x5d, 0x03, 0x42, 0x49,
+ 0x83, 0xb1, 0x99, 0x76, 0xfb, 0xe7, 0x38, 0x5c);
+
+UUID_DEFINE(iso_uuid_ns,
+ 0x50, 0x3a, 0xbc, 0xed, 0xc7, 0xa4, 0x40, 0x1c,
+ 0xa1, 0xe3, 0x2c, 0xf6, 0x85, 0x3f, 0xeb, 0x81);
+
uint8_t mode = 0;
enum { VERBOSE = 1 , EFI = 2 , MAC = 4};
@@ -775,6 +787,16 @@ uint32_t chksum_crc32 (unsigned char *block, unsigned int length)
return (crc ^ 0xFFFFFFFF);
}
+void
+gen_uuid(uuid_t out, const uuid_t ns)
+{
+ if (id) {
+ uuid_generate_sha1(out, ns, (char*)&id, sizeof(id));
+ } else {
+ uuid_generate(out);
+ }
+}
+
void
reverse_uuid(uuid_t uuid)
{
@@ -815,7 +837,7 @@ initialise_gpt(uint8_t *gpt, uint32_t current, uint32_t alternate, int primary)
}
if (primary) {
- uuid_generate(disk_uuid);
+ gen_uuid(disk_uuid, disk_uuid_ns);
reverse_uuid(disk_uuid);
}
@@ -842,8 +864,8 @@ initialise_gpt(uint8_t *gpt, uint32_t current, uint32_t alternate, int primary)
part = (struct gpt_part_header *)gpt;
if (primary) {
- uuid_generate(part_uuid);
- uuid_generate(iso_uuid);
+ gen_uuid(part_uuid, part_uuid_ns);
+ gen_uuid(iso_uuid, iso_uuid_ns);
reverse_uuid(part_uuid);
reverse_uuid(iso_uuid);
}

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: manual.sst_desktop.syslinux.functional}

25
rpminspect.yaml Normal file
View File

@ -0,0 +1,25 @@
---
inspections:
# Not a Java package
javabytecode: off
# These just flag when things change "too much"
changedfiles: off
filesize: off
patches: off
upstream: off
# bootloader - can't do anything about executable stack
elf: off
# These are v4-only network functions. Upstream is dead, and this tool is
# legacy, so we can consider it v4-only.
badfuncs: off
# https://bugzilla.redhat.com/show_bug.cgi?id=2029601
annocheck: off
# So here's the thing: I don't care, especially because it's a symlink to
# the same place. Not only was usrmerge a waste of time, but it's the wrong
# direction: stuff in /usr should point to /.
pathmigration: off

1
sources Normal file
View File

@ -0,0 +1 @@
f9c956fde0de29be297402ecbc8ff4d0 syslinux-6.04-pre1.tar.xz

View File

@ -5,3 +5,4 @@ Patch0004: 0004-Add-RPMOPTFLAGS-to-CFLAGS-for-some-stuff.patch
Patch0005: 0005-Workaround-multiple-definition-of-symbol-errors.patch Patch0005: 0005-Workaround-multiple-definition-of-symbol-errors.patch
Patch0006: 0006-Replace-builtin-strlen-that-appears-to-get-optimized.patch Patch0006: 0006-Replace-builtin-strlen-that-appears-to-get-optimized.patch
Patch0007: 0007-Fix-backspace-when-editing-a-multiline-cmdline.patch Patch0007: 0007-Fix-backspace-when-editing-a-multiline-cmdline.patch
Patch0008: 0008-isohybrid-Make-GPT-GUIDs-reproducible-with-uefi-and-.patch

View File

@ -7,9 +7,8 @@ Summary: Simple kernel loader which boots from a FAT filesystem
Name: syslinux Name: syslinux
Version: 6.04 Version: 6.04
%define tarball_version 6.04-pre1 %define tarball_version 6.04-pre1
Release: 6%{?dist} Release: 0.22%{?dist}
License: GPLv2+ License: GPLv2+
Group: Applications/System
URL: http://syslinux.zytor.com/wiki/index.php/The_Syslinux_Project URL: http://syslinux.zytor.com/wiki/index.php/The_Syslinux_Project
Source0: http://www.kernel.org/pub/linux/utils/boot/syslinux/%{name}-%{tarball_version}.tar.xz Source0: http://www.kernel.org/pub/linux/utils/boot/syslinux/%{name}-%{tarball_version}.tar.xz
Source1: syslinux.patches Source1: syslinux.patches
@ -20,10 +19,12 @@ Source1: syslinux.patches
# in noarch packages are a reason to stop the build. # in noarch packages are a reason to stop the build.
%define _binaries_in_noarch_packages_terminate_build 0 %define _binaries_in_noarch_packages_terminate_build 0
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: make
BuildRequires: git BuildRequires: git
%ifarch %{buildarches} %ifarch %{buildarches}
BuildRequires: gcc
BuildRequires: nasm >= 0.98.38-1, perl-interpreter, perl-generators, netpbm-progs BuildRequires: nasm >= 0.98.38-1, perl-interpreter, perl-generators, netpbm-progs
BuildRequires: perl(FileHandle)
BuildRequires: /usr/include/gnu/stubs-32.h BuildRequires: /usr/include/gnu/stubs-32.h
BuildRequires: libuuid-devel BuildRequires: libuuid-devel
Requires: syslinux-nonlinux = %{version}-%{release} Requires: syslinux-nonlinux = %{version}-%{release}
@ -34,7 +35,7 @@ BuildRequires: mingw32-gcc
%endif %endif
%ifarch x86_64 %ifarch x86_64
Requires: mtools, libc.so.6()(64bit) Requires: mtools, libc.so.6()(64bit)
BuildRequires: mingw64-gcc BuildRequires: mingw32-gcc mingw64-gcc
%endif %endif
# NOTE: extlinux belongs in /sbin, not in /usr/sbin, since it is typically # NOTE: extlinux belongs in /sbin, not in /usr/sbin, since it is typically
@ -49,14 +50,12 @@ MEMDISK, which loads legacy operating systems from these media.
%package perl %package perl
Summary: Syslinux tools written in perl Summary: Syslinux tools written in perl
Group: Applications/System
%description perl %description perl
Syslinux tools written in perl Syslinux tools written in perl
%package devel %package devel
Summary: Headers and libraries for syslinux development. Summary: Headers and libraries for syslinux development.
Group: Development/Libraries
Provides: %{name}-static = %{version}-%{release} Provides: %{name}-static = %{version}-%{release}
%description devel %description devel
@ -64,7 +63,6 @@ Headers and libraries for syslinux development.
%package extlinux %package extlinux
Summary: The EXTLINUX bootloader, for booting the local system. Summary: The EXTLINUX bootloader, for booting the local system.
Group: System/Boot
Requires: syslinux Requires: syslinux
Requires: syslinux-extlinux-nonlinux = %{version}-%{release} Requires: syslinux-extlinux-nonlinux = %{version}-%{release}
@ -72,10 +70,9 @@ Requires: syslinux-extlinux-nonlinux = %{version}-%{release}
The EXTLINUX bootloader, for booting the local system, as well as all The EXTLINUX bootloader, for booting the local system, as well as all
the SYSLINUX/PXELINUX modules in /boot. the SYSLINUX/PXELINUX modules in /boot.
%ifarch %{ix86} %ifarch x86_64
%package tftpboot %package tftpboot
Summary: SYSLINUX modules in /tftpboot, available for network booting Summary: SYSLINUX modules in /tftpboot, available for network booting
Group: Applications/Internet
BuildArch: noarch BuildArch: noarch
%description tftpboot %description tftpboot
@ -84,7 +81,6 @@ booting in the /tftpboot directory.
%package extlinux-nonlinux %package extlinux-nonlinux
Summary: The parts of the EXTLINUX bootloader which aren't run from linux. Summary: The parts of the EXTLINUX bootloader which aren't run from linux.
Group: System/Boot
Requires: syslinux Requires: syslinux
BuildArch: noarch BuildArch: noarch
ExclusiveArch: %{ix86} x86_64 ExclusiveArch: %{ix86} x86_64
@ -95,7 +91,6 @@ from a linux host.
%package nonlinux %package nonlinux
Summary: SYSLINUX modules which aren't run from linux. Summary: SYSLINUX modules which aren't run from linux.
Group: System/Boot
Requires: syslinux Requires: syslinux
BuildArch: noarch BuildArch: noarch
ExclusiveArch: %{ix86} x86_64 ExclusiveArch: %{ix86} x86_64
@ -109,7 +104,6 @@ systems from media.
%ifarch x86_64 %ifarch x86_64
%package efi64 %package efi64
Summary: SYSLINUX binaries and modules for 64-bit UEFI systems Summary: SYSLINUX binaries and modules for 64-bit UEFI systems
Group: System/Boot
%description efi64 %description efi64
SYSLINUX binaries and modules for 64-bit UEFI systems SYSLINUX binaries and modules for 64-bit UEFI systems
@ -159,12 +153,8 @@ rm -f %{buildroot}%{_prefix}/lib/libsyslinux*
rm -f %{buildroot}%{_includedir}/syslinux.h rm -f %{buildroot}%{_includedir}/syslinux.h
%endif %endif
%clean
rm -rf %{buildroot}
%ifarch %{buildarches} %ifarch %{buildarches}
%files %files
%defattr(-,root,root)
%{!?_licensedir:%global license %%doc} %{!?_licensedir:%global license %%doc}
%license COPYING %license COPYING
%doc NEWS README* %doc NEWS README*
@ -191,7 +181,6 @@ rm -rf %{buildroot}
%endif %endif
%files perl %files perl
%defattr(-,root,root)
%{!?_licensedir:%global license %%doc} %{!?_licensedir:%global license %%doc}
%license COPYING %license COPYING
%{_mandir}/man1/lss16toppm* %{_mandir}/man1/lss16toppm*
@ -208,7 +197,6 @@ rm -rf %{buildroot}
%{_bindir}/isohybrid.pl %{_bindir}/isohybrid.pl
%files devel %files devel
%defattr(-,root,root)
%{!?_licensedir:%global license %%doc} %{!?_licensedir:%global license %%doc}
%license COPYING %license COPYING
%dir %{_datadir}/syslinux/com32 %dir %{_datadir}/syslinux/com32
@ -218,7 +206,7 @@ rm -rf %{buildroot}
%{_sbindir}/extlinux %{_sbindir}/extlinux
%config /etc/extlinux.conf %config /etc/extlinux.conf
%ifarch %{ix86} %ifarch x86_64
%files tftpboot %files tftpboot
/tftpboot /tftpboot
@ -265,29 +253,53 @@ fi
%endif %endif
%changelog %changelog
* Wed Aug 03 2022 Robbie Harwood <rharwood@redhat.com> - 6.04-6 * Fri Jun 13 2025 Leo Sandoval <lsandova@redhat.com> - 6.04-0.22
- Sync with RHEL 9 / Fedora at their 6.04-0.20 - isohybrid: Make GPT GUIDs reproducible with --uefi and --id
- Resolves: #1748014 - Resolves: #RHEL-96214
* Fri Nov 13 2020 Javier Martinez Canillas <javierm@redhat.com> - 6.04-5 * Mon Jun 16 2025 Leo Sandoval <lsandova@redhat.com> - 6.04-0.21
- Bump release to ship the syslinux-tftpboot subpackage on aarch64 - Build tftpboot on x86_64 instead of i686
Resolves: rhbz#1870276 - Resolves: #RHEL-97105
* Tue Sep 24 2019 Yaakov Selkowitz <yselkowi@redhat.com> - 6.04-4 * Wed Aug 03 2022 Robbie Harwood <rharwood@redhat.com> - 6.04-0.20
- Make tftpboot subpackage completely noarch - Sync with fedora (same NVR)
Resolves: rhbz#1745205 - Resolves: #2018260
* Tue Aug 27 2019 Javier Martinez Canillas <javierm@redhat.com> 6.04-3 * Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 6.04-0.19
Drop x86_64 ExclusiveArch for tftpboot subpackage - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Resolves: rhbz#1745205 Related: rhbz#1991688
* Thu Aug 08 2019 Peter Jones <pjones@redhat.com> - 6.04-2 * Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 6.04-0.18
- Fix a bunch of annocheck problems - Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
Resolves: rhbz#1624176
* Fri Aug 10 2018 Peter Jones <pjones@redhat.com> - 6.04-1 * Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.04-0.17
- extlinux: fix missing include for major()/minor() - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Resolves: rhbz#1611751
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6.04-0.16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed May 13 2020 Merlin Mathesius <mmathesi@redhat.com> - 6.04-0.15
- Patches to fix FTBFS in F32/F33/ELN (RHBZ#1800180)
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6.04-0.14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Sep 27 2019 Javier Martinez Canillas <javierm@redhat.com> - 6.04-0.13
- Fix a bunch of annocheck problems (pjones)
- Drop x86_64 ExclusiveArch for tftpboot subpackage
- Make tftpboot subpackage completely noarch (yselkowi)
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 6.04-0.12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri May 10 2019 Scott Talbert <swt@techie.net> - 6.04-0.11
- Add upstream patch to include sysmacros.h to fix FTBFS (#1676107)
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 6.04-0.10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6.04-0.9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6.04-0.8 * Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6.04-0.8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild