Ebuild поддержки squashfs+lzma

git-svn-id: http://svn.calculate.ru/overlay@1221 c91db197-33c1-4113-bf15-f8a5c547ca64
atratsevskiy
mhiretskiy 15 years ago
parent f9d20c1f15
commit c355c04071

@ -0,0 +1,7 @@
AUX squashfs-linux-2.6.28.patch 352 RMD160 c123e7390e6c58be00e982bbce286666f8167b8f SHA1 d2822e10ee008f7430398f4d0406256e5787d3b2 SHA256 58fccef2e098d9f496cd0fce0a699803381ff8a60d021ab595ac656100836569
DIST linux-2.6.28.tar.bz2 52665364 RMD160 47e8925220e29e239f9478228fc53543c1f7b300 SHA1 4f40f8bf3fd110b0cc6e1fea5f539c98f9959e94 SHA256 ae0d97c55efe7fce01273c97f8152af0deff5541e3bbf5b9ad98689112b54380
DIST lzma457.tar.bz2 298927 RMD160 9a3b8577e99f4ae4e62e75e1f3bbd3f1626e140f SHA1 bd1b46ba42fe1ad7351a39c131e8b7657e909001 SHA256 e1d07b372d9748eba715354bfd540ae2cb0e2c7e83ce630439420ab7df13f2e0
DIST patch-2.6.28.9.bz2 173005 RMD160 226641938d0e9bd137b7388a4a015ebfa5216c55 SHA1 80de4c8dba6122fc8dfa5987b617090acf6842e0 SHA256 2d9342ac09e2c69a98ab000ee1313596e2bb9692cbe52ae52c43f913a7a03682
DIST sqlzma3.4-457.tar.bz2 17470 RMD160 7654ece88117300023b2d552e6f1f1fc5630dfb3 SHA1 6f34274e15ae17082d074d7c36b9ba739cb9f2e2 SHA256 856beef4e09c41f2c1b9b60417f66db3876703724ae226273b254ccab07641f6
DIST squashfs3.4.tar.gz 352660 RMD160 e75c9a9e5220e80a8e321536f8fe8372bfe5d830 SHA1 6933a8f3098d94f93ec4002a54026b15a6e11640 SHA256 9ea1a9b3bd4f387ca11b5e96f00f8ae996fb81c4c7ad41f7c7f359917628a339
EBUILD calculate-squashfs-2.6.28.9.ebuild 3428 RMD160 91fa7b7a0f9013613d97adf35a8c52c5cfd4657e SHA1 abe100490f41c8f93386edf8e476e27588300d94 SHA256 3aa4e72d28e0231a9eca21bba010181cdd081e9b9b0f4fda90cac4e4d389060c

@ -0,0 +1,108 @@
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
inherit eutils flag-o-matic linux-info toolchain-funcs linux-mod
# versions as
SQUASH_PV="squashfs3.4"
LZMA_PV="lzma457"
SQ_PV=${SQUASH_PV/#squashfs}
SQLZMA_PV="sqlzma${SQ_PV}-${LZMA_PV/#lzma}"
[[ ${PV} =~ ([0-9]+)\.([0-9]+)\.([0-9]+)\.?([0-9]+)? ]]
# version kernel
KV_MAJOR=${BASH_REMATCH[1]}
KV_MINOR=${BASH_REMATCH[2]}
KV_PATCH=${BASH_REMATCH[3]}
KV_TYPE=${BASH_REMATCH[4]}
OKV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
DESCRIPTION="Tool for creating compressed filesystem type squashfs"
HOMEPAGE="http://squashfs.sourceforge.net http://www.squashfs-lzma.org"
SRC_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_MINOR}/patch-${OKV}.${KV_TYPE}.bz2
mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_MINOR}/linux-${OKV}.tar.bz2
mirror://sourceforge/squashfs/${SQUASH_PV}.tar.gz
mirror://sourceforge/sevenzip/${LZMA_PV}.tar.bz2
ftp://ftp.slax.org/source/slax/sqlzma/${SQUASH_PV}.tar.gz
ftp://ftp.slax.org/source/slax/sqlzma/${SQLZMA_PV}.tar.bz2"
DEPEND="=sys-kernel/calculate-sources-${OKV}.${KV_TYPE}"
RDEPEND="!sys-fs/squashfs-tools"
LICENSE="GPL-2 LGPL-2.1"
SLOT="0"
KEYWORDS="~amd64 ~x86"
BUILD_TARGETS="all"
[[ ${ARCH} == "amd64" ]] && ARCH="x86_64"
BUILD_TARGET_ARCH="${ARCH}"
MODULE_NAMES="sqlzma(kernel/fs/squashfs:.) squashfs(kernel/fs/squashfs:.) unlzma(kernel/fs/squashfs:.)"
pkg_setup() {
if kernel_is lt 2 6 24; then
eerror
eerror "${P} needs kernel 2.6.24 or above."
eerror
die "Upgrade kernel"
fi
linux-mod_pkg_setup
append-ldflags -Wl,--no-as-needed
}
src_unpack() {
cd ${WORKDIR}
unpack ${SQLZMA_PV}.tar.bz2 || die
unpack ${SQUASH_PV}.tar.gz || die
unpack linux-${OKV}.tar.bz2 || die
unpack patch-${OKV}.${KV_TYPE}.bz2 || die
mkdir ${LZMA_PV}
cd ${LZMA_PV}
unpack ${LZMA_PV}.tar.bz2 || die
cd ../linux-${OKV}
epatch ../patch-${OKV}.${KV_TYPE} || die
epatch ../${SQUASH_PV}/kernel-patches/linux-2.6.27-rc4/${SQUASH_PV}-patch || die
epatch ../sqlzma2k-${SQ_PV}.patch || die
if kernel_is ge 2 6 28; then
epatch "${FILESDIR}"/squashfs-linux-${OKV}.patch || die
sed -i "s:EXTRAVERSION = .9:EXTRAVERSION = .${KV_TYPE}-calculate:" Makefile|| die
sed -i "s:KVer = linux-2.6.27.4:KVer = linux-${OKV}:" ../Makefile|| die
fi
cd ../${SQUASH_PV}
epatch ../sqlzma2u-${SQ_PV}.patch || die
cd ..
epatch sqlzma1-${LZMA_PV/#lzma}.patch || die
ln -s ../../linux-${OKV} ${SQUASH_PV}/kernel-patches
if [ -e ${KV_OUT_DIR}/.config ]
then
cp ${KV_OUT_DIR}/.config linux-${OKV}
else
die "Not found ${KV_OUT_DIR}/.config"
fi
cd linux-${OKV}
sed -i "/^CONFIG_SQUASHFS=/d" .config|| die
sed -i "/^CONFIG_SQUASHFS_EMBEDDED=/d" .config|| die
sed -i "/^CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=/d" .config|| die
echo CONFIG_SQUASHFS=m >> .config
echo CONFIG_SQUASHFS_EMBEDDED=n >> .config
echo CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 >> .config
make oldconfig
make prepare
make scripts
}
#
src_compile() {
emake CC="$(tc-getCC)" || die
mkdir BUILD
cp ./linux-${OKV}/fs/squashfs/squashfs.ko BUILD
cp ./${LZMA_PV}/C/Compress/Lzma/kmod/sqlzma.ko BUILD
cp ./${LZMA_PV}/C/Compress/Lzma/kmod/unlzma.ko BUILD
cp ./${SQUASH_PV}/squashfs-tools/unsquashfs BUILD
cp ./${SQUASH_PV}/squashfs-tools/mksquashfs BUILD
strip --strip-unneeded BUILD/mksquashfs BUILD/unsquashfs
}
#
src_install() {
cd BUILD
dobin mksquashfs unsquashfs || die
linux-mod_src_install
}

@ -0,0 +1,15 @@
--- linux-2.6.28.orig/fs/squashfs/inode.c 2009-04-14 10:41:25.000000000 +0400
+++ linux-2.6.28/fs/squashfs/inode.c 2009-04-14 10:42:48.000000000 +0400
@@ -693,11 +693,7 @@
goto failure;
}
- dentry = d_alloc_anon(i);
- if (dentry == NULL) {
- iput(i);
- dentry = ERR_PTR(-ENOMEM);
- }
+ dentry = d_obtain_alias(i);
failure:
return dentry;
Loading…
Cancel
Save