3

I am trying to build vim in my user dir after recently upgraded to Fedora 23

I have ncurses and ncurses-devel

[root@statquant-laptop lib]# dnf install ncurses
Last metadata expiration check performed 1:09:48 ago on Sat Jan  9 10:33:06 2016.
Package ncurses-5.9-21.20150214.fc23.x86_64 is already installed, skipping.
Dependencies resolved.
Nothing to do.
Complete!

[root@statquant-laptop lib]# dnf install ncurses-devel
Last metadata expiration check performed 1:09:58 ago on Sat Jan  9 10:33:06 2016.
Package ncurses-devel-5.9-21.20150214.fc23.x86_64 is already installed, skipping.
Dependencies resolved.
Nothing to do.
Complete!

Here is the proof:

[root@statquant-laptop lib]# ll /usr/lib/libncurs*
lrwxrwxrwx. 1 root root     17 Jun 17  2015 /usr/lib/libncurses.so.5 -> libncurses.so.5.9
lrwxrwxrwx. 1 root root     19 Jun 17  2015 /usr/lib/libncurses++.so.5 -> libncurses++.so.5.9
-rwxr-xr-x. 1 root root 154448 Jun 17  2015 /usr/lib/libncurses.so.5.9
-rwxr-xr-x. 1 root root  68176 Jun 17  2015 /usr/lib/libncurses++.so.5.9
lrwxrwxrwx. 1 root root     20 Jun 17  2015 /usr/lib/libncurses++w.so.5 -> libncurses++w.so.5.9
lrwxrwxrwx. 1 root root     18 Jun 17  2015 /usr/lib/libncursesw.so.5 -> libncursesw.so.5.9
-rwxr-xr-x. 1 root root  68176 Jun 17  2015 /usr/lib/libncurses++w.so.5.9
-rwxr-xr-x. 1 root root 216000 Jun 17  2015 /usr/lib/libncursesw.so.5.9
[root@statquant-laptop lib]# ll /usr/lib64/libncurs*
-rw-r--r--. 1 root root 330362 Jun 17  2015 /usr/lib64/libncurses.a
-rw-r--r--. 1 root root 183214 Jun 17  2015 /usr/lib64/libncurses++.a
-rw-r--r--. 1 root root 473398 Jun 17  2015 /usr/lib64/libncurses_g.a
-rw-r--r--. 1 root root 183214 Jun 17  2015 /usr/lib64/libncurses++_g.a
-rw-r--r--. 1 root root     31 Jun 17  2015 /usr/lib64/libncurses.so
lrwxrwxrwx. 1 root root     17 Jun 17  2015 /usr/lib64/libncurses++.so -> libncurses++.so.5
lrwxrwxrwx. 1 root root     17 Jun 17  2015 /usr/lib64/libncurses.so.5 -> libncurses.so.5.9
lrwxrwxrwx. 1 root root     19 Jun 17  2015 /usr/lib64/libncurses++.so.5 -> libncurses++.so.5.9
-rwxr-xr-x. 1 root root 155056 Jun 17  2015 /usr/lib64/libncurses.so.5.9
-rwxr-xr-x. 1 root root  76968 Jun 17  2015 /usr/lib64/libncurses++.so.5.9
-rw-r--r--. 1 root root 183214 Jun 17  2015 /usr/lib64/libncurses++w.a
-rw-r--r--. 1 root root 433400 Jun 17  2015 /usr/lib64/libncursesw.a
-rw-r--r--. 1 root root 183214 Jun 17  2015 /usr/lib64/libncurses++w_g.a
-rw-r--r--. 1 root root 593812 Jun 17  2015 /usr/lib64/libncursesw_g.a
lrwxrwxrwx. 1 root root     18 Jun 17  2015 /usr/lib64/libncurses++w.so -> libncurses++w.so.5
-rw-r--r--. 1 root root     32 Jun 17  2015 /usr/lib64/libncursesw.so
lrwxrwxrwx. 1 root root     20 Jun 17  2015 /usr/lib64/libncurses++w.so.5 -> libncurses++w.so.5.9
lrwxrwxrwx. 1 root root     18 Jun 17  2015 /usr/lib64/libncursesw.so.5 -> libncursesw.so.5.9
-rwxr-xr-x. 1 root root  76968 Jun 17  2015 /usr/lib64/libncurses++w.so.5.9
-rwxr-xr-x. 1 root root 208400 Jun 17  2015 /usr/lib64/libncursesw.so.5.9

When I run ./configure:

./configure --with-features=huge \
            --enable-fail-if-missing \
            --enable-luainterp=yes \
            --enable-mzschemeinterp \
            --enable-perlinterp \
            --enable-pythoninterp=yes \
            --with-python-config-dir=/usr/lib64/python2.7/config \
            --enable-python3interp=yes \
            --enable-tclinterp=yes \
            --enable-rubyinterp=yes \
            --enable-cscope \
            --enable-multibyte \
            --enable-gui=gtk2 \
            --prefix=$HOME/Build/vim

I get

checking for tgetent in -lcurses... no
no terminal library found
checking for tgetent()... configure: error: NOT FOUND!
      You need to install a terminal library; for example ncurses.
      Or specify the name of the library with --with-tlib.

What can I do ?

statquant
  • 13,672
  • 21
  • 91
  • 162

2 Answers2

15

I ran into the same issue on Fedora23. Here is my solution:

  1. make sure you have ncurses-devel installed
  2. CFLAGS=-fPIC ./configure --with-tlib=ncurses and your_options

I checked the config.log and found that gcc complained the lack of '-fPIC'

John Chain
  • 658
  • 4
  • 9
  • It worked but now I cannot `make install` though I guess the question is answered – statquant Jan 24 '16 at 11:10
  • I installed `ncurses-devel` and my problem was solved. – alhelal May 13 '17 at 08:41
  • # yum install ncurses-devel Loaded plugins: priorities, update-motd, upgrade-helper Package ncurses-devel-5.7-4.20090207.14.amzn1.x86_64 already installed and latest version Nothing to do........still getting error : # make gcc -fPIC -I/usr/local/include -Wall -DOMNITTY_VERSION=\"0.3.0\" -o omnitty minibuf.o machine.o menu.o machmgr.o help.o main.o curutil.o -L/usr/local/lib -lrote /usr/bin/ld: menu.o: undefined reference to symbol 'delwin' /lib64/libncurses.so.5: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make: *** [omnitty] Error 1 – Ashish Karpe Oct 17 '17 at 11:56
1

You apparently do not have the development package for ncurses installed. On Fedora23, that would be ncurses-devel, e.g., ncurses-devel-5.9-21.20150214.fc23.x86_64

Without that, you have only the runtime libraries (which are required).

Once you have that, the configuration for vim 7.4 would show something like this:

checking --with-tlib argument... empty: automatic terminal library selection
checking for tgetent in -ltinfo... yes
checking whether we talk terminfo... yes
checking what tgetent() returns for an unknown terminal... zero
checking whether termcap.h contains ospeed... yes
checking whether termcap.h contains UP, BC and PC... yes
checking whether tputs() uses outfuntype... no

Further reading:

Thomas Dickey
  • 51,086
  • 7
  • 70
  • 105
  • Have you checked that I did dnf install ncurses-devel? – statquant Jan 09 '16 at 17:28
  • I see - but you did not mention which version of vim you are attempting to build, nor did you mention what src/auto/config.log says about your configuration. Nor did you show the results for the development package, but only listed part of the runtime. The configure script will need the libtinfo.so for vim - not libncurses.so – Thomas Dickey Jan 09 '16 at 17:30