wok rev 2991
Up squashfs (4.0)
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Mon May 11 19:12:26 2009 +0200 (2009-05-11) |
parents | 9059daaaa23d |
children | 214c9590a5e5 |
files | squashfs-module/receipt squashfs/receipt squashfs/stuff/squashfs-patch-2.6.25 |
line diff
1.1 --- a/squashfs-module/receipt Mon May 11 19:08:50 2009 +0200 1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 1.3 @@ -1,30 +0,0 @@ 1.4 -# SliTaz package receipt. 1.5 - 1.6 -PACKAGE="squashfs-module" 1.7 -VERSION="3.3" 1.8 -CATEGORY="base-system" 1.9 -SHORT_DESC="Linux squashfs module." 1.10 -MAINTAINER="pascal.bellard@slitaz.org" 1.11 -DEPENDS="linux" 1.12 -WEB_SITE="http://squashfs.sourceforge.net/" 1.13 -WANTED="squashfs" 1.14 - 1.15 -# Rules to gen a SliTaz package suitable for Tazpkg. 1.16 -genpkg_rules() 1.17 -{ 1.18 - kver=$(grep "kernel version" ../linux/$(ls ../linux/taz)/.config) 1.19 - kver=${kver##* } 1.20 - EXTRAVERSION=_$kver 1.21 - cp -a $src/_pkg/lib $fs 1.22 -} 1.23 - 1.24 -# Post install/remove commands for Tazpkg. 1.25 -post_install() 1.26 -{ 1.27 - chroot "$1/" depmod -a ${EXTRAVERSION#_}-slitaz 1.28 -} 1.29 - 1.30 -post_remove() 1.31 -{ 1.32 - depmod -a 1.33 -}
2.1 --- a/squashfs/receipt Mon May 11 19:08:50 2009 +0200 2.2 +++ b/squashfs/receipt Mon May 11 19:12:26 2009 +0200 2.3 @@ -1,198 +1,31 @@ 2.4 # SliTaz package receipt. 2.5 2.6 PACKAGE="squashfs" 2.7 -VERSION="3.3" 2.8 +VERSION="4.0" 2.9 CATEGORY="base-system" 2.10 SHORT_DESC="Linux squashfs userland tools." 2.11 MAINTAINER="pascal.bellard@slitaz.org" 2.12 WEB_SITE="http://$PACKAGE.sourceforge.net/" 2.13 -TARBALL="squashfs$VERSION.tgz" 2.14 +TARBALL="squashfs$VERSION.tar.gz" 2.15 WGET_URL="$SF_MIRROR/$PACKAGE/$TARBALL" 2.16 -DEPENDS="zlib squashfs-module" 2.17 -BUILD_DEPENDS="zlib-dev patch lzma" 2.18 +DEPENDS="zlib" 2.19 +BUILD_DEPENDS="zlib-dev" 2.20 PROVIDE="cromfs-or-squashfs" 2.21 -CONFIG_FILES="/etc/filesystems" 2.22 - 2.23 -# Download a source tarball 2.24 -. /etc/tazwok.conf 2.25 -slitaz_wget() 2.26 -{ 2.27 - if [ ! -f $SOURCES_REPOSITORY/$(basename $2) ]; then 2.28 - local here=$(pwd) 2.29 - cd $SOURCES_REPOSITORY 2.30 - wget $1 $2 2.31 - cd $here 2.32 - fi 2.33 - cp $SOURCES_REPOSITORY/$(basename $2) . 2.34 -} 2.35 2.36 # Rules to configure and make the package. 2.37 compile_rules() 2.38 { 2.39 - local kver 2.40 - local patch_dir 2.41 + mv ${PACKAGE}${VERSION} $src 2> /dev/null 2.42 2.43 - if [ -L $(which patch) ]; then 2.44 - echo "Please reinstall patch !" 2.45 - return 1 2.46 - fi 2.47 - mkdir -p $src 2.48 - cd $src 2.49 - mv ../$PACKAGE$VERSION . 2> /dev/null 2.50 - # get kernel version 2.51 - if [ ! -d $WOK/linux/taz ]; then 2.52 - tazwok cook linux 2.53 - fi 2.54 - kver=$(grep "kernel version" $WOK/linux/$(ls $WOK/linux/taz)/.config) 2.55 - kver=${kver##* } 2.56 - 2.57 - # Select patch according to kernel version 2.58 - patch_dir=${PACKAGE}${VERSION}/kernel-patches/linux-${kver%.*} 2.59 - i=${patch_dir##*.} 2.60 - while [ ! -d ${patch_dir%.*}.$i ]; do 2.61 - [ "$i" = "0" ] && break 2.62 - i=$(($i - 1)) 2.63 - done 2.64 - patch_dir=${patch_dir%.*}.$i 2.65 - if [ -d ${PACKAGE}${VERSION}/kernel-patches/linux-$kver ]; then 2.66 - patch_dir=${PACKAGE}${VERSION}/kernel-patches/linux-$kver 2.67 - fi 2.68 - if [ ! -d $patch_dir ]; then 2.69 - echo "No squashfs patchset for kernel $ker. Abort." 2.70 - return 1 2.71 - fi 2.72 - [ -d _kernel ] && rm -rf _kernel 2.73 - mkdir _kernel 2.74 - cd _kernel 2.75 - ln -fs $WOK/linux/linux-$kver* src 2.76 - 2.77 - # Copy files to be patched in local aera 2.78 - # Do not alter kernel sources !! 2.79 - for i in $(grep ^--- ../$patch_dir/${PACKAGE}${VERSION}-patch | \ 2.80 - awk '{ if ($3 != "1970-01-01") print $2 } '); do 2.81 - ( cd src ; tar cf - ${i#*/}) | tar xf - 2.82 - done 2.83 - 2.84 - # Apply squashfs patches in local aera 2.85 - #patch -p1 < ../$patch_dir/${PACKAGE}${VERSION}-patch 2.86 - echo "Apply $patch_dir..." 2.87 - awk 'BEGIN { keep=1} /^---/ { keep=(index($0,"/fs/squashfs/") || index($0,"/include/linux/"))} { if (keep) print }' < \ 2.88 - ../$patch_dir/${PACKAGE}${VERSION}-patch | patch -p1 2.89 - 2.90 - extra_patch=../stuff/squashfs-patch-${kver%.*} 2.91 - if [ -e ../$extra_patch ]; then 2.92 - echo "Apply $extra_patch..." 2.93 - patch -p1 < ../$extra_patch || return 1 2.94 - fi 2.95 - 2.96 - # Move every files in fs/squashfs directory 2.97 - mv include/linux/* fs/squashfs 2.98 - rmdir include/linux 2.99 - ln -s ../fs/squashfs include/linux 2.100 - ln -s . fs/squashfs/linux 2.101 - for i in fs/squashfs/*.c fs/squashfs/*.h ; do 2.102 - sed -i 's/#include <\(linux\/squashfs.*\)>.*/#include "\1"/g' $i 2.103 - sed -i 's/CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE/3/g' $i 2.104 - done 2.105 - 2.106 - # Apply lzma patches 2.107 - cd .. 2.108 - slitaz_wget -c $SF_MIRROR/sevenzip/lzma457.tar.bz2 2.109 - tar xjf lzma457.tar.bz2 2.110 - SQLZMA=ftp://ftp.slax.org/source/slax/sqlzma/old-versions-unsupported 2.111 - slitaz_wget -c $SQLZMA/sqlzma457-1/sqlzma3.3-457.tar.bz2 2.112 - tar xjf sqlzma3.3-457.tar.bz2 2.113 - rm -f $(grep ^+++ sqlzma1-449.patch | awk '{ print $2 }' | \ 2.114 - sed 's|[^/]*/||') 2> /dev/null 2.115 - patch -p1 < sqlzma1-449.patch || return 1 2.116 - patch -p0 << EOT 2.117 ---- _kernel/fs/squashfs/inode.c 2.118 -+++ _kernel/fs/squashfs/inode.c 2.119 -@@ -2153 +2153 @@ 2.120 -- printk(KERN_INFO "squashfs: version 3.3-CVS (2008/04/04) " 2.121 -+ printk(KERN_INFO "squashfs: version 3.3 (2007/10/31) " 2.122 -@@ -2216 +2216 @@ 2.123 --MODULE_DESCRIPTION("squashfs 3.3, a compressed read-only filesystem"); 2.124 -+MODULE_DESCRIPTION("squashfs 3.2-r2-CVS, a compressed read-only filesystem"); 2.125 - 2.126 ---- _kernel/fs/squashfs/squashfs_fs_sb.h 2.127 -+++ _kernel/fs/squashfs/squashfs_fs_sb.h 2.128 -@@ -26 +26 @@ 2.129 --#include "linux/squashfs_fs.h" 2.130 -+#include <linux/squashfs_fs.h> 2.131 -EOT 2.132 - ( cd _kernel ; patch -p1 ) < sqlzma2k-3.3.patch || return 1 2.133 - patch -p0 << EOT 2.134 ---- _kernel/fs/squashfs/squashfs_fs_sb.h 2.135 -+++ _kernel/fs/squashfs/squashfs_fs_sb.h 2.136 -@@ -26 +26 @@ 2.137 --#include <linux/squashfs_fs.h> 2.138 -+#include "linux/squashfs_fs.h" 2.139 -EOT 2.140 - cp sq*.h _kernel/fs/squashfs 2.141 - grep -q "sqlzma.h" squashfs3.3/squashfs-tools/mksquashfs.c || 2.142 - patch -p0 << EOT 2.143 ---- squashfs3.3/squashfs-tools/unsquashfs.c 2.144 -+++ squashfs3.3/squashfs-tools/unsquashfs.c 2.145 -@@ -326,2 +326,3 @@ 2.146 -- if((res = uncompress((unsigned char *) block, &bytes, 2.147 -- (const unsigned char *) buffer, c_byte)) != Z_OK) { 2.148 -+ res = uncompress((unsigned char *) block, &bytes, (const unsigned char *) buffer, c_byte); 2.149 -+ 2.150 -+ if(res != Z_OK) { 2.151 -@@ -365,2 +366,3 @@ 2.152 -- if((res = uncompress((unsigned char *) block, &bytes, 2.153 -- (const unsigned char *) data, c_byte)) != Z_OK) { 2.154 -+ res = uncompress((unsigned char *) block, &bytes, (const unsigned char *) data, c_byte); 2.155 -+ 2.156 -+ if(res != Z_OK) { 2.157 -EOT 2.158 - grep -q "sqlzma.h" squashfs3.3/squashfs-tools/mksquashfs.c || 2.159 - patch -p0 < sqlzma2u-3.3.patch || return 1 2.160 - export LzmaC=$PWD/C/Compress/Lzma 2.161 - export LzmaAlone=$PWD/CPP/7zip/Compress/LZMA_Alone 2.162 - export Sqlzma=$PWD/_kernel/fs/squashfs 2.163 - for i in $LzmaC $LzmaAlone ; do 2.164 - make -C $i -f sqlzma.mk || return 1 2.165 - done 2.166 - rm -f $LzmaC/kmod/uncomp.c 2> /dev/null 2.167 - make -C $LzmaC KDir=$PWD/_kernel/src/. -f kmod.mk || return 1 2.168 - cp $LzmaC/kmod/Module.symvers $Sqlzma 2.169 - 2.170 - # Build kernel squashfs module 2.171 - cd _kernel 2.172 - make -C src/. SUBDIRS=$(pwd)/fs/squashfs/ CONFIG_SQUASHFS=m modules || return 1 2.173 - cd .. 2.174 - [ -d _pkg ] && rm -rf _pkg 2.175 - mkdir -p _pkg/lib/modules/$kver-slitaz/kernel/fs/squashfs 2.176 - mkdir -p _pkg/usr/sbin _pkg/sbin 2.177 - find . -name "*.ko" | while read module; do 2.178 - lzma e $module _pkg/lib/modules/$kver-slitaz/kernel/fs/squashfs/$(basename $module).gz 2.179 - done 2.180 - 2.181 - # Build user land tools 2.182 - cd ${PACKAGE}${VERSION}/squashfs-tools 2.183 + cd $src/squashfs-tools 2.184 + mkdir -p ../_pkg/usr/sbin ../_pkg/sbin 2.185 make || return 1 2.186 - cp mksquashfs ../../_pkg/usr/sbin 2.187 - cp unsquashfs ../../_pkg/sbin 2.188 + cp mksquashfs ../_pkg/usr/sbin 2.189 + cp unsquashfs ../_pkg/sbin 2.190 } 2.191 2.192 # Rules to gen a SliTaz package suitable for Tazpkg. 2.193 genpkg_rules() 2.194 { 2.195 - mkdir $fs/etc 2.196 - touch $fs/etc/filesystems 2.197 cp -a $_pkg/usr $_pkg/sbin $fs 2.198 } 2.199 - 2.200 -# Pre remove and post install commands for Tazpkg. 2.201 -pre_remove() 2.202 -{ 2.203 - sed -i '/^$PACKAGE$/d' $1/etc/filesystems 2.204 -} 2.205 - 2.206 -post_install() 2.207 -{ 2.208 - grep -qs ^$PACKAGE$ $1/etc/filesystems || \ 2.209 - echo "$PACKAGE" >> $1/etc/filesystems 2.210 -}
3.1 --- a/squashfs/stuff/squashfs-patch-2.6.25 Mon May 11 19:08:50 2009 +0200 3.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 3.3 @@ -1,161 +0,0 @@ 3.4 -diff -x .gitignore -Nurp linux-2.6.25-rc7.orig/fs/squashfs/inode.c linux-2.6.25-rc7.new/fs/squashfs/inode.c 3.5 ---- linux-2.6.25-rc7.orig/fs/squashfs/inode.c 2008-04-05 00:19:09.000000000 +0100 3.6 -+++ linux-2.6.25-rc7.new/fs/squashfs/inode.c 2008-04-05 00:22:44.000000000 +0100 3.7 -@@ -1,7 +1,7 @@ 3.8 - /* 3.9 - * Squashfs - a compressed read only filesystem for Linux 3.10 - * 3.11 -- * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 3.12 -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 3.13 - * Phillip Lougher <phillip@lougher.demon.co.uk> 3.14 - * 3.15 - * This program is free software; you can redistribute it and/or 3.16 -@@ -37,7 +37,10 @@ 3.17 - 3.18 - int squashfs_cached_blks; 3.19 - 3.20 --static void vfs_read_inode(struct inode *i); 3.21 -+static struct dentry *squashfs_fh_to_dentry(struct super_block *s, 3.22 -+ struct fid *fid, int fh_len, int fh_type); 3.23 -+static struct dentry *squashfs_fh_to_parent(struct super_block *s, 3.24 -+ struct fid *fid, int fh_len, int fh_type); 3.25 - static struct dentry *squashfs_get_parent(struct dentry *child); 3.26 - static int squashfs_read_inode(struct inode *i, squashfs_inode_t inode); 3.27 - static int squashfs_statfs(struct dentry *, struct kstatfs *); 3.28 -@@ -78,15 +81,9 @@ static struct super_operations squashfs_ 3.29 - .remount_fs = squashfs_remount 3.30 - }; 3.31 - 3.32 --static struct super_operations squashfs_export_super_ops = { 3.33 -- .alloc_inode = squashfs_alloc_inode, 3.34 -- .destroy_inode = squashfs_destroy_inode, 3.35 -- .statfs = squashfs_statfs, 3.36 -- .put_super = squashfs_put_super, 3.37 -- .read_inode = vfs_read_inode 3.38 --}; 3.39 -- 3.40 - static struct export_operations squashfs_export_ops = { 3.41 -+ .fh_to_dentry = squashfs_fh_to_dentry, 3.42 -+ .fh_to_parent = squashfs_fh_to_parent, 3.43 - .get_parent = squashfs_get_parent 3.44 - }; 3.45 - 3.46 -@@ -630,42 +627,72 @@ static squashfs_inode_t squashfs_inode_l 3.47 - out: 3.48 - return SQUASHFS_INVALID_BLK; 3.49 - } 3.50 -- 3.51 - 3.52 --static void vfs_read_inode(struct inode *i) 3.53 -+ 3.54 -+ 3.55 -+static struct dentry *squashfs_export_iget(struct super_block *s, 3.56 -+ unsigned int inode_number) 3.57 - { 3.58 -- struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; 3.59 -- squashfs_inode_t inode = squashfs_inode_lookup(i->i_sb, i->i_ino); 3.60 -+ squashfs_inode_t inode; 3.61 -+ struct inode *i; 3.62 -+ struct dentry *dentry; 3.63 - 3.64 -- TRACE("Entered vfs_read_inode\n"); 3.65 -+ TRACE("Entered squashfs_export_iget\n"); 3.66 - 3.67 -- if(inode != SQUASHFS_INVALID_BLK) 3.68 -- (msblk->read_inode)(i, inode); 3.69 -+ inode = squashfs_inode_lookup(s, inode_number); 3.70 -+ if(inode == SQUASHFS_INVALID_BLK) { 3.71 -+ dentry = ERR_PTR(-ENOENT); 3.72 -+ goto failure; 3.73 -+ } 3.74 -+ 3.75 -+ i = squashfs_iget(s, inode, inode_number); 3.76 -+ if(i == NULL) { 3.77 -+ dentry = ERR_PTR(-EACCES); 3.78 -+ goto failure; 3.79 -+ } 3.80 -+ 3.81 -+ dentry = d_alloc_anon(i); 3.82 -+ if (dentry == NULL) { 3.83 -+ iput(i); 3.84 -+ dentry = ERR_PTR(-ENOMEM); 3.85 -+ } 3.86 -+ 3.87 -+failure: 3.88 -+ return dentry; 3.89 -+} 3.90 -+ 3.91 -+ 3.92 -+static struct dentry *squashfs_fh_to_dentry(struct super_block *s, 3.93 -+ struct fid *fid, int fh_len, int fh_type) 3.94 -+{ 3.95 -+ if((fh_type != FILEID_INO32_GEN && fh_type != FILEID_INO32_GEN_PARENT) || 3.96 -+ fh_len < 2) 3.97 -+ return NULL; 3.98 -+ 3.99 -+ return squashfs_export_iget(s, fid->i32.ino); 3.100 -+} 3.101 -+ 3.102 -+ 3.103 -+static struct dentry *squashfs_fh_to_parent(struct super_block *s, 3.104 -+ struct fid *fid, int fh_len, int fh_type) 3.105 -+{ 3.106 -+ if(fh_type != FILEID_INO32_GEN_PARENT || fh_len < 4) 3.107 -+ return NULL; 3.108 -+ 3.109 -+ return squashfs_export_iget(s, fid->i32.parent_ino); 3.110 - } 3.111 - 3.112 - 3.113 - static struct dentry *squashfs_get_parent(struct dentry *child) 3.114 - { 3.115 - struct inode *i = child->d_inode; 3.116 -- struct inode *parent = iget(i->i_sb, SQUASHFS_I(i)->u.s2.parent_inode); 3.117 -- struct dentry *rv; 3.118 - 3.119 - TRACE("Entered squashfs_get_parent\n"); 3.120 - 3.121 -- if(parent == NULL) { 3.122 -- rv = ERR_PTR(-EACCES); 3.123 -- goto out; 3.124 -- } 3.125 -- 3.126 -- rv = d_alloc_anon(parent); 3.127 -- if(rv == NULL) 3.128 -- rv = ERR_PTR(-ENOMEM); 3.129 -- 3.130 --out: 3.131 -- return rv; 3.132 -+ return squashfs_export_iget(i->i_sb, SQUASHFS_I(i)->u.s2.parent_inode); 3.133 - } 3.134 - 3.135 -- 3.136 -+ 3.137 - SQSH_EXTERN struct inode *squashfs_iget(struct super_block *s, 3.138 - squashfs_inode_t inode, unsigned int inode_number) 3.139 - { 3.140 -@@ -1257,7 +1284,6 @@ static int squashfs_fill_super(struct su 3.141 - if (read_inode_lookup_table(s) == 0) 3.142 - goto failed_mount; 3.143 - 3.144 -- s->s_op = &squashfs_export_super_ops; 3.145 - s->s_export_op = &squashfs_export_ops; 3.146 - 3.147 - allocate_root: 3.148 -@@ -2124,7 +2150,7 @@ static int __init init_squashfs_fs(void) 3.149 - if (err) 3.150 - goto out; 3.151 - 3.152 -- printk(KERN_INFO "squashfs: version 3.3 (2007/10/31) " 3.153 -+ printk(KERN_INFO "squashfs: version 3.3-CVS (2008/04/04) " 3.154 - "Phillip Lougher\n"); 3.155 - 3.156 - err = register_filesystem(&squashfs_fs_type); 3.157 -@@ -2187,6 +2213,6 @@ static void destroy_inodecache(void) 3.158 - 3.159 - module_init(init_squashfs_fs); 3.160 - module_exit(exit_squashfs_fs); 3.161 --MODULE_DESCRIPTION("squashfs 3.2-r2-CVS, a compressed read-only filesystem"); 3.162 -+MODULE_DESCRIPTION("squashfs 3.3, a compressed read-only filesystem"); 3.163 - MODULE_AUTHOR("Phillip Lougher <phillip@lougher.demon.co.uk>"); 3.164 - MODULE_LICENSE("GPL");