--- /usr/portage/eclass/kernel-2.eclass 2010-04-01 17:35:39.000000000 -0400 +++ /usr/local/portage/eclass/kernel-2.eclass 2010-04-25 16:02:52.000000000 -0400 @@ -1,6 +1,6 @@ # Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/kernel-2.eclass,v 1.225 2010/04/01 21:12:20 robbat2 Exp $ +# $Header$ # Description: kernel.eclass rewrite for a clean base regarding the 2.6 # series of kernel with back-compatibility for 2.4 @@ -76,7 +76,7 @@ HOMEPAGE="http://www.kernel.org/ http://www.gentoo.org/ ${HOMEPAGE}" # Reflect that kernels contain firmware blobs unless otherwise stripped [[ -z ${LICENSE} ]] && \ - LICENSE="GPL-2 freedist" + LICENSE="GPL-2 !deblob? ( freedist )" # No need to run scanelf/strip on kernel sources/headers (bug #134453). RESTRICT="binchecks strip" @@ -299,7 +299,13 @@ SLOT="${PVR}" DESCRIPTION="Sources for the ${KV_MAJOR}.${KV_MINOR} linux kernel" - IUSE="symlink build" + IUSE="symlink build deblob" + + # Can't do this in detect_version, since it breaks deblobbing of + # openvz-sources + KERNEL_URI="${KERNEL_URI} + deblob? ( + http://www.linux-libre.fsfla.org/pub/linux-libre/releases/LATEST-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}.N/deblob-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} )" elif [[ ${ETYPE} == headers ]]; then DESCRIPTION="Linux system headers" @@ -626,6 +632,9 @@ # if we have USE=symlink, then force K_SYMLINK=1 use symlink && K_SYMLINK=1 + # if we're using a deblobbed kernel, it's not supported + use deblob && K_SECURITY_UNSUPPORTED=1 + # if we are to forcably symlink, delete it if it already exists first. if [[ ${K_SYMLINK} > 0 ]]; then [[ -h ${ROOT}usr/src/linux ]] && rm ${ROOT}usr/src/linux @@ -1066,11 +1075,21 @@ kernel_is 2 4 && unpack_2_4 kernel_is 2 6 && unpack_2_6 fi + + if use deblob ; then + chmod +x "${DISTDIR}/deblob-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}" + fi } kernel-2_src_compile() { cd "${S}" [[ ${ETYPE} == headers ]] && compile_headers + + if use deblob ; then + echo ">>> Running deblob script ..." + sh "${DISTDIR}/deblob-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}" --force || \ + die "Deblob script failed to run!!!" + fi } kernel-2_pkg_preinst() {