Synth and circular dependencies

Don Lewis truckman at FreeBSD.org
Tue Aug 22 17:58:48 UTC 2017


On 22 Aug, Thomas Mueller wrote:
> from Jonathan Chen:
> 
>> On 22 August 2017 at 15:17, Thomas Mueller
>> <mueller6724 at bellsouth.net> wrote:
> [...]
>> > I really need to be able to see the options in a better way than
>> > the FreeBSD ports framework allows, like in a file /etc/mk.conf
>> > (pkgsrc) or USE= ... as in /etc/make.conf (Gentoo portage).
> 
>> > Dialog4ports is better than the previous dialog but not as good as
>> > seeing in a file mk.conf or make.conf .
> 
>> > Otherwise, I don't really know any elegant way to fix the options
>> > mess I got into.
>         
>> Any reason why don't you can't all your options into /etc/make.conf?
>> I've never used /var/db/ports options as they're not easy to review
>> in one go.
> 
> Going through /var/db/ports is a recipe for insanity.
> 
> from Don Lewis:
> 
>> It is possible to set the options for ports in /etc/make.conf.  That
>> is how I handle it would poudriere which looks for make.conf files in
>> /usr/local/etc/poudriere.d and can use make.conf files that are
>> specific to each jail, ports tree and ports set (poudriere -z option
>> to specify the latter).
> 
>> Specifying the options in make.conf also makes it easier to set
>> options globally for all all of the ports that you build so they are
>> consistent. For instance I specify these options globally:
> 
>> OPTIONS_SET=CUPS APPLET OPENBLAS OBLAS SZIP LETTER GUILE2 GSSAPI_NONE
>> KRB_NONE OPTIONS_UNSET=GUILE1 NETLIB REFERENCE GSSAPI_BASE KRB_BASE
>> KERBEROS
> 
>> Port-specific options can be set like this:
> 
>> graphics_gimp-help_SET=EN
>> graphics_gimp-help_UNSET=ALL
> 
>> Back when I still used portupgrade, I found that dialog4ports got to
>> be really frustrating.
> 
> What is the priority when /var/db/ports is present, which takes
> precedence?  Should I delete /var/db/ports or /var/db/ports/* ?

I suspect that /var/db/ports takes priority of options are set in both
places.  I'd delete it if you move your option settings to make.conf.

> The ports dialog prior to dialog4ports would always mess the screen
> whenever I made a log file with tee (just as bad with script). 
> Dialog4ports avoided messing the screen.
> 
> It was very disconcerting when I would do a massive portupgrade before
> going to bed and subsequently find portupgrade stopped for an options
> dialog.

I always ran "portupgrade -aFc" beforehand to set the options and also
fetch all the distfiles.  Some of the ports that I built had distfiles
that needed to be manually fetched and a fetch failure during the night
could also be devastating.  Even then there was one port that had its
own dialog (procmail?) that would sometimes wedge an overnight
portupgrade run.

> I believe Synth and poudriere have no means for setting options.  That
> should be enough impetus to make it easier to bypass the dialog4ports
> entirely.

The poudriere testport -c option runs make config to pop up the options
dialog.  It's handy for testing the port's options when doing
development.  The options settings aren't sticky, though.

> (NetBSD) pkgsrc has a file options.mk in each package entry where
> there are options.  One can run "make show-options" and "make
> show-depends-options" to see options for main package and
> dependencies.  I like it better than "make showconfig-recursive".
> 
> Now for FreeBSD 11.1-STABLE installation, I will have to redo the
> options into OPTIONS_SET, etc, and either delete /var/db/ports (a
> horrible mess now, so nothing to lose) or move it out of the way.
> 
> Another advantage of putting options in make.conf or mk.conf is that
> the file can be copied or edited from another FreeBSD or NetBSD
> installation.

Well, you could copy /var/db/ports over, but ...



More information about the freebsd-ports mailing list