automating menu options in ports (and other ports build questions)

Gary Aitken freebsd at
Fri May 25 01:29:04 UTC 2012

1. When building a port, the system uses sysinstall to set options for 
the build.  How does one configure those options so make can be run 
unattended?  I didn't see anything in the ports documentation, but maybe 
I'm blind.  In particular, how does one configure a dependent port for 
the options you want whenever it is built as part of a higher-level build?

2. Do port builds deal with concurrency?
i.e. can I safely do a make install in two different ports subtrees 
I attempted this with gnome2-lite and firefox and ended up with the 
firefox build barfing on tests in shared-mime-info -- one of the tests 
failed because a directory already existed.  I had to deinstall and 
reinstall shared-mime-info and then restart the firefox make.  The two 
builds actually ended up in the less likely scenario of trying to build 
the same dependency at roughly the same time.

3. Do the package builds use the defaults set in the ports tree?  If 
not, how are the options for packages chosen, and how does one determine 
what the package options are?

4. Is there a discussion anywhere of whether or not one should turn on 
various optimizations?  If these aren't turned on by default, but are 
safe, why aren't they the default?  Is this a cross-platform build 
issue, and the default is to build for cross-platform?

5. It looks like the options which show up using sysinstall are from the 
OPTIONS variable in the Makefile.  Is there any convention for where to 
find out more about the option other than the often useless text hint 
provided in the menu?
   e.g. gvfs has an option called
          FUSE       Enable fuse
which doesn't say which of the several software systems called FUSE this 
refers to
   e.g.  OPENGL      Use OpenGL graphics
doesn't say much about why you would want to do that,
what the opengl option actually does, ramifications,
whether it will help only if your graphics card / driver supports it,
   Or is this a documentation project in the offing?



More information about the freebsd-questions mailing list