268 lines
7.3 KiB
RPMSpec
268 lines
7.3 KiB
RPMSpec
|
#
|
||
|
# spec file for package hwloc
|
||
|
#
|
||
|
# Copyright (c) 2023 SUSE LLC
|
||
|
#
|
||
|
# All modifications and additions to the file contributed by third parties
|
||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||
|
# upon. The license for this file, and modifications and additions to the
|
||
|
# file, is the same license as for the pristine package itself (unless the
|
||
|
# license for the pristine package is not an Open Source License, in which
|
||
|
# case the license is the MIT License). An "Open Source License" is a
|
||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||
|
# published by the Open Source Initiative.
|
||
|
|
||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||
|
#
|
||
|
|
||
|
|
||
|
%if 0%{?suse_version} > 1500
|
||
|
%bcond_without XNVCtrl
|
||
|
%else
|
||
|
%bcond_with XNVCtrl
|
||
|
%endif
|
||
|
%if 0%{?sle_version} < 150600
|
||
|
%bcond_with OpenCL
|
||
|
%else
|
||
|
%bcond_without OpenCL
|
||
|
%endif
|
||
|
|
||
|
%global lname libhwloc15
|
||
|
Name: hwloc
|
||
|
Version: 2.9.3
|
||
|
Release: 0
|
||
|
Summary: Portable Hardware Locality
|
||
|
License: BSD-3-Clause
|
||
|
URL: https://www.open-mpi.org/projects/hwloc/
|
||
|
Source0: https://download.open-mpi.org/release/hwloc/v2.9/hwloc-%{version}.tar.bz2
|
||
|
BuildRequires: autoconf
|
||
|
BuildRequires: automake
|
||
|
BuildRequires: doxygen
|
||
|
BuildRequires: fdupes
|
||
|
BuildRequires: gcc-c++
|
||
|
BuildRequires: libnuma-devel
|
||
|
BuildRequires: libtool
|
||
|
BuildRequires: ncurses-devel
|
||
|
BuildRequires: perl
|
||
|
BuildRequires: pkgconfig
|
||
|
BuildRequires: systemd-rpm-macros
|
||
|
BuildRequires: update-desktop-files
|
||
|
BuildRequires: pkgconfig(cairo)
|
||
|
BuildRequires: pkgconfig(libxml-2.0)
|
||
|
BuildRequires: pkgconfig(pciaccess)
|
||
|
BuildRequires: pkgconfig(x11)
|
||
|
%if %{with XNVCtrl}
|
||
|
BuildRequires: libXNVCtrl-devel
|
||
|
%endif
|
||
|
%if %{with OpenCL}
|
||
|
BuildRequires: opencl-headers
|
||
|
BuildRequires: pkgconfig(OpenCL)
|
||
|
%endif
|
||
|
Requires: %{lname} = %{version}-%{release}
|
||
|
Requires: perl-JSON
|
||
|
Requires: perl-base >= 5.18.2
|
||
|
Requires(post): desktop-file-utils
|
||
|
Requires(postun):desktop-file-utils
|
||
|
%{?systemd_ordering}
|
||
|
|
||
|
%description
|
||
|
The Portable Hardware Locality (hwloc) software package provides
|
||
|
an abstraction (across OS, versions, architectures, ...)
|
||
|
of the hierarchical topology of modern architectures, including
|
||
|
NUMA memory nodes, shared caches, processor sockets, processor cores
|
||
|
and processing units (logical processors or "threads"). It also gathers
|
||
|
various system attributes such as cache and memory information. It primarily
|
||
|
aims at helping applications with gathering information about modern
|
||
|
computing hardware so as to exploit it accordingly and efficiently.
|
||
|
|
||
|
hwloc may display the topology in multiple convenient formats.
|
||
|
It also offers a powerful programming interface (C API) to gather information
|
||
|
about the hardware, bind processes, and much more.
|
||
|
|
||
|
%package gui
|
||
|
Summary: Hwloc GUI tool
|
||
|
Requires: %{name} = %{version}
|
||
|
|
||
|
%description gui
|
||
|
Hwloc GUI visualization tool - requires X11
|
||
|
|
||
|
%package devel
|
||
|
Summary: Headers and shared development libraries for hwloc
|
||
|
Requires: %{lname} = %{version}
|
||
|
Provides: libhwloc-devel = %{version}
|
||
|
Obsoletes: libhwloc-devel < %{version}
|
||
|
Obsoletes: libhwloc-devel = 0.0.0
|
||
|
|
||
|
%description devel
|
||
|
This package contains the headers and shared object symbolic links
|
||
|
for the hwloc.
|
||
|
|
||
|
%package -n %{lname}
|
||
|
Summary: Runtime libraries for hwloc
|
||
|
Requires: %{name}-data
|
||
|
|
||
|
%description -n %{lname}
|
||
|
This package contains the run time libraries for hwloc.
|
||
|
|
||
|
%package data
|
||
|
Summary: Run time data for hwloc
|
||
|
BuildArch: noarch
|
||
|
|
||
|
%description data
|
||
|
This package contains the run time data for the hwloc.
|
||
|
|
||
|
%package doc
|
||
|
Summary: Documentation for hwloc
|
||
|
BuildArch: noarch
|
||
|
|
||
|
%description doc
|
||
|
This package contains the documentation for hwloc.
|
||
|
|
||
|
%package gl
|
||
|
Summary: OpenGL Plugin for HWLOC (NVIDIA Only)
|
||
|
Requires: hwloc
|
||
|
|
||
|
%description gl
|
||
|
Plugin for HWLOC to detect and enumerate OpenGL devices. This works only
|
||
|
for NVIDIA devices running the proprietary driver by using the NV-CONTROL
|
||
|
X Window System extension.
|
||
|
|
||
|
%package opencl
|
||
|
Summary: OpenCL Plugin for HWLOC
|
||
|
Requires: hwloc
|
||
|
|
||
|
%description opencl
|
||
|
Plugin for HWLOC to detect and enumerate OpenCL devices. It detects
|
||
|
HW accelerators from AMD and NVIDIA
|
||
|
|
||
|
%prep
|
||
|
%setup -q
|
||
|
|
||
|
%build
|
||
|
autoreconf -fvi
|
||
|
# We let the supported components autodetect and mark those as plugins
|
||
|
# which we don't want to have included statically - regardless available
|
||
|
%configure \
|
||
|
--disable-silent-rules \
|
||
|
--enable-plugins=opencl,gl,cuda,levelzero,nvml,rsmi \
|
||
|
--with-hwloc-plugins-path=%{_libdir}/hwloc
|
||
|
%make_build
|
||
|
|
||
|
%install
|
||
|
%make_install
|
||
|
%suse_update_desktop_file -r lstopo System Monitor
|
||
|
# We don't ship .la files.
|
||
|
rm -rf %{buildroot}%{_libdir}/libhwloc.la
|
||
|
|
||
|
# documentation will be handled by % doc macro
|
||
|
rm -rf %{buildroot}%{_datadir}/doc/
|
||
|
# remove .la files for plugins
|
||
|
rm -f %{buildroot}/%{_libdir}/hwloc/*.la
|
||
|
|
||
|
# This binary is built only for intel architectures
|
||
|
%ifarch %{ix86} x86_64
|
||
|
install -D -m 644 %{buildroot}%{_datadir}/hwloc/hwloc-dump-hwdata.service %{buildroot}%{_unitdir}/hwloc-dump-hwdata.service
|
||
|
%endif
|
||
|
rm %{buildroot}%{_datadir}/hwloc/hwloc-dump-hwdata.service
|
||
|
|
||
|
#remove headers for features we don't ship
|
||
|
rm %{buildroot}%{_includedir}/hwloc/rsmi.h
|
||
|
rm %{buildroot}%{_includedir}/hwloc/nvml.h
|
||
|
rm %{buildroot}%{_includedir}/hwloc/levelzero.h
|
||
|
rm %{buildroot}%{_includedir}/hwloc/cuda.h
|
||
|
rm %{buildroot}%{_includedir}/hwloc/cudart.h
|
||
|
%{!?with_XNVCtrl:rm %{buildroot}%{_includedir}/hwloc/gl.h}
|
||
|
%{!?with_OpenCL:rm %{buildroot}%{_includedir}/hwloc/opencl.h}
|
||
|
|
||
|
%fdupes -s %{buildroot}/%{_mandir}/man1
|
||
|
%fdupes -s %{buildroot}/%{_mandir}/man3
|
||
|
%fdupes -s %{buildroot}/%{_mandir}/man7
|
||
|
|
||
|
%check
|
||
|
#XXX: this is weird, but make check got broken by removing doxygen-doc/man above
|
||
|
# the only one fix is to install documentation by hand, or to ignore check error
|
||
|
%make_build check || :
|
||
|
|
||
|
%post -n %{lname} -p /sbin/ldconfig
|
||
|
%postun -n %{lname} -p /sbin/ldconfig
|
||
|
|
||
|
%ifarch %{ix86} x86_64
|
||
|
%pre
|
||
|
%service_add_pre hwloc-dump-hwdata.service
|
||
|
%endif
|
||
|
|
||
|
%post
|
||
|
%ifarch %{ix86} x86_64
|
||
|
%service_add_post hwloc-dump-hwdata.service
|
||
|
%endif
|
||
|
%desktop_database_post
|
||
|
|
||
|
%ifarch %{ix86} x86_64
|
||
|
%preun
|
||
|
%service_del_preun hwloc-dump-hwdata.service
|
||
|
%endif
|
||
|
|
||
|
%postun
|
||
|
%ifarch %{ix86} x86_64
|
||
|
%service_del_postun hwloc-dump-hwdata.service
|
||
|
%endif
|
||
|
%desktop_database_postun
|
||
|
|
||
|
%files
|
||
|
%license COPYING
|
||
|
%doc NEWS README VERSION
|
||
|
%if %{with OpenCL} || %{with XNVCtrl}
|
||
|
%dir %{_libdir}/hwloc
|
||
|
%endif
|
||
|
%{_mandir}/man7/hwloc*
|
||
|
%{_mandir}/man1/hwloc*
|
||
|
%{_mandir}/man1/lstopo-no-graphics*
|
||
|
%{_bindir}/hwloc*
|
||
|
%{_bindir}/lstopo-no-graphics
|
||
|
%{_datadir}/applications/*.desktop
|
||
|
%{_datadir}/bash-completion/completions/%{name}
|
||
|
%ifarch %{ix86} x86_64
|
||
|
%attr(0755,root,root) %{_sbindir}/hwloc-dump-hwdata
|
||
|
%{_unitdir}/hwloc-dump-hwdata.service
|
||
|
%endif
|
||
|
|
||
|
%files gui
|
||
|
%{_bindir}/lstopo
|
||
|
%{_mandir}/man1/lstopo.*
|
||
|
|
||
|
%files devel
|
||
|
%exclude %{_includedir}/hwloc/opencl.h
|
||
|
%exclude %{_includedir}/hwloc/gl.h
|
||
|
%{_includedir}/hwloc
|
||
|
%{_includedir}/hwloc.h
|
||
|
%{_libdir}/libhwloc.so
|
||
|
%{_libdir}/pkgconfig/hwloc.pc
|
||
|
|
||
|
%files -n %{lname}
|
||
|
%{_libdir}/libhwloc*so.*
|
||
|
|
||
|
%files data
|
||
|
%dir %{_datadir}/hwloc
|
||
|
%dir %{_datadir}/hwloc/hwloc-ps.www
|
||
|
%{_datadir}/hwloc/hwloc.dtd
|
||
|
%{_datadir}/hwloc/hwloc2-diff.dtd
|
||
|
%{_datadir}/hwloc/hwloc2.dtd
|
||
|
%{_datadir}/hwloc/hwloc-valgrind.supp
|
||
|
%{_datadir}/hwloc/hwloc-ps.www/*
|
||
|
|
||
|
%if %{with OpenCL}
|
||
|
%files opencl
|
||
|
%{_libdir}/hwloc/hwloc_opencl.so
|
||
|
%endif
|
||
|
|
||
|
%if %{with XNVCtrl}
|
||
|
%files gl
|
||
|
%{_libdir}/hwloc/hwloc_gl.so
|
||
|
%endif
|
||
|
|
||
|
%files doc
|
||
|
%doc ./doc/doxygen-doc/html/*
|
||
|
%{_mandir}/man3/*
|
||
|
|
||
|
%changelog
|