syslinux/syslinux.spec
Steffen Winterfeldt de7ca1a7f7 Accepting request 1089159 from home:msmeissn:branches:system:install:head
- Build the system installable binaries with RPM_OPT_FLAGS, to allow
  utilization of stack-protector and FORTIFY_SOURCE. (bsc#1211640)

OBS-URL: https://build.opensuse.org/request/show/1089159
OBS-URL: https://build.opensuse.org/package/show/system:install:head/syslinux?expand=0&rev=107
2023-11-16 14:34:31 +00:00

144 lines
4.2 KiB
RPMSpec

#
# spec file for package syslinux
#
# Copyright (c) 2023 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/
#
Name: syslinux
ExclusiveArch: %ix86 x86_64
BuildRequires: libext2fs-devel
BuildRequires: libpng-devel
BuildRequires: libuuid-devel
BuildRequires: nasm
BuildRequires: netpbm
BuildRequires: python3
BuildRequires: xz
# lots of assembler here that would need to be changed :(
#!BuildIgnore: gcc-PIE
URL: http://www.syslinux.org/wiki/index.php/The_Syslinux_Project
Suggests: mtools
Summary: Boot Loader for Linux
License: GPL-2.0-or-later
Group: System/Boot
Version: 4.04
Release: 0
Source: https://www.kernel.org/pub/linux/utils/boot/syslinux/%{name}-%{version}.tar.bz2
Source1: isolinux-config
Source2: README.gfxboot
Source3: baselibs.conf
Patch0: %{name}-%{version}-iso9660.diff
Patch1: %{name}-%{version}-cwd.diff
Patch2: %{name}-%{version}-noinitrd.diff
Patch3: %{name}-%{version}-mboot_bootif.diff
Patch5: %{name}-%{version}-md5pass.diff
Patch6: %{name}-%{version}-libext2fs.diff
Patch7: %{name}-%{version}-gcc47.diff
Patch8: %{name}-%{version}-isohybrid_efi.diff
Patch9: %{name}-%{version}-isohybrid_efi_optional.diff
Patch10: %{name}-%{version}-isohybrid_mbr.diff
Patch11: %{name}-%{version}-localboot.diff
Patch12: %{name}-%{version}-geometry.diff
Patch13: %{name}-%{version}-nostrip.diff
Patch14: %{name}-%{version}-timeout.diff
Patch15: %{name}-%{version}-cache_fix.diff
Patch16: %{name}-%{version}-mtime.diff
Patch17: %{name}-%{version}-miniacc.diff
Patch18: %{name}-%{version}-align.diff
# PATCH-FIX-UPSTREAM -- make package build reproducible
Patch19: syslinux-4.04-reproducible.patch
Patch20: %{name}-%{version}-python3.diff
Patch21: sysmacros.patch
Patch22: remove-note-gnu-section.patch
Patch23: %{name}-%{version}-lzo.diff
Patch24: %{name}-%{version}-gcc10.diff
Patch25: syslinux-4.04-reproducible-isohybrid.patch
Patch26: %{name}-%{version}-pie.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
SYSLINUX is a boot loader for the Linux operating system which operates
off an MS-DOS or Windows FAT file system. It is intended to simplify
first-time installation of Linux and for creation of rescue and other
special purpose boot disks.
Authors:
--------
H. Peter Anvin <hpa@zytor.com>
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch5 -p1
%patch6 -p0
%patch7 -p0
%patch8 -p0
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p0
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17
%patch18
%patch19 -p1
%patch20 -p0
%patch21 -p1
%patch22 -p1
%patch23 -p0
%patch24 -p0
%patch25 -p1
%patch26 -p1
%build
cp %{SOURCE2} .
make spotless
make
# rebuild the on-system binaries with distribution optflags for stack protector etc.
for dir in extlinux utils linux mtools
do
cd $dir
make clean
make OPTFLAGS="%optflags"
cd ..
done
%install
make install-all \
INSTALLROOT=%{buildroot} BINDIR=%{_bindir} SBINDIR=%{_bindir} \
LIBDIR=%{_datadir} INCDIR=%{_includedir} MANDIR=%{_mandir}
install -m 755 mtools/syslinux $RPM_BUILD_ROOT/%{_bindir}/syslinux-mtools
install -m 755 linux/syslinux $RPM_BUILD_ROOT/%{_bindir}/syslinux
install -m 755 %{SOURCE1} $RPM_BUILD_ROOT/%{_bindir}
rm -rf $RPM_BUILD_ROOT/%{_datadir}/syslinux/com32
rm -rf $RPM_BUILD_ROOT/boot
rm -rf $RPM_BUILD_ROOT/tftpboot
%files
%defattr(-,root,root)
%doc doc/*.txt
%doc README* NEWS
%doc %{_mandir}/man1/*
%{_bindir}/*
%{_datadir}/syslinux
%changelog