From owner-freebsd-current@freebsd.org Tue Feb 25 09:28:10 2020 Return-Path: Delivered-To: freebsd-current@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 84257255C5F for ; Tue, 25 Feb 2020 09:28:10 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48RYWZ0Pssz4Chd; Tue, 25 Feb 2020 09:28:10 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from ivaldir.etoilebsd.net (etoilebsd.net [178.32.217.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: bapt) by smtp.freebsd.org (Postfix) with ESMTPSA id CF23D2CE40; Tue, 25 Feb 2020 09:28:09 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: by ivaldir.etoilebsd.net (Postfix, from userid 1001) id 0FDE4EBDB9; Tue, 25 Feb 2020 10:27:37 +0100 (CET) Date: Tue, 25 Feb 2020 10:27:37 +0100 From: Baptiste Daroussin To: Thomas Dickey Cc: Yasuhiro KIMURA , freebsd-current@freebsd.org Subject: Re: r358062(ncurses) breaks installed ports, howto check? Message-ID: <20200225092737.sng6dqi64rqjm4sf@ivaldir.net> References: <20200224202021.65ca7f64@thor.intern.walstatt.dynvpn.de> <20200225.043711.677660873587364878.yasu@utahime.org> <20200224232530.2ehw6l4blvqkgbd4@prl-debianold-64.jexium-island.net> <20200224233516.z6ateiibdm4hk36s@prl-debianold-64.jexium-island.net> <20200225012803.7zem2qml7kpfnh53@prl-debianold-64.jexium-island.net> <20200225091956.kolhkmml7f4e3bup@prl-debianold-64.jexium-island.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="pm2dnyda3nr3mg5j" Content-Disposition: inline In-Reply-To: <20200225091956.kolhkmml7f4e3bup@prl-debianold-64.jexium-island.net> X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Feb 2020 09:28:10 -0000 --pm2dnyda3nr3mg5j Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Feb 25, 2020 at 04:19:56AM -0500, Thomas Dickey wrote: > On Mon, Feb 24, 2020 at 08:28:03PM -0500, Thomas Dickey wrote: > > 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" > > > > > Subject: r358062(ncurses) breaks installed ports, howto check? > > > > > Date: Mon, 24 Feb 2020 20:19:59 +0100 > > > > >=20 > > > > > > After r358062, many installed ports do not work anymore on seve= ral running systems (CURRENT). > > > > > > /usr/src/UPDATING states one should reinstall all ncurses depen= ding 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 sys= tem? > > > > >=20 > > > > > Check thread starting with following message. > > > > >=20 > > > > > https://lists.freebsd.org/pipermail/freebsd-ports/2020-February/1= 17710.html > > > >=20 > > > > That's a start, but it gives an overly-broad approach, saying that > > > > anything linked to the ncurses library has to be recompiled. > > > >=20 > > > > The ABI change is just to the (upper-level) curses interface. > > > > Most of the programs you'll have in ports use the (lower-level) ter= mcap > > > > or terminfo interfaces. > > > >=20 > > > > For example gettext uses terminfo (not curses). > > > >=20 > > > > Curses applications use initscr or newterm (nm helps). > > > > I have a script which uses nm to tell me which interface is used. > > > >=20 > > > > 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). > > > >=20 > > > > Here's an example of what it tells me > > > > (n5=3D=3Dncurses5, tc=3Dtermcap, ti=3Dterminfo): > > > >=20 > > > > ti bison > > > > n5*+ti captoinfo > > > > n5*+ti captoinfo6 > > > > n5*+ti clear > > > > n5*+ti clear6 > > > > n5+tc ded > > > > n5+ti dialog4ports > > >=20 > > > actually this one isn't one of mine (needs to be recompiled) > > >=20 > > > But for the rest - recompiling would be a waste of time. > >=20 > > ...that's just looking at /usr/local/bin. I see Millard's list > > includes /usr/local/lib. I have some of those: > >=20 > > 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 > >=20 > > that is, mesa-dri uses curses, but libedit and libreadline do not. > >=20 > > 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). >=20 > now... I discussed this briefly with the developer on the 20th of January. >=20 > ncurses can be configured/built to use the old binary interface (ABI 5), > but he ran into some problem doing that, and decided to use ABI 6. >=20 > At the time, I had supposed that cost would be contained by the system > builders, not considering the impact on users rebuilding ports. >=20 > Depending on where FreeBSD is along that path, it might be worth > revisiting, to see exactly why the build with ABI 5 did not work. >=20 I think we should anyway move on on ABI 6, which is why I didn't insist on = ABI 5 when I could not find the root cause of it not working. In the futur we will update ncurses on more regular basis, and ABI 6 is what everyone else is us= ing so probably what is the most tested. if I understand correctly upstream build system, staying on ABI 5 disable m= any features that are available in ABI 6. For those interested my current plan with ncurses is the following for free= bsd 13.0: - split terminfo from ncurses (like the upstream build system) so a futur c= hange in high level ABI will impact less consumers - only keep the widechar version of ncurses in base - add the pkgconf file in base to ease the ports tree. Again for people who don't want to rebuild everything compat12x package has= been created and can be used to have all binaries working. Best regards, Bapt --pm2dnyda3nr3mg5j Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEgOTj3suS2urGXVU3Y4mL3PG3PloFAl5U6IYACgkQY4mL3PG3 PloI3Q/+NNNfCPc9Fg6hHPMouM58+y80zCZRQPbf3Y5O75VnyrMAl9RdKgM8lh6G RF0w0VLuoBVy4Q5GNSa6QdLqNjaoIwo2RX4Qstb3Gu2hzt4c3a4Oc/lQgk0lyQ7l HxFk66tx4yfk0w9bdOBlJCGbLnPr3lC+GxTAlDDnsB0J1n2V5U5ekXRY0KDG6uFP OFd4HAKDec4Vut1zJrIziUMiISxh1eWUWccKnKjXzA566G1Qz7aGOTLjC5v+gl3V xfDAKqyF+SCu6xq0P0nvr9Q1PcDUkP80ruWBJsc9fvPaLKbzc34n5tQfG1drdD01 ryUbEwUxy4MnovDPr4/7ZwPYLoKHdPOpydY5HdYNpHPmVmHv4K8GhSDtBcN7NREE /YLkYYARvHQTwSLMyGqJarxGbDWTuKKcrCroLG/ocspf7YeneVoVO1dL0Z1SRs6T jhVmPr1YNp8OGJP9HZTGadM8nKpsN3xct4X2JHRKIXAe2PdTl/n187f45eYxl8uf qR9T6V4bx4cRBDR7MWYNQx7o4atpLnkOap3KSExZLGibJMVx7leJmrCn3mQjm3lC inMbOzvuN6SJqCXX8E0emo8hUgKw/Tmc4VIadKDubDbu5we5KMPmzuB/GQ/D1Tfc cbjxlMfgQvQ5c8A+f5ogif64RQ5vmpj+daRwz4WIEosjURGiGX4= =ZZuC -----END PGP SIGNATURE----- --pm2dnyda3nr3mg5j--