Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 0/3] Split split_and_strip_files()
@ 2022-02-02  1:59 Peter Kjellerstedt
  2022-02-02  1:59 ` [PATCH 1/3] package.bbclass: Split out package_debug_vars from split_and_strip_files Peter Kjellerstedt
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Peter Kjellerstedt @ 2022-02-02  1:59 UTC (permalink / raw)
  To: openembedded-core

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(-)



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2022-02-03 21:32 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-02  1:59 [PATCH 0/3] Split split_and_strip_files() Peter Kjellerstedt
2022-02-02  1:59 ` [PATCH 1/3] package.bbclass: Split out package_debug_vars from split_and_strip_files Peter Kjellerstedt
2022-02-02  1:59 ` [PATCH 2/3] package.bbclass: Make package_debug_vars() return a dict Peter Kjellerstedt
2022-02-02  1:59 ` [PATCH 3/3] package.bbclass: Pass dv (debug_vars) around instead of individual vars Peter Kjellerstedt
2022-02-02  8:53 ` [OE-core] [PATCH 0/3] Split split_and_strip_files() Alexander Kanavin
2022-02-02 11:20   ` Peter Kjellerstedt
2022-02-02 11:33     ` Alexander Kanavin
2022-02-02 11:51       ` Peter Kjellerstedt
2022-02-03 21:32 ` Richard Purdie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox