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

Diff of /eclass/eutils.eclass

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

Revision 1.296 Revision 1.302
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.296 2008/02/13 20:50:06 wolf31o2 Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v 1.302 2008/08/17 22:21:52 opfer 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
45 sleep 0.1 &>/dev/null ; sleep 0,1 &>/dev/null 45 sleep 0.1 &>/dev/null ; sleep 0,1 &>/dev/null
46 echo -ne "\a" 46 echo -ne "\a"
47 sleep 1 47 sleep 1
48 done 48 done
49 fi 49 fi
50}
51
52# @FUNCTION: ecvs_clean
53# @USAGE: [list of dirs]
54# @DESCRIPTION:
55# Remove CVS directories recursiveley. Useful when a source tarball contains
56# internal CVS directories. Defaults to $PWD.
57ecvs_clean() {
58 [[ -z $* ]] && set -- .
59 find "$@" -type d -name 'CVS' -prune -print0 | xargs -0 rm -rf
60 find "$@" -type f -name '.cvs*' -print0 | xargs -0 rm -rf
61}
62
63# @FUNCTION: esvn_clean
64# @USAGE: [list of dirs]
65# @DESCRIPTION:
66# Remove .svn directories recursiveley. Useful when a source tarball contains
67# internal Subversion directories. Defaults to $PWD.
68esvn_clean() {
69 [[ -z $* ]] && set -- .
70 find "$@" -type d -name '.svn' -prune -print0 | xargs -0 rm -rf
50} 71}
51 72
52# Default directory where patches are located 73# Default directory where patches are located
53EPATCH_SOURCE="${WORKDIR}/patch" 74EPATCH_SOURCE="${WORKDIR}/patch"
54# Default extension for patches 75# Default extension for patches
1583 eerror "preserve_old_lib() must be called from pkg_preinst() only" 1604 eerror "preserve_old_lib() must be called from pkg_preinst() only"
1584 die "Invalid preserve_old_lib() usage" 1605 die "Invalid preserve_old_lib() usage"
1585 fi 1606 fi
1586 [[ -z $1 ]] && die "Usage: preserve_old_lib <library to preserve> [more libraries to preserve]" 1607 [[ -z $1 ]] && die "Usage: preserve_old_lib <library to preserve> [more libraries to preserve]"
1587 1608
1609 # let portage worry about it
1610 has preserve-libs ${FEATURES} && return 0
1611
1588 local lib dir 1612 local lib dir
1589 for lib in "$@" ; do 1613 for lib in "$@" ; do
1590 [[ -e ${ROOT}/${lib} ]] || continue 1614 [[ -e ${ROOT}/${lib} ]] || continue
1591 dir=${lib%/*} 1615 dir=${lib%/*}
1592 dodir ${dir} || die "dodir ${dir} failed" 1616 dodir ${dir} || die "dodir ${dir} failed"
1602preserve_old_lib_notify() { 1626preserve_old_lib_notify() {
1603 if [[ ${EBUILD_PHASE} != "postinst" ]] ; then 1627 if [[ ${EBUILD_PHASE} != "postinst" ]] ; then
1604 eerror "preserve_old_lib_notify() must be called from pkg_postinst() only" 1628 eerror "preserve_old_lib_notify() must be called from pkg_postinst() only"
1605 die "Invalid preserve_old_lib_notify() usage" 1629 die "Invalid preserve_old_lib_notify() usage"
1606 fi 1630 fi
1631
1632 # let portage worry about it
1633 has preserve-libs ${FEATURES} && return 0
1607 1634
1608 local lib notice=0 1635 local lib notice=0
1609 for lib in "$@" ; do 1636 for lib in "$@" ; do
1610 [[ -e ${ROOT}/${lib} ]] || continue 1637 [[ -e ${ROOT}/${lib} ]] || continue
1611 if [[ ${notice} -eq 0 ]] ; then 1638 if [[ ${notice} -eq 0 ]] ; then
1620 ewarn " # revdep-rebuild --library ${lib##*/}" 1647 ewarn " # revdep-rebuild --library ${lib##*/}"
1621 done 1648 done
1622 if [[ ${notice} -eq 1 ]] ; then 1649 if [[ ${notice} -eq 1 ]] ; then
1623 ewarn 1650 ewarn
1624 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"
1625 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
1626 fi 1656 fi
1627} 1657}
1628 1658
1629# @FUNCTION: built_with_use 1659# @FUNCTION: built_with_use
1630# @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>
1635# --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
1636# not actually support the defined USE flags (aka listed in IUSE). 1666# not actually support the defined USE flags (aka listed in IUSE).
1637# 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
1638# 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"
1639# 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
1640# 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
1641# 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
1642# 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
1643# in IUSE like normal USE flags. 1673# in IUSE like normal USE flags.
1644# 1674#
1645# 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
1680 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";;
1681 esac 1711 esac
1682 fi 1712 fi
1683 1713
1684 if [[ ${hidden} == "no" ]] ; then 1714 if [[ ${hidden} == "no" ]] ; then
1685 local IUSE_BUILT=$(<${IUSEFILE}) 1715 local IUSE_BUILT=( $(<"${IUSEFILE}") )
1686 # Don't check USE_EXPAND #147237 1716 # Don't check USE_EXPAND #147237
1687 local expand 1717 local expand
1688 for expand in $(echo ${USE_EXPAND} | tr '[:upper:]' '[:lower:]') ; do 1718 for expand in $(echo ${USE_EXPAND} | tr '[:upper:]' '[:lower:]') ; do
1689 if [[ $1 == ${expand}_* ]] ; then 1719 if [[ $1 == ${expand}_* ]] ; then
1690 expand="" 1720 expand=""
1691 break 1721 break
1692 fi 1722 fi
1693 done 1723 done
1694 if [[ -n ${expand} ]] ; then 1724 if [[ -n ${expand} ]] ; then
1695 if ! has $1 ${IUSE_BUILT} ; then 1725 if ! has $1 ${IUSE_BUILT[@]#[-+]} ; then
1696 case ${missing_action} in 1726 case ${missing_action} in
1697 true) return 0;; 1727 true) return 0;;
1698 false) return 1;; 1728 false) return 1;;
1699 die) die "$PKG does not actually support the $1 USE flag!";; 1729 die) die "$PKG does not actually support the $1 USE flag!";;
1700 esac 1730 esac

Legend:
Removed from v.1.296  
changed lines
  Added in v.1.302

  ViewVC Help
Powered by ViewVC 1.1.20