From fc709be54fee06801446774ff1a434294c2eda9b Mon Sep 17 00:00:00 2001 From: André Draszik Date: Tue, 5 Feb 2019 02:32:34 +0000 Subject: util-linux: one package per binary (pt 1b: symlinks) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Some of the binaries have symlinks. Add them to the package owning the binary they are pointing to. Signed-off-by: André Draszik Signed-off-by: Richard Purdie --- meta/recipes-core/util-linux/util-linux.inc | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/meta/recipes-core/util-linux/util-linux.inc b/meta/recipes-core/util-linux/util-linux.inc index a81045251b..a250db94aa 100644 --- a/meta/recipes-core/util-linux/util-linux.inc +++ b/meta/recipes-core/util-linux/util-linux.inc @@ -52,6 +52,28 @@ python util_linux_binpackages () { file_regex=r'(.*)', output_pattern='${PN}-%s', description='${PN} %s', hook=pkg_hook, extra_depends='', prepend=True) + + # There are some symlinks for some binaries which we have ignored + # above. Add them to the package owning the binary they are + # pointing to + extras = {} + dvar = d.getVar('PKGD') + for root in [ '${base_sbindir}' ]: + root = d.expand(root) + for walkroot, dirs, files in os.walk(dvar + root): + for f in files: + file = os.path.join(walkroot, f) + if not os.path.islink(file): + continue + + pkg = os.path.basename(os.readlink(file)) + extras[pkg] = extras.get(pkg, '') + ' ' + file.replace(dvar, '', 1) + + pn = d.getVar('PN') + for pkg, links in extras.items(): + of = d.getVar('FILES_' + pn + '-' + pkg) + links = of + links + d.setVar('FILES_' + pn + '-' + pkg, links) } # we must execute before update-alternatives PACKAGE_PREPROCESS_FUNCS -- cgit 1.2.3-korg