Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Neovim: 0.3.8 -> 0.4.2 #68882

Merged
merged 4 commits into from Sep 23, 2019
Merged

Neovim: 0.3.8 -> 0.4.2 #68882

merged 4 commits into from Sep 23, 2019

Conversation

rvolosatovs
Copy link
Member

Motivation for this change

Upstream update
Refs #64400

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.
Notify maintainers

cc @gloaming @manveru

@rvolosatovs
Copy link
Member Author

@GrahamcOfBorg build neovim

preBuild = ''
sed -i 's,\(option(WITH_SHARED_LIBUV.*\)OFF,\1ON,' CMakeLists.txt
sed -i 's,\(option(BUILD_MODULE.*\)ON,\1OFF,' CMakeLists.txt
sed -i 's,$''+''{INSTALL_INC_DIR},${placeholder "out"}/include/luv,' CMakeLists.txt
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can't we use substituteAll instead ? better use nix abstraction tools.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sed seems more consistent with the rest of the file

@@ -273,9 +276,21 @@ with super;
sed -i 's,\(option(WITH_SHARED_LIBUV.*\)OFF,\1ON,' CMakeLists.txt
rm -rf deps/libuv
'';
});

luv-dev = super.luv.override({
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could you add a comment explaining the difference between luv and luv-dev ? why it's not luv.dev output for instance

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @gloaming
I assume this is not a luv.dev output, since a different build is necessary here

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was the case when I had tried building luv but maybe they improved it by now.
If it's a temporary package to work around luv "faulty" build system, it would be good to mention it

@teto
Copy link
Member

teto commented Sep 16, 2019

super happy to see this PR. I made a few comments for the sake of it :)

@rvolosatovs
Copy link
Member Author

@GrahamcOfBorg build neovim

@gloaming
Copy link
Contributor

Hey, thanks for this, but you used an older version of my work. We can use the shared library instead of the static one, and I put that output under the passthru for luv so as not to clutter the lua package set.

I rebased your package update onto my newer branch, please have a look: master...gloaming:neovim/0.4.2

@rvolosatovs
Copy link
Member Author

@gloaming I'm getting a failure on your branch when attempting nix-build -A neovim:

nix-build -A neovim
these derivations will be built:
  /nix/store/n75qgv69p7vwbs3nq0250xw0i60m8hq4-luajit-2.1.0-beta3-luv-1.30.0-0.drv
  /nix/store/rp6kb1aha635zvbbbvlc54rhnrmm7vb9-luajit-2.1.0-beta3-env.drv
  /nix/store/szihpmibzjwiqy7g5y84m65gl9ww6vq2-neovim-unwrapped-0.4.2.drv
  /nix/store/3ppk2xdwh034yahs04yb2r87w5p3r19x-neovim-0.4.2.drv
building '/nix/store/rp6kb1aha635zvbbbvlc54rhnrmm7vb9-luajit-2.1.0-beta3-env.drv'...
building '/nix/store/n75qgv69p7vwbs3nq0250xw0i60m8hq4-luajit-2.1.0-beta3-luv-1.30.0-0.drv'...
created 16 symlinks in user environment
unpacking sources
unpacking source archive /nix/store/iqsk16lkjsixwmrq9w3b6szh4nm3mpcf-luv-1.30.0-0.src.rock

Done. You may now enter directory
luv-1.30.0-0/luv-1.30.0-0
and type 'luarocks make' to build.
source root is ./luv-1.30.0-0/luv-1.30.0-0
setting SOURCE_DATE_EPOCH to timestamp 1561806879 of file ./luv-1.30.0-0/luv-1.30.0-0/src/work.c
patching sources
configuring
building
patching script interpreter paths in .
./deps/lua-compat-5.3/tests/test.lua: interpreter directive changed from "/usr/bin/env lua" to "/nix/store/0sq4xf1gdkw7r29a804mf08yk0h0zd53-luajit-2.1.0-beta3/bin/lua"
installing
Warning: unmatched variable LUA_LIBDIR
-- The C compiler identification is GNU 8.3.0
-- The ASM compiler identification is GNU
-- Found assembler: /nix/store/7hzmz83nv8khpwsk858yaac7y3idh0a7-gcc-wrapper-8.3.0/bin/gcc
-- Check for working C compiler: /nix/store/7hzmz83nv8khpwsk858yaac7y3idh0a7-gcc-wrapper-8.3.0/bin/gcc
-- Check for working C compiler: /nix/store/7hzmz83nv8khpwsk858yaac7y3idh0a7-gcc-wrapper-8.3.0/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found LIBUV: /nix/store/njwv39ld47874ssn3ww3pz5q621gcncs-libuv-1.30.1/lib/libuv.so
-- Lua: using information from luarocks
-- LUA_LIBDIR:
-- LUA_INCDIR: /nix/store/0sq4xf1gdkw7r29a804mf08yk0h0zd53-luajit-2.1.0-beta3/include/luajit-2.1
-- LUA: /nix/store/0sq4xf1gdkw7r29a804mf08yk0h0zd53-luajit-2.1.0-beta3/bin/luajit
-- Lua library: LUA_LIBRARIES-NOTFOUND
-- Configuring done
-- Generating done
-- Build files have been written to: /build/luv-1.30.0-0/luv-1.30.0-0/build.luarocks
Scanning dependencies of target luv
[ 50%] Building C object CMakeFiles/luv.dir/src/luv.c.o
[100%] Linking C shared library libluv.so
[100%] Built target luv
[100%] Built target luv
Install the project...
-- Install configuration: ""
-- Installing: /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/luv-1.30.0-0-rocks/luv/1.30.0-0/lib/libluv.so.1.30.0
-- Installing: /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/luv-1.30.0-0-rocks/luv/1.30.0-0/lib/libluv.so.1
-- Installing: /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/luv-1.30.0-0-rocks/luv/1.30.0-0/lib/libluv.so
-- Installing: /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/include/luv/luv.h
-- Installing: /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/include/luv/util.h
-- Installing: /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/include/luv/lhandle.h
-- Installing: /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/include/luv/lreq.h

cp: cannot stat '/nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/luv-1.30.0-0-rocks/luv/1.30.0-0/lib/libluv.so': No such file or directory
No existing manifest. Attempting to rebuild...
luv 1.30.0-0 is now installed in /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0 (license: Apache 2.0)

ln: failed to create symbolic link '/nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/lib/lua/5.1/libluv.so.1': File exists
builder for '/nix/store/n75qgv69p7vwbs3nq0250xw0i60m8hq4-luajit-2.1.0-beta3-luv-1.30.0-0.drv' failed with exit code 1
cannot build derivation '/nix/store/szihpmibzjwiqy7g5y84m65gl9ww6vq2-neovim-unwrapped-0.4.2.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/3ppk2xdwh034yahs04yb2r87w5p3r19x-neovim-0.4.2.drv': 1 dependencies couldn't be built
error: build of '/nix/store/3ppk2xdwh034yahs04yb2r87w5p3r19x-neovim-0.4.2.drv' failed

@maralorn
Copy link
Member

Not sure if this helps, but I got neovim-nightly to work just 3 days ago. For that I packaged libluv the following way: https://termbin.com/k75a7

neovim worked fine with just putting that derivation into the buildinputs.

@rvolosatovs
Copy link
Member Author

rvolosatovs commented Sep 16, 2019

@gloaming I removed the ln statements from 609446b and it seems to work fine now.
Again, I'm not familiar with Lua ecosystem, so not sure what are the consequences of this.

@rvolosatovs
Copy link
Member Author

@GrahamcOfBorg build neovim

@teto
Copy link
Member

teto commented Sep 17, 2019

the passtru thing looks kinda ugly but I am confident libluv system will improve so this might be a temporary wart.

@gloaming
Copy link
Contributor

@rvolosatovs that's odd, it works for me 🤔

$ nix-build /nix/store/n75qgv69p7vwbs3nq0250xw0i60m8hq4-luajit-2.1.0-beta3-luv-1.30.0-0.drv --check
checking outputs of '/nix/store/n75qgv69p7vwbs3nq0250xw0i60m8hq4-luajit-2.1.0-beta3-luv-1.30.0-0.drv'...
unpacking sources
unpacking source archive /nix/store/iqsk16lkjsixwmrq9w3b6szh4nm3mpcf-luv-1.30.0-0.src.rock

Done. You may now enter directory
luv-1.30.0-0/luv-1.30.0-0
and type 'luarocks make' to build.
source root is ./luv-1.30.0-0/luv-1.30.0-0
setting SOURCE_DATE_EPOCH to timestamp 1561806879 of file ./luv-1.30.0-0/luv-1.30.0-0/src/work.c
patching sources
configuring
building
patching script interpreter paths in .
./deps/lua-compat-5.3/tests/test.lua: interpreter directive changed from "/usr/bin/env lua" to "/nix/store/0sq4xf1gdkw7r29a804mf08yk0h0zd53-luajit-2.1.0-beta3/bin/lua"
installing
Warning: unmatched variable LUA_LIBDIR
-- The C compiler identification is GNU 8.3.0
-- The ASM compiler identification is GNU
-- Found assembler: /nix/store/7hzmz83nv8khpwsk858yaac7y3idh0a7-gcc-wrapper-8.3.0/bin/gcc
-- Check for working C compiler: /nix/store/7hzmz83nv8khpwsk858yaac7y3idh0a7-gcc-wrapper-8.3.0/bin/gcc
-- Check for working C compiler: /nix/store/7hzmz83nv8khpwsk858yaac7y3idh0a7-gcc-wrapper-8.3.0/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found LIBUV: /nix/store/njwv39ld47874ssn3ww3pz5q621gcncs-libuv-1.30.1/lib/libuv.so
-- Lua: using information from luarocks
-- LUA_LIBDIR:
-- LUA_INCDIR: /nix/store/0sq4xf1gdkw7r29a804mf08yk0h0zd53-luajit-2.1.0-beta3/include/luajit-2.1
-- LUA: /nix/store/0sq4xf1gdkw7r29a804mf08yk0h0zd53-luajit-2.1.0-beta3/bin/luajit
-- Lua library: LUA_LIBRARIES-NOTFOUND
-- Configuring done
-- Generating done
-- Build files have been written to: /build/luv-1.30.0-0/luv-1.30.0-0/build.luarocks
Scanning dependencies of target luv
[ 50%] Building C object CMakeFiles/luv.dir/src/luv.c.o
[100%] Linking C shared library libluv.so
[100%] Built target luv
[100%] Built target luv
Install the project...
-- Install configuration: ""
-- Installing: /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/luv-1.30.0-0-rocks/luv/1.30.0-0/lib/libluv.so.1.30.0
-- Installing: /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/luv-1.30.0-0-rocks/luv/1.30.0-0/lib/libluv.so.1
-- Installing: /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/luv-1.30.0-0-rocks/luv/1.30.0-0/lib/libluv.so
-- Installing: /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/include/luv/luv.h
-- Installing: /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/include/luv/util.h
-- Installing: /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/include/luv/lhandle.h
-- Installing: /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/include/luv/lreq.h

cp: cannot stat '/nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/luv-1.30.0-0-rocks/luv/1.30.0-0/lib/libluv.so': No such file or directory
cp: cannot stat '/nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/luv-1.30.0-0-rocks/luv/1.30.0-0/lib/libluv.so.1': No such file or directory
No existing manifest. Attempting to rebuild...
luv 1.30.0-0 is now installed in /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0 (license: Apache 2.0)

post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0
shrinking /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/lib/lua/5.1/libluv.so.1.30.0
strip is /nix/store/cl1i6bfqnx48ipakj4px7pb1babzs23j-binutils-2.31.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0/lib
patching script interpreter paths in /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0
checking for references to /build/ in /nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0...
/nix/store/mp4qm3fmckcignpwb58apzcy2yqr7681-luajit-2.1.0-beta3-luv-1.30.0-0

I was going to ask if you had some kind of overlay, but It's the same hash(!), so there's some kind of reproducibility issue I guess.

Your version works because you're using luv.so instead of libluv.so:

((824869c3fc0...))$ git diff neovim/0.4.2 -- pkgs/applications/editors/neovim/default.nix
diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix
index d573a83a73d..6808d7115c5 100644
--- a/pkgs/applications/editors/neovim/default.nix
+++ b/pkgs/applications/editors/neovim/default.nix
@@ -79,7 +79,7 @@ in
 
     cmakeFlags = [
       "-DGPERF_PRG=${gperf}/bin/gperf"
-      "-DLIBLUV_LIBRARY=${lua.pkgs.luv.libluv}/lib/lua/${lua.luaversion}/libluv.so"
+      "-DLIBLUV_LIBRARY=${lua.pkgs.luv}/lib/lua/${lua.luaversion}/luv.so"
       "-DLUA_PRG=${neovimLuaEnv.interpreter}"
     ]
     ++ optional doCheck "-DBUSTED_PRG=${neovimLuaEnv}/bin/busted"

If I change that line back, I get this:

((824869c3fc0...) *)$ nix-build . -A neovim
...
make[2]: *** No rule to make target '/nix/store/q8jd6bykxb6j9x0cvcq5qq6gddr99if2-luajit-2.1.0-beta3-luv-1.30.0-0/lib/lua/5.1/libluv.so', needed by 'bin/nvim'.  Stop.
make[2]: *** Waiting for unfinished jobs....
[100%] Building C object src/nvim/CMakeFiles/nvim.dir/xdiff/xutils.c.o
make[1]: *** [CMakeFiles/Makefile2:3314: src/nvim/CMakeFiles/nvim.dir/all] Error 2
make: *** [Makefile:152: all] Error 2
builder for '/nix/store/f88f3ssv6sspkzcdh0dbq1x53lddiprn-neovim-unwrapped-0.4.2.drv' failed with exit code 2
cannot build derivation '/nix/store/v177v5x4b0dv1rf6p6lrlna4sh4zrmj8-neovim-0.4.2.drv': 1 dependencies couldn't be built
error: build of '/nix/store/v177v5x4b0dv1rf6p6lrlna4sh4zrmj8-neovim-0.4.2.drv' failed
((824869c3fc0...) *)$ stat /nix/store/q8jd6bykxb6j9x0cvcq5qq6gddr99if2-luajit-2.1.0-beta3-luv-1.30.0-0/lib/lua/5.1/libluv.so
stat: cannot stat '/nix/store/q8jd6bykxb6j9x0cvcq5qq6gddr99if2-luajit-2.1.0-beta3-luv-1.30.0-0/lib/lua/5.1/libluv.so': No such file or directory

Which is why I put the ln there in the first place.

I guess since Neovim works with luv.so now, we can just use that. But it would be nice to figure out what the problem here is. Does it reproduce for other people?

@rvolosatovs
Copy link
Member Author

So what still needs to be done to merge this?

@teto
Copy link
Member

teto commented Sep 23, 2019

let's merge this. The luv thing is awkward but I am confident it will be improved in the future.
Meanwhile nvim 0.4.2 brings so many good things it would be sad to postpone it :p

@teto teto merged commit 60f3c94 into NixOS:master Sep 23, 2019
@rvolosatovs rvolosatovs deleted the update/neovim branch September 23, 2019 14:57
@paulreimer
Copy link
Contributor

paulreimer commented Sep 24, 2019

This doesn't build for me on macOS + home-manager (I'm new to nix, so I'm not sure how to fix it myself), but this patch does work for me (building luv with static library output, not shared)

diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix
index 6808d7115c5..98dd45b49d4 100644
--- a/pkgs/applications/editors/neovim/default.nix
+++ b/pkgs/applications/editors/neovim/default.nix
@@ -79,7 +79,7 @@ in

     cmakeFlags = [
       "-DGPERF_PRG=${gperf}/bin/gperf"
-      "-DLIBLUV_LIBRARY=${lua.pkgs.luv}/lib/lua/${lua.luaversion}/luv.so"
+      "-DLIBLUV_LIBRARY=${lua.pkgs.luv.libluv}/lib/lua/${lua.luaversion}/libluv.a"
       "-DLUA_PRG=${neovimLuaEnv.interpreter}"
     ]
     ++ optional doCheck "-DBUSTED_PRG=${neovimLuaEnv}/bin/busted"
diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix
index 9f57fbb5fa9..3d712f5bec5 100644
--- a/pkgs/development/lua-modules/overrides.nix
+++ b/pkgs/development/lua-modules/overrides.nix
@@ -281,7 +281,7 @@ with super;
       libluv = self.luv.override({
         preBuild = self.luv.preBuild + ''
          sed -i 's,\(option(BUILD_MODULE.*\)ON,\1OFF,' CMakeLists.txt
-         sed -i 's,\(option(BUILD_SHARED_LIBS.*\)OFF,\1ON,' CMakeLists.txt
+         sed -i 's,\(option(BUILD_SHARED_LIBS.*\)ON,\1OFF,' CMakeLists.txt
          sed -i 's,${"\${INSTALL_INC_DIR}"},${placeholder "out"}/include/luv,' CMakeLists.txt
         '';
       });

The error I get when building shared libraries with this PR as-is:

patching script interpreter paths in .
./deps/lua-compat-5.3/tests/test.lua: interpreter directive changed from "/usr/bin/env lua" to "/nix/store/7yg741lai9d615kcbx4mxqv3zr6xn70p-luajit-2.1.0-beta3/bin/lua"
installing
Warning: unmatched variable LUA_LIBDIR
-- The C compiler identification is Clang 7.1.0
-- The ASM compiler identification is Clang
-- Found assembler: /nix/store/hi40vi42w2rnf9pflyhmsalcj5jf2bsv-clang-wrapper-7.1.0/bin/clang
-- Check for working C compiler: /nix/store/hi40vi42w2rnf9pflyhmsalcj5jf2bsv-clang-wrapper-7.1.0/bin/clang
-- Check for working C compiler: /nix/store/hi40vi42w2rnf9pflyhmsalcj5jf2bsv-clang-wrapper-7.1.0/bin/clang -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found LIBUV: /nix/store/6mrqg83jkddwxsl0i6aivl8snj6asll5-libuv-1.30.1/lib/libuv.dylib
-- Lua: using information from luarocks
-- LUA_LIBDIR:
-- LUA_INCDIR: /nix/store/7yg741lai9d615kcbx4mxqv3zr6xn70p-luajit-2.1.0-beta3/include/luajit-2.1
-- LUA: /nix/store/7yg741lai9d615kcbx4mxqv3zr6xn70p-luajit-2.1.0-beta3/bin/luajit
-- Lua library: LUA_LIBRARIES-NOTFOUND
-- Configuring done
CMake Warning (dev):
  Policy CMP0042 is not set: MACOSX_RPATH is enabled by default.  Run "cmake
  --help-policy CMP0042" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  MACOSX_RPATH is not specified for the following targets:

   luv

This warning is for project developers.  Use -Wno-dev to suppress it.

-- Generating done
-- Build files have been written to: /tmp/nix-build-luajit-2.1.0-beta3-luv-1.30.0-0.drv-0/luv-1.30.0-0/luv-1.30.0-0/build.luarocks
Scanning dependencies of target luv
[ 50%] Building C object CMakeFiles/luv.dir/src/luv.c.o
[100%] Linking C shared library libluv.dylib
Undefined symbols for architecture x86_64:
  "_luaL_argerror", referenced from:
      _luv_cancel in luv.c.o
      _luv_timer_start in luv.c.o
      _luv_timer_stop in luv.c.o
      _luv_timer_again in luv.c.o
      _luv_timer_set_repeat in luv.c.o
      _luv_timer_get_repeat in luv.c.o
      _luv_prepare_start in luv.c.o
      ...

@teto
Copy link
Member

teto commented Sep 24, 2019

and if you change the .so by .dylib instead ? wouldn't that solve the problem ?
or better use lib/systems/default.nix's extensions.sharedLibrary. If it does work, open up a PR and ping me.

@paulreimer
Copy link
Contributor

Tried various combinations of looking in {lua.pkgs.luv} vs {lua.pkgs.luv.libluv}, and using libluv.dylib, luv.dylib, luv.so, libluv.so -- they all had the same issue as above.

The only one I've found to work (not ideal, I know) is {lua.pkgs.luv.libluv} and libluv.a.

It all works fine on Linux (using {lua.pkgs.luv} and luv.so as in this PR.

@malob
Copy link
Member

malob commented Sep 27, 2019

Just wanted to mention that this PR has now made it into the nixpkgs-unstable channel, and so I'm now getting the same error as @paulreimer when I try to update my Nix configuration on my macOS. So it seems that now anyone using nixpkgs-unstable on macOS (and updates the channel) can on longer install Neovim (unless they install from another channel like nixpkgs-19.09-darwin or nixpkgs-19.03-darwin).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants