diff --git a/pkgs/applications/science/chemistry/quantum-espresso/default.nix b/pkgs/applications/science/chemistry/quantum-espresso/default.nix index 8220cc842fb6..89c5f8a5c2fa 100644 --- a/pkgs/applications/science/chemistry/quantum-espresso/default.nix +++ b/pkgs/applications/science/chemistry/quantum-espresso/default.nix @@ -43,14 +43,14 @@ let in stdenv.mkDerivation rec { - version = "7.2"; + version = "7.4.1"; pname = "quantum-espresso"; src = fetchFromGitLab { owner = "QEF"; repo = "q-e"; rev = "qe-${version}"; - hash = "sha256-0q0QWX4BVjVHjcbKOBpjbBADuL+2S5LAALyrxmjVs4c="; + hash = "sha256-o1CjIuJCTtIud4zeHROksK1Ub9RL/OB8GecAQOIGf1s="; }; # add git submodules manually and fix pkg-config file @@ -77,6 +77,11 @@ stdenv.mkDerivation rec { --replace 'libdir="''${prefix}/@CMAKE_INSTALL_LIBDIR@"' 'libdir="@CMAKE_INSTALL_FULL_LIBDIR@"' ''; + patches = [ + # this patch reverts commit 5fb5a679, which enforced static library builds. + ./findLibxc.patch + ]; + passthru = { inherit mpi; }; nativeBuildInputs = [ diff --git a/pkgs/applications/science/chemistry/quantum-espresso/findLibxc.patch b/pkgs/applications/science/chemistry/quantum-espresso/findLibxc.patch new file mode 100644 index 000000000000..76c592360c97 --- /dev/null +++ b/pkgs/applications/science/chemistry/quantum-espresso/findLibxc.patch @@ -0,0 +1,70 @@ +diff --git a/cmake/FindLibxc.cmake b/cmake/FindLibxc.cmake +index 011a36b77..226f38051 100644 +--- a/cmake/FindLibxc.cmake ++++ b/cmake/FindLibxc.cmake +@@ -1,45 +1,50 @@ +-include(FindPackageHandleStandardArgs) +-find_package(PkgConfig REQUIRED) +- + pkg_search_module(_LIBXC libxc>=${Libxc_FIND_VERSION}) + +-find_library(LIBXC_LIBRARIES NAMES libxc.a ++find_library(LIBXC_LIBRARIES NAMES xc + PATH_SUFFIXES lib + HINTS +- ${LIBXC_ROOT} + ENV EBROOTLIBXC + ENV LIBXCROOT + ${_LIBXC_LIBRARY_DIRS} + DOC "libxc libraries list") + +-find_library(LIBXC_LIBRARIES_F03 NAMES libxcf03.a ++find_library(LIBXC_LIBRARIES_F90 NAMES xcf90 + PATH_SUFFIXES lib + HINTS +- ${LIBXC_ROOT} + ENV EBROOTLIBXC + ENV LIBXCROOT + ${_LIBXC_LIBRARY_DIRS} + DOC "libxc libraries list") + ++find_library(LIBXC_LIBRARIES_F03 NAMES xcf03 ++ PATH_SUFFIXES lib ++ HINTS ++ ENV EBROOTLIBXC ++ ENV LIBXCROOT ++ ${_LIBXC_LIBRARY_DIRS}) + find_path(LIBXC_INCLUDE_DIR NAMES xc.h + PATH_SUFFIXES inc include + HINTS +- ${LIBXC_ROOT} + ${_LIBXC_INCLUDE_DIRS} + ENV EBROOTLIBXC + ENV LIBXCROOT) + ++find_path(LIBXC_INCLUDE_DIR_F90 NAMES xc_f90_lib_m.mod ++ PATH_SUFFIXES inc include ++ HINTS ++ ${_LIBXC_INCLUDE_DIRS} ++ ENV EBROOTLIBXC ++ ENV LIBXCROOT) + find_path(LIBXC_INCLUDE_DIR_F03 NAMES xc_f03_lib_m.mod + PATH_SUFFIXES inc include + HINTS +- ${LIBXC_ROOT} + ${_LIBXC_INCLUDE_DIRS} + ENV EBROOTLIBXC + ENV LIBXCROOT) + + find_package_handle_standard_args(Libxc DEFAULT_MSG LIBXC_LIBRARIES LIBXC_INCLUDE_DIR) + +-if (${Libxc_FOUND} AND LIBXC_LIBRARIES_F03 AND LIBXC_INCLUDE_DIR_F03) ++if (${Libxc_FOUND} AND LIBXC_LIBRARIES_F90 AND LIBXC_LIBRARIES_F03 AND LIBXC_INCLUDE_DIR_F90 AND LIBXC_INCLUDE_DIR_F03) + if(_LIBXC_VERSION) + set(Libxc_VERSION ${_LIBXC_VERSION}) + else() +@@ -53,4 +58,3 @@ if (${Libxc_FOUND} AND LIBXC_LIBRARIES_F03 AND LIBXC_INCLUDE_DIR_F03) + else() + unset(Libxc_FOUND) + endif() +-