Date: Wed, 04 Mar 2015 10:47:44 +1100 From: Dewayne Geraghty <dewayne.geraghty@heuristicsystems.com.au> To: Brooks Davis <brooks@freebsd.org> Cc: FreeBSD Stable Mailing List <freebsd-stable@freebsd.org> Subject: Re: buildworld without libncursesw Message-ID: <54F64820.5000509@heuristicsystems.com.au> In-Reply-To: <20150303211359.GA10621@spindle.one-eyed-alien.net> References: <54F57CF9.8000704@heuristicsystems.com.au> <20150303211359.GA10621@spindle.one-eyed-alien.net>
next in thread | previous in thread | raw e-mail | index | archive | help
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. :) Regards, Dewayne. -- For the talkers: “The superior man acts before he speaks, and afterwards speaks according to his action.” For everyone else: “Life is really simple, but we insist on making it complicated.”
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54F64820.5000509>