wok rev 25485

BootProg/fat32: active fat support
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Nov 01 16:13:12 2022 +0000 (2022-11-01)
parents 4d54d3979862
children f7324cde07d7
files BootProg/receipt BootProg/stuff/boot32.asm BootProg/stuff/bootprog.sh cups-filters-dev/receipt cups-filters/receipt gnustep-back/receipt gnustep-make/receipt gxine/receipt opencore-amr-dev/receipt opencore-amr/receipt ortp-dev/receipt ortp/receipt secure-delete/receipt xine-ui/receipt
line diff
     1.1 --- a/BootProg/receipt	Mon Oct 17 07:58:57 2022 +0100
     1.2 +++ b/BootProg/receipt	Tue Nov 01 16:13:12 2022 +0000
     1.3 @@ -14,11 +14,16 @@
     1.4  compile_rules()
     1.5  {
     1.6  	mkdir -p $src && cd $src
     1.7 -	sed '1,/^exit/!d' $stuff/bootprog.sh > bootprog
     1.8 -	for i in boot16 boot32 bootex ; do
     1.9 +	bs="boot16 bootex boot32"
    1.10 +	for i in $bs ; do
    1.11  		cp $stuff/$i.asm .
    1.12 -		nasm $i.asm -f bin -o $i.bin -l $i.lst && cat $i.bin
    1.13 -	done | xz -z --format=lzma --lzma1=lc=0,pb=0,nice=102,dict=4k >> bootprog
    1.14 +		nasm $i.asm -f bin -o $i.bin -l $i.lst || return 1
    1.15 +	done
    1.16 +	sed '1,2!d' $stuff/bootprog.sh > bootprog
    1.17 +	{
    1.18 +		sed "1,2d;s|FAT32SZ|$(stat -c %s boot32.bin)|" $stuff/bootprog.sh
    1.19 +		cat ${bs// /.bin }.bin
    1.20 +	} | xz -z --format=lzma --lzma1=lc=0,pb=0,nice=33,dict=4k >> bootprog
    1.21  	chmod +x bootprog
    1.22  }
    1.23  
     2.1 --- a/BootProg/stuff/boot32.asm	Mon Oct 17 07:58:57 2022 +0100
     2.2 +++ b/BootProg/stuff/boot32.asm	Tue Nov 01 16:13:12 2022 +0000
     2.3 @@ -79,16 +79,18 @@
     2.4  
     2.5  %define bx(label)       bx+label-boot
     2.6  %define si(label)       si+label-boot
     2.7 +ExtraBootSector         equ     1
     2.8  ClusterMask             equ     1               ; +9 bytes
     2.9  NullEntryCheck          equ     1               ; +5 bytes
    2.10 +CheckAttrib             equ     1               ; +6 bytes
    2.11 +NonMirroredFATs         equ     1               ; +18 bytes
    2.12  ReadRetry               equ     1               ; +7 bytes
    2.13  LBA48bits               equ     1               ; +15 bytes
    2.14 -CHSsupport              equ     1               ; +27 bytes
    2.15 -CHSupTo8GB              equ     1               ; +11 bytes
    2.16 -CHSupTo32MB             equ     1               ; +7 bytes
    2.17 -SectorOf512Bytes        equ     1               ; -5 bytes
    2.18 +CHSsupport              equ     1               ; +27 bytes max 16MB, 32MB or 8GB
    2.19 +CHSupTo32MB             equ     1               ; +6 bytes
    2.20 +CHSupTo8GB              equ     1               ; +14 bytes
    2.21 +SectorOf512Bytes        equ     0               ; -5 bytes
    2.22  Always2FATs             equ     0               ; -4 bytes
    2.23 -CheckAttrib             equ     0               ; +6 bytes
    2.24  
    2.25  [BITS 16]
    2.26  
    2.27 @@ -173,8 +175,10 @@
    2.28  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    2.29  
    2.30          mov     es, ax          ; cs:0 = ds:0 = ss:0 -> top - 512 - StackSize
    2.31 +%if ExtraBootSector == 0
    2.32          mov     ss, ax
    2.33          mov     sp, 512+StackSize ; bytes 0-511 are reserved for the boot code
    2.34 +%endif
    2.35  
    2.36  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    2.37  ;; Copy ourselves to top of memory ;;
    2.38 @@ -192,13 +196,25 @@
    2.39  ;;;;;;;;;;;;;;;;;;;;;;
    2.40  
    2.41          push    byte main
    2.42 +        push    es
    2.43 +        pop     ds
    2.44          retf
    2.45  
    2.46  main:
    2.47 -        push    cs
    2.48 -        pop     ds
    2.49 -
    2.50          xor     ebx, ebx
    2.51 +%if ExtraBootSector != 0
    2.52 +        add     al, 32
    2.53 +        mov     es, ax
    2.54 +        mov     eax, [bx(bpbHiddenSectors)]
    2.55 +        inc     eax
    2.56 + %if LBA48bits != 0
    2.57 +        mov     [bx(HiLBA)], bx
    2.58 + %endif
    2.59 +        call    ReadSectorBoot
    2.60 +        push    ds
    2.61 +        pop     ss
    2.62 +        mov     sp, 512+StackSize ; bytes 0-511 are reserved for the boot code
    2.63 +%endif
    2.64  
    2.65  %if ClusterMask != 0
    2.66          and     byte [bx(bsRootDirectoryClusterNo+3)], 0Fh ; mask cluster value
    2.67 @@ -305,7 +321,12 @@
    2.68          mov     ss, bp
    2.69          xor     sp, sp
    2.70          push    bp                      ; cs, ds and es
    2.71 +%if ExtraBootSector != 0
    2.72 +        jmp     Run
    2.73 +%macro BootFileName 0
    2.74 +%else
    2.75          jmp     short Run
    2.76 +%endif
    2.77  
    2.78  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    2.79  ;; Relocate, setup and run a .EXE program     ;;
    2.80 @@ -356,6 +377,9 @@
    2.81  ;; All done, transfer control to the program now ;;
    2.82  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    2.83          retf
    2.84 +%if ExtraBootSector != 0
    2.85 +%endm
    2.86 +%endif
    2.87  
    2.88  ;;;;;;;;;;;;;;;;;;;;;;;;;;
    2.89  ;; Error Messaging Code ;;
    2.90 @@ -413,8 +437,19 @@
    2.91          div     esi                             ; eax=FAT sector #, edx=entry # in sector
    2.92  
    2.93          imul    si, dx, byte 4                  ; si=entry # in sector, clear C
    2.94 -%if LBA48bits != 0
    2.95 +%if NonMirroredFATs != 0
    2.96 +        cwde
    2.97 +        or      dl, byte [bx(bsExtendedFlags)]
    2.98 +        jns     MirroredFATs                    ; Non-mirrored FATs ?
    2.99 +        and     dl, 0Fh
   2.100 +        imul    edx, dword [bx(bsSectorsPerFAT32)] ; we need to read the active one
   2.101 +        add     eax, edx
   2.102 +MirroredFATs:
   2.103 +        cwde
   2.104 +%else
   2.105 + %if LBA48bits != 0
   2.106          xor     dx, dx
   2.107 + %endif
   2.108  %endif
   2.109          call    ReadSectorLBAfromFAT            ; read 1 FAT32 sector
   2.110  
   2.111 @@ -464,6 +499,7 @@
   2.112  %if LBA48bits != 0
   2.113          adc     word [bx(HiLBA)], bx
   2.114  %endif
   2.115 +ReadSectorBoot:
   2.116          mov     dx, [bx(DriveNumber)]   ; restore BIOS boot drive number
   2.117          pusha
   2.118  
   2.119 @@ -572,3 +608,10 @@
   2.120  ;;;;;;;;;;;;;;;;;;;;;;;;;;
   2.121  
   2.122                  dw      0AA55h          ; BIOS checks for this ID
   2.123 +
   2.124 +%if ExtraBootSector != 0
   2.125 +                dd      61415252h       ; "RRaA"
   2.126 +                BootFileName
   2.127 +                times (996-($-$$)) db 0
   2.128 +;                dd      41617272h       ; "rrAa"
   2.129 +%endif
     3.1 --- a/BootProg/stuff/bootprog.sh	Mon Oct 17 07:58:57 2022 +0100
     3.2 +++ b/BootProg/stuff/bootprog.sh	Tue Nov 01 16:13:12 2022 +0000
     3.3 @@ -1,33 +1,33 @@
     3.4  #!/bin/sh
     3.5 -
     3.6 -set -- "$1" "${2:-startup.bin}"
     3.7 +p=/tmp/bp$$;sed '1,2d' $0|unlzma>$p;sh $p $0 "$@";s=$?;rm $p;exit $s
     3.8 +set -- "$2" "${3:-startup.bin}" $1
     3.9  [ ! -e "$1" ] && cat<<S && exit 2
    3.10 -Usage: [FS=<FAT12|FAT16|FAT32|EXFAT>] $0 device [file]
    3.11 -Example: $0 /dev/fd0 $2
    3.12 +Usage: [FS=<FAT12|FAT16|FAT32|EXFAT>] $3 device [file]
    3.13 +Example: $3 /dev/fd0 $1
    3.14  S
    3.15  r="dd if=$1 count"
    3.16  w="dd of=$1 bs=1 conv=notrunc seek"
    3.17 -while read c o b f
    3.18 +while read c o b s f
    3.19  do	[ "${FS:-$($r=5 bs=1 skip=$c)}" = "$f" ] || continue
    3.20  	echo "Install $f bootsector on $1."
    3.21 -	for a in "$o skip=$((o+b)) count=$((512-o))" "0 skip=$b count=11"
    3.22 -	do sed '1,/^exit/d' $0 | unlzma | $w=$a; done
    3.23 +	for a in "$o skip=$((o+b)) count=$((s-o))" "0 skip=$b count=11"
    3.24 +	do sed '1,/^exit/d' $0 | $w=$a; done
    3.25  	echo -n $f | $w=$c
    3.26  	echo "Set boot file $2" && echo -n "$2" | case "$f" in
    3.27  	E*)	sed 's| |.|;s| ||g' | cat - /dev/zero;;
    3.28  	*)	tr a-z A-Z | sed 's|\.|       |;s|^\(.\{8\}\) *|\1|;s|$|   |'
    3.29  	esac | $w=499 count=11
    3.30  	case "$f" in
    3.31 -	*32)	$w=1536 if=$1 count=512;;
    3.32 +	*32)	$w=$(($(od -An -j50 -N2 -d $1)<<9)) if=$1 count=$s;;
    3.33  	E*)	$r=11 bs=1b | od -vAn -tu1 -w1 - | LANG=C awk 'BEGIN { a=0;i=-1;m=0xFFFFFFFE }
    3.34  { if (++i!=106 && i!=107 && i!=112) a=or(and(lshift(a,31),m),and(rshift(a,1),m/2))+$1 }
    3.35  END { b=a/256;c=b/256; for (;i>0;i-=44) printf "%c%c%c%c",a%256,b%256,c%256,(c/256)%256 }' | $w=5632
    3.36  	esac
    3.37  	exit 0
    3.38  done<<S 2>/dev/null
    3.39 -54	59	0	FAT12
    3.40 -54	59	0	FAT16
    3.41 -82	87	512	FAT32
    3.42 -3	113	1024	EXFAT
    3.43 +54	59	0	512	FAT12
    3.44 +54	59	0	512	FAT16
    3.45 +3	113	512	512	EXFAT
    3.46 +82	87	1024	FAT32SZ	FAT32
    3.47  S
    3.48  exit 1
     4.1 --- a/cups-filters-dev/receipt	Mon Oct 17 07:58:57 2022 +0100
     4.2 +++ b/cups-filters-dev/receipt	Tue Nov 01 16:13:12 2022 +0000
     4.3 @@ -7,7 +7,7 @@
     4.4  MAINTAINER="mojo@slitaz.org"
     4.5  LICENSE="GPL"
     4.6  WANTED="cups-filters"
     4.7 -WEB_SITE="http://www.linuxfoundation.org/collaborate/workgroups/openprinting"
     4.8 +WEB_SITE="https://wiki.linuxfoundation.org/openprinting/cups-filters"
     4.9  
    4.10  DEPENDS="cups-filters pkg-config"
    4.11  
     5.1 --- a/cups-filters/receipt	Mon Oct 17 07:58:57 2022 +0100
     5.2 +++ b/cups-filters/receipt	Tue Nov 01 16:13:12 2022 +0000
     5.3 @@ -6,7 +6,7 @@
     5.4  SHORT_DESC="OpenPrinting CUPS Filters"
     5.5  MAINTAINER="mojo@slitaz.org"
     5.6  LICENSE="GPL"
     5.7 -WEB_SITE="http://www.linuxfoundation.org/collaborate/workgroups/openprinting"
     5.8 +WEB_SITE="https://wiki.linuxfoundation.org/openprinting/cups-filters"
     5.9  
    5.10  TARBALL="$PACKAGE-$VERSION.tar.xz"
    5.11  WGET_URL="https://www.openprinting.org/download/cups-filters/$TARBALL"
     6.1 --- a/gnustep-back/receipt	Mon Oct 17 07:58:57 2022 +0100
     6.2 +++ b/gnustep-back/receipt	Tue Nov 01 16:13:12 2022 +0000
     6.3 @@ -9,7 +9,7 @@
     6.4  WEB_SITE="http://www.gnustep.org/"
     6.5  
     6.6  TARBALL="$PACKAGE-$VERSION.tar.gz"
     6.7 -WGET_URL="http://ftp.gnustep.org/pub/gnustep/core/$TARBALL"
     6.8 +WGET_URL="https://web.archive.org/web/20210518140736/http://ftp.gnustep.org/pub/gnustep/core/$TARBALL"
     6.9  
    6.10  DEPENDS="audiofile aspell cairo freetype giflib gnustep-base gnustep-gui
    6.11  	 gnutls icu libart_lgpl libbfd libtasn1 util-linux-uuid xorg-libXmu"
     7.1 --- a/gnustep-make/receipt	Mon Oct 17 07:58:57 2022 +0100
     7.2 +++ b/gnustep-make/receipt	Tue Nov 01 16:13:12 2022 +0000
     7.3 @@ -9,7 +9,8 @@
     7.4  WEB_SITE="http://www.gnustep.org/"
     7.5  
     7.6  TARBALL="$PACKAGE-$VERSION.tar.gz"
     7.7 -WGET_URL="http://ftp.gnustep.org/pub/gnustep/core/$TARBALL"
     7.8 +#WGET_URL="http://ftp.gnustep.org/pub/gnustep/core/$TARBALL"
     7.9 +WGET_URL="https://kacabenggala.uny.ac.id/gentoo/distfiles/40/$TARBALL"
    7.10  
    7.11  DEPENDS=""
    7.12  
     8.1 --- a/gxine/receipt	Mon Oct 17 07:58:57 2022 +0100
     8.2 +++ b/gxine/receipt	Tue Nov 01 16:13:12 2022 +0000
     8.3 @@ -7,7 +7,7 @@
     8.4  MAINTAINER="jozee@slitaz.org"
     8.5  LICENSE="GPL2"
     8.6  TARBALL="$PACKAGE-$VERSION.tar.bz2"
     8.7 -WEB_SITE="https://www.xine-project.org/"
     8.8 +WEB_SITE="https://xine-project.org/"
     8.9  WGET_URL="https://sourceforge.net/projects/xine/files/$PACKAGE/$VERSION/$TARBALL"
    8.10  
    8.11  DEPENDS="xine-lib libvorbis gtk+ spidermonkey dbus"
     9.1 --- a/opencore-amr-dev/receipt	Mon Oct 17 07:58:57 2022 +0100
     9.2 +++ b/opencore-amr-dev/receipt	Tue Nov 01 16:13:12 2022 +0000
     9.3 @@ -6,7 +6,7 @@
     9.4  SHORT_DESC="Adaptive Multi Rate (AMR) speech codec - development files."
     9.5  MAINTAINER="domcox@slitaz.org"
     9.6  LICENSE="Apache"
     9.7 -WEB_SITE="https://opencore-amr.sourceforge.io/"
     9.8 +WEB_SITE="https://sourceforge.net/projects/opencore-amr/"
     9.9  
    9.10  DEPENDS="pkg-config"
    9.11  WANTED="opencore-amr"
    10.1 --- a/opencore-amr/receipt	Mon Oct 17 07:58:57 2022 +0100
    10.2 +++ b/opencore-amr/receipt	Tue Nov 01 16:13:12 2022 +0000
    10.3 @@ -6,7 +6,7 @@
    10.4  SHORT_DESC="Adaptive Multi Rate (AMR) speech codec."
    10.5  MAINTAINER="domcox@slitaz.org"
    10.6  LICENSE="Apache"
    10.7 -WEB_SITE="https://opencore-amr.sourceforge.io/"
    10.8 +WEB_SITE="https://sourceforge.net/projects/opencore-amr/"
    10.9  
   10.10  TARBALL="$PACKAGE-$VERSION.tar.gz"
   10.11  WGET_URL="$SF_MIRROR/$PACKAGE/$TARBALL"
    11.1 --- a/ortp-dev/receipt	Mon Oct 17 07:58:57 2022 +0100
    11.2 +++ b/ortp-dev/receipt	Tue Nov 01 16:13:12 2022 +0000
    11.3 @@ -6,7 +6,7 @@
    11.4  SHORT_DESC="Library implementing the Real-time Transport Protocol (RFC3550), development files."
    11.5  MAINTAINER="pascal.bellard@slitaz.org"
    11.6  LICENSE="LGPL2.1"
    11.7 -WEB_SITE="http://freecode.com/projects/ortp"
    11.8 +WEB_SITE="https://linphone.org/"
    11.9  WANTED="ortp"
   11.10  
   11.11  DEPENDS="ortp pkg-config"
    12.1 --- a/ortp/receipt	Mon Oct 17 07:58:57 2022 +0100
    12.2 +++ b/ortp/receipt	Tue Nov 01 16:13:12 2022 +0000
    12.3 @@ -7,7 +7,7 @@
    12.4  MAINTAINER="pascal.bellard@slitaz.org"
    12.5  LICENSE="LGPL2.1"
    12.6  TARBALL="$PACKAGE-$VERSION.tar.gz"
    12.7 -WEB_SITE="http://freecode.com/projects/ortp"
    12.8 +WEB_SITE="https://linphone.org/"
    12.9  WGET_URL="http://download-mirror.savannah.gnu.org/releases/linphone/$PACKAGE/sources/$TARBALL"
   12.10  
   12.11  # What is the latest version available today?
    13.1 --- a/secure-delete/receipt	Mon Oct 17 07:58:57 2022 +0100
    13.2 +++ b/secure-delete/receipt	Tue Nov 01 16:13:12 2022 +0000
    13.3 @@ -8,7 +8,7 @@
    13.4  LICENSE="MIT"
    13.5  SOURCE="secure_delete"
    13.6  TARBALL="$SOURCE-$VERSION.tar.gz"
    13.7 -WEB_SITE="http://www.thc.org/"
    13.8 +WEB_SITE="https://www.thc.org/"
    13.9  WGET_URL="http://deb.debian.org/debian/pool/main/s/$PACKAGE/${PACKAGE}_$VERSION.orig.tar.gz"
   13.10  
   13.11  DEPENDS="glibc-base"
    14.1 --- a/xine-ui/receipt	Mon Oct 17 07:58:57 2022 +0100
    14.2 +++ b/xine-ui/receipt	Tue Nov 01 16:13:12 2022 +0000
    14.3 @@ -7,7 +7,7 @@
    14.4  MAINTAINER="pankso@slitaz.org"
    14.5  LICENSE="GPL2"
    14.6  TARBALL="$PACKAGE-$VERSION.tar.xz"
    14.7 -WEB_SITE="https://www.xine-project.org/"
    14.8 +WEB_SITE="https://xine-project.org/"
    14.9  WGET_URL="$SF_MIRROR/project/xine/xine-ui/$VERSION/$TARBALL"
   14.10  
   14.11  # Keep Xine small for Live system, we have MPlaye or VLC has big video player.