diff --git a/packages/neovim/backport-cve-2025-27423-fix.patch b/packages/neovim/backport-cve-2025-27423-fix.patch deleted file mode 100644 index 82dfbe7bd9..0000000000 --- a/packages/neovim/backport-cve-2025-27423-fix.patch +++ /dev/null @@ -1,720 +0,0 @@ -diff --git a/runtime/autoload/tar.vim b/runtime/autoload/tar.vim -index f2a74db5ed..e48c8062bb 100644 ---- a/runtime/autoload/tar.vim -+++ b/runtime/autoload/tar.vim -@@ -1,10 +1,17 @@ --" tar.vim: Handles browsing tarfiles --" AUTOLOAD PORTION --" Date: Nov 14, 2023 -+" tar.vim: Handles browsing tarfiles - AUTOLOAD PORTION -+" Date: Mar 01, 2025 - " Version: 32b (with modifications from the Vim Project) - " Maintainer: This runtime file is looking for a new maintainer. - " Former Maintainer: Charles E Campbell - " License: Vim License (see vim's :help license) -+" Last Change: -+" 2024 Jan 08 by Vim Project: fix a few problems (#138331, #12637, #8109) -+" 2024 Feb 19 by Vim Project: announce adoption -+" 2024 Nov 11 by Vim Project: support permissions (#7379) -+" 2025 Feb 06 by Vim Project: add support for lz4 (#16591) -+" 2025 Feb 28 by Vim Project: add support for bzip3 (#16755) -+" 2025 Mar 01 by Vim Project: fix syntax error in tar#Read() -+" 2025 Mar 02 by Vim Project: escape the filename before using :read - " - " Contains many ideas from Michael Toren's - " -@@ -17,13 +24,12 @@ - " By using this plugin, you agree that in no event will the - " copyright holder be liable for any damages resulting from - " the use of this software. --" call inputsave()|call input("Press to continue")|call inputrestore() - " --------------------------------------------------------------------- - " Load Once: {{{1 - if &cp || exists("g:loaded_tar") - finish - endif --let g:loaded_tar= "v32a" -+let g:loaded_tar= "v32b" - if v:version < 702 - echohl WarningMsg - echo "***warning*** this version of tar needs vim 7.2" -@@ -32,8 +38,6 @@ if v:version < 702 - endif - let s:keepcpo= &cpo - set cpo&vim --"DechoTabOn --"call Decho("loading autoload/tar.vim") - - " --------------------------------------------------------------------- - " Default Settings: {{{1 -@@ -41,7 +45,7 @@ if !exists("g:tar_browseoptions") - let g:tar_browseoptions= "Ptf" - endif - if !exists("g:tar_readoptions") -- let g:tar_readoptions= "OPxf" -+ let g:tar_readoptions= "pPxf" - endif - if !exists("g:tar_cmd") - let g:tar_cmd= "tar" -@@ -80,7 +84,7 @@ if !exists("g:tar_copycmd") - let g:tar_copycmd= g:netrw_localcopycmd - endif - if !exists("g:tar_extractcmd") -- let g:tar_extractcmd= "tar -xf" -+ let g:tar_extractcmd= "tar -pxf" - endif - - " set up shell quoting character -@@ -96,7 +100,6 @@ if !exists("g:tar_shq") - else - let g:tar_shq= "'" - endif --" call Decho("g:tar_shq<".g:tar_shq.">") - endif - - " ---------------- -@@ -106,29 +109,23 @@ endif - " --------------------------------------------------------------------- - " tar#Browse: {{{2 - fun! tar#Browse(tarfile) --" call Dfunc("tar#Browse(tarfile<".a:tarfile.">)") - let repkeep= &report - set report=10 - - " sanity checks - if !executable(g:tar_cmd) - redraw! --" call Decho('***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system') - echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system' - let &report= repkeep --" call Dret("tar#Browse") - return - endif - if !filereadable(a:tarfile) --" call Decho('a:tarfile<'.a:tarfile.'> not filereadable') - if a:tarfile !~# '^\a\+://' - " if it's an url, don't complain, let url-handlers such as vim do its thing - redraw! --" call Decho("***error*** (tar#Browse) File not readable<".a:tarfile.">") - echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None - endif - let &report= repkeep --" call Dret("tar#Browse : file<".a:tarfile."> not readable") - return - endif - if &ma != 1 -@@ -144,7 +141,6 @@ fun! tar#Browse(tarfile) - set ft=tar - - " give header --" call Decho("printing header") - let lastline= line("$") - call setline(lastline+1,'" tar.vim version '.g:loaded_tar) - call setline(lastline+2,'" Browsing tarfile '.a:tarfile) -@@ -161,10 +157,10 @@ fun! tar#Browse(tarfile) - let curlast= line("$") - - if tarfile =~# '\.\(gz\)$' --" call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ") - exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " - -- elseif tarfile =~# '\.\(tgz\)$' || tarfile =~# '\.\(tbz\)$' || tarfile =~# '\.\(txz\)$' || tarfile =~# '\.\(tzst\)$' -+ elseif tarfile =~# '\.\(tgz\)$' || tarfile =~# '\.\(tbz\)$' || tarfile =~# '\.\(txz\)$' || -+ \ tarfile =~# '\.\(tzst\)$' || tarfile =~# '\.\(tlz4\)$' - if has("unix") && executable("file") - let filekind= system("file ".shellescape(tarfile,1)) - else -@@ -173,40 +169,42 @@ fun! tar#Browse(tarfile) - - if filekind =~ "bzip2" - exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " -+ elseif filekind =~ "bzip3" -+ exe "sil! r! bzip3 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " - elseif filekind =~ "XZ" - exe "sil! r! xz -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " - elseif filekind =~ "Zstandard" - exe "sil! r! zstd --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " -+ elseif filekind =~ "LZ4" -+ exe "sil! r! lz4 --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " - else - exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " - endif - - elseif tarfile =~# '\.lrp' --" call Decho("2: exe silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ") - exe "sil! r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - " - elseif tarfile =~# '\.\(bz2\|tbz\|tb2\)$' --" call Decho("3: exe silent r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ") - exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " -+ elseif tarfile =~# '\.\(bz3\|tb3\)$' -+ exe "sil! r! bzip3 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " - elseif tarfile =~# '\.\(lzma\|tlz\)$' --" call Decho("3: exe silent r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ") - exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " - elseif tarfile =~# '\.\(xz\|txz\)$' --" call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ") - exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " - elseif tarfile =~# '\.\(zst\|tzst\)$' - exe "sil! r! zstd --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " -+ elseif tarfile =~# '\.\(lz4\|tlz4\)$' -+ exe "sil! r! lz4 --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " - else - if tarfile =~ '^\s*-' - " A file name starting with a dash is taken as an option. Prepend ./ to avoid that. - let tarfile = substitute(tarfile, '-', './-', '') - endif --" call Decho("4: exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,0)) - exe "sil! r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,1) - endif - if v:shell_error != 0 - redraw! - echohl WarningMsg | echo "***warning*** (tar#Browse) please check your g:tar_browseoptions<".g:tar_browseoptions.">" --" call Dret("tar#Browse : a:tarfile<".a:tarfile.">") - return - endif - " -@@ -237,29 +235,24 @@ fun! tar#Browse(tarfile) - endif - - let &report= repkeep --" call Dret("tar#Browse : b:tarfile<".b:tarfile.">") - endfun - - " --------------------------------------------------------------------- - " TarBrowseSelect: {{{2 - fun! s:TarBrowseSelect() --" call Dfunc("TarBrowseSelect() b:tarfile<".b:tarfile."> curfile<".expand("%").">") - let repkeep= &report - set report=10 - let fname= getline(".") --" call Decho("fname<".fname.">") - - if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-' - redraw! - echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"' --" call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"') - return - endif - - " sanity check - if fname =~ '^"' - let &report= repkeep --" call Dret("TarBrowseSelect") - return - endif - -@@ -283,27 +276,63 @@ fun! s:TarBrowseSelect() - exe 'com! -buffer -nargs=? -complete=file TarDiff :call tar#Diff(,"'.fnameescape(fname).'")' - - let &report= repkeep --" call Dret("TarBrowseSelect : s:tblfile_".winnr()."<".s:tblfile_{winnr()}.">") - endfun - - " --------------------------------------------------------------------- - " tar#Read: {{{2 - fun! tar#Read(fname,mode) --" call Dfunc("tar#Read(fname<".a:fname.">,mode=".a:mode.")") - let repkeep= &report - set report=10 - let tarfile = substitute(a:fname,'tarfile:\(.\{-}\)::.*$','\1','') - let fname = substitute(a:fname,'tarfile:.\{-}::\(.*\)$','\1','') -+ " be careful not to execute special crafted files -+ let escape_file = fname->fnameescape() -+ -+ " changing the directory to the temporary earlier to allow tar to extract the file with permissions intact -+ if !exists("*mkdir") -+ redraw! -+ echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None -+ let &report= repkeep -+ return -+ endif -+ -+ let curdir= getcwd() -+ let tmpdir= tempname() -+ let b:curdir= tmpdir -+ let b:tmpdir= curdir -+ if tmpdir =~ '\.' -+ let tmpdir= substitute(tmpdir,'\.[^.]*$','','e') -+ endif -+ call mkdir(tmpdir,"p") -+ -+ " attempt to change to the indicated directory -+ try -+ exe "cd ".fnameescape(tmpdir) -+ catch /^Vim\%((\a\+)\)\=:E344/ -+ redraw! -+ echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None -+ let &report= repkeep -+ return -+ endtry -+ -+ " place temporary files under .../_ZIPVIM_/ -+ if isdirectory("_ZIPVIM_") -+ call s:Rmdir("_ZIPVIM_") -+ endif -+ call mkdir("_ZIPVIM_") -+ cd _ZIPVIM_ -+ - if has("win32unix") && executable("cygpath") - " assuming cygwin - let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e') - endif --" call Decho("tarfile<".tarfile.">") --" call Decho("fname<".fname.">") - - if fname =~ '\.bz2$' && executable("bzcat") - let decmp= "|bzcat" - let doro = 1 -+ elseif fname =~ '\.bz3$' && executable("bz3cat") -+ let decmp= "|bz3cat" -+ let doro = 1 - elseif fname =~ '\.t\=gz$' && executable("zcat") - let decmp= "|zcat" - let doro = 1 -@@ -316,10 +345,13 @@ fun! tar#Read(fname,mode) - elseif fname =~ '\.zst$' && executable("zstdcat") - let decmp= "|zstdcat" - let doro = 1 -+ elseif fname =~ '\.lz4$' && executable("lz4cat") -+ let decmp= "|lz4cat" -+ let doro = 1 - else - let decmp="" - let doro = 0 -- if fname =~ '\.bz2$\|\.gz$\|\.lzma$\|\.xz$\|\.zip$\|\.Z$' -+ if fname =~ '\.bz2$\|\.bz3$\|\.gz$\|\.lzma$\|\.xz$\|\.zip$\|\.Z$' - setlocal bin - endif - endif -@@ -332,9 +364,13 @@ fun! tar#Read(fname,mode) - - if tarfile =~# '\.bz2$' - exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp -+ exe "read ".escape_file -+ elseif tarfile =~# '\.bz3$' -+ exe "sil! r! bzip3 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp -+ exe "read ".escape_file - elseif tarfile =~# '\.\(gz\)$' - exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp -- -+ exe "read ".escape_file - elseif tarfile =~# '\(\.tgz\|\.tbz\|\.txz\)' - if has("unix") && executable("file") - let filekind= system("file ".shellescape(tarfile,1)) -@@ -343,27 +379,49 @@ fun! tar#Read(fname,mode) - endif - if filekind =~ "bzip2" - exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp -+ exe "read ".escape_file -+ elseif filekind =~ "bzip3" -+ exe "sil! r! bzip3 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp -+ exe "read ".escape_file - elseif filekind =~ "XZ" - exe "sil! r! xz -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp -+ exe "read ".escape_file - elseif filekind =~ "Zstandard" - exe "sil! r! zstd --decompress --stdout -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp -+ exe "read ".escape_file - else - exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp -+ exe "read ".escape_file - endif - - elseif tarfile =~# '\.lrp$' - exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp -+ exe "read ".escape_file - elseif tarfile =~# '\.lzma$' - exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp -+ exe "read ".escape_file - elseif tarfile =~# '\.\(xz\|txz\)$' - exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp -+ exe "read ".escape_file -+ elseif tarfile =~# '\.\(lz4\|tlz4\)$' -+ exe "sil! r! lz4 --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp -+ exe "read ".escape_file - else - if tarfile =~ '^\s*-' - " A file name starting with a dash is taken as an option. Prepend ./ to avoid that. - let tarfile = substitute(tarfile, '-', './-', '') - endif --" call Decho("8: exe silent r! ".g:tar_cmd." -".g:tar_readoptions.tar_secure.shellescape(tarfile,1)." ".shellescape(fname,1).decmp) - exe "silent r! ".g:tar_cmd." -".g:tar_readoptions.shellescape(tarfile,1)." ".tar_secure.shellescape(fname,1).decmp -+ exe "read ".escape_file -+ endif -+ -+ redraw! -+ -+if v:shell_error != 0 -+ cd .. -+ call s:Rmdir("_ZIPVIM_") -+ exe "cd ".fnameescape(curdir) -+ echohl Error | echo "***error*** (tar#Read) sorry, unable to open or extract ".tarfile." with ".fname | echohl None - endif - - if doro -@@ -379,69 +437,29 @@ fun! tar#Read(fname,mode) - set nomod - - let &report= repkeep --" call Dret("tar#Read : b:tarfile<".b:tarfile.">") - endfun - - " --------------------------------------------------------------------- - " tar#Write: {{{2 - fun! tar#Write(fname) --" call Dfunc("tar#Write(fname<".a:fname.">) b:tarfile<".b:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">") - let repkeep= &report - set report=10 -+ " temporary buffer variable workaround because too fucking tired. but it works now -+ let curdir= b:curdir -+ let tmpdir= b:tmpdir - - if !exists("g:tar_secure") && a:fname =~ '^\s*-\|\s\+-' - redraw! - echohl WarningMsg | echo '***warning*** (tar#Write) rejecting tarfile member<'.a:fname.'> because of embedded "-"' --" call Dret('tar#Write : rejecting tarfile member<'.fname.'> because of embedded "-"') - return - endif - - " sanity checks - if !executable(g:tar_cmd) - redraw! --" call Decho('***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system') -- let &report= repkeep --" call Dret("tar#Write") -- return -- endif -- if !exists("*mkdir") -- redraw! --" call Decho("***error*** (tar#Write) sorry, mkdir() doesn't work on your system") -- echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None -- let &report= repkeep --" call Dret("tar#Write") -- return -- endif -- -- let curdir= getcwd() -- let tmpdir= tempname() --" call Decho("orig tempname<".tmpdir.">") -- if tmpdir =~ '\.' -- let tmpdir= substitute(tmpdir,'\.[^.]*$','','e') -- endif --" call Decho("tmpdir<".tmpdir.">") -- call mkdir(tmpdir,"p") -- -- " attempt to change to the indicated directory -- try -- exe "cd ".fnameescape(tmpdir) -- catch /^Vim\%((\a\+)\)\=:E344/ -- redraw! --" call Decho("***error*** (tar#Write) cannot cd to temporary directory") -- echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None - let &report= repkeep --" call Dret("tar#Write") - return -- endtry --" call Decho("current directory now: ".getcwd()) -- -- " place temporary files under .../_ZIPVIM_/ -- if isdirectory("_ZIPVIM_") -- call s:Rmdir("_ZIPVIM_") - endif -- call mkdir("_ZIPVIM_") -- cd _ZIPVIM_ --" call Decho("current directory now: ".getcwd()) - - let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','') - let fname = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','') -@@ -451,43 +469,42 @@ fun! tar#Write(fname) - call system("bzip2 -d -- ".shellescape(tarfile,0)) - let tarfile = substitute(tarfile,'\.bz2','','e') - let compress= "bzip2 -- ".shellescape(tarfile,0) --" call Decho("compress<".compress.">") -+ elseif tarfile =~# '\.bz3' -+ call system("bzip3 -d -- ".shellescape(tarfile,0)) -+ let tarfile = substitute(tarfile,'\.bz3','','e') -+ let compress= "bzip3 -- ".shellescape(tarfile,0) - elseif tarfile =~# '\.gz' - call system("gzip -d -- ".shellescape(tarfile,0)) - let tarfile = substitute(tarfile,'\.gz','','e') - let compress= "gzip -- ".shellescape(tarfile,0) --" call Decho("compress<".compress.">") - elseif tarfile =~# '\.tgz' - call system("gzip -d -- ".shellescape(tarfile,0)) - let tarfile = substitute(tarfile,'\.tgz','.tar','e') - let compress= "gzip -- ".shellescape(tarfile,0) - let tgz = 1 --" call Decho("compress<".compress.">") - elseif tarfile =~# '\.xz' - call system("xz -d -- ".shellescape(tarfile,0)) - let tarfile = substitute(tarfile,'\.xz','','e') - let compress= "xz -- ".shellescape(tarfile,0) --" call Decho("compress<".compress.">") - elseif tarfile =~# '\.zst' - call system("zstd --decompress --rm -- ".shellescape(tarfile,0)) - let tarfile = substitute(tarfile,'\.zst','','e') - let compress= "zstd --rm -- ".shellescape(tarfile,0) -+ elseif tarfile =~# '\.lz4' -+ call system("lz4 --decompress --rm -- ".shellescape(tarfile,0)) -+ let tarfile = substitute(tarfile,'\.lz4','','e') -+ let compress= "lz4 --rm -- ".shellescape(tarfile,0) - elseif tarfile =~# '\.lzma' - call system("lzma -d -- ".shellescape(tarfile,0)) - let tarfile = substitute(tarfile,'\.lzma','','e') - let compress= "lzma -- ".shellescape(tarfile,0) --" call Decho("compress<".compress.">") - endif --" call Decho("tarfile<".tarfile.">") - - if v:shell_error != 0 - redraw! --" call Decho("***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname) - echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None - else - --" call Decho("tarfile<".tarfile."> fname<".fname.">") -- - if fname =~ '/' - let dirpath = substitute(fname,'/[^/]\+$','','e') - if has("win32unix") && executable("cygpath") -@@ -502,7 +519,6 @@ fun! tar#Write(fname) - " A file name starting with a dash may be taken as an option. Prepend ./ to avoid that. - let tarfile = substitute(tarfile, '-', './-', '') - endif --" call Decho("tarfile<".tarfile."> fname<".fname.">") - - if exists("g:tar_secure") - let tar_secure= " -- " -@@ -515,26 +531,20 @@ fun! tar#Write(fname) - endif - - " delete old file from tarfile --" call Decho("system(".g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")") - call system(g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0)) - if v:shell_error != 0 - redraw! --" call Decho("***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname)) - echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None - else - - " update tarfile with new file --" call Decho(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0)) - call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0)) - if v:shell_error != 0 - redraw! --" call Decho("***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname)) - echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None - elseif exists("compress") --" call Decho("call system(".compress.")") - call system(compress) - if exists("tgz") --" call Decho("rename(".tarfile.".gz,".substitute(tarfile,'\.tar$','.tgz','e').")") - call rename(tarfile.".gz",substitute(tarfile,'\.tar$','.tgz','e')) - endif - endif -@@ -542,7 +552,6 @@ fun! tar#Write(fname) - - " support writing tarfiles across a network - if s:tblfile_{winnr()} =~ '^\a\+://' --" call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">") - let tblfile= s:tblfile_{winnr()} - 1split|noswapfile enew - let binkeep= &l:binary -@@ -564,13 +573,11 @@ fun! tar#Write(fname) - setlocal nomod - - let &report= repkeep --" call Dret("tar#Write") - endfun - - " --------------------------------------------------------------------- - " tar#Diff: {{{2 - fun! tar#Diff(userfname,fname) --" call Dfunc("tar#Diff(userfname<".a:userfname."> fname<".a:fname.")") - let fname= a:fname - if a:userfname != "" - let fname= a:userfname -@@ -588,133 +595,135 @@ fun! tar#Diff(userfname,fname) - redraw! - echo "***warning*** unable to read file<".fname.">" - endif --" call Dret("tar#Diff") - endfun - - " --------------------------------------------------------------------- - " tar#Extract: extract a file from a (possibly compressed) tar archive {{{2 - fun! tar#Extract() --" call Dfunc("tar#Extract()") - - let repkeep= &report - set report=10 - let fname= getline(".") --" call Decho("fname<".fname.">") - - if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-' - redraw! - echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"' --" call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"') - return - endif - - " sanity check - if fname =~ '^"' - let &report= repkeep --" call Dret("TarBrowseSelect") - return - endif - - let tarball = expand("%") --" call Decho("tarball<".tarball.">") - let tarbase = substitute(tarball,'\..*$','','') --" call Decho("tarbase<".tarbase.">") - - let extractcmd= netrw#WinPath(g:tar_extractcmd) - if filereadable(tarbase.".tar") --" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname).")") - call system(extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname)) - if v:shell_error != 0 - echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar ".fname.": failed!" | echohl NONE --" call Decho("***error*** ".extractcmd." ".tarbase.".tar ".fname.": failed!") - else - echo "***note*** successfully extracted ".fname - endif - - elseif filereadable(tarbase.".tgz") - let extractcmd= substitute(extractcmd,"-","-z","") --" call Decho("system(".extractcmd." ".shellescape(tarbase).".tgz ".shellescape(fname).")") - call system(extractcmd." ".shellescape(tarbase).".tgz ".shellescape(fname)) - if v:shell_error != 0 - echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tgz ".fname.": failed!" | echohl NONE --" call Decho("***error*** ".extractcmd."t ".tarbase.".tgz ".fname.": failed!") - else - echo "***note*** successfully extracted ".fname - endif - - elseif filereadable(tarbase.".tar.gz") - let extractcmd= substitute(extractcmd,"-","-z","") --" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.gz ".shellescape(fname).")") - call system(extractcmd." ".shellescape(tarbase).".tar.gz ".shellescape(fname)) - if v:shell_error != 0 - echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.gz ".fname.": failed!" | echohl NONE --" call Decho("***error*** ".extractcmd." ".tarbase.".tar.gz ".fname.": failed!") - else - echo "***note*** successfully extracted ".fname - endif - - elseif filereadable(tarbase.".tbz") - let extractcmd= substitute(extractcmd,"-","-j","") --" call Decho("system(".extractcmd." ".shellescape(tarbase).".tbz ".shellescape(fname).")") - call system(extractcmd." ".shellescape(tarbase).".tbz ".shellescape(fname)) - if v:shell_error != 0 - echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tbz ".fname.": failed!" | echohl NONE --" call Decho("***error*** ".extractcmd."j ".tarbase.".tbz ".fname.": failed!") - else - echo "***note*** successfully extracted ".fname - endif - - elseif filereadable(tarbase.".tar.bz2") - let extractcmd= substitute(extractcmd,"-","-j","") --" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.bz2 ".shellescape(fname).")") - call system(extractcmd." ".shellescape(tarbase).".tar.bz2 ".shellescape(fname)) - if v:shell_error != 0 - echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tar.bz2 ".fname.": failed!" | echohl NONE --" call Decho("***error*** ".extractcmd."j ".tarbase.".tar.bz2 ".fname.": failed!") -+ else -+ echo "***note*** successfully extracted ".fname -+ endif -+ -+ elseif filereadable(tarbase.".tar.bz3") -+ let extractcmd= substitute(extractcmd,"-","-j","") -+ call system(extractcmd." ".shellescape(tarbase).".tar.bz3 ".shellescape(fname)) -+ if v:shell_error != 0 -+ echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tar.bz3 ".fname.": failed!" | echohl NONE - else - echo "***note*** successfully extracted ".fname - endif - - elseif filereadable(tarbase.".txz") - let extractcmd= substitute(extractcmd,"-","-J","") --" call Decho("system(".extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname).")") - call system(extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname)) - if v:shell_error != 0 - echohl Error | echo "***error*** ".extractcmd." ".tarbase.".txz ".fname.": failed!" | echohl NONE --" call Decho("***error*** ".extractcmd." ".tarbase.".txz ".fname.": failed!") - else - echo "***note*** successfully extracted ".fname - endif - - elseif filereadable(tarbase.".tar.xz") - let extractcmd= substitute(extractcmd,"-","-J","") --" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.xz ".shellescape(fname).")") - call system(extractcmd." ".shellescape(tarbase).".tar.xz ".shellescape(fname)) - if v:shell_error != 0 - echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.xz ".fname.": failed!" | echohl NONE --" call Decho("***error*** ".extractcmd." ".tarbase.".tar.xz ".fname.": failed!") - else - echo "***note*** successfully extracted ".fname - endif - - elseif filereadable(tarbase.".tzst") - let extractcmd= substitute(extractcmd,"-","--zstd","") --" call Decho("system(".extractcmd." ".shellescape(tarbase).".tzst ".shellescape(fname).")") - call system(extractcmd." ".shellescape(tarbase).".tzst ".shellescape(fname)) - if v:shell_error != 0 - echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tzst ".fname.": failed!" | echohl NONE --" call Decho("***error*** ".extractcmd." ".tarbase.".tzst ".fname.": failed!") - else - echo "***note*** successfully extracted ".fname - endif - - elseif filereadable(tarbase.".tar.zst") - let extractcmd= substitute(extractcmd,"-","--zstd","") --" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.zst ".shellescape(fname).")") - call system(extractcmd." ".shellescape(tarbase).".tar.zst ".shellescape(fname)) - if v:shell_error != 0 - echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.zst ".fname.": failed!" | echohl NONE --" call Decho("***error*** ".extractcmd." ".tarbase.".tar.zst ".fname.": failed!") -+ else -+ echo "***note*** successfully extracted ".fname -+ endif -+ -+ elseif filereadable(tarbase.".tlz4") -+ let extractcmd= substitute(extractcmd,"-","-I lz4","") -+ call system(extractcmd." ".shellescape(tarbase).".tlz4 ".shellescape(fname)) -+ if v:shell_error != 0 -+ echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tlz4 ".fname.": failed!" | echohl NONE -+ else -+ echo "***note*** successfully extracted ".fname -+ endif -+ -+ elseif filereadable(tarbase.".tar.lz4") -+ let extractcmd= substitute(extractcmd,"-","-I lz4","") -+ call system(extractcmd." ".shellescape(tarbase).".tar.lz4".shellescape(fname)) -+ if v:shell_error != 0 -+ echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.lz4 ".fname.": failed!" | echohl NONE - else - echo "***note*** successfully extracted ".fname - endif -@@ -722,14 +731,11 @@ fun! tar#Extract() - - " restore option - let &report= repkeep -- --" call Dret("tar#Extract") - endfun - - " --------------------------------------------------------------------- - " s:Rmdir: {{{2 - fun! s:Rmdir(fname) --" call Dfunc("Rmdir(fname<".a:fname.">)") - if has("unix") - call system("/bin/rm -rf -- ".shellescape(a:fname,0)) - elseif has("win32") || has("win95") || has("win64") || has("win16") -@@ -739,7 +745,6 @@ fun! s:Rmdir(fname) - call system("del /S ".shellescape(a:fname,0)) - endif - endif --" call Dret("Rmdir") - endfun - - " ===================================================================== diff --git a/packages/neovim/build.sh b/packages/neovim/build.sh index 42bd16d52c..b0a6d9c766 100644 --- a/packages/neovim/build.sh +++ b/packages/neovim/build.sh @@ -3,13 +3,12 @@ TERMUX_PKG_DESCRIPTION="Ambitious Vim-fork focused on extensibility and agility TERMUX_PKG_LICENSE="Apache-2.0, VIM License" TERMUX_PKG_LICENSE_FILE="LICENSE.txt" TERMUX_PKG_MAINTAINER="Joshua Kahn @TomJo2000" -TERMUX_PKG_VERSION="0.10.4" -TERMUX_PKG_REVISION=4 +TERMUX_PKG_VERSION="0.11.0" TERMUX_PKG_SRCURL=https://github.com/neovim/neovim/archive/v${TERMUX_PKG_VERSION}.tar.gz -TERMUX_PKG_SHA256=10413265a915133f8a853dc757571334ada6e4f0aa15f4c4cc8cc48341186ca2 +TERMUX_PKG_SHA256=6826c4812e96995d29a98586d44fbee7c9b2045485d50d174becd6d5242b3319 TERMUX_PKG_AUTO_UPDATE=true TERMUX_PKG_UPDATE_VERSION_REGEXP="^\d+\.\d+\.\d+$" -TERMUX_PKG_DEPENDS="libiconv, libuv, luv, libmsgpack, libvterm (>= 1:0.3-0), libluajit, libunibilium, libandroid-support, lua51-lpeg, tree-sitter, tree-sitter-parsers" +TERMUX_PKG_DEPENDS="libiconv, libuv, luv, libmsgpack, libvterm (>= 1:0.3-0), libluajit, libunibilium, libandroid-support, lua51-lpeg, tree-sitter, tree-sitter-parsers, utf8proc" TERMUX_PKG_HOSTBUILD=true TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" diff --git a/packages/neovim/src-nvim-CMakeLists.txt.patch b/packages/neovim/src-nvim-CMakeLists.txt.patch index 672494dfa8..65cc061e9b 100644 --- a/packages/neovim/src-nvim-CMakeLists.txt.patch +++ b/packages/neovim/src-nvim-CMakeLists.txt.patch @@ -1,8 +1,8 @@ diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt -index 937cfaaa3..fbac79152 100644 +index 2a60eefe7c..98bbc7e5f2 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt -@@ -500,8 +504,8 @@ +@@ -515,11 +515,11 @@ add_custom_command( "${NVIM_VERSION_DEF_H}" DEPENDS "${PROJECT_BINARY_DIR}/cmake.config/auto/versiondef-$.h") @@ -10,32 +10,9 @@ index 937cfaaa3..fbac79152 100644 +set(LUA_GEN ${LUA_GEN_PRG} ${GENERATOR_PRELOAD} ${PROJECT_SOURCE_DIR} "${PROJECT_BINARY_DIR}/../host-build/libnlua0.so" ${PROJECT_BINARY_DIR}) set(LUA_GEN_DEPS ${GENERATOR_PRELOAD} $) + # Like LUA_GEN but includes also vim.fn, vim.api, vim.uv, etc +-set(NVIM_LUA $ -u NONE -l ${NVIM_LUA_PRELOAD} ${PROJECT_SOURCE_DIR}) ++set(NVIM_LUA "${PROJECT_BINARY_DIR}/../host-build/bin/nvim" -u NONE -l ${NVIM_LUA_PRELOAD} ${PROJECT_SOURCE_DIR}) + # NVIM_GENERATED_FOR_HEADERS: generated headers to be included in headers # NVIM_GENERATED_FOR_SOURCES: generated headers to be included in sources -@@ -913,7 +913,7 @@ file(GLOB LUA_SOURCES CONFIGURE_DEPENDS - ) - - add_target(doc-vim -- COMMAND $ -u NONE -l scripts/gen_vimdoc.lua -+ COMMAND "${PROJECT_BINARY_DIR}/../host-build/bin/nvim" -u NONE -l scripts/gen_vimdoc.lua - DEPENDS - nvim - ${API_SOURCES} -@@ -927,7 +927,7 @@ add_target(doc-vim - ) - - add_target(doc-eval -- COMMAND $ -u NONE -l ${PROJECT_SOURCE_DIR}/scripts/gen_eval_files.lua -+ COMMAND "${PROJECT_BINARY_DIR}/../host-build/bin/nvim" -u NONE -l ${PROJECT_SOURCE_DIR}/scripts/gen_eval_files.lua - DEPENDS - nvim - ${FUNCS_METADATA} -@@ -942,7 +942,7 @@ add_custom_target(doc) - add_dependencies(doc doc-vim doc-eval) - - add_target(lintdoc -- COMMAND $ -u NONE -l scripts/lintdoc.lua -+ COMMAND "${PROJECT_BINARY_DIR}/../host-build/bin/nvim" -u NONE -l scripts/lintdoc.lua - DEPENDS ${DOCFILES} - CUSTOM_COMMAND_ARGS USES_TERMINAL) - add_dependencies(lintdoc nvim)