Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

openmpi ebuild mentions mpi.eclass that cannot be found #9

Closed
equaeghe opened this issue Nov 25, 2011 · 6 comments
Closed

openmpi ebuild mentions mpi.eclass that cannot be found #9

equaeghe opened this issue Nov 25, 2011 · 6 comments

Comments

@equaeghe
Copy link

sys-cluster/openmpi/openmpi-1.5.3-r3.ebuild line 9 mentions mpi

I use portage and your overlay, no others and I get an error (whewnever I emerge world or some such; I'm not trying to emerge this ebuild):

* ERROR: sys-cluster/openmpi-1.5.3-r3 failed (depend phase):
*   mpi.eclass could not be found by inherit()
* 
* Call stack:
*                 ebuild.sh, line 2051:  Called source '/var/lib/layman/nbigaouette/sys-cluster/openmpi/openmpi-1.5.3-r3.ebuild'
*   openmpi-1.5.3-r3.ebuild, line    9:  Called inherit 'eutils' 'flag-o-matic' 'fortran-2' 'mpi' 'multilib' 'toolchain-funcs'
*                 ebuild.sh, line 1390:  Called die
* The specific snippet of code:
*              [ ! -e "$location" ] && die "${1}.eclass could not be found by inherit()"
* 
* If you need support, post the output of 'emerge --info =sys-cluster/openmpi-1.5.3-r3',
* the complete build log and the output of 'emerge -pqv =sys-cluster/openmpi-1.5.3-r3'.
* This ebuild is from an overlay named 'nbigaouette': '/var/lib/layman/nbigaouette/'
* S: '/var/tmp/portage/sys-cluster/openmpi-1.5.3-r3/work/openmpi-1.5.3'
@nbigaouette
Copy link
Owner

This is weird, as mpi.eclass is present in my tree: https://github.com/nbigaouette/ebuilds/tree/master/eclass

So you say this error appears when you emerge world? Do you have any mpi package installed?

@equaeghe
Copy link
Author

Yes, with

# emerge -Dua world

but not with

# emerge -ua world

so the --deep is needed to get the error.

And yes, I have openmpi installed:

# eix -I mpi
[I] sys-cluster/openmpi
     Available versions:  1.4.2!t ~1.4.3!t ~1.5.3 ~1.5.3-r1 ~1.5.3-r2 ~1.5.3-r3[1] ~1.5.4 {+cxx elibc_FreeBSD fortran heterogeneous infiniband ipv6 mpi-threads pbs romio sctp slurm threads vt}                                    
     Installed versions:  1.4.2(11:29:35 AM 10/31/2011)(cxx fortran ipv6 romio threads -elibc_FreeBSD -heterogeneous -mpi-threads -pbs -vt)                                                                                         
     Homepage:            http://www.open-mpi.org
     Description:         A high-performance message passing library (MPI)

[1] "nbigaouette" /var/lib/layman/nbigaouette

@nbigaouette
Copy link
Owner

There is 3 different "versions" for openmpi...

  1. Portage
    The official one in portage can be installed, but it will use gcc. If this is fine with you, then you should just stick with this one.

  2. Science overlay
    The guys behind the science overlay modified the build and added the "mpi" class to support multiple installations. You can thus have one version of openmpi compiled with intel icc, one with gcc, etc. Please read this: http://dev.gentoo.org/~jsbronder/empi.xml for how to use.

  3. My overlay
    I just compared the ebuilds, and mine is almost indentical to the science overlay one. I added slurm support in the use flags.

Portage's official ebuild is up to date at 1.5.4. Mine and Science are at 1.5.3.

All this can be confusing... Make sure you emerge the one you want.

@equaeghe
Copy link
Author

equaeghe commented Dec 1, 2011

I'm closing this issue. It went away without me doing anything except for updating packages. Then today, the openmpi I had installed was depcleaned (I did not investigate).

@equaeghe equaeghe closed this as completed Dec 1, 2011
@equaeghe equaeghe reopened this Dec 23, 2011
@equaeghe
Copy link
Author

The problem resurfaced...

# eix-update 
Reading Portage settings ..
Building database (/var/cache/eix) ..
[0] "gentoo" /usr/portage/ (cache: metadata-flat)
     Reading category 154|154 (100%) Finished             
[1] "nbigaouette" /var/lib/layman/nbigaouette (cache: parse|ebuild*#metadata-md5#metadata-flat#assign)
     Reading category 131|154 ( 85%): sys-infiniband .. * ERROR: sys-infiniband/openib-mvapich2-1.6_rc1-r1 failed (depend phase):
 *   mpi.eclass could not be found by inherit()
 * 
 * Call stack:
 *                           ebuild.sh, line 511:  Called source '/var/lib/layman/nbigaouette/sys-infiniband/openib-mvapich2/openib-mvapich2-1.6_rc1-r1.ebuild'
 *   openib-mvapich2-1.6_rc1-r1.ebuild, line   5:  Called inherit 'mpi' 'flag-o-matic'
 *                           ebuild.sh, line 245:  Called die
 * The specific snippet of code:
 *              [ ! -e "$location" ] && die "${1}.eclass could not be found by inherit()"
 * 
 * If you need support, post the output of 'emerge --info =sys-infiniband/openib-mvapich2-1.6_rc1-r1',
 * the complete build log and the output of 'emerge -pqv =sys-infiniband/openib-mvapich2-1.6_rc1-r1'.
 * This ebuild is from an overlay: '/var/lib/layman/nbigaouette/'
 * S: '/openib-mvapich2-1.6_rc1'

Ebuild failed with status 1
     Reading category 131|154 ( 85%): sys-infiniband ..
Could not properly execute /var/lib/layman/nbigaouette/sys-infiniband/openib-mvapich2/openib-mvapich2-1.6_rc1-r1.ebuild
     Reading category 154|154 (100%) Finished          
[2] "" /usr/local/portage (cache: parse|ebuild*#metadata-md5#metadata-flat#assign)
     Reading category 154|154 (100%) Finished    
Applying masks ..
Calculating hash tables ..
Writing database file /var/cache/eix ..
Database contains 15404 packages in 154 categories.

While I don't seem to have anything mpi-related installed:

# eix -I mpi
No matches found.

nbigaouette added a commit that referenced this issue Jan 9, 2012
mpi.eclass is a symbolic link pointing to /var/lib/layman/science/eclass/mpi.eclass
meaning that the Gentoo Science Overlay (http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git)
must be enabled through Layman for some ebuilds to work (see issue #9).
Fix issue by copying the Gentoo Science Overlay's eclass (from commit
8de3d2e7b5bca71a3d0fd216520c45f76d7146d0, see
http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=blob;f=eclass/mpi.eclass;hb=8de3d2e7b5bca71a3d0fd216520c45f76d7146d0).
@nbigaouette
Copy link
Owner

I've found the cause of the problem. The mpi.eclass was a symbolic link pointing to /var/lib/layman/science/eclass/mpi.eclass, meaning you had to have the Gentoo Science Overlay enabled in Layman for it to work.
Instead of the link, I just imported the overlay's eclass from commit 8de3d2e7b5bca71a3d0fd216520c45f76d7146d0 (see http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=blob;f=eclass/mpi.eclass;hb=8de3d2e7b5bca71a3d0fd216520c45f76d7146d0).

See commit 0a05841.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants