commit:     23d47fe0ead50e4a98eb4b1a02f68d350f53a166
Author:     Brian Norris <briannorris <AT> chromium <DOT> org>
AuthorDate: Tue Dec  5 23:19:50 2023 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Wed Dec 20 21:30:56 2023 +0000
URL:        https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=23d47fe0

qmerge: Send ewarn, etc., to stderr

The PMS specifically calls out that ewarn should not display its message
to stdout. Portage sends all e{log,info,warn,...} to stderr. Imitate
that.

This discrepancy causes problems for ghc-package.eclass users, for one,
as there are instances where that class purposely dumps a warning and
then expects its callers to still use its stdout as a result.

Signed-off-by: Brian Norris <briannorris <AT> chromium.org>
Signed-off-by: Mike Frysinger <vapier <AT> chromium.org>
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>

 qmerge.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/qmerge.c b/qmerge.c
index 246a733..cbf94e6 100644
--- a/qmerge.c
+++ b/qmerge.c
@@ -794,8 +794,8 @@ pkg_run_func_at(
                "has() { hasq \"$@\"; }\n"
                "hasq() { local h=$1; shift; case \" $* \" in *\" $h \"*) 
return 0;; *) return 1;; esac; }\n"
                "hasv() { hasq \"$@\" && echo \"$1\"; }\n"
-               "elog() { printf ' * %%b\\n' \"$*\"; }\n"
-               "einfon() { printf ' * %%b' \"$*\"; }\n"
+               "elog() { printf ' * %%b\\n' \"$*\" >&2; }\n"
+               "einfon() { printf ' * %%b' \"$*\" >&2; }\n"
                "einfo() { elog \"$@\"; }\n"
                "ewarn() { elog \"$@\"; }\n"
                "eqawarn() { elog \"QA: \"\"$@\"; }\n"
@@ -805,8 +805,8 @@ pkg_run_func_at(
                "fperms() { local f a=$1; shift; for f in \"$@\"; do chmod $a 
\"${ED}/${f}\"; done; }\n"
                /* TODO: This should suppress `die` */
                "nonfatal() { \"$@\"; }\n"
-               "ebegin() { printf ' * %%b ...' \"$*\"; }\n"
-               "eend() { local r=${1:-$?}; [ $# -gt 0 ] && shift; [ $r -eq 0 ] 
&& echo ' [ ok ]' || echo \" $* \"'[ !! ]'; return $r; }\n"
+               "ebegin() { printf ' * %%b ...' \"$*\" >&2; }\n"
+               "eend() { local r=${1:-$?}; [ $# -gt 0 ] && shift; [ $r -eq 0 ] 
&& echo ' [ ok ]' || echo \" $* \"'[ !! ]'; return $r; } >&2\n"
                "dodir() { mkdir -p \"$@\"; }\n"
                "keepdir() { dodir \"$@\" && touch 
\"$@\"/.keep_${CATEGORY}_${PN}-${SLOT%%/*}; }\n"
                /* TODO: This should be fatal upon error */

Reply via email to