Bug 1732988

Summary: [RHEL-8.2] hwloc: update to upstream v2.x series
Product: Red Hat Enterprise Linux 8 Reporter: Jarod Wilson <jarod>
Component: hwlocAssignee: Prarit Bhargava <prarit>
Status: CLOSED DUPLICATE QA Contact: Jeff Bastian <jbastian>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 8.2CC: guy.streeter, honli, hwkernel-mgr, mschmidt, nbertolus, prarit, rvr
Target Milestone: rc   
Target Release: 8.2   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-09-09 12:49:24 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1732982, 1850084    

Description Jarod Wilson 2019-07-24 22:00:53 UTC
Description of problem:
There's an updated mpich release out, which requires the hwloc 2.x series to build properly (makes use of the new HWLOC_OBJ_CACHE replacements).

hwloc 2.0 series download page:
https://www.open-mpi.org/software/hwloc/v2.0/

mpich 3.3.x release:
http://www.mpich.org/2019/06/07/mpich-3-3-1-released/

hwloc 2.0 api update guide:
https://www.open-mpi.org/projects/hwloc/doc/v2.0.4/a00327.php

The hwloc package changes are reasonably minimal, and I've already made them locally to build mpich 3.3.1 test packages with.

Comment 1 Jarod Wilson 2019-07-24 22:02:33 UTC
$ git diff --cached
diff --git a/hwloc.spec b/hwloc.spec
index 98cb9ac..4442334 100644
--- a/hwloc.spec
+++ b/hwloc.spec
@@ -1,10 +1,10 @@
 Summary:   Portable Hardware Locality - portable abstraction of hierarchical architectures
 Name:      hwloc
-Version:   1.11.9
-Release:   3%{?dist}
+Version:   2.0.4
+Release:   1%{?dist}
 License:   BSD
 URL:       http://www.open-mpi.org/projects/hwloc/
-Source0:   http://www.open-mpi.org/software/hwloc/v1.11/downloads/%{name}-%{version}.tar.bz2
+Source0:   https://download.open-mpi.org/release/hwloc/v2.0/%{name}-%{version}.tar.bz2
 Requires:  %{name}-libs%{?_isa} = %{version}-%{release}
 
 BuildRequires: gcc
@@ -119,7 +119,7 @@ rm %{buildroot}%{_datadir}/%{name}/hwloc-dump-hwdata.service
 %endif
 
 %check
-LD_LIBRARY_PATH=$PWD/src/.libs make check
+LD_LIBRARY_PATH=$PWD/hwloc/.libs make check
 
 %ifarch %{ix86} x86_64
 %post
@@ -156,11 +156,11 @@ LD_LIBRARY_PATH=$PWD/src/.libs make check
 %files libs
 %{_mandir}/man7/%{name}*
 %dir %{_datadir}/%{name}
-%{_datadir}/%{name}/%{name}.dtd
+%{_datadir}/%{name}/*.dtd
 %{_datadir}/%{name}/%{name}-valgrind.supp
 %dir %{_pkgdocdir}/
 %{_pkgdocdir}/*[^c]
-%{_libdir}/libhwloc*so.5*
+%{_libdir}/libhwloc*so.*
 
 %files gui
 %{_bindir}/lstopo
@@ -172,6 +172,9 @@ LD_LIBRARY_PATH=$PWD/src/.libs make check
 %{_libdir}/%{name}/hwloc*
 
 %changelog
+* Tue Jul 23 2019 Jarod Wilson <jarod> - 2.0.4-1
+- Update to upstream v2.0.4 stable release
+
 * Tue Mar 12 2019 Prarit Bhargava <prarit> - 1.11.9-3
 - add libtool requirement [1657366]
 
diff --git a/sources b/sources
index a9818fc..4c08dda 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (hwloc-1.11.9.tar.bz2) = 59198b460e2acb9ff0f8b06a86116a2ab67515e92035d3ecc1619ddbe42c7dd8991acab9cfe9c7130517238552aa570e3a51d135773ba34fbe343f2dfe48d956
+SHA512 (hwloc-2.0.4.tar.bz2) = c7bb69f0e536188921138d003f3854a12f942a4f625e665d5ce6d32c1c4a884e0a91f9125de33dd292f522032b759e6240df3f3e53534033567ea0d829feefce

Comment 2 Jarod Wilson 2019-07-24 22:45:12 UTC
Note: I have this all queued up locally in a branch, and could simply push it, if that's easier/cleaner.

Comment 3 Guy Streeter 2019-11-03 18:59:25 UTC
The hwloc version 2 library and devel files are not backward compatible with hwloc version 1. Applications written for hwloc version 1 will not run on version 2 without significant modification. The version 1 hwloc packages should be maintained as long as open-mpi continues to support version 1.

Comment 4 Jarod Wilson 2019-11-06 19:57:55 UTC
(In reply to Guy Streeter from comment #3)
> The hwloc version 2 library and devel files are not backward compatible with
> hwloc version 1. Applications written for hwloc version 1 will not run on
> version 2 without significant modification. The version 1 hwloc packages
> should be maintained as long as open-mpi continues to support version 1.

Are you suggestion hwloc1-compat type packages? The OpenMPI folks are the ones who put out hwloc, and 2.x has been out some time now (just shy of 2 years), and with us updating to OpenMPI 4.x, it seems long overdue that we make the jump...

Comment 5 Guy Streeter 2019-11-07 16:40:25 UTC
As I said, V1 hwloc is still supported by the open-mpi people, in spite of V2 being out for some time. It's sort of like the Python2 and Python3 issue was.
I think V2 should have been a separate package, maybe hwloc2. But it has already been released as an update to hwloc on Fedora, so it may be too late for that.

Also, I've looked for other packages on Red Hat and Fedora that are built for V1 hwloc, and the ones I wrote (which are not provided by Fedora or RHEL) are the only ones I've found.
I'm well on my way to updating them for V2. I guess that unless someone else complains about V1 going away, this isn't going to be a problem after all.