> -----Original Message-----
> From: [email protected]
> <[email protected]> On Behalf Of Alex Kiernan
> Sent: den 20 juli 2023 12:20
> To: [email protected]
> Cc: Alex Kiernan <[email protected]>
> Subject: [OE-Core][PATCH v2 1/3] rootfs: Add debugfs package db file copy and
> cleanup
>
> When copying the package database files for the debugfs, add individual
> file copy as well as tree copying. After the debug rootfs has been
> created, cleanup the package files.
>
> This then allows us to avoid a problem where (for rpm at least)
> extraneous files in the debug rootfs would cause failures during
> oe-selftest because some files existed in both regular and debugfs
> images.
>
> Signed-off-by: Alex Kiernan <[email protected]>
> ---
>
> Changes in v2:
> - New in v2
>
> meta/lib/oe/rootfs.py | 20 ++++++++++++++------
> 1 file changed, 14 insertions(+), 6 deletions(-)
>
> diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py
> index 890ba5f03984..1a48ed10b3f6 100644
> --- a/meta/lib/oe/rootfs.py
> +++ b/meta/lib/oe/rootfs.py
> @@ -106,7 +106,7 @@ class Rootfs(object, metaclass=ABCMeta):
> def _cleanup(self):
> pass
>
> - def _setup_dbg_rootfs(self, dirs):
> + def _setup_dbg_rootfs(self, package_paths):
> gen_debugfs = self.d.getVar('IMAGE_GEN_DEBUGFS') or '0'
> if gen_debugfs != '1':
> return
> @@ -122,11 +122,12 @@ class Rootfs(object, metaclass=ABCMeta):
> bb.utils.mkdirhier(self.image_rootfs)
>
> bb.note(" Copying back package database...")
> - for dir in dirs:
> - if not os.path.isdir(self.image_rootfs + '-orig' + dir):
> - continue
> - bb.utils.mkdirhier(self.image_rootfs + os.path.dirname(dir))
> - shutil.copytree(self.image_rootfs + '-orig' + dir,
> self.image_rootfs + dir, symlinks=True)
> + for path in package_paths:
> + bb.utils.mkdirhier(self.image_rootfs + os.path.dirname(path))
> + if os.path.isdir(self.image_rootfs + '-orig' + path):
> + shutil.copytree(self.image_rootfs + '-orig' + path,
> self.image_rootfs + path, symlinks=True)
> + elif os.path.isfile(self.image_rootfs + '-orig' + path):
> + shutil.copyfile(self.image_rootfs + '-orig' + path,
> self.image_rootfs + path)
>
> # Copy files located in /usr/lib/debug or /usr/src/debug
> for dir in ["/usr/lib/debug", "/usr/src/debug"]:
> @@ -162,6 +163,13 @@ class Rootfs(object, metaclass=ABCMeta):
> bb.note(" Install extra debug packages...")
> self.pm.install(extra_debug_pkgs.split(), True)
>
> + bb.note(" Removing package database...")
> + for path in package_paths:
> + if os.path.isdir(self.image_rootfs + path):
> + shutil.rmtree(self.image_rootfs + path)
> + elif os.path.isfile(self.image_rootfs + path):
> + os.remove(self.image_rootfs + path)
What's the reason to do it like this rather than calling
self.pm.remove_packaging_data()?
I also just noticed that we apparently have a local change that does the
above, but where we also do:
# Remove /etc as it may clash with rootfs. Also saves some space.
bb.utils.remove(oe.path.join(self.image_rootfs, 'etc'), True)
I do not know if that would be appropriate to do here as well?
> +
> bb.note(" Rename debug rootfs...")
> try:
> shutil.rmtree(self.image_rootfs + '-dbg')
> --
> 2.39.0
//Peter
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#185623):
https://lists.openembedded.org/g/openembedded-core/message/185623
Mute This Topic: https://lists.openembedded.org/mt/100252894/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-