diff options
-rw-r--r-- | meta/lib/oe/rootfs.py | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py index 754ef563ab..d3ec8a56c4 100644 --- a/meta/lib/oe/rootfs.py +++ b/meta/lib/oe/rootfs.py | |||
@@ -293,6 +293,24 @@ class Rootfs(object, metaclass=ABCMeta): | |||
293 | # Remove the package manager data files | 293 | # Remove the package manager data files |
294 | self.pm.remove_packaging_data() | 294 | self.pm.remove_packaging_data() |
295 | 295 | ||
296 | def _postpone_to_first_boot(self, postinst_intercept_hook): | ||
297 | with open(postinst_intercept_hook) as intercept: | ||
298 | registered_pkgs = None | ||
299 | for line in intercept.read().split("\n"): | ||
300 | m = re.match("^##PKGS:(.*)", line) | ||
301 | if m is not None: | ||
302 | registered_pkgs = m.group(1).strip() | ||
303 | break | ||
304 | |||
305 | if registered_pkgs is not None: | ||
306 | bb.warn("The postinstalls for the following packages " | ||
307 | "will be postponed for first boot: %s" % | ||
308 | registered_pkgs) | ||
309 | |||
310 | # call the backend dependent handler | ||
311 | self._handle_intercept_failure(registered_pkgs) | ||
312 | |||
313 | |||
296 | def _run_intercepts(self): | 314 | def _run_intercepts(self): |
297 | intercepts_dir = os.path.join(self.d.getVar('WORKDIR'), | 315 | intercepts_dir = os.path.join(self.d.getVar('WORKDIR'), |
298 | "intercept_scripts") | 316 | "intercept_scripts") |
@@ -314,22 +332,7 @@ class Rootfs(object, metaclass=ABCMeta): | |||
314 | except subprocess.CalledProcessError as e: | 332 | except subprocess.CalledProcessError as e: |
315 | bb.warn("The postinstall intercept hook '%s' failed, details in log.do_rootfs" % script) | 333 | bb.warn("The postinstall intercept hook '%s' failed, details in log.do_rootfs" % script) |
316 | bb.note("Exit code %d. Output:\n%s" % (e.returncode, e.output.decode("utf-8"))) | 334 | bb.note("Exit code %d. Output:\n%s" % (e.returncode, e.output.decode("utf-8"))) |
317 | 335 | self._postpone_to_first_boot(script_full) | |
318 | with open(script_full) as intercept: | ||
319 | registered_pkgs = None | ||
320 | for line in intercept.read().split("\n"): | ||
321 | m = re.match("^##PKGS:(.*)", line) | ||
322 | if m is not None: | ||
323 | registered_pkgs = m.group(1).strip() | ||
324 | break | ||
325 | |||
326 | if registered_pkgs is not None: | ||
327 | bb.warn("The postinstalls for the following packages " | ||
328 | "will be postponed for first boot: %s" % | ||
329 | registered_pkgs) | ||
330 | |||
331 | # call the backend dependent handler | ||
332 | self._handle_intercept_failure(registered_pkgs) | ||
333 | 336 | ||
334 | def _run_ldconfig(self): | 337 | def _run_ldconfig(self): |
335 | if self.d.getVar('LDCONFIGDEPEND'): | 338 | if self.d.getVar('LDCONFIGDEPEND'): |