Skip to content
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

samtools on macosx is incompatible with ncurses from defaults channel #13488

Closed
s22chan opened this Issue Feb 4, 2019 · 14 comments

Comments

Projects
None yet
6 participants
@s22chan
Copy link
Contributor

s22chan commented Feb 4, 2019

I'm getting:

dyld: Symbol not found: _stdscr
  Referenced from: /opt/conda/miniconda3/envs/test/bin/samtools
  Expected in: /opt/conda/miniconda3/envs/test/bin/../lib/libncursesw.6.dylib
 in /opt/conda/miniconda3/envs/test/bin/samtools

with:

ncurses:         6.1-h0a44026_1         
samtools:        1.9-hb029021_5           bioconda

this version worked before:

ncurses:         6.1-h0a44026_1           
samtools:        1.9-h8ee4bcc_1           bioconda
@tomkinsc

This comment has been minimized.

Copy link
Contributor

tomkinsc commented Feb 6, 2019

Thanks for the issue report. Until the underlying issue is resolved, the older build can be installed via:
conda install -c bioconda samtools=1.9=h8ee4bcc_1

For testing, what samtools command resulted in this error?

It looks like this PR #13464 may have broken samtools.
Related:
conda-forge/conda-forge.github.io#701
@bioconda/core: Maybe we should think about template pinning openssl to match the predominant version used upstream by conda-forge? (1.0.2p?)

@dpryan79

This comment has been minimized.

Copy link
Contributor

dpryan79 commented Feb 6, 2019

Openssl is pinned (from conda-forge-pinning). The issue is that conda install will ignore the pinning of packages already installed in an environment.

@Marcoleta-AE

This comment has been minimized.

Copy link

Marcoleta-AE commented Feb 17, 2019

I experienced the same issue. Some weeks ago it was working without problems, I have no idea what changed to cause this issue... maybe some MacOS update?. I'm working under macOS High Sierra 10.13.6. Now the details:

First, when calling samtools I got this already reported issue:

dyld: Library not loaded: @rpath/libcrypto.1.0.0.dylib
Referenced from: /Users/andresmarcoleta/anaconda3/bin/samtools
Reason: image not found
Abort trap: 6

After searching for info I got this solution:

https://gist.github.com/aklap/e885721ef15c8668ed0a1dd64d2ea1a7

It worked but when calling samtools now the error reported in this thread appeared:

dyld: Symbol not found: _stdscr
Referenced from: /Users/andresmarcoleta/anaconda3/bin/samtools
Expected in: /Users/andresmarcoleta/anaconda3/bin/../lib/libncursesw.6.dylib
in /Users/andresmarcoleta/anaconda3/bin/samtools
Abort trap: 6

So, based on tomkinsc's comment, I tried installing the older build

Now, everything is OK when calling samtools. Actually, I started detecting this issue when trying to run Unicycler... after checking dependencies, the program stopped indicating that samtools was missing. I tried to reinstall samtools several times but it remained not recognized or unable to be called from Unicycler. Fortunately, after installing the old build, now Unicycler recognized samtools and run OK.

@dpryan79

This comment has been minimized.

Copy link
Contributor

dpryan79 commented Feb 17, 2019

ncurses is pinned as well. Once again conda install seems to ignore pinnings, please avoid using it.

@hisplan

This comment has been minimized.

Copy link

hisplan commented Feb 20, 2019

Along with the SSL issue mentioned in #12100, only the following worked for me (as of Feb 20, 2019)

conda install -c bioconda samtools=1.9=h8ee4bcc_1 openssl=1.0

@dpryan79 dpryan79 closed this Feb 25, 2019

@s22chan

This comment has been minimized.

Copy link
Contributor Author

s22chan commented Mar 7, 2019

For posterity, it appears the anaconda channel ncurses is no longer compatible with samtools. The following works:

conda create -n test samtools conda-forge::ncurses
@dpryan79

This comment has been minimized.

Copy link
Contributor

dpryan79 commented Mar 7, 2019

There should actually be a compatible samtools now. I've started updating things for the new OpenSSL version and samtools was in the first PR merged of that. I'll make an announcement about the change in OpenSLL pinnings within the next couple hours.

@s22chan

This comment has been minimized.

Copy link
Contributor Author

s22chan commented Mar 12, 2019

@dpryan79 still broken wrt to ncurses from defaults:

ncurses                   6.1                  h0a44026_1
openssl                   1.1.1b               h1de35cc_1
samtools                  1.9                 h7c4ea83_11    bioconda

@dpryan79 dpryan79 reopened this Mar 12, 2019

@dpryan79

This comment has been minimized.

Copy link
Contributor

dpryan79 commented Mar 13, 2019

@s22chan Actually, the most recent version of samtools is built against ncurses 6.1 and conda create -n samtools_test samtools on OSX works appropriately (at least for me). Are you still getting an error?

@s22chan

This comment has been minimized.

Copy link
Contributor Author

s22chan commented Mar 13, 2019

@dpryan79 can you conda list and confirm you got ncurses from defaults instead of conda-forge? I understand conda-forge priority is part of the bioconda instructions, but as you can see, a lot of other people came across it incidentally.

@dpryan79

This comment has been minimized.

Copy link
Contributor

dpryan79 commented Mar 13, 2019

It's from conda-forge, as it should be:

mac884:~ ryan$ conda list
# packages in environment at /Users/ryan/miniconda3/envs/fubar:
#
# Name                    Version                   Build  Channel
bzip2                     1.0.6             h1de35cc_1002    conda-forge
ca-certificates           2019.3.9             hecc5488_0    conda-forge
curl                      7.64.0               heae2a1f_2    conda-forge
krb5                      1.16.3            hcfa6398_1001    conda-forge
libcurl                   7.64.0               he376013_2    conda-forge
libcxx                    7.0.0                h2d50403_1    conda-forge
libdeflate                1.0                  h1de35cc_1    bioconda
libedit                   3.1.20170329      hcfe32e1_1001    conda-forge
libssh2                   1.8.0             hb1dc21d_1004    conda-forge
llvm-meta                 7.0.0                         0    conda-forge
ncurses                   6.1               h0a44026_1002    conda-forge
openssl                   1.1.1b               h1de35cc_1    conda-forge
samtools                  1.9                 h7c4ea83_11    bioconda
tk                        8.6.9             ha441bb4_1000    conda-forge
xz                        5.2.4             h1de35cc_1001    conda-forge
zlib                      1.2.11            h1de35cc_1004    conda-forge
@s22chan

This comment has been minimized.

Copy link
Contributor Author

s22chan commented Mar 13, 2019

I'll change the title to reflect that it doesn't work for defaults

@s22chan s22chan changed the title samtools not pinning correct ncurses for build on macosx samtools on macosx is incompatible with ncurses from defaults channel Mar 13, 2019

@dpryan79

This comment has been minimized.

Copy link
Contributor

dpryan79 commented Mar 13, 2019

It shouldn't come from defaults, that suggests your channel order is wrong.

@dpryan79 dpryan79 closed this Mar 21, 2019

@jmarshall

This comment has been minimized.

Copy link

jmarshall commented Mar 28, 2019

(There's the relatively well-known openssl problem, and separately there's an ncurses problem.)

For posterity, it appears the anaconda channel ncurses is no longer compatible with samtools.

FWIW the reason for this is that the anaconda channel ncurses has not had a fix equivalent to conda-forge/ncurses-feedstock#45 applied. This is what I was alluding to in samtools/samtools#940 (comment) with “Provided the conda user has selected conda-forge for their ncurses […]”.

If there's somewhere to report bugs in or submit patches to anaconda channel packages, I can prepare a similar patch for that ncurses… Nevermind. That's the reason the anaconda channel ncurses doesn't work; you should use an ncurses that does work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.