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

Diff of /eclass/eutils.eclass

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

Revision 1.227 Revision 1.237
1# Copyright 1999-2005 Gentoo Foundation 1# Copyright 1999-2006 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.227 2006/03/10 18:05:39 carlo Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v 1.237 2006/06/04 15:18:12 vapier Exp $
4#
5# Author: Martin Schlemmer <azarah@gentoo.org>
6# 4#
7# This eclass is for general purpose functions that most ebuilds 5# This eclass is for general purpose functions that most ebuilds
8# have to implement themselves. 6# have to implement themselves.
9# 7#
10# NB: If you add anything, please comment it! 8# NB: If you add anything, please comment it!
11 9
12inherit multilib portability 10inherit multilib portability
13 11
14DEPEND="!bootstrap? ( sys-devel/patch )" 12DEPEND="!bootstrap? ( sys-devel/patch )"
13RDEPEND=""
15# sys-apps/shadow is needed for useradd, etc, bug #94745. 14# sys-apps/shadow is needed for useradd, etc, bug #94745.
16 15
17DESCRIPTION="Based on the ${ECLASS} eclass" 16DESCRIPTION="Based on the ${ECLASS} eclass"
18 17
19# Wait for the supplied number of seconds. If no argument is supplied, defaults 18# Wait for the supplied number of seconds. If no argument is supplied, defaults
88# Default extension for patches 87# Default extension for patches
89EPATCH_SUFFIX="patch.bz2" 88EPATCH_SUFFIX="patch.bz2"
90# Default options for patch 89# Default options for patch
91# Set -g0 to keep RCS, ClearCase, Perforce and SCCS happy. Bug #24571 90# Set -g0 to keep RCS, ClearCase, Perforce and SCCS happy. Bug #24571
92# Set --no-backup-if-mismatch so we don't leave '.orig' files behind. 91# Set --no-backup-if-mismatch so we don't leave '.orig' files behind.
92# Set -E to automatically remove empty files.
93EPATCH_OPTS="-g0 --no-backup-if-mismatch" 93EPATCH_OPTS="-g0 -E --no-backup-if-mismatch"
94# List of patches not to apply. Not this is only file names, 94# List of patches not to apply. Not this is only file names,
95# and not the full path .. 95# and not the full path ..
96EPATCH_EXCLUDE="" 96EPATCH_EXCLUDE=""
97# Change the printed message for a single patch. 97# Change the printed message for a single patch.
98EPATCH_SINGLE_MSG="" 98EPATCH_SINGLE_MSG=""
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"
448# shell: /bin/false 435# shell: /bin/false
449# homedir: /dev/null 436# homedir: /dev/null
450# groups: none 437# groups: none
451# extra: comment of 'added by portage for ${PN}' 438# extra: comment of 'added by portage for ${PN}'
452enewuser() { 439enewuser() {
440 case ${EBUILD_PHASE} in
441 unpack|compile|test|install)
442 eerror "'enewuser()' called from '${EBUILD_PHASE}()' which is not a pkg_* function."
443 eerror "Package fails at QA and at life. Please file a bug."
444 die "Bad package! enewuser is only for use in pkg_* functions!"
445 esac
446
453 # get the username 447 # get the username
454 local euser=$1; shift 448 local euser=$1; shift
455 if [[ -z ${euser} ]] ; then 449 if [[ -z ${euser} ]] ; then
456 eerror "No username specified !" 450 eerror "No username specified !"
457 die "Cannot call enewuser without a username" 451 die "Cannot call enewuser without a username"
643# Default values if you do not specify any: 637# Default values if you do not specify any:
644# groupname: REQUIRED ! 638# groupname: REQUIRED !
645# gid: next available (see groupadd(8)) 639# gid: next available (see groupadd(8))
646# extra: none 640# extra: none
647enewgroup() { 641enewgroup() {
642 case ${EBUILD_PHASE} in
643 unpack|compile|test|install)
644 eerror "'enewgroup()' called from '${EBUILD_PHASE}()' which is not a pkg_* function."
645 eerror "Package fails at QA and at life. Please file a bug."
646 die "Bad package! enewgroup is only for use in pkg_* functions!"
647 esac
648
648 # get the group 649 # get the group
649 local egroup="$1"; shift 650 local egroup="$1"; shift
650 if [ -z "${egroup}" ] 651 if [ -z "${egroup}" ]
651 then 652 then
652 eerror "No group specified !" 653 eerror "No group specified !"
888 local desktop_name="${PN}" 889 local desktop_name="${PN}"
889 else 890 else
890 local desktop_name="${PN}-${SLOT}" 891 local desktop_name="${PN}-${SLOT}"
891 fi 892 fi
892 local desktop=${T}/${exec%% *}-${desktop_name}.desktop 893 local desktop=${T}/${exec%% *}-${desktop_name}.desktop
894# local desktop=${T}/${exec%% *:-${desktop_name}}.desktop
893 895
894echo "[Desktop Entry] 896echo "[Desktop Entry]
895Encoding=UTF-8 897Encoding=UTF-8
896Version=0.9.2 898Version=0.9.2
897Name=${name} 899Name=${name}
898Type=Application 900Type=Application
899Comment=${DESCRIPTION} 901Comment=${DESCRIPTION}
900Exec=${exec} 902Exec=${exec}
903TryExec=${exec}
901Path=${path} 904Path=${path}
902Icon=${icon} 905Icon=${icon}
903Categories=Application;${type};" > "${desktop}" 906Categories=Application;${type};" > "${desktop}"
904 907
905 ( 908 (
1436# directories and uses the union of the lists. 1439# directories and uses the union of the lists.
1437strip-linguas() { 1440strip-linguas() {
1438 local ls newls 1441 local ls newls
1439 if [[ $1 == "-i" ]] || [[ $1 == "-u" ]] ; then 1442 if [[ $1 == "-i" ]] || [[ $1 == "-u" ]] ; then
1440 local op=$1; shift 1443 local op=$1; shift
1441 ls=" $(find "$1" -name '*.po' -exec basename {} \;) "; shift 1444 ls=$(find "$1" -name '*.po' -exec basename {} .po \;); shift
1442 local d f 1445 local d f
1443 for d in "$@" ; do 1446 for d in "$@" ; do
1444 if [[ ${op} == "-u" ]] ; then 1447 if [[ ${op} == "-u" ]] ; then
1445 newls=${ls} 1448 newls=${ls}
1446 else 1449 else
1447 newls="" 1450 newls=""
1448 fi 1451 fi
1449 for f in $(find "$d" -name '*.po' -exec basename {} \;) ; do 1452 for f in $(find "$d" -name '*.po' -exec basename {} .po \;) ; do
1450 if [[ ${op} == "-i" ]] ; then 1453 if [[ ${op} == "-i" ]] ; then
1451 [[ ${ls/ ${f} /} != ${ls} ]] && newls="${newls} ${f}" 1454 hasq ${f} ${ls} && newls="${newls} ${f}"
1452 else 1455 else
1453 [[ ${ls/ ${f} /} == ${ls} ]] && newls="${newls} ${f}" 1456 hasq ${f} ${ls} || newls="${newls} ${f}"
1454 fi 1457 fi
1455 done 1458 done
1456 ls=${newls} 1459 ls=${newls}
1457 done 1460 done
1458 ls=${ls//.po}
1459 else 1461 else
1460 ls=$@ 1462 ls="$@"
1461 fi 1463 fi
1462 1464
1463 ls=" ${ls} "
1464 newls="" 1465 newls=""
1465 for f in ${LINGUAS} ; do 1466 for f in ${LINGUAS} ; do
1466 if [[ ${ls/ ${f} /} != ${ls} ]] ; then 1467 if hasq ${f} ${ls} ; then
1467 newls="${newls} ${f}" 1468 newls="${newls} ${f}"
1468 else 1469 else
1469 ewarn "Sorry, but ${PN} does not support the ${f} LINGUA" 1470 ewarn "Sorry, but ${PN} does not support the ${f} LINGUA"
1470 fi 1471 fi
1471 done 1472 done
1472 if [[ -z ${newls} ]] ; then
1473 export LINGUAS=""
1474 else
1475 export LINGUAS=${newls:1} 1473 export LINGUAS=${newls:1}
1476 fi
1477} 1474}
1478 1475
1479# moved from kernel.eclass since they are generally useful outside of 1476# moved from kernel.eclass since they are generally useful outside of
1480# kernel.eclass -iggy (20041002) 1477# kernel.eclass -iggy (20041002)
1481 1478

Legend:
Removed from v.1.227  
changed lines
  Added in v.1.237

  ViewVC Help
Powered by ViewVC 1.1.20