-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Missing ttf-dejavu/fontconfig dependencies for fastqc #5026
Comments
@jrderuiter interesting! Can you move this issue to conda-forge? I guess we need to discuss this over there as it seems a general problem and general package. |
Thanks! |
The conda-forge openjdk package has the missing fonts (https://github.com/conda-forge/openjdk-feedstock/blob/master/recipe/build.sh#L24). The issue occurs only if openjdk is pulled from defaults. |
Confirming this issue. As a result, the mulled FastQC Biocontainer based on this Bioconda recipe is not functional. The default OpenJDK should download ttf-dejavu the same way the conda-forge version does. |
@rspreafico it looks like the fastqc container was last modified in May, while the missing fonts were added to the conda-forge openjdk in June. #6518 bumps the build number for fastqc. Once merged this should result in a new container containing an updated open-jdk that you can test. |
Thank you for the quick reply and turnaround, this is awesome |
@rspreafico the container will be online in an ~1h. |
Hi @daler @bgruening unfortunately it seems that the new container still suffers from the same issue:
|
It's probably missing |
It's installing the "wrong" openjdk:
|
@bioconda/core I'm not very familiar with the way the quay docker images are built. Shouldn't conda-forge be preferred over defaults? The fastqc image contains the (broken, missing fonts) openjdk from defaults for some reason. |
in theory yes. |
I just did a more realistically test here: #6576, and the recipe built just fine, however this test fails when I tried it with quay.io/biocontainers/fastqc. I also checked containers of other bioconda packages picard, gatk, cromwell and they also contain defaults::openjdk. to be honest I am not sure where the issue is, I am not familiar with how the quay images are built either. |
@epruesse @rvalieris the container that is build during testing is push directly. So it should be the test container. I need some time to look at it and run it locally, but if you run it with debug, the |
@bgruening I believe the defaults channel is active in the mulled builds: https://github.com/bioconda/bioconda-utils/blob/master/bioconda_utils/pkg_test.py#L80 W.r.t. bioconda-utils and the mulled-build ... I just tried to have a look at it, but the jumping about between various tools makes it hard to figure out what's going on at all, even with Where should the image file end up even? |
Defaults should be in the list, but with the lowest priority. The image will end up in the Docker image registry. It is calles quay.io/biocontainers/tool_name:version ... this image is then simply pushed if all tests succeed. On your host it will be in the list of |
Checked that already ... nothing there. I'll post if I find the time to dig into this. |
Using quay.io/biocontainers/fastqc:0.11.6--pl5.22.0_0 and the error persists, hope someone can get some time to solve this. :) |
@MWorksGH could you share the entire installation plan with us? Please make sure you are using the correct channel order: https://bioconda.github.io/#set-up-channels |
Solved this problem on Ubuntu using: |
I'm afraid the fastqc 0.11.7--pl5.22.0_0 container suffer from the same problem. |
@bgruening - here's a minimal example FROM continuumio/miniconda
MAINTAINER Phil Ewels <[email protected]>
RUN conda config --add channels defaults \
&& conda config --add channels conda-forge \
&& conda config --add channels bioconda \
&& conda install -y fastqc=0.11.7 Building: Click to expand log
Then running a test:
Click to expand log
So the channel order should be correct I think, but I'm still getting the error. Note - that if I explicitly add FROM continuumio/miniconda
MAINTAINER Phil Ewels <[email protected]>
RUN conda config --add channels defaults \
&& conda config --add channels conda-forge \
&& conda config --add channels bioconda \
&& conda install -y conda-forge::openjdk fastqc=0.11.7 Click to expand log
So it seems that this can be fixed fairly easily by explicitly requiring the conda-forge version of openjdk. Could this be added to the bioconda FastQC recipe or something? |
Hopefully done. |
* bl * bl * remove strange smatools version * remove old smatools version * rebase * fix samtools * add new package to blacklist * fix prophyle * using cxx instead of c * add a few more to the blacklist * fixes * Fix rust-overlaps using the same fix from rust-bio-tools (#9670) - Add comments to prosic in the blacklist (it's failing due to missing trait bounds) * FastQC: Update the openjdk dependency. (#9675) The "defaults" build was bumped, leading to the defaults version of openjdk be installed, instead of the conda-forge one. See #5026. To prevent the next build bump causing this issue again, increment the minimum version by one. * Update secimtools recipe to prevent scipy upgrade to 1.x (#9676) * Update secimtools recipe to prevent scipy upgrade to 1.x * Add a noarch section for secimtools per circleci linter error * fix slang download source (#9672) * fix slang download source * fix lint * fix checksum * Incrementing to Anvio 5.1. (#9680) * Incrementing to Anvio 5.1. Updating pysam dependency to reflect new requirements * fixing sha value * Add missing licenses (#9677) * add license to 2pg_cartesian * fix typo * add licenses * fix nanopolish * remove nanopolish from blacklist * auto-generated hashes without bump
thanks! |
Still happening, although the fonts are being installed now. The version being installed is
|
Yes, that's to be expected. Is there any reason why |
* bl * bl * remove strange smatools version * remove old smatools version * rebase * fix samtools * add new package to blacklist * fix prophyle * using cxx instead of c * add a few more to the blacklist * fixes * Fix rust-overlaps using the same fix from rust-bio-tools (#9670) - Add comments to prosic in the blacklist (it's failing due to missing trait bounds) * FastQC: Update the openjdk dependency. (#9675) The "defaults" build was bumped, leading to the defaults version of openjdk be installed, instead of the conda-forge one. See #5026. To prevent the next build bump causing this issue again, increment the minimum version by one. * Update secimtools recipe to prevent scipy upgrade to 1.x (#9676) * Update secimtools recipe to prevent scipy upgrade to 1.x * Add a noarch section for secimtools per circleci linter error * fix slang download source (#9672) * fix slang download source * fix lint * fix checksum * Incrementing to Anvio 5.1. (#9680) * Incrementing to Anvio 5.1. Updating pysam dependency to reflect new requirements * fixing sha value * Add missing licenses (#9677) * add license to 2pg_cartesian * fix typo * add licenses * fix nanopolish * remove nanopolish from blacklist * auto-generated hashes without bump * fix ea-utils * fix wgsim * bump build * add libgcc dep * Update meta.yaml * Update meta.yaml
I can't think of any reason for why it shouldn't work. FYI, I tried the |
Ok, still having some issues here. I first thought that the channels order was causing this, but thats not the case: Here's my https://github.com/nf-core/eager/blob/dev/environment.yml
Unfortunately, when calling
|
Adding the above mentioned ttf package didn't help either unfortunately... |
From where is your openjdk coming, from which channel? |
|
Couldn't find a solution for this atm, quite clueless what is the issue here... |
When I try to use the method suggested by @raonyguimaraes I get an error under Ubuntu 16.04:
maybe this is a recent change because I think I have a Dockerfile from this past May where this appeared to have worked.. |
Just want to add that I ran into this problem today, and it doesn't appear to matter where the openjdk package comes from (for me). Running on the vanilla AWS AMI image and within the continuumio/miniconda3 docker image,
|
To clarify this, FastQC doesn't seem to need the fonts themselves to be present, just the entries in the fontconfig cache. When |
I will submit an updated recipe now that adds
To make sure this is solved. It keeps being annoying when this breaks from time to time, so adding these two should make everything more stable. |
Java image writing (which rtg rocplot uses to save ROC images) doesn't work unless java has some minimal font requirements. See also: bioconda#5026
* rtg-tools: update to 3.10.1 * Add requirement for zlib to test openjdk workaround. In mulled test environment openjdk isn't pulling in zlib when it should. Added explicit requirement to make tests work. * Add minimal font requirements to permit image saving. Java image writing (which rtg rocplot uses to save ROC images) doesn't work unless java has some minimal font requirements. See also: #5026
It seems no one complained anymore ... so closing this again. Fingers crossed thanks all! |
For whoever gets across this with a Conda environment that is mounted into a container: If the environment was build e.g. outside of the container, the paths in If you then run |
Hi everyone,
I have those library in my env conda
Thank you for your help |
If fontconfig or ttf-dejavu are not installed, fastqc can produce the following error:
which is identical to the error described here: https://stackoverflow.com/questions/14066525/java-lang-error-probable-fatal-errorno-fonts-found. This issue is at least encountered in the snakemake container used by snakemake-wrappers.
I think this error is not necessarily specific to fastqc, but likely a more general dependency of openjdk which is currently missing.
We can easily fix it for fontconfig by adding the dependency to the fastqc or openjdk recipes. However, for ttf-dejavu there does not seem to be an existing package as far as I can see. I have no experience with creating non-R/Python packages, so was wondering if someone would be prepared to build a ttf-dejavu package or otherwise provide me with pointers on how to do so.
The text was updated successfully, but these errors were encountered: