4af47c4
Summary:   Portable Hardware Locality - portable abstraction of hierarchical architectures
4af47c4
Name:      hwloc
Jirka Hladky c494232
Version:   2.10.0
8ba67a5
Release:   %autorelease
ce146c9
License:   BSD-2-Clause
4af47c4
URL:       http://www.open-mpi.org/projects/hwloc/
Jirka Hladky c494232
Source0:   https://download.open-mpi.org/release/hwloc/v2.10/hwloc-%{version}.tar.bz2
Jirka Hladky c459d08
Requires:  %{name}-libs%{?_isa} = %{version}-%{release}
9ef68ea
51d9297
BuildRequires: gcc
51d9297
# C++ only for hwloc-hello-cpp test:
51d9297
BuildRequires: gcc-c++
9ef68ea
BuildRequires: cairo-devel
9ef68ea
BuildRequires: libpciaccess-devel
9ef68ea
BuildRequires: libX11-devel
9ef68ea
BuildRequires: libxml2-devel
baecc1f
BuildRequires: lynx
9ef68ea
BuildRequires: ncurses-devel
ded781d
%ifarch x86_64
fe59e73
BuildRequires: oneapi-level-zero-devel
ded781d
%endif
fe59e73
BuildRequireS: opencl-headers
fe59e73
BuildRequireS: ocl-icd-devel
Orion Poplawski f83a4a6
BuildRequires: desktop-file-utils
7510ad4
BuildRequires: numactl-devel
477b741
BuildRequires: rdma-core-devel
fe59e73
BuildRequires: systemd-devel
69ea06f
%ifarch %{ix86} x86_64
69ea06f
%{?systemd_requires}
69ea06f
BuildRequires: systemd
69ea06f
%endif
58c9217
BuildRequires: make
4af47c4
4af47c4
%description
Jirka Hladky 3574038
The Portable Hardware Locality (hwloc) software package provides
Jirka Hladky 3574038
a portable abstraction (across OS, versions, architectures, ...)
Jirka Hladky 3574038
of the hierarchical topology of modern architectures, including
4af47c4
NUMA memory nodes,  shared caches, processor sockets, processor cores
4af47c4
and processing units (logical processors or "threads"). It also gathers
4af47c4
various system attributes such as cache and memory information. It primarily
4af47c4
aims at helping applications with gathering information about modern
4af47c4
computing hardware so as to exploit it accordingly and efficiently.
4af47c4
Jirka Hladky 3574038
hwloc may display the topology in multiple convenient formats.
Jirka Hladky 3574038
It also offers a powerful programming interface (C API) to gather information
4af47c4
about the hardware, bind processes, and much more.
4af47c4
4af47c4
%package devel
4af47c4
Summary:   Headers and shared development libraries for hwloc
Jirka Hladky c459d08
Requires:  %{name}-libs%{?_isa} = %{version}-%{release}
33ea88b
%ifnarch %{arm}
477b741
Requires:  rdma-core-devel%{?_isa}
33ea88b
%endif
4af47c4
4af47c4
%description devel
4af47c4
Headers and shared object symbolic links for the hwloc.
4af47c4
58c94c3
%package libs
58c94c3
Summary:   Run time libraries for the hwloc
58c94c3
58c94c3
%description libs
58c94c3
Run time libraries for the hwloc
58c94c3
Jirka Hladky c459d08
%package gui
Jirka Hladky c459d08
Summary:   The gui-based hwloc program(s)
Jirka Hladky c459d08
Requires:  %{name}-libs%{?_isa} = %{version}-%{release}
Jirka Hladky c459d08
Jirka Hladky c459d08
%description gui
Jirka Hladky c459d08
GUI-based tool for displaying system topology information.
Jirka Hladky c459d08
root fffbe14
%package plugins
root fffbe14
Summary:   Plugins for hwloc
root fffbe14
Requires:  %{name}-plugins%{?_isa} = %{version}-%{release}
root fffbe14
root fffbe14
%description plugins
root fffbe14
 This package contains plugins for hwloc. This includes
root fffbe14
  - PCI support
root fffbe14
  - GL support
root fffbe14
  - libxml support
root fffbe14
4af47c4
%prep
f8226c3
%autosetup -p1
255b133
4af47c4
%build
cdbddf0
%configure --enable-plugins --disable-silent-rules --runstatedir=/run
f02aa0b
# Remove rpaths
f02aa0b
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
f02aa0b
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
cdbddf0
%make_build
4af47c4
4af47c4
%install
cdbddf0
%make_install
4af47c4
4af47c4
# We don't ship .la files.
9ef68ea
find %{buildroot} -name '*.la' -exec rm -f {} ';'
6f00649
ea42055
cp -p AUTHORS COPYING NEWS README VERSION %{buildroot}%{_pkgdocdir}
ea42055
cp -pr doc/examples %{buildroot}%{_pkgdocdir}
Jirka Hladky 6b260dd
# Fix for BZ1253977
ea42055
mv  %{buildroot}%{_pkgdocdir}/examples/Makefile  %{buildroot}%{_pkgdocdir}/examples/Makefile_%{_arch}
root 4da7dee
Orion Poplawski f83a4a6
desktop-file-validate %{buildroot}/%{_datadir}/applications/lstopo.desktop
root 4da7dee
Orion Poplawski 9332342
# Avoid making hwloc-gui depend on hwloc
Orion Poplawski 9332342
rm %{buildroot}%{_mandir}/man1/lstopo.1
Orion Poplawski 9332342
ln %{buildroot}%{_mandir}/man1/lstopo-no-graphics.1 %{buildroot}%{_mandir}/man1/lstopo.1
root 4da7dee
Orion Poplawski 37b7f9c
# Deal with service file
Orion Poplawski 37b7f9c
# https://github.com/open-mpi/hwloc/issues/221
69ea06f
%ifarch %{ix86} x86_64
69ea06f
mkdir -p %{buildroot}%{_unitdir}
69ea06f
mv %{buildroot}%{_datadir}/%{name}/hwloc-dump-hwdata.service %{buildroot}%{_unitdir}/
69ea06f
%else
Orion Poplawski 37b7f9c
rm %{buildroot}%{_datadir}/%{name}/hwloc-dump-hwdata.service
69ea06f
%endif
Orion Poplawski 37b7f9c
4af47c4
%check
5f9506d
LD_LIBRARY_PATH=$PWD/hwloc/.libs make check
4af47c4
69ea06f
%ifarch %{ix86} x86_64
69ea06f
%post
69ea06f
%systemd_post hwloc-dump-hwdata.service
69ea06f
69ea06f
%preun
69ea06f
%systemd_preun hwloc-dump-hwdata.service
69ea06f
69ea06f
%postun
69ea06f
%systemd_postun_with_restart hwloc-dump-hwdata.service
69ea06f
%endif
69ea06f
4af47c4
%files
Jirka Hladky d0a471e
%{_datadir}/bash-completion/completions/*
4af47c4
%{_bindir}/%{name}*
5f0f507
%{_bindir}/lstopo-no-graphics
bbbf4e8
%{_datadir}/hwloc/hwloc-ps.www/
4af47c4
%{_mandir}/man1/%{name}*
Jirka Hladky c459d08
%{_mandir}/man1/lstopo-no-graphics*
Orion Poplawski add6a99
%ifarch %{ix86} x86_64
Orion Poplawski 37b7f9c
%{_sbindir}/hwloc-dump-hwdata
69ea06f
%{_unitdir}/hwloc-dump-hwdata.service
Orion Poplawski add6a99
%endif
4af47c4
4af47c4
%files devel
4af47c4
%{_libdir}/pkgconfig/*
4af47c4
%{_mandir}/man3/*
4af47c4
%dir %{_includedir}/%{name}
4af47c4
%{_includedir}/%{name}/*
4af47c4
%{_includedir}/%{name}.h
ea42055
%{_pkgdocdir}/examples
14f0f68
%{_libdir}/*.so
Jirka Hladky 6b260dd
Jirka Hladky 6b260dd
%files libs
58c94c3
%{_mandir}/man7/%{name}*
58c94c3
%dir %{_datadir}/%{name}
5f9506d
%{_datadir}/hwloc/hwloc.dtd
5f9506d
%{_datadir}/hwloc/hwloc-valgrind.supp
5f9506d
%{_datadir}/hwloc/hwloc2.dtd
5f9506d
%{_datadir}/hwloc/hwloc2-diff.dtd
ea42055
%dir %{_pkgdocdir}/
ea42055
%{_pkgdocdir}/*[^c]
5f9506d
%{_libdir}/libhwloc*so.15*
58c94c3
Jirka Hladky c459d08
%files gui
Jirka Hladky c459d08
%{_bindir}/lstopo
root 4da7dee
%{_mandir}/man1/lstopo.1*
Orion Poplawski f83a4a6
%{_datadir}/applications/lstopo.desktop
Jirka Hladky c459d08
root fffbe14
%files plugins
69ea06f
%dir %{_libdir}/%{name}
69ea06f
%{_libdir}/%{name}/hwloc*
4af47c4
4af47c4
%changelog
8ba67a5
%autochangelog