Bug 189842 - [exp-run] use only libncursesw
Summary: [exp-run] use only libncursesw
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Brooks Davis
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-05-15 21:40 UTC by Brooks Davis
Modified: 2015-04-07 02:44 UTC (History)
1 user (show)

See Also:


Attachments
file.diff (18.97 KB, patch)
2014-05-15 21:40 UTC, Brooks Davis
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Brooks Davis freebsd_committer 2014-05-15 21:40:00 UTC
The attached patch changes all the consumers of libncurses/libtermcap
to use libncursesw/libtermcapw.

In addition to applying this patch, it would be helpful if the script at

http://people.freebsd.org/~brooks/stuff/check-ncurses.sh

was integrated into the developer checks.  It checks if any of it's
arguments are linked against both libncurses and libncursesw as that's not
expected to work reliably.  If any files are doubly linked it returns 1.
Comment 1 Po-Chuan Hsieh freebsd_committer 2014-05-16 11:09:13 UTC
Responsible Changed
From-To: freebsd-ports-bugs->portmgr

portmgr territory.
Comment 2 Antoine Brodin freebsd_committer 2014-05-23 13:51:01 UTC
Hi Brooks,

We will run the exp-run when ports are buildable on head again
(currently there are a few share/mk problems)
Could the exp-run be on stable/10 instead?
Also I checked on my server for ports linking both ncurses and
ncursesw (without your patch applied) and found this:
/usr/local/lib/ruby/1.9/amd64-freebsd10/curses.so
Is it harmless/false positive?

Cheers,

Antoine
Comment 3 Antoine Brodin freebsd_committer 2014-05-23 22:08:33 UTC
Responsible Changed
From-To: portmgr->antoine

Take, i will try to run it this week-end/beginning of next week
Comment 4 Antoine Brodin freebsd_committer 2014-05-24 16:03:12 UTC
Hi Brooks,

Another question,  on head the linker no longer records the needed
library recursively.
So the QA check may miss some problems?

Cheers,

Antoine
Comment 5 Antoine Brodin freebsd_committer 2014-05-27 16:51:51 UTC
Responsible Changed
From-To: antoine->brooks

Important note: the check doesn't catch indirect linkage (via libreadline for instance), so the problems may have been missed. 


New ports failures: None 


Ports linking against both ncurses and ncursesw: 

lang/ruby19: 
/usr/local/lib/ruby/1.9/amd64-freebsd11/curses.so 
Note: it was already the case without the patch 

textproc/hunspell: 
/usr/local/bin/hunspell 
Note: it was already the case without the patch 

ftp/proftpd: 
/usr/local/bin/ftptop 
Note: it was already the case without the patch 

lang/ruby20: 
/usr/local/lib/ruby/2.0/amd64-freebsd11/curses.so 
Note: it was already the case without the patch 

sysutils/testdisk: 
/usr/local/bin/testdisk 
/usr/local/bin/photorec 
Note: it was already the case without the patch
Comment 6 commit-hook freebsd_committer 2014-07-17 18:25:34 UTC
A commit references this bug:

Author: brooks
Date: Thu Jul 17 18:24:43 UTC 2014
New revision: 268804
URL: http://svnweb.freebsd.org/changeset/base/268804

Log:
  Replace all uses of libncurses and libtermcap with their wide character
  variants.  This allows usable file system images (i.e. those with both a
  shell and an editor) to be created with only one copy of the curses library.

  Exp-run:	antoine
  PR:		189842
  Discussed with:	bapt
  Sponsored by:	DARPA, AFRL

Changes:
  head/bin/csh/Makefile
  head/bin/ls/Makefile
  head/bin/sh/Makefile
  head/games/grdc/Makefile
  head/gnu/lib/libreadline/readline/Makefile
  head/gnu/usr.bin/gdb/gdb/Makefile
  head/gnu/usr.bin/gdb/gdbtui/Makefile
  head/gnu/usr.bin/gdb/kgdb/Makefile
  head/gnu/usr.bin/texinfo/info/Makefile
  head/kerberos5/usr.bin/kadmin/Makefile
  head/lib/libedit/Makefile
  head/libexec/telnetd/Makefile
  head/rescue/rescue/Makefile
  head/sbin/fsdb/Makefile
  head/sbin/gvinum/Makefile
  head/secure/usr.bin/sftp/Makefile
  head/tools/bsdbox/Makefile
  head/tools/tools/net80211/stumbler/Makefile
  head/usr.bin/clang/clang.prog.mk
  head/usr.bin/ee/Makefile
  head/usr.bin/ftp/Makefile
  head/usr.bin/less/Makefile
  head/usr.bin/msgs/Makefile
  head/usr.bin/ncal/Makefile
  head/usr.bin/tabs/Makefile
  head/usr.bin/telnet/Makefile
  head/usr.bin/tftp/Makefile
  head/usr.bin/tput/Makefile
  head/usr.bin/tset/Makefile
  head/usr.bin/ul/Makefile
  head/usr.bin/units/Makefile
  head/usr.bin/vi/Makefile
  head/usr.sbin/cdcontrol/Makefile
  head/usr.sbin/lpr/lpc/Makefile
  head/usr.sbin/ngctl/Makefile
  head/usr.sbin/ntp/ntpdc/Makefile
  head/usr.sbin/ntp/ntpq/Makefile
  head/usr.sbin/pmcstat/Makefile
  head/usr.sbin/pppctl/Makefile
  head/usr.sbin/watch/Makefile
  head/usr.sbin/wpa/wpa_cli/Makefile
Comment 7 Dmitry Marakasov freebsd_committer 2015-04-07 02:44:03 UTC
Can we MFC this? This allows many base utilities to work with unicode.