STEllAR-GROUP / hpx

The C++ Standard Library for Parallelism and Concurrency
https://hpx.stellar-group.org
Boost Software License 1.0
2.51k stars 427 forks source link

Packaged HPX distribution does not pull in all required packages for Fedora29 nor are they all documented. #3671

Closed grantrostig closed 5 years ago

grantrostig commented 5 years ago

Expected Behavior

"sudo dnf install hpx" should install required packages, and those packages should be documented by listing all that are required (in "getting started").

Since the user is installing compiled packages, it should not be presumed that the user has "compiled HPX" and read that section, which does give some clues.

Actual Behavior

"sudo dnf install hpx" does not install hwloc

Steps to Reproduce the Problem

"sudo dnf repoquery --depends hpx"

Does not show "hwloc"

Specifications

diehlpk commented 5 years ago
[diehlpk@xwing rpmbuild]$ dnf repoquery --depends hpx
Fedora Modular 29 - x86_64                                                                                                                                                                                    11 kB/s |  18 kB     00:01    
Fedora Modular 29 - x86_64 - Updates                                                                                                                                                                          12 kB/s |  17 kB     00:01    
Fedora 29 - x86_64 - Updates                                                                                                                                                                                  14 kB/s |  17 kB     00:01    
Fedora 29 - x86_64 - Updates                                                                                                                                                                                 3.0 MB/s |  21 MB     00:07    
google-talkplugin                                                                                                                                                                                            895  B/s | 951  B     00:01    
RPM Fusion for Fedora 29 - Free - Updates                                                                                                                                                                    9.9 kB/s |  13 kB     00:01    
RPM Fusion for Fedora 29 - Nonfree - Updates                                                                                                                                                                 9.8 kB/s |  13 kB     00:01    
skype (stable)                                                                                                                                                                                               4.8 kB/s | 2.9 kB     00:00    
ld-linux-x86-64.so.2()(64bit)
ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
ld-linux.so.2
ld-linux.so.2(GLIBC_2.3)
libboost_atomic.so.1.66.0
libboost_atomic.so.1.66.0()(64bit)
libboost_filesystem.so.1.66.0
libboost_filesystem.so.1.66.0()(64bit)
libboost_program_options.so.1.66.0
libboost_program_options.so.1.66.0()(64bit)
libboost_regex.so.1.66.0
libboost_regex.so.1.66.0()(64bit)
libboost_system.so.1.66.0
libboost_system.so.1.66.0()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.28)
libdl.so.2
libdl.so.2()(64bit)
libdl.so.2(GLIBC_2.0)
libdl.so.2(GLIBC_2.1)
libdl.so.2(GLIBC_2.2.5)(64bit)
libdl.so.2(GLIBC_2.3.3)
libdl.so.2(GLIBC_2.3.3)(64bit)
libgcc_s.so.1
libgcc_s.so.1()(64bit)
libgcc_s.so.1(GCC_3.0)
libgcc_s.so.1(GCC_3.0)(64bit)
libgcc_s.so.1(GCC_3.3)
libgcc_s.so.1(GCC_3.3)(64bit)
libgcc_s.so.1(GLIBC_2.0)
libhwloc.so.5
libhwloc.so.5()(64bit)
libm.so.6
libm.so.6()(64bit)
libm.so.6(GLIBC_2.0)
libm.so.6(GLIBC_2.1)
libm.so.6(GLIBC_2.2.5)(64bit)
libpthread.so.0
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.0)
libpthread.so.0(GLIBC_2.1)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)
libpthread.so.0(GLIBC_2.3.2)(64bit)
libpthread.so.0(GLIBC_2.3.3)
libpthread.so.0(GLIBC_2.3.3)(64bit)
librt.so.1
librt.so.1()(64bit)
libstdc++.so.6
libstdc++.so.6()(64bit)
libstdc++.so.6(CXXABI_1.3)
libstdc++.so.6(CXXABI_1.3)(64bit)
libstdc++.so.6(CXXABI_1.3.11)
libstdc++.so.6(CXXABI_1.3.11)(64bit)
libstdc++.so.6(CXXABI_1.3.2)
libstdc++.so.6(CXXABI_1.3.2)(64bit)
libstdc++.so.6(CXXABI_1.3.3)
libstdc++.so.6(CXXABI_1.3.3)(64bit)
libstdc++.so.6(CXXABI_1.3.5)
libstdc++.so.6(CXXABI_1.3.5)(64bit)
libstdc++.so.6(CXXABI_1.3.8)
libstdc++.so.6(CXXABI_1.3.8)(64bit)
libstdc++.so.6(GLIBCXX_3.4)
libstdc++.so.6(GLIBCXX_3.4)(64bit)
libstdc++.so.6(GLIBCXX_3.4.11)
libstdc++.so.6(GLIBCXX_3.4.11)(64bit)
libstdc++.so.6(GLIBCXX_3.4.14)
libstdc++.so.6(GLIBCXX_3.4.14)(64bit)
libstdc++.so.6(GLIBCXX_3.4.15)
libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
libstdc++.so.6(GLIBCXX_3.4.18)
libstdc++.so.6(GLIBCXX_3.4.18)(64bit)
libstdc++.so.6(GLIBCXX_3.4.19)
libstdc++.so.6(GLIBCXX_3.4.19)(64bit)
libstdc++.so.6(GLIBCXX_3.4.20)
libstdc++.so.6(GLIBCXX_3.4.20)(64bit)
libstdc++.so.6(GLIBCXX_3.4.21)
libstdc++.so.6(GLIBCXX_3.4.21)(64bit)
libstdc++.so.6(GLIBCXX_3.4.22)
libstdc++.so.6(GLIBCXX_3.4.22)(64bit)
libstdc++.so.6(GLIBCXX_3.4.9)
libstdc++.so.6(GLIBCXX_3.4.9)(64bit)
libtcmalloc_minimal.so.4
libtcmalloc_minimal.so.4()(64bit)
rtld(GNU_HASH)
diehlpk commented 5 years ago

@grantrostig Could you please post your output too, because on my machine

libhwloc.so.5
libhwloc.so.5()(64bit)

I can see hwloc as one of the dependencies.

diehlpk commented 5 years ago

Please note that dnf install hpx will install only missing dependencies and if you have hwloc already installed, it will not be shown there.

grantrostig commented 5 years ago

Yes, hwloc-libs is installed, but hwloc is not. Apparently hwloc is needed, so that is a problem.

diehlpk commented 5 years ago

Ok, hwloc is just the name of the library. It is an fedora package name again, the package hwloc in fedora just contains the executables:

/usr/bin/hwloc-annotate
/usr/bin/hwloc-assembler
/usr/bin/hwloc-assembler-remote
/usr/bin/hwloc-bind
/usr/bin/hwloc-calc
/usr/bin/hwloc-compress-dir
/usr/bin/hwloc-diff
/usr/bin/hwloc-distances
/usr/bin/hwloc-distrib
/usr/bin/hwloc-gather-topology
/usr/bin/hwloc-info
/usr/bin/hwloc-ls
/usr/bin/hwloc-patch
/usr/bin/hwloc-ps
/usr/bin/lstopo-no-graphics
/usr/lib/systemd/system/hwloc-dump-hwdata.service
/usr/sbin/hwloc-dump-hwdata
/usr/share/man/man1/hwloc-annotate.1.gz
/usr/share/man/man1/hwloc-assembler-remote.1.gz
/usr/share/man/man1/hwloc-assembler.1.gz
/usr/share/man/man1/hwloc-bind.1.gz
/usr/share/man/man1/hwloc-calc.1.gz
/usr/share/man/man1/hwloc-compress-dir.1.gz
/usr/share/man/man1/hwloc-diff.1.gz
/usr/share/man/man1/hwloc-distances.1.gz
/usr/share/man/man1/hwloc-distrib.1.gz
/usr/share/man/man1/hwloc-dump-hwdata.1.gz
/usr/share/man/man1/hwloc-gather-topology.1.gz
/usr/share/man/man1/hwloc-info.1.gz
/usr/share/man/man1/hwloc-ls.1.gz
/usr/share/man/man1/hwloc-patch.1.gz
/usr/share/man/man1/hwloc-ps.1.gz
/usr/share/man/man1/lstopo-no-graphics.1.gz

So hpx needs the package named hwloc [0], but we do not use these executables within hpx. We use the libraries hwloc-libs [1] when we install hpx and hpx-examples. For hpx-devel we need to install hwloc-devel [2]. So it is might be confusing due to the package name in fedora, but we do not meed the hwloc package with the executables, but we need hwloc-libs and hwloc-devel.

So to summarize, we do not miss the hwloc package for the fedora packages.

[0] https://www.open-mpi.org/projects/hwloc/ [1] https://rpmfind.net/linux/RPM/fedora/devel/rawhide/x86_64/h/hwloc-libs-1.11.12-1.fc30.i686.html [2] https://rpmfind.net/linux/RPM/fedora/devel/rawhide/x86_64/h/hwloc-devel-1.11.12-1.fc30.i686.html

diehlpk commented 5 years ago

@grantrostig Does this clarify your concerns? If so, the ticket can be closed.

grantrostig commented 5 years ago

The procedure for building the helloworld from source is the problem I reported. Your fine explanation does not fix the problem. A fix in the documenation is needed to discuss manual workarounds for what I call an error or a simple change in the dependencies on the package "hpx" is required, as well as all the other hpx packages, and also rewording of their description to be more clear. Then it should be tested on a clean "fedora29 workstation" system using the new updated package via fedora dnf. Then I would think the ticket should be closed. Do we mark issues fixed before that? No not in my opinion, but I don't know the policies of the hpx project. If one wants automated testing, I guess that would also have to be fixed.

msimberg commented 5 years ago

I'll try to summarize the state of this right now. First, keep in mind that the Fedora package is from December and we're learning as we speak. Unfortunately this leaves you, @grantrostig, as a guinea pig, and we appreciate your patience with us.

grantrostig commented 5 years ago

@msimberg , Thank you for your response. I'm glad my work in testing is useful. The steps you outlined and quoted below seem like a good plan. I'm not sure who closes issues and if they are only closed after the issue has been tested and passed? Another issue might have to be created to address your third point?

  • 1.2.0 was a broken release, which is why we're preparing 1.2.1 which will contain fixes to the CMake configuration (and the HPX library itself). Trying to use 1.2.0 is likely a doomed exercise unless you have too much time.

  • The hpx-devel package might need libatomic as a dependency (#3673)

  • We would prefer to remove build instructions for Fedora from the documentation and make sure that dnf install hpx/hpx-devel does what it should instead.

msimberg commented 5 years ago

Status of the three points I made earlier:

diehlpk commented 5 years ago
* @diehlpk is libatomic now a dependency of HPX in the new Fedora spec files?

Yes, it is a new requirement

hkaiser commented 5 years ago

Let's close this as the V1.2.1 release was published. Feel free to re-open, if necessary.