-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
libtinfo.so.* missing in Arch Linux #778
Comments
I had the same problem and fixed it by install a symlinked version via AUR. But it would be nice if YCM can provide some kind of fallback to libncurses. |
I'm guessing libclang links to that lib; if the libclang downloaded by the install script is not good enough on your system, it's up to the user to provide one (compile clang etc). |
a solution for gentoo users: re-emerge sys-libs/ncurses with tinfo use flag |
@Valloric Why not fix the install.sh script instead? The change is as small as passing one extra argument |
I agree with alexandernst. I spent a few hours googling over this issue before I came across this. It would be a great help to us Arch users if we could get a fix for this or at least a heads up. |
@alexandernst What exactly needs to be added? I'd love to see a pull request. |
@Valloric Adding |
@Valloric I think your original advice (from January) was the best one. I came across this problem, and replacing the downloaded libclang.so with a symlink to /usr/lib/libclang.so solved the issue. |
@alexandernst I made this change:
and then ran |
Assuming that disabling terminfo works, the option seems to be |
No it doesn't. We use precompiled version of LLVM from the site. So if you actually need that option you should compile it yourself. |
Just upgraded my Arch system and got into this. System's libtinfo now (from AUR) is version 6, and the legacy compatibility package is currently broken at this moment (https://aur.archlinux.org/packages/libtinfo-5). For reference: With provided libclang:
Reason of error:
After a
Reason of error:
|
I've found a fix for libtinfo-5 installation problems related to GPG verification. This is the prelude recipe for successful YCM installation (without
|
I also have this problem. @oblitum can you please leave a comment on what your three lines are supposed to do? I don't really like to blindly copy paste code from the internet in my command line. |
@krux02 well, I more or less just copied and pasted too, and also, I don't like to do that, but they seem reasonably harmless. The first is just an update, the second add a key server I think, but it's on mit.edu, so, seem ok I guess, the other is just to install the old lib. So, all in all, it didn't scare me. |
@krux02 you can download the opensuse version prebuilt binary from llvm download page, and compile ycm with it. the opensuse version clang does not need the old libtinfo. |
@fplust Ok, I am downloading it at the moment. Do I just need to replace the version in the ycm folder with the downloaded one? Will I have to redo it after each update? |
@krux02 you should not replace it, because the install script will check the hash code to make sure the downloaded one is a right one, so you have to follow the Full Installation Guide in readme. |
I feel I spend more time fixing issues problems after it break yet again than actually using it productively. |
@krux02 exactly what, there're many things here to point out, ArchLinux?, YCM?, Clang? :-D |
You may also opt for the former solution, it's a no brainer... Execute the prelude since without it you're unable to get libtinfo-5 from AUR (the solution comes from there). After that, |
Well, the guys on AUR are still battling over this, the mit.edu link may have become dead: https://aur.archlinux.org/packages/ncurses5-compat-libs. |
Same error on FreeBSD 10.3 with llvm37 |
By the way, for me it works now, after I installed libtinfo-5. |
Yep, that |
Solved on Arch after installing ncurses5-compat-libs. |
On Fedora 24 64bits system, solve make a symbolic link for libtinfo.so.5 via libtinfo.so.6 $ sudo ln -s /lib64/libtinfo.so.6.0 /lib64/libtinfo.so.5 then, you can see like below: lrwxrwxrwx. 1 root root 15 7월 24 02:06 libtinfo.so.5 -> libtinfo.so.6.0
lrwxrwxrwx. 1 root root 15 4월 8 19:33 libtinfo.so.6 -> libtinfo.so.6.0
-rwxr-xr-x. 1 root root 180192 4월 8 19:33 libtinfo.so.6.0 working well. |
[READY] Bump Clang version to 3.9.0 This PR currently updates Clang to 3.9.0 **RC2** (not RC3 because prebuilt binaries for OS X are not available). This is why it is marked as not ready. We are not using the Ubuntu 16.04 prebuilt binaries on Linux because they are not working on Ubuntu 14.04 (and 12.04 which is needed for our Travis runs). Only the Debian 8 and openSUSE 13.2 ones are working. We use the openSUSE prebuilt binaries instead of the Debian 8 ones because the openSUSE ones do not have the terminfo library (libtinfo) dependency, which is not needed and often a source of issues on Arch Linux (see ycm-core/YouCompleteMe#778 for instance), and are available on both architectures. I'll update the PR with the final version of 3.9.0 when it is released. Closes #471. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/ycmd/588) <!-- Reviewable:end -->
For gentoo emerge ncurses at slot 5:
And enable tinfo use flag as @rpolasek said |
Update: |
Adding "--system-libclang" to my ./install.py command fixed this for me on Arch Linux. 4.0.0 clang is the current version available on Arch at the time of writing this. |
For Fedora 26 it's:
|
@kevinkjt2000 Thanks! It also worked now for clang version 5.0.0! How about commit to install.py this part fixed? |
@kevinkjt2000 Thanks! Yours is indeed a nicer solution than using AUR libs. |
This work on Arch. |
Fix --system-libclang on Gentoo amd64, if llvm is compiled with ABI_X86="32 64" $ ls -ld /usr/lib64/llvm/4/l* drwxr-xr-x 3 root root 20K Dec 16 02:37 lib32 drwxr-xr-x 3 root root 20K Dec 16 02:37 lib64 drwxr-xr-x 2 root root 4.0K Dec 16 02:37 libexec This results in GLOB finding the wrong library. $ ./install.py --clang-completer --system-libclang ... Using external libclang: /usr/lib64/llvm/4/lib32/libclang.so.4.0 ... /usr/lib64/llvm/4/lib32/libclang.so.4.0: error adding symbols: File in wrong format FTR, I had to use --system-libclang because of libtinfo.so.5 issue (ycm-core/YouCompleteMe#778) <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/ycmd/891) <!-- Reviewable:end -->
Fix --system-libclang on Gentoo amd64, if llvm is compiled with ABI_X86="32 64" $ ls -ld /usr/lib64/llvm/4/l* drwxr-xr-x 3 root root 20K Dec 16 02:37 lib32 drwxr-xr-x 3 root root 20K Dec 16 02:37 lib64 drwxr-xr-x 2 root root 4.0K Dec 16 02:37 libexec This results in GLOB finding the wrong library. $ ./install.py --clang-completer --system-libclang ... Using external libclang: /usr/lib64/llvm/4/lib32/libclang.so.4.0 ... /usr/lib64/llvm/4/lib32/libclang.so.4.0: error adding symbols: File in wrong format FTR, I had to use --system-libclang because of libtinfo.so.5 issue (ycm-core/YouCompleteMe#778) <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/ycmd/891) <!-- Reviewable:end -->
Fix --system-libclang on Gentoo amd64, if llvm is compiled with ABI_X86="32 64" $ ls -ld /usr/lib64/llvm/4/l* drwxr-xr-x 3 root root 20K Dec 16 02:37 lib32 drwxr-xr-x 3 root root 20K Dec 16 02:37 lib64 drwxr-xr-x 2 root root 4.0K Dec 16 02:37 libexec This results in GLOB finding the wrong library. $ ./install.py --clang-completer --system-libclang ... Using external libclang: /usr/lib64/llvm/4/lib32/libclang.so.4.0 ... /usr/lib64/llvm/4/lib32/libclang.so.4.0: error adding symbols: File in wrong format FTR, I had to use --system-libclang because of libtinfo.so.5 issue (ycm-core/YouCompleteMe#778) <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/ycmd/891) <!-- Reviewable:end -->
Fedora 27, installing ncurses-compat-libs works when not using |
On Arch I've solved installing ncurses and then |
Symlinking ABI incompatible shared objects is a terrible idea. |
For Fedora, just pass the |
Symlinking ABI incompatible shared objects is never a good idea. The only actualy solutions are installing libtinfo.so.5, using the system libclang or building clang from source and using that. |
@bstaletic answer is the right answer to this problem. To avoid further confusion, I'm locking this thread. If users have further problems, feel free to raise a new issue. |
Should fix ycm-core#778 once and for all.
In some distributions, like Arch Linux, libtinfo.so is compiled as a part of libncurses.so.
As a result,
ycmd
will not start:on Arch Linux x86_64 up to date with YCM @ b1bba2e
see rust-lang/rust@597e96b for a possible fix.
The text was updated successfully, but these errors were encountered: