From 12ecc6f765d822810723391d1c3b26750b01de99 Mon Sep 17 00:00:00 2001 From: Matthew Yeazel Date: Fri, 19 Sep 2025 23:22:25 +0000 Subject: [PATCH] packages/hwloc: add hwloc hwloc is needed both as a binary dependency like hwloc-ls but also can be used as a build dependency so this package vends a devel both a tools package and a development package. Signed-off-by: Matthew Yeazel --- Cargo.lock | 9 +++ Cargo.toml | 1 + kits/bottlerocket-core-kit/Cargo.toml | 1 + packages/hwloc/Cargo.toml | 20 +++++++ packages/hwloc/hwloc.spec | 83 +++++++++++++++++++++++++++ 5 files changed, 114 insertions(+) create mode 100644 packages/hwloc/Cargo.toml create mode 100644 packages/hwloc/hwloc.spec diff --git a/Cargo.lock b/Cargo.lock index 330a7c673..0af79f71a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -102,6 +102,7 @@ dependencies = [ "glibc", "grep", "host-ctr", + "hwloc", "iproute", "iptables", "iputils", @@ -408,6 +409,14 @@ dependencies = [ "glibc", ] +[[package]] +name = "hwloc" +version = "0.1.0" +dependencies = [ + "glibc", + "systemd-252", +] + [[package]] name = "iproute" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 293f38002..580d22700 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,6 +42,7 @@ members = [ "packages/host-ctr", "packages/iproute", "packages/iptables", + "packages/hwloc", "packages/iputils", "packages/kexec-tools", "packages/keyutils", diff --git a/kits/bottlerocket-core-kit/Cargo.toml b/kits/bottlerocket-core-kit/Cargo.toml index 949bc3d81..7c1f5b21b 100644 --- a/kits/bottlerocket-core-kit/Cargo.toml +++ b/kits/bottlerocket-core-kit/Cargo.toml @@ -49,6 +49,7 @@ findutils = { path = "../../packages/findutils" } glibc = { path = "../../packages/glibc" } grep = { path = "../../packages/grep" } host-ctr = { path = "../../packages/host-ctr" } +hwloc = { path = "../../packages/hwloc" } iproute = { path = "../../packages/iproute" } iptables = { path = "../../packages/iptables" } iputils = { path = "../../packages/iputils" } diff --git a/packages/hwloc/Cargo.toml b/packages/hwloc/Cargo.toml new file mode 100644 index 000000000..27e4b2caa --- /dev/null +++ b/packages/hwloc/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "hwloc" +version = "0.1.0" +edition = "2021" +publish = false +build = "../build.rs" + +[lib] +path = "../packages.rs" + +[package.metadata.build-package] +releases-url = "https://www.open-mpi.org/software/ompi/v5.0/" + +[[package.metadata.build-package.external-files]] +url = "https://download.open-mpi.org/release/hwloc/v2.12/hwloc-2.12.2.tar.bz2" +sha512 = "949d6c9d7b858ee58e477b15e6c06f57812872142fa1c7f3ef20aae2e4ef954135f839e8604404bfd0637fde99729c7d00211c8aee860dfde9ac60bba0e78aef" + +[build-dependencies] +glibc = { path = "../glibc" } +systemd-252 = { path = "../systemd-252" } diff --git a/packages/hwloc/hwloc.spec b/packages/hwloc/hwloc.spec new file mode 100644 index 000000000..700ca4fc6 --- /dev/null +++ b/packages/hwloc/hwloc.spec @@ -0,0 +1,83 @@ +Name: %{_cross_os}hwloc +Version: 2.12.2 +Release: 1%{?dist} +Summary: Portable hardware locality library +URL: https://www.open-mpi.org/projects/hwloc/ +License: BSD-3-Clause +Source0: https://download.open-mpi.org/release/hwloc/v2.12/hwloc-%{version}.tar.bz2 + +BuildRequires: %{_cross_os}glibc-devel +BuildRequires: %{_cross_os}systemd-devel + +%description +%{summary}. + +%package tools +Summary: Command line tools for the hwloc library +Requires: %{name} + +%description tools +%{summary}. + +%package devel +Summary: hwloc development libraries and headers +Requires: %{name} +Requires: %{_cross_os}systemd-devel + +%description devel +%{summary}. + +%prep +%autosetup -n hwloc-%{version} -p1 + +%build +%cross_configure \ + --disable-cairo \ + --disable-gl \ + --disable-libxml2 \ + --disable-opencl \ + --disable-pci \ + --disable-plugins \ + --exec-prefix=%{_cross_prefix} \ + --program-prefix="" + +%force_disable_rpath + +%make_build + +%install +%make_install + +%files +%license COPYING +%{_cross_attribution_file} +%{_cross_libdir}/libhwloc.so +%{_cross_libdir}/libhwloc.so.* +%exclude %{_cross_bindir}/lstopo +%exclude %{_cross_bindir}/hwloc-compress-dir +%exclude %{_cross_bindir}/hwloc-gather-topology +%exclude %{_cross_datadir} +%exclude %{_cross_mandir} + +%files tools +%{_cross_bindir}/hwloc-annotate +%{_cross_bindir}/hwloc-ls +%{_cross_bindir}/hwloc-ps +%{_cross_bindir}/hwloc-bind +%{_cross_bindir}/hwloc-calc +%{_cross_bindir}/hwloc-diff +%{_cross_bindir}/hwloc-distrib +%{_cross_bindir}/hwloc-info +%{_cross_bindir}/hwloc-patch +%{_cross_bindir}/lstopo-no-graphics +# These are not on aarch64 +%if "%{_cross_arch}" == "x86_64" +%{_cross_sbindir}/hwloc-dump-hwdata +%{_cross_bindir}/hwloc-gather-cpuid +%endif + +%files devel +%{_cross_includedir}/hwloc.h +%{_cross_includedir}/hwloc/*.h +%{_cross_includedir}/hwloc/autogen/*.h +%{_cross_pkgconfigdir}/*.pc