1 |
commit: 4b760f60a70b9af4dce6c894226ebe72485f5495 |
2 |
Author: Thomas Sachau <tommy <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun Feb 28 12:27:00 2016 +0000 |
4 |
Commit: Thomas Sachau <tommy <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun Feb 28 12:27:00 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=4b760f60 |
7 |
|
8 |
merge v2.2.25 |
9 |
|
10 |
NEWS | 5 ++ |
11 |
RELEASE-NOTES | 13 +++ |
12 |
bin/eapi.sh | 8 ++ |
13 |
bin/ebuild.sh | 43 ++++++++++ |
14 |
bin/egencache | 125 ++++++++++++++++----------- |
15 |
bin/install-qa-check.d/60openrc | 2 +- |
16 |
bin/phase-helpers.sh | 78 ++++++++++++----- |
17 |
bin/save-ebuild-env.sh | 9 +- |
18 |
man/portage.5 | 7 +- |
19 |
misc/emerge-delta-webrsync | 2 +- |
20 |
pym/_emerge/actions.py | 3 + |
21 |
pym/_emerge/main.py | 15 +++- |
22 |
pym/portage/const.py | 2 +- |
23 |
pym/portage/eapi.py | 11 ++- |
24 |
pym/portage/emaint/modules/sync/sync.py | 57 +++++++++++-- |
25 |
pym/portage/package/ebuild/config.py | 16 ++++ |
26 |
pym/portage/repository/config.py | 6 +- |
27 |
pym/portage/sync/controller.py | 18 ++-- |
28 |
pym/portage/sync/modules/git/git.py | 11 ++- |
29 |
pym/portage/sync/modules/rsync/rsync.py | 17 ++-- |
30 |
pym/portage/util/_async/AsyncFunction.py | 5 +- |
31 |
pym/portage/util/locale.py | 141 +++++++++++++++++++++++++++++++ |
32 |
pym/repoman/checks/ebuilds/checks.py | 7 +- |
33 |
pym/repoman/vcs/vcs.py | 20 +++-- |
34 |
setup.py | 2 +- |
35 |
25 files changed, 513 insertions(+), 110 deletions(-) |
36 |
|
37 |
diff --cc bin/ebuild.sh |
38 |
index 9d83477,4319a17..0dd971b |
39 |
--- a/bin/ebuild.sh |
40 |
+++ b/bin/ebuild.sh |
41 |
@@@ -6,12 -6,50 +6,54 @@@ |
42 |
# Make sure it's before everything so we don't mess aliases that follow. |
43 |
unalias -a |
44 |
|
45 |
+ # Make sure this isn't exported to scripts we execute. |
46 |
+ unset BASH_COMPAT |
47 |
+ |
48 |
source "${PORTAGE_BIN_PATH}/isolated-functions.sh" || exit 1 |
49 |
|
50 |
+if [[ " ${FEATURES} " == *" force-multilib "* ]]; then |
51 |
+ source "${PORTAGE_BIN_PATH}/auto-multilib.sh" || exit 1 |
52 |
+fi |
53 |
+ |
54 |
+ # Set up the bash version compatibility level. This does not disable |
55 |
+ # features when running with a newer version, but makes it so that when |
56 |
+ # bash changes behavior in an incompatible way, the older behavior is |
57 |
+ # used instead. |
58 |
+ __check_bash_version() { |
59 |
+ # Figure out which min version of bash we require. |
60 |
+ local maj min |
61 |
+ if ___eapi_bash_3_2 ; then |
62 |
+ maj=3 min=2 |
63 |
+ elif ___eapi_bash_4_2 ; then |
64 |
+ maj=4 min=2 |
65 |
+ else |
66 |
+ return |
67 |
+ fi |
68 |
+ |
69 |
+ # Make sure the active bash is sane. |
70 |
+ if [[ ${BASH_VERSINFO[0]} -lt ${maj} ]] || |
71 |
+ [[ ${BASH_VERSINFO[0]} -eq ${maj} && ${BASH_VERSINFO[1]} -lt ${min} ]] ; then |
72 |
+ die ">=bash-${maj}.${min} is required" |
73 |
+ fi |
74 |
+ |
75 |
+ # Set the compat level in case things change with newer ones. We must not |
76 |
+ # export this into the env otherwise we might break other shell scripts we |
77 |
+ # execute (e.g. ones in /usr/bin). |
78 |
+ BASH_COMPAT="${maj}.${min}" |
79 |
+ |
80 |
+ # The variable above is new to bash-4.3. For older versions, we have to use |
81 |
+ # a compat knob. Further, the compat knob only exists with older versions |
82 |
+ # (e.g. bash-4.3 has compat42 but not compat43). This means we only need to |
83 |
+ # turn the knob with older EAPIs, and only when running newer bash versions: |
84 |
+ # there is no bash-3.3 (it went 3.2 to 4.0), and when requiring bash-4.2, the |
85 |
+ # var works with bash-4.3+, and you don't need to set compat to 4.2 when you |
86 |
+ # are already running 4.2. |
87 |
+ if ___eapi_bash_3_2 && [[ ${BASH_VERSINFO[0]} -gt 3 ]] ; then |
88 |
+ shopt -s compat32 |
89 |
+ fi |
90 |
+ } |
91 |
+ __check_bash_version |
92 |
+ |
93 |
if [[ $EBUILD_PHASE != depend ]] ; then |
94 |
source "${PORTAGE_BIN_PATH}/phase-functions.sh" || die |
95 |
source "${PORTAGE_BIN_PATH}/save-ebuild-env.sh" || die |