ncurses: only keep the version with widechar support

Only keep the widechar version of ncurses as libncursesw.so.9

Keep the old name to avoid breaking the ABI compatibility (the non
widechar version libncurses.so.9 is not binary compatible with
libncursesw.so.9) since all ports and base are already only linking
against the widechar version we can simply remove libncurses.so.9

Since the .9 version only lived in the dev branch and never ended in a
release, it is simply removed and not added to any binary compat
package.

Add symlinks to keep build time compatibility for anyone linking against
-lncurses
This commit is contained in:
Baptiste Daroussin 2021-01-04 17:29:40 +01:00
parent 9fd96b416c
commit 821aa63a09
20 changed files with 87 additions and 180 deletions

View File

@ -2524,7 +2524,6 @@ _bt_clean= ${CLEANDIR}
${LOCAL_TOOL_DIRS} \
${_jevents} \
lib/ncurses/ncurses \
lib/ncurses/ncursesw \
${_rescue} \
${_share} \
usr.bin/awk \
@ -2870,7 +2869,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1} \
lib/libkiconv lib/libkvm lib/liblzma lib/libmd lib/libnv \
lib/libzstd \
${_lib_casper} \
lib/ncurses/ncurses lib/ncurses/ncursesw \
lib/ncurses/ncurses \
lib/libopie lib/libpam/libpam ${_lib_libthr} \
${_lib_libradius} lib/libsbuf lib/libtacplus \
lib/libgeom \
@ -2891,7 +2890,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1} \
.if ${MK_DIALOG} != "no"
_prebuild_libs+= gnu/lib/libdialog
gnu/lib/libdialog__L: lib/msun__L lib/ncurses/ncursesw__L
gnu/lib/libdialog__L: lib/msun__L lib/ncurses/ncurses__L
.endif
.if ${MK_GOOGLETEST} != "no"

View File

@ -45,7 +45,7 @@ _LC_LIBDIRS.${MK_KERBEROS:tl}+= kerberos5/lib
_LC_INCDIRS= \
include \
lib/ncurses/ncursesw \
lib/ncurses/ncurses \
${_LC_LIBDIRS.yes}
.if ${MK_FILE} != "no"
@ -94,7 +94,7 @@ build${libcompat}: .PHONY
DIRPRFX=${_dir}/ ${_t}
.endfor
.endfor
.for _dir in lib/ncurses/ncurses lib/ncurses/ncursesw ${_libmagic} ${_jevents}
.for _dir in lib/ncurses/ncurses lib/ncurses/ncurses ${_libmagic} ${_jevents}
.for _t in ${_obj} build-tools
${_+_}cd ${.CURDIR}/${_dir}; \
WORLDTMP=${WORLDTMP} \

View File

@ -36,6 +36,8 @@
# xargs -n1 | sort | uniq -d;
# done
# 20210105: remove non widechar version of clang
OLD_LIBS+=lib/libncurses.so.9
# 20210103: new clang import which bumps version from 11.0.0 to 11.0.1.
OLD_FILES+=usr/lib/clang/11.0.0/include/cuda_wrappers/algorithm
OLD_FILES+=usr/lib/clang/11.0.0/include/cuda_wrappers/complex

View File

@ -1,13 +1,11 @@
# $FreeBSD$
SUBDIR= ncurses form menu panel \
ncursesw formw menuw panelw
SUBDIR= ncurses form menu panel
SUBDIR_PARALLEL=
.for subdir in ${SUBDIR:Nncurses*:N*w}
.for subdir in ${SUBDIR:Nncurses*}
SUBDIR_DEPEND_${subdir}= ncurses
SUBDIR_DEPEND_${subdir}w= ncursesw
.endfor
.include <bsd.subdir.mk>

View File

@ -4,20 +4,11 @@
NCURSES_DIR= ${SRCTOP}/contrib/ncurses
.if defined(ENABLE_WIDEC)
LIB_SUFFIX= w
CFLAGS+= -D_XOPEN_SOURCE_EXTENDED -DENABLE_WIDEC
NCURSES_CFG_H= ${.CURDIR:H}/ncurses/ncurses_cfg.h
.else
LIB_SUFFIX=
NCURSES_CFG_H= ${.CURDIR}/ncurses_cfg.h
.endif
CFLAGS+= -I.
.if exists(${.OBJDIR:H}/ncurses${LIB_SUFFIX})
CFLAGS+= -I${.OBJDIR:H}/ncurses${LIB_SUFFIX}
.endif
CFLAGS+= -I${.CURDIR:H}/ncurses${LIB_SUFFIX}
CFLAGS+= -I${.CURDIR:H}/ncurses
# for ${NCURSES_CFG_H}
CFLAGS+= -I${.CURDIR:H}/ncurses

View File

@ -1,10 +1,11 @@
# $FreeBSD$
.include <src.opts.mk>
.include "${.CURDIR:H}/config.mk"
SRCDIR= ${NCURSES_DIR}/form
LIB= form${LIB_SUFFIX}
LIB= formw
.PATH: ${SRCDIR}
SRCS= \
@ -54,9 +55,8 @@ CLEANFILES= ncurses_def.h
CFLAGS+= -I${SRCDIR}
CFLAGS+= -I${NCURSES_DIR}/menu
LIBADD+= ncurses${LIB_SUFFIX}
LIBADD+= ncursesw
.if defined(ENABLE_WIDEC)
INCS= form.h
.PATH: ${NCURSES_DIR}/man
@ -156,8 +156,16 @@ MLINKS= form_cursor.3 pos_form_cursor.3 \
form_win.3 scale_form.3 \
form_win.3 set_form_sub.3 \
form_win.3 set_form_win.3
.else
MAN=
# backward compat
.if ${MK_INSTALLLIB} != "no"
SYMLINKS+= libformw.a ${LIBDIR}/libform.a
.endif
.if !defined(NO_PIC)
SYMLINKS+= libformw.so ${LIBDIR}/libform.so
.endif
.if ${MK_PROFILE} != "no"
SYMLINKS+= libformw_p.a ${LIBDIR}/libform_p.a
.endif
.include <bsd.lib.mk>

View File

@ -1,5 +0,0 @@
# $FreeBSD$
ENABLE_WIDEC=
.include "${.CURDIR:H}/form/Makefile"

View File

@ -1,17 +0,0 @@
# $FreeBSD$
# Autogenerated - do NOT edit!
DIRDEPS = \
include \
include/xlocale \
lib/${CSU_DIR} \
lib/libc \
lib/libcompiler_rt \
lib/ncurses/ncursesw \
.include <dirdeps.mk>
.if ${DEP_RELDIR} == ${_DEP_RELDIR}
# local dependencies - needed for -jN in clean tree
.endif

View File

@ -1,10 +1,11 @@
# $FreeBSD$
.include <src.opts.mk>
.include "${.CURDIR:H}/config.mk"
SRCDIR= ${NCURSES_DIR}/menu
LIB= menu${LIB_SUFFIX}
LIB= menuw
.PATH: ${SRCDIR}
SRCS= \
@ -40,9 +41,8 @@ CLEANFILES= ncurses_def.h
CFLAGS+= -I${SRCDIR}
LIBADD+= ncurses${LIB_SUFFIX}
LIBADD+= ncursesw
.if defined(ENABLE_WIDEC)
INCS= menu.h eti.h
.PATH: ${NCURSES_DIR}/man
@ -128,8 +128,16 @@ MLINKS= menu_attributes.3 menu_back.3 \
mitem_value.3 item_value.3 \
mitem_value.3 set_item_value.3 \
mitem_visible.3 item_visible.3
.else
MAN=
# backward compat
.if ${MK_INSTALLLIB} != "no"
SYMLINKS+= libmenuw.a ${LIBDIR}/libmenu.a
.endif
.if !defined(NO_PIC)
SYMLINKS+= libmenuw.so ${LIBDIR}/libmenu.so
.endif
.if ${MK_PROFILE} != "no"
SYMLINKS+= libmenuw_p.a ${LIBDIR}/libmenu_p.a
.endif
.include <bsd.lib.mk>

View File

@ -1,5 +0,0 @@
# $FreeBSD$
ENABLE_WIDEC=
.include "${.CURDIR:H}/menu/Makefile"

View File

@ -1,17 +0,0 @@
# $FreeBSD$
# Autogenerated - do NOT edit!
DIRDEPS = \
include \
include/xlocale \
lib/${CSU_DIR} \
lib/libc \
lib/libcompiler_rt \
lib/ncurses/ncursesw \
.include <dirdeps.mk>
.if ${DEP_RELDIR} == ${_DEP_RELDIR}
# local dependencies - needed for -jN in clean tree
.endif

View File

@ -3,16 +3,11 @@
PACKAGE= clibs
SHLIBDIR?= /lib
.if !defined(ENABLE_WIDEC)
# Override any MAN= setting below..
MK_MAN=no
.endif
.include <src.opts.mk>
.include "${.CURDIR:H}/config.mk"
LIB= ncurses${LIB_SUFFIX}
LIB= ncursesw
SHLIB_MAJOR= 9
NO_LINT=
@ -22,17 +17,10 @@ NCURSES_MINOR!= egrep 'NCURSES_MINOR[ ]*=' ${NCURSES_DIR}/dist.mk | sed -e 's%^
NCURSES_PATCH!= egrep 'NCURSES_PATCH[ ]*=' ${NCURSES_DIR}/dist.mk | sed -e 's%^[^0-9]*%%'
# From autoconf (!)
.if defined(ENABLE_WIDEC)
NCURSES_CH_T= cchar_t
NCURSES_OK_WCHAR_T= 1
NEED_WCHAR_H= 1
NCURSES_EXT_COLORS= 1
.else
NCURSES_CH_T= chtype
NCURSES_OK_WCHAR_T=
NEED_WCHAR_H= 0
NCURSES_EXT_COLORS= 0
.endif
NCURSES_EXT_FUNCS= 1
NCURSES_CONST= const
NCURSES_INLINE= inline
@ -242,7 +230,6 @@ SRCS+= \
lib_vidattr.c \
tty_update.c
.if defined(ENABLE_WIDEC)
.PATH: ${NCURSES_DIR}/ncurses/widechar
SRCS+= \
charable.c \
@ -265,7 +252,6 @@ SRCS+= \
lib_vline_set.c \
lib_wacs.c \
lib_wunctrl.c
.endif
.PATH: ${NCURSES_DIR}/ncurses/trace
SRCS+= \
@ -298,42 +284,54 @@ HEADERS= curses.h term.h termcap.h unctrl.h
SRCHDRS= ncurses_dll.h
CLEANFILES+= ncurses_dll.h
.if defined(ENABLE_WIDEC)
INCS= ${HEADERS} ${SRCHDRS}
INCSLINKS= curses.h ${INCLUDEDIR}/ncurses.h
.endif
.if ${MK_INSTALLLIB} != "no"
SYMLINKS+= libncurses${LIB_SUFFIX}.a ${LIBDIR}/libcurses${LIB_SUFFIX}.a
SYMLINKS+= libncurses${LIB_SUFFIX}.a ${LIBDIR}/libtermcap${LIB_SUFFIX}.a
SYMLINKS+= libncurses${LIB_SUFFIX}.a ${LIBDIR}/libtermlib${LIB_SUFFIX}.a
SYMLINKS+= libncurses${LIB_SUFFIX}.a ${LIBDIR}/libtinfo${LIB_SUFFIX}.a
SYMLINKS+= libncursesw.a ${LIBDIR}/libcursesw.a
SYMLINKS+= libncursesw.a ${LIBDIR}/libtermcapw.a
SYMLINKS+= libncursesw.a ${LIBDIR}/libtermlibw.a
SYMLINKS+= libncursesw.a ${LIBDIR}/libtinfow.a
# backward compat
SYMLINKS+= libncursesw.a ${LIBDIR}/libncurses.a
SYMLINKS+= libncursesw.a ${LIBDIR}/libcurses.a
SYMLINKS+= libncursesw.a ${LIBDIR}/libtermcap.a
SYMLINKS+= libncursesw.a ${LIBDIR}/libtermlib.a
SYMLINKS+= libncursesw.a ${LIBDIR}/libtinfo.a
.endif
.if !defined(NO_PIC)
# no need for major at all, it's an ld-time redirection only
SYMLINKS+= libncurses${LIB_SUFFIX}.so ${LIBDIR}/libcurses${LIB_SUFFIX}.so
SYMLINKS+= libncurses${LIB_SUFFIX}.so ${LIBDIR}/libtermcap${LIB_SUFFIX}.so
SYMLINKS+= libncurses${LIB_SUFFIX}.so ${LIBDIR}/libtermlib${LIB_SUFFIX}.so
SYMLINKS+= libncurses${LIB_SUFFIX}.so ${LIBDIR}/libtinfo${LIB_SUFFIX}.so
SYMLINKS+= libncursesw.so ${LIBDIR}/libcursesw.so
SYMLINKS+= libncursesw.so ${LIBDIR}/libtermcapw.so
SYMLINKS+= libncursesw.so ${LIBDIR}/libtermlibw.so
SYMLINKS+= libncursesw.so ${LIBDIR}/libtinfow.so
# backward compat
SYMLINKS+= libncursesw.so ${LIBDIR}/libncurses.so
SYMLINKS+= libncursesw.so ${LIBDIR}/libcurses.so
SYMLINKS+= libncursesw.so ${LIBDIR}/libtermcap.so
SYMLINKS+= libncursesw.so ${LIBDIR}/libtermlib.so
SYMLINKS+= libncursesw.so ${LIBDIR}/libtinfo.so
.endif
.if ${MK_PROFILE} != "no"
SYMLINKS+= libncurses${LIB_SUFFIX}_p.a ${LIBDIR}/libcurses${LIB_SUFFIX}_p.a
SYMLINKS+= libncurses${LIB_SUFFIX}_p.a ${LIBDIR}/libtermcap${LIB_SUFFIX}_p.a
SYMLINKS+= libncurses${LIB_SUFFIX}_p.a ${LIBDIR}/libtermlib${LIB_SUFFIX}_p.a
SYMLINKS+= libncurses${LIB_SUFFIX}_p.a ${LIBDIR}/libtinfo${LIB_SUFFIX}_p.a
SYMLINKS+= libncursesw_p.a ${LIBDIR}/libcursesw_p.a
SYMLINKS+= libncursesw_p.a ${LIBDIR}/libtermcapw_p.a
SYMLINKS+= libncursesw_p.a ${LIBDIR}/libtermlibw_p.a
SYMLINKS+= libncursesw_p.a ${LIBDIR}/libtinfow_p.a
# backward compat
SYMLINKS+= libncursesw_p.a ${LIBDIR}/libncurses_p.a
SYMLINKS+= libncursesw_p.a ${LIBDIR}/libcurses_p.a
SYMLINKS+= libncursesw_p.a ${LIBDIR}/libtermcap_p.a
SYMLINKS+= libncursesw_p.a ${LIBDIR}/libtermlib_p.a
SYMLINKS+= libncursesw_p.a ${LIBDIR}/libtinfo_p.a
.endif
.if ${.CURDIR:T} == "ncursesw"
.if defined(ENABLE_WIDEC)
DOCSDIR= ${SHAREDIR}/doc/ncurses
DOCS= ncurses-intro.html hackguide.html
.endif
.if ${MK_HTML} != "no"
.PATH: ${NCURSES_DIR}/doc/html
FILESGROUPS= DOCS
.endif
.endif
# Generated source
.ORDER: names.c codes.c
@ -394,9 +392,7 @@ curses.h: curses.head MKkey_defs.sh Caps Caps-ncurses
cat curses.head > $@.new
AWK=${AWK} _POSIX2_VERSION=199209 sh ${NCURSES_DIR}/include/MKkey_defs.sh \
${NCURSES_DIR}/include/Caps ${NCURSES_DIR}/include/Caps-ncurses >> $@.new
.if defined(ENABLE_WIDEC)
cat ${NCURSES_DIR}/include/curses.wide >> $@.new
.endif
cat ${NCURSES_DIR}/include/curses.tail >> $@.new
mv -f $@.new $@
@ -505,7 +501,6 @@ terminfo.5: MKterminfo.sh terminfo.head Caps
CLEANFILES+= terminfo.5
.if defined(ENABLE_WIDEC)
.PATH: ${NCURSES_DIR}/man
MAN= \
curs_addch.3 \
@ -585,7 +580,6 @@ MAN+= \
MAN+= term.5 terminfo.5 scr_dump.5 user_caps.5
MAN+= term.7
.endif
CLEANFILES+= ${MAN:M*.3}
@ -1065,7 +1059,6 @@ MLINKS= ncurses.3 curses.3 \
resizeterm.3 is_term_resized.3 \
resizeterm.3 resize_term.3
.if defined(ENABLE_WIDEC)
MLINKS+=curs_add_wch.3 add_wch.3 \
curs_add_wch.3 echo_wchar.3 \
curs_add_wch.3 mvadd_wch.3 \
@ -1145,8 +1138,6 @@ MLINKS+=curs_add_wch.3 add_wch.3 \
curs_scanw.3 vw_scanw.3 \
curs_scanw.3 vwscanw.3 \
curs_scanw.3 wscanw.3
.endif
.include <bsd.lib.mk>

View File

@ -1,7 +0,0 @@
# $FreeBSD$
ENABLE_WIDEC=
.PATH: ${.CURDIR:H}/ncurses
.include "${.CURDIR:H}/ncurses/Makefile"

View File

@ -1,16 +0,0 @@
# $FreeBSD$
# Autogenerated - do NOT edit!
DIRDEPS = \
include \
include/xlocale \
lib/${CSU_DIR} \
lib/libc \
lib/libcompiler_rt \
.include <dirdeps.mk>
.if ${DEP_RELDIR} == ${_DEP_RELDIR}
# local dependencies - needed for -jN in clean tree
.endif

View File

@ -1,10 +1,11 @@
# $FreeBSD$
.include <src.opts.mk>
.include "${.CURDIR:H}/config.mk"
SRCDIR= ${NCURSES_DIR}/panel
LIB= panel${LIB_SUFFIX}
LIB= panelw
.PATH: ${SRCDIR}
SRCS= \
@ -29,10 +30,7 @@ CLEANFILES= ncurses_def.h
CFLAGS+= -I${SRCDIR}
LIBADD+= ncurses${LIB_SUFFIX}
.if defined(ENABLE_WIDEC)
INCS= panel.h
LIBADD+= ncursesw
# generate MAN
.PATH: ${NCURSES_DIR}/man
@ -56,10 +54,19 @@ MLINKS= panel.3 bottom_panel.3 \
panel.3 show_panel.3 \
panel.3 top_panel.3 \
panel.3 update_panels.3
.else
MAN=
# backward compat
.if ${MK_INSTALLLIB} != "no"
SYMLINKS+= libpanelw.a ${LIBDIR}/libpanel.a
.endif
.if !defined(NO_PIC)
SYMLINKS+= libpanelw.so ${LIBDIR}/libpanel.so
.endif
.if ${MK_PROFILE} != "no"
SYMLINKS+= libpanelw_p.a ${LIBDIR}/libpanel_p.a
.endif
INCS= panel.h
.include <bsd.lib.mk>
# Keep the .SUFFIXES line after the include of bsd.lib.mk

View File

@ -1,5 +0,0 @@
# $FreeBSD$
ENABLE_WIDEC=
.include "${.CURDIR:H}/panel/Makefile"

View File

@ -1,17 +0,0 @@
# $FreeBSD$
# Autogenerated - do NOT edit!
DIRDEPS = \
include \
include/xlocale \
lib/${CSU_DIR} \
lib/libc \
lib/libcompiler_rt \
lib/ncurses/ncursesw \
.include <dirdeps.mk>
.if ${DEP_RELDIR} == ${_DEP_RELDIR}
# local dependencies - needed for -jN in clean tree
.endif

View File

@ -144,7 +144,6 @@ _LIBRARIES= \
memstat \
mp \
mt \
ncurses \
ncursesw \
netgraph \
netmap \
@ -182,7 +181,6 @@ _LIBRARIES= \
supcplusplus \
sysdecode \
tacplus \
termcap \
termcapw \
tpool \
ufs \
@ -376,7 +374,6 @@ _DP_c+= ssp_nonshared
_DP_stats= sbuf pthread
_DP_stdthreads= pthread
_DP_tacplus= md
_DP_panel= ncurses
_DP_panelw= ncursesw
_DP_rpcsec_gss= gssapi
_DP_smb= kiconv
@ -663,14 +660,10 @@ LIBBSDXMLDIR= ${OBJTOP}/lib/libexpat
LIBKVMDIR= ${OBJTOP}/lib/libkvm
LIBPTHREADDIR= ${OBJTOP}/lib/libthr
LIBMDIR= ${OBJTOP}/lib/msun
LIBFORMDIR= ${OBJTOP}/lib/ncurses/form
LIBFORMLIBWDIR= ${OBJTOP}/lib/ncurses/formw
LIBMENUDIR= ${OBJTOP}/lib/ncurses/menu
LIBMENULIBWDIR= ${OBJTOP}/lib/ncurses/menuw
LIBNCURSESDIR= ${OBJTOP}/lib/ncurses/ncurses
LIBNCURSESWDIR= ${OBJTOP}/lib/ncurses/ncursesw
LIBPANELDIR= ${OBJTOP}/lib/ncurses/panel
LIBPANELWDIR= ${OBJTOP}/lib/ncurses/panelw
LIBFORMWDIR= ${OBJTOP}/lib/ncurses/form
LIBMENUWDIR= ${OBJTOP}/lib/ncurses/menu
LIBNCURSESWDIR= ${OBJTOP}/lib/ncurses/ncurses
LIBPANELWDIR= ${OBJTOP}/lib/ncurses/panel
LIBCRYPTODIR= ${OBJTOP}/secure/lib/libcrypto
LIBSPLDIR= ${OBJTOP}/cddl/lib/libspl
LIBSSHDIR= ${OBJTOP}/secure/lib/libssh
@ -679,7 +672,6 @@ LIBTEKENDIR= ${OBJTOP}/sys/teken/libteken
LIBEGACYDIR= ${OBJTOP}/tools/build
LIBLNDIR= ${OBJTOP}/usr.bin/lex/lib
LIBTERMCAPDIR= ${LIBNCURSESDIR}
LIBTERMCAPWDIR= ${LIBNCURSESWDIR}
# Default other library directories to lib/libNAME.

View File

@ -14,7 +14,7 @@ CRUNCH_ALIAS_tset= reset
CRUNCH_PROGS_usr.bin+= vmstat
#CRUNCH_PROGS_user.bin+= systat
CRUNCH_LIBS+= -ldevstat -lncursesw -lncurses -lmemstat -lkvm -lelf
CRUNCH_LIBS+= -ldevstat -lncursesw -lmemstat -lkvm -lelf
# CRUNCH_PROGS_usr.bin+= tar
CRUNCH_PROGS_usr.bin+= cpio

View File

@ -7,7 +7,7 @@ PROG= athratestats
SRCS= main.c opt_ah.h ah_osdep.h
LIBADD+= ncurses
LIBADD+= ncursesw
CLEANFILES+= opt_ah.h ah_osdep.h