Opened 8 years ago

Closed 8 years ago

#49882 closed defect (fixed)

neovim fails to compile with Symbol not found: _cur_term

Reported by: aaron@… Owned by: raimue (Rainer Müller)
Priority: Normal Milestone:
Component: ports Version: 2.3.4
Keywords: Cc:
Port: neovim libtermkey

Description

The new neovim port fails to compile, ending with this in main.log:

:info:build cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_editors_neovim/neovim/work/neovim-0.1.0/runtime/doc && /opt/local/bin/cmake -E copy_directory /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_editors_neovim/neovim/work/neovim-0.1.0/runtime/doc /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_editors_neovim/neovim/work/neovim-0.1.0/runtime/doc
:info:build cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_editors_neovim/neovim/work/neovim-0.1.0/runtime/doc && /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_editors_neovim/neovim/work/neovim-0.1.0/bin/nvim -u NONE -i NONE -esX --headless -c helptags\ ++t\ . -c quit
:info:build dyld: Symbol not found: _cur_term
:info:build   Referenced from: /opt/local/lib/libtermkey.1.dylib
:info:build   Expected in: flat namespace
:info:build  in /opt/local/lib/libtermkey.1.dylib
:info:build /bin/sh: line 1: 16774 Trace/BPT trap: 5       /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_editors_neovim/neovim/work/neovim-0.1.0/bin/nvim -u NONE -i NONE -esX --headless -c helptags\ ++t\ . -c quit
:info:build make[2]: *** [runtime/doc/tags] Error 133
:info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_editors_neovim/neovim/work/neovim-0.1.0'
:info:build make[1]: *** [runtime/CMakeFiles/runtime.dir/all] Error 2
:info:build make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_editors_neovim/neovim/work/neovim-0.1.0'
:info:build make: *** [all] Error 2
:info:build make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_editors_neovim/neovim/work/neovim-0.1.0'
:info:build Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_editors_neovim/neovim/work/neovim-0.1.0" && /usr/bin/make -j8 -w all VERBOSE=ON
:info:build Exit code: 2
:error:build org.macports.build for port neovim returned: command execution failed

Attachments (1)

main.log (61.6 KB) - added by aaron@… 8 years ago.

Download all attachments as: .zip

Change History (8)

Changed 8 years ago by aaron@…

Attachment: main.log added

comment:1 Changed 8 years ago by aaron@…

Could be related? ​https://github.com/neovim/neovim/issues/2033#issuecomment-75364945 "This error happens when libtermkey fails to find unibilium and tries to link against libterminfo"

comment:2 Changed 8 years ago by aaron@…

Removing and recompiling libtermkey from source resolves the problem:

port uninstall libtermkey
port install -s libtermkey

I suspect this means that the pre-compiled package for libtermkey was built without a depdency on unibilium?

comment:3 Changed 8 years ago by aaron@…

Now I'm confused. The patch-Makefile for libtermkey explicltly removes the unibilium dependency, in favor of ncursesw?

cat /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/devel/libtermkey/files/patch-Makefile.diff
--- Makefile.orig	2015-10-03 19:37:52.000000000 +0200
+++ Makefile	2015-10-03 19:39:01.000000000 +0200
@@ -19,25 +19,14 @@
   LDFLAGS+=-pg
 endif

-ifeq ($(shell pkg-config --atleast-version=0.1.0 unibilium && echo 1),1)
-  CFLAGS +=$(shell pkg-config --cflags unibilium) -DHAVE_UNIBILIUM
-  LDFLAGS+=$(shell pkg-config --libs   unibilium)
-else ifeq ($(shell pkg-config ncursesw && echo 1),1)
-  CFLAGS +=$(shell pkg-config --cflags ncursesw)
-  LDFLAGS+=$(shell pkg-config --libs   ncursesw)
-else
-  LDFLAGS+=-lncurses
-endif
+CFLAGS +=$(shell pkg-config --cflags ncursesw)
+LDFLAGS+=$(shell pkg-config --libs   ncursesw)

 OBJECTS=termkey.lo driver-csi.lo driver-ti.lo
 LIBRARY=libtermkey.la

 DEMOS=demo demo-async

-ifeq ($(shell pkg-config glib-2.0 && echo 1),1)
-  DEMOS+=demo-glib
-endif
-
 DEMO_OBJECTS=$(DEMOS:=.lo)

 TESTSOURCES=$(wildcard t/[0-9]*.c)

comment:4 Changed 8 years ago by mf2k (Frank Schima)

Cc: raimue@… removed
Owner: changed from macports-tickets@… to raimue@…

comment:5 Changed 8 years ago by raimue (Rainer Müller)

Port: libtermkey added
Status: newassigned

I was confused as well. The port builds fine for me on my local system, but failed on the yosemite buildbot.

I just noticed the missing dependency on ncurses in libtermkey. Fixed in r143099.

Please test again.

Last edited 8 years ago by raimue (Rainer Müller) (previous) (diff)

comment:6 Changed 8 years ago by aaron@…

Both libtermkey and neovim now install from packages without trouble. Recompiling neovim with the pre-built libtermkey package also works. Thank you!

comment:7 Changed 8 years ago by raimue (Rainer Müller)

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.