bioconda-recipes
bioconda-recipes copied to clipboard
genomedata
Genomedata (still) does not build on Conda. I found two issues with the build process:
- the hdf5 installation is not found by pkg-conf
- the encoding of
genomedata-load-data
is not recognized by tokenize.
I circumvented the hdf5 not found
error with the patch. Without it, the develop tools are not loaded in I believe. To fix this for real, the package's setup.py
would need to be updated to work with a conda installed hdf5.
The encoding problem is beyond my expertise, and likely on the side of the package.
Pinging package creators to keep you in the know @michaelmhoffman, @EricR86, @jayhesselberth
@bioconda-bot please fetch artifacts
No artifacts found on the most recent Azure build. Either the build failed, the artifacts have were removed due to age, or the recipe was blacklisted/skipped.
Whoops, no need to check for artifacts since it's still blacklisted.
Do you know if other parts of the package (aside from the genomedata-load-data) work with the patch that prevents hdf5 error?
I'm sure the patch would work. The removed code included a pass
statement in case pkg-conf didn't find hfd5 (the except
doesn't include the error we get with Conda installed hdf5):
except CalledProcessError:
# CalledProcessError occurs when hdf5 is not found by pkg-config
pass
Their master branch indicates the removed code is optional: # Attempt to get HDF5 development directories through pkg-config
This seems like a good approach to the mess that is trying to locate HDF5 development libraries. For a while I've been attempting to figure out a catch-all solution to this issue regardless of environment/platform but a conda patch seems like the sanest solution here.
My only recommendation is to remove pkg-config
from the build requirements in meta.yaml
. If it doesn't break the build I'll review/approve.
Thank you so much for your work on this.
On second thought, why not just remove pkg-config
from the build section in meta.yaml
and skip the patch altogether? Wouldn't it have the same effect? This would also be more stable for future changes to setup.py
if necessary.
That would work, unless if the user installed pkg-config already...
A clean solution would be define a flag like CONDA_INSTALL = False
in your setup.py, and overwrite this with a patch file here. That way you can make modular code of variable length, while the patch would stay the same and keep working.
Or perhaps check for the presence of conda specific environmental variables.
I'm trying to avoid a continual arms race of environment/system specifics in the setup.py
. I could probably work up a solution for each environment but it would be potentially costly to maintain.