diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a44c52b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/syslinux-6.04-pre1.tar.xz diff --git a/.syslinux.metadata b/.syslinux.metadata new file mode 100644 index 0000000..8a0624d --- /dev/null +++ b/.syslinux.metadata @@ -0,0 +1 @@ +599b7a85d522b1b6658a1fe290e4d23dc64b1470 SOURCES/syslinux-6.04-pre1.tar.xz diff --git a/SOURCES/0001-Add-install-all-target-to-top-side-of-HAVE_FIRMWARE.patch b/SOURCES/0001-Add-install-all-target-to-top-side-of-HAVE_FIRMWARE.patch new file mode 100644 index 0000000..78cceb6 --- /dev/null +++ b/SOURCES/0001-Add-install-all-target-to-top-side-of-HAVE_FIRMWARE.patch @@ -0,0 +1,32 @@ +From ca745cdfc27b83b6bcef9f856d858a68c64429de Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Tue, 8 Apr 2014 15:28:12 -0400 +Subject: [PATCH] Add "install-all target" to top side of HAVE_FIRMWARE. + +--- + Makefile | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/Makefile b/Makefile +index b472945..6606d31 100644 +--- a/Makefile ++++ b/Makefile +@@ -275,6 +275,16 @@ efi64: + FIRMWARE=EFI64 FWCLASS=EFI \ + $(MAKECMDGOALS) + ++install-all: ++ ++install: ++ ++netinstall: ++ ++clean: ++ ++all: ++ + else # FIRMWARE + + all: all-local subdirs +-- +2.5.5 diff --git a/SOURCES/0002-ext4-64bit-feature.patch b/SOURCES/0002-ext4-64bit-feature.patch new file mode 100644 index 0000000..9efe878 --- /dev/null +++ b/SOURCES/0002-ext4-64bit-feature.patch @@ -0,0 +1,101 @@ +From af7e95c32cea40c1e443ae301e64b27f068b4915 Mon Sep 17 00:00:00 2001 +From: Paulo Alcantara +Date: Wed, 11 Oct 2017 07:00:31 -0400 +Subject: [PATCH] ext4: Fix 64bit feature + +As per ext4 specification: + +> In ext2, ext3, and ext4 (when the 64bit feature is not enabled), the +> block group descriptor was only 32 bytes long and therefore ends at +> bg_checksum. On an ext4 filesystem with the 64bit feature enabled, the +> block group descriptor expands to at least the 64 bytes described below; +> the size is stored in the superblock. + +Since block group descriptor has been expanded to 64 bytes long (when 64 +bit feature is enabled), we cannot index ext2_group_desc and return it +*directly* -- as we did it in ext2_get_group_desc -- it's still 32 bytes +long. + +Instead, use s_desc_size field from superblock to correctly index and +return block group descriptors. + +Cc: H. Peter Anvin +Cc: Gene Cumm +Signed-off-by: Paulo Alcantara +--- + core/fs/ext2/ext2.c | 23 ++++++++++++++--------- + core/fs/ext2/ext2_fs.h | 1 + + 2 files changed, 15 insertions(+), 9 deletions(-) + +diff --git a/core/fs/ext2/ext2.c b/core/fs/ext2/ext2.c +index 76bd1d5..4bc0a53 100644 +--- a/core/fs/ext2/ext2.c ++++ b/core/fs/ext2/ext2.c +@@ -25,22 +25,17 @@ static enum dirent_type ext2_cvt_type(unsigned int d_file_type) + return inode_type[d_file_type]; + } + +-/* +- * get the group's descriptor of group_num +- */ +-static const struct ext2_group_desc * +-ext2_get_group_desc(struct fs_info *fs, uint32_t group_num) ++static const void *__ext2_get_group_desc(struct fs_info *fs, uint32_t group_num) + { + struct ext2_sb_info *sbi = EXT2_SB(fs); + uint32_t desc_block, desc_index; +- const struct ext2_group_desc *desc_data_block; ++ uint8_t *p; + + if (group_num >= sbi->s_groups_count) { + printf ("ext2_get_group_desc" + "block_group >= groups_count - " + "block_group = %d, groups_count = %d", + group_num, sbi->s_groups_count); +- + return NULL; + } + +@@ -49,8 +44,17 @@ ext2_get_group_desc(struct fs_info *fs, uint32_t group_num) + + desc_block += sbi->s_first_data_block + 1; + +- desc_data_block = get_cache(fs->fs_dev, desc_block); +- return &desc_data_block[desc_index]; ++ p = get_cache(fs->fs_dev, desc_block); ++ return p + sbi->s_desc_size * desc_index; ++} ++ ++/* ++ * get the group's descriptor of group_num ++ */ ++static inline const struct ext2_group_desc * ++ext2_get_group_desc(struct fs_info *fs, uint32_t group_num) ++{ ++ return __ext2_get_group_desc(fs, group_num); + } + + /* +@@ -306,6 +310,7 @@ static int ext2_fs_init(struct fs_info *fs) + if (sb.s_desc_size < sizeof(struct ext2_group_desc)) + sb.s_desc_size = sizeof(struct ext2_group_desc); + sbi->s_desc_per_block = BLOCK_SIZE(fs) / sb.s_desc_size; ++ sbi->s_desc_size = sb.s_desc_size; + sbi->s_groups_count = (sb.s_blocks_count - sb.s_first_data_block + + EXT2_BLOCKS_PER_GROUP(fs) - 1) + / EXT2_BLOCKS_PER_GROUP(fs); +diff --git a/core/fs/ext2/ext2_fs.h b/core/fs/ext2/ext2_fs.h +index 803a995..d8d07eb 100644 +--- a/core/fs/ext2/ext2_fs.h ++++ b/core/fs/ext2/ext2_fs.h +@@ -278,6 +278,7 @@ struct ext2_sb_info { + uint32_t s_first_data_block; /* First Data Block */ + int s_inode_size; + uint8_t s_uuid[16]; /* 128-bit uuid for volume */ ++ int s_desc_size; /* size of group descriptor */ + }; + + static inline struct ext2_sb_info *EXT2_SB(struct fs_info *fs) +-- +2.7.4.GIT + diff --git a/SOURCES/0003-include-sysmacros-h.patch b/SOURCES/0003-include-sysmacros-h.patch new file mode 100644 index 0000000..a39019e --- /dev/null +++ b/SOURCES/0003-include-sysmacros-h.patch @@ -0,0 +1,33 @@ +From 1a74985b2a404639b08882c57f3147229605dfd5 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Tue, 19 Apr 2016 06:50:31 -0400 +Subject: [PATCH] extlinux: pull in sys/sysmacros.h for major/minor/makedev + +These functions are defined in sys/sysmacros.h, so add the include to +main.c. This is already handled correctly in mountinfo.c. Otherwise +we get build failures like: + +main.o: In function 'find_device_sysfs': +extlinux/main.c:1131: undefined reference to 'minor' + +Signed-off-by: Mike Frysinger +Signed-off-by: Gene Cumm +--- + extlinux/main.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/extlinux/main.c b/extlinux/main.c +index a7ebd49..ebff7ea 100644 +--- a/extlinux/main.c ++++ b/extlinux/main.c +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + #include + #include + #include +-- +2.10.5.GIT + diff --git a/SOURCES/0004-Add-RPMOPTFLAGS-to-CFLAGS-for-some-stuff.patch b/SOURCES/0004-Add-RPMOPTFLAGS-to-CFLAGS-for-some-stuff.patch new file mode 100644 index 0000000..e55c490 --- /dev/null +++ b/SOURCES/0004-Add-RPMOPTFLAGS-to-CFLAGS-for-some-stuff.patch @@ -0,0 +1,76 @@ +From 5c24d725d5a5f50f0544fbcc544f08a3f9e90e5d Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Thu, 8 Aug 2019 05:41:36 -0400 +Subject: [PATCH] Add 'RPMOPTFLAGS' to CFLAGS for some stuff. + +--- + extlinux/Makefile | 4 ++-- + linux/Makefile | 4 ++-- + mtools/Makefile | 4 ++-- + utils/Makefile | 4 ++-- + 4 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/extlinux/Makefile b/extlinux/Makefile +index 1721ee54aff..d504e23133e 100644 +--- a/extlinux/Makefile ++++ b/extlinux/Makefile +@@ -18,9 +18,9 @@ include $(MAKEDIR)/syslinux.mk + + OPTFLAGS = -g -Os + INCLUDES = -I$(SRC) -I$(objdir) -I$(SRC)/../libinstaller +-CFLAGS = $(GCCWARN) -Wno-sign-compare -D_FILE_OFFSET_BITS=64 \ ++CFLAGS = $(RPMCFLAGS) $(GCCWARN) -Wno-sign-compare -D_FILE_OFFSET_BITS=64 \ + $(OPTFLAGS) $(INCLUDES) +-LDFLAGS = ++LDFLAGS = $(RPMLDFLAGS) + + SRCS = main.c \ + mountinfo.c \ +diff --git a/linux/Makefile b/linux/Makefile +index 5a49d813de1..9fed68d02c6 100644 +--- a/linux/Makefile ++++ b/linux/Makefile +@@ -18,8 +18,8 @@ include $(MAKEDIR)/syslinux.mk + + OPTFLAGS = -g -Os + INCLUDES = -I$(SRC) -I$(objdir) -I$(SRC)/../libinstaller +-CFLAGS = $(GCCWARN) -D_FILE_OFFSET_BITS=64 $(OPTFLAGS) $(INCLUDES) +-LDFLAGS = ++CFLAGS = $(RPMCFLAGS) $(GCCWARN) -D_FILE_OFFSET_BITS=64 $(OPTFLAGS) $(INCLUDES) ++LDFLAGS = $(RPMLDFLAGS) + + SRCS = syslinux.c \ + ../libinstaller/syslxopt.c \ +diff --git a/mtools/Makefile b/mtools/Makefile +index 632b185ba2f..b6e5ebdba6b 100755 +--- a/mtools/Makefile ++++ b/mtools/Makefile +@@ -2,8 +2,8 @@ include $(MAKEDIR)/syslinux.mk + + OPTFLAGS = -g -Os + INCLUDES = -I$(SRC) -I$(objdir) -I$(SRC)/../libfat -I$(SRC)/../libinstaller +-CFLAGS = $(GCCWARN) -D_FILE_OFFSET_BITS=64 $(OPTFLAGS) $(INCLUDES) +-LDFLAGS = ++CFLAGS = $(RPMCFLAGS) $(GCCWARN) -D_FILE_OFFSET_BITS=64 $(OPTFLAGS) $(INCLUDES) ++LDFLAGS = $(RPMLDFLAGS) + + SRCS = syslinux.c \ + ../libinstaller/fs.c \ +diff --git a/utils/Makefile b/utils/Makefile +index dfe625902ce..b4962353f20 100644 +--- a/utils/Makefile ++++ b/utils/Makefile +@@ -17,8 +17,8 @@ + VPATH = $(SRC) + include $(MAKEDIR)/syslinux.mk + +-CFLAGS = $(GCCWARN) -Os -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -I$(SRC) +-LDFLAGS = -O2 ++CFLAGS = $(RPMCFLAGS) $(GCCWARN) -Os -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -I$(SRC) ++LDFLAGS = $(RPMLDFLAGS) -O2 + + C_TARGETS = isohybrid gethostip memdiskfind + SCRIPT_TARGETS = mkdiskimage +-- +2.21.0 + diff --git a/SOURCES/0005-Workaround-multiple-definition-of-symbol-errors.patch b/SOURCES/0005-Workaround-multiple-definition-of-symbol-errors.patch new file mode 100644 index 0000000..b5bbad0 --- /dev/null +++ b/SOURCES/0005-Workaround-multiple-definition-of-symbol-errors.patch @@ -0,0 +1,109 @@ +From 951928f2cad5682c2844e6bd0f7201236c5d9b66 Mon Sep 17 00:00:00 2001 +From: Merlin Mathesius +Date: Wed, 13 May 2020 08:02:27 -0500 +Subject: [PATCH] Workaround multiple definition of symbol errors + +--- + com32/cmenu/Makefile | 2 +- + com32/elflink/ldlinux/Makefile | 2 +- + com32/gpllib/Makefile | 2 +- + com32/hdt/Makefile | 2 +- + core/Makefile | 2 +- + dos/Makefile | 2 +- + efi/Makefile | 2 +- + 7 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/com32/cmenu/Makefile b/com32/cmenu/Makefile +index b81b68ed..2ae989c4 100644 +--- a/com32/cmenu/Makefile ++++ b/com32/cmenu/Makefile +@@ -49,7 +49,7 @@ makeoutputdirs: + @mkdir -p $(OBJ)/libmenu + + libmenu/libmenu.elf: $(LIBMENU) +- $(LD) -shared $(LDFLAGS) -soname $(patsubst %.elf,%.c32,$(@F)) \ ++ $(LD) -shared $(LDFLAGS) -z muldefs -soname $(patsubst %.elf,%.c32,$(@F)) \ + -o $@ $^ + + tidy dist: +diff --git a/com32/elflink/ldlinux/Makefile b/com32/elflink/ldlinux/Makefile +index 87c0d362..2be2a01a 100644 +--- a/com32/elflink/ldlinux/Makefile ++++ b/com32/elflink/ldlinux/Makefile +@@ -33,7 +33,7 @@ endif + all: $(BTARGET) ldlinux_lnx.a + + ldlinux.elf : $(OBJS) +- $(LD) $(LDFLAGS) -soname $(SONAME) -o $@ $^ $(LIBS) ++ $(LD) $(LDFLAGS) -z muldefs -soname $(SONAME) -o $@ $^ $(LIBS) + + LNXCFLAGS += -D__export='__attribute__((visibility("default")))' + LNXLIBOBJS = get_key.lo +diff --git a/com32/gpllib/Makefile b/com32/gpllib/Makefile +index 1fec9145..2d764d0b 100644 +--- a/com32/gpllib/Makefile ++++ b/com32/gpllib/Makefile +@@ -24,7 +24,7 @@ makeoutputdirs: + $(addprefix $(OBJ),$(sort $(dir $(LIBOBJS)))),$(b)) + + libgpl.elf : $(LIBOBJS) +- $(LD) -shared $(LDFLAGS) -soname $(patsubst %.elf,%.c32,$(@F)) -o $@ $^ ++ $(LD) -shared $(LDFLAGS) -z muldefs -soname $(patsubst %.elf,%.c32,$(@F)) -o $@ $^ + + tidy dist clean: + find . \( -name \*.o -o -name .\*.d -o -name \*.tmp \) -print0 | \ +diff --git a/com32/hdt/Makefile b/com32/hdt/Makefile +index 61736d05..1d947857 100644 +--- a/com32/hdt/Makefile ++++ b/com32/hdt/Makefile +@@ -52,7 +52,7 @@ QEMU ?= qemu-kvm + all: $(MODULES) $(TESTFILES) + + hdt.elf : $(OBJS) $(LIBS) $(C_LIBS) +- $(LD) $(LDFLAGS) -o $@ $^ ++ $(LD) $(LDFLAGS) -z muldefs -o $@ $^ + + memtest: + -[ ! -f $(FLOPPY_DIR)/$(MEMTEST) ] && $(WGET) $(MEMTEST_URL) -O $(FLOPPY_DIR)/$(MEMTEST) +diff --git a/core/Makefile b/core/Makefile +index 46cb037c..f0cfcbe9 100644 +--- a/core/Makefile ++++ b/core/Makefile +@@ -156,7 +156,7 @@ LDSCRIPT = $(SRC)/$(ARCH)/syslinux.ld + NASM_ELF = elf + + %.elf: %.o $(LIBDEP) $(LDSCRIPT) $(AUXLIBS) +- $(LD) $(LDFLAGS) -pie -Bsymbolic \ ++ $(LD) $(LDFLAGS) -z muldefs -pie -Bsymbolic \ + -T $(LDSCRIPT) \ + --unresolved-symbols=report-all \ + -E --hash-style=gnu -M -o $@ $< \ +diff --git a/dos/Makefile b/dos/Makefile +index 4c930d19..5d1c72ca 100644 +--- a/dos/Makefile ++++ b/dos/Makefile +@@ -19,7 +19,7 @@ include $(MAKEDIR)/embedded.mk + CFLAGS += -D__MSDOS__ -mregparm=3 -DREGPARM=3 + # CFLAGS += -DDEBUG + +-LDFLAGS = -T $(SRC)/dosexe.ld ++LDFLAGS = -T $(SRC)/dosexe.ld -z muldefs + OPTFLAGS = -g + INCLUDES = -include code16.h -nostdinc -iwithprefix include \ + -I$(SRC) -I$(SRC)/.. -I$(SRC)/../libfat \ +diff --git a/efi/Makefile b/efi/Makefile +index bbf23f24..3dd922d5 100644 +--- a/efi/Makefile ++++ b/efi/Makefile +@@ -69,7 +69,7 @@ $(OBJS): | $(OBJ)/$(ARCH) + BTARGET = syslinux.efi + + syslinux.so: $(OBJS) $(CORE_OBJS) $(LIB_OBJS) +- $(LD) $(LDFLAGS) --strip-debug -o $@ $^ -lgnuefi -lefi ++ $(LD) $(LDFLAGS) -z muldefs --strip-debug -o $@ $^ -lgnuefi -lefi + + # We need to rename the .hash section because the EFI firmware + # linker really doesn't like it. +-- +2.25.1 + diff --git a/SOURCES/0006-Replace-builtin-strlen-that-appears-to-get-optimized.patch b/SOURCES/0006-Replace-builtin-strlen-that-appears-to-get-optimized.patch new file mode 100644 index 0000000..11160bb --- /dev/null +++ b/SOURCES/0006-Replace-builtin-strlen-that-appears-to-get-optimized.patch @@ -0,0 +1,40 @@ +From eae06bdce9468d7fde263de1c53f80f2faff0c9e Mon Sep 17 00:00:00 2001 +From: Merlin Mathesius +Date: Wed, 13 May 2020 11:58:37 -0500 +Subject: [PATCH] Replace builtin strlen that appears to get optimized away + +--- + dos/string.h | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/dos/string.h b/dos/string.h +index f648de2d..407d0233 100644 +--- a/dos/string.h ++++ b/dos/string.h +@@ -5,12 +5,22 @@ + #ifndef _STRING_H + #define _STRING_H + ++#include ++ + /* Standard routines */ + #define memcpy(a,b,c) __builtin_memcpy(a,b,c) + #define memmove(a,b,c) __builtin_memmove(a,b,c) + #define memset(a,b,c) __builtin_memset(a,b,c) + #define strcpy(a,b) __builtin_strcpy(a,b) +-#define strlen(a) __builtin_strlen(a) ++#define strlen(a) inline_strlen(a) ++ ++/* replacement for builtin strlen that appears to get optimized away */ ++static inline size_t inline_strlen(const char *str) ++{ ++ size_t l; ++ for (l = 0; *str++; l++); ++ return l; ++} + + /* This only returns true or false */ + static inline int memcmp(const void *__m1, const void *__m2, unsigned int __n) +-- +2.25.1 + diff --git a/SPECS/syslinux.spec b/SPECS/syslinux.spec new file mode 100644 index 0000000..64a957e --- /dev/null +++ b/SPECS/syslinux.spec @@ -0,0 +1,675 @@ +%global buildarches %{ix86} x86_64 +%ifnarch %{buildarches} +%global debug_package %{nil} +%endif + +Summary: Simple kernel loader which boots from a FAT filesystem +Name: syslinux +Version: 6.04 +%define tarball_version 6.04-pre1 +Release: 0.19%{?dist} +License: GPLv2+ +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 +Patch0001: 0001-Add-install-all-target-to-top-side-of-HAVE_FIRMWARE.patch +Patch0002: 0002-ext4-64bit-feature.patch +Patch0003: 0003-include-sysmacros-h.patch +Patch0004: 0004-Add-RPMOPTFLAGS-to-CFLAGS-for-some-stuff.patch +Patch0005: 0005-Workaround-multiple-definition-of-symbol-errors.patch +Patch0006: 0006-Replace-builtin-strlen-that-appears-to-get-optimized.patch + +# this is to keep rpmbuild from thinking the .c32 / .com / .0 / memdisk files +# in noarch packages are a reason to stop the build. +%define _binaries_in_noarch_packages_terminate_build 0 + +BuildRequires: make +BuildRequires: git +%ifarch %{buildarches} +BuildRequires: gcc +BuildRequires: nasm >= 0.98.38-1, perl-interpreter, perl-generators, netpbm-progs +BuildRequires: perl(FileHandle) +BuildRequires: /usr/include/gnu/stubs-32.h +BuildRequires: libuuid-devel +Requires: syslinux-nonlinux = %{version}-%{release} +%endif +%ifarch %{ix86} +Requires: mtools, libc.so.6 +BuildRequires: mingw32-gcc +%endif +%ifarch x86_64 +Requires: mtools, libc.so.6()(64bit) +BuildRequires: mingw64-gcc +%endif + +# NOTE: extlinux belongs in /sbin, not in /usr/sbin, since it is typically +# a system bootloader, and may be necessary for system recovery. +%define _sbindir /sbin + +%description +SYSLINUX is a suite of bootloaders, currently supporting DOS FAT +filesystems, Linux ext2/ext3 filesystems (EXTLINUX), PXE network boots +(PXELINUX), or ISO 9660 CD-ROMs (ISOLINUX). It also includes a tool, +MEMDISK, which loads legacy operating systems from these media. + +%package perl +Summary: Syslinux tools written in perl + +%description perl +Syslinux tools written in perl + +%package devel +Summary: Headers and libraries for syslinux development. +Provides: %{name}-static = %{version}-%{release} + +%description devel +Headers and libraries for syslinux development. + +%package extlinux +Summary: The EXTLINUX bootloader, for booting the local system. +Requires: syslinux +Requires: syslinux-extlinux-nonlinux = %{version}-%{release} + +%description extlinux +The EXTLINUX bootloader, for booting the local system, as well as all +the SYSLINUX/PXELINUX modules in /boot. + +%ifarch %{ix86} +%package tftpboot +Summary: SYSLINUX modules in /tftpboot, available for network booting +BuildArch: noarch + +%description tftpboot +All the SYSLINUX/PXELINUX modules directly available for network +booting in the /tftpboot directory. + +%package extlinux-nonlinux +Summary: The parts of the EXTLINUX bootloader which aren't run from linux. +Requires: syslinux +BuildArch: noarch +ExclusiveArch: %{ix86} x86_64 + +%description extlinux-nonlinux +All the EXTLINUX binaries that run from the firmware rather than +from a linux host. + +%package nonlinux +Summary: SYSLINUX modules which aren't run from linux. +Requires: syslinux +BuildArch: noarch +ExclusiveArch: %{ix86} x86_64 + +%description nonlinux +All the SYSLINUX binaries that run from the firmware rather than from a +linux host. It also includes a tool, MEMDISK, which loads legacy operating +systems from media. +%endif + +%ifarch x86_64 +%package efi64 +Summary: SYSLINUX binaries and modules for 64-bit UEFI systems + +%description efi64 +SYSLINUX binaries and modules for 64-bit UEFI systems +%endif + +%prep +%autosetup -S git_am -n syslinux-%{tarball_version} + +%build +%ifarch %{buildarches} +make RPMCFLAGS='%{optflags}' RPMLDFLAGS='%{build_ldflags}' bios clean all +%endif +%ifarch x86_64 +make RPMCFLAGS='%{optflags}' RPMLDFLAGS='%{build_ldflags}' efi64 clean all +%endif + +%install +%ifarch %{buildarches} +rm -rf %{buildroot} + +mkdir -p %{buildroot}%{_bindir} +mkdir -p %{buildroot}%{_sbindir} +mkdir -p %{buildroot}%{_prefix}/lib/syslinux +mkdir -p %{buildroot}%{_includedir} +make bios install-all \ + INSTALLROOT=%{buildroot} BINDIR=%{_bindir} SBINDIR=%{_sbindir} \ + LIBDIR=%{_prefix}/lib DATADIR=%{_datadir} \ + MANDIR=%{_mandir} INCDIR=%{_includedir} \ + TFTPBOOT=/tftpboot EXTLINUXDIR=/boot/extlinux \ + LDLINUX=ldlinux.c32 +%ifarch x86_64 +make efi64 install netinstall \ + INSTALLROOT=%{buildroot} BINDIR=%{_bindir} SBINDIR=%{_sbindir} \ + LIBDIR=%{_prefix}/lib DATADIR=%{_datadir} \ + MANDIR=%{_mandir} INCDIR=%{_includedir} \ + TFTPBOOT=/tftpboot EXTLINUXDIR=/boot/extlinux \ + LDLINUX=ldlinux.c32 +%endif + +mkdir -p %{buildroot}%{_pkgdocdir}/sample +install -m 644 sample/sample.* %{buildroot}%{_pkgdocdir}/sample/ +mkdir -p %{buildroot}/etc +( cd %{buildroot}/etc && ln -s ../boot/extlinux/extlinux.conf . ) + +# don't ship libsyslinux, at least, not for now +rm -f %{buildroot}%{_prefix}/lib/libsyslinux* +rm -f %{buildroot}%{_includedir}/syslinux.h +%endif + +%ifarch %{buildarches} +%files +%{!?_licensedir:%global license %%doc} +%license COPYING +%doc NEWS README* +%doc doc/* +%doc sample +%{_mandir}/man1/gethostip* +%{_mandir}/man1/syslinux* +%{_mandir}/man1/extlinux* +%{_mandir}/man1/isohybrid* +%{_mandir}/man1/memdiskfind* +%{_bindir}/gethostip +%{_bindir}/isohybrid +%{_bindir}/memdiskfind +%{_bindir}/syslinux +%dir %{_datadir}/syslinux +%dir %{_datadir}/syslinux/dosutil +%{_datadir}/syslinux/dosutil/* +%dir %{_datadir}/syslinux/diag +%{_datadir}/syslinux/diag/* +%ifarch %{ix86} +%{_datadir}/syslinux/syslinux.exe +%else +%{_datadir}/syslinux/syslinux64.exe +%endif + +%files perl +%{!?_licensedir:%global license %%doc} +%license COPYING +%{_mandir}/man1/lss16toppm* +%{_mandir}/man1/ppmtolss16* +%{_mandir}/man1/syslinux2ansi* +%{_bindir}/keytab-lilo +%{_bindir}/lss16toppm +%{_bindir}/md5pass +%{_bindir}/mkdiskimage +%{_bindir}/ppmtolss16 +%{_bindir}/pxelinux-options +%{_bindir}/sha1pass +%{_bindir}/syslinux2ansi +%{_bindir}/isohybrid.pl + +%files devel +%{!?_licensedir:%global license %%doc} +%license COPYING +%dir %{_datadir}/syslinux/com32 +%{_datadir}/syslinux/com32/* + +%files extlinux +%{_sbindir}/extlinux +%config /etc/extlinux.conf + +%ifarch %{ix86} +%files tftpboot +/tftpboot + +%files nonlinux +%{_datadir}/syslinux/*.com +%{_datadir}/syslinux/*.exe +%{_datadir}/syslinux/*.c32 +%{_datadir}/syslinux/*.bin +%{_datadir}/syslinux/*.0 +%{_datadir}/syslinux/memdisk + +%files extlinux-nonlinux +/boot/extlinux + +%else +%exclude %{_datadir}/syslinux/memdisk +%exclude %{_datadir}/syslinux/*.com +%exclude %{_datadir}/syslinux/*.exe +%exclude %{_datadir}/syslinux/*.c32 +%exclude %{_datadir}/syslinux/*.bin +%exclude %{_datadir}/syslinux/*.0 +%exclude /boot/extlinux +%exclude /tftpboot +%endif + +%ifarch x86_64 +%files efi64 +%{!?_licensedir:%global license %%doc} +%license COPYING +%dir %{_datadir}/syslinux/efi64 +%{_datadir}/syslinux/efi64 +%endif + +%post extlinux +# If we have a /boot/extlinux.conf file, assume extlinux is our bootloader +# and update it. +if [ -f /boot/extlinux/extlinux.conf ]; then \ + extlinux --update /boot/extlinux ; \ +elif [ -f /boot/extlinux.conf ]; then \ + mkdir -p /boot/extlinux && \ + mv /boot/extlinux.conf /boot/extlinux/extlinux.conf && \ + extlinux --update /boot/extlinux ; \ +fi +%endif + +%changelog +* Tue Aug 10 2021 Mohan Boddu - 6.04-0.19 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Fri Apr 16 2021 Mohan Boddu - 6.04-0.18 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Wed Jan 27 2021 Fedora Release Engineering - 6.04-0.17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 6.04-0.16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed May 13 2020 Merlin Mathesius - 6.04-0.15 +- Patches to fix FTBFS in F32/F33/ELN (RHBZ#1800180) + +* Fri Jan 31 2020 Fedora Release Engineering - 6.04-0.14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Sep 27 2019 Javier Martinez Canillas - 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 - 6.04-0.12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri May 10 2019 Scott Talbert - 6.04-0.11 +- Add upstream patch to include sysmacros.h to fix FTBFS (#1676107) + +* Sun Feb 03 2019 Fedora Release Engineering - 6.04-0.10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Jul 14 2018 Fedora Release Engineering - 6.04-0.9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Feb 09 2018 Fedora Release Engineering - 6.04-0.8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sun Nov 26 2017 Robert Scheck - 6.04-0.7 +- Add upstream patch for ext4 64bit feature (#1369934) + +* Mon Nov 20 2017 Robert Scheck - 6.04-0.6 +- Correct non-existent macro %%{x86_64} to x86_64 (#1312748) + +* Thu Aug 03 2017 Fedora Release Engineering - 6.04-0.5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 6.04-0.4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Mar 25 2017 Robert Scheck - 6.04-0.3 +- Own %%{_datadir}/syslinux/diag directory (#894529) +- Allow rebuilding on RHEL/CentOS 6 and 7 (#1291428) + +* Sat Feb 11 2017 Fedora Release Engineering - 6.04-0.2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed May 04 2016 Peter Jones - - 6.04-0.1 +- Update to 6.04-pre1 + Resolves: rhbz#1135793 + +* Fri Feb 05 2016 Fedora Release Engineering - 6.03-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Oct 15 2015 Adam Williamson - 6.03-6 +- backport GCC 5 fixes from upstream ML: RHBZ #1263988, #1264012 + +* Fri Jul 03 2015 Adam Williamson - 6.03-5 +- backport a commit from git master which appears to fix RHBZ #1234653 + +* Fri Jun 19 2015 Fedora Release Engineering - 6.03-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat Feb 21 2015 Till Maas - 6.03-3 +- Rebuilt for Fedora 23 Change + https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code + +* Sat Jan 10 2015 Michael Schwendt - 6.03-2 +- Add -static Provides to -devel package to meet Fedora's + Packaging Static Libraries guidelines (rhbz #609617) + +* Wed Oct 08 2014 Peter Jones - 6.03-1 +- Update to 6.03 + +* Mon Aug 18 2014 Fedora Release Engineering - 6.02-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Tue Aug 5 2014 Tom Callaway - 6.02-6 +- fix license handling + +* Sun Jun 08 2014 Fedora Release Engineering - 6.02-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue Apr 15 2014 Peter Jones - 6.02-4 +- Do our firmware/nonlinux packages as .noarch + ExclusiveArch + Related: rhbz#1086446 + +* Tue Apr 15 2014 Peter Jones - 6.02-3 +- -2 was entirely the wrong thing to do. + +* Tue Apr 15 2014 Kevin Kofler - 6.02-2 +- Undo packaging changes that break live image composes (#1086446) + +* Tue Apr 08 2014 Peter Jones - 6.02-1 +- Update this to 6.02 + +* Mon Aug 05 2013 Peter Jones - 4.05-7 +- Fixing %%doc path. + +* Sun Aug 04 2013 Fedora Release Engineering - 4.05-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Jul 17 2013 Petr Pisar - 4.05-6 +- Perl 5.18 rebuild + +* Fri Feb 15 2013 Fedora Release Engineering - 4.05-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Aug 06 2012 Peter Jones - 4.05-4 +- Fix build problem from kernel-headers' removeal of ext2_fs.h + (fix backported from as-yet-unreleased upstream version.) + +* Sat Jul 21 2012 Fedora Release Engineering - 4.05-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed Apr 18 2012 Michael Schwendt - 4.05-2 +- Remove old Obsoletes/Provides for syslinux-devel as such a subpkg + was introduced with 3.83-2 (#756733). + +* Wed Feb 15 2012 Matthew Garrett - 4.05-1 +- New upstream release +- syslinux-isohybrid-fix-mbr.patch: generate a full MBR for UEFI images + +* Sat Jan 14 2012 Fedora Release Engineering - 4.02-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Aug 24 2011 Matthew Garrett - 4.02-5 +- Add support for building Mac and GPT bootable hybrid images + +* Wed Feb 09 2011 Fedora Release Engineering - 4.02-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Aug 20 2010 Matt Domsch - 4.02-2 +- add perl subpackage, move perl apps there + +* Fri Aug 06 2010 Peter Jones - 4.02-2 +- Split out extlinux and tftpboot. +- remove duplicate syslinux/com32/ left in base package after 3.83-2 + +* Thu Aug 05 2010 Peter Jones - 4.02-1 +- Update to 4.02 + +* Mon Jan 11 2010 Peter Jones - 3.84-1 +- Update to 3.84 + +* Thu Dec 17 2009 Peter Jones - 3.83-2 +- Split out -devel + +* Thu Oct 29 2009 Peter Jones - 3.83-1 +- update to 3.83 + +* Sun Jul 26 2009 Fedora Release Engineering - 3.75-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Tue Apr 28 2009 Jeremy Katz - 3.75-3 +- Stop suppressing requirements of the package (#465299) + +* Tue Apr 28 2009 Jeremy Katz - 3.75-2 +- Don't strip binaries to fix debuginfo (#249970) + +* Thu Apr 16 2009 Jeremy Katz - 3.75-1 +- update to 3.75 + +* Fri Apr 10 2009 Jeremy Katz - 3.74-1 +- update to 3.74 + +* Fri Feb 27 2009 Tom "spot" Callaway - 3.73-2 +- fix arch issues + +* Fri Feb 27 2009 Jeremy Katz - 3.73-1 +- Update to 3.73 + +* Wed Feb 25 2009 Fedora Release Engineering - 3.61-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Sat Sep 6 2008 Tom "spot" Callaway - 3.61-3 +- fix license tag + +* Mon Feb 25 2008 Peter Jones - 3.61-2 +- Remove 16bpp patch, hpa says that's there to cover a bug that's fixed. +- Remove x86_64 patch; building without it works now. + +* Thu Feb 21 2008 Peter Jones - 3.61-1 +- Update to 3.61 . + +* Tue Feb 19 2008 Fedora Release Engineering - 3.36-9 +- Autorebuild for GCC 4.3 + +* Wed Jan 09 2008 Florian La Roche - 3.36-8 +- spec in utf-8 +- add URL tag +- own /usr/share/syslinux (rhbz#427816) + +* Wed Oct 17 2007 Peter Jones - 3.36-7 +- Add necessary files for makebootfat to make usb images (patch from + Joel Granados ) + +* Wed Oct 3 2007 Jeremy Katz - 3.36-6 +- fix menu system memory corruption (#239585) + +* Tue Aug 14 2007 Jeremy Katz - 3.36-5 +- backport "menu hidden" support from upstream git + +* Fri May 4 2007 Jeremy Katz - 3.36-4 +- switch to preferring 16bpp for graphical menu; this fixes the display for + qemu, kvm, etc + +* Tue May 1 2007 Jeremy Katz - 3.36-3 +- fix countdown on boot images (#229491) + +* Tue Apr 03 2007 Florian La Roche - 3.36-2 +- add upstream patch from 3.3x branch + +* Mon Feb 12 2007 Florian La Roche - 3.36-1 +- update to 3.36 + +* Thu Feb 08 2007 Florian La Roche - 3.35-1 +- update to 3.35 + +* Thu Jan 18 2007 Jesse Keating - 3.31-2 +- Make syslinux own /usr/lib/syslinux. + +* Wed Jan 17 2007 Jeremy Katz - 3.31-1 +- update to 3.31 + +* Tue Aug 22 2006 Jesse Keating - 3.11-4 +- Obsolete syslinux-devel. +- Couple cleanups for packaging guidelines + +* Fri Jul 14 2006 David Cantrell - 3.11-3 +- Remove com32/include/time.h and com32/include/sys/times.h +- Replace CLK_TCK macros with CLOCKS_PER_SEC + +* Wed Jul 12 2006 Jesse Keating - 3.11-2.1 +- rebuild + +* Mon Jun 12 2006 Peter Jones - 3.11-2 +- Fold -devel subpackage into "syslinux" + +* Mon Jun 05 2006 Jesse Keating - 3.10-5 +- Use the actual file as a BuildRequire + +* Mon Jun 05 2006 Jesse Keating - 3.10-4 +- Changed glibc-devel to glibc32 to get the 32bit package in + +* Mon Jun 05 2006 Jesse Keating - 3.10-3 +- Added missing glibc-devel BuildRequires + +* Tue Feb 07 2006 Jesse Keating - 3.10-2.2 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Mon Aug 22 2005 Peter Jones - 3.10-2 +- Update to 3.10 +- Don't do "make clean", so we actually ship the bins hpa gives us + +* Sat Jul 9 2005 Peter Jones - 3.09-2 +- Update to 3.09 + +* Thu Jun 16 2005 Peter Jones - 3.08.92-1 +- Update to 3.09-pre2, to fix the i915 .bss overflow bug + +* Thu May 19 2005 Peter Jones - 3.08-3 +- Fix filespec for samples in -devel + +* Thu May 19 2005 Peter Jones - 3.08-2 +- update to 3.08 + +* Wed Mar 16 2005 Peter Jones - 3.07-2 +- gcc4 update + +* Thu Jan 13 2005 Peter Jones - 3.07-1 +- update to 3.07 + +* Tue Jan 11 2005 Peter Jones - 3.06-1 +- update to 3.06 , which should fix the directory parsing bug that wedges it + with diskboot.img +- change README to README* in doc, to include README.menu and README.usbkey + +* Tue Jan 4 2005 Peter Jones - 3.02-2 +- Beehive doesn't let you build in scratch and then build someplace else, + arrrrgh. + +* Tue Jan 4 2005 Peter Jones - 3.02-1 +- 3.02 +- Make the spec a little closer to hpa's. + +* Mon Jan 3 2005 Peter Jones - 3.00-2 +- make tag says the tag is there, make build says it's not. + Bump release, try again. + +* Mon Jan 3 2005 Peter Jones - 3.00-1 +- 3.00 + +* Mon Aug 16 2004 Jeremy Katz - 2.11-1 +- 2.11 + +* Fri Jul 30 2004 Jeremy Katz - 2.10-1 +- update to 2.10 + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Sat Apr 17 2004 Jeremy Katz 2.0.8-3 +- add syslinux-nomtools binary to be used for creating some installer images + +* Tue Feb 17 2004 Jeremy Katz +- add netpbm-progs BuildRequires (#110255) + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Sun Dec 14 2003 Jeremy Katz 2.08-1 +- 2.08 + +* Fri Aug 22 2003 Jeremy Katz 2.06-1 +- 2.06 + +* Thu Aug 14 2003 Jeremy Katz 2.05-1 +- update to 2.05 + +* Mon Apr 21 2003 Jeremy Katz 2.04-2 +- add patch for samples to build on x86_64 +- integrate some changes from upstream specfile (#88593) + +* Fri Apr 18 2003 Jeremy Katz 2.04-1 +- update to 2.04 + +* Mon Feb 3 2003 Jeremy Katz 2.01-1 +- update to 2.01 + +* Wed Jan 22 2003 Tim Powers +- rebuilt + +* Tue Jan 14 2003 Jeremy Katz 2.00-3 +- fix deps for x86_64 + +* Wed Nov 27 2002 Tim Powers 2.00-2 +- build on both x86_64 and i386 + +* Fri Nov 1 2002 Jeremy Katz +- update to 2.00 +- add additional files as requested by hpa (#68073) + +* Fri Jun 21 2002 Tim Powers +- automated rebuild + +* Tue Jun 18 2002 Jeremy Katz +- lss16toppm and ppmtolss16 are both perl scripts... turn off find-requires + so we don't suck in perl as a dependency for syslinux + +* Mon Jun 17 2002 Jeremy Katz +- update to 1.75 +- include tools to create graphical image format needed by syslinux +- include isolinux +- include pxelinux (#64942) + +* Fri Jun 14 2002 Preston Brown +- upgrade to latest version w/graphical screen support + +* Thu May 23 2002 Tim Powers +- automated rebuild + +* Wed Jan 09 2002 Tim Powers +- automated rebuild + +* Sun Jun 24 2001 Elliot Lee +- Bump release + rebuild. + +* Sat Feb 10 2001 Matt Wilson +- 1.52 + +* Wed Jan 24 2001 Matt Wilson +- 1.51pre7 + +* Mon Jan 22 2001 Matt Wilson +- 1.51pre5 + +* Fri Jan 19 2001 Matt Wilson +- 1.51pre3, with e820 detection + +* Tue Dec 12 2000 Than Ngo +- rebuilt with fixed fileutils + +* Thu Nov 9 2000 Than Ngo +- update to 1.49 +- update ftp site +- clean up specfile +- add some useful documents + +* Tue Jul 18 2000 Nalin Dahyabhai +- add %%defattr (release 4) + +* Wed Jul 12 2000 Prospector +- automatic rebuild + +* Thu Jul 06 2000 Trond Eivind Glomsrød +- use %%{_tmppath} +- change application group (Applications/Internet doesn't seem + right to me) +- added BuildRequires + +* Tue Apr 04 2000 Erik Troan +- initial packaging