File syslinux.spec of Package syslinux

#
# spec file for package syslinux
#
# Copyright (c) 2024 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.patch
Patch1:         %{name}-%{version}-cwd.patch
Patch2:         %{name}-%{version}-noinitrd.patch
Patch3:         %{name}-%{version}-mboot_bootif.patch
Patch5:         %{name}-%{version}-md5pass.patch
Patch6:         %{name}-%{version}-libext2fs.patch
Patch7:         %{name}-%{version}-gcc47.patch
Patch8:         %{name}-%{version}-isohybrid_efi.patch
Patch9:         %{name}-%{version}-isohybrid_efi_optional.patch
Patch10:        %{name}-%{version}-isohybrid_mbr.patch
Patch11:        %{name}-%{version}-localboot.patch
Patch12:        %{name}-%{version}-geometry.patch
Patch13:        %{name}-%{version}-nostrip.patch
Patch14:        %{name}-%{version}-timeout.patch
Patch15:        %{name}-%{version}-cache_fix.patch
Patch16:        %{name}-%{version}-mtime.patch
Patch17:        %{name}-%{version}-miniacc.patch
Patch18:        %{name}-%{version}-align.patch
# PATCH-FIX-UPSTREAM -- make package build reproducible
Patch19:        syslinux-4.04-reproducible.patch
Patch20:        %{name}-%{version}-python3.patch
Patch21:        sysmacros.patch
Patch22:        remove-note-gnu-section.patch
Patch23:        %{name}-%{version}-lzo.patch
Patch24:        %{name}-%{version}-gcc10.patch
Patch25:        syslinux-4.04-reproducible-isohybrid.patch
Patch26:        %{name}-%{version}-pie.patch

%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
%autosetup -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
openSUSE Build Service is sponsored by