From 989e425d416474c191b020d0825895e3df4bd033 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Thu, 10 Jan 2019 18:14:18 +0100
Subject: [PATCH] rpmscript.c: change logging level around scriptlets to INFO
 from DEBUG

That way we can debug scriptlet failures without writing lots of
irrelevant noise to rootfs logs.

Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 lib/rpmscript.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Index: git/lib/rpmscript.c
===================================================================
--- git.orig/lib/rpmscript.c
+++ git/lib/rpmscript.c
@@ -270,7 +270,7 @@ static char * writeScript(const char *cm
     if (Ferror(fd))
 	goto exit;
 
-    if (rpmIsDebug() && (rstreq(cmd, "/bin/sh") || rstreq(cmd, "/bin/bash"))) {
+    if (rpmIsVerbose() && (rstreq(cmd, "/bin/sh") || rstreq(cmd, "/bin/bash"))) {
 	static const char set_x[] = "set -x\n";
 	/* Assume failures will be caught by the write below */
 	Fwrite(set_x, sizeof(set_x[0]), sizeof(set_x)-1, fd);
@@ -302,7 +302,7 @@ static rpmRC runExtScript(rpmPlugins plu
     char *mline = NULL;
     rpmRC rc = RPMRC_FAIL;
 
-    rpmlog(RPMLOG_DEBUG, "%s: scriptlet start\n", sname);
+    rpmlog(RPMLOG_INFO, "%s: scriptlet start\n", sname);
 
     if (script) {
 	fn = writeScript(*argvp[0], script);
@@ -354,7 +354,7 @@ static rpmRC runExtScript(rpmPlugins plu
 		sname, strerror(errno));
 	goto exit;
     } else if (pid == 0) {/* Child */
-	rpmlog(RPMLOG_DEBUG, "%s: execv(%s) pid %d\n",
+	rpmlog(RPMLOG_INFO, "%s: execv(%s) pid %d\n",
 	       sname, *argvp[0], (unsigned)getpid());
 
 	fclose(in);
@@ -397,7 +397,7 @@ static rpmRC runExtScript(rpmPlugins plu
 	reaped = waitpid(pid, &status, 0);
     } while (reaped == -1 && errno == EINTR);
 
-    rpmlog(RPMLOG_DEBUG, "%s: waitpid(%d) rc %d status %x\n",
+    rpmlog(RPMLOG_INFO, "%s: waitpid(%d) rc %d status %x\n",
 	   sname, (unsigned)pid, (unsigned)reaped, status);
 
     if (reaped < 0) {
