Added calckernel with hide busybox compilation

atratsevskiy
Mike Hiretsky 14 years ago
parent 787b33923e
commit 840c962ba4

@ -2,6 +2,12 @@
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
*calckernel-3.4.10.903-r23 (16 Sep 2010)
16 Sep 2010; Mike Hiretsky (mhiretskiy) <mh@calculate.ru>
+calckernel-3.4.10.903-r23.ebuild, +files/calckernel-3.4.10.903-r23.patch:
Added hide busybox compilation.
01 Jun 2010; Mike Hiretsky (mhiretskiy) <mh@calculate.ru>
calckernel-3.4.10.903-r22.ebuild:
Changed home page.

@ -1,4 +1,5 @@
AUX calckernel-3.4.10.903-r22.patch 11656 RMD160 4691d6fcb0199145cab9821e7efebb25fc3bfd47 SHA1 72ab1f2515978a2b27421787fcabafb7efa14815 SHA256 429d787952e1aa80d9c031453aac04a5e422b1ec71c1ca444a42578b47fb5dd5
AUX calckernel-3.4.10.903-r23.patch 12153 RMD160 1155106945fb46db93e2f3d3bd68090cf20accf4 SHA1 1d7c53e67dc11935e2a339e90de5beb8d85a13f5 SHA256 04ccb6ba8c08c09bbf1e74fb8ef7f17a4d9faf4d815cdff9f207721ad1ca6d80
AUX genkernel.bash 2438 RMD160 b3d8e4436d8768c07d18c5aaff9c14fc16641729 SHA1 e15a9c6ef506aa6872a6a97d26751246dedded04 SHA256 e7de9771ba79ef878e2c9a21a1c1720f092c6047d3cc7d4a49ff6b90e7e2c248
DIST LVM2.2.02.28.tgz 531905 RMD160 bf6f25db6e34bf362353ae9557691a7f01962502 SHA1 6eb2f6e1228b017ad23d0b7f2bb12fd113f96616 SHA256 2d8d7b123e427d0bfb7471d7c17dfd88890eb98257ca22ea3be5d7307e83aceb
DIST busybox-1.7.4.tar.bz2 1727940 RMD160 a4b71a246449f88a59acda6ecf019f66b9b7c19b SHA1 e5dcaa25525ca63663c3d4e7027897fed54a4f95 SHA256 8480a7c1b9ac0fddff55e8daae807ccf0a47aa292137fa8c9f97cf0733b459c7
@ -9,5 +10,6 @@ DIST fuse-2.7.4.tar.gz 506658 RMD160 fe1808cfd58ad6651259245b424301e99881faa2 SH
DIST genkernel-3.4.10.903.tar.bz2 210258 RMD160 1042cb154be145a95c5d8f95f5b646e948f18bd8 SHA1 67ebe450d40718f701da0bddf5ca48d497ab2241 SHA256 9348d915137b9e266163d706045aee4ec6af76cba5f0f07f5fe05e2e7eb0954f
DIST unionfs-fuse-0.22.tar.bz2 27355 RMD160 f29cbf41af0ba8f2181ac565a6663871676f6488 SHA1 e95799923ee3938e1fb44c6fd9aa7154d720063e SHA256 fa0c494a8ce63f235601fcc35e3a96527831169d6d5921ee49faccf3b25feb78
EBUILD calckernel-3.4.10.903-r22.ebuild 4826 RMD160 10c135db68ecd902be5bb296cb7909f69876b174 SHA1 98489b9221d1c5c59f17f2e7d8139402994f1cd3 SHA256 0413b1c5f9c3caebe6bb19d225bd4fd2b9d4e17ebaf927affc54e8f3bae4b6e6
MISC ChangeLog 552 RMD160 539d67b6c6d7843d4829cd3bbeac05de5f18f723 SHA1 698dd18ebabe0f7a121a1368ed0f7ba330b39520 SHA256 2ba4905d943214c019b866df1c1788dbfda09dd2f0ea72c731a759ea81e488e3
EBUILD calckernel-3.4.10.903-r23.ebuild 4826 RMD160 10c135db68ecd902be5bb296cb7909f69876b174 SHA1 98489b9221d1c5c59f17f2e7d8139402994f1cd3 SHA256 0413b1c5f9c3caebe6bb19d225bd4fd2b9d4e17ebaf927affc54e8f3bae4b6e6
MISC ChangeLog 766 RMD160 85b562c1090402a7f97d753ada3653e0a93d713f SHA1 bbe2a3f4b9023af607e2138b5d5cf89ef94f0c76 SHA256 03b5269b23d420c90462ca7fc6f50523c6bf105f4320156b1e03efd0dcf354a4
MISC metadata.xml 332 RMD160 7baff74f671fb7762513694b3d1694923b851b79 SHA1 72a7b3811a232e0506a65bdeb622f11abae0a04c SHA256 629337dd254d66431dd8752f97f1981de237cf1ca44a0eefc3a7cb8e667d7458

@ -0,0 +1,140 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-kernel/genkernel/genkernel-3.4.10.903.ebuild,v 1.1 2009/01/05 22:31:16 agaffney Exp $
# genkernel-9999 -> latest SVN
# genkernel-9999.REV -> use SVN REV
# genkernel-VERSION -> normal genkernel release
VERSION_BUSYBOX='1.7.4'
VERSION_DMAP='1.02.22'
VERSION_DMRAID='1.0.0.rc14'
VERSION_E2FSPROGS='1.40.9'
VERSION_LVM='2.02.28'
VERSION_FUSE='2.7.4'
VERSION_UNIONFS_FUSE='0.22'
MY_P=gen${P/#calc}
S=${WORKDIR}/${MY_P}
MY_HOME="http://wolf31o2.org"
RH_HOME="ftp://sources.redhat.com/pub"
DM_HOME="http://people.redhat.com/~heinzm/sw/dmraid/src"
BB_HOME="http://www.busybox.net/downloads"
COMMON_URI="${DM_HOME}/dmraid-${VERSION_DMRAID}.tar.bz2
${DM_HOME}/old/dmraid-${VERSION_DMRAID}.tar.bz2
${RH_HOME}/lvm2/LVM2.${VERSION_LVM}.tgz
${RH_HOME}/lvm2/old/LVM2.${VERSION_LVM}.tgz
${RH_HOME}/dm/device-mapper.${VERSION_DMAP}.tgz
${RH_HOME}/dm/old/device-mapper.${VERSION_DMAP}.tgz
${BB_HOME}/busybox-${VERSION_BUSYBOX}.tar.bz2
mirror://sourceforge/e2fsprogs/e2fsprogs-${VERSION_E2FSPROGS}.tar.gz
mirror://sourceforge/fuse/fuse-${VERSION_FUSE}.tar.gz
http://podgorny.cz/unionfs-fuse/releases/unionfs-fuse-${VERSION_UNIONFS_FUSE}.tar.bz2"
if [[ ${PV} == 9999* ]]
then
[[ ${PV} == 9999.* ]] && ESVN_UPDATE_CMD="svn up -r ${PV/9999./}"
EGIT_REPO_URI="git://git.wolf31o2.org/projs/genkernel.git"
inherit git bash-completion eutils
S="${WORKDIR}"
SRC_URI="${COMMON_URI}"
else
inherit bash-completion eutils
SRC_URI="mirror://gentoo/${MY_P}.tar.bz2
${MY_HOME}/sources/genkernel/${MY_P}.tar.bz2
ftp://ftp.calculate.ru/pub/calculate/calckernel/${MY_P}.tar.bz2
${COMMON_URI}"
fi
DESCRIPTION="Gentoo automatic kernel building scripts"
HOMEPAGE="http://www.calculate-linux.org/main/ru/calckernel"$
LICENSE="GPL-2"
SLOT="0"
RESTRICT=""
# Please don't touch individual KEYWORDS. Since this is maintained/tested by
# Release Engineering, it's easier for us to deal with all arches at once.
#KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sparc x86"
#KEYWORDS=""
IUSE="ibm selinux"
DEPEND="sys-fs/e2fsprogs
selinux? ( sys-libs/libselinux )
!sys-kernel/genkernel"
RDEPEND="${DEPEND} app-arch/cpio"
src_unpack() {
if [[ ${PV} == 9999* ]] ; then
git_src_unpack
else
unpack ${MY_P}.tar.bz2
fi
use selinux && sed -i 's/###//g' "${S}"/gen_compile.sh
cd ${S}
epatch "${FILESDIR}"/${PF}.patch
}
src_install() {
# This block updates genkernel.conf
sed -e "s:VERSION_DMAP:$VERSION_DMAP:" \
-e "s:VERSION_DMRAID:$VERSION_DMRAID:" \
-e "s:VERSION_E2FSPROGS:$VERSION_E2FSPROGS:" \
-e "s:VERSION_LVM:$VERSION_LVM:" \
-e "s:VERSION_BUSYBOX:$VERSION_BUSYBOX:" \
-e "s:VERSION_FUSE:$VERSION_FUSE:" \
-e "s:VERSION_UNIONFS_FUSE:$VERSION_UNIONFS_FUSE:" \
"${S}"/genkernel.conf > "${T}"/genkernel.conf \
|| die "Could not adjust versions"
insinto /etc
doins "${T}"/genkernel.conf || die "doins genkernel.conf"
doman genkernel.8 || die "doman"
dodoc AUTHORS ChangeLog README TODO || die "dodoc"
dobin genkernel || die "dobin genkernel"
rm -f genkernel genkernel.8 AUTHORS ChangeLog README TODO genkernel.conf
insinto /usr/share/genkernel
doins -r "${S}"/* || die "doins"
use ibm && cp "${S}"/ppc64/kernel-2.6-pSeries "${S}"/ppc64/kernel-2.6 || \
cp "${S}"/arch/ppc64/kernel-2.6.g5 "${S}"/arch/ppc64/kernel-2.6
# Copy files to /var/cache/genkernel/src
elog "Copying files to /var/cache/genkernel/src..."
mkdir -p "${D}"/var/cache/genkernel/src
cp -f \
"${DISTDIR}"/dmraid-${VERSION_DMRAID}.tar.bz2 \
"${DISTDIR}"/LVM2.${VERSION_LVM}.tgz \
"${DISTDIR}"/device-mapper.${VERSION_DMAP}.tgz \
"${DISTDIR}"/e2fsprogs-${VERSION_E2FSPROGS}.tar.gz \
"${DISTDIR}"/busybox-${VERSION_BUSYBOX}.tar.bz2 \
"${DISTDIR}"/fuse-${VERSION_FUSE}.tar.gz \
"${DISTDIR}"/unionfs-fuse-${VERSION_UNIONFS_FUSE}.tar.bz2 \
"${D}"/var/cache/genkernel/src || die "Copying distfiles..."
dobashcompletion "${FILESDIR}"/genkernel.bash
}
pkg_postinst() {
echo
elog 'Documentation is available in the genkernel manual page'
elog 'as well as the following URL:'
echo
elog 'http://www.gentoo.org/doc/en/genkernel.xml'
echo
ewarn "This package is known to not work with reiser4. If you are running"
ewarn "reiser4 and have a problem, do not file a bug. We know it does not"
ewarn "work and we don't plan on fixing it since reiser4 is the one that is"
ewarn "broken in this regard. Try using a sane filesystem like ext3 or"
ewarn "even reiser3."
echo
ewarn "The LUKS support has changed from versions prior to 3.4.4. Now,"
ewarn "you use crypt_root=/dev/blah instead of real_root=luks:/dev/blah."
echo
bash-completion_pkg_postinst
}

@ -0,0 +1,381 @@
diff --git a/arch/x86/modules_load b/arch/x86/modules_load
index 2e93dce..a6db29d 100644
--- a/arch/x86/modules_load
+++ b/arch/x86/modules_load
@@ -22,5 +22,5 @@ MODULES_PCMCIA="pcmcia pcmcia_core yenta_socket pd6729 i82092 i82365 tcic ds ide
MODULES_USB="ehci-hcd uhci usb-ohci hid usb-storage uhci-hcd ohci-hcd usbhid sl811-hcd"
# Filesystems
-MODULES_FS="ext2 ext3 reiserfs jfs nfs xfs fuse"
+MODULES_FS="ext2 ext3 ext4 reiserfs jfs nfs xfs fuse"
diff --git a/arch/x86_64/modules_load b/arch/x86_64/modules_load
index 67b9a48..857f1a3 100644
--- a/arch/x86_64/modules_load
+++ b/arch/x86_64/modules_load
@@ -22,4 +22,4 @@ MODULES_PCMCIA="pcmcia pcmcia_core yenta_socket pd6729 i82092 i82365 tcic ds ide
MODULES_USB="ehci-hcd uhci usb-ohci hid usb-storage uhci-hcd ohci-hcd usbhid sl811-hcd"
# Filesystems
-MODULES_FS="ext2 ext3 reiserfs jfs nfs xfs fuse"
+MODULES_FS="ext2 ext3 ext4 reiserfs jfs nfs xfs fuse"
diff --git a/defaults/initrd.defaults b/defaults/initrd.defaults
index a417144..92e9d2d 100755
--- a/defaults/initrd.defaults
+++ b/defaults/initrd.defaults
@@ -68,6 +68,7 @@ fi
REAL_ROOT=''
CDROOT='0'
+SCRATCH='0'
CDROOT_DEV=''
CDROOT_TYPE='auto'
NEW_ROOT='/newroot'
diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts
index beec6de..8900804 100755
--- a/defaults/initrd.scripts
+++ b/defaults/initrd.scripts
@@ -169,21 +169,45 @@ cache_cd_contents() {
# TODO: Check the size of the image versus the size of our tmpfs
# along with the amount of available RAM and increase tmpfs size
# if necessary. (Not having awk sucks...)
- # z=0
- # for i in $(cat /proc/meminfo | grep -e ^MemFree -e ^Cached | \
- # cut -d: -f2 | cut -dk -f1 | sed -e "s/^\s*//") ; do
- # z=$(($z + $i)) ; done
- # echo $z
- good_msg "Copying loop file for caching..."
- cp -a ${NEW_ROOT}/mnt/cdrom/${LOOP} ${NEW_ROOT}/mnt/${LOOP}
- if [ $? -ne 0 ]
+
+ # getting memory
+ allmemory=0
+ for i in $(cat /proc/meminfo | grep -e ^MemFree -e ^Cached | \
+ cut -d: -f2 | cut -dk -f1 | sed -e "s/^\s*//") ;
+ do
+ allmemory=$(($allmemory + $i))
+ done
+
+ # getting size tmpfs of default
+ let curtfs=$allmemory/2
+
+ # getting size of image
+ let imagesize=`ls -la ${NEW_ROOT}/mnt/cdrom/${LOOP} | sed -r -n 's/(\S*\s*){4}(\S*).*/\2/p'`/20000*21
+ let addon=$imagesize/10
+ if [[ $curtfs -gt $(( ${imagesize} + ${addon} )) ]];
+ then
+ let addon=$(( $curtfs - ${imagesize} ))
+ fi
+
+ if [[ $((${imagesize} + $addon)) -lt ${allmemory} ]];
then
- bad_msg "Failed to cache the loop file! Lack of space?"
- rm -rf ${NEW_ROOT}/mnt/livecd.* 2>/dev/null
- rm -rf ${NEW_ROOT}/mnt/image.* 2>/dev/null
- rm -rf ${NEW_ROOT}/mnt/zisofs 2>/dev/null
+ mount -o remount,size=${addon}000 -t tmpfs tmpfs ${NEW_ROOT}
+ mkdir ${NEW_ROOT}/mnt/squash
+ mount -o size=${imagesize}000 -t tmpfs tmpfs ${NEW_ROOT}/mnt/squash
+ good_msg "Copying loop file for caching..."
+ cp -a ${NEW_ROOT}/mnt/cdrom/${LOOP} ${NEW_ROOT}/mnt/squash/${LOOP}
+ if [ $? -ne 0 ]
+ then
+ bad_msg "Failed to cache the loop file! Lack of space?"
+ umount ${NEW_ROOT}/mnt/squash
+ mount -o remount,size=${curtfs}000 -t tmpfs tmpfs ${NEW_ROOT}
+ else
+ LOOPEXT='../squash/'
+ good_msg "Unmounting media from ${NEW_ROOT}/mnt/cdrom"
+ umount ${NEW_ROOT}/mnt/cdrom
+ fi
else
- LOOPEXT='../'
+ bad_msg "Too low memory for cache the loop file."
fi
fi
fi
@@ -950,6 +974,38 @@ getdvhoff() {
echo $(( $(hexdump -n 4 -s $((316 + 12 * $2)) -e '"%i"' $1) * 512))
}
+load_union_module() {
+ UNIONTYPE=""
+ # find module for union file system
+ [ -n "$(find /lib/ -name unionfs.ko)" ] && UNIONTYPE="unionfs"
+ [ -n "$(find /lib/ -name aufs.ko)" ] && UNIONTYPE="aufs"
+ # probably aufs in kernel
+ if [ -n "$(gzip -dc /proc/config.gz | grep CONFIG_AUFS_FS=y )" ]
+ then
+ UNIONTYPE="aufs"
+ else
+ if [ -z "${UNIONTYPE}" ]
+ then
+ bad_msg "Module for union file system is not found!"
+ run_shell
+ else
+ modprobe ${UNIONTYPE} > /dev/null 2>&1
+ # error on load union module
+ if [ -z "$(lsmod | grep $UNIONTYPE)" ]
+ then
+ bad_msg "Module for union file system is not correct!"
+ if [[ ${UNIONTYPE} = aufs ]]
+ then
+ bad_msg "Probably kernel compiled without standalone patch."
+ fi
+ run_shell
+ fi
+
+ good_msg "Loading ${UNIONTYPE}"
+ fi
+ fi
+}
+
setup_unionfs() {
local rw_dir=$1
local ro_dir=$2
@@ -969,6 +1025,7 @@ setup_unionfs() {
mkdir -p ${UNION}
good_msg "Loading fuse module"
modprobe fuse > /dev/null 2>&1
+ load_union_module
# if [ -n "${UNIONFS}" ]
# then
# CHANGESDEV=${UNIONFS}
@@ -998,10 +1055,101 @@ setup_unionfs() {
mkdir /tmp
mkdir -p ${UNION}
# mkdir -p $CHANGES
-# mount -t unionfs -o dirs=$CHANGES=rw unionfs ${UNION}
+## mount -t unionfs -o dirs=$CHANGES=rw unionfs ${UNION}
+
+ if [ "${SCRATCH}" -ne 0 ];
+ then
+ good_msg "Loading in scratch mode"
+ BUILDERDIR=${UNION}/mnt/builder
+ SCRATCHDIR=${UNION}/mnt/scratch
+ DELTADIR=${rw_dir}/mnt/delta
+ WORKSPACEDIR=${rw_dir}/mnt/workspace
+ mount -o remount,rw ${rw_dir}/mnt/cdrom >/dev/null 2>&1
+ touch ${rw_dir}/mnt/cdrom/livecd >/dev/null 2>&1
+ if [ "$?" -ne 0 ];
+ then
+ ISRW=0
+ else
+ ISRW=1
+ fi
+
+ mkdir -p ${DELTADIR}
+ mkdir -p ${WORKSPACEDIR}
+ if [[ ${UNIONTYPE} = aufs ]]
+ then
+ if ! mount -t aufs -o udba=reval,br:${WORKSPACEDIR}=rw:${DELTADIR}=ro+wh:${rw_dir}/mnt/livecd=ro none ${UNION}
+ then
+ bad_msg "Can't setup union mount!"
+ run_shell
+ fi
+ else
+ mount -t unionfs -o dirs=${WORKSPACEDIR}=rw:${DELTADIR}=ro:${rw_dir}/mnt/livecd=ro unionfs ${UNION}
+ fi
+ tmpret=$?;[ "$tmpret" -ne 0 ] && ret=$tmpret
+ mkdir -p ${SCRATCHDIR}/calculate
+ mkdir -p ${SCRATCHDIR}/delta
+ mkdir -p ${SCRATCHDIR}/workspace
+ mount -o bind ${rw_dir}/mnt/delta ${SCRATCHDIR}/delta
+ tmpret=$?;[ "$tmpret" -ne 0 ] && ret=$tmpret
+ mount -o bind ${rw_dir}/mnt/workspace ${SCRATCHDIR}/workspace
+ tmpret=$?;[ "$tmpret" -ne 0 ] && ret=$tmpret
+ mkdir -p ${BUILDERDIR}
+ if [[ ${UNIONTYPE} = aufs ]]
+ then
+ if ! mount -t aufs -o udba=reval,br:${DELTADIR}=rw:${rw_dir}/mnt/livecd=ro none ${BUILDERDIR}
+ then
+ bad_msg "Can't setup union mount!"
+ run_shell
+ fi
+ else
+ mount -t unionfs -o dirs=${DELTADIR}=rw:${rw_dir}/mnt/livecd=ro unionfs ${BUILDERDIR}
+ fi
+ tmpret=$?;[ "$tmpret" -ne 0 ] && ret=$tmpret
+ mount -o bind ${rw_dir}/mnt/livecd ${SCRATCHDIR}/calculate
+ tmpret=$?;[ "$tmpret" -ne 0 ] && ret=$tmpret
+ if [ "$ISRW" -ne 0 ];
+ then
+ FLASHDIR=${UNION}/mnt/flash
+ mkdir -p ${FLASHDIR}
+ mount -o bind ${rw_dir}/mnt/cdrom ${FLASHDIR}
+ tmpret=$?;[ "$tmpret" -ne 0 ] && ret=$tmpret
+ else
+ CDROMDIR=${UNION}/mnt/cdrom
+ mkdir -p ${CDROMDIR}
+ mount -o bind ${rw_dir}/mnt/cdrom ${CDROMDIR}
+ tmpret=$?;[ "$tmpret" -ne 0 ] && ret=$tmpret
+ fi
+ else
+ CDROMDIR=${UNION}/mnt/cdrom
+ LIVECDDIR=${UNION}/mnt/livecd
+
+ if [[ ${UNIONTYPE} = aufs ]]
+ then
+ if ! mount -t aufs -o udba=reval,br:${rw_dir}:${ro_dir}=ro none ${UNION}
+ then
+ bad_msg "Can't setup union mount!"
+ run_shell
+ fi
+ else
+ mount -t unionfs -o dirs=${rw_dir}:${ro_dir}=ro unionfs ${UNION}
+ fi
+
+ if [[ -n "$( echo ${LOOPEXT} | grep squash )" ]];
+ then
+ mkdir -p ${UNION}/mnt/squash
+ mount -o bind ${NEW_ROOT}/mnt/squash ${UNION}/mnt/squash
+ fi
+
+ chmod 0755 ${UNION}
+ mount -o bind ${rw_dir}/mnt/cdrom ${CDROMDIR}
+ mount -o bind ${rw_dir}/mnt/livecd ${LIVECDDIR}
+ ret=$?
+ fi
+
+ chmod 1777 ${UNION}/tmp
good_msg "Creating union mount"
- unionfs -o allow_other,cow,noinitgroups,suid,dev ${rw_dir}=RW:${ro_dir}=RO ${UNION} 2>/dev/null
- ret=$?
+# unionfs -o allow_other,cow,noinitgroups,suid,dev,default_permissions,use_ino ${rw_dir}=RW:${ro_dir}=RO ${UNION} 2>/dev/null
+# ret=$?
if [ "${ret}" -ne 0 ]
then
bad_msg "Can't setup union mount!"
diff --git a/defaults/linuxrc b/defaults/linuxrc
index d506f83..538b29b 100755
--- a/defaults/linuxrc
+++ b/defaults/linuxrc
@@ -62,6 +62,10 @@ do
init_opts\=*)
INIT_OPTS=`parse_opt "${x}"`
;;
+ # Scratch usbload
+ scratch)
+ SCRATCH=1
+ ;;
# Livecd options
cdroot)
CDROOT=1
@@ -465,9 +469,50 @@ do
then
break
else
- bad_msg "The filesystem mounted at ${REAL_ROOT} does not appear to be a valid /, try again"
- got_good_root=0
- REAL_ROOT=''
+ # check for scratch
+ if [ -e ${NEW_ROOT}/livecd.squashfs -a -d ${NEW_ROOT}/delta -a -d ${NEW_ROOT}/workspace ];
+ then
+ good_msg 'Found scratch data...'
+ load_union_module
+ modprobe squashfs >/dev/null
+ if mount -o remount,rw ${NEW_ROOT};
+ then
+ mkdir -p ${NEW_ROOT}/calculate && mkdir -p /union && mkdir -p ${NEW_ROOT}/workspace/mnt/builder && mkdir -p ${NEW_ROOT}/workspace/mnt/scratch
+ if mount -o loop,ro -t squashfs ${NEW_ROOT}/livecd.squashfs ${NEW_ROOT}/calculate;
+ then
+ if [[ ${UNIONTYPE} = aufs ]]
+ then
+ if mount -t aufs -o ro,udba=reval,br:${NEW_ROOT}/workspace=rw:${NEW_ROOT}/delta=ro+wh:${NEW_ROOT}/calculate=ro none /union;
+ then
+ mount -t aufs -o ro,udba=reval,br:${NEW_ROOT}/delta=rw:${NEW_ROOT}/calculate=ro none /union/mnt/builder
+ CHROOT=/union
+ break;
+ else
+ bad_msg 'Could not merge scratch layers!'
+ run_shell
+ fi
+ else
+ if mount -t unionfs -o ro,dirs=${NEW_ROOT}/workspace:${NEW_ROOT}/delta=ro:${NEW_ROOT}/calculate=ro unionfs /union;
+ then
+ mount -t unionfs -o ro,dirs=${NEW_ROOT}/delta:${NEW_ROOT}/calculate=ro unionfs /union/mnt/builder
+ CHROOT=/union
+ break;
+ else
+ bad_msg 'Could not merge scratch layers'
+ run_shell
+ fi
+ fi
+ else
+ bad_msg 'Could not mount scratch squashfs image'
+ fi
+ else
+ bad_msg 'Could not remount ${NEW_ROOT}'
+ fi
+ else
+ bad_msg "The filesystem mounted at ${REAL_ROOT} does not appear to be a valid /, try again"
+ got_good_root=0
+ REAL_ROOT=''
+ fi
fi
else
bad_msg "Could not mount specified ROOT, try again"
diff --git a/gen_cmdline.sh b/gen_cmdline.sh
index a1ca537..66b2462 100755
--- a/gen_cmdline.sh
+++ b/gen_cmdline.sh
@@ -19,6 +19,7 @@ longusage() {
echo " --logfile=<outfile> Output file for debug info"
echo " --color Output debug in color"
echo " --no-color Do not output debug in color"
+ echo " --no-cleartmp Do not clear temp directory"
echo " Kernel Configuration settings"
echo " --menuconfig Run menuconfig after oldconfig"
echo " --no-menuconfig Do not run menuconfig after oldconfig"
@@ -426,6 +427,10 @@ parse_cmdline() {
print_info 2 "USECOLOR: ${USECOLOR}"
setColorVars
;;
+ --no-cleartmp)
+ NOCLEARTMP=1
+ print_info 2 "NOCLEARTMP: ${NOCLEARTMP}"
+ ;;
--logfile=*)
CMD_LOGFILE=`parse_opt "$*"`
LOGFILE=`parse_opt "$*"`
diff --git a/gen_compile.sh b/gen_compile.sh
index 40ba84e..879ce53 100755
--- a/gen_compile.sh
+++ b/gen_compile.sh
@@ -381,7 +381,10 @@ compile_busybox() {
yes '' 2>/dev/null | compile_generic oldconfig utils
print_info 1 'busybox: >> Compiling...'
+ OLDLOGLEVEL=$LOGLEVEL
+ LOGLEVEL=1
compile_generic all utils
+ LOGLEVEL=$OLDLOGLEVEL
print_info 1 'busybox: >> Copying to cache...'
[ -f "${TEMP}/${BUSYBOX_DIR}/busybox" ] ||
gen_die 'Busybox executable does not exist!'
diff --git a/genkernel b/genkernel
index f74846e..fc3a56e 100755
--- a/genkernel
+++ b/genkernel
@@ -8,6 +8,7 @@ GK_V='3.4.10.902'
TMPDIR='/var/tmp/genkernel'
TODEBUGCACHE=1 # Until an error occurs or LOGFILE is fully qualified.
+NOCLEARTMP=0
small_die() {
echo $1
@@ -54,8 +55,12 @@ trap_cleanup(){
}
cleanup(){
+ if [[ ${NOCLEARTMP} -ne 0 ]]
+ then
+ return
+ fi
if [ -n "$TEMP" -a -d "$TEMP" ]; then
- rm -rf "$TEMP"
+ rm -rf "$TEMP" &>/dev/null
fi
if isTrue ${POSTCLEAR}
Loading…
Cancel
Save