Harnessing the power of modern package management tools for a large Fortran-90-based project: the mutation of ABINIT

PsiK newsletter, Scientific Highlight of the Month 90, 57 - 67 (2008)

Harnessing the power of modern package management tools for a large Fortran-90-based project: the mutation of ABINIT

Yann Pouillon, Xavier Gonze

ABINIT is a Fortran 90 free software application that allows the atomic-scale simulation of properties of matter, thanks to Density Functional Theory and Many-Body Perturbation Theory. It is used by more than thousand individuals, who enjoy the wide spectrum of properties that ABINIT allows to compute easily. Several dozen developers contribute to ABINIT from different parts of the world. In 2004, it was perceived that a change of the paradigm for source and package management was needed, in order to benefit from standard package management tools. Thus started a noticeable mutation of ABINIT. Although the restructuration of the Fortran 90 source directories was needed, the biggest clarification arose from understanding the different kinds of people linked to ABINIT, i.e. end-users, developers and maintainers, and the parts of the package they should have access to or control of. Previously, everyone was modifying the source and build system, while further advances required more specialisation in the community, e.g. the management of external libraries, in growing number, which has to be done by skilled maintainers. To address the issues raised by Fortran compilers, and because the ABINIT developers are mostly scientists, it was decided to provide support beyond the GNU Autotools (nowadays the paradigm for binary/package generation) by developing a new build system on top of it. While building ABINIT is now much simpler for end-users, we have had to deal carefully with the additional complexity encountered by developers and maintainers. We discuss the issues that appeared during the mutation. All these efforts now guarantee further extensibility and maintainability of ABINIT, and have nicely improved its visibility in different communities, with the integration of the packages into the Debian, Gentoo and Ubuntu Linux distributions. Being generic and portable, the new build system might be used in the future by other projects as well.

Additional Information

Preprint - 333.93 KB
More Information

Related Research Areas