commit:     07ca37d0205f4938d99d387f082d46b9e67e5fb4
Author:     Thomas Sachau <tommy <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 12 20:21:32 2014 +0000
Commit:     Thomas Sachau <tommy <AT> gentoo <DOT> org>
CommitDate: Fri Dec 12 20:21:32 2014 +0000
URL:        
http://sources.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=07ca37d0

Merge tag 'v2.2.14' into multilib


 NEWS                                               |   9 +
 RELEASE-NOTES                                      |  36 +
 bin/archive-conf                                   |   4 +-
 bin/binhost-snapshot                               |   4 +-
 bin/chpathtool.py                                  |   8 +-
 bin/clean_locks                                    |   4 +-
 bin/deprecated-path                                |  28 +
 bin/dispatch-conf                                  |   4 +-
 bin/ebuild                                         |   4 +-
 bin/ebuild-helpers/portageq                        |  20 +-
 bin/ebuild-ipc.py                                  |  84 +-
 bin/ebuild.sh                                      | 131 +--
 bin/egencache                                      |   4 +-
 bin/emaint                                         |   4 +-
 bin/emerge                                         |   5 +-
 bin/emerge-webrsync                                |   4 +-
 bin/env-update                                     |   4 +-
 bin/fixpackages                                    |   4 +-
 bin/glsa-check                                     |   4 +-
 bin/install-qa-check.d/05double-D                  |  17 +
 bin/install-qa-check.d/05prefix                    | 117 +++
 bin/install-qa-check.d/10executable-issues         | 140 +++
 bin/install-qa-check.d/10ignored-flags             |  99 +++
 bin/install-qa-check.d/20deprecated-directories    |  18 +
 bin/install-qa-check.d/20runtime-directories       |  26 +
 bin/install-qa-check.d/60bash-completion           | 130 +++
 bin/install-qa-check.d/60openrc                    |  41 +
 bin/install-qa-check.d/60pkgconfig                 |  15 +
 bin/install-qa-check.d/60pngfix                    |  35 +
 bin/install-qa-check.d/60systemd                   |  25 +
 bin/install-qa-check.d/60udev                      |  21 +
 bin/install-qa-check.d/80libraries                 | 158 ++++
 bin/install-qa-check.d/80multilib-strict           |  50 ++
 bin/install-qa-check.d/90gcc-warnings              | 168 ++++
 bin/install-qa-check.d/90world-writable            |  25 +
 bin/misc-functions.sh                              | 948 +--------------------
 bin/phase-functions.sh                             |   6 +
 bin/phase-helpers.sh                               |   4 +
 bin/portageq                                       | 347 +++++---
 bin/quickpkg                                       |   4 +-
 bin/regenworld                                     |   4 +-
 bin/repoman                                        |   4 +-
 bin/xattr-helper.py                                |   6 +-
 man/emerge.1                                       |  10 +-
 misc/emerge-delta-webrsync                         |   6 +-
 pym/_emerge/actions.py                             |  17 +-
 pym/_emerge/depgraph.py                            | 134 ++-
 pym/_emerge/main.py                                |  15 +-
 pym/_emerge/post_emerge.py                         |   5 +-
 pym/portage/dbapi/vartree.py                       |  42 +-
 pym/portage/emaint/modules/binhost/__init__.py     |   8 +-
 pym/portage/emaint/modules/config/__init__.py      |   8 +-
 pym/portage/emaint/modules/logs/__init__.py        |   8 +-
 pym/portage/emaint/modules/merges/__init__.py      |   7 +-
 pym/portage/emaint/modules/move/__init__.py        |   8 +-
 pym/portage/emaint/modules/resume/__init__.py      |   6 +-
 pym/portage/emaint/modules/world/__init__.py       |   8 +-
 pym/portage/tests/__init__.py                      |   4 +-
 pym/portage/tests/emerge/test_simple.py            |  29 +-
 pym/portage/tests/resolver/ResolverPlayground.py   |  30 +-
 ...uild.py => test_slot_conflict_force_rebuild.py} |  24 +-
 ...build.py => test_slot_operator_required_use.py} |  40 +-
 ...test_solve_non_slot_operator_slot_conflicts.py} |  45 +-
 setup.py                                           |  41 +-
 testpath                                           |  11 +
 65 files changed, 1942 insertions(+), 1337 deletions(-)

diff --cc bin/misc-functions.sh
index e8e9d4e,cc652a9..416e2bf
--- a/bin/misc-functions.sh
+++ b/bin/misc-functions.sh
@@@ -170,66 -168,34 +170,35 @@@ install_qa_check() 
                local EPREFIX= ED=${D}
        fi
  
 +      [[ -d "${ED}" ]] || return 0
        cd "${ED}" || die "cd failed"
  
-       qa_var="QA_FLAGS_IGNORED_${ARCH/-/_}"
-       eval "[[ -n \${!qa_var} ]] && QA_FLAGS_IGNORED=(\"\${${qa_var}[@]}\")"
-       if [[ ${#QA_FLAGS_IGNORED[@]} -eq 1 ]] ; then
-               local shopts=$-
-               set -o noglob
-               QA_FLAGS_IGNORED=(${QA_FLAGS_IGNORED})
-               set +o noglob
-               set -${shopts}
-       fi
+       # Run QA checks from install-qa-check.d.
+       # Note: checks need to be run *before* stripping.
+       local f
+       # TODO: handle nullglob-like
+       for f in "${PORTAGE_BIN_PATH}"/install-qa-check.d/*; do
+               # Run in a subshell to treat it like external script,
+               # but use 'source' to pass all variables through.
+               (
+                       source "${f}" || eerror "Post-install QA check ${f##*/} 
failed to run"
+               )
+       done
  
-       # Check for files built without respecting *FLAGS. Note that
-       # -frecord-gcc-switches must be in all *FLAGS variables, in
-       # order to avoid false positive results here.
-       # NOTE: This check must execute before prepall/prepstrip, since
-       # prepstrip strips the .GCC.command.line sections.
-       if type -P scanelf > /dev/null && ! has binchecks ${RESTRICT} && \
-               [[ "${CFLAGS}" == *-frecord-gcc-switches* ]] && \
-               [[ "${CXXFLAGS}" == *-frecord-gcc-switches* ]] && \
-               [[ "${FFLAGS}" == *-frecord-gcc-switches* ]] && \
-               [[ "${FCFLAGS}" == *-frecord-gcc-switches* ]] ; then
-               rm -f "${T}"/scanelf-ignored-CFLAGS.log
-               for x in $(scanelf -qyRF '#k%p' -k '!.GCC.command.line' 
"${ED}") ; do
-                       # Separate out file types that are known to support
-                       # .GCC.command.line sections, using the `file` command
-                       # similar to how prepstrip uses it.
-                       f=$(file "${x}") || continue
-                       [[ -z ${f} ]] && continue
-                       if [[ ${f} == *"SB executable"* ||
-                               ${f} == *"SB shared object"* ]] ; then
-                               echo "${x}" >> "${T}"/scanelf-ignored-CFLAGS.log
+       # Run QA checks from repositories
+       # (yes, PORTAGE_ECLASS_LOCATIONS contains repo paths...)
+       local repo_location
+       for repo_location in "${PORTAGE_ECLASS_LOCATIONS[@]}"; do
+               for f in "${repo_location}"/metadata/install-qa-check.d/*; do
+                       if [[ -f ${f} ]]; then
+                               (
+                                       # allow inheriting eclasses
+                                       _IN_INSTALL_QA_CHECK=1
+                                       source "${f}" || eerror "Post-install 
QA check ${f##*/} failed to run"
+                               )
                        fi
                done
- 
-               if [[ -f "${T}"/scanelf-ignored-CFLAGS.log ]] ; then
- 
-                       if [ "${QA_STRICT_FLAGS_IGNORED-unset}" = unset ] ; then
-                               for x in "${QA_FLAGS_IGNORED[@]}" ; do
-                                       sed -e "s#^${x#/}\$##" -i 
"${T}"/scanelf-ignored-CFLAGS.log
-                               done
-                       fi
-                       # Filter anything under /usr/lib/debug/ in order to 
avoid
-                       # duplicate warnings for splitdebug files.
-                       sed -e "s#^usr/lib/debug/.*##" -e "/^\$/d" -e "s#^#/#" \
-                               -i "${T}"/scanelf-ignored-CFLAGS.log
-                       f=$(<"${T}"/scanelf-ignored-CFLAGS.log)
-                       if [[ -n ${f} ]] ; then
-                               __vecho -ne '\n'
-                               eqawarn "${BAD}QA Notice: Files built without 
respecting CFLAGS have been detected${NORMAL}"
-                               eqawarn " Please include the following list of 
files in your report:"
-                               eqawarn "${f}"
-                               __vecho -ne '\n'
-                               sleep 1
-                       else
-                               rm -f "${T}"/scanelf-ignored-CFLAGS.log
-                       fi
-               fi
-       fi
+       done
  
        export STRIP_MASK
        prepall

Reply via email to