libupload: Fixing memset call
[profile/ivi/syslinux.git] / syslinux.spec.in
index 3076e78..c4b466b 100644 (file)
@@ -1,28 +1,34 @@
 # -*- rpm -*-
 %define RPMVERSION @@RPMVERSION@@
 %define VERSION    @@VERSION@@
-Summary: Kernel loader which uses a FAT or iso9660 filesystem or a PXE network
+Summary: Kernel loader which uses a FAT, ext2/3 or iso9660 filesystem or a PXE network
 Name: syslinux
 Version: %{RPMVERSION}
 Release: 1
 License: GPL
-Group: Applications/System
+Group: System/Boot
 Source0: ftp://ftp.kernel.org/pub/linux/utils/boot/syslinux/%{name}-%{VERSION}.tar.gz
-ExclusiveArch: i386 x86_64
+ExclusiveArch: i386 i486 i586 i686 athlon pentium4 x86_64
 Packager: H. Peter Anvin <hpa@zytor.com>
 Buildroot: %{_tmppath}/%{name}-%{VERSION}-root
-BuildPrereq: nasm >= 0.98.38, perl
+BuildPrereq: nasm >= 2.03, perl
 Autoreq: 0
-%ifarch i386
-Requires: mtools, libc.so.6
-%endif
 %ifarch x86_64
 Requires: mtools, libc.so.6()(64bit)
+%define my_cc gcc
+%else
+Requires: mtools, libc.so.6
+%define my_cc gcc -m32
 %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
+
 %package devel
 Summary: Development environment for SYSLINUX add-on modules
 Group: Development/Libraries
+Requires: syslinux
 
 %description
 SYSLINUX is a suite of bootloaders, currently supporting DOS FAT
@@ -35,55 +41,119 @@ The SYSLINUX boot loader contains an API, called COM32, for writing
 sophisticated add-on modules.  This package contains the libraries
 necessary to compile such modules.
 
+%package extlinux
+Summary: The EXTLINUX bootloader, for booting the local system.
+Group: System/Boot
+Requires: syslinux
+
+%description extlinux
+The EXTLINUX bootloader, for booting the local system, as well as all
+the SYSLINUX/PXELINUX modules in /boot.
+
+%package tftpboot
+Summary: SYSLINUX modules in /tftpboot, available for network booting
+Group: Applications/Internet
+Requires: syslinux
+
+%description tftpboot
+All the SYSLINUX/PXELINUX modules directly available for network
+booting in the /tftpboot directory.
+
 %prep
 %setup -q -n syslinux-%{VERSION}
 
 %build
-make clean
-make installer
-make -C sample tidy
+make CC='%{my_cc}' clean
+make CC='%{my_cc}' installer
+make CC='%{my_cc}' -C sample tidy
 
 %install
 rm -rf %{buildroot}
-mkdir -p %{buildroot}%{_bindir}
-mkdir -p %{buildroot}%{_sbindir}
-mkdir -p %{buildroot}%{_libdir}/syslinux
-mkdir -p %{buildroot}%{_includedir}
-make install-all \
+make CC='%{my_cc}' install-all \
        INSTALLROOT=%{buildroot} BINDIR=%{_bindir} SBINDIR=%{_sbindir} \
-       LIBDIR=%{_libdir} INCDIR=%{_includedir}
-make -C sample tidy
-cp mkdiskimage sys2ansi.pl keytab-lilo.pl %{buildroot}%{_libdir}/syslinux
+       LIBDIR=%{_libdir} DATADIR=%{_datadir} \
+       MANDIR=%{_mandir} INCDIR=%{_includedir} \
+       TFTPBOOT=/tftpboot EXTLINUXDIR=/boot/extlinux
+make CC='%{my_cc}' -C sample tidy
+mkdir -p %{buildroot}/etc
+( cd %{buildroot}/etc && ln -s ../boot/extlinux/extlinux.conf . )
 
 %clean
 rm -rf %{buildroot}
 
 %files
 %defattr(-,root,root)
-%doc NEWS README* *.doc memdisk/*.doc COPYING
+%doc COPYING NEWS doc/*
 %doc sample
-%{_bindir}/syslinux
-%{_sbindir}/extlinux
-%{_bindir}/ppmtolss16
-%{_bindir}/lss16toppm
-%{_bindir}/gethostip
-%{_libdir}/syslinux/*.com
-%{_libdir}/syslinux/*.exe
-%{_libdir}/syslinux/*.c32
-%{_libdir}/syslinux/*.bin
-%{_libdir}/syslinux/*.0
-%{_libdir}/syslinux/memdisk
-%{_libdir}/syslinux/*.pl
-%{_libdir}/syslinux/mkdiskimage
+%{_mandir}/man*/*
+%{_bindir}/*
+%{_datadir}/syslinux/*.com
+%{_datadir}/syslinux/*.exe
+%{_datadir}/syslinux/*.c32
+%{_datadir}/syslinux/*.bin
+%{_datadir}/syslinux/*.0
+%{_datadir}/syslinux/memdisk
+%{_datadir}/syslinux/dosutil/*
 
 %files devel
-%{_libdir}/syslinux/com32
+%{_datadir}/syslinux/com32
 
-%post
+%files extlinux
+%{_sbindir}/extlinux
+/boot/extlinux
+%config /etc/extlinux.conf
+
+%files tftpboot
+/tftpboot
+
+%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
 
 %postun
 
 %changelog
+* Fri Dec 18 2009 H. Peter Anvin <hpa@zytor.com>
+- Require NASM 2.03
+- Package dosutil
+
+* Thu May 29 2008 H. Peter Anvin <hpa@zytor.com>
+- Use install targets; clean up various paths.
+
+* Thu Jan 10 2008 H. Peter Anvin <hpa@zytor.com>
+- Add man pages.
+
+* Mon Nov 19 2007 Bernard Li <bernard@vanhpc.org>
+- Added netpbm-progs (provides pngtopnm) to BuildPrereq (this should be
+  changed to BuildRequires since it is deprecated...)
+
+* Thu Mar 15 2007 H. Peter Anvin <hpa@zytor.com>
+- Move extlinux /boot stuff into /boot/extlinux.
+
+* Thu Jan 25 2007 H. Peter Anvin <hpa@zytor.com>
+- Hacks to make the 32-bit version build correctly on 64-bit machines.
+
+* Mon Sep 19 2006 H. Peter Anvin <hpa@zytor.com>
+- Add a syslinux-tftpboot module.
+- Factor extlinux into its own package.
+- Move to %{_datadir} (/usr/share).
+
+* Wed Sep 21 2005 H. Peter Anvin <hpa@zytor.com>
+- If /boot/extlinux.conf exist, run extlinux --update.
+
+* Fri Sep  9 2005 H. Peter Anvin <hpa@zytor.com>
+- Copy, don't link, *.c32 into /boot; rpm doesn't like breaking links.
+
+* Tue Aug 23 2005 H. Peter Anvin <hpa@zytor.com>
+- Put *.c32 into /boot.
+
 * Thu Dec 30 2004 H. Peter Anvin <hpa@zytor.com>
 - libsyslinux dropped in syslinux 3.00.
 - Additional documentation.