Hello community,

here is the log from the commit of package gfxboot for openSUSE:Factory
checked in at Tue Apr 19 09:18:27 CEST 2011.



--------
--- gfxboot/gfxboot.changes     2011-02-24 14:02:53.000000000 +0100
+++ /mounts/work_src_done/STABLE/gfxboot/gfxboot.changes        2011-04-18 
15:46:20.000000000 +0200
@@ -1,0 +2,14 @@
+Mon Apr 18 15:45:59 CEST 2011 - [email protected]
+
+- restore compat with syslinux 3
+- fix wrong mem access
+- pass back working dir as absolute path
+- pass cwd via sysconfig
+
+-------------------------------------------------------------------
+Fri Apr  8 10:52:32 CEST 2011 - [email protected]
+
+- set version to oS 11.5
+- rewrite chdir to work without bootloader chdir support
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


Old:
----
  gfxboot-4.3.8.tar.bz2

New:
----
  gfxboot-4.4.1.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gfxboot.spec ++++++
--- /var/tmp/diff_new_pack.Gmn3rk/_old  2011-04-19 09:17:11.000000000 +0200
+++ /var/tmp/diff_new_pack.Gmn3rk/_new  2011-04-19 09:17:11.000000000 +0200
@@ -27,10 +27,10 @@
 Requires:       coreutils cpio mktemp perl master-boot-code dosfstools mtools 
perl-HTML-Parser
 AutoReqProv:    on
 Summary:        Graphical Boot Logo for GRUB, LILO and SYSLINUX
-Version:        4.3.8
+Version:        4.4.1
 Release:        1
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-Source:         gfxboot-4.3.8.tar.bz2
+Source:         gfxboot-4.4.1.tar.bz2
 Source1:        openSUSE.tar.bz2
 Source2:        SLED.tar.bz2
 Source3:        SLES.tar.bz2

++++++ SLED.tar.bz2 ++++++

++++++ SLES.tar.bz2 ++++++

++++++ examples.tar.bz2 ++++++

++++++ gfxboot-4.3.8.tar.bz2 -> gfxboot-4.4.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gfxboot-4.3.8/VERSION new/gfxboot-4.4.1/VERSION
--- old/gfxboot-4.3.8/VERSION   2011-02-24 14:01:46.000000000 +0100
+++ new/gfxboot-4.4.1/VERSION   2011-04-18 15:45:52.000000000 +0200
@@ -1 +1 @@
-4.3.8
+4.4.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gfxboot-4.3.8/bincode.asm 
new/gfxboot-4.4.1/bincode.asm
--- old/gfxboot-4.3.8/bincode.asm       2010-10-04 14:50:41.000000000 +0200
+++ new/gfxboot-4.4.1/bincode.asm       2011-04-18 15:40:32.000000000 +0200
@@ -94,7 +94,10 @@
 sc.xmem_end            equ 56
 sc.features            equ 60
 sc.reserved_1          equ 62
-sc.size                        equ 64
+sc.cwd                 equ 64
+sc.size                        equ 68
+sc.size_64             equ 64          ; supports xmem_* & feature flags
+sc.size_68             equ 68          ; supports cwd
 
 
 ; enum_type_t
@@ -375,6 +378,13 @@
 idle.invalid           db 0            ; idle loop has been left
 
                        align 4, db 0
+fname.tmp              dd 0            ; tmp buffer for fname processing
+fname.abs              dd 0            ; tmp buffer for abs fname processing
+fname.cwd              dd 0            ; current working dir
+fname.sys_cwd          dd 0            ; real cwd (bootloader's view)
+fname.size             equ 256         ; buffer size of fname.*
+
+                       align 4, db 0
 row_text               times max_text_rows dd 0
 ind_text               times max_text_rows dw 0
 
@@ -723,6 +733,15 @@
                 popf
 %endmacro
 
+
+%macro         is_dotdot 1
+               cmp dword [%1],'/../'
+               jz %%idd_90
+               cmp dword [%1],'/..'
+%%idd_90:
+%endmacro
+
+
 ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 ;
 ; Interface functions.
@@ -830,7 +849,7 @@
                pop dword [malloc.area+4]
 
                mov ebx,[boot.sysconfig]
-               cmp byte [es:ebx+sc.sysconfig_size],sc.size
+               cmp byte [es:ebx+sc.sysconfig_size],sc.size_64
                jb gfx_init_28
                ; pass back feature flags
                mov word [es:ebx+sc.features],3
@@ -1025,12 +1044,42 @@
                jc gfx_init_90
                mov [vbe_mode_list],eax
 
+               mov eax,fname.size * 4
+               call calloc
+               cmp eax,1
+               jc gfx_init_90
+               mov [fname.tmp],eax
+               add eax,fname.size
+               mov [fname.abs],eax
+               add eax,fname.size
+               mov [fname.cwd],eax
+               add eax,fname.size
+               mov [fname.sys_cwd],eax
+
                ; fill list
                call get_vbe_modes
 
                ; get console font
                call cfont_init
 
+               ; get cwd
+               call get_sys_cwd
+               call chdir
+               ; copy canonical path back to sys_cwd
+               mov esi,[fname.cwd]
+               mov edi,[fname.sys_cwd]
+               mov ecx,fname.size
+               es rep movsb
+
+               ; store pointer to fname.cwd in config area
+
+               mov eax,[boot.sysconfig]
+               cmp byte [es:eax+sc.sysconfig_size],sc.size_68
+               jb gfx_init_585
+               mov edx,[fname.cwd]
+               mov [es:eax+sc.cwd],edx
+gfx_init_585:
+
                ; ok, we've done it, now continue the setup
 
                mov eax,[boot.sysconfig]
@@ -9386,17 +9435,8 @@
                bits 32
 
 prim_getcwd:
-               mov al,3
-               call gfx_cb                     ; cwd (lin)
-               or al,al
-               jnz prim_getcwd_70
-               mov eax,edx
+               mov eax,[fname.cwd]
                mov dl,t_string
-               jmp prim_getcwd_90
-prim_getcwd_70:
-               mov dl,t_none
-               xor eax,eax
-prim_getcwd_90:
                jmp pr_getobj
 
 
@@ -9418,41 +9458,9 @@
                mov dl,t_string
                call get_1arg
                jc prim_chdir_90
-               push eax
-               call get_length
-               xchg eax,ecx
-               pop eax
-               jc prim_chdir_60
 
-               or ecx,ecx
-               jz prim_chdir_60
-               cmp ecx,64
-               jae prim_chdir_60
-
-               push ecx
-
-               push eax
-               mov al,0
-               call gfx_cb                     ; get file name buffer address 
(edx)
-               pop esi
-
-               pop ecx
-
-               or al,al
-               jnz prim_chdir_60
-
-               mov edi,edx
-
-               es rep movsb
-               mov al,0
-               stosb
-
-               mov al,4
-               call gfx_cb
-               or al,al
-
-               mov bp,pserr_invalid_function
-               jnz prim_chdir_70
+               call chdir
+               jc prim_chdir_60
 
                dec dword [pstack.ptr]
                jmp prim_chdir_90
@@ -15203,6 +15211,366 @@
 
 
 ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+;; systempath - convert path to path relative to system working directory
+;
+; group: system
+;
+; ( str1 -- str2 )
+;
+; str1: path
+; str2: system path
+;
+; Note: str2 points to a static buffer.
+;
+; example
+;  "foo/bar" systempath
+;
+
+               bits 32
+
+prim_systempath:
+               mov dl,t_string
+               call get_1arg
+               jc prim_systempath_90
+               mov esi,eax
+               call realpath
+               call systempath
+               mov eax,esi
+               xor ecx,ecx
+               mov dl,t_string
+               call set_pstack_tos
+prim_systempath_90:
+               ret
+
+
+; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+;; realpath - convert path to canonical absolute path
+;
+; group: system
+;
+; ( str1 -- str2 )
+;
+; str1: path
+; str2: real path
+;
+; Note: str2 points to a static buffer.
+;
+; example
+;  "foo/bar" realpath
+;
+
+               bits 32
+
+prim_realpath:
+               mov dl,t_string
+               call get_1arg
+               jc prim_realpath_90
+               mov esi,eax
+               call realpath
+               mov eax,esi
+               xor ecx,ecx
+               mov dl,t_string
+               call set_pstack_tos
+prim_realpath_90:
+               ret
+
+
+; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+;
+; Convert absolute path to system path (relative to system's working 
directory).
+;
+;  esi         absolute path
+;
+; return:
+;  esi         system path
+;
+
+               bits 32
+
+systempath:
+               mov edi,[fname.sys_cwd]
+               xor edx,edx
+               xor ecx,ecx
+systempath_10:
+               mov al,[es:edi + edx]
+               mov ah,[es:esi + edx]
+               cmp al,ah
+               jnz systempath_20
+               cmp al,0
+               jz systempath_80
+               inc edx
+               cmp al,'/'
+               jnz systempath_10
+               mov ecx,edx
+               jmp systempath_10
+systempath_20:
+               ; ecx: points past last common path element
+
+               cmp al,0
+               jnz systempath_22
+               ; sys_cwd subset of path
+               add edi,edx
+               lea esi,[esi+edx+1]
+               jmp systempath_28
+systempath_22:
+               cmp ah,0
+               jnz systempath_24
+               ; path subset of sys_cwd
+               add esi,edx
+               lea edi,[edi+edx+1]
+               jmp systempath_28
+systempath_24:
+               ; path & sys_cwd differ
+               add edi,ecx
+               add esi,ecx
+
+systempath_28:
+               mov ebx,[fname.tmp]
+               lea ebp,[ebx + fname.size - 1]
+
+systempath_30:
+               mov al,[es:edi]
+               inc edi
+               or al,al
+               jz systempath_50
+               mov dword [es:ebx],'../'
+               add ebx,3
+systempath_40:
+               cmp al,'/'
+               jz systempath_30
+               mov al,[es:edi]
+               inc edi
+               or al,al
+               jnz systempath_40
+systempath_50:
+               mov edi,ebx
+systempath_60:
+               es lodsb
+               stosb
+               or al,al
+               jnz systempath_60
+               mov esi,[fname.tmp]
+               ; remove trailing '/', if any
+               dec edi
+               dec edi
+               cmp edi,esi
+               jbe systempath_90
+               cmp byte [es:edi],'/'
+               jnz systempath_90
+               mov byte [es:edi],0
+               jmp systempath_90
+
+systempath_80:
+               mov esi,[fname.tmp]
+               mov byte [es:esi],0
+
+systempath_90:
+               ; esi: path relative to sys_cwd
+
+               ret
+
+
+; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+;
+; Read current working dir and store result in [fname.sys_cwd].
+;
+; return:
+;  eax         current working dir
+;
+               bits 32
+
+get_sys_cwd:
+               mov ebx,[boot.sysconfig]
+               cmp byte [es:ebx+sc.sysconfig_size],sc.size_68
+               jb get_sys_cwd_10
+               ; modern way: cwd was passed in info struct
+
+               xor eax,eax
+               mov edx,[es:ebx+sc.cwd]
+               or edx,edx
+               jnz get_sys_cwd_30
+get_sys_cwd_10:
+               ; classical: ask comboot
+
+               mov al,3
+               call gfx_cb                     ; cwd (lin)
+get_sys_cwd_30:
+               mov ebx,[fname.sys_cwd]
+               or al,al
+               jnz get_sys_cwd_80
+               mov esi,edx
+               mov edi,ebx
+               mov ecx,fname.size - 1
+get_sys_cwd_50:
+               es lodsb
+               stosb
+               or al,al
+               jz get_sys_cwd_90
+               loop get_sys_cwd_50
+get_sys_cwd_80:
+               mov byte [es:ebx],0
+get_sys_cwd_90:
+               mov eax,ebx
+               ret
+
+
+; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+;
+; Convert any path to real absolute path.
+;
+; Path should not end with '/'. Also, avoid '//' and such.
+;
+;  esi         path
+;
+; return:
+;  esi         real path, stored in fname.abs
+;
+
+               bits 32
+
+realpath:
+               mov esi,eax
+
+               cmp byte [es:esi],'/'
+               jz realpath_80
+
+               cmp byte [es:esi],0
+               jnz realpath_10
+
+               mov esi,[fname.cwd]
+               jmp realpath_80
+
+realpath_10:
+               ; note: maps / + .. to / because: / + .. -> //.. -> /
+
+               mov ebx,esi
+               mov esi,[fname.cwd]
+               mov edi,[fname.tmp]
+               mov ebp,edi
+realpath_12:
+               es lodsb
+               stosb
+               or al,al
+               jnz realpath_12
+               dec edi
+               cmp edi,ebp
+               jz realpath_20
+               mov al,'/'
+               stosb
+realpath_20:           
+               mov esi,ebx
+               add ebp,fname.size - 1
+realpath_25:
+               cmp edi,ebp
+               jae realpath_28
+               es lodsb
+               stosb
+               or al,al
+               jz realpath_30
+               jmp realpath_25
+realpath_28:
+               mov al,0
+               stosb
+               dec edi
+realpath_30:
+               mov esi,[fname.tmp]
+               xor edi,edi
+realpath_33:
+               cmp byte [es:esi],0
+               jz realpath_40
+               is_dotdot es:esi
+               jz realpath_35
+               cmp byte [es:esi],'/'
+               jnz realpath_34
+               mov edi,esi
+realpath_34:
+               inc esi
+               jmp realpath_33
+realpath_35:
+               or edi,edi
+               jz realpath_34
+               add esi,3
+realpath_36:
+               es lodsb
+               stosb
+               or al,al
+               jnz realpath_36
+               jmp realpath_30
+realpath_40:
+               mov edi,[fname.tmp]
+               mov esi,edi
+               cmp byte [es:edi],0
+               jnz realpath_80
+               mov ax,'/'
+               stosw
+realpath_80:
+               ; convert to canonical version
+
+               ; esi must be either absolute path or empty
+               ; '//'s and trailing '/'s are removed
+
+               mov edi,[fname.abs]
+               lea ebx,[edi + fname.size - 1]
+               mov al,'/'
+               stosb
+realpath_82:
+               cmp edi,ebx
+               jae realpath_86
+               mov ah,al
+               es lodsb
+               or al,al
+               jz realpath_86
+               cmp al,'/'
+               jnz realpath_84
+               cmp al,ah
+               jnz realpath_84
+               dec edi
+realpath_84:           
+               stosb
+               jmp realpath_82
+realpath_86:
+               mov esi,[fname.abs]
+
+               ; trailing '/'s
+realpath_88:
+               mov byte [es:edi],0
+               dec edi
+               cmp edi,esi
+               jbe realpath_90
+               cmp byte [es:edi],'/'
+               jz realpath_88
+
+realpath_90:
+               ; esi points to real path in fname.abs
+
+               ret
+
+
+; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+;
+; Set working directory.
+;
+;  eax         dir name
+;
+; return:
+;  fname.cwd           working dir (absolute path)
+;
+
+               bits 32
+
+chdir:
+               mov esi,eax
+               call realpath
+               mov edi,[fname.cwd]
+chdir_10:
+               es lodsb
+               stosb
+               or al,al
+               jnz chdir_10
+               ret
+
+
+; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 ;
 ; Find (and read) file from file system.
 ;
@@ -15216,6 +15584,15 @@
                bits 32
 
 find_file_ext:
+               mov esi,eax
+               call realpath
+               mov eax,[boot.sysconfig]
+               cmp byte [es:eax+sc.sysconfig_size],sc.size_68
+               jb find_file_ext_05
+               call systempath
+find_file_ext_05:
+               mov eax,esi
+
                mov dl,t_string
                push eax
                call get_length
@@ -15331,6 +15708,15 @@
                bits 32
 
 file_size_ext:
+               mov esi,eax
+               call realpath
+               mov eax,[boot.sysconfig]
+               cmp byte [es:eax+sc.sysconfig_size],sc.size_68
+               jb file_size_ext_20
+               call systempath
+file_size_ext_20:
+               mov eax,esi
+
                mov dl,t_string
                push eax
                call get_length
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gfxboot-4.3.8/changelog new/gfxboot-4.4.1/changelog
--- old/gfxboot-4.3.8/changelog 2011-02-24 14:01:48.000000000 +0100
+++ new/gfxboot-4.4.1/changelog 2011-04-18 15:45:53.000000000 +0200
@@ -1,4 +1,14 @@
-2011-02-24:    HEAD
+2011-04-18:    HEAD
+       - restore compat with syslinux 3
+       - fix wrong mem access
+       - pass back working dir as absolute path
+       - pass cwd via sysconfig
+
+2011-04-07:    4.4.0
+       - set version to oS 11.5
+       - rewrite chdir to work without bootloader chdir support
+
+2011-02-24:    4.3.8
        - default to hd install with isohybrid boot from hd
 
 2011-02-21:    4.3.7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gfxboot-4.3.8/mk_vocabulary 
new/gfxboot-4.4.1/mk_vocabulary
--- old/gfxboot-4.3.8/mk_vocabulary     2010-10-04 14:50:41.000000000 +0200
+++ new/gfxboot-4.4.1/mk_vocabulary     2011-04-07 16:01:25.000000000 +0200
@@ -77,6 +77,8 @@
 
   getkey serial.init serial.putc serial.setconfig serial.getbaud
 
+  realpath systempath
+
   xxx test1 test2 test3 test4 test5 test6
 
 );

++++++ openSUSE.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/themes/openSUSE/config new/themes/openSUSE/config
--- old/themes/openSUSE/config  2010-10-04 14:50:41.000000000 +0200
+++ new/themes/openSUSE/config  2011-04-07 16:19:04.000000000 +0200
@@ -1,2 +1,2 @@
-product=openSUSE 11.4
+product=openSUSE 11.5
 based_on=

++++++ upstream.tar.bz2 ++++++


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to