/[gentoo-x86]/eclass/kernel-2.eclass
Gentoo

Diff of /eclass/kernel-2.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.260 Revision 1.287
1# Copyright 1999-2011 Gentoo Foundation 1# Copyright 1999-2013 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/kernel-2.eclass,v 1.260 2011/08/29 01:28:10 vapier Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/kernel-2.eclass,v 1.287 2013/07/31 21:25:50 hasufell Exp $
4 4
5# Description: kernel.eclass rewrite for a clean base regarding the 2.6 5# Description: kernel.eclass rewrite for a clean base regarding the 2.6
6# series of kernel with back-compatibility for 2.4 6# series of kernel with back-compatibility for 2.4
7# 7#
8# Original author: John Mylchreest <johnm@gentoo.org> 8# Original author: John Mylchreest <johnm@gentoo.org>
67# UNIPATCH_DOCS - space delimemeted list of docs to be installed to 67# UNIPATCH_DOCS - space delimemeted list of docs to be installed to
68# the doc dir 68# the doc dir
69# UNIPATCH_STRICTORDER - if this is set places patches into directories of 69# UNIPATCH_STRICTORDER - if this is set places patches into directories of
70# order, so they are applied in the order passed 70# order, so they are applied in the order passed
71 71
72# Changing any other variable in this eclass is not supported; you can request
73# for additional variables to be added by contacting the current maintainer.
74# If you do change them, there is a chance that we will not fix resulting bugs;
75# that of course does not mean we're not willing to help.
76
72inherit eutils toolchain-funcs versionator multilib 77inherit eutils toolchain-funcs versionator multilib
73EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_test src_install pkg_preinst pkg_postinst pkg_postrm 78EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_test src_install pkg_preinst pkg_postinst pkg_postrm
74 79
75# Added by Daniel Ostrow <dostrow@gentoo.org> 80# Added by Daniel Ostrow <dostrow@gentoo.org>
76# This is an ugly hack to get around an issue with a 32-bit userland on ppc64. 81# This is an ugly hack to get around an issue with a 32-bit userland on ppc64.
81if [[ ${CTARGET} == ${CHOST} && ${CATEGORY/cross-} != ${CATEGORY} ]]; then 86if [[ ${CTARGET} == ${CHOST} && ${CATEGORY/cross-} != ${CATEGORY} ]]; then
82 export CTARGET=${CATEGORY/cross-} 87 export CTARGET=${CATEGORY/cross-}
83fi 88fi
84 89
85HOMEPAGE="http://www.kernel.org/ http://www.gentoo.org/ ${HOMEPAGE}" 90HOMEPAGE="http://www.kernel.org/ http://www.gentoo.org/ ${HOMEPAGE}"
86[[ -z ${LICENSE} ]] && \
87 LICENSE="GPL-2" 91: ${LICENSE:="GPL-2"}
88 92
89# This is the latest KV_PATCH of the deblob tool available from the 93# This is the latest KV_PATCH of the deblob tool available from the
90# libre-sources upstream. If you bump this, you MUST regenerate the Manifests 94# libre-sources upstream. If you bump this, you MUST regenerate the Manifests
91# for ALL kernel-2 consumer packages where deblob is available. 95# for ALL kernel-2 consumer packages where deblob is available.
92[[ -z ${DEBLOB_MAX_VERSION} ]] && DEBLOB_MAX_VERSION=38 96: ${DEBLOB_MAX_VERSION:=38}
93 97
94# No need to run scanelf/strip on kernel sources/headers (bug #134453). 98# No need to run scanelf/strip on kernel sources/headers (bug #134453).
95RESTRICT="binchecks strip" 99RESTRICT="binchecks strip"
96 100
97# set LINUX_HOSTCFLAGS if not already set 101# set LINUX_HOSTCFLAGS if not already set
98[[ -z ${LINUX_HOSTCFLAGS} ]] && \
99 LINUX_HOSTCFLAGS="-Wall -Wstrict-prototypes -Os -fomit-frame-pointer -I${S}/include" 102: ${LINUX_HOSTCFLAGS:="-Wall -Wstrict-prototypes -Os -fomit-frame-pointer -I${S}/include"}
100 103
101# debugging functions 104# debugging functions
102#============================================================== 105#==============================================================
103# this function exists only to help debug kernel-2.eclass 106# this function exists only to help debug kernel-2.eclass
104# if you are adding new functionality in, put a call to it 107# if you are adding new functionality in, put a call to it
116handle_genpatches() { 119handle_genpatches() {
117 local tarball 120 local tarball
118 [[ -z ${K_WANT_GENPATCHES} || -z ${K_GENPATCHES_VER} ]] && return 1 121 [[ -z ${K_WANT_GENPATCHES} || -z ${K_GENPATCHES_VER} ]] && return 1
119 122
120 debug-print "Inside handle_genpatches" 123 debug-print "Inside handle_genpatches"
121 local oldifs=${IFS}
122 export IFS="."
123 local OKV_ARRAY=( $OKV ) 124 local OKV_ARRAY
124 export IFS=${oldifs} 125 IFS="." read -r -a OKV_ARRAY <<<"${OKV}"
125 126
126 # for > 3.0 kernels, handle genpatches tarball name 127 # for > 3.0 kernels, handle genpatches tarball name
127 # genpatches for 3.0 and 3.0.1 might be named 128 # genpatches for 3.0 and 3.0.1 might be named
128 # genpatches-3.0-1.base.tar.bz2 and genpatches-3.0-2.base.tar.bz2 129 # genpatches-3.0-1.base.tar.xz and genpatches-3.0-2.base.tar.xz
129 # respectively. Handle this. 130 # respectively. Handle this.
130 131
131 for i in ${K_WANT_GENPATCHES} ; do 132 for i in ${K_WANT_GENPATCHES} ; do
132 if [[ ${KV_MAJOR} -ge 3 ]]; then 133 if [[ ${KV_MAJOR} -ge 3 ]]; then
133 if [[ ${#OKV_ARRAY[@]} -ge 3 ]]; then 134 if [[ ${#OKV_ARRAY[@]} -ge 3 ]]; then
134 tarball="genpatches-${KV_MAJOR}.${KV_MINOR}-${K_GENPATCHES_VER}.${i}.tar.bz2" 135 tarball="genpatches-${KV_MAJOR}.${KV_MINOR}-${K_GENPATCHES_VER}.${i}.tar.xz"
135 else 136 else
136 tarball="genpatches-${KV_MAJOR}.${KV_PATCH}-${K_GENPATCHES_VER}.${i}.tar.bz2" 137 tarball="genpatches-${KV_MAJOR}.${KV_PATCH}-${K_GENPATCHES_VER}.${i}.tar.xz"
137 fi 138 fi
138 else 139 else
139 tarball="genpatches-${OKV}-${K_GENPATCHES_VER}.${i}.tar.bz2" 140 tarball="genpatches-${OKV}-${K_GENPATCHES_VER}.${i}.tar.xz"
140 fi 141 fi
141 debug-print "genpatches tarball: $tarball" 142 debug-print "genpatches tarball: $tarball"
142 GENPATCHES_URI="${GENPATCHES_URI} mirror://gentoo/${tarball}" 143 GENPATCHES_URI="${GENPATCHES_URI} mirror://gentoo/${tarball}"
143 UNIPATCH_LIST_GENPATCHES="${UNIPATCH_LIST_GENPATCHES} ${DISTDIR}/${tarball}" 144 UNIPATCH_LIST_GENPATCHES="${UNIPATCH_LIST_GENPATCHES} ${DISTDIR}/${tarball}"
144 done 145 done
148 # this function will detect and set 149 # this function will detect and set
149 # - OKV: Original Kernel Version (2.6.0/2.6.0-test11) 150 # - OKV: Original Kernel Version (2.6.0/2.6.0-test11)
150 # - KV: Kernel Version (2.6.0-gentoo/2.6.0-test11-gentoo-r1) 151 # - KV: Kernel Version (2.6.0-gentoo/2.6.0-test11-gentoo-r1)
151 # - EXTRAVERSION: The additional version appended to OKV (-gentoo/-gentoo-r1) 152 # - EXTRAVERSION: The additional version appended to OKV (-gentoo/-gentoo-r1)
152 153
153 if [[ -n ${KV_FULL} ]]; then 154 # We've already run, so nothing to do here.
154 # we will set this for backwards compatibility. 155 [[ -n ${KV_FULL} ]] && return 0
155 KV=${KV_FULL}
156
157 # we know KV_FULL so lets stop here. but not without resetting S
158 S=${WORKDIR}/linux-${KV_FULL}
159 return
160 fi
161 156
162 # CKV is used as a comparison kernel version, which is used when 157 # CKV is used as a comparison kernel version, which is used when
163 # PV doesnt reflect the genuine kernel version. 158 # PV doesnt reflect the genuine kernel version.
164 # this gets set to the portage style versioning. ie: 159 # this gets set to the portage style versioning. ie:
165 # CKV=2.6.11_rc4 160 # CKV=2.6.11_rc4
170 OKV=${OKV/-r*} 165 OKV=${OKV/-r*}
171 OKV=${OKV/_p*} 166 OKV=${OKV/_p*}
172 167
173 KV_MAJOR=$(get_version_component_range 1 ${OKV}) 168 KV_MAJOR=$(get_version_component_range 1 ${OKV})
174 # handle if OKV is X.Y or X.Y.Z (e.g. 3.0 or 3.0.1) 169 # handle if OKV is X.Y or X.Y.Z (e.g. 3.0 or 3.0.1)
175 local oldifs=${IFS}
176 export IFS="."
177 local OKV_ARRAY=( $OKV ) 170 local OKV_ARRAY
178 export IFS=${oldifs} 171 IFS="." read -r -a OKV_ARRAY <<<"${OKV}"
179 172
180 # if KV_MAJOR >= 3, then we have no more KV_MINOR 173 # if KV_MAJOR >= 3, then we have no more KV_MINOR
181 #if [[ ${KV_MAJOR} -lt 3 ]]; then 174 #if [[ ${KV_MAJOR} -lt 3 ]]; then
182 if [[ ${#OKV_ARRAY[@]} -ge 3 ]]; then 175 if [[ ${#OKV_ARRAY[@]} -ge 3 ]]; then
183 KV_MINOR=$(get_version_component_range 2 ${OKV}) 176 KV_MINOR=$(get_version_component_range 2 ${OKV})
217 210
218# if [[ ${KV_MAJOR} -ge 3 ]]; then 211# if [[ ${KV_MAJOR} -ge 3 ]]; then
219 if [[ ${#OKV_ARRAY[@]} -lt 3 ]]; then 212 if [[ ${#OKV_ARRAY[@]} -lt 3 ]]; then
220 KV_PATCH_ARR=(${KV_PATCH//\./ }) 213 KV_PATCH_ARR=(${KV_PATCH//\./ })
221 214
222 # at this point 080811, Linus is putting 3.1 kernels in 3.0 directory 215 # at this point 031412, Linus is putting all 3.x kernels in a
223 # revisit when 3.1 is released 216 # 3.x directory, may need to revisit when 4.x is released
224 if [[ ${KV_PATCH} -gt 0 ]]; then
225 KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))"
226 else
227 KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_PATCH_ARR}" 217 KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.x"
228 fi 218
229 # KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_PATCH_ARR}"
230 [[ -n "${K_LONGTERM}" ]] && 219 [[ -n "${K_LONGTERM}" ]] &&
231 KERNEL_BASE_URI="${KERNEL_BASE_URI}/longterm/v${KV_MAJOR}.${KV_PATCH_ARR}" 220 KERNEL_BASE_URI="${KERNEL_BASE_URI}/longterm/v${KV_MAJOR}.${KV_PATCH_ARR}"
232 else 221 else
233 #KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.0" 222 #KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.0"
234 KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_MINOR}" 223 #KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_MINOR}"
224 if [[ ${KV_MAJOR} -ge 3 ]]; then
225 KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.x"
226 else
227 KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_MINOR}"
228 fi
229
235 [[ -n "${K_LONGTERM}" ]] && 230 [[ -n "${K_LONGTERM}" ]] &&
231 #KERNEL_BASE_URI="${KERNEL_BASE_URI}/longterm"
236 KERNEL_BASE_URI="${KERNEL_BASE_URI}/longterm/v${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}" 232 KERNEL_BASE_URI="${KERNEL_BASE_URI}/longterm/v${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
237 fi 233 fi
238 234
239 debug-print "KERNEL_BASE_URI is ${KERNEL_BASE_URI}" 235 debug-print "KERNEL_BASE_URI is ${KERNEL_BASE_URI}"
240 236
241 if [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]]; then 237 if [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]]; then
242 # handle non genpatch using sources correctly 238 # handle non genpatch using sources correctly
243 if [[ -z ${K_WANT_GENPATCHES} && -z ${K_GENPATCHES_VER} && ${KV_PATCH} -gt 0 ]]; then 239 if [[ -z ${K_WANT_GENPATCHES} && -z ${K_GENPATCHES_VER} && ${KV_PATCH} -gt 0 ]]; then
244 KERNEL_URI="${KERNEL_BASE_URI}/patch-${OKV}.bz2" 240 KERNEL_URI="${KERNEL_BASE_URI}/patch-${OKV}.xz"
245 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV}.bz2" 241 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV}.xz"
246 fi 242 fi
247 KERNEL_URI="${KERNEL_URI} ${KERNEL_BASE_URI}/linux-${KV_MAJOR}.${KV_MINOR}.tar.bz2" 243 KERNEL_URI="${KERNEL_URI} ${KERNEL_BASE_URI}/linux-${KV_MAJOR}.${KV_MINOR}.tar.xz"
248 else 244 else
249 KERNEL_URI="${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 245 KERNEL_URI="${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
250 fi 246 fi
251 247
252 RELEASE=${CKV/${OKV}} 248 RELEASE=${CKV/${OKV}}
253 RELEASE=${RELEASE/_beta} 249 RELEASE=${RELEASE/_beta}
254 RELEASE=${RELEASE/_rc/-rc} 250 RELEASE=${RELEASE/_rc/-rc}
298 if [[ -n ${KV_MINOR} ]]; then 294 if [[ -n ${KV_MINOR} ]]; then
299 OKV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}" 295 OKV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
300 else 296 else
301 OKV="${KV_MAJOR}.${KV_PATCH}" 297 OKV="${KV_MAJOR}.${KV_PATCH}"
302 fi 298 fi
303 KERNEL_URI="${KERNEL_BASE_URI}/patch-${CKV}.bz2 299 KERNEL_URI="${KERNEL_BASE_URI}/patch-${CKV}.xz
304 ${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 300 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
305 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV}.bz2" 301 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV}.xz"
306 fi 302 fi
307 303
308 # We need to set this using OKV, but we need to set it before we do any 304 # We need to set this using OKV, but we need to set it before we do any
309 # messing around with OKV based on RELEASETYPE 305 # messing around with OKV based on RELEASETYPE
310 KV_FULL=${OKV}${EXTRAVERSION} 306 KV_FULL=${OKV}${EXTRAVERSION}
315 311
316 # -rc-git pulls can be achieved by specifying CKV 312 # -rc-git pulls can be achieved by specifying CKV
317 # for example: 313 # for example:
318 # CKV="2.6.11_rc3_pre2" 314 # CKV="2.6.11_rc3_pre2"
319 # will pull: 315 # will pull:
320 # linux-2.6.10.tar.bz2 & patch-2.6.11-rc3.bz2 & patch-2.6.11-rc3-git2.bz2 316 # linux-2.6.10.tar.xz & patch-2.6.11-rc3.xz & patch-2.6.11-rc3-git2.xz
321 317
322 if [[ ${KV_MAJOR}${KV_MINOR} -eq 26 ]]; then 318 if [[ ${KV_MAJOR}${KV_MINOR} -eq 26 ]]; then
323 319
324 if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then 320 if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then
325 OKV="${KV_MAJOR}.${KV_MINOR}.$((${KV_PATCH} - 1))" 321 OKV="${KV_MAJOR}.${KV_MINOR}.$((${KV_PATCH} - 1))"
326 KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.bz2 322 KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.xz
327 ${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 323 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
328 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.bz2" 324 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.xz"
329 fi 325 fi
330 326
331 if [[ ${RELEASETYPE} == -git ]]; then 327 if [[ ${RELEASETYPE} == -git ]]; then
332 KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${OKV}${RELEASE}.bz2 328 KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${OKV}${RELEASE}.xz
333 ${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 329 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
334 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${OKV}${RELEASE}.bz2" 330 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${OKV}${RELEASE}.xz"
335 fi 331 fi
336 332
337 if [[ ${RELEASETYPE} == -rc-git ]]; then 333 if [[ ${RELEASETYPE} == -rc-git ]]; then
338 OKV="${KV_MAJOR}.${KV_MINOR}.$((${KV_PATCH} - 1))" 334 OKV="${KV_MAJOR}.${KV_MINOR}.$((${KV_PATCH} - 1))"
339 KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${RELEASE}.bz2 335 KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${RELEASE}.xz
340 ${KERNEL_BASE_URI}/testing/patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${RELEASE/-git*}.bz2 336 ${KERNEL_BASE_URI}/testing/patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${RELEASE/-git*}.xz
341 ${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 337 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
342 338
343 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${RELEASE/-git*}.bz2 ${DISTDIR}/patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${RELEASE}.bz2" 339 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${RELEASE/-git*}.xz ${DISTDIR}/patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${RELEASE}.xz"
344 fi 340 fi
345 else 341 else
346 if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then 342 if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then
347 if [[ ${KV_MAJOR}${KV_PATCH} -eq 30 ]]; then 343 if [[ ${KV_MAJOR}${KV_PATCH} -eq 30 ]]; then
348 OKV="2.6.39" 344 OKV="2.6.39"
349 else 345 else
350 KV_PATCH_ARR=(${KV_PATCH//\./ }) 346 KV_PATCH_ARR=(${KV_PATCH//\./ })
351 OKV="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))" 347 OKV="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))"
352 fi 348 fi
353 KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.bz2 349 KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.xz
354 ${KERNEL_BASE_URI}/testing/linux-${OKV}.tar.bz2" 350 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
355 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.bz2" 351 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.xz"
356 fi 352 fi
357 353
358 if [[ ${RELEASETYPE} == -git ]]; then 354 if [[ ${RELEASETYPE} == -git ]]; then
359 KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${OKV}${RELEASE}.bz2 355 KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${OKV}${RELEASE}.xz
360 ${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 356 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
361 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${OKV}${RELEASE}.bz2" 357 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${OKV}${RELEASE}.xz"
362 fi 358 fi
363 359
364 if [[ ${RELEASETYPE} == -rc-git ]]; then 360 if [[ ${RELEASETYPE} == -rc-git ]]; then
365 if [[ ${KV_MAJOR}${KV_PATCH} -eq 30 ]]; then 361 if [[ ${KV_MAJOR}${KV_PATCH} -eq 30 ]]; then
366 OKV="2.6.39" 362 OKV="2.6.39"
367 else 363 else
368 KV_PATCH_ARR=(${KV_PATCH//\./ }) 364 KV_PATCH_ARR=(${KV_PATCH//\./ })
369 OKV="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))" 365 OKV="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))"
370 fi 366 fi
371 KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE}.bz2 367 KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE}.xz
372 ${KERNEL_BASE_URI}/testing/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE/-git*}.bz2 368 ${KERNEL_BASE_URI}/testing/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE/-git*}.xz
373 ${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 369 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
374 370
375 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE/-git*}.bz2 ${DISTDIR}/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE}.bz2" 371 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE/-git*}.xz ${DISTDIR}/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE}.xz"
376 fi 372 fi
377 373
378 374
379 fi 375 fi
380 376
382 debug-print-kernel2-variables 378 debug-print-kernel2-variables
383 379
384 handle_genpatches 380 handle_genpatches
385} 381}
386 382
383# Note: duplicated in linux-info.eclass
387kernel_is() { 384kernel_is() {
388 # ALL of these should be set before we can safely continue this function. 385 # ALL of these should be set before we can safely continue this function.
389 # some of the sources have in the past had only one set. 386 # some of the sources have in the past had only one set.
390 local v n=0 387 local v n=0
391 for v in OKV KV_{MAJOR,MINOR,PATCH} ; do [[ -z ${!v} ]] && n=1 ; done 388 for v in OKV KV_{MAJOR,MINOR,PATCH} ; do [[ -z ${!v} ]] && n=1 ; done
392 [[ $n -eq 1 ]] && detect_version 389 [[ $n -eq 1 ]] && detect_version
393 unset v n 390 unset v n
394 391
395 # Now we can continue 392 # Now we can continue
396 local operator test value x=0 y=0 z=0 393 local operator test value
397 394
398 case ${1} in 395 case ${1#-} in
399 lt) operator="-lt"; shift;; 396 lt) operator="-lt"; shift;;
400 gt) operator="-gt"; shift;; 397 gt) operator="-gt"; shift;;
401 le) operator="-le"; shift;; 398 le) operator="-le"; shift;;
402 ge) operator="-ge"; shift;; 399 ge) operator="-ge"; shift;;
403 eq) operator="-eq"; shift;; 400 eq) operator="-eq"; shift;;
404 *) operator="-eq";; 401 *) operator="-eq";;
405 esac 402 esac
406
407 for x in ${@}; do
408 for((y=0; y<$((3 - ${#x})); y++)); do value="${value}0"; done
409 value="${value}${x}"
410 z=$((${z} + 1))
411
412 case ${z} in
413 1) for((y=0; y<$((3 - ${#KV_MAJOR})); y++)); do test="${test}0"; done;
414 test="${test}${KV_MAJOR}";;
415 2) for((y=0; y<$((3 - ${#KV_MINOR})); y++)); do test="${test}0"; done;
416 test="${test}${KV_MINOR}";;
417 3) for((y=0; y<$((3 - ${#KV_PATCH})); y++)); do test="${test}0"; done;
418 test="${test}${KV_PATCH}";;
419 *) die "Error in kernel-2_kernel_is(): Too many parameters.";; 403 [[ $# -gt 3 ]] && die "Error in kernel-2_kernel_is(): too many parameters"
420 esac
421 done
422 404
423 [ ${test} ${operator} ${value} ] && return 0 || return 1 405 : $(( test = (KV_MAJOR << 16) + (KV_MINOR << 8) + KV_PATCH ))
406 : $(( value = (${1:-${KV_MAJOR}} << 16) + (${2:-${KV_MINOR}} << 8) + ${3:-${KV_PATCH}} ))
407 [ ${test} ${operator} ${value} ]
424} 408}
425 409
426kernel_is_2_4() { 410kernel_is_2_4() {
427 kernel_is 2 4 411 kernel_is 2 4
428} 412}
434# Capture the sources type and set DEPENDs 418# Capture the sources type and set DEPENDs
435if [[ ${ETYPE} == sources ]]; then 419if [[ ${ETYPE} == sources ]]; then
436 DEPEND="!build? ( sys-apps/sed 420 DEPEND="!build? ( sys-apps/sed
437 >=sys-devel/binutils-2.11.90.0.31 )" 421 >=sys-devel/binutils-2.11.90.0.31 )"
438 RDEPEND="!build? ( >=sys-libs/ncurses-5.2 422 RDEPEND="!build? ( >=sys-libs/ncurses-5.2
439 sys-devel/make )" 423 sys-devel/make
424 dev-lang/perl
425 sys-devel/bc )"
440 PDEPEND="!build? ( virtual/dev-manager )" 426 PDEPEND="!build? ( virtual/dev-manager )"
441 427
442 SLOT="${PVR}" 428 SLOT="${PVR}"
443 DESCRIPTION="Sources for the ${KV_MAJOR}.${KV_MINOR:-$KV_PATCH} linux kernel" 429 DESCRIPTION="Sources based on the Linux Kernel."
444 IUSE="symlink build" 430 IUSE="symlink build"
445 431
446 # Bug #266157, deblob for libre support 432 # Bug #266157, deblob for libre support
447 if [[ -z ${K_PREDEBLOBBED} ]] ; then 433 if [[ -z ${K_PREDEBLOBBED} ]] ; then
448 # Bug #359865, force a call to detect_version if needed 434 # Bug #359865, force a call to detect_version if needed
476 DEBLOB_CHECK_URI="mirror://gentoo/${DEBLOB_CHECK_A}" 462 DEBLOB_CHECK_URI="mirror://gentoo/${DEBLOB_CHECK_A}"
477 fi 463 fi
478 DEBLOB_URI="${DEBLOB_HOMEPAGE}/${DEBLOB_URI_PATH}/${DEBLOB_A}" 464 DEBLOB_URI="${DEBLOB_HOMEPAGE}/${DEBLOB_URI_PATH}/${DEBLOB_A}"
479 HOMEPAGE="${HOMEPAGE} ${DEBLOB_HOMEPAGE}" 465 HOMEPAGE="${HOMEPAGE} ${DEBLOB_HOMEPAGE}"
480 466
467 DEPEND+=" deblob? ( =dev-lang/python-2* )"
481 KERNEL_URI="${KERNEL_URI} 468 KERNEL_URI="${KERNEL_URI}
482 deblob? ( 469 deblob? (
483 ${DEBLOB_URI} 470 ${DEBLOB_URI}
484 ${DEBLOB_CHECK_URI} 471 ${DEBLOB_CHECK_URI}
485 )" 472 )"
495 482
496 # Since we should NOT honour KBUILD_OUTPUT in headers 483 # Since we should NOT honour KBUILD_OUTPUT in headers
497 # lets unset it here. 484 # lets unset it here.
498 unset KBUILD_OUTPUT 485 unset KBUILD_OUTPUT
499 486
500 if [[ ${CTARGET} = ${CHOST} ]]; then
501 SLOT="0" 487 SLOT="0"
502 else
503 SLOT="${CTARGET}"
504 fi
505else 488else
506 eerror "Unknown ETYPE=\"${ETYPE}\", must be \"sources\" or \"headers\"" 489 eerror "Unknown ETYPE=\"${ETYPE}\", must be \"sources\" or \"headers\""
507 die "Unknown ETYPE=\"${ETYPE}\", must be \"sources\" or \"headers\"" 490 die "Unknown ETYPE=\"${ETYPE}\", must be \"sources\" or \"headers\""
508fi 491fi
509 492
567} 550}
568 551
569universal_unpack() { 552universal_unpack() {
570 debug-print "Inside universal_unpack" 553 debug-print "Inside universal_unpack"
571 554
572 local oldifs=${IFS}
573 export IFS="."
574 local OKV_ARRAY=( $OKV ) 555 local OKV_ARRAY
575 export IFS=${oldifs} 556 IFS="." read -r -a OKV_ARRAY <<<"${OKV}"
576 557
577 cd "${WORKDIR}" 558 cd "${WORKDIR}"
578 if [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]]; then 559 if [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]]; then
579 unpack linux-${KV_MAJOR}.${KV_MINOR}.tar.bz2 560 unpack linux-${KV_MAJOR}.${KV_MINOR}.tar.xz
580 else 561 else
581 unpack linux-${OKV}.tar.bz2 562 unpack linux-${OKV}.tar.xz
582 fi 563 fi
583 564
584 if [[ -d "linux" ]]; then 565 if [[ -d "linux" ]]; then
585 debug-print "Moving linux to linux-${KV_FULL}" 566 debug-print "Moving linux to linux-${KV_FULL}"
586 mv linux linux-${KV_FULL} \ 567 mv linux linux-${KV_FULL} \
603 cd "${S}" 584 cd "${S}"
604 585
605 # remove all backup files 586 # remove all backup files
606 find . -iname "*~" -exec rm {} \; 2> /dev/null 587 find . -iname "*~" -exec rm {} \; 2> /dev/null
607 588
608 # fix a problem on ppc where TOUT writes to /usr/src/linux breaking sandbox
609 # only do this for kernel < 2.6.27 since this file does not exist in later
610 # kernels
611 if [[ -n ${KV_MINOR} && ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} < 2.6.27 ]]
612 then
613 sed -i \
614 -e 's|TOUT := .tmp_gas_check|TOUT := $(T).tmp_gas_check|' \
615 "${S}"/arch/ppc/Makefile
616 else
617 sed -i \
618 -e 's|TOUT := .tmp_gas_check|TOUT := $(T).tmp_gas_check|' \
619 "${S}"/arch/powerpc/Makefile
620 fi
621} 589}
622 590
623unpack_set_extraversion() { 591unpack_set_extraversion() {
624 cd "${S}" 592 cd "${S}"
625 sed -i -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile 593 sed -i -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile
702} 670}
703 671
704# install functions 672# install functions
705#============================================================== 673#==============================================================
706install_universal() { 674install_universal() {
707 #fix silly permissions in tarball 675 # Fix silly permissions in tarball
708 cd "${WORKDIR}" 676 cd "${WORKDIR}"
709 chown -R root:0 * >& /dev/null 677 chown -R 0:0 * >& /dev/null
710 chmod -R a+r-w+X,u+w * 678 chmod -R a+r-w+X,u+w *
711 cd ${OLDPWD} 679 cd ${OLDPWD}
712} 680}
713 681
714install_headers() { 682install_headers() {
719 if kernel_is ge 2 6 18 ; then 687 if kernel_is ge 2 6 18 ; then
720 env_setup_xmakeopts 688 env_setup_xmakeopts
721 emake headers_install INSTALL_HDR_PATH="${D}"/${ddir}/.. ${xmakeopts} || die 689 emake headers_install INSTALL_HDR_PATH="${D}"/${ddir}/.. ${xmakeopts} || die
722 690
723 # let other packages install some of these headers 691 # let other packages install some of these headers
724 rm -rf "${D}"/${ddir}/sound #alsa-headers
725 rm -rf "${D}"/${ddir}/scsi #glibc/uclibc/etc... 692 rm -rf "${D}"/${ddir}/scsi #glibc/uclibc/etc...
726 return 0 693 return 0
727 fi 694 fi
728 695
729 # Do not use "linux/*" as that can cause problems with very long 696 # Do not use "linux/*" as that can cause problems with very long
771 echo "Please check the ebuild ChangeLog for more details." \ 738 echo "Please check the ebuild ChangeLog for more details." \
772 > "${S}"/patches.txt 739 > "${S}"/patches.txt
773 fi 740 fi
774 741
775 mv ${WORKDIR}/linux* "${D}"/usr/src 742 mv ${WORKDIR}/linux* "${D}"/usr/src
743
744 if [[ -n "${UNIPATCH_DOCS}" ]] ; then
745 for i in ${UNIPATCH_DOCS}; do
746 dodoc "${T}"/${i}
747 done
748 fi
776} 749}
777 750
778# pkg_preinst functions 751# pkg_preinst functions
779#============================================================== 752#==============================================================
780preinst_headers() { 753preinst_headers() {
839 fi 812 fi
840 813
841 # optionally display security unsupported message 814 # optionally display security unsupported message
842 # Start with why 815 # Start with why
843 if [[ ${K_SECURITY_UNSUPPORTED} = deblob ]]; then 816 if [[ ${K_SECURITY_UNSUPPORTED} = deblob ]]; then
844 ewarn "Deblobbed kernels are UNSUPPORTED by Gentoo Security." 817 ewarn "Deblobbed kernels may not be up-to-date security-wise"
818 ewarn "as they depend on external scripts."
845 elif [[ -n ${K_SECURITY_UNSUPPORTED} ]]; then 819 elif [[ -n ${K_SECURITY_UNSUPPORTED} ]]; then
846 ewarn "${PN} is UNSUPPORTED by Gentoo Security." 820 ewarn "${PN} is UNSUPPORTED by Gentoo Security."
847 fi 821 fi
848 # And now the general message. 822 # And now the general message.
849 if [[ -n ${K_SECURITY_UNSUPPORTED} ]]; then 823 if [[ -n ${K_SECURITY_UNSUPPORTED} ]]; then
1020 [ -z ${i/*.patch*/} ] && PATCH_DEPTH=${i/*.patch/} 994 [ -z ${i/*.patch*/} ] && PATCH_DEPTH=${i/*.patch/}
1021 #[ -z ${i/*.diff*/} ] && PATCH_DEPTH=${i/*.diff/} 995 #[ -z ${i/*.diff*/} ] && PATCH_DEPTH=${i/*.diff/}
1022 996
1023 if [ -z "${PATCH_DEPTH}" ]; then PATCH_DEPTH=0; fi 997 if [ -z "${PATCH_DEPTH}" ]; then PATCH_DEPTH=0; fi
1024 998
1025 ebegin "Applying ${i/*\//} (-p${PATCH_DEPTH}+)"
1026 while [ ${PATCH_DEPTH} -lt 5 ]; do 999 while [ ${PATCH_DEPTH} -lt 5 ]; do
1027 echo "Attempting Dry-run:" >> ${STDERR_T} 1000 echo "Attempting Dry-run:" >> ${STDERR_T}
1028 echo "cmd: patch -p${PATCH_DEPTH} --no-backup-if-mismatch --dry-run -f < ${i}" >> ${STDERR_T} 1001 echo "cmd: patch -p${PATCH_DEPTH} --no-backup-if-mismatch --dry-run -f < ${i}" >> ${STDERR_T}
1029 echo "=======================================================" >> ${STDERR_T} 1002 echo "=======================================================" >> ${STDERR_T}
1030 if [ $(patch -p${PATCH_DEPTH} --no-backup-if-mismatch --dry-run -f < ${i} >> ${STDERR_T}) $? -eq 0 ]; then 1003 if [ $(patch -p${PATCH_DEPTH} --no-backup-if-mismatch --dry-run -f < ${i} >> ${STDERR_T}) $? -eq 0 ]; then
1004 ebegin "Applying ${i/*\//} (-p${PATCH_DEPTH})"
1031 echo "Attempting patch:" > ${STDERR_T} 1005 echo "Attempting patch:" > ${STDERR_T}
1032 echo "cmd: patch -p${PATCH_DEPTH} --no-backup-if-mismatch -f < ${i}" >> ${STDERR_T} 1006 echo "cmd: patch -p${PATCH_DEPTH} --no-backup-if-mismatch -f < ${i}" >> ${STDERR_T}
1033 echo "=======================================================" >> ${STDERR_T} 1007 echo "=======================================================" >> ${STDERR_T}
1034 if [ $(patch -p${PATCH_DEPTH} --no-backup-if-mismatch -f < ${i} >> ${STDERR_T}) "$?" -eq 0 ]; then 1008 if [ $(patch -p${PATCH_DEPTH} --no-backup-if-mismatch -f < ${i} >> ${STDERR_T}) "$?" -eq 0 ]; then
1035 eend 0 1009 eend 0
1038 else 1012 else
1039 eend 1 1013 eend 1
1040 eerror "Failed to apply patch ${i/*\//}" 1014 eerror "Failed to apply patch ${i/*\//}"
1041 eerror "Please attach ${STDERR_T} to any bug you may post." 1015 eerror "Please attach ${STDERR_T} to any bug you may post."
1042 eshopts_pop 1016 eshopts_pop
1043 die "Failed to apply ${i/*\//}" 1017 die "Failed to apply ${i/*\//} on patch depth ${PATCH_DEPTH}."
1044 fi 1018 fi
1045 else 1019 else
1046 PATCH_DEPTH=$((${PATCH_DEPTH} + 1)) 1020 PATCH_DEPTH=$((${PATCH_DEPTH} + 1))
1047 fi 1021 fi
1048 done 1022 done
1049 if [ ${PATCH_DEPTH} -eq 5 ]; then 1023 if [ ${PATCH_DEPTH} -eq 5 ]; then
1050 eend 1 1024 eerror "Failed to dry-run patch ${i/*\//}"
1051 eerror "Please attach ${STDERR_T} to any bug you may post." 1025 eerror "Please attach ${STDERR_T} to any bug you may post."
1052 eshopts_pop 1026 eshopts_pop
1053 die "Unable to dry-run patch." 1027 die "Unable to dry-run patch on any patch depth lower than 5."
1054 fi 1028 fi
1055 done 1029 done
1056 done 1030 done
1057 1031
1058 # This is a quick, and kind of nasty hack to deal with UNIPATCH_DOCS which 1032 # When genpatches is used, we want to install 0000_README which documents
1059 # sit in KPATCH_DIR's. This is handled properly in the unipatch rewrite, 1033 # the patches that were used; such that the user can see them, bug #301478.
1060 # which is why I'm not taking too much time over this. 1034 if [[ ! -z ${K_WANT_GENPATCHES} ]] ; then
1035 UNIPATCH_DOCS="${UNIPATCH_DOCS} 0000_README"
1036 fi
1037
1038 # When files listed in UNIPATCH_DOCS are found in KPATCH_DIR's, we copy it
1039 # to the temporary directory and remember them in UNIPATCH_DOCS to install
1040 # them during the install phase.
1061 local tmp 1041 local tmp
1042 for x in ${KPATCH_DIR}; do
1062 for i in ${UNIPATCH_DOCS}; do 1043 for i in ${UNIPATCH_DOCS}; do
1044 if [[ -f "${x}/${i}" ]] ; then
1063 tmp="${tmp} ${i//*\/}" 1045 tmp="${tmp} ${i}"
1064 cp -f ${i} "${T}"/ 1046 cp -f "${x}/${i}" "${T}"/
1047 fi
1048 done
1065 done 1049 done
1066 UNIPATCH_DOCS="${tmp}" 1050 UNIPATCH_DOCS="${tmp}"
1067 1051
1068 # clean up KPATCH_DIR's - fixes bug #53610 1052 # clean up KPATCH_DIR's - fixes bug #53610
1069 for x in ${KPATCH_DIR}; do rm -Rf ${x}; done 1053 for x in ${KPATCH_DIR}; do rm -Rf ${x}; done
1125 for i in ${COMPAT_URI}; do 1109 for i in ${COMPAT_URI}; do
1126 ARCH_PATCH="${ARCH_PATCH} ${DISTDIR}/${i/*\//}" 1110 ARCH_PATCH="${ARCH_PATCH} ${DISTDIR}/${i/*\//}"
1127 done 1111 done
1128 fi 1112 fi
1129 done 1113 done
1130}
1131
1132# sparc nastiness
1133#==============================================================
1134# This script generates the files in /usr/include/asm for sparc systems
1135# during installation of sys-kernel/linux-headers.
1136# Will no longer be needed when full 64 bit support is used on sparc64
1137# systems.
1138#
1139# Shamefully ripped from Debian
1140# ----------------------------------------------------------------------
1141
1142# Idea borrowed from RedHat's kernel package
1143
1144# This is gonna get replaced by something in multilib.eclass soon...
1145# --eradicator
1146generate_sparc_asm() {
1147 local name
1148
1149 cd $1 || die
1150 mkdir asm
1151
1152 for h in `( ls asm-sparc; ls asm-sparc64 ) | grep '\.h$' | sort -u`; do
1153 name="$(echo $h | tr a-z. A-Z_)"
1154 # common header
1155 echo "/* All asm/ files are generated and point to the corresponding
1156 * file in asm-sparc or asm-sparc64.
1157 */
1158
1159#ifndef __SPARCSTUB__${name}__
1160#define __SPARCSTUB__${name}__
1161" > asm/${h}
1162
1163 # common for sparc and sparc64
1164 if [ -f asm-sparc/$h -a -f asm-sparc64/$h ]; then
1165 echo "#ifdef __arch64__
1166#include <asm-sparc64/$h>
1167#else
1168#include <asm-sparc/$h>
1169#endif
1170" >> asm/${h}
1171
1172 # sparc only
1173 elif [ -f asm-sparc/$h ]; then
1174echo "#ifndef __arch64__
1175#include <asm-sparc/$h>
1176#endif
1177" >> asm/${h}
1178
1179 # sparc64 only
1180 else
1181echo "#ifdef __arch64__
1182#include <asm-sparc64/$h>
1183#endif
1184" >> asm/${h}
1185 fi
1186
1187 # common footer
1188 echo "#endif /* !__SPARCSTUB__${name}__ */" >> asm/${h}
1189 done
1190 return 0
1191} 1114}
1192 1115
1193headers___fix() { 1116headers___fix() {
1194 # Voodoo to partially fix broken upstream headers. 1117 # Voodoo to partially fix broken upstream headers.
1195 # note: do not put inline/asm/volatile together (breaks "inline asm volatile") 1118 # note: do not put inline/asm/volatile together (breaks "inline asm volatile")
1241 if [[ $K_DEBLOB_AVAILABLE == 1 ]] && use deblob ; then 1164 if [[ $K_DEBLOB_AVAILABLE == 1 ]] && use deblob ; then
1242 cp "${DISTDIR}/${DEBLOB_A}" "${T}" || die "cp ${DEBLOB_A} failed" 1165 cp "${DISTDIR}/${DEBLOB_A}" "${T}" || die "cp ${DEBLOB_A} failed"
1243 cp "${DISTDIR}/${DEBLOB_CHECK_A}" "${T}/deblob-check" || die "cp ${DEBLOB_CHECK_A} failed" 1166 cp "${DISTDIR}/${DEBLOB_CHECK_A}" "${T}/deblob-check" || die "cp ${DEBLOB_CHECK_A} failed"
1244 chmod +x "${T}/${DEBLOB_A}" "${T}/deblob-check" || die "chmod deblob scripts failed" 1167 chmod +x "${T}/${DEBLOB_A}" "${T}/deblob-check" || die "chmod deblob scripts failed"
1245 fi 1168 fi
1169
1170 # fix a problem on ppc where TOUT writes to /usr/src/linux breaking sandbox
1171 # only do this for kernel < 2.6.27 since this file does not exist in later
1172 # kernels
1173 if [[ -n ${KV_MINOR} && ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} < 2.6.27 ]]
1174 then
1175 sed -i \
1176 -e 's|TOUT := .tmp_gas_check|TOUT := $(T).tmp_gas_check|' \
1177 "${S}"/arch/ppc/Makefile
1178 else
1179 sed -i \
1180 -e 's|TOUT := .tmp_gas_check|TOUT := $(T).tmp_gas_check|' \
1181 "${S}"/arch/powerpc/Makefile
1182 fi
1246} 1183}
1247 1184
1248kernel-2_src_compile() { 1185kernel-2_src_compile() {
1249 cd "${S}" 1186 cd "${S}"
1250 [[ ${ETYPE} == headers ]] && compile_headers 1187 [[ ${ETYPE} == headers ]] && compile_headers
1251 1188
1252 if [[ $K_DEBLOB_AVAILABLE == 1 ]] && use deblob ; then 1189 if [[ $K_DEBLOB_AVAILABLE == 1 ]] && use deblob ; then
1253 echo ">>> Running deblob script ..." 1190 echo ">>> Running deblob script ..."
1254 sh "${T}/${DEBLOB_A}" --force || \ 1191 EPYTHON="python2" sh "${T}/${DEBLOB_A}" --force || die "Deblob script failed to run!!!"
1255 die "Deblob script failed to run!!!"
1256 fi 1192 fi
1257} 1193}
1258 1194
1259# if you leave it to the default src_test, it will run make to 1195# if you leave it to the default src_test, it will run make to
1260# find whether test/check targets are present; since "make test" 1196# find whether test/check targets are present; since "make test"
1278 [[ ${ETYPE} == sources ]] && postinst_sources 1214 [[ ${ETYPE} == sources ]] && postinst_sources
1279} 1215}
1280 1216
1281kernel-2_pkg_setup() { 1217kernel-2_pkg_setup() {
1282 if kernel_is 2 4; then 1218 if kernel_is 2 4; then
1283 if [ "$( gcc-major-version )" -eq "4" ] ; then 1219 if [[ $(gcc-major-version) -ge 4 ]] ; then
1284 echo 1220 echo
1285 ewarn "Be warned !! >=sys-devel/gcc-4.0.0 isn't supported with linux-2.4!" 1221 ewarn "Be warned !! >=sys-devel/gcc-4.0.0 isn't supported with linux-2.4!"
1286 ewarn "Either switch to another gcc-version (via gcc-config) or use a" 1222 ewarn "Either switch to another gcc-version (via gcc-config) or use a"
1287 ewarn "newer kernel that supports gcc-4." 1223 ewarn "newer kernel that supports gcc-4."
1288 echo 1224 echo
1297 [[ ${ETYPE} == headers ]] && setup_headers 1233 [[ ${ETYPE} == headers ]] && setup_headers
1298 [[ ${ETYPE} == sources ]] && echo ">>> Preparing to unpack ..." 1234 [[ ${ETYPE} == sources ]] && echo ">>> Preparing to unpack ..."
1299} 1235}
1300 1236
1301kernel-2_pkg_postrm() { 1237kernel-2_pkg_postrm() {
1238 # This warning only makes sense for kernel sources.
1239 [[ ${ETYPE} == headers ]] && return 0
1240
1241 # If there isn't anything left behind, then don't complain.
1242 [[ -e ${ROOT}usr/src/linux-${KV_FULL} ]] || return 0
1302 echo 1243 echo
1303 ewarn "Note: Even though you have successfully unmerged " 1244 ewarn "Note: Even though you have successfully unmerged "
1304 ewarn "your kernel package, directories in kernel source location: " 1245 ewarn "your kernel package, directories in kernel source location: "
1305 ewarn "${ROOT}usr/src/linux-${KV_FULL}" 1246 ewarn "${ROOT}usr/src/linux-${KV_FULL}"
1306 ewarn "with modified files will remain behind. By design, package managers" 1247 ewarn "with modified files will remain behind. By design, package managers"
1307 ewarn "will not remove these modified files and the directories they reside in." 1248 ewarn "will not remove these modified files and the directories they reside in."
1308 echo 1249 echo
1309} 1250}
1310

Legend:
Removed from v.1.260  
changed lines
  Added in v.1.287

  ViewVC Help
Powered by ViewVC 1.1.20