/[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.263 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.263 2011/12/01 23:32:41 vapier 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}"
237 else 226 else
238 KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_MINOR}" 227 KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_MINOR}"
239 fi 228 fi
240 229
241 [[ -n "${K_LONGTERM}" ]] && 230 [[ -n "${K_LONGTERM}" ]] &&
242 KERNEL_BASE_URI="${KERNEL_BASE_URI}/longterm" 231 #KERNEL_BASE_URI="${KERNEL_BASE_URI}/longterm"
243 #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}"
244 fi 233 fi
245 234
246 debug-print "KERNEL_BASE_URI is ${KERNEL_BASE_URI}" 235 debug-print "KERNEL_BASE_URI is ${KERNEL_BASE_URI}"
247 236
248 if [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]]; then 237 if [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]]; then
249 # handle non genpatch using sources correctly 238 # handle non genpatch using sources correctly
250 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
251 KERNEL_URI="${KERNEL_BASE_URI}/patch-${OKV}.bz2" 240 KERNEL_URI="${KERNEL_BASE_URI}/patch-${OKV}.xz"
252 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV}.bz2" 241 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV}.xz"
253 fi 242 fi
254 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"
255 else 244 else
256 KERNEL_URI="${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 245 KERNEL_URI="${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
257 fi 246 fi
258 247
259 RELEASE=${CKV/${OKV}} 248 RELEASE=${CKV/${OKV}}
260 RELEASE=${RELEASE/_beta} 249 RELEASE=${RELEASE/_beta}
261 RELEASE=${RELEASE/_rc/-rc} 250 RELEASE=${RELEASE/_rc/-rc}
305 if [[ -n ${KV_MINOR} ]]; then 294 if [[ -n ${KV_MINOR} ]]; then
306 OKV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}" 295 OKV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
307 else 296 else
308 OKV="${KV_MAJOR}.${KV_PATCH}" 297 OKV="${KV_MAJOR}.${KV_PATCH}"
309 fi 298 fi
310 KERNEL_URI="${KERNEL_BASE_URI}/patch-${CKV}.bz2 299 KERNEL_URI="${KERNEL_BASE_URI}/patch-${CKV}.xz
311 ${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 300 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
312 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV}.bz2" 301 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV}.xz"
313 fi 302 fi
314 303
315 # 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
316 # messing around with OKV based on RELEASETYPE 305 # messing around with OKV based on RELEASETYPE
317 KV_FULL=${OKV}${EXTRAVERSION} 306 KV_FULL=${OKV}${EXTRAVERSION}
322 311
323 # -rc-git pulls can be achieved by specifying CKV 312 # -rc-git pulls can be achieved by specifying CKV
324 # for example: 313 # for example:
325 # CKV="2.6.11_rc3_pre2" 314 # CKV="2.6.11_rc3_pre2"
326 # will pull: 315 # will pull:
327 # 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
328 317
329 if [[ ${KV_MAJOR}${KV_MINOR} -eq 26 ]]; then 318 if [[ ${KV_MAJOR}${KV_MINOR} -eq 26 ]]; then
330 319
331 if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then 320 if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then
332 OKV="${KV_MAJOR}.${KV_MINOR}.$((${KV_PATCH} - 1))" 321 OKV="${KV_MAJOR}.${KV_MINOR}.$((${KV_PATCH} - 1))"
333 KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.bz2 322 KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.xz
334 ${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 323 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
335 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.bz2" 324 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.xz"
336 fi 325 fi
337 326
338 if [[ ${RELEASETYPE} == -git ]]; then 327 if [[ ${RELEASETYPE} == -git ]]; then
339 KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${OKV}${RELEASE}.bz2 328 KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${OKV}${RELEASE}.xz
340 ${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 329 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
341 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${OKV}${RELEASE}.bz2" 330 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${OKV}${RELEASE}.xz"
342 fi 331 fi
343 332
344 if [[ ${RELEASETYPE} == -rc-git ]]; then 333 if [[ ${RELEASETYPE} == -rc-git ]]; then
345 OKV="${KV_MAJOR}.${KV_MINOR}.$((${KV_PATCH} - 1))" 334 OKV="${KV_MAJOR}.${KV_MINOR}.$((${KV_PATCH} - 1))"
346 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
347 ${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
348 ${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 337 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
349 338
350 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"
351 fi 340 fi
352 else 341 else
353 if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then 342 if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then
354 if [[ ${KV_MAJOR}${KV_PATCH} -eq 30 ]]; then 343 if [[ ${KV_MAJOR}${KV_PATCH} -eq 30 ]]; then
355 OKV="2.6.39" 344 OKV="2.6.39"
356 else 345 else
357 KV_PATCH_ARR=(${KV_PATCH//\./ }) 346 KV_PATCH_ARR=(${KV_PATCH//\./ })
358 OKV="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))" 347 OKV="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))"
359 fi 348 fi
360 KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.bz2 349 KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.xz
361 ${KERNEL_BASE_URI}/testing/linux-${OKV}.tar.bz2" 350 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
362 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.bz2" 351 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.xz"
363 fi 352 fi
364 353
365 if [[ ${RELEASETYPE} == -git ]]; then 354 if [[ ${RELEASETYPE} == -git ]]; then
366 KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${OKV}${RELEASE}.bz2 355 KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${OKV}${RELEASE}.xz
367 ${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 356 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
368 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${OKV}${RELEASE}.bz2" 357 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${OKV}${RELEASE}.xz"
369 fi 358 fi
370 359
371 if [[ ${RELEASETYPE} == -rc-git ]]; then 360 if [[ ${RELEASETYPE} == -rc-git ]]; then
372 if [[ ${KV_MAJOR}${KV_PATCH} -eq 30 ]]; then 361 if [[ ${KV_MAJOR}${KV_PATCH} -eq 30 ]]; then
373 OKV="2.6.39" 362 OKV="2.6.39"
374 else 363 else
375 KV_PATCH_ARR=(${KV_PATCH//\./ }) 364 KV_PATCH_ARR=(${KV_PATCH//\./ })
376 OKV="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))" 365 OKV="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))"
377 fi 366 fi
378 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
379 ${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
380 ${KERNEL_BASE_URI}/linux-${OKV}.tar.bz2" 369 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
381 370
382 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"
383 fi 372 fi
384 373
385 374
386 fi 375 fi
387 376
389 debug-print-kernel2-variables 378 debug-print-kernel2-variables
390 379
391 handle_genpatches 380 handle_genpatches
392} 381}
393 382
383# Note: duplicated in linux-info.eclass
394kernel_is() { 384kernel_is() {
395 # 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.
396 # 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.
397 local v n=0 387 local v n=0
398 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
399 [[ $n -eq 1 ]] && detect_version 389 [[ $n -eq 1 ]] && detect_version
400 unset v n 390 unset v n
401 391
402 # Now we can continue 392 # Now we can continue
403 local operator test value x=0 y=0 z=0 393 local operator test value
404 394
405 case ${1} in 395 case ${1#-} in
406 lt) operator="-lt"; shift;; 396 lt) operator="-lt"; shift;;
407 gt) operator="-gt"; shift;; 397 gt) operator="-gt"; shift;;
408 le) operator="-le"; shift;; 398 le) operator="-le"; shift;;
409 ge) operator="-ge"; shift;; 399 ge) operator="-ge"; shift;;
410 eq) operator="-eq"; shift;; 400 eq) operator="-eq"; shift;;
411 *) operator="-eq";; 401 *) operator="-eq";;
412 esac 402 esac
413
414 for x in ${@}; do
415 for((y=0; y<$((3 - ${#x})); y++)); do value="${value}0"; done
416 value="${value}${x}"
417 z=$((${z} + 1))
418
419 case ${z} in
420 1) for((y=0; y<$((3 - ${#KV_MAJOR})); y++)); do test="${test}0"; done;
421 test="${test}${KV_MAJOR}";;
422 2) for((y=0; y<$((3 - ${#KV_MINOR})); y++)); do test="${test}0"; done;
423 test="${test}${KV_MINOR}";;
424 3) for((y=0; y<$((3 - ${#KV_PATCH})); y++)); do test="${test}0"; done;
425 test="${test}${KV_PATCH}";;
426 *) die "Error in kernel-2_kernel_is(): Too many parameters.";; 403 [[ $# -gt 3 ]] && die "Error in kernel-2_kernel_is(): too many parameters"
427 esac
428 done
429 404
430 [ ${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} ]
431} 408}
432 409
433kernel_is_2_4() { 410kernel_is_2_4() {
434 kernel_is 2 4 411 kernel_is 2 4
435} 412}
441# Capture the sources type and set DEPENDs 418# Capture the sources type and set DEPENDs
442if [[ ${ETYPE} == sources ]]; then 419if [[ ${ETYPE} == sources ]]; then
443 DEPEND="!build? ( sys-apps/sed 420 DEPEND="!build? ( sys-apps/sed
444 >=sys-devel/binutils-2.11.90.0.31 )" 421 >=sys-devel/binutils-2.11.90.0.31 )"
445 RDEPEND="!build? ( >=sys-libs/ncurses-5.2 422 RDEPEND="!build? ( >=sys-libs/ncurses-5.2
446 sys-devel/make )" 423 sys-devel/make
424 dev-lang/perl
425 sys-devel/bc )"
447 PDEPEND="!build? ( virtual/dev-manager )" 426 PDEPEND="!build? ( virtual/dev-manager )"
448 427
449 SLOT="${PVR}" 428 SLOT="${PVR}"
450 DESCRIPTION="Sources for the ${KV_MAJOR}.${KV_MINOR:-$KV_PATCH} linux kernel" 429 DESCRIPTION="Sources based on the Linux Kernel."
451 IUSE="symlink build" 430 IUSE="symlink build"
452 431
453 # Bug #266157, deblob for libre support 432 # Bug #266157, deblob for libre support
454 if [[ -z ${K_PREDEBLOBBED} ]] ; then 433 if [[ -z ${K_PREDEBLOBBED} ]] ; then
455 # Bug #359865, force a call to detect_version if needed 434 # Bug #359865, force a call to detect_version if needed
483 DEBLOB_CHECK_URI="mirror://gentoo/${DEBLOB_CHECK_A}" 462 DEBLOB_CHECK_URI="mirror://gentoo/${DEBLOB_CHECK_A}"
484 fi 463 fi
485 DEBLOB_URI="${DEBLOB_HOMEPAGE}/${DEBLOB_URI_PATH}/${DEBLOB_A}" 464 DEBLOB_URI="${DEBLOB_HOMEPAGE}/${DEBLOB_URI_PATH}/${DEBLOB_A}"
486 HOMEPAGE="${HOMEPAGE} ${DEBLOB_HOMEPAGE}" 465 HOMEPAGE="${HOMEPAGE} ${DEBLOB_HOMEPAGE}"
487 466
467 DEPEND+=" deblob? ( =dev-lang/python-2* )"
488 KERNEL_URI="${KERNEL_URI} 468 KERNEL_URI="${KERNEL_URI}
489 deblob? ( 469 deblob? (
490 ${DEBLOB_URI} 470 ${DEBLOB_URI}
491 ${DEBLOB_CHECK_URI} 471 ${DEBLOB_CHECK_URI}
492 )" 472 )"
502 482
503 # Since we should NOT honour KBUILD_OUTPUT in headers 483 # Since we should NOT honour KBUILD_OUTPUT in headers
504 # lets unset it here. 484 # lets unset it here.
505 unset KBUILD_OUTPUT 485 unset KBUILD_OUTPUT
506 486
507 if [[ ${CTARGET} = ${CHOST} ]]; then
508 SLOT="0" 487 SLOT="0"
509 else
510 SLOT="${CTARGET}"
511 fi
512else 488else
513 eerror "Unknown ETYPE=\"${ETYPE}\", must be \"sources\" or \"headers\"" 489 eerror "Unknown ETYPE=\"${ETYPE}\", must be \"sources\" or \"headers\""
514 die "Unknown ETYPE=\"${ETYPE}\", must be \"sources\" or \"headers\"" 490 die "Unknown ETYPE=\"${ETYPE}\", must be \"sources\" or \"headers\""
515fi 491fi
516 492
574} 550}
575 551
576universal_unpack() { 552universal_unpack() {
577 debug-print "Inside universal_unpack" 553 debug-print "Inside universal_unpack"
578 554
579 local oldifs=${IFS}
580 export IFS="."
581 local OKV_ARRAY=( $OKV ) 555 local OKV_ARRAY
582 export IFS=${oldifs} 556 IFS="." read -r -a OKV_ARRAY <<<"${OKV}"
583 557
584 cd "${WORKDIR}" 558 cd "${WORKDIR}"
585 if [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]]; then 559 if [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]]; then
586 unpack linux-${KV_MAJOR}.${KV_MINOR}.tar.bz2 560 unpack linux-${KV_MAJOR}.${KV_MINOR}.tar.xz
587 else 561 else
588 unpack linux-${OKV}.tar.bz2 562 unpack linux-${OKV}.tar.xz
589 fi 563 fi
590 564
591 if [[ -d "linux" ]]; then 565 if [[ -d "linux" ]]; then
592 debug-print "Moving linux to linux-${KV_FULL}" 566 debug-print "Moving linux to linux-${KV_FULL}"
593 mv linux linux-${KV_FULL} \ 567 mv linux linux-${KV_FULL} \
610 cd "${S}" 584 cd "${S}"
611 585
612 # remove all backup files 586 # remove all backup files
613 find . -iname "*~" -exec rm {} \; 2> /dev/null 587 find . -iname "*~" -exec rm {} \; 2> /dev/null
614 588
615 # fix a problem on ppc where TOUT writes to /usr/src/linux breaking sandbox
616 # only do this for kernel < 2.6.27 since this file does not exist in later
617 # kernels
618 if [[ -n ${KV_MINOR} && ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} < 2.6.27 ]]
619 then
620 sed -i \
621 -e 's|TOUT := .tmp_gas_check|TOUT := $(T).tmp_gas_check|' \
622 "${S}"/arch/ppc/Makefile
623 else
624 sed -i \
625 -e 's|TOUT := .tmp_gas_check|TOUT := $(T).tmp_gas_check|' \
626 "${S}"/arch/powerpc/Makefile
627 fi
628} 589}
629 590
630unpack_set_extraversion() { 591unpack_set_extraversion() {
631 cd "${S}" 592 cd "${S}"
632 sed -i -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile 593 sed -i -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile
709} 670}
710 671
711# install functions 672# install functions
712#============================================================== 673#==============================================================
713install_universal() { 674install_universal() {
714 #fix silly permissions in tarball 675 # Fix silly permissions in tarball
715 cd "${WORKDIR}" 676 cd "${WORKDIR}"
716 chown -R root:0 * >& /dev/null 677 chown -R 0:0 * >& /dev/null
717 chmod -R a+r-w+X,u+w * 678 chmod -R a+r-w+X,u+w *
718 cd ${OLDPWD} 679 cd ${OLDPWD}
719} 680}
720 681
721install_headers() { 682install_headers() {
778 echo "Please check the ebuild ChangeLog for more details." \ 739 echo "Please check the ebuild ChangeLog for more details." \
779 > "${S}"/patches.txt 740 > "${S}"/patches.txt
780 fi 741 fi
781 742
782 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
783} 748}
784 749
785# pkg_preinst functions 750# pkg_preinst functions
786#============================================================== 751#==============================================================
787preinst_headers() { 752preinst_headers() {
1027 [ -z ${i/*.patch*/} ] && PATCH_DEPTH=${i/*.patch/} 992 [ -z ${i/*.patch*/} ] && PATCH_DEPTH=${i/*.patch/}
1028 #[ -z ${i/*.diff*/} ] && PATCH_DEPTH=${i/*.diff/} 993 #[ -z ${i/*.diff*/} ] && PATCH_DEPTH=${i/*.diff/}
1029 994
1030 if [ -z "${PATCH_DEPTH}" ]; then PATCH_DEPTH=0; fi 995 if [ -z "${PATCH_DEPTH}" ]; then PATCH_DEPTH=0; fi
1031 996
1032 ebegin "Applying ${i/*\//} (-p${PATCH_DEPTH}+)"
1033 while [ ${PATCH_DEPTH} -lt 5 ]; do 997 while [ ${PATCH_DEPTH} -lt 5 ]; do
1034 echo "Attempting Dry-run:" >> ${STDERR_T} 998 echo "Attempting Dry-run:" >> ${STDERR_T}
1035 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}
1036 echo "=======================================================" >> ${STDERR_T} 1000 echo "=======================================================" >> ${STDERR_T}
1037 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})"
1038 echo "Attempting patch:" > ${STDERR_T} 1003 echo "Attempting patch:" > ${STDERR_T}
1039 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}
1040 echo "=======================================================" >> ${STDERR_T} 1005 echo "=======================================================" >> ${STDERR_T}
1041 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
1042 eend 0 1007 eend 0
1045 else 1010 else
1046 eend 1 1011 eend 1
1047 eerror "Failed to apply patch ${i/*\//}" 1012 eerror "Failed to apply patch ${i/*\//}"
1048 eerror "Please attach ${STDERR_T} to any bug you may post." 1013 eerror "Please attach ${STDERR_T} to any bug you may post."
1049 eshopts_pop 1014 eshopts_pop
1050 die "Failed to apply ${i/*\//}" 1015 die "Failed to apply ${i/*\//} on patch depth ${PATCH_DEPTH}."
1051 fi 1016 fi
1052 else 1017 else
1053 PATCH_DEPTH=$((${PATCH_DEPTH} + 1)) 1018 PATCH_DEPTH=$((${PATCH_DEPTH} + 1))
1054 fi 1019 fi
1055 done 1020 done
1056 if [ ${PATCH_DEPTH} -eq 5 ]; then 1021 if [ ${PATCH_DEPTH} -eq 5 ]; then
1057 eend 1 1022 eerror "Failed to dry-run patch ${i/*\//}"
1058 eerror "Please attach ${STDERR_T} to any bug you may post." 1023 eerror "Please attach ${STDERR_T} to any bug you may post."
1059 eshopts_pop 1024 eshopts_pop
1060 die "Unable to dry-run patch." 1025 die "Unable to dry-run patch on any patch depth lower than 5."
1061 fi 1026 fi
1062 done 1027 done
1063 done 1028 done
1064 1029
1065 # 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
1066 # 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.
1067 # 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.
1068 local tmp 1039 local tmp
1040 for x in ${KPATCH_DIR}; do
1069 for i in ${UNIPATCH_DOCS}; do 1041 for i in ${UNIPATCH_DOCS}; do
1070 tmp="${tmp} ${i//*\/}" 1042 if [[ -f "${x}/${i}" ]] ; then
1043 tmp="${tmp} \"${T}/${i}\""
1071 cp -f ${i} "${T}"/ 1044 cp -f "${x}/${i}" "${T}"/
1045 fi
1046 done
1072 done 1047 done
1073 UNIPATCH_DOCS="${tmp}" 1048 UNIPATCH_DOCS="${tmp}"
1074 1049
1075 # clean up KPATCH_DIR's - fixes bug #53610 1050 # clean up KPATCH_DIR's - fixes bug #53610
1076 for x in ${KPATCH_DIR}; do rm -Rf ${x}; done 1051 for x in ${KPATCH_DIR}; do rm -Rf ${x}; done
1132 for i in ${COMPAT_URI}; do 1107 for i in ${COMPAT_URI}; do
1133 ARCH_PATCH="${ARCH_PATCH} ${DISTDIR}/${i/*\//}" 1108 ARCH_PATCH="${ARCH_PATCH} ${DISTDIR}/${i/*\//}"
1134 done 1109 done
1135 fi 1110 fi
1136 done 1111 done
1137}
1138
1139# sparc nastiness
1140#==============================================================
1141# This script generates the files in /usr/include/asm for sparc systems
1142# during installation of sys-kernel/linux-headers.
1143# Will no longer be needed when full 64 bit support is used on sparc64
1144# systems.
1145#
1146# Shamefully ripped from Debian
1147# ----------------------------------------------------------------------
1148
1149# Idea borrowed from RedHat's kernel package
1150
1151# This is gonna get replaced by something in multilib.eclass soon...
1152# --eradicator
1153generate_sparc_asm() {
1154 local name
1155
1156 cd $1 || die
1157 mkdir asm
1158
1159 for h in `( ls asm-sparc; ls asm-sparc64 ) | grep '\.h$' | sort -u`; do
1160 name="$(echo $h | tr a-z. A-Z_)"
1161 # common header
1162 echo "/* All asm/ files are generated and point to the corresponding
1163 * file in asm-sparc or asm-sparc64.
1164 */
1165
1166#ifndef __SPARCSTUB__${name}__
1167#define __SPARCSTUB__${name}__
1168" > asm/${h}
1169
1170 # common for sparc and sparc64
1171 if [ -f asm-sparc/$h -a -f asm-sparc64/$h ]; then
1172 echo "#ifdef __arch64__
1173#include <asm-sparc64/$h>
1174#else
1175#include <asm-sparc/$h>
1176#endif
1177" >> asm/${h}
1178
1179 # sparc only
1180 elif [ -f asm-sparc/$h ]; then
1181echo "#ifndef __arch64__
1182#include <asm-sparc/$h>
1183#endif
1184" >> asm/${h}
1185
1186 # sparc64 only
1187 else
1188echo "#ifdef __arch64__
1189#include <asm-sparc64/$h>
1190#endif
1191" >> asm/${h}
1192 fi
1193
1194 # common footer
1195 echo "#endif /* !__SPARCSTUB__${name}__ */" >> asm/${h}
1196 done
1197 return 0
1198} 1112}
1199 1113
1200headers___fix() { 1114headers___fix() {
1201 # Voodoo to partially fix broken upstream headers. 1115 # Voodoo to partially fix broken upstream headers.
1202 # 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")
1248 if [[ $K_DEBLOB_AVAILABLE == 1 ]] && use deblob ; then 1162 if [[ $K_DEBLOB_AVAILABLE == 1 ]] && use deblob ; then
1249 cp "${DISTDIR}/${DEBLOB_A}" "${T}" || die "cp ${DEBLOB_A} failed" 1163 cp "${DISTDIR}/${DEBLOB_A}" "${T}" || die "cp ${DEBLOB_A} failed"
1250 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"
1251 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"
1252 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
1253} 1181}
1254 1182
1255kernel-2_src_compile() { 1183kernel-2_src_compile() {
1256 cd "${S}" 1184 cd "${S}"
1257 [[ ${ETYPE} == headers ]] && compile_headers 1185 [[ ${ETYPE} == headers ]] && compile_headers
1258 1186
1259 if [[ $K_DEBLOB_AVAILABLE == 1 ]] && use deblob ; then 1187 if [[ $K_DEBLOB_AVAILABLE == 1 ]] && use deblob ; then
1260 echo ">>> Running deblob script ..." 1188 echo ">>> Running deblob script ..."
1261 sh "${T}/${DEBLOB_A}" --force || \ 1189 EPYTHON="python2" sh "${T}/${DEBLOB_A}" --force || die "Deblob script failed to run!!!"
1262 die "Deblob script failed to run!!!"
1263 fi 1190 fi
1264} 1191}
1265 1192
1266# 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
1267# find whether test/check targets are present; since "make test" 1194# find whether test/check targets are present; since "make test"
1285 [[ ${ETYPE} == sources ]] && postinst_sources 1212 [[ ${ETYPE} == sources ]] && postinst_sources
1286} 1213}
1287 1214
1288kernel-2_pkg_setup() { 1215kernel-2_pkg_setup() {
1289 if kernel_is 2 4; then 1216 if kernel_is 2 4; then
1290 if [ "$( gcc-major-version )" -eq "4" ] ; then 1217 if [[ $(gcc-major-version) -ge 4 ]] ; then
1291 echo 1218 echo
1292 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!"
1293 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"
1294 ewarn "newer kernel that supports gcc-4." 1221 ewarn "newer kernel that supports gcc-4."
1295 echo 1222 echo
1306} 1233}
1307 1234
1308kernel-2_pkg_postrm() { 1235kernel-2_pkg_postrm() {
1309 # This warning only makes sense for kernel sources. 1236 # This warning only makes sense for kernel sources.
1310 [[ ${ETYPE} == headers ]] && return 0 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
1311 echo 1241 echo
1312 ewarn "Note: Even though you have successfully unmerged " 1242 ewarn "Note: Even though you have successfully unmerged "
1313 ewarn "your kernel package, directories in kernel source location: " 1243 ewarn "your kernel package, directories in kernel source location: "
1314 ewarn "${ROOT}usr/src/linux-${KV_FULL}" 1244 ewarn "${ROOT}usr/src/linux-${KV_FULL}"
1315 ewarn "with modified files will remain behind. By design, package managers" 1245 ewarn "with modified files will remain behind. By design, package managers"

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

  ViewVC Help
Powered by ViewVC 1.1.20