File lilo.spec of Package lilo

#
# spec file for package lilo
#
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#

# norootforbuild

Url:            http://lilo.alioth.debian.org/

Name:           lilo
ExclusiveArch:  ppc ppc64 %ix86 x86_64
%define yaboot_vers 22.8-r1190
%define ppc_version 22.8
Group:          System/Boot
License:        BSD3c
Summary:        The Linux Loader, a Boot Menu
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
Obsoletes:      yaboot quik
%ifarch ppc ppc64
%if 0%{?suse_version} > 1020
BuildRequires:  dtc
%endif
Requires:       hfsutils
Requires:       dosfstools
Requires:       gawk
Requires:       sed
Requires:       coreutils
# for relinking the prep/chrp images in lilo
%ifarch ppc ppc64
Requires:       gcc
%endif
# for nvram
%if 0%{?suse_version} > 1000
Requires:       powerpc-utils >= 1.2.6
%else
Requires:       util-linux
%endif
Requires:       binutils
Requires:       parted
%endif
%ifarch %ix86 x86_64
BuildRequires:  bin86
BuildRequires:  nasm
%endif
%ifarch %ix86
BuildRequires:  device-mapper
BuildRequires:  device-mapper-devel
%endif
%ifarch x86_64
BuildRequires:  glibc-devel-32bit
BuildRequires:  device-mapper-32bit
# openSUSE 11.3 and SLE_11 do not have device-mapper-devel-32bit
%if 0%{?suse_version} != 1130 && 0%{?suse_version} != 1110
BuildRequires:  device-mapper-devel-32bit
%endif
BuildRequires:  gcc-32bit
%endif
# note: already outdated; download fresh sources from: https://alioth.debian.org/frs/?group_id=100507
Version:        23.2
Release:        65
Source0:        lilo-ppc-%{ppc_version}.tar.bz2
Source1:        http://penguinppc.org/projects/yaboot/yaboot-%{yaboot_vers}.tar.bz2
Source86:       lilo-%{version}.tar.gz
Patch8601:      lilo.x86.mount_by_persistent_name.patch
Patch8602:      lilo.x86.array-bounds.patch
Patch8604:      lilo.x86.checkit.patch
Patch8605:      lilo-no-build-date.patch
Patch8606:      lilo.ppc.nvram-fix.patch	
Patch8607:      yaboot-libgcc.patch
Patch8608:      lilo-libgcc.patch
Patch8609:      lilo.ppc.ps3.patch
Patch8610:      lilo.src.Makefile.patch
# $Id: lilo.spec 1188 2008-12-09 14:29:53Z olh $

%description
LILO boots Linux from your hard drive. It can also boot other operating
systems, such as MS-DOS and OS/2, and can even boot DOS from the second
hard drive. The configuration file is /etc/lilo.conf.

The PowerPC variant can be used on new PowerMacs and CHRP machines.

The ix86 variant comes with Memtest86, offering an image that can be
booted to perform a memory test.

%prep
%setup -q -T -c -a 0 -a 1 -a 86
mv lilo-ppc-%{ppc_version} lilo.ppc
mv yaboot-%{yaboot_vers} yaboot
pushd lilo-%{version}
%patch8601 -p1
%patch8602 -p1
%patch8604 -p1
%patch8605 -p1
%patch8610 -p1
popd
%patch8606
pushd yaboot
%patch8607 -p1
popd
pushd lilo.ppc
%patch8608 -p1
%patch8609 -p1
popd

%build
%ifarch %ix86 x86_64
pushd lilo-%{version}
cflags="$RPM_OPT_FLAGS -fno-strict-aliasing"
%ifarch x86_64
cflags="$cflags -m32"
%endif
make CC="gcc $cflags" MAN_DIR=/usr/share/man all 
popd
# powerpc
%else
pushd yaboot
#
make clean
make DEBUG=1 VERSION=%{yaboot_vers}.SuSE yaboot HOSTCFLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE -g"
mv second/yaboot yaboot.debug
mv second/yaboot.chrp yaboot.chrp.debug
#
make clean
make DEBUG=0 VERSION=%{yaboot_vers}.SuSE yaboot HOSTCFLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE -g"
mv second/yaboot yaboot
mv second/yaboot.chrp yaboot.chrp
mv second/yaboot.a second/crt0.o .
#
popd
#
pushd lilo.ppc
pushd bootheader
make HOST_CFLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE -g"
popd
popd
%endif

%install
%ifarch %ix86 x86_64
pushd lilo-%{version}
make MAN_DIR=/usr/share/man install DESTDIR=$RPM_BUILD_ROOT
rm -rfv $RPM_BUILD_ROOT/boot
mkdir -p $RPM_BUILD_ROOT/boot
cp -av src/*.b $RPM_BUILD_ROOT/boot
popd
%else
# powerpc
# get rid of /usr/lib/rpm/brp-strip-debug 
# it kills the zImage.chrp-rs6k 
export NO_BRP_STRIP_DEBUG=true
# do not strip binaries, keep debug info
export NO_DEBUGINFO_STRIP_DEBUG=true
#
mkdir -p $RPM_BUILD_ROOT/lib/lilo/pmac
mkdir -p $RPM_BUILD_ROOT/lib/lilo/chrp
mkdir -p $RPM_BUILD_ROOT/sbin
mkdir -p $RPM_BUILD_ROOT/bin
mkdir -p $RPM_BUILD_ROOT/bin
mkdir -p $RPM_BUILD_ROOT%{_mandir}/man8
mkdir -p $RPM_BUILD_ROOT%{_mandir}/man5
pushd lilo.ppc
cp -av lilo.new $RPM_BUILD_ROOT/sbin/lilo
cp -av lilo-pmac.lib $RPM_BUILD_ROOT/lib/lilo/lilo-pmac.lib
cp -av lilo-chrp.lib $RPM_BUILD_ROOT/lib/lilo/lilo-chrp.lib
cp -av lilo-iseries.lib $RPM_BUILD_ROOT/lib/lilo/lilo-iseries.lib
cp -av show_of_path.sh $RPM_BUILD_ROOT/bin
cp -av Finder.bin $RPM_BUILD_ROOT/lib/lilo/pmac
cp -av System.bin $RPM_BUILD_ROOT/lib/lilo/pmac
cp -av os-badge-icon $RPM_BUILD_ROOT/lib/lilo/pmac
cp -av README* $RPM_BUILD_ROOT%{_docdir}/lilo/
cp -av COPYING $RPM_BUILD_ROOT%{_docdir}/lilo/
cp -av man/lilo.conf.5 $RPM_BUILD_ROOT%{_mandir}/man5
cp -av man/lilo.8 $RPM_BUILD_ROOT%{_mandir}/man8
cp -av man/show_of_path.sh.8 $RPM_BUILD_ROOT%{_mandir}/man8
pushd bootheader
make install DESTDIR=$RPM_BUILD_ROOT
popd
popd
pushd yaboot
cp -av yaboot yaboot.debug $RPM_BUILD_ROOT/lib/lilo/pmac
cp -av yaboot.chrp* $RPM_BUILD_ROOT/lib/lilo/chrp
cp -av crt0.o $RPM_BUILD_ROOT/lib/lilo/chrp/yaboot.crt0.o
cp -av ld.script $RPM_BUILD_ROOT/lib/lilo/chrp/yaboot.ld.script
cp -av yaboot.a $RPM_BUILD_ROOT/lib/lilo/chrp/
cp -av make_yaboot.sh $RPM_BUILD_ROOT/lib/lilo/scripts/
cp -av man/bootstrap.8 man/yaboot.8 $RPM_BUILD_ROOT%{_mandir}/man8
cp -av man/yaboot.conf.5 $RPM_BUILD_ROOT%{_mandir}/man5
popd
#powerpc
%endif

%triggerpostun  -- lilo < 0.0.10
# for manual updates
if [ -f /etc/lilo.conf.rpmsave -a ! -f /etc/lilo.conf ] ; then
mv -v /etc/lilo.conf.rpmsave /etc/lilo.conf
fi
exit 0

%files
%defattr (-,root,root)
%ifarch %ix86 x86_64
/sbin/*
/usr/sbin/*
/boot/*.b
%else
#powerpc
%dir /lib/lilo
%dir /lib/lilo/pmac
%dir /lib/lilo/prep
%dir /lib/lilo/chrp
%dir /lib/lilo/ps3
%dir /lib/lilo/common
%dir /lib/lilo/scripts
%dir /lib/lilo/utils
#
%attr(755,root,root) /bin/mkzimage_cmdline
%attr(755,root,root) %config /bin/show_of_path.sh
%attr(755,root,root) %config /bin/mkzimage
%attr(755,root,root) %config /lib/lilo/pmac/os-badge-icon
%attr(644,root,root) /lib/lilo/pmac/*.bin
%attr(644,root,root) /lib/lilo/pmac/yaboot*
%attr(644,root,root) /lib/lilo/ps3/*
%attr(644,root,root) /lib/lilo/*/*.o
%attr(644,root,root) /lib/lilo/*/*.a
%attr(644,root,root) %config /lib/lilo/*/*ld.script*
%attr(644,root,root) %config /lib/lilo/lilo-*.lib
%attr(644,root,root) /lib/lilo/chrp/yaboot.chrp*
%attr(755,root,root) %config /lib/lilo/scripts/*.sh
%attr(755,root,root) /lib/lilo/utils/*
%attr(755,root,root) %config /sbin/lilo
%doc %{_docdir}/lilo
%endif
%doc %{_mandir}/*/*

%changelog
openSUSE Build Service is sponsored by