wok rev 4099

slitaz-loram*: add extract-loram
author Pascal Bellard <pascal.bellard@slitaz.org>
date Fri Sep 18 21:59:40 2009 +0200 (2009-09-18)
parents eda797775988
children 883faa0c43cc
files slitaz-loram-cdrom/receipt slitaz-loram-cdrom/stuff/loram.extract slitaz-loram-cdrom/stuff/loram.rootfs slitaz-loram-http/receipt slitaz-loram-http/stuff/loram.extract slitaz-loram-http/stuff/loram.rootfs slitaz-loram/receipt slitaz-loram/stuff/loram.extract slitaz-loram/stuff/loram.rootfs
line diff
     1.1 --- a/slitaz-loram-cdrom/receipt	Fri Sep 18 13:02:59 2009 +0200
     1.2 +++ b/slitaz-loram-cdrom/receipt	Fri Sep 18 21:59:40 2009 +0200
     1.3 @@ -1,7 +1,7 @@
     1.4  # SliTaz package receipt.
     1.5  
     1.6  PACKAGE="slitaz-loram-cdrom"
     1.7 -VERSION="1.4"
     1.8 +VERSION="1.5"
     1.9  CATEGORY="misc"
    1.10  SHORT_DESC="Rules to build low ram system using cdrom."
    1.11  MAINTAINER="pascal.bellard@slitaz.org"
    1.12 @@ -19,17 +19,19 @@
    1.13  {
    1.14      local tag
    1.15      local line
    1.16 +    local len
    1.17      local i
    1.18      tag="Handle kernel cmdline parameter config"
    1.19      i=$(grep -n "$tag" $1/etc/init.d/rcS | cut -d: -f1)
    1.20      i=$(($i-1))
    1.21 +    len=87
    1.22      tag=$(grep "$tag" $1/etc/init.d/rcS)
    1.23      if [ "$2" = "-R" ]; then
    1.24 -    	line="-$(($i-72)),74 +$(($i-72)),2"
    1.25 +    	line="-$(($i-$len+2)),$len +$(($i-$len+2)),2"
    1.26  	i="-"
    1.27      else
    1.28          grep -q 'from slitaz-loram-cdrom package' $1/etc/init.d/rcS && return
    1.29 -    	line="-$i,2 +$i,74"
    1.30 +    	line="-$i,2 +$i,$len"
    1.31  	i="+"
    1.32      fi
    1.33      patch -p0 <<EOF
    1.34 @@ -42,12 +44,27 @@
    1.35  $i {
    1.36  $i	FREEMEM=\$(busybox free | busybox awk '{ n = \$NF } END { print n }')	
    1.37  $i	if [ \$FREEMEM -gt \$(busybox du -s \$FS | busybox awk '{ print \$1+40000 }') ]; then
    1.38 +$i		if grep -q " extract-loram" /proc/cmdline &&
    1.39 +$i		    [ -d \$FS -o \$FREEMEM -gt \$(busybox du -s \$FS | \\
    1.40 +$i			busybox awk '{ print (\$1*4)+40000 }') ]; then
    1.41 +$i			echo -n "Extracting loram..."
    1.42 +$i			. /etc/tazlito/loram.extract /cdrom
    1.43 +$i			if status; then
    1.44 +$i				umount /cdrom
    1.45 +$i				rmdir /cdrom
    1.46 +$i				yes y | tazpkg remove slitaz-loram-cdrom > /dev/null
    1.47 +$i				return 0
    1.48 +$i			fi
    1.49 +$i		fi
    1.50  $i		cp -a \$FS /.usr.fs
    1.51  $i		status
    1.52  $i		echo -n "Releasing CD-ROM..."
    1.53  $i		umount /cdrom
    1.54  $i		FS=/.usr.fs
    1.55 -$i		return 0
    1.56 +$i		if [ -d \$FS ]; then
    1.57 +$i			rm -f /\$usr
    1.58 +$i			mv \$FS /usr
    1.59 +$i		fi
    1.60  $i	fi
    1.61  $i	return 1
    1.62  $i }
    1.63 @@ -72,7 +89,7 @@
    1.64  $i			DEVICE=""
    1.65  $i		fi
    1.66  $i	fi
    1.67 -$i	if [ -n "\$DEVICE" ]; then
    1.68 +$i	while [ -n "\$DEVICE" ]; do
    1.69  $i		if [ -d /.usr.rw ]; then
    1.70  $i			echo -n "Mounting /usr read-write... "
    1.71  $i			usr=.usr.ro
    1.72 @@ -82,18 +99,15 @@
    1.73  $i		fi
    1.74  $i		FS=/cdrom\$DIR/usr.cromfs
    1.75  $i		if [ -f \$FS ]; then
    1.76 -$i			release_cdrom
    1.77 +$i			release_cdrom && break
    1.78  $i			/bin/cromfs-driver \$FS /\$usr -o ro,dev,suid,allow_other
    1.79  $i		elif [ -f /cdrom\$DIR/usr.sqfs ]; then
    1.80  $i			FS=/cdrom\$DIR/usr.sqfs
    1.81 -$i			release_cdrom
    1.82 +$i			release_cdrom && break
    1.83  $i			mount -o loop,ro -t squashfs \$FS /\$usr
    1.84  $i		elif [ -L /\$usr ]; then
    1.85  $i			FS=/cdrom\$DIR/usr
    1.86 -$i			if release_cdrom; then
    1.87 -$i				rm -f /\$usr
    1.88 -$i				mv \$FS /usr
    1.89 -$i			fi
    1.90 +$i			release_cdrom && break
    1.91  $i		else
    1.92  $i			umount /cdrom
    1.93  $i			false
    1.94 @@ -106,7 +120,8 @@
    1.95  $i				/bin/mount -t aufs -o br:/.usr.rw:/.usr.ro none /usr
    1.96  $i			fi
    1.97  $i		fi
    1.98 -$i	fi
    1.99 +$i		break
   1.100 +$i	done
   1.101  $i fi
   1.102  $i
   1.103   $tag
   1.104 @@ -114,12 +129,13 @@
   1.105      tag="/var/log/dmesg.log"
   1.106      i=$(grep -n "$tag" $1/etc/init.d/rcS | cut -d: -f1)
   1.107      i=$(($i-1))
   1.108 +    len=9
   1.109      tag=$(grep "$tag" $1/etc/init.d/rcS)
   1.110      if [ "$2" = "-R" ]; then
   1.111 -    	line="-$(($i-7)),9 +$(($i-7)),2"
   1.112 +    	line="-$(($i-$len+2)),$len +$(($i-$len+2)),2"
   1.113  	i="-"
   1.114      else
   1.115 -    	line="-$i,2 +$i,9"
   1.116 +    	line="-$i,2 +$i,$len"
   1.117  	i="+"
   1.118      fi
   1.119      patch -p0 <<EOF
     2.1 --- a/slitaz-loram-cdrom/stuff/loram.extract	Fri Sep 18 13:02:59 2009 +0200
     2.2 +++ b/slitaz-loram-cdrom/stuff/loram.extract	Fri Sep 18 21:59:40 2009 +0200
     2.3 @@ -1,5 +1,6 @@
     2.4  # remove link to cdrom
     2.5 -[ -d cdrom ] && rmdir cdrom
     2.6 +[ -d cdrom ] && rmdir cdrom 2> /dev/null
     2.7 +rmdir .usr* 2> /dev/null
     2.8  if [ -L usr ]; then
     2.9  	rm usr
    2.10  	cp -a $1/usr .
    2.11 @@ -9,7 +10,7 @@
    2.12  	rmdir usr
    2.13  	rm -f bin/unmkcromfs
    2.14  	cp -a $1/unmkcromfs bin/unmkcromfs
    2.15 -	bin/unmkcromfs $packedfs usr
    2.16 +	bin/unmkcromfs $packedfs usr > /dev/null
    2.17  	[ "${packedfs%%/*}" = ".." ] && rm -f $packedfs
    2.18  	rm -f bin/cromfs-driver
    2.19  	cp -a $1/cromfs-driver bin/cromfs-driver
    2.20 @@ -17,7 +18,7 @@
    2.21  packedfs="$1/usr.sqfs"
    2.22  if [ -f $packedfs ]; then
    2.23  	rmdir usr
    2.24 -	sbin/unsquashfs -d usr $packedfs
    2.25 +	sbin/unsquashfs -d usr $packedfs > /dev/null
    2.26  	[ "${packedfs%%/*}" = ".." ] && rm -f $packedfs
    2.27  fi
    2.28  if [ -d usr/.moved ]; then
     3.1 --- a/slitaz-loram-cdrom/stuff/loram.rootfs	Fri Sep 18 13:02:59 2009 +0200
     3.2 +++ b/slitaz-loram-cdrom/stuff/loram.rootfs	Fri Sep 18 21:59:40 2009 +0200
     3.3 @@ -1,7 +1,9 @@
     3.4  echo "$(du -hs /usr | cut -f1) were used by /usr"
     3.5 -lib/ld-*.so --list ./sbin/insmod | grep /usr/lib | cut -d\  -f3 | \
     3.6 -while read ii; do
     3.7 -  mv .${ii%%.so.*}.so* ./lib
     3.8 +for j in insmod unmkcromfs unsquashfs ; do 
     3.9 +  lib/ld-*.so --list *bin/$j 2> /dev/null | grep /usr/lib | cut -d\  -f3 | \
    3.10 +  while read ii; do
    3.11 +    mv .${ii%%.so.*}.so* ./lib
    3.12 +  done
    3.13  done
    3.14  for ii in /sbin /lib /bin; do
    3.15    mkdir -p ./usr/.moved$ii
     4.1 --- a/slitaz-loram-http/receipt	Fri Sep 18 13:02:59 2009 +0200
     4.2 +++ b/slitaz-loram-http/receipt	Fri Sep 18 21:59:40 2009 +0200
     4.3 @@ -1,7 +1,7 @@
     4.4  # SliTaz package receipt.
     4.5  
     4.6  PACKAGE="slitaz-loram-http"
     4.7 -VERSION="1.1"
     4.8 +VERSION="1.5"
     4.9  CATEGORY="misc"
    4.10  SHORT_DESC="Rules to build low ram system using http."
    4.11  MAINTAINER="pascal.bellard@slitaz.org"
    4.12 @@ -19,17 +19,19 @@
    4.13  {
    4.14      local tag
    4.15      local line
    4.16 +    local len
    4.17      local i
    4.18      tag="Handle kernel cmdline parameter config"
    4.19      i=$(grep -n "$tag" $1/etc/init.d/rcS | cut -d: -f1)
    4.20      i=$(($i-1))
    4.21 +    len=71
    4.22      tag=$(grep "$tag" $1/etc/init.d/rcS)
    4.23      if [ "$2" = "-R" ]; then
    4.24 -    	line="-$(($i-52)),54 +$(($i-52)),2"
    4.25 +    	line="-$(($i-$len+2)),$len +$(($i-$len+2)),2"
    4.26  	i="-"
    4.27      else
    4.28          grep -q 'from slitaz-loram-http package' $1/etc/init.d/rcS && return
    4.29 -    	line="-$i,2 +$i,54"
    4.30 +    	line="-$i,2 +$i,$len"
    4.31  	i="+"
    4.32      fi
    4.33      patch -p0 <<EOF
    4.34 @@ -43,19 +45,34 @@
    4.35  $i	FREEMEM=\$(busybox free | busybox awk '{ n = \$NF } END { print n }')	
    4.36  $i	if [ \$FREEMEM -gt \$(busybox du -s \$FS | busybox awk '{ print \$1+40000 }') ]; then
    4.37  $i		status
    4.38 +$i		if grep -q " extract-loram" /proc/cmdline &&
    4.39 +$i		    [ -d \$FS -o \$FREEMEM -gt \$(busybox du -s \$FS | \\
    4.40 +$i			busybox awk '{ print (\$1*4)+40000 }') ]; then
    4.41 +$i			echo -n "Extracting loram..."
    4.42 +$i			. /etc/tazlito/loram.extract /cdrom
    4.43 +$i			if status; then
    4.44 +$i				umount /cdrom && umount /cdrom
    4.45 +$i				rmdir /cdrom
    4.46 +$i				yes y | tazpkg remove slitaz-loram-http > /dev/null
    4.47 +$i				return 0
    4.48 +$i			fi
    4.49 +$i		fi
    4.50  $i		echo -n "Loading /usr in memory..."
    4.51  $i		cp -a \$FS /.usr.fs
    4.52  $i		status
    4.53  $i		echo -n "Releasing HTTP link..."
    4.54  $i		umount /cdrom && umount /cdrom
    4.55  $i		FS=/.usr.fs
    4.56 -$i		return 0
    4.57 +$i		if [ -d \$FS ]; then
    4.58 +$i			rm -f /\$usr
    4.59 +$i			mv \$FS /usr
    4.60 +$i		fi
    4.61  $i	fi
    4.62  $i	return 1
    4.63  $i }
    4.64  $i
    4.65  $i# Mount /usr (from slitaz-loram-http package)
    4.66 -$i if [ -d /cdrom ]; then
    4.67 +$i while [ -d /cdrom ]; do
    4.68  $i	/etc/init.d/network.sh
    4.69  $i	RUN_SCRIPTS="\$(echo \$RUN_SCRIPTS | sed 's/network.sh//')"
    4.70  $i	URLISO=http://mirror.slitaz.org/iso/\$(cat /etc/slitaz-release)/flavors/slitaz-loram-cdrom.iso
    4.71 @@ -71,15 +88,16 @@
    4.72  $i	fi
    4.73  $i	FS=/cdrom/usr.cromfs
    4.74  $i	if [ -f \$FS ]; then
    4.75 -$i		release_http
    4.76  $i		mkdir /\$usr
    4.77 +$i		release_http && break
    4.78  $i		/bin/cromfs-driver \$FS /\$usr -o ro,dev,suid,allow_other
    4.79  $i	elif [ -f /cdrom/usr.sqfs ]; then
    4.80  $i		FS=/cdrom/usr.sqfs
    4.81 -$i		release_http
    4.82  $i		mkdir /\$usr
    4.83 +$i		release_http && break
    4.84  $i		mount -o loop,ro -t squashfs \$FS /\$usr
    4.85  $i	else
    4.86 +$i		release_http && break
    4.87  $i		FS=/cdrom/usr
    4.88  $i		ln -s \$FS /\$usr
    4.89  $i	fi
    4.90 @@ -87,7 +105,8 @@
    4.91  $i	if [ -d /.usr.rw -a -x /bin/funionfs ]; then
    4.92  $i		/bin/funionfs -o dirs=/.usr.ro=RO:/.usr.rw -o allow_other,nonempty -o suid,dev NONE /usr
    4.93  $i	fi
    4.94 -$i fi
    4.95 +$i	break
    4.96 +$i done
    4.97  $i
    4.98   $tag
    4.99  EOF
     5.1 --- a/slitaz-loram-http/stuff/loram.extract	Fri Sep 18 13:02:59 2009 +0200
     5.2 +++ b/slitaz-loram-http/stuff/loram.extract	Fri Sep 18 21:59:40 2009 +0200
     5.3 @@ -1,5 +1,6 @@
     5.4  # remove link to cdrom
     5.5 -[ -d cdrom ] && rmdir cdrom
     5.6 +[ -d cdrom ] && rmdir cdrom 2> /dev/null
     5.7 +rmdir .usr* 2> /dev/null
     5.8  if [ -L usr ]; then
     5.9  	rm usr
    5.10  	cp -a $1/usr .
    5.11 @@ -9,7 +10,7 @@
    5.12  	rmdir usr
    5.13  	rm -f bin/unmkcromfs
    5.14  	cp -a $1/unmkcromfs bin/unmkcromfs
    5.15 -	bin/unmkcromfs $packedfs usr
    5.16 +	bin/unmkcromfs $packedfs usr > /dev/null
    5.17  	[ "${packedfs%%/*}" = ".." ] && rm -f $packedfs
    5.18  	rm -f bin/cromfs-driver
    5.19  	cp -a $1/cromfs-driver bin/cromfs-driver
    5.20 @@ -17,7 +18,7 @@
    5.21  packedfs="$1/usr.sqfs"
    5.22  if [ -f $packedfs ]; then
    5.23  	rmdir usr
    5.24 -	sbin/unsquashfs -d usr $packedfs
    5.25 +	sbin/unsquashfs -d usr $packedfs > /dev/null
    5.26  	[ "${packedfs%%/*}" = ".." ] && rm -f $packedfs
    5.27  fi
    5.28  if [ -d usr/.moved ]; then
     6.1 --- a/slitaz-loram-http/stuff/loram.rootfs	Fri Sep 18 13:02:59 2009 +0200
     6.2 +++ b/slitaz-loram-http/stuff/loram.rootfs	Fri Sep 18 21:59:40 2009 +0200
     6.3 @@ -1,7 +1,9 @@
     6.4  echo "$(du -hs /usr | cut -f1) were used by /usr"
     6.5 -lib/ld-*.so --list ./sbin/insmod | grep /usr/lib | cut -d\  -f3 | \
     6.6 -while read ii; do
     6.7 -  mv .${ii%%.so.*}.so* ./lib
     6.8 +for j in insmod unmkcromfs unsquashfs ; do
     6.9 +  lib/ld-*.so --list *bin/$j 2> /dev/null | grep /usr/lib | cut -d\  -f3 | \
    6.10 +  while read ii; do
    6.11 +    mv .${ii%%.so.*}.so* ./lib
    6.12 +  done
    6.13  done
    6.14  for ii in /sbin /lib /bin; do
    6.15    mkdir -p ./usr/.moved$ii
     7.1 --- a/slitaz-loram/receipt	Fri Sep 18 13:02:59 2009 +0200
     7.2 +++ b/slitaz-loram/receipt	Fri Sep 18 21:59:40 2009 +0200
     7.3 @@ -1,7 +1,7 @@
     7.4  # SliTaz package receipt.
     7.5  
     7.6  PACKAGE="slitaz-loram"
     7.7 -VERSION="1.4"
     7.8 +VERSION="1.5"
     7.9  CATEGORY="misc"
    7.10  SHORT_DESC="Rules to build low ram rootfs.gz."
    7.11  MAINTAINER="pascal.bellard@slitaz.org"
    7.12 @@ -19,17 +19,19 @@
    7.13  {
    7.14      local tag
    7.15      local line
    7.16 +    local len
    7.17      local i
    7.18      tag="/dev/cdrom if need"
    7.19      i=$(grep -n "$tag" $1/etc/init.d/rcS | cut -d: -f1)
    7.20      i=$(($i-1))
    7.21 +    len=38
    7.22      tag=$(grep "$tag" $1/etc/init.d/rcS)
    7.23      if [ "$2" = "-R" ]; then
    7.24 -    	line="-$(($i-25)),27 +$(($i-25)),2"
    7.25 +    	line="-$(($i-$len+2)),$len +$(($i-$len+2)),2"
    7.26  	i="-"
    7.27      else
    7.28          grep -q 'from slitaz-loram package' $1/etc/init.d/rcS && return
    7.29 -    	line="-$i,2 +$i,27"
    7.30 +    	line="-$i,2 +$i,$len"
    7.31  	i="+"
    7.32      fi
    7.33      patch -p0 <<EOF
    7.34 @@ -38,7 +40,7 @@
    7.35  @@ $line @@
    7.36   
    7.37  $i# Mount compressed /usr (from slitaz-loram package)
    7.38 -$i if [ -f /.usr.cromfs -o -f /.usr.sqfs ]; then
    7.39 +$i while [ -f /.usr.cromfs -o -f /.usr.sqfs ]; do
    7.40  $i	usr=usr
    7.41  $i	echo -n "Mounting /usr read-"
    7.42  $i	if [ -d /.usr.rw ]; then
    7.43 @@ -47,6 +49,16 @@
    7.44  $i	else
    7.45  $i		echo -n "only... "
    7.46  $i	fi
    7.47 +$i	FREEMEM=\$(busybox free | busybox awk '{ n = \$NF } END { print n }')
    7.48 +$i	if grep -q " extract-loram" /proc/cmdline && [ \$FREEMEM -gt \\
    7.49 +$i	\$(busybox du -s \$FS | busybox awk '{ print (\$1*4)+40000 }') ]; then
    7.50 +$i		echo -n "Extracting loram..."
    7.51 +$i		. /etc/tazlito/loram.extract
    7.52 +$i		if status; then
    7.53 +$i			yes y | tazpkg remove slitaz-loram > /dev/null
    7.54 +$i			break
    7.55 +$i		fi
    7.56 +$i	fi
    7.57  $i	if [ -f /.usr.cromfs ]; then
    7.58  $i		/bin/cromfs-driver /.usr.cromfs /\$usr -o ro,dev,suid,allow_other
    7.59  $i	else
    7.60 @@ -60,7 +72,8 @@
    7.61  $i		fi
    7.62  $i	fi
    7.63  $i	status
    7.64 -$i fi
    7.65 +$i	break
    7.66 +$i done
    7.67  $i
    7.68   $tag
    7.69  EOF
     8.1 --- a/slitaz-loram/stuff/loram.extract	Fri Sep 18 13:02:59 2009 +0200
     8.2 +++ b/slitaz-loram/stuff/loram.extract	Fri Sep 18 21:59:40 2009 +0200
     8.3 @@ -1,12 +1,13 @@
     8.4  rmdir usr
     8.5 +rmdir .usr* 2> /dev/null
     8.6  packedfs=".usr.cromfs"
     8.7  if [ -f $packedfs ]; then
     8.8 -	bin/unmkcromfs $packedfs usr
     8.9 +	bin/unmkcromfs $packedfs usr > /dev/null
    8.10  	rm -f $packedfs
    8.11  fi
    8.12  packedfs=".usr.sqfs"
    8.13  if [ -f $packedfs ]; then
    8.14 -	sbin/unsquashfs -d usr $packedfs
    8.15 +	sbin/unsquashfs -d usr $packedfs > /dev/null
    8.16  	rm -f $packedfs
    8.17  fi
    8.18  ( cd usr/.moved ; find * -print ) | \
     9.1 --- a/slitaz-loram/stuff/loram.rootfs	Fri Sep 18 13:02:59 2009 +0200
     9.2 +++ b/slitaz-loram/stuff/loram.rootfs	Fri Sep 18 21:59:40 2009 +0200
     9.3 @@ -1,7 +1,9 @@
     9.4  echo "$(du -hs ./usr | cut -f1) were used by /usr"
     9.5 -lib/ld-*.so --list ./sbin/insmod | grep /usr/lib | cut -d\  -f3 | \
     9.6 -while read ii; do
     9.7 -  mv .${ii%%.so.*}.so* ./lib
     9.8 +for j in insmod unmkcromfs unsquashfs ; do
     9.9 +  lib/ld-*.so --list *bin/$j 2> /dev/null | grep /usr/lib | cut -d\  -f3 | \
    9.10 +  while read ii; do
    9.11 +    mv .${ii%%.so.*}.so* ./lib
    9.12 +  done
    9.13  done
    9.14  for ii in /sbin /lib /bin; do
    9.15    mkdir -p ./usr/.moved$ii