* [gentoo-portage-dev] [PATCH 0/4] Output rewrite for better clarify and greppability
@ 2021-09-28 14:20 Michał Górny
2021-09-28 14:20 ` [gentoo-portage-dev] [PATCH 1/4] Prefix color vars with "PORTAGE_COLOR_" Michał Górny
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Michał Górny @ 2021-09-28 14:20 UTC (permalink / raw
To: gentoo-portage-dev; +Cc: Michał Górny
Hi,
Ok, so it's more major than I originally intended but I think it's
a good direction (once you get used to it). Roughly:
1. All bash color vars are now prefixed with `PORTAGE_COLOR_` to avoid
accidental collisions with ebuild vars (e.g. ebuild setting
`GOOD=foo` broke `elog` before).
2. There are specific color vars for all kinds of output functions,
and now `einfo` messages use distinct color (dark green) from `elog`,
and `eqawarn` (brown) from `ewarn`.
3. Messages are now prefixed by their kind, making it possible to
distinguish them without colors and grep for specific kind of logs:
- `[--]` for einfo & ebegin
- `[II]` for elog
- `[WW]` for ewarn
- `[QA]` for eqawarn
- `[EE]` for eerror
4. Finally, I've replaced most of `>>>` and `!!!` in Portage output with
four `>>>>` and `!!!!` to align the output again.
PR (includes screenshot): https://github.com/gentoo/portage/pull/759
Michał Górny (4):
Prefix color vars with "PORTAGE_COLOR_"
Use distinct colors for output msg types
Use verbose prefixes for output messages
Use ">>>>" and "!!!!" for output prefixes
bin/clean_locks | 2 +-
bin/dohtml.py | 2 +-
bin/doins.py | 2 +-
bin/ebuild | 8 +-
bin/ebuild-helpers/dobin | 2 +-
bin/ebuild-helpers/dodoc | 2 +-
bin/ebuild-helpers/doexe | 2 +-
bin/ebuild-helpers/doinfo | 2 +-
bin/ebuild-helpers/dolib | 2 +-
bin/ebuild-helpers/doman | 2 +-
bin/ebuild-helpers/domo | 2 +-
bin/ebuild-helpers/dosbin | 2 +-
bin/ebuild-helpers/dosed | 4 +-
bin/ebuild-helpers/keepdir | 2 +-
bin/ebuild-helpers/newins | 4 +-
bin/env-update | 2 +-
bin/fixpackages | 4 +-
bin/glsa-check | 14 +-
bin/install-qa-check.d/10ignored-flags | 4 +-
bin/install.py | 2 +-
bin/isolated-functions.sh | 50 ++++---
bin/misc-functions.sh | 22 +--
bin/phase-functions.sh | 64 ++++-----
bin/phase-helpers.sh | 18 +--
bin/portageq | 6 +-
bin/save-ebuild-env.sh | 18 ++-
cnf/repo.postsync.d/example | 4 +-
lib/_emerge/Binpkg.py | 10 +-
lib/_emerge/BinpkgExtractorAsync.py | 4 +-
lib/_emerge/BinpkgVerifier.py | 12 +-
lib/_emerge/BlockerCache.py | 2 +-
lib/_emerge/BlockerDB.py | 2 +-
lib/_emerge/EbuildBuild.py | 2 +-
lib/_emerge/EbuildIpcDaemon.py | 2 +-
lib/_emerge/EbuildPhase.py | 2 +-
lib/_emerge/JobStatusDisplay.py | 2 +-
lib/_emerge/MergeListItem.py | 2 +-
lib/_emerge/PackageUninstall.py | 6 +-
lib/_emerge/Scheduler.py | 20 +--
lib/_emerge/SpawnProcess.py | 2 +-
lib/_emerge/SubProcess.py | 2 +-
lib/_emerge/actions.py | 126 ++++++++++--------
lib/_emerge/countdown.py | 4 +-
lib/_emerge/depgraph.py | 121 +++++++++--------
lib/_emerge/main.py | 6 +-
lib/_emerge/post_emerge.py | 4 +-
lib/_emerge/resolver/output_helpers.py | 4 +-
lib/_emerge/resolver/slot_collision.py | 16 +--
lib/_emerge/show_invalid_depstring_notice.py | 2 +-
lib/_emerge/unmerge.py | 44 +++---
lib/portage/__init__.py | 24 ++--
lib/portage/_selinux.py | 4 +-
lib/portage/_sets/shell.py | 2 +-
lib/portage/binrepo/config.py | 4 +-
lib/portage/data.py | 2 +-
lib/portage/dbapi/__init__.py | 2 +-
lib/portage/dbapi/bintree.py | 45 ++++---
lib/portage/dbapi/porttree.py | 12 +-
lib/portage/dbapi/vartree.py | 94 ++++++-------
lib/portage/dep/__init__.py | 48 +++----
lib/portage/elog/__init__.py | 2 +-
lib/portage/elog/messages.py | 15 ++-
lib/portage/elog/mod_custom.py | 4 +-
lib/portage/elog/mod_echo.py | 4 +-
lib/portage/elog/mod_mail_summary.py | 2 +-
lib/portage/elog/mod_save_summary.py | 2 +-
lib/portage/emaint/modules/binhost/binhost.py | 3 +-
lib/portage/env/loaders.py | 14 +-
lib/portage/getbinpkg.py | 32 ++---
lib/portage/locks.py | 2 +-
lib/portage/mail.py | 12 +-
lib/portage/manifest.py | 2 +-
lib/portage/metadata.py | 6 +-
lib/portage/news.py | 6 +-
lib/portage/output.py | 65 +++++++--
.../ebuild/_config/LocationsManager.py | 10 +-
.../_parallel_manifest/ManifestProcess.py | 6 +-
.../_parallel_manifest/ManifestScheduler.py | 2 +-
.../ebuild/_parallel_manifest/ManifestTask.py | 6 +-
lib/portage/package/ebuild/config.py | 61 ++++-----
.../ebuild/deprecated_profile_check.py | 12 +-
lib/portage/package/ebuild/digestcheck.py | 24 ++--
lib/portage/package/ebuild/digestgen.py | 20 +--
lib/portage/package/ebuild/doebuild.py | 36 ++---
lib/portage/package/ebuild/fetch.py | 126 +++++++++---------
.../package/ebuild/prepare_build_dirs.py | 25 ++--
lib/portage/repository/config.py | 31 ++---
lib/portage/sync/config_checks.py | 12 +-
lib/portage/sync/controller.py | 6 +-
lib/portage/sync/modules/cvs/__init__.py | 2 +-
lib/portage/sync/modules/cvs/cvs.py | 4 +-
lib/portage/sync/modules/git/__init__.py | 4 +-
lib/portage/sync/modules/git/git.py | 14 +-
.../sync/modules/mercurial/mercurial.py | 4 +-
lib/portage/sync/modules/rsync/rsync.py | 60 ++++-----
lib/portage/sync/modules/svn/svn.py | 6 +-
lib/portage/sync/modules/webrsync/webrsync.py | 10 +-
lib/portage/sync/old_tree_timestamp.py | 2 +-
lib/portage/sync/syncbase.py | 6 +-
lib/portage/tests/resolver/test_autounmask.py | 6 +-
.../resolver/test_autounmask_use_breakage.py | 6 +-
...est_slot_conflict_unsatisfied_deep_deps.py | 12 +-
lib/portage/update.py | 4 +-
lib/portage/util/__init__.py | 30 ++---
.../util/_dyn_libs/PreservedLibsRegistry.py | 4 +-
.../util/_dyn_libs/display_preserved_libs.py | 4 +-
lib/portage/util/env_update.py | 8 +-
lib/portage/util/locale.py | 2 +-
lib/portage/util/movefile.py | 40 +++---
lib/portage/util/mtimedb.py | 5 +-
lib/portage/util/writeable_check.py | 4 +-
lib/portage/versions.py | 20 +--
lib/portage/xml/metadata.py | 18 +--
misc/emerge-delta-webrsync | 8 +-
repoman/lib/repoman/__init__.py | 12 +-
repoman/lib/repoman/actions.py | 24 ++--
repoman/lib/repoman/gpg.py | 2 +-
.../lib/repoman/modules/commit/manifest.py | 4 +-
repoman/lib/repoman/modules/vcs/cvs/status.py | 6 +-
.../lib/repoman/modules/vcs/git/changes.py | 2 +-
repoman/lib/repoman/modules/vcs/svn/status.py | 6 +-
repoman/lib/repoman/scanner.py | 4 +-
122 files changed, 937 insertions(+), 836 deletions(-)
--
2.33.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [gentoo-portage-dev] [PATCH 1/4] Prefix color vars with "PORTAGE_COLOR_"
2021-09-28 14:20 [gentoo-portage-dev] [PATCH 0/4] Output rewrite for better clarify and greppability Michał Górny
@ 2021-09-28 14:20 ` Michał Górny
2021-09-28 14:20 ` [gentoo-portage-dev] [PATCH 2/4] Use distinct colors for output msg types Michał Górny
` (4 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Michał Górny @ 2021-09-28 14:20 UTC (permalink / raw
To: gentoo-portage-dev; +Cc: Michał Górny
Rename color variables used by einfo etc. to use "PORTAGE_COLOR_"
prefix. Currently these variables are prone to being accidentally
ovewritten e.g. if an ebuild uses GOOD or BAD variables for some
purpose. Using PORTAGE prefix should keep us safe.
As an extra benefit, this makes it trivial to grep for all uses of color
variables.
Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
bin/install-qa-check.d/10ignored-flags | 4 +--
bin/isolated-functions.sh | 42 +++++++++++++-------------
bin/save-ebuild-env.sh | 16 +++++-----
lib/portage/output.py | 4 +--
4 files changed, 34 insertions(+), 32 deletions(-)
diff --git a/bin/install-qa-check.d/10ignored-flags b/bin/install-qa-check.d/10ignored-flags
index 89706cd4c..7cd073578 100644
--- a/bin/install-qa-check.d/10ignored-flags
+++ b/bin/install-qa-check.d/10ignored-flags
@@ -52,7 +52,7 @@ ignored_flag_check() {
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 "${PORTAGE_COLOR_BAD}QA Notice: Files built without respecting CFLAGS have been detected${PORTAGE_COLOR_NORMAL}"
eqawarn " Please include the following list of files in your report:"
eqawarn "${f}"
__vecho -ne '\n'
@@ -82,7 +82,7 @@ ignored_flag_check() {
f=$(<"${T}"/scanelf-ignored-LDFLAGS.log)
if [[ -n ${f} ]] ; then
__vecho -ne '\n'
- eqawarn "${BAD}QA Notice: Files built without respecting LDFLAGS have been detected${NORMAL}"
+ eqawarn "${PORTAGE_COLOR_BAD}QA Notice: Files built without respecting LDFLAGS have been detected${PORTAGE_COLOR_NORMAL}"
eqawarn " Please include the following list of files in your report:"
eqawarn "${f}"
__vecho -ne '\n'
diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh
index 5630dcf4c..3e79ea6e3 100644
--- a/bin/isolated-functions.sh
+++ b/bin/isolated-functions.sh
@@ -255,7 +255,7 @@ __elog_base() {
shift
;;
*)
- __vecho -e " ${BAD}*${NORMAL} Invalid use of internal function __elog_base(), next message will not be logged"
+ __vecho -e " ${PORTAGE_COLOR_BAD}*${PORTAGE_COLOR_NORMAL} Invalid use of internal function __elog_base(), next message will not be logged"
return 1
;;
esac
@@ -270,7 +270,7 @@ eqawarn() {
__elog_base QA "$*"
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
echo -e "$@" | while read -r ; do
- echo " $WARN*$NORMAL $REPLY" >&2
+ echo " ${PORTAGE_COLOR_WARN}*${PORTAGE_COLOR_NORMAL} ${REPLY}" >&2
done
LAST_E_CMD="eqawarn"
return 0
@@ -280,7 +280,7 @@ elog() {
__elog_base LOG "$*"
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
echo -e "$@" | while read -r ; do
- echo " $GOOD*$NORMAL $REPLY" >&2
+ echo " ${PORTAGE_COLOR_GOOD}*${PORTAGE_COLOR_NORMAL} ${REPLY}" >&2
done
LAST_E_CMD="elog"
return 0
@@ -290,7 +290,7 @@ einfo() {
__elog_base INFO "$*"
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
echo -e "$@" | while read -r ; do
- echo " $GOOD*$NORMAL $REPLY" >&2
+ echo " ${PORTAGE_COLOR_GOOD}*${PORTAGE_COLOR_NORMAL} ${REPLY}" >&2
done
LAST_E_CMD="einfo"
return 0
@@ -299,7 +299,7 @@ einfo() {
einfon() {
__elog_base INFO "$*"
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
- echo -ne " ${GOOD}*${NORMAL} $*" >&2
+ echo -ne " ${PORTAGE_COLOR_GOOD}*${PORTAGE_COLOR_NORMAL} $*" >&2
LAST_E_CMD="einfon"
return 0
}
@@ -308,7 +308,7 @@ ewarn() {
__elog_base WARN "$*"
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
echo -e "$@" | while read -r ; do
- echo " $WARN*$NORMAL $RC_INDENTATION$REPLY" >&2
+ echo " ${PORTAGE_COLOR_WARN}*${PORTAGE_COLOR_NORMAL} ${RC_INDENTATION}${REPLY}" >&2
done
LAST_E_CMD="ewarn"
return 0
@@ -318,7 +318,7 @@ eerror() {
__elog_base ERROR "$*"
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
echo -e "$@" | while read -r ; do
- echo " $BAD*$NORMAL $RC_INDENTATION$REPLY" >&2
+ echo " ${PORTAGE_COLOR_BAD}*${PORTAGE_COLOR_NORMAL} ${RC_INDENTATION}${REPLY}" >&2
done
LAST_E_CMD="eerror"
return 0
@@ -345,12 +345,12 @@ __eend() {
shift 2
if [[ ${retval} == "0" ]] ; then
- msg="${BRACKET}[ ${GOOD}ok${BRACKET} ]${NORMAL}"
+ msg="${PORTAGE_COLOR_BRACKET}[ ${PORTAGE_COLOR_GOOD}ok${PORTAGE_COLOR_BRACKET} ]${PORTAGE_COLOR_NORMAL}"
else
if [[ -n $* ]] ; then
${efunc} "$*"
fi
- msg="${BRACKET}[ ${BAD}!!${BRACKET} ]${NORMAL}"
+ msg="${PORTAGE_COLOR_BRACKET}[ ${PORTAGE_COLOR_BAD}!!${PORTAGE_COLOR_BRACKET} ]${PORTAGE_COLOR_NORMAL}"
fi
if [[ ${RC_ENDCOL} == "yes" ]] ; then
@@ -378,12 +378,12 @@ __unset_colors() {
COLS=80
ENDCOL=
- GOOD=
- WARN=
- BAD=
- NORMAL=
- HILITE=
- BRACKET=
+ PORTAGE_COLOR_GOOD=
+ PORTAGE_COLOR_WARN=
+ PORTAGE_COLOR_BAD=
+ PORTAGE_COLOR_HILITE=
+ PORTAGE_COLOR_NORMAL=
+ PORTAGE_COLOR_BRACKET=
}
__set_colors() {
@@ -403,12 +403,12 @@ __set_colors() {
if [ -n "${PORTAGE_COLORMAP}" ] ; then
eval ${PORTAGE_COLORMAP}
else
- GOOD=$'\e[32;01m'
- WARN=$'\e[33;01m'
- BAD=$'\e[31;01m'
- HILITE=$'\e[36;01m'
- BRACKET=$'\e[34;01m'
- NORMAL=$'\e[0m'
+ PORTAGE_COLOR_GOOD=$'\e[32;01m'
+ PORTAGE_COLOR_WARN=$'\e[33;01m'
+ PORTAGE_COLOR_BAD=$'\e[31;01m'
+ PORTAGE_COLOR_HILITE=$'\e[36;01m'
+ PORTAGE_COLOR_BRACKET=$'\e[34;01m'
+ PORTAGE_COLOR_NORMAL=$'\e[0m'
fi
}
diff --git a/bin/save-ebuild-env.sh b/bin/save-ebuild-env.sh
index 947ac79d5..8d2ec67ed 100644
--- a/bin/save-ebuild-env.sh
+++ b/bin/save-ebuild-env.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @FUNCTION: __save_ebuild_env
@@ -94,15 +94,17 @@ __save_ebuild_env() {
unset ${!___*}
# portage config variables and variables set directly by portage
- unset ACCEPT_LICENSE BAD BRACKET BUILD_PREFIX COLS \
+ unset ACCEPT_LICENSE BUILD_PREFIX COLS \
DISTDIR DOC_SYMLINKS_DIR \
EBUILD_FORCE_TEST EBUILD_MASTER_PID \
ECLASS_DEPTH ENDCOL FAKEROOTKEY \
- GOOD HILITE HOME \
+ HOME \
LAST_E_CMD LAST_E_LEN LD_PRELOAD MISC_FUNCTIONS_ARGS MOPREFIX \
- NOCOLOR NORMAL PKGDIR PKGUSE PKG_LOGDIR PKG_TMPDIR \
- PORTAGE_BASHRC_FILES PORTAGE_BASHRCS_SOURCED PORTAGE_COMPRESS \
- PORTAGE_COMPRESS_EXCLUDE_SUFFIXES \
+ NOCOLOR PKGDIR PKGUSE PKG_LOGDIR PKG_TMPDIR \
+ PORTAGE_BASHRC_FILES PORTAGE_BASHRCS_SOURCED \
+ PORTAGE_COLOR_BAD PORTAGE_COLOR_BRACKET PORTAGE_COLOR_GOOD \
+ PORTAGE_COLOR_HILITE PORTAGE_COLOR_NORMAL PORTAGE_COLOR_WARN \
+ PORTAGE_COMPRESS PORTAGE_COMPRESS_EXCLUDE_SUFFIXES \
PORTAGE_DOHTML_UNWARNED_SKIPPED_EXTENSIONS \
PORTAGE_DOHTML_UNWARNED_SKIPPED_FILES \
PORTAGE_DOHTML_WARN_ON_SKIPPED_FILES \
@@ -113,7 +115,7 @@ __save_ebuild_env() {
QA_INTERCEPTORS \
RC_DEFAULT_INDENT RC_DOT_PATTERN RC_ENDCOL RC_INDENTATION \
ROOT ROOTPATH RPMDIR TEMP TMP TMPDIR USE_EXPAND \
- WARN XARGS _RC_GET_KV_CACHE
+ XARGS _RC_GET_KV_CACHE
# user config variables
unset DOC_SYMLINKS_DIR INSTALL_MASK PKG_INSTALL_MASK
diff --git a/lib/portage/output.py b/lib/portage/output.py
index c1949717d..9d8601b24 100644
--- a/lib/portage/output.py
+++ b/lib/portage/output.py
@@ -1,4 +1,4 @@
-# Copyright 1998-2020 Gentoo Authors
+# Copyright 1998-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
__docformat__ = "epytext"
@@ -378,7 +378,7 @@ def style_to_ansi_code(style):
def colormap():
mycolors = []
for c in ("GOOD", "WARN", "BAD", "HILITE", "BRACKET", "NORMAL"):
- mycolors.append("%s=$'%s'" % (c, style_to_ansi_code(c)))
+ mycolors.append("PORTAGE_COLOR_{}=$'{}'".format(c, style_to_ansi_code(c)))
return "\n".join(mycolors)
--
2.33.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [gentoo-portage-dev] [PATCH 2/4] Use distinct colors for output msg types
2021-09-28 14:20 [gentoo-portage-dev] [PATCH 0/4] Output rewrite for better clarify and greppability Michał Górny
2021-09-28 14:20 ` [gentoo-portage-dev] [PATCH 1/4] Prefix color vars with "PORTAGE_COLOR_" Michał Górny
@ 2021-09-28 14:20 ` Michał Górny
2021-09-28 14:20 ` [gentoo-portage-dev] [PATCH 3/4] Use verbose prefixes for output messages Michał Górny
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Michał Górny @ 2021-09-28 14:20 UTC (permalink / raw
To: gentoo-portage-dev; +Cc: Michał Górny
Introduce distinct colors per output function. For elog and eerror
the colors remain the same but the names change. For einfo and eqawarn,
use darker colors to distinguish them.
Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
bin/isolated-functions.sh | 30 +++++++++++-------
bin/save-ebuild-env.sh | 6 ++--
lib/portage/elog/messages.py | 10 +++---
lib/portage/elog/mod_echo.py | 4 +--
lib/portage/output.py | 59 +++++++++++++++++++++++++++++++-----
5 files changed, 81 insertions(+), 28 deletions(-)
diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh
index 3e79ea6e3..df806d403 100644
--- a/bin/isolated-functions.sh
+++ b/bin/isolated-functions.sh
@@ -270,7 +270,7 @@ eqawarn() {
__elog_base QA "$*"
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
echo -e "$@" | while read -r ; do
- echo " ${PORTAGE_COLOR_WARN}*${PORTAGE_COLOR_NORMAL} ${REPLY}" >&2
+ echo " ${PORTAGE_COLOR_QAWARN}*${PORTAGE_COLOR_NORMAL} ${REPLY}" >&2
done
LAST_E_CMD="eqawarn"
return 0
@@ -280,7 +280,7 @@ elog() {
__elog_base LOG "$*"
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
echo -e "$@" | while read -r ; do
- echo " ${PORTAGE_COLOR_GOOD}*${PORTAGE_COLOR_NORMAL} ${REPLY}" >&2
+ echo " ${PORTAGE_COLOR_LOG}*${PORTAGE_COLOR_NORMAL} ${REPLY}" >&2
done
LAST_E_CMD="elog"
return 0
@@ -290,7 +290,7 @@ einfo() {
__elog_base INFO "$*"
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
echo -e "$@" | while read -r ; do
- echo " ${PORTAGE_COLOR_GOOD}*${PORTAGE_COLOR_NORMAL} ${REPLY}" >&2
+ echo " ${PORTAGE_COLOR_INFO}*${PORTAGE_COLOR_NORMAL} ${REPLY}" >&2
done
LAST_E_CMD="einfo"
return 0
@@ -299,7 +299,7 @@ einfo() {
einfon() {
__elog_base INFO "$*"
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
- echo -ne " ${PORTAGE_COLOR_GOOD}*${PORTAGE_COLOR_NORMAL} $*" >&2
+ echo -ne " ${PORTAGE_COLOR_INFO}*${PORTAGE_COLOR_NORMAL} $*" >&2
LAST_E_CMD="einfon"
return 0
}
@@ -318,7 +318,7 @@ eerror() {
__elog_base ERROR "$*"
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
echo -e "$@" | while read -r ; do
- echo " ${PORTAGE_COLOR_BAD}*${PORTAGE_COLOR_NORMAL} ${RC_INDENTATION}${REPLY}" >&2
+ echo " ${PORTAGE_COLOR_ERR}*${PORTAGE_COLOR_NORMAL} ${RC_INDENTATION}${REPLY}" >&2
done
LAST_E_CMD="eerror"
return 0
@@ -378,12 +378,16 @@ __unset_colors() {
COLS=80
ENDCOL=
- PORTAGE_COLOR_GOOD=
- PORTAGE_COLOR_WARN=
PORTAGE_COLOR_BAD=
+ PORTAGE_COLOR_BRACKET=
+ PORTAGE_COLOR_ERR=
+ PORTAGE_COLOR_GOOD=
PORTAGE_COLOR_HILITE=
+ PORTAGE_COLOR_INFO=
+ PORTAGE_COLOR_LOG=
PORTAGE_COLOR_NORMAL=
- PORTAGE_COLOR_BRACKET=
+ PORTAGE_COLOR_QAWARN=
+ PORTAGE_COLOR_WARN=
}
__set_colors() {
@@ -403,12 +407,16 @@ __set_colors() {
if [ -n "${PORTAGE_COLORMAP}" ] ; then
eval ${PORTAGE_COLORMAP}
else
- PORTAGE_COLOR_GOOD=$'\e[32;01m'
- PORTAGE_COLOR_WARN=$'\e[33;01m'
PORTAGE_COLOR_BAD=$'\e[31;01m'
- PORTAGE_COLOR_HILITE=$'\e[36;01m'
PORTAGE_COLOR_BRACKET=$'\e[34;01m'
+ PORTAGE_COLOR_ERR=$'\e[31;01m'
+ PORTAGE_COLOR_GOOD=$'\e[32;01m'
+ PORTAGE_COLOR_HILITE=$'\e[36;01m'
+ PORTAGE_COLOR_INFO=$'\e[32m'
+ PORTAGE_COLOR_LOG=$'\e[32;01m'
PORTAGE_COLOR_NORMAL=$'\e[0m'
+ PORTAGE_COLOR_QAWARN=$'\e[33m'
+ PORTAGE_COLOR_WARN=$'\e[33;01m'
fi
}
diff --git a/bin/save-ebuild-env.sh b/bin/save-ebuild-env.sh
index 8d2ec67ed..98808814b 100644
--- a/bin/save-ebuild-env.sh
+++ b/bin/save-ebuild-env.sh
@@ -102,8 +102,10 @@ __save_ebuild_env() {
LAST_E_CMD LAST_E_LEN LD_PRELOAD MISC_FUNCTIONS_ARGS MOPREFIX \
NOCOLOR PKGDIR PKGUSE PKG_LOGDIR PKG_TMPDIR \
PORTAGE_BASHRC_FILES PORTAGE_BASHRCS_SOURCED \
- PORTAGE_COLOR_BAD PORTAGE_COLOR_BRACKET PORTAGE_COLOR_GOOD \
- PORTAGE_COLOR_HILITE PORTAGE_COLOR_NORMAL PORTAGE_COLOR_WARN \
+ PORTAGE_COLOR_BAD PORTAGE_COLOR_BRACKET PORTAGE_COLOR_ERR \
+ PORTAGE_COLOR_GOOD PORTAGE_COLOR_HILITE PORTAGE_COLOR_INFO \
+ PORTAGE_COLOR_LOG PORTAGE_COLOR_NORMAL PORTAGE_COLOR_QAWARN \
+ PORTAGE_COLOR_WARN \
PORTAGE_COMPRESS PORTAGE_COMPRESS_EXCLUDE_SUFFIXES \
PORTAGE_DOHTML_UNWARNED_SKIPPED_EXTENSIONS \
PORTAGE_DOHTML_UNWARNED_SKIPPED_FILES \
diff --git a/lib/portage/elog/messages.py b/lib/portage/elog/messages.py
index 923e10b69..6a67a45de 100644
--- a/lib/portage/elog/messages.py
+++ b/lib/portage/elog/messages.py
@@ -125,7 +125,7 @@ def _elog_base(level, msg, phase="other", key=None, color=None, out=None):
out = sys.stdout
if color is None:
- color = "GOOD"
+ color = "INFO"
msg = _unicode_decode(msg, encoding=_encodings["content"], errors="replace")
@@ -183,11 +183,11 @@ def _reset_buffer():
# creating and exporting the actual messaging functions
_functions = {
- "einfo": ("INFO", "GOOD"),
- "elog": ("LOG", "GOOD"),
+ "einfo": ("INFO", "INFO"),
+ "elog": ("LOG", "LOG"),
"ewarn": ("WARN", "WARN"),
- "eqawarn": ("QA", "WARN"),
- "eerror": ("ERROR", "BAD"),
+ "eqawarn": ("QA", "QAWARN"),
+ "eerror": ("ERROR", "ERR"),
}
diff --git a/lib/portage/elog/mod_echo.py b/lib/portage/elog/mod_echo.py
index fa9203c32..a63939988 100644
--- a/lib/portage/elog/mod_echo.py
+++ b/lib/portage/elog/mod_echo.py
@@ -60,10 +60,10 @@ def _finalize():
for msgtype, msgcontent in logentries[phase]:
fmap = {
"INFO": printer.einfo,
+ "LOG": printer.elog,
"WARN": printer.ewarn,
"ERROR": printer.eerror,
- "LOG": printer.einfo,
- "QA": printer.ewarn,
+ "QA": printer.eqawarn,
}
if isinstance(msgcontent, str):
msgcontent = [msgcontent]
diff --git a/lib/portage/output.py b/lib/portage/output.py
index 9d8601b24..42f487f8a 100644
--- a/lib/portage/output.py
+++ b/lib/portage/output.py
@@ -140,12 +140,16 @@ codes["darkyellow"] = codes["0xAAAA00"]
# Colors from /etc/init.d/functions.sh
-_styles["NORMAL"] = ("normal",)
-_styles["GOOD"] = ("green",)
-_styles["WARN"] = ("yellow",)
_styles["BAD"] = ("red",)
-_styles["HILITE"] = ("teal",)
_styles["BRACKET"] = ("blue",)
+_styles["ERR"] = ("red",)
+_styles["GOOD"] = ("green",)
+_styles["HILITE"] = ("teal",)
+_styles["INFO"] = ("darkgreen",)
+_styles["LOG"] = ("green",)
+_styles["NORMAL"] = ("normal",)
+_styles["QAWARN"] = ("brown",)
+_styles["WARN"] = ("yellow",)
# Portage functions
_styles["INFORM"] = ("darkgreen",)
@@ -377,7 +381,18 @@ def style_to_ansi_code(style):
def colormap():
mycolors = []
- for c in ("GOOD", "WARN", "BAD", "HILITE", "BRACKET", "NORMAL"):
+ for c in (
+ "BAD",
+ "BRACKET",
+ "ERR",
+ "GOOD",
+ "HILITE",
+ "INFO",
+ "LOG",
+ "NORMAL",
+ "QAWARN",
+ "WARN",
+ ):
mycolors.append("PORTAGE_COLOR_{}=$'{}'".format(c, style_to_ansi_code(c)))
return "\n".join(mycolors)
@@ -665,7 +680,7 @@ class EOutput:
if not self.quiet:
if self.__last_e_cmd == "ebegin":
self._write(out, "\n")
- self._write(out, colorize("BAD", " * ") + msg + "\n")
+ self._write(out, colorize("ERR", " * ") + msg + "\n")
self.__last_e_cmd = "eerror"
def einfo(self, msg):
@@ -679,7 +694,7 @@ class EOutput:
if not self.quiet:
if self.__last_e_cmd == "ebegin":
self._write(out, "\n")
- self._write(out, colorize("GOOD", " * ") + msg + "\n")
+ self._write(out, colorize("INFO", " * ") + msg + "\n")
self.__last_e_cmd = "einfo"
def einfon(self, msg):
@@ -693,9 +708,37 @@ class EOutput:
if not self.quiet:
if self.__last_e_cmd == "ebegin":
self._write(out, "\n")
- self._write(out, colorize("GOOD", " * ") + msg)
+ self._write(out, colorize("INFO", " * ") + msg)
self.__last_e_cmd = "einfon"
+ def eqawarn(self, msg):
+ """
+ Shows a QA warning.
+
+ @param msg: A very brief (shorter than one line) warning message.
+ @type msg: StringType
+ """
+ out = sys.stderr
+ if not self.quiet:
+ if self.__last_e_cmd == "ebegin":
+ self._write(out, "\n")
+ self._write(out, colorize("QAWARN", " * ") + msg + "\n")
+ self.__last_e_cmd = "ewarn"
+
+ def elog(self, msg):
+ """
+ Shows a logged informative message terminated with a newline.
+
+ @param msg: A very brief (shorter than one line) informative message.
+ @type msg: StringType
+ """
+ out = sys.stdout
+ if not self.quiet:
+ if self.__last_e_cmd == "ebegin":
+ self._write(out, "\n")
+ self._write(out, colorize("LOG", " * ") + msg + "\n")
+ self.__last_e_cmd = "elog"
+
def ewarn(self, msg):
"""
Shows a warning message.
--
2.33.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [gentoo-portage-dev] [PATCH 3/4] Use verbose prefixes for output messages
2021-09-28 14:20 [gentoo-portage-dev] [PATCH 0/4] Output rewrite for better clarify and greppability Michał Górny
2021-09-28 14:20 ` [gentoo-portage-dev] [PATCH 1/4] Prefix color vars with "PORTAGE_COLOR_" Michał Górny
2021-09-28 14:20 ` [gentoo-portage-dev] [PATCH 2/4] Use distinct colors for output msg types Michał Górny
@ 2021-09-28 14:20 ` Michał Górny
2021-09-28 14:20 ` [gentoo-portage-dev] [PATCH 4/4] Use ">>>>" and "!!!!" for output prefixes Michał Górny
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Michał Górny @ 2021-09-28 14:20 UTC (permalink / raw
To: gentoo-portage-dev; +Cc: Michał Górny
Use verbose prefixes for output functions einfo, elog... in order to
make the message types distinguishable on non-color terminals,
and to enable the possibility of grepping them. The prefixes are
roughly inspired by Xorg logs, and are:
- `[--]` for einfo (and ebegin)
- `[II]` for elog
- `[WW]` for ewarn
- `[QA]` for eqawarn
- `[EE]` for eerror
Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
bin/isolated-functions.sh | 12 ++++++------
lib/portage/output.py | 12 ++++++------
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh
index df806d403..c7fda6784 100644
--- a/bin/isolated-functions.sh
+++ b/bin/isolated-functions.sh
@@ -270,7 +270,7 @@ eqawarn() {
__elog_base QA "$*"
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
echo -e "$@" | while read -r ; do
- echo " ${PORTAGE_COLOR_QAWARN}*${PORTAGE_COLOR_NORMAL} ${REPLY}" >&2
+ echo "${PORTAGE_COLOR_QAWARN}[QA]${PORTAGE_COLOR_NORMAL} ${REPLY}" >&2
done
LAST_E_CMD="eqawarn"
return 0
@@ -280,7 +280,7 @@ elog() {
__elog_base LOG "$*"
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
echo -e "$@" | while read -r ; do
- echo " ${PORTAGE_COLOR_LOG}*${PORTAGE_COLOR_NORMAL} ${REPLY}" >&2
+ echo "${PORTAGE_COLOR_LOG}[II]${PORTAGE_COLOR_NORMAL} ${REPLY}" >&2
done
LAST_E_CMD="elog"
return 0
@@ -290,7 +290,7 @@ einfo() {
__elog_base INFO "$*"
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
echo -e "$@" | while read -r ; do
- echo " ${PORTAGE_COLOR_INFO}*${PORTAGE_COLOR_NORMAL} ${REPLY}" >&2
+ echo "${PORTAGE_COLOR_INFO}[--]${PORTAGE_COLOR_NORMAL} ${REPLY}" >&2
done
LAST_E_CMD="einfo"
return 0
@@ -299,7 +299,7 @@ einfo() {
einfon() {
__elog_base INFO "$*"
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
- echo -ne " ${PORTAGE_COLOR_INFO}*${PORTAGE_COLOR_NORMAL} $*" >&2
+ echo -ne "${PORTAGE_COLOR_INFO}[--]${PORTAGE_COLOR_NORMAL} $*" >&2
LAST_E_CMD="einfon"
return 0
}
@@ -308,7 +308,7 @@ ewarn() {
__elog_base WARN "$*"
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
echo -e "$@" | while read -r ; do
- echo " ${PORTAGE_COLOR_WARN}*${PORTAGE_COLOR_NORMAL} ${RC_INDENTATION}${REPLY}" >&2
+ echo "${PORTAGE_COLOR_WARN}[WW]${PORTAGE_COLOR_NORMAL} ${RC_INDENTATION}${REPLY}" >&2
done
LAST_E_CMD="ewarn"
return 0
@@ -318,7 +318,7 @@ eerror() {
__elog_base ERROR "$*"
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
echo -e "$@" | while read -r ; do
- echo " ${PORTAGE_COLOR_ERR}*${PORTAGE_COLOR_NORMAL} ${RC_INDENTATION}${REPLY}" >&2
+ echo "${PORTAGE_COLOR_ERR}[EE]${PORTAGE_COLOR_NORMAL} ${RC_INDENTATION}${REPLY}" >&2
done
LAST_E_CMD="eerror"
return 0
diff --git a/lib/portage/output.py b/lib/portage/output.py
index 42f487f8a..deae207fc 100644
--- a/lib/portage/output.py
+++ b/lib/portage/output.py
@@ -680,7 +680,7 @@ class EOutput:
if not self.quiet:
if self.__last_e_cmd == "ebegin":
self._write(out, "\n")
- self._write(out, colorize("ERR", " * ") + msg + "\n")
+ self._write(out, colorize("ERR", "[EE] ") + msg + "\n")
self.__last_e_cmd = "eerror"
def einfo(self, msg):
@@ -694,7 +694,7 @@ class EOutput:
if not self.quiet:
if self.__last_e_cmd == "ebegin":
self._write(out, "\n")
- self._write(out, colorize("INFO", " * ") + msg + "\n")
+ self._write(out, colorize("INFO", "[--] ") + msg + "\n")
self.__last_e_cmd = "einfo"
def einfon(self, msg):
@@ -708,7 +708,7 @@ class EOutput:
if not self.quiet:
if self.__last_e_cmd == "ebegin":
self._write(out, "\n")
- self._write(out, colorize("INFO", " * ") + msg)
+ self._write(out, colorize("INFO", "[--] ") + msg)
self.__last_e_cmd = "einfon"
def eqawarn(self, msg):
@@ -722,7 +722,7 @@ class EOutput:
if not self.quiet:
if self.__last_e_cmd == "ebegin":
self._write(out, "\n")
- self._write(out, colorize("QAWARN", " * ") + msg + "\n")
+ self._write(out, colorize("QAWARN", "[QA] ") + msg + "\n")
self.__last_e_cmd = "ewarn"
def elog(self, msg):
@@ -736,7 +736,7 @@ class EOutput:
if not self.quiet:
if self.__last_e_cmd == "ebegin":
self._write(out, "\n")
- self._write(out, colorize("LOG", " * ") + msg + "\n")
+ self._write(out, colorize("LOG", "[II] ") + msg + "\n")
self.__last_e_cmd = "elog"
def ewarn(self, msg):
@@ -750,7 +750,7 @@ class EOutput:
if not self.quiet:
if self.__last_e_cmd == "ebegin":
self._write(out, "\n")
- self._write(out, colorize("WARN", " * ") + msg + "\n")
+ self._write(out, colorize("WARN", "[WW] ") + msg + "\n")
self.__last_e_cmd = "ewarn"
def ewend(self, errno, *msg):
--
2.33.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [gentoo-portage-dev] [PATCH 4/4] Use ">>>>" and "!!!!" for output prefixes
2021-09-28 14:20 [gentoo-portage-dev] [PATCH 0/4] Output rewrite for better clarify and greppability Michał Górny
` (2 preceding siblings ...)
2021-09-28 14:20 ` [gentoo-portage-dev] [PATCH 3/4] Use verbose prefixes for output messages Michał Górny
@ 2021-09-28 14:20 ` Michał Górny
2021-09-28 15:28 ` [gentoo-portage-dev] [PATCH 0/4] Output rewrite for better clarify and greppability Mike Gilbert
2021-10-04 6:49 ` Michał Górny
5 siblings, 0 replies; 8+ messages in thread
From: Michał Górny @ 2021-09-28 14:20 UTC (permalink / raw
To: gentoo-portage-dev; +Cc: Michał Górny
Replace ">>>" with ">>>>" and "!!!" with "!!!!" output prefixes in order
to align Portage's messages with the new log output.
Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
bin/clean_locks | 2 +-
bin/dohtml.py | 2 +-
bin/doins.py | 2 +-
bin/ebuild | 8 +-
bin/ebuild-helpers/dobin | 2 +-
bin/ebuild-helpers/dodoc | 2 +-
bin/ebuild-helpers/doexe | 2 +-
bin/ebuild-helpers/doinfo | 2 +-
bin/ebuild-helpers/dolib | 2 +-
bin/ebuild-helpers/doman | 2 +-
bin/ebuild-helpers/domo | 2 +-
bin/ebuild-helpers/dosbin | 2 +-
bin/ebuild-helpers/dosed | 4 +-
bin/ebuild-helpers/keepdir | 2 +-
bin/ebuild-helpers/newins | 4 +-
bin/env-update | 2 +-
bin/fixpackages | 4 +-
bin/glsa-check | 14 +-
bin/install.py | 2 +-
bin/misc-functions.sh | 22 +--
bin/phase-functions.sh | 64 ++++-----
bin/phase-helpers.sh | 18 +--
bin/portageq | 6 +-
cnf/repo.postsync.d/example | 4 +-
lib/_emerge/Binpkg.py | 10 +-
| 4 +-
lib/_emerge/BinpkgVerifier.py | 12 +-
lib/_emerge/BlockerCache.py | 2 +-
lib/_emerge/BlockerDB.py | 2 +-
lib/_emerge/EbuildBuild.py | 2 +-
lib/_emerge/EbuildIpcDaemon.py | 2 +-
lib/_emerge/EbuildPhase.py | 2 +-
lib/_emerge/JobStatusDisplay.py | 2 +-
lib/_emerge/MergeListItem.py | 2 +-
lib/_emerge/PackageUninstall.py | 6 +-
lib/_emerge/Scheduler.py | 20 +--
lib/_emerge/SpawnProcess.py | 2 +-
lib/_emerge/SubProcess.py | 2 +-
lib/_emerge/actions.py | 126 ++++++++++--------
lib/_emerge/countdown.py | 4 +-
lib/_emerge/depgraph.py | 121 +++++++++--------
lib/_emerge/main.py | 6 +-
lib/_emerge/post_emerge.py | 4 +-
lib/_emerge/resolver/output_helpers.py | 4 +-
lib/_emerge/resolver/slot_collision.py | 16 +--
lib/_emerge/show_invalid_depstring_notice.py | 2 +-
lib/_emerge/unmerge.py | 44 +++---
lib/portage/__init__.py | 24 ++--
lib/portage/_selinux.py | 4 +-
lib/portage/_sets/shell.py | 2 +-
lib/portage/binrepo/config.py | 4 +-
lib/portage/data.py | 2 +-
lib/portage/dbapi/__init__.py | 2 +-
lib/portage/dbapi/bintree.py | 45 ++++---
lib/portage/dbapi/porttree.py | 12 +-
lib/portage/dbapi/vartree.py | 94 ++++++-------
lib/portage/dep/__init__.py | 48 +++----
lib/portage/elog/__init__.py | 2 +-
lib/portage/elog/messages.py | 5 +-
lib/portage/elog/mod_custom.py | 4 +-
lib/portage/elog/mod_mail_summary.py | 2 +-
lib/portage/elog/mod_save_summary.py | 2 +-
lib/portage/emaint/modules/binhost/binhost.py | 3 +-
lib/portage/env/loaders.py | 14 +-
lib/portage/getbinpkg.py | 32 ++---
lib/portage/locks.py | 2 +-
lib/portage/mail.py | 12 +-
lib/portage/manifest.py | 2 +-
lib/portage/metadata.py | 6 +-
lib/portage/news.py | 6 +-
.../ebuild/_config/LocationsManager.py | 10 +-
.../_parallel_manifest/ManifestProcess.py | 6 +-
.../_parallel_manifest/ManifestScheduler.py | 2 +-
.../ebuild/_parallel_manifest/ManifestTask.py | 6 +-
lib/portage/package/ebuild/config.py | 61 ++++-----
.../ebuild/deprecated_profile_check.py | 12 +-
lib/portage/package/ebuild/digestcheck.py | 24 ++--
lib/portage/package/ebuild/digestgen.py | 20 +--
lib/portage/package/ebuild/doebuild.py | 36 ++---
lib/portage/package/ebuild/fetch.py | 126 +++++++++---------
.../package/ebuild/prepare_build_dirs.py | 25 ++--
lib/portage/repository/config.py | 31 ++---
lib/portage/sync/config_checks.py | 12 +-
lib/portage/sync/controller.py | 6 +-
lib/portage/sync/modules/cvs/__init__.py | 2 +-
lib/portage/sync/modules/cvs/cvs.py | 4 +-
lib/portage/sync/modules/git/__init__.py | 4 +-
lib/portage/sync/modules/git/git.py | 14 +-
.../sync/modules/mercurial/mercurial.py | 4 +-
lib/portage/sync/modules/rsync/rsync.py | 60 ++++-----
lib/portage/sync/modules/svn/svn.py | 6 +-
lib/portage/sync/modules/webrsync/webrsync.py | 10 +-
lib/portage/sync/old_tree_timestamp.py | 2 +-
lib/portage/sync/syncbase.py | 6 +-
lib/portage/tests/resolver/test_autounmask.py | 6 +-
.../resolver/test_autounmask_use_breakage.py | 6 +-
...est_slot_conflict_unsatisfied_deep_deps.py | 12 +-
lib/portage/update.py | 4 +-
lib/portage/util/__init__.py | 30 ++---
.../util/_dyn_libs/PreservedLibsRegistry.py | 4 +-
.../util/_dyn_libs/display_preserved_libs.py | 4 +-
lib/portage/util/env_update.py | 8 +-
lib/portage/util/locale.py | 2 +-
lib/portage/util/movefile.py | 40 +++---
lib/portage/util/mtimedb.py | 5 +-
lib/portage/util/writeable_check.py | 4 +-
lib/portage/versions.py | 20 +--
lib/portage/xml/metadata.py | 18 +--
misc/emerge-delta-webrsync | 8 +-
repoman/lib/repoman/__init__.py | 12 +-
repoman/lib/repoman/actions.py | 24 ++--
repoman/lib/repoman/gpg.py | 2 +-
.../lib/repoman/modules/commit/manifest.py | 4 +-
repoman/lib/repoman/modules/vcs/cvs/status.py | 6 +-
.../lib/repoman/modules/vcs/git/changes.py | 2 +-
repoman/lib/repoman/modules/vcs/svn/status.py | 6 +-
repoman/lib/repoman/scanner.py | 4 +-
117 files changed, 834 insertions(+), 788 deletions(-)
diff --git a/bin/clean_locks b/bin/clean_locks
index e5765fd7e..14f3c857c 100755
--- a/bin/clean_locks
+++ b/bin/clean_locks
@@ -36,7 +36,7 @@ for x in sys.argv[1:]:
except OSError as e:
if e.errno in (errno.ENOENT, errno.ENOTDIR):
- print("!!! %s is not a directory or does not exist" % x)
+ print("!!!! %s is not a directory or does not exist" % x)
else:
raise
sys.exit(e.errno)
diff --git a/bin/dohtml.py b/bin/dohtml.py
index c7235ff4e..344ab7579 100755
--- a/bin/dohtml.py
+++ b/bin/dohtml.py
@@ -96,7 +96,7 @@ def install(basename, dirname, options, prefix=""):
).rstrip(os.sep)
if not os.path.exists(fullpath):
- sys.stderr.write("!!! dohtml: %s does not exist\n" % fullpath)
+ sys.stderr.write("!!!! dohtml: %s does not exist\n" % fullpath)
return False
elif os.path.isfile(fullpath):
ext = os.path.splitext(basename)[1][1:]
diff --git a/bin/doins.py b/bin/doins.py
index 97b0e2e2f..0f4c0fd3c 100644
--- a/bin/doins.py
+++ b/bin/doins.py
@@ -34,7 +34,7 @@ def _warn(helper, msg):
helper: helper executable name.
msg: Message to be output.
"""
- print("!!! %s: %s\n" % (helper, msg), file=sys.stderr)
+ print("!!!! %s: %s\n" % (helper, msg), file=sys.stderr)
def _parse_group(group):
diff --git a/bin/ebuild b/bin/ebuild
index 0a2b13a13..2cf004671 100755
--- a/bin/ebuild
+++ b/bin/ebuild
@@ -328,7 +328,7 @@ def stale_env_warning():
(tmpsettings["PF"], )
msg = textwrap.wrap(msg, 70)
for x in msg:
- portage.writemsg(">>> %s\n" % x)
+ portage.writemsg(">>>> %s\n" % x)
if ebuild_changed:
open(os.path.join(tmpsettings['PORTAGE_BUILDDIR'],
@@ -359,13 +359,13 @@ for arg in pargs:
msg = textwrap.wrap(str(e), 70)
del e
for x in msg:
- portage.writemsg("!!! %s\n" % x, noiselevel=-1)
+ portage.writemsg("!!!! %s\n" % x, noiselevel=-1)
a = 1
except PortagePackageException as e:
- portage.writemsg("!!! %s\n" % (e,), noiselevel=-1)
+ portage.writemsg("!!!! %s\n" % (e,), noiselevel=-1)
a = 1
except PermissionDenied as e:
- portage.writemsg("!!! Permission Denied: %s\n" % (e,), noiselevel=-1)
+ portage.writemsg("!!!! Permission Denied: %s\n" % (e,), noiselevel=-1)
a = 1
if a == None:
print("Could not run the required binary?")
diff --git a/bin/ebuild-helpers/dobin b/bin/ebuild-helpers/dobin
index 975067fb1..aaa3f2588 100755
--- a/bin/ebuild-helpers/dobin
+++ b/bin/ebuild-helpers/dobin
@@ -31,7 +31,7 @@ for x in "$@" ; do
if [[ -e ${x} ]] ; then
install -m0755 -o ${PORTAGE_INST_UID:-0} -g ${PORTAGE_INST_GID:-0} "${x}" "${ED%/}/${_E_DESTTREE_#/}/bin"
else
- echo "!!! ${0##*/}: $x does not exist" 1>&2
+ echo "!!!! ${0##*/}: $x does not exist" 1>&2
false
fi
((ret|=$?))
diff --git a/bin/ebuild-helpers/dodoc b/bin/ebuild-helpers/dodoc
index e83091045..30bc3ab0e 100755
--- a/bin/ebuild-helpers/dodoc
+++ b/bin/ebuild-helpers/dodoc
@@ -29,7 +29,7 @@ for x in "$@" ; do
elif [ -s "${x}" ] ; then
install -m0644 "${x}" "${dir}" || { ((ret|=1)); continue; }
elif [ ! -e "${x}" ] ; then
- echo "!!! ${0##*/}: $x does not exist" 1>&2
+ echo "!!!! ${0##*/}: $x does not exist" 1>&2
((ret|=1))
fi
done
diff --git a/bin/ebuild-helpers/doexe b/bin/ebuild-helpers/doexe
index 152c13bf6..27b4acc19 100755
--- a/bin/ebuild-helpers/doexe
+++ b/bin/ebuild-helpers/doexe
@@ -34,7 +34,7 @@ for x in "$@" ; do
if [ -e "$mysrc" ] ; then
install ${EXEOPTIONS} "$mysrc" "${ED%/}/${_E_EXEDESTTREE_#/}"
else
- echo "!!! ${0##*/}: $mysrc does not exist" 1>&2
+ echo "!!!! ${0##*/}: $mysrc does not exist" 1>&2
false
fi
((ret|=$?))
diff --git a/bin/ebuild-helpers/doinfo b/bin/ebuild-helpers/doinfo
index 30a38e055..515cdc3bb 100755
--- a/bin/ebuild-helpers/doinfo
+++ b/bin/ebuild-helpers/doinfo
@@ -21,7 +21,7 @@ install -m0644 "$@" "${ED%/}/usr/share/info"
rval=$?
if [ $rval -ne 0 ] ; then
for x in "$@" ; do
- [ -e "$x" ] || echo "!!! ${0##*/}: $x does not exist" 1>&2
+ [ -e "$x" ] || echo "!!!! ${0##*/}: $x does not exist" 1>&2
done
__helpers_die "${0##*/} failed"
fi
diff --git a/bin/ebuild-helpers/dolib b/bin/ebuild-helpers/dolib
index bd8eebca7..8975611c6 100755
--- a/bin/ebuild-helpers/dolib
+++ b/bin/ebuild-helpers/dolib
@@ -50,7 +50,7 @@ for x in "$@" ; do
ln -s "$(readlink "${x}")" "${libdir}/${x##*/}"
fi
else
- echo "!!! ${0##*/}: ${x} does not exist" 1>&2
+ echo "!!!! ${0##*/}: ${x} does not exist" 1>&2
false
fi
((ret|=$?))
diff --git a/bin/ebuild-helpers/doman b/bin/ebuild-helpers/doman
index 9cfc89df0..1b56e08dd 100755
--- a/bin/ebuild-helpers/doman
+++ b/bin/ebuild-helpers/doman
@@ -56,7 +56,7 @@ for x in "$@" ; do
install -m0644 "${x}" "${ED%/}/usr/share/man/${mandir}/${name}"
((ret|=$?))
elif [[ ! -e ${x} ]] ; then
- echo "!!! ${0##*/}: $x does not exist" 1>&2
+ echo "!!!! ${0##*/}: $x does not exist" 1>&2
((ret|=1))
fi
else
diff --git a/bin/ebuild-helpers/domo b/bin/ebuild-helpers/domo
index 2e95eb751..416e15ae6 100755
--- a/bin/ebuild-helpers/domo
+++ b/bin/ebuild-helpers/domo
@@ -42,7 +42,7 @@ for x in "$@" ; do
fi
install -m0644 "${x}" "${mydir}/${MOPREFIX}.mo"
else
- echo "!!! ${0##*/}: $x does not exist" 1>&2
+ echo "!!!! ${0##*/}: $x does not exist" 1>&2
false
fi
((ret|=$?))
diff --git a/bin/ebuild-helpers/dosbin b/bin/ebuild-helpers/dosbin
index ac0ab37ca..db99ab17a 100755
--- a/bin/ebuild-helpers/dosbin
+++ b/bin/ebuild-helpers/dosbin
@@ -31,7 +31,7 @@ for x in "$@" ; do
if [[ -e ${x} ]] ; then
install -m0755 -o ${PORTAGE_INST_UID:-0} -g ${PORTAGE_INST_GID:-0} "${x}" "${ED%/}/${_E_DESTTREE_#/}/sbin"
else
- echo "!!! ${0##*/}: ${x} does not exist" 1>&2
+ echo "!!!! ${0##*/}: ${x} does not exist" 1>&2
false
fi
((ret|=$?))
diff --git a/bin/ebuild-helpers/dosed b/bin/ebuild-helpers/dosed
index 37c8a29d3..9c75cbf64 100755
--- a/bin/ebuild-helpers/dosed
+++ b/bin/ebuild-helpers/dosed
@@ -10,7 +10,7 @@ if ! ___eapi_has_dosed; then
fi
if [[ $# -lt 1 ]] ; then
- echo "!!! ${0##*/}: at least one argument needed" >&2
+ echo "!!!! ${0##*/}: at least one argument needed" >&2
exit 1
fi
@@ -39,7 +39,7 @@ for x in "$@" ; do
done
if [ $file_found = 0 ] ; then
- echo "!!! ${0##*/}: $y does not exist" 1>&2
+ echo "!!!! ${0##*/}: $y does not exist" 1>&2
((ret|=1))
fi
diff --git a/bin/ebuild-helpers/keepdir b/bin/ebuild-helpers/keepdir
index a3c0c151c..0ea23ad1b 100755
--- a/bin/ebuild-helpers/keepdir
+++ b/bin/ebuild-helpers/keepdir
@@ -13,7 +13,7 @@ ret=$?
for x in "$@"; do
>> "${ED%/}/${x#/}/.keep_${CATEGORY}_${PN}-${SLOT%/*}" || \
- { echo "!!! ${0##*/}: cannot write .keep in ${ED%/}/${x#/}" 1>&2; ret=1; }
+ { echo "!!!! ${0##*/}: cannot write .keep in ${ED%/}/${x#/}" 1>&2; ret=1; }
done
[[ ${ret} -ne 0 ]] && __helpers_die "${0##*/} failed"
diff --git a/bin/ebuild-helpers/newins b/bin/ebuild-helpers/newins
index 30e54b7e5..dcb779913 100755
--- a/bin/ebuild-helpers/newins
+++ b/bin/ebuild-helpers/newins
@@ -24,14 +24,14 @@ trap 'rm -rf "${TMP}"' EXIT
if [[ ${stdin} ]] ; then
if [[ -t 0 ]] ; then
- __helpers_die "!!! ${helper}: Input is from a terminal"
+ __helpers_die "!!!! ${helper}: Input is from a terminal"
exit 1
fi
cat > "${TMP}/$2"
ret=$?
else
if [[ ! -e $1 ]] ; then
- __helpers_die "!!! ${helper}: $1 does not exist"
+ __helpers_die "!!!! ${helper}: $1 does not exist"
exit 1
fi
diff --git a/bin/env-update b/bin/env-update
index 6571b0011..4fe916a6a 100755
--- a/bin/env-update
+++ b/bin/env-update
@@ -20,7 +20,7 @@ if "--no-ldconfig" in sys.argv:
sys.argv.pop(sys.argv.index("--no-ldconfig"))
if len(sys.argv) > 1:
- print("!!! Invalid command line options!\n")
+ print("!!!! Invalid command line options!\n")
usage(1)
from os import path as osp
diff --git a/bin/fixpackages b/bin/fixpackages
index e56d26ec1..b4d6f6a1d 100755
--- a/bin/fixpackages
+++ b/bin/fixpackages
@@ -38,9 +38,9 @@ if mysettings['ROOT'] != "/":
try:
os.nice(int(mysettings.get("PORTAGE_NICENESS", "0")))
except (OSError, ValueError) as e:
- portage.writemsg("!!! Failed to change nice value to '%s'\n" % \
+ portage.writemsg("!!!! Failed to change nice value to '%s'\n" % \
mysettings["PORTAGE_NICENESS"])
- portage.writemsg("!!! %s\n" % str(e))
+ portage.writemsg("!!!! %s\n" % str(e))
del e
_global_updates(mytrees, mtimedb["updates"], if_mtime_changed=False)
diff --git a/bin/glsa-check b/bin/glsa-check
index c8610f7df..db6d95894 100755
--- a/bin/glsa-check
+++ b/bin/glsa-check
@@ -233,16 +233,16 @@ if mode in ["dump", "fix", "inject", "pretend"]:
sys.stdout.write("Fixing GLSA "+myid+"\n")
if not myglsa.isVulnerable():
if not quiet:
- sys.stdout.write(">>> no vulnerable packages installed\n")
+ sys.stdout.write(">>>> no vulnerable packages installed\n")
else:
if quiet:
sys.stdout.write("Fixing GLSA "+myid+"\n")
mergelist = myglsa.getMergeList(least_change=least_change)
if mergelist == []:
- sys.stdout.write(">>> cannot fix GLSA, no unaffected packages available\n")
+ sys.stdout.write(">>>> cannot fix GLSA, no unaffected packages available\n")
sys.exit(2)
for pkg in mergelist:
- sys.stdout.write(">>> merging "+pkg+"\n")
+ sys.stdout.write(">>>> merging "+pkg+"\n")
# using emerge for the actual merging as it contains the dependency
# code and we want to be consistent in behaviour. Also this functionality
# will be integrated in emerge later, so it shouldn't hurt much.
@@ -262,7 +262,7 @@ if mode in ["dump", "fix", "inject", "pretend"]:
sys.stdout.write("Checking GLSA "+myid+"\n")
if not myglsa.isVulnerable():
if not quiet:
- sys.stdout.write(">>> no vulnerable packages installed\n")
+ sys.stdout.write(">>>> no vulnerable packages installed\n")
else:
if quiet:
sys.stdout.write("Checking GLSA "+myid+"\n")
@@ -272,19 +272,19 @@ if mode in ["dump", "fix", "inject", "pretend"]:
# first, extract the atoms that cannot be upgraded (where key == "")
no_upgrades = []
- sys.stdout.write(">>> The following updates will be performed for this GLSA:\n")
+ sys.stdout.write(">>>> The following updates will be performed for this GLSA:\n")
if "" in mergedict:
no_upgrades = mergedict[""]
del mergedict[""]
# see if anything is left that can be upgraded
if mergedict:
- sys.stdout.write(">>> Updates that will be performed:\n")
+ sys.stdout.write(">>>> Updates that will be performed:\n")
for (upd, vuln) in mergedict.items():
sys.stdout.write(" " + green(upd) + " (vulnerable: " + red(", ".join(vuln)) + ")\n")
if no_upgrades:
- sys.stdout.write(">>> No upgrade path exists for these packages:\n")
+ sys.stdout.write(">>>> No upgrade path exists for these packages:\n")
sys.stdout.write(" " + red(", ".join(no_upgrades)) + "\n")
sys.stdout.write("\n")
elif mode == "inject":
diff --git a/bin/install.py b/bin/install.py
index d6faeb6a4..e53200c42 100755
--- a/bin/install.py
+++ b/bin/install.py
@@ -173,7 +173,7 @@ def main(args):
returncode = copy_xattrs(opts, files)
if returncode != os.EX_OK:
portage.util.writemsg(
- "!!! install: copy_xattrs failed with the "
+ "!!!! install: copy_xattrs failed with the "
"following arguments: %s\n"
% " ".join(portage._shell_quote(x) for x in args),
noiselevel=-1,
diff --git a/bin/misc-functions.sh b/bin/misc-functions.sh
index e4defa550..8a4c913b5 100755
--- a/bin/misc-functions.sh
+++ b/bin/misc-functions.sh
@@ -255,8 +255,8 @@ install_qa_check() {
__dyn_instprep() {
if [[ -e ${PORTAGE_BUILDDIR}/.instprepped ]] ; then
- __vecho ">>> It appears that '$PF' is already instprepped; skipping."
- __vecho ">>> Remove '${PORTAGE_BUILDDIR}/.instprepped' to force instprep."
+ __vecho ">>>> It appears that '$PF' is already instprepped; skipping."
+ __vecho ">>>> Remove '${PORTAGE_BUILDDIR}/.instprepped' to force instprep."
return 0
fi
@@ -398,11 +398,11 @@ preinst_sfperms() {
find "${ED}" -type f -perm -4000 -print0 | \
while read -r -d $'\0' i ; do
if [ -n "$(find "$i" -perm -2000)" ] ; then
- ebegin ">>> SetUID and SetGID: [chmod o-r] ${i#${ED%/}}"
+ ebegin ">>>> SetUID and SetGID: [chmod o-r] ${i#${ED%/}}"
chmod o-r "$i"
eend $?
else
- ebegin ">>> SetUID: [chmod go-r] ${i#${ED%/}}"
+ ebegin ">>>> SetUID: [chmod go-r] ${i#${ED%/}}"
chmod go-r "$i"
eend $?
fi
@@ -414,7 +414,7 @@ preinst_sfperms() {
# by the SetUID check above.
true
else
- ebegin ">>> SetGID: [chmod o-r] ${i#${ED%/}}"
+ ebegin ">>>> SetGID: [chmod o-r] ${i#${ED%/}}"
chmod o-r "$i"
eend $?
fi
@@ -440,19 +440,19 @@ preinst_suid_scan() {
# to files outside of the sandbox, but this
# can easly be bypassed using the addwrite() function
addwrite "${sfconf}"
- __vecho ">>> Performing suid scan in ${ED}"
+ __vecho ">>>> Performing suid scan in ${ED}"
for i in $(find "${ED}" -type f \( -perm -4000 -o -perm -2000 \) ); do
if [ -s "${sfconf}" ]; then
install_path=${i#${ED%/}}
if grep -q "^${install_path}\$" "${sfconf}" ; then
__vecho "- ${install_path} is an approved suid file"
else
- __vecho ">>> Removing sbit on non registered ${install_path}"
+ __vecho ">>>> Removing sbit on non registered ${install_path}"
LC_ALL=C sleep 1.5
ls_ret=$(ls -ldh "${i}")
chmod ugo-s "${i}"
grep "^#${install_path}$" "${sfconf}" > /dev/null || {
- __vecho ">>> Appending commented out entry to ${sfconf} for ${PF}"
+ __vecho ">>>> Appending commented out entry to ${sfconf} for ${PF}"
echo "## ${ls_ret%${ED%/}*}${install_path}" >> "${sfconf}"
echo "#${install_path}" >> "${sfconf}"
# no delwrite() eh?
@@ -476,7 +476,7 @@ preinst_selinux_labels() {
# only attempt to label if setfiles is executable
# and 'context' is available on selinuxfs.
if [ -f /sys/fs/selinux/context -a -x /usr/sbin/setfiles -a -x /usr/sbin/selinuxconfig ]; then
- __vecho ">>> Setting SELinux security labels"
+ __vecho ">>>> Setting SELinux security labels"
(
eval "$(/usr/sbin/selinuxconfig)" || \
die "Failed to determine SELinux policy paths.";
@@ -488,7 +488,7 @@ preinst_selinux_labels() {
else
# nonfatal, since merging can happen outside a SE kernel
# like during a recovery situation
- __vecho "!!! Unable to set SELinux security labels"
+ __vecho "!!!! Unable to set SELinux security labels"
fi
fi
}
@@ -534,7 +534,7 @@ __dyn_package() {
fi
[ -n "${md5_hash}" ] && \
echo ${md5_hash} > "${PORTAGE_BUILDDIR}"/build-info/BINPKGMD5
- __vecho ">>> Done."
+ __vecho ">>>> Done."
cd "${PORTAGE_BUILDDIR}"
>> "$PORTAGE_BUILDDIR/.packaged" || \
diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh
index 9a4c97b16..967af68b5 100644
--- a/bin/phase-functions.sh
+++ b/bin/phase-functions.sh
@@ -219,8 +219,8 @@ __ebuild_phase_with_hooks() {
__dyn_pretend() {
if [[ -e $PORTAGE_BUILDDIR/.pretended ]] ; then
- __vecho ">>> It appears that '$PF' is already pretended; skipping."
- __vecho ">>> Remove '$PORTAGE_BUILDDIR/.pretended' to force pretend."
+ __vecho ">>>> It appears that '$PF' is already pretended; skipping."
+ __vecho ">>>> Remove '$PORTAGE_BUILDDIR/.pretended' to force pretend."
return 0
fi
__ebuild_phase pre_pkg_pretend
@@ -232,8 +232,8 @@ __dyn_pretend() {
__dyn_setup() {
if [[ -e $PORTAGE_BUILDDIR/.setuped ]] ; then
- __vecho ">>> It appears that '$PF' is already setup; skipping."
- __vecho ">>> Remove '$PORTAGE_BUILDDIR/.setuped' to force setup."
+ __vecho ">>>> It appears that '$PF' is already setup; skipping."
+ __vecho ">>>> Remove '$PORTAGE_BUILDDIR/.setuped' to force setup."
return 0
fi
__ebuild_phase pre_pkg_setup
@@ -245,7 +245,7 @@ __dyn_setup() {
__dyn_unpack() {
if [[ -f ${PORTAGE_BUILDDIR}/.unpacked ]] ; then
- __vecho ">>> WORKDIR is up-to-date, keeping..."
+ __vecho ">>>> WORKDIR is up-to-date, keeping..."
return 0
fi
if [ ! -d "${WORKDIR}" ]; then
@@ -253,11 +253,11 @@ __dyn_unpack() {
fi
cd "${WORKDIR}" || die "Directory change failed: \`cd '${WORKDIR}'\`"
__ebuild_phase pre_src_unpack
- __vecho ">>> Unpacking source..."
+ __vecho ">>>> Unpacking source..."
__ebuild_phase src_unpack
>> "$PORTAGE_BUILDDIR/.unpacked" || \
die "Failed to create $PORTAGE_BUILDDIR/.unpacked"
- __vecho ">>> Source unpacked in ${WORKDIR}"
+ __vecho ">>>> Source unpacked in ${WORKDIR}"
__ebuild_phase post_src_unpack
}
@@ -370,8 +370,8 @@ __has_phase_defined_up_to() {
__dyn_prepare() {
if [[ -e $PORTAGE_BUILDDIR/.prepared ]] ; then
- __vecho ">>> It appears that '$PF' is already prepared; skipping."
- __vecho ">>> Remove '$PORTAGE_BUILDDIR/.prepared' to force prepare."
+ __vecho ">>>> It appears that '$PF' is already prepared; skipping."
+ __vecho ">>>> Remove '$PORTAGE_BUILDDIR/.prepared' to force prepare."
return 0
fi
@@ -388,7 +388,7 @@ __dyn_prepare() {
trap __abort_prepare SIGINT SIGQUIT
__ebuild_phase pre_src_prepare
- __vecho ">>> Preparing source in $PWD ..."
+ __vecho ">>>> Preparing source in $PWD ..."
__ebuild_phase src_prepare
# keep path in eapply_user in sync!
@@ -398,7 +398,7 @@ __dyn_prepare() {
>> "$PORTAGE_BUILDDIR/.prepared" || \
die "Failed to create $PORTAGE_BUILDDIR/.prepared"
- __vecho ">>> Source prepared."
+ __vecho ">>>> Source prepared."
__ebuild_phase post_src_prepare
trap - SIGINT SIGQUIT
@@ -407,8 +407,8 @@ __dyn_prepare() {
__dyn_configure() {
if [[ -e $PORTAGE_BUILDDIR/.configured ]] ; then
- __vecho ">>> It appears that '$PF' is already configured; skipping."
- __vecho ">>> Remove '$PORTAGE_BUILDDIR/.configured' to force configuration."
+ __vecho ">>>> It appears that '$PF' is already configured; skipping."
+ __vecho ">>>> Remove '$PORTAGE_BUILDDIR/.configured' to force configuration."
return 0
fi
@@ -426,11 +426,11 @@ __dyn_configure() {
__ebuild_phase pre_src_configure
- __vecho ">>> Configuring source in $PWD ..."
+ __vecho ">>>> Configuring source in $PWD ..."
__ebuild_phase src_configure
>> "$PORTAGE_BUILDDIR/.configured" || \
die "Failed to create $PORTAGE_BUILDDIR/.configured"
- __vecho ">>> Source configured."
+ __vecho ">>>> Source configured."
__ebuild_phase post_src_configure
@@ -440,8 +440,8 @@ __dyn_configure() {
__dyn_compile() {
if [[ -e $PORTAGE_BUILDDIR/.compiled ]] ; then
- __vecho ">>> It appears that '${PF}' is already compiled; skipping."
- __vecho ">>> Remove '$PORTAGE_BUILDDIR/.compiled' to force compilation."
+ __vecho ">>>> It appears that '${PF}' is already compiled; skipping."
+ __vecho ">>>> Remove '$PORTAGE_BUILDDIR/.compiled' to force compilation."
return 0
fi
@@ -459,11 +459,11 @@ __dyn_compile() {
__ebuild_phase pre_src_compile
- __vecho ">>> Compiling source in $PWD ..."
+ __vecho ">>>> Compiling source in $PWD ..."
__ebuild_phase src_compile
>> "$PORTAGE_BUILDDIR/.compiled" || \
die "Failed to create $PORTAGE_BUILDDIR/.compiled"
- __vecho ">>> Source compiled."
+ __vecho ">>>> Source compiled."
__ebuild_phase post_src_compile
@@ -473,8 +473,8 @@ __dyn_compile() {
__dyn_test() {
if [[ -e $PORTAGE_BUILDDIR/.tested ]] ; then
- __vecho ">>> It appears that ${PN} has already been tested; skipping."
- __vecho ">>> Remove '${PORTAGE_BUILDDIR}/.tested' to force test."
+ __vecho ">>>> It appears that ${PN} has already been tested; skipping."
+ __vecho ">>>> Remove '${PORTAGE_BUILDDIR}/.tested' to force test."
return
fi
@@ -494,20 +494,20 @@ __dyn_test() {
! { has test_network ${PORTAGE_PROPERTIES} && has network ${ALLOW_TEST}; }
then
einfo "Skipping make test/check due to ebuild restriction."
- __vecho ">>> Test phase [disabled because of RESTRICT=test]: ${CATEGORY}/${PF}"
+ __vecho ">>>> Test phase [disabled because of RESTRICT=test]: ${CATEGORY}/${PF}"
# If ${EBUILD_FORCE_TEST} == 1 and FEATURES came from ${T}/environment
# then it might not have FEATURES=test like it's supposed to here.
elif [[ ${EBUILD_FORCE_TEST} != 1 ]] && ! has test ${FEATURES} ; then
- __vecho ">>> Test phase [not enabled]: ${CATEGORY}/${PF}"
+ __vecho ">>>> Test phase [not enabled]: ${CATEGORY}/${PF}"
else
local save_sp=${SANDBOX_PREDICT}
addpredict /
__ebuild_phase pre_src_test
- __vecho ">>> Test phase: ${CATEGORY}/${PF}"
+ __vecho ">>>> Test phase: ${CATEGORY}/${PF}"
__ebuild_phase src_test
- __vecho ">>> Completed testing ${CATEGORY}/${PF}"
+ __vecho ">>>> Completed testing ${CATEGORY}/${PF}"
>> "$PORTAGE_BUILDDIR/.tested" || \
die "Failed to create $PORTAGE_BUILDDIR/.tested"
@@ -523,8 +523,8 @@ __dyn_install() {
if has noauto $FEATURES ; then
rm -f "${PORTAGE_BUILDDIR}/.installed"
elif [[ -e $PORTAGE_BUILDDIR/.installed ]] ; then
- __vecho ">>> It appears that '${PF}' is already installed; skipping."
- __vecho ">>> Remove '${PORTAGE_BUILDDIR}/.installed' to force install."
+ __vecho ">>>> It appears that '${PF}' is already installed; skipping."
+ __vecho ">>>> Remove '${PORTAGE_BUILDDIR}/.installed' to force install."
return 0
fi
trap "__abort_install" SIGINT SIGQUIT
@@ -578,7 +578,7 @@ __dyn_install() {
fi
__vecho
- __vecho ">>> Install ${CATEGORY}/${PF} into ${D}"
+ __vecho ">>>> Install ${CATEGORY}/${PF} into ${D}"
#our custom version of libtool uses $S and $D to fix
#invalid paths in .la files
export S D
@@ -599,7 +599,7 @@ __dyn_install() {
__ebuild_phase src_install
>> "$PORTAGE_BUILDDIR/.installed" || \
die "Failed to create $PORTAGE_BUILDDIR/.installed"
- __vecho ">>> Completed installing ${CATEGORY}/${PF} into ${D}"
+ __vecho ">>>> Completed installing ${CATEGORY}/${PF} into ${D}"
__vecho
__ebuild_phase post_src_install
@@ -1031,11 +1031,11 @@ __ebuild_main() {
if has noauto $FEATURES && \
[[ ! -f $PORTAGE_BUILDDIR/.unpacked ]] ; then
echo
- echo "!!! We apparently haven't unpacked..." \
+ echo "!!!! We apparently haven't unpacked..." \
"This is probably not what you"
- echo "!!! want to be doing... You are using" \
+ echo "!!!! want to be doing... You are using" \
"FEATURES=noauto so I'll assume"
- echo "!!! that you know what you are doing..." \
+ echo "!!!! that you know what you are doing..." \
"You have 5 seconds to abort..."
echo
diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh
index 94f4f24f2..3ccb58a9b 100644
--- a/bin/phase-helpers.sh
+++ b/bin/phase-helpers.sh
@@ -269,8 +269,8 @@ use() {
use_with() {
if [ -z "$1" ]; then
- echo "!!! use_with() called without a parameter." >&2
- echo "!!! use_with <USEFLAG> [<flagname> [value]]" >&2
+ echo "!!!! use_with() called without a parameter." >&2
+ echo "!!!! use_with <USEFLAG> [<flagname> [value]]" >&2
return 1
fi
@@ -291,8 +291,8 @@ use_with() {
use_enable() {
if [ -z "$1" ]; then
- echo "!!! use_enable() called without a parameter." >&2
- echo "!!! use_enable <USEFLAG> [<flagname> [value]]" >&2
+ echo "!!!! use_enable() called without a parameter." >&2
+ echo "!!!! use_enable <USEFLAG> [<flagname> [value]]" >&2
return 1
fi
@@ -321,7 +321,7 @@ unpack() {
[ -z "$*" ] && die "Nothing passed to the 'unpack' command"
for x in "$@"; do
- __vecho ">>> Unpacking ${x} to ${PWD}"
+ __vecho ">>>> Unpacking ${x} to ${PWD}"
suffix=${x##*.}
suffix_insensitive=$(LC_ALL=C tr "[:upper:]" "[:lower:]" <<< "${suffix}")
y=${x%.*}
@@ -703,8 +703,8 @@ econf() {
if [ -s config.log ]; then
echo
- echo "!!! Please attach the following file when seeking support:"
- echo "!!! ${PWD}/config.log"
+ echo "!!!! Please attach the following file when seeking support:"
+ echo "!!!! ${PWD}/config.log"
fi
# econf dies unconditionally in EAPIs 0 to 3
___eapi_helpers_can_die || die "econf failed"
@@ -1188,8 +1188,8 @@ if ___eapi_has_in_iuse; then
local use=${1}
if [[ -z "${use}" ]]; then
- echo "!!! in_iuse() called without a parameter." >&2
- echo "!!! in_iuse <USEFLAG>" >&2
+ echo "!!!! in_iuse() called without a parameter." >&2
+ echo "!!!! in_iuse <USEFLAG>" >&2
die "in_iuse() called without a parameter"
fi
diff --git a/bin/portageq b/bin/portageq
index d3cb9f140..9f94d001b 100755
--- a/bin/portageq
+++ b/bin/portageq
@@ -1304,9 +1304,9 @@ def add_pquery_arguments(parser):
def usage(argv):
- print(">>> Portage information query tool")
- print(">>> %s" % portage.VERSION)
- print(">>> Usage: portageq <command> [<option> ...]")
+ print(">>>> Portage information query tool")
+ print(">>>> %s" % portage.VERSION)
+ print(">>>> Usage: portageq <command> [<option> ...]")
print("")
print("Available commands:")
diff --git a/cnf/repo.postsync.d/example b/cnf/repo.postsync.d/example
index 72d91a60e..ac29cd416 100644
--- a/cnf/repo.postsync.d/example
+++ b/cnf/repo.postsync.d/example
@@ -41,7 +41,7 @@ if [ -n "${repository_name}" ]; then
if [ "${repository_name}" != "gentoo" ]; then
if ! egencache --update --repo="${repository_name}" --jobs=4
then
- echo "!!! egencache failed!"
+ echo "!!!! egencache failed!"
ret=1
fi
fi
@@ -55,7 +55,7 @@ if [ -n "${repository_name}" ] && ! [ -e "${repository_path}/metadata/pkg_desc_i
# does not interfere with repository verification.
if ! egencache --update-pkg-desc-index --external-cache-only --repo="${repository_name}" ${PORTAGE_VERBOSE+--verbose}
then
- echo "!!! egencache failed!"
+ echo "!!!! egencache failed!"
ret=1
fi
fi
diff --git a/lib/_emerge/Binpkg.py b/lib/_emerge/Binpkg.py
index c7dde69bd..ae83b6b75 100644
--- a/lib/_emerge/Binpkg.py
+++ b/lib/_emerge/Binpkg.py
@@ -323,7 +323,7 @@ class Binpkg(CompositeTask):
# This initializes PORTAGE_LOG_FILE.
portage.prepare_build_dirs(self.settings["ROOT"], self.settings, 1)
- self._writemsg_level(">>> Extracting info\n")
+ self._writemsg_level(">>>> Extracting info\n")
await self._bintree.dbapi.unpack_metadata(
self.settings, infloc, loop=self.scheduler
@@ -404,7 +404,7 @@ class Binpkg(CompositeTask):
self._async_unlock_builddir(returncode=self.returncode)
return
- self._writemsg_level(">>> Extracting %s\n" % self.pkg.cpv)
+ self._writemsg_level(">>>> Extracting %s\n" % self.pkg.cpv)
self._start_task(
AsyncTaskFuture(
future=self._bintree.dbapi.unpack_contents(
@@ -418,7 +418,7 @@ class Binpkg(CompositeTask):
if self._default_exit(unpack_contents) != os.EX_OK:
unpack_contents.future.result()
self._writemsg_level(
- "!!! Error Extracting '%s'\n" % self._pkg_path,
+ "!!!! Error Extracting '%s'\n" % self._pkg_path,
noiselevel=-1,
level=logging.ERROR,
)
@@ -462,13 +462,13 @@ class Binpkg(CompositeTask):
scheduler=self.scheduler,
logfile=self.settings.get("PORTAGE_LOG_FILE"),
)
- self._writemsg_level(">>> Adjusting Prefix to %s\n" % self.settings["EPREFIX"])
+ self._writemsg_level(">>>> Adjusting Prefix to %s\n" % self.settings["EPREFIX"])
self._start_task(chpathtool, self._chpathtool_exit)
def _chpathtool_exit(self, chpathtool):
if self._final_exit(chpathtool) != os.EX_OK:
self._writemsg_level(
- "!!! Error Adjusting Prefix to %s\n" % (self.settings["EPREFIX"],),
+ "!!!! Error Adjusting Prefix to %s\n" % (self.settings["EPREFIX"],),
noiselevel=-1,
level=logging.ERROR,
)
--git a/lib/_emerge/BinpkgExtractorAsync.py b/lib/_emerge/BinpkgExtractorAsync.py
index a0380a0a4..9219882fe 100644
--- a/lib/_emerge/BinpkgExtractorAsync.py
+++ b/lib/_emerge/BinpkgExtractorAsync.py
@@ -58,7 +58,7 @@ class BinpkgExtractorAsync(SpawnProcess):
decomp_cmd = None
if decomp_cmd is None:
self.scheduler.output(
- "!!! %s\n"
+ "!!!! %s\n"
% _("File compression header unrecognized: %s")
% self.pkg_path,
log_path=self.logfile,
@@ -90,7 +90,7 @@ class BinpkgExtractorAsync(SpawnProcess):
if find_binary(decompression_binary) is None:
missing_package = decomp.get("package")
self.scheduler.output(
- "!!! %s\n"
+ "!!!! %s\n"
% _(
"File compression unsupported %s.\n Command was: %s.\n Maybe missing package: %s"
)
diff --git a/lib/_emerge/BinpkgVerifier.py b/lib/_emerge/BinpkgVerifier.py
index 6d8efb9c4..7a0a40028 100644
--- a/lib/_emerge/BinpkgVerifier.py
+++ b/lib/_emerge/BinpkgVerifier.py
@@ -43,7 +43,7 @@ class BinpkgVerifier(CompositeTask):
if e.errno not in (errno.ENOENT, errno.ESTALE):
raise
self.scheduler.output(
- ("!!! Fetching Binary failed " "for '%s'\n") % self.pkg.cpv,
+ ("!!!! Fetching Binary failed " "for '%s'\n") % self.pkg.cpv,
log_path=self.logfile,
background=self.background,
)
@@ -127,11 +127,11 @@ class BinpkgVerifier(CompositeTask):
self.scheduler.output(
(
- "\n!!! Digest verification failed:\n"
- "!!! %s\n"
- "!!! Reason: Failed on %s verification\n"
- "!!! Got: %s\n"
- "!!! Expected: %s\n"
+ "\n!!!! Digest verification failed:\n"
+ "!!!! %s\n"
+ "!!!! Reason: Failed on %s verification\n"
+ "!!!! Got: %s\n"
+ "!!!! Expected: %s\n"
"File renamed to '%s'\n"
)
% (self._pkg_path, name, value, expected, temp_filename),
diff --git a/lib/_emerge/BlockerCache.py b/lib/_emerge/BlockerCache.py
index 5aad581f4..581b98a38 100644
--- a/lib/_emerge/BlockerCache.py
+++ b/lib/_emerge/BlockerCache.py
@@ -62,7 +62,7 @@ class BlockerCache(portage.cache.mappings.MutableMapping):
pass
else:
writemsg(
- "!!! Error loading '%s': %s\n" % (self._cache_filename, str(e)),
+ "!!!! Error loading '%s': %s\n" % (self._cache_filename, str(e)),
noiselevel=-1,
)
del e
diff --git a/lib/_emerge/BlockerDB.py b/lib/_emerge/BlockerDB.py
index b6542157c..e778fdd90 100644
--- a/lib/_emerge/BlockerDB.py
+++ b/lib/_emerge/BlockerDB.py
@@ -71,7 +71,7 @@ class BlockerDB:
inst_pkg.root, portage.VDB_PATH, inst_pkg.category, inst_pkg.pf
)
portage.writemsg(
- "!!! %s/*DEPEND: %s\n" % (pkg_location, atoms), noiselevel=-1
+ "!!!! %s/*DEPEND: %s\n" % (pkg_location, atoms), noiselevel=-1
)
continue
diff --git a/lib/_emerge/EbuildBuild.py b/lib/_emerge/EbuildBuild.py
index 2ed16537b..caf2e45d2 100644
--- a/lib/_emerge/EbuildBuild.py
+++ b/lib/_emerge/EbuildBuild.py
@@ -447,7 +447,7 @@ class EbuildBuild(CompositeTask):
return
if self._issyspkg:
- msg = ">>> This is a system package, " + "let's pack a rescue tarball.\n"
+ msg = ">>>> This is a system package, " + "let's pack a rescue tarball.\n"
self.scheduler.output(msg, log_path=self.settings.get("PORTAGE_LOG_FILE"))
binpkg_tasks = TaskSequence()
diff --git a/lib/_emerge/EbuildIpcDaemon.py b/lib/_emerge/EbuildIpcDaemon.py
index ee6fd7658..c32465ad4 100644
--- a/lib/_emerge/EbuildIpcDaemon.py
+++ b/lib/_emerge/EbuildIpcDaemon.py
@@ -111,7 +111,7 @@ class EbuildIpcDaemon(FifoIpcDaemon):
# This probably means that the client has been killed,
# which causes open to fail with ENXIO.
writemsg_level(
- "!!! EbuildIpcDaemon %s: %s\n" % (_("failed to send reply"), e),
+ "!!!! EbuildIpcDaemon %s: %s\n" % (_("failed to send reply"), e),
level=logging.ERROR,
noiselevel=-1,
)
diff --git a/lib/_emerge/EbuildPhase.py b/lib/_emerge/EbuildPhase.py
index 12326fffd..9f28bdfef 100644
--- a/lib/_emerge/EbuildPhase.py
+++ b/lib/_emerge/EbuildPhase.py
@@ -387,7 +387,7 @@ class EbuildPhase(CompositeTask):
self._append_temp_log(post_phase.logfile, log_path)
if self._final_exit(post_phase) != os.EX_OK:
- writemsg("!!! post %s failed; exiting.\n" % self.phase, noiselevel=-1)
+ writemsg("!!!! post %s failed; exiting.\n" % self.phase, noiselevel=-1)
self._die_hooks()
return
diff --git a/lib/_emerge/JobStatusDisplay.py b/lib/_emerge/JobStatusDisplay.py
index e3cb2ff0f..bc50c4149 100644
--- a/lib/_emerge/JobStatusDisplay.py
+++ b/lib/_emerge/JobStatusDisplay.py
@@ -127,7 +127,7 @@ class JobStatusDisplay:
return True
def _format_msg(self, msg):
- return ">>> %s" % msg
+ return ">>>> %s" % msg
def _erase(self):
self._write(self._term_codes["carriage_return"] + self._term_codes["clr_eol"])
diff --git a/lib/_emerge/MergeListItem.py b/lib/_emerge/MergeListItem.py
index 87767c153..e666998cb 100644
--- a/lib/_emerge/MergeListItem.py
+++ b/lib/_emerge/MergeListItem.py
@@ -81,7 +81,7 @@ class MergeListItem(CompositeTask):
if not build_opts.pretend:
self.statusMessage(msg)
logger.log(
- " >>> emerge (%s of %s) %s to %s"
+ " >>>> emerge (%s of %s) %s to %s"
% (pkg_count.curval, pkg_count.maxval, pkg.cpv, pkg.root)
)
diff --git a/lib/_emerge/PackageUninstall.py b/lib/_emerge/PackageUninstall.py
index 468db3030..a5cb8c937 100644
--- a/lib/_emerge/PackageUninstall.py
+++ b/lib/_emerge/PackageUninstall.py
@@ -93,7 +93,7 @@ class PackageUninstall(CompositeTask):
self._async_unlock_builddir(returncode=retval)
return
- self._writemsg_level(">>> Unmerging %s...\n" % (self.pkg.cpv,), noiselevel=-1)
+ self._writemsg_level(">>>> Unmerging %s...\n" % (self.pkg.cpv,), noiselevel=-1)
self._emergelog("=== Unmerging... (%s)" % (self.pkg.cpv,))
cat, pf = portage.catsplit(self.pkg.cpv)
@@ -115,9 +115,9 @@ class PackageUninstall(CompositeTask):
def _unmerge_exit(self, unmerge_task):
if self._final_exit(unmerge_task) != os.EX_OK:
- self._emergelog(" !!! unmerge FAILURE: %s" % (self.pkg.cpv,))
+ self._emergelog(" !!!! unmerge FAILURE: %s" % (self.pkg.cpv,))
else:
- self._emergelog(" >>> unmerge success: %s" % (self.pkg.cpv,))
+ self._emergelog(" >>>> unmerge success: %s" % (self.pkg.cpv,))
self.world_atom(self.pkg)
self._async_unlock_builddir(returncode=self.returncode)
diff --git a/lib/_emerge/Scheduler.py b/lib/_emerge/Scheduler.py
index 15d646c4f..6f82965e9 100644
--- a/lib/_emerge/Scheduler.py
+++ b/lib/_emerge/Scheduler.py
@@ -303,22 +303,22 @@ class Scheduler(PollScheduler):
or "--fetchonly" in self.myopts
):
if "distlocks" not in features:
- portage.writemsg(red("!!!") + "\n", noiselevel=-1)
+ portage.writemsg(red("!!!!") + "\n", noiselevel=-1)
portage.writemsg(
- red("!!!")
+ red("!!!!")
+ " parallel-fetching "
+ "requires the distlocks feature enabled"
+ "\n",
noiselevel=-1,
)
portage.writemsg(
- red("!!!")
+ red("!!!!")
+ " you have it disabled, "
+ "thus parallel-fetching is being disabled"
+ "\n",
noiselevel=-1,
)
- portage.writemsg(red("!!!") + "\n", noiselevel=-1)
+ portage.writemsg(red("!!!!") + "\n", noiselevel=-1)
elif merge_count > 1:
self._parallel_fetch = True
@@ -442,7 +442,7 @@ class Scheduler(PollScheduler):
if interactive_tasks:
background = False
writemsg_level(
- ">>> Sending package output to stdio due "
+ ">>>> Sending package output to stdio due "
+ "to interactive package(s):\n",
level=logging.INFO,
noiselevel=-1,
@@ -462,15 +462,15 @@ class Scheduler(PollScheduler):
if self._max_jobs is True or self._max_jobs > 1:
self._set_max_jobs(1)
writemsg_level(
- ">>> Setting --jobs=1 due "
+ ">>>> Setting --jobs=1 due "
+ "to the above interactive package(s)\n",
level=logging.INFO,
noiselevel=-1,
)
writemsg_level(
- ">>> In order to temporarily mask "
+ ">>>> In order to temporarily mask "
+ "interactive updates, you may\n"
- + ">>> specify --accept-properties=-interactive\n",
+ + ">>>> specify --accept-properties=-interactive\n",
level=logging.INFO,
noiselevel=-1,
)
@@ -732,7 +732,7 @@ class Scheduler(PollScheduler):
pkgsettings["O"] = os.path.dirname(ebuild_path)
if not digestgen(mysettings=pkgsettings, myportdb=portdb):
writemsg_level(
- "!!! Unable to generate manifest for '%s'.\n" % x.cpv,
+ "!!!! Unable to generate manifest for '%s'.\n" % x.cpv,
level=logging.ERROR,
noiselevel=-1,
)
@@ -2250,7 +2250,7 @@ class Scheduler(PollScheduler):
world_set.add(atom)
else:
writemsg_level(
- '\n!!! Unable to record %s in "world"\n' % (atom,),
+ '\n!!!! Unable to record %s in "world"\n' % (atom,),
level=logging.WARN,
noiselevel=-1,
)
diff --git a/lib/_emerge/SpawnProcess.py b/lib/_emerge/SpawnProcess.py
index c43b17c12..2e5cfe6bc 100644
--- a/lib/_emerge/SpawnProcess.py
+++ b/lib/_emerge/SpawnProcess.py
@@ -267,7 +267,7 @@ class SpawnProcess(SubProcess):
if e.errno == errno.EPERM:
# Reported with hardened kernel (bug #358211).
writemsg_level(
- "!!! kill: (%i) - Operation not permitted\n" % (p,),
+ "!!!! kill: (%i) - Operation not permitted\n" % (p,),
level=logging.ERROR,
noiselevel=-1,
)
diff --git a/lib/_emerge/SubProcess.py b/lib/_emerge/SubProcess.py
index e2d2e61be..3383829ae 100644
--- a/lib/_emerge/SubProcess.py
+++ b/lib/_emerge/SubProcess.py
@@ -31,7 +31,7 @@ class SubProcess(AbstractPollTask):
if e.errno == errno.EPERM:
# Reported with hardened kernel (bug #358211).
writemsg_level(
- "!!! kill: (%i) - Operation not permitted\n" % (self.pid,),
+ "!!!! kill: (%i) - Operation not permitted\n" % (self.pid,),
level=logging.ERROR,
noiselevel=-1,
)
diff --git a/lib/_emerge/actions.py b/lib/_emerge/actions.py
index 05a115250..aa9316a46 100644
--- a/lib/_emerge/actions.py
+++ b/lib/_emerge/actions.py
@@ -171,7 +171,9 @@ def action_build(
getbinpkgs="--getbinpkg" in emerge_config.opts, **kwargs
)
except ParseError as e:
- writemsg("\n\n!!!%s.\nSee make.conf(5) for more info.\n" % e, noiselevel=-1)
+ writemsg(
+ "\n\n!!!!%s.\nSee make.conf(5) for more info.\n" % e, noiselevel=-1
+ )
return 1
# validate the state of the resume data
@@ -364,9 +366,9 @@ def action_build(
if success:
if dropped_tasks:
portage.writemsg(
- "!!! One or more packages have been "
+ "!!!! One or more packages have been "
+ "dropped due to\n"
- + "!!! masking or unsatisfied dependencies:\n\n",
+ + "!!!! masking or unsatisfied dependencies:\n\n",
noiselevel=-1,
)
for task, atoms in dropped_tasks.items():
@@ -430,7 +432,7 @@ def action_build(
)
except ParseError as e:
writemsg(
- "\n\n!!!%s.\nSee make.conf(5) for more info.\n" % e,
+ "\n\n!!!!%s.\nSee make.conf(5) for more info.\n" % e,
noiselevel=-1,
)
return 1
@@ -577,7 +579,7 @@ def action_build(
for eroot in eroots:
if need_write_vardb and not trees[eroot]["vartree"].dbapi.writable:
writemsg_level(
- "!!! %s\n"
+ "!!!! %s\n"
% _("Read-only file system: %s")
% trees[eroot]["vartree"].dbapi._dbroot,
level=logging.ERROR,
@@ -596,7 +598,7 @@ def action_build(
and not trees[eroot]["bintree"].dbapi.writable
):
writemsg_level(
- "!!! %s\n"
+ "!!!! %s\n"
% _("Read-only file system: %s")
% trees[eroot]["bintree"].pkgdir,
level=logging.ERROR,
@@ -639,7 +641,7 @@ def action_build(
if retval == os.EX_OK and not (buildpkgonly or fetchonly or pretend):
if "yes" == settings.get("AUTOCLEAN"):
- portage.writemsg_stdout(">>> Auto-cleaning packages...\n")
+ portage.writemsg_stdout(">>>> Auto-cleaning packages...\n")
unmerge(
trees[settings["EROOT"]]["root_config"],
myopts,
@@ -662,15 +664,15 @@ def action_config(settings, trees, myopts, myfiles):
enter_invalid = "--ask-enter-invalid" in myopts
uq = UserQuery(myopts)
if len(myfiles) != 1:
- print(red("!!! config can only take a single package atom at this time\n"))
+ print(red("!!!! config can only take a single package atom at this time\n"))
sys.exit(1)
if not is_valid_package_atom(myfiles[0], allow_repo=True):
portage.writemsg(
- "!!! '%s' is not a valid package atom.\n" % myfiles[0], noiselevel=-1
+ "!!!! '%s' is not a valid package atom.\n" % myfiles[0], noiselevel=-1
)
- portage.writemsg("!!! Please check ebuild(5) for full details.\n")
+ portage.writemsg("!!!! Please check ebuild(5) for full details.\n")
portage.writemsg(
- "!!! (Did you specify a version but forget to prefix with '='?)\n"
+ "!!!! (Did you specify a version but forget to prefix with '='?)\n"
)
sys.exit(1)
print()
@@ -801,7 +803,7 @@ def action_depclean(
noiselevel=-1,
)
if not matched_packages:
- writemsg_level(">>> No packages selected for removal by %s\n" % action)
+ writemsg_level(">>>> No packages selected for removal by %s\n" % action)
return 0
# The calculation is done in a separate function so that depgraph
@@ -899,7 +901,7 @@ def _calc_depclean(settings, trees, ldpath_mtimes, myopts, action, args_set, spi
# A nested set could not be resolved, so ignore nested sets.
set_atoms[k] = root_config.sets[k].getAtoms()
writemsg_level(
- _("!!! The set '%s' " "contains a non-existent set named '%s'.\n")
+ _("!!!! The set '%s' " "contains a non-existent set named '%s'.\n")
% (k, e),
level=logging.ERROR,
noiselevel=-1,
@@ -909,12 +911,12 @@ def _calc_depclean(settings, trees, ldpath_mtimes, myopts, action, args_set, spi
# Support @profile as an alternative to @system.
if not (set_atoms["system"] or set_atoms["profile"]):
writemsg_level(
- _("!!! You have no system list.\n"), level=logging.WARNING, noiselevel=-1
+ _("!!!! You have no system list.\n"), level=logging.WARNING, noiselevel=-1
)
if not set_atoms["selected"]:
writemsg_level(
- _("!!! You have no world file.\n"), level=logging.WARNING, noiselevel=-1
+ _("!!!! You have no world file.\n"), level=logging.WARNING, noiselevel=-1
)
# Suppress world file warnings unless @world is completely empty,
@@ -923,7 +925,7 @@ def _calc_depclean(settings, trees, ldpath_mtimes, myopts, action, args_set, spi
world_atoms = bool(root_config.setconfig.getSetAtoms("world"))
except portage.exception.PackageSetNotFound as e:
writemsg_level(
- _("!!! The set '%s' " "contains a non-existent set named '%s'.\n")
+ _("!!!! The set '%s' " "contains a non-existent set named '%s'.\n")
% ("world", e),
level=logging.ERROR,
noiselevel=-1,
@@ -932,20 +934,22 @@ def _calc_depclean(settings, trees, ldpath_mtimes, myopts, action, args_set, spi
else:
if not world_atoms:
writemsg_level(
- _("!!! Your @world set is empty.\n"), level=logging.ERROR, noiselevel=-1
+ _("!!!! Your @world set is empty.\n"),
+ level=logging.ERROR,
+ noiselevel=-1,
)
set_error = True
if set_error:
writemsg_level(
- _("!!! Aborting due to set configuration " "errors displayed above.\n"),
+ _("!!!! Aborting due to set configuration " "errors displayed above.\n"),
level=logging.ERROR,
noiselevel=-1,
)
return _depclean_result(1, [], False, 0, None)
if action == "depclean":
- emergelog(xterm_titles, " >>> depclean")
+ emergelog(xterm_titles, " >>>> depclean")
writemsg_level("\nCalculating dependencies ")
resolver_params = create_depgraph_params(myopts, "remove")
@@ -1285,14 +1289,14 @@ def _calc_depclean(settings, trees, ldpath_mtimes, myopts, action, args_set, spi
show_parents(pkg)
if not pkgs_to_remove:
- writemsg_level(">>> No packages selected for removal by %s\n" % action)
+ writemsg_level(">>>> No packages selected for removal by %s\n" % action)
if "--verbose" not in myopts:
writemsg_level(
- ">>> To see reverse dependencies, use %s\n" % good("--verbose")
+ ">>>> To see reverse dependencies, use %s\n" % good("--verbose")
)
if action == "prune":
writemsg_level(
- ">>> To ignore dependencies, use %s\n" % good("--nodeps")
+ ">>>> To ignore dependencies, use %s\n" % good("--nodeps")
)
return pkgs_to_remove
@@ -1324,7 +1328,7 @@ def _calc_depclean(settings, trees, ldpath_mtimes, myopts, action, args_set, spi
provider_cache = {}
consumer_map = {}
- writemsg_level(">>> Checking for lib consumers...\n")
+ writemsg_level(">>>> Checking for lib consumers...\n")
for pkg in cleanlist:
@@ -1391,7 +1395,7 @@ def _calc_depclean(settings, trees, ldpath_mtimes, myopts, action, args_set, spi
search_files.add(lib_consumer)
search_files.update(providers)
- writemsg_level(">>> Assigning files to packages...\n")
+ writemsg_level(">>>> Assigning files to packages...\n")
file_owners = {}
for f in search_files:
owner_set = set()
@@ -1498,7 +1502,7 @@ def _calc_depclean(settings, trees, ldpath_mtimes, myopts, action, args_set, spi
# Add lib providers to the graph as children of lib consumers,
# and also add any dependencies pulled in by the provider.
- writemsg_level(">>> Adding lib providers to graph...\n")
+ writemsg_level(">>>> Adding lib providers to graph...\n")
for pkg, consumers in consumer_map.items():
for consumer_dblink in set(chain(*consumers.values())):
@@ -1538,7 +1542,7 @@ def _calc_depclean(settings, trees, ldpath_mtimes, myopts, action, args_set, spi
clean_set = set(cleanlist)
if clean_set:
- writemsg_level(">>> Calculating removal order...\n")
+ writemsg_level(">>>> Calculating removal order...\n")
# Use a topological sort to create an unmerge order such that
# each package is unmerged before it's dependencies. This is
# necessary to avoid breaking things that may need to run
@@ -1747,7 +1751,7 @@ def action_deselect(settings, trees, opts, atoms):
filename = "world"
writemsg_stdout(
- '>>> %s %s from "%s" favorites file...\n'
+ '>>>> %s %s from "%s" favorites file...\n'
% (action_desc, colorize("INFORM", str(atom)), filename),
noiselevel=-1,
)
@@ -1766,7 +1770,7 @@ def action_deselect(settings, trees, opts, atoms):
if not pretend:
world_set.replace(remaining)
else:
- print('>>> No matching atoms found in "world" favorites file...')
+ print('>>>> No matching atoms found in "world" favorites file...')
finally:
if locked:
world_set.unlock()
@@ -2263,7 +2267,7 @@ def action_info(settings, trees, myopts, myfiles):
continue
writemsg_stdout(
- ">>> Attempting to run pkg_info() for '%s'\n" % pkg.cpv, noiselevel=-1
+ ">>>> Attempting to run pkg_info() for '%s'\n" % pkg.cpv, noiselevel=-1
)
if pkg_type == "installed":
@@ -2353,7 +2357,7 @@ def action_search(root_config, myopts, myfiles, spinner):
searchinstance.execute(mysearch)
except re.error as comment:
print(
- '\n!!! Regular expression error in "%s": %s' % (mysearch, comment)
+ '\n!!!! Regular expression error in "%s": %s' % (mysearch, comment)
)
sys.exit(1)
searchinstance.output()
@@ -2426,7 +2430,7 @@ def action_uninstall(settings, trees, ldpath_mtimes, opts, action, files, spinne
)
for line in textwrap.wrap(msg, 70):
writemsg_level(
- "!!! %s\n" % (line,), level=logging.ERROR, noiselevel=-1
+ "!!!! %s\n" % (line,), level=logging.ERROR, noiselevel=-1
)
for i in e.args[0]:
writemsg_level(
@@ -2440,7 +2444,7 @@ def action_uninstall(settings, trees, ldpath_mtimes, opts, action, files, spinne
if atom.use and atom.use.conditional:
writemsg_level(
(
- "\n\n!!! '%s' contains a conditional "
+ "\n\n!!!! '%s' contains a conditional "
+ "which is not allowed.\n"
)
% (x,),
@@ -2448,7 +2452,7 @@ def action_uninstall(settings, trees, ldpath_mtimes, opts, action, files, spinne
noiselevel=-1,
)
writemsg_level(
- "!!! Please check ebuild(5) for full details.\n",
+ "!!!! Please check ebuild(5) for full details.\n",
level=logging.ERROR,
)
return 1
@@ -2457,7 +2461,7 @@ def action_uninstall(settings, trees, ldpath_mtimes, opts, action, files, spinne
elif x.startswith(os.sep):
if not x.startswith(eroot):
writemsg_level(
- ("!!! '%s' does not start with" + " $EROOT.\n") % x,
+ ("!!!! '%s' does not start with" + " $EROOT.\n") % x,
level=logging.ERROR,
noiselevel=-1,
)
@@ -2477,7 +2481,7 @@ def action_uninstall(settings, trees, ldpath_mtimes, opts, action, files, spinne
msg.append("'%s' is not a valid package atom." % (x,))
msg.append("Please check ebuild(5) for full details.")
writemsg_level(
- "".join("!!! %s\n" % line for line in msg),
+ "".join("!!!! %s\n" % line for line in msg),
level=logging.ERROR,
noiselevel=-1,
)
@@ -2512,7 +2516,7 @@ def action_uninstall(settings, trees, ldpath_mtimes, opts, action, files, spinne
msg.append("'%s' is not a valid package atom." % (x,))
msg.append("Please check ebuild(5) for full details.")
writemsg_level(
- "".join("!!! %s\n" % line for line in msg),
+ "".join("!!!! %s\n" % line for line in msg),
level=logging.ERROR,
noiselevel=-1,
)
@@ -2542,7 +2546,7 @@ def action_uninstall(settings, trees, ldpath_mtimes, opts, action, files, spinne
valid_atoms.append(portage.dep.Atom(atom))
else:
writemsg_level(
- ("!!! '%s' is not claimed " + "by any package.\n") % lookup_owners[0],
+ ("!!!! '%s' is not claimed " + "by any package.\n") % lookup_owners[0],
level=logging.WARNING,
noiselevel=-1,
)
@@ -2657,9 +2661,10 @@ def adjust_config(myopts, settings):
try:
CLEAN_DELAY = int(settings.get("CLEAN_DELAY", str(CLEAN_DELAY)))
except ValueError as e:
- portage.writemsg("!!! %s\n" % str(e), noiselevel=-1)
+ portage.writemsg("!!!! %s\n" % str(e), noiselevel=-1)
portage.writemsg(
- "!!! Unable to parse integer: CLEAN_DELAY='%s'\n" % settings["CLEAN_DELAY"],
+ "!!!! Unable to parse integer: CLEAN_DELAY='%s'\n"
+ % settings["CLEAN_DELAY"],
noiselevel=-1,
)
settings["CLEAN_DELAY"] = str(CLEAN_DELAY)
@@ -2671,9 +2676,9 @@ def adjust_config(myopts, settings):
settings.get("EMERGE_WARNING_DELAY", str(EMERGE_WARNING_DELAY))
)
except ValueError as e:
- portage.writemsg("!!! %s\n" % str(e), noiselevel=-1)
+ portage.writemsg("!!!! %s\n" % str(e), noiselevel=-1)
portage.writemsg(
- "!!! Unable to parse integer: EMERGE_WARNING_DELAY='%s'\n"
+ "!!!! Unable to parse integer: EMERGE_WARNING_DELAY='%s'\n"
% settings["EMERGE_WARNING_DELAY"],
noiselevel=-1,
)
@@ -2705,14 +2710,17 @@ def adjust_config(myopts, settings):
PORTAGE_DEBUG = int(settings.get("PORTAGE_DEBUG", str(PORTAGE_DEBUG)))
if PORTAGE_DEBUG not in (0, 1):
portage.writemsg(
- "!!! Invalid value: PORTAGE_DEBUG='%i'\n" % PORTAGE_DEBUG, noiselevel=-1
+ "!!!! Invalid value: PORTAGE_DEBUG='%i'\n" % PORTAGE_DEBUG,
+ noiselevel=-1,
+ )
+ portage.writemsg(
+ "!!!! PORTAGE_DEBUG must be either 0 or 1\n", noiselevel=-1
)
- portage.writemsg("!!! PORTAGE_DEBUG must be either 0 or 1\n", noiselevel=-1)
PORTAGE_DEBUG = 0
except ValueError as e:
- portage.writemsg("!!! %s\n" % str(e), noiselevel=-1)
+ portage.writemsg("!!!! %s\n" % str(e), noiselevel=-1)
portage.writemsg(
- "!!! Unable to parse integer: PORTAGE_DEBUG='%s'\n"
+ "!!!! Unable to parse integer: PORTAGE_DEBUG='%s'\n"
% settings["PORTAGE_DEBUG"],
noiselevel=-1,
)
@@ -2910,9 +2918,9 @@ def getgccversion(chost=None):
gcc_ver_prefix = "gcc-"
gcc_not_found_error = red(
- "!!! No gcc found. You probably need to 'source /etc/profile'\n"
- + "!!! to update the environment of this terminal and possibly\n"
- + "!!! other terminals also.\n"
+ "!!!! No gcc found. You probably need to 'source /etc/profile'\n"
+ + "!!!! to update the environment of this terminal and possibly\n"
+ + "!!!! other terminals also.\n"
)
if chost:
@@ -2992,7 +3000,7 @@ def check_procfs():
return os.EX_OK
msg = "It seems that %s is not mounted. You have been warned." % procfs_path
writemsg_level(
- "".join("!!! %s\n" % l for l in textwrap.wrap(msg, 70)),
+ "".join("!!!! %s\n" % l for l in textwrap.wrap(msg, 70)),
level=logging.ERROR,
noiselevel=-1,
)
@@ -3003,7 +3011,7 @@ def config_protect_check(trees):
for root, root_trees in trees.items():
settings = root_trees["root_config"].settings
if not settings.get("CONFIG_PROTECT"):
- msg = "!!! CONFIG_PROTECT is empty"
+ msg = "!!!! CONFIG_PROTECT is empty"
if settings["ROOT"] != "/":
msg += " for '%s'" % root
msg += "\n"
@@ -3099,7 +3107,7 @@ def missing_sets_warning(root_config, missing_sets):
% (os.path.join(global_config_path, "sets/portage.conf"),)
)
msg.append(" is missing or corrupt.")
- msg.append(" Falling back to default world and system set configuration!!!")
+ msg.append(" Falling back to default world and system set configuration!!!!")
for line in msg:
writemsg_level(line + "\n", level=logging.ERROR, noiselevel=-1)
@@ -3405,7 +3413,7 @@ def run_action(emerge_config):
)
except ParseError as e:
writemsg(
- "\n\n!!!%s.\nSee make.conf(5) for more info.\n" % (e,),
+ "\n\n!!!!%s.\nSee make.conf(5) for more info.\n" % (e,),
noiselevel=-1,
)
return 1
@@ -3488,7 +3496,7 @@ def run_action(emerge_config):
print(
colorize(
"BAD",
- "\n*** emerging by path is broken " "and may not always work!!!\n",
+ "\n*** emerging by path is broken " "and may not always work!!!!\n",
)
)
break
@@ -3579,7 +3587,7 @@ def run_action(emerge_config):
# note: this breaks `emerge --ask | tee logfile`, but that doesn't work anyway.
if ("--ask" in emerge_config.opts) and (not sys.stdin.isatty()):
portage.writemsg(
- '!!! "--ask" should only be used in a terminal. Exiting.\n', noiselevel=-1
+ '!!!! "--ask" should only be used in a terminal. Exiting.\n', noiselevel=-1
)
return 1
@@ -3708,8 +3716,8 @@ def run_action(emerge_config):
portage.util.ensure_dirs(emerge_log_dir)
except portage.exception.PortageException as e:
writemsg_level(
- "!!! Error creating directory for "
- + "EMERGE_LOG_DIR='%s':\n!!! %s\n" % (emerge_log_dir, e),
+ "!!!! Error creating directory for "
+ + "EMERGE_LOG_DIR='%s':\n!!!! %s\n" % (emerge_log_dir, e),
noiselevel=-1,
level=logging.ERROR,
)
@@ -3874,7 +3882,7 @@ def run_action(emerge_config):
)
for line in textwrap.wrap(msg, 70):
writemsg_level(
- "!!! %s\n" % (line,), level=logging.ERROR, noiselevel=-1
+ "!!!! %s\n" % (line,), level=logging.ERROR, noiselevel=-1
)
for i in e.args[0]:
writemsg_level(
@@ -3889,7 +3897,7 @@ def run_action(emerge_config):
msg.append("'%s' is not a valid package atom." % (x,))
msg.append("Please check ebuild(5) for full details.")
writemsg_level(
- "".join("!!! %s\n" % line for line in msg),
+ "".join("!!!! %s\n" % line for line in msg),
level=logging.ERROR,
noiselevel=-1,
)
@@ -3920,7 +3928,7 @@ def run_action(emerge_config):
msg.append("'%s' is not a valid package atom." % (x,))
msg.append("Please check ebuild(5) for full details.")
writemsg_level(
- "".join("!!! %s\n" % line for line in msg),
+ "".join("!!!! %s\n" % line for line in msg),
level=logging.ERROR,
noiselevel=-1,
)
diff --git a/lib/_emerge/countdown.py b/lib/_emerge/countdown.py
index 9d506c3c7..f40ebbf05 100644
--- a/lib/_emerge/countdown.py
+++ b/lib/_emerge/countdown.py
@@ -10,8 +10,8 @@ from portage.output import colorize
def countdown(secs=5, doing="Starting"):
if secs:
print(
- ">>> Waiting %s seconds before starting...\n"
- ">>> (Control-C to abort)...\n"
+ ">>>> Waiting %s seconds before starting...\n"
+ ">>>> (Control-C to abort)...\n"
"%s in:" % (secs, doing),
end="",
)
diff --git a/lib/_emerge/depgraph.py b/lib/_emerge/depgraph.py
index 22d0be196..7c869ae75 100644
--- a/lib/_emerge/depgraph.py
+++ b/lib/_emerge/depgraph.py
@@ -1140,7 +1140,7 @@ class depgraph:
"\n%s\n\n"
% colorize(
"WARN",
- "!!! Detected ebuild dependency change(s) without revision bump:",
+ "!!!! Detected ebuild dependency change(s) without revision bump:",
),
noiselevel=-1,
)
@@ -1223,7 +1223,7 @@ class depgraph:
def _show_ignored_binaries_respect_use(self, respect_use):
writemsg(
- "\n!!! The following binary packages have been ignored "
+ "\n!!!! The following binary packages have been ignored "
+ "due to non matching USE:\n\n",
noiselevel=-1,
)
@@ -1256,7 +1256,7 @@ class depgraph:
def _show_ignored_binaries_changed_deps(self, changed_deps):
writemsg(
- "\n!!! The following binary packages have been "
+ "\n!!!! The following binary packages have been "
"ignored due to changed dependencies:\n\n",
noiselevel=-1,
)
@@ -1364,7 +1364,7 @@ class depgraph:
continue
writemsg(
- "\n!!! The following update has been skipped "
+ "\n!!!! The following update has been skipped "
+ "due to unsatisfied dependencies:\n\n",
noiselevel=-1,
)
@@ -1393,9 +1393,9 @@ class depgraph:
# These are shown in abbreviated form, in order to avoid terminal
# flooding from mask messages as reported in bug #285832.
writemsg(
- "\n!!! The following update(s) have been skipped "
+ "\n!!!! The following update(s) have been skipped "
+ "due to unsatisfied dependencies\n"
- + "!!! triggered by backtracking:\n\n",
+ + "!!!! triggered by backtracking:\n\n",
noiselevel=-1,
)
for pkg, parent_atoms in backtrack_masked:
@@ -1554,7 +1554,7 @@ class depgraph:
if debug:
writemsg_level(
- "\n!!! Slot conflict handler started.\n",
+ "\n!!!! Slot conflict handler started.\n",
level=logging.DEBUG,
noiselevel=-1,
)
@@ -1718,7 +1718,7 @@ class depgraph:
if debug:
writemsg_level(
- "\n!!! Slot conflict graph:\n", level=logging.DEBUG, noiselevel=-1
+ "\n!!!! Slot conflict graph:\n", level=logging.DEBUG, noiselevel=-1
)
conflict_graph.debug_print()
@@ -1793,7 +1793,7 @@ class depgraph:
if debug:
writemsg_level(
- "\n!!! Slot conflict solution:\n", level=logging.DEBUG, noiselevel=-1
+ "\n!!!! Slot conflict solution:\n", level=logging.DEBUG, noiselevel=-1
)
for conflict in conflicts:
writemsg_level(
@@ -1920,7 +1920,7 @@ class depgraph:
):
if debug:
writemsg_level(
- "!!! backtracking loop detected: %s %s\n"
+ "!!!! backtracking loop detected: %s %s\n"
% (pkg, self._dynamic_config._runtime_pkg_mask[pkg]),
level=logging.DEBUG,
noiselevel=-1,
@@ -4567,11 +4567,13 @@ class depgraph:
x = os.path.join(pkgsettings["PKGDIR"], x)
else:
writemsg(
- "\n\n!!! Binary package '" + str(x) + "' does not exist.\n",
+ "\n\n!!!! Binary package '"
+ + str(x)
+ + "' does not exist.\n",
noiselevel=-1,
)
writemsg(
- "!!! Please ensure the tbz2 exists as specified.\n\n",
+ "!!!! Please ensure the tbz2 exists as specified.\n\n",
noiselevel=-1,
)
return 0, myfavorites
@@ -4625,7 +4627,7 @@ class depgraph:
tree_root = os.path.dirname(os.path.dirname(pkgdir))
cp = pkgdir[len(tree_root) + 1 :]
error_msg = (
- "\n\n!!! '%s' is not in a valid ebuild repository "
+ "\n\n!!!! '%s' is not in a valid ebuild repository "
"hierarchy or does not exist\n"
) % x
if not portage.isvalidatom(cp):
@@ -4690,7 +4692,7 @@ class depgraph:
elif x.startswith(os.path.sep):
if not x.startswith(eroot):
portage.writemsg(
- ("\n\n!!! '%s' does not start with" + " $EROOT.\n") % x,
+ ("\n\n!!!! '%s' does not start with" + " $EROOT.\n") % x,
noiselevel=-1,
)
self._dynamic_config._skip_restart = True
@@ -4703,7 +4705,7 @@ class depgraph:
if not f.startswith(eroot):
portage.writemsg(
(
- "\n\n!!! '%s' (resolved from '%s') does not start with"
+ "\n\n!!!! '%s' (resolved from '%s') does not start with"
+ " $EROOT.\n"
)
% (f, x),
@@ -4768,11 +4770,12 @@ class depgraph:
continue
if not is_valid_package_atom(x, allow_repo=True):
portage.writemsg(
- "\n\n!!! '%s' is not a valid package atom.\n" % x, noiselevel=-1
+ "\n\n!!!! '%s' is not a valid package atom.\n" % x,
+ noiselevel=-1,
)
- portage.writemsg("!!! Please check ebuild(5) for full details.\n")
+ portage.writemsg("!!!! Please check ebuild(5) for full details.\n")
portage.writemsg(
- "!!! (Did you specify a version but forget to prefix with '='?)\n"
+ "!!!! (Did you specify a version but forget to prefix with '='?)\n"
)
self._dynamic_config._skip_restart = True
return (0, [])
@@ -4865,13 +4868,13 @@ class depgraph:
if atom.use and atom.use.conditional:
writemsg(
(
- "\n\n!!! '%s' contains a conditional "
+ "\n\n!!!! '%s' contains a conditional "
+ "which is not allowed.\n"
)
% (x,),
noiselevel=-1,
)
- writemsg("!!! Please check ebuild(5) for full details.\n")
+ writemsg("!!!! Please check ebuild(5) for full details.\n")
self._dynamic_config._skip_restart = True
return (0, [])
@@ -4896,7 +4899,7 @@ class depgraph:
if not owners:
portage.writemsg(
- ("\n\n!!! '%s' is not claimed " + "by any package.\n")
+ ("\n\n!!!! '%s' is not claimed " + "by any package.\n")
% lookup_owners[0],
noiselevel=-1,
)
@@ -5031,7 +5034,7 @@ class depgraph:
if not self.need_restart():
writemsg(
(
- "\n\n!!! Problem "
+ "\n\n!!!! Problem "
+ "resolving dependencies for %s\n"
)
% arg.arg,
@@ -5132,7 +5135,7 @@ class depgraph:
elif isinstance(arg, SetArg):
writemsg(
(
- "\n\n!!! Problem resolving "
+ "\n\n!!!! Problem resolving "
+ "dependencies for %s from %s\n"
)
% (atom, arg.arg),
@@ -5140,7 +5143,10 @@ class depgraph:
)
else:
writemsg(
- ("\n\n!!! Problem resolving " + "dependencies for %s\n")
+ (
+ "\n\n!!!! Problem resolving "
+ + "dependencies for %s\n"
+ )
% (atom,),
noiselevel=-1,
)
@@ -5150,10 +5156,10 @@ class depgraph:
raise # Needed else can't exit
except Exception as e:
writemsg(
- "\n\n!!! Problem in '%s' dependencies.\n" % atom, noiselevel=-1
+ "\n\n!!!! Problem in '%s' dependencies.\n" % atom, noiselevel=-1
)
writemsg(
- "!!! %s %s\n" % (str(e), str(getattr(e, "__module__", None)))
+ "!!!! %s %s\n" % (str(e), str(getattr(e, "__module__", None)))
)
raise
@@ -5674,7 +5680,7 @@ class depgraph:
)
except InvalidDependString as e:
writemsg_level(
- "!!! Invalid RDEPEND in "
+ "!!!! Invalid RDEPEND in "
+ "'%svar/db/pkg/%s/RDEPEND': %s\n" % (pkg.root, pkg.cpv, e),
noiselevel=-1,
level=logging.ERROR,
@@ -5713,7 +5719,7 @@ class depgraph:
if not pkg.installed:
raise
writemsg_level(
- "!!! Invalid RDEPEND in "
+ "!!!! Invalid RDEPEND in "
+ "'%svar/db/pkg/%s/RDEPEND': %s\n" % (pkg.root, pkg.cpv, e),
noiselevel=-1,
level=logging.ERROR,
@@ -6403,7 +6409,7 @@ class depgraph:
pkg = show_req_use
output_cpv = pkg.cpv + _repo_separator + pkg.repo
writemsg(
- "\n!!! "
+ "\n!!!! "
+ colorize("BAD", "The ebuild selected to satisfy ")
+ colorize("INFORM", xinfo)
+ colorize("BAD", " has unmet requirements.")
@@ -6447,7 +6453,7 @@ class depgraph:
noiselevel=-1,
)
writemsg(
- "!!! One of the following packages is required to complete your request:\n",
+ "!!!! One of the following packages is required to complete your request:\n",
noiselevel=-1,
)
for pkg, mreasons in show_missing_use:
@@ -6464,7 +6470,7 @@ class depgraph:
elif masked_packages:
writemsg(
- "\n!!! "
+ "\n!!!! "
+ colorize("BAD", "All ebuilds that could satisfy ")
+ colorize("INFORM", xinfo)
+ colorize("BAD", " have been masked.")
@@ -6472,7 +6478,7 @@ class depgraph:
noiselevel=-1,
)
writemsg(
- "!!! One of the following masked packages is required to complete your request:\n",
+ "!!!! One of the following masked packages is required to complete your request:\n",
noiselevel=-1,
)
have_eapi_mask = show_masked_packages(masked_packages)
@@ -8978,7 +8984,7 @@ class depgraph:
)
except portage.exception.InvalidDependString as e:
portage.writemsg(
- "!!! Invalid RDEPEND in "
+ "!!!! Invalid RDEPEND in "
+ "'%svar/db/pkg/%s/RDEPEND': %s\n"
% (running_root, running_portage.cpv, e),
noiselevel=-1,
@@ -9385,7 +9391,7 @@ class depgraph:
)
except portage.exception.InvalidDependString as e:
portage.writemsg(
- "!!! Invalid PROVIDE in "
+ "!!!! Invalid PROVIDE in "
+ "'%svar/db/pkg/%s/PROVIDE': %s\n"
% (task.root, task.cpv, e),
noiselevel=-1,
@@ -9423,7 +9429,7 @@ class depgraph:
skip = True
except portage.exception.InvalidDependString as e:
portage.writemsg(
- "!!! Invalid PROVIDE in "
+ "!!!! Invalid PROVIDE in "
+ "'%svar/db/pkg/%s/PROVIDE': %s\n"
% (task.root, task.cpv, e),
noiselevel=-1,
@@ -9465,7 +9471,7 @@ class depgraph:
break
except portage.exception.InvalidDependString as e:
portage.writemsg(
- "!!! Invalid PROVIDE in "
+ "!!!! Invalid PROVIDE in "
+ "'%svar/db/pkg/%s/PROVIDE': %s\n"
% (task.root, task.cpv, e),
noiselevel=-1,
@@ -10276,7 +10282,7 @@ class depgraph:
for (abs_user_config, f), path in file_to_write_to.items():
if path is None:
problems.append(
- "!!! No file to write for '%s'\n"
+ "!!!! No file to write for '%s'\n"
% os.path.join(abs_user_config, f)
)
@@ -10353,7 +10359,7 @@ class depgraph:
file_contents = []
else:
problems.append(
- "!!! Failed to read '%s': %s\n" % (file_to_write_to, e)
+ "!!!! Failed to read '%s': %s\n" % (file_to_write_to, e)
)
if file_contents is not None:
file_contents.extend(changes)
@@ -10370,7 +10376,7 @@ class depgraph:
try:
write_atomic(file_to_write_to, "".join(file_contents))
except PortageException:
- problems.append("!!! Failed to write '%s'\n" % file_to_write_to)
+ problems.append("!!!! Failed to write '%s'\n" % file_to_write_to)
if not quiet and (p_mask_change_msg or masked_by_missing_keywords):
msg = [
@@ -10522,23 +10528,23 @@ class depgraph:
if world_problems:
writemsg(
- "\n!!! Problems have been " + "detected with your world file\n",
+ "\n!!!! Problems have been " + "detected with your world file\n",
noiselevel=-1,
)
writemsg(
- "!!! Please run " + green("emaint --check world") + "\n\n",
+ "!!!! Please run " + green("emaint --check world") + "\n\n",
noiselevel=-1,
)
if self._dynamic_config._missing_args:
writemsg(
"\n"
- + colorize("BAD", "!!!")
+ + colorize("BAD", "!!!!")
+ " Ebuilds for the following packages are either all\n",
noiselevel=-1,
)
writemsg(
- colorize("BAD", "!!!") + " masked or don't exist:\n", noiselevel=-1
+ colorize("BAD", "!!!!") + " masked or don't exist:\n", noiselevel=-1
)
writemsg(
" ".join(str(atom) for arg, atom in self._dynamic_config._missing_args)
@@ -10604,7 +10610,7 @@ class depgraph:
if masked_packages:
writemsg(
"\n"
- + colorize("BAD", "!!!")
+ + colorize("BAD", "!!!!")
+ " The following updates are masked by LICENSE changes:\n",
noiselevel=-1,
)
@@ -10625,7 +10631,7 @@ class depgraph:
if masked_packages:
writemsg(
"\n"
- + colorize("BAD", "!!!")
+ + colorize("BAD", "!!!!")
+ " The following installed packages are masked:\n",
noiselevel=-1,
)
@@ -10639,25 +10645,27 @@ class depgraph:
if self._dynamic_config._buildpkgonly_deps_unsatisfied:
self._show_merge_list()
writemsg(
- "\n!!! --buildpkgonly requires all " "dependencies to be merged.\n",
+ "\n!!!! --buildpkgonly requires all " "dependencies to be merged.\n",
noiselevel=-1,
)
writemsg(
- "!!! Cannot merge requested packages. " "Merge deps and try again.\n\n",
+ "!!!! Cannot merge requested packages. "
+ "Merge deps and try again.\n\n",
noiselevel=-1,
)
if self._dynamic_config._quickpkg_direct_deps_unsatisfied:
self._show_merge_list()
writemsg(
- "\n!!! --quickpkg-direct requires all "
+ "\n!!!! --quickpkg-direct requires all "
"dependencies to be merged for root '{}'.\n".format(
self._frozen_config._running_root.root
),
noiselevel=-1,
)
writemsg(
- "!!! Cannot merge requested packages. " "Merge deps and try again.\n\n",
+ "!!!! Cannot merge requested packages. "
+ "Merge deps and try again.\n\n",
noiselevel=-1,
)
@@ -10704,10 +10712,11 @@ class depgraph:
added_favorites.add(myfavkey)
except portage.exception.InvalidDependString as e:
writemsg(
- "\n\n!!! '%s' has invalid PROVIDE: %s\n" % (x.cpv, e), noiselevel=-1
+ "\n\n!!!! '%s' has invalid PROVIDE: %s\n" % (x.cpv, e),
+ noiselevel=-1,
)
writemsg(
- "!!! see '%s'\n\n"
+ "!!!! see '%s'\n\n"
% os.path.join(x.root, portage.VDB_PATH, x.cpv, "PROVIDE"),
noiselevel=-1,
)
@@ -10753,7 +10762,7 @@ class depgraph:
else:
filename = "world"
writemsg_stdout(
- '>>> Recording %s in "%s" favorites file...\n'
+ '>>>> Recording %s in "%s" favorites file...\n'
% (colorize("INFORM", str(a)), filename),
noiselevel=-1,
)
@@ -11386,11 +11395,11 @@ def ambiguous_package_name(arg, atoms, root_config, spinner, myopts):
if "--quiet" in myopts:
writemsg(
- '!!! The short ebuild name "%s" is ambiguous. Please specify\n' % arg,
+ '!!!! The short ebuild name "%s" is ambiguous. Please specify\n' % arg,
noiselevel=-1,
)
writemsg(
- "!!! one of the following fully-qualified ebuild names instead:\n\n",
+ "!!!! one of the following fully-qualified ebuild names instead:\n\n",
noiselevel=-1,
)
for cp in sorted(set(portage.dep_getkey(atom) for atom in atoms)):
@@ -11413,11 +11422,11 @@ def ambiguous_package_name(arg, atoms, root_config, spinner, myopts):
s.addCP(cp)
s.output()
writemsg(
- '!!! The short ebuild name "%s" is ambiguous. Please specify\n' % arg,
+ '!!!! The short ebuild name "%s" is ambiguous. Please specify\n' % arg,
noiselevel=-1,
)
writemsg(
- "!!! one of the above fully-qualified ebuild names instead.\n\n", noiselevel=-1
+ "!!!! one of the above fully-qualified ebuild names instead.\n\n", noiselevel=-1
)
diff --git a/lib/_emerge/main.py b/lib/_emerge/main.py
index 34555b26c..e30c59e07 100644
--- a/lib/_emerge/main.py
+++ b/lib/_emerge/main.py
@@ -96,8 +96,8 @@ COWSAY_MOO = r"""
def multiple_actions(action1, action2):
- sys.stderr.write("\n!!! Multiple actions requested... Please choose one only.\n")
- sys.stderr.write("!!! '%s' or '%s'\n\n" % (action1, action2))
+ sys.stderr.write("\n!!!! Multiple actions requested... Please choose one only.\n")
+ sys.stderr.write("!!!! '%s' or '%s'\n\n" % (action1, action2))
sys.exit(1)
@@ -1170,7 +1170,7 @@ def profile_check(trees, myaction):
"--help, --info, --search, --sync, and --version."
)
writemsg_level(
- "".join("!!! %s\n" % l for l in textwrap.wrap(msg, 70)),
+ "".join("!!!! %s\n" % l for l in textwrap.wrap(msg, 70)),
level=logging.ERROR,
noiselevel=-1,
)
diff --git a/lib/_emerge/post_emerge.py b/lib/_emerge/post_emerge.py
index 019167251..911050250 100644
--- a/lib/_emerge/post_emerge.py
+++ b/lib/_emerge/post_emerge.py
@@ -139,10 +139,10 @@ def post_emerge(myaction, myopts, myfiles, target_root, trees, mtimedb, retval):
if vardbapi._plib_registry.hasEntries():
if "--quiet" in myopts:
print()
- print(colorize("WARN", "!!!") + " existing preserved libs found")
+ print(colorize("WARN", "!!!!") + " existing preserved libs found")
else:
print()
- print(colorize("WARN", "!!!") + " existing preserved libs:")
+ print(colorize("WARN", "!!!!") + " existing preserved libs:")
display_preserved_libs(vardbapi, verbose="--verbose" in myopts)
print(
"Use "
diff --git a/lib/_emerge/resolver/output_helpers.py b/lib/_emerge/resolver/output_helpers.py
index f80b79ccf..3f42510cf 100644
--- a/lib/_emerge/resolver/output_helpers.py
+++ b/lib/_emerge/resolver/output_helpers.py
@@ -203,9 +203,9 @@ class _DisplayConfig:
try:
mywidth = int(frozen_config.settings["COLUMNWIDTH"])
except ValueError as e:
- writemsg("!!! %s\n" % str(e), noiselevel=-1)
+ writemsg("!!!! %s\n" % str(e), noiselevel=-1)
writemsg(
- "!!! Unable to parse COLUMNWIDTH='%s'\n"
+ "!!!! Unable to parse COLUMNWIDTH='%s'\n"
% frozen_config.settings["COLUMNWIDTH"],
noiselevel=-1,
)
diff --git a/lib/_emerge/resolver/slot_collision.py b/lib/_emerge/resolver/slot_collision.py
index 0b063b5f3..e5def035d 100644
--- a/lib/_emerge/resolver/slot_collision.py
+++ b/lib/_emerge/resolver/slot_collision.py
@@ -250,11 +250,11 @@ class slot_conflict_handler:
msg = self.conflict_msg
indent = " "
msg.append(
- "\n!!! Multiple package instances within a single "
+ "\n!!!! Multiple package instances within a single "
+ "package slot have been pulled\n"
)
msg.append(
- "!!! into the dependency graph, resulting" + " in a slot conflict:\n\n"
+ "!!!! into the dependency graph, resulting" + " in a slot conflict:\n\n"
)
for root, slot_atom, pkgs in self.all_conflicts:
@@ -366,7 +366,7 @@ class slot_conflict_handler:
# above findAtomForPackage call to
# return None unexpectedly.
msg = (
- "\n\n!!! BUG: Detected "
+ "\n\n!!!! BUG: Detected "
"USE dep match inconsistency:\n"
"\tppkg: %s\n"
"\tviolated_atom: %s\n"
@@ -729,12 +729,12 @@ class slot_conflict_handler:
if need_rebuild:
msg.append(
- "\n!!! The slot conflict(s) shown above involve package(s) which may need to\n"
+ "\n!!!! The slot conflict(s) shown above involve package(s) which may need to\n"
)
msg.append(
- "!!! be rebuilt in order to solve the conflict(s). However, the following\n"
+ "!!!! be rebuilt in order to solve the conflict(s). However, the following\n"
)
- msg.append("!!! package(s) cannot be rebuilt for the reason(s) shown:\n\n")
+ msg.append("!!!! package(s) cannot be rebuilt for the reason(s) shown:\n\n")
for ppkg, reason in need_rebuild.items():
msg.append("%s%s: %s\n" % (indent, ppkg, reason))
msg.append("\n")
@@ -750,8 +750,8 @@ class slot_conflict_handler:
if self.conflict_is_unspecific and not (
"--newuse" in self.myopts and "--update" in self.myopts
):
- msg += "!!! Enabling --newuse and --update might solve this conflict.\n"
- msg += "!!! If not, it might help emerge to give a more specific suggestion.\n\n"
+ msg += "!!!! Enabling --newuse and --update might solve this conflict.\n"
+ msg += "!!!! If not, it might help emerge to give a more specific suggestion.\n\n"
return msg
solutions = self.solutions
diff --git a/lib/_emerge/show_invalid_depstring_notice.py b/lib/_emerge/show_invalid_depstring_notice.py
index 0b01d157c..7736896f7 100644
--- a/lib/_emerge/show_invalid_depstring_notice.py
+++ b/lib/_emerge/show_invalid_depstring_notice.py
@@ -11,7 +11,7 @@ from portage.util import writemsg_level
def show_invalid_depstring_notice(parent_node, error_msg):
msg1 = (
- "\n\n!!! Invalid or corrupt dependency specification: "
+ "\n\n!!!! Invalid or corrupt dependency specification: "
+ "\n\n%s\n\n%s\n\n" % (error_msg, parent_node)
)
p_key = parent_node.cpv
diff --git a/lib/_emerge/unmerge.py b/lib/_emerge/unmerge.py
index 81541cb4a..34e1e748b 100644
--- a/lib/_emerge/unmerge.py
+++ b/lib/_emerge/unmerge.py
@@ -129,7 +129,7 @@ def _unmerge_display(
candidate_catpkgs.append(x)
elif unmerge_action in ["prune", "clean"]:
print(
- "\n!!! Prune and clean do not accept individual"
+ "\n!!!! Prune and clean do not accept individual"
+ " ebuilds as arguments;\n skipping.\n"
)
continue
@@ -137,7 +137,7 @@ def _unmerge_display(
# it appears that the user is specifying an installed
# ebuild and we're in "unmerge" mode, so it's ok.
if not os.path.exists(x):
- print("\n!!! The path '" + x + "' doesn't exist.\n")
+ print("\n!!!! The path '" + x + "' doesn't exist.\n")
return 1, {}
absx = os.path.abspath(x)
@@ -154,7 +154,7 @@ def _unmerge_display(
sp_vdb_len = len(sp_vdb)
if not os.path.exists(absx + "/CONTENTS"):
- print("!!! Not a valid db dir: " + str(absx))
+ print("!!!! Not a valid db dir: " + str(absx))
return 1, {}
if sp_absx_len <= sp_vdb_len:
@@ -162,7 +162,9 @@ def _unmerge_display(
print(sp_absx)
print(absx)
print(
- "\n!!!", x, "cannot be inside " + vdb_path + "; aborting.\n"
+ "\n!!!!",
+ x,
+ "cannot be inside " + vdb_path + "; aborting.\n",
)
return 1, {}
@@ -171,7 +173,7 @@ def _unmerge_display(
print(sp_absx)
print(absx)
print(
- "\n!!!",
+ "\n!!!!",
x,
"is not inside " + vdb_path + "; aborting.\n",
)
@@ -187,14 +189,14 @@ def _unmerge_display(
writemsg_level(
darkgreen(
newline
- + ">>> Using system located in ROOT tree %s\n" % settings["ROOT"]
+ + ">>>> Using system located in ROOT tree %s\n" % settings["ROOT"]
)
)
if ("--pretend" in myopts or "--ask" in myopts) and not quiet:
writemsg_level(
darkgreen(
- newline + ">>> These are the packages that would be unmerged:\n"
+ newline + ">>>> These are the packages that would be unmerged:\n"
)
)
@@ -211,12 +213,12 @@ def _unmerge_display(
mymatch = vartree.dbapi.match(x)
except portage.exception.AmbiguousPackageName as errpkgs:
print(
- '\n\n!!! The short ebuild name "'
+ '\n\n!!!! The short ebuild name "'
+ x
+ '" is ambiguous. Please specify'
)
print(
- "!!! one of the following fully-qualified "
+ "!!!! one of the following fully-qualified "
+ "ebuild names instead:\n"
)
for i in errpkgs[0]:
@@ -314,13 +316,13 @@ def _unmerge_display(
numselected = len(all_selected)
if global_unmerge and not numselected:
portage.writemsg_stdout(
- "\n>>> No outdated packages were found on your system.\n"
+ "\n>>>> No outdated packages were found on your system.\n"
)
return 1, {}
if not numselected:
portage.writemsg_stdout(
- "\n>>> No packages selected for removal by " + unmerge_action + "\n"
+ "\n>>>> No packages selected for removal by " + unmerge_action + "\n"
)
return 1, {}
finally:
@@ -456,7 +458,7 @@ def _unmerge_display(
numselected = len(all_selected)
if not numselected:
writemsg_level(
- "\n>>> No packages selected for removal by " + unmerge_action + "\n"
+ "\n>>>> No packages selected for removal by " + unmerge_action + "\n"
)
return 1, {}
@@ -512,14 +514,14 @@ def _unmerge_display(
writemsg_level(
colorize(
"BAD",
- "\n\n!!! " + "%s is part of your system profile.\n" % (cp_info,),
+ "\n\n!!!! " + "%s is part of your system profile.\n" % (cp_info,),
),
level=logging.WARNING,
noiselevel=-1,
)
writemsg_level(
colorize(
- "WARN", "!!! Unmerging it may " + "be damaging to your system.\n\n"
+ "WARN", "!!!! Unmerging it may " + "be damaging to your system.\n\n"
),
level=logging.WARNING,
noiselevel=-1,
@@ -561,12 +563,12 @@ def _unmerge_display(
)
writemsg_level(
- "\n>>> "
+ "\n>>>> "
+ colorize("UNMERGE_WARN", "'Selected'")
+ " packages are slated for removal.\n"
)
writemsg_level(
- ">>> "
+ ">>>> "
+ colorize("GOOD", "'Protected'")
+ " and "
+ colorize("GOOD", "'omitted'")
@@ -633,7 +635,7 @@ def unmerge(
if not vartree.dbapi.writable:
writemsg_level(
- "!!! %s\n" % _("Read-only file system: %s") % vartree.dbapi._dbroot,
+ "!!!! %s\n" % _("Read-only file system: %s") % vartree.dbapi._dbroot,
level=logging.ERROR,
noiselevel=-1,
)
@@ -641,7 +643,7 @@ def unmerge(
# the real unmerging begins, after a short delay unless we're raging....
if not unmerge_action == "rage-clean" and clean_delay and not autoclean:
- countdown(int(settings["CLEAN_DELAY"]), ">>> Unmerging")
+ countdown(int(settings["CLEAN_DELAY"]), ">>>> Unmerging")
all_selected = set()
all_selected.update(*[x["selected"] for x in pkgmap])
@@ -653,7 +655,7 @@ def unmerge(
for x in range(len(pkgmap)):
for y in pkgmap[x]["selected"]:
emergelog(xterm_titles, "=== Unmerging... (" + y + ")")
- message = ">>> Unmerging ({0} of {1}) {2}...\n".format(
+ message = ">>>> Unmerging ({0} of {1}) {2}...\n".format(
colorize("MERGE_LIST_PROGRESS", str(curval)),
colorize("MERGE_LIST_PROGRESS", str(maxval)),
y,
@@ -673,7 +675,7 @@ def unmerge(
)
if retval != os.EX_OK:
- emergelog(xterm_titles, " !!! unmerge FAILURE: " + y)
+ emergelog(xterm_titles, " !!!! unmerge FAILURE: " + y)
if raise_on_error:
raise UninstallFailure(retval)
sys.exit(retval)
@@ -688,7 +690,7 @@ def unmerge(
sets["selected"].load()
sets["selected"].cleanPackage(vartree.dbapi, y)
sets["selected"].unlock()
- emergelog(xterm_titles, " >>> unmerge success: " + y)
+ emergelog(xterm_titles, " >>>> unmerge success: " + y)
if (
clean_world
diff --git a/lib/portage/__init__.py b/lib/portage/__init__.py
index 13af8da09..02799eba9 100644
--- a/lib/portage/__init__.py
+++ b/lib/portage/__init__.py
@@ -33,20 +33,20 @@ try:
except ImportError as e:
sys.stderr.write("\n\n")
sys.stderr.write(
- "!!! Failed to complete python imports. These are internal modules for\n"
+ "!!!! Failed to complete python imports. These are internal modules for\n"
)
sys.stderr.write(
- "!!! python and failure here indicates that you have a problem with python\n"
+ "!!!! python and failure here indicates that you have a problem with python\n"
)
sys.stderr.write(
- "!!! itself and thus portage is not able to continue processing.\n\n"
+ "!!!! itself and thus portage is not able to continue processing.\n\n"
)
sys.stderr.write(
- "!!! You might consider starting python with verbose flags to see what has\n"
+ "!!!! You might consider starting python with verbose flags to see what has\n"
)
sys.stderr.write(
- "!!! gone wrong. Here is the information we got for this exception:\n"
+ "!!!! gone wrong. Here is the information we got for this exception:\n"
)
sys.stderr.write(" " + str(e) + "\n\n")
raise
@@ -168,21 +168,21 @@ try:
except ImportError as e:
sys.stderr.write("\n\n")
sys.stderr.write(
- "!!! Failed to complete portage imports. There are internal modules for\n"
+ "!!!! Failed to complete portage imports. There are internal modules for\n"
)
sys.stderr.write(
- "!!! portage and failure here indicates that you have a problem with your\n"
+ "!!!! portage and failure here indicates that you have a problem with your\n"
)
sys.stderr.write(
- "!!! installation of portage. Please try a rescue portage located in the ebuild\n"
+ "!!!! installation of portage. Please try a rescue portage located in the ebuild\n"
)
sys.stderr.write(
- "!!! repository under '/var/db/repos/gentoo/sys-apps/portage/files/' (default).\n"
+ "!!!! repository under '/var/db/repos/gentoo/sys-apps/portage/files/' (default).\n"
)
sys.stderr.write(
- "!!! There is a README.RESCUE file that details the steps required to perform\n"
+ "!!!! There is a README.RESCUE file that details the steps required to perform\n"
)
- sys.stderr.write("!!! a recovery of portage.\n")
+ sys.stderr.write("!!!! a recovery of portage.\n")
sys.stderr.write(" " + str(e) + "\n\n")
raise
@@ -408,7 +408,7 @@ try:
_selinux_merge = _unicode_module_wrapper(_selinux, encoding=_encodings["merge"])
except (ImportError, OSError) as e:
if isinstance(e, OSError):
- sys.stderr.write("!!! SELinux not loaded: %s\n" % str(e))
+ sys.stderr.write("!!!! SELinux not loaded: %s\n" % str(e))
del e
_selinux = None
selinux = None
diff --git a/lib/portage/_selinux.py b/lib/portage/_selinux.py
index d05d6b8e7..460cbd8e1 100644
--- a/lib/portage/_selinux.py
+++ b/lib/portage/_selinux.py
@@ -98,14 +98,14 @@ def setexec(ctx="\n"):
if selinux.security_getenforce() == 1:
raise OSError(msg)
else:
- portage.writemsg("!!! %s\n" % msg, noiselevel=-1)
+ portage.writemsg("!!!! %s\n" % msg, noiselevel=-1)
if rc < 0:
if selinux.security_getenforce() == 1:
raise OSError(_('Failed setting exec() context "%s".') % ctx)
else:
portage.writemsg(
- "!!! " + _('Failed setting exec() context "%s".') % ctx, noiselevel=-1
+ "!!!! " + _('Failed setting exec() context "%s".') % ctx, noiselevel=-1
)
diff --git a/lib/portage/_sets/shell.py b/lib/portage/_sets/shell.py
index 249e1fb05..e82fe031b 100644
--- a/lib/portage/_sets/shell.py
+++ b/lib/portage/_sets/shell.py
@@ -15,7 +15,7 @@ class CommandOutputSet(PackageSet):
"""This class creates a PackageSet from the output of a shell command.
The shell command should produce one atom per line, that is:
- >>> atom1
+ >>>> atom1
atom2
...
atomN
diff --git a/lib/portage/binrepo/config.py b/lib/portage/binrepo/config.py
index 8024f24d7..3bbc4651e 100644
--- a/lib/portage/binrepo/config.py
+++ b/lib/portage/binrepo/config.py
@@ -58,7 +58,7 @@ class BinRepoConfigLoader(Mapping):
parser = self._parse(paths, parser_defaults)
except ConfigParserError as e:
writemsg(
- _("!!! Error while reading binrepo config file: %s\n") % e,
+ _("!!!! Error while reading binrepo config file: %s\n") % e,
noiselevel=-1,
)
parser = SafeConfigParser(defaults=parser_defaults)
@@ -71,7 +71,7 @@ class BinRepoConfigLoader(Mapping):
repo = BinRepoConfig(repo_data)
if repo.sync_uri is None:
writemsg(
- _("!!! Missing sync-uri setting for binrepo %s\n") % (repo.name,),
+ _("!!!! Missing sync-uri setting for binrepo %s\n") % (repo.name,),
noiselevel=-1,
)
continue
diff --git a/lib/portage/data.py b/lib/portage/data.py
index 09a4dd079..0e6abdd70 100644
--- a/lib/portage/data.py
+++ b/lib/portage/data.py
@@ -37,7 +37,7 @@ if not lchown:
def lchown(*_args, **_kwargs):
writemsg(
- colorize("BAD", "!!!")
+ colorize("BAD", "!!!!")
+ _(
" It seems that os.lchown does not"
" exist. Please rebuild python.\n"
diff --git a/lib/portage/dbapi/__init__.py b/lib/portage/dbapi/__init__.py
index 717ab95d5..449751013 100644
--- a/lib/portage/dbapi/__init__.py
+++ b/lib/portage/dbapi/__init__.py
@@ -375,7 +375,7 @@ class dbapi:
noiselevel=-1,
)
else:
- writemsg("!!! Invalid db entry: %s\n" % mypath, noiselevel=-1)
+ writemsg("!!!! Invalid db entry: %s\n" % mypath, noiselevel=-1)
def update_ents(self, updates, onProgress=None, onUpdate=None):
"""
diff --git a/lib/portage/dbapi/bintree.py b/lib/portage/dbapi/bintree.py
index 777fc4918..2d1fbbecf 100644
--- a/lib/portage/dbapi/bintree.py
+++ b/lib/portage/dbapi/bintree.py
@@ -589,15 +589,15 @@ class binarytree:
if (mynewpkg != myoldpkg) and self.dbapi.cpv_exists(mynewcpv):
writemsg(
- _("!!! Cannot update binary: Destination exists.\n"), noiselevel=-1
+ _("!!!! Cannot update binary: Destination exists.\n"), noiselevel=-1
)
- writemsg("!!! " + mycpv + " -> " + mynewcpv + "\n", noiselevel=-1)
+ writemsg("!!!! " + mycpv + " -> " + mynewcpv + "\n", noiselevel=-1)
continue
tbz2path = self.getname(mycpv)
if os.path.exists(tbz2path) and not os.access(tbz2path, os.W_OK):
writemsg(
- _("!!! Cannot update readonly binary: %s\n") % mycpv, noiselevel=-1
+ _("!!!! Cannot update readonly binary: %s\n") % mycpv, noiselevel=-1
)
continue
@@ -760,7 +760,7 @@ class binarytree:
if not self._binrepos_conf:
writemsg(
_(
- "!!! %s is missing (or PORTAGE_BINHOST is unset), but use is requested.\n"
+ "!!!! %s is missing (or PORTAGE_BINHOST is unset), but use is requested.\n"
)
% (config_path,),
noiselevel=-1,
@@ -885,7 +885,10 @@ class binarytree:
continue
if not os.access(full_path, os.R_OK):
writemsg(
- _("!!! Permission denied to read " "binary package: '%s'\n")
+ _(
+ "!!!! Permission denied to read "
+ "binary package: '%s'\n"
+ )
% full_path,
noiselevel=-1,
)
@@ -903,7 +906,7 @@ class binarytree:
if not mycat or not mypf or not slot:
# old-style or corrupt package
writemsg(
- _("\n!!! Invalid binary package: '%s'\n") % full_path,
+ _("\n!!!! Invalid binary package: '%s'\n") % full_path,
noiselevel=-1,
)
missing_keys = []
@@ -927,7 +930,7 @@ class binarytree:
)
)
for line in textwrap.wrap("".join(msg), 72):
- writemsg("!!! %s\n" % line, noiselevel=-1)
+ writemsg("!!!! %s\n" % line, noiselevel=-1)
self.invalids.append(mypkg)
continue
@@ -948,7 +951,7 @@ class binarytree:
if invalid_name:
writemsg(
- _("\n!!! Binary package name is " "invalid: '%s'\n")
+ _("\n!!!! Binary package name is " "invalid: '%s'\n")
% full_path,
noiselevel=-1,
)
@@ -959,7 +962,7 @@ class binarytree:
build_id = int(pkg_metadata["BUILD_ID"])
except ValueError:
writemsg(
- _("!!! Binary package has " "invalid BUILD_ID: '%s'\n")
+ _("!!!! Binary package has " "invalid BUILD_ID: '%s'\n")
% full_path,
noiselevel=-1,
)
@@ -982,7 +985,7 @@ class binarytree:
if not self.dbapi._category_re.match(mycat):
writemsg(
_(
- "!!! Binary package has an "
+ "!!!! Binary package has an "
"unrecognized category: '%s'\n"
)
% full_path,
@@ -990,7 +993,7 @@ class binarytree:
)
writemsg(
_(
- "!!! '%s' has a category that is not"
+ "!!!! '%s' has a category that is not"
" listed in %setc/portage/categories\n"
)
% (mycpv, self.settings["PORTAGE_CONFIGROOT"]),
@@ -1035,7 +1038,7 @@ class binarytree:
self._eval_use_flags(mycpv, d)
except portage.exception.InvalidDependString:
writemsg(
- _("!!! Invalid binary package: '%s'\n")
+ _("!!!! Invalid binary package: '%s'\n")
% self.getname(mycpv),
noiselevel=-1,
)
@@ -1251,7 +1254,7 @@ class binarytree:
pkgindex = None
writemsg(
_(
- "\n\n!!! Binhost package index "
+ "\n\n!!!! Binhost package index "
" has no TIMESTAMP field.\n"
),
noiselevel=-1,
@@ -1260,7 +1263,7 @@ class binarytree:
if not self._pkgindex_version_supported(rmt_idx):
writemsg(
_(
- "\n\n!!! Binhost package index version"
+ "\n\n!!!! Binhost package index version"
" is not supported: '%s'\n"
)
% rmt_idx.header.get("VERSION"),
@@ -1281,7 +1284,7 @@ class binarytree:
AlarmSignal.unregister()
except AlarmSignal:
writemsg(
- "\n\n!!! %s\n"
+ "\n\n!!!! %s\n"
% _("Timed out while closing connection to binhost"),
noiselevel=-1,
)
@@ -1299,7 +1302,7 @@ class binarytree:
# This includes URLError which is raised for SSL
# certificate errors when PEP 476 is supported.
writemsg(
- _("\n\n!!! Error fetching binhost package" " info from '%s'\n")
+ _("\n\n!!!! Error fetching binhost package" " info from '%s'\n")
% _hide_url_passwd(base_url)
)
# With Python 2, the EnvironmentError message may
@@ -1309,7 +1312,7 @@ class binarytree:
error_msg = str(e)
except UnicodeDecodeError as uerror:
error_msg = str(uerror.object, encoding="utf_8", errors="replace")
- writemsg("!!! %s\n\n" % error_msg)
+ writemsg("!!!! %s\n\n" % error_msg)
del e
pkgindex = None
if proc is not None:
@@ -1403,7 +1406,7 @@ class binarytree:
raise
del e
writemsg(
- _("!!! Binary package does not exist: '%s'\n") % full_path,
+ _("!!!! Binary package does not exist: '%s'\n") % full_path,
noiselevel=-1,
)
return
@@ -1414,7 +1417,9 @@ class binarytree:
except portage.exception.InvalidDependString:
invalid_depend = True
if invalid_depend or not metadata.get("SLOT"):
- writemsg(_("!!! Invalid binary package: '%s'\n") % full_path, noiselevel=-1)
+ writemsg(
+ _("!!!! Invalid binary package: '%s'\n") % full_path, noiselevel=-1
+ )
return
fetched = False
@@ -2008,7 +2013,7 @@ class binarytree:
digests["size"] = int(metadata["SIZE"])
except ValueError:
writemsg(
- _("!!! Malformed SIZE attribute in remote " "metadata for '%s'\n")
+ _("!!!! Malformed SIZE attribute in remote " "metadata for '%s'\n")
% cpv
)
diff --git a/lib/portage/dbapi/porttree.py b/lib/portage/dbapi/porttree.py
index 93f3fee2f..11cff1b3f 100644
--- a/lib/portage/dbapi/porttree.py
+++ b/lib/portage/dbapi/porttree.py
@@ -599,10 +599,10 @@ class portdbapi(dbapi):
ebuild_hash.mtime
except FileNotFound:
writemsg(
- _("!!! aux_get(): ebuild for " "'%s' does not exist at:\n") % (cpv,),
+ _("!!!! aux_get(): ebuild for " "'%s' does not exist at:\n") % (cpv,),
noiselevel=-1,
)
- writemsg("!!! %s\n" % ebuild_path, noiselevel=-1)
+ writemsg("!!!! %s\n" % ebuild_path, noiselevel=-1)
raise PortageKeyError(cpv)
# Pull pre-generated metadata from the metadata/cache/
@@ -723,7 +723,7 @@ class portdbapi(dbapi):
if not myebuild:
writemsg(
- "!!! aux_get(): %s\n" % _("ebuild not found for '%s'") % mycpv,
+ "!!!! aux_get(): %s\n" % _("ebuild not found for '%s'") % mycpv,
noiselevel=1,
)
future.set_exception(PortageKeyError(mycpv))
@@ -1161,7 +1161,7 @@ class portdbapi(dbapi):
if invalid_category and mylist:
writemsg(
_(
- "\n!!! '%s' has a category that is not listed in "
+ "\n!!!! '%s' has a category that is not listed in "
"%setc/portage/categories\n"
)
% (mycp, self.settings["PORTAGE_CONFIGROOT"]),
@@ -1436,10 +1436,10 @@ class portdbapi(dbapi):
continue
except PortageException as e:
writemsg(
- "!!! Error: aux_get('%s', %s)\n" % (mycpv, aux_keys),
+ "!!!! Error: aux_get('%s', %s)\n" % (mycpv, aux_keys),
noiselevel=-1,
)
- writemsg("!!! %s\n" % (e,), noiselevel=-1)
+ writemsg("!!!! %s\n" % (e,), noiselevel=-1)
del e
continue
diff --git a/lib/portage/dbapi/vartree.py b/lib/portage/dbapi/vartree.py
index 8ffb23b1c..2f8fbddd1 100644
--- a/lib/portage/dbapi/vartree.py
+++ b/lib/portage/dbapi/vartree.py
@@ -721,7 +721,7 @@ class vardbapi(dbapi):
pass
else:
writemsg(
- _("!!! Error loading '%s': %s\n") % (self._aux_cache_filename, e),
+ _("!!!! Error loading '%s': %s\n") % (self._aux_cache_filename, e),
noiselevel=-1,
)
del e
@@ -1167,19 +1167,19 @@ class vardbapi(dbapi):
counter = int(f.readline().strip())
except (OverflowError, ValueError) as e:
writemsg(
- _("!!! COUNTER file is corrupt: '%s'\n") % self._counter_path,
+ _("!!!! COUNTER file is corrupt: '%s'\n") % self._counter_path,
noiselevel=-1,
)
- writemsg("!!! %s\n" % (e,), noiselevel=-1)
+ writemsg("!!!! %s\n" % (e,), noiselevel=-1)
except EnvironmentError as e:
# Silently allow ENOENT since files under
# /var/cache/ are allowed to disappear.
if e.errno != errno.ENOENT:
writemsg(
- _("!!! Unable to read COUNTER file: '%s'\n") % self._counter_path,
+ _("!!!! Unable to read COUNTER file: '%s'\n") % self._counter_path,
noiselevel=-1,
)
- writemsg("!!! %s\n" % str(e), noiselevel=-1)
+ writemsg("!!!! %s\n" % str(e), noiselevel=-1)
del e
if self._cached_counter == counter:
@@ -2100,9 +2100,9 @@ class dblink:
pkgfiles[path] = data
if errors:
- writemsg(_("!!! Parse error in '%s'\n") % contents_file, noiselevel=-1)
+ writemsg(_("!!!! Parse error in '%s'\n") % contents_file, noiselevel=-1)
for pos, e in errors:
- writemsg(_("!!! line %d: %s\n") % (pos, e), noiselevel=-1)
+ writemsg(_("!!!! line %d: %s\n") % (pos, e), noiselevel=-1)
self.contentscache = pkgfiles
return pkgfiles
@@ -2211,7 +2211,7 @@ class dblink:
continue
obj_type = self.getcontents()[contents_key][0]
self._display_merge(
- _(">>> needed %s %s\n") % (obj_type, contents_key),
+ _(">>>> needed %s %s\n") % (obj_type, contents_key),
noiselevel=-1,
)
plib_registry.register(
@@ -2401,7 +2401,7 @@ class dblink:
retval = self._pre_unmerge_backup(background)
if retval != os.EX_OK:
showMessage(
- _("!!! FAILED prerm: quickpkg: %s\n") % retval,
+ _("!!!! FAILED prerm: quickpkg: %s\n") % retval,
level=logging.ERROR,
noiselevel=-1,
)
@@ -2417,7 +2417,7 @@ class dblink:
# Sometimes this happens due to corruption of the EAPI file.
failures += 1
showMessage(
- _("!!! FAILED prerm: %s\n") % os.path.join(self.dbdir, "EAPI"),
+ _("!!!! FAILED prerm: %s\n") % os.path.join(self.dbdir, "EAPI"),
level=logging.ERROR,
noiselevel=-1,
)
@@ -2438,7 +2438,7 @@ class dblink:
if retval != os.EX_OK:
failures += 1
showMessage(
- _("!!! FAILED prerm: %s\n") % retval,
+ _("!!!! FAILED prerm: %s\n") % retval,
level=logging.ERROR,
noiselevel=-1,
)
@@ -2465,7 +2465,7 @@ class dblink:
if retval != os.EX_OK:
failures += 1
showMessage(
- _("!!! FAILED postrm: %s\n") % retval,
+ _("!!!! FAILED postrm: %s\n") % retval,
level=logging.ERROR,
noiselevel=-1,
)
@@ -2972,7 +2972,7 @@ class dblink:
if e.errno not in ignored_unlink_errnos:
raise
del e
- show_unmerge("!!!", "", file_type, obj)
+ show_unmerge("!!!!", "", file_type, obj)
elif pkgfiles[objkey][0] == "obj":
if statobj is None or not stat.S_ISREG(statobj.st_mode):
show_unmerge("---", unmerge_desc["!obj"], file_type, obj)
@@ -3137,7 +3137,7 @@ class dblink:
if e.errno not in ignored_unlink_errnos:
raise
del e
- show_unmerge("!!!", "", "sym", obj)
+ show_unmerge("!!!!", "", "sym", obj)
protected_symlinks.clear()
self._unmerge_dirs(
@@ -3188,7 +3188,7 @@ class dblink:
if e.errno not in ignored_unlink_errnos:
raise
del e
- show_unmerge("!!!", "", "obj", child)
+ show_unmerge("!!!!", "", "obj", child)
try:
parent_name = os.path.dirname(obj)
@@ -3254,7 +3254,7 @@ class dblink:
if e.errno not in ignored_unlink_errnos:
raise
del e
- show_unmerge("!!!", "", "sym", obj)
+ show_unmerge("!!!!", "", "sym", obj)
else:
parents.append(os.path.dirname(obj))
@@ -3483,7 +3483,7 @@ class dblink:
self._linkmap_broken = True
self._display_merge(
_(
- "!!! Disabling preserve-libs "
+ "!!!! Disabling preserve-libs "
"due to error: Command Not Found: %s\n"
)
% (e,),
@@ -3658,7 +3658,7 @@ class dblink:
# it shouldn't be preserved here.
showMessage(
_(
- "!!! File '%s' will not be preserved "
+ "!!!! File '%s' will not be preserved "
"due to missing contents entry\n"
)
% (f_abs,),
@@ -3669,7 +3669,7 @@ class dblink:
continue
new_contents[f_abs] = contents_entry
obj_type = contents_entry[0]
- showMessage(_(">>> needed %s %s\n") % (obj_type, f_abs), noiselevel=-1)
+ showMessage(_(">>>> needed %s %s\n") % (obj_type, f_abs), noiselevel=-1)
# Add parent directories to contents if necessary.
parent_dir = os.path.dirname(f_abs)
while len(parent_dir) > len(root):
@@ -3795,8 +3795,8 @@ class dblink:
# registry, but the actual lib it points to is not.
self._display_merge(
_(
- "!!! symlink to lib is preserved, "
- "but not the lib itself:\n!!! '%s'\n"
+ "!!!! symlink to lib is preserved, "
+ "but not the lib itself:\n!!!! '%s'\n"
)
% (obj,),
level=logging.ERROR,
@@ -4271,7 +4271,7 @@ class dblink:
if not os.path.isdir(srcroot):
showMessage(
- _("!!! Directory Not Found: D='%s'\n") % srcroot,
+ _("!!!! Directory Not Found: D='%s'\n") % srcroot,
level=logging.ERROR,
noiselevel=-1,
)
@@ -4287,7 +4287,7 @@ class dblink:
)
phase.start()
if phase.wait() != os.EX_OK:
- showMessage(_("!!! instprep failed\n"), level=logging.ERROR, noiselevel=-1)
+ showMessage(_("!!!! instprep failed\n"), level=logging.ERROR, noiselevel=-1)
return 1
is_binpkg = self.settings.get("EMERGE_FROM") == "binary"
@@ -4318,7 +4318,7 @@ class dblink:
slot = self.settings.get(var_name, "")
if not slot.strip():
showMessage(
- _("!!! SLOT is undefined\n"),
+ _("!!!! SLOT is undefined\n"),
level=logging.ERROR,
noiselevel=-1,
)
@@ -4920,7 +4920,7 @@ class dblink:
rval = self._pre_merge_backup(self._installed_instance, downgrade)
if rval != os.EX_OK:
showMessage(
- _("!!! FAILED preinst: ") + "quickpkg: %s\n" % rval,
+ _("!!!! FAILED preinst: ") + "quickpkg: %s\n" % rval,
level=logging.ERROR,
noiselevel=-1,
)
@@ -4928,7 +4928,7 @@ class dblink:
# run preinst script
showMessage(
- _(">>> Merging %(cpv)s to %(destroot)s\n")
+ _(">>>> Merging %(cpv)s to %(destroot)s\n")
% {"cpv": self.mycpv, "destroot": destroot}
)
phase = EbuildPhase(
@@ -4943,7 +4943,7 @@ class dblink:
# XXX: Decide how to handle failures here.
if a != os.EX_OK:
showMessage(
- _("!!! FAILED preinst: ") + str(a) + "\n",
+ _("!!!! FAILED preinst: ") + str(a) + "\n",
level=logging.ERROR,
noiselevel=-1,
)
@@ -5058,7 +5058,7 @@ class dblink:
autoclean = self.settings.get("AUTOCLEAN", "yes") == "yes" or preserve_paths
if autoclean:
- emerge_log(_(" >>> AUTOCLEAN: %s") % (slot_atom,))
+ emerge_log(_(" >>>> AUTOCLEAN: %s") % (slot_atom,))
others_in_slot.append(self) # self has just been merged
for dblnk in list(others_in_slot):
@@ -5066,7 +5066,7 @@ class dblink:
continue
if not (autoclean or dblnk.mycpv == self.mycpv or reinstall_self):
continue
- showMessage(_(">>> Safely unmerging already-installed instance...\n"))
+ showMessage(_(">>>> Safely unmerging already-installed instance...\n"))
emerge_log(_(" === Unmerging... (%s)") % (dblnk.mycpv,))
others_in_slot.remove(dblnk) # dblnk will unmerge itself now
dblnk._linkmap_broken = self._linkmap_broken
@@ -5083,9 +5083,9 @@ class dblink:
dblnk.settings.pop("REPLACED_BY_VERSION", None)
if unmerge_rval == os.EX_OK:
- emerge_log(_(" >>> unmerge success: %s") % (dblnk.mycpv,))
+ emerge_log(_(" >>>> unmerge success: %s") % (dblnk.mycpv,))
else:
- emerge_log(_(" !!! unmerge FAILURE: %s") % (dblnk.mycpv,))
+ emerge_log(_(" !!!! unmerge FAILURE: %s") % (dblnk.mycpv,))
self.lockdb()
try:
@@ -5093,7 +5093,7 @@ class dblink:
dblnk.delete()
finally:
self.unlockdb()
- showMessage(_(">>> Original instance of package unmerged safely.\n"))
+ showMessage(_(">>>> Original instance of package unmerged safely.\n"))
if len(others_in_slot) > 1:
showMessage(
@@ -5221,7 +5221,7 @@ class dblink:
phase.start()
a = phase.wait()
if a == os.EX_OK:
- showMessage(_(">>> %s merged.\n") % self.mycpv)
+ showMessage(_(">>>> %s merged.\n") % self.mycpv)
finally:
self.settings.pop("PORTAGE_UPDATE_ENV", None)
@@ -5533,7 +5533,7 @@ class dblink:
mydest_link,
)
- zing = "!!!"
+ zing = "!!!!"
if not moveme:
# confmem rejected this update
zing = "---"
@@ -5582,7 +5582,7 @@ class dblink:
continue
# unlinking no longer necessary; "movefile" will overwrite symlinks atomically and correctly
if moveme:
- zing = ">>>"
+ zing = ">>>>"
mymtime = movefile(
mysrc,
mydest,
@@ -5625,12 +5625,12 @@ class dblink:
)
else:
showMessage(
- _("!!! Failed to move file.\n"),
+ _("!!!! Failed to move file.\n"),
level=logging.ERROR,
noiselevel=-1,
)
showMessage(
- "!!! %s -> %s\n" % (mydest, myto),
+ "!!!! %s -> %s\n" % (mydest, myto),
level=logging.ERROR,
noiselevel=-1,
)
@@ -5649,20 +5649,20 @@ class dblink:
if not stat.S_ISLNK(mydmode) and not os.access(mydest, os.W_OK):
pkgstuff = pkgsplit(self.pkg)
writemsg(
- _("\n!!! Cannot write to '%s'.\n") % mydest, noiselevel=-1
+ _("\n!!!! Cannot write to '%s'.\n") % mydest, noiselevel=-1
)
writemsg(
_(
- "!!! Please check permissions and directories for broken symlinks.\n"
+ "!!!! Please check permissions and directories for broken symlinks.\n"
)
)
writemsg(
_(
- "!!! You may start the merge process again by using ebuild:\n"
+ "!!!! You may start the merge process again by using ebuild:\n"
)
)
writemsg(
- "!!! ebuild "
+ "!!!! ebuild "
+ self.settings["PORTDIR"]
+ "/"
+ self.cat
@@ -5672,7 +5672,7 @@ class dblink:
+ self.pkg
+ ".ebuild merge\n"
)
- writemsg(_("!!! And finish by running this: env-update\n\n"))
+ writemsg(_("!!!! And finish by running this: env-update\n\n"))
return 1
if stat.S_ISDIR(mydmode) or (
@@ -5732,7 +5732,7 @@ class dblink:
bsd_chflags.lchflags(mydest, dflags)
os.chmod(mydest, mystat[0])
os.chown(mydest, mystat[4], mystat[5])
- showMessage(">>> %s/\n" % mydest)
+ showMessage(">>>> %s/\n" % mydest)
else:
try:
# destination doesn't exist
@@ -5753,7 +5753,7 @@ class dblink:
del e
os.chmod(mydest, mystat[0])
os.chown(mydest, mystat[4], mystat[5])
- showMessage(">>> %s/\n" % mydest)
+ showMessage(">>>> %s/\n" % mydest)
try:
self._merged_path(mydest, os.lstat(mydest))
@@ -5810,7 +5810,7 @@ class dblink:
if mymtime is None:
return 1
hardlink_candidates.append(mydest)
- zing = ">>>"
+ zing = ">>>>"
try:
self._merged_path(mydest, os.lstat(mydest))
@@ -5829,7 +5829,7 @@ class dblink:
showMessage("%s %s\n" % (zing, mydest))
else:
# we are merging a fifo or device node
- zing = "!!!"
+ zing = "!!!!"
if mydmode is None:
# destination doesn't exist
if (
@@ -5843,7 +5843,7 @@ class dblink:
)
is not None
):
- zing = ">>>"
+ zing = ">>>>"
try:
self._merged_path(mydest, os.lstat(mydest))
diff --git a/lib/portage/dep/__init__.py b/lib/portage/dep/__init__.py
index 3b3577025..727915bbe 100644
--- a/lib/portage/dep/__init__.py
+++ b/lib/portage/dep/__init__.py
@@ -254,9 +254,9 @@ def _get_useflag_re(eapi):
def cpvequal(cpv1, cpv2):
"""
Example Usage:
- >>> from portage.dep import cpvequal
- >>> cpvequal("sys-apps/portage-2.1","sys-apps/portage-2.1")
- >>> True
+ >>>> from portage.dep import cpvequal
+ >>>> cpvequal("sys-apps/portage-2.1","sys-apps/portage-2.1")
+ >>>> True
@param cpv1: CategoryPackageVersion (no operators) Example: "sys-apps/portage-2.1"
@type cpv1: String
@@ -317,7 +317,7 @@ def paren_reduce(mystr, _deprecation_warn=True):
split the list elements by spaces. All redundant brackets are removed.
Example usage:
- >>> paren_reduce('foobar foo? ( bar baz )')
+ >>>> paren_reduce('foobar foo? ( bar baz )')
['foobar', 'foo?', ['bar', 'baz']]
@param mystr: The string to reduce
@@ -484,8 +484,8 @@ def paren_enclose(mylist, unevaluated_atom=False, opconvert=False):
@return: The paren enclosed string
Example usage:
- >>> test = ['foobar','foo',['bar','baz']]
- >>> paren_enclose(test)
+ >>>> test = ['foobar','foo',['bar','baz']]
+ >>>> paren_enclose(test)
'foobar foo ( bar baz )'
"""
mystrparts = []
@@ -989,8 +989,8 @@ def dep_opconvert(deplist):
list of deps that follows..
Example usage:
- >>> test = ["blah", "||", ["foo", "bar", "baz"]]
- >>> dep_opconvert(test)
+ >>>> test = ["blah", "||", ["foo", "bar", "baz"]]
+ >>>> dep_opconvert(test)
['blah', ['||', 'foo', 'bar', 'baz']]
@param deplist: A list of deps to format
@@ -1034,7 +1034,7 @@ def flatten(mylist):
@return: A single list containing only non-list elements.
Example usage:
- >>> flatten([1, [2, 3, [4]]])
+ >>>> flatten([1, [2, 3, [4]]])
[1, 2, 3, 4]
"""
if portage._internal_caller:
@@ -2086,8 +2086,8 @@ def get_operator(mydep):
Return the operator used in a depstring.
Example usage:
- >>> from portage.dep import *
- >>> get_operator(">=test-1.0")
+ >>>> from portage.dep import *
+ >>>> get_operator(">=test-1.0")
'>='
@param mydep: The dep string to check
@@ -2107,7 +2107,7 @@ def dep_getcpv(mydep):
Return the category-package-version with any operators/slot specifications stripped off
Example usage:
- >>> dep_getcpv('>=media-libs/test-3.0')
+ >>>> dep_getcpv('>=media-libs/test-3.0')
'media-libs/test-3.0'
@param mydep: The depstring
@@ -2126,7 +2126,7 @@ def dep_getslot(mydep):
Retrieve the slot on a depend.
Example usage:
- >>> dep_getslot('app-misc/test:3')
+ >>>> dep_getslot('app-misc/test:3')
'3'
@param mydep: The depstring to retrieve the slot of
@@ -2160,7 +2160,7 @@ def dep_getrepo(mydep):
@return: The repository name
Example usage:
- >>> dep_getrepo('app-misc/test::repository')
+ >>>> dep_getrepo('app-misc/test::repository')
'repository'
"""
repo = getattr(mydep, "repo", False)
@@ -2213,7 +2213,7 @@ def dep_getusedeps(depend):
@return: List of use flags ( or [] if no flags exist )
Example usage:
- >>> dep_getusedeps('app-misc/test:3[foo,-bar]')
+ >>>> dep_getusedeps('app-misc/test:3[foo,-bar]')
('foo', '-bar')
"""
use_list = []
@@ -2276,9 +2276,9 @@ def isvalidatom(
Check to see if a depend atom is valid
Example usage:
- >>> isvalidatom('media-libs/test-3.0')
+ >>>> isvalidatom('media-libs/test-3.0')
False
- >>> isvalidatom('>=media-libs/test-3.0')
+ >>>> isvalidatom('>=media-libs/test-3.0')
True
@param atom: The depend atom to check against
@@ -2314,9 +2314,9 @@ def isjustname(mypkg):
Checks to see if the atom is only the package name (no version parts).
Example usage:
- >>> isjustname('=media-libs/test-3.0')
+ >>>> isjustname('=media-libs/test-3.0')
False
- >>> isjustname('media-libs/test')
+ >>>> isjustname('media-libs/test')
True
@param mypkg: The package atom to check
@@ -2345,9 +2345,9 @@ def isspecific(mypkg):
package-version format.
Example usage:
- >>> isspecific('media-libs/test')
+ >>>> isspecific('media-libs/test')
False
- >>> isspecific('=media-libs/test-3.0')
+ >>>> isspecific('=media-libs/test-3.0')
True
@param mypkg: The package depstring to check against
@@ -2373,7 +2373,7 @@ def dep_getkey(mydep):
Return the category/package-name of a depstring.
Example usage:
- >>> dep_getkey('=media-libs/test-3.0')
+ >>>> dep_getkey('=media-libs/test-3.0')
'media-libs/test'
@param mydep: The depstring to retrieve the category/package-name of
@@ -2538,7 +2538,7 @@ def match_from_list(mydep, candidate_list):
if ver and rev:
operator = mydep.operator
if not operator:
- writemsg(_("!!! Invalid atom: %s\n") % mydep, noiselevel=-1)
+ writemsg(_("!!!! Invalid atom: %s\n") % mydep, noiselevel=-1)
return []
else:
operator = None
@@ -3120,7 +3120,7 @@ def extract_affecting_use(mystr, atom, eapi=None):
@return: Set of use flags affecting given atom
Example usage:
- >>> extract_affecting_use('sasl? ( dev-libs/cyrus-sasl ) \
+ >>>> extract_affecting_use('sasl? ( dev-libs/cyrus-sasl ) \
!minimal? ( cxx? ( dev-libs/cyrus-sasl ) )', 'dev-libs/cyrus-sasl')
{'cxx', 'minimal', 'sasl'}
"""
diff --git a/lib/portage/elog/__init__.py b/lib/portage/elog/__init__.py
index 48e2a39de..138407719 100644
--- a/lib/portage/elog/__init__.py
+++ b/lib/portage/elog/__init__.py
@@ -195,7 +195,7 @@ def elog_process(cpv, mysettings, phasefilter=None):
except (ImportError, AttributeError) as e:
writemsg(
_(
- "!!! Error while importing logging modules "
+ "!!!! Error while importing logging modules "
'while loading "mod_%s":\n'
)
% str(s)
diff --git a/lib/portage/elog/messages.py b/lib/portage/elog/messages.py
index 6a67a45de..ea4e8c736 100644
--- a/lib/portage/elog/messages.py
+++ b/lib/portage/elog/messages.py
@@ -50,7 +50,7 @@ def collect_ebuild_messages(path):
filename = os.path.join(path, msgfunction)
if msgfunction not in EBUILD_PHASES:
writemsg(
- _("!!! can't process invalid log file: %s\n") % filename, noiselevel=-1
+ _("!!!! can't process invalid log file: %s\n") % filename, noiselevel=-1
)
continue
if not msgfunction in logentries:
@@ -74,7 +74,8 @@ def collect_ebuild_messages(path):
raise ValueError(msgtype)
except ValueError:
writemsg(
- _("!!! malformed entry in " "log file: '%s': %s\n") % (filename, l),
+ _("!!!! malformed entry in " "log file: '%s': %s\n")
+ % (filename, l),
noiselevel=-1,
)
continue
diff --git a/lib/portage/elog/mod_custom.py b/lib/portage/elog/mod_custom.py
index e0ae77e10..37a3e86c4 100644
--- a/lib/portage/elog/mod_custom.py
+++ b/lib/portage/elog/mod_custom.py
@@ -12,7 +12,7 @@ def process(mysettings, key, logentries, fulltext):
if not mysettings.get("PORTAGE_ELOG_COMMAND"):
raise portage.exception.MissingParameter(
- "!!! Custom logging requested but PORTAGE_ELOG_COMMAND is not defined"
+ "!!!! Custom logging requested but PORTAGE_ELOG_COMMAND is not defined"
)
else:
mylogcmd = mysettings["PORTAGE_ELOG_COMMAND"]
@@ -21,5 +21,5 @@ def process(mysettings, key, logentries, fulltext):
retval = portage.process.spawn_bash(mylogcmd)
if retval != 0:
raise portage.exception.PortageException(
- "!!! PORTAGE_ELOG_COMMAND failed with exitcode %d" % retval
+ "!!!! PORTAGE_ELOG_COMMAND failed with exitcode %d" % retval
)
diff --git a/lib/portage/elog/mod_mail_summary.py b/lib/portage/elog/mod_mail_summary.py
index a695290ef..79f705f8c 100644
--- a/lib/portage/elog/mod_mail_summary.py
+++ b/lib/portage/elog/mod_mail_summary.py
@@ -28,7 +28,7 @@ def process(mysettings, key, logentries, fulltext):
errors="replace",
)
header = _(
- ">>> Messages generated for package %(pkg)s by process %(pid)d on %(time)s:\n\n"
+ ">>>> Messages generated for package %(pkg)s by process %(pid)d on %(time)s:\n\n"
) % {"pkg": key, "pid": portage.getpid(), "time": time_str}
config_root = mysettings["PORTAGE_CONFIGROOT"]
diff --git a/lib/portage/elog/mod_save_summary.py b/lib/portage/elog/mod_save_summary.py
index 939198fdc..75f5097d3 100644
--- a/lib/portage/elog/mod_save_summary.py
+++ b/lib/portage/elog/mod_save_summary.py
@@ -85,7 +85,7 @@ def process(mysettings, key, logentries, fulltext):
)
elogfile.write(
_(
- ">>> Messages generated by process "
+ ">>>> Messages generated by process "
"%(pid)d on %(time)s for package %(pkg)s:\n\n"
)
% {"pid": portage.getpid(), "time": time_str, "pkg": key}
diff --git a/lib/portage/emaint/modules/binhost/binhost.py b/lib/portage/emaint/modules/binhost/binhost.py
index 9d924f7e1..cd5c4c92a 100644
--- a/lib/portage/emaint/modules/binhost/binhost.py
+++ b/lib/portage/emaint/modules/binhost/binhost.py
@@ -158,7 +158,8 @@ class BinhostHandler:
bintree._eval_use_flags(cpv, d)
except portage.exception.InvalidDependString:
writemsg(
- "!!! Invalid binary package: '%s'\n" % bintree.getname(cpv),
+ "!!!! Invalid binary package: '%s'\n"
+ % bintree.getname(cpv),
noiselevel=-1,
)
else:
diff --git a/lib/portage/env/loaders.py b/lib/portage/env/loaders.py
index 284c311a1..6c69a1ecf 100644
--- a/lib/portage/env/loaders.py
+++ b/lib/portage/env/loaders.py
@@ -197,10 +197,10 @@ class ItemFileLoader(FileLoader):
"""
Class to load data from a file full of items one per line
- >>> item1
- >>> item2
- >>> item3
- >>> item1
+ >>>> item1
+ >>>> item2
+ >>>> item3
+ >>>> item1
becomes { 'item1':None, 'item2':None, 'item3':None }
Note that due to the data store being a dict, duplicates
@@ -235,7 +235,7 @@ class KeyListFileLoader(FileLoader):
"""
Class to load data from a file full of key [list] tuples
- >>>>key foo1 foo2 foo3
+ >>>>>key foo1 foo2 foo3
becomes
{'key':['foo1','foo2','foo3']}
"""
@@ -288,8 +288,8 @@ class KeyValuePairFileLoader(FileLoader):
"""
Class to load data from a file full of key=value pairs
- >>>>key=value
- >>>>foo=bar
+ >>>>>key=value
+ >>>>>foo=bar
becomes:
{'key':'value',
'foo':'bar'}
diff --git a/lib/portage/getbinpkg.py b/lib/portage/getbinpkg.py
index 6aa8f1de1..f9e4aaa62 100644
--- a/lib/portage/getbinpkg.py
+++ b/lib/portage/getbinpkg.py
@@ -29,7 +29,7 @@ from urllib.parse import unquote as urllib_parse_unquote
try:
import ftplib
except ImportError as e:
- sys.stderr.write(colorize("BAD", "!!! CANNOT IMPORT FTPLIB: ") + str(e) + "\n")
+ sys.stderr.write(colorize("BAD", "!!!! CANNOT IMPORT FTPLIB: ") + str(e) + "\n")
else:
_all_errors.extend(ftplib.all_errors)
@@ -39,7 +39,9 @@ try:
from http.client import ResponseNotReady as http_client_ResponseNotReady
from http.client import error as http_client_error
except ImportError as e:
- sys.stderr.write(colorize("BAD", "!!! CANNOT IMPORT HTTP.CLIENT: ") + str(e) + "\n")
+ sys.stderr.write(
+ colorize("BAD", "!!!! CANNOT IMPORT HTTP.CLIENT: ") + str(e) + "\n"
+ )
else:
_all_errors.append(http_client_error)
@@ -635,7 +637,7 @@ def dir_get_metadata(
except _all_errors as e:
# ftplib.FTP(host) can raise errors like this:
# socket.error: (111, 'Connection refused')
- sys.stderr.write("!!! %s\n" % (e,))
+ sys.stderr.write("!!!! %s\n" % (e,))
return {}
out = sys.stdout
@@ -672,8 +674,8 @@ def dir_get_metadata(
metadata[baseurl]["data"] = {}
if not os.access(cache_path, os.W_OK):
- sys.stderr.write(_("!!! Unable to write binary metadata to disk!\n"))
- sys.stderr.write(_("!!! Permission denied: '%s'\n") % cache_path)
+ sys.stderr.write(_("!!!! Unable to write binary metadata to disk!\n"))
+ sys.stderr.write(_("!!!! Permission denied: '%s'\n") % cache_path)
return metadata[baseurl]["data"]
import portage.exception
@@ -682,9 +684,9 @@ def dir_get_metadata(
filelist = dir_get_list(baseurl, conn)
except portage.exception.PortageException as e:
sys.stderr.write(
- _("!!! Error connecting to '%s'.\n") % _hide_url_passwd(baseurl)
+ _("!!!! Error connecting to '%s'.\n") % _hide_url_passwd(baseurl)
)
- sys.stderr.write("!!! %s\n" % str(e))
+ sys.stderr.write("!!!! %s\n" % str(e))
del e
return metadata[baseurl]["data"]
tbz2list = match_in_array(filelist, suffix=".tbz2")
@@ -728,7 +730,7 @@ def dir_get_metadata(
raise
except Exception as e:
mytempfile.close()
- sys.stderr.write(_("!!! Failed to use gzip: ") + str(e) + "\n")
+ sys.stderr.write(_("!!!! Failed to use gzip: ") + str(e) + "\n")
sys.stderr.flush()
mytempfile.close()
try:
@@ -744,9 +746,9 @@ def dir_get_metadata(
raise
except Exception as e:
sys.stderr.write(
- _("!!! Failed to read data from index: ") + str(mfile) + "\n"
+ _("!!!! Failed to read data from index: ") + str(mfile) + "\n"
)
- sys.stderr.write("!!! %s" % str(e))
+ sys.stderr.write("!!!! %s" % str(e))
sys.stderr.flush()
try:
metadatafile = open(
@@ -760,8 +762,8 @@ def dir_get_metadata(
except SystemExit as e:
raise
except Exception as e:
- sys.stderr.write(_("!!! Failed to write binary metadata to disk!\n"))
- sys.stderr.write("!!! %s\n" % str(e))
+ sys.stderr.write(_("!!!! Failed to write binary metadata to disk!\n"))
+ sys.stderr.write("!!!! %s\n" % str(e))
sys.stderr.flush()
break
# We may have metadata... now we run through the tbz2 list and check.
@@ -829,7 +831,7 @@ def dir_get_metadata(
metadata[baseurl]["data"][x] = make_metadata_dict(myid)
elif verbose:
sys.stderr.write(
- colorize("BAD", _("!!! Failed to retrieve metadata on: "))
+ colorize("BAD", _("!!!! Failed to retrieve metadata on: "))
+ str(x)
+ "\n"
)
@@ -871,8 +873,8 @@ def dir_get_metadata(
except SystemExit as e:
raise
except Exception as e:
- sys.stderr.write(_("!!! Failed to write binary metadata to disk!\n"))
- sys.stderr.write("!!! " + str(e) + "\n")
+ sys.stderr.write(_("!!!! Failed to write binary metadata to disk!\n"))
+ sys.stderr.write("!!!! " + str(e) + "\n")
sys.stderr.flush()
if not keepconnection:
diff --git a/lib/portage/locks.py b/lib/portage/locks.py
index 67541a84d..92a3030ea 100644
--- a/lib/portage/locks.py
+++ b/lib/portage/locks.py
@@ -343,7 +343,7 @@ def _lockfile_iteration(
% lockfilename
)
writemsg(
- "\n!!! %s: %s\n" % (context_desc, e), noiselevel=-1
+ "\n!!!! %s: %s\n" % (context_desc, e), noiselevel=-1
)
time.sleep(_HARDLINK_POLL_LATENCY)
diff --git a/lib/portage/mail.py b/lib/portage/mail.py
index aa2617b42..b2a647a76 100644
--- a/lib/portage/mail.py
+++ b/lib/portage/mail.py
@@ -102,7 +102,9 @@ def send_mail(mysettings, message):
mymailuser, mymailpasswd = myauthdata.split(":")
except ValueError:
print(
- _("!!! invalid SMTP AUTH configuration, trying unauthenticated ...")
+ _(
+ "!!!! invalid SMTP AUTH configuration, trying unauthenticated ..."
+ )
)
else:
myconndata = mymailuri
@@ -122,7 +124,7 @@ def send_mail(mysettings, message):
if fd.close() != None:
sys.stderr.write(
_(
- "!!! %s returned with a non-zero exit code. This generally indicates an error.\n"
+ "!!!! %s returned with a non-zero exit code. This generally indicates an error.\n"
)
% mymailhost
)
@@ -134,7 +136,7 @@ def send_mail(mysettings, message):
if not myconn.has_extn("STARTTLS"):
raise portage.exception.PortageException(
_(
- "!!! TLS support requested for logmail but not supported by server"
+ "!!!! TLS support requested for logmail but not supported by server"
)
)
myconn.starttls()
@@ -149,12 +151,12 @@ def send_mail(mysettings, message):
myconn.quit()
except smtplib.SMTPException as e:
raise portage.exception.PortageException(
- _("!!! An error occurred while trying to send logmail:\n") + str(e)
+ _("!!!! An error occurred while trying to send logmail:\n") + str(e)
)
except socket.error as e:
raise portage.exception.PortageException(
_(
- "!!! A network error occurred while trying to send logmail:\n%s\nSure you configured PORTAGE_ELOG_MAILURI correctly?"
+ "!!!! A network error occurred while trying to send logmail:\n%s\nSure you configured PORTAGE_ELOG_MAILURI correctly?"
)
% str(e)
)
diff --git a/lib/portage/manifest.py b/lib/portage/manifest.py
index 0b4fad76c..450f9e494 100644
--- a/lib/portage/manifest.py
+++ b/lib/portage/manifest.py
@@ -447,7 +447,7 @@ class Manifest:
# unless this repo is being prepared for distribution
# via rsync.
writemsg_level(
- "!!! utime('%s', (%s, %s)): %s\n"
+ "!!!! utime('%s', (%s, %s)): %s\n"
% (path, max_mtime, max_mtime, e),
level=logging.WARNING,
noiselevel=-1,
diff --git a/lib/portage/metadata.py b/lib/portage/metadata.py
index 0bd2bcce4..39940e27b 100644
--- a/lib/portage/metadata.py
+++ b/lib/portage/metadata.py
@@ -19,7 +19,7 @@ from portage.util import writemsg_level
def action_metadata(settings, portdb, myopts, porttrees=None):
if porttrees is None:
porttrees = portdb.porttrees
- portage.writemsg_stdout("\n>>> Updating Portage cache\n")
+ portage.writemsg_stdout("\n>>>> Updating Portage cache\n")
cachedir = os.path.normpath(settings.depcachedir)
if cachedir in [
"/",
@@ -38,12 +38,12 @@ def action_metadata(settings, portdb, myopts, porttrees=None):
"/var",
]:
print(
- "!!! PORTAGE_DEPCACHEDIR IS SET TO A PRIMARY "
+ "!!!! PORTAGE_DEPCACHEDIR IS SET TO A PRIMARY "
+ "ROOT DIRECTORY ON YOUR SYSTEM.",
file=sys.stderr,
)
print(
- "!!! This is ALMOST CERTAINLY NOT what you want: '%s'" % cachedir,
+ "!!!! This is ALMOST CERTAINLY NOT what you want: '%s'" % cachedir,
file=sys.stderr,
)
sys.exit(73)
diff --git a/lib/portage/news.py b/lib/portage/news.py
index ce61f8490..b60d06f13 100644
--- a/lib/portage/news.py
+++ b/lib/portage/news.py
@@ -155,7 +155,7 @@ class NewsManager:
itemid, encoding=_encodings["fs"], errors="replace"
)
writemsg_level(
- _("!!! Invalid encoding in news item name: '%s'\n") % itemid,
+ _("!!!! Invalid encoding in news item name: '%s'\n") % itemid,
level=logging.ERROR,
noiselevel=-1,
)
@@ -353,7 +353,9 @@ class NewsItem:
for lineno, line in invalids:
msg.append(_(" line %d: %s") % (lineno, line))
writemsg_level(
- "".join("!!! %s\n" % x for x in msg), level=logging.ERROR, noiselevel=-1
+ "".join("!!!! %s\n" % x for x in msg),
+ level=logging.ERROR,
+ noiselevel=-1,
)
self._parsed = True
diff --git a/lib/portage/package/ebuild/_config/LocationsManager.py b/lib/portage/package/ebuild/_config/LocationsManager.py
index d65aac609..23f87383e 100644
--- a/lib/portage/package/ebuild/_config/LocationsManager.py
+++ b/lib/portage/package/ebuild/_config/LocationsManager.py
@@ -133,7 +133,7 @@ class LocationsManager:
# that can be used for backward compatibility with
# old software.
writemsg(
- "!!! %s\n"
+ "!!!! %s\n"
% _("Found 2 make.profile dirs: " "using '%s', ignoring '%s'")
% (self.profile_path, deprecated_profile_path),
noiselevel=-1,
@@ -162,10 +162,10 @@ class LocationsManager:
except ParseError as e:
if not portage._sync_mode:
writemsg(
- _("!!! Unable to parse profile: '%s'\n") % self.profile_path,
+ _("!!!! Unable to parse profile: '%s'\n") % self.profile_path,
noiselevel=-1,
)
- writemsg("!!! ParseError: %s\n" % str(e), noiselevel=-1)
+ writemsg("!!!! ParseError: %s\n" % str(e), noiselevel=-1)
self.profiles = []
self.profiles_complex = []
@@ -198,7 +198,7 @@ class LocationsManager:
def _check_var_directory(self, varname, var):
if not isdir_raise_eaccess(var):
writemsg(
- _("!!! Error: %s='%s' is not a directory. " "Please correct this.\n")
+ _("!!!! Error: %s='%s' is not a directory. " "Please correct this.\n")
% (varname, var),
noiselevel=-1,
)
@@ -392,7 +392,7 @@ class LocationsManager:
if self.sysroot != "/" and self.sysroot != self.target_root:
writemsg(
_(
- "!!! Error: SYSROOT (currently %s) must "
+ "!!!! Error: SYSROOT (currently %s) must "
"equal / or ROOT (currently %s).\n"
)
% (self.sysroot, self.target_root),
diff --git a/lib/portage/package/ebuild/_parallel_manifest/ManifestProcess.py b/lib/portage/package/ebuild/_parallel_manifest/ManifestProcess.py
index 7bf5dd141..bef21f22f 100644
--- a/lib/portage/package/ebuild/_parallel_manifest/ManifestProcess.py
+++ b/lib/portage/package/ebuild/_parallel_manifest/ManifestProcess.py
@@ -25,20 +25,20 @@ class ManifestProcess(ForkProcess):
mf.create(assumeDistHashesAlways=True)
except FileNotFound as e:
portage.writemsg(
- _("!!! File %s doesn't exist, can't update " "Manifest\n") % e,
+ _("!!!! File %s doesn't exist, can't update " "Manifest\n") % e,
noiselevel=-1,
)
return 1
except PortagePackageException as e:
- portage.writemsg(("!!! %s\n") % (e,), noiselevel=-1)
+ portage.writemsg(("!!!! %s\n") % (e,), noiselevel=-1)
return 1
try:
modified = mf.write(sign=False)
except PermissionDenied as e:
portage.writemsg(
- "!!! %s: %s\n"
+ "!!!! %s: %s\n"
% (
_("Permission Denied"),
e,
diff --git a/lib/portage/package/ebuild/_parallel_manifest/ManifestScheduler.py b/lib/portage/package/ebuild/_parallel_manifest/ManifestScheduler.py
index 4599e2d50..be4bd0523 100644
--- a/lib/portage/package/ebuild/_parallel_manifest/ManifestScheduler.py
+++ b/lib/portage/package/ebuild/_parallel_manifest/ManifestScheduler.py
@@ -63,7 +63,7 @@ class ManifestScheduler(AsyncScheduler):
disabled_repos.add(repo_config.name)
portage.writemsg(
_(
- ">>> Skipping creating Manifest for %s%s%s; "
+ ">>>> Skipping creating Manifest for %s%s%s; "
"repository is configured to not use them\n"
)
% (cp, _repo_separator, repo_config.name),
diff --git a/lib/portage/package/ebuild/_parallel_manifest/ManifestTask.py b/lib/portage/package/ebuild/_parallel_manifest/ManifestTask.py
index df279dab6..f439e155a 100644
--- a/lib/portage/package/ebuild/_parallel_manifest/ManifestTask.py
+++ b/lib/portage/package/ebuild/_parallel_manifest/ManifestTask.py
@@ -54,7 +54,7 @@ class ManifestTask(CompositeTask):
self.fetchlist_dict.result()
except InvalidDependString as e:
writemsg(
- _("!!! %s%s%s: SRC_URI: %s\n")
+ _("!!!! %s%s%s: SRC_URI: %s\n")
% (self.cp, _repo_separator, self.repo_config.name, e),
noiselevel=-1,
)
@@ -212,7 +212,9 @@ class ManifestTask(CompositeTask):
try:
os.rename(*rename_args)
except OSError as e:
- writemsg("!!! rename('%s', '%s'): %s\n" % rename_args + (e,), noiselevel=-1)
+ writemsg(
+ "!!!! rename('%s', '%s'): %s\n" % rename_args + (e,), noiselevel=-1
+ )
try:
os.unlink(self._manifest_path + ".asc")
except OSError:
diff --git a/lib/portage/package/ebuild/config.py b/lib/portage/package/ebuild/config.py
index b4d6862a3..d3e32108f 100644
--- a/lib/portage/package/ebuild/config.py
+++ b/lib/portage/package/ebuild/config.py
@@ -457,7 +457,7 @@ class config:
if make_conf_count == 2:
writemsg(
- "!!! %s\n"
+ "!!!! %s\n"
% _("Found 2 make.conf files, using both '%s' and '%s'")
% tuple(make_conf_paths),
noiselevel=-1,
@@ -525,7 +525,7 @@ class config:
# that can be used for backward compatibility with
# old software.
writemsg(
- "!!! %s\n"
+ "!!!! %s\n"
% _(
"Found obsolete make.globals file: "
"'%s', (using '%s' instead)"
@@ -687,7 +687,7 @@ class config:
new_ov.append(portage._shell_quote(ov))
else:
writemsg(
- _("!!! Invalid PORTDIR_OVERLAY" " (not a dir): '%s'\n")
+ _("!!!! Invalid PORTDIR_OVERLAY" " (not a dir): '%s'\n")
% ov,
noiselevel=-1,
)
@@ -1036,7 +1036,7 @@ class config:
# TODO: bail out?
writemsg(
(
- _("!!! package.provided not allowed in EAPI %s: ")
+ _("!!!! package.provided not allowed in EAPI %s: ")
% x.eapi
)
+ x.location
@@ -1151,7 +1151,7 @@ class config:
except ValueError:
writemsg(
_(
- "!!! %s='%s' is not a valid integer. "
+ "!!!! %s='%s' is not a valid integer. "
"Falling back to %s.\n"
)
% (var, self[var], default_val),
@@ -1294,10 +1294,10 @@ class config:
ensure_dirs(mydir, gid=gid, mode=mode, mask=modemask)
except PortageException as e:
writemsg(
- _("!!! Directory initialization failed: '%s'\n") % mydir,
+ _("!!!! Directory initialization failed: '%s'\n") % mydir,
noiselevel=-1,
)
- writemsg("!!! %s\n" % str(e), noiselevel=-1)
+ writemsg("!!!! %s\n" % str(e), noiselevel=-1)
@property
def _keywords_manager(self):
@@ -1390,7 +1390,7 @@ class config:
and group not in ("*", "~*", "**")
):
writemsg(
- _("!!! INVALID ACCEPT_KEYWORDS: %s\n") % str(group),
+ _("!!!! INVALID ACCEPT_KEYWORDS: %s\n") % str(group),
noiselevel=-1,
)
@@ -1428,26 +1428,26 @@ class config:
writemsg(
_(
- "\n\n!!! %s is not a symlink and will probably prevent most merges.\n"
+ "\n\n!!!! %s is not a symlink and will probably prevent most merges.\n"
)
% abs_profile_path,
noiselevel=-1,
)
writemsg(
- _("!!! It should point into a profile within %s/profiles/\n")
+ _("!!!! It should point into a profile within %s/profiles/\n")
% self["PORTDIR"]
)
writemsg(
_(
- "!!! (You can safely ignore this message when syncing. It's harmless.)\n\n\n"
+ "!!!! (You can safely ignore this message when syncing. It's harmless.)\n\n\n"
)
)
abs_user_virtuals = os.path.join(self["PORTAGE_CONFIGROOT"], USER_VIRTUALS_FILE)
if os.path.exists(abs_user_virtuals):
- writemsg("\n!!! /etc/portage/virtuals is deprecated in favor of\n")
- writemsg("!!! /etc/portage/profile/virtuals. Please move it to\n")
- writemsg("!!! this new location.\n\n")
+ writemsg("\n!!!! /etc/portage/virtuals is deprecated in favor of\n")
+ writemsg("!!!! /etc/portage/profile/virtuals. Please move it to\n")
+ writemsg("!!!! this new location.\n\n")
if not sandbox_capable and (
"sandbox" in self.features or "usersandbox" in self.features
@@ -1462,7 +1462,8 @@ class config:
# to the user.
writemsg(
colorize(
- "BAD", _("!!! Problem with sandbox" " binary. Disabling...\n\n")
+ "BAD",
+ _("!!!! Problem with sandbox" " binary. Disabling...\n\n"),
),
noiselevel=-1,
)
@@ -1470,7 +1471,7 @@ class config:
if "fakeroot" in self.features and not fakeroot_capable:
writemsg(
_(
- "!!! FEATURES=fakeroot is enabled, but the "
+ "!!!! FEATURES=fakeroot is enabled, but the "
"fakeroot binary is not installed.\n"
),
noiselevel=-1,
@@ -1479,7 +1480,7 @@ class config:
if "webrsync-gpg" in self.features:
writemsg(
_(
- "!!! FEATURES=webrsync-gpg is deprecated, see the make.conf(5) man page.\n"
+ "!!!! FEATURES=webrsync-gpg is deprecated, see the make.conf(5) man page.\n"
),
noiselevel=-1,
)
@@ -1490,7 +1491,7 @@ class config:
if "userpriv" in self.features:
writemsg(
_(
- "!!! FEATURES=userpriv is enabled, but "
+ "!!!! FEATURES=userpriv is enabled, but "
"os.setgroups is not available.\n"
),
noiselevel=-1,
@@ -1500,7 +1501,7 @@ class config:
if "userfetch" in self.features:
writemsg(
_(
- "!!! FEATURES=userfetch is enabled, but "
+ "!!!! FEATURES=userfetch is enabled, but "
"os.setgroups is not available.\n"
),
noiselevel=-1,
@@ -1509,7 +1510,7 @@ class config:
if warning_shown and platform.python_implementation() == "PyPy":
writemsg(
- _("!!! See https://bugs.pypy.org/issue833 for details.\n"),
+ _("!!!! See https://bugs.pypy.org/issue833 for details.\n"),
noiselevel=-1,
)
@@ -1519,7 +1520,7 @@ class config:
compression = _compressors[binpkg_compression]
except KeyError as e:
writemsg(
- "!!! BINPKG_COMPRESS contains invalid or "
+ "!!!! BINPKG_COMPRESS contains invalid or "
"unsupported compression method: %s" % e.args[0],
noiselevel=-1,
)
@@ -1530,7 +1531,7 @@ class config:
)[0]
except IndexError as e:
writemsg(
- "!!! BINPKG_COMPRESS contains invalid or "
+ "!!!! BINPKG_COMPRESS contains invalid or "
"unsupported compression method: %s" % e.args[0],
noiselevel=-1,
)
@@ -1538,7 +1539,7 @@ class config:
if portage.process.find_binary(compression_binary) is None:
missing_package = compression["package"]
writemsg(
- "!!! BINPKG_COMPRESS unsupported %s. "
+ "!!!! BINPKG_COMPRESS unsupported %s. "
"Missing package: %s"
% (binpkg_compression, missing_package),
noiselevel=-1,
@@ -2231,7 +2232,7 @@ class config:
)
if penvconfig is None:
writemsg(
- "!!! %s references non-existent file: %s\n"
+ "!!!! %s references non-existent file: %s\n"
% (os.path.join(abs_user_config, "package.env"), penvfile),
noiselevel=-1,
)
@@ -2239,7 +2240,7 @@ class config:
for k, v in penvconfig.items():
if k in protected_keys or k in non_user_variables:
writemsg(
- "!!! Illegal variable "
+ "!!!! Illegal variable "
+ "'%s' assigned in '%s'\n" % (k, penvfile),
noiselevel=-1,
)
@@ -2611,7 +2612,7 @@ class config:
self._accept_chost_re = re.compile(r"^%s$" % accept_chost[0])
except re.error as e:
writemsg(
- _("!!! Invalid ACCEPT_CHOSTS value: '%s': %s\n")
+ _("!!!! Invalid ACCEPT_CHOSTS value: '%s': %s\n")
% (accept_chost[0], e),
noiselevel=-1,
)
@@ -2623,7 +2624,7 @@ class config:
)
except re.error as e:
writemsg(
- _("!!! Invalid ACCEPT_CHOSTS value: '%s': %s\n")
+ _("!!!! Invalid ACCEPT_CHOSTS value: '%s': %s\n")
% (" ".join(accept_chost), e),
noiselevel=-1,
)
@@ -3236,7 +3237,7 @@ class config:
continue
if not isinstance(myvalue, str):
writemsg(
- _("!!! Non-string value in config: %s=%s\n") % (x, myvalue),
+ _("!!!! Non-string value in config: %s=%s\n") % (x, myvalue),
noiselevel=-1,
)
continue
@@ -3337,7 +3338,7 @@ class config:
mydict["LC_CTYPE"] = l
if check_locale(silent=True, env=mydict):
# TODO: output the following only once
- # writemsg(_("!!! LC_CTYPE unsupported, using %s instead\n")
+ # writemsg(_("!!!! LC_CTYPE unsupported, using %s instead\n")
# % mydict["LC_CTYPE"])
break
else:
@@ -3405,7 +3406,7 @@ class config:
else:
writemsg(
_(
- "!!! SELinux module not found. Please verify that it was installed.\n"
+ "!!!! SELinux module not found. Please verify that it was installed.\n"
),
noiselevel=-1,
)
diff --git a/lib/portage/package/ebuild/deprecated_profile_check.py b/lib/portage/package/ebuild/deprecated_profile_check.py
index 19bea1903..4d96e039a 100644
--- a/lib/portage/package/ebuild/deprecated_profile_check.py
+++ b/lib/portage/package/ebuild/deprecated_profile_check.py
@@ -51,18 +51,22 @@ def deprecated_profile_check(settings=None):
writemsg(
colorize(
"BAD",
- _("\n!!! Your current profile is " "deprecated and not supported anymore."),
+ _(
+ "\n!!!! Your current profile is "
+ "deprecated and not supported anymore."
+ ),
)
+ "\n",
noiselevel=-1,
)
writemsg(
- colorize("BAD", _("!!! Use eselect profile to update your " "profile.")) + "\n",
+ colorize("BAD", _("!!!! Use eselect profile to update your " "profile."))
+ + "\n",
noiselevel=-1,
)
if not dcontent:
writemsg(
- colorize("BAD", _("!!! Please refer to the " "Gentoo Upgrading Guide."))
+ colorize("BAD", _("!!!! Please refer to the " "Gentoo Upgrading Guide."))
+ "\n",
noiselevel=-1,
)
@@ -70,7 +74,7 @@ def deprecated_profile_check(settings=None):
newprofile = dcontent[0].rstrip("\n")
writemsg(
colorize(
- "BAD", _("!!! Please upgrade to the " "following profile if possible:")
+ "BAD", _("!!!! Please upgrade to the " "following profile if possible:")
)
+ "\n\n",
noiselevel=-1,
diff --git a/lib/portage/package/ebuild/digestcheck.py b/lib/portage/package/ebuild/digestcheck.py
index 3fe64550c..ebf7297fe 100644
--- a/lib/portage/package/ebuild/digestcheck.py
+++ b/lib/portage/package/ebuild/digestcheck.py
@@ -66,24 +66,24 @@ def digestcheck(myfiles, mysettings, strict=False, justmanifest=None, mf=None):
if mf.allow_missing:
continue
eout.eend(1)
- writemsg(_("\n!!! Missing digest for '%s'\n") % (f,), noiselevel=-1)
+ writemsg(_("\n!!!! Missing digest for '%s'\n") % (f,), noiselevel=-1)
return 0
mf.checkFileHashes(ftype, f, hash_filter=hash_filter)
eout.eend(0)
except FileNotFound as e:
eout.eend(1)
writemsg(
- _("\n!!! A file listed in the Manifest could not be found: %s\n") % str(e),
+ _("\n!!!! A file listed in the Manifest could not be found: %s\n") % str(e),
noiselevel=-1,
)
return 0
except DigestException as e:
eout.eend(1)
- writemsg(_("\n!!! Digest verification failed:\n"), noiselevel=-1)
- writemsg("!!! %s\n" % e.value[0], noiselevel=-1)
- writemsg(_("!!! Reason: %s\n") % e.value[1], noiselevel=-1)
- writemsg(_("!!! Got: %s\n") % e.value[2], noiselevel=-1)
- writemsg(_("!!! Expected: %s\n") % e.value[3], noiselevel=-1)
+ writemsg(_("\n!!!! Digest verification failed:\n"), noiselevel=-1)
+ writemsg("!!!! %s\n" % e.value[0], noiselevel=-1)
+ writemsg(_("!!!! Reason: %s\n") % e.value[1], noiselevel=-1)
+ writemsg(_("!!!! Got: %s\n") % e.value[2], noiselevel=-1)
+ writemsg(_("!!!! Expected: %s\n") % e.value[3], noiselevel=-1)
return 0
if mf.thin or mf.allow_missing:
# In this case we ignore any missing digests that
@@ -96,7 +96,7 @@ def digestcheck(myfiles, mysettings, strict=False, justmanifest=None, mf=None):
pf = f[:-7]
if pf is not None and not mf.hasFile("EBUILD", f):
writemsg(
- _("!!! A file is not listed in the Manifest: '%s'\n")
+ _("!!!! A file is not listed in the Manifest: '%s'\n")
% os.path.join(pkgdir, f),
noiselevel=-1,
)
@@ -114,7 +114,7 @@ def digestcheck(myfiles, mysettings, strict=False, justmanifest=None, mf=None):
parent, encoding=_encodings["fs"], errors="replace"
)
writemsg(
- _("!!! Path contains invalid " "character(s) for encoding '%s': '%s'")
+ _("!!!! Path contains invalid " "character(s) for encoding '%s': '%s'")
% (_encodings["fs"], parent),
noiselevel=-1,
)
@@ -129,7 +129,7 @@ def digestcheck(myfiles, mysettings, strict=False, justmanifest=None, mf=None):
d = _unicode_decode(d, encoding=_encodings["fs"], errors="replace")
writemsg(
_(
- "!!! Path contains invalid "
+ "!!!! Path contains invalid "
"character(s) for encoding '%s': '%s'"
)
% (_encodings["fs"], os.path.join(parent, d)),
@@ -151,7 +151,7 @@ def digestcheck(myfiles, mysettings, strict=False, justmanifest=None, mf=None):
f = os.path.join(parent, f)[len(filesdir) + 1 :]
writemsg(
_(
- "!!! File name contains invalid "
+ "!!!! File name contains invalid "
"character(s) for encoding '%s': '%s'"
)
% (_encodings["fs"], f),
@@ -166,7 +166,7 @@ def digestcheck(myfiles, mysettings, strict=False, justmanifest=None, mf=None):
file_type = mf.findFile(f)
if file_type != "AUX" and not f.startswith("digest-"):
writemsg(
- _("!!! A file is not listed in the Manifest: '%s'\n")
+ _("!!!! A file is not listed in the Manifest: '%s'\n")
% os.path.join(filesdir, f),
noiselevel=-1,
)
diff --git a/lib/portage/package/ebuild/digestgen.py b/lib/portage/package/ebuild/digestgen.py
index 3a3c92a3a..006aa1cc6 100644
--- a/lib/portage/package/ebuild/digestgen.py
+++ b/lib/portage/package/ebuild/digestgen.py
@@ -56,7 +56,7 @@ def digestgen(myarchives=None, mysettings=None, myportdb=None):
for myfile in fetchlist_dict[cpv]:
distfiles_map.setdefault(myfile, []).append(cpv)
except InvalidDependString as e:
- writemsg("!!! %s\n" % str(e), noiselevel=-1)
+ writemsg("!!!! %s\n" % str(e), noiselevel=-1)
del e
return 0
mytree = os.path.dirname(os.path.dirname(mysettings["O"]))
@@ -77,7 +77,7 @@ def digestgen(myarchives=None, mysettings=None, myportdb=None):
if not mf.allow_create:
writemsg_stdout(
_(
- ">>> Skipping creating Manifest for %s; "
+ ">>>> Skipping creating Manifest for %s; "
"repository is configured to not use them\n"
)
% mysettings["O"]
@@ -162,7 +162,7 @@ def digestgen(myarchives=None, mysettings=None, myportdb=None):
myebuild = os.path.join(mysettings["O"], catsplit(cpv)[1] + ".ebuild")
spawn_nofetch(myportdb, myebuild)
writemsg(
- _("!!! Fetch failed for %s, can't update Manifest\n") % myfile,
+ _("!!!! Fetch failed for %s, can't update Manifest\n") % myfile,
noiselevel=-1,
)
if myfile in dist_hashes and st is not None and st.st_size > 0:
@@ -176,17 +176,17 @@ def digestgen(myarchives=None, mysettings=None, myportdb=None):
writemsg(
(
_(
- "!!! If you would like to forcefully replace the existing Manifest entry\n"
- "!!! for %s, use the following command:\n"
+ "!!!! If you would like to forcefully replace the existing Manifest entry\n"
+ "!!!! for %s, use the following command:\n"
)
% myfile
)
- + "!!! %s\n" % cmd,
+ + "!!!! %s\n" % cmd,
noiselevel=-1,
)
return 0
- writemsg_stdout(_(">>> Creating Manifest for %s\n") % mysettings["O"])
+ writemsg_stdout(_(">>>> Creating Manifest for %s\n") % mysettings["O"])
try:
mf.create(
assumeDistHashesSometimes=True,
@@ -194,17 +194,17 @@ def digestgen(myarchives=None, mysettings=None, myportdb=None):
)
except FileNotFound as e:
writemsg(
- _("!!! File %s doesn't exist, can't update Manifest\n") % e,
+ _("!!!! File %s doesn't exist, can't update Manifest\n") % e,
noiselevel=-1,
)
return 0
except PortagePackageException as e:
- writemsg(("!!! %s\n") % (e,), noiselevel=-1)
+ writemsg(("!!!! %s\n") % (e,), noiselevel=-1)
return 0
try:
mf.write(sign=False)
except PermissionDenied as e:
- writemsg(_("!!! Permission Denied: %s\n") % (e,), noiselevel=-1)
+ writemsg(_("!!!! Permission Denied: %s\n") % (e,), noiselevel=-1)
return 0
if "assume-digests" not in mysettings.features:
distlist = list(mf.fhashdict.get("DIST", {}))
diff --git a/lib/portage/package/ebuild/doebuild.py b/lib/portage/package/ebuild/doebuild.py
index 9650a8444..d33f3e622 100644
--- a/lib/portage/package/ebuild/doebuild.py
+++ b/lib/portage/package/ebuild/doebuild.py
@@ -852,12 +852,12 @@ def doebuild(
if mydo not in validcommands:
validcommands.sort()
writemsg(
- "!!! doebuild: '%s' is not one of the following valid commands:" % mydo,
+ "!!!! doebuild: '%s' is not one of the following valid commands:" % mydo,
noiselevel=-1,
)
for vcount in range(len(validcommands)):
if vcount % 6 == 0:
- writemsg("\n!!! ", noiselevel=-1)
+ writemsg("\n!!!! ", noiselevel=-1)
writemsg(validcommands[vcount].ljust(11), noiselevel=-1)
writemsg("\n", noiselevel=-1)
return 1
@@ -880,7 +880,7 @@ def doebuild(
if mydo not in clean_phases and not os.path.exists(myebuild):
writemsg(
- "!!! doebuild: %s not found for %s\n" % (myebuild, mydo), noiselevel=-1
+ "!!!! doebuild: %s not found for %s\n" % (myebuild, mydo), noiselevel=-1
)
return 1
@@ -1035,7 +1035,7 @@ def doebuild(
if returnpid:
writemsg(
- "!!! doebuild: %s\n"
+ "!!!! doebuild: %s\n"
% _("returnpid is not supported for phase '%s'\n" % mydo),
noiselevel=-1,
)
@@ -1071,7 +1071,7 @@ def doebuild(
if mydo == "unmerge":
if returnpid:
writemsg(
- "!!! doebuild: %s\n"
+ "!!!! doebuild: %s\n"
% _("returnpid is not supported for phase '%s'\n" % mydo),
noiselevel=-1,
)
@@ -1116,12 +1116,12 @@ def doebuild(
os.path.join(mysettings["PORTAGE_BUILDDIR"], ".unpacked")
):
writemsg_stdout(
- _(">>> Not marked as unpacked; recreating WORKDIR...\n")
+ _(">>>> Not marked as unpacked; recreating WORKDIR...\n")
)
newstuff = True
else:
for x in alist:
- writemsg_stdout(">>> Checking %s's mtime...\n" % x)
+ writemsg_stdout(">>>> Checking %s's mtime...\n" % x)
try:
x_st = os.stat(os.path.join(mysettings["DISTDIR"], x))
except OSError:
@@ -1131,7 +1131,7 @@ def doebuild(
if x_st is not None and x_st.st_mtime > workdir_st.st_mtime:
writemsg_stdout(
_(
- ">>> Timestamp of "
+ ">>>> Timestamp of "
"%s has changed; recreating WORKDIR...\n"
)
% x
@@ -1159,7 +1159,7 @@ def doebuild(
)
builddir_lock = None
else:
- writemsg_stdout(_(">>> WORKDIR is up-to-date, keeping...\n"))
+ writemsg_stdout(_(">>>> WORKDIR is up-to-date, keeping...\n"))
unpacked = True
# Build directory creation isn't required for any of these.
@@ -1293,8 +1293,8 @@ def doebuild(
alist = _parse_uri_map(mysettings.mycpv, metadata, use=use)
aalist = _parse_uri_map(mysettings.mycpv, metadata)
except InvalidDependString as e:
- writemsg("!!! %s\n" % str(e), noiselevel=-1)
- writemsg(_("!!! Invalid SRC_URI for '%s'.\n") % mycpv, noiselevel=-1)
+ writemsg("!!!! %s\n" % str(e), noiselevel=-1)
+ writemsg(_("!!!! Invalid SRC_URI for '%s'.\n") % mycpv, noiselevel=-1)
del e
return 1
@@ -1383,7 +1383,7 @@ def doebuild(
_doebuild_manifest_cache = None
digestgen(mysettings=mysettings, myportdb=mydbapi)
except PermissionDenied as e:
- writemsg(_("!!! Permission Denied: %s\n") % (e,), noiselevel=-1)
+ writemsg(_("!!!! Permission Denied: %s\n") % (e,), noiselevel=-1)
if mydo in ("digest", "manifest"):
return 1
@@ -1491,7 +1491,7 @@ def doebuild(
elif returnpid:
writemsg(
- "!!! doebuild: %s\n"
+ "!!!! doebuild: %s\n"
% _("returnpid is not supported for phase '%s'\n" % mydo),
noiselevel=-1,
)
@@ -1506,7 +1506,7 @@ def doebuild(
os.path.join(mysettings["PORTAGE_BUILDDIR"], ".installed")
):
writemsg(
- _("!!! mydo=qmerge, but the install phase has not been run\n"),
+ _("!!!! mydo=qmerge, but the install phase has not been run\n"),
noiselevel=-1,
)
return 1
@@ -1563,7 +1563,7 @@ def doebuild(
)
else:
- writemsg_stdout(_("!!! Unknown mydo: %s\n") % mydo, noiselevel=-1)
+ writemsg_stdout(_("!!!! Unknown mydo: %s\n") % mydo, noiselevel=-1)
return 1
return retval
@@ -2176,13 +2176,13 @@ def spawnebuild(
if os.path.exists(check_file):
writemsg_stdout(
_(
- ">>> It appears that "
+ ">>>> It appears that "
"'%(action)s' has already executed for '%(pkg)s'; skipping.\n"
)
% {"action": mydo, "pkg": mysettings["PF"]}
)
writemsg_stdout(
- _(">>> Remove '%(file)s' to force %(action)s.\n")
+ _(">>>> Remove '%(file)s' to force %(action)s.\n")
% {"file": check_file, "action": mydo}
)
return os.EX_OK
@@ -2277,7 +2277,7 @@ def _check_build_log(mysettings, out=None):
)
command_not_found_exclude_re = re.compile(r"/configure: line ")
helper_missing_file = []
- helper_missing_file_re = re.compile(r"^!!! (do|new).*: .* does not exist$")
+ helper_missing_file_re = re.compile(r"^!!!! (do|new).*: .* does not exist$")
configure_opts_warn = []
configure_opts_warn_re = re.compile(
diff --git a/lib/portage/package/ebuild/fetch.py b/lib/portage/package/ebuild/fetch.py
index 8c64362c2..ef47c4115 100644
--- a/lib/portage/package/ebuild/fetch.py
+++ b/lib/portage/package/ebuild/fetch.py
@@ -330,11 +330,11 @@ def _check_digests(filename, digests, show_errors=1):
if not verified_ok:
if show_errors:
writemsg(
- _("!!! Previously fetched" " file: '%s'\n") % filename, noiselevel=-1
+ _("!!!! Previously fetched" " file: '%s'\n") % filename, noiselevel=-1
)
- writemsg(_("!!! Reason: %s\n") % reason[0], noiselevel=-1)
+ writemsg(_("!!!! Reason: %s\n") % reason[0], noiselevel=-1)
writemsg(
- _("!!! Got: %s\n" "!!! Expected: %s\n") % (reason[1], reason[2]),
+ _("!!!! Got: %s\n" "!!! Expected: %s\n") % (reason[1], reason[2]),
noiselevel=-1,
)
return False
@@ -815,7 +815,7 @@ def fetch(
# XXX: This is not a good thing, and is temporary at best.
print(
_(
- '>>> "mirror" mode desired and "mirror" restriction found; skipping fetch.'
+ '>>>> "mirror" mode desired and "mirror" restriction found; skipping fetch.'
)
)
return 1
@@ -834,14 +834,14 @@ def fetch(
except (ValueError, OverflowError):
writemsg(
_(
- "!!! Variable PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS"
+ "!!!! Variable PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS"
" contains non-integer value: '%s'\n"
)
% mysettings["PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS"],
noiselevel=-1,
)
writemsg(
- _("!!! Using PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS " "default value: %s\n")
+ _("!!!! Using PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS " "default value: %s\n")
% checksum_failure_max_tries,
noiselevel=-1,
)
@@ -849,14 +849,14 @@ def fetch(
if v < 1:
writemsg(
_(
- "!!! Variable PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS"
+ "!!!! Variable PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS"
" contains value less than 1: '%s'\n"
)
% v,
noiselevel=-1,
)
writemsg(
- _("!!! Using PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS " "default value: %s\n")
+ _("!!!! Using PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS " "default value: %s\n")
% checksum_failure_max_tries,
noiselevel=-1,
)
@@ -875,14 +875,14 @@ def fetch(
if match is None or (match.group(2).upper() not in _size_suffix_map):
writemsg(
_(
- "!!! Variable PORTAGE_FETCH_RESUME_MIN_SIZE"
+ "!!!! Variable PORTAGE_FETCH_RESUME_MIN_SIZE"
" contains an unrecognized format: '%s'\n"
)
% mysettings["PORTAGE_FETCH_RESUME_MIN_SIZE"],
noiselevel=-1,
)
writemsg(
- _("!!! Using PORTAGE_FETCH_RESUME_MIN_SIZE " "default value: %s\n")
+ _("!!!! Using PORTAGE_FETCH_RESUME_MIN_SIZE " "default value: %s\n")
% fetch_resume_size_default,
noiselevel=-1,
)
@@ -929,7 +929,7 @@ def fetch(
colorize(
"BAD",
_(
- "!!! For fetching to a read-only filesystem, "
+ "!!!! For fetching to a read-only filesystem, "
"locking should be turned off.\n"
),
),
@@ -937,7 +937,7 @@ def fetch(
)
writemsg(
_(
- "!!! This can be done by adding -distlocks to "
+ "!!!! This can be done by adding -distlocks to "
"FEATURES in /etc/portage/make.conf\n"
),
noiselevel=-1,
@@ -1089,7 +1089,7 @@ def fetch(
mirrorname not in custommirrors
and mirrorname not in thirdpartymirrors
):
- writemsg(_("!!! No known mirror by the name: %s\n") % (mirrorname))
+ writemsg(_("!!!! No known mirror by the name: %s\n") % (mirrorname))
else:
writemsg(_("Invalid mirror definition in SRC_URI:\n"), noiselevel=-1)
writemsg(" %s\n" % (myuri), noiselevel=-1)
@@ -1131,17 +1131,17 @@ def fetch(
_ensure_distdir(mysettings, mysettings["DISTDIR"])
except PortageException as e:
if not os.path.isdir(mysettings["DISTDIR"]):
- writemsg("!!! %s\n" % str(e), noiselevel=-1)
+ writemsg("!!!! %s\n" % str(e), noiselevel=-1)
writemsg(
- _("!!! Directory Not Found: DISTDIR='%s'\n")
+ _("!!!! Directory Not Found: DISTDIR='%s'\n")
% mysettings["DISTDIR"],
noiselevel=-1,
)
- writemsg(_("!!! Fetching will fail!\n"), noiselevel=-1)
+ writemsg(_("!!!! Fetching will fail!\n"), noiselevel=-1)
if can_fetch and not fetch_to_ro and not os.access(mysettings["DISTDIR"], os.W_OK):
writemsg(
- _("!!! No write access to '%s'\n") % mysettings["DISTDIR"], noiselevel=-1
+ _("!!!! No write access to '%s'\n") % mysettings["DISTDIR"], noiselevel=-1
)
can_fetch = False
@@ -1175,11 +1175,11 @@ def fetch(
expected,
)
writemsg(
- _("!!! Fetched file: %s VERIFY FAILED!\n") % myfile, noiselevel=-1
+ _("!!!! Fetched file: %s VERIFY FAILED!\n") % myfile, noiselevel=-1
)
- writemsg(_("!!! Reason: %s\n") % reason[0], noiselevel=-1)
+ writemsg(_("!!!! Reason: %s\n") % reason[0], noiselevel=-1)
writemsg(
- _("!!! Got: %s\n!!! Expected: %s\n") % (reason[1], reason[2]),
+ _("!!!! Got: %s\n!!! Expected: %s\n") % (reason[1], reason[2]),
noiselevel=-1,
)
@@ -1217,7 +1217,7 @@ def fetch(
vfs_stat = os.statvfs(mysettings["DISTDIR"])
except OSError as e:
writemsg_level(
- "!!! statvfs('%s'): %s\n" % (mysettings["DISTDIR"], e),
+ "!!!! statvfs('%s'): %s\n" % (mysettings["DISTDIR"], e),
noiselevel=-1,
level=logging.ERROR,
)
@@ -1258,7 +1258,7 @@ def fetch(
except TryAgain:
writemsg(
_(
- ">>> File '%s' is already locked by "
+ ">>>> File '%s' is already locked by "
"another fetcher. Continuing...\n"
)
% myfile,
@@ -1289,7 +1289,7 @@ def fetch(
except PortageException as e:
if not os.access(myfile_path, os.R_OK):
writemsg(
- _("!!! Failed to adjust permissions:" " %s\n")
+ _("!!!! Failed to adjust permissions:" " %s\n")
% str(e),
noiselevel=-1,
)
@@ -1310,9 +1310,9 @@ def fetch(
if stat.S_ISDIR(mystat.st_mode):
writemsg_level(
_(
- "!!! Unable to fetch file since "
+ "!!!! Unable to fetch file since "
"a directory is in the way: \n"
- "!!! %s\n"
+ "!!!! %s\n"
)
% myfile_path,
level=logging.ERROR,
@@ -1361,7 +1361,7 @@ def fetch(
# it instead of deleting it.
writemsg(
_(
- ">>> Renaming distfile with size "
+ ">>>> Renaming distfile with size "
"%d (smaller than "
"PORTAGE_FETCH_RESU"
"ME_MIN_SIZE)\n"
@@ -1414,7 +1414,7 @@ def fetch(
# the file is not already fetched
if not has_space:
writemsg(
- _("!!! Insufficient space to store %s in %s\n")
+ _("!!!! Insufficient space to store %s in %s\n")
% (myfile, mysettings["DISTDIR"]),
noiselevel=-1,
)
@@ -1422,7 +1422,7 @@ def fetch(
if has_space_superuser:
writemsg(
_(
- "!!! Insufficient privileges to use "
+ "!!!! Insufficient privileges to use "
"remaining space.\n"
),
noiselevel=-1,
@@ -1430,9 +1430,9 @@ def fetch(
if userfetch:
writemsg(
_(
- '!!! You may set FEATURES="-userfetch"'
+ '!!!! You may set FEATURES="-userfetch"'
" in /etc/portage/make.conf in order to fetch with\n"
- "!!! superuser privileges.\n"
+ "!!!! superuser privileges.\n"
),
noiselevel=-1,
)
@@ -1471,7 +1471,7 @@ def fetch(
except PortageException as e:
if not os.access(download_path, os.R_OK):
writemsg(
- _("!!! Failed to adjust permissions:" " %s\n")
+ _("!!!! Failed to adjust permissions:" " %s\n")
% (e,),
noiselevel=-1,
)
@@ -1512,15 +1512,15 @@ def fetch(
verified_ok, reason = verify_all(download_path, digests)
if not verified_ok:
writemsg(
- _("!!! Previously fetched" " file: '%s'\n")
+ _("!!!! Previously fetched" " file: '%s'\n")
% myfile,
noiselevel=-1,
)
writemsg(
- _("!!! Reason: %s\n") % reason[0], noiselevel=-1
+ _("!!!! Reason: %s\n") % reason[0], noiselevel=-1
)
writemsg(
- _("!!! Got: %s\n" "!!! Expected: %s\n")
+ _("!!!! Got: %s\n" "!!! Expected: %s\n")
% (reason[1], reason[2]),
noiselevel=-1,
)
@@ -1594,8 +1594,8 @@ def fetch(
if fetchcommand is None:
writemsg_level(
_(
- "!!! %s is unset. It should "
- "have been defined in\n!!! %s/make.globals.\n"
+ "!!!! %s is unset. It should "
+ "have been defined in\n!!!! %s/make.globals.\n"
)
% (fetchcommand_var, global_config_path),
level=logging.ERROR,
@@ -1605,7 +1605,7 @@ def fetch(
if "${FILE}" not in fetchcommand:
writemsg_level(
_(
- "!!! %s does not contain the required ${FILE}"
+ "!!!! %s does not contain the required ${FILE}"
" parameter.\n"
)
% fetchcommand_var,
@@ -1622,8 +1622,8 @@ def fetch(
if resumecommand is None:
writemsg_level(
_(
- "!!! %s is unset. It should "
- "have been defined in\n!!! %s/make.globals.\n"
+ "!!!! %s is unset. It should "
+ "have been defined in\n!!!! %s/make.globals.\n"
)
% (resumecommand_var, global_config_path),
level=logging.ERROR,
@@ -1633,7 +1633,7 @@ def fetch(
if "${FILE}" not in resumecommand:
writemsg_level(
_(
- "!!! %s does not contain the required ${FILE}"
+ "!!!! %s does not contain the required ${FILE}"
" parameter.\n"
)
% resumecommand_var,
@@ -1645,8 +1645,8 @@ def fetch(
if missing_file_param:
writemsg_level(
_(
- "!!! Refer to the make.conf(5) man page for "
- "information about how to\n!!! correctly specify "
+ "!!!! Refer to the make.conf(5) man page for "
+ "information about how to\n!!!! correctly specify "
"FETCHCOMMAND and RESUMECOMMAND.\n"
),
level=logging.ERROR,
@@ -1667,14 +1667,14 @@ def fetch(
if mysize == 0:
writemsg(
- _("!!! File %s isn't fetched but unable to get it.\n")
+ _("!!!! File %s isn't fetched but unable to get it.\n")
% myfile,
noiselevel=-1,
)
elif size is None or size > mysize:
writemsg(
_(
- "!!! File %s isn't fully fetched, but unable to complete it\n"
+ "!!!! File %s isn't fully fetched, but unable to complete it\n"
)
% myfile,
noiselevel=-1,
@@ -1682,7 +1682,7 @@ def fetch(
else:
writemsg(
_(
- "!!! File %s is incorrect size, "
+ "!!!! File %s is incorrect size, "
"but unable to retry.\n"
)
% myfile,
@@ -1705,7 +1705,7 @@ def fetch(
if distdir_writable and mystat.st_size < fetch_resume_size:
writemsg(
_(
- ">>> Deleting distfile with size "
+ ">>>> Deleting distfile with size "
"%d (smaller than "
"PORTAGE_FETCH_RESU"
"ME_MIN_SIZE)\n"
@@ -1721,14 +1721,16 @@ def fetch(
fetched = 0
if fetched == 1:
# resume mode:
- writemsg(_(">>> Resuming download...\n"))
+ writemsg(_(">>>> Resuming download...\n"))
locfetch = resumecommand
command_var = resumecommand_var
else:
# normal mode:
locfetch = fetchcommand
command_var = fetchcommand_var
- writemsg_stdout(_(">>> Downloading '%s'\n") % _hide_url_passwd(loc))
+ writemsg_stdout(
+ _(">>>> Downloading '%s'\n") % _hide_url_passwd(loc)
+ )
variables = {"URI": loc, "FILE": os.path.basename(download_path)}
try:
@@ -1765,7 +1767,7 @@ def fetch(
except PortageException as e:
if not os.access(download_path, os.R_OK):
writemsg(
- _("!!! Failed to adjust permissions:" " %s\n")
+ _("!!!! Failed to adjust permissions:" " %s\n")
% str(e),
noiselevel=-1,
)
@@ -1802,8 +1804,8 @@ def fetch(
# instead have -O.
writemsg_level(
_(
- "!!! The command specified in the "
- "%s variable appears to have\n!!! "
+ "!!!! The command specified in the "
+ "%s variable appears to have\n!!!! "
"created a directory instead of a "
"normal file.\n"
)
@@ -1813,9 +1815,9 @@ def fetch(
)
writemsg_level(
_(
- "!!! Refer to the make.conf(5) "
+ "!!!! Refer to the make.conf(5) "
"man page for information about how "
- "to\n!!! correctly specify "
+ "to\n!!!! correctly specify "
"FETCHCOMMAND and RESUMECOMMAND.\n"
),
level=logging.ERROR,
@@ -1864,7 +1866,7 @@ def fetch(
os.unlink(download_path)
writemsg(
_(
- ">>> Deleting invalid distfile. (Improper 404 redirect from server.)\n"
+ ">>>> Deleting invalid distfile. (Improper 404 redirect from server.)\n"
)
)
fetched = 0
@@ -1886,15 +1888,16 @@ def fetch(
verified_ok, reason = verify_all(download_path, digests)
if not verified_ok:
writemsg(
- _("!!! Fetched file: %s VERIFY FAILED!\n")
+ _("!!!! Fetched file: %s VERIFY FAILED!\n")
% myfile,
noiselevel=-1,
)
writemsg(
- _("!!! Reason: %s\n") % reason[0], noiselevel=-1
+ _("!!!! Reason: %s\n") % reason[0],
+ noiselevel=-1,
)
writemsg(
- _("!!! Got: %s\n!!! Expected: %s\n")
+ _("!!!! Got: %s\n!!! Expected: %s\n")
% (reason[1], reason[2]),
noiselevel=-1,
)
@@ -1976,11 +1979,11 @@ def fetch(
if restrict_fetch and not restrict_fetch_msg:
restrict_fetch_msg = True
msg = _(
- "\n!!! %s/%s"
+ "\n!!!! %s/%s"
" has fetch restriction turned on.\n"
- "!!! This probably means that this "
+ "!!!! This probably means that this "
"ebuild's files must be downloaded\n"
- "!!! manually. See the comments in"
+ "!!!! manually. See the comments in"
" the ebuild for more information.\n\n"
) % (mysettings["CATEGORY"], mysettings["PF"])
writemsg_level(msg, level=logging.ERROR, noiselevel=-1)
@@ -1995,7 +1998,8 @@ def fetch(
)
else:
writemsg(
- _("!!! Couldn't download '%s'. Aborting.\n") % myfile, noiselevel=-1
+ _("!!!! Couldn't download '%s'. Aborting.\n") % myfile,
+ noiselevel=-1,
)
if listonly:
diff --git a/lib/portage/package/ebuild/prepare_build_dirs.py b/lib/portage/package/ebuild/prepare_build_dirs.py
index 41de1a3a9..2954accff 100644
--- a/lib/portage/package/ebuild/prepare_build_dirs.py
+++ b/lib/portage/package/ebuild/prepare_build_dirs.py
@@ -279,19 +279,19 @@ def _prepare_features_dirs(mysettings):
except DirectoryNotFound as e:
failure = True
writemsg(
- _("\n!!! Directory does not exist: '%s'\n") % (e,), noiselevel=-1
+ _("\n!!!! Directory does not exist: '%s'\n") % (e,), noiselevel=-1
)
- writemsg(_("!!! Disabled FEATURES='%s'\n") % myfeature, noiselevel=-1)
+ writemsg(_("!!!! Disabled FEATURES='%s'\n") % myfeature, noiselevel=-1)
except PortageException as e:
failure = True
- writemsg("\n!!! %s\n" % str(e), noiselevel=-1)
+ writemsg("\n!!!! %s\n" % str(e), noiselevel=-1)
writemsg(
- _("!!! Failed resetting perms on %s='%s'\n")
+ _("!!!! Failed resetting perms on %s='%s'\n")
% (kwargs["basedir_var"], basedir),
noiselevel=-1,
)
- writemsg(_("!!! Disabled FEATURES='%s'\n") % myfeature, noiselevel=-1)
+ writemsg(_("!!!! Disabled FEATURES='%s'\n") % myfeature, noiselevel=-1)
if failure:
mysettings.features.remove(myfeature)
@@ -314,13 +314,13 @@ def _prepare_workdir(mysettings):
workdir_mode = parsed_mode
except KeyError as e:
writemsg(
- _("!!! PORTAGE_WORKDIR_MODE is unset, using %s.\n") % oct(workdir_mode)
+ _("!!!! PORTAGE_WORKDIR_MODE is unset, using %s.\n") % oct(workdir_mode)
)
except ValueError as e:
if len(str(e)) > 0:
writemsg("%s\n" % e)
writemsg(
- _("!!! Unable to parse PORTAGE_WORKDIR_MODE='%s', using %s.\n")
+ _("!!!! Unable to parse PORTAGE_WORKDIR_MODE='%s', using %s.\n")
% (mysettings["PORTAGE_WORKDIR_MODE"], oct(workdir_mode))
)
mysettings["PORTAGE_WORKDIR_MODE"] = oct(workdir_mode).replace("o", "")
@@ -356,13 +356,13 @@ def _prepare_workdir(mysettings):
mode=0o2770,
)
except PortageException as e:
- writemsg("!!! %s\n" % str(e), noiselevel=-1)
+ writemsg("!!!! %s\n" % str(e), noiselevel=-1)
writemsg(
- _("!!! Permission issues with PORTAGE_LOGDIR='%s'\n")
+ _("!!!! Permission issues with PORTAGE_LOGDIR='%s'\n")
% mysettings["PORTAGE_LOGDIR"],
noiselevel=-1,
)
- writemsg(_("!!! Disabling logging.\n"), noiselevel=-1)
+ writemsg(_("!!!! Disabling logging.\n"), noiselevel=-1)
while "PORTAGE_LOGDIR" in mysettings:
del mysettings["PORTAGE_LOGDIR"]
@@ -409,13 +409,14 @@ def _prepare_workdir(mysettings):
try:
_ensure_log_subdirs(logdir, log_subdir)
except PortageException as e:
- writemsg("!!! %s\n" % (e,), noiselevel=-1)
+ writemsg("!!!! %s\n" % (e,), noiselevel=-1)
if os.access(log_subdir, os.W_OK):
logdir_subdir_ok = True
else:
writemsg(
- "!!! %s: %s\n" % (_("Permission Denied"), log_subdir), noiselevel=-1
+ "!!!! %s: %s\n" % (_("Permission Denied"), log_subdir),
+ noiselevel=-1,
)
tmpdir_log_path = os.path.join(mysettings["T"], "build.log%s" % compress_log_ext)
diff --git a/lib/portage/repository/config.py b/lib/portage/repository/config.py
index 0b591d94f..0f9ffa5de 100644
--- a/lib/portage/repository/config.py
+++ b/lib/portage/repository/config.py
@@ -291,7 +291,8 @@ class RepoConfig:
v = int(v)
except (OverflowError, ValueError):
writemsg(
- _("!!! Invalid %s setting for repo" " %s: %s\n") % (k, name, v),
+ _("!!!! Invalid %s setting for repo" " %s: %s\n")
+ % (k, name, v),
noiselevel=-1,
)
v = None
@@ -621,7 +622,7 @@ class RepoConfigLoader:
# File "/usr/lib/python3.2/shlex.py", line 168, in read_token
# raise ValueError("No closing quotation")
writemsg(
- _("!!! Invalid PORTDIR_OVERLAY:" " %s: %s\n") % (e, portdir_overlay),
+ _("!!!! Invalid PORTDIR_OVERLAY:" " %s: %s\n") % (e, portdir_overlay),
noiselevel=-1,
)
port_ov = []
@@ -724,7 +725,7 @@ class RepoConfigLoader:
if not portage._sync_mode:
writemsg(
- _("!!! Invalid PORTDIR_OVERLAY (not a dir): '%s'\n") % ov,
+ _("!!!! Invalid PORTDIR_OVERLAY (not a dir): '%s'\n") % ov,
noiselevel=-1,
)
@@ -799,7 +800,7 @@ class RepoConfigLoader:
self._parse(paths, prepos, settings.local_config, default_opts)
except ConfigParserError as e:
writemsg(
- _("!!! Error while reading repo config file: %s\n") % e, noiselevel=-1
+ _("!!!! Error while reading repo config file: %s\n") % e, noiselevel=-1
)
# The configparser state is unreliable (prone to quirky
# exceptions) after it has thrown an error, so use empty
@@ -850,7 +851,7 @@ class RepoConfigLoader:
# Skip this warning for repoman (bug #474578).
if settings.local_config and paths:
writemsg_level(
- "!!! %s\n"
+ "!!!! %s\n"
% _(
"Section '%s' in repos.conf is missing location attribute"
)
@@ -864,7 +865,7 @@ class RepoConfigLoader:
if not portage._sync_mode:
if not isdir_raise_eaccess(repo.location):
writemsg_level(
- "!!! %s\n"
+ "!!!! %s\n"
% _(
"Section '%s' in repos.conf has location attribute set "
"to nonexistent directory: '%s'"
@@ -884,7 +885,7 @@ class RepoConfigLoader:
# if repo.missing_repo_name:
if repo.missing_repo_name and repo.name != repo_name:
writemsg_level(
- "!!! %s\n"
+ "!!!! %s\n"
% _(
"Section '%s' in repos.conf refers to repository "
"without repository name set in '%s'"
@@ -898,7 +899,7 @@ class RepoConfigLoader:
if repo.name != repo_name:
writemsg_level(
- "!!! %s\n"
+ "!!!! %s\n"
% _(
"Section '%s' in repos.conf has name different "
"from repository name '%s' set inside repository"
@@ -928,7 +929,7 @@ class RepoConfigLoader:
continue
writemsg_level(
_(
- "!!! Repository name or alias '%s', "
+ "!!!! Repository name or alias '%s', "
+ "defined for repository '%s', overrides "
+ "existing alias or repository.\n"
)
@@ -957,7 +958,7 @@ class RepoConfigLoader:
prepos["DEFAULT"].main_repo = None
if portdir and not portage._sync_mode:
writemsg(
- _("!!! main-repo not set in DEFAULT and PORTDIR is empty.\n"),
+ _("!!!! main-repo not set in DEFAULT and PORTDIR is empty.\n"),
noiselevel=-1,
)
@@ -970,7 +971,7 @@ class RepoConfigLoader:
if portdir_sync and main_repo is not None:
writemsg(
_(
- "!!! SYNC setting found in make.conf.\n "
+ "!!!! SYNC setting found in make.conf.\n "
"This setting is Deprecated and no longer used. "
"Please ensure your 'sync-type' and 'sync-uri' are set correctly"
" in /etc/portage/repos.conf/gentoo.conf\n"
@@ -1097,13 +1098,13 @@ class RepoConfigLoader:
):
# TODO: Delete masters code in lib/portage/tests/resolver/ResolverPlayground.py when deleting this warning.
writemsg_level(
- "!!! %s\n"
+ "!!!! %s\n"
% _("Repository '%s' is missing masters attribute in '%s'")
% (
repo.name,
os.path.join(repo.location, "metadata", "layout.conf"),
)
- + "!!! %s\n"
+ + "!!!! %s\n"
% _("Set 'masters = %s' in this file for future compatibility")
% self.mainRepo().name,
level=logging.WARNING,
@@ -1147,14 +1148,14 @@ class RepoConfigLoader:
if name != "DEFAULT":
if r.location is None:
writemsg(
- _("!!! Location not set for repository %s\n") % name,
+ _("!!!! Location not set for repository %s\n") % name,
noiselevel=-1,
)
else:
if not isdir_raise_eaccess(r.location) and not portage._sync_mode:
self.prepos_order.remove(name)
writemsg(
- _("!!! Invalid Repository Location" " (not a dir): '%s'\n")
+ _("!!!! Invalid Repository Location" " (not a dir): '%s'\n")
% r.location,
noiselevel=-1,
)
diff --git a/lib/portage/sync/config_checks.py b/lib/portage/sync/config_checks.py
index a73e0dc88..1f270dfcf 100644
--- a/lib/portage/sync/config_checks.py
+++ b/lib/portage/sync/config_checks.py
@@ -18,7 +18,7 @@ from portage.util import writemsg_level
def check_type(repo, logger, module_names):
if repo.sync_uri is not None and repo.sync_type is None:
writemsg_level(
- "!!! %s\n"
+ "!!!! %s\n"
% _(
"Repository '%s' has sync-uri attribute, but is missing sync-type attribute"
)
@@ -29,7 +29,7 @@ def check_type(repo, logger, module_names):
return False
if repo.sync_type not in module_names + [None]:
writemsg_level(
- "!!! %s\n"
+ "!!!! %s\n"
% _(
"Repository '%s' has sync-type attribute set to unsupported value: '%s'"
)
@@ -38,7 +38,7 @@ def check_type(repo, logger, module_names):
noiselevel=-1,
)
writemsg_level(
- "!!! %s\n" % _("Installed sync-types are: '%s'") % (str(module_names)),
+ "!!!! %s\n" % _("Installed sync-types are: '%s'") % (str(module_names)),
level=logger.ERROR,
noiselevel=-1,
)
@@ -68,7 +68,7 @@ class CheckSyncConfig:
"""Check the sync_uri setting"""
if self.repo.sync_uri is None:
writemsg_level(
- "!!! %s\n"
+ "!!!! %s\n"
% _(
"Repository '%s' has sync-type attribute, but is missing sync-uri attribute"
)
@@ -81,7 +81,7 @@ class CheckSyncConfig:
"""Check the auto_sync setting"""
if self.repo.auto_sync is None:
writemsg_level(
- "!!! %s\n"
+ "!!!! %s\n"
% _("Repository '%s' is missing auto_sync attribute")
% self.repo.name,
level=self.logger.ERROR,
@@ -89,7 +89,7 @@ class CheckSyncConfig:
)
elif self.repo.auto_sync.lower() not in ["yes", "true", "no", "false"]:
writemsg_level(
- "!!! %s\n"
+ "!!!! %s\n"
% _("Repository '%s' auto_sync attribute must be one of: %s")
% (self.repo.name, "{yes, true, no, false}"),
level=self.logger.ERROR,
diff --git a/lib/portage/sync/controller.py b/lib/portage/sync/controller.py
index 987aa5481..d7031db9c 100644
--- a/lib/portage/sync/controller.py
+++ b/lib/portage/sync/controller.py
@@ -212,7 +212,7 @@ class SyncManager:
return succeeded
def pre_sync(self, repo):
- msg = ">>> Syncing repository '%s' into '%s'..." % (repo.name, repo.location)
+ msg = ">>>> Syncing repository '%s' into '%s'..." % (repo.name, repo.location)
self.logger(self.xterm_titles, msg)
writemsg_level(msg + "\n")
try:
@@ -248,7 +248,7 @@ class SyncManager:
pw = pwd.getpwuid(int(username))
except (ValueError, KeyError):
writemsg(
- "!!! User '%s' invalid or does not exist\n" % username,
+ "!!!! User '%s' invalid or does not exist\n" % username,
noiselevel=-1,
)
return (logname, user, group, home)
@@ -266,7 +266,7 @@ class SyncManager:
pw = grp.getgrgid(int(groupname))
except (ValueError, KeyError):
writemsg(
- "!!! Group '%s' invalid or does not exist\n" % groupname,
+ "!!!! Group '%s' invalid or does not exist\n" % groupname,
noiselevel=-1,
)
return (logname, user, group, home)
diff --git a/lib/portage/sync/modules/cvs/__init__.py b/lib/portage/sync/modules/cvs/__init__.py
index 344a7f847..3d7373272 100644
--- a/lib/portage/sync/modules/cvs/__init__.py
+++ b/lib/portage/sync/modules/cvs/__init__.py
@@ -18,7 +18,7 @@ class CheckCVSConfig(CheckSyncConfig):
def check_cvs_repo(self):
if self.repo.module_specific_options.get("sync-cvs-repo") is None:
writemsg_level(
- "!!! %s\n"
+ "!!!! %s\n"
% _(
"Repository '%s' has sync-type=cvs, but is missing sync-cvs-repo attribute"
)
diff --git a/lib/portage/sync/modules/cvs/cvs.py b/lib/portage/sync/modules/cvs/cvs.py
index 722f54ab4..07a92d423 100644
--- a/lib/portage/sync/modules/cvs/cvs.py
+++ b/lib/portage/sync/modules/cvs/cvs.py
@@ -45,7 +45,7 @@ class CVSSync(NewBase):
)
!= os.EX_OK
):
- msg = "!!! cvs checkout error; exiting."
+ msg = "!!!! cvs checkout error; exiting."
self.logger(self.xterm_titles, msg)
writemsg_level(msg + "\n", noiselevel=-1, level=logging.ERROR)
return (1, False)
@@ -67,7 +67,7 @@ class CVSSync(NewBase):
**self.spawn_kwargs
)
if exitcode != os.EX_OK:
- msg = "!!! cvs update error; exiting."
+ msg = "!!!! cvs update error; exiting."
self.logger(self.xterm_titles, msg)
writemsg_level(msg + "\n", noiselevel=-1, level=logging.ERROR)
return (exitcode, False)
diff --git a/lib/portage/sync/modules/git/__init__.py b/lib/portage/sync/modules/git/__init__.py
index ef32a9da0..4d3777936 100644
--- a/lib/portage/sync/modules/git/__init__.py
+++ b/lib/portage/sync/modules/git/__init__.py
@@ -28,7 +28,7 @@ class CheckGitConfig(CheckSyncConfig):
d = int(d)
except ValueError:
writemsg_level(
- "!!! %s\n"
+ "!!!! %s\n"
% _("%s value is not a number: '%s'")
% (attr.replace("_", "-"), d),
level=self.logger.ERROR,
@@ -44,7 +44,7 @@ class CheckGitConfig(CheckSyncConfig):
if v not in ("yes", "no", "true", "false"):
writemsg_level(
- "!!! %s\n"
+ "!!!! %s\n"
% _("sync-git-verify-commit-signature not one of: %s")
% ("{yes, no, true, false}"),
level=self.logger.ERROR,
diff --git a/lib/portage/sync/modules/git/git.py b/lib/portage/sync/modules/git/git.py
index 98670e1f9..fa92bb657 100644
--- a/lib/portage/sync/modules/git/git.py
+++ b/lib/portage/sync/modules/git/git.py
@@ -107,7 +107,7 @@ class GitSync(NewBase):
**self.spawn_kwargs
)
if exitcode != os.EX_OK:
- msg = "!!! git clone error in %s" % self.repo.location
+ msg = "!!!! git clone error in %s" % self.repo.location
self.logger(self.xterm_titles, msg)
writemsg_level(msg + "\n", level=logging.ERROR, noiselevel=-1)
return (exitcode, False)
@@ -166,7 +166,7 @@ class GitSync(NewBase):
)
).rstrip("\n")
except subprocess.CalledProcessError as e:
- msg = "!!! git rev-parse error in %s" % self.repo.location
+ msg = "!!!! git rev-parse error in %s" % self.repo.location
self.logger(self.xterm_titles, msg)
writemsg_level(msg + "\n", level=logging.ERROR, noiselevel=-1)
return (e.returncode, False)
@@ -187,7 +187,7 @@ class GitSync(NewBase):
**self.spawn_kwargs
)
if exitcode != os.EX_OK:
- msg = "!!! git gc error in %s" % self.repo.location
+ msg = "!!!! git gc error in %s" % self.repo.location
self.logger(self.xterm_titles, msg)
writemsg_level(msg + "\n", level=logging.ERROR, noiselevel=-1)
return (exitcode, False)
@@ -211,7 +211,7 @@ class GitSync(NewBase):
)
if exitcode != os.EX_OK:
- msg = "!!! git fetch error in %s" % self.repo.location
+ msg = "!!!! git fetch error in %s" % self.repo.location
self.logger(self.xterm_titles, msg)
writemsg_level(msg + "\n", level=logging.ERROR, noiselevel=-1)
return (exitcode, False)
@@ -235,7 +235,7 @@ class GitSync(NewBase):
)
if exitcode != os.EX_OK:
- msg = "!!! git merge error in %s" % self.repo.location
+ msg = "!!!! git merge error in %s" % self.repo.location
self.logger(self.xterm_titles, msg)
writemsg_level(msg + "\n", level=logging.ERROR, noiselevel=-1)
return (exitcode, False)
@@ -254,7 +254,7 @@ class GitSync(NewBase):
if self.repo.sync_openpgp_key_path is not None and gemato is None:
writemsg_level(
- "!!! Verifying against specified key requires gemato-14.5+ installed\n",
+ "!!!! Verifying against specified key requires gemato-14.5+ installed\n",
level=logging.ERROR,
noiselevel=-1,
)
@@ -273,7 +273,7 @@ class GitSync(NewBase):
self._refresh_keys(openpgp_env)
except (GematoException, asyncio.TimeoutError) as e:
writemsg_level(
- "!!! Verification impossible due to keyring problem:\n%s\n"
+ "!!!! Verification impossible due to keyring problem:\n%s\n"
% (e,),
level=logging.ERROR,
noiselevel=-1,
diff --git a/lib/portage/sync/modules/mercurial/mercurial.py b/lib/portage/sync/modules/mercurial/mercurial.py
index 486b4fdd6..c410bf4e1 100644
--- a/lib/portage/sync/modules/mercurial/mercurial.py
+++ b/lib/portage/sync/modules/mercurial/mercurial.py
@@ -87,7 +87,7 @@ class MercurialSync(NewBase):
**self.spawn_kwargs
)
if exitcode != os.EX_OK:
- msg = "!!! hg clone error in %s" % self.repo.location
+ msg = "!!!! hg clone error in %s" % self.repo.location
self.logger(self.xterm_titles, msg)
writemsg_level(msg + "\n", level=logging.ERROR, noiselevel=-1)
return (exitcode, False)
@@ -144,7 +144,7 @@ class MercurialSync(NewBase):
**self.spawn_kwargs
)
if exitcode != os.EX_OK:
- msg = "!!! hg pull error in %s" % self.repo.location
+ msg = "!!!! hg pull error in %s" % self.repo.location
self.logger(self.xterm_titles, msg)
writemsg_level(msg + "\n", level=logging.ERROR, noiselevel=-1)
return (exitcode, False)
diff --git a/lib/portage/sync/modules/rsync/rsync.py b/lib/portage/sync/modules/rsync/rsync.py
index 5f4cf1aeb..4c7b7c0f4 100644
--- a/lib/portage/sync/modules/rsync/rsync.py
+++ b/lib/portage/sync/modules/rsync/rsync.py
@@ -71,8 +71,8 @@ class RsyncSync(NewBase):
for vcs_dir in vcs_dirs:
writemsg_level(
(
- "!!! %s appears to be under revision "
- + "control (contains %s).\n!!! Aborting rsync sync "
+ "!!!! %s appears to be under revision "
+ + "control (contains %s).\n!!!! Aborting rsync sync "
'(override with "sync-rsync-vcs-ignore = true" in repos.conf).\n'
)
% (self.repo.location, vcs_dir),
@@ -117,7 +117,7 @@ class RsyncSync(NewBase):
raise ValueError(self.verify_jobs)
except ValueError:
writemsg_level(
- "!!! sync-rsync-verify-jobs not a positive integer: %s\n"
+ "!!!! sync-rsync-verify-jobs not a positive integer: %s\n"
% (self.verify_jobs,),
level=logging.WARNING,
noiselevel=-1,
@@ -139,7 +139,7 @@ class RsyncSync(NewBase):
raise ValueError(self.max_age)
except ValueError:
writemsg_level(
- "!!! sync-rsync-max-age must be a non-negative integer: %s\n"
+ "!!!! sync-rsync-max-age must be a non-negative integer: %s\n"
% (self.max_age,),
level=logging.WARNING,
noiselevel=-1,
@@ -166,7 +166,7 @@ class RsyncSync(NewBase):
self._refresh_keys(openpgp_env)
except (GematoException, asyncio.TimeoutError) as e:
writemsg_level(
- "!!! Manifest verification impossible due to keyring problem:\n%s\n"
+ "!!!! Manifest verification impossible due to keyring problem:\n%s\n"
% (e,),
level=logging.ERROR,
noiselevel=-1,
@@ -225,7 +225,7 @@ class RsyncSync(NewBase):
)[1:5]
except ValueError:
writemsg_level(
- "!!! sync-uri is invalid: %s\n" % syncuri,
+ "!!!! sync-uri is invalid: %s\n" % syncuri,
noiselevel=-1,
level=logging.ERROR,
)
@@ -266,7 +266,7 @@ class RsyncSync(NewBase):
)
except socket.error as e:
writemsg_level(
- "!!! getaddrinfo failed for '%s': %s\n"
+ "!!!! getaddrinfo failed for '%s': %s\n"
% (_unicode_decode(hostname), str(e)),
noiselevel=-1,
level=logging.ERROR,
@@ -334,7 +334,7 @@ class RsyncSync(NewBase):
dosyncuri = uris.pop()
elif maxretries < 0 or retries > maxretries:
writemsg(
- "!!! Exhausted addresses for %s\n" % _unicode_decode(hostname),
+ "!!!! Exhausted addresses for %s\n" % _unicode_decode(hostname),
noiselevel=-1,
)
return (1, False)
@@ -360,18 +360,18 @@ class RsyncSync(NewBase):
print()
sys.exit(128 + signal.SIGINT)
self.logger(
- self.xterm_titles, ">>> Starting rsync with " + dosyncuri
+ self.xterm_titles, ">>>> Starting rsync with " + dosyncuri
)
if "--quiet" not in opts:
- print(">>> Starting rsync with " + dosyncuri + "...")
+ print(">>>> Starting rsync with " + dosyncuri + "...")
else:
self.logger(
self.xterm_titles,
- ">>> Starting retry %d of %d with %s"
+ ">>>> Starting retry %d of %d with %s"
% (retries, effective_maxretries, dosyncuri),
)
writemsg_stdout(
- "\n\n>>> Starting retry %d of %d with %s\n"
+ "\n\n>>>> Starting retry %d of %d with %s\n"
% (retries, effective_maxretries, dosyncuri),
noiselevel=-1,
)
@@ -390,7 +390,7 @@ class RsyncSync(NewBase):
retries = retries + 1
if maxretries < 0 or retries <= maxretries:
- print(">>> Retrying...")
+ print(">>>> Retrying...")
else:
# over retries
# exit loop
@@ -411,7 +411,7 @@ class RsyncSync(NewBase):
if exitcode == 0 and self.verify_metamanifest:
if gemato is None:
writemsg_level(
- "!!! Unable to verify: gemato-14.5+ is required\n",
+ "!!!! Unable to verify: gemato-14.5+ is required\n",
level=logging.ERROR,
noiselevel=-1,
)
@@ -469,7 +469,7 @@ class RsyncSync(NewBase):
out.eend(0)
except GematoException as e:
writemsg_level(
- "!!! Manifest verification failed:\n%s\n" % (e,),
+ "!!!! Manifest verification failed:\n%s\n" % (e,),
level=logging.ERROR,
noiselevel=-1,
)
@@ -495,7 +495,7 @@ class RsyncSync(NewBase):
elif exitcode == SERVER_OUT_OF_DATE:
exitcode = 1
elif exitcode == EXCEEDED_MAX_RETRIES:
- sys.stderr.write(">>> Exceeded PORTAGE_RSYNC_RETRIES: %s\n" % maxretries)
+ sys.stderr.write(">>>> Exceeded PORTAGE_RSYNC_RETRIES: %s\n" % maxretries)
exitcode = 1
elif exitcode > 0:
msg = []
@@ -657,7 +657,7 @@ class RsyncSync(NewBase):
updatecache_flg = False
is_synced = False
if timestamp != 0 and "--quiet" not in opts:
- print(">>> Checking server timestamp ...")
+ print(">>>> Checking server timestamp ...")
rsynccommand = [self.bin_command] + self.rsync_opts + self.extra_rsync_opts
@@ -762,34 +762,34 @@ class RsyncSync(NewBase):
local_state_unchanged = True
is_synced = True
self.logger(
- self.xterm_titles, ">>> Cancelling sync -- Already current."
+ self.xterm_titles, ">>>> Cancelling sync -- Already current."
)
print()
- print(">>>")
+ print(">>>>")
print(
- ">>> Timestamps on the server and in the local repository are the same."
+ ">>>> Timestamps on the server and in the local repository are the same."
)
print(
- ">>> Cancelling all further sync action. You are already up to date."
+ ">>>> Cancelling all further sync action. You are already up to date."
)
- print(">>>")
+ print(">>>>")
print(
- ">>> In order to force sync, remove '%s'."
+ ">>>> In order to force sync, remove '%s'."
% self.servertimestampfile
)
- print(">>>")
+ print(">>>>")
print()
elif (servertimestamp != 0) and (servertimestamp < timestamp):
- self.logger(self.xterm_titles, ">>> Server out of date: %s" % syncuri)
+ self.logger(self.xterm_titles, ">>>> Server out of date: %s" % syncuri)
print()
- print(">>>")
- print(">>> SERVER OUT OF DATE: %s" % syncuri)
- print(">>>")
+ print(">>>>")
+ print(">>>> SERVER OUT OF DATE: %s" % syncuri)
+ print(">>>>")
print(
- ">>> In order to force sync, remove '%s'."
+ ">>>> In order to force sync, remove '%s'."
% self.servertimestampfile
)
- print(">>>")
+ print(">>>>")
print()
exitcode = SERVER_OUT_OF_DATE
elif (servertimestamp == 0) or (servertimestamp > timestamp):
diff --git a/lib/portage/sync/modules/svn/svn.py b/lib/portage/sync/modules/svn/svn.py
index 788e394cd..9a2312337 100644
--- a/lib/portage/sync/modules/svn/svn.py
+++ b/lib/portage/sync/modules/svn/svn.py
@@ -39,7 +39,7 @@ class SVNSync(NewBase):
**self.spawn_kwargs
)
if exitcode != os.EX_OK:
- msg = "!!! svn checkout error; exiting."
+ msg = "!!!! svn checkout error; exiting."
self.logger(self.xterm_titles, msg)
writemsg_level(msg + "\n", noiselevel=-1, level=logging.ERROR)
return (exitcode, False)
@@ -63,7 +63,7 @@ class SVNSync(NewBase):
**self.spawn_kwargs
)
if exitcode != os.EX_OK:
- msg = "!!! svn update error; exiting."
+ msg = "!!!! svn update error; exiting."
self.logger(self.xterm_titles, msg)
writemsg_level(msg + "\n", noiselevel=-1, level=logging.ERROR)
return (exitcode, False)
@@ -81,7 +81,7 @@ class SVNSync(NewBase):
**self.spawn_kwargs
)
if exitcode != os.EX_OK:
- msg = "!!! svn upgrade error; exiting."
+ msg = "!!!! svn upgrade error; exiting."
self.logger(self.xterm_titles, msg)
writemsg_level(msg + "\n", noiselevel=-1, level=logging.ERROR)
return exitcode
diff --git a/lib/portage/sync/modules/webrsync/webrsync.py b/lib/portage/sync/modules/webrsync/webrsync.py
index 0e2f63472..d427f346f 100644
--- a/lib/portage/sync/modules/webrsync/webrsync.py
+++ b/lib/portage/sync/modules/webrsync/webrsync.py
@@ -70,7 +70,7 @@ class WebRsync(SyncBase):
if not self.repo.sync_openpgp_key_path:
writemsg_level(
- "!!! sync-openpgp-key-path is not set\n",
+ "!!!! sync-openpgp-key-path is not set\n",
level=logging.ERROR,
noiselevel=-1,
)
@@ -78,7 +78,7 @@ class WebRsync(SyncBase):
if not os.path.isfile(self.repo.sync_openpgp_key_path):
writemsg_level(
- "!!! sync-openpgp-key-path file not found: %s\n"
+ "!!!! sync-openpgp-key-path file not found: %s\n"
% self.repo.sync_openpgp_key_path,
level=logging.ERROR,
noiselevel=-1,
@@ -87,7 +87,7 @@ class WebRsync(SyncBase):
if gemato is None:
writemsg_level(
- "!!! Verifying against specified key requires gemato-14.5+ installed\n",
+ "!!!! Verifying against specified key requires gemato-14.5+ installed\n",
level=logging.ERROR,
noiselevel=-1,
)
@@ -105,7 +105,7 @@ class WebRsync(SyncBase):
self.spawn_kwargs["env"]["PORTAGE_TEMP_GPG_DIR"] = openpgp_env.home
except (GematoException, asyncio.TimeoutError) as e:
writemsg_level(
- "!!! Verification impossible due to keyring problem:\n%s\n"
+ "!!!! Verification impossible due to keyring problem:\n%s\n"
% (e,),
level=logging.ERROR,
noiselevel=-1,
@@ -125,7 +125,7 @@ class WebRsync(SyncBase):
exitcode = portage.process.spawn(webrsync_cmd, **self.spawn_kwargs)
if exitcode != os.EX_OK:
- msg = "!!! emerge-webrsync error in %s" % self.repo.location
+ msg = "!!!! emerge-webrsync error in %s" % self.repo.location
self.logger(self.xterm_titles, msg)
writemsg_level(msg + "\n", level=logging.ERROR, noiselevel=-1)
return (exitcode, False)
diff --git a/lib/portage/sync/old_tree_timestamp.py b/lib/portage/sync/old_tree_timestamp.py
index 3558a25ad..01fc95d57 100644
--- a/lib/portage/sync/old_tree_timestamp.py
+++ b/lib/portage/sync/old_tree_timestamp.py
@@ -82,7 +82,7 @@ def old_tree_timestamp_warn(portdir, settings):
warnsync = float(settings.get(var_name, default_warnsync))
except ValueError:
writemsg_level(
- "!!! %s contains non-numeric value: %s\n" % (var_name, settings[var_name]),
+ "!!!! %s contains non-numeric value: %s\n" % (var_name, settings[var_name]),
level=logging.ERROR,
noiselevel=-1,
)
diff --git a/lib/portage/sync/syncbase.py b/lib/portage/sync/syncbase.py
index 94c873e1f..aa33f3312 100644
--- a/lib/portage/sync/syncbase.py
+++ b/lib/portage/sync/syncbase.py
@@ -67,13 +67,13 @@ class SyncBase:
% (self.bin_pkg, self._bin_command),
]
for l in msg:
- writemsg_level("!!! %s\n" % l, level=logging.ERROR, noiselevel=-1)
+ writemsg_level("!!!! %s\n" % l, level=logging.ERROR, noiselevel=-1)
return False
try:
self.repo_storage
except RepoStorageException as e:
- writemsg_level("!!! %s\n" % (e,), level=logging.ERROR, noiselevel=-1)
+ writemsg_level("!!!! %s\n" % (e,), level=logging.ERROR, noiselevel=-1)
return False
return True
@@ -240,7 +240,7 @@ class SyncBase:
if errors:
lines = []
lines.append("")
- lines.append("!!! Retry disabled for openpgp key refresh:")
+ lines.append("!!!! Retry disabled for openpgp key refresh:")
lines.append("")
for msg in errors:
lines.append(" {}".format(msg))
diff --git a/lib/portage/tests/resolver/test_autounmask.py b/lib/portage/tests/resolver/test_autounmask.py
index 4e98e5bfc..f9d1b67b4 100644
--- a/lib/portage/tests/resolver/test_autounmask.py
+++ b/lib/portage/tests/resolver/test_autounmask.py
@@ -320,7 +320,7 @@ class AutounmaskTestCase(TestCase):
# # required by =app-portage/A-1 (argument)
# >=app-portage/B-1 foo
#
- # !!! The ebuild selected to satisfy "app-portage/B[foo]" has unmet requirements.
+ # !!!! The ebuild selected to satisfy "app-portage/B[foo]" has unmet requirements.
# - app-portage/B-1::test_repo USE="bar (forced-flag) -foo"
#
# The following REQUIRED_USE flag constraints are unsatisfied:
@@ -337,7 +337,7 @@ class AutounmaskTestCase(TestCase):
# # required by =app-portage/A-2 (argument)
# >=app-portage/B-1 foo
#
- # !!! The ebuild selected to satisfy "app-portage/B[foo=]" has unmet requirements.
+ # !!!! The ebuild selected to satisfy "app-portage/B[foo=]" has unmet requirements.
# - app-portage/B-1::test_repo USE="bar (forced-flag) -foo"
#
# The following REQUIRED_USE flag constraints are unsatisfied:
@@ -363,7 +363,7 @@ class AutounmaskTestCase(TestCase):
# # required by sci-mathematics/octave (argument)
# >=x11-libs/qscintilla-2.9.4 qt5
#
- # !!! The ebuild selected to satisfy ">=x11-libs/qscintilla-2.9.3-r2:=[qt5(+)]" has unmet requirements.
+ # !!!! The ebuild selected to satisfy ">=x11-libs/qscintilla-2.9.3-r2:=[qt5(+)]" has unmet requirements.
# - x11-libs/qscintilla-2.9.4::test_repo USE="qt4 -qt5"
#
# The following REQUIRED_USE flag constraints are unsatisfied:
diff --git a/lib/portage/tests/resolver/test_autounmask_use_breakage.py b/lib/portage/tests/resolver/test_autounmask_use_breakage.py
index 02c08affa..6320deead 100644
--- a/lib/portage/tests/resolver/test_autounmask_use_breakage.py
+++ b/lib/portage/tests/resolver/test_autounmask_use_breakage.py
@@ -37,7 +37,7 @@ class AutounmaskUseBreakageTestCase(TestCase):
),
# With --autounmask-backtrack=y:
# emerge: there are no ebuilds built with USE flags to satisfy "app-misc/D[foo]".
- #!!! One of the following packages is required to complete your request:
+ #!!!! One of the following packages is required to complete your request:
# - app-misc/D-0::test_repo (Change USE: +foo)
# (dependency required by "app-misc/B-0::test_repo" [ebuild])
# (dependency required by "app-misc/B" [argument])
@@ -48,8 +48,8 @@ class AutounmaskUseBreakageTestCase(TestCase):
# [ebuild N ] app-misc/B-0
# [ebuild N ] app-misc/A-0
#
- #!!! Multiple package instances within a single package slot have been pulled
- #!!! into the dependency graph, resulting in a slot conflict:
+ #!!!! Multiple package instances within a single package slot have been pulled
+ #!!!! into the dependency graph, resulting in a slot conflict:
#
# app-misc/D:0
#
diff --git a/lib/portage/tests/resolver/test_slot_conflict_unsatisfied_deep_deps.py b/lib/portage/tests/resolver/test_slot_conflict_unsatisfied_deep_deps.py
index b392aaded..25b32d639 100644
--- a/lib/portage/tests/resolver/test_slot_conflict_unsatisfied_deep_deps.py
+++ b/lib/portage/tests/resolver/test_slot_conflict_unsatisfied_deep_deps.py
@@ -120,12 +120,12 @@ class SlotConflictUnsatisfiedDeepDepsTestCase(TestCase):
# required by @world (argument)
# =dev-libs/A-2 ~x86
#
- #!!! Problems have been detected with your world file
- #!!! Please run emaint --check world
+ #!!!! Problems have been detected with your world file
+ #!!!! Please run emaint --check world
#
#
- #!!! Ebuilds for the following packages are either all
- #!!! masked or don't exist:
+ #!!!! Ebuilds for the following packages are either all
+ #!!!! masked or don't exist:
# dev-libs/broken
#
# emerge: there are no ebuilds to satisfy "dev-libs/initially-unsatisfied".
@@ -133,8 +133,8 @@ class SlotConflictUnsatisfiedDeepDepsTestCase(TestCase):
# (dependency required by "@selected" [set])
# (dependency required by "@world" [argument])
# Without --autounmask-backtrack=y:
- #!!! Multiple package instances within a single package slot have been pulled
- #!!! into the dependency graph, resulting in a slot conflict:
+ #!!!! Multiple package instances within a single package slot have been pulled
+ #!!!! into the dependency graph, resulting in a slot conflict:
#
# dev-libs/A:0
#
diff --git a/lib/portage/update.py b/lib/portage/update.py
index 0ccca6e26..64296c75c 100644
--- a/lib/portage/update.py
+++ b/lib/portage/update.py
@@ -452,9 +452,9 @@ def update_config_files(
try:
write_atomic(updating_file, "".join(file_contents[x]))
except PortageException as e:
- writemsg("\n!!! %s\n" % str(e), noiselevel=-1)
+ writemsg("\n!!!! %s\n" % str(e), noiselevel=-1)
writemsg(
- _("!!! An error occurred while updating a config file:")
+ _("!!!! An error occurred while updating a config file:")
+ " '%s'\n" % updating_file,
noiselevel=-1,
)
diff --git a/lib/portage/util/__init__.py b/lib/portage/util/__init__.py
index 5ade7f660..bc5498cd0 100644
--- a/lib/portage/util/__init__.py
+++ b/lib/portage/util/__init__.py
@@ -220,19 +220,19 @@ def stack_dictlist(original_dicts, incremental=0, incrementals=[], ignore_none=0
Returns a single dict. Higher index in lists is preferenced.
Example usage:
- >>> from portage.util import stack_dictlist
- >>> print stack_dictlist( [{'a':'b'},{'x':'y'}])
- >>> {'a':'b','x':'y'}
- >>> print stack_dictlist( [{'a':'b'},{'a':'c'}], incremental = True )
- >>> {'a':['b','c'] }
- >>> a = {'KEYWORDS':['x86','alpha']}
- >>> b = {'KEYWORDS':['-x86']}
- >>> print stack_dictlist( [a,b] )
- >>> { 'KEYWORDS':['x86','alpha','-x86']}
- >>> print stack_dictlist( [a,b], incremental=True)
- >>> { 'KEYWORDS':['alpha'] }
- >>> print stack_dictlist( [a,b], incrementals=['KEYWORDS'])
- >>> { 'KEYWORDS':['alpha'] }
+ >>>> from portage.util import stack_dictlist
+ >>>> print stack_dictlist( [{'a':'b'},{'x':'y'}])
+ >>>> {'a':'b','x':'y'}
+ >>>> print stack_dictlist( [{'a':'b'},{'a':'c'}], incremental = True )
+ >>>> {'a':['b','c'] }
+ >>>> a = {'KEYWORDS':['x86','alpha']}
+ >>>> b = {'KEYWORDS':['-x86']}
+ >>>> print stack_dictlist( [a,b] )
+ >>>> { 'KEYWORDS':['x86','alpha','-x86']}
+ >>>> print stack_dictlist( [a,b], incremental=True)
+ >>>> { 'KEYWORDS':['alpha'] }
+ >>>> print stack_dictlist( [a,b], incrementals=['KEYWORDS'])
+ >>>> { 'KEYWORDS':['alpha'] }
@param original_dicts a list of (dictionary objects or None)
@type list
@@ -827,7 +827,7 @@ def getconfig(
if portage._native_string("\r") in content:
writemsg(
(
- "!!! "
+ "!!!! "
+ _(
"Please use dos2unix to convert line endings "
+ "in config file: '%s'"
@@ -1071,7 +1071,7 @@ def pickle_read(filename, default=None, debug=0):
except SystemExit as e:
raise
except Exception as e:
- writemsg(_("!!! Failed to load pickle: ") + str(e) + "\n", 1)
+ writemsg(_("!!!! Failed to load pickle: ") + str(e) + "\n", 1)
data = default
return data
diff --git a/lib/portage/util/_dyn_libs/PreservedLibsRegistry.py b/lib/portage/util/_dyn_libs/PreservedLibsRegistry.py
index fd5c97362..a5cd1fb4f 100644
--- a/lib/portage/util/_dyn_libs/PreservedLibsRegistry.py
+++ b/lib/portage/util/_dyn_libs/PreservedLibsRegistry.py
@@ -101,7 +101,7 @@ class PreservedLibsRegistry:
raise
except Exception:
writemsg_level(
- _("!!! Error loading '%s': %s\n") % (self._filename, e),
+ _("!!!! Error loading '%s': %s\n") % (self._filename, e),
level=logging.ERROR,
noiselevel=-1,
)
@@ -147,7 +147,7 @@ class PreservedLibsRegistry:
except EnvironmentError as e:
if e.errno != PermissionDenied.errno:
writemsg_level(
- "!!! %s %s\n" % (e, self._filename),
+ "!!!! %s %s\n" % (e, self._filename),
level=logging.ERROR,
noiselevel=-1,
)
diff --git a/lib/portage/util/_dyn_libs/display_preserved_libs.py b/lib/portage/util/_dyn_libs/display_preserved_libs.py
index e81ca369c..c6da339fe 100644
--- a/lib/portage/util/_dyn_libs/display_preserved_libs.py
+++ b/lib/portage/util/_dyn_libs/display_preserved_libs.py
@@ -20,7 +20,7 @@ def display_preserved_libs(vardb, verbose=False):
linkmap.rebuild()
except portage.exception.CommandNotFound as e:
portage.util.writemsg_level(
- "!!! Command Not Found: %s\n" % (e,), level=logging.ERROR, noiselevel=-1
+ "!!!! Command Not Found: %s\n" % (e,), level=logging.ERROR, noiselevel=-1
)
else:
search_for_owners = set()
@@ -54,7 +54,7 @@ def display_preserved_libs(vardb, verbose=False):
all_preserved.update(*plibdata.values())
for cpv in plibdata:
- print(colorize("WARN", ">>>") + " package: %s" % cpv)
+ print(colorize("WARN", ">>>>") + " package: %s" % cpv)
samefile_map = {}
for f in plibdata[cpv]:
obj_key = linkmap._obj_key(f)
diff --git a/lib/portage/util/env_update.py b/lib/portage/util/env_update.py
index bb0ebf84c..98ed62608 100644
--- a/lib/portage/util/env_update.py
+++ b/lib/portage/util/env_update.py
@@ -146,12 +146,12 @@ def _env_update(makelinks, target_root, prev_mtimes, contents, env, writemsg_lev
try:
myconfig = getconfig(file_path, expand=False)
except ParseError as e:
- writemsg("!!! '%s'\n" % str(e), noiselevel=-1)
+ writemsg("!!!! '%s'\n" % str(e), noiselevel=-1)
del e
continue
if myconfig is None:
# broken symlink or file removed by a concurrent process
- writemsg("!!! File Not Found: '%s'\n" % file_path, noiselevel=-1)
+ writemsg("!!!! File Not Found: '%s'\n" % file_path, noiselevel=-1)
continue
config_list.append(myconfig)
@@ -365,12 +365,12 @@ def _env_update(makelinks, target_root, prev_mtimes, contents, env, writemsg_lev
# to overwrite the symlinks we just made. -X means no links. After 'clean'
# we can safely create links.
writemsg_level(
- _(">>> Regenerating %setc/ld.so.cache...\n") % (target_root,)
+ _(">>>> Regenerating %setc/ld.so.cache...\n") % (target_root,)
)
os.system("cd / ; %s -X -r '%s'" % (ldconfig, target_root))
elif ostype in ("FreeBSD", "DragonFly"):
writemsg_level(
- _(">>> Regenerating %svar/run/ld-elf.so.hints...\n") % target_root
+ _(">>>> Regenerating %svar/run/ld-elf.so.hints...\n") % target_root
)
os.system(
(
diff --git a/lib/portage/util/locale.py b/lib/portage/util/locale.py
index 8fb6cb6eb..e4849bcfb 100644
--- a/lib/portage/util/locale.py
+++ b/lib/portage/util/locale.py
@@ -90,7 +90,7 @@ def _check_locale(silent):
]
)
writemsg_level(
- "".join(["!!! %s\n" % l for l in msg]), level=logging.ERROR, noiselevel=-1
+ "".join(["!!!! %s\n" % l for l in msg]), level=logging.ERROR, noiselevel=-1
)
return False
diff --git a/lib/portage/util/movefile.py b/lib/portage/util/movefile.py
index ddafe5571..299d1b989 100644
--- a/lib/portage/util/movefile.py
+++ b/lib/portage/util/movefile.py
@@ -149,9 +149,9 @@ def movefile(
raise
except Exception as e:
writemsg(
- "!!! %s\n" % _("Stating source file failed... movefile()"), noiselevel=-1
+ "!!!! %s\n" % _("Stating source file failed... movefile()"), noiselevel=-1
)
- writemsg("!!! %s\n" % (e,), noiselevel=-1)
+ writemsg("!!!! %s\n" % (e,), noiselevel=-1)
return None
destexists = 1
@@ -223,10 +223,10 @@ def movefile(
raise
except Exception as e:
writemsg(
- "!!! %s\n" % _("failed to properly create symlink:"), noiselevel=-1
+ "!!!! %s\n" % _("failed to properly create symlink:"), noiselevel=-1
)
- writemsg("!!! %s -> %s\n" % (dest, target), noiselevel=-1)
- writemsg("!!! %s\n" % (e,), noiselevel=-1)
+ writemsg("!!!! %s -> %s\n" % (dest, target), noiselevel=-1)
+ writemsg("!!!! %s\n" % (e,), noiselevel=-1)
return None
hardlinked = False
@@ -244,11 +244,11 @@ def movefile(
except OSError as e:
if e.errno != errno.ENOENT:
writemsg(
- _("!!! Failed to remove hardlink temp file: %s\n")
+ _("!!!! Failed to remove hardlink temp file: %s\n")
% (hardlink_tmp,),
noiselevel=-1,
)
- writemsg("!!! %s\n" % (e,), noiselevel=-1)
+ writemsg("!!!! %s\n" % (e,), noiselevel=-1)
return None
del e
for hardlink_src in hardlink_candidates:
@@ -261,10 +261,10 @@ def movefile(
os.rename(hardlink_tmp, dest)
except OSError as e:
writemsg(
- _("!!! Failed to rename %s to %s\n") % (hardlink_tmp, dest),
+ _("!!!! Failed to rename %s to %s\n") % (hardlink_tmp, dest),
noiselevel=-1,
)
- writemsg("!!! %s\n" % (e,), noiselevel=-1)
+ writemsg("!!!! %s\n" % (e,), noiselevel=-1)
return None
hardlinked = True
try:
@@ -287,12 +287,12 @@ def movefile(
if e.errno != errno.EXDEV:
# Some random error.
writemsg(
- "!!! %s\n"
+ "!!!! %s\n"
% _("Failed to move %(src)s to %(dest)s")
% {"src": src, "dest": dest},
noiselevel=-1,
)
- writemsg("!!! %s\n" % (e,), noiselevel=-1)
+ writemsg("!!!! %s\n" % (e,), noiselevel=-1)
return None
# Invalid cross-device-link 'bind' mounted or actually Cross-Device
if renamefailed:
@@ -322,19 +322,19 @@ def movefile(
)
msg = textwrap.wrap(msg, 65)
for line in msg:
- writemsg("!!! %s\n" % (line,), noiselevel=-1)
+ writemsg("!!!! %s\n" % (line,), noiselevel=-1)
raise
_rename(dest_tmp_bytes, dest_bytes)
_os.unlink(src_bytes)
success = True
except Exception as e:
writemsg(
- "!!! %s\n"
+ "!!!! %s\n"
% _("copy %(src)s -> %(dest)s failed.")
% {"src": src, "dest": dest},
noiselevel=-1,
)
- writemsg("!!! %s\n" % (e,), noiselevel=-1)
+ writemsg("!!!! %s\n" % (e,), noiselevel=-1)
return None
finally:
if not success:
@@ -346,16 +346,16 @@ def movefile(
# we don't yet handle special, so we need to fall back to /bin/mv
a = spawn([MOVE_BINARY, "-f", src, dest], env=os.environ)
if a != os.EX_OK:
- writemsg(_("!!! Failed to move special file:\n"), noiselevel=-1)
+ writemsg(_("!!!! Failed to move special file:\n"), noiselevel=-1)
writemsg(
- _("!!! '%(src)s' to '%(dest)s'\n")
+ _("!!!! '%(src)s' to '%(dest)s'\n")
% {
"src": _unicode_decode(src, encoding=encoding),
"dest": _unicode_decode(dest, encoding=encoding),
},
noiselevel=-1,
)
- writemsg("!!! %s\n" % a, noiselevel=-1)
+ writemsg("!!!! %s\n" % a, noiselevel=-1)
return None # failure
# In Python <3.3 always use stat_obj[stat.ST_MTIME] for the integral timestamp
@@ -384,9 +384,9 @@ def movefile(
try:
newmtime = os.stat(dest).st_mtime_ns
except OSError as e:
- writemsg(_("!!! Failed to stat in movefile()\n"), noiselevel=-1)
- writemsg("!!! %s\n" % dest, noiselevel=-1)
- writemsg("!!! %s\n" % str(e), noiselevel=-1)
+ writemsg(_("!!!! Failed to stat in movefile()\n"), noiselevel=-1)
+ writemsg("!!!! %s\n" % dest, noiselevel=-1)
+ writemsg("!!!! %s\n" % str(e), noiselevel=-1)
return None
if bsd_chflags:
diff --git a/lib/portage/util/mtimedb.py b/lib/portage/util/mtimedb.py
index 7a7fe6784..77ced65b1 100644
--- a/lib/portage/util/mtimedb.py
+++ b/lib/portage/util/mtimedb.py
@@ -46,7 +46,7 @@ class MtimeDB(dict):
pass
else:
writemsg(
- _("!!! Error loading '%s': %s\n") % (filename, e), noiselevel=-1
+ _("!!!! Error loading '%s': %s\n") % (filename, e), noiselevel=-1
)
finally:
if f is not None:
@@ -75,7 +75,8 @@ class MtimeDB(dict):
raise
except Exception:
writemsg(
- _("!!! Error loading '%s': %s\n") % (filename, e), noiselevel=-1
+ _("!!!! Error loading '%s': %s\n") % (filename, e),
+ noiselevel=-1,
)
if d is None:
diff --git a/lib/portage/util/writeable_check.py b/lib/portage/util/writeable_check.py
index be73745a1..d4d36846b 100644
--- a/lib/portage/util/writeable_check.py
+++ b/lib/portage/util/writeable_check.py
@@ -88,7 +88,7 @@ def linux_ro_checker(dir_list):
# filesystems and return.
except EnvironmentError:
writemsg_level(
- _("!!! /proc/self/mountinfo cannot be read"),
+ _("!!!! /proc/self/mountinfo cannot be read"),
level=logging.WARNING,
noiselevel=-1,
)
@@ -96,7 +96,7 @@ def linux_ro_checker(dir_list):
for line in invalids:
writemsg_level(
- _("!!! /proc/self/mountinfo contains unrecognized line: %s\n")
+ _("!!!! /proc/self/mountinfo contains unrecognized line: %s\n")
% line.rstrip(),
level=logging.WARNING,
noiselevel=-1,
diff --git a/lib/portage/versions.py b/lib/portage/versions.py
index fe1ff6ce0..68d69bdf4 100644
--- a/lib/portage/versions.py
+++ b/lib/portage/versions.py
@@ -148,7 +148,7 @@ def ververify(myver, silent=1):
if ver_regexp.match(myver):
return True
if not silent:
- print(_("!!! syntax error in version: %s") % myver)
+ print(_("!!!! syntax error in version: %s") % myver)
return False
@@ -157,12 +157,12 @@ def vercmp(ver1, ver2, silent=1):
"""
Compare two versions
Example usage:
- >>> from portage.versions import vercmp
- >>> vercmp('1.0-r1','1.2-r3')
+ >>>> from portage.versions import vercmp
+ >>>> vercmp('1.0-r1','1.2-r3')
negative number
- >>> vercmp('1.3','1.2-r3')
+ >>>> vercmp('1.3','1.2-r3')
positive number
- >>> vercmp('1.0_p3','1.0_p3')
+ >>>> vercmp('1.0_p3','1.0_p3')
0
@param pkg1: version to compare with (see ver_regexp in portage.versions.py)
@@ -186,11 +186,11 @@ def vercmp(ver1, ver2, silent=1):
# checking that the versions are valid
if not match1 or not match1.groups():
if not silent:
- print(_("!!! syntax error in version: %s") % ver1)
+ print(_("!!!! syntax error in version: %s") % ver1)
return None
if not match2 or not match2.groups():
if not silent:
- print(_("!!! syntax error in version: %s") % ver2)
+ print(_("!!!! syntax error in version: %s") % ver2)
return None
# building lists of the version parts before the suffix
@@ -305,10 +305,10 @@ def pkgcmp(pkg1, pkg2):
Compare 2 package versions created in pkgsplit format.
Example usage:
- >>> from portage.versions import *
- >>> pkgcmp(pkgsplit('test-1.0-r1'),pkgsplit('test-1.2-r3'))
+ >>>> from portage.versions import *
+ >>>> pkgcmp(pkgsplit('test-1.0-r1'),pkgsplit('test-1.2-r3'))
-1
- >>> pkgcmp(pkgsplit('test-1.3'),pkgsplit('test-1.2-r3'))
+ >>>> pkgcmp(pkgsplit('test-1.3'),pkgsplit('test-1.2-r3'))
1
@param pkg1: package to compare with
diff --git a/lib/portage/xml/metadata.py b/lib/portage/xml/metadata.py
index 807847d7e..f65177c8e 100644
--- a/lib/portage/xml/metadata.py
+++ b/lib/portage/xml/metadata.py
@@ -4,27 +4,27 @@
"""Provides an easy-to-use python interface to Gentoo's metadata.xml file.
Example usage:
- >>> from portage.xml.metadata import MetaDataXML
- >>> pkg_md = MetaDataXML('/var/db/repos/gentoo/app-misc/gourmet/metadata.xml')
- >>> pkg_md
+ >>>> from portage.xml.metadata import MetaDataXML
+ >>>> pkg_md = MetaDataXML('/var/db/repos/gentoo/app-misc/gourmet/metadata.xml')
+ >>>> pkg_md
<MetaDataXML '/var/db/repos/gentoo/app-misc/gourmet/metadata.xml'>
- >>> pkg_md.herds()
+ >>>> pkg_md.herds()
['no-herd']
- >>> for maint in pkg_md.maintainers():
+ >>>> for maint in pkg_md.maintainers():
... print "{0} ({1})".format(maint.email, maint.name)
...
nixphoeni@gentoo.org (Joe Sapp)
- >>> for flag in pkg_md.use():
+ >>>> for flag in pkg_md.use():
... print flag.name, "->", flag.description
...
rtf -> Enable export to RTF
gnome-print -> Enable printing support using gnome-print
- >>> upstream = pkg_md.upstream()
- >>> upstream
+ >>>> upstream = pkg_md.upstream()
+ >>>> upstream
[<_Upstream {'docs': [], 'remoteid': [], 'maintainer':
[<_Maintainer 'Thomas_Hinkle@alumni.brown.edu'>], 'bugtracker': [],
'changelog': []}>]
- >>> upstream[0].maintainer[0].name
+ >>>> upstream[0].maintainer[0].name
'Thomas Mills Hinkle'
"""
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 082e15e52..e10acb9a5 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -597,10 +597,10 @@ verify_md5_file() {
#--------------------
if ! type -p patcher &> /dev/null; then
- echo "!!!"
- echo "!!! cannot find patcher, did you emerge dev-util/diffball?"
- echo "!!! lack of patcher == have to do full fetch"
- echo "!!!"
+ echo "!!!!"
+ echo "!!!! cannot find patcher, did you emerge dev-util/diffball?"
+ echo "!!!! lack of patcher == have to do full fetch"
+ echo "!!!!"
sleep 10
if do_latest_snapshot; then
rm -fr "${TMPDIR}"
diff --git a/repoman/lib/repoman/__init__.py b/repoman/lib/repoman/__init__.py
index b3690c07d..403bd3af9 100644
--- a/repoman/lib/repoman/__init__.py
+++ b/repoman/lib/repoman/__init__.py
@@ -11,21 +11,21 @@ try:
except ImportError as e:
sys.stderr.write("\n\n")
sys.stderr.write(
- "!!! Failed to complete portage imports. There are internal modules for\n"
+ "!!!! Failed to complete portage imports. There are internal modules for\n"
)
sys.stderr.write(
- "!!! portage and failure here indicates that you have a problem with your\n"
+ "!!!! portage and failure here indicates that you have a problem with your\n"
)
sys.stderr.write(
- "!!! installation of portage. Please try a rescue portage located in the ebuild\n"
+ "!!!! installation of portage. Please try a rescue portage located in the ebuild\n"
)
sys.stderr.write(
- "!!! repository under '/var/db/repos/gentoo/sys-apps/portage/files/' (default).\n"
+ "!!!! repository under '/var/db/repos/gentoo/sys-apps/portage/files/' (default).\n"
)
sys.stderr.write(
- "!!! There is a README.RESCUE file that details the steps required to perform\n"
+ "!!!! There is a README.RESCUE file that details the steps required to perform\n"
)
- sys.stderr.write("!!! a recovery of portage.\n")
+ sys.stderr.write("!!!! a recovery of portage.\n")
sys.stderr.write(" " + str(e) + "\n\n")
raise
diff --git a/repoman/lib/repoman/actions.py b/repoman/lib/repoman/actions.py
index 920f0e97a..fdbbcb0d1 100644
--- a/repoman/lib/repoman/actions.py
+++ b/repoman/lib/repoman/actions.py
@@ -117,7 +117,7 @@ class Actions:
except (IOError, OSError) as e:
if e.errno == errno.ENOENT:
portage.writemsg(
- "!!! File Not Found:"
+ "!!!! File Not Found:"
" --commitmsgfile='%s'\n" % self.options.commitmsgfile
)
else:
@@ -379,7 +379,7 @@ the whole commit message to abort.
# so it's safe to ignore.
del myunadded[x]
elif xs[-1] == "files":
- print("!!! files dir is not added! Please correct this.")
+ print("!!!! files dir is not added! Please correct this.")
sys.exit(-1)
elif xs[-1] == "Manifest":
# It's a manifest... auto add
@@ -389,13 +389,13 @@ the whole commit message to abort.
if myunadded:
print(
red(
- "!!! The following files are in your local tree"
+ "!!!! The following files are in your local tree"
" but are not added to the master"
)
)
print(
red(
- "!!! tree. Please remove them from the local tree"
+ "!!!! tree. Please remove them from the local tree"
" or add them to the master tree."
)
)
@@ -410,13 +410,13 @@ the whole commit message to abort.
if self.vcs_settings.changes.has_deleted:
print(
red(
- "!!! The following files are removed manually"
+ "!!!! The following files are removed manually"
" from your local tree but are not"
)
)
print(
red(
- "!!! removed from the repository."
+ "!!!! removed from the repository."
' Please remove them, using "%s remove [FILES]".'
% self.vcs_settings.vcs
)
@@ -608,7 +608,7 @@ the whole commit message to abort.
)
if new_changelog is None:
writemsg_level(
- "!!! Updating the ChangeLog failed\n",
+ "!!!! Updating the ChangeLog failed\n",
level=logging.ERROR,
noiselevel=-1,
)
@@ -632,7 +632,7 @@ the whole commit message to abort.
broken_changelog_manifests.append(x)
if myautoadd:
- print(">>> Auto-Adding missing Manifest/ChangeLog file(s)...")
+ print(">>>> Auto-Adding missing Manifest/ChangeLog file(s)...")
self.vcs_settings.changes.add_items(myautoadd)
myupdates += myautoadd
return myupdates, broken_changelog_manifests
@@ -660,7 +660,7 @@ the whole commit message to abort.
pass
if retval != os.EX_OK:
writemsg_level(
- "!!! Exiting on %s (shell) "
+ "!!!! Exiting on %s (shell) "
"error code: %s\n" % (self.vcs_settings.vcs, retval),
level=logging.ERROR,
noiselevel=-1,
@@ -696,7 +696,7 @@ the whole commit message to abort.
pass
if retval != os.EX_OK:
writemsg_level(
- "!!! Exiting on %s (shell) "
+ "!!!! Exiting on %s (shell) "
"error code: %s\n" % (self.vcs_settings.vcs, retval),
level=logging.ERROR,
noiselevel=-1,
@@ -720,8 +720,8 @@ the whole commit message to abort.
continue
gpgsign(manifest_path, self.repoman_settings, self.options)
except portage.exception.PortageException as e:
- portage.writemsg("!!! %s\n" % str(e))
- portage.writemsg("!!! Disabled FEATURES='sign'\n")
+ portage.writemsg("!!!! %s\n" % str(e))
+ portage.writemsg("!!!! Disabled FEATURES='sign'\n")
self.repo_settings.sign_manifests = False
def msg_prefix(self):
diff --git a/repoman/lib/repoman/gpg.py b/repoman/lib/repoman/gpg.py
index 10e884e52..9bed52606 100644
--- a/repoman/lib/repoman/gpg.py
+++ b/repoman/lib/repoman/gpg.py
@@ -57,7 +57,7 @@ def gpgsign(filename, repoman_settings, options):
os.rename(filename + ".asc", filename)
else:
raise portage.exception.PortageException(
- "!!! gpg exited with '" + str(rValue) + "' status"
+ "!!!! gpg exited with '" + str(rValue) + "' status"
)
diff --git a/repoman/lib/repoman/modules/commit/manifest.py b/repoman/lib/repoman/modules/commit/manifest.py
index e282ad406..bee80effa 100644
--- a/repoman/lib/repoman/modules/commit/manifest.py
+++ b/repoman/lib/repoman/modules/commit/manifest.py
@@ -48,14 +48,14 @@ class Manifest:
except portage.exception.PermissionDenied as e:
self.generated_manifest = False
writemsg_level(
- "!!! Permission denied: '%s'\n" % (e,),
+ "!!!! Permission denied: '%s'\n" % (e,),
level=logging.ERROR,
noiselevel=-1,
)
if not self.generated_manifest:
writemsg_level(
- "!!! Unable to generate manifest for '%s'.\n" % (checkdir,),
+ "!!!! Unable to generate manifest for '%s'.\n" % (checkdir,),
level=logging.ERROR,
noiselevel=-1,
)
diff --git a/repoman/lib/repoman/modules/vcs/cvs/status.py b/repoman/lib/repoman/modules/vcs/cvs/status.py
index 0d131c75a..71570bf24 100644
--- a/repoman/lib/repoman/modules/vcs/cvs/status.py
+++ b/repoman/lib/repoman/modules/vcs/cvs/status.py
@@ -94,11 +94,11 @@ class Status:
continue
logging.error(
red(
- "!!! Please fix the following issues reported "
+ "!!!! Please fix the following issues reported "
"from cvs: %s" % green("(U,P,M,A,R,D are ok)")
)
)
- logging.error(red("!!! Note: This is a pretend/no-modify pass..."))
+ logging.error(red("!!!! Note: This is a pretend/no-modify pass..."))
logging.error(out)
sys.exit(1)
elif line[0] in "UP":
@@ -112,7 +112,7 @@ class Status:
else:
retval = os.system("cvs update " + " ".join(myupdates))
if retval != os.EX_OK:
- logging.fatal("!!! cvs exited with an error. Terminating.")
+ logging.fatal("!!!! cvs exited with an error. Terminating.")
sys.exit(retval)
return False
diff --git a/repoman/lib/repoman/modules/vcs/git/changes.py b/repoman/lib/repoman/modules/vcs/git/changes.py
index 3430cf3ec..da3a87c55 100644
--- a/repoman/lib/repoman/modules/vcs/git/changes.py
+++ b/repoman/lib/repoman/modules/vcs/git/changes.py
@@ -120,7 +120,7 @@ class Changes(ChangesBase):
retval = spawn(update_index_cmd, env=os.environ)
if retval != os.EX_OK:
writemsg_level(
- "!!! Exiting on %s (shell) "
+ "!!!! Exiting on %s (shell) "
"error code: %s\n" % (self.vcs_settings.vcs, retval),
level=logging.ERROR,
noiselevel=-1,
diff --git a/repoman/lib/repoman/modules/vcs/svn/status.py b/repoman/lib/repoman/modules/vcs/svn/status.py
index 2e6ee927d..82ac29f68 100644
--- a/repoman/lib/repoman/modules/vcs/svn/status.py
+++ b/repoman/lib/repoman/modules/vcs/svn/status.py
@@ -111,11 +111,11 @@ class Status:
continue
logging.error(
red(
- "!!! Please fix the following issues reported "
+ "!!!! Please fix the following issues reported "
"from cvs: %s" % green("(U,P,M,A,R,D are ok)")
)
)
- logging.error(red("!!! Note: This is a pretend/no-modify pass..."))
+ logging.error(red("!!!! Note: This is a pretend/no-modify pass..."))
logging.error(out)
sys.exit(1)
elif line[8] == "*":
@@ -129,7 +129,7 @@ class Status:
else:
retval = os.system("svn update " + " ".join(myupdates))
if retval != os.EX_OK:
- logging.fatal("!!! svn exited with an error. Terminating.")
+ logging.fatal("!!!! svn exited with an error. Terminating.")
sys.exit(retval)
return False
diff --git a/repoman/lib/repoman/scanner.py b/repoman/lib/repoman/scanner.py
index 890950c65..f4c71c9a2 100644
--- a/repoman/lib/repoman/scanner.py
+++ b/repoman/lib/repoman/scanner.py
@@ -456,7 +456,7 @@ class Scanner:
# Do not try to do any more QA checks on this package since missing
# metadata leads to false positives for several checks, and false
# positives confuse users.
- # logging.debug("\t>>> Continuing")
+ # logging.debug("\t>>>> Continuing")
break
logging.debug("Finished ebuild plugin loop, continuing...")
@@ -480,5 +480,5 @@ class Scanner:
logging.debug("\tRunning function: %s", func)
_continue = func(**self.set_func_kwargs(mod, dynamic_data))
if _continue:
- # logging.debug("\t>>> Continuing")
+ # logging.debug("\t>>>> Continuing")
break
--
2.33.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/4] Output rewrite for better clarify and greppability
2021-09-28 14:20 [gentoo-portage-dev] [PATCH 0/4] Output rewrite for better clarify and greppability Michał Górny
` (3 preceding siblings ...)
2021-09-28 14:20 ` [gentoo-portage-dev] [PATCH 4/4] Use ">>>>" and "!!!!" for output prefixes Michał Górny
@ 2021-09-28 15:28 ` Mike Gilbert
2021-09-28 15:37 ` Michał Górny
2021-10-04 6:49 ` Michał Górny
5 siblings, 1 reply; 8+ messages in thread
From: Mike Gilbert @ 2021-09-28 15:28 UTC (permalink / raw
To: gentoo-portage-dev
On Tue, Sep 28, 2021 at 10:20 AM Michał Górny <mgorny@gentoo.org> wrote:
>
> Hi,
>
> Ok, so it's more major than I originally intended but I think it's
> a good direction (once you get used to it). Roughly:
>
> 1. All bash color vars are now prefixed with `PORTAGE_COLOR_` to avoid
> accidental collisions with ebuild vars (e.g. ebuild setting
> `GOOD=foo` broke `elog` before).
> 2. There are specific color vars for all kinds of output functions,
> and now `einfo` messages use distinct color (dark green) from `elog`,
> and `eqawarn` (brown) from `ewarn`.
> 3. Messages are now prefixed by their kind, making it possible to
> distinguish them without colors and grep for specific kind of logs:
> - `[--]` for einfo & ebegin
> - `[II]` for elog
> - `[WW]` for ewarn
> - `[QA]` for eqawarn
> - `[EE]` for eerror
> 4. Finally, I've replaced most of `>>>` and `!!!` in Portage output with
> four `>>>>` and `!!!!` to align the output again.
I like it.
Maybe add a reference to this bug? https://bugs.gentoo.org/728046
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/4] Output rewrite for better clarify and greppability
2021-09-28 15:28 ` [gentoo-portage-dev] [PATCH 0/4] Output rewrite for better clarify and greppability Mike Gilbert
@ 2021-09-28 15:37 ` Michał Górny
0 siblings, 0 replies; 8+ messages in thread
From: Michał Górny @ 2021-09-28 15:37 UTC (permalink / raw
To: gentoo-portage-dev
On Tue, 2021-09-28 at 11:28 -0400, Mike Gilbert wrote:
> On Tue, Sep 28, 2021 at 10:20 AM Michał Górny <mgorny@gentoo.org> wrote:
> >
> > Hi,
> >
> > Ok, so it's more major than I originally intended but I think it's
> > a good direction (once you get used to it). Roughly:
> >
> > 1. All bash color vars are now prefixed with `PORTAGE_COLOR_` to avoid
> > accidental collisions with ebuild vars (e.g. ebuild setting
> > `GOOD=foo` broke `elog` before).
> > 2. There are specific color vars for all kinds of output functions,
> > and now `einfo` messages use distinct color (dark green) from `elog`,
> > and `eqawarn` (brown) from `ewarn`.
> > 3. Messages are now prefixed by their kind, making it possible to
> > distinguish them without colors and grep for specific kind of logs:
> > - `[--]` for einfo & ebegin
> > - `[II]` for elog
> > - `[WW]` for ewarn
> > - `[QA]` for eqawarn
> > - `[EE]` for eerror
> > 4. Finally, I've replaced most of `>>>` and `!!!` in Portage output with
> > four `>>>>` and `!!!!` to align the output again.
>
> I like it.
>
> Maybe add a reference to this bug? https://bugs.gentoo.org/728046
>
Oh right, I also need to work on removing redundant 'QA Notice:'
thingies.
--
Best regards,
Michał Górny
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/4] Output rewrite for better clarify and greppability
2021-09-28 14:20 [gentoo-portage-dev] [PATCH 0/4] Output rewrite for better clarify and greppability Michał Górny
` (4 preceding siblings ...)
2021-09-28 15:28 ` [gentoo-portage-dev] [PATCH 0/4] Output rewrite for better clarify and greppability Mike Gilbert
@ 2021-10-04 6:49 ` Michał Górny
5 siblings, 0 replies; 8+ messages in thread
From: Michał Górny @ 2021-10-04 6:49 UTC (permalink / raw
To: gentoo-portage-dev
On Tue, 2021-09-28 at 16:20 +0200, Michał Górny wrote:
> Hi,
>
> Ok, so it's more major than I originally intended but I think it's
> a good direction (once you get used to it). Roughly:
>
I'm retracting this in favor of whatever gentoo-dev participants come up
with.
--
Best regards,
Michał Górny
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-10-04 6:49 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-09-28 14:20 [gentoo-portage-dev] [PATCH 0/4] Output rewrite for better clarify and greppability Michał Górny
2021-09-28 14:20 ` [gentoo-portage-dev] [PATCH 1/4] Prefix color vars with "PORTAGE_COLOR_" Michał Górny
2021-09-28 14:20 ` [gentoo-portage-dev] [PATCH 2/4] Use distinct colors for output msg types Michał Górny
2021-09-28 14:20 ` [gentoo-portage-dev] [PATCH 3/4] Use verbose prefixes for output messages Michał Górny
2021-09-28 14:20 ` [gentoo-portage-dev] [PATCH 4/4] Use ">>>>" and "!!!!" for output prefixes Michał Górny
2021-09-28 15:28 ` [gentoo-portage-dev] [PATCH 0/4] Output rewrite for better clarify and greppability Mike Gilbert
2021-09-28 15:37 ` Michał Górny
2021-10-04 6:49 ` Michał Górny
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox