ports and interactivity

Bill Moran wmoran at collaborativefusion.com
Mon Mar 27 13:04:19 UTC 2006


On Sun, 26 Mar 2006 16:48:58 -0800
"Ian A. Tegebo" <yontege at rescomp.berkeley.edu> wrote:
> I'm interested in knowing several things:
> 
> 	1 When is a port interactive?
> 	2 Is there an easy way to determine the above?
> 	3 What are all the options for a given port?
> 
> After doing some reading, I understand that one can learn about options
> in Makefiles, running "make show-config", "make show-options", or some
> other idiosyncratic method that seems to vary from port to port.
> 
> In terms of question 1, there seems like there should be a
> "IS_INTERACTIVE" variable set in the Makefile but in the example of
> shells/bash-completion, there is no such variable and yet I was 
> presented with what I imagine was "dialog" prompting me to choose
> between bash2 and the newer bash3 (default shells/bash).
> 
> I have a hidden agenda here.  I would like to be able to present
> portupgrade with a list of ports, preprocess all interactive ports
> before any actual building occurs, and then let portupgrade do its
> thing.  
> 
> Now, I could use the "BATCH" variable to at least process all
> ports that aren't interactive but that hardly seems cool when there
> could be dependencies that are interactive (which would show up when I
> pass -rRn to portupgrade).
> 
> I've also taken a cursory look at portmanager and portmaster but neither
> seem to fulfill my agenda.  It's not that I want to simply achieve
> automation, I want to do all the human work of evaluating options and
> making decisions up front (without all the tedious work of poking around in 
> Makefiles when there are already nice things like those dialog prompts).
> 
> Has anyone gone down this road?  Does it not go anywhere?  Is there a
> better way to do this?  

All the interactive dialogs that I've seen store the result of your
choices in /var/db/ports.  As a result, you never see the dialog again
if you reinstall or upgrade the port.

You could establish a set of options on a scratch machine, then copy
the /var/db/ports directory to the new machines you are building.

Also, the portupgrade.conf file allows you to add command line options
for ports.  See the man page for details.

HTH.

-- 
Bill Moran
Collaborative Fusion Inc.


More information about the freebsd-questions mailing list