Hello community,
here is the log from the commit of package elilo
checked in at Thu Jul 31 21:25:55 CEST 2008.
--------
--- arch/i386/elilo/elilo.changes 2008-02-28 17:49:01.000000000 +0100
+++ /mounts/work_src_done/STABLE/elilo/elilo.changes 2008-07-31 02:16:59.401536000 +0200
@@ -1,0 +2,11 @@
+Wed Jul 31 10:22:56 CEST 2008 - rw@suse.de
+
+- elilo.efi
+ * Update to final elilo-3.8 for uEFI support. (fate#301882)
+- elilo.pl
+ * Preserve time-stamps but not permissions. (bnc#394331)
+ * Unconditionally strip deprecated 'read-only' from 'elilo.conf'.
+ * Support '$LIBEXECDIR' to please uEFI/x86_64 and
+ relocate efi-binaries from 'elilo' to 'efi'. (fate#301882)
+
+-------------------------------------------------------------------
@@ -4 +15,2 @@
-- no strip for elilo.efi during install (unknown binary format)
+- elilo.spec
+ * No strip for elilo.efi during install (unknown binary format).
@@ -9 +21,2 @@
-- Revert last change.
+- elilo.spec
+ * Revert last change.
@@ -14 +27,9 @@
-- added gnu-efi-devel to buildreq
+- elilo.spec
+ * Added gnu-efi-devel to buildreq.
+
+-------------------------------------------------------------------
+Wed May 9 14:29:40 CEST 2007 - rw@suse.de
+
+- elilo.efi
+ * Reduce non-"command line" strings back to 512. (#256676)
+ * Fix another buffer overrun. (#256676)
@@ -19 +40,2 @@
-- Disable stack protector.
+- elilo.spec
+ * Disable stack protector.
@@ -25,2 +47 @@
- * increase command line size to 2048 (as in >= 2.6.20-rc6-mm1)
- (#242702)
+ * Increase command line size to 2048. (#242702)
@@ -31 +52,2 @@
-- Fix spelling.
+- elilo.efi
+ * Fix spelling.
@@ -38 +60 @@
- (Fixed vmcode_name initialization in textmenu chooser)
+ (Fixed vmcode_name initialization in textmenu chooser)
@@ -61 +83 @@
-- /sbin/elilo
+- elilo.pl
@@ -69 +91 @@
-- /sbin/elilo
+- elilo.pl
@@ -75 +97 @@
-- /sbin/elilo
+- elilo.pl
@@ -81 +103 @@
-- /sbin/elilo
+- elilo.pl
@@ -105 +127 @@
-- /sbin/elilo
+- elilo.pl
@@ -113 +135 @@
-- /sbin/elilo
+- elilo.pl
Old:
----
elilo-3.6-asm.diff
elilo-3.6-MAC.diff
elilo-3.6-spelling.diff
elilo-3.6.src.tgz
New:
----
elilo-3.8.tar.gz
elilo-asm.diff
elilo-avoid-tab.diff
elilo-fix-possible-overflow.diff
elilo-MAC.diff
elilo-spelling.diff
rpmlintrc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ elilo.spec ++++++
--- /var/tmp/diff_new_pack.t26089/_old 2008-07-31 21:25:28.000000000 +0200
+++ /var/tmp/diff_new_pack.t26089/_new 2008-07-31 21:25:28.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package elilo (Version 3.6)
+# spec file for package elilo (Version 3.8)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -12,22 +12,25 @@
Name: elilo
-Url: http://elilo.sourceforge.net/
Summary: EFI Linux Loader
-Version: 3.6
-Release: 142
+Version: 3.8
+Release: 3
Group: System/Boot
AutoReqProv: on
PreReq: /usr/bin/perl
License: GPL v2 or later
-Source: http://mesh.dl.sourceforge.net/sourceforge/elilo/elilo-3.6.src.tgz
+Url: http://elilo.sourceforge.net/
+Source: http://dl.sourceforge.net/elilo/elilo-3.8.tar.gz
Source1: elilo.pl
-Patch0: elilo-%{version}-asm.diff
-Patch1: elilo-%{version}-MAC.diff
-Patch2: elilo-%{version}-spelling.diff
+Source2: rpmlintrc
+Patch0: elilo-asm.diff
+Patch1: elilo-MAC.diff
+Patch2: elilo-spelling.diff
Patch3: elilo-longer-commandline.diff
+Patch4: elilo-fix-possible-overflow.diff
+Patch5: elilo-avoid-tab.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: gnu-efi
+BuildRequires: gnu-efi >= 3.0e
%description
The EFI Linux boot loader.
@@ -47,7 +50,11 @@
%patch1 -p1
%patch2
%patch3 -p1
-perl -pe 's/\@EDITION\@/%{version}-%{release}/' < %{SOURCE1} > elilo.pl &&
+%patch4 -p1
+%patch5 -p1
+perl -pe 's{\@EDITION\@}{%{version}-%{release}};
+ s{\@LIBEXECDIR\@}{%{_libexecdir}}' < %{SOURCE1} > elilo.pl &&
+perl -pi -e 's{/usr/lib}{%{_libexecdir}}' Make.defaults
chmod 555 elilo.pl && touch -r %{SOURCE1} elilo.pl
! fgrep '%%{version}-%%{release}' elilo.pl
@@ -58,11 +65,13 @@
touch -r elilo.pl elilo.8
%install
-install -d $RPM_BUILD_ROOT/usr/lib/elilo $RPM_BUILD_ROOT/sbin
-install -m 444 elilo.efi $RPM_BUILD_ROOT/usr/lib/elilo
+install -d $RPM_BUILD_ROOT%{_libexecdir}/efi $RPM_BUILD_ROOT/sbin
+install -m 444 elilo.efi $RPM_BUILD_ROOT%{_libexecdir}/efi
install tools/eliloalt $RPM_BUILD_ROOT/sbin
install -p -m 555 elilo.pl $RPM_BUILD_ROOT/sbin/elilo
-#install -D -p elilo.8 $RPM_BUILD_ROOT/usr/share/man/man8/elilo.8
+%if 0
+install -D -p elilo.8 $RPM_BUILD_ROOT/usr/share/man/man8/elilo.8
+%endif
%clean
rm -fr $RPM_BUILD_ROOT
@@ -74,26 +83,44 @@
%files
%defattr(-, root, root)
%doc README README.* TODO docs/*.txt
-/usr/lib/elilo
+%{_libexecdir}/efi
/sbin/elilo
/sbin/eliloalt
-#/usr/share/man/man8/*
+%if 0
+/usr/share/man/man8/*
+%endif
%changelog
+* Thu Jul 31 2008 rw@suse.de
+- elilo.efi
+ * Update to final elilo-3.8 for uEFI support. (fate#301882)
+- elilo.pl
+ * Preserve time-stamps but not permissions. (bnc#394331)
+ * Unconditionally strip deprecated 'read-only' from 'elilo.conf'.
+ * Support '$LIBEXECDIR' to please uEFI/x86_64 and
+ relocate efi-binaries from 'elilo' to 'efi'. (fate#301882)
* Thu Feb 28 2008 ro@suse.de
-- no strip for elilo.efi during install (unknown binary format)
+- elilo.spec
+ * No strip for elilo.efi during install (unknown binary format).
* Sun May 27 2007 schwab@suse.de
-- Revert last change.
+- elilo.spec
+ * Revert last change.
* Sun May 27 2007 ro@suse.de
-- added gnu-efi-devel to buildreq
+- elilo.spec
+ * Added gnu-efi-devel to buildreq.
+* Wed May 09 2007 rw@suse.de
+- elilo.efi
+ * Reduce non-"command line" strings back to 512. (#256676)
+ * Fix another buffer overrun. (#256676)
* Fri Feb 23 2007 schwab@suse.de
-- Disable stack protector.
+- elilo.spec
+ * Disable stack protector.
* Tue Feb 06 2007 bwalle@suse.de
- elilo.efi
- * increase command line size to 2048 (as in >= 2.6.20-rc6-mm1)
- (#242702)
+ * Increase command line size to 2048. (#242702)
* Fri Nov 10 2006 schwab@suse.de
-- Fix spelling.
+- elilo.efi
+ * Fix spelling.
* Thu Feb 02 2006 rw@suse.de
- elilo.efi
* Update to final 3.6
@@ -108,18 +135,18 @@
- elilo.efi
* Fix vmcode_name initialization in textmenu chooser. (#140519)
* Fri Dec 09 2005 rw@suse.de
-- /sbin/elilo
+- elilo.pl
* Fix formatting of man-page.
* Wed Dec 07 2005 rw@suse.de
- elilo.efi
* Update to 3.5-pre2.
-- /sbin/elilo
+- elilo.pl
* Make "best effort" instead of giving up early.
* Sat Aug 13 2005 schwab@suse.de
-- /sbin/elilo
+- elilo.pl
* Check that the default label is defined.
* Fri Aug 05 2005 schwab@suse.de
-- /sbin/elilo
+- elilo.pl
* Barf on duplicate labels.
* Wed Apr 13 2005 schwab@suse.de
- elilo.efi
@@ -131,12 +158,12 @@
- elilo.efi
* Fix simple-chooser (#45493)
* Thu May 27 2004 rw@suse.de
-- /sbin/elilo
+- elilo.pl
* Make all image-objects (kernel/initrd) *optional* by default (#41315)
* Mon Feb 23 2004 rw@suse.de
- elilo.efi
* Use '$RPM_OPT_FLAGS' with '-fno-strict-aliasing' appended.
-- /sbin/elilo
+- elilo.pl
* Take care of FPSWA.
* Try to avoid copying the same files more than once.
* Mon Nov 24 2003 rw@suse.de
++++++ elilo-3.6-asm.diff -> elilo-asm.diff ++++++
++++++ elilo-avoid-tab.diff ++++++
diff -urp elilo-3.8/config.c elilo-3.8-tab/config.c
--- elilo-3.8/config.c 2008-07-29 23:22:07.637647427 +0200
+++ elilo-3.8-tab/config.c 2008-07-31 01:24:31.346046245 +0200
@@ -897,10 +897,10 @@ print_label_list(VOID)
{
boot_image_t *img, *dfl = global_config.default_image;
- if (dfl) Print(L"\t%s\n", dfl->label);
+ if (dfl) Print(L" %s\n", dfl->label);
for (img = image_list; img; img = img->next) {
- if (img != dfl) Print(L"\t%s\n", img->label);
+ if (img != dfl) Print(L" %s\n", img->label);
}
}
++++++ elilo-fix-possible-overflow.diff ++++++
From: Bernhard Walle
Subject: [PATCH] Fix possible array length overflow
References: 256676
Found by dan.yeisley@unisys.com.
Signed-off-by: Bernhard Walle
---
choosers/simple.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--- a/choosers/simple.c
+++ b/choosers/simple.c
@@ -283,8 +283,10 @@ restart:
}
if (elilo_opt.prompt) {
- ret = select_kernel(buffer, sizeof(buffer));
+ ret = select_kernel(buffer, CMDLINE_MAXLEN);
if (ret == -1) return -1;
+
+ /* this function takes really the number of bytes ... */
argc = argify(buffer,sizeof(buffer), argv);
index = 0;
}
++++++ elilo-longer-commandline.diff ++++++
--- /var/tmp/diff_new_pack.t26089/_old 2008-07-31 21:25:28.000000000 +0200
+++ /var/tmp/diff_new_pack.t26089/_new 2008-07-31 21:25:28.000000000 +0200
@@ -3,25 +3,85 @@
Increase command line size to 2048 chars.
---
- elilo.c | 2 +-
- elilo.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
+ choosers/simple.c | 10 +++++-----
+ choosers/textmenu.c | 6 +++---
+ config.c | 6 +++---
+ elilo.c | 2 +-
+ elilo.h | 3 ++-
+ 5 files changed, 14 insertions(+), 13 deletions(-)
-Index: b/elilo.h
-===================================================================
---- a/elilo.h
-+++ b/elilo.h
-@@ -57,7 +57,7 @@
- #define ELILO_DEFAULT_TIMEOUT ELILO_TIMEOUT_INFINITY
- #define ELILO_TIMEOUT_INFINITY (~0UL)
+--- a/choosers/simple.c
++++ b/choosers/simple.c
+@@ -36,8 +36,8 @@ static VOID
+ display_label_info(CHAR16 *name)
+ {
+ CHAR16 *desc;
+- CHAR16 initrd_name[CMDLINE_MAXLEN];
+- CHAR16 vmcode_name[CMDLINE_MAXLEN];
++ CHAR16 initrd_name[PATHNAME_MAXLEN];
++ CHAR16 vmcode_name[PATHNAME_MAXLEN];
+ CHAR16 options_tmp[CMDLINE_MAXLEN];
+ CHAR16 options[CMDLINE_MAXLEN];
+ CHAR16 kname[FILENAME_MAXLEN];
+@@ -248,10 +248,10 @@ simple_choose(CHAR16 **argv, INTN argc,
+ # define BOOT_IMG_STR L"BOOT_IMAGE="
+ CHAR16 buffer[CMDLINE_MAXLEN];
+ CHAR16 alt_buffer[CMDLINE_MAXLEN];
+- CHAR16 initrd_name[CMDLINE_MAXLEN];
+- CHAR16 vmcode_name[CMDLINE_MAXLEN];
++ CHAR16 initrd_name[PATHNAME_MAXLEN];
++ CHAR16 vmcode_name[PATHNAME_MAXLEN];
+ CHAR16 args[CMDLINE_MAXLEN];
+- CHAR16 devname[CMDLINE_MAXLEN];
++ CHAR16 devname[PATHNAME_MAXLEN];
+ CHAR16 dpath[FILENAME_MAXLEN];
+ CHAR16 *slash_pos, *colon_pos, *backslash_pos;
+ UINTN len;
+--- a/choosers/textmenu.c
++++ b/choosers/textmenu.c
+@@ -362,10 +362,10 @@ textmenu_choose(CHAR16 **argv, INTN argc
+ {
+ # define BOOT_IMG_STR L"BOOT_IMAGE="
+ CHAR16 label[CMDLINE_MAXLEN];
+- CHAR16 initrd_name[CMDLINE_MAXLEN];
+- CHAR16 vmcode_name[CMDLINE_MAXLEN];
++ CHAR16 initrd_name[PATHNAME_MAXLEN];
++ CHAR16 vmcode_name[PATHNAME_MAXLEN];
+ CHAR16 args[CMDLINE_MAXLEN];
+- CHAR16 devname[CMDLINE_MAXLEN];
++ CHAR16 devname[PATHNAME_MAXLEN];
+ CHAR16 dpath[FILENAME_MAXLEN];
+ CHAR16 *slash_pos, *colon_pos, *backslash_pos;
+ UINTN len;
+--- a/config.c
++++ b/config.c
+@@ -51,7 +51,7 @@
+ */
+ #define ELILO_DEFAULT_CONFIG L"elilo.conf"
--#define CMDLINE_MAXLEN 512 /* needed by ia32 */
-+#define CMDLINE_MAXLEN 2048 /* needed by ia32 */
- #define FILENAME_MAXLEN 256
- #define MAX_ARGS 256
- /* Just pick an arbitrary number that's high enough for now :o) */
-Index: b/elilo.c
-===================================================================
+-#define MAX_STRING CMDLINE_MAXLEN
++#define MAX_STRING 512
+ #define CONFIG_BUFSIZE 512 /* input buffer size */
+
+ /*
+@@ -66,7 +66,7 @@ typedef struct boot_image {
+ struct boot_image *next;
+ CHAR16 label[MAX_STRING];
+ CHAR16 kname[FILENAME_MAXLEN];
+- CHAR16 options[MAX_STRING];
++ CHAR16 options[CMDLINE_MAXLEN];
+ CHAR16 initrd[FILENAME_MAXLEN];
+ CHAR16 vmcode[FILENAME_MAXLEN];
+ CHAR16 root[FILENAME_MAXLEN];
+@@ -95,7 +95,7 @@ typedef struct {
+ CHAR16 root[FILENAME_MAXLEN]; /* globally defined root fs */
+ CHAR16 initrd[FILENAME_MAXLEN];/* globally defined initrd */
+ CHAR16 vmcode[FILENAME_MAXLEN];/* globally defined boot-time module */
+- CHAR16 options[MAX_STRING];
++ CHAR16 options[CMDLINE_MAXLEN];
+ CHAR16 default_image_name[MAX_STRING];
+ CHAR16 message_file[MAX_MESSAGES][FILENAME_MAXLEN];
+ CHAR16 chooser[FILENAME_MAXLEN];/* which image chooser to use */
--- a/elilo.c
+++ b/elilo.c
@@ -87,7 +87,7 @@ do_kernel_load(CHAR16 *kname, kdesc_t *k
@@ -33,3 +93,16 @@
/*
* Do the vm image switch here
+--- a/elilo.h
++++ b/elilo.h
+@@ -57,7 +57,8 @@
+ #define ELILO_DEFAULT_TIMEOUT ELILO_TIMEOUT_INFINITY
+ #define ELILO_TIMEOUT_INFINITY (~0UL)
+
+-#define CMDLINE_MAXLEN 512 /* needed by ia32 */
++#define CMDLINE_MAXLEN 2048
++#define PATHNAME_MAXLEN 512
+ #define FILENAME_MAXLEN 256
+ #define MAX_ARGS 256
+ /* Just pick an arbitrary number that's high enough for now :o) */
+
++++++ elilo-MAC.diff ++++++
diff -purN elilo-3.5-pre2/glue_netfs.c elilo-3.5-MAC/glue_netfs.c
--- elilo-3.5-pre2/glue_netfs.c 2004-02-20 23:30:37.000000000 +0100
+++ elilo-3.5-MAC/glue_netfs.c 2005-12-07 15:19:45.655191368 +0100
@@ -61,6 +61,18 @@ static CHAR16 netfs_default_path[FILENAM
static CHAR16 *hexa=L"0123456789ABCDEF";
static VOID
+convert_mac2hex(UINT8 *hw_addr,INTN l, CHAR16 *str)
+{
+ UINTN i;
+ for (i=0 ; i < l; i++) {
+ str[3*i] = hexa[(hw_addr[i] & 0xf0)>>4];
+ str[3*i+1] = hexa[hw_addr[i] & 0x0f];
+ str[3*i+2] = ':';
+ }
+ str[3*l-1]='\0';
+}
+
+static VOID
convert_ip2hex(UINT8 *ip, INTN l, CHAR16 *str)
{
UINTN i;
@@ -197,6 +209,12 @@ netfs_setdefaults(VOID *intf, config_fil
StrnCpy(config[6].fname, str, maxlen-1);
StrnCpy(config[6].fname+2, CONFIG_EXTENSION, 6);
+
+ /* use the MAC address as a possible file name as well */
+ convert_mac2hex(info.hw_addr,6,str);
+ StrnCpy(config[7].fname, str, maxlen-1);
+ StrnCpy(config[7].fname+17, CONFIG_EXTENSION, 6);
+
#else
StrnCpy(config[0].fname, NETFS_DEFAULT_CONFIG, maxlen-1);
config[0].fname[maxlen-1] = CHAR_NULL;
++++++ elilo.pl ++++++
--- arch/i386/elilo/elilo.pl 2005-12-09 12:46:06.000000000 +0100
+++ /mounts/work_src_done/STABLE/elilo/elilo.pl 2008-07-30 11:36:51.887804000 +0200
@@ -1,5 +1,5 @@
#!/usr/bin/perl -w
-# $Id: elilo.pl,v 0.12 2005/12/09 11:46:06 rw Exp $
+# $Id: elilo.pl,v 0.14 2008/07/30 09:36:48 rw Exp $
use strict;
my $C = $0; $C =~ s%^.*/%%;
@@ -8,7 +8,8 @@
my $Edition = q(@EDITION@);
my $MPold = "$dbg/boot";
my $MPnew = "$dbg/boot/efi";
-my $Dlib = "$dbg/usr/lib/elilo";
+my $Dlibold = "$dbg@LIBEXECDIR@/elilo";
+my $Dlib = "$dbg@LIBEXECDIR@/efi";
my $Fconf = "elilo.conf";
my $Sconf = "$dbg/etc/" . $Fconf;
@@ -35,7 +36,7 @@
$[ = 0;
sub Version() {
- my $v = q($Revision: 0.12 $ );
+ my $v = q($Revision: 0.14 $ );
$v =~ s/^\$ Rev.*:\ ([0-9.]+)\ \$\ /$1/x;
$v .= " (part of elilo-$Edition)" if ( $Edition ne "\@EDITION\@" );
print "$C version $v\n";
@@ -131,6 +132,8 @@
} elsif (m%^\s*default\s*=\s*(\S+)%) {
$default_label = $1;
$default_loc = $#Out + 1;
+ } elsif (m%^\s*read-only\s*$%) {
+ $_ = "#read-only # Deprecated! (May be forced by appending 'ro')\n";
}
push @Out, $_;
}
@@ -194,26 +197,33 @@
my( $f, $o, $s, $d) = @_;
my @C = ( "install", $o, $s, $d);
+ if ( $o eq "-p" ) {
+ @C = ( "cp", "--preserve=timestamps", $s, $d);
+ }
System( $f, @C);
}
sub InstallFPSWA($) {
my ( $d) = @_;
+ my $Dfpswa = $Dlib;
+
$d .= "/efi/Intel Firmware";
- return 0 unless ( -r "$Dlib/fpswa.efi" );
+ $Dfpswa = $Dlibold unless ( -r "$Dfpswa/fpswa.efi" );
+
+ return 0 unless ( -r "$Dfpswa/fpswa.efi" );
my $head = "## fpswa: Floating Point Software Assist\n";
if ( -d $d && -r "$d/fpswa.efi" ) {
# check, if we need to update and failing that do nothing?!
- my $c = "$Dlib/fpswa-cmp-version";
+ my $c = "$Dfpswa/fpswa-cmp-version";
if ( -x $c ) {
- my $chk = `$c "$d/fpswa.efi" "$Dlib/fpswa.efi"`;
+ my $chk = `$c "$d/fpswa.efi" "$Dfpswa/fpswa.efi"`;
if ( $chk =~ /older/ ) {
Info( 1, $head .
"## Update '$d/fpswa.efi'.\n");
Info( 2,
"## $chk");
- Install( 0, "-p", "$Dlib/fpswa.efi", $d);
+ Install( 0, "-p", "$Dfpswa/fpswa.efi", $d);
} else {
Info( 1, $head .
"## Do NOT update '$d/fpswa.efi'.\n");
@@ -222,7 +232,7 @@
}
} else {
use File::Compare;
- if ( compare( "$d/fpswa.efi", "$Dlib/fpswa.efi") == 0 ) {
+ if ( compare( "$d/fpswa.efi", "$Dfpswa/fpswa.efi") == 0 ) {
Info( 2, $head .
"## Already installed.\n");
} else {
@@ -234,7 +244,7 @@
} else {
Info( 1, $head . "## Install 'fpswa.efi' to '$d'.\n");
System( 0, "mkdir", $d) unless ( -d $d );
- Install( 0, "-p", "$Dlib/fpswa.efi", $d);
+ Install( 0, "-p", "$Dfpswa/fpswa.efi", $d);
}
}
++++++ elilo-spelling.diff ++++++
--- config.c
+++ config.c
@@ -580,7 +580,7 @@
*/
tok = get_token(numstr, MAX_STRING);
if (tok != TOK_EQUAL) {
- config_error(L"Option %s expects an equal signal + value", p->name);
+ config_error(L"Option %s expects an equal sign + value", p->name);
return -1;
}
@@ -673,7 +673,7 @@
*/
tok = get_token(str, maxlen);
if (tok != TOK_EQUAL) {
- config_error(L"Option %s expects an equal signal + %s", p->name, msg);
+ config_error(L"Option %s expects an equal sign + %s", p->name, msg);
return -1;
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org