Debian Patches

Status for ycmd/0+20240823+git8b61f19+ds-5

Patch Description Author Forwarded Bugs Origin Last update
0005-Handle-servers-that-refuse-to-resolve-code-action-li.patch Handle servers that refuse to resolve code action literals
The protocol expects us to call `codeAction/resolve` whenever a
codeaction lacks either an `edit` or a `command`.
Code action literals can lack the `data` field, which some servers
(hint: rust-analyzer) require to respond to `codeAction/resolve`.
However, we can still apply such code actions, so we do.
Boris Staletic <boris.staletic@protonmail.com> no upstream, commit:b96501f767414b17b320b5443cb87b5998502eb2 2024-12-02
0006-Upgrade-jdt.ls-to-v1.42.0.patch Upgrade jdt.ls to v1.42.0 Boris Staletic <boris.staletic@protonmail.com> no upstream, commit:4b037505568f89e18abb55b449b28d2cac8a4c8c 2024-12-03
0007-Upgrade-gopls-to-v0.16.2.patch Upgrade gopls to v0.16.2 Boris Staletic <boris.staletic@protonmail.com> no upstream, commit:7cc4ee2cd85bc3eb0703ac4072c0da931d86ba25 2024-12-03
0008-Fix-java-restart-server-tests-to-wait-long-enough.patch Fix java restart server tests to wait long enough Ben Jackson <puremourning@gmail.com> no upstream, commit:dab4ad4c383f6f6ed76aeca98ca19aa3b93d6872 2024-12-13
0009-Downgrade-JDT-to-version-1.40.0.patch Downgrade JDT to version 1.40.0
Newer versions (1.41+) have a bug where a shutdown request that is sent
immediatey after the server claims to be ready results in a
NullPointerException.
Boris Staletic <boris.staletic@protonmail.com> no upstream, commit:23a7e89e62242a721f5869d89a5558fc40c5662e 2024-12-14
0010-Fix-latest-flake8-errors.patch Fix latest flake8 errors Ben Jackson <puremourning@gmail.com> no upstream, commit:6859beaedc2949575e55afa70749000395843f95 2025-06-13
0011-Upgrade-googletest-the-version-we-had-is-incompatibl.patch Upgrade googletest; the version we had is incompatible with cmake 4 Ben Jackson <puremourning@gmail.com> no upstream, commit:94050fe56556becbc0837ebae3c2d8e66696a0bf 2025-06-13
0012-Update-gopls-0.16-was-incompatible-with-go-1.25.patch Update gopls; 0.16 was incompatible with go 1.25 Sebastian Jakobs <seb@adjoe.io> no upstream, commit:4714ec61b780853f03164d8650b155639aa50bfb 2025-10-09
0017-Update-to-rust-stable.patch Update to rust stable Ben Jackson <puremourning@gmail.com> no upstream, commit:0d9f38918c212f10878923b7dfdcb2d839bf940f 2025-10-16
0019-Update-clang-to-21.1.3.patch Update clang to 21.1.3 Ben Jackson <puremourning@gmail.com> no upstream, commit:c7671cf8d3b56ae6c99d1cd83795473b01876894 2025-10-17
0020-Fix-stable-rust-version.patch Fix stable rust version
Pick recentish version, as 'stable' keep changing and breaking our
tests.

Fix tests after change to warning text in rust stable.
Ben Jackson <puremourning@gmail.com> no upstream, commit:e2561a5f0bac3427b3e630cf4e1ddf000ffec315 2025-12-16
0021-Fix-composing-URLs-on-Python-3.14.patch Fix composing URLs on Python 3.14
In Python 3.14, `urljoin('file:', '/some/path')` returns
`file:/some/path`, which is not accepted by gopls as a valid URL.
Apparently, `urljoin('file://', '/some/path')` works correctly in all
Python versions, so let's try it.
Dmitry Tantsur <dtantsur@protonmail.com> no upstream, commit:eb987e46a14f4705ae39e2015c912dc1231f3289 2025-12-15
0022-support-for-msvc-18-in-build.py.patch support for msvc 18 in build.py Rémi Coulom <remi.coulom@gmail.com> no upstream, commit:286cac01c8efc84ac789fb5eae738399732485fc 2025-12-25
0023-msvc-18-is-not-unexpected-any-more.patch msvc 18 is not unexpected any more Rémi Coulom <remi.coulom@gmail.com> no upstream, commit:2d53470d16284f9322965e4531f9cd70202784b2 2025-12-25
0024-ACCEPTABLE_MSVC_VERSIONS.patch ACCEPTABLE_MSVC_VERSIONS Rémi Coulom <remi.coulom@gmail.com> no upstream, commit:d922e62c542a03261a29331281acb64950e74d99 2025-12-25
0025-Update-jdt-to-1.51.0.patch Update jdt to 1.51.0 Ben Jackson <puremourning@gmail.com> no upstream, commit:409f0c1c055c7acc9db4965c51399227e81ec71f 2025-10-16
0026-Python-3.12-is-required.patch Python 3.12 is required
Python 3.8 was EOL a long time ago. Python 3.12 is 2 years old.

Closes #1782
Ben Jackson <puremourning@gmail.com> no upstream, commit:8102356bad11d034fd7bd35b5ef033c427a69e92 2025-12-29
0027-Add-feature-to-define-LSP-settings-in-g-ycm_language.patch Add feature to define LSP settings in g:ycm_language_server "Mikhail f. Shiryaev" <mr.felixoid@gmail.com> no upstream, commit:6e58ecd6c42a3bc1899bdead8481aeb641722ced 2026-01-11
0028-Use-UpdateDict-to-merge-nested-settings.patch Use UpdateDict to merge nested settings "Mikhail f. Shiryaev" <mr.felixoid@gmail.com> no upstream, commit:fe398ae4783f3a99b38ab37b366980c827e95cdb 2026-01-12
0029-Apply-review-suggestions.patch Apply review suggestions "Mikhail f. Shiryaev" <mr.felixoid@gmail.com> no upstream, commit:c816c9c714cceb06a96bb3ae28dba7413aab2be2 2026-01-13
0030-Fix-typo-add-language_server-anchor.patch Fix typo, add `language_server` anchor "Mikhail f. Shiryaev" <mr.felixoid@gmail.com> no upstream, commit:14e964dda5ff432ceb4cb06fd0ad80a09653f39e 2026-01-14
0031-Fix-encoding-in-UriToFilePath.patch Fix %-encoding in UriToFilePath
In #1119 a change was made to "unquote" the URI before converting to a
file path, ostensibly to support windows. It seems that in Python 3.14
the underlying issue this was working around was fixed, and as a result
we're broken, leading to paths being truncated.

The tests added for UriToFilePath with Windows paths still pass
unchanged without the hack on Python 3.14 and the new test passes on
pre-3.14 with the hack, so we have to gate it on version, sadly.
Ben Jackson <puremourning@gmail.com> no upstream, commit:5cbe0384934a6799b4ccfb7cb8b2141dd1e016a9 2026-03-01
00-use-python3-shebang.patch Adds missing script headers Onur Aslan <onuraslan@gmail.com> not-needed
01-add-marker-to-allow-skipping-tests-on-Debian.patch Add marker to skip tests on Debian The testsuite contains rather a lot and some tests do not work anymore
due to us patching out third-party usage and such, so to keep the
changes to the testsuite minimal rather than removing entire tests
we will mark them for skipping.
.
This patch does not mark any test,
this is to be done in later patches.
David Kalnischkies <donkult@debian.org> not-needed
10-use-system-clang-and-llvm.patch Use Debian's llvm and clang While this patch is mostly about dropping the usage of the embedded clang
sources (which we strip from the upstream tarball as well) it also adapts
(so in effect mostly reverts) changes to the tests to have them support
multiple clang versions
David Kalnischkies <donkult@debian.org> not-needed
11-use-system-gtest.patch Find pthreads for gtest David Kalnischkies <donkult@debian.org> not-needed
12-use-system-unicode-data.patch Use unicode-data instead of embedded copies or downloads Upstream embeds the generated files in their release tarballs.
As they are giant blobs which are impossible to review we will just use
the script provided by upstream to regenerate them – just with data
we have already in the unicode-data package instead of trying to download
David Kalnischkies <donkult@debian.org> not-needed
13-use-system-whereami.patch Use system whereami for running tests David Kalnischkies <donkult@debian.org> not-needed
14-use-system-or-home-gopls.patch Use system gopls or from current users go home gopls is packaged in Debian now, so we can use that, but as we
supported picking it up from the users home we keep it.
David Kalnischkies <donkult@debian.org> not-needed
15-use-system-tssserver.patch Use tsserver from node-typescript package David Kalnischkies <donkult@debian.org> not-needed
19-dont-try-to-use-thirdparty-dir.patch don't try to use non-existent thirdparty directory We strip the thirdparty directory from the tarball to avoid shipping
and using the various embedded copies upstream has. On the plus side:
As we don't include them, we don't need to load them.
David Kalnischkies <donkult@debian.org> not-needed
20-use-home-tern.patch Debian doesn't have node-tern. This patch is making ycmd to use locally installed tern with `npm install tern` command. Onur Aslan <onuraslan@gmail.com> not-needed
0001-Upgrade-to-LLVM19.patch Upgrade to LLVM19 Boris Staletic <boris.staletic@protonmail.com> no upstream, commit:e6a0baab85c0e7f002b2198f2a189bc6c0a5a92d 2024-09-19
0002-Upgrade-to-unicode-16.patch Upgrade to unicode 16 Boris Staletic <boris.staletic@protonmail.com> no upstream, commit:32e42c96281ebddcce5ae1ea79b80a0ac07cb19e 2024-10-08
0003-Make-building-regex-module-optional.patch Make building regex module optional Boris Staletic <boris.staletic@protonmail.com> no upstream, commit:2344ca4791940841af3a9a03f7231773ac2430e7 2024-10-07
0004-Correct-where-WithRetry-decorator-is-applied.patch Correct where WithRetry decorator is applied
A TestCase.subTest() context manager will swallow exceptions, so
applying @WithRetry on the entire test does not work.
Instead, it needs to be applied on whatever the subTest is doing.
Boris Staletic <boris.staletic@protonmail.com> no upstream, commit:5646bc3b9f2d43b6eec2bd62042718a0b810cab2 2024-12-12
30-prepare-unittests-for-autopkgtests.patch Use upstream unittest as autopkgtest Ideally we would run the tests (also) at build time, but quiet a few
need to be disabled as Debian misses the language servers involved and
it adds a gigantic set of build dependencies.
.
The changes itself are mostly teaching the tests who expect no global
config as upstream has none (while Debian sets one) to ignore this
specific setting.
.
Note that some tests are modified by earlier patches already if the
change seemed related and fitting, so this is the final catch-all.
David Kalnischkies <donkult@debian.org> not-needed
31-ignore-order-of-goto-locations.patch Ignore order of Goto locations return by clangd Upstream has a fixed order of locations and this seems to work on all
Debian architectures autopkgtest is run on except s390x for some reason.
.
For upstream the order is important in so far as order is an important
user interface, but for us it is less of an issue and likely to trigger
with different clang versions, so we go the easy route of ignoring the
order in this test.
David Kalnischkies <donkult@debian.org> not-needed
32-skip-clangd-alreadyresolved-if-too-slow.patch Skip clangd alreadyresolved test if too slow Most architectures run this test just fine, but Upstream considers this
test already flaky applying a WithRetry to it, which re-runs the rest 20
times. That tends to be enough even for the slower architectures like
armel, but not always, and so this test is too flaky to be used.
.
I keep it enabled for machines identifying as x86_64 through so it is
run at least somewhere completely and of course every architecture can
be (more or less) lucky and succeed the first time.
.
Ideally upstream would resolve the underlying problem through.
David Kalnischkies <donkult@debian.org> not-needed
33-skip-gopls-problems.patch Skip gopls problem tests in Debian In an earlier version of this patch we were skipping the
tests as they "mysteriously" failed. Now upstream fixed them,
but the fix is testing that gopls has a particular bug.
Upstream hardcodes the gopls version they use, we don't,
so lets hope gopls resolves that issue, and don't block
the fix if they do so by having a test failure then.
David Kalnischkies <donkult@debian.org> not-needed
34-consistently-use-60-secs-as-timeout.patch Consistently use 30 secs as timeout Various places in the tests define different timeouts that might
work for upstream and their testing infrastructure, but especially
slower architectures in Debian can have trouble with consistently
completing requests in a short time frame, so this patch gives them
all consistently the same long time as upstream flip-flops somewher
between 5 and 30 seconds for timeouts.
.
Ideally this would not be needed even in Debian.
David Kalnischkies <donkult@debian.org> not-needed
40-support-text-document-sync-kind.patch Support textDocumentSync: Kind as well as Options ycmd supports the Options dict value, but while actually referring
to being also potentially an int in a comment, its not supported.
.
This commit changes the default value to None instead of Full
as the specification defines and sends the notification for both
possible values also actually using the _sync_type value
previously set.
.
I don't see a reference being made to 'Full' vs 'Incremental' in
the code, so I pretend I didn't notice and let ycmd do its thing
as before.
.
Tested with fortran-language-server as defined in lsp-examples
which does not update the diagnostics on save as advertised
otherwise. Upstream has a pull request actually to use the
Options value supported by ycmd currently, but it might not be
the only server following the spec which still allows it.
.
For upstreaming this should come with a test, but sadly the existing
code had no tests for it either.
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_synchronization
David Kalnischkies <david@kalnischkies.de> no
45-as-core-version.patch Remove CORE_VERSION handling as Debian has dependencies Upstream bumps the CORE_VERSION whenever it wants to ensure that the
user rebuilds the C++ library parts as a user can pull updates for the
python parts, but not apply them for the C++ parts with a rebuild.
.
In Debian we don't need this, we can just ship a new version of the
package and the users will have the updated core, no need for manual
intervention, as that situation can not arise.
.
We do keep the CORE_VERSION for its other job through: Keeping in touch
with the editor parts (vim-youcompleteme), but with virtual provides
we are a lot more relaxed about versions working together than upstream
is to avoid forcing needless lockstep upgrades.
David Kalnischkies <donkult@debian.org> not-needed
50-provide-generic-ycm-extra-conf-py.patch This patch converts projets ycm_extra_conf.py to a generic configuration for semantic completion. This patch also sets global
ycm_extra_conf in default_settings.json
Onur Aslan <onuraslan@gmail.com> not-needed
51-more-generic-ycm_extra_conf.py.patch Refactor ycm_extra_conf.py file to make changes easier Upstream uses this file as example file and for the project itself,
but we patch the project specifics out and set it as global conf file
instead to get a better out of the box experience as expected in Debian.
.
To that end we will add additional features to this global example
file in the hope that it will be more useful for everyone in this way.
David Kalnischkies <david@kalnischkies.de> not-needed
52-ycm_extra_conf-search-for-cmake-build-directory.patch Search for common out of tree build directories The default file picks up the database file automatically if it
sits in the project root – but using an out-of-tree build as is
recommended with CMake it will be elsewhere and the user would
need to link it in. The user can still do that e.g. to work around
misdetections, but if none is present, but its a CMake project
we look into common directory name choices for the file and use it
if we find it as that is likely what the user wants.
.
For upstream this is of no interest as they don't want to provide
a generic example and instead expect every user to make explicit
configuration choices for individual projects.
David Kalnischkies <david@kalnischkies.de> not-needed
60-prepare-for-Debian-default-LSP-completers.patch Prepare for default LSP completers set by Debian Debian ships some LSP completers we can enable out of the box for
easier access even if upstream doesn't official support them and
only provides some unofficial instructions via
https://github.com/ycm-core/lsp-examples
.
This patch add just the infrastructure, the LSP completers are
added individually in later patches.
David Kalnischkies <donkult@debian.org> not-needed
61-support-ccls-as-builtin-lsp.patch Allow ccls to be used as C/C++ completer ycmd supports language servers via a common protocol,
but as Debian's packaging is built with libclang-based
completer enabled which can't be disabled upstream as in
that case you would just built it without support we add
a user option to disable it and hence allow the use of ccls
as the third option for C/C++ completer
David Kalnischkies <donkult@debian.org> not-needed https://github.com/ycm-core/lsp-examples
62-support-fortran-language-server-as-builtin-lsp.patch Adds fortran language server to default set David Kalnischkies <donkult@debian.org> not-needed https://github.com/ycm-core/lsp-examples
63-support-gdscript-godot-as-builtin-lsp.patch Adds godot (gdscript) language server to default set David Kalnischkies <donkult@debian.org> not-needed https://github.com/ycm-core/lsp-examples
64-support-debputy-as-builtin-lsp.patch Adds debian/ (debputy) language server to default set David Kalnischkies <donkult@debian.org> no 2024-03-24
65-support-perlnavigator-as-builtin-lsp.patch Adds perl (perlnavigator) language server to default set David Kalnischkies <donkult@debian.org> no
90-support-unicode-17-in-tests.patch Support Unicode 16 and 17 in testing David Kalnischkies <donkult@debian.org> yes

All known versions for source package 'ycmd'

Links