Added ebuild of calckernel, which supported scratch booting

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

@ -6,3 +6,4 @@
=sys-apps/calculate-server-9999
=sys-apps/calculate-client-2.0.13
>=app-cdr/k3b-1.6.1
=sys-kernel/calckernel-3.4.10.903-r3

@ -1,4 +1,5 @@
AUX calckernel-3.4.10.903-r2.patch 3217 RMD160 2af53fea69a8c4bb7295326c8dcca874186163eb SHA1 6988125ac5ec2788aeb24b39b9648edec2fcc09d SHA256 787528254f20544155f00fd36626d11eee681350a4217edfac22e6e21d68eee1
AUX calckernel-3.4.10.903-r3.patch 4908 RMD160 72573f2ed36a3c160cb2a84fc5e10f0ed5951408 SHA1 108428e261b925bcbbbb326f9225155be3541e15 SHA256 607cfcd283bbef1955cea17ab84394dba018555eb830a2840f94aa94eedbfb62
AUX calckernel-3.4.10.903.patch 1920 RMD160 9c52f4b43e3aec644308bf4e21df90dd64796aed SHA1 ac0ad37424cf13ee886645bb7df4c77d1bb765b3 SHA256 35799327095fa44febb7fcbdbec5e061d6b670e4aba7d901a24909df220f88ec
AUX calckernel-3.4.9.patch 4652 RMD160 6f8253b8422a1b8c3eef45a0119fabf710018d0b SHA1 a25aa7f0e146cf07bfa2426007c84785ea1f6d20 SHA256 669104f1d2ac7819222c2543688a69474a2add9b1bc4162ba4f420bd31779273
AUX genkernel.bash 2438 RMD160 b3d8e4436d8768c07d18c5aaff9c14fc16641729 SHA1 e15a9c6ef506aa6872a6a97d26751246dedded04 SHA256 e7de9771ba79ef878e2c9a21a1c1720f092c6047d3cc7d4a49ff6b90e7e2c248
@ -16,4 +17,5 @@ DIST unionfs-1.5pre-cvs200701042308.tar.gz 163418 RMD160 6d54be6db26a562dd943df2
DIST unionfs-fuse-0.22.tar.bz2 27355 RMD160 f29cbf41af0ba8f2181ac565a6663871676f6488 SHA1 e95799923ee3938e1fb44c6fd9aa7154d720063e SHA256 fa0c494a8ce63f235601fcc35e3a96527831169d6d5921ee49faccf3b25feb78
EBUILD calckernel-3.4.10.903-r1.ebuild 4721 RMD160 0ad6351496f60f77f5cdb47f91e8887ad2b67111 SHA1 a7f6d9be941333647a4dbc578316792fdd942fc5 SHA256 2f5327f3b368a25cda0dcce60f287c38cd6a2a74e03b6e3280fdd846c1aaeaf8
EBUILD calckernel-3.4.10.903-r2.ebuild 4722 RMD160 86a8fd0be899be5fe4db799269f0eae5063a30ac SHA1 2d52f4ff1805734cb0ffe572786015a9c0fe0311 SHA256 7ebc44592700cbfc4759508ddc147fe9cafe7c54116b731bfa42dfc7baa19206
EBUILD calckernel-3.4.10.903-r3.ebuild 4722 RMD160 86a8fd0be899be5fe4db799269f0eae5063a30ac SHA1 2d52f4ff1805734cb0ffe572786015a9c0fe0311 SHA256 7ebc44592700cbfc4759508ddc147fe9cafe7c54116b731bfa42dfc7baa19206
EBUILD calckernel-3.4.9.ebuild 3905 RMD160 86bc088b4a639478f63a6fdab2178da244b2050c SHA1 516ae1c03ad80a2d3b99b29cb602012e7fb71191 SHA256 92aaa6af4097d46db892e3443fa505b7764b7252207c3a5b6319b494e0eed5cc

@ -0,0 +1,138 @@
# Copyright 1999-2009 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
${COMMON_URI}"
fi
DESCRIPTION="Gentoo automatic kernel building scripts"
HOMEPAGE="http://www.gentoo.org"
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
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,121 @@
diff -ruN genkernel.orig/arch/x86/modules_load genkernel-3.4.10.903/arch/x86/modules_load
--- genkernel.orig/arch/x86/modules_load 2009-01-06 01:22:10.000000000 +0300
+++ genkernel-3.4.10.903/arch/x86/modules_load 2009-07-10 17:47:23.000000000 +0400
@@ -22,5 +22,5 @@
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 -ruN genkernel.orig/arch/x86_64/modules_load genkernel-3.4.10.903/arch/x86_64/modules_load
--- genkernel.orig/arch/x86_64/modules_load 2009-01-06 01:22:10.000000000 +0300
+++ genkernel-3.4.10.903/arch/x86_64/modules_load 2009-07-10 17:47:23.000000000 +0400
@@ -22,4 +22,4 @@
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 -ruN genkernel.orig/defaults/initrd.scripts genkernel-3.4.10.903/defaults/initrd.scripts
--- genkernel.orig/defaults/initrd.scripts 2009-01-06 01:22:10.000000000 +0300
+++ genkernel-3.4.10.903/defaults/initrd.scripts 2009-07-10 17:47:23.000000000 +0400
@@ -169,11 +169,24 @@
# 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
+
+ # getting memory
+ 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
+
+ # getting size tmpfs of default
+ let curtfs=$z/2
+
+ # getting size of image
+ let q=`ls -la /newroot/mnt/cdrom/livecd.squashfs | sed -r -n 's/(\S*\s*){4}(\S*).*/\2/p'`/5000*6
+
+ if [[ $((${curtfs}<${q})) = "1" -a $((${q}<${z})) = "1" ]];
+ then
+ good_msg "Increasing size of tmpfs for ${NEW_ROOT}"
+ mount -o remount,size=${q}000 -t tmpfs tmpfs /newroot
+ fi
good_msg "Copying loop file for caching..."
cp -a ${NEW_ROOT}/mnt/cdrom/${LOOP} ${NEW_ROOT}/mnt/${LOOP}
if [ $? -ne 0 ]
@@ -184,6 +197,8 @@
rm -rf ${NEW_ROOT}/mnt/zisofs 2>/dev/null
else
LOOPEXT='../'
+ good_msg "Unmounting media from ${NEW_ROOT}/mnt/cdrom"
+ umount ${NEW_ROOT}/mnt/cdrom
fi
fi
fi
@@ -998,10 +1013,13 @@
mkdir /tmp
mkdir -p ${UNION}
# mkdir -p $CHANGES
-# mount -t unionfs -o dirs=$CHANGES=rw unionfs ${UNION}
- good_msg "Creating union mount"
- unionfs -o allow_other,cow,noinitgroups,suid,dev ${rw_dir}=RW:${ro_dir}=RO ${UNION} 2>/dev/null
+## mount -t unionfs -o dirs=$CHANGES=rw unionfs ${UNION}
+ mount -t unionfs -o dirs=${rw_dir}:${ro_dir}=ro unionfs ${UNION}
ret=$?
+ chmod 1777 ${UNION}/tmp
+ good_msg "Creating union mount"
+# 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 -ruN genkernel.orig/defaults/linuxrc genkernel-3.4.10.903/defaults/linuxrc
--- genkernel.orig/defaults/linuxrc 2009-01-06 01:22:10.000000000 +0300
+++ genkernel-3.4.10.903/defaults/linuxrc 2009-07-10 17:53:06.000000000 +0400
@@ -465,9 +465,36 @@
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}/builder -a -d ${NEW_ROOT}/workspace ];
+ then
+ good_msg 'Found scratch data...'
+ modprobe unionfs &>/dev/null
+ modprobe squashfs &>/dev/null
+ if mount -o remount,rw ${NEW_ROOT};
+ then
+ mkdir -p ${NEW_ROOT}/scratch && mkdir -p /union && mkdir -p ${NEW_ROOT}/workspace/mnt/builder && mkdir -p ${NEW_ROOT}/workspace/mnt/calculate
+ if mount -o loop,ro -t squashfs ${NEW_ROOT}/livecd.squashfs ${NEW_ROOT}/scratch;
+ then
+ if mount -t unionfs -o ro,dirs=${NEW_ROOT}/workspace:${NEW_ROOT}/builder=ro:${NEW_ROOT}/scratch=ro unionfs /union;
+ then
+ mount -t unionfs -o ro,dirs=${NEW_ROOT}/builder:${NEW_ROOT}/scratch=ro unionfs /union/mnt/builder
+ CHROOT=/union
+ break;
+ else
+ bad_msg 'Could not merge scratch layers'
+ 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"
Loading…
Cancel
Save