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'): |
