diff options
author | Laurentiu Palcu <laurentiu.palcu@intel.com> | 2014-03-28 12:10:44 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-03-30 10:10:32 +0100 |
commit | a56d8e9edef7109628bac54d07febc08ba522447 (patch) | |
tree | b800320d2b92de10ecd89a4be7c9533cba8cbc42 | |
parent | a5994c0837061440f79eff4a0a96e8769c2b22ee (diff) | |
download | poky-a56d8e9edef7109628bac54d07febc08ba522447.tar.gz |
rootfs.py: add new cleanup method
This commit adds a new _cleanup() internal method that will be called at
the end of rootfs creation, so that each backend can delete various
files that were probably generated during rootfs postprocess execution,
etc.
[YOCTO #6049]
(From OE-Core rev: 6151d69875f3f4f097b6e2fdef2a0f3ab391e2fd)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-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 | ||