Sorry Peter, but this still strikes me as rather heavy handed for what is a niche use case. Is it possible to simply do what needs to be done from a ROOTFS_POSTPROCESS hook?
Alex On Wed, 2 Feb 2022 at 03:00, Peter Kjellerstedt <[email protected]> wrote: > This is my third attempt to make it possible for me to hook into the > split_and_strip_files() function. We need this to be able to rename > the debug files for some packages to avoid conflicts when installing > them. > > In this version, the first patch splits out the part of > split_and_strip_files() that is responsible for setting up the > variables used to implement the various debug splitting methods > specified by PACKAGE_DEBUG_SPLIT_STYLE into a new function, > package_debug_vars(). This I believe to be a good thing in itself as > that function is way too long anyway. > > The second and third patch are not needed to allow me to hook into the > split_and_strip_files() function, but they simplify the APIs used for > passing the variables returned by package_debug_vars() around. > > With these patches in place, I can now wrap the package_debug_vars() > function with the following local wrapper package.bbclass: > > require ${COREBASE}/meta/classes/package.bbclass > > PACKAGE_DEBUG_FILE_SUFFIX ??= "" > > # Provide the original package_debug_vars() as org_package_debug_vars(). > org_package_debug_vars := "${@d.getVar('package_debug_vars', > False).replace('package_debug_vars', 'org_package_debug_vars')}" > python () { > bb.methodpool.insert_method("", d.getVar("org_package_debug_vars", > False), "<code>", 0) > } > > # This version of package_debug_vars() wraps the original > package_debug_vars() > # by calling org_package_debug_vars() and then appends > PACKAGE_DEBUG_FILE_SUFFIX > # to dv["append"] and dv["staticappend"]. > def package_debug_vars(d): > dv = org_package_debug_vars(d) > > dv["append"] += d.getVar('PACKAGE_DEBUG_FILE_SUFFIX') > dv["staticappend"] += d.getVar('PACKAGE_DEBUG_FILE_SUFFIX') > > return dv > > The definition of the org_package_debug_vars() function is not very > pretty, but it seems to work, and this solution means a heck of a lot > less maintenance than to try to maintain a backported version of the > over 250 lines long split_and_strip_files() function (as it was before > my changes). > > //Peter > > The following changes since commit > 74a8a74a553a33dc5f41939f8070d75e6d57d3da: > > busybox: Add shell arithmetic to work with poky-tiny (2022-02-01 > 07:32:08 +0000) > > are available in the Git repository at: > > git://git.yoctoproject.org/poky-contrib pkj/package_debug_vars > > http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=pkj/package_debug_vars > > Peter Kjellerstedt (3): > package.bbclass: Split out package_debug_vars from > split_and_strip_files > package.bbclass: Make package_debug_vars() return a dict > package.bbclass: Pass dv (debug_vars) around instead of individual > vars > > meta/classes/package.bbclass | 127 +++++++++++++++++++---------------- > 1 file changed, 70 insertions(+), 57 deletions(-) > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#161185): https://lists.openembedded.org/g/openembedded-core/message/161185 Mute This Topic: https://lists.openembedded.org/mt/88849297/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
