From owner-freebsd-ports@FreeBSD.ORG Tue Aug 7 19:32:37 2012 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 99B21106568A for ; Tue, 7 Aug 2012 19:32:37 +0000 (UTC) (envelope-from jdc@koitsu.dyndns.org) Received: from qmta09.emeryville.ca.mail.comcast.net (qmta09.emeryville.ca.mail.comcast.net [76.96.30.96]) by mx1.freebsd.org (Postfix) with ESMTP id 7CFCB8FC08 for ; Tue, 7 Aug 2012 19:32:37 +0000 (UTC) Received: from omta10.emeryville.ca.mail.comcast.net ([76.96.30.28]) by qmta09.emeryville.ca.mail.comcast.net with comcast id jqtg1j0030cQ2SLA9vXXfC; Tue, 07 Aug 2012 19:31:31 +0000 Received: from koitsu.dyndns.org ([67.180.84.87]) by omta10.emeryville.ca.mail.comcast.net with comcast id jvWV1j00U1t3BNj8WvWV13; Tue, 07 Aug 2012 19:30:29 +0000 Received: by icarus.home.lan (Postfix, from userid 1000) id 4EEF773A31; Tue, 7 Aug 2012 12:30:29 -0700 (PDT) Date: Tue, 7 Aug 2012 12:30:29 -0700 From: Jeremy Chadwick To: freebsd-ports Message-ID: <20120807193029.GA26868@icarus.home.lan> References: <20120806160425.GA23270@icarus.home.lan> <502161C6.70801@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <502161C6.70801@FreeBSD.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: Subject: Re: Questions about/issues with new OPTIONS framework X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Aug 2012 19:32:37 -0000 On Tue, Aug 07, 2012 at 08:43:18PM +0200, Olli Hauer wrote: > On 2012-08-06 18:04, Jeremy Chadwick wrote: > > (Please keep me CC'd, as I'm not subscribed to the list) > > > > I've been trying to adapt my /etc/make.conf to make use of the new > > OPTIONS framework. I've run into some snags that I was hoping someone > > could help me with, as I'm unable to find any "official" documentation > > other than these two documents, which don't help me in this case: > > > > http://wiki.freebsd.org/Ports/Options/OptionsNG > > http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/makefile-options.html > > > > Below are my questions so far. Note that these questions are all > > preceded by a key fact: /var/db/ports/* is completely empty. Keep that > > in mind please. > > > > 1. databases/mysql55-server and databases/mysql55-client both ask for > > the same variables (OPENSSL and FASTMTX). I want FASTMTX to be enabled > > by default for both ports. > > > > When I have the following in /etc/make.conf: > > > > mysql_SET= FASTMTX > > > > Doing "make config" in databases/mysql55-server shows FASTMTX as checked > > (which is correct). However, when I do the exact same procedure in > > databases/mysql55-client, FASTMTX is not checked. > > > > I am aware that databases/mysql55-client is a slave port, but I'm not > > sure how/why that would matter...? > > > > What am I doing wrong, or is this a port bug which needs to be fixed by > > the maintainer? > > > > 2. ports/KNOBS is very explicit in stating, and even visually > ... > > 2) alredy answerd ... > > answer for question 1) > > $> cd mysql55-client && make -V UNIQUENAME > or > $> make -V UNIQUENAME -C /usr/ports/databases/mysql55-client/ > mysql55-client So it's based off of UNIQUENAME? That's interesting. The ""documentation"" implies that the name of the variable itself should be the {nameofport}_SET or {nameofport}_UNSET, where {nameofport} should equal the name of the actual port directory you're in. Yet, take a look at this: root@icarus:/usr/ports/devel/apr0 # make -V UNIQUENAME apr root@icarus:/usr/ports/devel/apr1 # make -V UNIQUENAME apr root@icarus:/usr/ports/devel/apr2 # make -V UNIQUENAME apr Another one where the names are consistent (mtr-nox11 is a stub/slave port): root@icarus:/usr/ports/net/mtr # make -V UNIQUENAME mtr root@icarus:/usr/ports/net/mtr-nox11 # make -V UNIQUENAME mtr All of these consistently use the same UNIQUENAME. To me that seems like the Right Choice(tm), but then there's this: root@icarus:/usr/ports/databases/mysql55-server # make -V UNIQUENAME mysql root@icarus:/usr/ports/databases/mysql55-client # make -V UNIQUENAME mysql55-client I would imagine these should return the same thing (e.g. mysql55-client should have a UNIQUENAME of mysql, or alternately mysql55-server should have a UNIQUENAME of mysql55-server). ...while for other ports, it does seem to be based off of the port name itself. Examples ports include apache22-itk-mpm, p5-DBD-mysql, p5-libwww, and so on. How are users supposed to know what the name of the variable is they should be setting in make.conf? There doesn't even appear to be a "make show-xxx" command to help people out with this. Trial and error seems to be the only way to figure it out, and that's time-consuming. Luckily this is my home system where I only have 81 ports installed, and only a handful require adjustments, but you can see my point? > make.conf entry constructed from UNIQUENAME > mysql55-client_SET+= FASTMTX > > Please note the '+=' instead '='. > If you have a port where you set more then on option but not as one expression > all ${UNIQUENAME}_SET+= are applied else only the last entry in make.conf. I don't quite understand your last paragraph (maybe a language barrier; I say that politely, not insultingly). Can you rephrase for me? Also how does OPTIONS_SET and OPTIONS_UNSET (talking about the "global" variables) fit into this? Next: the ""documentation"" does not state to use '+=' on these entries in make.conf, it says to use '=': http://wiki.freebsd.org/Ports/Options/OptionsNG See, for example, the OPTIONS_SET and OPTIONS_UNSET examples, in addition to the zsh_SET and zsh_UNSET examples on that web page. There's nothing about any of this framework in make.conf(5) either. This is frustrating. There isn't even anything in ports/UPDATING about any of this, so what am I supposed to go off of? :-( > Additional if you have done `make config' already, then your make.conf entry > is useless since with options NG the OPTIONSFILE has now a higher priority. Absolutely -- and this is why I outlined (for my case anyway) that /var/db/ports was empty prior to me doing my tests. I'm well-aware of the options file and how it takes precedence. :-) -- | Jeremy Chadwick jdc@koitsu.org | | UNIX Systems Administrator http://jdc.koitsu.org/ | | Mountain View, CA, US | | Making life hard for others since 1977. PGP 4BD6C0CB |