/[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.319
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.319 2009/09/12 14:37:51 grobian 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
47 sleep 1 47 sleep 1
48 done 48 done
49 fi 49 fi
50} 50}
51 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
71}
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
55EPATCH_SUFFIX="patch.bz2" 76EPATCH_SUFFIX="patch.bz2"
56# Default options for patch 77# Default options for patch
57# Set -g0 to keep RCS, ClearCase, Perforce and SCCS happy. Bug #24571 78# Set -g0 to keep RCS, ClearCase, Perforce and SCCS happy. Bug #24571
58# Set --no-backup-if-mismatch so we don't leave '.orig' files behind. 79# Set --no-backup-if-mismatch so we don't leave '.orig' files behind.
59# Set -E to automatically remove empty files. 80# Set -E to automatically remove empty files.
60EPATCH_OPTS="-g0 -E --no-backup-if-mismatch" 81EPATCH_OPTS="-g0 -E --no-backup-if-mismatch"
61# List of patches not to apply. Not this is only file names, 82# List of patches not to apply. Note this is only file names,
62# and not the full path .. 83# and not the full path ..
63EPATCH_EXCLUDE="" 84EPATCH_EXCLUDE=""
64# Change the printed message for a single patch. 85# Change the printed message for a single patch.
65EPATCH_SINGLE_MSG="" 86EPATCH_SINGLE_MSG=""
66# Change the printed message for multiple patches. 87# Change the printed message for multiple patches.
84# bug they should be left as is to ensure an ebuild can rely on 105# bug they should be left as is to ensure an ebuild can rely on
85# them for. 106# them for.
86# 107#
87# Patches are applied in current directory. 108# Patches are applied in current directory.
88# 109#
89# Bulk Patches should preferibly have the form of: 110# Bulk Patches should preferably have the form of:
90# 111#
91# ??_${ARCH}_foo.${EPATCH_SUFFIX} 112# ??_${ARCH}_foo.${EPATCH_SUFFIX}
92# 113#
93# For example: 114# For example:
94# 115#
162 183
163 local EPATCH_SOURCE="${EPATCH_SOURCE}/*.${EPATCH_SUFFIX}" 184 local EPATCH_SOURCE="${EPATCH_SOURCE}/*.${EPATCH_SUFFIX}"
164 fi 185 fi
165 186
166 case ${EPATCH_SUFFIX##*\.} in 187 case ${EPATCH_SUFFIX##*\.} in
188 xz)
189 PIPE_CMD="xz -dc"
190 PATCH_SUFFIX="xz"
191 ;;
192 lzma)
193 PIPE_CMD="lzma -dc"
194 PATCH_SUFFIX="lzma"
195 ;;
167 bz2) 196 bz2)
168 PIPE_CMD="bzip2 -dc" 197 PIPE_CMD="bzip2 -dc"
169 PATCH_SUFFIX="bz2" 198 PATCH_SUFFIX="bz2"
170 ;; 199 ;;
171 gz|Z|z) 200 gz|Z|z)
221 fi 250 fi
222 251
223 echo "***** ${patchname} *****" > ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 252 echo "***** ${patchname} *****" > ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
224 echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 253 echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
225 254
255 # Decompress the patch if need be
256 if [[ ${PATCH_SUFFIX} != "patch" ]] ; then
257 echo -n "PIPE_COMMAND: " >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
258 echo "${PIPE_CMD} ${x} > ${PATCH_TARGET}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
259
260 if ! (${PIPE_CMD} ${x} > ${PATCH_TARGET}) >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 2>&1 ; then
261 echo
262 eerror "Could not extract patch!"
263 #die "Could not extract patch!"
264 count=5
265 break
266 fi
267 else
268 PATCH_TARGET="${x}"
269 fi
270
271 # Check for absolute paths in patches. If sandbox is disabled,
272 # people could (accidently) patch files in the root filesystem.
273 # Or trigger other unpleasantries #237667. So disallow -p0 on
274 # such patches.
275 local abs_paths=$(egrep -n '^[-+]{3} /' "${PATCH_TARGET}" | awk '$2 != "/dev/null" { print }')
276 if [[ -n ${abs_paths} ]] ; then
277 count=1
278 echo "NOTE: skipping -p0 due to absolute paths in patch:" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
279 echo "${abs_paths}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
280 fi
281
226 # Allow for prefix to differ ... im lazy, so shoot me :/ 282 # Allow for prefix to differ ... im lazy, so shoot me :/
227 while [ "${count}" -lt 5 ] 283 while [ "${count}" -lt 5 ]
228 do 284 do
229 # Generate some useful debug info ... 285 # Generate some useful debug info ...
230 _epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 286 _epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
231 echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 287 echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
232 288
233 if [ "${PATCH_SUFFIX}" != "patch" ]
234 then
235 echo -n "PIPE_COMMAND: " >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
236 echo "${PIPE_CMD} ${x} > ${PATCH_TARGET}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
237 else
238 PATCH_TARGET="${x}"
239 fi
240
241 echo -n "PATCH COMMAND: " >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 289 echo -n "PATCH COMMAND: " >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
242 echo "patch -p${count} ${popts} < ${PATCH_TARGET}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 290 echo "patch -p${count} ${popts} < ${PATCH_TARGET}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
243 291
244 echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 292 echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
245 _epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 293 _epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}
246
247 if [ "${PATCH_SUFFIX}" != "patch" ]
248 then
249 if ! (${PIPE_CMD} ${x} > ${PATCH_TARGET}) >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 2>&1
250 then
251 echo
252 eerror "Could not extract patch!"
253 #die "Could not extract patch!"
254 count=5
255 break
256 fi
257 fi
258 294
259 if (cat ${PATCH_TARGET} | patch -p${count} ${popts} --dry-run -f ; _epatch_assert) >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 2>&1 295 if (cat ${PATCH_TARGET} | patch -p${count} ${popts} --dry-run -f ; _epatch_assert) >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 2>&1
260 then 296 then
261 _epatch_draw_line "***** ${patchname} *****" > ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real 297 _epatch_draw_line "***** ${patchname} *****" > ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real
262 echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real 298 echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real
310 done 346 done
311 if [ "${SINGLE_PATCH}" = "no" ] 347 if [ "${SINGLE_PATCH}" = "no" ]
312 then 348 then
313 einfo "Done with patching" 349 einfo "Done with patching"
314 fi 350 fi
351}
352epatch_user() {
353 [[ $# -ne 0 ]] && die "epatch_user takes no options"
354
355 # don't clobber any EPATCH vars that the parent might want
356 local EPATCH_SOURCE check base=${PORTAGE_CONFIGROOT}/etc/portage/patches
357 for check in {${CATEGORY}/${PF},${CATEGORY}/${P},${CATEGORY}/${PN}}; do
358 EPATCH_SOURCE=${base}/${CTARGET}/${check}
359 [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${base}/${CHOST}/${check}
360 [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${base}/${check}
361 if [[ -d ${EPATCH_SOURCE} ]] ; then
362 EPATCH_SOURCE=${EPATCH_SOURCE} \
363 EPATCH_SUFFIX="patch" \
364 EPATCH_FORCE="yes" \
365 EPATCH_MULTI_MSG="Applying user patches from ${EPATCH_SOURCE} ..." \
366 epatch
367 break
368 fi
369 done
315} 370}
316 371
317# @FUNCTION: emktemp 372# @FUNCTION: emktemp
318# @USAGE: [temp dir] 373# @USAGE: [temp dir]
319# @DESCRIPTION: 374# @DESCRIPTION:
355# base-system@gentoo.org (Linux) 410# base-system@gentoo.org (Linux)
356# Joe Jezak <josejx@gmail.com> (OS X) 411# Joe Jezak <josejx@gmail.com> (OS X)
357# usata@gentoo.org (OS X) 412# usata@gentoo.org (OS X)
358# Aaron Walker <ka0ttic@gentoo.org> (FreeBSD) 413# Aaron Walker <ka0ttic@gentoo.org> (FreeBSD)
359# @DESCRIPTION: 414# @DESCRIPTION:
360# Small wrapper for getent (Linux), nidump (Mac OS X), 415# Small wrapper for getent (Linux),
416# nidump (< Mac OS X 10.5), dscl (Mac OS X 10.5),
361# and pw (FreeBSD) used in enewuser()/enewgroup() 417# and pw (FreeBSD) used in enewuser()/enewgroup()
362egetent() { 418egetent() {
363 case ${CHOST} in 419 case ${CHOST} in
364 *-darwin*) 420 *-darwin[678])
365 case "$2" in 421 case "$2" in
366 *[!0-9]*) # Non numeric 422 *[!0-9]*) # Non numeric
367 nidump $1 . | awk -F":" "{ if (\$1 ~ /^$2$/) {print \$0;exit;} }" 423 nidump $1 . | awk -F":" "{ if (\$1 ~ /^$2$/) {print \$0;exit;} }"
368 ;; 424 ;;
369 *) # Numeric 425 *) # Numeric
370 nidump $1 . | awk -F":" "{ if (\$3 == $2) {print \$0;exit;} }" 426 nidump $1 . | awk -F":" "{ if (\$3 == $2) {print \$0;exit;} }"
427 ;;
428 esac
429 ;;
430 *-darwin*)
431 local mytype=$1
432 [[ "passwd" == $mytype ]] && mytype="Users"
433 [[ "group" == $mytype ]] && mytype="Groups"
434 case "$2" in
435 *[!0-9]*) # Non numeric
436 dscl . -read /$mytype/$2 2>/dev/null |grep RecordName
437 ;;
438 *) # Numeric
439 local mykey="UniqueID"
440 [[ $mytype == "Groups" ]] && mykey="PrimaryGroupID"
441 dscl . -search /$mytype $mykey $2 2>/dev/null
371 ;; 442 ;;
372 esac 443 esac
373 ;; 444 ;;
374 *-freebsd*|*-dragonfly*) 445 *-freebsd*|*-dragonfly*)
375 local opts action="user" 446 local opts action="user"
921 einfo "Passing desktop entry validity check. Install dev-util/desktop-file-utils, if you want to help to improve Gentoo." 992 einfo "Passing desktop entry validity check. Install dev-util/desktop-file-utils, if you want to help to improve Gentoo."
922 fi 993 fi
923} 994}
924 995
925# @FUNCTION: make_session_desktop 996# @FUNCTION: make_session_desktop
926# @USAGE: <title> <command> 997# @USAGE: <title> <command> [command args...]
927# @DESCRIPTION: 998# @DESCRIPTION:
928# Make a GDM/KDM Session file. The title is the file to execute to start the 999# Make a GDM/KDM Session file. The title is the file to execute to start the
929# Window Manager. The command is the name of the Window Manager. 1000# Window Manager. The command is the name of the Window Manager.
1001#
1002# You can set the name of the file via the ${wm} variable.
930make_session_desktop() { 1003make_session_desktop() {
931 [[ -z $1 ]] && eerror "make_session_desktop: You must specify the title" && return 1 1004 [[ -z $1 ]] && eerror "$0: You must specify the title" && return 1
932 [[ -z $2 ]] && eerror "make_session_desktop: You must specify the command" && return 1 1005 [[ -z $2 ]] && eerror "$0: You must specify the command" && return 1
933 1006
934 local title=$1 1007 local title=$1
935 local command=$2 1008 local command=$2
936 local desktop=${T}/${wm}.desktop 1009 local desktop=${T}/${wm:-${PN}}.desktop
1010 shift 2
937 1011
938 cat <<-EOF > "${desktop}" 1012 cat <<-EOF > "${desktop}"
939 [Desktop Entry] 1013 [Desktop Entry]
940 Name=${title} 1014 Name=${title}
941 Comment=This session logs you into ${title} 1015 Comment=This session logs you into ${title}
942 Exec=${command} 1016 Exec=${command} $*
943 TryExec=${command} 1017 TryExec=${command}
944 Type=Application 1018 Type=XSession
945 EOF 1019 EOF
946 1020
947 ( 1021 (
948 # wrap the env here so that the 'insinto' call 1022 # wrap the env here so that the 'insinto' call
949 # doesn't corrupt the env of the caller 1023 # doesn't corrupt the env of the caller
1532# of the lists. 1606# of the lists.
1533strip-linguas() { 1607strip-linguas() {
1534 local ls newls nols 1608 local ls newls nols
1535 if [[ $1 == "-i" ]] || [[ $1 == "-u" ]] ; then 1609 if [[ $1 == "-i" ]] || [[ $1 == "-u" ]] ; then
1536 local op=$1; shift 1610 local op=$1; shift
1537 ls=$(find "$1" -name '*.po' -exec basename {} .po \;); shift 1611 ls=$(find "$1" -name '*.po' -exec basename {} .po ';'); shift
1538 local d f 1612 local d f
1539 for d in "$@" ; do 1613 for d in "$@" ; do
1540 if [[ ${op} == "-u" ]] ; then 1614 if [[ ${op} == "-u" ]] ; then
1541 newls=${ls} 1615 newls=${ls}
1542 else 1616 else
1543 newls="" 1617 newls=""
1544 fi 1618 fi
1545 for f in $(find "$d" -name '*.po' -exec basename {} .po \;) ; do 1619 for f in $(find "$d" -name '*.po' -exec basename {} .po ';') ; do
1546 if [[ ${op} == "-i" ]] ; then 1620 if [[ ${op} == "-i" ]] ; then
1547 hasq ${f} ${ls} && newls="${newls} ${f}" 1621 hasq ${f} ${ls} && newls="${newls} ${f}"
1548 else 1622 else
1549 hasq ${f} ${ls} || newls="${newls} ${f}" 1623 hasq ${f} ${ls} || newls="${newls} ${f}"
1550 fi 1624 fi
1563 else 1637 else
1564 nols="${nols} ${f}" 1638 nols="${nols} ${f}"
1565 fi 1639 fi
1566 done 1640 done
1567 [[ -n ${nols} ]] \ 1641 [[ -n ${nols} ]] \
1568 && ewarn "Sorry, but ${PN} does not support the LINGUAs:" ${nols} 1642 && ewarn "Sorry, but ${PN} does not support the LINGUAS:" ${nols}
1569 export LINGUAS=${newls:1} 1643 export LINGUAS=${newls:1}
1570} 1644}
1571 1645
1572# @FUNCTION: preserve_old_lib 1646# @FUNCTION: preserve_old_lib
1573# @USAGE: <libs to preserve> [more libs] 1647# @USAGE: <libs to preserve> [more libs]
1583 eerror "preserve_old_lib() must be called from pkg_preinst() only" 1657 eerror "preserve_old_lib() must be called from pkg_preinst() only"
1584 die "Invalid preserve_old_lib() usage" 1658 die "Invalid preserve_old_lib() usage"
1585 fi 1659 fi
1586 [[ -z $1 ]] && die "Usage: preserve_old_lib <library to preserve> [more libraries to preserve]" 1660 [[ -z $1 ]] && die "Usage: preserve_old_lib <library to preserve> [more libraries to preserve]"
1587 1661
1662 # let portage worry about it
1663 has preserve-libs ${FEATURES} && return 0
1664
1588 local lib dir 1665 local lib dir
1589 for lib in "$@" ; do 1666 for lib in "$@" ; do
1590 [[ -e ${ROOT}/${lib} ]] || continue 1667 [[ -e ${ROOT}/${lib} ]] || continue
1591 dir=${lib%/*} 1668 dir=${lib%/*}
1592 dodir ${dir} || die "dodir ${dir} failed" 1669 dodir ${dir} || die "dodir ${dir} failed"
1602preserve_old_lib_notify() { 1679preserve_old_lib_notify() {
1603 if [[ ${EBUILD_PHASE} != "postinst" ]] ; then 1680 if [[ ${EBUILD_PHASE} != "postinst" ]] ; then
1604 eerror "preserve_old_lib_notify() must be called from pkg_postinst() only" 1681 eerror "preserve_old_lib_notify() must be called from pkg_postinst() only"
1605 die "Invalid preserve_old_lib_notify() usage" 1682 die "Invalid preserve_old_lib_notify() usage"
1606 fi 1683 fi
1684
1685 # let portage worry about it
1686 has preserve-libs ${FEATURES} && return 0
1607 1687
1608 local lib notice=0 1688 local lib notice=0
1609 for lib in "$@" ; do 1689 for lib in "$@" ; do
1610 [[ -e ${ROOT}/${lib} ]] || continue 1690 [[ -e ${ROOT}/${lib} ]] || continue
1611 if [[ ${notice} -eq 0 ]] ; then 1691 if [[ ${notice} -eq 0 ]] ; then
1620 ewarn " # revdep-rebuild --library ${lib##*/}" 1700 ewarn " # revdep-rebuild --library ${lib##*/}"
1621 done 1701 done
1622 if [[ ${notice} -eq 1 ]] ; then 1702 if [[ ${notice} -eq 1 ]] ; then
1623 ewarn 1703 ewarn
1624 ewarn "Once you've finished running revdep-rebuild, it should be safe to" 1704 ewarn "Once you've finished running revdep-rebuild, it should be safe to"
1625 ewarn "delete the old libraries." 1705 ewarn "delete the old libraries. Here is a copy & paste for the lazy:"
1706 for lib in "$@" ; do
1707 ewarn " # rm '${lib}'"
1708 done
1626 fi 1709 fi
1627} 1710}
1628 1711
1629# @FUNCTION: built_with_use 1712# @FUNCTION: built_with_use
1630# @USAGE: [--hidden] [--missing <action>] [-a|-o] <DEPEND ATOM> <List of USE flags> 1713# @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 1718# --missing option controls the behavior if called on a package that does
1636# not actually support the defined USE flags (aka listed in IUSE). 1719# 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 1720# 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" 1721# 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 1722# 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 1723# 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 1724# 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 1725# means the USE flag we're checking is hidden expanded, so it won't be found
1643# in IUSE like normal USE flags. 1726# in IUSE like normal USE flags.
1644# 1727#
1645# Remember that this function isn't terribly intelligent so order of optional 1728# 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";; 1763 die) die "Unable to determine what USE flags $PKG was built with";;
1681 esac 1764 esac
1682 fi 1765 fi
1683 1766
1684 if [[ ${hidden} == "no" ]] ; then 1767 if [[ ${hidden} == "no" ]] ; then
1685 local IUSE_BUILT=$(<${IUSEFILE}) 1768 local IUSE_BUILT=( $(<"${IUSEFILE}") )
1686 # Don't check USE_EXPAND #147237 1769 # Don't check USE_EXPAND #147237
1687 local expand 1770 local expand
1688 for expand in $(echo ${USE_EXPAND} | tr '[:upper:]' '[:lower:]') ; do 1771 for expand in $(echo ${USE_EXPAND} | tr '[:upper:]' '[:lower:]') ; do
1689 if [[ $1 == ${expand}_* ]] ; then 1772 if [[ $1 == ${expand}_* ]] ; then
1690 expand="" 1773 expand=""
1691 break 1774 break
1692 fi 1775 fi
1693 done 1776 done
1694 if [[ -n ${expand} ]] ; then 1777 if [[ -n ${expand} ]] ; then
1695 if ! has $1 ${IUSE_BUILT} ; then 1778 if ! has $1 ${IUSE_BUILT[@]#[-+]} ; then
1696 case ${missing_action} in 1779 case ${missing_action} in
1697 true) return 0;; 1780 true) return 0;;
1698 false) return 1;; 1781 false) return 1;;
1699 die) die "$PKG does not actually support the $1 USE flag!";; 1782 die) die "$PKG does not actually support the $1 USE flag!";;
1700 esac 1783 esac
1764 ) || die 1847 ) || die
1765 else 1848 else
1766 newbin "${tmpwrapper}" "${wrapper}" || die 1849 newbin "${tmpwrapper}" "${wrapper}" || die
1767 fi 1850 fi
1768} 1851}
1852
1853# @FUNCTION: prepalldocs
1854# @USAGE:
1855# @DESCRIPTION:
1856# Compress files in /usr/share/doc which are not already
1857# compressed, excluding /usr/share/doc/${PF}/html.
1858# Uses the ecompressdir to do the compression.
1859# 2009-02-18 by betelgeuse:
1860# Commented because ecompressdir is even more internal to
1861# Portage than prepalldocs (it's not even mentioned in man 5
1862# ebuild). Please submit a better version for review to gentoo-dev
1863# if you want prepalldocs here.
1864#prepalldocs() {
1865# if [[ -n $1 ]] ; then
1866# ewarn "prepalldocs: invalid usage; takes no arguments"
1867# fi
1868
1869# cd "${D}"
1870# [[ -d usr/share/doc ]] || return 0
1871
1872# find usr/share/doc -exec gzip {} +
1873# ecompressdir --ignore /usr/share/doc/${PF}/html
1874# ecompressdir --queue /usr/share/doc
1875#}

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

  ViewVC Help
Powered by ViewVC 1.1.20