# vim:ft=spec: %bcond_with jemalloc %ifarch %{arm} %{ix86} x86_64 %{mips} s390x %bcond_without luajit %else %ifarch aarch64 %bcond_without luajit %else %bcond_with luajit %endif %endif %if 0%{?el10} # tree-sitter in EL10 is too old and libtree-sitter-devel is not shipped # https://issues.redhat.com/browse/RHEL-56996 %bcond system_treesitter 0 %else %bcond system_treesitter 1 %endif %global luv_min_ver 1.43.0 %if %{with system_treesitter} %global tree_sitter_min_ver 0.26.7 %endif %global vterm_min_ver 0.3.3 %global luv_include_dir %{_includedir}/luv %if %{with luajit} %global luajit_version 2.1 %global lua_prg %{_bindir}/luajit %else %global lua_version 5.1 %global lua_prg %{_bindir}/lua-5.1 %endif Name: neovim Version: 0.13.0~dev.1558.8d5ebdf986 Release: 1%{?dist} License: Apache-2.0 AND Vim AND MIT Summary: Vim-fork focused on extensibility and agility Url: https://neovim.io Source0: neovim-c8d32cef.tar.gz Source1: sysinit.vim Source2: spec-template Patch1000: neovim-lua-bit32.patch BuildRequires: gcc-c++ BuildRequires: cmake BuildRequires: desktop-file-utils BuildRequires: fdupes BuildRequires: gettext BuildRequires: gperf BuildRequires: gcc BuildRequires: libluv-devel >= %{luv_min_ver} %if %{with luajit} # luajit implements version 5.1 of the lua language spec, so it needs the # compat versions of libs. BuildRequires: luajit-devel Requires: luajit2.1-luv >= %{luv_min_ver} %else # lua5.1 BuildRequires: compat-lua BuildRequires: compat-lua-devel BuildRequires: lua5.1-bit32 Requires: lua5.1-luv >= %{luv_min_ver} # /with luajit %endif Requires: lua5.1-lpeg >= 1.1.0 BuildRequires: lua5.1-lpeg >= 1.1.0 BuildRequires: lua5.1-mpack >= 1.0.11 %if %{with jemalloc} BuildRequires: jemalloc-devel %endif BuildRequires: msgpack-devel >= 3.1.0 BuildRequires: pkgconfig(termkey) BuildRequires: pkgconfig(libuv) >= 1.50.0 BuildRequires: pkgconfig(vterm) >= %{vterm_min_ver} # need the build with the fix for the resize buffer issue Requires: libvterm >= %{vterm_min_ver} BuildRequires: pkgconfig(unibilium) BuildRequires: pkgconfig(libutf8proc) >= 2.10.0 %if %{with system_treesitter} BuildRequires: pkgconfig(tree-sitter) >= %{tree_sitter_min_ver} # tree-sitter didn't do an soname bump. enforce the min version # see https://github.com/nvim-treesitter/nvim-treesitter/pull/3055/files Requires: libtree-sitter >= %{tree_sitter_min_ver} %endif # Parser generator, only needed for :TSInstallFromGrammar Recommends: tree-sitter-cli Suggests: (python2-neovim if python2) Suggests: (python3-neovim if python3) # XSel provides access to the system clipboard Recommends: xsel Recommends: wl-clipboard Recommends: ripgrep Recommends: inotify-tools %description Neovim is a refactor - and sometimes redactor - in the tradition of Vim, which itself derives from Stevie. It is not a rewrite, but a continuation and extension of Vim. Many rewrites, clones, emulators and imitators exist; some are very clever, but none are Vim. Neovim strives to be a superset of Vim, notwithstanding some intentionally removed misfeatures; excepting those few and carefully-considered excisions, Neovim is Vim. It is built for users who want the good parts of Vim, without compromise, and more. %prep %setup -T -b 0 -q -n neovim rm -rf .deps cp -as $PWD/vendor .deps %if %{without luajit} %patch -P 1000 -p1 %endif %build # set vars to make build reproducible; see config/CMakeLists.txt HOSTNAME=koji USERNAME=koji # Build the tree-sitter parsers first %define _vpath_srcdir cmake.deps %define __cmake_builddir .deps %cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DUSE_BUNDLED=OFF \ %if %{without system_treesitter} -DUSE_BUNDLED_TS=ON \ %endif -DUSE_BUNDLED_TS_PARSERS=ON %cmake_build # Build neovim %define _vpath_srcdir . %define __cmake_builddir redhat-linux-build %cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DPREFER_LUA=%{?with_luajit:OFF}%{!?with_luajit:ON} \ -DLUA_PRG=%{lua_prg} \ -DENABLE_JEMALLOC=%{?with_jemalloc:ON}%{!?with_jemalloc:OFF} \ -DLIBLUV_INCLUDE_DIR:PATH=%{luv_include_dir} \ -DNVIM_VERSION_MEDIUM="v0.13.0-dev+1558-8d5ebdf986" \ -DENABLE_TRANSLATIONS=ON %cmake_build %install %cmake_install install -p -m 644 %{SOURCE1} %{buildroot}%{_datadir}/nvim/sysinit.vim install -p -m 644 %{SOURCE2} %{buildroot}%{_datadir}/nvim/template.spec desktop-file-install --dir=%{buildroot}%{_datadir}/applications \ runtime/org.neovim.nvim.desktop install -d -m0755 %{buildroot}%{_datadir}/pixmaps install -m0644 runtime/nvim.png %{buildroot}%{_datadir}/pixmaps/nvim.png %fdupes %{buildroot}%{_datadir}/ # Fix exec bits find %{buildroot}%{_datadir} \( -name "*.bat" -o -name "*.awk" \) \ -print -exec chmod -x '{}' \; %find_lang nvim # Refresh documentation helptags. %transfiletriggerin -- %{_datadir}/nvim/runtime/doc NVIM_LOG_FILE=/dev/null %{_bindir}/nvim -u NONE -es -c ":helptags %{_datadir}/nvim/runtime/doc" -c ":q" &> /dev/null || : %transfiletriggerpostun -- %{_datadir}/nvim/runtime/doc > %{_datadir}/nvim/runtime/doc/tags || : NVIM_LOG_FILE=/dev/null %{_bindir}/nvim -u NONE -es -c ":helptags %{_datadir}/nvim/runtime/doc" -c ":q" &> /dev/null || : %files -f nvim.lang %license LICENSE.txt %doc CONTRIBUTING.md MAINTAIN.md README.md %{_bindir}/nvim %dir %{_libdir}/nvim %dir %{_libdir}/nvim/parser %{_libdir}/nvim/parser/*.so %{_mandir}/man1/nvim.1* %{_datadir}/applications/org.neovim.nvim.desktop %{_datadir}/pixmaps/nvim.png %{_datadir}/icons/hicolor/128x128/apps/nvim.png %{_datadir}/nvim %changelog * Tue Sep 08 2026 Aron Griffis - 0.13.0~dev.1558.8d5ebdf986-1 - Nightly build from git master