diff options
| -rw-r--r-- | meta/lib/oe/rootfs.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py index 0e6c8bc2f0..3eac3c947d 100644 --- a/meta/lib/oe/rootfs.py +++ b/meta/lib/oe/rootfs.py | |||
| @@ -50,6 +50,15 @@ class Rootfs(object): | |||
| 50 | def _handle_intercept_failure(self, failed_script): | 50 | def _handle_intercept_failure(self, failed_script): |
| 51 | pass | 51 | pass |
| 52 | 52 | ||
| 53 | """ | ||
| 54 | The _cleanup() method should be used to clean-up stuff that we don't really | ||
| 55 | want to end up on target. For example, in the case of RPM, the DB locks. | ||
| 56 | The method is called, once, at the end of create() method. | ||
| 57 | """ | ||
| 58 | @abstractmethod | ||
| 59 | def _cleanup(self): | ||
| 60 | pass | ||
| 61 | |||
| 53 | def _exec_shell_cmd(self, cmd): | 62 | def _exec_shell_cmd(self, cmd): |
| 54 | fakerootcmd = self.d.getVar('FAKEROOT', True) | 63 | fakerootcmd = self.d.getVar('FAKEROOT', True) |
| 55 | if fakerootcmd is not None: | 64 | if fakerootcmd is not None: |
| @@ -117,6 +126,8 @@ class Rootfs(object): | |||
| 117 | 126 | ||
| 118 | self._generate_kernel_module_deps() | 127 | self._generate_kernel_module_deps() |
| 119 | 128 | ||
| 129 | self._cleanup() | ||
| 130 | |||
| 120 | def _uninstall_uneeded(self): | 131 | def _uninstall_uneeded(self): |
| 121 | if base_contains("IMAGE_FEATURES", "package-management", | 132 | if base_contains("IMAGE_FEATURES", "package-management", |
| 122 | True, False, self.d): | 133 | True, False, self.d): |
| @@ -358,6 +369,13 @@ class RpmRootfs(Rootfs): | |||
| 358 | for pkg in registered_pkgs.split(): | 369 | for pkg in registered_pkgs.split(): |
| 359 | self.pm.save_rpmpostinst(pkg) | 370 | self.pm.save_rpmpostinst(pkg) |
| 360 | 371 | ||
| 372 | def _cleanup(self): | ||
| 373 | # during the execution of postprocess commands, rpm is called several | ||
| 374 | # times to get the files installed, dependencies, etc. This creates the | ||
| 375 | # __db.00* (Berkeley DB files that hold locks, rpm specific environment | ||
| 376 | # settings, etc.), that should not get into the final rootfs | ||
| 377 | self.pm.unlock_rpm_db() | ||
| 378 | |||
| 361 | 379 | ||
| 362 | class DpkgRootfs(Rootfs): | 380 | class DpkgRootfs(Rootfs): |
| 363 | def __init__(self, d, manifest_dir): | 381 | def __init__(self, d, manifest_dir): |
| @@ -431,6 +449,9 @@ class DpkgRootfs(Rootfs): | |||
| 431 | def _log_check(self): | 449 | def _log_check(self): |
| 432 | pass | 450 | pass |
| 433 | 451 | ||
| 452 | def _cleanup(self): | ||
| 453 | pass | ||
| 454 | |||
| 434 | 455 | ||
| 435 | class OpkgRootfs(Rootfs): | 456 | class OpkgRootfs(Rootfs): |
| 436 | def __init__(self, d, manifest_dir): | 457 | def __init__(self, d, manifest_dir): |
| @@ -694,6 +715,10 @@ class OpkgRootfs(Rootfs): | |||
| 694 | def _log_check(self): | 715 | def _log_check(self): |
| 695 | pass | 716 | pass |
| 696 | 717 | ||
| 718 | def _cleanup(self): | ||
| 719 | pass | ||
| 720 | |||
| 721 | |||
| 697 | def create_rootfs(d, manifest_dir=None): | 722 | def create_rootfs(d, manifest_dir=None): |
| 698 | env_bkp = os.environ.copy() | 723 | env_bkp = os.environ.copy() |
| 699 | 724 | ||
