> -----Original Message----- > From: openembedded-core@lists.openembedded.org > <openembedded-core@lists.openembedded.org> On Behalf Of Alex Kiernan > Sent: den 20 juli 2023 12:20 > To: openembedded-core@lists.openembedded.org > Cc: Alex Kiernan <alex.kier...@gmail.com> > 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 <alex.kier...@gmail.com> > --- > > 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: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-