From fcde0cbb807b83ea60903b231cb8657ae1cec5a5 Mon Sep 17 00:00:00 2001 From: "Kelvin M. Klann" Date: Wed, 31 Jan 2024 19:32:51 +0000 Subject: bugfix: print version to stderr on startup (#6172) Unlike the rest of the normal startup output (which goes to stderr), the version number is being printed to stdout, which makes it harder to ignore all of firejail's output. Example: $ firejail --noprofile /usr/bin/true --version 2>/dev/null firejail version 0.9.73 true (GNU coreutils) 9.4 Copyright (C) 2023 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Jim Meyering. So make the normal startup version output go to stderr and keep the other occurrences (such as in `firejail --version`) going to stdout, to make it easier to grep things in the output. Added on commit f019f0ec3 ("Print version on startup for firejail/firecfg", 2023-05-11) / PR #5829. Reported by @rusty-snake[1]. [1] https://github.com/netblue30/firejail/issues/6171#issuecomment-1912768721 --- src/firejail/firejail.h | 2 +- src/firejail/main.c | 6 +++--- src/firejail/usage.c | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/firejail/firejail.h b/src/firejail/firejail.h index d76a6c0ee..eb9287f2e 100644 --- a/src/firejail/firejail.h +++ b/src/firejail/firejail.h @@ -492,7 +492,7 @@ void tree(void); void top(void); // usage.c -void print_version(void); +void print_version(FILE *stream); void print_version_full(void); void usage(void); diff --git a/src/firejail/main.c b/src/firejail/main.c index cc5345ee0..341bac058 100644 --- a/src/firejail/main.c +++ b/src/firejail/main.c @@ -2957,10 +2957,10 @@ int main(int argc, char **argv, char **envp) { } EUID_ASSERT(); - // Note: Only attempt to print non-debug information to stdout after - // all profiles have been loaded (because a profile may set arg_quiet) + // Note: Only attempt to print non-debug information after all profiles + // have been loaded (because a profile may set arg_quiet) if (!arg_quiet) - print_version(); + print_version(stderr); // block X11 sockets if (arg_x11_block) diff --git a/src/firejail/usage.c b/src/firejail/usage.c index beedb3ce2..8598abd9d 100644 --- a/src/firejail/usage.c +++ b/src/firejail/usage.c @@ -320,16 +320,16 @@ static const char *const usage_str = "License GPL version 2 or later\n" "Homepage: https://firejail.wordpress.com\n"; -void print_version(void) { - printf("firejail version %s\n\n", VERSION); +void print_version(FILE *stream) { + fprintf(stream, "firejail version %s\n\n", VERSION); } void print_version_full(void) { - print_version(); + print_version(stdout); print_compiletime_support(); } void usage(void) { - print_version(); + print_version(stdout); puts(usage_str); } -- cgit v1.2.3-54-g00ecf