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

Diff of /eclass/eutils.eclass

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

Revision 1.223 Revision 1.229
1# Copyright 1999-2005 Gentoo Foundation 1# Copyright 1999-2005 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.223 2006/02/15 23:40:16 flameeyes Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v 1.229 2006/03/16 03:44:54 agriffis Exp $
4# 4#
5# Author: Martin Schlemmer <azarah@gentoo.org> 5# Author: Martin Schlemmer <azarah@gentoo.org>
6# 6#
7# This eclass is for general purpose functions that most ebuilds 7# This eclass is for general purpose functions that most ebuilds
8# have to implement themselves. 8# have to implement themselves.
136# hand its a directory, it will set EPATCH_SOURCE to this. 136# hand its a directory, it will set EPATCH_SOURCE to this.
137# 137#
138# <azarah@gentoo.org> (10 Nov 2002) 138# <azarah@gentoo.org> (10 Nov 2002)
139# 139#
140epatch() { 140epatch() {
141 _epatch_draw_line() { 141 _epatch_draw_line() {
142 local i=0 str_length="" str_out="" 142 [[ -z $1 ]] && set "$(printf "%65s" '')"
143 143 echo "${1//?/=}"
144 # Handle calls that do not have args, or wc not being installed ...
145 if [[ -z $1 ]] || ! type -p wc >/dev/null ; then
146 str_length=65
147 else
148 str_length=$(echo -n "$*" | wc -m)
149 fi
150
151 while ((i++ < ${str_length})) ; do
152 str_out="${str_out}="
153 done
154 echo ${str_out}
155
156 return 0
157 } 144 }
158 _epatch_assert() { local _pipestatus=${PIPESTATUS[*]}; [[ ${_pipestatus// /} -eq 0 ]] ; } 145 _epatch_assert() { local _pipestatus=${PIPESTATUS[*]}; [[ ${_pipestatus// /} -eq 0 ]] ; }
159 local PIPE_CMD="" 146 local PIPE_CMD=""
160 local STDERR_TARGET="${T}/$$.out" 147 local STDERR_TARGET="${T}/$$.out"
161 local PATCH_TARGET="${T}/$$.patch" 148 local PATCH_TARGET="${T}/$$.patch"
385 ${exe} "${tmp}" || ${exe} -p "${tmp}" 372 ${exe} "${tmp}" || ${exe} -p "${tmp}"
386 echo "${tmp}" 373 echo "${tmp}"
387 else 374 else
388 if [[ ${exe} == "touch" ]] ; then 375 if [[ ${exe} == "touch" ]] ; then
389 [[ ${USERLAND} == "GNU" ]] \ 376 [[ ${USERLAND} == "GNU" ]] \
390 && exe="-p" \ 377 && mktemp -p "${topdir}" \
391 || exe="-t" 378 || TMPDIR="${topdir}" mktemp -t tmp
392 else 379 else
393 [[ ${USERLAND} == "GNU" ]] \ 380 [[ ${USERLAND} == "GNU" ]] \
394 && exe="-d" \ 381 && mktemp -d "${topdir}" \
395 || exe="-dt"
396 fi
397 TMPDIR="${topdir}" mktemp ${exe} tmp 382 || TMPDIR="${topdir}" mktemp -dt tmp
383 fi
398 fi 384 fi
399} 385}
400 386
401# Small wrapper for getent (Linux), nidump (Mac OS X), 387# Small wrapper for getent (Linux), nidump (Mac OS X),
402# and pw (FreeBSD) used in enewuser()/enewgroup() 388# and pw (FreeBSD) used in enewuser()/enewgroup()
1437# directories and uses the union of the lists. 1423# directories and uses the union of the lists.
1438strip-linguas() { 1424strip-linguas() {
1439 local ls newls 1425 local ls newls
1440 if [[ $1 == "-i" ]] || [[ $1 == "-u" ]] ; then 1426 if [[ $1 == "-i" ]] || [[ $1 == "-u" ]] ; then
1441 local op=$1; shift 1427 local op=$1; shift
1442 ls=" $(find "$1" -name '*.po' -printf '%f ') "; shift 1428 ls=" $(find "$1" -name '*.po' -exec basename {} \;) "; shift
1443 local d f 1429 local d f
1444 for d in "$@" ; do 1430 for d in "$@" ; do
1445 if [[ ${op} == "-u" ]] ; then 1431 if [[ ${op} == "-u" ]] ; then
1446 newls=${ls} 1432 newls=${ls}
1447 else 1433 else
1448 newls="" 1434 newls=""
1449 fi 1435 fi
1450 for f in $(find "$d" -name '*.po' -printf '%f ') ; do 1436 for f in $(find "$d" -name '*.po' -exec basename {} \;) ; do
1451 if [[ ${op} == "-i" ]] ; then 1437 if [[ ${op} == "-i" ]] ; then
1452 [[ ${ls/ ${f} /} != ${ls} ]] && newls="${newls} ${f}" 1438 [[ ${ls/ ${f} /} != ${ls} ]] && newls="${newls} ${f}"
1453 else 1439 else
1454 [[ ${ls/ ${f} /} == ${ls} ]] && newls="${newls} ${f}" 1440 [[ ${ls/ ${f} /} == ${ls} ]] && newls="${newls} ${f}"
1455 fi 1441 fi
1511 1497
1512# Jeremy Huddleston <eradicator@gentoo.org>: 1498# Jeremy Huddleston <eradicator@gentoo.org>:
1513# preserve_old_lib /path/to/libblah.so.0 1499# preserve_old_lib /path/to/libblah.so.0
1514# preserve_old_lib_notify /path/to/libblah.so.0 1500# preserve_old_lib_notify /path/to/libblah.so.0
1515# 1501#
1516# These functions are useful when a lib in your package changes --soname. Such 1502# These functions are useful when a lib in your package changes --library. Such
1517# an example might be from libogg.so.0 to libogg.so.1. Removing libogg.so.0 1503# an example might be from libogg.so.0 to libogg.so.1. Removing libogg.so.0
1518# would break packages that link against it. Most people get around this 1504# would break packages that link against it. Most people get around this
1519# by using the portage SLOT mechanism, but that is not always a relevant 1505# by using the portage SLOT mechanism, but that is not always a relevant
1520# solution, so instead you can add the following to your ebuilds: 1506# solution, so instead you can add the following to your ebuilds:
1521# 1507#
1552 1538
1553 ewarn "An old version of an installed library was detected on your system." 1539 ewarn "An old version of an installed library was detected on your system."
1554 ewarn "In order to avoid breaking packages that link against it, this older version" 1540 ewarn "In order to avoid breaking packages that link against it, this older version"
1555 ewarn "is not being removed. In order to make full use of this newer version," 1541 ewarn "is not being removed. In order to make full use of this newer version,"
1556 ewarn "you will need to execute the following command:" 1542 ewarn "you will need to execute the following command:"
1557 ewarn " revdep-rebuild --soname ${SONAME}" 1543 ewarn " revdep-rebuild --library ${SONAME}"
1558 ewarn 1544 ewarn
1559 ewarn "After doing that, you can safely remove ${LIB}" 1545 ewarn "After doing that, you can safely remove ${LIB}"
1560 ewarn "Note: 'emerge gentoolkit' to get revdep-rebuild" 1546 ewarn "Note: 'emerge gentoolkit' to get revdep-rebuild"
1561 fi 1547 fi
1562} 1548}

Legend:
Removed from v.1.223  
changed lines
  Added in v.1.229

  ViewVC Help
Powered by ViewVC 1.1.20