From a89daa75ac970d8e247edc762d1181e9a5b0c5d0 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Tue, 17 Jan 2017 14:07:17 +0200
Subject: [PATCH] When cross-installing, execute package scriptlets without
 chrooting into destination rootfs

This is triggered only when RPM_NO_CHROOT_FOR_SCRIPTS environment variable is defined.
Otherwise they will trigger an explosion of failures, obviously.

Amended 2018-07-03 by Olof Johansson <olofjn@axis.com>:

  Remove leaking temporary scriptlet files

  Since we tell dnf to run rpm with debug output, this will result in rpm not
  cleaning up written temporary scriptlet files (same flag controls both
  behaviors). This wouldn't have been a problem since we normally would use the
  target sysroot also for temporary files, but we need to chroot out to be able
  to actually run the rpm scriptlets (purpose of this patch), so the temporary
  files are written to the host's /var/tmp/ directory, causing a gradual
  resource leakage on the host system for every RPM based do_rootfs task
  executed.

  Signed-off-by: Olof Johansson <olofjn@axis.com>

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

diff --git a/lib/rpmscript.c b/lib/rpmscript.c
index cc98c4885..f8bd3df04 100644
--- a/lib/rpmscript.c
+++ b/lib/rpmscript.c
@@ -394,8 +394,7 @@ exit:
 	Fclose(out);	/* XXX dup'd STDOUT_FILENO */
 
     if (fn) {
-	if (!rpmIsDebug())
-	    unlink(fn);
+	unlink(fn);
 	free(fn);
     }
     free(mline);
@@ -428,7 +427,13 @@ rpmRC rpmScriptRun(rpmScript script, int arg1, int arg2, FD_t scriptFd,
 
     if (rc != RPMRC_FAIL) {
 	if (script_type & RPMSCRIPTLET_EXEC) {
-	    rc = runExtScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, &script->nextFileFunc);
+	    if (getenv("RPM_NO_CHROOT_FOR_SCRIPTS") != NULL) {
+		rpmChrootOut();
+		rc = runExtScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, &script->nextFileFunc);
+		rpmChrootIn();
+	    } else {
+		rc = runExtScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, &script->nextFileFunc);
+	    }
 	} else {
 	    rc = runLuaScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, &script->nextFileFunc);
 	}
-- 
2.11.0

