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

Diff of /eclass/eutils.eclass

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

Revision 1.340 Revision 1.349
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.340 2010/03/07 03:00:08 vapier Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v 1.349 2010/08/19 21:32:26 vapier 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
59 59
60epause() { 60epause() {
61 ewarn "QA Notice: epause is not defined in EAPI=${EAPI}, please file a bug at http://bugs.gentoo.org" 61 ewarn "QA Notice: epause is not defined in EAPI=${EAPI}, please file a bug at http://bugs.gentoo.org"
62} 62}
63 63
64fi
65
66# @FUNCTION: eqawarn
67# @USAGE: [message]
68# @DESCRIPTION:
69# Proxy to einfo for package managers that don't provide eqawarn and use the PM
70# implementation if available.
71if ! declare -F eqawarn >/dev/null ; then
72 eqawarn() {
73 einfo "$@"
74 }
64fi 75fi
65 76
66# @FUNCTION: ecvs_clean 77# @FUNCTION: ecvs_clean
67# @USAGE: [list of dirs] 78# @USAGE: [list of dirs]
68# @DESCRIPTION: 79# @DESCRIPTION:
422 EPATCH_SOURCE=${EPATCH_SOURCE} \ 433 EPATCH_SOURCE=${EPATCH_SOURCE} \
423 EPATCH_SUFFIX="patch" \ 434 EPATCH_SUFFIX="patch" \
424 EPATCH_FORCE="yes" \ 435 EPATCH_FORCE="yes" \
425 EPATCH_MULTI_MSG="Applying user patches from ${EPATCH_SOURCE} ..." \ 436 EPATCH_MULTI_MSG="Applying user patches from ${EPATCH_SOURCE} ..." \
426 epatch 437 epatch
427 break 438 return 0
428 fi 439 fi
429 done 440 done
441 return 1
430} 442}
431 443
432# @FUNCTION: emktemp 444# @FUNCTION: emktemp
433# @USAGE: [temp dir] 445# @USAGE: [temp dir]
434# @DESCRIPTION: 446# @DESCRIPTION:
706 fi 718 fi
707 ;; 719 ;;
708 720
709 *) 721 *)
710 if [[ -z $@ ]] ; then 722 if [[ -z $@ ]] ; then
711 useradd ${opts} \ 723 useradd -r ${opts} \
712 -c "added by portage for ${PN}" \ 724 -c "added by portage for ${PN}" \
713 ${euser} \ 725 ${euser} \
714 || die "enewuser failed" 726 || die "enewuser failed"
715 else 727 else
716 einfo " - Extra: $@" 728 einfo " - Extra: $@"
717 useradd ${opts} "$@" \ 729 useradd -r ${opts} "$@" \
718 ${euser} \ 730 ${euser} \
719 || die "enewuser failed" 731 || die "enewuser failed"
720 fi 732 fi
721 ;; 733 ;;
722 esac 734 esac
835 esac 847 esac
836 groupadd -g ${egid} ${egroup} || die "enewgroup failed" 848 groupadd -g ${egid} ${egroup} || die "enewgroup failed"
837 ;; 849 ;;
838 850
839 *) 851 *)
852 # We specify -r so that we get a GID in the system range from login.defs
840 groupadd ${opts} ${egroup} || die "enewgroup failed" 853 groupadd -r ${opts} ${egroup} || die "enewgroup failed"
841 ;; 854 ;;
842 esac 855 esac
843 export SANDBOX_ON="${oldsandbox}" 856 export SANDBOX_ON="${oldsandbox}"
844} 857}
845 858
856 869
857# Make a desktop file ! 870# Make a desktop file !
858# Great for making those icons in kde/gnome startmenu ! 871# Great for making those icons in kde/gnome startmenu !
859# Amaze your friends ! Get the women ! Join today ! 872# Amaze your friends ! Get the women ! Join today !
860# 873#
861# make_desktop_entry(<command>, [name], [icon], [type], [path]) 874# make_desktop_entry(<command>, [name], [icon], [type], [fields])
862# 875#
863# binary: what command does the app run with ? 876# binary: what command does the app run with ?
864# name: the name that will show up in the menu 877# name: the name that will show up in the menu
865# icon: give your little like a pretty little icon ... 878# icon: give your little like a pretty little icon ...
866# this can be relative (to /usr/share/pixmaps) or 879# this can be relative (to /usr/share/pixmaps) or
867# a full path to an icon 880# a full path to an icon
868# type: what kind of application is this ? for categories: 881# type: what kind of application is this ? for categories:
869# http://standards.freedesktop.org/menu-spec/latest/apa.html 882# http://standards.freedesktop.org/menu-spec/latest/apa.html
870# path: if your app needs to startup in a specific dir 883# fields: extra fields to append to the desktop file; a printf string
871make_desktop_entry() { 884make_desktop_entry() {
872 [[ -z $1 ]] && eerror "make_desktop_entry: You must specify the executable" && return 1 885 [[ -z $1 ]] && die "make_desktop_entry: You must specify the executable"
873 886
874 local exec=${1} 887 local exec=${1}
875 local name=${2:-${PN}} 888 local name=${2:-${PN}}
876 local icon=${3:-${PN}} 889 local icon=${3:-${PN}}
877 local type=${4} 890 local type=${4}
878 local path=${5} 891 local fields=${5}
879 892
880 if [[ -z ${type} ]] ; then 893 if [[ -z ${type} ]] ; then
881 local catmaj=${CATEGORY%%-*} 894 local catmaj=${CATEGORY%%-*}
882 local catmin=${CATEGORY##*-} 895 local catmin=${CATEGORY##*-}
883 case ${catmaj} in 896 case ${catmaj} in
1026 TryExec=${exec%% *} 1039 TryExec=${exec%% *}
1027 Icon=${icon} 1040 Icon=${icon}
1028 Categories=${type} 1041 Categories=${type}
1029 EOF 1042 EOF
1030 1043
1031 [[ ${path} ]] && echo "Path=${path}" >> "${desktop}" 1044 if [[ ${fields:-=} != *=* ]] ; then
1045 # 5th arg used to be value to Path=
1046 ewarn "make_desktop_entry: update your 5th arg to read Path=${fields}"
1047 fields="Path=${fields}"
1048 fi
1049 [[ -n ${fields} ]] && printf '%b\n' "${fields}" >> "${desktop}"
1032 1050
1033 ( 1051 (
1034 # wrap the env here so that the 'insinto' call 1052 # wrap the env here so that the 'insinto' call
1035 # doesn't corrupt the env of the caller 1053 # doesn't corrupt the env of the caller
1036 insinto /usr/share/applications 1054 insinto /usr/share/applications
1322 [[ -z ${src} ]] && die "Could not locate source for '${src_input}'" 1340 [[ -z ${src} ]] && die "Could not locate source for '${src_input}'"
1323 1341
1324 local shrtsrc=$(basename "${src}") 1342 local shrtsrc=$(basename "${src}")
1325 echo ">>> Unpacking ${shrtsrc} to ${PWD}" 1343 echo ">>> Unpacking ${shrtsrc} to ${PWD}"
1326 if [[ -z ${skip} ]] ; then 1344 if [[ -z ${skip} ]] ; then
1327 local ver=$(grep -a '#.*Makeself' "${src}" | awk '{print $NF}') 1345 local ver=$(grep -m1 -a '#.*Makeself' "${src}" | awk '{print $NF}')
1328 local skip=0 1346 local skip=0
1329 exe=tail 1347 exe=tail
1330 case ${ver} in 1348 case ${ver} in
1331 1.5.*|1.6.0-nv) # tested 1.5.{3,4,5} ... guessing 1.5.x series is same 1349 1.5.*|1.6.0-nv) # tested 1.5.{3,4,5} ... guessing 1.5.x series is same
1332 skip=$(grep -a ^skip= "${src}" | cut -d= -f2) 1350 skip=$(grep -a ^skip= "${src}" | cut -d= -f2)
1334 2.0|2.0.1) 1352 2.0|2.0.1)
1335 skip=$(grep -a ^$'\t'tail "${src}" | awk '{print $2}' | cut -b2-) 1353 skip=$(grep -a ^$'\t'tail "${src}" | awk '{print $2}' | cut -b2-)
1336 ;; 1354 ;;
1337 2.1.1) 1355 2.1.1)
1338 skip=$(grep -a ^offset= "${src}" | awk '{print $2}' | cut -b2-) 1356 skip=$(grep -a ^offset= "${src}" | awk '{print $2}' | cut -b2-)
1339 let skip="skip + 1" 1357 (( skip++ ))
1340 ;; 1358 ;;
1341 2.1.2) 1359 2.1.2)
1342 skip=$(grep -a ^offset= "${src}" | awk '{print $3}' | head -n 1) 1360 skip=$(grep -a ^offset= "${src}" | awk '{print $3}' | head -n 1)
1343 let skip="skip + 1" 1361 (( skip++ ))
1344 ;; 1362 ;;
1345 2.1.3) 1363 2.1.3)
1346 skip=`grep -a ^offset= "${src}" | awk '{print $3}'` 1364 skip=`grep -a ^offset= "${src}" | awk '{print $3}'`
1347 let skip="skip + 1" 1365 (( skip++ ))
1348 ;; 1366 ;;
1349 2.1.4|2.1.5) 1367 2.1.4|2.1.5)
1350 skip=$(grep -a offset=.*head.*wc "${src}" | awk '{print $3}' | head -n 1) 1368 skip=$(grep -a offset=.*head.*wc "${src}" | awk '{print $3}' | head -n 1)
1351 skip=$(head -n ${skip} "${src}" | wc -c) 1369 skip=$(head -n ${skip} "${src}" | wc -c)
1352 exe="dd" 1370 exe="dd"
1361 esac 1379 esac
1362 debug-print "Detected Makeself version ${ver} ... using ${skip} as offset" 1380 debug-print "Detected Makeself version ${ver} ... using ${skip} as offset"
1363 fi 1381 fi
1364 case ${exe} in 1382 case ${exe} in
1365 tail) exe="tail -n +${skip} '${src}'";; 1383 tail) exe="tail -n +${skip} '${src}'";;
1366 dd) exe="dd ibs=${skip} skip=1 obs=1024 conv=sync if='${src}'";; 1384 dd) exe="dd ibs=${skip} skip=1 if='${src}'";;
1367 *) die "makeself cant handle exe '${exe}'" 1385 *) die "makeself cant handle exe '${exe}'"
1368 esac 1386 esac
1369 1387
1370 # lets grab the first few bytes of the file to figure out what kind of archive it is 1388 # lets grab the first few bytes of the file to figure out what kind of archive it is
1371 local tmpfile=$(emktemp) 1389 local tmpfile=$(emktemp)
1504 export CDROM_ROOT=${CD_ROOT_1:-${CD_ROOT}} 1522 export CDROM_ROOT=${CD_ROOT_1:-${CD_ROOT}}
1505 einfo "Found CD #${CDROM_CURRENT_CD} root at ${CDROM_ROOT}" 1523 einfo "Found CD #${CDROM_CURRENT_CD} root at ${CDROM_ROOT}"
1506 export CDROM_SET=-1 1524 export CDROM_SET=-1
1507 for f in ${CDROM_CHECK_1//:/ } ; do 1525 for f in ${CDROM_CHECK_1//:/ } ; do
1508 ((++CDROM_SET)) 1526 ((++CDROM_SET))
1509 [[ -e ${CD_ROOT}/${f} ]] && break 1527 [[ -e ${CDROM_ROOT}/${f} ]] && break
1510 done 1528 done
1511 export CDROM_MATCH=${f} 1529 export CDROM_MATCH=${f}
1512 return 1530 return
1513 fi 1531 fi
1514 1532

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

  ViewVC Help
Powered by ViewVC 1.1.20