wok-current rev 1930
Squashfs: add lzma support
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Wed Dec 24 17:02:24 2008 +0000 (2008-12-24) |
parents | fe3b7cbf1a7f |
children | 60e0be516392 |
files | squashfs/receipt |
line diff
1.1 --- a/squashfs/receipt Wed Dec 24 14:55:29 2008 +0100 1.2 +++ b/squashfs/receipt Wed Dec 24 17:02:24 2008 +0000 1.3 @@ -12,6 +12,19 @@ 1.4 BUILD_DEPENDS="zlib-dev patch lzma" 1.5 PROVIDE="cromfs-or-squashfs" 1.6 1.7 +# Download a source tarball 1.8 +. /etc/tazwok.conf 1.9 +slitaz_wget() 1.10 +{ 1.11 + if [ ! -f $SOURCES_REPOSITORY/$(basename $2) ]; then 1.12 + local here=$(pwd) 1.13 + cd $SOURCES_REPOSITORY 1.14 + wget $1 $2 1.15 + cd $here 1.16 + fi 1.17 + cp $SOURCES_REPOSITORY/$(basename $2) . 1.18 +} 1.19 + 1.20 # Rules to configure and make the package. 1.21 compile_rules() 1.22 { 1.23 @@ -20,7 +33,7 @@ 1.24 1.25 mkdir -p $src 1.26 cd $src 1.27 - mv ../$PACKAGE$VERSION . 1.28 + mv ../$PACKAGE$VERSION . 2> /dev/null 1.29 # get kernel version 1.30 if [ ! -d $WOK/linux/taz ]; then 1.31 tazwok cook linux 1.32 @@ -69,24 +82,88 @@ 1.33 1.34 # Move every files in fs/squashfs directory 1.35 mv include/linux/* fs/squashfs 1.36 + rmdir include/linux 1.37 + ln -s ../fs/squashfs include/linux 1.38 ln -s . fs/squashfs/linux 1.39 for i in fs/squashfs/*.c fs/squashfs/*.h ; do 1.40 - sed -e 's/#include <\(linux\/squashfs.*\)>.*/#include "\1"/g' > $i.$$ < $i 1.41 - sed -e 's/CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE/3/g' > $i < $i.$$ 1.42 + sed -i 's/#include <\(linux\/squashfs.*\)>.*/#include "\1"/g' $i 1.43 + sed -i 's/CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE/3/g' $i 1.44 done 1.45 1.46 # Apply lzma patches 1.47 -# echo "Apply stuff/lzma.u.." 1.48 -# patch -p0 < ../../stuff/lzma.u || return 1 1.49 + cd .. 1.50 + slitaz_wget -c $SF_MIRROR/sevenzip/lzma457.tar.bz2 1.51 + tar xjf lzma457.tar.bz2 1.52 + SQLZMA=ftp://ftp.slax.org/source/slax/sqlzma/old-versions-unsupported 1.53 + slitaz_wget -c $SQLZMA/sqlzma457-1/sqlzma3.3-457.tar.bz2 1.54 + rm -f $(grep ^+++ sqlzma1-449.patch | awk '{ print $2 }' | \ 1.55 + sed 's|[^/]*/||') 2> /dev/null 1.56 + tar xjf sqlzma3.3-457.tar.bz2 1.57 + patch -p1 < sqlzma1-449.patch || return 1 1.58 + patch -p0 << EOT 1.59 +--- _kernel/fs/squashfs/inode.c 1.60 ++++ _kernel/fs/squashfs/inode.c 1.61 +@@ -2153 +2153 @@ 1.62 +- printk(KERN_INFO "squashfs: version 3.3-CVS (2008/04/04) " 1.63 ++ printk(KERN_INFO "squashfs: version 3.3 (2007/10/31) " 1.64 +@@ -2216 +2216 @@ 1.65 +-MODULE_DESCRIPTION("squashfs 3.3, a compressed read-only filesystem"); 1.66 ++MODULE_DESCRIPTION("squashfs 3.2-r2-CVS, a compressed read-only filesystem"); 1.67 + 1.68 +--- _kernel/fs/squashfs/squashfs_fs_sb.h 1.69 ++++ _kernel/fs/squashfs/squashfs_fs_sb.h 1.70 +@@ -26 +26 @@ 1.71 +-#include "linux/squashfs_fs.h" 1.72 ++#include <linux/squashfs_fs.h> 1.73 +EOT 1.74 + ( cd _kernel ; patch -p1 ) < sqlzma2k-3.3.patch || return 1 1.75 + patch -p0 << EOT 1.76 +--- _kernel/fs/squashfs/squashfs_fs_sb.h 1.77 ++++ _kernel/fs/squashfs/squashfs_fs_sb.h 1.78 +@@ -26 +26 @@ 1.79 +-#include <linux/squashfs_fs.h> 1.80 ++#include "linux/squashfs_fs.h" 1.81 +EOT 1.82 + cp sq*.h _kernel/fs/squashfs 1.83 + grep -q "sqlzma.h" squashfs3.3/squashfs-tools/mksquashfs.c || 1.84 + patch -p0 << EOT 1.85 +--- squashfs3.3/squashfs-tools/unsquashfs.c 1.86 ++++ squashfs3.3/squashfs-tools/unsquashfs.c 1.87 +@@ -326,2 +326,3 @@ 1.88 +- if((res = uncompress((unsigned char *) block, &bytes, 1.89 +- (const unsigned char *) buffer, c_byte)) != Z_OK) { 1.90 ++ res = uncompress((unsigned char *) block, &bytes, (const unsigned char *) buffer, c_byte); 1.91 ++ 1.92 ++ if(res != Z_OK) { 1.93 +@@ -365,2 +366,3 @@ 1.94 +- if((res = uncompress((unsigned char *) block, &bytes, 1.95 +- (const unsigned char *) data, c_byte)) != Z_OK) { 1.96 ++ res = uncompress((unsigned char *) block, &bytes, (const unsigned char *) data, c_byte); 1.97 ++ 1.98 ++ if(res != Z_OK) { 1.99 +EOT 1.100 + grep -q "sqlzma.h" squashfs3.3/squashfs-tools/mksquashfs.c || 1.101 + patch -p0 < sqlzma2u-3.3.patch || return 1 1.102 + export LzmaC=$PWD/C/Compress/Lzma 1.103 + export LzmaAlone=$PWD/CPP/7zip/Compress/LZMA_Alone 1.104 + export Sqlzma=$PWD/_kernel/fs/squashfs 1.105 + for i in $LzmaC $LzmaAlone ; do 1.106 + make -C $i -f sqlzma.mk || return 1 1.107 + done 1.108 + rm -f $LzmaC/kmod/uncomp.c 2> /dev/null 1.109 + make -C $LzmaC KDir=$PWD/_kernel/src/. -f kmod.mk || return 1 1.110 + cp $LzmaC/kmod/Module.symvers $Sqlzma 1.111 1.112 - # Build kernel module 1.113 + # Build kernel squashfs module 1.114 + cd _kernel 1.115 make -C src/. SUBDIRS=$(pwd)/fs/squashfs/ CONFIG_SQUASHFS=m modules || return 1 1.116 cd .. 1.117 [ -d _pkg ] && rm -rf _pkg 1.118 mkdir -p _pkg/lib/modules/$kver-slitaz/kernel/fs/squashfs 1.119 mkdir -p _pkg/usr/sbin _pkg/sbin 1.120 - lzma e _kernel/fs/squashfs/squashfs.ko \ 1.121 - _pkg/lib/modules/$kver-slitaz/kernel/fs/squashfs/squashfs.ko.gz 1.122 + find . -name "*.ko" | while read module; do 1.123 + lzma e $module _pkg/lib/modules/$kver-slitaz/kernel/fs/squashfs/$(basename $module).gz 1.124 + done 1.125 1.126 # Build user land tools 1.127 cd ${PACKAGE}${VERSION}/squashfs-tools