selinux/policycoreutils
Alan Jenkins 8e9c9a20cb policycoreutils: fixfiles: deprecate -l option
...and write log messages to standard output.

Some versions of fixfiles in 2004 created a logfile by default.
Apparently they also used `tee` to log to standard output at the same time.
We're also told that the logfile was implemented because there was too
much output generated for use on a tty, and it scrolled out of reach.

https://bugzilla.redhat.com/show_bug.cgi?id=131707

In the current version, none of these original reasons for `-l` remain.

The logfile is not created by default.  If no log file is specified,
messages are written to stdin [sic]... if and only stdin is a tty.  If
stdin is not a tty, the log defaults to /dev/null.

When a user runs fixfiles on a tty and finds there is too much output, she
is likely to try redirecting standard output and/or standard error using
the shell.  She will find this doesn't help, because fixfiles is writing
the verbose log messages to standard input.

I tried to fix the problem non-intrusively, by changing the default log
file to `/dev/stdout`.  Sadly, this breaks down where you have
`echo >>$LOGFILE "Log message"` inside a specific function, which is run
with output redirected in order to "return" a string value (captured
into a variable).  exclude_dirs_from_relabelling() was such a function.

I was trying to abstract over writing to both normal files and stdout, but
my abstraction "leaks" in a non-obvious way.

There is a simple solution.  We can write the log messages to standard
output.  When we are passed `-l` by a legacy script, we can redirect
standard output to the logfile.

This removes any distinctions between the logfile and "non-log" messages.
Some calls to restorecon were missing redirections to the log file.
"Cleaning out /tmp" was written to the log file, but "Cleaning out labels
on /tmp" was not.  There were no comments to explain these distinctions.
2017-05-05 13:27:18 -04:00
..
.tx Update Translations 2013-10-24 13:58:39 -04:00
hll Makefiles: drop -L/-I to system paths 2017-04-25 08:27:05 -04:00
load_policy Makefiles: drop -L/-I to system paths 2017-04-25 08:27:05 -04:00
man Merge branch 'fedora' into master-merge 2013-10-24 15:24:17 -04:00
newrole policycoreutils: make audit and pam support configurable 2017-04-25 08:32:11 -04:00
po policycoreutils: honour LINGUAS variable 2017-04-25 08:12:18 -04:00
run_init policycoreutils: make audit and pam support configurable 2017-04-25 08:32:11 -04:00
scripts policycoreutils: fixfiles: deprecate -l option 2017-05-05 13:27:18 -04:00
secon Makefiles: drop -L/-I to system paths 2017-04-25 08:27:05 -04:00
semodule Makefiles: drop -L/-I to system paths 2017-04-25 08:27:05 -04:00
sestatus Makefiles: drop -L/-I to system paths 2017-04-25 08:27:05 -04:00
setfiles policycoreutils: make audit and pam support configurable 2017-04-25 08:32:11 -04:00
setsebool Makefiles: drop -L/-I to system paths 2017-04-25 08:27:05 -04:00
.gitignore Move policycoreutils/semodule_package to semodule-utils. 2016-11-16 11:19:51 -05:00
COPYING initial import from svn trunk revision 2950 2008-08-19 15:30:36 -04:00
Makefile Move policycoreutils/semodule_package to semodule-utils. 2016-11-16 11:19:51 -05:00
VERSION Update VERSION and ChangeLog files for 2.6 final release. 2016-10-14 11:31:26 -04:00