Please note we will close your issue without comment if you delete, do not read or do not fill out the issue checklist below and provide ALL the requested information. If you repeatedly fail to use the issue template, we will block you from ever submitting issues to Homebrew again.
brew install (or upgrade, reinstall) a single, official formula (not cask)? If it's a general brew problem please file this issue at Homebrew/brew: https://github.com/Homebrew/brew/issues/new/choose. If it's a brew cask problem please file this issue at https://github.com/Homebrew/homebrew-cask/issues/new/choose. If it's a tap (e.g. Homebrew/homebrew-php) problem please file this issue at the tap.brew update and can still reproduce the problem?brew doctor, fixed all issues and can still reproduce the problem?brew gist-logs <formula> (where <formula> is the name of the formula that failed) and included the output link?brew gist-logs didn't work: ran brew config and brew doctor and included their output with your issue?To help us debug your issue please explain:
brew install commands)Currently, neovim will try to download luabitop from https://luarocks.org/luabitop-1.0.2-1.src.rock. However, that link now returns 404 not found. The file is archived at https://web.nettworks.org/source-archives/luabitop-1.0.2-1.src.rock and I successfully installed it from there after doing brew edit neovim
I think this change from August might have broken it for new installs; I just recently cleared my cache, which is why I think I ran into it.
I think this would fix it: https://github.com/nerdrew/homebrew-core/commit/41a74aefef4dfa324dadd54b5dc1667370d77ab3
@nerdrew we'll happily consider a pull request to fix it! please include some explanation of the changes you make, in the text of the PR
For the luarocks dependencies, we have sha256 checksum of the rockspec files, but don't verify the actual download file checksums. Maintaining the checksums of the rock files complicates this formula since we download the rockspecs, verify the checksum, then luarocks build ... instead of just luarocks install ....
I don't own this formula, nor do I feel strongly about this, but it seems like we should either: A) verify the actual file checksums (which currently happens with penlight but none of the other luarocks) or B) skip the luarocks checksums completely.
Option A is a bit more complicated and requires more maintenance when updating, but it also gives actual checks on the code that is installed.
@justinmk or @DomT4, do either of you have an opinion on verifying luarocks checksums for this formula?
If luarocks doesn't verify packages itself (I would assume it does...) then I wouldn't bother.
Somewhat related: recently a user reported that neovim installed from homebrew depended on lua 5.3 because luarocks depended on that, and this somehow conflicted with neovim's dependency on lua 5.1. Could that be related to https://github.com/Homebrew/homebrew-core/commit/bdcb8774aea0cbe24e54d076451727b140cc6466 ?
@hishamhm does luarocks actually depend on lua 5.3 ? I would hope it supports lua 5.1.
We prefer to cache and check our downloads (through resource blocks), but we are open to exceptions when it would make life too hard. As long as the dependencies are pinned, i.e. every install of the formula will download the same version of the dependencies, from a trusted server.
Can neovim build with latest lua (5.3)? If yes, we should do so.
Can neovim build with latest lua (5.3)? If yes, we should do so.
Can you expand a bit on "should"? (Why should we use Lua 5.3?)
Neovim's lua support is pinned to whatever LuaJit supports, which means essentially Lua 5.1.
In a sense, there's no such thing as "latest Lua". Lua is an embedded language, it does not need "upgrades". Then one might suggest that Neovim should inline Lua instead of trying to (statically) link to it. If it becomes a problem for package systems like homebrew, we may need to consider that ...
Neovim's lua support is pinned to whatever LuaJit supports, which means essentially Lua 5.1
That's a good reason, then.
It looks like luarocks supports an md5 checksum in the rockspec, but it doesn't look required. The first two packages I checked (luabitop and penlight) did not use it.
It looks like we already have the checksums of the actual sources, so I think I just need to update my PR to include the source url instead of the rockspec URL for the changed rock. I also think I need to pull in a missing dependency (luafilesystem), and then it should be good.
Ooops. Misspoke. luafilesystem is included, but needs to be installed before penlight. My bad.
Ok, updated my PR. I'm not sure if the luarocks unpack ... && luarocks make ... is worth the complexity. The existing luarocks build ... will download and install any missed dependencies. Since we are doing the checksumming outside of luarocks, it will skip those checksums. I personally like having checksums in there, but it does make it more complicated.
md5 is basically worthless at this point; I'd consider that equivalent to doing absolutely no checksum verification, to be honest.
A good chunk of the way luarocks behaves makes it fairly problematic to use within Homebrew. The current system is something I rapidly hacked together when Homebrew removed things like depends_on "blah" => :lua because, well, nobody else was especially interested, but the nature of luarocks makes it quite a fragile system.
I don't think there's anything fundamentally wrong with the changes you've made in https://github.com/Homebrew/homebrew-core/pull/32204, FWIW.
Someone want to merge my PR then?
@hishamhm does luarocks actually depend on lua 5.3 ? I would hope it supports lua 5.1.
@justinmk LuaRocks does work with Lua 5.1-5.3 and LuaJIT
What's the status on this issue?
@pbondoer - I was able to install from HEAD using @nerdrew's fix with this command:
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/71820bed2565c7d65159ee29e5d4784cf436d73f/Formula/neovim.rb --HEAD
I'm waiting for someone to merge my PR: https://github.com/Homebrew/homebrew-core/pull/32204. I'm happy to make changes to the PR if that's what's blocking this (but I don't know what those changes are).
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
I think the issue can be closed. The PR was closed with this commit: https://github.com/Homebrew/homebrew-core/commit/0ccb7678eac4350ea4f85fa989cf2553c6a259eb
I can install from HEAD again. LGTM 馃憤
Thanks @nerdrew .
It's a big problem that packages can go missing from LuaRocks. ...
install HEAD, I am getting this,
==> make install
Last 15 lines from /Users/jimxu/Library/Logs/Homebrew/neovim/22.make:
dyld: Library not loaded: /usr/local/opt/libvterm/lib/libvterm.0.dylib
Referenced from: /tmp/neovim-20181109-67791-1kzwiqw/build/bin/nvim
Reason: image not found
/bin/sh: line 1: 82679 Abort trap: 6 /tmp/neovim-20181109-67791-1kzwiqw/build/bin/nvim -u NONE -i NONE -e --headless -c helptags\ doc -c quit
make[2]: * [runtime/CMakeFiles/vimball-tags] Error 134
make[1]: [runtime/CMakeFiles/vimball-tags.dir/all] Error 2
make[1]: Waiting for unfinished jobs....
cd /tmp/neovim-20181109-67791-1kzwiqw/build/runtime && /tmp/neovim-20181109-67791-1kzwiqw/build/bin/nvim -u NONE -i NONE -e --headless -c helptags\ ++t\ doc -c quit
dyld: Library not loaded: /usr/local/opt/libvterm/lib/libvterm.0.dylib
Referenced from: /tmp/neovim-20181109-67791-1kzwiqw/build/bin/nvim
Reason: image not found
/bin/sh: line 1: 82681 Abort trap: 6 /tmp/neovim-20181109-67791-1kzwiqw/build/bin/nvim -u NONE -i NONE -e --headless -c helptags\ ++t\ doc -c quit
make[2]: [runtime/CMakeFiles/helptags] Error 134
make[1]: [runtime/CMakeFiles/helptags.dir/all] Error 2
make: * [all] Error 2
==> Kept temporary files
Temporary files retained at /private/tmp/neovim-20181109-67791-1kzwiqw
READ THIS: https://docs.brew.sh/Troubleshooting
The problem is that the installation instructions seems to believe that homebrew was installed under "/usr/local", instead of where my current HOMEBREW_PREFIX was pointing to, that's why it is looking at the
dyld: Library not loaded: /usr/local/opt/libvterm/lib/libvterm.0.dylib
and couldn't find it.
So my local solution is to just symlink my ~/homebrew/opt dir to /usr/local/opt and then the install worked.
Hope this helps.
@i3d you need to say exactly which commands you ran.
Most helpful comment
I'm waiting for someone to merge my PR: https://github.com/Homebrew/homebrew-core/pull/32204. I'm happy to make changes to the PR if that's what's blocking this (but I don't know what those changes are).