diff --git a/.ci_support/linux_64_mpimpich.yaml b/.ci_support/linux_64_mpimpich.yaml index 0be47a7..65fb3c2 100644 --- a/.ci_support/linux_64_mpimpich.yaml +++ b/.ci_support/linux_64_mpimpich.yaml @@ -11,7 +11,7 @@ cdt_name: channel_sources: - conda-forge channel_targets: -- conda-forge siesta_rc +- conda-forge main docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 fortran_compiler: diff --git a/.ci_support/linux_64_mpinompi.yaml b/.ci_support/linux_64_mpinompi.yaml index 41a448f..c3ece53 100644 --- a/.ci_support/linux_64_mpinompi.yaml +++ b/.ci_support/linux_64_mpinompi.yaml @@ -11,7 +11,7 @@ cdt_name: channel_sources: - conda-forge channel_targets: -- conda-forge siesta_rc +- conda-forge main docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 fortran_compiler: diff --git a/.ci_support/linux_64_mpiopenmpi.yaml b/.ci_support/linux_64_mpiopenmpi.yaml index 023220f..33b3aa3 100644 --- a/.ci_support/linux_64_mpiopenmpi.yaml +++ b/.ci_support/linux_64_mpiopenmpi.yaml @@ -11,7 +11,7 @@ cdt_name: channel_sources: - conda-forge channel_targets: -- conda-forge siesta_rc +- conda-forge main docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 fortran_compiler: diff --git a/.ci_support/osx_64_mpimpich.yaml b/.ci_support/osx_64_mpimpich.yaml index 8d76c54..9bd3887 100644 --- a/.ci_support/osx_64_mpimpich.yaml +++ b/.ci_support/osx_64_mpimpich.yaml @@ -11,7 +11,7 @@ c_stdlib_version: channel_sources: - conda-forge channel_targets: -- conda-forge siesta_rc +- conda-forge main fortran_compiler: - gfortran fortran_compiler_version: @@ -24,6 +24,8 @@ liblapack: - 3.9 *netlib libnetcdf: - 4.9.2 +llvm_openmp: +- '16' lua: - '5' macos_machine: diff --git a/.ci_support/osx_64_mpinompi.yaml b/.ci_support/osx_64_mpinompi.yaml index e59a56d..0539c58 100644 --- a/.ci_support/osx_64_mpinompi.yaml +++ b/.ci_support/osx_64_mpinompi.yaml @@ -11,7 +11,7 @@ c_stdlib_version: channel_sources: - conda-forge channel_targets: -- conda-forge siesta_rc +- conda-forge main fortran_compiler: - gfortran fortran_compiler_version: @@ -24,6 +24,8 @@ liblapack: - 3.9 *netlib libnetcdf: - 4.9.2 +llvm_openmp: +- '16' lua: - '5' macos_machine: diff --git a/.ci_support/osx_64_mpiopenmpi.yaml b/.ci_support/osx_64_mpiopenmpi.yaml index 847243f..27d1ed6 100644 --- a/.ci_support/osx_64_mpiopenmpi.yaml +++ b/.ci_support/osx_64_mpiopenmpi.yaml @@ -11,7 +11,7 @@ c_stdlib_version: channel_sources: - conda-forge channel_targets: -- conda-forge siesta_rc +- conda-forge main fortran_compiler: - gfortran fortran_compiler_version: @@ -24,6 +24,8 @@ liblapack: - 3.9 *netlib libnetcdf: - 4.9.2 +llvm_openmp: +- '16' lua: - '5' macos_machine: diff --git a/.ci_support/osx_arm64_mpimpich.yaml b/.ci_support/osx_arm64_mpimpich.yaml index b409e5a..71ec007 100644 --- a/.ci_support/osx_arm64_mpimpich.yaml +++ b/.ci_support/osx_arm64_mpimpich.yaml @@ -11,7 +11,7 @@ c_stdlib_version: channel_sources: - conda-forge channel_targets: -- conda-forge siesta_rc +- conda-forge main fortran_compiler: - gfortran fortran_compiler_version: @@ -24,6 +24,8 @@ liblapack: - 3.9 *netlib libnetcdf: - 4.9.2 +llvm_openmp: +- '16' lua: - '5' macos_machine: diff --git a/.ci_support/osx_arm64_mpinompi.yaml b/.ci_support/osx_arm64_mpinompi.yaml index b3cc60a..c5d7f07 100644 --- a/.ci_support/osx_arm64_mpinompi.yaml +++ b/.ci_support/osx_arm64_mpinompi.yaml @@ -11,7 +11,7 @@ c_stdlib_version: channel_sources: - conda-forge channel_targets: -- conda-forge siesta_rc +- conda-forge main fortran_compiler: - gfortran fortran_compiler_version: @@ -24,6 +24,8 @@ liblapack: - 3.9 *netlib libnetcdf: - 4.9.2 +llvm_openmp: +- '16' lua: - '5' macos_machine: diff --git a/.ci_support/osx_arm64_mpiopenmpi.yaml b/.ci_support/osx_arm64_mpiopenmpi.yaml index ace0667..d9c46c0 100644 --- a/.ci_support/osx_arm64_mpiopenmpi.yaml +++ b/.ci_support/osx_arm64_mpiopenmpi.yaml @@ -11,7 +11,7 @@ c_stdlib_version: channel_sources: - conda-forge channel_targets: -- conda-forge siesta_rc +- conda-forge main fortran_compiler: - gfortran fortran_compiler_version: @@ -24,6 +24,8 @@ liblapack: - 3.9 *netlib libnetcdf: - 4.9.2 +llvm_openmp: +- '16' lua: - '5' macos_machine: diff --git a/.gitattributes b/.gitattributes index b4a0401..7f32763 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,6 +1,6 @@ * text=auto -*.patch text +*.patch binary *.diff binary meta.yaml text eol=lf build.sh text eol=lf diff --git a/README.md b/README.md index 4155826..656a51d 100644 --- a/README.md +++ b/README.md @@ -122,14 +122,14 @@ Current release info Installing siesta ================= -Installing `siesta` from the `conda-forge/label/siesta_rc` channel can be achieved by adding `conda-forge/label/siesta_rc` to your channels with: +Installing `siesta` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: ``` -conda config --add channels conda-forge/label/siesta_rc +conda config --add channels conda-forge conda config --set channel_priority strict ``` -Once the `conda-forge/label/siesta_rc` channel has been enabled, `siesta` can be installed with `conda`: +Once the `conda-forge` channel has been enabled, `siesta` can be installed with `conda`: ``` conda install siesta @@ -144,26 +144,26 @@ mamba install siesta It is possible to list all of the versions of `siesta` available on your platform with `conda`: ``` -conda search siesta --channel conda-forge/label/siesta_rc +conda search siesta --channel conda-forge ``` or with `mamba`: ``` -mamba search siesta --channel conda-forge/label/siesta_rc +mamba search siesta --channel conda-forge ``` Alternatively, `mamba repoquery` may provide more information: ``` # Search all versions available on your platform: -mamba repoquery search siesta --channel conda-forge/label/siesta_rc +mamba repoquery search siesta --channel conda-forge # List packages depending on `siesta`: -mamba repoquery whoneeds siesta --channel conda-forge/label/siesta_rc +mamba repoquery whoneeds siesta --channel conda-forge # List dependencies of `siesta`: -mamba repoquery depends siesta --channel conda-forge/label/siesta_rc +mamba repoquery depends siesta --channel conda-forge ``` diff --git a/recipe/build.sh b/recipe/build.sh index cf9b7c5..b9d9e94 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -39,13 +39,6 @@ if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then "-DWITH_QP_EXITCODE=0" "-DWITH_XDP_EXITCODE=0" - # Avoid SIESTA setting its default fortran flags for release. - # In particular, it sets -march=native, which does not work - # when cross compiling (or at least for osx_arm64) - "-DFortran_FLAGS_RELEASE=-O3" - "-DC_FLAGS_RELEASE=-O3" - "-DCXX_FLAGS_RELEASE=-O3" - # Force specify the kinds for cross-compilation "-DSIESTA_REAL_KINDS='4;8'" "-DSIESTA_INTEGER_KINDS='4;8'" @@ -127,6 +120,13 @@ cmake_opts=( # Tests should not be runned with MPI (problems with ssh | rsh) "-DSIESTA_TESTS_MPI_NUMPROCS=1" + + # Avoid SIESTA setting its default fortran flags for release. + # In particular, it sets -march=native, which does not work + # when cross compiling (or at least for osx_arm64) + "-DFortran_FLAGS_RELEASE=-O3" + "-DC_FLAGS_RELEASE=-O3" + "-DCXX_FLAGS_RELEASE=-O3" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_LIBDIR=lib" diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index ba1fc27..788ed37 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -2,7 +2,3 @@ mpi: - nompi - mpich - openmpi - -channel_targets: - # Remove this for proper releases - - conda-forge siesta_rc diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 11c7d50..2e5cc11 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,8 +1,8 @@ {% set name = "siesta" %} -{% set siesta_version = "5.0.0-beta2" %} +{% set siesta_version = "5.0.0" %} # This changes the X.Y.Z-betaW to X.Y.ZrcW {% set version = siesta_version.replace("-beta", "b") %} -{% set sha256 = "679c28fc5bd6416782cf3a9ad08bdfce85e0aa85703fd8fef7b12213530cceb7" %} +{% set sha256 = "b7c18e0bbfb4c8707c483fc516953c10ea5489de43a744957a9b0e10fb4ae5af" %} package: name: {{ name }} @@ -16,7 +16,7 @@ source: - patches/mpi_interfaces_crosscomp.patch # Default build version to be stepped with every new build! -{% set build = 1 %} +{% set build = 0 %} # Define build matrix for MPI vs. non-mpi ## ensure mpi is defined (needed for conda-smithy recipe-lint) @@ -84,7 +84,7 @@ requirements: - elpa * {{ mpi_prefix }}_* # [mpi != 'nompi' and not (osx and arm64)] about: - home: https://gitlab.com/siesta-project + home: https://siesta-project.org/siesta/ license: GPL-3.0-only license_family: GPL license_file: COPYING @@ -99,8 +99,8 @@ about: that its accuracy and cost can be tuned in a wide range, from quick exploratory calculations to highly accurate simulations matching the quality of other approaches, such as plane-wave and all-electron methods. - doc_url: https://docs.siesta-project.org/projects/siesta/en/latest/ - dev_url: https://gitlab.com/siesta-project/siesta + doc_url: https://docs.siesta-project.org/projects/siesta/ + dev_url: https://gitlab.com/siesta-project/siesta/ extra: recipe-maintainers: diff --git a/recipe/patches/mpi_interfaces_crosscomp.patch b/recipe/patches/mpi_interfaces_crosscomp.patch index d603822..e050782 100644 --- a/recipe/patches/mpi_interfaces_crosscomp.patch +++ b/recipe/patches/mpi_interfaces_crosscomp.patch @@ -1,8 +1,8 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 335cc12c8..0e008af26 100644 +index f52a73047..2728a1d41 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -564,6 +564,8 @@ siesta_print_feature_info( +@@ -549,6 +549,8 @@ siesta_print_feature_info( SIESTA_EXECUTABLE_SUFFIX SIESTA_SHARED_LIBRARY_SUFFIX SIESTA_STATIC_LIBRARY_SUFFIX @@ -48,10 +48,10 @@ index c5e902f3a..7b3e035d5 100644 # Empty line message(${_mode} "Done with build information") diff --git a/INSTALL.md b/INSTALL.md -index 5f857cc25..352610076 100644 +index 7b1251cc9..e7a276f47 100644 --- a/INSTALL.md +++ b/INSTALL.md -@@ -515,6 +515,20 @@ profiling options are: +@@ -489,6 +489,20 @@ profiling options are: The EXTRAE library by BSC can be used to generate MPI traces, but its configuration is not yet supported by the CMake build system. See the next section. @@ -73,7 +73,7 @@ index 5f857cc25..352610076 100644 Some options are not yet supported directly by the CMake framework, but diff --git a/Src/MPI/CMakeLists.txt b/Src/MPI/CMakeLists.txt -index bb6f806f2..c1d7c12ae 100644 +index f415a52f8..c1d7c12ae 100644 --- a/Src/MPI/CMakeLists.txt +++ b/Src/MPI/CMakeLists.txt @@ -4,6 +4,7 @@ add_library(mpi_siesta @@ -145,7 +145,7 @@ index bb6f806f2..c1d7c12ae 100644 - OUTPUT Interfaces.f90 VS.uses V_S.uses - # Dependency targets - DEPENDS mpi_int_explorer mpi_kind_explorer -- COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/generate.sh +- COMMAND sh "${CMAKE_CURRENT_SOURCE_DIR}/generate.sh" + OUTPUT Interfaces.f90 + DEPENDS mpi_kind_explorer + COMMAND sh "${CMAKE_CURRENT_SOURCE_DIR}/generate_real.sh" ${SIESTA_REAL_KINDS_STR} @@ -162,14 +162,14 @@ index bb6f806f2..c1d7c12ae 100644 + ) diff --git a/Src/MPI/generate.sh b/Src/MPI/generate.sh deleted file mode 100644 -index 3f1c80861..000000000 +index 26c445bb6..000000000 --- a/Src/MPI/generate.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/sh -# -### set -x --dir=$(dirname $0) +-dir=$(dirname "$0") -# -echo " ===> Generating module files from templates..." - @@ -226,12 +226,11 @@ index 3f1c80861..000000000 -done diff --git a/Src/MPI/generate_integer.sh b/Src/MPI/generate_integer.sh new file mode 100644 -index 000000000..76c7aeebd +index 000000000..1d10b0640 --- /dev/null +++ b/Src/MPI/generate_integer.sh -@@ -0,0 +1,30 @@ +@@ -0,0 +1,29 @@ +#!/bin/sh -+# +### set -x +dir=$(dirname "$0") + @@ -262,13 +261,12 @@ index 000000000..76c7aeebd +done diff --git a/Src/MPI/generate_real.sh b/Src/MPI/generate_real.sh new file mode 100644 -index 000000000..22c7f1c7d +index 000000000..06f5357e1 --- /dev/null +++ b/Src/MPI/generate_real.sh -@@ -0,0 +1,45 @@ +@@ -0,0 +1,44 @@ +#!/bin/sh +### set -x -+# +dir=$(dirname "$0") + +echo " ===> Generating real, logical, character module files from templates..."