/[gentoo-x86]/eclass/eutils.eclass
Gentoo

Diff of /eclass/eutils.eclass

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

Revision 1.299 Revision 1.304
1# Copyright 1999-2007 Gentoo Foundation 1# Copyright 1999-2007 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/eutils.eclass,v 1.299 2008/02/20 17:32:02 vapier Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v 1.304 2008/09/20 18:45:26 vapier Exp $
4 4
5# @ECLASS: eutils.eclass 5# @ECLASS: eutils.eclass
6# @MAINTAINER: 6# @MAINTAINER:
7# base-system@gentoo.org 7# base-system@gentoo.org
8# @BLURB: many extra (but common) functions that are used in ebuilds 8# @BLURB: many extra (but common) functions that are used in ebuilds
183 183
184 local EPATCH_SOURCE="${EPATCH_SOURCE}/*.${EPATCH_SUFFIX}" 184 local EPATCH_SOURCE="${EPATCH_SOURCE}/*.${EPATCH_SUFFIX}"
185 fi 185 fi
186 186
187 case ${EPATCH_SUFFIX##*\.} in 187 case ${EPATCH_SUFFIX##*\.} in
188 lzma)
189 PIPE_CMD="lzma -dc"
190 PATCH_SUFFIX="lzma"
191 ;;
188 bz2) 192 bz2)
189 PIPE_CMD="bzip2 -dc" 193 PIPE_CMD="bzip2 -dc"
190 PATCH_SUFFIX="bz2" 194 PATCH_SUFFIX="bz2"
191 ;; 195 ;;
192 gz|Z|z) 196 gz|Z|z)
242 fi 246 fi
243 247
244 echo "***** ${patchname} *****" > ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 248 echo "***** ${patchname} *****" > ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
245 echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 249 echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
246 250
251 # Decompress the patch if need be
252 if [[ ${PATCH_SUFFIX} != "patch" ]] ; then
253 echo -n "PIPE_COMMAND: " >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
254 echo "${PIPE_CMD} ${x} > ${PATCH_TARGET}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
255
256 if ! (${PIPE_CMD} ${x} > ${PATCH_TARGET}) >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 2>&1 ; then
257 echo
258 eerror "Could not extract patch!"
259 #die "Could not extract patch!"
260 count=5
261 break
262 fi
263 else
264 PATCH_TARGET="${x}"
265 fi
266
247 # Allow for prefix to differ ... im lazy, so shoot me :/ 267 # Allow for prefix to differ ... im lazy, so shoot me :/
248 while [ "${count}" -lt 5 ] 268 while [ "${count}" -lt 5 ]
249 do 269 do
250 # Generate some useful debug info ... 270 # Generate some useful debug info ...
251 _epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 271 _epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
252 echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 272 echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
253 273
254 if [ "${PATCH_SUFFIX}" != "patch" ]
255 then
256 echo -n "PIPE_COMMAND: " >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
257 echo "${PIPE_CMD} ${x} > ${PATCH_TARGET}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
258 else
259 PATCH_TARGET="${x}"
260 fi
261
262 echo -n "PATCH COMMAND: " >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 274 echo -n "PATCH COMMAND: " >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
263 echo "patch -p${count} ${popts} < ${PATCH_TARGET}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 275 echo "patch -p${count} ${popts} < ${PATCH_TARGET}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
264 276
265 echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 277 echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
266 _epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 278 _epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
267
268 if [ "${PATCH_SUFFIX}" != "patch" ]
269 then
270 if ! (${PIPE_CMD} ${x} > ${PATCH_TARGET}) >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 2>&1
271 then
272 echo
273 eerror "Could not extract patch!"
274 #die "Could not extract patch!"
275 count=5
276 break
277 fi
278 fi
279 279
280 if (cat ${PATCH_TARGET} | patch -p${count} ${popts} --dry-run -f ; _epatch_assert) >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 2>&1 280 if (cat ${PATCH_TARGET} | patch -p${count} ${popts} --dry-run -f ; _epatch_assert) >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 2>&1
281 then 281 then
282 _epatch_draw_line "***** ${patchname} *****" > ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real 282 _epatch_draw_line "***** ${patchname} *****" > ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real
283 echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real 283 echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real
1647 ewarn " # revdep-rebuild --library ${lib##*/}" 1647 ewarn " # revdep-rebuild --library ${lib##*/}"
1648 done 1648 done
1649 if [[ ${notice} -eq 1 ]] ; then 1649 if [[ ${notice} -eq 1 ]] ; then
1650 ewarn 1650 ewarn
1651 ewarn "Once you've finished running revdep-rebuild, it should be safe to" 1651 ewarn "Once you've finished running revdep-rebuild, it should be safe to"
1652 ewarn "delete the old libraries." 1652 ewarn "delete the old libraries. Here is a copy & paste for the lazy:"
1653 for lib in "$@" ; do
1654 ewarn " # rm '${lib}'"
1655 done
1653 fi 1656 fi
1654} 1657}
1655 1658
1656# @FUNCTION: built_with_use 1659# @FUNCTION: built_with_use
1657# @USAGE: [--hidden] [--missing <action>] [-a|-o] <DEPEND ATOM> <List of USE flags> 1660# @USAGE: [--hidden] [--missing <action>] [-a|-o] <DEPEND ATOM> <List of USE flags>
1662# --missing option controls the behavior if called on a package that does 1665# --missing option controls the behavior if called on a package that does
1663# not actually support the defined USE flags (aka listed in IUSE). 1666# not actually support the defined USE flags (aka listed in IUSE).
1664# The default is to abort (call die). The -a and -o flags control 1667# The default is to abort (call die). The -a and -o flags control
1665# the requirements of the USE flags. They correspond to "and" and "or" 1668# the requirements of the USE flags. They correspond to "and" and "or"
1666# logic. So the -a flag means all listed USE flags must be enabled 1669# logic. So the -a flag means all listed USE flags must be enabled
1667# while the -o flag means at least one of the listed fIUSE flags must be 1670# while the -o flag means at least one of the listed IUSE flags must be
1668# enabled. The --hidden option is really for internal use only as it 1671# enabled. The --hidden option is really for internal use only as it
1669# means the USE flag we're checking is hidden expanded, so it won't be found 1672# means the USE flag we're checking is hidden expanded, so it won't be found
1670# in IUSE like normal USE flags. 1673# in IUSE like normal USE flags.
1671# 1674#
1672# Remember that this function isn't terribly intelligent so order of optional 1675# Remember that this function isn't terribly intelligent so order of optional
1707 die) die "Unable to determine what USE flags $PKG was built with";; 1710 die) die "Unable to determine what USE flags $PKG was built with";;
1708 esac 1711 esac
1709 fi 1712 fi
1710 1713
1711 if [[ ${hidden} == "no" ]] ; then 1714 if [[ ${hidden} == "no" ]] ; then
1712 local IUSE_BUILT=$(<${IUSEFILE}) 1715 local IUSE_BUILT=( $(<"${IUSEFILE}") )
1713 # Don't check USE_EXPAND #147237 1716 # Don't check USE_EXPAND #147237
1714 local expand 1717 local expand
1715 for expand in $(echo ${USE_EXPAND} | tr '[:upper:]' '[:lower:]') ; do 1718 for expand in $(echo ${USE_EXPAND} | tr '[:upper:]' '[:lower:]') ; do
1716 if [[ $1 == ${expand}_* ]] ; then 1719 if [[ $1 == ${expand}_* ]] ; then
1717 expand="" 1720 expand=""
1718 break 1721 break
1719 fi 1722 fi
1720 done 1723 done
1721 if [[ -n ${expand} ]] ; then 1724 if [[ -n ${expand} ]] ; then
1722 if ! has $1 ${IUSE_BUILT} ; then 1725 if ! has $1 ${IUSE_BUILT[@]#[-+]} ; then
1723 case ${missing_action} in 1726 case ${missing_action} in
1724 true) return 0;; 1727 true) return 0;;
1725 false) return 1;; 1728 false) return 1;;
1726 die) die "$PKG does not actually support the $1 USE flag!";; 1729 die) die "$PKG does not actually support the $1 USE flag!";;
1727 esac 1730 esac

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

  ViewVC Help
Powered by ViewVC 1.1.20