Fix calculate-kernel 3.

atratsevskiy
Mike Hiretsky 13 years ago
parent a34812b2c3
commit 6fbf3e3c86

@ -0,0 +1,168 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
#
# Original Author: © 2007-2009 Mir Calculate, Ltd.
# Purpose: Installing linux-desktop, linux-server.
# Build the kernel from source.
inherit calculate eutils kernel-2
EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst
IUSE="vmlinuz"
detect_version
detect_arch
if [[ ${KV_MAJOR} -ge 3 ]]
then
CKV=$(get_version_component_range 1-3)
CL_PATCH=$(get_version_component_range 1-2)
local oldifs=${IFS}
export IFS="."
local OKV_ARRAY=( $OKV )
export IFS=${oldifs}
if [[ ${#OKV_ARRAY[@]} -ge 3 ]]; then
# handle calculate-sources-3.x.y correctly
if [[ ${KV_PATCH} -gt 0 ]]; then
KERNEL_URI="${KERNEL_BASE_URI}/patch-${OKV}.bz2"
UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV}.bz2"
fi
KERNEL_URI="${KERNEL_URI} ${KERNEL_BASE_URI}/linux-${KV_MAJOR}.${KV_MINOR}.tar.bz2"
else
KERNEL_URI="${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2"
fi
else
die "Eclass is used only for kernel-3"
fi
SLOT=$(get_version_component_range 1-4)
KV_FULL="${PV}-calculate"
S="${WORKDIR}/linux-${KV_FULL}"
CALC_K_SUBV=.$(get_version_component_range 4)
[[ ${CALC_K_SUBV} == "." ]] && CALC_K_SUBV=
EXTRAVERSION="${CALC_K_SUBV}-calculate"
UNIPATCH_STRICTORDER=1
CALC_URI="ftp://ftp.calculate.ru/pub/calculate/${PN}/${PN}-${CL_PATCH}.tar.bz2
ftp://ftp.calculate-linux.org/pub/calculate/${PN}/${PN}-${CL_PATCH}.tar.bz2
http://mirror.yandex.ru/calculate/${PN}/${PN}-${CL_PATCH}.tar.bz2
ftp://ftp.linux.kiev.ua/pub/Linux/Calculate/${PN}/${PN}-${CL_PATCH}.tar.bz2"
if [[ -n $LONGTERM ]];then
if [[ $KERNEL_URI =~ ^(.*)(kernel/v3.0/patch)(.*)$ ]];then
KERNEL_URI="${BASH_REMATCH[1]}kernel/v3.0/longterm/v${CKV}/patch${BASH_REMATCH[3]}"
fi
fi
calculate-kernel-3_pkg_setup() {
kernel-2_pkg_setup
ewarn "!!! WARNING !!! WARNING !!! WARNING !!! WARNING !!!"
ewarn "After the kernel assemble perform command to update modules:"
ewarn " module-rebuild -X rebuild"
ebeep 5
}
calculate-kernel-3_src_unpack() {
kernel-2_src_unpack
}
vmlinuz_src_compile() {
# disable sandbox
export SANDBOX_ON=0
export LDFLAGS=""
local GENTOOARCH="${ARCH}"
unset ARCH
cd ${S}
DEFAULT_KERNEL_SOURCE="${S}" CMD_KERNEL_DIR="${S}" cl-kernel \
--ebuild \
${CL_KERNEL_OPTS} \
--kerneldir=${S} \
--set cl_kernel_cache_path=${WORKDIR}/cache \
--set cl_kernel_temp_path=${S}/temp \
--set cl_kernel_install_path=${WORKDIR} \
--mrproper || die "kernel build failed"
make distclean &>/dev/null || die "cannot perform distclean"
ARCH="${GENTOOARCH}"
rm ${WORKDIR}/lib/modules/${KV_FULL}/build
rm ${WORKDIR}/lib/modules/${KV_FULL}/source
}
calculate-kernel-3_src_compile() {
use vmlinuz && vmlinuz_src_compile
}
vmlinuz_src_install() {
cd ${WORKDIR}/lib
insinto /lib
doins -r modules
insinto /usr/share/${PN}/${PV}
doins -r firmware
cd ${WORKDIR}
doins -r boot
dosym /usr/src/linux-${KV_FULL} \
"/lib/modules/${KV_FULL}/source" ||
die "cannot install source symlink"
dosym /usr/src/linux-${KV_FULL} \
"/lib/modules/${KV_FULL}/build" ||
die "cannot install build symlink"
insinto /etc/modprobe.d
}
calculate-kernel-3_src_install() {
kernel-2_src_install
dodir /usr/share/${PN}/${PV}/boot
use vmlinuz && vmlinuz_src_install
if ! use vmlinuz
then
local configname=$(cl-kernel -v --filter cl_kernel_config | \
sed -nr 's/.*\[.\]\s//p')
[[ -n $configname ]] &&
cp $configname ${D}/usr/share/${PN}/${PV}/boot/config-${KV_FULL}
fi
}
vmlinuz_pkg_postinst() {
cp -p /usr/share/${PN}/${PV}/boot/* ${ROOT}/boot/
cl-kernel --ebuild \
-k /usr/src/linux-${KV_FULL} \
--set cl_kernel_install_path=${ROOT}/
mkdir -p ${ROOT}/lib/firmware
cp -a ${ROOT}/usr/share/${PN}/${PV}/firmware/* ${ROOT}/lib/firmware/
calculate_update_depmod
calculate_update_modules
[[ -f $MODULESDBFILE ]] &&
sed -ri 's/a:1:sys-fs\/aufs2/a:0:sys-fs\/aufs2/' $MODULESDBFILE
}
calculate-kernel-3_pkg_postinst() {
kernel-2_pkg_postinst
KV_OUT_DIR=${ROOT}/usr/src/linux-${KV_FULL}
if ls /usr/share/${PN}/${PV}/boot/ | grep -q System.map
then
cp -p /usr/share/${PN}/${PV}/boot/System.map* ${KV_OUT_DIR}/System.map
fi
cp -p /usr/share/${PN}/${PV}/boot/config* ${KV_OUT_DIR}/.config
cd ${KV_OUT_DIR}
local GENTOOARCH="${ARCH}"
unset ARCH
ebegin "kernel: >> Running oldconfig..."
make oldconfig </dev/null &>/dev/null
eend $? "Failed oldconfig"
ebegin "kernel: >> Running modules_prepare..."
make modules_prepare &>/dev/null
eend $? "Failed modules prepare"
ARCH="${GENTOOARCH}"
use vmlinuz && vmlinuz_pkg_postinst
}

@ -2,6 +2,10 @@
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
31 Aug 2011; Mike Hiretsky (mhiretskiy) <mh@calculate.ru>
calculate-sources-3.0.4.ebuild:
Update eclass for kernel compiling
*calculate-sources-3.0.4 (30 Aug 2011)
30 Aug 2011; Mike Hiretsky (mhiretskiy) <mh@calculate.ru>

@ -44,6 +44,6 @@ EBUILD calculate-sources-2.6.37.6.ebuild 1363 RMD160 561f6dba1255bb37fa01773783a
EBUILD calculate-sources-2.6.38.8.ebuild 744 RMD160 4d0334c6dd67a0a89aabb809239e79f52c4941cb SHA1 18a81f5fc9d309104dff70d96d46b5cb161c1492 SHA256 e997164cc8fcf5fd474c39cf35e518dea55878e4131a4037248aaf79cae9d3c7
EBUILD calculate-sources-2.6.39.4-r1.ebuild 746 RMD160 67ca1ff5ab4d3d593ab50efaea3ce4e632cf62f4 SHA1 e84d2ba547440e5546bdbc51fedf310cc68dd8c2 SHA256 eb949421bdbe497318fa3b460591c20dcc76fde4f716da9d794c0e7bf1df126b
EBUILD calculate-sources-2.6.39.4.ebuild 744 RMD160 4d0334c6dd67a0a89aabb809239e79f52c4941cb SHA1 18a81f5fc9d309104dff70d96d46b5cb161c1492 SHA256 e997164cc8fcf5fd474c39cf35e518dea55878e4131a4037248aaf79cae9d3c7
EBUILD calculate-sources-3.0.4.ebuild 746 RMD160 da051af5a7f5ff6a1228bef17da3080d8ef0db90 SHA1 fd7185d66674b221cae46f867fdf8a24a388230c SHA256 dad67466a9af28d384bdfd83a48d9175e738adf6d163749a3fd615fc7aedf46b
MISC ChangeLog 7496 RMD160 68f3776e2212ba9f4663d097881e2c44359c4093 SHA1 f4a6194c218849abebd41d722ffb622474ff4022 SHA256 9d8565abc42732674038cbe4f46da777d51ea8b124c519d4778c47d708b9facc
EBUILD calculate-sources-3.0.4.ebuild 751 RMD160 ced335c07943c0af9dcd9bb6bc6890a8ffb66a7f SHA1 90580160d6a2024d9fa2317e4361555f613e65e1 SHA256 97a38d5c002a260fd38144b4d846a97dd8dde15826e13643dec7f7a7a106cec2
MISC ChangeLog 7628 RMD160 1ddbca934ab85c95273aa488759ed64eb9cff4c1 SHA1 f7dbf5c6e1f751a89b7abe99f0b39d33d9dd4b5a SHA256 bbd8db2fc9698d209d453076d5289635986ccb23df8803a6f1251979c244f2d2
MISC metadata.xml 523 RMD160 855108e020b3f1fe32f843accc94a57f15affa0e SHA1 7fbeb862ff719c9ef63925b7f18104ff6eac27dd SHA256 997dc6d02e44eef86cc9653d7588b9f65e9033f02e28b3a8d98f48df82561f3c

@ -4,7 +4,7 @@
ETYPE="sources"
inherit calculate-kernel-2 eutils
inherit calculate-kernel-3 eutils
DESCRIPTION="Full sources including the Calculate patchset for the ${KV_MAJOR}.${KV_MINOR} kernel tree"
KEYWORDS="~amd64 ~x86"
@ -12,7 +12,7 @@ HOMEPAGE="http://www.calculate-linux.org"
SRC_URI="${KERNEL_URI} ${ARCH_URI} ${CALC_URI}"
UNIPATCH_LIST="${DISTDIR}/${PN}-${CKV}.tar.bz2"
UNIPATCH_LIST="${DISTDIR}/${PN}-${CL_PATCH}.tar.bz2"
DEPEND="vmlinuz? ( >=sys-kernel/calckernel-3.4.18
>=sys-apps/calculate-builder-2.2.22-r2
@ -23,9 +23,9 @@ IUSE=""
CL_KERNEL_OPTS="--lvm --mdadm --dmraid"
src_unpack() {
calculate-kernel-2_src_unpack
calculate-kernel-3_src_unpack
}
pkg_postinst() {
calculate-kernel-2_pkg_postinst
calculate-kernel-3_pkg_postinst
}

Loading…
Cancel
Save