SEANK.H.LIAO

fedora broken nvim

weird lua errors

neovim on fedora is broken

I use neovim as my editor, because lua is slightly nicer than vimscript. Anyway, I recently noticed that my previous depenency manager packer.nvim went unmaintained, so off I went to replace it.

The first recommendation was lazy.nvim, but... I think the laziness breaks too much stuff, or I was too lazy to go figure out which plugins I needed not lazy load.

The other recommendation as pckr.nvim, which worked on my personal laptop running Arch. The next day as I was updating my work laptop running Fedora (38), I ran into an issue on startup:

1Error detected while processing /root/.config/nvim/init.lua:
2E5113: Error while calling lua chunk: /root/.local/share/nvim/pckr/pckr.nvim/lua/pckr/actions.lua:331: attempt to yield acro
3ss C-call boundary
4stack traceback:
5        [C]: in function 'main'
6        /root/.local/share/nvim/pckr/pckr.nvim/lua/pckr/actions.lua:331: in function 'install'
7        /root/.local/share/nvim/pckr/pckr.nvim/lua/pckr.lua:55: in function 'add'
8        /root/.config/nvim/init.lua:120: in main chunk

I'm still quite confused about how this could happen, besides maybe neovim being built against a different lua version? The version info wasn't too enlightening:

[root@63dcc201f703 nvim]# nvim --version
NVIM v0.9.4
Build type: RelWithDebInfo
LuaJIT 2.1.1692716794
Compilation: /usr/bin/gcc -O2 -g -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wvla -Wdouble-promotion -Wmissing-noreturn -Wmissing-format-attribute -Wmissing-prototypes -fno-common -Wno-unused-result -Wimplicit-fallthrough -fdiagnostics-color=auto -fstack-protector-strong -DUNIT_TESTING -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DUSING_UV_SHARED=1 -I/usr/include/luajit-2.1 -I/usr/include -I/usr/include/luv -I/builddir/build/BUILD/neovim-0.9.4/redhat-linux-build/src/nvim/auto -I/builddir/build/BUILD/neovim-0.9.4/redhat-linux-build/include -I/builddir/build/BUILD/neovim-0.9.4/redhat-linux-build/cmake.config -I/builddir/build/BUILD/neovim-0.9.4/src -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/share/nvim"

Run :checkhealth for more info

Attempting to follow instructions to build from source: neovim/wiki/Building Neovim resulted in more errors:

 1FAILED: src/nvim/po/cs.mo /root/neovim/build/src/nvim/po/cs.mo
 2cd /root/neovim/build/src/nvim/po && /usr/bin/msgfmt -o /root/neovim/build/src/nvim/po/cs.mo /root/neovim/src/nvim/po/cs.po
 3/root/neovim/src/nvim/po/cs.po: warning: Charset "ISO-8859-2" is not supported. msgfmt relies on iconv(),
 4                                         and iconv() does not support "ISO-8859-2".
 5                                         Installing GNU libiconv and then reinstalling GNU gettext
 6                                         would fix this problem.
 7                                         Continuing anyway.
 8/usr/bin/msgfmt: Cannot convert from "ISO-8859-2" to "UTF-8". msgfmt relies on iconv(), and iconv() does not support this conversion.
 9[3/16] Generating cs.cp1250.mo
10FAILED: src/nvim/po/cs.cp1250.mo /root/neovim/build/src/nvim/po/cs.cp1250.mo
11cd /root/neovim/build/src/nvim/po && /usr/bin/msgfmt -o /root/neovim/build/src/nvim/po/cs.cp1250.mo /root/neovim/src/nvim/po/cs.cp1250.po
12/root/neovim/src/nvim/po/cs.cp1250.po: warning: Charset "CP1250" is not supported. msgfmt relies on iconv(),
13                                                and iconv() does not support "CP1250".
14                                                Installing GNU libiconv and then reinstalling GNU gettext
15                                                would fix this problem.
16                                                Continuing anyway.
17/usr/bin/msgfmt: Cannot convert from "CP1250" to "UTF-8". msgfmt relies on iconv(), and iconv() does not support this conversion.
18[4/16] Generating ja.euc-jp.mo
19FAILED: src/nvim/po/ja.euc-jp.mo /root/neovim/build/src/nvim/po/ja.euc-jp.mo
20cd /root/neovim/build/src/nvim/po && /usr/bin/msgfmt -o /root/neovim/build/src/nvim/po/ja.euc-jp.mo /root/neovim/src/nvim/po/ja.euc-jp.po
21/root/neovim/src/nvim/po/ja.euc-jp.po: warning: Charset "EUC-JP" is not supported. msgfmt relies on iconv(),
22                                                and iconv() does not support "EUC-JP".
23                                                Installing GNU libiconv and then reinstalling GNU gettext
24                                                would fix this problem.
25                                                Continuing anyway.
26/usr/bin/msgfmt: Cannot convert from "EUC-JP" to "UTF-8". msgfmt relies on iconv(), and iconv() does not support this conversion.
27[5/16] Generating sk.cp1250.mo
28FAILED: src/nvim/po/sk.cp1250.mo /root/neovim/build/src/nvim/po/sk.cp1250.mo
29cd /root/neovim/build/src/nvim/po && /usr/bin/msgfmt -o /root/neovim/build/src/nvim/po/sk.cp1250.mo /root/neovim/src/nvim/po/sk.cp1250.po
30/root/neovim/src/nvim/po/sk.cp1250.po: warning: Charset "CP1250" is not supported. msgfmt relies on iconv(),
31                                                and iconv() does not support "CP1250".
32                                                Installing GNU libiconv and then reinstalling GNU gettext
33                                                would fix this problem.
34                                                Continuing anyway.
35/usr/bin/msgfmt: Cannot convert from "CP1250" to "UTF-8". msgfmt relies on iconv(), and iconv() does not support this conversion.
36[6/16] Generating sk.mo
37FAILED: src/nvim/po/sk.mo /root/neovim/build/src/nvim/po/sk.mo
38cd /root/neovim/build/src/nvim/po && /usr/bin/msgfmt -o /root/neovim/build/src/nvim/po/sk.mo /root/neovim/src/nvim/po/sk.po
39/root/neovim/src/nvim/po/sk.po: warning: Charset "ISO-8859-2" is not supported. msgfmt relies on iconv(),
40                                         and iconv() does not support "ISO-8859-2".
41                                         Installing GNU libiconv and then reinstalling GNU gettext
42                                         would fix this problem.
43                                         Continuing anyway.
44/usr/bin/msgfmt: Cannot convert from "ISO-8859-2" to "UTF-8". msgfmt relies on iconv(), and iconv() does not support this conversion.
45[16/16] Generating ru.mo
46ninja: build stopped: subcommand failed.
47make: *** [Makefile:84: nvim] Error 1

Though this was resolved with:

1$ yum install glibc-gconv-extra

And the custom build version worked with pckr.nvim. So I still don't know why the packaged version is bad. Also the tarballed releases from neovim/releases work too.