aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHonza Macháček <Hloupy.Honza@centrum.cz>2013-09-19 13:07:54 +0200
committerJustin Lecher <jlec@gentoo.org>2013-09-20 11:46:51 +0200
commit54179a5d8e2a97e9d798969df53ae6b35cfb21e6 (patch)
tree3c224fe17524af8977ebb2d27f9b92f05dbafdd7 /sci-physics
parentsci-physics/openm updated to 3.7.6, corrected linking with fortran code using... (diff)
downloadsci-54179a5d8e2a97e9d798969df53ae6b35cfb21e6.tar.gz
sci-54179a5d8e2a97e9d798969df53ae6b35cfb21e6.tar.bz2
sci-54179a5d8e2a97e9d798969df53ae6b35cfb21e6.zip
sci-physics/abinit updated to 7.4.2, the new way of testing adopted. Use of atompaw, bigdft, libxc, and wannier90 made optional, driven by USE flags (atompaw, bigdft, libxc, wannier). USE flag levmar for the new optional Levenberg-Marquardt least-squares algorithm support added. Ebuild cleaned up a bit.
Package-Manager: portage-2.2.1
Diffstat (limited to 'sci-physics')
-rw-r--r--sci-physics/abinit/ChangeLog10
-rw-r--r--sci-physics/abinit/Manifest2
-rw-r--r--sci-physics/abinit/abinit-7.4.2.ebuild (renamed from sci-physics/abinit/abinit-7.2.2.ebuild)277
-rw-r--r--sci-physics/abinit/files/7.4.2-levmar_diag_scaling.patch21
-rw-r--r--sci-physics/abinit/files/7.4.2-syntax.patch21
-rw-r--r--sci-physics/abinit/metadata.xml31
6 files changed, 208 insertions, 154 deletions
diff --git a/sci-physics/abinit/ChangeLog b/sci-physics/abinit/ChangeLog
index a46d8e53a..0e284ae3e 100644
--- a/sci-physics/abinit/ChangeLog
+++ b/sci-physics/abinit/ChangeLog
@@ -2,6 +2,16 @@
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
+*abinit-7.4.2 (19 Sep 2013)
+
+ 19 Sep 2013; Honza Macháček <Hloupy.Honza@centrum.cz> -abinit-7.2.2.ebuild,
+ +abinit-7.4.2.ebuild, +files/7.4.2-levmar_diag_scaling.patch,
+ +files/7.4.2-syntax.patch, metadata.xml:
+ Updated to 7.4.2, the new way of testing adopted. Use of atompaw, bigdft,
+ libxc, and wannier90 made optional, driven by USE flags (atompaw, bigdft,
+ libxc, wannier). USE flag levmar for the new optional Levenberg-Marquardt
+ least-squares algorithm support added. Ebuild cleaned up a bit.
+
20 Jun 2013; Honza Macháček <Hloupy.Honza@centrum.cz>
+files/6.12.3-gui-makefiles.tbz:
files/6.12.3-gui-makefiles.tbz put back, its deletion was a mistake.
diff --git a/sci-physics/abinit/Manifest b/sci-physics/abinit/Manifest
index f000cdcd5..fe8168fdc 100644
--- a/sci-physics/abinit/Manifest
+++ b/sci-physics/abinit/Manifest
@@ -1 +1 @@
-DIST abinit-7.2.2.tar.gz 63683267 SHA256 96f83e3af63e993cb886d9d6cd1c4fac04d50b5e460d5620330441050a909533 SHA512 fbc4898ae4625e12ea22d8f2da63e037eb947320fedf800bd40bd7e0015633ce54b7cb224cee3fc931d015774c51df5f8594ebe26a409cb0325e7a3ab0bf5e4a WHIRLPOOL a149d7ecea9b2b19b94b4e873f1924ce5fe221e037c642d6428727b552dc0c428b288551dda708286995da26080171c385a3ef3ad3766e065073139d4ef0f2e8
+DIST abinit-7.4.2.tar.gz 69150549 SHA256 26fcc60e18071b7579843f43cbe44e79db50466dbaae8b862ad96a8986733f63 SHA512 55132cfbfb26bf22ae486ada7e721188bd436a48299da3a386928776f6d0652d8a19a5e5b70261b84afc6cb6b058fe711171fa09aff637bdb2da11e8df032543 WHIRLPOOL add34b50d2c6843064254a3caffbfa4d9fef644ae98513a1b7681ffb8f2c0f4d31b5b995920a97fa656d82a38aeec313f98e1f91c06166ea83ed6ba87192292d
diff --git a/sci-physics/abinit/abinit-7.2.2.ebuild b/sci-physics/abinit/abinit-7.4.2.ebuild
index a420f51cf..41441a68f 100644
--- a/sci-physics/abinit/abinit-7.2.2.ebuild
+++ b/sci-physics/abinit/abinit-7.4.2.ebuild
@@ -4,7 +4,9 @@
EAPI=5
-inherit autotools-utils eutils flag-o-matic fortran-2 multilib toolchain-funcs
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools-utils eutils flag-o-matic fortran-2 multilib python-single-r1 toolchain-funcs
DESCRIPTION="Find total energy, charge density and electronic structure using density functional theory"
HOMEPAGE="http://www.abinit.org/"
@@ -13,45 +15,47 @@ SRC_URI="http://ftp.abinit.org/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-IUSE="cuda cuda-double -debug +etsf_io +fftw +fftw-threads +fox gsl gui +hdf5 libabinit mpi +netcdf openmp python -test +threads -vdwxc"
+IUSE="atompaw bigdft cuda cuda-double -debug +etsf_io +fftw +fftw-threads +fox gsl +hdf5 levmar -libabinit libxc -lotf mpi +netcdf openmp python scripts -test +threads -vdwxc wannier"
+
+REQUIRED_USE="scripts? ( ${PYTHON_REQUIRED_USE} )
+ test? ( ${PYTHON_REQUIRED_USE} )"
-RDEPEND="~sci-libs/bigdft-abi-1.0.4
- >=sci-libs/libxc-1.2.0-r1[fortran]
- >=sci-physics/atompaw-3.0.1.9-r1[libxc]
+RDEPEND="virtual/blas
+ virtual/lapack
+ atompaw? ( >=sci-physics/atompaw-3.0.1.9-r1[libxc?] )
+ bigdft? ( ~sci-libs/bigdft-abi-1.0.4 )
+ cuda? ( dev-util/nvidia-cuda-sdk )
etsf_io? ( >=sci-libs/etsf_io-1.0.3-r2 )
+ fftw? (
+ sci-libs/fftw:3.0
+ fftw-threads? ( sci-libs/fftw:3.0[threads] )
+ )
fox? ( >=sci-libs/fox-4.1.2-r2[sax] )
+ gsl? ( sci-libs/gsl )
+ hdf5? ( sci-libs/hdf5[fortran] )
+ levmar? ( sci-libs/levmar )
+ libxc? ( >=sci-libs/libxc-2.0.1[fortran] )
netcdf? (
+ sci-libs/netcdf[hdf5?]
|| (
sci-libs/netcdf[fortran]
sci-libs/netcdf-fortran
)
- hdf5? (
- sci-libs/netcdf[hdf5]
- )
- )
- hdf5? ( sci-libs/hdf5[fortran] )
- >=sci-libs/wannier90-1.2-r1
- virtual/blas
- virtual/lapack
- gsl? ( sci-libs/gsl )
- fftw? (
- sci-libs/fftw:3.0
- fftw-threads? ( sci-libs/fftw:3.0[threads] )
)
mpi? ( virtual/mpi )
- python? ( dev-python/numpy )
- cuda? ( dev-util/nvidia-cuda-sdk )"
+ python? ( ${PYTHON_DEPS}
+ dev-python/numpy )
+ scripts? ( ${PYTHON_DEPS}
+ dev-python/numpy
+ dev-python/PyQt4 )
+ wannier? ( >=sci-libs/wannier90-1.2-r1 )"
DEPEND="${RDEPEND}
virtual/pkgconfig
- gui? ( >=virtual/jdk-1.6.0
- app-arch/sharutils
- sys-apps/gawk )
- dev-perl/Text-Markdown"
+ dev-perl/Text-Markdown
+ test? ( ${PYTHON_DEPS} )"
S=${WORKDIR}/${P%[a-z]}
-lat1loc=""
-
DOCS=( AUTHORS ChangeLog COPYING INSTALL KNOWN_PROBLEMS NEWS PACKAGING
README README.ChangeLog README.GPU README.xlf RELNOTES THANKS )
@@ -79,7 +83,7 @@ pkg_setup() {
# Preprocesor macross can make some lines really long
append-fflags -ffree-line-length-none
- # This should be correct.
+ # This should be correct:
# It is gcc-centric because toolchain-funcs.eclass is gcc-centric.
# Should a bug be filed against toolchain-funcs.eclass?
# if use openmp; then
@@ -87,7 +91,7 @@ pkg_setup() {
# die "Please select an openmp capable compiler like gcc[openmp]"
# fi
#
- # This is completely wrong.
+ # This is completely wrong:
# If other compilers than Gnu Compiler Collection can be used by portage,
# their support of OpenMP should be properly tested. This code limits the test
# to gcc, and blindly supposes that other compilers do support OpenMP.
@@ -103,6 +107,58 @@ pkg_setup() {
fortran-2_pkg_setup
+ if use openmp; then
+ # based on _fortran-has-openmp() of fortran-2.eclass
+ local code=ebuild-openmp-flags
+ local ret
+ local openmp
+
+ pushd "${T}"
+ cat <<- EOF > "${code}.c"
+ # include <omp.h>
+ main () {
+ int nthreads;
+ nthreads=omp_get_num_threads();
+ }
+ EOF
+
+ for openmp in -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp; do
+ ${CC} ${openmp} "${code}.c" -o "${code}.o" &>> "${T}"/_c_compile_test.log
+ ret=$?
+ (( ${ret} )) || break
+ done
+
+ rm -f "${code}.*"
+ popd
+
+ if (( ${ret} )); then
+ die "Please switch to an openmp compatible C compiler"
+ else
+ export CC="${CC} ${openmp}"
+ fi
+
+ pushd "${T}"
+ cat <<- EOF > "${code}.f"
+ 1 call omp_get_num_threads
+ 2 end
+ EOF
+
+ for openmp in -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp; do
+ ${FC} ${openmp} "${code}.f" -o "${code}.o" &>> "${T}"/_f_compile_test.log
+ ret=$?
+ (( ${ret} )) || break
+ done
+
+ rm -f "${code}.*"
+ popd
+
+ if (( ${ret} )); then
+ die "Please switch to an openmp compatible fortran compiler"
+ else
+ export FC="${FC} ${openmp}"
+ fi
+ fi
+
# Sort out some USE options
if use fftw-threads && ! use fftw; then
ewarn "fftw-threads set but fftw not used, ignored"
@@ -110,32 +166,9 @@ pkg_setup() {
if use cuda-double && ! use cuda; then
ewarn "cuda-double set but cuda not used, ignored"
fi
- if use gui; then
- lat1loc="$(locale |awk '/LC_CTYPE="(.*)"/{sub("LC_CTYPE=\"",""); sub("\" *$", ""); print}')"
- if locale charmap |grep -i "\<iso885915\?\>"; then
- einfo "Good, locale compatible with the GUI build"
- else
- ewarn "The locale ${lat1loc} incompatible with the GUI build"
- if latloc=`locale -a| grep -i "\<iso885915\?\>"`; then
- if echo "${latloc}" |grep -q "^fr"; then
- lat1loc="$(echo "${latloc}" | grep -im1 "^fr")"
- else
- lat1loc="$(echo "${latloc}" | grep -im1 "iso88591")"
- fi
- einfo "Will use ${lat1loc} to build the GUI"
- else
- ewarn "No ISO-8859-1 nor ISO-8859-15 locale available, the GUI build may crash"
- fi
- fi
- fi
-}
-src_unpack() {
- default_src_unpack
- if use gui; then
- pushd "${S}" > /dev/null
- tar -xjf "${FILESDIR}"/6.12.3-gui-makefiles.tbz
- popd > /dev/null
+ if use scripts || use test; then
+ python-single-r1_pkg_setup
fi
}
@@ -145,45 +178,32 @@ src_prepare() {
"${FILESDIR}"/6.2.2-change-default-directories.patch \
"${FILESDIR}"/6.12.1-autoconf.patch \
"${FILESDIR}"/6.12.1-xmalloc.patch \
- "${FILESDIR}"/7.0.4-test_dirs.patch
+ "${FILESDIR}"/7.4.2-levmar_diag_scaling.patch \
+ "${FILESDIR}"/7.4.2-syntax.patch
eautoreconf
sed -e"s/\(grep '\^-\)\(\[LloW\]\)'/\1\\\(\2\\\|pthread\\\)'/g" -i configure
-
- if use gui; then
- pushd gui > /dev/null
- eautoreconf
- popd > /dev/null
- fi
}
src_configure() {
- local openmp=""
- if use openmp; then
- # based on _fortran-has-openmp() of fortran-2.eclass
- local fcode=ebuild-openmp-flags.f
- local _fc=$(tc-getFC)
-
- cat <<- EOF > "${fcode}"
- 1 call omp_get_num_threads
- 2 end
- EOF
-
- for openmp in -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp; do
- ${_fc} ${openmp} "${fcode}" -o "${fcode}.x" && break
- done
-
- rm -f "${fcode}.*"
- fi
- local libs=""
local modules="$(FoX-config --sax --fcflags)"
- local FoX_libs="${libs} $(FoX-config --sax --libs)"
+ local FoX_libs="$(FoX-config --sax --libs)"
+
local trio_flavor=""
use etsf_io && trio_flavor="${trio_flavor}+etsf_io"
use fox && trio_flavor="${trio_flavor}+fox"
use netcdf && trio_flavor="${trio_flavor}+netcdf"
test "no${trio_flavor}" = "no" && trio_flavor="none"
+
local netcdff_libs="-lnetcdff"
use hdf5 && netcdff_libs="${netcdff_libs} -lhdf5_fortran"
+
+ local dft_flavor=""
+ use atompaw && dft_flavor="${dft_flavor}+atompaw"
+ use bigdft && dft_flavor="${dft_flavor}+bigdft"
+ use libxc && dft_flavor="${dft_flavor}+libxc"
+ use wannier && dft_flavor="${dft_flavor}+wannier90"
+ test "no${dft_flavor}" = "no" && dft_flavor="none"
+
local fft_flavor="fftw3"
local fft_libs=""
# The fftw threads support is protected by black magick.
@@ -202,6 +222,7 @@ src_configure() {
fft_libs="${fft_libs} $($(tc-getPKG_CONFIG) --libs fftw3)"
fft_libs="${fft_libs} $($(tc-getPKG_CONFIG) --libs fftw3f)"
fi
+
local gpu_flavor="none"
if use cuda; then
gpu_flavor="cuda-single"
@@ -213,18 +234,20 @@ src_configure() {
local myeconfargs=(
--enable-clib
--enable-exports
- $(use_enable gui)
$(use_enable debug debug enhanced)
$(use_enable mpi)
$(use_enable mpi mpi-io)
$(use_enable openmp)
$(use_enable vdwxc)
+ $(use_enable lotf)
$(use_enable cuda gpu)
"$(use cuda && echo "--with-gpu-flavor=${gpu_flavor}")"
"$(use cuda && echo "--with-gpu-prefix=/opt/cuda/")"
"$(use gsl && echo "--with-math-flavor=gsl")"
"$(use gsl && echo "--with-math-incs=$($(tc-getPKG_CONFIG) --cflags gsl)")"
"$(use gsl && echo "--with-math-libs=$($(tc-getPKG_CONFIG) --libs gsl)")"
+ "$(use levmar && echo "--with-algo-flavor=levmar")"
+ "$(use levmar && echo "--with-algo-libs=-llevmar")"
--with-linalg-flavor="atlas"
--with-linalg-libs="$($(tc-getPKG_CONFIG) --libs lapack)"
--with-trio-flavor="${trio_flavor}"
@@ -233,36 +256,26 @@ src_configure() {
"$(use fox && echo "--with-fox-incs=${modules}")"
"$(use fox && echo "--with-fox-libs=${FoX_libs}")"
"$(use etsf_io && echo "--with-etsf-io-incs=${modules}")"
- "$(use etsf_io && echo "--with-etsf-io-libs=${libs} -letsf_io -letsf_io_utils -letsf_io_low_level")"
- --with-dft-flavor="libxc+bigdft+atompaw+wannier90"
- --with-libxc-incs="${modules}"
- --with-libxc-libs="${libs} -lxc"
- --with-bigdft-incs="${modules}"
- --with-bigdft-libs="$($(tc-getPKG_CONFIG) --libs bigdft)"
- --with-atompaw-incs="${modules}"
- --with-atompaw-libs="${libs} -latompaw"
- --with-wannier90-bins="/usr/bin"
- --with-wannier90-incs="${modules}"
- --with-wannier90-libs="${libs} -lwannier $($(tc-getPKG_CONFIG) --libs lapack)"
+ "$(use etsf_io && echo "--with-etsf-io-libs=-letsf_io -letsf_io_utils -letsf_io_low_level")"
+ --with-dft-flavor="${dft_flavor}"
+ "$(use atompaw && echo "--with-atompaw-incs=${modules}")"
+ "$(use atompaw && echo "--with-atompaw-libs=-latompaw")"
+ "$(use bigdft && echo "--with-bigdft-incs=${modules}")"
+ "$(use bigdft && echo "--with-bigdft-libs=$($(tc-getPKG_CONFIG) --libs bigdft)")"
+ "$(use libxc && echo "--with-libxc-incs=${modules}")"
+ "$(use libxc && echo "--with-libxc-libs=-lxc")"
+ "$(use wannier && echo "--with-wannier90-bins=/usr/bin")"
+ "$(use wannier && echo "--with-wannier90-incs=${modules}")"
+ "$(use wannier && echo "--with-wannier90-libs=-lwannier $($(tc-getPKG_CONFIG) --libs lapack)")"
"$(use fftw && echo "--with-fft-flavor=${fft_flavor}")"
"$(use fftw && echo "--with-fft-incs=-I/usr/include")"
"$(use fftw && echo "--with-fft-libs=${fft_libs}")"
--with-timer-flavor="abinit"
LD="$(tc-getLD)"
- FCFLAGS="${FCFLAGS:- ${FFLAGS:- -O2}} ${openmp} ${modules} -I/usr/include"
+ FCFLAGS="${FCFLAGS:- ${FFLAGS:- -O2}} ${modules} -I/usr/include"
)
MARKDOWN=Markdown.pl autotools-utils_src_configure
-
- if use gui; then
- # autotools-utils_src_configure() part expanded
- _check_build_dir
- pushd "${AUTOTOOLS_BUILD_DIR}" > /dev/null
- mkdir -p gui
- cd gui
- ECONF_SOURCE="${S}"/gui econf UUDECODE="uudecode"
- popd > /dev/null
- fi
}
src_compile() {
@@ -275,59 +288,22 @@ src_compile() {
# Can Abinit use external libabinit.a?
use libabinit && autotools-utils_src_compile libabinit.a
- if use gui; then
- #autotools-utils_src_compile() expanded
- # _check_build_dir has already been called
- pushd "${AUTOTOOLS_BUILD_DIR}" > /dev/null
- # now what the function cannot be called to do
- cd gui
- LC_CTYPE="${lat1loc}" emake || die "Making GUI failed"
- popd > /dev/null
- fi
-
sed -i -e's/libatlas/lapack/' "${AUTOTOOLS_BUILD_DIR}"/config.pc
}
src_test() {
- einfo "The tests take quite a while, easily several hours"
+ einfo "The tests take quite a while, easily several hours or even days"
# autotools-utils_src_test() expanded
_check_build_dir
pushd "${AUTOTOOLS_BUILD_DIR}" > /dev/null
# again something the autotools-utils function cannot be called to do
# now quite a lot of work actually
- cd tests
- emake tests_acc || ewarn "Accuracy tests failed"
- emake tests_paw || ewarn "PAW tests failed"
- emake tests_gw || ewarn "GW tests failed"
- emake tests_gw_paw || ewarn "GW-PAW tests failed"
- emake tests_bs || ewarn "BSE tests failed"
- emake tests_tddft || ewarn "TDDFT tests failed"
- emake tests_eph || ewarn "Elphon tests failed"
-
- local REPORT
- for REPORT in $(find . -name report); do
- REPORT=${REPORT#*/}
- elog "Parameters and unusual results for ${REPORT%%/*} tests"
- echo "Parameters and unusual results for ${REPORT%%/*} tests" >>tests_summary.txt
- while read line; do
- elog "${line}"
- echo "${line}" >>tests_summary.txt
- done \
- < <(grep -v -e succeeded -e passed ${REPORT})
- done
-
- local testdir
- find . -name "tmp-test*" -print | \
- while read testdir; do
- if [ -e summary_of_tests.tar ]; then
- tar rvf summary_of_tests.tar ${testdir}
- else tar cvf summary_of_tests.tar ${testdir}
- fi
- done
+ mkdir -p tests
+
+ python2 "${S}"/tests/runtests.py -w tests/ -b "${AUTOTOOLS_BUILD_DIR}"
+
popd > /dev/null
- elog "The full test results will be installed as summary_of_tests.tar.bz2."
- elog "Also a concise report tests_summary.txt is installed."
}
src_install() {
@@ -338,15 +314,9 @@ src_install() {
use libabinit && dolib libabinit.a
- if use gui; then
- pushd gui > /dev/null
- emake DESTDIR="${D}" install || die "The GUI install failed"
- popd > /dev/null
- fi
-
if use test; then
- for dc in tests_summary.txt summary_of_tests.tar; do
- test -e tests/"${dc}" && dodoc tests/"${dc}" || ewarn "Copying tests results failed"
+ for dc in results.tar.gz results.txt suite_report.html; do
+ test -e tests/"${dc}" && dodoc tests/"${dc}" || ewarn "Copying tests results ${dc} failed"
done
fi
@@ -369,6 +339,11 @@ src_install() {
dohtml -r "${HTML_DOCS[@]}" || die "dohtml failed"
fi
+ if use scripts; then
+ insinto /usr/share/"${P}"
+ doins -r scripts
+ fi
+
# Remove libtool files and unnecessary static libs
prune_libtool_files
}
diff --git a/sci-physics/abinit/files/7.4.2-levmar_diag_scaling.patch b/sci-physics/abinit/files/7.4.2-levmar_diag_scaling.patch
new file mode 100644
index 000000000..346146616
--- /dev/null
+++ b/sci-physics/abinit/files/7.4.2-levmar_diag_scaling.patch
@@ -0,0 +1,21 @@
+diff -Naurp abinit-7.4.2.orig/src/02_clib/calling_levmar.c abinit-7.4.2/src/02_clib/calling_levmar.c
+--- abinit-7.4.2.orig/src/02_clib/calling_levmar.c 2013-09-08 07:24:13.000000000 +0000
++++ abinit-7.4.2/src/02_clib/calling_levmar.c 2013-09-16 14:59:06.574702521 +0000
+@@ -149,7 +149,7 @@ double opts[LM_OPTS_SZ], info[LM_INFO_SZ
+ // if (coeffs[i+2]>-1E-16){
+ /* invoke the optimisation function with box boundaries*/
+ ret=dlevmar_bc_dif(dim_screening, coeffs, yvals, c_ncoeffs, c_nvals, \
+- lower_bounds, upper_bounds, 3000, opts, info, NULL, NULL, \
++ lower_bounds, upper_bounds, NULL, 3000, opts, info, NULL, NULL, \
+ (void *)&adata); // Box boundary conditions without Jacobian
+ //}
+ //}
+@@ -219,7 +219,7 @@ double opts[LM_OPTS_SZ], info[LM_INFO_SZ
+ // if (coeffs[i+2]>-1E-16){
+ /* invoke the optimisation function with box boundaries*/
+ ret=dlevmar_bc_dif(dre_and_im_screening, coeffs, yvals, c_ncoeffs, c_nvals, \
+- lower_bounds, upper_bounds, 1000, opts, info, NULL, NULL, \
++ lower_bounds, upper_bounds, NULL, 1000, opts, info, NULL, NULL, \
+ (void *)&adata); // Box boundary conditions without Jacobian
+ //}
+ //}
diff --git a/sci-physics/abinit/files/7.4.2-syntax.patch b/sci-physics/abinit/files/7.4.2-syntax.patch
new file mode 100644
index 000000000..87026d926
--- /dev/null
+++ b/sci-physics/abinit/files/7.4.2-syntax.patch
@@ -0,0 +1,21 @@
+diff -Naurp abinit-7.4.2.orig/src/98_main/mrgscr.F90 abinit-7.4.2/src/98_main/mrgscr.F90
+--- abinit-7.4.2.orig/src/98_main/mrgscr.F90 2013-09-08 07:24:13.000000000 +0000
++++ abinit-7.4.2/src/98_main/mrgscr.F90 2013-09-17 10:32:55.212877871 +0000
+@@ -2309,7 +2309,7 @@ program mrgscr
+
+ case(2) ! Fit everything
+
+- if (is_scr/=.true.) then
++ if (is_scr.neqv..true.) then
+ write(std_out,'(2(a))') ch10,&
+ & ' Complete fits can only be done for _SCR file for now. Exiting ...'
+ goto 100
+@@ -2387,7 +2387,7 @@ program mrgscr
+
+ !!OMP *** OPENMP SECTION *** Added by MS
+ !$OMP PARALLEL SHARED(Hscr_file,epsm1,nfreqre,epsm1_pole, &
+-!$OMP is_scr,npoles,std_out,iqibz,one) &
++!$OMP is_scr,npoles,std_out,iqibz) &
+ !$OMP PRIVATE(ig1,ig2,refval,imfval,phase)
+ !!OMP write(std_out,'(a,i0)') ' Entering openmp loop. Number of threads: ',omp_get_num_threads()
+ ABI_MALLOC(refval,(Hscr_file(1)%nomega))
diff --git a/sci-physics/abinit/metadata.xml b/sci-physics/abinit/metadata.xml
index e8b3b1d6a..e0342c8a8 100644
--- a/sci-physics/abinit/metadata.xml
+++ b/sci-physics/abinit/metadata.xml
@@ -15,6 +15,12 @@ Many-Body Perturbation Theory (the GW approximation). In addition to the main
ABINIT code, different utility programs are provided.
</longdescription>
<use>
+ <flag name="atompaw">Enable support for atompaw, a Projector Augmented Waves atomic data generator</flag>
+ </use>
+ <use>
+ <flag name="bigdft">Enable support for BigDFT, DFT package using wavelet basis set</flag>
+ </use>
+ <use>
<flag name="cuda">Enable support for nVidia CUDA</flag>
</use>
<use>
@@ -34,7 +40,16 @@ ABINIT code, different utility programs are provided.
<flag name="fox">Enable support for FoX Fortran XML library</flag>
</use>
<use>
- <flag name="gui">Build the abinit GUI (requires java)</flag>
+ <flag name="gui">
+ Build the abinit GUI (requires java);
+ since 7.4.x a separate package
+ </flag>
+ </use>
+ <use>
+ <flag name="levmar">
+ Enable support for <pkg>sci-libs/levmar</pkg>,
+ the Levenberg-Marquardt least-squares optimisation
+ </flag>
</use>
<use>
<flag name="libabinit">
@@ -43,6 +58,18 @@ ABINIT code, different utility programs are provided.
</flag>
</use>
<use>
- <flag name="vdwxc">Activate van der Waals exchange-correlation</flag>
+ <flag name="libxc">Enable support for libxc, an exchange-correlation potentials library</flag>
+ </use>
+ <use>
+ <flag name="lotf">Activate the Learn on The Fly method (LOTF) for Molecular Dynamics</flag>
+ </use>
+ <use>
+ <flag name="scripts">Install helper scripts, mostly Python</flag>
+ </use>
+ <use>
+ <flag name="vdwxc">Activate van der Waals exchange-correlation correction</flag>
+ </use>
+ <use>
+ <flag name="wannier">Enable support for wannier90, a maximally localized Wannier functions (MLWFs) calculator</flag>
</use>
</pkgmetadata>