wok rev 1290

Add slitaz-loram-http
author Pascal Bellard <pascal.bellard@slitaz.org>
date Thu Aug 21 11:00:26 2008 +0000 (2008-08-21)
parents 710881595f59
children 97f43001a79c
files slitaz-loram-http/receipt slitaz-loram-http/stuff/loram.extract slitaz-loram-http/stuff/loram.rootfs
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/slitaz-loram-http/receipt	Thu Aug 21 11:00:26 2008 +0000
     1.3 @@ -0,0 +1,126 @@
     1.4 +# SliTaz package receipt.
     1.5 +
     1.6 +PACKAGE="slitaz-loram-http"
     1.7 +VERSION="1.0"
     1.8 +CATEGORY="misc"
     1.9 +SHORT_DESC="Rules to build low ram system using http."
    1.10 +MAINTAINER="pascal.bellard@slitaz.org"
    1.11 +WEB_SITE="http://www.slitaz.org/"
    1.12 +DEPENDS="httpfs-fuse funionfs"
    1.13 +
    1.14 +# Rules to gen a SliTaz package suitable for Tazpkg.
    1.15 +genpkg_rules()
    1.16 +{
    1.17 +    mkdir -p $fs/etc/tazlito
    1.18 +    cp stuff/loram.* $fs/etc/tazlito
    1.19 +}
    1.20 +
    1.21 +set_patch()
    1.22 +{
    1.23 +    local tag
    1.24 +    local line
    1.25 +    local i
    1.26 +    tag="Handle kernel cmdline parameter config"
    1.27 +    i=$(grep -n "$tag" $1/etc/init.d/rcS | cut -d: -f1)
    1.28 +    i=$(($i-1))
    1.29 +    tag=$(grep "$tag" $1/etc/init.d/rcS)
    1.30 +    if [ "$2" = "-R" ]; then
    1.31 +    	line="-$(($i-50)),52 +$(($i-50)),2"
    1.32 +	i="-"
    1.33 +    else
    1.34 +        grep -q 'from slitaz-loram-http package' $1/etc/init.d/rcS && return
    1.35 +    	line="-$i,2 +$i,52"
    1.36 +	i="+"
    1.37 +    fi
    1.38 +    patch -p0 <<EOF
    1.39 +--- $1/etc/init.d/rcS
    1.40 ++++ $1/etc/init.d/rcS
    1.41 +@@ $line @@
    1.42 + 
    1.43 +$i# Try to release http link (from slitaz-loram-http package)
    1.44 +$i release_http()
    1.45 +$i {
    1.46 +$i	FREEMEM=\$(free | awk '{ n = \$NF } END { print n }')	
    1.47 +$i	if [ \$FREEMEM -gt \$(du -s \$FS | awk '{ print \$1+40000 }') ]; then
    1.48 +$i		status
    1.49 +$i		echo -n "Loading /usr in memory..."
    1.50 +$i		cp -a \$FS /.usr.fs
    1.51 +$i		status
    1.52 +$i		echo -n "Releasing HTTP link..."
    1.53 +$i		umount /cdrom && umount /cdrom
    1.54 +$i		FS=/.usr.fs
    1.55 +$i		return 0
    1.56 +$i	fi
    1.57 +$i	return 1
    1.58 +$i }
    1.59 +$i
    1.60 +$i# Mount /usr (from slitaz-loram-http package)
    1.61 +$i if [ -d /cdrom ]; then
    1.62 +$i	/etc/init.d/network.sh
    1.63 +$i	RUN_SCRIPTS="\$(echo \$RUN_SCRIPTS | sed 's/network.sh//')"
    1.64 +$i	/bin/httpfs http://mirror.slitaz.org/iso/$(cat /etc/slitaz-release)/flavors/slitaz-loram-cdrom.iso /cdrom
    1.65 +$i	mount -o loop,ro /cdrom/*.iso /cdrom
    1.66 +$i	if [ -d /.usr.rw -a -x /bin/funionfs ]; then
    1.67 +$i		echo -n "Mounting /usr read-write... "
    1.68 +$i		usr=.usr.ro
    1.69 +$i	else
    1.70 +$i		echo -n "Mounting /usr read-only... "
    1.71 +$i		usr=usr
    1.72 +$i	fi
    1.73 +$i	FS=/cdrom/usr.cromfs
    1.74 +$i	if [ -f \$FS ]; then
    1.75 +$i		release_http
    1.76 +$i		mkdir /\$usr
    1.77 +$i		/bin/cromfs-driver \$FS /\$usr
    1.78 +$i	elif [ -f /cdrom/usr.sqfs ]; then
    1.79 +$i		FS=/cdrom/usr.sqfs
    1.80 +$i		release_http
    1.81 +$i		mkdir /\$usr
    1.82 +$i		mount -o loop,ro -t squashfs \$FS /\$usr
    1.83 +$i	else
    1.84 +$i		FS=/cdrom/usr
    1.85 +$i		ln -s \$FS /\$usr
    1.86 +$i	fi
    1.87 +$i	status 
    1.88 +$i	if [ -d /.usr.rw -a -x /bin/funionfs ]; then
    1.89 +$i		/bin/funionfs -o dirs=/.usr.ro=RO:/.usr.rw -o allow_other,nonempty NONE /usr
    1.90 +$i	fi
    1.91 +$i fi
    1.92 +$i
    1.93 + $tag
    1.94 +EOF
    1.95 +    chmod 0755 $1/etc/init.d/rcS
    1.96 +}
    1.97 +
    1.98 +# Pre and post install commands for Tazpkg.
    1.99 +pre_install()
   1.100 +{
   1.101 +    local i
   1.102 +    for i in $(cd /var/lib/tazpkg/installed ; ls -d slitaz-loram* 2> /dev/null); do
   1.103 +        [ "$i" = "$PACKAGE" ] && continue
   1.104 +        yes y | tazpkg remove $i
   1.105 +        . /etc/tazlito/tazlito.conf
   1.106 +	rm -f $PACKAGES_REPOSITORY/slitaz-boot-scripts-*.tazpkg 2> /dev/null
   1.107 +    done
   1.108 +}
   1.109 +
   1.110 +post_install()
   1.111 +{
   1.112 +    set_patch "$1"
   1.113 +    if [ ! -x $1/bin/funionfs ]; then
   1.114 +        cat <<EOF
   1.115 +----
   1.116 +You will build a live CD with /usr mounted read-only.
   1.117 +You can install funionfs to have read-write access into /usr with:
   1.118 +
   1.119 +# tazpkg get-install funionfs
   1.120 +
   1.121 +EOF
   1.122 +    fi
   1.123 +}
   1.124 +
   1.125 +# Pre remove commands for Tazpkg.
   1.126 +pre_remove()
   1.127 +{
   1.128 +    set_patch '' -R 
   1.129 +}
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/slitaz-loram-http/stuff/loram.extract	Thu Aug 21 11:00:26 2008 +0000
     2.3 @@ -0,0 +1,46 @@
     2.4 +# remove link to cdrom
     2.5 +[ -d cdrom ] && rmdir cdrom
     2.6 +rm -f bin/vcsa2txt bin/awk bin/script bin/cut bin/readlink bin/du bin/free
     2.7 +if [ -L usr ]; then
     2.8 +	rm usr
     2.9 +	cp -a $1/usr .
    2.10 +fi
    2.11 +packedfs="$1/usr.cromfs"
    2.12 +if [ -f $packedfs ]; then
    2.13 +	rmdir usr
    2.14 +	rm -f bin/unmkcromfs
    2.15 +	cp -a $1/unmkcromfs bin/unmkcromfs
    2.16 +	bin/unmkcromfs $packedfs usr
    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 +fi
    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 +	[ "${packedfs%%/*}" = ".." ] && rm -f $packedfs
    2.26 +fi
    2.27 +if [ -d usr/.moved ]; then
    2.28 +	( cd usr/.moved ; find * -print ) | \
    2.29 +	while read file; do
    2.30 +		[ -L "$file" ] || continue
    2.31 +		rm -f "$file"
    2.32 +		mv "usr/.moved/$file" "$file"
    2.33 +	done
    2.34 +	rm -rf usr/.moved
    2.35 +fi
    2.36 +for ii in lib/libz.so lib/libstdc++.so lib/libgcc_s.so; do
    2.37 +	[ -e $ii ] && mv $ii* usr/lib/
    2.38 +done
    2.39 +if [ -L root ]; then
    2.40 +	rm -f etc/keymap.conf etc/locale.conf etc/resolv.conf etc/TZ etc/motd
    2.41 +	[ -d var/log.ORG  ] && mv -f var/log.ORG  var/log
    2.42 +	[ -d var/run.ORG  ] && mv -f var/run.ORG  var/run
    2.43 +	[ -d var/lock.ORG ] && mv -f var/lock.ORG var/lock
    2.44 +	[ -d root.ORG     ] && mv -f root.ORG     root
    2.45 +	rm -f media/cdrom
    2.46 +	rmdir mnt/target
    2.47 +	sed -i 's/CLEAN_UP_SYSTEM="no"/CLEAN_UP_SYSTEM="yes"/' etc/rcS.conf
    2.48 +	sed -i 's/RUN_DAEMONS="/RUN_DAEMONS="slim /' etc/rcS.conf
    2.49 +fi
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/slitaz-loram-http/stuff/loram.rootfs	Thu Aug 21 11:00:26 2008 +0000
     3.3 @@ -0,0 +1,40 @@
     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 +done
     3.9 +for ii in /sbin /lib /bin; do
    3.10 +  mkdir -p ./usr/.moved$ii
    3.11 +  for j in e2fsprogs pcmciautils cpio syslinux-extra isapnptools ncurses \
    3.12 +	   libcap; do
    3.13 +    for k in $(grep -s ^$ii /var/lib/tazpkg/installed/$j/files.list) ; do
    3.14 +      [ -f .$k ] || continue
    3.15 +      mv .$k ./usr/.moved$k
    3.16 +      ln -s /usr/.moved$k .$k 
    3.17 +    done
    3.18 +  done
    3.19 +done
    3.20 +k="$(ls /lib/libp*.so /lib/librt*)"
    3.21 +[ -x /bin/funionfs ] && k=""
    3.22 +for ii in /var/lib/tazpkg/installed /lib/modules/*/kernel/drivers/net \
    3.23 +	  /lib/modules/*/kernel/sound /sbin/depmod /sbin/modinfo /bin/lsmod \
    3.24 +	  /lib/libnss_[^d]* $k; do
    3.25 +  [ -L .$ii ] && continue
    3.26 +  j=$(dirname /usr/.moved$ii)
    3.27 +  mkdir -p .$j
    3.28 +  mv .$ii .$j
    3.29 +  ln -s /usr/.moved$ii .$ii
    3.30 +done
    3.31 +echo "$(du -hs ./usr/.moved | cut -f1) have been moved into /usr"
    3.32 +mv usr/bin/httpfs bin
    3.33 +cp usr/lib/libfuse.so.2.* lib/libfuse.so.2
    3.34 +mv usr/share/udhcpc/default.script .
    3.35 +rm -rf usr
    3.36 +mkdir -p usr/share/udhcpc
    3.37 +mv default.script usr/share/udhcpc
    3.38 +ln -s /cdrom/boot boot
    3.39 +for ii in bin/vcsa2txt bin/awk bin/script bin/cut bin/readlink bin/du bin/free; do
    3.40 +  ln -s busybox $ii
    3.41 +done
    3.42 +mkdir cdrom .usr.rw
    3.43 +COMPRESSION="gzip"