diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5f5dba2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,67 @@ +/*.log +/*.rpm +/series +/x86_64/ +/results_neovim/ +/neovim-0.1.7.tar.gz +/neovim-0.2.0.tar.gz +/neovim-0.2.1.tar.gz +/neovim-0.2.2.tar.gz +/neovim-0.3.0.tar.gz +/neovim-0.3.1.tar.gz +/neovim-0.3.2.tar.gz +/neovim-0.3.3.tar.gz +/neovim-0.3.4.tar.gz +/neovim-0.3.5.tar.gz +/neovim-0.3.6.tar.gz +/neovim-0.3.7.tar.gz +/neovim-0.3.8.tar.gz +/neovim-0.4.2.tar.gz +/neovim-0.4.3.tar.gz +/neovim-0.4.4.tar.gz +/neovim-0.5.0.tar.gz +/neovim-0.5.1.tar.gz +/neovim-0.6.0.tar.gz +/neovim-0.6.1.tar.gz +/neovim-0.7.0.tar.gz +/neovim-0.7.2.tar.gz +/neovim-0.8.0.tar.gz +/neovim-0.8.1.tar.gz +/neovim-0.8.2.tar.gz +/neovim-0.8.3.tar.gz +/neovim-0.9.0.tar.gz +/neovim-0.9.1.tar.gz +/neovim-0.9.2.tar.gz +/neovim-0.9.4.tar.gz +/neovim-0.9.5.tar.gz +/neovim-0.10.0.tar.gz +/neovim-0.10.0-vendor.tar.gz +/neovim-0.10.1.tar.gz +/neovim-0.10.1-vendor.tar.gz +/neovim-0.10.1-vendor-treesitter.tar.gz +/neovim-0.10.2.tar.gz +/neovim-0.10.2-vendor.tar.gz +/neovim-0.10.2-vendor-treesitter.tar.gz +/neovim-0.10.3.tar.gz +/neovim-0.10.3-vendor.tar.gz +/neovim-0.10.3-vendor-treesitter.tar.gz +/neovim-0.10.4.tar.gz +/neovim-0.10.4-vendor.tar.gz +/neovim-0.10.4-vendor-treesitter.tar.gz +/neovim-0.11.0.tar.gz +/neovim-0.11.0-vendor.tar.gz +/neovim-0.11.0-vendor-treesitter.tar.gz +/neovim-0.11.1.tar.gz +/neovim-0.11.1-vendor.tar.gz +/neovim-0.11.1-vendor-treesitter.tar.gz +/neovim-0.11.2.tar.gz +/neovim-0.11.2-vendor.tar.gz +/neovim-0.11.2-vendor-treesitter.tar.gz +/neovim-0.11.3.tar.gz +/neovim-0.11.3-vendor.tar.gz +/neovim-0.11.3-vendor-treesitter.tar.gz +/neovim-0.11.4.tar.gz +/neovim-0.11.4-vendor.tar.gz +/neovim-0.11.4-vendor-treesitter.tar.gz +/neovim-0.11.5.tar.gz +/neovim-0.11.5-vendor.tar.gz diff --git a/README.md b/README.md new file mode 100644 index 0000000..e3533c1 --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +# neovim + +The hyper-extensible Vim-based text editor + +## Updating the package + +* Update the version in the spec file +* Download the new tarball +* Add the tarball with `fedpkg new-sources neovim-.tar.gz` +* Run `bash mkvendor.sh` diff --git a/changelog b/changelog new file mode 100644 index 0000000..8a2b300 --- /dev/null +++ b/changelog @@ -0,0 +1,294 @@ +* Mon Mar 04 2024 Andreas Schneider - 0.9.5-4 +- resolves: #2222911 - Build with luajit on s390x + +* Thu Jan 25 2024 Fedora Release Engineering - 0.9.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 0.9.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Tue Jan 02 2024 Andreas Schneider - 0.9.5-1 +- Update to version 0.9.5 + * https://github.com/neovim/neovim/releases/tag/v0.9.5 + * For bigger version bump changelog see `:help news` + * resolves: rhbz#2256278 + +* Fri Oct 20 2023 Andreas Schneider - 0.9.4-1 +- Update to version 0.9.4 + * https://github.com/neovim/neovim/releases/tag/v0.9.4 + * For bigger version bump changelog see `:help news` + * resolves: rhbz#2243010 + +* Thu Sep 07 2023 Andreas Schneider - 0.9.2-1 +- Update to version 0.9.2 + * For changelog see `:help news` + +* Mon Aug 28 2023 LuK1337 - 0.9.1-4 +- Improve spec template + +* Thu Jul 20 2023 Fedora Release Engineering - 0.9.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 06 2023 Andreas Schneider - 0.9.1-2 +- Build with new libluv-devel + +* Wed May 31 2023 Andreas Schneider - 0.9.1-1 +- Update to version 0.9.1 + * For changelog see `:help news` + +* Tue May 02 2023 Andreas Schneider - 0.9.0-3 +- Improve semantic token performance +- related: rhbz#2188229 - Fix applying patches + +* Fri Apr 21 2023 Andreas Schneider - 0.9.0-2 +- resolves: rhbz#2188229 - Fix buffer overflow for user command + +* Fri Apr 07 2023 Andreas Schneider - 0.9.0-1 +- Update to version 0.9.0 + * For changelog see `:help news` + +* Mon Mar 27 2023 Andreas Schneider - 0.8.3-4 +- resolves: rhbz#2181836 - Fix snprintf buffer overflow with tags + +* Sat Mar 25 2023 Andreas Schneider - 0.8.3-3 +- resolves: rhbz#2165805 - Fix snprintf buffer overflow + +* Sun Mar 05 2023 Andreas Schneider - 0.8.3-2 +- Update License to SPDX expression +- Update spec template for auto(release|changelog) + +* Thu Feb 02 2023 Andreas Schneider - 0.8.3-1 +- Update to version 0.8.3 + * https://github.com/neovim/neovim/releases/tag/v0.8.3 + +* Thu Jan 19 2023 Fedora Release Engineering - 0.8.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Dec 30 2022 Andreas Schneider - 0.8.2-1 +- Update to version 0.8.2 + * https://github.com/neovim/neovim/releases/tag/v0.8.2 + +* Mon Nov 14 2022 Andreas Schneider - 0.8.1-1 +- Update to version 0.8.1 + * https://github.com/neovim/neovim/releases/tag/v0.8.1 + +* Fri Sep 30 2022 Andreas Schneider - 0.8.0-1 +- Update to version 0.8.0 + * https://github.com/neovim/neovim/releases/tag/v0.8.0 + +* Wed Sep 21 2022 Andreas Schneider - 0.7.2-4 +- Build with libvterm 0.3 + +* Thu Aug 25 2022 Michel Alexandre Salim - 0.7.2-3 +- Enforce the minimum tree-sitter version at runtime (Fixes: rhbz#2100577) + +* Fri Jul 22 2022 Fedora Release Engineering - 0.7.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sun Jun 26 2022 Andreas Schneider - 0.7.2-1 +- Update to version 0.7.2 + +* Fri Apr 15 2022 Andreas Schneider - 0.7.0-1 +- Update to version 0.7.0 + +* Thu Mar 17 2022 Michel Alexandre Salim - 0.6.1-4 +- Support building on EPEL 8 + +* Wed Feb 09 2022 Andreas Schneider - 0.6.1-3 +- Fix libvterm 0.2 support + +* Thu Jan 20 2022 Fedora Release Engineering - 0.6.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Sat Jan 01 2022 Andreas Schneider - 0.6.1-1 +- Update to version 0.6.1 + +* Wed Dec 01 2021 Andreas Schneider - 0.6.0-1 +- Update to version 0.6.0 + +* Thu Oct 28 2021 Andreas Schneider - 0.5.1-2 +- Use luajit also on aarch64 + +* Mon Sep 27 2021 Andreas Schneider - 0.5.1-1 +- Update to version 0.5.1 + +* Fri Jul 30 2021 Andreas Schneider - 0.5.0-5 +- Build with luajit2.1-luv when we use luajit + +* Fri Jul 30 2021 Andreas Schneider - 0.5.0-4 +- resolves: rhbz#1983288 - Build with lua-5.1 on platforms where luajit is not + available + +* Thu Jul 22 2021 Fedora Release Engineering - 0.5.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Jul 08 2021 Andreas Schneider - 0.5.0-2 +- Fixed execute bits of bat and awk files + +* Mon Jul 05 2021 Andreas Schneider - 0.5.0-1 +- Raise BuildRequires for some libraries + +* Sat Jul 03 2021 Andreas Schneider - 0.5.0-0 +- Update to version 0.5.0 + * https://github.com/neovim/neovim/releases/tag/v0.5.0 + +* Mon Apr 19 2021 Andreas Schneider - 0.4.4-5 +- resolves: #1909495 - Load installed vim plugins +- Make build reproducible + +* Tue Jan 26 2021 Fedora Release Engineering - 0.4.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Sep 1 2020 Michel Alexandre Salim - 0.4.4-3 +- When using Lua 5.4, also pull in lua-bit32 at installation + +* Mon Aug 31 2020 Michel Alexandre Salim - 0.4.4-2 +- Do not hardcode Lua version +- Patch to support detecting Lua 5.4 +- Pull in lua-bit32 when built against Lua 5.4 + +* Wed Aug 05 2020 Andreas Schneider - 0.4.4-1 +- Update to version 0.4.4 +- Use new cmake macros + +* Sat Aug 01 2020 Fedora Release Engineering - 0.4.3-8 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 0.4.3-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sun Mar 22 2020 Michel Alexandre Salim - 0.4.3-6 +- Update build requirements + +* Sun Feb 23 2020 Andreas Schneider - 0.4.3-5 +- Update to upstream patchset for -fno-common + +* Mon Feb 17 2020 Andreas Schneider - 0.4.3-4 +- Update patchset for -fno-common + +* Mon Feb 17 2020 Andreas Schneider - 0.4.3-3 +- resolves: #1799680 - Fix -fno-common issues + +* Wed Jan 29 2020 Fedora Release Engineering - 0.4.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Nov 07 2019 Andreas Schneider - 0.4.3-1 +- Update to version 0.4.3 + +* Mon Oct 28 2019 Igor Gnatenko - 0.4.2-2 +- Fix glitches for terminals sayin xterm but not xterm + +* Thu Oct 03 2019 Andreas Schneider - 0.4.2-1 +- Update to version 0.4.2 + +* Thu Jul 25 2019 Fedora Release Engineering - 0.3.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Jul 05 2019 Andreas Schneider - 0.3.8-1 +- Update to version 0.3.8 + +* Wed May 29 2019 Andreas Schneider - 0.3.7-1 +- Update to version 0.3.7 + +* Wed May 29 2019 Andreas Schneider - 0.3.6-1 +- resolves: #1714849 - Update to version 0.3.6 + +* Tue May 07 2019 Andreas Schneider - 0.3.5-1 +- resolves: #1703867 - Update to version 0.3.5 + +* Wed Mar 06 2019 Aron Griffis - 0.3.4-1 +- Update to version 0.3.4 with luajit, rhbz #1685781 + +* Fri Feb 01 2019 Fedora Release Engineering - 0.3.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Jan 07 2019 Igor Gnatenko - 0.3.3-2 +- Remove Recommends: xterm + +* Sun Jan 06 2019 Andreas Schneider - 0.3.3-1 +- Update to version 0.3.3 + +* Wed Jan 02 2019 Andreas Schneider - 0.3.2-1 +- Update to version 0.3.2 + +* Fri Aug 10 2018 Andreas Schneider - 0.3.1-1 +- Update to version 0.3.1 + +* Tue Jul 31 2018 Florian Weimer - 0.3.0-6 +- Rebuild with fixed binutils + +* Fri Jul 27 2018 Igor Gnatenko - 0.3.0-5 +- Rebuild for new binutils + +* Fri Jul 27 2018 Igor Gnatenko - 0.3.0-4 +- Disable jemalloc + +* Fri Jul 13 2018 Fedora Release Engineering - 0.3.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 19 2018 Andreas Schneider - 0.3.0-2 +- resolves: #1592474 - Add jemalloc as a requirement + +* Mon Jun 11 2018 Andreas Schneider - 0.3.0-1 +- Update to version 0.3.0 +- resolves: #1450624 - Set default python_host_prog + +* Sat May 26 2018 Andreas Schneider - 0.2.2-3 +- Rebuild against unibilium-2.0.0 + +* Thu Feb 08 2018 Fedora Release Engineering - 0.2.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Dec 23 2017 Andreas Schneider - 0.2.2-1 +- resolves: #1510899 - Update to version 0.2.2 + +* Wed Nov 08 2017 Andreas Schneider - 0.2.1-1 +- resolves: #1510762 - Update to version 0.2.1 + +* Thu Aug 03 2017 Fedora Release Engineering - 0.2.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 0.2.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed May 31 2017 Than Ngo 0.2.0-3 +- fixed bz#1451143, ppc64/le build failure + +* Mon May 15 2017 Michel Alexandre Salim - 0.2.0-2 +- Adjust spec for building on epel7 + +* Mon May 08 2017 Andreas Schneider - 0.2.0-1 +- resolves: #1447481 - Update to 0.2.0 + +* Fri Feb 10 2017 Fedora Release Engineering - 0.1.7-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Dec 29 2016 Filip Szymański - 0.1.7-6 +- Add RPM spec file template + +* Thu Dec 08 2016 Filip Szymański - 0.1.7-5 +- Add recommends for python2-neovim and xsel +- Remove unused CMake options +- Use %%make_build and %%make_install macros +- Remove unnecessary %%defattr directive + +* Mon Dec 05 2016 Andreas Schneider - 0.1.7-4 +- Set license file correctly + +* Mon Dec 05 2016 Andreas Schneider - 0.1.7-3 +- Update build requires + +* Mon Dec 05 2016 Andreas Schneider - 0.1.7-2 +- Add Recommends for python3-neovim +- Use 'bit32' from lua 5.3 + +* Mon Nov 28 2016 Andreas Schneider - 0.1.7-1 +- Update to version 0.1.7 + +* Tue Nov 15 2016 Andreas Schneider - 0.1.6-2 +- Removed Group: +- Removed BuildRoot: + +* Thu Nov 10 2016 Andreas Schneider - 0.1.6-1 +- Initial version 0.1.6 diff --git a/dead.package b/dead.package deleted file mode 100644 index a72aec0..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -epel8-playground decommissioned : https://pagure.io/epel/issue/136 diff --git a/mkvendor.sh b/mkvendor.sh new file mode 100644 index 0000000..69152c9 --- /dev/null +++ b/mkvendor.sh @@ -0,0 +1,61 @@ +#!/usr/bin/bash -x + +set -euo pipefail + +nvim_url="$(rpmspec -P neovim.spec | sed -En 's/^Source0:[[:space:]]+//p')" +nvim_archive="$(basename "$nvim_url")" +nvim_tmpdir="$(mktemp --tmpdir -d nvim-XXXXXXXX)" +nvim_srcdir="$(pwd)" + +cleanup_tmpdir() { + popd 2>/dev/null || true + rm -rf "${nvim_tmpdir}" +} +trap cleanup_tmpdir SIGINT + +cleanup_and_exit() { + cleanup_tmpdir + if test "$1" = 0 -o -z "$1" ; then + exit 0 + else + exit "${1}" + fi +} + +if [ ! -w "${nvim_archive}" ]; then + curl -Lo "${nvim_archive}" "${nvim_url}" + fedpkg new-sources "${nvim_archive}" +fi + +mkdir -p "${nvim_tmpdir}/src" +tar -zxf "${nvim_srcdir}/${nvim_archive}" -C "${nvim_tmpdir}/src" --strip-components=1 + +pushd "${nvim_tmpdir}" || cleanup_and_exit 1 + +cmake \ + -S "${nvim_tmpdir}/src/cmake.deps" \ + -B "${nvim_tmpdir}/deps" -G Ninja \ + -DUSE_BUNDLED=OFF \ + -DUSE_BUNDLED_TS=ON \ + -DUSE_BUNDLED_TS_PARSERS=ON + +readarray -t targets < <(basename -a "${nvim_tmpdir}/deps/build/downloads/"treesitter* | \ + xargs -I {} echo build/src/{}-stamp/{}-download) +ninja -C "${nvim_tmpdir}/deps" "${targets[@]}" + +nvim_vendor="${nvim_archive%.tar.gz}-vendor" +nvim_vendor_archive="${nvim_vendor}.tar.gz" +tar -zcf "${nvim_srcdir}/${nvim_vendor_archive}" \ + -H pax \ + --numeric-owner \ + --owner=0:0 \ + -C "${nvim_tmpdir}/deps/build/downloads" . \ + --transform="s/^\\./${nvim_vendor}/" +popd + +cksum -a sha512 "${nvim_archive}" "${nvim_vendor_archive}" | tee sources + +echo +echo "Run: fedpkg new-sources ${nvim_archive} ${nvim_vendor_archive}" + +cleanup_and_exit 0 diff --git a/neovim-bundled-licenses.txt b/neovim-bundled-licenses.txt new file mode 100644 index 0000000..e72f40d --- /dev/null +++ b/neovim-bundled-licenses.txt @@ -0,0 +1,2 @@ +"Apache-2.0" +"MIT" diff --git a/neovim-lua-bit32.patch b/neovim-lua-bit32.patch new file mode 100644 index 0000000..85333e8 --- /dev/null +++ b/neovim-lua-bit32.patch @@ -0,0 +1,31 @@ +Index: neovim-0.11.0/src/nvim/ex_cmds.lua +=================================================================== +--- neovim-0.11.0.orig/src/nvim/ex_cmds.lua 2025-03-26 18:02:38.217064177 +0100 ++++ neovim-0.11.0/src/nvim/ex_cmds.lua 2025-03-26 18:02:41.424747978 +0100 +@@ -1,4 +1,4 @@ +-local bit = require 'bit' ++local bit = require 'bit32' + + local M = {} + +Index: neovim-0.11.0/runtime/lua/vim/lsp/_watchfiles.lua +=================================================================== +--- neovim-0.11.0.orig/runtime/lua/vim/lsp/_watchfiles.lua 2025-03-26 14:48:09.000000000 +0100 ++++ neovim-0.11.0/runtime/lua/vim/lsp/_watchfiles.lua 2025-03-26 18:04:19.210556853 +0100 +@@ -1,4 +1,4 @@ +-local bit = require('bit') ++local bit = require('bit32') + local glob = vim.glob + local watch = vim._watch + local protocol = require('vim.lsp.protocol') +Index: neovim-0.11.0/runtime/lua/vim/lsp/semantic_tokens.lua +=================================================================== +--- neovim-0.11.0.orig/runtime/lua/vim/lsp/semantic_tokens.lua 2025-03-26 14:48:09.000000000 +0100 ++++ neovim-0.11.0/runtime/lua/vim/lsp/semantic_tokens.lua 2025-03-26 18:04:28.696322064 +0100 +@@ -1,5 +1,5 @@ + local api = vim.api +-local bit = require('bit') ++local bit = require('bit32') + local ms = require('vim.lsp.protocol').Methods + local util = require('vim.lsp.util') + local uv = vim.uv diff --git a/neovim.spec b/neovim.spec new file mode 100644 index 0000000..d3e5009 --- /dev/null +++ b/neovim.spec @@ -0,0 +1,443 @@ +%if 0%{?el8} +# see https://fedoraproject.org/wiki/Changes/CMake_to_do_out-of-source_builds +# EPEL 8's %%cmake defaults to in-source build, which neovim does not support +%undefine __cmake_in_source_build +%endif + +%bcond_with jemalloc +%ifarch %{arm} %{ix86} x86_64 %{mips} s390x + %bcond_without luajit +%else + %ifarch aarch64 + %if 0%{?el8} + # luajit codepath buggy on el8 aarch64 + # https://bugzilla.redhat.com/show_bug.cgi?id=2065340 + %bcond_with luajit + %else + %bcond_without luajit + %endif + %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.22.5 +%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.11.5 +Release: %autorelease + +License: Apache-2.0 AND Vim AND MIT +Summary: Vim-fork focused on extensibility and agility +Url: https://neovim.io + +Source0: https://github.com/neovim/neovim/archive/v%{version}/%{name}-%{version}.tar.gz +Source1: sysinit.vim +Source2: spec-template +# Generated by mkvendor.sh +Source3: %{name}-%{version}-vendor.tar.gz +Source4: neovim-bundled-licenses.txt + +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 -q -b3 + +cp %{SOURCE4} . + +%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 +mkdir -p .deps/build/ +ln -sfr ../%{name}-%{version}-vendor .deps/build/downloads +%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} \ + -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/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 neovim-bundled-licenses.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/nvim.desktop +%{_datadir}/pixmaps/nvim.png +%{_datadir}/icons/hicolor/128x128/apps/nvim.png + +%dir %{_datadir}/nvim +%{_datadir}/nvim/sysinit.vim +%{_datadir}/nvim/template.spec + +%dir %{_datadir}/nvim/runtime +%{_datadir}/nvim/runtime/*.vim +%{_datadir}/nvim/runtime/*.lua +%{_datadir}/nvim/runtime/neovim.ico + +%dir %{_datadir}/nvim/runtime/autoload +%{_datadir}/nvim/runtime/autoload/README.txt +%{_datadir}/nvim/runtime/autoload/*.lua +%{_datadir}/nvim/runtime/autoload/*.vim + +%dir %{_datadir}/nvim/runtime/autoload/cargo +%{_datadir}/nvim/runtime/autoload/cargo/*.vim + +%dir %{_datadir}/nvim/runtime/autoload/dist +%{_datadir}/nvim/runtime/autoload/dist/*.vim + +%dir %{_datadir}/nvim/runtime/autoload/provider +%{_datadir}/nvim/runtime/autoload/provider/*.vim +%{_datadir}/nvim/runtime/autoload/provider/script_host.rb + +%dir %{_datadir}/nvim/runtime/autoload/remote +%{_datadir}/nvim/runtime/autoload/remote/*.vim + +%dir %{_datadir}/nvim/runtime/autoload/rust +%{_datadir}/nvim/runtime/autoload/rust/*.vim + +%dir %{_datadir}/nvim/runtime/autoload/xml +%{_datadir}/nvim/runtime/autoload/xml/*.vim + +%dir %{_datadir}/nvim/runtime/colors +%{_datadir}/nvim/runtime/colors/*.lua +%{_datadir}/nvim/runtime/colors/*.vim +%{_datadir}/nvim/runtime/colors/README.txt + +%dir %{_datadir}/nvim/runtime/compiler +%{_datadir}/nvim/runtime/compiler/*.vim +%{_datadir}/nvim/runtime/compiler/README.txt + +%dir %{_datadir}/nvim/runtime/doc +%{_datadir}/nvim/runtime/doc/*.txt +%{_datadir}/nvim/runtime/doc/tags + +%dir %{_datadir}/nvim/runtime/ftplugin +%{_datadir}/nvim/runtime/ftplugin/*.vim +%{_datadir}/nvim/runtime/ftplugin/*.lua +%{_datadir}/nvim/runtime/ftplugin/logtalk.dict +%{_datadir}/nvim/runtime/ftplugin/README.txt + +%dir %{_datadir}/nvim/runtime/indent +%{_datadir}/nvim/runtime/indent/Makefile +%{_datadir}/nvim/runtime/indent/README.txt +%{_datadir}/nvim/runtime/indent/*.lua +%{_datadir}/nvim/runtime/indent/*.vim + +%dir %{_datadir}/nvim/runtime/indent/testdir/ +%{_datadir}/nvim/runtime/indent/testdir/README.txt +%{_datadir}/nvim/runtime/indent/testdir/*.in +%{_datadir}/nvim/runtime/indent/testdir/*.ok +%{_datadir}/nvim/runtime/indent/testdir/*.vim + +%dir %{_datadir}/nvim/runtime/keymap +%{_datadir}/nvim/runtime/keymap/*.vim +%{_datadir}/nvim/runtime/keymap/README.txt + +%dir %{_datadir}/nvim/runtime/lua +%{_datadir}/nvim/runtime/lua/*.lua + +%dir %{_datadir}/nvim/runtime/lua/nvim +%{_datadir}/nvim/runtime/lua/nvim/*.lua + +%dir %{_datadir}/nvim/runtime/lua/vim +%{_datadir}/nvim/runtime/lua/vim/*.lua + +%dir %{_datadir}/nvim/runtime/lua/vim/_ftplugin +%{_datadir}/nvim/runtime/lua/vim/_ftplugin/*.lua + +%dir %{_datadir}/nvim/runtime/lua/vim/_meta +%{_datadir}/nvim/runtime/lua/vim/_meta/*.lua + +%dir %{_datadir}/nvim/runtime/lua/vim/deprecated +%{_datadir}/nvim/runtime/lua/vim/deprecated/health.lua + +%dir %{_datadir}/nvim/runtime/lua/vim/filetype +%{_datadir}/nvim/runtime/lua/vim/filetype/*.lua + +%dir %{_datadir}/nvim/runtime/lua/vim/health +%{_datadir}/nvim/runtime/lua/vim/health/*.lua + +%dir %{_datadir}/nvim/runtime/lua/vim/func +%{_datadir}/nvim/runtime/lua/vim/func/*.lua + +%dir %{_datadir}/nvim/runtime/lua/vim/lsp +%{_datadir}/nvim/runtime/lua/vim/lsp/*.lua + +%dir %{_datadir}/nvim/runtime/lua/vim/lsp/_meta +%{_datadir}/nvim/runtime/lua/vim/lsp/_meta/*.lua + +%dir %{_datadir}/nvim/runtime/lua/vim/provider +%{_datadir}/nvim/runtime/lua/vim/provider/*.lua + +%dir %{_datadir}/nvim/runtime/lua/vim/treesitter +%{_datadir}/nvim/runtime/lua/vim/treesitter/*.lua + +%dir %{_datadir}/nvim/runtime/lua/vim/treesitter/_meta +%{_datadir}/nvim/runtime/lua/vim/treesitter/_meta/*.lua + +%dir %{_datadir}/nvim/runtime/lua/vim/ui +%dir %{_datadir}/nvim/runtime/lua/vim/ui/clipboard +%{_datadir}/nvim/runtime/lua/vim/ui/clipboard/*.lua + +%dir %{_datadir}/nvim/runtime/pack +%dir %{_datadir}/nvim/runtime/pack/dist +%dir %{_datadir}/nvim/runtime/pack/dist/opt + +%dir %{_datadir}/nvim/runtime/pack/dist/opt/cfilter +%dir %{_datadir}/nvim/runtime/pack/dist/opt/cfilter/plugin +%{_datadir}/nvim/runtime/pack/dist/opt/cfilter/plugin/*.lua + +%dir %{_datadir}/nvim/runtime/pack/dist/opt/justify +%dir %{_datadir}/nvim/runtime/pack/dist/opt/justify/plugin +%{_datadir}/nvim/runtime/pack/dist/opt/justify/plugin/*.vim + +%dir %{_datadir}/nvim/runtime/pack/dist/opt/netrw +%{_datadir}/nvim/runtime/pack/dist/opt/netrw/LICENSE.txt +%{_datadir}/nvim/runtime/pack/dist/opt/netrw/README.md + +%dir %{_datadir}/nvim/runtime/pack/dist/opt/netrw/autoload +%{_datadir}/nvim/runtime/pack/dist/opt/netrw/autoload/*.vim + +%dir %{_datadir}/nvim/runtime/pack/dist/opt/netrw/doc +%{_datadir}/nvim/runtime/pack/dist/opt/netrw/doc/*.txt +%{_datadir}/nvim/runtime/pack/dist/opt/netrw/doc/tags + +%dir %{_datadir}/nvim/runtime/pack/dist/opt/netrw/plugin +%{_datadir}/nvim/runtime/pack/dist/opt/netrw/plugin/*.vim + +%dir %{_datadir}/nvim/runtime/pack/dist/opt/netrw/syntax +%{_datadir}/nvim/runtime/pack/dist/opt/netrw/syntax/*.vim + +%dir %{_datadir}/nvim/runtime/pack/dist/opt/nohlsearch + +%dir %{_datadir}/nvim/runtime/pack/dist/opt/nohlsearch/plugin +%{_datadir}/nvim/runtime/pack/dist/opt/nohlsearch/plugin/*.vim + +%dir %{_datadir}/nvim/runtime/pack/dist/opt/shellmenu +%dir %{_datadir}/nvim/runtime/pack/dist/opt/shellmenu/plugin +%{_datadir}/nvim/runtime/pack/dist/opt/shellmenu/plugin/*.vim + +%dir %{_datadir}/nvim/runtime/pack/dist/opt/matchit +%dir %{_datadir}/nvim/runtime/pack/dist/opt/matchit/autoload +%{_datadir}/nvim/runtime/pack/dist/opt/matchit/autoload/*.vim +%dir %{_datadir}/nvim/runtime/pack/dist/opt/matchit/doc +%{_datadir}/nvim/runtime/pack/dist/opt/matchit/doc/matchit.txt +%{_datadir}/nvim/runtime/pack/dist/opt/matchit/doc/tags +%dir %{_datadir}/nvim/runtime/pack/dist/opt/matchit/plugin +%{_datadir}/nvim/runtime/pack/dist/opt/matchit/plugin/*.vim + +%dir %{_datadir}/nvim/runtime/pack/dist/opt/swapmouse +%dir %{_datadir}/nvim/runtime/pack/dist/opt/swapmouse/plugin +%{_datadir}/nvim/runtime/pack/dist/opt/swapmouse/plugin/*.vim + +%dir %{_datadir}/nvim/runtime/pack/dist/opt/termdebug +%dir %{_datadir}/nvim/runtime/pack/dist/opt/termdebug/plugin +%{_datadir}/nvim/runtime/pack/dist/opt/termdebug/plugin/*.vim + +%dir %{_datadir}/nvim/runtime/plugin +%{_datadir}/nvim/runtime/plugin/*.lua +%{_datadir}/nvim/runtime/plugin/*.vim + +%dir %{_datadir}/nvim/runtime/queries/ + +%dir %{_datadir}/nvim/runtime/queries/c +%{_datadir}/nvim/runtime/queries/c/*.scm + +%dir %{_datadir}/nvim/runtime/queries/lua/ +%{_datadir}/nvim/runtime/queries/lua/folds.scm +%{_datadir}/nvim/runtime/queries/lua/highlights.scm +%{_datadir}/nvim/runtime/queries/lua/injections.scm + +%dir %{_datadir}/nvim/runtime/queries/markdown +%{_datadir}/nvim/runtime/queries/markdown/*.scm + +%dir %{_datadir}/nvim/runtime/queries/markdown_inline +%{_datadir}/nvim/runtime/queries/markdown_inline/*.scm + +%dir %{_datadir}/nvim/runtime/queries/query +%{_datadir}/nvim/runtime/queries/query/*.scm + +%dir %{_datadir}/nvim/runtime/queries/vim/ +%{_datadir}/nvim/runtime/queries/vim/*.scm + +%dir %{_datadir}/nvim/runtime/queries/vimdoc/ +%{_datadir}/nvim/runtime/queries/vimdoc/*.scm + +%dir %{_datadir}/nvim/runtime/scripts +%{_datadir}/nvim/runtime/scripts/*.lua +%{_datadir}/nvim/runtime/scripts/*.vim +%{_datadir}/nvim/runtime/scripts/less.bat +%{_datadir}/nvim/runtime/scripts/less.sh + +%dir %{_datadir}/nvim/runtime/spell +%{_datadir}/nvim/runtime/spell/cleanadd.vim +%{_datadir}/nvim/runtime/spell/en.utf-8.spl + +%dir %{_datadir}/nvim/runtime/syntax +%{_datadir}/nvim/runtime/syntax/*.lua +%{_datadir}/nvim/runtime/syntax/*.vim +%{_datadir}/nvim/runtime/syntax/README.txt + +%dir %{_datadir}/nvim/runtime/syntax/modula2 +%dir %{_datadir}/nvim/runtime/syntax/modula2/opt +%{_datadir}/nvim/runtime/syntax/modula2/opt/*.vim + +%dir %{_datadir}/nvim/runtime/syntax/vim +%{_datadir}/nvim/runtime/syntax/vim/generated.vim + +%dir %{_datadir}/nvim/runtime/syntax/shared +%{_datadir}/nvim/runtime/syntax/shared/*.vim +%{_datadir}/nvim/runtime/syntax/shared/README.txt + +%dir %{_datadir}/nvim/runtime/tutor +%{_datadir}/nvim/runtime/tutor/*.tutor +%{_datadir}/nvim/runtime/tutor/*.tutor.json + +%dir %{_datadir}/nvim/runtime/tutor/en +%{_datadir}/nvim/runtime/tutor/en/*.tutor +%{_datadir}/nvim/runtime/tutor/en/*.tutor.json + +%dir %{_datadir}/nvim/runtime/tutor/ja +%{_datadir}/nvim/runtime/tutor/ja/*.tutor +%{_datadir}/nvim/runtime/tutor/ja/*.tutor.json + +%dir %{_datadir}/nvim/runtime/tutor/zh +%{_datadir}/nvim/runtime/tutor/zh/*.tutor +%{_datadir}/nvim/runtime/tutor/zh/*.tutor.json + +%changelog +%autochangelog diff --git a/sources b/sources new file mode 100644 index 0000000..2bb5bca --- /dev/null +++ b/sources @@ -0,0 +1,2 @@ +SHA512 (neovim-0.11.5.tar.gz) = 1b2bb241261eefd195275e28bb9ebe4102261d61d8b7fe38ccebad7131ccc38d29fae8494d511b4c440ad71ef95dc405a2ba6e98b5d47426f215c8137c8bc91f +SHA512 (neovim-0.11.5-vendor.tar.gz) = 388e8afb7919d89c7bceab3f03a49909ef307c3c2ac29d9899f5e30e475c18d453010290cc8929e5cae0a1252b2b7056a5d2bedfc9a3f3a12c0530aa52e14b0c diff --git a/spec-template b/spec-template new file mode 100644 index 0000000..cc35793 --- /dev/null +++ b/spec-template @@ -0,0 +1,38 @@ +Name: +Version: +Release: %autorelease +Summary: + +License: +URL: +Source0: + +BuildRequires: +Requires: + +%description + + +%prep +%autosetup + + +%build +%configure +%make_build + + +%install +%make_install + + +%check + + +%files +%license +%doc + + +%changelog +%autochangelog diff --git a/sysinit.vim b/sysinit.vim new file mode 100644 index 0000000..21a501d --- /dev/null +++ b/sysinit.vim @@ -0,0 +1,10 @@ +let g:python_host_prog = '/usr/bin/python2' +let g:python3_host_prog = '/usr/bin/python3' + +augroup Fedora + autocmd! + " RPM spec file template + autocmd BufNewFile *.spec silent! 0read /usr/share/nvim/template.spec +augroup END + +" vim: et ts=2 sw=2