mirror of
https://git.yoctoproject.org/poky
synced 2026-09-18 15:49:32 +02:00
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>
This commit is contained in:
committed by
Richard Purdie
parent
a5994c0837
commit
a56d8e9ede
@@ -50,6 +50,15 @@ class Rootfs(object):
|
|||||||
def _handle_intercept_failure(self, failed_script):
|
def _handle_intercept_failure(self, failed_script):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
"""
|
||||||
|
The _cleanup() method should be used to clean-up stuff that we don't really
|
||||||
|
want to end up on target. For example, in the case of RPM, the DB locks.
|
||||||
|
The method is called, once, at the end of create() method.
|
||||||
|
"""
|
||||||
|
@abstractmethod
|
||||||
|
def _cleanup(self):
|
||||||
|
pass
|
||||||
|
|
||||||
def _exec_shell_cmd(self, cmd):
|
def _exec_shell_cmd(self, cmd):
|
||||||
fakerootcmd = self.d.getVar('FAKEROOT', True)
|
fakerootcmd = self.d.getVar('FAKEROOT', True)
|
||||||
if fakerootcmd is not None:
|
if fakerootcmd is not None:
|
||||||
@@ -117,6 +126,8 @@ class Rootfs(object):
|
|||||||
|
|
||||||
self._generate_kernel_module_deps()
|
self._generate_kernel_module_deps()
|
||||||
|
|
||||||
|
self._cleanup()
|
||||||
|
|
||||||
def _uninstall_uneeded(self):
|
def _uninstall_uneeded(self):
|
||||||
if base_contains("IMAGE_FEATURES", "package-management",
|
if base_contains("IMAGE_FEATURES", "package-management",
|
||||||
True, False, self.d):
|
True, False, self.d):
|
||||||
@@ -358,6 +369,13 @@ class RpmRootfs(Rootfs):
|
|||||||
for pkg in registered_pkgs.split():
|
for pkg in registered_pkgs.split():
|
||||||
self.pm.save_rpmpostinst(pkg)
|
self.pm.save_rpmpostinst(pkg)
|
||||||
|
|
||||||
|
def _cleanup(self):
|
||||||
|
# during the execution of postprocess commands, rpm is called several
|
||||||
|
# times to get the files installed, dependencies, etc. This creates the
|
||||||
|
# __db.00* (Berkeley DB files that hold locks, rpm specific environment
|
||||||
|
# settings, etc.), that should not get into the final rootfs
|
||||||
|
self.pm.unlock_rpm_db()
|
||||||
|
|
||||||
|
|
||||||
class DpkgRootfs(Rootfs):
|
class DpkgRootfs(Rootfs):
|
||||||
def __init__(self, d, manifest_dir):
|
def __init__(self, d, manifest_dir):
|
||||||
@@ -431,6 +449,9 @@ class DpkgRootfs(Rootfs):
|
|||||||
def _log_check(self):
|
def _log_check(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def _cleanup(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class OpkgRootfs(Rootfs):
|
class OpkgRootfs(Rootfs):
|
||||||
def __init__(self, d, manifest_dir):
|
def __init__(self, d, manifest_dir):
|
||||||
@@ -694,6 +715,10 @@ class OpkgRootfs(Rootfs):
|
|||||||
def _log_check(self):
|
def _log_check(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def _cleanup(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
def create_rootfs(d, manifest_dir=None):
|
def create_rootfs(d, manifest_dir=None):
|
||||||
env_bkp = os.environ.copy()
|
env_bkp = os.environ.copy()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user