@eberan, I am more inclined to the latter. I've been using YCM for more than a year and the developer has always updated the plugin for API/ABI changes in libclang almost as soon as they are released, which is before it even hits the arch repos.
Search Criteria
Package Details: vim-youcompleteme-git r3216.0d855962-1
Package Actions
Git Clone URL: | https://aur.archlinux.org/vim-youcompleteme-git.git (read-only, click to copy) |
---|---|
Package Base: | vim-youcompleteme-git |
Description: | A code-completion engine for Vim |
Upstream URL: | https://ycm-core.github.io/YouCompleteMe/ |
Keywords: | completion engine neovim vim ycm |
Licenses: | GPL3 |
Groups: | vim-plugins |
Submitter: | thestinger |
Maintainer: | artafinde |
Last Packager: | artafinde |
Votes: | 169 |
Popularity: | 0.034132 |
First Submitted: | 2013-02-05 21:32 (UTC) |
Last Updated: | 2024-08-19 15:53 (UTC) |
Dependencies (19)
- clang (llvm-gitAUR, clang-minimal-gitAUR, clang17-binAUR)
- python (python37AUR, python311AUR, python310AUR)
- python-bottle
- python-watchdog (python-watchdog-gitAUR)
- vim (neovim-drop-inAUR, neovim-symlinksAUR, vim-cli-gitAUR, gvim-wayland-lilydjwg-gitAUR, vim-gitAUR, gvim-gtk2AUR, gvim)
- cmake (cmake-gitAUR, cmake3AUR) (make)
- git (git-gitAUR, git-glAUR) (make)
- pybind11 (pybind11-gitAUR) (make)
- abseil-cpp (abseil-cpp-gitAUR) (optional) – if setting _use_system_abseil ON
- gopls (optional) – Go semantic completion
- java-environment (jdk12AUR, jdk10AUR, jdk10-openj9-binAUR, jdk7AUR, amazon-corretto-16AUR, jdk8-graalvm-binAUR, jdk16-graalvm-binAUR, jdk16-adoptopenjdkAUR, liberica-jre-11-binAUR, jdk11-j9-binAUR, jdk16-openjdkAUR, jdk14-openjdkAUR, jdk18-openjdkAUR, amazon-corretto-19-binAUR, jdk19-graalvm-binAUR, liberica-jre-11-full-binAUR, jdk19-graalvm-ee-binAUR, jdk13-openjdk-binAUR, liberica-jre-8-full-binAUR, jdk11-graalvm-binAUR, jdk-openj9AUR, jdk11-graalvm-ee-binAUR, jdk12-openjdkAUR, jdk11-dragonwell-standard-binAUR, jdk11-jetbrains-binAUR, jdk20-graalvm-binAUR, jdk17-graalvm-binAUR, jdk20-openj9-binAUR, zulu-13-binAUR, jdk8-dragonwell-extended-binAUR, jdk8-dragonwell-standard-binAUR, jdk11-dragonwell-extended-binAUR, jdk17-dragonwell-standard-binAUR, jdk8-j9-binAUR, jdk7-j9-binAUR, jdk7r1-j9-binAUR, jdk13-openjdkAUR, jdk15-openjdkAUR, jdk21-graalvm-binAUR, jdk17-jetbrainsAUR, microsoft-openjdk-11-binAUR, microsoft-openjdk-17-binAUR, microsoft-openjdk-21-binAUR, liberica-nik-24-full-binAUR, jdk21-jetbrains-gitAUR, zulu-8-binAUR, mandrel-binAUR, mandrel24-binAUR, liberica-jdk-11-lite-binAUR, jdk17-graalvm-ee-binAUR, jdk22-graalvm-ee-binAUR, jdk20-graalvm-ee-binAUR, jdk22-graalvm-binAUR, jdk19-openjdkAUR, zulu-jdk-fx-binAUR, jabba-binAUR, jdk21-jetbrainsAUR, jdk17-zulu-prime-binAUR, zulu-fx-binAUR, zulu8-fx-binAUR, zulu11-fx-binAUR, zulu17-fx-binAUR, zulu21-fx-binAUR, jdk11-openj9-binAUR, jdk-openjdk-wakefieldAUR, jre-zulu-binAUR, jre-zulu-fx-binAUR, jdk-android-studioAUR, jdk-openj9-binAUR, zulu-11-binAUR, jdk8-graalvm-ee-binAUR, jdk11AUR, jdk21-graalvm-ee-binAUR, jdk8-openj9-binAUR, jdk8-temurinAUR, jdk8AUR, amazon-corretto-17AUR, amazon-corretto-21-binAUR, jdk23-graalvm-ee-binAUR, openjdk-zulu8-ca-fx-binAUR, openjdk-zulu11-ca-fx-binAUR, openjdk-zulu17-ca-fx-binAUR, openjdk-zulu21-ca-fx-binAUR, openjdk-liberica8-full-binAUR, openjdk-liberica11-full-binAUR, openjdk-liberica17-full-binAUR, openjdk-liberica21-full-binAUR, openjdk-zulu-ca-fx-binAUR, openjdk-liberica-full-binAUR, jdk24-graalvm-ee-binAUR, jdk8-perfAUR, zing-21-binAUR, zing-23-binAUR, jdk21-openj9-binAUR, jdk17-openj9-binAUR, jre-jetbrainsAUR, jdk21-jetbrains-binAUR, jdk17-jetbrains-binAUR, jdk21-dragonwell-standard-binAUR, jdk21-dragonwell-extended-binAUR, java-openjdk-binAUR, jdk24-graalvm-ce-binAUR, jdkAUR, jdk-ltsAUR, liberica-jdk-full-binAUR, liberica-jdk-21-full-binAUR, liberica-jdk-8-full-binAUR, jdk8-dragonwell-extendedAUR, liberica-jdk-11-binAUR, zulu-17-binAUR, liberica-jdk-11-full-binAUR, liberica-jdk-21-binAUR, java-openjdk-ea-binAUR, zulu-17-fx-binAUR, liberica-jdk-17-full-binAUR, zulu-21-binAUR, amazon-corretto-8AUR, amazon-corretto-11AUR, jdk-temurinAUR, jdk21-temurinAUR, jdk17-temurinAUR, jdk11-temurinAUR, zing-8-binAUR, zulu-24-binAUR, jdk23-temurinAUR, jdk-openjdk, jdk11-openjdk, jdk17-openjdk, jdk21-openjdk, jdk8-openjdk) (optional) – Java semantic completion
- jdtlsAUR (optional) – Java semantic completion
- nodejs-ternAUR (optional) – JavaScript semantic completion
- omnisharp-roslynAUR (omnisharp-roslyn-bundledAUR, omnisharp-roslyn-binAUR) (optional) – C# semantic completion
- python-jedi (optional) – Python semantic completion
- python-numpydoc (optional) – Python semantic completion
- python-regex (python-regex-gitAUR) (optional) – Better Unicode support
- rust-analyzer (rust-analyzer-gitAUR, rust-analyzer-nightly-binAUR, rustup-gitAUR, rustup) (optional) – Rust semantic completion
- typescript (typescript-gitAUR) (optional) – Typescript semantic completion
Required by (0)
Sources (2)
Latest Comments
« First ‹ Previous 1 .. 38 39 40 41 42 43 44 45 46 47 48 .. 53 Next › Last »
swiftscythe commented on 2015-03-23 17:52 (UTC)
eberan commented on 2015-03-23 17:47 (UTC)
@yan12125 Valloric responded: "...@rpath and other wonkiness is there to ensure that that libclang is loaded."
Interesting, I never used rpath before! Thanks for posting to github though, that helps in deciding what to do with packaging; Essentially we need to pull in the libclang dependencies as well. Alternatively we could just use system libraries and hope the ABI etc don't break on system upgrades.
The former bloats the plugin just a little, the latter breaks if the system library is incompatible with the API/ABI of ycm_core.so *and* might not be fixable until upstream updates their code to the latest clang/llvm (i.e. just rebuilding the plugin may not help).
Opinions are welcome, but I'm leaning towards the former; include dependencies in the package.
yan12125 commented on 2015-03-23 08:39 (UTC)
Sorry it seems an upstream issue. I've reported it at https://github.com/Valloric/ycmd/issues/102
eberan commented on 2015-03-23 06:31 (UTC)
@yan12125
Indeed, I had totally forgotten about link paths (LD_LIBRARY_PATH/PYTHONPATH). It doesn't seem like this package has anything that would set that by default, unless vim/python sets up the environment for plugins/modules.
yan12125 commented on 2015-03-22 10:44 (UTC)
I've noticed that on my system ycmd shared objects depends on /usr/lib/libclang.so instead of /usr/share/vim/vimfiles/third_party/ycmd/libclang.so. Does that mean there's no need to install libclang.so in package()? I've removed /usr/share/vim/vimfiles/third_party/ycmd/libclang.so via 'sudo rm' and ycm seems working fine as before. Here are the results from ldd calls:
$ ldd /usr/share/vim/vimfiles/third_party/ycmd/ycm_core.so
linux-vdso.so.1 (0x00007ffff7d98000)
libpython2.7.so.1.0 => /usr/lib/libpython2.7.so.1.0 (0x00007f9e9caf9000)
libclang.so => /usr/lib/libclang.so (0x00007f9e9bbc4000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f9e9b8b5000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f9e9b5af000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f9e9b399000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f9e9aff6000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f9e9add8000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f9e9abd4000)
libutil.so.1 => /usr/lib/libutil.so.1 (0x00007f9e9a9d1000)
libLLVM-3.6.so => /usr/lib/libLLVM-3.6.so (0x00007f9e9878b000)
/usr/lib64/ld-linux-x86-64.so.2 (0x00007f9e9d28b000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007f9e98575000)
libffi.so.6 => /usr/lib/libffi.so.6 (0x00007f9e9836b000)
libedit.so.0 => /usr/lib/libedit.so.0 (0x00007f9e9812f000)
libncursesw.so.5 => /usr/lib/libncursesw.so.5 (0x00007f9e97eca000)
$ ldd /usr/share/vim/vimfiles/third_party/ycmd/ycm_client_support.so
linux-vdso.so.1 (0x00007ffc54fbf000)
libpython2.7.so.1.0 => /usr/lib/libpython2.7.so.1.0 (0x00007fa710882000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fa710573000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007fa71026e000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fa710057000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007fa70fcb4000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fa70fa97000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007fa70f892000)
libutil.so.1 => /usr/lib/libutil.so.1 (0x00007fa70f68f000)
/usr/lib64/ld-linux-x86-64.so.2 (0x00007fa710f33000)
eberan commented on 2015-03-17 17:20 (UTC)
@shmilee From the looks of it libclang.so, which we copy from the system during packaging, has a dependency on libLLVM.x.x.so. I believe LLVM was recently updated from 3.5 to 3.6, thereby removing the required dependency for the ycmd libclang.so. If you clean/rebuild this project, it should update the libclang.so and remove your dependency on llvm35-libs.
This boils down to the need to update the packaging script, whether that means including the system libLLVM-x.x.so together with clang, to avoid similar system update breakage. Or remove libclang.so from the package, relying solely on current system lib (and hope it remains compatible with ycmd).
shmilee commented on 2015-03-17 15:25 (UTC)
An ERROR:
RuntimeError: Error importing ycm_core. Are you sure you have placed a version 3.2+ libclang.[so|dll|dylib] in folder "/usr/share/vim/vimfiles/third_party/ycmd"? See the Installation Guide in the docs. Full error: libLLVM-3.5.so: cannot open shared object file: No such file or directory
Then I installed llvm35-libs to fix that.
What about clang35 ?
eberan commented on 2015-02-12 19:14 (UTC)
@archdria Thanks for posting.
@wsha The ycm_support_libs build target does not include OmniSharp. Take a look at the ycmd/build.py Main(), the build configuration is in two parts.
wsha commented on 2015-02-12 13:08 (UTC)
Could someone explain why the three lines below are necessary?
cd "$srcdir/YouCompleteMe/third_party/ycmd/third_party/OmniSharpServer"
pwd
xbuild
Doesn't the "make ycm_support_libs" command execute these lines already?
swiftscythe commented on 2015-02-12 08:38 (UTC)
I've been using this package with this modification on line 91:
cp -r "$srcdir/YouCompleteMe/third_party/ycmd/"{ycmd,ycm_client_support.so,ycm_core.so} \
The other files are not necessary. Thank you :)
Pinned Comments
artafinde commented on 2021-04-10 13:03 (UTC)
If you want to use system's abseil set the
_use_system_abseil
toON
- default is to download from internet during build.