From 8ed00724bb3cef55f7255f0846f917d5c6e7bbbd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 21 Feb 2008 19:55:51 +0000 Subject: [PATCH] - Update to 3.61 . --- .cvsignore | 2 +- sources | 2 +- syslinux-3.36.patch | 37 ------ syslinux-fix-menu-memory-clobber.patch | 25 ---- syslinux-hiddenmenu.patch | 163 ------------------------- syslinux.spec | 30 +++-- 6 files changed, 16 insertions(+), 243 deletions(-) delete mode 100644 syslinux-3.36.patch delete mode 100644 syslinux-fix-menu-memory-clobber.patch delete mode 100644 syslinux-hiddenmenu.patch diff --git a/.cvsignore b/.cvsignore index d6e9a86..5142313 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -syslinux-3.36.tar.bz2 +syslinux-3.61.tar.bz2 diff --git a/sources b/sources index 6fdbbf8..a0b8e40 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -d1bfdaa53d31f572f540be55d1480027 syslinux-3.36.tar.bz2 +d1afd866d081de66438296ec1419ecf1 syslinux-3.61.tar.bz2 diff --git a/syslinux-3.36.patch b/syslinux-3.36.patch deleted file mode 100644 index e135324..0000000 --- a/syslinux-3.36.patch +++ /dev/null @@ -1,37 +0,0 @@ -From: H. Peter Anvin -Date: Mon, 19 Feb 2007 23:54:58 +0000 (-0800) -Subject: Comboot function READ DISK corrupts its arguments; fix. -X-Git-Tag: syslinux-3.40-pre10^0~13^2 -X-Git-Url: http://www.jur-linux.org/git/?p=syslinux.git;a=commitdiff_plain;h=c7c51cdcd0a094c2588f8a816542bc57bb4efb34 - -Comboot function READ DISK corrupts its arguments; fix. ---- - -diff --git a/comboot.doc b/comboot.doc -index 8aaa0e7..0d70b48 100644 ---- a/comboot.doc -+++ b/comboot.doc -@@ -723,7 +723,7 @@ AX=0018h [3.30] Query custom font - been loaded, AL contains zero. - - --AX=0019h [3.35] Read disk [SYSLINUX, ISOLINUX, EXTLINUX] -+AX=0019h [3.xx] Read disk [SYSLINUX, ISOLINUX, EXTLINUX] - Input: AX 0019h - EDX Sector number - ESI Reserved - MUST BE ZERO -diff --git a/comboot.inc b/comboot.inc -index 0f544c2..5df900f 100644 ---- a/comboot.inc -+++ b/comboot.inc -@@ -780,9 +780,9 @@ comapi_readdisk: - or esi,P_EDI ; are reserved for future expansion - jnz .err - mov eax,P_EDX -- mov bp,P_CX - mov es,P_ES - mov bx,P_BX -+ mov bp,P_CX ; WE CANNOT use P_* after touching bp! - call getlinsec - clc - ret diff --git a/syslinux-fix-menu-memory-clobber.patch b/syslinux-fix-menu-memory-clobber.patch deleted file mode 100644 index e9ca3d4..0000000 --- a/syslinux-fix-menu-memory-clobber.patch +++ /dev/null @@ -1,25 +0,0 @@ -From: H. Peter Anvin -Date: Fri, 21 Sep 2007 23:22:58 +0000 (-0700) -Subject: comboot: fix memory overwrite bug -X-Git-Tag: syslinux-3.52-pre9~2 -X-Git-Url: http://git.kernel.org/?p=boot%2Fsyslinux%2Fsyslinux.git;a=commitdiff_plain;h=426d986dbc77abf2247b08c44c18bf9a478c2e8e - -comboot: fix memory overwrite bug - -Fix memory overwrite bug, specifically, the use of BP after it might -have gotten clobbered. Since at the point of use, BP is supposed to -be == SP, we can just add "mov bp,sp". ---- - -diff --git a/comboot.inc b/comboot.inc -index 3c9df5f..ffc9425 100644 ---- a/comboot.inc -+++ b/comboot.inc -@@ -187,6 +187,7 @@ comboot_int21: cli - clc - call ax ; Call the invoked function - comboot_resume: -+ mov bp,sp ; In case the function clobbers BP - setc P_FLAGSL ; Propagate CF->error - popad - pop gs diff --git a/syslinux-hiddenmenu.patch b/syslinux-hiddenmenu.patch deleted file mode 100644 index 40912d3..0000000 --- a/syslinux-hiddenmenu.patch +++ /dev/null @@ -1,163 +0,0 @@ -diff -up syslinux-3.36/com32/lib/sys/ansicon_write.c.hidden syslinux-3.36/com32/lib/sys/ansicon_write.c ---- syslinux-3.36/com32/lib/sys/ansicon_write.c.hidden 2007-02-10 15:47:07.000000000 -0500 -+++ syslinux-3.36/com32/lib/sys/ansicon_write.c 2007-08-14 13:20:46.000000000 -0400 -@@ -88,15 +88,15 @@ int __ansicon_open(struct file_info *fp) - if ( (signed char)oreg.ebx.b[1] < 0 ) { - ti.disabled = 1; - } else { -+ /* Force text mode */ -+ ireg.eax.w[0] = 0x0005; -+ __intcall(0x22, &ireg, NULL); -+ - /* Initial state */ - ti.rows = BIOS_ROWS ? BIOS_ROWS+1 : 25; - ti.cols = BIOS_COLS; - __ansi_init(&ti); - -- /* Force text mode */ -- ireg.eax.w[0] = 0x0005; -- __intcall(0x22, &ireg, NULL); -- - /* Get cursor shape and position */ - ireg.eax.b[1] = 0x03; - ireg.ebx.b[1] = BIOS_PAGE; -diff -up syslinux-3.36/com32/modules/menu.h.hidden syslinux-3.36/com32/modules/menu.h ---- syslinux-3.36/com32/modules/menu.h.hidden 2007-02-10 15:47:08.000000000 -0500 -+++ syslinux-3.36/com32/modules/menu.h 2007-08-14 13:20:46.000000000 -0400 -@@ -56,6 +56,7 @@ extern int defentry; - extern int allowedit; - extern int timeout; - extern int shiftkey; -+extern int hiddenmenu; - extern long long totaltimeout; - - extern char *menu_title; -diff -up syslinux-3.36/com32/modules/menumain.c.hidden syslinux-3.36/com32/modules/menumain.c ---- syslinux-3.36/com32/modules/menumain.c.hidden 2007-02-10 15:47:08.000000000 -0500 -+++ syslinux-3.36/com32/modules/menumain.c 2007-08-14 13:41:18.000000000 -0400 -@@ -90,6 +90,7 @@ struct menu_parameter mparm[] = { - { "endrow", -1 }, - { "passwordrow", 11 }, - { "timeoutrow", 20 }, -+ { "hiddenrow", -2 }, - { NULL, 0 } - }; - -@@ -102,6 +103,7 @@ struct menu_parameter mparm[] = { - #define END_ROW mparm[6].value - #define PASSWD_ROW mparm[7].value - #define TIMEOUT_ROW mparm[8].value -+#define HIDDEN_ROW mparm[9].value - - static void - install_default_color_table(void) -@@ -561,6 +563,61 @@ shift_is_held(void) - return !!(shift_bits & 0x5d); /* Caps/Scroll/Alt/Shift */ - } - -+static void -+print_timeout_message(int tol, int row, const char *msg) -+{ -+#define HSHIFT 0 -+ char buf[256]; -+ int nc = 0, nnc; -+ const char *tp = msg; -+ char tc; -+ char *tq = buf; -+ -+ while ((size_t)(tq-buf) < (sizeof buf-16) && (tc = *tp)) { -+ if (tc == '#') { -+ nnc = sprintf(tq, "%d", tol); -+ tq += nnc; -+ nc += nnc-8; /* 8 formatting characters */ -+ } else { -+ *tq++ = tc; -+ nc++; -+ } -+ tp++; -+ } -+ *tq = '\0'; -+ -+ printf("\033[%d;%dH\2 %s ", row, HSHIFT+1+((WIDTH-nc-2)>>1), buf); -+} -+ -+static const char * -+do_hidden_menu(void) -+{ -+ int key; -+ int timeout_left, this_timeout; -+ -+ clear_screen(); -+ -+ if ( !setjmp(timeout_jump) ) { -+ timeout_left = timeout; -+ -+ while (!timeout || timeout_left) { -+ int tol = timeout_left/CLK_TCK; -+ -+ print_timeout_message(tol, HIDDEN_ROW, " Automatic boot in # seconds "); -+ -+ this_timeout = min(timeout_left, CLK_TCK); -+ key = mygetkey(this_timeout); -+ -+ if (key != KEY_NONE) -+ return NULL; /* Key pressed */ -+ -+ timeout_left -= this_timeout; -+ } -+ } -+ -+ return menu_entries[defentry].cmdline; /* Default entry */ -+} -+ - static const char * - run_menu(void) - { -@@ -580,6 +637,18 @@ run_menu(void) - return menu_entries[defentry].cmdline; - } - -+ /* Handle hiddenmenu */ -+ if ( hiddenmenu ) { -+ cmdline = do_hidden_menu(); -+ if (cmdline) -+ return cmdline; -+ -+ /* Otherwise display the menu now; the timeout has already been -+ cancelled, since the user pressed a key. */ -+ hiddenmenu = 0; -+ key_timeout = 0; -+ } -+ - /* Handle both local and global timeout */ - if ( setjmp(timeout_jump) ) { - entry = defentry; -@@ -632,7 +701,7 @@ run_menu(void) - int tol = timeout_left/CLK_TCK; - int nc = snprintf(NULL, 0, " Automatic boot in %d seconds ", tol); - printf("\033[%d;%dH\1#14 Automatic boot in \1#15%d\1#14 seconds ", -- TIMEOUT_ROW, 1+((WIDTH-nc)>>1), tol); -+ TIMEOUT_ROW, 1+((WIDTH-nc)>>1), tol); - to_clear = 1; - } else { - to_clear = 0; -diff -up syslinux-3.36/com32/modules/readconfig.c.hidden syslinux-3.36/com32/modules/readconfig.c ---- syslinux-3.36/com32/modules/readconfig.c.hidden 2007-02-10 15:47:08.000000000 -0500 -+++ syslinux-3.36/com32/modules/readconfig.c 2007-08-14 13:21:22.000000000 -0400 -@@ -30,6 +30,7 @@ int defentry = 0; - int allowedit = 1; /* Allow edits of the command line */ - int timeout = 0; - int shiftkey = 0; /* Only display menu if shift key pressed */ -+int hiddenmenu = 0; - long long totaltimeout = 0; - - char *menu_title = ""; -@@ -417,6 +418,8 @@ static void parse_config_file(FILE *f) - if (menu_background) - free(menu_background); - menu_background = dup_word(&p); -+ } else if ( (ep = looking_at(p, "hidden")) ) { -+ hiddenmenu = 1; - } else if ((ep = looking_at(p, "color")) || - (ep = looking_at(p, "colour"))) { - int i; diff --git a/syslinux.spec b/syslinux.spec index d79bd14..f07d1c6 100644 --- a/syslinux.spec +++ b/syslinux.spec @@ -1,17 +1,14 @@ Summary: Simple kernel loader which boots from a FAT filesystem Name: syslinux -Version: 3.36 -%define tarball_version 3.36 -Release: 9%{?dist} -License: GPLv2+ +Version: 3.61 +%define tarball_version 3.61 +Release: 1%{?dist} +License: GPL Group: Applications/System URL: http://syslinux.zytor.com/ Source0: ftp://ftp.kernel.org/pub/linux/utils/boot/syslinux/%{name}-%{tarball_version}.tar.bz2 Patch0: syslinux-2.08-x86_64.patch -Patch3: syslinux-3.36.patch -Patch4: syslinux-3.36-16bpp.patch -Patch5: syslinux-hiddenmenu.patch -Patch6: syslinux-fix-menu-memory-clobber.patch +Patch1: syslinux-3.36-16bpp.patch ExclusiveArch: i386 x86_64 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: nasm >= 0.98.38-1, perl, netpbm-progs @@ -39,10 +36,7 @@ MEMDISK, which loads legacy operating systems from these media. %prep %setup -q -n syslinux-%{tarball_version} %patch0 -p1 -b .x86_64 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 +%patch1 -p1 %build CFLAGS="-Werror -Wno-unused -finline-limit=2000" @@ -61,8 +55,8 @@ mkdir -p %{buildroot}%{_prefix}/lib/syslinux mkdir -p %{buildroot}%{_includedir} make install-all \ INSTALLROOT=%{buildroot} BINDIR=%{_bindir} SBINDIR=%{_sbindir} \ - LIBDIR=%{_prefix}/lib INCDIR=%{_includedir} -cp mkdiskimage sys2ansi.pl keytab-lilo.pl %{buildroot}%{_prefix}/lib/syslinux + LIBDIR=%{_prefix}/lib INCDIR=%{_includedir} MANDIR=%{_mandir} +cp mkdiskimage keytab-lilo.pl %{buildroot}%{_prefix}/lib/syslinux install -m 755 unix/syslinux-nomtools %{buildroot}%{_prefix}/lib/syslinux install -m 755 unix/syslinux %{buildroot}%{_prefix}/lib/syslinux @@ -83,9 +77,10 @@ rm -rf %{buildroot} %files %defattr(-,root,root) %doc NEWS README* TODO COPYING -%doc *.doc memdisk/*.doc +%doc doc/* com32/modules/*.doc %doc sample -%{_bindir}/syslinux +%{_mandir}/man*/* +%{_bindir}/* %{_sbindir}/extlinux %{_bindir}/ppmtolss16 %{_bindir}/lss16toppm @@ -105,6 +100,9 @@ rm -rf %{buildroot} %{_datadir}/syslinux/ %changelog +* Tue Feb 21 2008 Peter Jones - 3.61-1 +- Update to 3.61 . + * Tue Feb 19 2008 Fedora Release Engineering - 3.36-9 - Autorebuild for GCC 4.3