/[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.193 Revision 1.221
1# Copyright 1999-2005 Gentoo Foundation 1# Copyright 1999-2009 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.193 2006/10/08 20:00:04 vapier Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/kernel-2.eclass,v 1.221 2009/10/20 19:17:59 zmedico 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# Maintainer: John Mylchreest <johnm@gentoo.org> 8# Original author: John Mylchreest <johnm@gentoo.org>
9# Maintainer: kernel-misc@gentoo.org
9# 10#
10# Please direct your bugs to the current eclass maintainer :) 11# Please direct your bugs to the current eclass maintainer :)
11 12
12# added functionality: 13# added functionality:
13# unipatch - a flexible, singular method to extract, add and remove patches. 14# unipatch - a flexible, singular method to extract, add and remove patches.
30# the patchset version for 31# the patchset version for
31# and not use it as a true package revision 32# and not use it as a true package revision
32# K_EXTRAEINFO - this is a new-line seperated list of einfo displays in 33# K_EXTRAEINFO - this is a new-line seperated list of einfo displays in
33# postinst and can be used to carry additional postinst 34# postinst and can be used to carry additional postinst
34# messages 35# messages
36# K_EXTRAELOG - same as K_EXTRAEINFO except using elog instead of einfo
35# K_EXTRAEWARN - same as K_EXTRAEINFO except ewarn's instead of einfo's 37# K_EXTRAEWARN - same as K_EXTRAEINFO except using ewarn instead of einfo
36# K_SYMLINK - if this is set, then forcably create symlink anyway 38# K_SYMLINK - if this is set, then forcably create symlink anyway
37# 39#
38# K_DEFCONFIG - Allow specifying a different defconfig target. 40# K_DEFCONFIG - Allow specifying a different defconfig target.
39# If length zero, defaults to "defconfig". 41# If length zero, defaults to "defconfig".
40# K_WANT_GENPATCHES - Apply genpatches to kernel source. Provide any 42# K_WANT_GENPATCHES - Apply genpatches to kernel source. Provide any
41# combination of "base" and "extras" 43# combination of "base" and "extras"
42# K_GENPATCHES_VER - The version of the genpatches tarball(s) to apply. 44# K_GENPATCHES_VER - The version of the genpatches tarball(s) to apply.
43# A value of "5" would apply genpatches-2.6.12-5 to 45# A value of "5" would apply genpatches-2.6.12-5 to
44# my-sources-2.6.12.ebuild 46# my-sources-2.6.12.ebuild
47# K_SECURITY_UNSUPPORTED- If set, this kernel is unsupported by Gentoo Security
45 48
46# H_SUPPORTEDARCH - this should be a space separated list of ARCH's which 49# H_SUPPORTEDARCH - this should be a space separated list of ARCH's which
47# can be supported by the headers ebuild 50# can be supported by the headers ebuild
48 51
49# UNIPATCH_LIST - space delimetered list of patches to be applied to the 52# UNIPATCH_LIST - space delimetered list of patches to be applied to the
102 105
103#Eclass functions only from here onwards ... 106#Eclass functions only from here onwards ...
104#============================================================== 107#==============================================================
105handle_genpatches() { 108handle_genpatches() {
106 local tarball 109 local tarball
107 [[ -z ${K_WANT_GENPATCHES} || -z ${K_GENPATCHES_VER} ]] && return -1 110 [[ -z ${K_WANT_GENPATCHES} || -z ${K_GENPATCHES_VER} ]] && return 1
108 111
109 for i in ${K_WANT_GENPATCHES} ; do 112 for i in ${K_WANT_GENPATCHES} ; do
110 tarball="genpatches-${OKV}-${K_GENPATCHES_VER}.${i}.tar.bz2" 113 tarball="genpatches-${OKV}-${K_GENPATCHES_VER}.${i}.tar.bz2"
111 GENPATCHES_URI="${GENPATCHES_URI} mirror://gentoo/${tarball}" 114 GENPATCHES_URI="${GENPATCHES_URI} mirror://gentoo/${tarball}"
112 UNIPATCH_LIST_GENPATCHES="${UNIPATCH_LIST_GENPATCHES} ${DISTDIR}/${tarball}" 115 UNIPATCH_LIST_GENPATCHES="${UNIPATCH_LIST_GENPATCHES} ${DISTDIR}/${tarball}"
284# Capture the sources type and set DEPENDs 287# Capture the sources type and set DEPENDs
285if [[ ${ETYPE} == sources ]]; then 288if [[ ${ETYPE} == sources ]]; then
286 DEPEND="!build? ( sys-apps/sed 289 DEPEND="!build? ( sys-apps/sed
287 >=sys-devel/binutils-2.11.90.0.31 )" 290 >=sys-devel/binutils-2.11.90.0.31 )"
288 RDEPEND="!build? ( >=sys-libs/ncurses-5.2 291 RDEPEND="!build? ( >=sys-libs/ncurses-5.2
289 sys-devel/make ) 292 sys-devel/make )"
290 virtual/dev-manager" 293 PDEPEND="virtual/dev-manager"
291 294
292 PROVIDE="virtual/linux-sources" 295 PROVIDE="virtual/linux-sources"
293 kernel_is gt 2 4 && PROVIDE="${PROVIDE} virtual/alsa" 296 kernel_is gt 2 4 && PROVIDE="${PROVIDE} virtual/alsa"
294 297
295 SLOT="${PVR}" 298 SLOT="${PVR}"
296 DESCRIPTION="Sources for the ${KV_MAJOR}.${KV_MINOR} linux kernel" 299 DESCRIPTION="Sources for the ${KV_MAJOR}.${KV_MINOR} linux kernel"
297 IUSE="symlink build" 300 IUSE="symlink build"
298elif [[ ${ETYPE} == headers ]]; then 301elif [[ ${ETYPE} == headers ]]; then
299 DESCRIPTION="Linux system headers" 302 DESCRIPTION="Linux system headers"
300 [[ "${PN}" == 'linux-headers' ]] && IUSE="gcc64"
301 303
302 # Since we should NOT honour KBUILD_OUTPUT in headers 304 # Since we should NOT honour KBUILD_OUTPUT in headers
303 # lets unset it here. 305 # lets unset it here.
304 unset KBUILD_OUTPUT 306 unset KBUILD_OUTPUT
305 307
388 390
389 # remove all backup files 391 # remove all backup files
390 find . -iname "*~" -exec rm {} \; 2> /dev/null 392 find . -iname "*~" -exec rm {} \; 2> /dev/null
391 393
392 # fix a problem on ppc where TOUT writes to /usr/src/linux breaking sandbox 394 # fix a problem on ppc where TOUT writes to /usr/src/linux breaking sandbox
395 # only do this for kernel < 2.6.27 since this file does not exist in later
396 # kernels
397 if [[ ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} < 2.6.27 ]]
398 then
393 sed -i \ 399 sed -i \
394 -e 's|TOUT := .tmp_gas_check|TOUT := $(T).tmp_gas_check|' \ 400 -e 's|TOUT := .tmp_gas_check|TOUT := $(T).tmp_gas_check|' \
395 "${S}"/arch/ppc/Makefile 401 "${S}"/arch/ppc/Makefile
402 else
403 sed -i \
404 -e 's|TOUT := .tmp_gas_check|TOUT := $(T).tmp_gas_check|' \
405 "${S}"/arch/powerpc/Makefile
406 fi
396} 407}
397 408
398unpack_set_extraversion() { 409unpack_set_extraversion() {
399 cd "${S}" 410 cd "${S}"
400 sed -i -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile 411 sed -i -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile
433 || touch include/linux/autoconf.h 444 || touch include/linux/autoconf.h
434 445
435 # if K_DEFCONFIG isn't set, force to "defconfig" 446 # if K_DEFCONFIG isn't set, force to "defconfig"
436 # needed by mips 447 # needed by mips
437 if [[ -z ${K_DEFCONFIG} ]]; then 448 if [[ -z ${K_DEFCONFIG} ]]; then
449 if [[ $(KV_to_int ${KV}) -ge $(KV_to_int 2.6.16) ]]; then
438 case ${CTARGET} in 450 case ${CTARGET} in
439 powerpc64*) K_DEFCONFIG="ppc64_defconfig";; 451 powerpc64*) K_DEFCONFIG="ppc64_defconfig";;
440 powerpc*) K_DEFCONFIG="pmac32_defconfig";; 452 powerpc*) K_DEFCONFIG="pmac32_defconfig";;
441 *) K_DEFCONFIG="defconfig";; 453 *) K_DEFCONFIG="defconfig";;
442 esac 454 esac
455 else
456 K_DEFCONFIG="defconfig"
457 fi
443 fi 458 fi
444 459
445 # if there arent any installed headers, then there also isnt an asm 460 # if there arent any installed headers, then there also isnt an asm
446 # symlink in /usr/include/, and make defconfig will fail, so we have 461 # symlink in /usr/include/, and make defconfig will fail, so we have
447 # to force an include path with $S. 462 # to force an include path with $S.
475# install functions 490# install functions
476#============================================================== 491#==============================================================
477install_universal() { 492install_universal() {
478 #fix silly permissions in tarball 493 #fix silly permissions in tarball
479 cd ${WORKDIR} 494 cd ${WORKDIR}
480 chown -R root:0 * 495 chown -R root:0 * >& /dev/null
481 chmod -R a+r-w+X,u+w * 496 chmod -R a+r-w+X,u+w *
482 cd ${OLDPWD} 497 cd ${OLDPWD}
483} 498}
484 499
485install_headers() { 500install_headers() {
501 local ddir=$(kernel_header_destdir)
502
486 # 2.6.18 introduces headers_install which means we dont need any 503 # 2.6.18 introduces headers_install which means we dont need any
487 # of this crap anymore :D 504 # of this crap anymore :D
488 if kernel_is ge 2 6 18 ; then 505 if kernel_is ge 2 6 18 ; then
489 env_setup_xmakeopts 506 env_setup_xmakeopts
490 emake headers_install INSTALL_HDR_PATH="${D}"/usr ${xmakeopts} || die 507 emake headers_install INSTALL_HDR_PATH="${D}"/${ddir}/.. ${xmakeopts} || die
508
509 # let other packages install some of these headers
510 rm -rf "${D}"/${ddir}/sound #alsa-headers
511 rm -rf "${D}"/${ddir}/scsi #glibc/uclibc/etc...
491 return 0 512 return 0
492 fi 513 fi
493 514
494 local ddir=$(kernel_header_destdir) 515 # Do not use "linux/*" as that can cause problems with very long
495 516 # $S values where the cmdline to cp is too long
496 cd "${S}" 517 cd "${S}"
497 dodir ${ddir}/linux 518 dodir ${ddir}/linux
498 cp -pPR "${S}"/include/linux/* ${D}/${ddir}/linux 519 cp -pPR "${S}"/include/linux "${D}"/${ddir}/ || die
499 rm -rf ${D}/${ddir}/linux/modules 520 rm -rf "${D}"/${ddir}/linux/modules
500 521
501 # Handle multilib headers and crap 522 # Handle multilib headers and crap
502 local multi_dirs="" multi_defs="" 523 local multi_dirs="" multi_defs=""
503 case $(tc-arch-kernel) in 524 case $(tc-arch-kernel) in
504 sparc64) 525 sparc64)
620 641
621 # Don't forget to make directory for sysfs 642 # Don't forget to make directory for sysfs
622 [[ ! -d ${ROOT}sys ]] && kernel_is 2 6 && mkdir ${ROOT}sys 643 [[ ! -d ${ROOT}sys ]] && kernel_is 2 6 && mkdir ${ROOT}sys
623 644
624 echo 645 echo
625 einfo "After installing a new kernel of any version, it is important"
626 einfo "that you have the appropriate /etc/modules.autoload.d/kernel-X.Y"
627 einfo "created (X.Y is the first 2 parts of your new kernel version)"
628 echo
629 einfo "For example, this kernel will require:"
630 einfo "/etc/modules.autoload.d/kernel-${KV_MAJOR}.${KV_MINOR}"
631 echo
632 einfo "If you are upgrading from a previous kernel, you may be interested" 646 elog "If you are upgrading from a previous kernel, you may be interested"
633 einfo "in the following documents:" 647 elog "in the following document:"
634 einfo " - General upgrade guide: http://www.gentoo.org/doc/en/kernel-upgrade.xml" 648 elog " - General upgrade guide: http://www.gentoo.org/doc/en/kernel-upgrade.xml"
635 kernel_is_2_6 && einfo " - 2.4 to 2.6 migration guide: http://www.gentoo.org/doc/en/migration-to-2.6.xml"
636 if kernel_is ge 2 6 13; then
637 ewarn "As of 2.6.13 the support for devfs has been removed."
638 ewarn "You will be required to either manage a static /dev"
639 ewarn "or to ensure that udev is starting on boot."
640 fi
641 echo 649 echo
642 650
643 # if K_EXTRAEINFO is set then lets display it now 651 # if K_EXTRAEINFO is set then lets display it now
644 if [[ -n ${K_EXTRAEINFO} ]]; then 652 if [[ -n ${K_EXTRAEINFO} ]]; then
645 echo ${K_EXTRAEINFO} | fmt | 653 echo ${K_EXTRAEINFO} | fmt |
646 while read -s ELINE; do einfo "${ELINE}"; done 654 while read -s ELINE; do einfo "${ELINE}"; done
647 fi 655 fi
648 656
657 # if K_EXTRAELOG is set then lets display it now
658 if [[ -n ${K_EXTRAELOG} ]]; then
659 echo ${K_EXTRAELOG} | fmt |
660 while read -s ELINE; do elog "${ELINE}"; done
661 fi
662
649 # if K_EXTRAEWARN is set then lets display it now 663 # if K_EXTRAEWARN is set then lets display it now
650 if [[ -n ${K_EXTRAEWARN} ]]; then 664 if [[ -n ${K_EXTRAEWARN} ]]; then
651 echo ${K_EXTRAEWARN} | fmt | 665 echo ${K_EXTRAEWARN} | fmt |
652 while read -s ELINE; do ewarn "${ELINE}"; done 666 while read -s ELINE; do ewarn "${ELINE}"; done
653 fi 667 fi
668
669 # optionally display security unsupported message
670 if [[ -n ${K_SECURITY_UNSUPPORTED} ]]; then
671 echo
672 ewarn "${PN} is UNSUPPORTED by Gentoo Security."
673 ewarn "This means that it is likely to be vulnerable to recent security issues."
674 ewarn "For specific information on why this kernel is unsupported, please read:"
675 ewarn "http://www.gentoo.org/proj/en/security/kernel.xml"
676 fi
677
678 # warn sparc users that they need to do cross-compiling with >= 2.6.25(bug #214765)
679 KV_MAJOR=$(get_version_component_range 1 ${OKV})
680 KV_MINOR=$(get_version_component_range 2 ${OKV})
681 KV_PATCH=$(get_version_component_range 3 ${OKV})
682 if [[ "$(tc-arch)" = "sparc" ]] \
683 && [[ ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} > 2.6.24 ]]
684 then
685 echo
686 elog "NOTE: Since 2.6.25 the kernel Makefile has changed in a way that"
687 elog "you now need to do"
688 elog " make CROSS_COMPILE=sparc64-unknown-linux-gnu-"
689 elog "instead of just"
690 elog " make"
691 elog "to compile the kernel. For more information please browse to"
692 elog "https://bugs.gentoo.org/show_bug.cgi?id=214765"
693 echo
694 fi
654} 695}
655 696
656postinst_headers() { 697postinst_headers() {
657 einfo "Kernel headers are usually only used when recompiling glibc, as such, following the installation" 698 elog "Kernel headers are usually only used when recompiling your system libc, as"
658 einfo "of newer headers, it is advised that you re-merge glibc as follows:" 699 elog "such, following the installation of newer headers, it is advised that you"
659 einfo "emerge glibc" 700 elog "re-merge your system libc."
660 einfo "Failure to do so will cause glibc to not make use of newer features present in the updated kernel" 701 elog "Failure to do so will cause your system libc to not make use of newer"
661 einfo "headers." 702 elog "features present in the updated kernel headers."
662} 703}
663 704
664# pkg_setup functions 705# pkg_setup functions
665#============================================================== 706#==============================================================
666setup_headers() { 707setup_headers() {
680 721
681# unipatch 722# unipatch
682#============================================================== 723#==============================================================
683unipatch() { 724unipatch() {
684 local i x y z extention PIPE_CMD UNIPATCH_DROP KPATCH_DIR PATCH_DEPTH ELINE 725 local i x y z extention PIPE_CMD UNIPATCH_DROP KPATCH_DIR PATCH_DEPTH ELINE
685 local STRICT_COUNT PATCH_LEVEL myLC_ALL myLANG 726 local STRICT_COUNT PATCH_LEVEL myLC_ALL myLANG extglob_bak
686 727
687 # set to a standard locale to ensure sorts are ordered properly. 728 # set to a standard locale to ensure sorts are ordered properly.
688 myLC_ALL="${LC_ALL}" 729 myLC_ALL="${LC_ALL}"
689 myLANG="${LANG}" 730 myLANG="${LANG}"
690 LC_ALL="C" 731 LC_ALL="C"
692 733
693 [ -z "${KPATCH_DIR}" ] && KPATCH_DIR="${WORKDIR}/patches/" 734 [ -z "${KPATCH_DIR}" ] && KPATCH_DIR="${WORKDIR}/patches/"
694 [ ! -d ${KPATCH_DIR} ] && mkdir -p ${KPATCH_DIR} 735 [ ! -d ${KPATCH_DIR} ] && mkdir -p ${KPATCH_DIR}
695 736
696 # We're gonna need it when doing patches with a predefined patchlevel 737 # We're gonna need it when doing patches with a predefined patchlevel
738 extglob_bak=$(shopt -p extglob)
697 shopt -s extglob 739 shopt -s extglob
698 740
699 # This function will unpack all passed tarballs, add any passed patches, and remove any passed patchnumbers 741 # This function will unpack all passed tarballs, add any passed patches, and remove any passed patchnumbers
700 # usage can be either via an env var or by params 742 # usage can be either via an env var or by params
701 # although due to the nature we pass this within this eclass 743 # although due to the nature we pass this within this eclass
703 # -z "${UNIPATCH_LIST}" ] && UNIPATCH_LIST="${@}" 745 # -z "${UNIPATCH_LIST}" ] && UNIPATCH_LIST="${@}"
704 UNIPATCH_LIST="${@}" 746 UNIPATCH_LIST="${@}"
705 747
706 #unpack any passed tarballs 748 #unpack any passed tarballs
707 for i in ${UNIPATCH_LIST}; do 749 for i in ${UNIPATCH_LIST}; do
708 if [ -n "$(echo ${i} | grep -e "\.tar" -e "\.tbz" -e "\.tgz")" ]; then 750 if echo ${i} | grep -qs -e "\.tar" -e "\.tbz" -e "\.tgz" ; then
709 extention=${i/*./}
710 extention=${extention/:*/}
711 case ${extention} in
712 tbz2) PIPE_CMD="tar -xvjf";;
713 bz2) PIPE_CMD="tar -xvjf";;
714 tgz) PIPE_CMD="tar -xvzf";;
715 gz) PIPE_CMD="tar -xvzf";;
716 *) eerror "Unrecognized tarball compression"
717 die "Unrecognized tarball compression";;
718 esac
719
720 if [ -n "${UNIPATCH_STRICTORDER}" ]; then 751 if [ -n "${UNIPATCH_STRICTORDER}" ]; then
721 unset z 752 unset z
722 STRICT_COUNT=$((10#${STRICT_COUNT} + 1)) 753 STRICT_COUNT=$((10#${STRICT_COUNT} + 1))
723 for((y=0; y<$((6 - ${#STRICT_COUNT})); y++)); 754 for((y=0; y<$((6 - ${#STRICT_COUNT})); y++));
724 do z="${z}0"; 755 do z="${z}0";
725 done 756 done
726 PATCH_ORDER="${z}${STRICT_COUNT}" 757 PATCH_ORDER="${z}${STRICT_COUNT}"
727 758
728 mkdir -p ${KPATCH_DIR}/${PATCH_ORDER}/ 759 mkdir -p "${KPATCH_DIR}/${PATCH_ORDER}"
729 ${PIPE_CMD} ${i/:*/} -C ${KPATCH_DIR}/${PATCH_ORDER}/ 1>/dev/null 760 pushd "${KPATCH_DIR}/${PATCH_ORDER}" >/dev/null
761 unpack ${i##*/}
762 popd >/dev/null
730 else 763 else
731 ${PIPE_CMD} ${i/:*/} -C ${KPATCH_DIR} 1>/dev/null 764 pushd "${KPATCH_DIR}" >/dev/null
765 unpack ${i##*/}
766 popd >/dev/null
732 fi 767 fi
733 768
734 if [ $? == 0 ]; then
735 einfo "${i/*\//} unpacked"
736 [ -n "$(echo ${i} | grep ':')" ] && echo ">>> Strict patch levels not currently supported for tarballed patchsets" 769 [[ ${i} == *:* ]] && echo ">>> Strict patch levels not currently supported for tarballed patchsets"
737 else
738 eerror "Failed to unpack ${i/:*/}"
739 die "unable to unpack patch tarball"
740 fi
741 else 770 else
742 extention=${i/*./} 771 extention=${i/*./}
743 extention=${extention/:*/} 772 extention=${extention/:*/}
744 PIPE_CMD="" 773 PIPE_CMD=""
745 case ${extention} in 774 case ${extention} in
788 KPATCH_DIR="" 817 KPATCH_DIR=""
789 for i in $(find ${x} -type d | sort -n); do 818 for i in $(find ${x} -type d | sort -n); do
790 KPATCH_DIR="${KPATCH_DIR} ${i}" 819 KPATCH_DIR="${KPATCH_DIR} ${i}"
791 done 820 done
792 821
822 # do not apply fbcondecor patch to sparc/sparc64 as it breaks boot
823 # bug #272676
824 if [[ "$(tc-arch)" = "sparc" || "$(tc-arch)" = "sparc64" ]]; then
825 if [[ ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} > 2.6.28 ]]; then
826 UNIPATCH_DROP="${UNIPATCH_DROP} *_fbcondecor-0.9.6.patch"
827 echo
828 ewarn "fbcondecor currently prevents sparc/sparc64 from booting"
829 ewarn "for kernel versions >= 2.6.29. Removing fbcondecor patch."
830 ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=272676 for details"
831 echo
832 fi
833 fi
834
793 #so now lets get rid of the patchno's we want to exclude 835 #so now lets get rid of the patchno's we want to exclude
794 UNIPATCH_DROP="${UNIPATCH_EXCLUDE} ${UNIPATCH_DROP}" 836 UNIPATCH_DROP="${UNIPATCH_EXCLUDE} ${UNIPATCH_DROP}"
795 for i in ${UNIPATCH_DROP}; do 837 for i in ${UNIPATCH_DROP}; do
796 ebegin "Excluding Patch #${i}" 838 ebegin "Excluding Patch #${i}"
797 for x in ${KPATCH_DIR}; do rm -f ${x}/${i}* 2>/dev/null; done 839 for x in ${KPATCH_DIR}; do rm -f ${x}/${i}* 2>/dev/null; done
810 if [ -z "${PATCH_DEPTH}" ]; then PATCH_DEPTH=0; fi 852 if [ -z "${PATCH_DEPTH}" ]; then PATCH_DEPTH=0; fi
811 853
812 ebegin "Applying ${i/*\//} (-p${PATCH_DEPTH}+)" 854 ebegin "Applying ${i/*\//} (-p${PATCH_DEPTH}+)"
813 while [ ${PATCH_DEPTH} -lt 5 ]; do 855 while [ ${PATCH_DEPTH} -lt 5 ]; do
814 echo "Attempting Dry-run:" >> ${STDERR_T} 856 echo "Attempting Dry-run:" >> ${STDERR_T}
815 echo "cmd: patch -p${PATCH_DEPTH} --dry-run -f < ${i}" >> ${STDERR_T} 857 echo "cmd: patch -p${PATCH_DEPTH} --no-backup-if-mismatch --dry-run -f < ${i}" >> ${STDERR_T}
816 echo "=======================================================" >> ${STDERR_T} 858 echo "=======================================================" >> ${STDERR_T}
817 if [ $(patch -p${PATCH_DEPTH} --dry-run -f < ${i} >> ${STDERR_T}) $? -eq 0 ]; then 859 if [ $(patch -p${PATCH_DEPTH} --no-backup-if-mismatch --dry-run -f < ${i} >> ${STDERR_T}) $? -eq 0 ]; then
818 echo "Attempting patch:" > ${STDERR_T} 860 echo "Attempting patch:" > ${STDERR_T}
819 echo "cmd: patch -p${PATCH_DEPTH} -f < ${i}" >> ${STDERR_T} 861 echo "cmd: patch -p${PATCH_DEPTH} --no-backup-if-mismatch -f < ${i}" >> ${STDERR_T}
820 echo "=======================================================" >> ${STDERR_T} 862 echo "=======================================================" >> ${STDERR_T}
821 if [ $(patch -p${PATCH_DEPTH} -f < ${i} >> ${STDERR_T}) "$?" -eq 0 ]; then 863 if [ $(patch -p${PATCH_DEPTH} --no-backup-if-mismatch -f < ${i} >> ${STDERR_T}) "$?" -eq 0 ]; then
822 eend 0 864 eend 0
823 rm ${STDERR_T} 865 rm ${STDERR_T}
824 break 866 break
825 else 867 else
826 eend 1 868 eend 1
853 # clean up KPATCH_DIR's - fixes bug #53610 895 # clean up KPATCH_DIR's - fixes bug #53610
854 for x in ${KPATCH_DIR}; do rm -Rf ${x}; done 896 for x in ${KPATCH_DIR}; do rm -Rf ${x}; done
855 897
856 LC_ALL="${myLC_ALL}" 898 LC_ALL="${myLC_ALL}"
857 LANG="${myLANG}" 899 LANG="${myLANG}"
900 eval ${extglob_bak}
858} 901}
859 902
860# getfilevar accepts 2 vars as follows: 903# getfilevar accepts 2 vars as follows:
861# getfilevar <VARIABLE> <CONFIGFILE> 904# getfilevar <VARIABLE> <CONFIGFILE>
862# pulled from linux-info 905# pulled from linux-info
974 return 0 1017 return 0
975} 1018}
976 1019
977headers___fix() { 1020headers___fix() {
978 # Voodoo to partially fix broken upstream headers. 1021 # Voodoo to partially fix broken upstream headers.
979 # Issues with this function should go to toolchain. 1022 # note: do not put inline/asm/volatile together (breaks "inline asm volatile")
980 sed -i \ 1023 sed -i \
981 -e '/^\#define.*_TYPES_H/{:loop n; bloop}' \ 1024 -e '/^\#define.*_TYPES_H/{:loop n; bloop}' \
982 -e 's:\<\([us]\(8\|16\|32\|64\)\)\>:__\1:g' \ 1025 -e 's:\<\([us]\(8\|16\|32\|64\)\)\>:__\1:g' \
983 -e "s/ inline / __inline__ /g" \ 1026 -e "s/\([[:space:]]\)inline\([[:space:](]\)/\1__inline__\2/g" \
1027 -e "s/\([[:space:]]\)asm\([[:space:](]\)/\1__asm__\2/g" \
1028 -e "s/\([[:space:]]\)volatile\([[:space:](]\)/\1__volatile__\2/g" \
984 "$@" 1029 "$@"
985} 1030}
986 1031
987# common functions 1032# common functions
988#============================================================== 1033#==============================================================

Legend:
Removed from v.1.193  
changed lines
  Added in v.1.221

  ViewVC Help
Powered by ViewVC 1.1.20