Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 205888 - sci-libs/hdf5 only supports fortran with mpi
Summary: sci-libs/hdf5 only supports fortran with mpi
Status: RESOLVED DUPLICATE of bug 141230
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-01-14 21:04 UTC by Adam Carheden
Modified: 2009-01-07 20:36 UTC (History)
1 user (show)

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


Attachments
hdf5-1.6.7.ebuild (hdf5-1.6.7.ebuild,7.85 KB, text/plain)
2009-01-07 20:36 UTC, Martin Mokrejš
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Adam Carheden 2008-01-14 21:04:38 UTC
The following lines for hdf5-1.6.6.ebuild imply that HDF5 doesn't support fortran independently of mpi.

if use fortran && use mpi ; then
  ewarn "Requires Fortran 90 support in your mpi library..."
  myconf="${myconf} --enable-fortran --enable-parallel"
fi

This is just incorrect. Previous version of the ebuild at least ATTEMPT adding '--enable-fortran' to myconf and say "it will probably fail". It doesn't it works great. Please replace these lines with the ones below and just let autoconf do it's job.

        if use fortran; then
            myconf="${myconf} --enable-fortran"
        fi
        if use mpi; then
            myconf="${myconf} --enable-parallel"
        fi
        if use fortran && use mpi ; then
            ewarn "Requires Fortran 90 support in your mpi library..."
        fi



Reproducible: Always

Steps to Reproduce:
1. echo "=sci-libs/hdf5-1.6.6 ~x86 ~amd64" | sudo tee -a \
  /etc/portage/package.keywords
2. USE="fortran -mpi" emerge hdf5

Actual Results:  
Silently compiles WITHOUT fortran support

Expected Results:  
compiles with '--enable-fortran' but without '--enable-parallel'
Comment 1 Jakub Moc (RETIRED) gentoo-dev 2008-01-14 21:36:23 UTC

*** This bug has been marked as a duplicate of bug 141230 ***
Comment 2 Martin Mokrejš 2009-01-07 19:25:20 UTC
This bug still exists:

>>> Emerging (3 of 4) sci-libs/hdf5-1.6.7
 * hdf5-1.6.7.tar.gz RMD160 SHA1 SHA256 size ;-) ...                                                                                                                                                                           [ ok ]
 * checking ebuild checksums ;-) ...                                                                                                                                                                                           [ ok ]
 * checking auxfile checksums ;-) ...                                                                                                                                                                                          [ ok ]
 * checking miscfile checksums ;-) ...                                                                                                                                                                                         [ ok ]
 * You need one of these Fortran Compilers: gfortran g77
 * Installed are:  gfortran
 * Your MPI library needs parallel IO support for HDF5. You
 * must re-emerge mpich2 with USE=pvfs2.
 * 
 * ERROR: sci-libs/hdf5-1.6.7 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called pkg_setup
 *       hdf5-1.6.7.ebuild, line   59:  Called die
 * The specific snippet of code:
 *          die "requires parallel IO support"
 *  The die message:
 *   requires parallel IO support
 * 
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/sci-libs/hdf5-1.6.7/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sci-libs/hdf5-1.6.7/temp/die.env'.

# emerge --info
Portage 2.1.6.4 (default/linux/x86/2008.0/desktop, gcc-4.3.2, glibc-2.9_p20081201-r1, 2.6.27.7 i686)
=================================================================
System uname: Linux-2.6.27.7-i686-Mobile_Intel-R-_Pentium-R-_4_-_M_CPU_1.80GHz-with-glibc2.0
Timestamp of tree: Sat, 03 Jan 2009 12:20:01 +0000
distcc 3.1 i686-pc-linux-gnu [disabled]
app-shells/bash:     3.2_p48
dev-java/java-config: 1.3.7-r1, 2.1.6-r1
dev-lang/python:     2.5.2-r8
dev-python/pycrypto: 2.0.1-r6
dev-util/cmake:      2.6.2
sys-apps/baselayout: 2.0.0
sys-apps/openrc:     0.4.1-r1
sys-apps/sandbox:    1.3.2
sys-devel/autoconf:  2.13, 2.63
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.19
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.28-r1
ACCEPT_KEYWORDS="x86 ~x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=pentium4 -mmmx -msse -msse2 -fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /var/bind /var/qmail/alias /var/qmail/control /var/spool/torque /var/vpopmail/etc"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -march=pentium4 -mmmx -msse -msse2 -fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://gentoo.mirror.web4u.cz"
LDFLAGS="-Wl,-O1"
LINGUAS="en cs cz"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/layman/sunrise /usr/local/portage/layman/science /usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="7zip R X Xaw3d a52 aac aalib ace acl acpi alsa amr amrnb amrwb apache2 audacious audiofile bash-completion bcmath berkdb blas bluetooth boost branding bzip2 cairo cblas cddb cdparanoia cdr clamav cli colordiff compress cpio cracklib crypt cscope css ctype cups curl curlwrappers cxx dbus dga dia directfb djbfft dri dts dv dvb dvd dvdr dvdread eds emacs emboss emf enblend encode enscript exif expat fam fame fat fbcon ffmpeg fftw firefox flac flash foomaticdb fortran fpx ftp gcj gd gdbm ggi gif gimp gimpprint glibc-compat20 glibc-omitfp glitz glut gmp gnuplot gnutls gpgme gphoto2 gpm graphviz gs gsl gstreamer gtk gtkhtml hal hdf hdf5 hp2xx i8x0 icc iconv icu id3 ieee1394 ifc imagemagick imlib inifile innodb isdnlog ithreads jack java javascript jbig jce jikes jpeg jpeg2k kdtree kerberos lame lapack laptop lcms leim libcaca libedit libnotify libwww live lzo lzw mad maildir matroska mhash midi mikmod mime ming mjpeg mmap mmx mng mod_python modperl modplug motif mozilla moznoirc mp2 mp3 mp4 mpeg mpi mpi_njtree mpich2 mplayer mudflap mule musepack mxdatetime mysql mysqli ncurses netcdf netpbm network nls nntp nptl nptlonly nsplugin ntfs numeric ogg opengl openmp pam pango pcmcia pcntl pcre pdf perl plotutils plugin png pnm postproc postscript ppds pppd procmail pymol python qt3 qt3support qt4 quicktime rar raw readline recode reflection reiserfs rpm samba sasl scanner scp seamonkey server session sftp sift slp smime sndfile soap sockets spell spl sqlite srt sse sse2 ssl startup-notification subtitles subversion svg svgz sysfs sysvipc t1lib tcl tcpd tetex theora threads tidy tiff tk transcode truetype unicode urandom usb userlocales uuencode v4l v4l2 vcd vhook vim-syntax vim-with-x vorbis wifi win32codecs wmf wxwindows x264 x86 xanim xcf xfs xft xinerama xinetd xml xorg xpm xprint xsl xslt xulrunner xv xvid xvmc yv12 zip zlib" ALSA_CARDS="intel-8x0m" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config mem_cache mime mime_magic rewrite setenvif speling status unique_id userdir usertrack vhost_alias negotiation" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en cs cz" USERLAND="GNU" VIDEO_CARDS="radeon"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

# emerge -pv mpich2 pvfs2 hdf5
[ebuild     U ] sys-cluster/mpich2-1.0.8 [1.0.6] USE="fortran threads -debug -doc -mpi-threads% -nocxx% -pvfs2 -romio% (-crypt%*) (-cxx%*) (-fast%) (-mpe%) (-mpe-sdk%)" 16,834 kB [0=>1]
[ebuild  N    ] sys-cluster/pvfs2-2.7.1  USE="gtk server ssl -apidocs -doc -examples -static" 4,363 kB [0]
[ebuild  N    ] sci-libs/hdf5-1.6.6  USE="cxx fortran mpi ssl threads zlib -debug -szip -tools" 5,176 kB [0]

Comment 3 Martin Mokrejš 2009-01-07 19:54:17 UTC
>>> Emerging (1 of 2) sci-libs/hdf5-1.6.7
 * hdf5-1.6.7.tar.gz RMD160 SHA1 SHA256 size ;-) ...                                                                                                                                                                           [ ok ]
 * checking ebuild checksums ;-) ...                                                                                                                                                                                           [ ok ]
 * checking auxfile checksums ;-) ...                                                                                                                                                                                          [ ok ]
 * checking miscfile checksums ;-) ...                                                                                                                                                                                         [ ok ]
 * You need one of these Fortran Compilers: gfortran g77
 * Installed are:  gfortran
 * Requires Fortran 90 support in your mpi library...
>>> Unpacking source...
>>> Unpacking hdf5-1.6.7.tar.gz to /var/tmp/portage/sci-libs/hdf5-1.6.7/work
 * Applying hdf5-1.6.6-gcc4.3.patch ...                                                                                                                                                                                         [ ok ]
 * Applying hdf5-mpich2.patch ...                                                                                                                                                                                               [ ok ]
 * Replacing obsolete head/tail with POSIX compliant ones
 *  - fixed /var/tmp/portage/sci-libs/hdf5-1.6.7/work/hdf5-1.6.7/bin/release
 *  - fixed /var/tmp/portage/sci-libs/hdf5-1.6.7/work/hdf5-1.6.7/tools/h5dump/testh5dump.sh.in
>>> Source unpacked.
>>> Compiling source in /var/tmp/portage/sci-libs/hdf5-1.6.7/work/hdf5-1.6.7 ...
 * C++ support is not compatible with the mpi interface.
 * 
 * ERROR: sci-libs/hdf5-1.6.7 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line 3126:  Called die
 * The specific snippet of code:
 *               die "Please disable either cxx or mpi.";
 *  The die message:
 *   Please disable either cxx or mpi.
 * 
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/sci-libs/hdf5-1.6.7/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sci-libs/hdf5-1.6.7/temp/environment'.



# USE="-mysql -cxx" emerge hdf5
>>> Emerging (1 of 1) sci-libs/hdf5-1.6.7
 * hdf5-1.6.7.tar.gz RMD160 SHA1 SHA256 size ;-) ...                                                                                                                                                                           [ ok ]
 * checking ebuild checksums ;-) ...                                                                                                                                                                                           [ ok ]
 * checking auxfile checksums ;-) ...                                                                                                                                                                                          [ ok ]
 * checking miscfile checksums ;-) ...                                                                                                                                                                                         [ ok ]
 * You need one of these Fortran Compilers: gfortran g77
 * Installed are:  gfortran
 * Requires Fortran 90 support in your mpi library...
>>> Unpacking source...
>>> Unpacking hdf5-1.6.7.tar.gz to /var/tmp/portage/sci-libs/hdf5-1.6.7/work
 * Applying hdf5-1.6.6-gcc4.3.patch ...                                                                                                                                                                                         [ ok ]
 * Applying hdf5-mpich2.patch ...                                                                                                                                                                                               [ ok ]
 * Replacing obsolete head/tail with POSIX compliant ones
 *  - fixed /var/tmp/portage/sci-libs/hdf5-1.6.7/work/hdf5-1.6.7/bin/release
 *  - fixed /var/tmp/portage/sci-libs/hdf5-1.6.7/work/hdf5-1.6.7/tools/h5dump/testh5dump.sh.in
>>> Source unpacked.
>>> Compiling source in /var/tmp/portage/sci-libs/hdf5-1.6.7/work/hdf5-1.6.7 ...
 * Requires Fortran 90 support in your mpi library...
 * econf: updating hdf5-1.6.7/bin/config.guess with /usr/share/gnuconfig/config.guess
 * econf: updating hdf5-1.6.7/bin/config.sub with /usr/share/gnuconfig/config.sub
./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --prefix=/usr --enable-zlib --enable-fortran --enable-parallel --with-ssl --enable-linux-lfs --sysconfdir=/etc --infodir=/usr/share/info --libdir=/usr/lib --mandir=/usr/share/man --enable-shared --with-pic --disable-cxx --enable-fortran --enable-parallel --with-pthread --enable-threadsafe --enable-production --build=i686-pc-linux-gnu
[...]
Configure Summary
Compiling Options:
               Compilation Mode:  Production
                     C Compiler:  /usr/bin/mpicc
                         CFLAGS:   -O2 -march=pentium4 -mmmx -msse -msse2 -fomit-frame-pointer -pipe -ansi -O3 -fomit-frame-pointer -finline-functions
                       CPPFLAGS:  -UH5_DEBUG_API -DNDEBUG -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_POSIX_SOURCE -D_BSD_SOURCE 
                        LDFLAGS:  -Wl,-O1  -lmpich
                     Debug Mode:  None
               Shared Libraries:  Yes
               Static Libraries:  Yes
  Statically Linked Executables:  No
                        Tracing:  No
   Optimization Instrumentation:  No

Languages:
----------
                            C++:  No
                        Fortran:  Yes
               Fortran Compiler:  /usr/bin/mpif90
                         FFLAGS:  -I.   -I.
                     C Compiler:  /usr/bin/mpicc
                         CFLAGS:   -O2 -march=pentium4 -mmmx -msse -msse2 -fomit-frame-pointer -pipe -march=i686 -ansi -O3 -fomit-frame-pointer -finline-functions
                       CPPFLAGS:  -D_BSD_SOURCE -D_POSIX_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE  
                        LDFLAGS:  -Wl,-O1  -lmpich


Features:
---------
                        dmalloc:  No
         Function Stack Tracing:  Disabled
                           GASS:  No
                           GPFS:  No
      Strict File Format Checks:  Disabled
        HDF5 v1.4 Compatibility:  No
                        hsize_t:  Large
         I/O filters (external):  deflate
         I/O filters (internal):  shuffle,fletcher32
 Linux Large File Support (LFS):  Enabled
                            MPE:  No
                  Parallel HDF5:  Yes
                            SRB:  No
                   Threadsafety:  Enabled
             High Level library:  Enabled

[cut]
+ /usr/bin/install -c -m 644 ./h5_drivers.c /var/tmp/portage/sci-libs/hdf5-1.6.7/image/usr/share/doc/hdf5-1.6.7/hdf5/examples/c/.
+ /usr/bin/install -c -m 644 ./ph5example.c /var/tmp/portage/sci-libs/hdf5-1.6.7/image/usr/share/doc/hdf5-1.6.7/hdf5/examples/c/.
make[2]: Leaving directory `/var/tmp/portage/sci-libs/hdf5-1.6.7/work/hdf5-1.6.7/examples'
make[1]: Leaving directory `/var/tmp/portage/sci-libs/hdf5-1.6.7/work/hdf5-1.6.7'
PATH="$PATH:/sbin" ldconfig -n /var/tmp/portage/sci-libs/hdf5-1.6.7/image/usr/lib
QA: Static ELF /sbin/ldconfig
----------------------------------------------------------------------
Libraries have been installed in:
   /var/tmp/portage/sci-libs/hdf5-1.6.7/image/usr/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
!!! dosed: /var/tmp/portage/sci-libs/hdf5-1.6.7/image/var/tmp/portage/sci-libs/hdf5-1.6.7/image/usr/bin/h5cc does not exist
 * 
 * ERROR: sci-libs/hdf5-1.6.7 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_install
 *             environment, line 3192:  Called die
 * The specific snippet of code:
 *       dosed "s/SHLIB:-no/SHLIB:-yes/g" "${D}"usr/bin/h5cc || die "dosed failed"
 *  The die message:
 *   dosed failed
 * 
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/sci-libs/hdf5-1.6.7/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sci-libs/hdf5-1.6.7/temp/environment'.
 * 
 * QA Notice: file does not exist:
 * 
 *      dosed: /var/tmp/portage/sci-libs/hdf5-1.6.7/image/var/tmp/portage/sci-libs/hdf5-1.6.7/image/usr/bin/h5cc does not exist

>>> Failed to emerge sci-libs/hdf5-1.6.7, Log file:

>>>  '/var/tmp/portage/sci-libs/hdf5-1.6.7/temp/build.log'

 * Messages for package sci-libs/hdf5-1.6.7:

 * Requires Fortran 90 support in your mpi library...
 * Requires Fortran 90 support in your mpi library...
 * 
 * ERROR: sci-libs/hdf5-1.6.7 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_install
 *             environment, line 3192:  Called die
 * The specific snippet of code:
 *       dosed "s/SHLIB:-no/SHLIB:-yes/g" "${D}"usr/bin/h5cc || die "dosed failed"
 *  The die message:
 *   dosed failed
Comment 4 Martin Mokrejš 2009-01-07 20:36:18 UTC
Created attachment 177709 [details]
hdf5-1.6.7.ebuild

The ebuild I have used. Still cannot figure out why ${D} is screwed at the end.
Running this manually works:

sed -e  "s/SHLIB:-no/SHLIB:-yes/g" \
    -i /var/tmp/portage/sci-libs/hdf5-1.6.7/image/usr/bin/h5cc