From: André Draszik Date: Tue, 5 Feb 2019 02:32:34 +0000 (+0000) Subject: util-linux: one package per binary (pt 1b: symlinks) X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~15420 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fc709be54fee06801446774ff1a434294c2eda9b;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git util-linux: one package per binary (pt 1b: symlinks) 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 --- diff --git a/meta/recipes-core/util-linux/util-linux.inc b/meta/recipes-core/util-linux/util-linux.inc index a81045251b8..a250db94aab 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