# HG changeset patch # User Pascal Bellard # Date 1230138144 0 # Node ID 896e4b9114be89fa4ecd61f00dfa1e79052dfe89 # Parent fe3b7cbf1a7ffed731f136041b5e5a891d2eb6e5 Squashfs: add lzma support diff -r fe3b7cbf1a7f -r 896e4b9114be squashfs/receipt --- a/squashfs/receipt Wed Dec 24 14:55:29 2008 +0100 +++ b/squashfs/receipt Wed Dec 24 17:02:24 2008 +0000 @@ -12,6 +12,19 @@ BUILD_DEPENDS="zlib-dev patch lzma" PROVIDE="cromfs-or-squashfs" +# Download a source tarball +. /etc/tazwok.conf +slitaz_wget() +{ + if [ ! -f $SOURCES_REPOSITORY/$(basename $2) ]; then + local here=$(pwd) + cd $SOURCES_REPOSITORY + wget $1 $2 + cd $here + fi + cp $SOURCES_REPOSITORY/$(basename $2) . +} + # Rules to configure and make the package. compile_rules() { @@ -20,7 +33,7 @@ mkdir -p $src cd $src - mv ../$PACKAGE$VERSION . + mv ../$PACKAGE$VERSION . 2> /dev/null # get kernel version if [ ! -d $WOK/linux/taz ]; then tazwok cook linux @@ -69,24 +82,88 @@ # Move every files in fs/squashfs directory mv include/linux/* fs/squashfs + rmdir include/linux + ln -s ../fs/squashfs include/linux ln -s . fs/squashfs/linux for i in fs/squashfs/*.c fs/squashfs/*.h ; do - sed -e 's/#include <\(linux\/squashfs.*\)>.*/#include "\1"/g' > $i.$$ < $i - sed -e 's/CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE/3/g' > $i < $i.$$ + sed -i 's/#include <\(linux\/squashfs.*\)>.*/#include "\1"/g' $i + sed -i 's/CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE/3/g' $i done # Apply lzma patches -# echo "Apply stuff/lzma.u.." -# patch -p0 < ../../stuff/lzma.u || return 1 + cd .. + slitaz_wget -c $SF_MIRROR/sevenzip/lzma457.tar.bz2 + tar xjf lzma457.tar.bz2 + SQLZMA=ftp://ftp.slax.org/source/slax/sqlzma/old-versions-unsupported + slitaz_wget -c $SQLZMA/sqlzma457-1/sqlzma3.3-457.tar.bz2 + rm -f $(grep ^+++ sqlzma1-449.patch | awk '{ print $2 }' | \ + sed 's|[^/]*/||') 2> /dev/null + tar xjf sqlzma3.3-457.tar.bz2 + patch -p1 < sqlzma1-449.patch || return 1 + patch -p0 << EOT +--- _kernel/fs/squashfs/inode.c ++++ _kernel/fs/squashfs/inode.c +@@ -2153 +2153 @@ +- printk(KERN_INFO "squashfs: version 3.3-CVS (2008/04/04) " ++ printk(KERN_INFO "squashfs: version 3.3 (2007/10/31) " +@@ -2216 +2216 @@ +-MODULE_DESCRIPTION("squashfs 3.3, a compressed read-only filesystem"); ++MODULE_DESCRIPTION("squashfs 3.2-r2-CVS, a compressed read-only filesystem"); + +--- _kernel/fs/squashfs/squashfs_fs_sb.h ++++ _kernel/fs/squashfs/squashfs_fs_sb.h +@@ -26 +26 @@ +-#include "linux/squashfs_fs.h" ++#include +EOT + ( cd _kernel ; patch -p1 ) < sqlzma2k-3.3.patch || return 1 + patch -p0 << EOT +--- _kernel/fs/squashfs/squashfs_fs_sb.h ++++ _kernel/fs/squashfs/squashfs_fs_sb.h +@@ -26 +26 @@ +-#include ++#include "linux/squashfs_fs.h" +EOT + cp sq*.h _kernel/fs/squashfs + grep -q "sqlzma.h" squashfs3.3/squashfs-tools/mksquashfs.c || + patch -p0 << EOT +--- squashfs3.3/squashfs-tools/unsquashfs.c ++++ squashfs3.3/squashfs-tools/unsquashfs.c +@@ -326,2 +326,3 @@ +- if((res = uncompress((unsigned char *) block, &bytes, +- (const unsigned char *) buffer, c_byte)) != Z_OK) { ++ res = uncompress((unsigned char *) block, &bytes, (const unsigned char *) buffer, c_byte); ++ ++ if(res != Z_OK) { +@@ -365,2 +366,3 @@ +- if((res = uncompress((unsigned char *) block, &bytes, +- (const unsigned char *) data, c_byte)) != Z_OK) { ++ res = uncompress((unsigned char *) block, &bytes, (const unsigned char *) data, c_byte); ++ ++ if(res != Z_OK) { +EOT + grep -q "sqlzma.h" squashfs3.3/squashfs-tools/mksquashfs.c || + patch -p0 < sqlzma2u-3.3.patch || return 1 + export LzmaC=$PWD/C/Compress/Lzma + export LzmaAlone=$PWD/CPP/7zip/Compress/LZMA_Alone + export Sqlzma=$PWD/_kernel/fs/squashfs + for i in $LzmaC $LzmaAlone ; do + make -C $i -f sqlzma.mk || return 1 + done + rm -f $LzmaC/kmod/uncomp.c 2> /dev/null + make -C $LzmaC KDir=$PWD/_kernel/src/. -f kmod.mk || return 1 + cp $LzmaC/kmod/Module.symvers $Sqlzma - # Build kernel module + # Build kernel squashfs module + cd _kernel make -C src/. SUBDIRS=$(pwd)/fs/squashfs/ CONFIG_SQUASHFS=m modules || return 1 cd .. [ -d _pkg ] && rm -rf _pkg mkdir -p _pkg/lib/modules/$kver-slitaz/kernel/fs/squashfs mkdir -p _pkg/usr/sbin _pkg/sbin - lzma e _kernel/fs/squashfs/squashfs.ko \ - _pkg/lib/modules/$kver-slitaz/kernel/fs/squashfs/squashfs.ko.gz + find . -name "*.ko" | while read module; do + lzma e $module _pkg/lib/modules/$kver-slitaz/kernel/fs/squashfs/$(basename $module).gz + done # Build user land tools cd ${PACKAGE}${VERSION}/squashfs-tools