/[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.282 Revision 1.304
1# Copyright 1999-2013 Gentoo Foundation 1# Copyright 1999-2015 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.282 2013/04/17 13:52:17 tomwij Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/kernel-2.eclass,v 1.304 2015/05/14 19:26:29 mpagano 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>
35# messages 35# messages
36# K_EXTRAELOG - same as K_EXTRAEINFO except using elog instead of einfo 36# K_EXTRAELOG - same as K_EXTRAEINFO except using elog instead of einfo
37# K_EXTRAEWARN - same as K_EXTRAEINFO except using ewarn instead of einfo 37# K_EXTRAEWARN - same as K_EXTRAEINFO except using ewarn instead of einfo
38# K_SYMLINK - if this is set, then forcably create symlink anyway 38# K_SYMLINK - if this is set, then forcably create symlink anyway
39# 39#
40# K_BASE_VER - for git-sources, declare the base version this patch is
41# based off of.
40# K_DEFCONFIG - Allow specifying a different defconfig target. 42# K_DEFCONFIG - Allow specifying a different defconfig target.
41# If length zero, defaults to "defconfig". 43# If length zero, defaults to "defconfig".
42# K_WANT_GENPATCHES - Apply genpatches to kernel source. Provide any 44# K_WANT_GENPATCHES - Apply genpatches to kernel source. Provide any
43# combination of "base" and "extras" 45# combination of "base", "extras" or "experimental".
46# K_EXP_GENPATCHES_PULL - If set, we pull "experimental" regardless of the USE FLAG
47# but expect the ebuild maintainer to use K_EXP_GENPATCHES_LIST.
48# K_EXP_GENPATCHES_NOUSE - If set, no USE flag will be provided for "experimental";
49# as a result the user cannot choose to apply those patches.
50# K_EXP_GENPATCHES_LIST - A list of patches to pick from "experimental" to apply when
51# the USE flag is unset and K_EXP_GENPATCHES_PULL is set.
44# K_GENPATCHES_VER - The version of the genpatches tarball(s) to apply. 52# K_GENPATCHES_VER - The version of the genpatches tarball(s) to apply.
45# A value of "5" would apply genpatches-2.6.12-5 to 53# A value of "5" would apply genpatches-2.6.12-5 to
46# my-sources-2.6.12.ebuild 54# my-sources-2.6.12.ebuild
47# K_SECURITY_UNSUPPORTED- If set, this kernel is unsupported by Gentoo Security 55# K_SECURITY_UNSUPPORTED- If set, this kernel is unsupported by Gentoo Security
48# K_DEBLOB_AVAILABLE - A value of "0" will disable all of the optional deblob 56# K_DEBLOB_AVAILABLE - A value of "0" will disable all of the optional deblob
49# code. If empty, will be set to "1" if deblobbing is 57# code. If empty, will be set to "1" if deblobbing is
50# possible. Test ONLY for "1". 58# possible. Test ONLY for "1".
59# K_DEBLOB_TAG - This will be the version of deblob script. It's a upstream SVN tag
60# such asw -gnu or -gnu1.
51# K_PREDEBLOBBED - This kernel was already deblobbed elsewhere. 61# K_PREDEBLOBBED - This kernel was already deblobbed elsewhere.
52# If false, either optional deblobbing will be available 62# If false, either optional deblobbing will be available
53# or the license will note the inclusion of freedist 63# or the license will note the inclusion of freedist
54# code. 64# code.
55# K_LONGTERM - If set, the eclass will search for the kernel source 65# K_LONGTERM - If set, the eclass will search for the kernel source
72# Changing any other variable in this eclass is not supported; you can request 82# 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. 83# 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; 84# 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. 85# that of course does not mean we're not willing to help.
76 86
87PYTHON_COMPAT=( python{2_6,2_7} )
88
77inherit eutils toolchain-funcs versionator multilib 89inherit eutils toolchain-funcs versionator multilib python-any-r1
78EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_test src_install pkg_preinst pkg_postinst pkg_postrm 90EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_test src_install pkg_preinst pkg_postinst pkg_postrm
79 91
80# Added by Daniel Ostrow <dostrow@gentoo.org> 92# Added by Daniel Ostrow <dostrow@gentoo.org>
81# This is an ugly hack to get around an issue with a 32-bit userland on ppc64. 93# This is an ugly hack to get around an issue with a 32-bit userland on ppc64.
82# I will remove it when I come up with something more reasonable. 94# I will remove it when I come up with something more reasonable.
128 # genpatches for 3.0 and 3.0.1 might be named 140 # genpatches for 3.0 and 3.0.1 might be named
129 # genpatches-3.0-1.base.tar.xz and genpatches-3.0-2.base.tar.xz 141 # genpatches-3.0-1.base.tar.xz and genpatches-3.0-2.base.tar.xz
130 # respectively. Handle this. 142 # respectively. Handle this.
131 143
132 for i in ${K_WANT_GENPATCHES} ; do 144 for i in ${K_WANT_GENPATCHES} ; do
133 if [[ ${KV_MAJOR} -ge 3 ]]; then 145 if [[ ${KV_MAJOR} -ge 3 ]]; then
134 if [[ ${#OKV_ARRAY[@]} -ge 3 ]]; then 146 if [[ ${#OKV_ARRAY[@]} -ge 3 ]]; then
135 tarball="genpatches-${KV_MAJOR}.${KV_MINOR}-${K_GENPATCHES_VER}.${i}.tar.xz" 147 tarball="genpatches-${KV_MAJOR}.${KV_MINOR}-${K_GENPATCHES_VER}.${i}.tar.xz"
148 else
149 tarball="genpatches-${KV_MAJOR}.${KV_PATCH}-${K_GENPATCHES_VER}.${i}.tar.xz"
150 fi
136 else 151 else
137 tarball="genpatches-${KV_MAJOR}.${KV_PATCH}-${K_GENPATCHES_VER}.${i}.tar.xz"
138 fi
139 else
140 tarball="genpatches-${OKV}-${K_GENPATCHES_VER}.${i}.tar.xz" 152 tarball="genpatches-${OKV}-${K_GENPATCHES_VER}.${i}.tar.xz"
141 fi 153 fi
154
155 local use_cond_start="" use_cond_end=""
156
157 if [[ "${i}" == "experimental" && -z ${K_EXP_GENPATCHES_PULL} && -z ${K_EXP_GENPATCHES_NOUSE} ]] ; then
158 use_cond_start="experimental? ( "
159 use_cond_end=" )"
160
161 if use experimental ; then
162 UNIPATCH_LIST_GENPATCHES+=" ${DISTDIR}/${tarball}"
163 debug-print "genpatches tarball: $tarball"
164 fi
165 else
166 UNIPATCH_LIST_GENPATCHES+=" ${DISTDIR}/${tarball}"
142 debug-print "genpatches tarball: $tarball" 167 debug-print "genpatches tarball: $tarball"
143 GENPATCHES_URI="${GENPATCHES_URI} mirror://gentoo/${tarball}" 168 fi
144 UNIPATCH_LIST_GENPATCHES="${UNIPATCH_LIST_GENPATCHES} ${DISTDIR}/${tarball}" 169 GENPATCHES_URI+=" ${use_cond_start}mirror://gentoo/${tarball}${use_cond_end}"
145 done 170 done
146} 171}
147 172
148detect_version() { 173detect_version() {
149 # this function will detect and set 174 # this function will detect and set
210 235
211# if [[ ${KV_MAJOR} -ge 3 ]]; then 236# if [[ ${KV_MAJOR} -ge 3 ]]; then
212 if [[ ${#OKV_ARRAY[@]} -lt 3 ]]; then 237 if [[ ${#OKV_ARRAY[@]} -lt 3 ]]; then
213 KV_PATCH_ARR=(${KV_PATCH//\./ }) 238 KV_PATCH_ARR=(${KV_PATCH//\./ })
214 239
215 # at this point 031412, Linus is putting all 3.x kernels in a 240 # at this point 031412, Linus is putting all 3.x kernels in a
216 # 3.x directory, may need to revisit when 4.x is released 241 # 3.x directory, may need to revisit when 4.x is released
217 KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.x" 242 KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.x"
218 243
219 [[ -n "${K_LONGTERM}" ]] && 244 [[ -n "${K_LONGTERM}" ]] &&
220 KERNEL_BASE_URI="${KERNEL_BASE_URI}/longterm/v${KV_MAJOR}.${KV_PATCH_ARR}" 245 KERNEL_BASE_URI="${KERNEL_BASE_URI}/longterm/v${KV_MAJOR}.${KV_PATCH_ARR}"
337 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" 362 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
338 363
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" 364 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${RELEASE/-git*}.xz ${DISTDIR}/patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${RELEASE}.xz"
340 fi 365 fi
341 else 366 else
367 KV_PATCH_ARR=(${KV_PATCH//\./ })
368
369 # the different majorminor versions have different patch start versions
370 OKV_DICT=(["2"]="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))" ["3"]="2.6.39" ["4"]="3.19")
371
342 if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then 372 if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then
343 if [[ ${KV_MAJOR}${KV_PATCH} -eq 30 ]]; then 373 OKV=${K_BASE_VER:-$OKV_DICT["${KV_MAJOR}"]}
344 OKV="2.6.39"
345 else
346 KV_PATCH_ARR=(${KV_PATCH//\./ })
347 OKV="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))"
348 fi
349 KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.xz 374 KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.xz
350 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" 375 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
351 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.xz" 376 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.xz"
352 fi 377 fi
353 378
356 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" 381 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
357 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${OKV}${RELEASE}.xz" 382 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${OKV}${RELEASE}.xz"
358 fi 383 fi
359 384
360 if [[ ${RELEASETYPE} == -rc-git ]]; then 385 if [[ ${RELEASETYPE} == -rc-git ]]; then
361 if [[ ${KV_MAJOR}${KV_PATCH} -eq 30 ]]; then 386 OKV=${K_BASE_VER:-$OKV_DICT["${KV_MAJOR}"]}
362 OKV="2.6.39"
363 else
364 KV_PATCH_ARR=(${KV_PATCH//\./ })
365 OKV="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))"
366 fi
367 KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE}.xz 387 KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE}.xz
368 ${KERNEL_BASE_URI}/testing/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE/-git*}.xz 388 ${KERNEL_BASE_URI}/testing/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE/-git*}.xz
369 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" 389 ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz"
370 390
371 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE/-git*}.xz ${DISTDIR}/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE}.xz" 391 UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE/-git*}.xz ${DISTDIR}/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE}.xz"
372 fi 392 fi
373 393
374 394
375 fi 395 fi
376 396
377
378 debug-print-kernel2-variables 397 debug-print-kernel2-variables
379 398
380 handle_genpatches 399 handle_genpatches
381} 400}
382 401
415 kernel_is 2 6 || kernel_is 2 5 434 kernel_is 2 6 || kernel_is 2 5
416} 435}
417 436
418# Capture the sources type and set DEPENDs 437# Capture the sources type and set DEPENDs
419if [[ ${ETYPE} == sources ]]; then 438if [[ ${ETYPE} == sources ]]; then
420 DEPEND="!build? ( sys-apps/sed 439 DEPEND="!build? (
440 sys-apps/sed
421 >=sys-devel/binutils-2.11.90.0.31 )" 441 >=sys-devel/binutils-2.11.90.0.31
422 RDEPEND="!build? ( >=sys-libs/ncurses-5.2 442 )"
443 RDEPEND="!build? (
444 >=sys-libs/ncurses-5.2
423 sys-devel/make 445 sys-devel/make
424 dev-lang/perl 446 dev-lang/perl
425 sys-devel/bc )" 447 sys-devel/bc
448 )"
426 PDEPEND="!build? ( virtual/dev-manager )" 449 PDEPEND="!build? ( virtual/dev-manager )"
427 450
428 SLOT="${PVR}" 451 SLOT="${PVR}"
429 DESCRIPTION="Sources based on the Linux Kernel." 452 DESCRIPTION="Sources based on the Linux Kernel."
430 IUSE="symlink build" 453 IUSE="symlink build"
436 [[ -z "${K_DEBLOB_AVAILABLE}" ]] && \ 459 [[ -z "${K_DEBLOB_AVAILABLE}" ]] && \
437 kernel_is le 2 6 ${DEBLOB_MAX_VERSION} && \ 460 kernel_is le 2 6 ${DEBLOB_MAX_VERSION} && \
438 K_DEBLOB_AVAILABLE=1 461 K_DEBLOB_AVAILABLE=1
439 if [[ ${K_DEBLOB_AVAILABLE} == "1" ]] ; then 462 if [[ ${K_DEBLOB_AVAILABLE} == "1" ]] ; then
440 IUSE="${IUSE} deblob" 463 IUSE="${IUSE} deblob"
464
441 # Reflect that kernels contain firmware blobs unless otherwise 465 # Reflect that kernels contain firmware blobs unless otherwise
442 # stripped 466 # stripped
443 LICENSE="${LICENSE} !deblob? ( freedist )" 467 LICENSE="${LICENSE} !deblob? ( freedist )"
468
469 DEPEND+=" deblob? ( ${PYTHON_DEPS} )"
444 470
445 if [[ -n KV_MINOR ]]; then 471 if [[ -n KV_MINOR ]]; then
446 DEBLOB_PV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}" 472 DEBLOB_PV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
447 else 473 else
448 DEBLOB_PV="${KV_MAJOR}.${KV_PATCH}" 474 DEBLOB_PV="${KV_MAJOR}.${KV_PATCH}"
450 476
451 if [[ ${KV_MAJOR} -ge 3 ]]; then 477 if [[ ${KV_MAJOR} -ge 3 ]]; then
452 DEBLOB_PV="${KV_MAJOR}.${KV_MINOR}" 478 DEBLOB_PV="${KV_MAJOR}.${KV_MINOR}"
453 fi 479 fi
454 480
481 # deblob svn tag, default is -gnu, to change, use K_DEBLOB_TAG in ebuild
482 K_DEBLOB_TAG=${K_DEBLOB_TAG:--gnu}
455 DEBLOB_A="deblob-${DEBLOB_PV}" 483 DEBLOB_A="deblob-${DEBLOB_PV}"
456 DEBLOB_CHECK_A="deblob-check-${DEBLOB_PV}" 484 DEBLOB_CHECK_A="deblob-check-${DEBLOB_PV}"
457 DEBLOB_HOMEPAGE="http://www.fsfla.org/svnwiki/selibre/linux-libre/" 485 DEBLOB_HOMEPAGE="http://www.fsfla.org/svn/fsfla/software/linux-libre/releases/tags"
458 DEBLOB_URI_PATH="download/releases/LATEST-${DEBLOB_PV}.N" 486 DEBLOB_URI_PATH="${DEBLOB_PV}${K_DEBLOB_TAG}"
459 if ! has "${EAPI:-0}" 0 1 ; then 487 if ! has "${EAPI:-0}" 0 1 ; then
460 DEBLOB_CHECK_URI="${DEBLOB_HOMEPAGE}/${DEBLOB_URI_PATH}/deblob-check -> ${DEBLOB_CHECK_A}" 488 DEBLOB_CHECK_URI="${DEBLOB_HOMEPAGE}/${DEBLOB_URI_PATH}/deblob-check -> ${DEBLOB_CHECK_A}"
461 else 489 else
462 DEBLOB_CHECK_URI="mirror://gentoo/${DEBLOB_CHECK_A}" 490 DEBLOB_CHECK_URI="mirror://gentoo/${DEBLOB_CHECK_A}"
463 fi 491 fi
492
464 DEBLOB_URI="${DEBLOB_HOMEPAGE}/${DEBLOB_URI_PATH}/${DEBLOB_A}" 493 DEBLOB_URI="${DEBLOB_HOMEPAGE}/${DEBLOB_URI_PATH}/${DEBLOB_A}"
465 HOMEPAGE="${HOMEPAGE} ${DEBLOB_HOMEPAGE}" 494 HOMEPAGE="${HOMEPAGE} ${DEBLOB_HOMEPAGE}"
466 495
467 DEPEND+=" deblob? ( =dev-lang/python-2* )"
468 KERNEL_URI="${KERNEL_URI} 496 KERNEL_URI="${KERNEL_URI}
469 deblob? ( 497 deblob? (
470 ${DEBLOB_URI} 498 ${DEBLOB_URI}
471 ${DEBLOB_CHECK_URI} 499 ${DEBLOB_CHECK_URI}
472 )" 500 )"
687 if kernel_is ge 2 6 18 ; then 715 if kernel_is ge 2 6 18 ; then
688 env_setup_xmakeopts 716 env_setup_xmakeopts
689 emake headers_install INSTALL_HDR_PATH="${D}"/${ddir}/.. ${xmakeopts} || die 717 emake headers_install INSTALL_HDR_PATH="${D}"/${ddir}/.. ${xmakeopts} || die
690 718
691 # let other packages install some of these headers 719 # let other packages install some of these headers
692 rm -rf "${D}"/${ddir}/sound #alsa-headers
693 rm -rf "${D}"/${ddir}/scsi #glibc/uclibc/etc... 720 rm -rf "${D}"/${ddir}/scsi #glibc/uclibc/etc...
694 return 0 721 return 0
695 fi 722 fi
696 723
697 # Do not use "linux/*" as that can cause problems with very long 724 # Do not use "linux/*" as that can cause problems with very long
740 > "${S}"/patches.txt 767 > "${S}"/patches.txt
741 fi 768 fi
742 769
743 mv ${WORKDIR}/linux* "${D}"/usr/src 770 mv ${WORKDIR}/linux* "${D}"/usr/src
744 771
745 if [[ -z ${UNIPATCH_DOCS} ]] ; then 772 if [[ -n "${UNIPATCH_DOCS}" ]] ; then
746 dodoc ${UNIPATCH_DOCS} 773 for i in ${UNIPATCH_DOCS}; do
774 dodoc "${T}"/${i}
775 done
747 fi 776 fi
748} 777}
749 778
750# pkg_preinst functions 779# pkg_preinst functions
751#============================================================== 780#==============================================================
811 fi 840 fi
812 841
813 # optionally display security unsupported message 842 # optionally display security unsupported message
814 # Start with why 843 # Start with why
815 if [[ ${K_SECURITY_UNSUPPORTED} = deblob ]]; then 844 if [[ ${K_SECURITY_UNSUPPORTED} = deblob ]]; then
816 ewarn "Deblobbed kernels are UNSUPPORTED by Gentoo Security." 845 ewarn "Deblobbed kernels may not be up-to-date security-wise"
846 ewarn "as they depend on external scripts."
817 elif [[ -n ${K_SECURITY_UNSUPPORTED} ]]; then 847 elif [[ -n ${K_SECURITY_UNSUPPORTED} ]]; then
818 ewarn "${PN} is UNSUPPORTED by Gentoo Security." 848 ewarn "${PN} is UNSUPPORTED by Gentoo Security."
819 fi 849 fi
820 # And now the general message. 850 # And now the general message.
821 if [[ -n ${K_SECURITY_UNSUPPORTED} ]]; then 851 if [[ -n ${K_SECURITY_UNSUPPORTED} ]]; then
827 # warn sparc users that they need to do cross-compiling with >= 2.6.25(bug #214765) 857 # warn sparc users that they need to do cross-compiling with >= 2.6.25(bug #214765)
828 KV_MAJOR=$(get_version_component_range 1 ${OKV}) 858 KV_MAJOR=$(get_version_component_range 1 ${OKV})
829 KV_MINOR=$(get_version_component_range 2 ${OKV}) 859 KV_MINOR=$(get_version_component_range 2 ${OKV})
830 KV_PATCH=$(get_version_component_range 3 ${OKV}) 860 KV_PATCH=$(get_version_component_range 3 ${OKV})
831 if [[ "$(tc-arch)" = "sparc" ]]; then 861 if [[ "$(tc-arch)" = "sparc" ]]; then
862 if [[ $(gcc-major-version) -lt 4 && $(gcc-minor-version) -lt 4 ]]; then
832 if [[ ${KV_MAJOR} -ge 3 || ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} > 2.6.24 ]] 863 if [[ ${KV_MAJOR} -ge 3 || ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} > 2.6.24 ]] ; then
833 then
834 echo 864 echo
835 elog "NOTE: Since 2.6.25 the kernel Makefile has changed in a way that" 865 elog "NOTE: Since 2.6.25 the kernel Makefile has changed in a way that"
836 elog "you now need to do" 866 elog "you now need to do"
837 elog " make CROSS_COMPILE=sparc64-unknown-linux-gnu-" 867 elog " make CROSS_COMPILE=sparc64-unknown-linux-gnu-"
838 elog "instead of just" 868 elog "instead of just"
839 elog " make" 869 elog " make"
840 elog "to compile the kernel. For more information please browse to" 870 elog "to compile the kernel. For more information please browse to"
841 elog "https://bugs.gentoo.org/show_bug.cgi?id=214765" 871 elog "https://bugs.gentoo.org/show_bug.cgi?id=214765"
842 echo 872 echo
873 fi
843 fi 874 fi
844 fi 875 fi
845} 876}
846 877
847# pkg_setup functions 878# pkg_setup functions
914 PIPE_CMD="" 945 PIPE_CMD=""
915 case ${extention} in 946 case ${extention} in
916 xz) PIPE_CMD="xz -dc";; 947 xz) PIPE_CMD="xz -dc";;
917 lzma) PIPE_CMD="lzma -dc";; 948 lzma) PIPE_CMD="lzma -dc";;
918 bz2) PIPE_CMD="bzip2 -dc";; 949 bz2) PIPE_CMD="bzip2 -dc";;
919 patch) PIPE_CMD="cat";; 950 patch*) PIPE_CMD="cat";;
920 diff) PIPE_CMD="cat";; 951 diff) PIPE_CMD="cat";;
921 gz|Z|z) PIPE_CMD="gzip -dc";; 952 gz|Z|z) PIPE_CMD="gzip -dc";;
922 ZIP|zip) PIPE_CMD="unzip -p";; 953 ZIP|zip) PIPE_CMD="unzip -p";;
923 *) UNIPATCH_DROP="${UNIPATCH_DROP} ${i/:*/}";; 954 *) UNIPATCH_DROP="${UNIPATCH_DROP} ${i/:*/}";;
924 esac 955 esac
948 979
949 mkdir -p ${KPATCH_DIR}/${PATCH_ORDER}/ 980 mkdir -p ${KPATCH_DIR}/${PATCH_ORDER}/
950 $(${PIPE_CMD} ${i} > ${KPATCH_DIR}/${PATCH_ORDER}/${x}.patch${PATCH_LEVEL}) || die "uncompressing patch failed" 981 $(${PIPE_CMD} ${i} > ${KPATCH_DIR}/${PATCH_ORDER}/${x}.patch${PATCH_LEVEL}) || die "uncompressing patch failed"
951 else 982 else
952 $(${PIPE_CMD} ${i} > ${KPATCH_DIR}/${x}.patch${PATCH_LEVEL}) || die "uncompressing patch failed" 983 $(${PIPE_CMD} ${i} > ${KPATCH_DIR}/${x}.patch${PATCH_LEVEL}) || die "uncompressing patch failed"
984 fi
985 fi
986 fi
987
988 # If experimental was not chosen by the user, drop experimental patches not in K_EXP_GENPATCHES_LIST.
989 if [[ "${i}" == *"genpatches-"*".experimental."* && -n ${K_EXP_GENPATCHES_PULL} ]] ; then
990 if [[ -z ${K_EXP_GENPATCHES_NOUSE} ]] && use experimental; then
991 continue
992 fi
993
994 local j
995 for j in ${KPATCH_DIR}/*/50*_*.patch*; do
996 for k in ${K_EXP_GENPATCHES_LIST} ; do
997 [[ "$(basename ${j})" == ${k}* ]] && continue 2
998 done
999 UNIPATCH_DROP+=" $(basename ${j})"
1000 done
1001 else
1002 UNIPATCH_LIST_GENPATCHES+=" ${DISTDIR}/${tarball}"
1003 debug-print "genpatches tarball: $tarball"
1004
1005 # check gcc version < 4.9.X uses patch 5000 and = 4.9.X uses patch 5010
1006 if [[ $(gcc-major-version) -eq 4 ]] && [[ $(gcc-minor-version) -ne 9 ]]; then
1007 # drop 5000_enable-additional-cpu-optimizations-for-gcc-4.9.patch
1008 if [[ $UNIPATCH_DROP != *"5010_enable-additional-cpu-optimizations-for-gcc-4.9.patch"* ]]; then
1009 UNIPATCH_DROP+=" 5010_enable-additional-cpu-optimizations-for-gcc-4.9.patch"
1010 fi
1011 else
1012 if [[ $UNIPATCH_DROP != *"5000_enable-additional-cpu-optimizations-for-gcc.patch"* ]]; then
1013 #drop 5000_enable-additional-cpu-optimizations-for-gcc.patch
1014 UNIPATCH_DROP+=" 5000_enable-additional-cpu-optimizations-for-gcc.patch"
953 fi 1015 fi
954 fi 1016 fi
955 fi 1017 fi
956 done 1018 done
957 1019
991 1053
992 [ -z ${i/*.patch*/} ] && PATCH_DEPTH=${i/*.patch/} 1054 [ -z ${i/*.patch*/} ] && PATCH_DEPTH=${i/*.patch/}
993 #[ -z ${i/*.diff*/} ] && PATCH_DEPTH=${i/*.diff/} 1055 #[ -z ${i/*.diff*/} ] && PATCH_DEPTH=${i/*.diff/}
994 1056
995 if [ -z "${PATCH_DEPTH}" ]; then PATCH_DEPTH=0; fi 1057 if [ -z "${PATCH_DEPTH}" ]; then PATCH_DEPTH=0; fi
1058
1059 ####################################################################
1060 # IMPORTANT: This is temporary code to support Linux git 3.15_rc1! #
1061 # #
1062 # The patch contains a removal of a symlink, followed by addition #
1063 # of a file with the same name as the symlink in the same #
1064 # location; this causes the dry-run to fail, filed bug #507656. #
1065 # #
1066 # https://bugs.gentoo.org/show_bug.cgi?id=507656 #
1067 ####################################################################
1068 if [[ ${PN} == "git-sources" ]] ; then
1069 if [[ ${KV_MAJOR}${KV_PATCH} -ge 315 && ${RELEASETYPE} == -rc ]] ; then
1070 ebegin "Applying ${i/*\//} (-p1)"
1071 if [ $(patch -p1 --no-backup-if-mismatch -f < ${i} >> ${STDERR_T}) "$?" -eq 0 ]; then
1072 eend 0
1073 rm ${STDERR_T}
1074 break
1075 else
1076 eend 1
1077 eerror "Failed to apply patch ${i/*\//}"
1078 eerror "Please attach ${STDERR_T} to any bug you may post."
1079 eshopts_pop
1080 die "Failed to apply ${i/*\//} on patch depth 1."
1081 fi
1082 fi
1083 fi
1084 ####################################################################
996 1085
997 while [ ${PATCH_DEPTH} -lt 5 ]; do 1086 while [ ${PATCH_DEPTH} -lt 5 ]; do
998 echo "Attempting Dry-run:" >> ${STDERR_T} 1087 echo "Attempting Dry-run:" >> ${STDERR_T}
999 echo "cmd: patch -p${PATCH_DEPTH} --no-backup-if-mismatch --dry-run -f < ${i}" >> ${STDERR_T} 1088 echo "cmd: patch -p${PATCH_DEPTH} --no-backup-if-mismatch --dry-run -f < ${i}" >> ${STDERR_T}
1000 echo "=======================================================" >> ${STDERR_T} 1089 echo "=======================================================" >> ${STDERR_T}
1038 # them during the install phase. 1127 # them during the install phase.
1039 local tmp 1128 local tmp
1040 for x in ${KPATCH_DIR}; do 1129 for x in ${KPATCH_DIR}; do
1041 for i in ${UNIPATCH_DOCS}; do 1130 for i in ${UNIPATCH_DOCS}; do
1042 if [[ -f "${x}/${i}" ]] ; then 1131 if [[ -f "${x}/${i}" ]] ; then
1043 tmp="${tmp} \"${T}/${i}\"" 1132 tmp="${tmp} ${i}"
1044 cp -f "${x}/${i}" "${T}"/ 1133 cp -f "${x}/${i}" "${T}"/
1045 fi 1134 fi
1046 done 1135 done
1047 done 1136 done
1048 UNIPATCH_DOCS="${tmp}" 1137 UNIPATCH_DOCS="${tmp}"
1166 fi 1255 fi
1167 1256
1168 # fix a problem on ppc where TOUT writes to /usr/src/linux breaking sandbox 1257 # 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 1258 # only do this for kernel < 2.6.27 since this file does not exist in later
1170 # kernels 1259 # kernels
1171 if [[ -n ${KV_MINOR} && ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} < 2.6.27 ]] 1260 if [[ -n ${KV_MINOR} && ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} < 2.6.27 ]] ; then
1172 then
1173 sed -i \ 1261 sed -i \
1174 -e "s|TOUT := .tmp_gas_check|TOUT := \"${T}\"/.tmp_gas_check|" \ 1262 -e 's|TOUT := .tmp_gas_check|TOUT := $(T).tmp_gas_check|' \
1175 "${S}"/arch/ppc/Makefile 1263 "${S}"/arch/ppc/Makefile
1176 else 1264 else
1177 sed -i \ 1265 sed -i \
1178 -e "s|TOUT := .tmp_gas_check|TOUT := \"${T}\"/.tmp_gas_check|" \ 1266 -e 's|TOUT := .tmp_gas_check|TOUT := $(T).tmp_gas_check|' \
1179 "${S}"/arch/powerpc/Makefile 1267 "${S}"/arch/powerpc/Makefile
1180 fi 1268 fi
1181} 1269}
1182 1270
1183kernel-2_src_compile() { 1271kernel-2_src_compile() {
1184 cd "${S}" 1272 cd "${S}"
1185 [[ ${ETYPE} == headers ]] && compile_headers 1273 [[ ${ETYPE} == headers ]] && compile_headers
1186 1274
1187 if [[ $K_DEBLOB_AVAILABLE == 1 ]] && use deblob ; then 1275 if [[ $K_DEBLOB_AVAILABLE == 1 ]] && use deblob ; then
1188 echo ">>> Running deblob script ..." 1276 echo ">>> Running deblob script ..."
1277 python_setup
1189 EPYTHON="python2" sh "${T}/${DEBLOB_A}" --force || die "Deblob script failed to run!!!" 1278 sh "${T}/${DEBLOB_A}" --force || die "Deblob script failed to run!!!"
1190 fi 1279 fi
1191} 1280}
1192 1281
1193# if you leave it to the default src_test, it will run make to 1282# if you leave it to the default src_test, it will run make to
1194# find whether test/check targets are present; since "make test" 1283# find whether test/check targets are present; since "make test"

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

  ViewVC Help
Powered by ViewVC 1.1.20