tiny-slitaz diff helper @ rev 36

helper: boot bootsector files
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sun Sep 24 17:55:26 2023 +0000 (8 months ago)
parents 798a84e27cc9
children db2cc84a8917
line diff
     1.1 --- a/helper	Tue Jul 13 15:37:38 2021 +0000
     1.2 +++ b/helper	Sun Sep 24 17:55:26 2023 +0000
     1.3 @@ -221,6 +221,7 @@
     1.4  	[ -s $pkg ] || pkg=$TMPDIR/pkgs/$1/receipt
     1.5  	[ -s $pkg ] || pkg=$(get_receipt $@)
     1.6  	SUGGESTED=
     1.7 +	TARGET=i486
     1.8  	. $pkg
     1.9  	SUGG=
    1.10  	for i in $SUGGESTED; do
    1.11 @@ -444,14 +445,16 @@
    1.12  {
    1.13  	n=$(unlzma < $1 | wc -c)
    1.14  	for i in $(seq 1 8); do
    1.15 -		printf '\\\\x%02X' $(($n & 255))
    1.16 -		n=$(($n >> 8))
    1.17 +		printf '\\\\x%02X' $((n & 255))
    1.18 +		n=$((n >> 8))
    1.19  	done | xargs echo -en | dd of=$1 conv=notrunc bs=1 seek=5 2> /dev/null
    1.20  }
    1.21  
    1.22  
    1.23  compressto()
    1.24  {
    1.25 +	[ "$2" == "rootfs" ] && [ -s $tmp/fs/boot/compress_rootfs ] &&
    1.26 +		sh $tmp/fs/boot/compress_rootfs $1 && return
    1.27  	[ "$(which zopfli 2> /dev/null)" ] &&
    1.28  	zopfli --i100 -c /dev/stdin > $1 || gzip -9 > $1
    1.29  	[ "$(which advdef 2> /dev/null)" ] && advdef -z4 $1 > /dev/null
    1.30 @@ -482,21 +485,22 @@
    1.31  	tmp=$2
    1.32  	cd $tmp/fs
    1.33  	[ -s boot/mkrootfs.pre_exec ] && sh boot/mkrootfs.pre_exec
    1.34 -	if [ ! -d boot -a -s ../kernel ]; then # custom kernel
    1.35 +	if [ ! -d boot ] && [ -s ../kernel ]; then # custom kernel
    1.36  		mkdir boot
    1.37  		cp ../kernel boot/bzImage
    1.38  	fi
    1.39 -	find -user bellard -exec chown root.root {} \;
    1.40 -	find | grep -v ^./boot | cpio -o -H newc | compressto ../rootfs.gz
    1.41 +	find . -user bellard -exec chown root.root {} \;
    1.42 +	find . -exec touch {} \;
    1.43 +	find . | grep -v ^./boot | cpio -o -H newc | compressto ../rootfs.gz rootfs
    1.44  fi
    1.45  if [ "x$1" = "x--mkiso" ]; then
    1.46  	tmp=$2
    1.47  	mkdir -p $tmp/iso/boot/isolinux $tmp/iso/data
    1.48 -	cat $tmp/fs/boot/System.map | compressto $tmp/iso/data/sysmap.gz
    1.49 -	cat $tmp/fs/boot/config | compressto $tmp/iso/data/linconf.gz
    1.50 -	cat $tmp/fs/boot/config-busybox | compressto $tmp/iso/data/bbconf.gz
    1.51 +	compressto $tmp/iso/data/sysmap.gz < $tmp/fs/boot/System.map
    1.52 +	compressto $tmp/iso/data/linconf.gz < $tmp/fs/boot/config
    1.53 +	compressto $tmp/iso/data/bbconf.gz < $tmp/fs/boot/config-busybox
    1.54  	cp $tmp/fs/boot/bundle $tmp/iso/data/bundle.sh
    1.55 -	cat $tmp/post_install.log | compressto $tmp/iso/data/log.gz
    1.56 +	compressto $tmp/iso/data/log.gz < $tmp/post_install.log
    1.57  	cp $tmp/config_files $tmp/iso/data/files.cnf
    1.58  	cp $tmp/fs/etc/packages.conf $tmp/iso/data/packages.cnf
    1.59  	[ -s wok/busybox/receipt ] && tar czf $tmp/iso/data/wok.tgz wok/*
    1.60 @@ -514,9 +518,11 @@
    1.61  		keys=${keys#*,}
    1.62  		KEY="$KEY ${keys%%,*}"
    1.63  		cp $tmp/fs/boot/$bin $tmp/iso/boot/$bin
    1.64 +		kernel=kernel
    1.65 +		[ $(stat -c %s $tmp/fs/boot/$bin) -eq 512 ] && kernel=boot
    1.66  		cat >> $tmp/iso/boot/isolinux/isolinux.cfg <<EOT
    1.67  label ${keys//,/ } $bin
    1.68 -	kernel /boot/$bin
    1.69 +	$kernel /boot/$bin
    1.70  
    1.71  EOT
    1.72  	done < $tmp/fs/boot/bootmenu