diff options
| -rw-r--r-- | meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch b/meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch index 2be3cb5af3..4020a31092 100644 --- a/meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch +++ b/meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | From a6f269f879221f2777169c5f7291322afe6b661b Mon Sep 17 00:00:00 2001 | 1 | From a89daa75ac970d8e247edc762d1181e9a5b0c5d0 Mon Sep 17 00:00:00 2001 |
| 2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | 2 | From: Alexander Kanavin <alex.kanavin@gmail.com> |
| 3 | Date: Tue, 17 Jan 2017 14:07:17 +0200 | 3 | Date: Tue, 17 Jan 2017 14:07:17 +0200 |
| 4 | Subject: [PATCH] When cross-installing, execute package scriptlets without | 4 | Subject: [PATCH] When cross-installing, execute package scriptlets without |
| @@ -7,17 +7,42 @@ Subject: [PATCH] When cross-installing, execute package scriptlets without | |||
| 7 | This is triggered only when RPM_NO_CHROOT_FOR_SCRIPTS environment variable is defined. | 7 | This is triggered only when RPM_NO_CHROOT_FOR_SCRIPTS environment variable is defined. |
| 8 | Otherwise they will trigger an explosion of failures, obviously. | 8 | Otherwise they will trigger an explosion of failures, obviously. |
| 9 | 9 | ||
| 10 | Amended 2018-07-03 by Olof Johansson <olofjn@axis.com>: | ||
| 11 | |||
| 12 | Remove leaking temporary scriptlet files | ||
| 13 | |||
| 14 | Since we tell dnf to run rpm with debug output, this will result in rpm not | ||
| 15 | cleaning up written temporary scriptlet files (same flag controls both | ||
| 16 | behaviors). This wouldn't have been a problem since we normally would use the | ||
| 17 | target sysroot also for temporary files, but we need to chroot out to be able | ||
| 18 | to actually run the rpm scriptlets (purpose of this patch), so the temporary | ||
| 19 | files are written to the host's /var/tmp/ directory, causing a gradual | ||
| 20 | resource leakage on the host system for every RPM based do_rootfs task | ||
| 21 | executed. | ||
| 22 | |||
| 23 | Signed-off-by: Olof Johansson <olofjn@axis.com> | ||
| 24 | |||
| 10 | Upstream-Status: Inappropriate [oe-core specific] | 25 | Upstream-Status: Inappropriate [oe-core specific] |
| 11 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | 26 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> |
| 12 | --- | 27 | --- |
| 13 | lib/rpmscript.c | 8 +++++++- | 28 | lib/rpmscript.c | 11 ++++++++--- |
| 14 | 1 file changed, 7 insertions(+), 1 deletion(-) | 29 | 1 file changed, 8 insertions(+), 3 deletions(-) |
| 15 | 30 | ||
| 16 | diff --git a/lib/rpmscript.c b/lib/rpmscript.c | 31 | diff --git a/lib/rpmscript.c b/lib/rpmscript.c |
| 17 | index 98d3f420d..b95b5d606 100644 | 32 | index cc98c4885..f8bd3df04 100644 |
| 18 | --- a/lib/rpmscript.c | 33 | --- a/lib/rpmscript.c |
| 19 | +++ b/lib/rpmscript.c | 34 | +++ b/lib/rpmscript.c |
| 20 | @@ -467,7 +467,13 @@ rpmRC rpmScriptRun(rpmScript script, int arg1, int arg2, FD_t scriptFd, | 35 | @@ -394,8 +394,7 @@ exit: |
| 36 | Fclose(out); /* XXX dup'd STDOUT_FILENO */ | ||
| 37 | |||
| 38 | if (fn) { | ||
| 39 | - if (!rpmIsDebug()) | ||
| 40 | - unlink(fn); | ||
| 41 | + unlink(fn); | ||
| 42 | free(fn); | ||
| 43 | } | ||
| 44 | free(mline); | ||
| 45 | @@ -428,7 +427,13 @@ rpmRC rpmScriptRun(rpmScript script, int arg1, int arg2, FD_t scriptFd, | ||
| 21 | 46 | ||
| 22 | if (rc != RPMRC_FAIL) { | 47 | if (rc != RPMRC_FAIL) { |
| 23 | if (script_type & RPMSCRIPTLET_EXEC) { | 48 | if (script_type & RPMSCRIPTLET_EXEC) { |
