forked from pool/elilo
- elilo.efi
* update to elilo-3.16 to fix OBS download check. Essentially "white-space" changes, plus bumping version number, minus Debian idiosyncrasies. - elilo.spec * Remove date string from 'eliloalt'. * Avoid duplication of 'elilo.txt'. - elilo.pl * Support for 'UUID=' and 'LABEL=' to specify root file-system. - Update openSUSE to elilo-3.14 from SLE11. * Avoid crash caused by EFI memory map changes. (bnc#800035) OBS-URL: https://build.opensuse.org/package/show/Base:System/elilo?expand=0&rev=12
This commit is contained in:
parent
a2cc45afea
commit
3f8af3bf30
@ -1,44 +1,47 @@
|
|||||||
3 . 1 4 R E L E A S E N O T E S
|
3 . 1 6 R E L E A S E N O T E S
|
||||||
===================================
|
===================================
|
||||||
|
|
||||||
QUICK CHANGE SUMMARY
|
QUICK CHANGE SUMMARY
|
||||||
====================
|
====================
|
||||||
* Fixes for newly emerging x86_64 UEFI-2 boxes where long standing old
|
* Adds native x86x crossbuild functionality
|
||||||
assumptions are borked.
|
build 32bit or 64bit versions from either environment via
|
||||||
* Uptake of SUSE and community patches
|
make ARCH=ia32|x86_64 (the ARCH IS case sensitive).
|
||||||
- add sysfs support for efi vars (formerly /proc/efi/vars)
|
make by itself will default to the native host arch.
|
||||||
- fix strncpy overflow
|
* Add console reset call during initialization. thanks A. Steinmetz
|
||||||
- fix bzimage alloc
|
* simplify output of no GOP warning text so it no longer looks like an error.
|
||||||
- cleanups
|
* MAJOR: Fixed Fault crash when EFI memory map changes from under elilo.
|
||||||
- support longer command line
|
(from an outside interrupt in this case). When the EFI Memory map
|
||||||
- yet some more mac fixes
|
changes after elilo has already built boot params to pass to the
|
||||||
- align elilo with latest kernel boot protocol format.
|
kernel the EFI call to ExitBootSvcs just prior to boot will fail
|
||||||
- new memory management strategy for initrd and kernel image loading.
|
because elilo has the old map key. This is valid EFI behavior, elilo
|
||||||
* add text-mode command line option, force text-mode (bypass graphics probes).
|
retries to pick up the new memory map and key but had already freed
|
||||||
* replace error output on GOP handle failed, downgraded to normal
|
the start params portion of boot params resulting in a NULL DEREF
|
||||||
print status with more informative output.
|
crash reset once it hands the now bogus boot params to the kernel on
|
||||||
* Fix ia32 build issue with new gcc due to stack protector enforcement.
|
the 2nd successful call to exit efi and boot.
|
||||||
|
Thanks to Jerry Hoemann @ HP for reporting this bug.
|
||||||
|
* minor bugfix, fixed -m option broken. thanks Allan-lsk.
|
||||||
|
|
||||||
BUILD NOTES
|
BUILD NOTES
|
||||||
====================
|
====================
|
||||||
You will need the following toolchain to build elilo-3.14 from source
|
You will need the following toolchain to build elilo-3.14 from source
|
||||||
the elilo build environment is optimized for Debian and Debian based distros.
|
the elilo build environment is optimized for Debian and Debian based distros.
|
||||||
elilo-3.14 was built in the Debian Lenny (Ubuntu 10.04) build environment.
|
elilo-3.16 was built in the squeeze+(ubuntu 11.x) build environments except
|
||||||
|
for itanium which is unchanged to best support legacy enterprise configs.
|
||||||
Toolchain versions for this release were:
|
Toolchain versions for this release were:
|
||||||
x86x(32 &64)
|
x86x(32 & 64bit versions)
|
||||||
* gnu-efi --> 3.0i-2ubuntu1
|
* gnu-efi --> 3.0i-3
|
||||||
* gcc ------> 4.4.3-1ubuntu1
|
* gcc ------> 4:4.4.4-1ubuntu2
|
||||||
* binutils -> 2.20.1-3ubuntu7
|
* binutils -> 2.20.51.20100908-0ubuntu2
|
||||||
ia64
|
ia64
|
||||||
* gnu-efi --> 3.0e-2
|
* gnu-efi --> 3.0e-2
|
||||||
* gcc ------> 4.3.2-2
|
* gcc ------> 4.3.2-2
|
||||||
* binutils -> 2.18.1~cvs20080103-7
|
* binutils -> 2.18.1~cvs20080103-7
|
||||||
|
|
||||||
* if you use a debian based (lenny)build environment you will have no problems
|
* if you use a debian based build environment you will have no problems
|
||||||
and setting it up is simple. you will be able to build elilo in 3 steps:
|
and setting it up is simple. you will be able to build elilo in 3 steps:
|
||||||
1. apt-get install gnu-efi, gcc, binutils
|
1. apt-get install gnu-efi, gcc, binutils
|
||||||
2. apt-get source elilo (or download elilo-3.14.tar.gz from SourceForge.)
|
2. apt-get source elilo (or download elilo-3.16 source from SourceForge.)
|
||||||
3. extract source tarball and cd ./elilo-3.14 and type $> make
|
3. extract source tarball and cd to ./$your-elilo-source and type $> make
|
||||||
|
|
||||||
|
|
||||||
** If you use the upstream toolchain tarballs(i.e. pre distro) you will need
|
** If you use the upstream toolchain tarballs(i.e. pre distro) you will need
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:93fb9f9ec22763c3071a19422b3a8073cd020e5d6cca5762a0ff35871f17a4b0
|
|
||||||
size 219473
|
|
3
elilo-3.16-source.tar.xz
Normal file
3
elilo-3.16-source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:4c0b247d96cfa9067e6728ebc95d511ffda9f47af4831c2ec7c19dfa2ea5f9a0
|
||||||
|
size 147468
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
--- a/x86_64/system.c
|
--- a/x86_64/system.c
|
||||||
+++ b/x86_64/system.c
|
+++ b/x86_64/system.c
|
||||||
@@ -957,6 +957,11 @@ do_memmap:
|
@@ -953,6 +953,11 @@ do_memmap:
|
||||||
#endif
|
#endif
|
||||||
if (e820_map_overflow && !e820_map_overflow_warned) {
|
if (e820_map_overflow && !e820_map_overflow_warned) {
|
||||||
CHAR8 *aem = (CHAR8 *)"add_efi_memmap";
|
CHAR8 *aem = (CHAR8 *)"add_efi_memmap";
|
||||||
@ -19,7 +19,7 @@
|
|||||||
e820_map_overflow_warned++;
|
e820_map_overflow_warned++;
|
||||||
|
|
||||||
#if DEBUG_CREATE_BOOT_PARAMS
|
#if DEBUG_CREATE_BOOT_PARAMS
|
||||||
@@ -968,11 +973,26 @@ do_memmap:
|
@@ -964,11 +969,26 @@ do_memmap:
|
||||||
goto do_memmap;
|
goto do_memmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -121,14 +121,14 @@
|
|||||||
#endif /* __ELILO_SYSDEPS_X86_64_H__ */
|
#endif /* __ELILO_SYSDEPS_X86_64_H__ */
|
||||||
--- a/bootparams.c
|
--- a/bootparams.c
|
||||||
+++ b/bootparams.c
|
+++ b/bootparams.c
|
||||||
@@ -96,21 +96,14 @@ create_boot_params(CHAR16 *args, memdesc
|
@@ -93,21 +93,14 @@ create_boot_params(CHAR16 *args, memdesc
|
||||||
*/
|
*/
|
||||||
Memset(bp, 0, BOOT_PARAM_MEMSIZE);
|
Memset(bp, 0, BOOT_PARAM_MEMSIZE);
|
||||||
|
|
||||||
+ /*
|
+ /*
|
||||||
+ * Convert kernel command line args from UNICODE to ASCII
|
+ * Convert kernel command line args from UNICODE to ASCII
|
||||||
+ * and put them where the kernel expects them:
|
+ * and put them where the kernel expects them:
|
||||||
+ */
|
+ */
|
||||||
U2ascii(args, cp, cmdline_size);
|
U2ascii(args, cp, cmdline_size);
|
||||||
|
|
||||||
if (sysdeps_create_boot_params(bp, cp, initrd, vmcode, cookie) == -1) return 0;
|
if (sysdeps_create_boot_params(bp, cp, initrd, vmcode, cookie) == -1) return 0;
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
--- a/fs/netfs.c
|
--- a/fs/netfs.c
|
||||||
+++ b/fs/netfs.c
|
+++ b/fs/netfs.c
|
||||||
@@ -522,7 +522,8 @@ netfs_open(netfs_interface_t *this, CHAR
|
@@ -517,7 +517,8 @@ netfs_open(netfs_interface_t *this, CHAR
|
||||||
netfs_fd_t *f;
|
netfs_fd_t *f;
|
||||||
EFI_STATUS status;
|
EFI_STATUS status;
|
||||||
CHAR8 ascii_name[FILENAME_MAXLEN];
|
CHAR8 ascii_name[FILENAME_MAXLEN];
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
---
|
|
||||||
elilo.c | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
--- a/elilo.c
|
|
||||||
+++ b/elilo.c
|
|
||||||
@@ -483,6 +483,9 @@ efi_main (EFI_HANDLE image, EFI_SYSTEM_T
|
|
||||||
*/
|
|
||||||
uefi_call_wrapper(BS->SetWatchdogTimer, 4, 0, 0x0, 0, NULL);
|
|
||||||
|
|
||||||
+ /* start a clean console */
|
|
||||||
+ uefi_call_wrapper(systab->ConOut->Reset, 2, systab->ConOut, FALSE);
|
|
||||||
+
|
|
||||||
/* initialize memory allocator */
|
|
||||||
if (alloc_init() == -1) return EFI_LOAD_ERROR;
|
|
||||||
|
|
42
elilo-de-debianify.diff
Normal file
42
elilo-de-debianify.diff
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
Make.defaults | 5 +++--
|
||||||
|
ia32/Makefile | 2 +-
|
||||||
|
x86_64/Makefile | 2 +-
|
||||||
|
3 files changed, 5 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
--- a/Make.defaults
|
||||||
|
+++ b/Make.defaults
|
||||||
|
@@ -63,8 +63,9 @@ CDIR := $(shell if [ "$$PWD" != "" ];
|
||||||
|
TOPDIR =
|
||||||
|
ALLSUBDIRS = ia32 ia64 x86_64 fs choosers devschemes tools
|
||||||
|
|
||||||
|
-HOSTARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH | sed s,i[3456789]86,ia32, | sed s,amd64,x86_64, )
|
||||||
|
-ARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH | sed s,i[3456789]86,ia32, | sed s,amd64,x86_64, )
|
||||||
|
+HOSTARCH := $(shell if ! dpkg-architecture -qDEB_BUILD_ARCH 2>/dev/null; then \
|
||||||
|
+ uname -m; fi | sed -e s,i[3456789]86,ia32, -e s,amd64,x86_64, )
|
||||||
|
+ARCH := $(HOSTARCH)
|
||||||
|
INCDIR = -I. -I$(TOPDIR) -I$(EFIINC) -I$(EFIINC)/$(ARCH) -I$(EFIINC)/protocol -I$(TOPDIR)/efi110
|
||||||
|
CPPFLAGS = -DCONFIG_$(ARCH)
|
||||||
|
|
||||||
|
--- a/x86_64/Makefile
|
||||||
|
+++ b/x86_64/Makefile
|
||||||
|
@@ -43,7 +43,7 @@ all: $(TARGET)
|
||||||
|
system.o: rmswitch.h
|
||||||
|
|
||||||
|
rmswitch.h: bin_to_h.c rmswitch.S
|
||||||
|
- $(CC) -o bin_to_h $(SRCDIR)/bin_to_h.c
|
||||||
|
+ $(CC) $(OPTIMFLAGS) -o bin_to_h $(SRCDIR)/bin_to_h.c
|
||||||
|
$(AS) -o rmswitch.o $(SRCDIR)/rmswitch.S
|
||||||
|
$(LD) -Ttext 0x0 -s --oformat binary -o rmswitch rmswitch.o
|
||||||
|
./bin_to_h <rmswitch >rmswitch.h
|
||||||
|
--- a/ia32/Makefile
|
||||||
|
+++ b/ia32/Makefile
|
||||||
|
@@ -42,7 +42,7 @@ all: $(TARGET)
|
||||||
|
system.o: rmswitch.h
|
||||||
|
|
||||||
|
rmswitch.h: bin_to_h.c rmswitch.S
|
||||||
|
- $(CC) -o bin_to_h $(SRCDIR)/bin_to_h.c
|
||||||
|
+ $(CC) $(OPTIMFLAGS) -o bin_to_h $(SRCDIR)/bin_to_h.c
|
||||||
|
$(AS) -o rmswitch.o $(SRCDIR)/rmswitch.S
|
||||||
|
$(LD) -Ttext 0x0 -s --oformat binary -o rmswitch rmswitch.o
|
||||||
|
./bin_to_h <rmswitch >rmswitch.h
|
@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
x86_64/system.c | 6 +++---
|
|
||||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
--- a/x86_64/system.c
|
|
||||||
+++ b/x86_64/system.c
|
|
||||||
@@ -641,9 +641,9 @@ sysdeps_create_boot_params(
|
|
||||||
*/
|
|
||||||
if (param_start != NULL) {
|
|
||||||
CopyMem(bp, param_start, 0x2000);
|
|
||||||
- free(param_start);
|
|
||||||
- param_start = NULL;
|
|
||||||
- param_size = 0;
|
|
||||||
+ /* keeping param_start might lose some RAM,
|
|
||||||
+ * but doesn't crash...
|
|
||||||
+ */
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* Save off our header revision information.
|
|
@ -1,9 +1,22 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Oct 25 13:37:55 UTC 2013 - rw@suse.de
|
||||||
|
|
||||||
|
- elilo.efi
|
||||||
|
* update to elilo-3.16 to fix OBS download check.
|
||||||
|
Essentially "white-space" changes, plus bumping version number,
|
||||||
|
minus Debian idiosyncrasies.
|
||||||
|
- elilo.spec
|
||||||
|
* Remove date string from 'eliloalt'.
|
||||||
|
* Avoid duplication of 'elilo.txt'.
|
||||||
|
- elilo.pl
|
||||||
|
* Support for 'UUID=' and 'LABEL=' to specify root file-system.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Oct 24 17:18:48 UTC 2013 - rw@suse.de
|
Thu Oct 24 17:18:48 UTC 2013 - rw@suse.de
|
||||||
|
|
||||||
- elilo.spec
|
- elilo.spec
|
||||||
* Add perl modules to 'PreReq'. (bnc#842183)
|
* Add perl modules to 'PreReq'. (bnc#842183)
|
||||||
- Update to elilo-3.14 from SLE11.
|
- Update openSUSE to elilo-3.14 from SLE11.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Aug 16 12:01:42 UTC 2013 - rw@suse.de
|
Fri Aug 16 12:01:42 UTC 2013 - rw@suse.de
|
||||||
@ -32,7 +45,7 @@ Fri Apr 19 13:28:08 UTC 2013 - rw@suse.com
|
|||||||
|
|
||||||
- elilo.efi
|
- elilo.efi
|
||||||
* Clear console on startup. (bnc#812799)
|
* Clear console on startup. (bnc#812799)
|
||||||
* Avoid crash caused by EFI memory map changes.
|
* Avoid crash caused by EFI memory map changes. (bnc#800035)
|
||||||
- elilo.pl
|
- elilo.pl
|
||||||
* Work around chainloading issue with XEN. (bnc#812109)
|
* Work around chainloading issue with XEN. (bnc#812109)
|
||||||
|
|
||||||
@ -153,7 +166,7 @@ Fri Jun 17 12:54:53 UTC 2011 - rw@suse.de
|
|||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Dec 17 10:51:23 UTC 2010 - coolo@novell.com
|
Fri Dec 17 10:51:23 UTC 2010 - coolo@novell.com
|
||||||
|
|
||||||
- Update to elilo-3.12 from SLE11 to fix EFI boot (bnc#659368)
|
- Update openSUSE to elilo-3.12 from SLE11 to fix EFI boot (bnc#659368)
|
||||||
(see ChangeLog for a detailed log)
|
(see ChangeLog for a detailed log)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
|
38
elilo.pl
38
elilo.pl
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/perl -w
|
#!/usr/bin/perl -w
|
||||||
# $Id: elilo.pl,v 0.85 2013/08/15 17:38:03 rw Exp $
|
# $Id: elilo.pl,v 0.86 2013/10/25 14:22:33 rw Exp $
|
||||||
use strict;
|
use strict;
|
||||||
|
|
||||||
my $C = $0; $C =~ s{^.*/}{};
|
my $C = $0; $C =~ s{^.*/}{};
|
||||||
@ -57,7 +57,7 @@ EoD
|
|||||||
$| = 1;
|
$| = 1;
|
||||||
|
|
||||||
sub Version() {
|
sub Version() {
|
||||||
my $v = q($Revision: 0.85 $ );
|
my $v = q($Revision: 0.86 $ );
|
||||||
$v =~ s/^\$ Rev.*:\ ([0-9.]+)\ \$\ /$1/x;
|
$v =~ s/^\$ Rev.*:\ ([0-9.]+)\ \$\ /$1/x;
|
||||||
$v .= " (part of elilo-$Edition)" if ( $Edition ne "\@EDITION\@" );
|
$v .= " (part of elilo-$Edition)" if ( $Edition ne "\@EDITION\@" );
|
||||||
print "$C version $v\n";
|
print "$C version $v\n";
|
||||||
@ -524,10 +524,19 @@ sub readLink($) {
|
|||||||
sub GconfProbeFSuuid($) {
|
sub GconfProbeFSuuid($) {
|
||||||
my( $dev) = @_;
|
my( $dev) = @_;
|
||||||
my $udir = "/dev/disk/by-uuid";
|
my $udir = "/dev/disk/by-uuid";
|
||||||
|
my $ldir = "/dev/disk/by-label";
|
||||||
my $uuid = "";
|
my $uuid = "";
|
||||||
my $tgt = "";
|
my $tgt = "";
|
||||||
|
|
||||||
Info( 5, "GconfProbeFSuuid($dev): \n");
|
Info( 5, "GconfProbeFSuuid($dev): \n");
|
||||||
|
if ( ! -b $dev ) {
|
||||||
|
if ( $dev =~ m{^UUID=([0-9A-Fa-f-]+)$} ) {
|
||||||
|
return ( (-b "$udir/$1") ? $1 : "" );
|
||||||
|
} elsif ( $dev =~ m{^LABEL=([0-9A-Fa-f-]+)$} ) {
|
||||||
|
$dev = readLink( "$ldir/$1");
|
||||||
|
return ( "" ) unless ( defined( $dev) );
|
||||||
|
}
|
||||||
|
}
|
||||||
while ( -l $dev ) {
|
while ( -l $dev ) {
|
||||||
$_ = readLink( $dev);
|
$_ = readLink( $dev);
|
||||||
return ( "" ) unless ( defined( $_) );
|
return ( "" ) unless ( defined( $_) );
|
||||||
@ -553,23 +562,24 @@ sub GconfProbeFSuuid($) {
|
|||||||
return ( $uuid );
|
return ( $uuid );
|
||||||
}
|
}
|
||||||
sub GconfFSuuid($) {
|
sub GconfFSuuid($) {
|
||||||
my( $rdev) = @_;
|
my( $spec) = @_;
|
||||||
return ( "" ) unless ( $Sconf{SB} ) ;
|
return ( "" ) unless ( $Sconf{SB} );
|
||||||
return ( $GconfFSuuid{$rdev} ) if ( exists( $GconfFSuuid{$rdev}) );
|
return ( $GconfFSuuid{$spec} ) if ( exists( $GconfFSuuid{$spec}) );
|
||||||
|
|
||||||
my $ruuid = "";
|
my $uuid = "";
|
||||||
my $cmd = "/usr/sbin/grub2-probe";
|
my $cmd = "/usr/sbin/grub2-probe";
|
||||||
if ( -x $cmd ) {
|
if ( -x $cmd ) {
|
||||||
chomp( $ruuid = qx{$cmd --device "$rdev" --target=fs_uuid}) if ( -x $cmd );
|
my $dop = (-b $spec) ? "--device" : "";
|
||||||
|
chomp( $uuid = qx{$cmd --target=fs_uuid $dop "$spec"});
|
||||||
} else {
|
} else {
|
||||||
$ruuid = GconfProbeFSuuid( $rdev);
|
$uuid = GconfProbeFSuuid( $spec);
|
||||||
}
|
}
|
||||||
if ( ! $ruuid ) {
|
if ( ! defined( $uuid) || ! $uuid ) {
|
||||||
Panic( 3, "couldn't determine fs_uuid -- skip Secure Boot (grub) config!\n");
|
Panic( 3, "couldn't determine fs_uuid -- skip SecureBoot/grub2 config!\n");
|
||||||
$Sconf{SB} = "";
|
$Sconf{SB} = "";
|
||||||
}
|
}
|
||||||
$GconfFSuuid{$rdev} = $ruuid;
|
$GconfFSuuid{$spec} = $uuid;
|
||||||
return ( $ruuid );
|
return ( $uuid );
|
||||||
}
|
}
|
||||||
sub Gconf() {
|
sub Gconf() {
|
||||||
my @parts = ("pre", "Econf", "Xconf", "post");
|
my @parts = ("pre", "Econf", "Xconf", "post");
|
||||||
@ -621,7 +631,7 @@ sub Gconf() {
|
|||||||
$Gconf{$k} = $Econf{$lbl}{$k} if (exists( $Econf{$lbl}{$k}));
|
$Gconf{$k} = $Econf{$lbl}{$k} if (exists( $Econf{$lbl}{$k}));
|
||||||
}
|
}
|
||||||
$Gconf{rootfsuuid} = GconfFSuuid( $Econf{$lbl}{root});
|
$Gconf{rootfsuuid} = GconfFSuuid( $Econf{$lbl}{root});
|
||||||
#TODO: $Gconf{bootfsuuid} = GconfFSuuid( GconfFSdev( "/boot"));
|
#TODO: $Gconf{bootfsuuid} = GconfFSuuid( "/boot");
|
||||||
} elsif ( $ns eq "Xconf" ) {
|
} elsif ( $ns eq "Xconf" ) {
|
||||||
foreach my $k ( "vmm", "kernel", "cfg", "description") {
|
foreach my $k ( "vmm", "kernel", "cfg", "description") {
|
||||||
$Gconf{$k} = $Xconf{$lbl}{$k} if (exists( $Xconf{$lbl}{$k}));
|
$Gconf{$k} = $Xconf{$lbl}{$k} if (exists( $Xconf{$lbl}{$k}));
|
||||||
@ -932,7 +942,7 @@ sub ebm($$$$$) {
|
|||||||
next unless ( hwpEqual( $hwp, $3) );
|
next unless ( hwpEqual( $hwp, $3) );
|
||||||
if ( $file eq $4 ) {
|
if ( $file eq $4 ) {
|
||||||
my $c = hex($1);
|
my $c = hex($1);
|
||||||
# This effort below to elliminate holes in the boot entry list voids
|
# This effort below to elliminate holes in the boot enry list voids
|
||||||
# the attempt to order EBM entries by simply calling '--refresh-EBM'.
|
# the attempt to order EBM entries by simply calling '--refresh-EBM'.
|
||||||
# The full solution would require adding an interface to 'efibootmgr -o',
|
# The full solution would require adding an interface to 'efibootmgr -o',
|
||||||
# which is unfortunately not feasable this late in the release cycle.
|
# which is unfortunately not feasable this late in the release cycle.
|
||||||
|
31
elilo.spec
31
elilo.spec
@ -29,18 +29,22 @@ Name: elilo
|
|||||||
Summary: EFI Linux Loader
|
Summary: EFI Linux Loader
|
||||||
License: GPL-2.0+
|
License: GPL-2.0+
|
||||||
Group: System/Boot
|
Group: System/Boot
|
||||||
Version: 3.14
|
Version: 3.16
|
||||||
Release: 0
|
Release: 0
|
||||||
ExclusiveArch: ia64 %ix86 x86_64
|
ExclusiveArch: ia64 %ix86 x86_64
|
||||||
PreReq: /usr/bin/perl perl(Pod::Usage) perl(Getopt::Long)
|
PreReq: /usr/bin/perl perl(Pod::Usage) perl(Getopt::Long)
|
||||||
# "perl" must be in place *before* any package's 'pre' or 'post' section
|
# "perl" must be in place *before* any package's 'pre' or 'post' section
|
||||||
# can (directly or indirectly) run '/sbin/elilo'! (bnc#842183)
|
# can (directly or indirectly) run '/sbin/elilo'! (bnc#842183)
|
||||||
|
%ifarch ia64
|
||||||
|
PreReq: perl(File::Compare)
|
||||||
|
%endif
|
||||||
Url: http://elilo.sourceforge.net/
|
Url: http://elilo.sourceforge.net/
|
||||||
Source: http://dl.sourceforge.net/elilo/elilo-3.14-source.tar.gz
|
#ource: http://downloads.sourceforge.net/elilo/elilo-3.16-all.tar.gz
|
||||||
|
Source: elilo-%{version}-source.tar.xz
|
||||||
Source1: elilo.pl
|
Source1: elilo.pl
|
||||||
Source2: debian.eliloalt.man8
|
Source2: debian.eliloalt.man8
|
||||||
Source3: elilo.conf.man5
|
Source3: elilo.conf.man5
|
||||||
Source4: 3.14-release-notes.txt
|
Source4: http://downloads.sourceforge.net/elilo/%{version}-release-notes.txt
|
||||||
Source9: rpmlintrc
|
Source9: rpmlintrc
|
||||||
Patch0: elilo-ipv6.diff
|
Patch0: elilo-ipv6.diff
|
||||||
Patch1: elilo-max-conf.diff
|
Patch1: elilo-max-conf.diff
|
||||||
@ -48,8 +52,8 @@ Patch2: elilo-mac-conf.diff
|
|||||||
Patch3: elilo-auto-add_efi_memmap.diff
|
Patch3: elilo-auto-add_efi_memmap.diff
|
||||||
Patch4: elilo-blocksize.diff
|
Patch4: elilo-blocksize.diff
|
||||||
Patch5: elilo-text-mode.diff
|
Patch5: elilo-text-mode.diff
|
||||||
Patch6: elilo-clean-console.diff
|
Patch10: elilo-de-debianify.diff
|
||||||
Patch7: elilo-keep-start-params.diff
|
Patch11: eliloalt-no-date.diff
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
@ -57,22 +61,22 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|||||||
The EFI Linux boot loader.
|
The EFI Linux boot loader.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n elilo
|
%setup -q -n %{name}-%{version}-source
|
||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
%patch5 -p1
|
%patch5 -p1
|
||||||
%patch6 -p1
|
%patch10 -p1
|
||||||
%patch7 -p1
|
%patch11 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
perl -pi -e 's{/usr/lib}{%{_libdir}}' Make.defaults
|
perl -pi -e 's{/usr/lib}{%{_libdir}}' Make.defaults
|
||||||
##################################################################
|
##################################################################
|
||||||
## DO NOT ADD RPM OPT FLAGS! THIS DOES NOT BUILD AGAINST GLIBC. ##
|
## DO NOT ADD RPM OPT FLAGS! THIS DOES NOT BUILD AGAINST GLIBC. ##
|
||||||
##################################################################
|
##################################################################
|
||||||
make OPTIMFLAGS="-fno-strict-aliasing -fno-stack-protector"
|
make OPTIMFLAGS="-fmessage-length=0"
|
||||||
perl -pe 's{\@EDITION\@}{%{version}-%{release}};
|
perl -pe 's{\@EDITION\@}{%{version}-%{release}};
|
||||||
s{\@LIBDIR\@}{%{_libdir}};
|
s{\@LIBDIR\@}{%{_libdir}};
|
||||||
s{\@ARCH\@}{%{_target_cpu}};
|
s{\@ARCH\@}{%{_target_cpu}};
|
||||||
@ -92,10 +96,15 @@ install -D -p -m 644 elilo.8 $RPM_BUILD_ROOT/usr/share/man/man8/elilo.8
|
|||||||
install -D -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT/usr/share/man/man8/eliloalt.8
|
install -D -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT/usr/share/man/man8/eliloalt.8
|
||||||
install -D -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT/usr/share/man/man5/elilo.conf.5
|
install -D -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT/usr/share/man/man5/elilo.conf.5
|
||||||
install -p -m 644 %{SOURCE4} RELEASE-NOTES
|
install -p -m 644 %{SOURCE4} RELEASE-NOTES
|
||||||
|
diff -q docs/README.txt docs/elilo.txt && rm -f docs/README.txt
|
||||||
|
|
||||||
%post
|
%post
|
||||||
#/sbin/elilo -v || :
|
if [ -r /etc/sysconfig/bootloader ]; then
|
||||||
echo "Please run /sbin/elilo!"
|
. /etc/sysconfig/bootloader
|
||||||
|
if [ "$LOADER_TYPE" = "elilo" -a -r /etc/elilo.conf ]; then
|
||||||
|
/sbin/elilo -v || :
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-, root, root)
|
%defattr(-, root, root)
|
||||||
|
21
eliloalt-no-date.diff
Normal file
21
eliloalt-no-date.diff
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
tools/eliloalt.c | 8 +++++++-
|
||||||
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/tools/eliloalt.c
|
||||||
|
+++ b/tools/eliloalt.c
|
||||||
|
@@ -282,7 +282,13 @@ main(int argc, char **argv)
|
||||||
|
switch(c) {
|
||||||
|
case 0: continue; /* fast path for options */
|
||||||
|
case 1:
|
||||||
|
- printf("Version %s Date: %s\n", ELILOALT_VERSION, __DATE__);
|
||||||
|
+ printf("Version %s\n", ELILOALT_VERSION);
|
||||||
|
+ /* Don't use __DATE__ here, as it causes
|
||||||
|
+ * excessive rebuilds, which seems very
|
||||||
|
+ * wasteful for a tool that did not change
|
||||||
|
+ * in a very long time, and probably won't
|
||||||
|
+ * any more...
|
||||||
|
+ */
|
||||||
|
exit(0);
|
||||||
|
case 2:
|
||||||
|
case 'h':
|
Loading…
Reference in New Issue
Block a user