Re: [PATCH] checkpolicy: remove extraneous policy build noise

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On Wed, Sep 19, 2018 at 12:36 PM Stephen Smalley <sds@xxxxxxxxxxxxx> wrote:
On 09/19/2018 03:21 PM, William Roberts wrote:
> Some people might be checking this output since it's been there so long,
> -s would be a good way to go.
>
> Alternatively, a way to bring back this information via a verbose option
> -V could
> be considered.
>
> Either way, a simple logging mechanism analogous to
> LOGV/LOGW/LOGE could be useful, I wonder what subordinate routines
> are logging. IIRC it was all fprintf(stderr) stuff in libselinux proper
> as you allude
> to in the redirection of stdout comment. We don't need to address this
> in this
> patch, but we may want to consider it at some point.
>
> I would lean towards a silent flag as it's backwards compatible,
> but noting that it doesn't suppress subordinate callers.
>
> I would also yield that opinion, as removing it works for me.

I'm ok dropping the output unless someone knows of an existing user that
relies upon it (which I can't really envision).

Why don't we extend the review period to 72 hours, and ill apply this
Friday unless we hear of this breaking someone. Essentially
consider this a soft-ack.
 

With regard to subordinate routines, libsepol has sepol_debug(0) or
sepol_msg_set_callback() to suppress or redirect its logging.
 
checkpolicy doesn't use libselinux but it likewise has
selinux_set_callback().

What about things like:
libselinux/src/load_policy.c:299: fprintf(stderr, "libselinux:  %s\n", errormsg);

Also utils and others are using fprintf directly.... perhaps something we wish to make common
across utilities and subordinate libs.


>
> On Wed, Sep 19, 2018 at 12:13 PM Nick Kralevich via Selinux
> <selinux@xxxxxxxxxxxxx <mailto:selinux@xxxxxxxxxxxxx>> wrote:
>
>     Reduce noise when calling the checkpolicy command line. In Android, this
>     creates unnecessary build noise which we'd like to avoid.
>
>     https://en.wikipedia.org/wiki/Unix_philosophy
>
>        Rule of Silence
>        Developers should design programs so that they do not print
>        unnecessary output. This rule aims to allow other programs
>        and developers to pick out the information they need from a
>        program's output without having to parse verbosity.
>
>     An alternative approach would be to add a -s (silent) option to these
>     tools, or to have the Android build system redirect stdout to /dev/null.
>
>     Signed-off-by: Nick Kralevich <nnk@xxxxxxxxxx <mailto:nnk@xxxxxxxxxx>>
>     ---
>       checkpolicy/checkmodule.c |  8 --------
>       checkpolicy/checkpolicy.c | 11 -----------
>       2 files changed, 19 deletions(-)
>
>     diff --git a/checkpolicy/checkmodule.c b/checkpolicy/checkmodule.c
>     index 46ce258f..8edc1f8c 100644
>     --- a/checkpolicy/checkmodule.c
>     +++ b/checkpolicy/checkmodule.c
>     @@ -228,7 +228,6 @@ int main(int argc, char **argv)
>                      if (optind != argc)
>                              usage(argv[0]);
>              }
>     -       printf("%s:  loading policy configuration from %s\n",
>     argv[0], file);
>
>              /* Set policydb and sidtab used by libsepol service functions
>                 to my structures, so that I can directly populate and
>     @@ -302,8 +301,6 @@ int main(int argc, char **argv)
>
>              sepol_sidtab_destroy(&sidtab);
>
>     -       printf("%s:  policy configuration loaded\n", argv[0]);
>     -
>              if (outfile) {
>                      FILE *outfp = fopen(outfile, "w");
>
>     @@ -313,16 +310,11 @@ int main(int argc, char **argv)
>                      }
>
>                      if (!cil) {
>     -                       printf("%s:  writing binary representation
>     (version %d) to %s\n",
>     -                                  argv[0], policyvers, outfile);
>     -
>                              if (write_binary_policy(&modpolicydb,
>     outfp) != 0) {
>                                      fprintf(stderr, "%s:  error writing
>     %s\n", argv[0], outfile);
>                                      exit(1);
>                              }
>                      } else {
>     -                       printf("%s:  writing CIL to %s\n",argv[0],
>     outfile);
>     -
>                              if (sepol_module_policydb_to_cil(outfp,
>     &modpolicydb, 0) != 0) {
>                                      fprintf(stderr, "%s:  error writing
>     %s\n", argv[0], outfile);
>                                      exit(1);
>     diff --git a/checkpolicy/checkpolicy.c b/checkpolicy/checkpolicy.c
>     index fbda4558..12c4c405 100644
>     --- a/checkpolicy/checkpolicy.c
>     +++ b/checkpolicy/checkpolicy.c
>     @@ -512,8 +512,6 @@ int main(int argc, char **argv)
>                      if (optind != argc)
>                              usage(argv[0]);
>              }
>     -       printf("%s:  loading policy configuration from %s\n",
>     argv[0], file);
>     -
>              /* Set policydb and sidtab used by libsepol service functions
>                 to my structures, so that I can directly populate and
>                 manipulate them. */
>     @@ -623,8 +621,6 @@ int main(int argc, char **argv)
>              if (policydb_load_isids(&policydb, &sidtab))
>                      exit(1);
>
>     -       printf("%s:  policy configuration loaded\n", argv[0]);
>     -
>              if (outfile) {
>                      outfp = fopen(outfile, "w");
>                      if (!outfp) {
>     @@ -636,8 +632,6 @@ int main(int argc, char **argv)
>
>                      if (!cil) {
>                              if (!conf) {
>     -                               printf("%s:  writing binary
>     representation (version %d) to %s\n", argv[0], policyvers, outfile);
>     -
>                                      policydb.policy_type = POLICY_KERN;
>
>                                      policy_file_init(&pf);
>     @@ -645,8 +639,6 @@ int main(int argc, char **argv)
>                                      pf.fp = outfp;
>                                      ret = policydb_write(&policydb, &pf);
>                              } else {
>     -                               printf("%s:  writing policy.conf to
>     %s\n",
>     -                                      argv[0], outfile);
>                                      ret =
>     sepol_kernel_policydb_to_conf(outfp, policydbp);
>                              }
>                              if (ret) {
>     @@ -655,7 +647,6 @@ int main(int argc, char **argv)
>                                      exit(1);
>                              }
>                      } else {
>     -                       printf("%s:  writing CIL to %s\n",argv[0],
>     outfile);
>                              if (binary) {
>                                      ret =
>     sepol_kernel_policydb_to_cil(outfp, policydbp);
>                              } else {
>     @@ -894,8 +885,6 @@ int main(int argc, char **argv)
>                              FGETS(ans, sizeof(ans), stdin);
>                              pathlen = strlen(ans);
>                              ans[pathlen - 1] = 0;
>     -                       printf("%s:  loading policy configuration
>     from %s\n",
>     -                              argv[0], ans);
>                              fd = open(ans, O_RDONLY);
>                              if (fd < 0) {
>                                      fprintf(stderr, "Can't open '%s':
>     %s\n",
>     --
>     2.19.0.397.gdd90340f6a-goog
>
>     _______________________________________________
>     Selinux mailing list
>     Selinux@xxxxxxxxxxxxx <mailto:Selinux@xxxxxxxxxxxxx>
>     To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx
>     <mailto:Selinux-leave@xxxxxxxxxxxxx>.
>     To get help, send an email containing "help" to
>     Selinux-request@xxxxxxxxxxxxx <mailto:Selinux-request@xxxxxxxxxxxxx>.
>
>
>
> _______________________________________________
> Selinux mailing list
> Selinux@xxxxxxxxxxxxx
> To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx.
> To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.
>

_______________________________________________
Selinux mailing list
Selinux@xxxxxxxxxxxxx
To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx.
To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.

[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux