From patchwork Wed Jan 30 14:01:04 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [11/17] package.bbclass: Split out package_fixsymlinks function Date: Wed, 30 Jan 2013 14:01:04 -0000 From: Richard Purdie X-Patchwork-Id: 43711 Message-Id: <61320cb73d2e573199e129ff355494f9ef47a6c2.1359554291.git.richard.purdie@linuxfoundation.org> To: openembedded-core@lists.openembedded.org The symlink handling code doesn't need to being part of populate_packages and is logically separate so split it out into a separate function, package_fixsymlinks. Signed-off-by: Richard Purdie --- meta/classes/package.bbclass | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 858afbd..8bf80f5 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -919,7 +919,7 @@ python split_and_strip_files () { } python populate_packages () { - import glob, stat, errno, re, subprocess + import glob, re, subprocess workdir = d.getVar('WORKDIR', True) outdir = d.getVar('DEPLOY_DIR', True) @@ -1037,10 +1037,17 @@ python populate_packages () { package_qa_handle_error("installed_vs_shipped", msg, d) bb.build.exec_func("package_name_hook", d) +} +populate_packages[dirs] = "${D}" + +python package_fixsymlinks () { + import errno + pkgdest = d.getVar('PKGDEST', True) + packages = d.getVar("PACKAGES").split() dangling_links = {} pkg_files = {} - for pkg in package_list: + for pkg in packages: dangling_links[pkg] = [] pkg_files[pkg] = [] inst_root = os.path.join(pkgdest, pkg) @@ -1059,13 +1066,13 @@ python populate_packages () { target = os.path.join(root[len(inst_root):], target) dangling_links[pkg].append(os.path.normpath(target)) - for pkg in package_list: + for pkg in packages: rdepends = bb.utils.explode_dep_versions2(d.getVar('RDEPENDS_' + pkg, True) or d.getVar('RDEPENDS', True) or "") for l in dangling_links[pkg]: found = False bb.debug(1, "%s contains dangling link %s" % (pkg, l)) - for p in package_list: + for p in packages: for f in pkg_files[p]: if f == l: found = True @@ -1079,7 +1086,6 @@ python populate_packages () { bb.note("%s contains dangling symlink to %s" % (pkg, l)) d.setVar('RDEPENDS_' + pkg, bb.utils.join_deps(rdepends, commasep=False)) } -populate_packages[dirs] = "${D}" PKGDESTWORK = "${WORKDIR}/pkgdata" @@ -1842,6 +1848,7 @@ PACKAGEFUNCS ?= "package_get_auto_pr \ split_and_strip_files \ fixup_perms \ populate_packages \ + package_fixsymlinks \ package_do_filedeps \ package_do_shlibs \ package_do_pkgconfig \