Hello community, here is the log from the commit of package syslinux for openSUSE:Factory checked in at Mon Aug 10 16:27:04 CEST 2009. -------- --- syslinux/syslinux.changes 2009-08-07 14:25:54.000000000 +0200 +++ syslinux/syslinux.changes 2009-08-04 10:50:07.000000000 +0200 @@ -2,5 +1,0 @@ -Fri Aug 7 13:47:54 CEST 2009 - snwint@suse.de - -- replaced gfxboot.com with an enhanced version - -------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- syslinux-3.82-s_herbst.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ syslinux.spec ++++++ --- /var/tmp/diff_new_pack.c65M7e/_old 2009-08-10 16:26:52.000000000 +0200 +++ /var/tmp/diff_new_pack.c65M7e/_new 2009-08-10 16:26:52.000000000 +0200 @@ -20,6 +20,9 @@ Name: syslinux ExclusiveArch: %ix86 x86_64 BuildRequires: libpng-devel nasm netpbm python +%ifarch x86_64 +BuildRequires: gcc-32bit glibc-devel-32bit +%endif Url: http://syslinux.zytor.com/ License: GPL v2 or later Group: System/Boot @@ -27,14 +30,15 @@ AutoReqProv: on Summary: Boot Loader for Linux Version: 3.82 -Release: 3 +Release: 4 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}-isohybrid.diff +Patch0: %{name}-%{version}-s_herbst.diff +Patch1: %{name}-%{version}-gfxboot.diff +Patch2: %{name}-%{version}-suse.diff +Patch3: %{name}-%{version}-compat.diff +Patch4: %{name}-%{version}-isohybrid.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -55,6 +59,7 @@ %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 %build cp %{SOURCE2} . ++++++ syslinux-3.82-gfxboot.diff ++++++ ++++ 2932 lines (skipped) ++++ between syslinux/syslinux-3.82-gfxboot.diff ++++ and syslinux/syslinux-3.82-gfxboot.diff ++++++ syslinux-3.82-s_herbst.diff ++++++ diff --git a/modules/gfxboot.asm b/modules/gfxboot.asm index c9fdd1b..5c7b118 100644 --- a/modules/gfxboot.asm +++ b/modules/gfxboot.asm @@ -144,7 +144,15 @@ got_config_file: push cs pop es call parse_config + cmp word [label_cnt],0 + ja labels_defined + mov bx,msg_no_labels_defined + mov ax,2 + int 22h + ret + +labels_defined: ; get_gfx_file mov ax,cs add ax,2000h @@ -417,6 +425,14 @@ gfx_read_file: mov si,pspCmdArg+1 int 22h jnc gfx_file_read + + mov ax,2 + mov bx,pspCmdArg+1 + int 22h + + mov ax,2 + mov bx,msg_not_found + int 22h stc ret @@ -641,8 +657,7 @@ gfx_input: shl edi,4 add edi, command_line ; buffer (0: no buffer) mov ecx, max_cmd_len ; buffer size -; xor eax,eax ; timeout value (0: no timeout) - mov eax,100 ; timeout value (0: no timeout) + mov eax,[menu_timeout] ; timeout value (0: no timeout) call far [gfx_bc_input] ret @@ -699,33 +714,39 @@ parse_config: mov bx, msg_crlf int 22h %endif + mov bx,keywords + mov cx,[keyword_cnt] +.keywords_loop: + push cx push si push di - xor ecx,ecx + xor cx,cx mov si,configbuf - mov di,label_keyword+1 - mov cl, byte [label_keyword] + mov di,[bx] + mov cl,byte [di] + inc di call memcmp pop di pop si - jz .do_label + jnz .not_found + pop cx + call [bx+2] ; call keyword handler + jmp .read - push si - push di - xor ecx,ecx - mov si,configbuf - mov di,default_keyword+1 - mov cl, byte [default_keyword] - call memcmp - pop di - pop si - jz .do_default +.not_found: + add bx,4 + pop cx + loop .keywords_loop .nextline: call skipline jmp .read -.do_label: +.eof: +.noparm: + ret + +do_label: call skipspace jz .eof jc .noparm @@ -742,10 +763,11 @@ parse_config: pop di pop es inc word [label_cnt] +.eof: +.noparm: + ret - jmp .read - -.do_default: +do_default: call skipspace jz .eof jc .noparm @@ -759,8 +781,42 @@ parse_config: pop di pop es - jmp .read +.eof: +.noparm: + ret +do_timeout: + call skipspace + jz .eof + jc .noparm + call ungetc + push es + push di + push cs + pop es + mov di,NumBuf +.getnum: + cmp di,NumBufEnd + jae .loaded + call getc + stosb + cmp al,'-' + jnb .getnum + call ungetc + dec di +.loaded: + mov byte [di],0 + pop di + pop es + push cs + pop ds + mov si,NumBuf + push ebx + call parseint + jc .err + mov [menu_timeout],ebx +.err: + pop ebx .eof: .noparm: ret @@ -876,23 +932,63 @@ memcmp: pop si ret - section .data -label_keyword db 6,'label',0 -default_keyword db 7,'default',0 +parseint: + push eax + push ecx + xor eax,eax + xor ebx,ebx + xor ecx,ecx + mov cl,10 +.loop: + lodsb + and al,al + jz .done + cmp al,'0' + jb .err + cmp al,'9' + ja .err + sub al,'0' + imul ebx,ecx + add ebx,eax + jmp short .loop +.done: + clc +.ret: + pop ecx + pop eax + ret +.err: + stc + jmp short .ret + section .data msg_progname db 'gfxboot: ',0 msg_config_file db 'Configuration file',0 msg_missing db 'missing',0 msg_usage db 'Usage: gfxboot.com <bootlogo>',0dh,0ah,0 msg_memory db 'Could not detect available memory size',0dh,0ah,0 msg_bootlogo_toobig db 'bootlogo file too big',0dh,0ah,0 -msg_pxelinux db 'pxelinux is not supported',0dh,0ah,0 msg_unknown_file_size db 'unknown file size',0dh,0ah,0 +msg_not_found db ' not found',0dh,0ah,0 +msg_no_labels_defined db 'No labels defined in config file',0dh,0ah,0 msg_space db ' ',0 msg_crlf db 0dh,0ah,0 gfx_slash db '/', 0 db0 db 0 +menu_timeout dd 100 + +keyword_text_label db 6,'label',0 +keyword_text_default db 7,'default',0 +keyword_text_timeout db 7,'timeout',0 +keywords equ $ + dw keyword_text_label + dw do_label + dw keyword_text_default + dw do_default + dw keyword_text_timeout + dw do_timeout +keyword_cnt dw ($-keywords)/4 ; menu entry descriptor menu_entries equ 0 @@ -942,6 +1038,9 @@ dentry_buf_len equ $ - dentry_buf max_cmd_len equ 2047 command_line resb max_cmd_len+2 +NumBuf resb 15 +NumBufEnd resb 1 + alignb 4 derivative_id resb 1 drivenumber resb 1 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org