buildworld without libncursesw

Brooks Davis brooks at freebsd.org
Wed Mar 4 15:51:39 UTC 2015


On Wed, Mar 04, 2015 at 10:47:44AM +1100, Dewayne Geraghty wrote:
> 
> On 4/03/2015 8:13 AM, Brooks Davis wrote:
> > On Tue, Mar 03, 2015 at 08:20:57PM +1100, Dewayne Geraghty wrote:
> >> Is there a preferred way to buildworld without libncursesw?
> >>
> >> When I add to /etc/src.conf
> >> WITHOUT_NCURSESW=yes
> >>
> >> I find that a buildworld fails due to missing libncursesw.*.
> >> So what uses libncurses?  These guys do
> >> /usr/bin/dialog
> >> /usr/bin/dpv
> >>  
> >> /usr/sbin/sade -> /usr/libexec/bsdinstall/partedit
> >> /usr/sbin/tzsetup
> >>
> >> Getting a little frustrated I modifed the Makefile:, so for example
> >> dialog (/usr/src/contrib/dialog)
> >>
> >> +.include <bsd.own.mk>
> >> +
> >> +.if ${MK_NCURSESW} == "no"
> >> +DPADD=         ${LIBDPV} ${LIBDIALOG} ${LIBFIGPAR} ${LIBNCURSES}
> >> ${LIBUTIL} ${LIBM}
> >> +LDADD=         -ldpv -ldialog -lfigpar -lncurses -lutil -lm
> >> +.else
> >>  DPADD=         ${LIBDPV} ${LIBDIALOG} ${LIBFIGPAR} ${LIBNCURSESW}
> >> ${LIBUTIL} ${LIBM}
> >>  LDADD=         -ldpv -ldialog -lfigpar -lncursesw -lutil -lm
> >> +.endif
> >>
> >> And checking
> >> # make -VMK_NCURSESW
> >> no
> >>
> >> I'm at a bit of a loss as to why these are proving difficult to build,
> >> or what I can do to get the desired outcome, ie no libncursesw.so*
> > I tried to make this work a while ago and it's not practical.  Instead,
> > we need to remove libncurses (or more likely replace it with a linker
> > script to cause libncursesw to be used.)
> >
> > It should be the case that nothing in the base system uses libncurses,
> > but it's all too likely that someone has broken that since I switched
> > the remaining bits over.
> >
> > -- Brooks
> Unfortunately I can't say which ones use libncurses as I've sprinkled
> things like this over anything that uses libncursesw
> 
> -DPADD= ${LIBDEVSTAT} ${LIBKVM} ${LIBGEOM} ${LIBBSDXML} ${LIBSBUF}
> ${LIBEDIT} ${LIBNCURSESW}
> -LDADD= -ldevstat -lkvm -lgeom -lbsdxml -lsbuf -ledit -lncursesw
> +DPADD= ${LIBDEVSTAT} ${LIBKVM} ${LIBGEOM} ${LIBBSDXML} ${LIBSBUF}
> ${LIBEDIT}
> +LDADD= -ldevstat -lkvm -lgeom -lbsdxml -lsbuf -ledit
> 
> +.include <bsd.own.mk>
> +
> +.if ${MK_NCURSESW} == "no"
> +DPADD+= ${LIBNCURSES}
> +LDADD+= -lncurses
> +.else
> +DPADD+= ${LIBNCURSESW}
> +LDADD+= -lncursesw
> +.endif
> +
> 
> and only the above 4 programs are more of a challenge.
> 
> Any consistency is a good thing, so honouring WITHOUT_NCURSESW should be
> the trigger.  This situation arose because I needed some things in
> /rescue and there was a conflict stuffing both libncurses and
> libncursesw into the /usr/src/rescue build, as you'd expect. :)

I'd forgotten I'd merged WITHOUT_NCURSESW to 10.  That was a mistake as
it turns out to be unmaintainable.  I removed it from head long ago and
it will not return.  Unless you want to fix it and keep fixing it as
things are merged from head we should either remove it or document it as
broken.

-- Brooks
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20150304/4973f8bf/attachment.sig>


More information about the freebsd-stable mailing list