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

Diff of /eclass/eutils.eclass

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

Revision 1.237 Revision 1.244
1# Copyright 1999-2006 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.237 2006/06/04 15:18:12 vapier Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v 1.244 2006/07/06 23:53:57 vapier Exp $
4# 4#
5# This eclass is for general purpose functions that most ebuilds 5# This eclass is for general purpose functions that most ebuilds
6# have to implement themselves. 6# have to implement themselves.
7# 7#
8# NB: If you add anything, please comment it! 8# NB: If you add anything, please comment it!
9#
10# Maintainer: see each individual function, base-system@gentoo.org as default
9 11
10inherit multilib portability 12inherit multilib portability
11
12DEPEND="!bootstrap? ( sys-devel/patch )"
13RDEPEND=""
14# sys-apps/shadow is needed for useradd, etc, bug #94745.
15 13
16DESCRIPTION="Based on the ${ECLASS} eclass" 14DESCRIPTION="Based on the ${ECLASS} eclass"
17 15
18# Wait for the supplied number of seconds. If no argument is supplied, defaults 16# Wait for the supplied number of seconds. If no argument is supplied, defaults
19# to five seconds. If the EPAUSE_IGNORE env var is set, don't wait. If we're not 17# to five seconds. If the EPAUSE_IGNORE env var is set, don't wait. If we're not
765 763
766# Make a desktop file ! 764# Make a desktop file !
767# Great for making those icons in kde/gnome startmenu ! 765# Great for making those icons in kde/gnome startmenu !
768# Amaze your friends ! Get the women ! Join today ! 766# Amaze your friends ! Get the women ! Join today !
769# 767#
770# make_desktop_entry(<binary>, [name], [icon], [type], [path]) 768# make_desktop_entry(<command>, [name], [icon], [type], [path])
771# 769#
772# binary: what binary does the app run with ? 770# binary: what command does the app run with ?
773# name: the name that will show up in the menu 771# name: the name that will show up in the menu
774# icon: give your little like a pretty little icon ... 772# icon: give your little like a pretty little icon ...
775# this can be relative (to /usr/share/pixmaps) or 773# this can be relative (to /usr/share/pixmaps) or
776# a full path to an icon 774# a full path to an icon
777# type: what kind of application is this ? for categories: 775# type: what kind of application is this ? for categories:
898Version=0.9.2 896Version=0.9.2
899Name=${name} 897Name=${name}
900Type=Application 898Type=Application
901Comment=${DESCRIPTION} 899Comment=${DESCRIPTION}
902Exec=${exec} 900Exec=${exec}
903TryExec=${exec} 901TryExec=${exec%% *}
904Path=${path} 902Path=${path}
905Icon=${icon} 903Icon=${icon}
906Categories=Application;${type};" > "${desktop}" 904Categories=Application;${type};" > "${desktop}"
907 905
908 ( 906 (
1111 if [[ -z ${skip} ]] ; then 1109 if [[ -z ${skip} ]] ; then
1112 local ver=$(grep -a '#.*Makeself' "${src}" | awk '{print $NF}') 1110 local ver=$(grep -a '#.*Makeself' "${src}" | awk '{print $NF}')
1113 local skip=0 1111 local skip=0
1114 exe=tail 1112 exe=tail
1115 case ${ver} in 1113 case ${ver} in
1116 1.5.*) # tested 1.5.{3,4,5} ... guessing 1.5.x series is same 1114 1.5.*|1.6.0-nv) # tested 1.5.{3,4,5} ... guessing 1.5.x series is same
1117 skip=$(grep -a ^skip= "${src}" | cut -d= -f2) 1115 skip=$(grep -a ^skip= "${src}" | cut -d= -f2)
1118 ;; 1116 ;;
1119 2.0|2.0.1) 1117 2.0|2.0.1)
1120 skip=$(grep -a ^$'\t'tail "${src}" | awk '{print $2}' | cut -b2-) 1118 skip=$(grep -a ^$'\t'tail "${src}" | awk '{print $2}' | cut -b2-)
1121 ;; 1119 ;;
1244# and when the function returns, you can assume that the cd has been 1242# and when the function returns, you can assume that the cd has been
1245# found at CDROM_ROOT. 1243# found at CDROM_ROOT.
1246# 1244#
1247# normally the cdrom functions will refer to the cds as 'cd #1', 'cd #2', 1245# normally the cdrom functions will refer to the cds as 'cd #1', 'cd #2',
1248# etc... if you want to give the cds better names, then just export 1246# etc... if you want to give the cds better names, then just export
1249# the CDROM_NAME_X variables before calling cdrom_get_cds(). 1247# the appropriate CDROM_NAME variable before calling cdrom_get_cds().
1248# - CDROM_NAME="fooie cd" - for when you only want 1 cd
1249# - CDROM_NAME_1="install cd" - for when you want more than 1 cd
1250# CDROM_NAME_2="data cd"
1251# - CDROM_NAME_SET=( "install cd" "data cd" ) - short hand for CDROM_NAME_#
1250# 1252#
1251# for those multi cd ebuilds, see the cdrom_load_next_cd() below. 1253# for those multi cd ebuilds, see the cdrom_load_next_cd() below.
1252# 1254#
1253# Usage: cdrom_get_cds <file on cd1> [file on cd2] [file on cd3] [...] 1255# Usage: cdrom_get_cds <file on cd1> [file on cd2] [file on cd3] [...]
1254# - this will attempt to locate a cd based upon a file that is on 1256# - this will attempt to locate a cd based upon a file that is on
1305 echo 1307 echo
1306 einfo "For example:" 1308 einfo "For example:"
1307 einfo "export CD_ROOT=/mnt/cdrom" 1309 einfo "export CD_ROOT=/mnt/cdrom"
1308 echo 1310 echo
1309 else 1311 else
1312 if [[ -n ${CDROM_NAME_SET} ]] ; then
1313 # Translate the CDROM_NAME_SET array into CDROM_NAME_#
1314 cdcnt=0
1315 while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]] ; do
1316 ((++cdcnt))
1317 export CDROM_NAME_${cdcnt}="${CDROM_NAME_SET[$((${cdcnt}-1))]}"
1318 done
1319 fi
1320
1310 einfo "This package will need access to ${CDROM_TOTAL_CDS} cds." 1321 einfo "This package will need access to ${CDROM_TOTAL_CDS} cds."
1311 cdcnt=0 1322 cdcnt=0
1312 while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]] ; do 1323 while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]] ; do
1313 ((++cdcnt)) 1324 ((++cdcnt))
1314 var="CDROM_NAME_${cdcnt}" 1325 var="CDROM_NAME_${cdcnt}"
1436# The -i builds a list of po files found in all the 1447# The -i builds a list of po files found in all the
1437# directories and uses the intersection of the lists. 1448# directories and uses the intersection of the lists.
1438# The -u builds a list of po files found in all the 1449# The -u builds a list of po files found in all the
1439# directories and uses the union of the lists. 1450# directories and uses the union of the lists.
1440strip-linguas() { 1451strip-linguas() {
1441 local ls newls 1452 local ls newls nols
1442 if [[ $1 == "-i" ]] || [[ $1 == "-u" ]] ; then 1453 if [[ $1 == "-i" ]] || [[ $1 == "-u" ]] ; then
1443 local op=$1; shift 1454 local op=$1; shift
1444 ls=$(find "$1" -name '*.po' -exec basename {} .po \;); shift 1455 ls=$(find "$1" -name '*.po' -exec basename {} .po \;); shift
1445 local d f 1456 local d f
1446 for d in "$@" ; do 1457 for d in "$@" ; do
1460 done 1471 done
1461 else 1472 else
1462 ls="$@" 1473 ls="$@"
1463 fi 1474 fi
1464 1475
1476 nols=""
1465 newls="" 1477 newls=""
1466 for f in ${LINGUAS} ; do 1478 for f in ${LINGUAS} ; do
1467 if hasq ${f} ${ls} ; then 1479 if hasq ${f} ${ls} ; then
1468 newls="${newls} ${f}" 1480 newls="${newls} ${f}"
1469 else 1481 else
1470 ewarn "Sorry, but ${PN} does not support the ${f} LINGUA" 1482 nols="${nols} ${f}"
1471 fi 1483 fi
1472 done 1484 done
1485 [[ -n ${nols} ]] \
1486 && ewarn "Sorry, but ${PN} does not support the LINGUAs:" ${nols}
1473 export LINGUAS=${newls:1} 1487 export LINGUAS=${newls:1}
1474} 1488}
1475 1489
1476# moved from kernel.eclass since they are generally useful outside of 1490# moved from kernel.eclass since they are generally useful outside of
1477# kernel.eclass -iggy (20041002) 1491# kernel.eclass -iggy (20041002)

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

  ViewVC Help
Powered by ViewVC 1.1.20