From c355c04071bfee137dfc2616ed015c9b9582d26d Mon Sep 17 00:00:00 2001 From: mhiretskiy Date: Wed, 15 Apr 2009 15:12:01 +0000 Subject: [PATCH] =?UTF-8?q?Ebuild=20=D0=BF=D0=BE=D0=B4=D0=B4=D0=B5=D1=80?= =?UTF-8?q?=D0=B6=D0=BA=D0=B8=20squashfs+lzma?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://svn.calculate.ru/overlay@1221 c91db197-33c1-4113-bf15-f8a5c547ca64 --- sys-fs/calculate-squashfs/Manifest | 7 ++ .../calculate-squashfs-2.6.28.9.ebuild | 108 ++++++++++++++++++ .../files/squashfs-linux-2.6.28.patch | 15 +++ 3 files changed, 130 insertions(+) create mode 100644 sys-fs/calculate-squashfs/Manifest create mode 100644 sys-fs/calculate-squashfs/calculate-squashfs-2.6.28.9.ebuild create mode 100644 sys-fs/calculate-squashfs/files/squashfs-linux-2.6.28.patch diff --git a/sys-fs/calculate-squashfs/Manifest b/sys-fs/calculate-squashfs/Manifest new file mode 100644 index 000000000..08ea40daa --- /dev/null +++ b/sys-fs/calculate-squashfs/Manifest @@ -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 diff --git a/sys-fs/calculate-squashfs/calculate-squashfs-2.6.28.9.ebuild b/sys-fs/calculate-squashfs/calculate-squashfs-2.6.28.9.ebuild new file mode 100644 index 000000000..d86e76ca5 --- /dev/null +++ b/sys-fs/calculate-squashfs/calculate-squashfs-2.6.28.9.ebuild @@ -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 +} diff --git a/sys-fs/calculate-squashfs/files/squashfs-linux-2.6.28.patch b/sys-fs/calculate-squashfs/files/squashfs-linux-2.6.28.patch new file mode 100644 index 000000000..4eceee7b7 --- /dev/null +++ b/sys-fs/calculate-squashfs/files/squashfs-linux-2.6.28.patch @@ -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;