Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: bin/
Date: Fri, 31 Aug 2012 01:49:48
Message-Id: 1346377750.bcf4ab871ededc3d535165757ba5597669e33dcb.zmedico@gentoo
1 commit: bcf4ab871ededc3d535165757ba5597669e33dcb
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Fri Aug 31 01:49:10 2012 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Fri Aug 31 01:49:10 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=bcf4ab87
7
8 EAPI 5: --host-root option for best/has_version
9
10 See bug #401239 and the PMS patch:
11 http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=25fb5fca6674215ea8aaa3d0ec3dd3df451eec07
12
13 ---
14 bin/phase-helpers.sh | 68 +++++++++++++++++++++++++++++++++++++++++---------
15 1 files changed, 56 insertions(+), 12 deletions(-)
16
17 diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh
18 index db1548e..6899488 100644
19 --- a/bin/phase-helpers.sh
20 +++ b/bin/phase-helpers.sh
21 @@ -632,28 +632,50 @@ _eapi5_apply_user_patches() {
22 }
23
24 # @FUNCTION: has_version
25 -# @USAGE: <DEPEND ATOM>
26 +# @USAGE: [--host-root] <DEPEND ATOM>
27 # @DESCRIPTION:
28 # Return true if given package is installed. Otherwise return false.
29 # Callers may override the ROOT variable in order to match packages from an
30 # alternative ROOT.
31 has_version() {
32
33 - local eroot
34 + local atom eroot host_root=false root=${ROOT}
35 + while [ $# -gt 0 ] ; do
36 + case "$1" in
37 + --host-root)
38 + host_root=true
39 + ;;
40 + *)
41 + [[ -n ${atom} ]] && die "${FUNCNAME[0]}: unused argument: $1"
42 + atom=$1
43 + ;;
44 + esac
45 + shift
46 + done
47 +
48 + if ${host_root} ; then
49 + case "${EAPI}" in
50 + 0|1|2|3|4|4-python|4-slot-abi)
51 + die "${FUNCNAME[0]}: option --host-root is not supported with EAPI ${EAPI}"
52 + ;;
53 + esac
54 + root=/
55 + fi
56 +
57 case "$EAPI" in
58 0|1|2)
59 [[ " ${FEATURES} " == *" force-prefix "* ]] && \
60 - eroot=${ROOT%/}${EPREFIX}/ || eroot=${ROOT}
61 + eroot=${root%/}${EPREFIX}/ || eroot=${root}
62 ;;
63 *)
64 - eroot=${ROOT%/}${EPREFIX}/
65 + eroot=${root%/}${EPREFIX}/
66 ;;
67 esac
68 if [[ -n $PORTAGE_IPC_DAEMON ]] ; then
69 - "$PORTAGE_BIN_PATH"/ebuild-ipc has_version "${eroot}" "$1"
70 + "$PORTAGE_BIN_PATH"/ebuild-ipc has_version "${eroot}" "${atom}"
71 else
72 PYTHONPATH=${PORTAGE_PYM_PATH}${PYTHONPATH:+:}${PYTHONPATH} \
73 - "${PORTAGE_PYTHON:-/usr/bin/python}" "${PORTAGE_BIN_PATH}/portageq" has_version "${eroot}" "$1"
74 + "${PORTAGE_PYTHON:-/usr/bin/python}" "${PORTAGE_BIN_PATH}/portageq" has_version "${eroot}" "${atom}"
75 fi
76 local retval=$?
77 case "${retval}" in
78 @@ -667,28 +689,50 @@ has_version() {
79 }
80
81 # @FUNCTION: best_version
82 -# @USAGE: <DEPEND ATOM>
83 +# @USAGE: [--host-root] <DEPEND ATOM>
84 # @DESCRIPTION:
85 # Returns the best/most-current match.
86 # Callers may override the ROOT variable in order to match packages from an
87 # alternative ROOT.
88 best_version() {
89
90 - local eroot
91 + local atom eroot host_root=false root=${ROOT}
92 + while [ $# -gt 0 ] ; do
93 + case "$1" in
94 + --host-root)
95 + host_root=true
96 + ;;
97 + *)
98 + [[ -n ${atom} ]] && die "${FUNCNAME[0]}: unused argument: $1"
99 + atom=$1
100 + ;;
101 + esac
102 + shift
103 + done
104 +
105 + if ${host_root} ; then
106 + case "${EAPI}" in
107 + 0|1|2|3|4|4-python|4-slot-abi)
108 + die "${FUNCNAME[0]}: option --host-root is not supported with EAPI ${EAPI}"
109 + ;;
110 + esac
111 + root=/
112 + fi
113 +
114 case "$EAPI" in
115 0|1|2)
116 [[ " ${FEATURES} " == *" force-prefix "* ]] && \
117 - eroot=${ROOT%/}${EPREFIX}/ || eroot=${ROOT}
118 + eroot=${root%/}${EPREFIX}/ || eroot=${root}
119 ;;
120 *)
121 - eroot=${ROOT%/}${EPREFIX}/
122 + eroot=${root%/}${EPREFIX}/
123 ;;
124 esac
125 if [[ -n $PORTAGE_IPC_DAEMON ]] ; then
126 - "$PORTAGE_BIN_PATH"/ebuild-ipc best_version "${eroot}" "$1"
127 + "$PORTAGE_BIN_PATH"/ebuild-ipc best_version "${eroot}" "${atom}"
128 else
129 PYTHONPATH=${PORTAGE_PYM_PATH}${PYTHONPATH:+:}${PYTHONPATH} \
130 - "${PORTAGE_PYTHON:-/usr/bin/python}" "${PORTAGE_BIN_PATH}/portageq" best_version "${eroot}" "$1"
131 + "${PORTAGE_PYTHON:-/usr/bin/python}" "${PORTAGE_BIN_PATH}/portageq" best_version "${eroot}" "${atom}"
132 fi
133 local retval=$?
134 case "${retval}" in