Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 Jan 2021 10:16:23 -0600
From:      Kyle Evans <kevans@freebsd.org>
Cc:        Gordon Bergling <gbe@freebsd.org>, Baptiste Daroussin <bapt@freebsd.org>,  src-committers <src-committers@freebsd.org>, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org
Subject:   Re: git: 821aa63a0940 - main - ncurses: only keep the version with widechar support
Message-ID:  <CACNAnaG%2BeS-Wh4FemjjaOe2EXm=mhDE3dYcZtgwRVbQ%2B%2BBwcuw@mail.gmail.com>
In-Reply-To: <CACNAnaHRzccHd87PxGwv-NW7O5ETnJ%2BVApHbQpaDB7iguQwuUg@mail.gmail.com>
References:  <202101051302.105D24lW041218@gitrepo.freebsd.org> <CACNAnaGpaKpjXGvx=CFBSM68by8NWgAjKoNwsDTBoi_CeBg7Wg@mail.gmail.com> <20210107135842.lji6ydbajmzxqiuq@ivaldir.net> <CACNAnaHjJJJnh-3imb_%2B2EwvFPXUgwXOjZBGn9suOFAauCucrw@mail.gmail.com> <X/h9jTJ592KQmHRE@lion.0xfce3.net> <CACNAnaGifNm7hdcBryDzFCnXbmRRDH6eM95no65ds=baESfiDA@mail.gmail.com> <X/iDMkWxlKh7I9LX@lion.0xfce3.net> <CACNAnaHRzccHd87PxGwv-NW7O5ETnJ%2BVApHbQpaDB7iguQwuUg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jan 8, 2021 at 10:15 AM Kyle Evans <kevans@freebsd.org> wrote:
>
> On Fri, Jan 8, 2021 at 10:07 AM Gordon Bergling <gbe@freebsd.org> wrote:
> >
> > On Fri, Jan 08, 2021 at 09:48:53AM -0600, Kyle Evans wrote:
> > > On Fri, Jan 8, 2021 at 9:43 AM Gordon Bergling <gbe@freebsd.org> wrote:
> > > > On Fri, Jan 08, 2021 at 09:21:01AM -0600, Kyle Evans wrote:
> > > > > On Thu, Jan 7, 2021 at 7:59 AM Baptiste Daroussin <bapt@freebsd.org> wrote:
> > > > > > On Thu, Jan 07, 2021 at 07:53:47AM -0600, Kyle Evans wrote:
> > > > > > > On Tue, Jan 5, 2021 at 7:02 AM Baptiste Daroussin <bapt@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@FreeBSD.org>
> > > > > > > > AuthorDate: 2021-01-04 16:29:40 +0000
> > > > > > > > Commit:     Baptiste Daroussin <bapt@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.
> > > > > >
> > > > > > Yes to everything you said ;)
> > > > >
> > > > > I see you committed the first part (thanks!) -- here's the second,
> > > > > that I can commit if it seems reasonable:
> > > > >
> > > > > commit 619c0de456029adacdc823a3320c8768c9a40786 (HEAD -> ncdep)
> > > > > Author: Kyle Evans <kevans@FreeBSD.org>
> > > > > Date:   Fri Jan 8 09:18:46 2021 -0600
> > > > >
> > > > >     build: add WITHOUT_CLEAN workaround for 821aa63a0940
> > > > >
> > > > >     The *w variants of ncurses directories went away, and the remaining names
> > > > >     build the widechar variants instead of non-widechar variants. As such, the
> > > > >     entire ncurses tree should be regenerated.
> > > > >
> > > > >     Key off of lib/ncurses/ncursesw being present and remove the whole ncurses
> > > > >     hierarchy if it is.
> > > > >
> > > > > diff --git a/tools/build/depend-cleanup.sh b/tools/build/depend-cleanup.sh
> > > > > index 0b3ff9bcc63..23bedee1ea2 100755
> > > > > --- a/tools/build/depend-cleanup.sh
> > > > > +++ b/tools/build/depend-cleanup.sh
> > > > > @@ -64,3 +64,9 @@ if [ -e "$OBJTOP"/sbin/pfctl/.depend.pf_ruleset.o ] && \
> > > > >         echo "Removing old pf_ruleset dependecy file"
> > > > >         rm -rf "$OBJTOP"/sbin/pfctl/.depend.pf_ruleset.o
> > > > >  fi
> > > > > +
> > > > > +# 20210108  821aa63a0940   non-widechar version of ncurses removed
> > > > > +if [ -e "$OBJTOP"/lib/ncurses/ncursesw ]; then
> > > > > +       echo "Removing stale ncurses objects"
> > > > > +       rm -rf "$OBJTOP"/lib/ncurses "$OBJTOP"/obj-lib32/lib/ncurses
> > > > > +fi
> > > >
> > > > Hi Kyle,
> > > >
> > > > thanks for the additional bugfix. It would be good to provide somewhere in
> > > > UPDATING some information about 'depend-cleanup.sh'. I use FreeBSD since
> > > > about 20 years, and even as a committer I had never heard something about
> > > > 'depend-cleanup.sh' before.
> > >
> > > Ah, this is an internal script that need not be known about for
> > > updating procedures. It gets run automatically for WITHOUT_CLEAN
> > > builds.
> >
> > Thanks for the info. Is this script executed within the scope of the commandline?
> > Speaking, I have NO_CLEAN=yes append to my build scripts, but I haven't made an
> > entry to src.conf.
> >
>
> I'm not sure I understand the question; it's executed as part of
> buildworld; specifically in "stage 2.1: cleaning up the object tree"

Well, where 2.1 would go between 1.2 and 2.2 or 2.3



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACNAnaG%2BeS-Wh4FemjjaOe2EXm=mhDE3dYcZtgwRVbQ%2B%2BBwcuw>