1 |
vapier 13/12/03 08:09:50 |
2 |
|
3 |
Modified: eutils.eclass |
4 |
Log: |
5 |
add prefix support by Christoph Junghans #485438 |
6 |
|
7 |
Revision Changes Path |
8 |
1.428 eclass/eutils.eclass |
9 |
|
10 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/eutils.eclass?rev=1.428&view=markup |
11 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/eutils.eclass?rev=1.428&content-type=text/plain |
12 |
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/eutils.eclass?r1=1.427&r2=1.428 |
13 |
|
14 |
Index: eutils.eclass |
15 |
=================================================================== |
16 |
RCS file: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v |
17 |
retrieving revision 1.427 |
18 |
retrieving revision 1.428 |
19 |
diff -u -r1.427 -r1.428 |
20 |
--- eutils.eclass 14 Sep 2013 19:00:10 -0000 1.427 |
21 |
+++ eutils.eclass 3 Dec 2013 08:09:49 -0000 1.428 |
22 |
@@ -1,6 +1,6 @@ |
23 |
# Copyright 1999-2013 Gentoo Foundation |
24 |
# Distributed under the terms of the GNU General Public License v2 |
25 |
-# $Header: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v 1.427 2013/09/14 19:00:10 mgorny Exp $ |
26 |
+# $Header: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v 1.428 2013/12/03 08:09:49 vapier Exp $ |
27 |
|
28 |
# @ECLASS: eutils.eclass |
29 |
# @MAINTAINER: |
30 |
@@ -948,6 +948,14 @@ |
31 |
) || die "installing desktop file failed" |
32 |
} |
33 |
|
34 |
+# @FUNCTION: _eutils_eprefix_init |
35 |
+# @INTERNAL |
36 |
+# @DESCRIPTION: |
37 |
+# Initialized prefix variables for EAPI<3. |
38 |
+_eutils_eprefix_init() { |
39 |
+ has "${EAPI:-0}" 0 1 2 && : ${ED:=${D}} ${EPREFIX:=} ${EROOT:=${ROOT}} |
40 |
+} |
41 |
+ |
42 |
# @FUNCTION: validate_desktop_entries |
43 |
# @USAGE: [directories] |
44 |
# @MAINTAINER: |
45 |
@@ -955,11 +963,12 @@ |
46 |
# @DESCRIPTION: |
47 |
# Validate desktop entries using desktop-file-utils |
48 |
validate_desktop_entries() { |
49 |
- if [[ -x /usr/bin/desktop-file-validate ]] ; then |
50 |
+ _eutils_eprefix_init |
51 |
+ if [[ -x "${EPREFIX}"/usr/bin/desktop-file-validate ]] ; then |
52 |
einfo "Checking desktop entry validity" |
53 |
local directories="" |
54 |
for d in /usr/share/applications $@ ; do |
55 |
- [[ -d ${D}${d} ]] && directories="${directories} ${D}${d}" |
56 |
+ [[ -d ${ED}${d} ]] && directories="${directories} ${ED}${d}" |
57 |
done |
58 |
if [[ -n ${directories} ]] ; then |
59 |
for FILE in $(find ${directories} -name "*\.desktop" \ |
60 |
@@ -967,7 +976,7 @@ |
61 |
do |
62 |
local temp=$(desktop-file-validate ${FILE} | grep -v "warning:" | \ |
63 |
sed -e "s|error: ||" -e "s|${FILE}:|--|g" ) |
64 |
- [[ -n $temp ]] && elog ${temp/--/${FILE/${D}/}:} |
65 |
+ [[ -n $temp ]] && elog ${temp/--/${FILE/${ED}/}:} |
66 |
done |
67 |
fi |
68 |
echo "" |
69 |
@@ -1227,6 +1236,7 @@ |
70 |
# solution, so instead you can call this from pkg_preinst. See also the |
71 |
# preserve_old_lib_notify function. |
72 |
preserve_old_lib() { |
73 |
+ _eutils_eprefix_init |
74 |
if [[ ${EBUILD_PHASE} != "preinst" ]] ; then |
75 |
eerror "preserve_old_lib() must be called from pkg_preinst() only" |
76 |
die "Invalid preserve_old_lib() usage" |
77 |
@@ -1238,11 +1248,11 @@ |
78 |
|
79 |
local lib dir |
80 |
for lib in "$@" ; do |
81 |
- [[ -e ${ROOT}/${lib} ]] || continue |
82 |
+ [[ -e ${EROOT}/${lib} ]] || continue |
83 |
dir=${lib%/*} |
84 |
dodir ${dir} || die "dodir ${dir} failed" |
85 |
- cp "${ROOT}"/${lib} "${D}"/${lib} || die "cp ${lib} failed" |
86 |
- touch "${D}"/${lib} |
87 |
+ cp "${EROOT}"/${lib} "${ED}"/${lib} || die "cp ${lib} failed" |
88 |
+ touch "${ED}"/${lib} |
89 |
done |
90 |
} |
91 |
|
92 |
@@ -1259,9 +1269,11 @@ |
93 |
# let portage worry about it |
94 |
has preserve-libs ${FEATURES} && return 0 |
95 |
|
96 |
+ _eutils_eprefix_init |
97 |
+ |
98 |
local lib notice=0 |
99 |
for lib in "$@" ; do |
100 |
- [[ -e ${ROOT}/${lib} ]] || continue |
101 |
+ [[ -e ${EROOT}/${lib} ]] || continue |
102 |
if [[ ${notice} -eq 0 ]] ; then |
103 |
notice=1 |
104 |
ewarn "Old versions of installed libraries were detected on your system." |
105 |
@@ -1297,6 +1309,7 @@ |
106 |
# Remember that this function isn't terribly intelligent so order of optional |
107 |
# flags matter. |
108 |
built_with_use() { |
109 |
+ _eutils_eprefix_init |
110 |
local hidden="no" |
111 |
if [[ $1 == "--hidden" ]] ; then |
112 |
hidden="yes" |
113 |
@@ -1320,8 +1333,8 @@ |
114 |
[[ -z ${PKG} ]] && die "Unable to resolve $1 to an installed package" |
115 |
shift |
116 |
|
117 |
- local USEFILE=${ROOT}/var/db/pkg/${PKG}/USE |
118 |
- local IUSEFILE=${ROOT}/var/db/pkg/${PKG}/IUSE |
119 |
+ local USEFILE=${EROOT}/var/db/pkg/${PKG}/USE |
120 |
+ local IUSEFILE=${EROOT}/var/db/pkg/${PKG}/IUSE |
121 |
|
122 |
# if the IUSE file doesn't exist, the read will error out, we need to handle |
123 |
# this gracefully |
124 |
@@ -1401,24 +1414,31 @@ |
125 |
# first optionally setting LD_LIBRARY_PATH to the colon-delimited |
126 |
# libpaths followed by optionally changing directory to chdir. |
127 |
make_wrapper() { |
128 |
+ _eutils_eprefix_init |
129 |
local wrapper=$1 bin=$2 chdir=$3 libdir=$4 path=$5 |
130 |
local tmpwrapper=$(emktemp) |
131 |
|
132 |
( |
133 |
echo '#!/bin/sh' |
134 |
- [[ -n ${chdir} ]] && printf 'cd "%s"\n' "${chdir}" |
135 |
+ [[ -n ${chdir} ]] && printf 'cd "%s"\n' "${EPREFIX}${chdir}" |
136 |
if [[ -n ${libdir} ]] ; then |
137 |
+ local var |
138 |
+ if [[ ${CHOST} == *-darwin* ]] ; then |
139 |
+ var=DYLD_LIBRARY_PATH |
140 |
+ else |
141 |
+ var=LD_LIBRARY_PATH |
142 |
+ fi |
143 |
cat <<-EOF |
144 |
- if [ "\${LD_LIBRARY_PATH+set}" = "set" ] ; then |
145 |
- export LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}:${libdir}" |
146 |
+ if [ "\${${var}+set}" = "set" ] ; then |
147 |
+ export ${var}="\${${var}}:${EPREFIX}${libdir}" |
148 |
else |
149 |
- export LD_LIBRARY_PATH="${libdir}" |
150 |
+ export ${var}="${EPREFIX}${libdir}" |
151 |
fi |
152 |
EOF |
153 |
fi |
154 |
# We don't want to quote ${bin} so that people can pass complex |
155 |
# things as ${bin} ... "./someprog --args" |
156 |
- printf 'exec %s "$@"\n' "${bin}" |
157 |
+ printf 'exec %s "$@"\n' "${bin/#\//${EPREFIX}\/}" |
158 |
) > "${tmpwrapper}" |
159 |
chmod go+rx "${tmpwrapper}" |
160 |
|
161 |
@@ -1529,6 +1549,7 @@ |
162 |
debug-print-function ${FUNCNAME} "$@" |
163 |
|
164 |
local removing_all removing_modules opt |
165 |
+ _eutils_eprefix_init |
166 |
for opt; do |
167 |
case "${opt}" in |
168 |
--all) |
169 |
@@ -1638,7 +1659,7 @@ |
170 |
einfo "Removing unnecessary ${f#${D%/}} (${reason})" |
171 |
queue+=( "${f}" ) |
172 |
fi |
173 |
- done < <(find "${D}" -xtype f -name '*.la' -print0) |
174 |
+ done < <(find "${ED}" -xtype f -name '*.la' -print0) |
175 |
|
176 |
if [[ ${queue[@]} ]]; then |
177 |
rm -f "${queue[@]}" |