This behavior is confusing, since it means absolutely everything goes to
stderr and makepkg itself is a quiet program that produces no expected
output???

The only situation where messages should go to stderr rather than
stdout, is with --geninteg which is meant to return the checksums on
stdout (but we don't want to totally get rid of status messages when
redirecting the results elsewhere, or, worse, redirect status messages
to a PKGBUILD). For this specific case, redirect message output to
stderr in the --geninteg callers directly.

Implements FS#17173

Signed-off-by: Eli Schwartz <eschwa...@archlinux.org>
---

It took us 9 years, but we got there...

 scripts/libmakepkg/integrity/generate_checksum.sh.in | 2 +-
 scripts/libmakepkg/util/message.sh.in                | 6 +++---
 scripts/makepkg.sh.in                                | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/scripts/libmakepkg/integrity/generate_checksum.sh.in 
b/scripts/libmakepkg/integrity/generate_checksum.sh.in
index eb9b74fc..8edc48d3 100644
--- a/scripts/libmakepkg/integrity/generate_checksum.sh.in
+++ b/scripts/libmakepkg/integrity/generate_checksum.sh.in
@@ -78,7 +78,7 @@ generate_one_checksum() {
 }
 
 generate_checksums() {
-       msg "$(gettext "Generating checksums for source files...")"
+       msg "$(gettext "Generating checksums for source files...")" >&2
 
        local integlist
        if (( $# == 0 )); then
diff --git a/scripts/libmakepkg/util/message.sh.in 
b/scripts/libmakepkg/util/message.sh.in
index 0746b677..36790c26 100644
--- a/scripts/libmakepkg/util/message.sh.in
+++ b/scripts/libmakepkg/util/message.sh.in
@@ -45,17 +45,17 @@ colorize() {
 
 plain() {
        local mesg=$1; shift
-       printf "${BOLD}    ${mesg}${ALL_OFF}\n" "$@" >&2
+       printf "${BOLD}    ${mesg}${ALL_OFF}\n" "$@"
 }
 
 msg() {
        local mesg=$1; shift
-       printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
+       printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@"
 }
 
 msg2() {
        local mesg=$1; shift
-       printf "${BLUE}  ->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
+       printf "${BLUE}  ->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@"
 }
 
 warning() {
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 32423262..650b8494 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1469,7 +1469,7 @@ if (( GENINTEG )); then
        mkdir -p "$srcdir"
        chmod a-s "$srcdir"
        cd_safe "$srcdir"
-       download_sources novcs allarch
+       download_sources novcs allarch >&2
        generate_checksums
        exit $E_OK
 fi
-- 
2.18.0

Reply via email to