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.
Responsible Changed From-To: freebsd-ports-bugs->portmgr portmgr territory.
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
Responsible Changed From-To: portmgr->antoine Take, i will try to run it this week-end/beginning of next week
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
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
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
Can we MFC this? This allows many base utilities to work with unicode.