Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 392683 - sci-libs/hdf5 USE="mpi cxx" does not build cxx support
Summary: sci-libs/hdf5 USE="mpi cxx" does not build cxx support
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Kacper Kowalik (Xarthisius) (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-11-30 21:03 UTC by Murph
Modified: 2020-03-02 03:57 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Murph 2011-11-30 21:03:27 UTC
If you have mpi and cxx both enabled, it will build without the cxx flag.

This is a problem because another package depending on the cxx use flag will then assume it's satisfied when it is not and compilation will fail when the hdf5_cpp library can't be linked to.

Reproducible: Always
Comment 1 Kacper Kowalik (Xarthisius) (RETIRED) gentoo-dev 2011-12-04 16:16:28 UTC
(In reply to comment #0)
> If you have mpi and cxx both enabled, it will build without the cxx flag.
It's impossible to build hdf5 with both of them enabled. Instead of just "dying" ebuild disables cxx support, it's a compromise...

> This is a problem because another package depending on the cxx use flag will
> then assume it's satisfied when it is not and compilation will fail when the
> hdf5_cpp library can't be linked to.
Which package has dependecy on sci-libs/hdf5[cxx]?
Comment 2 Arfrever Frehtes Taifersar Arahesis 2011-12-04 16:32:28 UTC
REQUIRED_USE="cxx? ( !mpi ) mpi? ( !cxx )" could be used.
Comment 3 Murph 2011-12-04 17:00:39 UTC
The package mentioned is a part of ROS (ros.org) which is not in portage currently. Ros has it's own package dependency manager, rosdep, for it's many components.

Rosdep will use 'portageq match' to check if packages are installed with the needed use flags. So when it runs "portageq match / sci-libs/hdf5[cxx]" it will get told that hdf5 is installed with cxx, and will attempt to build against it and then that build fails.
Comment 4 Kacper Kowalik (Xarthisius) (RETIRED) gentoo-dev 2011-12-04 21:19:04 UTC
(In reply to comment #3)
> The package mentioned is a part of ROS (ros.org) which is not in portage
> currently. Ros has it's own package dependency manager, rosdep, for it's many
> components.
Sorry but I'm unable to support things outside of portage. Moreover I want to keep current state, i.e. package not failing with contradicting use flags and using sane defaults instead. You can work around it by depending on sci-libs/hdf5[-mpi,cxx] in your package.

> Rosdep will use 'portageq match' to check if packages are installed with the
> needed use flags. So when it runs "portageq match / sci-libs/hdf5[cxx]" it will
> get told that hdf5 is installed with cxx, and will attempt to build against it
> and then that build fails.
Comment 5 Kacper Kowalik (Xarthisius) (RETIRED) gentoo-dev 2011-12-05 10:19:08 UTC
I gave it a bit of thought and you're right. I shouldn't fool portage to give user sane defaults. HDF5 now dies on contradicting use flags. Thanks!

+  05 Dec 2011; Kacper Kowalik <xarthisius@gentoo.org> hdf5-1.8.8.ebuild:
+  Use REQUIRED_USE instead of providing sane defaults wrt #392683 by Murph
+  <MattFinn@gmail.com>
Comment 6 Alessandro Barbieri 2020-02-27 18:43:47 UTC
now that ROS package is in portage