[oe] [PATCH] hwloc: Add

Haris Okanovic haris.okanovic at ni.com
Tue Dec 27 19:00:05 UTC 2016


Thanks for looking over the patch. I'll post a V2 shortly to address 
these issues.

On 12/25/2016 05:55 PM, Martin Jansa wrote:
> Missing dependencies and PACKAGES_prepend breaks hwloc-dbg, because of missing space at the end of the prepended value.
>
>
>
> hwloc-1.11.5: hwloc: Files/directories were installed but not shipped in any package:
>   /usr/src
>   /usr/src/debug
>   /usr/src/debug/hwloc
>   /usr/src/debug/hwloc/1.11.5-r0
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5
>   /usr/src/debug/hwloc/1.11.5-r0/build
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/include
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/lstopo
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/hwloc
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/lstopo/lstopo.h
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/lstopo/lstopo.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/lstopo/lstopo-xml.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/lstopo/lstopo-text.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/lstopo/lstopo-fig.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/lstopo/lstopo-draw.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/lstopo/lstopo-color.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/lstopo/lstopo-cairo.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/lstopo/lstopo-ascii.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/hwloc/misc.h
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/hwloc/hwloc-ps.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/hwloc/hwloc-patch.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/hwloc/hwloc-info.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/hwloc/hwloc-dump-hwdata.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/hwloc/hwloc-dump-hwdata-knl.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/hwloc/hwloc-distrib.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/hwloc/hwloc-distances.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/hwloc/hwloc-diff.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/hwloc/hwloc-calc.h
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/hwloc/hwloc-calc.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/hwloc/hwloc-bind.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/hwloc/hwloc-assembler.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/utils/hwloc/hwloc-annotate.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/traversal.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/topology.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/topology-xml.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/topology-xml-nolibxml.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/topology-xml-libxml.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/topology-x86.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/topology-synthetic.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/topology-pci.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/topology-noos.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/topology-linux.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/topology-hardwired.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/topology-custom.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/pci-common.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/misc.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/distances.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/diff.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/components.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/bitmap.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/bind.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/src/base64.c
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/include/hwloc.h
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/include/private
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/include/hwloc
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/include/private/xml.h
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/include/private/private.h
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/include/private/misc.h
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/include/private/debug.h
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/include/private/cpuid-x86.h
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/include/private/components.h
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/include/hwloc/plugins.h
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/include/hwloc/linux.h
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/include/hwloc/inlines.h
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/include/hwloc/helper.h
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/include/hwloc/diff.h
>   /usr/src/debug/hwloc/1.11.5-r0/hwloc-1.11.5/include/hwloc/bitmap.h
>   /usr/src/debug/hwloc/1.11.5-r0/build/src
>   /usr/src/debug/hwloc/1.11.5-r0/build/include
>   /usr/src/debug/hwloc/1.11.5-r0/build/src/static-components.h
>   /usr/src/debug/hwloc/1.11.5-r0/build/include/hwloc
>   /usr/src/debug/hwloc/1.11.5-r0/build/include/hwloc/autogen
>   /usr/src/debug/hwloc/1.11.5-r0/build/include/hwloc/autogen/config.h
> Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
> hwloc: 75 installed and not shipped files. [installed-vs-shipped]
> hwloc-1.11.5: hwloc rdepends on numactl, but it isn't a build dependency, missing numactl in DEPENDS or PACKAGECONFIG? [build-deps]
> hwloc-1.11.5: hwloc rdepends on cairo, but it isn't a build dependency, missing cairo in DEPENDS or PACKAGECONFIG? [build-deps]
> hwloc-1.11.5: hwloc rdepends on libpciaccess, but it isn't a build dependency, missing libpciaccess in DEPENDS or PACKAGECONFIG? [build-deps]
> hwloc-1.11.5: hwloc rdepends on libx11, but it isn't a build dependency, missing libx11 in DEPENDS or PACKAGECONFIG? [build-deps]
> hwloc-1.11.5: hwloc rdepends on libcap, but it isn't a build dependency, missing libcap in DEPENDS or PACKAGECONFIG? [build-deps]
> hwloc-1.11.5: hwloc rdepends on zlib, but it isn't a build dependency, missing zlib in DEPENDS or PACKAGECONFIG? [build-deps]
> hwloc-1.11.5: hwloc rdepends on ncurses-libtinfo, but it isn't a build dependency, missing ncurses in DEPENDS or PACKAGECONFIG? [build-deps]
> hwloc-1.11.5: hwloc rdepends on libxml2, but it isn't a build dependency, missing libxml2 in DEPENDS or PACKAGECONFIG? [build-deps]
> hwloc-1.11.5: hwloc rdepends on libudev, but it isn't a build dependency, missing systemd in DEPENDS or PACKAGECONFIG? [build-deps]
>

I'm not really sure what happened here. `bitbake -e` shows a properly 
delimited PACKAGES when I build:

PACKAGES="libhwloc hwloc-dbg hwloc-staticdev [...]"

However, my distro has some core patches which might affect this 
particular variable. I'll pad with spaces as you suggested.

>
> On Thu, Dec 22, 2016 at 11:56 PM, Khem Raj <raj.khem at gmail.com
> <mailto:raj.khem at gmail.com>> wrote:
>
>     On Thu, Dec 22, 2016 at 2:35 PM, Christopher Larson
>     <clarson at kergoth.com <mailto:clarson at kergoth.com>> wrote:
>     > On Thu, Dec 22, 2016 at 2:34 PM, Martin Jansa
>     <martin.jansa at gmail.com <mailto:martin.jansa at gmail.com>>
>     > wrote:
>     >
>     >> SUMMARY is for short summary, put long one into DESCRIPTION and
>     create
>     >> short one for SUMMARY.
>     >>
>     >> Also missing sha265sum, so I doubt it was tested properly.

Andre pointed out that "a single hash doesn't generate a warning" in a 
separate thread. However, I added a sha256sum anyway since it seems 
pretty common.

>     >>
>     >> On Thu, Dec 22, 2016 at 9:02 PM, Haris Okanovic
>     <haris.okanovic at ni.com <mailto:haris.okanovic at ni.com>>
>     >> wrote:
>     >>
>     >> > https://www.open-mpi.org/projects/hwloc/
>     <https://www.open-mpi.org/projects/hwloc/>
>     >> >
>     >> > "The Portable Hardware Locality (hwloc) software package provides a
>     >> > portable abstraction (across OS, versions, architectures, ...)
>     of the
>     >> > hierarchical topology of modern architectures, including NUMA
>     memory
>     >> > nodes, sockets, shared caches, cores and simultaneous
>     multithreading.
>     >> > It also gathers various system attributes such as cache and memory
>     >> > information as well as the locality of I/O devices such as network
>     >> > interfaces, InfiniBand HCAs or GPUs."
>     >> >
>     >> > This recipe adds libhwloc and lstopo utility as two packages.
>     >> >
>     >> > Testing: Built in OE/Krogoth. Installed to x86_64 machine.
>     Successfully
>     >> > ran `lstopo` and verified it printed correct CPU and cache info.
>     >> >
>     >> > Signed-off-by: Haris Okanovic <haris.okanovic at ni.com
>     <mailto:haris.okanovic at ni.com>>
>     >> > ---
>     >> >  meta-oe/recipes-extended/hwloc/hwloc_1.11.5.bb
>     <http://hwloc_1.11.5.bb> | 25
>     >> > +++++++++++++++++++++++++
>     >> >  1 file changed, 25 insertions(+)
>     >> >  create mode 100644
>     meta-oe/recipes-extended/hwloc/hwloc_1.11.5.bb <http://hwloc_1.11.5.bb>
>     >> >
>     >> > diff --git a/meta-oe/recipes-extended/hwloc/hwloc_1.11.5.bb
>     <http://hwloc_1.11.5.bb>
>     >> > b/meta-oe/recipes-extended/hwloc/hwloc_1.11.5.bb
>     <http://hwloc_1.11.5.bb>
>     >> > new file mode 100644
>     >> > index 0000000..3a88f5b
>     >> > --- /dev/null
>     >> > +++ b/meta-oe/recipes-extended/hwloc/hwloc_1.11.5.bb
>     <http://hwloc_1.11.5.bb>
>     >> > @@ -0,0 +1,25 @@
>     >> > +SUMMARY = "The Portable Hardware Locality (hwloc) software
>     package \
>     >> > + provides a portable abstraction of the hierarchical topology
>     of modern
>     >> \
>     >> > + architectures."
>     >> > +HOMEPAGE = "https://www.open-mpi.org/software/hwloc/
>     <https://www.open-mpi.org/software/hwloc/>"
>     >> > +SECTION = "base"
>     >> > +LICENSE = "BSD"
>     >> > +LIC_FILES_CHKSUM =
>     "file://COPYING;md5=3282e20dc3cec311deda3c6d4b1f99
>     >> 0b"
>     >> > +
>     >> > +SRC_URI = "https://www.open-mpi.org/software/${PN}/v1.11/
>     <https://www.open-mpi.org/software/${PN}/v1.11/>
>     >> > downloads/${BP}.tar.bz2"
>     >> > +SRC_URI[md5sum] = "96c34136ff416d2b13a7821c27477bed"
>     >> > +
>     >> > +inherit autotools
>     >> > +
>     >> > +# Split hwloc library into separate subpackage
>     >> > +PACKAGES_prepend = "lib${PN}"
>     >> > +FILES_lib${PN} += "${libdir}/lib${PN}.so*"
>     >> > +${PN}_RDEPENDS += "lib${PN}"
>     >> > +
>     >> > +do_install_append() {
>     >> > +    # Let ldconfig do it's thing, no need for these symlinks
>     >> > +    test -L "${D}${libdir}/lib${PN}.so.5"
>     >> > +    test -L "${D}${libdir}/lib${PN}.so"
>     >> > +    rm "${D}${libdir}/lib${PN}.so.5"
>     >> > +    rm "${D}${libdir}/lib${PN}.so"
>     >>
>     >
>     > This link manipulation is also inconsistent with every other
>     recipe. It’s
>     > not appropriate. If your distro wants to rely on ldconfig to
>     handle the
>     > links, then your distro could do this for all recipes rather than
>     just one.
>     > This isn’t how things are done in our existing recipes.
>
>     There is global knob USE_LDCONFIG, perhaps thats what could be used
>     but generally I agree with Chris here.
>

That's fine, I can remove this. I really did it to avoid a dev-so QA 
warning, which isn't very amenable to lib* package names. It trips on 
symlink in any non *-dev or *-dbg package name. Added INSANE_SKIP instead.

Perhaps we should loosen dev-so to permit symlinks in lib*'s as well, if 
it's common practice to package soname symlinks in OE. Thoughts?

>     > --
>     > Christopher Larson
>     > clarson at kergoth dot com
>     > Founder - BitBake, OpenEmbedded, OpenZaurus
>     > Maintainer - Tslib
>     > Senior Software Engineer, Mentor Graphics
>     > --
>     > _______________________________________________
>     > Openembedded-devel mailing list
>     > Openembedded-devel at lists.openembedded.org
>     <mailto:Openembedded-devel at lists.openembedded.org>
>     > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>     <http://lists.openembedded.org/mailman/listinfo/openembedded-devel>
>     --
>     _______________________________________________
>     Openembedded-devel mailing list
>     Openembedded-devel at lists.openembedded.org
>     <mailto:Openembedded-devel at lists.openembedded.org>
>     http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>     <http://lists.openembedded.org/mailman/listinfo/openembedded-devel>
>
>

Thanks,
Haris



More information about the Openembedded-devel mailing list