neovim: new recipe (#13252)

Co-authored-by: user0-07161 <user0thenyancat@proton.me>
This commit is contained in:
User0
2025-11-26 18:11:10 +01:00
committed by GitHub
parent 67025f1da6
commit 9b1c91d9a6
3 changed files with 283 additions and 0 deletions

View File

@@ -0,0 +1,76 @@
I) There are no restrictions on distributing unmodified copies of Vim except
that they must include this license text. You can also distribute
unmodified parts of Vim, likewise unrestricted except that they must
include this license text. You are also allowed to include executables
that you made from the unmodified Vim sources, plus your own usage
examples and Vim scripts.
II) It is allowed to distribute a modified (or extended) version of Vim,
including executables and/or source code, when the following four
conditions are met:
1) This license text must be included unmodified.
2) The modified Vim must be distributed in one of the following five ways:
a) If you make changes to Vim yourself, you must clearly describe in
the distribution how to contact you. When the maintainer asks you
(in any way) for a copy of the modified Vim you distributed, you
must make your changes, including source code, available to the
maintainer without fee. The maintainer reserves the right to
include your changes in the official version of Vim. What the
maintainer will do with your changes and under what license they
will be distributed is negotiable. If there has been no negotiation
then this license, or a later version, also applies to your changes.
The current maintainer is Bram Moolenaar <Bram@vim.org>. If this
changes it will be announced in appropriate places (most likely
vim.sf.net, www.vim.org and/or comp.editors). When it is completely
impossible to contact the maintainer, the obligation to send him
your changes ceases. Once the maintainer has confirmed that he has
received your changes they will not have to be sent again.
b) If you have received a modified Vim that was distributed as
mentioned under a) you are allowed to further distribute it
unmodified, as mentioned at I). If you make additional changes the
text under a) applies to those changes.
c) Provide all the changes, including source code, with every copy of
the modified Vim you distribute. This may be done in the form of a
context diff. You can choose what license to use for new code you
add. The changes and their license must not restrict others from
making their own changes to the official version of Vim.
d) When you have a modified Vim which includes changes as mentioned
under c), you can distribute it without the source code for the
changes if the following three conditions are met:
- The license that applies to the changes permits you to distribute
the changes to the Vim maintainer without fee or restriction, and
permits the Vim maintainer to include the changes in the official
version of Vim without fee or restriction.
- You keep the changes for at least three years after last
distributing the corresponding modified Vim. When the maintainer
or someone who you distributed the modified Vim to asks you (in
any way) for the changes within this period, you must make them
available to him.
- You clearly describe in the distribution how to contact you. This
contact information must remain valid for at least three years
after last distributing the corresponding modified Vim, or as long
as possible.
e) When the GNU General Public License (GPL) applies to the changes,
you can distribute the modified Vim under the GNU GPL version 2 or
any later version.
3) A message must be added, at least in the output of the ":version"
command and in the intro screen, such that the user of the modified Vim
is able to see that it was modified. When distributing as mentioned
under 2)e) adding the message is only required for as far as this does
not conflict with the license used for the changes.
4) The contact information as required under 2)a) and 2)d) must not be
removed or changed, except that the person himself can make
corrections.
III) If you distribute a modified version of Vim, you are encouraged to use
the Vim license for your changes and make them available to the
maintainer, including the source code. The preferred way to do this is
by e-mail or by uploading the files to a server and e-mailing the URL.
If the number of changes is small (e.g., a modified Makefile) e-mailing a
context diff will do. The e-mail address to be used is
<maintainer@vim.org>
IV) It is not allowed to remove this license from the distribution of the Vim
sources, parts of it or from a modified version. You may use this
license for previous Vim releases instead of the license that they came
with, at your option.

View File

@@ -0,0 +1,129 @@
SUMMARY="Editor based on Vim"
DESCRIPTION="Fork of Vim aiming to improve user experience, plugins, and GUIs"
HOMEPAGE="https://neovim.io"
COPYRIGHT="Neovim contributors"
LICENSE="Apache v2
Vim"
REVISION="1"
srcGitRev="10c11c4644e30f06b5d3029b72b2a945b654ca22"
SOURCE_URI="https://github.com/neovim/neovim/archive/$srcGitRev.tar.gz"
CHECKSUM_SHA256="0c76533552a99d591381e226d90c60a9005fcf145a2e0429e234c9caafd78ca1"
SOURCE_DIR="neovim-$srcGitRev"
SOURCE_URI_2="https://github.com/lunarmodules/lua-compat-5.3/archive/v0.13.tar.gz#noarchive"
CHECKSUM_SHA256_2="f5dc30e7b1fda856ee4d392be457642c1f0c259264a9b9bfbcb680302ce88fc2"
SOURCE_URI_3="https://github.com/luvit/luv/archive/1.51.0-1.tar.gz#noarchive"
CHECKSUM_SHA256_3="d4a11178ae8e16ba5886799ea91905dd9b0b479c75aebd67866d37373e41526f"
srcGitRev4="d495ee6f79e7962a53ad79670cb92488abe0b9b4"
SOURCE_URI_4="https://github.com/neovim/deps/raw/$srcGitRev4/opt/lpeg-1.1.0.tar.gz#noarchive"
CHECKSUM_SHA256_4="4b155d67d2246c1ffa7ad7bc466c1ea899bbc40fef0257cc9c03cecbaed4352a"
SOURCE_URI_5="https://github.com/tree-sitter/tree-sitter-c/archive/v0.24.1.tar.gz#noarchive"
CHECKSUM_SHA256_5="25dd4bb3dec770769a407e0fc803f424ce02c494a56ce95fedc525316dcf9b48"
SOURCE_URI_6="https://github.com/tree-sitter-grammars/tree-sitter-lua/archive/v0.4.0.tar.gz#noarchive"
CHECKSUM_SHA256_6="b0977aced4a63bb75f26725787e047b8f5f4a092712c840ea7070765d4049559"
SOURCE_URI_7="https://github.com/tree-sitter-grammars/tree-sitter-vim/archive/v0.7.0.tar.gz#noarchive"
CHECKSUM_SHA256_7="44eabc31127c4feacda19f2a05a5788272128ff561ce01093a8b7a53aadcc7b2"
SOURCE_URI_8="https://github.com/neovim/tree-sitter-vimdoc/archive/v4.0.0.tar.gz#noarchive"
CHECKSUM_SHA256_8="8096794c0f090b2d74b7bff94548ac1be3285b929ec74f839bd9b3ff4f4c6a0b"
# XXX: neovim pulls v0.7.0 instead, however this is breaks haikuporter, so we pull the raw commit instead
srcGitRev9="60e253d3c9d6b1131a0f75c85e4bdcc9a48d5b42"
SOURCE_URI_9="https://github.com/tree-sitter-grammars/tree-sitter-query/archive/$srcGitRev9.tar.gz#noarchive"
CHECKSUM_SHA256_9="b43e668d7e45a162361f5ffc584c9e01bbc07b6d1210334dbc37ce9788733320"
SOURCE_URI_10="https://github.com/tree-sitter-grammars/tree-sitter-markdown/archive/v0.5.1.tar.gz#noarchive"
CHECKSUM_SHA256_10="acaffe5a54b4890f1a082ad6b309b600b792e93fc6ee2903d022257d5b15e216"
SOURCE_URI_11="https://github.com/tree-sitter/tree-sitter/archive/v0.25.10.tar.gz#noarchive"
CHECKSUM_SHA256_11="ad5040537537012b16ef6e1210a572b927c7cdc2b99d1ee88d44a7dcdc3ff44c"
SOURCE_URI_12="https://github.com/juliastrings/utf8proc/archive/v2.11.1.tar.gz#noarchive"
CHECKSUM_SHA256_12="dc146fd279eacbbf399d3f70932ce66f516aac2d13f8ec2d26a30f8ed70aa5b4"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
neovim$secondaryArchSuffix = $portVersion
cmd:nvim = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libluajit_5.1$secondaryArchSuffix
lib:libunibilium$secondaryArchSuffix
lib:libuv$secondaryArchSuffix
luajit$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libiconv${secondaryArchSuffix}
devel:libintl$secondaryArchSuffix
devel:libluajit_5.1$secondaryArchSuffix
devel:libunibilium$secondaryArchSuffix
devel:libuv$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:gcc$secondaryArchSuffix
cmd:make
cmd:sed
"
PATCHES="
neovim-0.12.0~git.patchset
"
BUILD()
{
sed -i ./cmake.deps/deps.txt \
-e "s|\$LUACOMPAT|$(find $sourceDir2/*)|"
sed -i ./cmake.deps/deps.txt \
-e "s|\$LUV|$(find $sourceDir3/*)|"
sed -i ./cmake.deps/deps.txt \
-e "s|\$LPEG|$(find $sourceDir4/*)|"
sed -i ./cmake.deps/deps.txt \
-e "s|\$TREESITTERC|$(find $sourceDir5/*)|"
sed -i ./cmake.deps/deps.txt \
-e "s|\$TREESITTERLUA|$(find $sourceDir6/*)|"
sed -i ./cmake.deps/deps.txt \
-e "s|\$TREESITTERVIM|$(find $sourceDir7/*)|"
sed -i ./cmake.deps/deps.txt \
-e "s|\$TREESITTERVIMDOC|$(find $sourceDir8/*)|"
sed -i ./cmake.deps/deps.txt \
-e "s|\$TREESITTERQUERY|$(find $sourceDir9/*)|"
sed -i ./cmake.deps/deps.txt \
-e "s|\$TREESITTERMD|$(find $sourceDir10/*)|"
sed -i ./cmake.deps/deps.txt \
-e "s|\$TREESITTER|$(find $sourceDir11/*)|"
sed -i ./cmake.deps/deps.txt \
-e "s|\$UTF8PROC|$(find $sourceDir12/*)|"
cmake -DUSE_BUNDLED_LIBUV=OFF \
-DUSE_BUNDLED_UNIBILIUM=OFF \
-DUSE_BUNDLED_LUAJIT=OFF \
-DCMAKE_BUILD_TYPE=Release \
$cmakeDirArgs \
-B .deps ./cmake.deps
make -C .deps $jobArgs
cmake . \
-DCMAKE_BUILD_TYPE=Release \
$cmakeDirArgs \
-B build
make -C build $jobArgs
}
INSTALL()
{
make -C build install $jobArgs
}

View File

@@ -0,0 +1,78 @@
From d9889eb399a7bc549008e7d20b430989730bd710 Mon Sep 17 00:00:00 2001
From: user0-07161 <user0thenyancat@proton.me>
Date: Tue, 25 Nov 2025 16:23:24 +0000
Subject: [PATCH] allow using files downloaded by haiku
---
cmake.deps/CMakeLists.txt | 2 +-
cmake.deps/deps.txt | 22 +++++++++++-----------
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/cmake.deps/CMakeLists.txt b/cmake.deps/CMakeLists.txt
index 4189eb4..59fd2b3 100644
--- a/cmake.deps/CMakeLists.txt
+++ b/cmake.deps/CMakeLists.txt
@@ -21,7 +21,7 @@ include(Util)
# User settings
#-------------------------------------------------------------------------------
-set(DEPS_IGNORE_SHA FALSE)
+set(DEPS_IGNORE_SHA TRUE)
# Options
option(USE_BUNDLED "Use bundled dependencies." ON)
diff --git a/cmake.deps/deps.txt b/cmake.deps/deps.txt
index abee83e..22becef 100644
--- a/cmake.deps/deps.txt
+++ b/cmake.deps/deps.txt
@@ -10,13 +10,13 @@ LUA_SHA256 2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333
UNIBILIUM_URL https://github.com/neovim/unibilium/archive/v2.1.2.tar.gz
UNIBILIUM_SHA256 370ecb07fbbc20d91d1b350c55f1c806b06bf86797e164081ccc977fc9b3af7a
-LUV_URL https://github.com/luvit/luv/archive/1.51.0-1.tar.gz
+LUV_URL file://$LUV
LUV_SHA256 d4a11178ae8e16ba5886799ea91905dd9b0b479c75aebd67866d37373e41526f
-LPEG_URL https://github.com/neovim/deps/raw/d495ee6f79e7962a53ad79670cb92488abe0b9b4/opt/lpeg-1.1.0.tar.gz
+LPEG_URL file://$LPEG
LPEG_SHA256 4b155d67d2246c1ffa7ad7bc466c1ea899bbc40fef0257cc9c03cecbaed4352a
-LUA_COMPAT53_URL https://github.com/lunarmodules/lua-compat-5.3/archive/v0.13.tar.gz
+LUA_COMPAT53_URL file://$LUACOMPAT
LUA_COMPAT53_SHA256 f5dc30e7b1fda856ee4d392be457642c1f0c259264a9b9bfbcb680302ce88fc2
XXD_URL https://github.com/neovim/deps/raw/21c5e8bdda33521a6ed497b315e03265a2785cbc/opt/xxd.exe
@@ -31,22 +31,22 @@ GETTEXT_SHA256 66415634c6e8c3fa8b71362879ec7575e27da43da562c798a8a2f223e6e47f5c
LIBICONV_URL https://github.com/neovim/deps/raw/b9bf36eb31f27e8136d907da38fa23518927737e/opt/libiconv-1.17.tar.gz
LIBICONV_SHA256 8f74213b56238c85a50a5329f77e06198771e70dd9a739779f4c02f65d971313
-UTF8PROC_URL https://github.com/juliastrings/utf8proc/archive/v2.11.1.tar.gz
+UTF8PROC_URL file://$UTF8PROC
UTF8PROC_SHA256 dc146fd279eacbbf399d3f70932ce66f516aac2d13f8ec2d26a30f8ed70aa5b4
-TREESITTER_C_URL https://github.com/tree-sitter/tree-sitter-c/archive/v0.24.1.tar.gz
+TREESITTER_C_URL file://$TREESITTERC
TREESITTER_C_SHA256 25dd4bb3dec770769a407e0fc803f424ce02c494a56ce95fedc525316dcf9b48
-TREESITTER_LUA_URL https://github.com/tree-sitter-grammars/tree-sitter-lua/archive/v0.4.0.tar.gz
+TREESITTER_LUA_URL file://$TREESITTERLUA
TREESITTER_LUA_SHA256 b0977aced4a63bb75f26725787e047b8f5f4a092712c840ea7070765d4049559
-TREESITTER_VIM_URL https://github.com/tree-sitter-grammars/tree-sitter-vim/archive/v0.7.0.tar.gz
+TREESITTER_VIM_URL file://$TREESITTERVIM
TREESITTER_VIM_SHA256 44eabc31127c4feacda19f2a05a5788272128ff561ce01093a8b7a53aadcc7b2
-TREESITTER_VIMDOC_URL https://github.com/neovim/tree-sitter-vimdoc/archive/v4.0.0.tar.gz
+TREESITTER_VIMDOC_URL file://$TREESITTERLUA
TREESITTER_VIMDOC_SHA256 8096794c0f090b2d74b7bff94548ac1be3285b929ec74f839bd9b3ff4f4c6a0b
-TREESITTER_QUERY_URL https://github.com/tree-sitter-grammars/tree-sitter-query/archive/v0.7.0.tar.gz
+TREESITTER_QUERY_URL file://$TREESITTERQUERY
TREESITTER_QUERY_SHA256 79285847e8350ee9fe1f6f6c9eb64bc14320f70f7b9b65037193fc58f2638613
-TREESITTER_MARKDOWN_URL https://github.com/tree-sitter-grammars/tree-sitter-markdown/archive/v0.5.1.tar.gz
+TREESITTER_MARKDOWN_URL file://$TREESITTERMD
TREESITTER_MARKDOWN_SHA256 acaffe5a54b4890f1a082ad6b309b600b792e93fc6ee2903d022257d5b15e216
-TREESITTER_URL https://github.com/tree-sitter/tree-sitter/archive/v0.25.10.tar.gz
+TREESITTER_URL file://$TREESITTER
TREESITTER_SHA256 ad5040537537012b16ef6e1210a572b927c7cdc2b99d1ee88d44a7dcdc3ff44c
WASMTIME_URL https://github.com/bytecodealliance/wasmtime/archive/v29.0.1.tar.gz
--
2.51.0