ncurses update to 6.0

Richard W.M. Jones rjones at redhat.com
Tue Aug 18 22:38:08 UTC 2015


On Thu, Aug 13, 2015 at 04:35:00PM +0200, Miroslav Lichvar wrote:
> On Tue, Aug 04, 2015 at 12:33:42PM +0200, Miroslav Lichvar wrote:
> > As for updating the ncurses package, my current plan is to build the
> > libs in both ABIs (so there are four builds total with the wide and
> > narrow versions), use the ncurses-libs subpackage for the new ABI 6
> > libs and create a new subpackage for ABI 5 libs. What would be a good
> > name of the subpackage? ncurses-libs5, ncurses5-libs, compat-ncurses5,
> > or something else?
> 
> Ok, the new ncurses package is now in rawhide. The name of the ABI 5
> subpackage is ncurses-compat-libs.
> 
> I've also rebuilt the readline package to pick up the new libtinfo.
> Binaries that are linked with both readline and ncurses/libtinfo (e.g.
> gdb, bc, sqlite3) will now load both versions of libtinfo into memory,
> which I suspect could be a problem. I tried some of them and they
> don't seem to crash, but we might want to rebuild the packages to be
> safe anyway.
> 
> Here is a list of packages that seem to have binaries like that. I
> suspect a lot of them are linked with ncurses unnecessarily.
>
> libguestfs-tools-c-1.31.1-3.fc24: /usr/bin/guestfish

guestfish uses APIs from readline and libtinfo directly.  It does not
use ncurses APIs directly.

$ eu-readelf -d /usr/bin/guestfish | grep NEEDED
  NEEDED            Shared library: [libconfig.so.9]
  NEEDED            Shared library: [libreadline.so.6]
  NEEDED            Shared library: [libncurses.so.5]
  NEEDED            Shared library: [libtinfo.so.5]
  NEEDED            Shared library: [libguestfs.so.0]
  NEEDED            Shared library: [libxml2.so.2]
  NEEDED            Shared library: [libm.so.6]
  NEEDED            Shared library: [libgcc_s.so.1]
  NEEDED            Shared library: [libpthread.so.0]
  NEEDED            Shared library: [libc.so.6]

$ nm -D /usr/bin/guestfish | grep readline
                 U readline
00000000002fdb30 B rl_readline_name

$ nm -D /usr/bin/guestfish | grep tget
                 U tgetent
                 U tgetnum

So it is overlinked, but IIRC that's because you had to use
`-lreadline -lncurses' to make readline work properly on some old
systems.

Can we replace that with `-lreadline'?

Are there any implications for a program which actually uses
termcap/libtinfo functions also?

> ocaml-omake-0.9.8.6-0.rc1.fc24.20: /usr/bin/cvs_realclean
> ocaml-omake-0.9.8.6-0.rc1.fc24.20: /usr/bin/omake

Not sure about this one - it seems to use both readline and ncurses,
but it's quite a big complicated program.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW


More information about the devel mailing list