summaryrefslogtreecommitdiff
blob: d40142a7098611e8e3111a7089fb0761b490be4e (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
66
67
68
69
70
71
72
73
74
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI="5"
ETYPE="sources"
K_DEBLOB_AVAILABLE="0"
inherit kernel-2 subversion git-r3
detect_version
detect_arch

KEYWORDS=""
HOMEPAGE="https://dev.gentoo.org/~mpagano/genpatches"
IUSE="deblob experimental"

DESCRIPTION="Full sources including the Gentoo patchset for the ${KV_MAJOR}.${KV_MINOR} kernel tree"
SRC_URI="https://www.kernel.org/pub/linux/kernel/v3.x/linux-${KV_MAJOR}.${KV_MINOR}.tar.xz ${ARCH_URI}"
ESVN_REPO_URI="svn://anonsvn.gentoo.org/linux-patches/genpatches-2.6/trunk/${KV_MAJOR}.${KV_MINOR}"
EGIT_REPO_URI="git://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git
	https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git
	https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git"

S="${WORKDIR}/linux-${KV_MAJOR}.${KV_MINOR}.9999"

UNIPATCH_DOCS="${UNIPATCH_DOCS} ../work/0000_README"

pkg_postinst() {
	kernel-2_pkg_postinst
	einfo "For more info on this patchset, and how to report problems, see:"
	einfo "${HOMEPAGE}"
}

pkg_postrm() {
	kernel-2_pkg_postrm
}

src_unpack() {
	unpack ${A}

	mv "${WORKDIR}/linux-${KV_MAJOR}.${KV_MINOR}" "${S}" || die
	cd "${S}" || die

	subversion_src_unpack
	EGIT_CHECKOUT_DIR="${WORKDIR}/stable-queue" git-r3_src_unpack
}

src_prepare() {
	# First do previous versions, ...
	for p in 1[0123]*.patch* ; do
		UNIPATCH_LIST+=" ${p}"
	done
	unipatch "${UNIPATCH_LIST}"

	# ... then do the stable queue, as they are not ordered by name; we apply them one by one ...
	local patch_dir="${WORKDIR}/stable-queue/queue-${KV_MAJOR}.${KV_MINOR}"
	for p in $(cat ${patch_dir}/series | tr '\n' ' ') ; do
		if [[ -f "${patch_dir}/${p}" ]] ; then
			UNIPATCH_LIST="${patch_dir}/${p}"
			unipatch "${UNIPATCH_LIST}"
		fi
	done

	# ... and finally do the rest of the genpatches.
	UNIPATCH_LIST=""
	for p in 1[4-9]*.patch* [2-4]*.patch* 50*.patch* ; do
		if ! use experimental ; then
			[[ ${p} == "50"*_*.patch* ]] && continue
		fi
		UNIPATCH_LIST+=" ${p}"
	done
	unipatch "${UNIPATCH_LIST}"

	rm *.patch* || die
	mv 0000_README ../ || die
}