From owner-freebsd-stable@FreeBSD.ORG Tue Mar 3 23:49:14 2015 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 601EC407; Tue, 3 Mar 2015 23:49:14 +0000 (UTC) Received: from hermes.heuristicsystems.com.au (hermes.heuristicsystems.com.au [203.41.22.115]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "hermes.heuristicsystems.com.au", Issuer "Heuristic Systems Type 4 Host CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id C1B03DCF; Tue, 3 Mar 2015 23:49:13 +0000 (UTC) Received: from [10.0.5.3] (ewsw01.hs [10.0.5.3]) (authenticated bits=0) by hermes.heuristicsystems.com.au (8.14.5/8.13.6) with ESMTP id t23Nm9D9012635 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Wed, 4 Mar 2015 10:48:15 +1100 (EST) (envelope-from dewayne.geraghty@heuristicsystems.com.au) Message-ID: <54F64820.5000509@heuristicsystems.com.au> Date: Wed, 04 Mar 2015 10:47:44 +1100 From: Dewayne Geraghty User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: Brooks Davis Subject: Re: buildworld without libncursesw References: <54F57CF9.8000704@heuristicsystems.com.au> <20150303211359.GA10621@spindle.one-eyed-alien.net> In-Reply-To: <20150303211359.GA10621@spindle.one-eyed-alien.net> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Cc: FreeBSD Stable Mailing List X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Mar 2015 23:49:14 -0000 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 >> + >> +.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 + +.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.”