commit:     4b760f60a70b9af4dce6c894226ebe72485f5495
Author:     Thomas Sachau <tommy <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 28 12:27:00 2016 +0000
Commit:     Thomas Sachau <tommy <AT> gentoo <DOT> org>
CommitDate: Sun Feb 28 12:27:00 2016 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=4b760f60

merge v2.2.25

 NEWS                                     |   5 ++
 RELEASE-NOTES                            |  13 +++
 bin/eapi.sh                              |   8 ++
 bin/ebuild.sh                            |  43 ++++++++++
 bin/egencache                            | 125 ++++++++++++++++-----------
 bin/install-qa-check.d/60openrc          |   2 +-
 bin/phase-helpers.sh                     |  78 ++++++++++++-----
 bin/save-ebuild-env.sh                   |   9 +-
 man/portage.5                            |   7 +-
 misc/emerge-delta-webrsync               |   2 +-
 pym/_emerge/actions.py                   |   3 +
 pym/_emerge/main.py                      |  15 +++-
 pym/portage/const.py                     |   2 +-
 pym/portage/eapi.py                      |  11 ++-
 pym/portage/emaint/modules/sync/sync.py  |  57 +++++++++++--
 pym/portage/package/ebuild/config.py     |  16 ++++
 pym/portage/repository/config.py         |   6 +-
 pym/portage/sync/controller.py           |  18 ++--
 pym/portage/sync/modules/git/git.py      |  11 ++-
 pym/portage/sync/modules/rsync/rsync.py  |  17 ++--
 pym/portage/util/_async/AsyncFunction.py |   5 +-
 pym/portage/util/locale.py               | 141 +++++++++++++++++++++++++++++++
 pym/repoman/checks/ebuilds/checks.py     |   7 +-
 pym/repoman/vcs/vcs.py                   |  20 +++--
 setup.py                                 |   2 +-
 25 files changed, 513 insertions(+), 110 deletions(-)

diff --cc bin/ebuild.sh
index 9d83477,4319a17..0dd971b
--- a/bin/ebuild.sh
+++ b/bin/ebuild.sh
@@@ -6,12 -6,50 +6,54 @@@
  # Make sure it's before everything so we don't mess aliases that follow.
  unalias -a
  
+ # Make sure this isn't exported to scripts we execute.
+ unset BASH_COMPAT
+ 
  source "${PORTAGE_BIN_PATH}/isolated-functions.sh" || exit 1
  
 +if [[ " ${FEATURES} " == *" force-multilib "* ]]; then
 +      source "${PORTAGE_BIN_PATH}/auto-multilib.sh" || exit 1
 +fi
 +
+ # Set up the bash version compatibility level.  This does not disable
+ # features when running with a newer version, but makes it so that when
+ # bash changes behavior in an incompatible way, the older behavior is
+ # used instead.
+ __check_bash_version() {
+       # Figure out which min version of bash we require.
+       local maj min
+       if ___eapi_bash_3_2 ; then
+               maj=3 min=2
+       elif ___eapi_bash_4_2 ; then
+               maj=4 min=2
+       else
+               return
+       fi
+ 
+       # Make sure the active bash is sane.
+       if [[ ${BASH_VERSINFO[0]} -lt ${maj} ]] ||
+          [[ ${BASH_VERSINFO[0]} -eq ${maj} && ${BASH_VERSINFO[1]} -lt ${min} 
]] ; then
+               die ">=bash-${maj}.${min} is required"
+       fi
+ 
+       # Set the compat level in case things change with newer ones.  We must 
not
+       # export this into the env otherwise we might break  other shell 
scripts we
+       # execute (e.g. ones in /usr/bin).
+       BASH_COMPAT="${maj}.${min}"
+ 
+       # The variable above is new to bash-4.3.  For older versions, we have 
to use
+       # a compat knob.  Further, the compat knob only exists with older 
versions
+       # (e.g. bash-4.3 has compat42 but not compat43).  This means we only 
need to
+       # turn the knob with older EAPIs, and only when running newer bash 
versions:
+       # there is no bash-3.3 (it went 3.2 to 4.0), and when requiring 
bash-4.2, the
+       # var works with bash-4.3+, and you don't need to set compat to 4.2 
when you
+       # are already running 4.2.
+       if ___eapi_bash_3_2 && [[ ${BASH_VERSINFO[0]} -gt 3 ]] ; then
+               shopt -s compat32
+       fi
+ }
+ __check_bash_version
+ 
  if [[ $EBUILD_PHASE != depend ]] ; then
        source "${PORTAGE_BIN_PATH}/phase-functions.sh" || die
        source "${PORTAGE_BIN_PATH}/save-ebuild-env.sh" || die

Reply via email to