summaryrefslogtreecommitdiff
path: root/eclass/kernel-libre.eclass
blob: 80cc3ec4bed6063b7cb8ba677f04f59e8b987e96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#
# Original Author: Nick White
# Purpose: override of kernel-2.eclass for the linux-libre kernel
#

inherit kernel-2
EXPORT_FUNCTIONS src_unpack

KERNEL_URI="http://www.linux-libre.fsfla.org/pub/linux-libre/releases/${PV}-libre${LIBRE_VER}/linux-${PV}-libre${LIBRE_VER}.tar.bz2"
DEBLOB_CHECK="deblob-check"
DEBLOB_URI="http://www.linux-libre.fsfla.org/pub/linux-libre/releases/${PV}-libre${LIBRE_VER}/${DEBLOB_CHECK}"

KERNEL_VER=${PV/-r*}

# rename deblob-check to avoid collisions
if [[ $EAPI == 2 ]]; then
	DEBLOB_CHECK="${DEBLOB_CHECK}-${KERNEL_VER}"
	DEBLOB_URI="${DEBLOB_URI} -> ${DEBLOB_CHECK}"
fi

# override the kernel-2 function as tarball is named differently
universal_unpack() {
	cd ${WORKDIR}
	unpack linux-${KERNEL_VER}-libre${LIBRE_VER}.tar.bz2
	mv ${WORKDIR}/linux-${KERNEL_VER} ${WORKDIR}/linux-${KV_FULL} \
		|| die "Unable to move source tree to ${KV_FULL}."
	cd ${S}

	# remove all backup files
	find . -iname "*~" -exec rm {} \; 2> /dev/null
}

check_for_blobs() {
	# usage: check_for_blobs name_of_variable_containing_paths_to_check
	# we want the name of a variable (not just its contents)
	# so can unset it if blobs are found

	[[ "$SKIP_PATCH_DEBLOB" == "1" ]] && return 0
	[[ -z "${!1}" ]] && return 1

	sh ${DISTDIR}/${DEBLOB_CHECK} ${!1}

	if [ $? -ne 0 ]; then
		ewarn "Warning: A file in ${1} appears to contain blobs."
		ewarn "Disabling ${1} for now."
		eval "${1}=''"
		ewarn "Please report this to http://bugs.gentoo.org/266157"
		return 1
	fi

	return 0
}

kernel-libre_src_unpack() {
	# kernel revision patches are included in tarball
	UNIPATCH_LIST_DEFAULT=""

	if [ -n "${UNIPATCH_LIST_GENPATCHES}" ] || [ -n "${UNIPATCH_LIST}" ]; then
		echo "Checking all patches are clean of blobs"
		check_for_blobs "UNIPATCH_LIST_GENPATCHES"
		check_for_blobs "UNIPATCH_LIST"
	fi

	kernel-2_src_unpack
}