commit syslinux for openSUSE:Factory
Hello community, here is the log from the commit of package syslinux for openSUSE:Factory checked in at Wed Apr 27 15:16:26 CEST 2011. -------- --- syslinux/syslinux.changes 2010-04-27 18:00:02.000000000 +0200 +++ /mounts/work_src_done/STABLE/syslinux/syslinux.changes 2011-04-20 11:28:59.000000000 +0200 @@ -1,0 +2,179 @@ +Wed Apr 20 11:27:23 CEST 2011 - snwint@suse.de + +- adrian: mboot: replicate BOOTIF option for all modules + +------------------------------------------------------------------- +Tue Apr 19 15:29:10 CEST 2011 - snwint@suse.de + +- handle case where a separate initrd config line is used instead of an + initrd= kernel option + +------------------------------------------------------------------- +Tue Apr 19 10:48:40 CEST 2011 - snwint@suse.de + +- update to version 4.04 + * PXELINUX: Fix handling of unqualified DNS names. + * PXELINUX: Fix timer bug when PXELINUX might be unloaded + (Gene Cumm). + * core/writedec.inc: Fix duplicate declaration and overflow + (Gene Cumm). + * GCC 4.5 fixes. + * sample directory: Fix Makefile include (Gene Cumm). + * ver.com: New universal DOS/COMBOOT application to display + version information (includes DRMK) (Gene Cumm). + * rosh.c32: updated; Using getopt() for internal commands to aid + parsing options; Fix bugs in ls; add warm reboot and echo + (Gene Cumm). + * com32: fix a file descriptor leak. + * gfxboot.c32: handle TEXT..ENDTEXT; error out on no LABELs + found (Sebastian Herbszt). + * Fix booting on non-partitioned devices. + * MBR, isohybrid: Workaround for a BIOS issue on Acer + Travelmate and possibly other machines. + * COM32: Adding ACPI parsing libary + * HDT: Release 0.4.1 to support ACPI parsing, + improved mutli-core/cpu reporting + * LUA: Updating to 5.1.4-2 + * SYSLINUX: core/diskstart.inc: Reset DS after checksum in case + it isn't 0 (Gene Cumm). + * win64: Script update for additional mingw compiler names + (Gene Cumm). + * diag: New directory for diagnostic-related tools. Add a + handoff MBR/VBR and geometry display images (Gene Cumm). + * MEMDISK: use "mem=" parameter to mark available memory above + this point as reserved (core already does alignment) (Gene Cumm). + * MEMDISK: Additional disk probe checks and debug output + (Shao Miller, Gene Cumm). + * gpxe: add gpxelinuxk.0, based off of undionly.kpxe + new + script (Gene Cumm). + * isohybrid: install the isohdpfx*.bin/isohdppx*.bin files to + make isohybrid images in one step with GNU xorriso. + * PXELINUX: disable a hack that would make localboot work on + some machines, but break just about as many. Some machines + which worked with "localboot 0" in previous versions may + need "localboot -1" in this one. If you have a machine + which requires "localboot -1", a copy of the dmidecode + or sysdump output would be appreciated. + * Include a set of diagnostics by Gene Cumm. + * Fixes for gcc 4.6 and binutils 2.21.51. + * chain.c32: Allow "uuid" as a synonym to "guid". + * Handle directory names starting with .. for vfat and + iso9660. + * New MENU HIDDENKEY command to provide a one-keystroke way to + activate a boot option from a hidden menu intro screen. + + +------------------------------------------------------------------- +Mon Apr 18 17:35:01 CEST 2011 - snwint@suse.de + +- update to version 4.03 + * Major code base changes; all filesystem rewritten in C. + This work was done primarily by Liu Aleaxander (Yuanhan Liu). + * Better support for booting from MBRs which don't pass + handover information. + * EXTLINUX: Try to be smarter about finding the partition + offset. + * chain.c32: support chainloading Dell Real Mode Kernel (Gene + Cumm). + * chain.c32: fix booting in CHS mode. + * Fix the -s option to the syslinux/extlinux installer (Arwin + Vosselman). + * isohybrid: fix padding of large images (PJ Pandit). + * SYSLINUX: correctly handle the case where the -d option is + specified with a non-absolute path, i.e. "syslinux -d + syslinux" instead of "syslinux -d /syslinux". + * ISOLINUX: recognize the directory names /boot/syslinux and + /syslinux, and the filename syslinux.cfg in addition to the + isolinux-specific names. Thus, "syslinux.cfg" is now a + generic name, whereas "isolinux.cfg" or "extlinux.conf" is + specific to different derivative. + * chain.c32: support setting alternate config filename for + stage2 of GRUB Legacy (Gert Hulselmans). + * whichsys.c32: execute specific command, based on Syslinux + bootloader variant (Gert Hulselmans). + * lua.c32: a lot of new bindings added to the "syslinux" + namespace: VESA, PCI, DMI, kernel loading (Marcel Ritter). + * btrfs: print a comprehensive error message if compressed or + encrypted files are encountered (neither is currently + supported.) + * SYSLINUX: mtools installer: honor TMPDIR, error out on disk + full. + * Handle fallbacks from EDD to CHS, to deal with systems which + announce EDD support but don't actually have it. + * SYSLINUX: the mtools, DOS and win32 installers now use the new + command line options. + * PXELINUX: fix the use of IP addresses in TFTP :: or tftp:// + host syntax. + * SYSLINUX: experimental Win64 installer (syslinux64.exe). + * ISOLINUX: fix initialization on systems which don't zero + low memory. + * SYSLINUX/EXTLINUX: fix handing of disk read retries in + EDD mode. + * ISOLINUX: change the initialization sequence to avoid + problems with certain (old) BIOSes. Special thanks to + Helmut Hullen for invaluable debugging support. + * ifplop.c32: new module which detects if the PLoP Boot Loader + already has booted a CDROM or USB drive (Gert Hulselmans). + * Correct a severe memory overwrite bug, triggered primarily + when selecting a very long command line in the menu system. + * lua.c32: Lua script interpreter, currently experimental + (Alexey Zaytsev, Marcel Ritter, Geert Stappers). + * PXELINUX: new option IPAPPEND 4 to append the system UUID to + the kernel command line. + * PXELINUX: display BOOTIF and SYSUUID at startup time, and + when Ctrl-N is pressed on the command line. + * EXTLINUX: btrfs and ext4 support. btrfs support was done by + Alek Du of Intel. + * EXTLINUX is no longer a separate derivative; extlinux and + syslinux both install the same loader (ldlinux.sys); for the + Linux-based installers the extlinux binary is used for a + mounted filesystem; the syslinux binary for an unmounted + filesystem. + * When loading a new configuration file with the CONFIG + command, one can now also specify a new current directory + with an APPEND statement. + * Full ADV support for Syslinux, to boot-once and MENU SAVE + works. + * Full support of GPT-partitioned disks, including disks + and/or parititions larger than 2 TiB (if supported by BIOS.) + * The GPT handover protocol adjusted to the current T13 + committee draft; see doc/gpt.txt. + * HDT: code cleanup, small bugfixes + * The "linux" syslinux installer (syslinux-nomtools) now has a + command-line syntax closer to the extlinux installer. The + mtools, dos and win32 installers will get this new syntax + eventually, but it is not implemented yet. + * chain.c32: support booting GPT partitions by index, GUID, label. + * chain.c32: support booting the Syslinux partition with "fs". + * chain.c32: implement gpt.txt hand-over protocol. + * chain.c32: support for chainloading Grub stage 2. + * PXELINUX: TFTP URL syntax (tftp://) supported even when not + running gPXE/gpxelinux. + * New ls.c32 module to display the contents of the disk from + the command line, and pwd.c32 to display the current + directory. + * rosh.c32 (read only shell) updated and hopefully usable. + * PXELINUX: Support "localboot -1", just like the other + derivatives. + * gfxboot.com removed in favor of gfxboot.c32. + * New MENU HELP statement to display fullscreen help text as a + result of a menu selection. + * memdiskfind utility that can be used with the phram driver + in the Linux kernel to mount a memdisk. + * ifcpu.c32: Adding usage when no parameters are given, + adding PAE support. + * ifcpu.c32, ifcpu64.c32: handle more than one argument per + target. + * isohybrid: C version which does not require Perl. + * New command MENU IMMEDIATE to permit hotkeys to activate + immediately without needing Enter. + * mdiskchk.com supports a --no-sequential (or -n) option to + suppress the classic all-drive-probing heuristic. Useful + on BIOSes who crash/hang when certain drive numbers are + probed. + * ElTorito.Sys DOS driver now scans drive numbers upwards + instead of downwards, in order to avoid a fairly common + bug on some BIOSes where probing drive 0xFF causes a + failure. + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- syslinux-3.86-com32.diff syslinux-3.86-compat.diff syslinux-3.86-gfxboot.diff syslinux-3.86-suse.diff syslinux-3.86.tar.bz2 New: ---- syslinux-4.04-cwd.diff syslinux-4.04-iso9660.diff syslinux-4.04-mboot_bootif.diff syslinux-4.04-noinitrd.diff syslinux-4.04.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ syslinux.spec ++++++ --- /var/tmp/diff_new_pack.su9ocp/_old 2011-04-27 15:15:25.000000000 +0200 +++ /var/tmp/diff_new_pack.su9ocp/_new 2011-04-27 15:15:25.000000000 +0200 @@ -1,7 +1,7 @@ # -# spec file for package syslinux (Version 3.86) +# spec file for package syslinux # -# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. +# 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 @@ -19,22 +19,22 @@ Name: syslinux ExclusiveArch: %ix86 x86_64 -BuildRequires: libpng-devel nasm netpbm python +BuildRequires: libpng-devel nasm netpbm python xz Url: http://syslinux.zytor.com/ License: GPLv2+ Group: System/Boot Requires: mtools AutoReqProv: on Summary: Boot Loader for Linux -Version: 3.86 -Release: 4 +Version: 4.04 +Release: 1 Source: %{name}-%{version}.tar.bz2 Source1: isolinux-config Source2: README.gfxboot -Patch0: %{name}-%{version}-gfxboot.diff -Patch1: %{name}-%{version}-suse.diff -Patch2: %{name}-%{version}-compat.diff -Patch3: %{name}-%{version}-com32.diff +Patch0: %{name}-%{version}-iso9660.diff +Patch1: %{name}-%{version}-cwd.diff +Patch2: %{name}-%{version}-noinitrd.diff +Patch3: %{name}-%{version}-mboot_bootif.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -59,8 +59,6 @@ %build cp %{SOURCE2} . export CFLAGS="$RPM_OPT_FLAGS" -chmod +x core/add_crc -rm -f modules/gfxboot.com make spotless make ++++++ isolinux-config ++++++ --- /var/tmp/diff_new_pack.su9ocp/_old 2011-04-27 15:15:25.000000000 +0200 +++ /var/tmp/diff_new_pack.su9ocp/_new 2011-04-27 15:15:25.000000000 +0200 @@ -26,14 +26,21 @@ sysread F, $file_buf, -s($file); close F; -die "$file: is not isolinux\n" unless (length $file_buf > (8 << 10)) && ($file_buf =~ m#(/boot(/[\x20-\xff]*)\x00*)\x00isolinux.cfg\x00#s); +if((length $file_buf > (8 << 10)) && ($file_buf =~ m#(/boot(/[\x20-\xff]*)\x00*)\x00isolinux.cfg\x00#s)) { + $format = 1; +} +elsif((length $file_buf > (8 << 10)) && ($file_buf =~ m#(/boot(/[\x20-\xff]*)\x00*)\x00/boot/syslinux\x00#s)) { + $format = 2; +} + +die "$file: is not isolinux\n" unless $format; $start = length $`; $base_buf = $1; $old_base = $2; if(defined $opt_base) { - ($base = $opt_base) =~ s#^/*##;; + ($base = $opt_base) =~ s#^/*##; $base = "/boot/$base"; die "$opt_base: file name too long\n" if length($base) > length($base_buf); ++++++ syslinux-4.04-cwd.diff ++++++ diff --git a/com32/gfxboot/gfxboot.c b/com32/gfxboot/gfxboot.c index 9a39e79..35d180a 100644 --- a/com32/gfxboot/gfxboot.c +++ b/com32/gfxboot/gfxboot.c @@ -102,6 +102,8 @@ typedef struct __attribute__ ((packed)) { // 0: GFX_CB_MENU_INIT accepts 32 bit addresses // 1: knows about xmem_start, xmem_end uint16_t reserved_1; // 62: + uint32_t gfxboot_cwd; // 64: if set, points to current gfxboot working directory relative + // to syslinux working directory } gfx_config_t; @@ -181,6 +183,7 @@ int main(int argc, char **argv) { int menu_index; const union syslinux_derivative_info *sdi; + char working_dir[256]; openconsole(&dev_stdcon_r, &dev_stdcon_w); @@ -224,6 +227,10 @@ int main(int argc, char **argv) return 0; } + if(getcwd(working_dir, sizeof working_dir)) { + gfx_config.gfxboot_cwd = (uint32_t) working_dir; + } + if(gfx_init(argv[1])) { printf("Error setting up gfxboot\n"); if(argc > 2) show_message(argv[2]); @@ -806,6 +813,12 @@ void boot(int index) int i, label_len; unsigned ipapp; const struct syslinux_ipappend_strings *ipappend; + char *gfxboot_cwd = (char *) gfx_config.gfxboot_cwd; + + if(gfxboot_cwd) { + chdir(gfxboot_cwd); + gfx_config.gfxboot_cwd = 0; + } for(menu_ptr = menu; menu_ptr; menu_ptr = menu_ptr->next, index--) { if(!index) break; ++++++ syslinux-4.04-iso9660.diff ++++++ diff --git a/core/fs/iso9660/iso9660.c b/core/fs/iso9660/iso9660.c index 3cd3ac4..9bbc299 100644 --- a/core/fs/iso9660/iso9660.c +++ b/core/fs/iso9660/iso9660.c @@ -228,14 +228,25 @@ static int iso_readdir(struct file *file, struct dirent *dirent) /* Load the config file, return 1 if failed, or 0 */ static int iso_load_config(void) { - static const char *search_directories[] = { - "/boot/isolinux", - "/isolinux", - "/boot/syslinux", - "/syslinux", - "/", - NULL - }; + /* + * Put search_directories[] to different section so it + * won't be compressed (and we can patch it later). + */ + __asm__( + ".section .data16\n" + ".s1: .ascii \"/boot\"\n" + ".s2: .string \"/isolinux\"\n" + ".fill 64, 1, 0\n" + ".s3: .ascii \"/boot\"\n" + ".s4: .string \"/syslinux\"\n" + ".s5: .string \"/\"\n" + ".align 4\n" + "search_directories:\n" + ".long .s1, .s2, .s3, .s4, .s5, 0\n" + ".text\n" + ); + extern const char *search_directories[]; + static const char *filenames[] = { "isolinux.cfg", "syslinux.cfg", ++++++ syslinux-4.04-mboot_bootif.diff ++++++ diff --git a/com32/mboot/mboot.c b/com32/mboot/mboot.c index 35450e0..a124a21 100644 --- a/com32/mboot/mboot.c +++ b/com32/mboot/mboot.c @@ -97,9 +97,14 @@ static int get_modules(char **argv, struct module_data **mdp) int arglen; const char module_separator[] = "---"; + char *bootif = 0; for (argp = argv; *argp; argp++) { if (!strcmp(*argp, module_separator)) module_count++; + /* BOOTIF= gets only appended for last group by syslinux, but it may be needed also + for other modules. So let's copy it. Esp. needed for XEN booting, Dom0 kernel needs it */ + if (!strncmp(*argp, "BOOTIF=", 7)) + bootif = *argp; } *mdp = mp = malloc(module_count * sizeof(struct module_data)); @@ -133,11 +138,19 @@ static int get_modules(char **argv, struct module_data **mdp) mp->cmdline = strdup(""); } else { char *p; + if (bootif) { + arglen += strlen(bootif) + 1; + } + mp->cmdline = p = malloc(arglen); for (; *argp && strcmp(*argp, module_separator); argp++) { p = stpcpy(p, *argp); *p++ = ' '; } + if (bootif) { + p = stpcpy(p, bootif); + *p++ = ' '; + } *--p = '\0'; } mp++; ++++++ syslinux-4.04-noinitrd.diff ++++++ diff --git a/com32/gfxboot/gfxboot.c b/com32/gfxboot/gfxboot.c index 3749920..9a39e79 100644 --- a/com32/gfxboot/gfxboot.c +++ b/com32/gfxboot/gfxboot.c @@ -922,11 +922,15 @@ void boot_entry(menu_t *menu_ptr, char *arg) *skip_nonspaces(s) = 0; initrd_arg = s; } + else if(initrd_arg) { + free(s0); + initrd_arg = s0 = strdup(initrd_arg); + } if(initrd_arg) { initrd = initramfs_init(); - while((t = strsep(&s, ","))) { + while((t = strsep(&initrd_arg, ","))) { initrd_buf = load_one(t, &initrd_size); if(!initrd_buf) { ++++++ syslinux-3.86.tar.bz2 -> syslinux-4.04.tar.bz2 ++++++ ++++ 161732 lines of diff (skipped) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de