lol

ycmd: unstable-2023-11-06 -> unstable-2025-06-16

Update `version`, `rev`, and `sha256` because why not update if also
fixing dependency renaming stuff.

Add `legacy-cgi` due to breaking changes in Python updates;

- https://pypi.org/project/legacy-cgi/
- https://peps.python.org/pep-0594/#deprecated-modules
- https://peps.python.org/pep-0594/#cgi

TLDR: `cgi` was deprecated in version `3.11` and aimed to be removed in
`3.12` of Python due to;

> “[...] designed poorly and are now near-impossible to fix (`cgi`)
> [...]”

Remove `disable` attribute at request of @SuperSandro2000 because
Python2 is EOL

Add symbolic link to address Issue #429485 with YouCompleteMe Vim
plugin, however, beware there are _opportunities_ for future bug reports
to be opened because of `ycmd` and YouCompleteMe version de-sync.

Add `longDescription` with notes about YouCompleteMe errors when
run-time and compile-time Python interpreters do not match.

S0AndS0 4d48a4e9 23c6c0b1

+16 -4
+16 -4
pkgs/by-name/yc/ycmd/package.nix
··· 21 22 stdenv.mkDerivation { 23 pname = "ycmd"; 24 - version = "0-unstable-2023-11-06"; 25 - disabled = !python3.isPy3k; 26 27 # required for third_party directory creation 28 src = fetchFromGitHub { 29 owner = "ycm-core"; 30 repo = "ycmd"; 31 - rev = "0607eed2bc211f88f82657b7781f4fe66579855b"; 32 - hash = "sha256-SzEcMQ4lX7NL2/g9tuhA6CaZ8pX/DGs7Fla/gr+RcOU="; 33 fetchSubmodules = true; 34 }; 35 ··· 46 boost 47 libllvm.all 48 libclang.all 49 ] 50 ++ [ 51 jedi ··· 84 mkdir -p $out/bin 85 ln -s $out/lib/ycmd/ycmd/__main__.py $out/bin/ycmd 86 87 # Copy everything: the structure of third_party has been known to change. 88 # When linking our own libraries below, do so with '-f' 89 # to clobber anything we may have copied here. ··· 120 121 meta = with lib; { 122 description = "Code-completion and comprehension server"; 123 mainProgram = "ycmd"; 124 homepage = "https://github.com/ycm-core/ycmd"; 125 license = licenses.gpl3;
··· 21 22 stdenv.mkDerivation { 23 pname = "ycmd"; 24 + version = "0-unstable-2025-06-16"; 25 26 # required for third_party directory creation 27 src = fetchFromGitHub { 28 owner = "ycm-core"; 29 repo = "ycmd"; 30 + rev = "9160b4eee67ea61c8501bad36d061bcec5340021"; 31 + hash = "sha256-MSzYX1vXuhd4TNxUfHWaRu7O0r89az1XjZBIZ6B3gBk="; 32 fetchSubmodules = true; 33 }; 34 ··· 45 boost 46 libllvm.all 47 libclang.all 48 + legacy-cgi 49 ] 50 ++ [ 51 jedi ··· 84 mkdir -p $out/bin 85 ln -s $out/lib/ycmd/ycmd/__main__.py $out/bin/ycmd 86 87 + ## Work-around CMake/Nix naming of `.so` output 88 + ln -s $out/lib/ycmd/ycm_core.cpython-[[:digit:]-][^[:space:]]*-gnu${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/ycmd/ycm_core.so 89 + 90 # Copy everything: the structure of third_party has been known to change. 91 # When linking our own libraries below, do so with '-f' 92 # to clobber anything we may have copied here. ··· 123 124 meta = with lib; { 125 description = "Code-completion and comprehension server"; 126 + longDescription = '' 127 + Note if YouCompleteMe Vim plugin complains with; 128 + 129 + > ImportError: Python version mismatch: module was compiled for Python 3.13, but the interpreter version is incompatible: 3.10.18 130 + 131 + ... then set something similar to following in `programs.vim.extraConfig`; 132 + 133 + let g:ycm_server_python_interpreter = "${python3.interpreter}" 134 + ''; 135 mainProgram = "ycmd"; 136 homepage = "https://github.com/ycm-core/ycmd"; 137 license = licenses.gpl3;