git: 821aa63a0940 - main - ncurses: only keep the version with widechar support

Kyle Evans kevans at freebsd.org
Thu Jan 7 13:54:01 UTC 2021


On Tue, Jan 5, 2021 at 7:02 AM Baptiste Daroussin <bapt at freebsd.org> wrote:
>
> The branch main has been updated by bapt:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=821aa63a09402935da0a73abf20ba0441562aa07
>
> commit 821aa63a09402935da0a73abf20ba0441562aa07
> Author:     Baptiste Daroussin <bapt at FreeBSD.org>
> AuthorDate: 2021-01-04 16:29:40 +0000
> Commit:     Baptiste Daroussin <bapt at FreeBSD.org>
> CommitDate: 2021-01-05 13:01:32 +0000
>
>     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
> ---
>  Makefile.inc1                         |  5 +--
>  Makefile.libcompat                    |  4 +-
>  ObsoleteFiles.inc                     |  2 +
>  lib/ncurses/Makefile                  |  6 +--
>  lib/ncurses/config.mk                 | 11 +-----
>  lib/ncurses/form/Makefile             | 18 ++++++---
>  lib/ncurses/formw/Makefile            |  5 ---
>  lib/ncurses/formw/Makefile.depend     | 17 ---------
>  lib/ncurses/menu/Makefile             | 18 ++++++---
>  lib/ncurses/menuw/Makefile            |  5 ---
>  lib/ncurses/menuw/Makefile.depend     | 17 ---------
>  lib/ncurses/ncurses/Makefile          | 71 +++++++++++++++--------------------
>  lib/ncurses/ncursesw/Makefile         |  7 ----
>  lib/ncurses/ncursesw/Makefile.depend  | 16 --------
>  lib/ncurses/panel/Makefile            | 23 ++++++++----
>  lib/ncurses/panelw/Makefile           |  5 ---
>  lib/ncurses/panelw/Makefile.depend    | 17 ---------
>  share/mk/src.libnames.mk              | 16 ++------
>  tools/bsdbox/Makefile.base            |  2 +-
>  tools/tools/ath/athratestats/Makefile |  2 +-
>  20 files changed, 87 insertions(+), 180 deletions(-)
>
> diff --git a/Makefile.inc1 b/Makefile.inc1
> index fecdc1bdca71..a19fde9195cf 100644
> --- a/Makefile.inc1
> +++ b/Makefile.inc1
> @@ -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"
> diff --git a/Makefile.libcompat b/Makefile.libcompat
> index 3f23a33aa19b..85859a960d81 100644
> --- a/Makefile.libcompat
> +++ b/Makefile.libcompat
> @@ -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} \

The second occurence of lib/ncurses/ncurses should probably just go away?

> diff --git a/lib/ncurses/config.mk b/lib/ncurses/config.mk
> index d15be8601136..f199c5829b65 100644
> --- a/lib/ncurses/config.mk
> +++ b/lib/ncurses/config.mk
> @@ -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

Based on this we should really just nuke the entire ncurses dir for
older WITHOUT_CLEAN builds, because any objects in this objdir will
have been built without -DENABLE_WIDEC. Maybe just key it off of an
ncursesw directory existing in the objdir hierarchy and nuke it all in
depend-cleanup.

Thanks,

Kyle Evans


More information about the dev-commits-src-all mailing list