Skip to content

Commit

Permalink
ncurses: only keep the version with widechar support
Browse files Browse the repository at this point in the history
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
  • Loading branch information
bapt committed Jan 5, 2021
1 parent 9fd96b4 commit 821aa63
Show file tree
Hide file tree
Showing 20 changed files with 87 additions and 180 deletions.
5 changes: 2 additions & 3 deletions Makefile.inc1
Original file line number Diff line number Diff line change
Expand Up @@ -2524,7 +2524,6 @@ _bt_clean= ${CLEANDIR}
${LOCAL_TOOL_DIRS} \
${_jevents} \
lib/ncurses/ncurses \
lib/ncurses/ncursesw \
${_rescue} \
${_share} \
usr.bin/awk \
Expand Down Expand Up @@ -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 \
Expand All @@ -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"
Expand Down
4 changes: 2 additions & 2 deletions Makefile.libcompat
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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} \
Expand Down
2 changes: 2 additions & 0 deletions ObsoleteFiles.inc
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 2 additions & 4 deletions lib/ncurses/Makefile
Original file line number Diff line number Diff line change
@@ -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>
11 changes: 1 addition & 10 deletions lib/ncurses/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
18 changes: 13 additions & 5 deletions lib/ncurses/form/Makefile
Original file line number Diff line number Diff line change
@@ -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= \
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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>
Expand Down
5 changes: 0 additions & 5 deletions lib/ncurses/formw/Makefile

This file was deleted.

17 changes: 0 additions & 17 deletions lib/ncurses/formw/Makefile.depend

This file was deleted.

18 changes: 13 additions & 5 deletions lib/ncurses/menu/Makefile
Original file line number Diff line number Diff line change
@@ -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= \
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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>
Expand Down
5 changes: 0 additions & 5 deletions lib/ncurses/menuw/Makefile

This file was deleted.

17 changes: 0 additions & 17 deletions lib/ncurses/menuw/Makefile.depend

This file was deleted.

71 changes: 31 additions & 40 deletions lib/ncurses/ncurses/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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=
Expand All @@ -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
Expand Down Expand Up @@ -242,7 +230,6 @@ SRCS+= \
lib_vidattr.c \
tty_update.c

.if defined(ENABLE_WIDEC)
.PATH: ${NCURSES_DIR}/ncurses/widechar
SRCS+= \
charable.c \
Expand All @@ -265,7 +252,6 @@ SRCS+= \
lib_vline_set.c \
lib_wacs.c \
lib_wunctrl.c
.endif

.PATH: ${NCURSES_DIR}/ncurses/trace
SRCS+= \
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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 $@

Expand Down Expand Up @@ -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 \
Expand Down Expand Up @@ -585,7 +580,6 @@ MAN+= \

MAN+= term.5 terminfo.5 scr_dump.5 user_caps.5
MAN+= term.7
.endif

CLEANFILES+= ${MAN:M*.3}

Expand Down Expand Up @@ -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 \
Expand Down Expand Up @@ -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>

Expand Down
Loading

0 comments on commit 821aa63

Please sign in to comment.