|
|
|
@ -8,7 +8,7 @@
|
|
|
|
|
# Build the kernel from source.
|
|
|
|
|
|
|
|
|
|
inherit calculate eutils kernel-2
|
|
|
|
|
EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst pkg_postrm
|
|
|
|
|
EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst
|
|
|
|
|
|
|
|
|
|
IUSE="vmlinuz"
|
|
|
|
|
|
|
|
|
@ -18,8 +18,6 @@ detect_arch
|
|
|
|
|
CKV=$(get_version_component_range 1-3)
|
|
|
|
|
SLOT=$(get_version_component_range 1-4)
|
|
|
|
|
KV_FULL="${PV}-calculate"
|
|
|
|
|
#CKV_FULL="${CKV}-calculate"
|
|
|
|
|
CKV_FULL=${KV_FULL}
|
|
|
|
|
|
|
|
|
|
S="${WORKDIR}/linux-${KV_FULL}"
|
|
|
|
|
EXTRAVERSION="-calculate"
|
|
|
|
@ -35,35 +33,25 @@ CALC_URI="ftp://ftp.calculate.ru/pub/calculate/${PN}/${PN}-${CKV}.tar.bz2
|
|
|
|
|
http://mirror.yandex.ru/calculate/${PN}/${PN}-${CKV}.tar.bz2
|
|
|
|
|
ftp://ftp.linux.kiev.ua/pub/Linux/Calculate/${PN}/${PN}-${CKV}.tar.bz2"
|
|
|
|
|
|
|
|
|
|
#KERNEL_URI=`last_arg $KERNEL_URI`
|
|
|
|
|
#UNIPATCH_LIST_DEFAULT=""
|
|
|
|
|
|
|
|
|
|
SLOT_T="${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PN}-${SLOT}/temp"
|
|
|
|
|
|
|
|
|
|
NEW_CALCULATE_OVERLAY="/var/lib/layman/calculate"
|
|
|
|
|
[[ -d ${ROOT}/${NEW_CALCULATE_OVERLAY} ]] &&
|
|
|
|
|
CALCULATE_OVERLAY=${NEW_CALCULATE_OVERLAY} ||
|
|
|
|
|
CALCULATE_OVERLAY="/usr/local/portage/layman/calculate"
|
|
|
|
|
|
|
|
|
|
CARCH=`arch`
|
|
|
|
|
|
|
|
|
|
MODULESDBFILE=${ROOT}/var/lib/module-rebuild/moduledb
|
|
|
|
|
|
|
|
|
|
calculate-kernel_pkg_setup() {
|
|
|
|
|
mkdir -p ${SLOT_T}
|
|
|
|
|
kernel-2_pkg_setup
|
|
|
|
|
local calculate_ini=${ROOT}/etc/calculate/calculate.ini
|
|
|
|
|
[[ -e $calculate_ini ]] && \
|
|
|
|
|
SYSTEM=$( cat $calculate_ini | sed -rn 's/^system\=(.*)/\1/p' )
|
|
|
|
|
SYSTEM=$( sed -rn 's/^system\=(.*)/\1/p' $calculate_ini )
|
|
|
|
|
[[ -n "$SYSTEM" ]] || SYSTEM=desktop
|
|
|
|
|
if [[ -z "${KERNEL_CONFIG}" ]] || [[ ! -f "${KERNEL_CONFIG}" ]]
|
|
|
|
|
then
|
|
|
|
|
KERNEL_CONFIG="${ROOT}/${CALCULATE_OVERLAY}/profiles/kernel"
|
|
|
|
|
[[ -n "$CARCH" ]] || CARCH=`arch`
|
|
|
|
|
KERNEL_CONFIG="${KERNEL_CONFIG}/config-${SYSTEM}-${CARCH}-${CKV}"
|
|
|
|
|
fi
|
|
|
|
|
#detect current kernel dir
|
|
|
|
|
[[ -e ${ROOT}/usr/src/linux ]] &&
|
|
|
|
|
SRCLINUXLINK=$( readlink ${ROOT}/usr/src/linux )
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
calculate-kernel_src_unpack() {
|
|
|
|
@ -73,7 +61,13 @@ calculate-kernel_src_unpack() {
|
|
|
|
|
vmlinuz_src_compile() {
|
|
|
|
|
# disable sandbox
|
|
|
|
|
export SANDBOX_ON=0
|
|
|
|
|
export LDFLAGS=""
|
|
|
|
|
mkdir -p ${WORKDIR}/boot
|
|
|
|
|
cd ${S}
|
|
|
|
|
einfo "Using kernel config from "$( readlink -f ${KERNEL_CONFIG} )
|
|
|
|
|
cp ${KERNEL_CONFIG} ${WORKDIR}/config || die "cannot copy kernel config"
|
|
|
|
|
|
|
|
|
|
cp ${WORKDIR}/config ${S}/.config
|
|
|
|
|
local GENTOOARCH="${ARCH}"
|
|
|
|
|
unset ARCH
|
|
|
|
|
|
|
|
|
@ -103,25 +97,18 @@ vmlinuz_src_compile() {
|
|
|
|
|
einfo "kernel: >> Distclean..."
|
|
|
|
|
make distclean &>/dev/null || die "cannot perform distclean"
|
|
|
|
|
ARCH="${GENTOOARCH}"
|
|
|
|
|
mv ${WORKDIR}/boot/kernel-${SYSTEM}-*-${CKV_FULL} \
|
|
|
|
|
mv ${WORKDIR}/boot/kernel-${SYSTEM}-*-${KV_FULL} \
|
|
|
|
|
${WORKDIR}/boot/vmlinuz-${KV_FULL}-installed
|
|
|
|
|
mv ${WORKDIR}/boot/initramfs-${SYSTEM}-*-${CKV_FULL} \
|
|
|
|
|
mv ${WORKDIR}/boot/initramfs-${SYSTEM}-*-${KV_FULL} \
|
|
|
|
|
${WORKDIR}/boot/initramfs-${KV_FULL}-installed
|
|
|
|
|
mv ${WORKDIR}/boot/System.map-${SYSTEM}-*-${CKV_FULL} \
|
|
|
|
|
mv ${WORKDIR}/boot/System.map-${SYSTEM}-*-${KV_FULL} \
|
|
|
|
|
${WORKDIR}/boot/System.map-${KV_FULL}-installed
|
|
|
|
|
cp ${WORKDIR}/boot/System.map-${KV_FULL}-installed ${S}/System.map
|
|
|
|
|
rm ${WORKDIR}/lib/modules/${CKV_FULL}/build
|
|
|
|
|
rm ${WORKDIR}/lib/modules/${CKV_FULL}/source
|
|
|
|
|
rm ${WORKDIR}/lib/modules/${KV_FULL}/build
|
|
|
|
|
rm ${WORKDIR}/lib/modules/${KV_FULL}/source
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
calculate-kernel_src_compile() {
|
|
|
|
|
export LDFLAGS=""
|
|
|
|
|
mkdir -p ${WORKDIR}/boot
|
|
|
|
|
cd ${S}
|
|
|
|
|
einfo "Using kernel config from "$( readlink -f ${KERNEL_CONFIG} )
|
|
|
|
|
cp ${KERNEL_CONFIG} ${WORKDIR}/config || die "cannot copy kernel config"
|
|
|
|
|
cp ${WORKDIR}/config ${S}/.config
|
|
|
|
|
|
|
|
|
|
use vmlinuz && vmlinuz_src_compile
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -129,48 +116,41 @@ vmlinuz_src_install() {
|
|
|
|
|
cd ${WORKDIR}
|
|
|
|
|
insinto /
|
|
|
|
|
doins -r boot
|
|
|
|
|
insinto /usr/src
|
|
|
|
|
cd ${WORKDIR}/lib
|
|
|
|
|
insinto /lib
|
|
|
|
|
doins -r modules
|
|
|
|
|
insinto /tmp
|
|
|
|
|
doins -r firmware
|
|
|
|
|
cd ${WORKDIR}
|
|
|
|
|
|
|
|
|
|
dosym /usr/src/linux-${KV_FULL} \
|
|
|
|
|
"/lib/modules/${CKV_FULL}/source" ||
|
|
|
|
|
"/lib/modules/${KV_FULL}/source" ||
|
|
|
|
|
die "cannot install source symlink"
|
|
|
|
|
dosym /usr/src/linux-${KV_FULL} \
|
|
|
|
|
"/lib/modules/${CKV_FULL}/build" ||
|
|
|
|
|
"/lib/modules/${KV_FULL}/build" ||
|
|
|
|
|
die "cannot install build symlink"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
calculate-kernel_src_install() {
|
|
|
|
|
rm -f ${S}/.config
|
|
|
|
|
kernel-2_src_install
|
|
|
|
|
use vmlinuz && vmlinuz_src_install
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
calculate-kernel_pkg_postrm() {
|
|
|
|
|
rm -f ${SLOT_T}/.alreadydel
|
|
|
|
|
rmdir ${SLOT_T} &>/dev/null
|
|
|
|
|
use vmlinuz && calculate_restore_kernel ${ROOT}/boot
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
vmlinuz_pkg_postinst() {
|
|
|
|
|
calculate_update_splash ${ROOT}/boot/initramfs-${KV_FULL}-installed
|
|
|
|
|
cp ${ROOT}/boot/initramfs-${KV_FULL}-installed \
|
|
|
|
|
${ROOT}/boot/initramfs-${KV_FULL}-install-installed
|
|
|
|
|
calculate_update_kernel ${KV_FULL} ${ROOT}/boot
|
|
|
|
|
mkdir -p ${ROOT}/lib/firmware
|
|
|
|
|
cp -a ${ROOT}/tmp/firmware/* ${ROOT}/lib/firmware/
|
|
|
|
|
rm -rf ${ROOT}/tmp/firmware
|
|
|
|
|
calculate_update_depmod
|
|
|
|
|
calculate_update_modules
|
|
|
|
|
|
|
|
|
|
sed -ri 's/a:1:sys-fs\/aufs2/a:0:sys-fs\/aufs2/' $MODULESDBFILE
|
|
|
|
|
[[ -f $MODULESDBFILE ]] &&
|
|
|
|
|
sed -ri 's/a:1:sys-fs\/aufs2/a:0:sys-fs\/aufs2/' $MODULESDBFILE
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
calculate-kernel_pkg_postinst() {
|
|
|
|
|
#calculate_update_splash ${ROOT}/boot/initramfs-${SYSTEM}-${KV_FULL}
|
|
|
|
|
kernel-2_pkg_postinst
|
|
|
|
|
|
|
|
|
|
KV_OUT_DIR=${ROOT}/usr/src/linux-${KV_FULL}
|
|
|
|
|