Accepting request 369651 from home:tsaupe:branches:devel:libraries:c_c++

Update hwloc to support memory side cache (fate#319511)

OBS-URL: https://build.opensuse.org/request/show/369651
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/hwloc?expand=0&rev=19
This commit is contained in:
Michal Vyskocil 2016-03-10 16:18:00 +00:00 committed by Git OBS Bridge
parent 9c6700be5c
commit b127f8d58b
6 changed files with 257 additions and 35 deletions

16
_service Normal file
View File

@ -0,0 +1,16 @@
<services>
<service name="tar_scm" mode="disabled">
<param name="scm">git</param>
<param name="url">https://github.com/tblume/openmpi-hwloc.git</param>
<param name="subdir"></param>
<param name="filename">hwloc</param>
<param name="version">2.0</param>
<param name="revision">SLES12SP2</param>
</service>
<service name="recompress" mode="disabled">
<param name="file">*hwloc*.tar</param>
<param name="compression">xz</param>
</service>
<service name="set_version"/>
</services>

View File

@ -0,0 +1,202 @@
#
# spec file for package hwloc
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#
%global lname libhwloc5
%define sversion 2.0
Name: hwloc
Version: 2.0
Release: 0
Summary: Portable Hardware Locality
License: BSD-3-Clause
Group: Productivity/Clustering/Computing
Url: http://www.open-mpi.org/projects/hwloc/
Source0: hwloc-%{sversion}.tar.xz
Source1: hwloc-rpmlintrc
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: libtool
#BuildRequires: libXNVCtrl-devel
BuildRequires: ncurses-devel
BuildRequires: transfig
BuildRequires: update-desktop-files
BuildRequires: w3m
Requires: %{lname} = %{version}-%{release}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} <= 1220 && !0%{?suse_version}
BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(pciaccess)
BuildRequires: pkgconfig(x11)
%else
BuildRequires: cairo-devel
BuildRequires: libxml2-devel
BuildRequires: ncurses-devel
BuildRequires: xorg-x11-libICE-devel
BuildRequires: xorg-x11-libSM-devel
BuildRequires: xorg-x11-libX11-devel
%endif
#BuildRequires: texlive-latex
%if 0%{?suse_version} <= 1220
BuildRequires: texlive-bin-latex
%else
BuildRequires: texlive-makeindex-bin
%endif
# % ifnarch s390 s390x
# BuildRequires: libibverbs-devel
# % endif
%ifnarch s390 s390x i586 %arm
BuildRequires: libnuma-devel
%endif
BuildRequires: perl-macros
Requires: perl-JSON
Requires: perl-base >= 5.22.1
%description
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, 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 devel
Summary: Headers and shared development libraries for hwloc
Group: Development/Libraries/C and C++
Requires: %{lname} = %{version}
Provides: lib%{name}-devel = %{version}-%{release}
Obsoletes: lib%{name}-devel <= 1.11
%description devel
Package contains headers and shared object symbolic links for the hwloc.
%package -n %{lname}
Summary: Run time libraries for the hwloc
Group: System/Libraries
Requires: %{name}-data
%description -n %{lname}
Package contains run time libraries for the hwloc.
%package data
Summary: Run time data for hwloc
Group: Development/Libraries/C and C++
%description data
Package contains run time data for the hwloc.
%package doc
Summary: Documentation for hwloc
Group: Documentation/Other
%description doc
Package contains documentation for %{name}.
%prep
%setup -q
%build
%if 0%{?sles_version}
sed -i 's/2.0 dist-bzip2 subdir-objects foreign tar-ustar parallel-tests -Wall -Werror/2.0 dist-bzip2 subdir-objects foreign tar-ustar -Wall -Werror/g' configure.ac
%endif
autoreconf --force --install
sed -i "s;(LN_S) lstopo-no-graphics;(LN_S) lstopo;g" utils/lstopo/Makefile.in
%configure
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
make %{?_smp_mflags} V=1
%install
make install DESTDIR=%{buildroot} INSTALL="install -p"
%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/
%fdupes -s %{buildroot}/%{_mandir}/man1
%fdupes -s %{buildroot}/%{_mandir}/man7
#support perl scripts
mkdir -p %{buildroot}/%{perl_vendorlib}
mv %{buildroot}/%{_bindir}/Perl_* %{buildroot}/%{perl_vendorlib}/
%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 %{?_smp_mflags} check || :
%post -n %{lname} -p /sbin/ldconfig
%postun -n %{lname} -p /sbin/ldconfig
%files
%defattr(-, root, root, -)
%doc AUTHORS COPYING NEWS README VERSION
# This binary is built only for intel architectures
%ifarch %ix86 x86_64
%attr(0755,root,root) %{_sbindir}/hwloc-dump-hwdata
%endif
%doc %{_mandir}/man1/%{name}*
%doc %{_mandir}/man1/lstopo*
%{_bindir}/hwloc*
%{_bindir}/lsmap
%{_bindir}/lsnettopo
%{_bindir}/lstopo*
%{_bindir}/netloc*
%{perl_vendorlib}/Perl_IB_support.pm
%{perl_vendorlib}/Perl_OF_support.pm
%dir %{_datadir}/hwloc
%{_datadir}/applications/*.desktop
%files devel
%defattr(-, root, root, -)
%doc %{_mandir}/man7/%{name}*
%{_includedir}/%{name}
%{_includedir}/%{name}.h
%{_includedir}/netloc*
%{_libdir}/lib%{name}.so
%{_libdir}/pkgconfig/%{name}.pc
%{_libdir}/pkgconfig/netloc.pc
%{_libdir}/libnetloc.so
%{_libdir}/libnetloc.la
%files -n %{lname}
%defattr(-, root, root, -)
%{_libdir}/libhwloc*so.*
%{_libdir}/libnetloc*so.*
%files data
%defattr(-, root, root, -)
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/%{name}.dtd
%{_datadir}/%{name}/%{name}-valgrind.supp
%files doc
%defattr(-, root, root, -)
%doc ./doc/images/*.pdf
%changelog

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8c029b6b1638245837707bfa6c865f448af4e49e7d352335e019d818b51fecf8
size 4019136

3
hwloc-2.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:91c9eb7fbc4b8deb9dd64718fb7dae2424bbf3be8a654422dce9a625f17116fd
size 1552264

2
hwloc-rpmlintrc Normal file
View File

@ -0,0 +1,2 @@
addFilter(".*script-without-shebang.*/usr/lib/perl5/vendor_perl/5.22.1/Perl_.*")
addFilter(".*perl5-naming-policy-not-applied.*/usr/lib/perl5/vendor_perl/5.22.1/Perl_.*")

View File

@ -1,7 +1,7 @@
#
# spec file for package hwloc
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -17,15 +17,16 @@
%global lname libhwloc5
%define sversion 1.11
%define sversion 2.0
Name: hwloc
Version: 1.11.2
Version: 2.0
Release: 0
Summary: Portable Hardware Locality
License: BSD-3-Clause
Group: Productivity/Clustering/Computing
Url: http://www.open-mpi.org/projects/hwloc/
Source0: http://www.open-mpi.org/software/hwloc/v%{sversion}/downloads/%{name}-%{version}.tar.bz2
Source0: hwloc-%{sversion}.tar.xz
Source1: hwloc-rpmlintrc
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: doxygen
@ -64,6 +65,9 @@ BuildRequires: texlive-makeindex-bin
%ifnarch s390 s390x i586 %arm
BuildRequires: libnuma-devel
%endif
BuildRequires: perl-macros
Requires: perl-JSON
Requires: perl-base >= 5.22.1
%description
The Portable Hardware Locality (hwloc) software package provides
@ -79,22 +83,15 @@ 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 lstopo
Summary: Shows the topology in various formats
Group: Productivity/Clustering/Computing
%description lstopo
Lstopo shows the topology of the system in various formats.
%package devel
Summary: Headers and shared development libraries for hwloc
Group: Development/Libraries/C and C++
Requires: %{lname} = %{version}
Provides: lib%{name}-devel = %{version}-%{release}
Obsoletes: lib%{name}-devel <= 1.4.1
Obsoletes: lib%{name}-devel <= 1.11
%description devel
Headers and shared object symbolic links for the hwloc.
Package contains headers and shared object symbolic links for the hwloc.
%package -n %{lname}
Summary: Run time libraries for the hwloc
@ -102,14 +99,14 @@ Group: System/Libraries
Requires: %{name}-data
%description -n %{lname}
Run time libraries for the %{name}.
Package contains run time libraries for the hwloc.
%package data
Summary: Run time data for hwloc
Group: Development/Libraries/C and C++
%description data
Run time data for the hwloc.
Package contains run time data for the hwloc.
%package doc
Summary: Documentation for hwloc
@ -123,29 +120,29 @@ Package contains documentation for %{name}.
%build
%if 0%{?sles_version}
sed -i 's/1.11 dist-bzip2 subdir-objects foreign tar-ustar parallel-tests -Wall -Werror/1.10 dist-bzip2 subdir-objects foreign tar-ustar -Wall -Werror/g' configure.ac
sed -i 's/2.0 dist-bzip2 subdir-objects foreign tar-ustar parallel-tests -Wall -Werror/2.0 dist-bzip2 subdir-objects foreign tar-ustar -Wall -Werror/g' configure.ac
%endif
autoreconf --force --install
sed -i "s;(LN_S) lstopo-no-graphics;(LN_S) lstopo;g" utils/lstopo/Makefile.in
%configure
##sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
##sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
make %{?_smp_mflags} V=1
%install
make install DESTDIR=%{buildroot} INSTALL="install -p"
%suse_update_desktop_file -r lstopo System Monitor
#Fix wrong permition on file hwloc-assembler-remote => I have reported this to upstream already
chmod 0755 %{buildroot}%{_bindir}/hwloc-assembler-remote
# We don't ship .la files.
rm -rf %{buildroot}%{_libdir}/libhwloc.la
# documentation will be handled by % doc macro
rm -rf %{buildroot}%{_datadir}/doc/
%fdupes -s %{buildroot}/%{_mandir}/man1
%fdupes -s %{buildroot}/%{_mandir}/man3
%fdupes -s %{buildroot}/%{_mandir}/man7
%fdupes -s doc/doxygen-doc
#support perl scripts
mkdir -p %{buildroot}/%{perl_vendorlib}
mv %{buildroot}/%{_bindir}/Perl_* %{buildroot}/%{perl_vendorlib}/
%check
#XXX: this is weird, but make check got broken by removing doxygen-doc/man above
@ -159,32 +156,38 @@ make %{?_smp_mflags} check || :
%files
%defattr(-, root, root, -)
%doc AUTHORS COPYING NEWS README VERSION
%attr(0755,root,root) %{_bindir}/%{name}*
# This binary is built only for intel architectures
%ifarch %ix86 x86_64
%attr(0755,root,root) %{_sbindir}/hwloc-dump-hwdata
%endif
%doc %{_mandir}/man1/%{name}*
%files lstopo
%defattr(-,root,root)
%attr(0755,root,root) %{_bindir}/lstopo*
%doc %{_mandir}/man1/lstopo*
%{_bindir}/hwloc*
%{_bindir}/lsmap
%{_bindir}/lsnettopo
%{_bindir}/lstopo*
%{_bindir}/netloc*
%{perl_vendorlib}/Perl_IB_support.pm
%{perl_vendorlib}/Perl_OF_support.pm
%dir %{_datadir}/hwloc
%{_datadir}/applications/*.desktop
%doc %{_mandir}/man1/lstopo.1*
%doc %{_mandir}/man1/lstopo-no-graphics.1.*
%files devel
%defattr(-, root, root, -)
%doc %{_mandir}/man3/*
%doc %{_mandir}/man7/%{name}*
%{_includedir}/%{name}
%{_includedir}/%{name}.h
%{_includedir}/netloc*
%{_libdir}/lib%{name}.so
%{_libdir}/pkgconfig/%{name}.pc
%{_libdir}/pkgconfig/netloc.pc
%{_libdir}/libnetloc.so
%{_libdir}/libnetloc.la
%files -n %{lname}
%defattr(-, root, root, -)
%{_libdir}/libhwloc*so.*
%{_libdir}/libnetloc*so.*
%files data
%defattr(-, root, root, -)
@ -194,7 +197,6 @@ make %{?_smp_mflags} check || :
%files doc
%defattr(-, root, root, -)
%doc doc/doxygen-doc/html
%doc doc/doxygen-doc/hwloc*.pdf
%doc ./doc/images/*.pdf
%changelog