conda-forge / trilinos-feedstock

A conda-smithy repository for trilinos.
BSD 3-Clause "New" or "Revised" License
1 stars 10 forks source link

Rebuild for libboost 1.82 #43

Open regro-cf-autotick-bot opened 1 year ago

regro-cf-autotick-bot commented 1 year ago

This PR has been triggered in an effort to update boost_cpp_to_libboost.

Notes and instructions for merging this PR:

  1. Please merge the PR only after the tests have passed.
  2. Feel free to push to the bot's branch to update this PR if needed.

Please note that if you close this PR we presume that the feedstock has been rebuilt, so if you are going to perform the rebuild yourself don't close this PR until the your rebuild has been merged.


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.

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/6389589558, 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.

h-vetinari commented 1 year ago

@conda-forge-admin, please rerender

h-vetinari commented 1 year ago

@conda-forge/core, I mostly revived this feedstock, but I'm not sure if we actually want to do that (hasn't been built in 3 years).

Some immediate issues:

List of contained .so's ``` lib/libIoex.so lib/libIoexo_fac.so lib/libIofx.so lib/libIogn.so lib/libIogs.so lib/libIohb.so lib/libIonit.so lib/libIopg.so lib/libIopx.so lib/libIoss.so lib/libIotr.so lib/libIovs.so lib/libModeLaplace.so lib/libamesos.so lib/libamesos2.so lib/libanasazi.so lib/libanasaziepetra.so lib/libanasazitpetra.so lib/libaprepro_lib.so lib/libaztecoo.so lib/libbelos.so lib/libbelosepetra.so lib/libbelostpetra.so lib/libbelosxpetra.so lib/libchaco.so lib/libdomi.so lib/libdpliris.so lib/libepetra.so lib/libepetraext.so lib/libexodus.so lib/libfei_base.so lib/libfei_trilinos.so lib/libgaleri-epetra.so lib/libgaleri-xpetra.so lib/libglobipack.so lib/libgtest.so lib/libifpack.so lib/libifpack2-adapters.so lib/libifpack2.so lib/libintrepid.so lib/libio_info_lib.so lib/libisorropia.so lib/libkokkosalgorithms.so lib/libkokkoscontainers.so lib/libkokkoscore.so lib/libkokkoskernels.so lib/libkokkostsqr.so lib/libkomplex.so lib/libloca.so lib/liblocaepetra.so lib/liblocalapack.so lib/liblocathyra.so lib/libminitensor.so lib/libml.so lib/libmuelu-adapters.so lib/libmuelu-interface.so lib/libmuelu.so lib/libnemesis.so lib/libnox.so lib/libnoxepetra.so lib/libnoxlapack.so lib/libpamgen.so lib/libpamgen_extras.so lib/libphalanx.so lib/libpike-blackbox.so lib/libpiro.so lib/libpytrilinos.so lib/librol.so lib/librtop.so lib/librythmos.so lib/libsacado.so lib/libshards.so lib/libshylu_ddbddc.so lib/libshylu_ddfrosch.so lib/libstokhos.so lib/libstokhos_amesos2.so lib/libstokhos_ifpack2.so lib/libstokhos_muelu.so lib/libstokhos_sacado.so lib/libstokhos_tpetra.so lib/libstokhos_xpetra.so lib/libstratimikos.so lib/libstratimikosamesos.so lib/libstratimikosamesos2.so lib/libstratimikosaztecoo.so lib/libstratimikosbelos.so lib/libstratimikosifpack.so lib/libstratimikosml.so lib/libsuplib_c.so lib/libsuplib_cpp.so lib/libteko.so lib/libteuchoscomm.so lib/libteuchoscore.so lib/libteuchoskokkoscomm.so lib/libteuchoskokkoscompat.so lib/libteuchosnumerics.so lib/libteuchosparameterlist.so lib/libteuchosparser.so lib/libteuchosremainder.so lib/libthyracore.so lib/libthyraepetra.so lib/libthyraepetraext.so lib/libthyratpetra.so lib/libtpetra.so lib/libtpetraclassic.so lib/libtpetraclassiclinalg.so lib/libtpetraclassicnodeapi.so lib/libtpetraext.so lib/libtpetrainout.so lib/libtrilinoscouplings.so lib/libtrilinosss.so lib/libtriutils.so lib/libxpetra-sup.so lib/libxpetra.so lib/libzoltan.so lib/libzoltan2.so ```

Any thoughts?

CC @conda-forge/kokkos @conda-forge/kokkos-kernels

vincentmr commented 1 year ago

Some immediate issues:

  • it conflicts with pytrilinios which packages exactly the same thing, only with python bindings on top (at least the metadata forbids co-installation, but that's not a good setup)

I'm not familiar with Trilinos, but it sounds like the Trilinos feedstock should build the shared libraries, to be consumed by pytrilinios. Once this feedstock supports all platforms that pytrilinios does, the pytrilinios recipe could likely be greatly simplified.

  • it vendors kokkos, but more of it (libkokkos{algorithms,containers,core,kernels,tsqr}.so) than we have available in conda-forge (kokkos-kernels has libkokkoskernels.so, and kokkos has libkokkos{algorithms,containers,core}).

Again, not familiar with Trilinos, but after having a quick look at the repo it seems that TSQR is a solver written with Kokkos, but it is not part of the Kokkos ecosystem. The CMake lists simply declare the library as kokkostsqr. The Kokkos feedstocks likely have enough support to build Trilinos at the moment.

  • though it isn't obvious, at least the vendored kokkos corresponds to a tagged version (in this case 3.6.0)

If needed, we could build Kokkos and Kokkos-kernels 3.6.0 in their respective feedstocks.

Seems like this is almost the point of this library.

  • the list of libraries it contains is huge (see below), I haven't verified if all of those are conflict-free (gtest definitely isn't, for example).

Ideally, we want to build in separate feedstocks whatever is external (e.g. Kokkos) and then pull it here during build. If the rest builds within the CF env, than the rest should not conflict.

I would suggest starting with minimal platforms and build:

Then go back up that list turning on options.

carterbox commented 1 year ago

We already have published a build of kokkos 3.6.01 which should be API/ABI compatible. In fact, I believe that any kokkos >=3.6.0,<4 should be compatible.

Looks like these trilinos packages were both created in 2017 by the same user, then adopted in 2020 by a new maintainer, but then haven't been touched since that same year. I would consider these feedstocks abandoned as they are already mentioned here: https://github.com/conda-forge/conda-forge.github.io/issues/1724

https://github.com/conda-forge/staged-recipes/pull/4004 https://github.com/conda-forge/staged-recipes/pull/3361