conda-forge / gromacs-feedstock

A conda-smithy repository for gromacs.
BSD 3-Clause "New" or "Revised" License
0 stars 9 forks source link

gromacs v2023.1 #14

Closed regro-cf-autotick-bot closed 1 year ago

regro-cf-autotick-bot commented 1 year ago

It is very likely that the current package version for this feedstock is out of date.

Checklist before merging this PR:

Information about this PR:

  1. Feel free to push to the bot's branch to update this PR if needed.
  2. The bot will almost always only open one PR per version.
  3. The bot will stop issuing PRs if more than 3 version bump PRs generated by the bot are open. If you don't want to package a particular version please close the PR.
  4. If you want these PRs to be merged automatically, make an issue with code>@conda-forge-admin,</codeplease add bot automerge in the title and merge the resulting PR. This command will add our bot automerge feature to your feedstock.
  5. If this PR was opened in error or needs to be updated please add the bot-rerun label to this PR. The bot will close this PR and schedule another one. If you do not have permissions to add this label, you can use the phrase code>@<space/conda-forge-admin, please rerun bot in a PR comment to have the conda-forge-admin add it for you.

Dependency Analysis

We couldn't run dependency analysis due to an internal error in the bot. :/ Help is very welcome!

This PR was created by the regro-cf-autotick-bot. The regro-cf-autotick-bot is a service to automatically track the dependency graph, migrate packages, and propose package version updates for conda-forge. Feel free to drop us a line if there are any issues! This PR was generated by https://github.com/regro/cf-scripts/actions/runs/4767227561, please use this URL for debugging.

conda-forge-webservices[bot] commented 1 year ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

douglowe commented 1 year ago

OSX builds are failing with this error message:

-- Performing Test CXX17_COMPILES_SIMPLY
-- Performing Test CXX17_COMPILES_SIMPLY - Failed
-- Performing Test USING_LIBSTDCXX
-- Performing Test USING_LIBSTDCXX - Failed
-- Looking for C++ include filesystem
-- Looking for C++ include filesystem - found
-- Performing Test CXX_FILESYSTEM_NO_LINK_NEEDED
-- Performing Test CXX_FILESYSTEM_NO_LINK_NEEDED - Failed
-- Performing Test CXX_FILESYSTEM_STDCPPFS_NEEDED
-- Performing Test CXX_FILESYSTEM_STDCPPFS_NEEDED - Failed
-- Performing Test CXX_FILESYSTEM_CPPFS_NEEDED
-- Performing Test CXX_FILESYSTEM_CPPFS_NEEDED - Failed
CMake Error at cmake/FindLibStdCpp.cmake:182 (get_target_property):
  get_target_property() called with non-existent target "std::filesystem".
Call Stack (most recent call first):
  CMakeLists.txt:91 (find_package)

-- Performing Test CXX17_COMPILES_WHEN_LINKING_FS_LIBRARY
-- Performing Test CXX17_COMPILES_WHEN_LINKING_FS_LIBRARY - Failed
-- Performing Test CXX17_COMPILES_WITHOUT_STD_FILESYSTEM
CMake Error at cmake/FindLibStdCpp.cmake:205 (message):
  The C++ compiler cannot find a working standard library that supports
  std::filesystem even though a library for std::filesystem was found.  The
  compiler was not trying to use libstdc++.  The GROMACS build system cannot
  handle this case.  Please use a working C++17 compiler and standard
  library.
Call Stack (most recent call first):
  CMakeLists.txt:91 (find_package)

I will try rolling back to version 14 for the OSX cxx and llvm_openmp packages, to see if this fixes the issue.

mabraham commented 1 year ago

OSX builds are failing with this error message:

-- Performing Test CXX17_COMPILES_SIMPLY
-- Performing Test CXX17_COMPILES_SIMPLY - Failed
-- Performing Test USING_LIBSTDCXX
-- Performing Test USING_LIBSTDCXX - Failed
-- Looking for C++ include filesystem
-- Looking for C++ include filesystem - found
-- Performing Test CXX_FILESYSTEM_NO_LINK_NEEDED
-- Performing Test CXX_FILESYSTEM_NO_LINK_NEEDED - Failed
-- Performing Test CXX_FILESYSTEM_STDCPPFS_NEEDED
-- Performing Test CXX_FILESYSTEM_STDCPPFS_NEEDED - Failed
-- Performing Test CXX_FILESYSTEM_CPPFS_NEEDED
-- Performing Test CXX_FILESYSTEM_CPPFS_NEEDED - Failed
CMake Error at cmake/FindLibStdCpp.cmake:182 (get_target_property):
  get_target_property() called with non-existent target "std::filesystem".
Call Stack (most recent call first):
  CMakeLists.txt:91 (find_package)

-- Performing Test CXX17_COMPILES_WHEN_LINKING_FS_LIBRARY
-- Performing Test CXX17_COMPILES_WHEN_LINKING_FS_LIBRARY - Failed
-- Performing Test CXX17_COMPILES_WITHOUT_STD_FILESYSTEM
CMake Error at cmake/FindLibStdCpp.cmake:205 (message):
  The C++ compiler cannot find a working standard library that supports
  std::filesystem even though a library for std::filesystem was found.  The
  compiler was not trying to use libstdc++.  The GROMACS build system cannot
  handle this case.  Please use a working C++17 compiler and standard
  library.
Call Stack (most recent call first):
  CMakeLists.txt:91 (find_package)

I will try rolling back to version 14 for the OSX cxx and llvm_openmp packages, to see if this fixes the issue.

I've pushed a patch to remove some code from GROMACS src/extern/cmake/FindFilesystem.cmake that is (at least) confusing the error output. This code is new in this patch release, and AFAICS the failing build is actually using libc++ for the standard library, which isn't ground upon which GROMACS tested the new gear. So maybe I will need a follow up change also.

mabraham commented 1 year ago

I do not expect the difference between toolchain version 14 and 15 to be significant.

douglowe commented 1 year ago

That sounds like a better test than my wilding flailing in the dark changing toolchain versions ;-)

mabraham commented 1 year ago

I was wrong in my supposition that some lines in FindFilesystem.cmake needed commenting. Since 10.15 should have std::filesystem in libc++ what I think we need is some feedback from the failed builds from CMakeFiles/*log files. I don't know how to get those reliably. Any ideas?

Otherwise, I will revert the change from 15 to 14 since that is unlikely to be helpful.

douglowe commented 1 year ago

Hmm - I am sure there is a way to keep the build image live, so that it can be checked out. But I can't remember at the moment how to do that. If I do remember, I'll post here. Otherwise, I might be able to try building locally on my macbook pro to get the log files (but will have to be later this week).

Please do revert the change to 14 - as you say, it isn't helping here.

mabraham commented 1 year ago

OK I finally got some diagnostics. CMake seems to have changed how its behind-the-scenes output is written to disk in 3.26: https://cmake.org/cmake/help/latest/manual/cmake-configure-log.7.html. Instead of CMakeFiles/*.log you need to inspect CMakeFiles/CMakeConfigureLog.yaml.

There, we see e.g.

    cmakeVariables:
      CMAKE_CXX_FLAGS: "-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -stdlib=libc++ -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gromacs-2023.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix"
      CMAKE_CXX_FLAGS_DEBUG: "-g"
      CMAKE_EXE_LINKER_FLAGS: "-Wl,-pie -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib"
      CMAKE_MODULE_PATH: "$SRC_DIR/cmake;$SRC_DIR/cmake/Platform;$SRC_DIR/src/external/cmake"
      CMAKE_OSX_ARCHITECTURES: ""
      CMAKE_OSX_DEPLOYMENT_TARGET: "10.9"
      CMAKE_OSX_SYSROOT: "/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk"
    buildResult:
      variable: "CXX17_COMPILES_SIMPLY"
      cached: true
      stdout: |
        Change Dir: $SRC_DIR/build/CMakeFiles/CMakeScratch/TryCompile-uCmaYF

        Run Build Command(s):$BUILD_PREFIX/bin/cmake -E env VERBOSE=1 $BUILD_PREFIX/bin/make -f Makefile cmTC_c436e/fast && $BUILD_PREFIX/bin/make  -f CMakeFiles/cmTC_c436e.dir/build.make CMakeFiles/cmTC_c436e.dir/build
        make[1]: Entering directory '$SRC_DIR/build/CMakeFiles/CMakeScratch/TryCompile-uCmaYF'
        Building CXX object CMakeFiles/cmTC_c436e.dir/src.cxx.o
        $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang++ -DCXX17_COMPILES_SIMPLY  -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -stdlib=libc++ -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gromacs-2023.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix  -std=c++17 -isysroot /Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -mmacosx-version-min=10.9 -MD -MT CMakeFiles/cmTC_c436e.dir/src.cxx.o -MF CMakeFiles/cmTC_c436e.dir/src.cxx.o.d -o CMakeFiles/cmTC_c436e.dir/src.cxx.o -c $SRC_DIR/build/CMakeFiles/CMakeScratch/TryCompile-uCmaYF/src.cxx
        $SRC_DIR/build/CMakeFiles/CMakeScratch/TryCompile-uCmaYF/src.cxx:9:31: error: 'value' is unavailable: introduced in macOS 10.13 - see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk
          std::string_view view(input.value());

and the illuminating link https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk