Re: r358062(ncurses) breaks installed ports, howto check?

From: Thomas Dickey <dickey_at_his.com>
Date: Mon, 24 Feb 2020 20:28:03 -0500
On Mon, Feb 24, 2020 at 06:35:16PM -0500, Thomas Dickey wrote:
> On Mon, Feb 24, 2020 at 06:25:30PM -0500, Thomas Dickey wrote:
> > On Tue, Feb 25, 2020 at 04:37:11AM +0900, Yasuhiro KIMURA wrote:
> > > From: "O. Hartmann" <ohartmann_at_walstatt.org>
> > > Subject: r358062(ncurses) breaks installed ports, howto check?
> > > Date: Mon, 24 Feb 2020 20:19:59 +0100
> > > 
> > > > After r358062, many installed ports do not work anymore on several running systems (CURRENT).
> > > > /usr/src/UPDATING states one should reinstall all ncurses depending ports, but no hint is
> > > > given! Can someone mitigate this lack of information? Is there a simple way to check what
> > > > ports installed on a system rely on ncurses provided by the system?
> > > 
> > > Check thread starting with following message.
> > > 
> > > https://lists.freebsd.org/pipermail/freebsd-ports/2020-February/117710.html
> > 
> > That's a start, but it gives an overly-broad approach, saying that
> > anything linked to the ncurses library has to be recompiled.
> > 
> > The ABI change is just to the (upper-level) curses interface.
> > Most of the programs you'll have in ports use the (lower-level) termcap
> > or terminfo interfaces.
> > 
> > For example gettext uses terminfo (not curses).
> > 
> > Curses applications use initscr or newterm (nm helps).
> > I have a script which uses nm to tell me which interface is used.
> > 
> > Actually, in my own ports, I don't see any which would be affected,
> > since all of the curses applications are the utilities for ncurses
> > (or for my testing of ncurses).
> > 
> > Here's an example of what it tells me
> > (n5==ncurses5, tc=termcap, ti=terminfo):
> > 
> > ti	bison
> > n5*+ti	captoinfo
> > n5*+ti	captoinfo6
> > n5*+ti	clear
> > n5*+ti	clear6
> > n5+tc	ded
> > n5+ti	dialog4ports
> 
> actually this one isn't one of mine (needs to be recompiled)
> 
> But for the rest - recompiling would be a waste of time.

...that's just looking at /usr/local/bin.  I see Millard's list
includes /usr/local/lib.  I have some of those:

c3+tc	libXvMCr600.so
tc	libedit.so
tc	libedit.so.0
ti	libgettextsrc.so
tc	libreadline.so
tc	libslang.so
ti	libtextstyle.so
c3+tc   libvulkan_radeon.so

that is, mesa-dri uses curses, but libedit and libreadline do not.

I have llvm80, but that doesn't live in either of /usr/local/bin
or /usr/local/lib.  It's in its own directory (with a script in
the former pointing there).  It uses curses (and is not a quick
recompile).

-- 
Thomas E. Dickey <dickey_at_invisible-island.net>
https://invisible-island.net
ftp://ftp.invisible-island.net

Received on Tue Feb 25 2020 - 00:28:07 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:23 UTC