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.?