/[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.261 Revision 1.282
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.261 2011/10/24 23:58:11 mpagano Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/kernel-2.eclass,v 1.282 2013/04/17 13:52:17 tomwij 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
235 KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.x" 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
236 [[ -n "${K_LONGTERM}" ]] && 230 [[ -n "${K_LONGTERM}" ]] &&
231 #KERNEL_BASE_URI="${KERNEL_BASE_URI}/longterm"
237 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}"
238 fi 233 fi
239 234
240 debug-print "KERNEL_BASE_URI is ${KERNEL_BASE_URI}" 235 debug-print "KERNEL_BASE_URI is ${KERNEL_BASE_URI}"
241 236
242 if [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]]; then 237 if [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]]; then
243 # handle non genpatch using sources correctly 238 # handle non genpatch using sources correctly
244 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
245 KERNEL_URI="${KERNEL_BASE_URI}/patch-${OKV}.bz2" 240 KERNEL_URI="${KERNEL_BASE_URI}/patch-${OKV}.xz"
246 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV}.bz2" 241 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV}.xz"
247 fi 242 fi
248 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"
249 else 244 else
250 KERNEL_URI="${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 245 KERNEL_URI="${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
251 fi 246 fi
252 247
253 RELEASE=${CKV/${OKV}} 248 RELEASE=${CKV/${OKV}}
254 RELEASE=${RELEASE/_beta} 249 RELEASE=${RELEASE/_beta}
255 RELEASE=${RELEASE/_rc/-rc} 250 RELEASE=${RELEASE/_rc/-rc}
299 if [[ -n ${KV_MINOR} ]]; then 294 if [[ -n ${KV_MINOR} ]]; then
300 OKV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}" 295 OKV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
301 else 296 else
302 OKV="${KV_MAJOR}.${KV_PATCH}" 297 OKV="${KV_MAJOR}.${KV_PATCH}"
303 fi 298 fi
304 KERNEL_URI="${KERNEL_BASE_URI}/patch-${CKV}.bz2 299 KERNEL_URI="${KERNEL_BASE_URI}/patch-${CKV}.xz
305 ${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 300 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
306 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV}.bz2" 301 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV}.xz"
307 fi 302 fi
308 303
309 # 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
310 # messing around with OKV based on RELEASETYPE 305 # messing around with OKV based on RELEASETYPE
311 KV_FULL=${OKV}${EXTRAVERSION} 306 KV_FULL=${OKV}${EXTRAVERSION}
316 311
317 # -rc-git pulls can be achieved by specifying CKV 312 # -rc-git pulls can be achieved by specifying CKV
318 # for example: 313 # for example:
319 # CKV="2.6.11_rc3_pre2" 314 # CKV="2.6.11_rc3_pre2"
320 # will pull: 315 # will pull:
321 # 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
322 317
323 if [[ ${KV_MAJOR}${KV_MINOR} -eq 26 ]]; then 318 if [[ ${KV_MAJOR}${KV_MINOR} -eq 26 ]]; then
324 319
325 if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then 320 if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then
326 OKV="${KV_MAJOR}.${KV_MINOR}.$((${KV_PATCH} - 1))" 321 OKV="${KV_MAJOR}.${KV_MINOR}.$((${KV_PATCH} - 1))"
327 KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.bz2 322 KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.xz
328 ${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 323 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
329 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.bz2" 324 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.xz"
330 fi 325 fi
331 326
332 if [[ ${RELEASETYPE} == -git ]]; then 327 if [[ ${RELEASETYPE} == -git ]]; then
333 KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${OKV}${RELEASE}.bz2 328 KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${OKV}${RELEASE}.xz
334 ${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 329 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
335 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${OKV}${RELEASE}.bz2" 330 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${OKV}${RELEASE}.xz"
336 fi 331 fi
337 332
338 if [[ ${RELEASETYPE} == -rc-git ]]; then 333 if [[ ${RELEASETYPE} == -rc-git ]]; then
339 OKV="${KV_MAJOR}.${KV_MINOR}.$((${KV_PATCH} - 1))" 334 OKV="${KV_MAJOR}.${KV_MINOR}.$((${KV_PATCH} - 1))"
340 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
341 ${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
342 ${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 337 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
343 338
344 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"
345 fi 340 fi
346 else 341 else
347 if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then 342 if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then
348 if [[ ${KV_MAJOR}${KV_PATCH} -eq 30 ]]; then 343 if [[ ${KV_MAJOR}${KV_PATCH} -eq 30 ]]; then
349 OKV="2.6.39" 344 OKV="2.6.39"
350 else 345 else
351 KV_PATCH_ARR=(${KV_PATCH//\./ }) 346 KV_PATCH_ARR=(${KV_PATCH//\./ })
352 OKV="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))" 347 OKV="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))"
353 fi 348 fi
354 KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.bz2 349 KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.xz
355 ${KERNEL_BASE_URI}/testing/linux-${OKV}.tar.bz2" 350 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
356 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.bz2" 351 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.xz"
357 fi 352 fi
358 353
359 if [[ ${RELEASETYPE} == -git ]]; then 354 if [[ ${RELEASETYPE} == -git ]]; then
360 KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${OKV}${RELEASE}.bz2 355 KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${OKV}${RELEASE}.xz
361 ${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 356 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
362 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${OKV}${RELEASE}.bz2" 357 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${OKV}${RELEASE}.xz"
363 fi 358 fi
364 359
365 if [[ ${RELEASETYPE} == -rc-git ]]; then 360 if [[ ${RELEASETYPE} == -rc-git ]]; then
366 if [[ ${KV_MAJOR}${KV_PATCH} -eq 30 ]]; then 361 if [[ ${KV_MAJOR}${KV_PATCH} -eq 30 ]]; then
367 OKV="2.6.39" 362 OKV="2.6.39"
368 else 363 else
369 KV_PATCH_ARR=(${KV_PATCH//\./ }) 364 KV_PATCH_ARR=(${KV_PATCH//\./ })
370 OKV="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))" 365 OKV="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))"
371 fi 366 fi
372 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
373 ${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
374 ${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 369 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
375 370
376 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"
377 fi 372 fi
378 373
379 374
380 fi 375 fi
381 376
383 debug-print-kernel2-variables 378 debug-print-kernel2-variables
384 379
385 handle_genpatches 380 handle_genpatches
386} 381}
387 382
383# Note: duplicated in linux-info.eclass
388kernel_is() { 384kernel_is() {
389 # 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.
390 # 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.
391 local v n=0 387 local v n=0
392 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
393 [[ $n -eq 1 ]] && detect_version 389 [[ $n -eq 1 ]] && detect_version
394 unset v n 390 unset v n
395 391
396 # Now we can continue 392 # Now we can continue
397 local operator test value x=0 y=0 z=0 393 local operator test value
398 394
399 case ${1} in 395 case ${1#-} in
400 lt) operator="-lt"; shift;; 396 lt) operator="-lt"; shift;;
401 gt) operator="-gt"; shift;; 397 gt) operator="-gt"; shift;;
402 le) operator="-le"; shift;; 398 le) operator="-le"; shift;;
403 ge) operator="-ge"; shift;; 399 ge) operator="-ge"; shift;;
404 eq) operator="-eq"; shift;; 400 eq) operator="-eq"; shift;;
405 *) operator="-eq";; 401 *) operator="-eq";;
406 esac 402 esac
407
408 for x in ${@}; do
409 for((y=0; y<$((3 - ${#x})); y++)); do value="${value}0"; done
410 value="${value}${x}"
411 z=$((${z} + 1))
412
413 case ${z} in
414 1) for((y=0; y<$((3 - ${#KV_MAJOR})); y++)); do test="${test}0"; done;
415 test="${test}${KV_MAJOR}";;
416 2) for((y=0; y<$((3 - ${#KV_MINOR})); y++)); do test="${test}0"; done;
417 test="${test}${KV_MINOR}";;
418 3) for((y=0; y<$((3 - ${#KV_PATCH})); y++)); do test="${test}0"; done;
419 test="${test}${KV_PATCH}";;
420 *) die "Error in kernel-2_kernel_is(): Too many parameters.";; 403 [[ $# -gt 3 ]] && die "Error in kernel-2_kernel_is(): too many parameters"
421 esac
422 done
423 404
424 [ ${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} ]
425} 408}
426 409
427kernel_is_2_4() { 410kernel_is_2_4() {
428 kernel_is 2 4 411 kernel_is 2 4
429} 412}
435# Capture the sources type and set DEPENDs 418# Capture the sources type and set DEPENDs
436if [[ ${ETYPE} == sources ]]; then 419if [[ ${ETYPE} == sources ]]; then
437 DEPEND="!build? ( sys-apps/sed 420 DEPEND="!build? ( sys-apps/sed
438 >=sys-devel/binutils-2.11.90.0.31 )" 421 >=sys-devel/binutils-2.11.90.0.31 )"
439 RDEPEND="!build? ( >=sys-libs/ncurses-5.2 422 RDEPEND="!build? ( >=sys-libs/ncurses-5.2
440 sys-devel/make )" 423 sys-devel/make
424 dev-lang/perl
425 sys-devel/bc )"
441 PDEPEND="!build? ( virtual/dev-manager )" 426 PDEPEND="!build? ( virtual/dev-manager )"
442 427
443 SLOT="${PVR}" 428 SLOT="${PVR}"
444 DESCRIPTION="Sources for the ${KV_MAJOR}.${KV_MINOR:-$KV_PATCH} linux kernel" 429 DESCRIPTION="Sources based on the Linux Kernel."
445 IUSE="symlink build" 430 IUSE="symlink build"
446 431
447 # Bug #266157, deblob for libre support 432 # Bug #266157, deblob for libre support
448 if [[ -z ${K_PREDEBLOBBED} ]] ; then 433 if [[ -z ${K_PREDEBLOBBED} ]] ; then
449 # Bug #359865, force a call to detect_version if needed 434 # Bug #359865, force a call to detect_version if needed
477 DEBLOB_CHECK_URI="mirror://gentoo/${DEBLOB_CHECK_A}" 462 DEBLOB_CHECK_URI="mirror://gentoo/${DEBLOB_CHECK_A}"
478 fi 463 fi
479 DEBLOB_URI="${DEBLOB_HOMEPAGE}/${DEBLOB_URI_PATH}/${DEBLOB_A}" 464 DEBLOB_URI="${DEBLOB_HOMEPAGE}/${DEBLOB_URI_PATH}/${DEBLOB_A}"
480 HOMEPAGE="${HOMEPAGE} ${DEBLOB_HOMEPAGE}" 465 HOMEPAGE="${HOMEPAGE} ${DEBLOB_HOMEPAGE}"
481 466
467 DEPEND+=" deblob? ( =dev-lang/python-2* )"
482 KERNEL_URI="${KERNEL_URI} 468 KERNEL_URI="${KERNEL_URI}
483 deblob? ( 469 deblob? (
484 ${DEBLOB_URI} 470 ${DEBLOB_URI}
485 ${DEBLOB_CHECK_URI} 471 ${DEBLOB_CHECK_URI}
486 )" 472 )"
496 482
497 # Since we should NOT honour KBUILD_OUTPUT in headers 483 # Since we should NOT honour KBUILD_OUTPUT in headers
498 # lets unset it here. 484 # lets unset it here.
499 unset KBUILD_OUTPUT 485 unset KBUILD_OUTPUT
500 486
501 if [[ ${CTARGET} = ${CHOST} ]]; then
502 SLOT="0" 487 SLOT="0"
503 else
504 SLOT="${CTARGET}"
505 fi
506else 488else
507 eerror "Unknown ETYPE=\"${ETYPE}\", must be \"sources\" or \"headers\"" 489 eerror "Unknown ETYPE=\"${ETYPE}\", must be \"sources\" or \"headers\""
508 die "Unknown ETYPE=\"${ETYPE}\", must be \"sources\" or \"headers\"" 490 die "Unknown ETYPE=\"${ETYPE}\", must be \"sources\" or \"headers\""
509fi 491fi
510 492
568} 550}
569 551
570universal_unpack() { 552universal_unpack() {
571 debug-print "Inside universal_unpack" 553 debug-print "Inside universal_unpack"
572 554
573 local oldifs=${IFS}
574 export IFS="."
575 local OKV_ARRAY=( $OKV ) 555 local OKV_ARRAY
576 export IFS=${oldifs} 556 IFS="." read -r -a OKV_ARRAY <<<"${OKV}"
577 557
578 cd "${WORKDIR}" 558 cd "${WORKDIR}"
579 if [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]]; then 559 if [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]]; then
580 unpack linux-${KV_MAJOR}.${KV_MINOR}.tar.bz2 560 unpack linux-${KV_MAJOR}.${KV_MINOR}.tar.xz
581 else 561 else
582 unpack linux-${OKV}.tar.bz2 562 unpack linux-${OKV}.tar.xz
583 fi 563 fi
584 564
585 if [[ -d "linux" ]]; then 565 if [[ -d "linux" ]]; then
586 debug-print "Moving linux to linux-${KV_FULL}" 566 debug-print "Moving linux to linux-${KV_FULL}"
587 mv linux linux-${KV_FULL} \ 567 mv linux linux-${KV_FULL} \
604 cd "${S}" 584 cd "${S}"
605 585
606 # remove all backup files 586 # remove all backup files
607 find . -iname "*~" -exec rm {} \; 2> /dev/null 587 find . -iname "*~" -exec rm {} \; 2> /dev/null
608 588
609 # fix a problem on ppc where TOUT writes to /usr/src/linux breaking sandbox
610 # only do this for kernel < 2.6.27 since this file does not exist in later
611 # kernels
612 if [[ -n ${KV_MINOR} && ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} < 2.6.27 ]]
613 then
614 sed -i \
615 -e 's|TOUT := .tmp_gas_check|TOUT := $(T).tmp_gas_check|' \
616 "${S}"/arch/ppc/Makefile
617 else
618 sed -i \
619 -e 's|TOUT := .tmp_gas_check|TOUT := $(T).tmp_gas_check|' \
620 "${S}"/arch/powerpc/Makefile
621 fi
622} 589}
623 590
624unpack_set_extraversion() { 591unpack_set_extraversion() {
625 cd "${S}" 592 cd "${S}"
626 sed -i -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile 593 sed -i -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile
703} 670}
704 671
705# install functions 672# install functions
706#============================================================== 673#==============================================================
707install_universal() { 674install_universal() {
708 #fix silly permissions in tarball 675 # Fix silly permissions in tarball
709 cd "${WORKDIR}" 676 cd "${WORKDIR}"
710 chown -R root:0 * >& /dev/null 677 chown -R 0:0 * >& /dev/null
711 chmod -R a+r-w+X,u+w * 678 chmod -R a+r-w+X,u+w *
712 cd ${OLDPWD} 679 cd ${OLDPWD}
713} 680}
714 681
715install_headers() { 682install_headers() {
772 echo "Please check the ebuild ChangeLog for more details." \ 739 echo "Please check the ebuild ChangeLog for more details." \
773 > "${S}"/patches.txt 740 > "${S}"/patches.txt
774 fi 741 fi
775 742
776 mv ${WORKDIR}/linux* "${D}"/usr/src 743 mv ${WORKDIR}/linux* "${D}"/usr/src
744
745 if [[ -z ${UNIPATCH_DOCS} ]] ; then
746 dodoc ${UNIPATCH_DOCS}
747 fi
777} 748}
778 749
779# pkg_preinst functions 750# pkg_preinst functions
780#============================================================== 751#==============================================================
781preinst_headers() { 752preinst_headers() {
1021 [ -z ${i/*.patch*/} ] && PATCH_DEPTH=${i/*.patch/} 992 [ -z ${i/*.patch*/} ] && PATCH_DEPTH=${i/*.patch/}
1022 #[ -z ${i/*.diff*/} ] && PATCH_DEPTH=${i/*.diff/} 993 #[ -z ${i/*.diff*/} ] && PATCH_DEPTH=${i/*.diff/}
1023 994
1024 if [ -z "${PATCH_DEPTH}" ]; then PATCH_DEPTH=0; fi 995 if [ -z "${PATCH_DEPTH}" ]; then PATCH_DEPTH=0; fi
1025 996
1026 ebegin "Applying ${i/*\//} (-p${PATCH_DEPTH}+)"
1027 while [ ${PATCH_DEPTH} -lt 5 ]; do 997 while [ ${PATCH_DEPTH} -lt 5 ]; do
1028 echo "Attempting Dry-run:" >> ${STDERR_T} 998 echo "Attempting Dry-run:" >> ${STDERR_T}
1029 echo "cmd: patch -p${PATCH_DEPTH} --no-backup-if-mismatch --dry-run -f < ${i}" >> ${STDERR_T} 999 echo "cmd: patch -p${PATCH_DEPTH} --no-backup-if-mismatch --dry-run -f < ${i}" >> ${STDERR_T}
1030 echo "=======================================================" >> ${STDERR_T} 1000 echo "=======================================================" >> ${STDERR_T}
1031 if [ $(patch -p${PATCH_DEPTH} --no-backup-if-mismatch --dry-run -f < ${i} >> ${STDERR_T}) $? -eq 0 ]; then 1001 if [ $(patch -p${PATCH_DEPTH} --no-backup-if-mismatch --dry-run -f < ${i} >> ${STDERR_T}) $? -eq 0 ]; then
1002 ebegin "Applying ${i/*\//} (-p${PATCH_DEPTH})"
1032 echo "Attempting patch:" > ${STDERR_T} 1003 echo "Attempting patch:" > ${STDERR_T}
1033 echo "cmd: patch -p${PATCH_DEPTH} --no-backup-if-mismatch -f < ${i}" >> ${STDERR_T} 1004 echo "cmd: patch -p${PATCH_DEPTH} --no-backup-if-mismatch -f < ${i}" >> ${STDERR_T}
1034 echo "=======================================================" >> ${STDERR_T} 1005 echo "=======================================================" >> ${STDERR_T}
1035 if [ $(patch -p${PATCH_DEPTH} --no-backup-if-mismatch -f < ${i} >> ${STDERR_T}) "$?" -eq 0 ]; then 1006 if [ $(patch -p${PATCH_DEPTH} --no-backup-if-mismatch -f < ${i} >> ${STDERR_T}) "$?" -eq 0 ]; then
1036 eend 0 1007 eend 0
1039 else 1010 else
1040 eend 1 1011 eend 1
1041 eerror "Failed to apply patch ${i/*\//}" 1012 eerror "Failed to apply patch ${i/*\//}"
1042 eerror "Please attach ${STDERR_T} to any bug you may post." 1013 eerror "Please attach ${STDERR_T} to any bug you may post."
1043 eshopts_pop 1014 eshopts_pop
1044 die "Failed to apply ${i/*\//}" 1015 die "Failed to apply ${i/*\//} on patch depth ${PATCH_DEPTH}."
1045 fi 1016 fi
1046 else 1017 else
1047 PATCH_DEPTH=$((${PATCH_DEPTH} + 1)) 1018 PATCH_DEPTH=$((${PATCH_DEPTH} + 1))
1048 fi 1019 fi
1049 done 1020 done
1050 if [ ${PATCH_DEPTH} -eq 5 ]; then 1021 if [ ${PATCH_DEPTH} -eq 5 ]; then
1051 eend 1 1022 eerror "Failed to dry-run patch ${i/*\//}"
1052 eerror "Please attach ${STDERR_T} to any bug you may post." 1023 eerror "Please attach ${STDERR_T} to any bug you may post."
1053 eshopts_pop 1024 eshopts_pop
1054 die "Unable to dry-run patch." 1025 die "Unable to dry-run patch on any patch depth lower than 5."
1055 fi 1026 fi
1056 done 1027 done
1057 done 1028 done
1058 1029
1059 # This is a quick, and kind of nasty hack to deal with UNIPATCH_DOCS which 1030 # When genpatches is used, we want to install 0000_README which documents
1060 # sit in KPATCH_DIR's. This is handled properly in the unipatch rewrite, 1031 # the patches that were used; such that the user can see them, bug #301478.
1061 # which is why I'm not taking too much time over this. 1032 if [[ ! -z ${K_WANT_GENPATCHES} ]] ; then
1033 UNIPATCH_DOCS="${UNIPATCH_DOCS} 0000_README"
1034 fi
1035
1036 # When files listed in UNIPATCH_DOCS are found in KPATCH_DIR's, we copy it
1037 # to the temporary directory and remember them in UNIPATCH_DOCS to install
1038 # them during the install phase.
1062 local tmp 1039 local tmp
1040 for x in ${KPATCH_DIR}; do
1063 for i in ${UNIPATCH_DOCS}; do 1041 for i in ${UNIPATCH_DOCS}; do
1064 tmp="${tmp} ${i//*\/}" 1042 if [[ -f "${x}/${i}" ]] ; then
1043 tmp="${tmp} \"${T}/${i}\""
1065 cp -f ${i} "${T}"/ 1044 cp -f "${x}/${i}" "${T}"/
1045 fi
1046 done
1066 done 1047 done
1067 UNIPATCH_DOCS="${tmp}" 1048 UNIPATCH_DOCS="${tmp}"
1068 1049
1069 # clean up KPATCH_DIR's - fixes bug #53610 1050 # clean up KPATCH_DIR's - fixes bug #53610
1070 for x in ${KPATCH_DIR}; do rm -Rf ${x}; done 1051 for x in ${KPATCH_DIR}; do rm -Rf ${x}; done
1126 for i in ${COMPAT_URI}; do 1107 for i in ${COMPAT_URI}; do
1127 ARCH_PATCH="${ARCH_PATCH} ${DISTDIR}/${i/*\//}" 1108 ARCH_PATCH="${ARCH_PATCH} ${DISTDIR}/${i/*\//}"
1128 done 1109 done
1129 fi 1110 fi
1130 done 1111 done
1131}
1132
1133# sparc nastiness
1134#==============================================================
1135# This script generates the files in /usr/include/asm for sparc systems
1136# during installation of sys-kernel/linux-headers.
1137# Will no longer be needed when full 64 bit support is used on sparc64
1138# systems.
1139#
1140# Shamefully ripped from Debian
1141# ----------------------------------------------------------------------
1142
1143# Idea borrowed from RedHat's kernel package
1144
1145# This is gonna get replaced by something in multilib.eclass soon...
1146# --eradicator
1147generate_sparc_asm() {
1148 local name
1149
1150 cd $1 || die
1151 mkdir asm
1152
1153 for h in `( ls asm-sparc; ls asm-sparc64 ) | grep '\.h$' | sort -u`; do
1154 name="$(echo $h | tr a-z. A-Z_)"
1155 # common header
1156 echo "/* All asm/ files are generated and point to the corresponding
1157 * file in asm-sparc or asm-sparc64.
1158 */
1159
1160#ifndef __SPARCSTUB__${name}__
1161#define __SPARCSTUB__${name}__
1162" > asm/${h}
1163
1164 # common for sparc and sparc64
1165 if [ -f asm-sparc/$h -a -f asm-sparc64/$h ]; then
1166 echo "#ifdef __arch64__
1167#include <asm-sparc64/$h>
1168#else
1169#include <asm-sparc/$h>
1170#endif
1171" >> asm/${h}
1172
1173 # sparc only
1174 elif [ -f asm-sparc/$h ]; then
1175echo "#ifndef __arch64__
1176#include <asm-sparc/$h>
1177#endif
1178" >> asm/${h}
1179
1180 # sparc64 only
1181 else
1182echo "#ifdef __arch64__
1183#include <asm-sparc64/$h>
1184#endif
1185" >> asm/${h}
1186 fi
1187
1188 # common footer
1189 echo "#endif /* !__SPARCSTUB__${name}__ */" >> asm/${h}
1190 done
1191 return 0
1192} 1112}
1193 1113
1194headers___fix() { 1114headers___fix() {
1195 # Voodoo to partially fix broken upstream headers. 1115 # Voodoo to partially fix broken upstream headers.
1196 # note: do not put inline/asm/volatile together (breaks "inline asm volatile") 1116 # note: do not put inline/asm/volatile together (breaks "inline asm volatile")
1242 if [[ $K_DEBLOB_AVAILABLE == 1 ]] && use deblob ; then 1162 if [[ $K_DEBLOB_AVAILABLE == 1 ]] && use deblob ; then
1243 cp "${DISTDIR}/${DEBLOB_A}" "${T}" || die "cp ${DEBLOB_A} failed" 1163 cp "${DISTDIR}/${DEBLOB_A}" "${T}" || die "cp ${DEBLOB_A} failed"
1244 cp "${DISTDIR}/${DEBLOB_CHECK_A}" "${T}/deblob-check" || die "cp ${DEBLOB_CHECK_A} failed" 1164 cp "${DISTDIR}/${DEBLOB_CHECK_A}" "${T}/deblob-check" || die "cp ${DEBLOB_CHECK_A} failed"
1245 chmod +x "${T}/${DEBLOB_A}" "${T}/deblob-check" || die "chmod deblob scripts failed" 1165 chmod +x "${T}/${DEBLOB_A}" "${T}/deblob-check" || die "chmod deblob scripts failed"
1246 fi 1166 fi
1167
1168 # fix a problem on ppc where TOUT writes to /usr/src/linux breaking sandbox
1169 # only do this for kernel < 2.6.27 since this file does not exist in later
1170 # kernels
1171 if [[ -n ${KV_MINOR} && ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} < 2.6.27 ]]
1172 then
1173 sed -i \
1174 -e "s|TOUT := .tmp_gas_check|TOUT := \"${T}\"/.tmp_gas_check|" \
1175 "${S}"/arch/ppc/Makefile
1176 else
1177 sed -i \
1178 -e "s|TOUT := .tmp_gas_check|TOUT := \"${T}\"/.tmp_gas_check|" \
1179 "${S}"/arch/powerpc/Makefile
1180 fi
1247} 1181}
1248 1182
1249kernel-2_src_compile() { 1183kernel-2_src_compile() {
1250 cd "${S}" 1184 cd "${S}"
1251 [[ ${ETYPE} == headers ]] && compile_headers 1185 [[ ${ETYPE} == headers ]] && compile_headers
1252 1186
1253 if [[ $K_DEBLOB_AVAILABLE == 1 ]] && use deblob ; then 1187 if [[ $K_DEBLOB_AVAILABLE == 1 ]] && use deblob ; then
1254 echo ">>> Running deblob script ..." 1188 echo ">>> Running deblob script ..."
1255 sh "${T}/${DEBLOB_A}" --force || \ 1189 EPYTHON="python2" sh "${T}/${DEBLOB_A}" --force || die "Deblob script failed to run!!!"
1256 die "Deblob script failed to run!!!"
1257 fi 1190 fi
1258} 1191}
1259 1192
1260# if you leave it to the default src_test, it will run make to 1193# if you leave it to the default src_test, it will run make to
1261# find whether test/check targets are present; since "make test" 1194# find whether test/check targets are present; since "make test"
1279 [[ ${ETYPE} == sources ]] && postinst_sources 1212 [[ ${ETYPE} == sources ]] && postinst_sources
1280} 1213}
1281 1214
1282kernel-2_pkg_setup() { 1215kernel-2_pkg_setup() {
1283 if kernel_is 2 4; then 1216 if kernel_is 2 4; then
1284 if [ "$( gcc-major-version )" -eq "4" ] ; then 1217 if [[ $(gcc-major-version) -ge 4 ]] ; then
1285 echo 1218 echo
1286 ewarn "Be warned !! >=sys-devel/gcc-4.0.0 isn't supported with linux-2.4!" 1219 ewarn "Be warned !! >=sys-devel/gcc-4.0.0 isn't supported with linux-2.4!"
1287 ewarn "Either switch to another gcc-version (via gcc-config) or use a" 1220 ewarn "Either switch to another gcc-version (via gcc-config) or use a"
1288 ewarn "newer kernel that supports gcc-4." 1221 ewarn "newer kernel that supports gcc-4."
1289 echo 1222 echo
1298 [[ ${ETYPE} == headers ]] && setup_headers 1231 [[ ${ETYPE} == headers ]] && setup_headers
1299 [[ ${ETYPE} == sources ]] && echo ">>> Preparing to unpack ..." 1232 [[ ${ETYPE} == sources ]] && echo ">>> Preparing to unpack ..."
1300} 1233}
1301 1234
1302kernel-2_pkg_postrm() { 1235kernel-2_pkg_postrm() {
1236 # This warning only makes sense for kernel sources.
1237 [[ ${ETYPE} == headers ]] && return 0
1238
1239 # If there isn't anything left behind, then don't complain.
1240 [[ -e ${ROOT}usr/src/linux-${KV_FULL} ]] || return 0
1303 echo 1241 echo
1304 ewarn "Note: Even though you have successfully unmerged " 1242 ewarn "Note: Even though you have successfully unmerged "
1305 ewarn "your kernel package, directories in kernel source location: " 1243 ewarn "your kernel package, directories in kernel source location: "
1306 ewarn "${ROOT}usr/src/linux-${KV_FULL}" 1244 ewarn "${ROOT}usr/src/linux-${KV_FULL}"
1307 ewarn "with modified files will remain behind. By design, package managers" 1245 ewarn "with modified files will remain behind. By design, package managers"
1308 ewarn "will not remove these modified files and the directories they reside in." 1246 ewarn "will not remove these modified files and the directories they reside in."
1309 echo 1247 echo
1310} 1248}
1311

Legend:
Removed from v.1.261  
changed lines
  Added in v.1.282

  ViewVC Help
Powered by ViewVC 1.1.20