conda-forge / rasterio-feedstock

A conda-smithy repository for rasterio.
BSD 3-Clause "New" or "Revised" License
42 stars 22 forks source link

Rasterio package depends on older GDAL than necessary #185

Closed jjramsey closed 3 years ago

jjramsey commented 3 years ago

When I try to install rasterio from conda-forge, I see this warning:

The following packages will be DOWNGRADED:

  gdal                                 3.2.1-py38hcd0f73a_6 --> 3.1.4-py38hfec5fc6_7
  libgdal                                  3.2.1-hbaa4b3a_6 --> 3.1.4-hbaa4b3a_7

Rather than continue to install rasterio this way, I used pip, and that installation appeared to be fine with a newer GDAL. The PyPi page for GDAL also indicates that GDAL 3.2 should be fine.

xylar commented 3 years ago

@jjramsey, thanks for your post. conda-forge is pretty strict about the versions of certain libraries. The runtime version of the library has to be compatible with the version used to compile the source. For gdal and libgdal, they're required to have the same major and minor version between build and runtime.

I appreciate that this can be annoying. But it is important that packages across conda-forge work with consistent versions of libraries like gdal/libgdal. The ABI isn't fully backwards compatible between 3.2 and 3.1.x: https://abi-laboratory.pro/index.php?view=timeline&l=gdal

Conda-forge in the process of migrating to 3.2: https://github.com/conda-forge/conda-forge-pinning-feedstock/blob/master/recipe/migrations/gdal32.yaml

https://conda-forge.org/status/

I'm guessing that rasterio should have been migrated and it wasn't. I'll try to manually migrate it later this evening.

ocefpaf commented 3 years ago

It seems that there is a bug in the migrator. See https://conda-forge.org/status/#gdal32

xylar commented 3 years ago

Yeah, I'd say so. It might miss feedstocks that depend on libgdal, rather than gdal?

xylar commented 3 years ago

Or is the problem that libgdal wasn't included in the migrator?

xylar commented 3 years ago

@ocefpaf, I tried rerendering with the gdal migrator and it didn't update libgdal. I think we probably need a separate migrator for gdal and libgdal at the same time. Presumably, that will pass for any feedstocks that already have migrated but will catch those that depend on both or libgdal only? Is that something you have time to do?

ocefpaf commented 3 years ago

Yep. Bumping @CJ-Wright and @beckermr here for awareness. For now we could just close that migration, which is pretty much "done" and bump the pinning file manually to get rasterio (and probably fiona) fixed.

xylar commented 3 years ago

It looks to me like there are bunches of feedstocks that depend on libgdal: https://github.com/search?l=YAML&q=org%3Aconda-forge+libgdal&type=Code. It seems like we need a separate migrator to me.