portmaster: make config-conditonal ?

B Briggs rcbdyndns at bellsouth.net
Tue Sep 5 20:40:48 UTC 2006

Doug Barton wrote:
> B Briggs wrote:
>> Rene Ladan wrote:
>>> Hi,
>>> what about the idea of using 'make config-conditional' instead of 'make
>>> config' in portmaster to configure ports?  This way
>>> /var/db/ports/*/options is respected.
>>> The downside is that you have to run 'make rmconfig' in order to
>>> reconfigure the port options.
>>> Regards,
>>> Rene
>> I second that emotion!
>> or possibly use config-conditional in -u unattended mode, and config
>> otherwise.
> The problem with doing that is that there is (what I consider to be) a bug
> in the OPTIONS framework where if you have an existing /var/db/ports/ file
> for that port, but the Makefile introduces a new option, config-conditional
> will not re-run config to allow you to twiddle the new option. I did
> extensive testing with the various combinations of targets before settling
> on the method I chose. Doing it the way I have is the only way to be
> absolutely sure that you can set each option, even if new ones are added.
> FWIW, I would really like to see the OPTIONS framework improved to handle
> this, and other bugs; since I would like to be able to do what you guys
> described here too. :)
> hth,
> Doug

Funny that you mentioned new OPTIONS. I've been running with 
config-conditional for a couple of days now, and since I haven't added 
anything new, I don't get any config menus any more. Which I like.

Perchance, I just looked at samba3, which was upgraded with my settings.

/var/db/ports/options/samba3 shows:
# This file is auto-generated by 'make config'.
# No user-servicable parts inside!
# Options for samba-3.0.23b,1

and make showconfig shows:
===> The following configuration options are available for samba-3.0.23c,1:
      LDAP=off "With LDAP support"
      ADS=off "With Active Directory support"
      CUPS=on "With CUPS printing support"
      WINBIND=off "With WinBIND support"
      ACL_SUPPORT=off "With ACL support"
      AIO_SUPPORT=off "With experimental AIO support"
      FAM_SUPPORT=off (default) "With File Alteration Monitor"
      SYSLOG=off "With Syslog support"
      QUOTAS=off "With Disk quota support"
      UTMP=on "With UTMP accounting support"
      MSDFS=off "With MSDFS support"
      SMBSH=off "With SMBSH wrapper for UNIX commands"
      PAM_SMBPASS=off "With PAM authentication against passdb backend(s)"
      EXP_MODULES=off "With experimental module(s)"
      POPT=on "With system-wide POPT library"
===> Use 'make config' to modify these settings

You can see the diff in version, and that FAM_SUPPORT has been added, 
defaulting to off, which never changed my config. Nonetheless, had the 
default been on, I might have installed a new port that I didn't want. 
Or, I might have missed one that I wanted to include here in config.

It seems to me that these can be reconciled, example, just regex MSDFS 
to a WITH or WITHOUT, if there are no changes in the KNOBS, then you 
could run make config-conditional, otherwise, force make-config. Or, 
just check for version information, if different, run make config 

I would be happy to try this if you want. Just let me know.

B Briggs

More information about the freebsd-ports mailing list