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