Skip site navigation (1)Skip section navigation (2)
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>