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

Diff of /eclass/eutils.eclass

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

Revision 1.349 Revision 1.354
1# Copyright 1999-2009 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/eutils.eclass,v 1.349 2010/08/19 21:32:26 vapier Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v 1.354 2011/02/25 21:58:19 ulm 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
200# If you do not specify any options, then epatch will default to the directory 200# If you do not specify any options, then epatch will default to the directory
201# specified by EPATCH_SOURCE. 201# specified by EPATCH_SOURCE.
202# 202#
203# When processing directories, epatch will apply all patches that match: 203# When processing directories, epatch will apply all patches that match:
204# @CODE 204# @CODE
205# ${EPATCH_FORCE} == "yes" 205# if ${EPATCH_FORCE} != "yes"
206# ??_${ARCH}_foo.${EPATCH_SUFFIX} 206# ??_${ARCH}_foo.${EPATCH_SUFFIX}
207# else 207# else
208# *.${EPATCH_SUFFIX} 208# *.${EPATCH_SUFFIX}
209# @CODE 209# @CODE
210# The leading ?? are typically numbers used to force consistent patch ordering. 210# The leading ?? are typically numbers used to force consistent patch ordering.
289 # ???_arch_foo.patch 289 # ???_arch_foo.patch
290 # Else, skip this input altogether 290 # Else, skip this input altogether
291 local a=${patchname#*_} # strip the ???_ 291 local a=${patchname#*_} # strip the ???_
292 a=${a%%_*} # strip the _foo.patch 292 a=${a%%_*} # strip the _foo.patch
293 if ! [[ ${SINGLE_PATCH} == "yes" || \ 293 if ! [[ ${SINGLE_PATCH} == "yes" || \
294 ${EPATCH_FORCE} == "yes" || \ 294 ${EPATCH_FORCE} == "yes" || \
295 ${a} == all || \ 295 ${a} == all || \
296 ${a} == ${ARCH} ]] 296 ${a} == ${ARCH} ]]
297 then 297 then
298 continue 298 continue
299 fi 299 fi
300 300
301 # Let people filter things dynamically 301 # Let people filter things dynamically
357 # such patches. 357 # such patches.
358 local abs_paths=$(egrep -n '^[-+]{3} /' "${PATCH_TARGET}" | awk '$2 != "/dev/null" { print }') 358 local abs_paths=$(egrep -n '^[-+]{3} /' "${PATCH_TARGET}" | awk '$2 != "/dev/null" { print }')
359 if [[ -n ${abs_paths} ]] ; then 359 if [[ -n ${abs_paths} ]] ; then
360 count=1 360 count=1
361 printf "NOTE: skipping -p0 due to absolute paths in patch:\n%s\n" "${abs_paths}" >> "${STDERR_TARGET}" 361 printf "NOTE: skipping -p0 due to absolute paths in patch:\n%s\n" "${abs_paths}" >> "${STDERR_TARGET}"
362 fi
363 # Similar reason, but with relative paths.
364 local rel_paths=$(egrep -n '^[-+]{3} [^ ]*[.][.]/' "${PATCH_TARGET}")
365 if [[ -n ${rel_paths} ]] ; then
366 eqawarn "QA Notice: Your patch uses relative paths '../'."
367 eqawarn " In the future this will cause a failure."
368 eqawarn "${rel_paths}"
362 fi 369 fi
363 370
364 # Dynamically detect the correct -p# ... i'm lazy, so shoot me :/ 371 # Dynamically detect the correct -p# ... i'm lazy, so shoot me :/
365 while [[ ${count} -lt 5 ]] ; do 372 while [[ ${count} -lt 5 ]] ; do
366 # Generate some useful debug info ... 373 # Generate some useful debug info ...
1785 ewarn "the libraries are not being removed. You need to run revdep-rebuild" 1792 ewarn "the libraries are not being removed. You need to run revdep-rebuild"
1786 ewarn "in order to remove these old dependencies. If you do not have this" 1793 ewarn "in order to remove these old dependencies. If you do not have this"
1787 ewarn "helper program, simply emerge the 'gentoolkit' package." 1794 ewarn "helper program, simply emerge the 'gentoolkit' package."
1788 ewarn 1795 ewarn
1789 fi 1796 fi
1790 ewarn " # revdep-rebuild --library ${lib##*/}" 1797 ewarn " # revdep-rebuild --library '${lib}'"
1791 done 1798 done
1792 if [[ ${notice} -eq 1 ]] ; then 1799 if [[ ${notice} -eq 1 ]] ; then
1793 ewarn 1800 ewarn
1794 ewarn "Once you've finished running revdep-rebuild, it should be safe to" 1801 ewarn "Once you've finished running revdep-rebuild, it should be safe to"
1795 ewarn "delete the old libraries. Here is a copy & paste for the lazy:" 1802 ewarn "delete the old libraries. Here is a copy & paste for the lazy:"
1941 else 1948 else
1942 newbin "${tmpwrapper}" "${wrapper}" || die 1949 newbin "${tmpwrapper}" "${wrapper}" || die
1943 fi 1950 fi
1944} 1951}
1945 1952
1946# @FUNCTION: prepalldocs 1953# @FUNCTION: path_exists
1947# @USAGE: 1954# @USAGE: [-a|-o] <paths>
1948# @DESCRIPTION: 1955# @DESCRIPTION:
1949# Compress files in /usr/share/doc which are not already 1956# Check if the specified paths exist. Works for all types of paths
1950# compressed, excluding /usr/share/doc/${PF}/html. 1957# (files/dirs/etc...). The -a and -o flags control the requirements
1951# Uses the ecompressdir to do the compression. 1958# of the paths. They correspond to "and" and "or" logic. So the -a
1952# 2009-02-18 by betelgeuse: 1959# flag means all the paths must exist while the -o flag means at least
1953# Commented because ecompressdir is even more internal to 1960# one of the paths must exist. The default behavior is "and". If no
1954# Portage than prepalldocs (it's not even mentioned in man 5 1961# paths are specified, then the return value is "false".
1955# ebuild). Please submit a better version for review to gentoo-dev 1962path_exists() {
1956# if you want prepalldocs here. 1963 local opt=$1
1957#prepalldocs() { 1964 [[ ${opt} == -[ao] ]] && shift || opt="-a"
1958# if [[ -n $1 ]] ; then
1959# ewarn "prepalldocs: invalid usage; takes no arguments"
1960# fi
1961 1965
1962# cd "${D}" 1966 # no paths -> return false
1963# [[ -d usr/share/doc ]] || return 0 1967 # same behavior as: [[ -e "" ]]
1968 [[ $# -eq 0 ]] && return 1
1964 1969
1965# find usr/share/doc -exec gzip {} + 1970 local p r=0
1966# ecompressdir --ignore /usr/share/doc/${PF}/html 1971 for p in "$@" ; do
1967# ecompressdir --queue /usr/share/doc 1972 [[ -e ${p} ]]
1968#} 1973 : $(( r += $? ))
1974 done
1975
1976 case ${opt} in
1977 -a) return $(( r != 0 )) ;;
1978 -o) return $(( r == $# )) ;;
1979 esac
1980}

Legend:
Removed from v.1.349  
changed lines
  Added in v.1.354

  ViewVC Help
Powered by ViewVC 1.1.20