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