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(-)

--- a/lib/rpmscript.c
+++ b/lib/rpmscript.c
@@ -17,7 +17,7 @@
 #include "rpmio/rpmio_internal.h"
 
 #include "lib/rpmplugins.h"     /* rpm plugins hooks */
-
+#include "lib/rpmchroot.h"      /* rpmChrootOut */
 #include "debug.h"
 
 struct scriptNextFileFunc_s {
@@ -391,8 +391,7 @@ exit:
 	Fclose(out);	/* XXX dup'd STDOUT_FILENO */
 
     if (fn) {
-	if (!rpmIsDebug())
-	    unlink(fn);
+	unlink(fn);
 	free(fn);
     }
     free(mline);
@@ -426,7 +425,13 @@ rpmRC rpmScriptRun(rpmScript script, int
 
     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);
 	}
