[HEADSUP] dialog4ports does not popup anymore only for global options

Michael Gmelin freebsd at grem.de
Fri Jun 7 16:56:52 UTC 2013


On Fri, 7 Jun 2013 15:42:44 +0200
Baptiste Daroussin <bapt at FreeBSD.org> wrote:

> On Fri, Jun 07, 2013 at 03:30:15PM +0200, Tijl Coosemans wrote:
> > On 2013-06-07 13:40, Baptiste Daroussin wrote:
> > > On Fri, Jun 07, 2013 at 12:46:08PM +0200, Tijl Coosemans wrote:
> > >> On 2013-06-07 12:17, Baptiste Daroussin wrote:
> > >>> On Fri, Jun 07, 2013 at 01:15:49PM +0300, Vitaly Magerya wrote:
> > >>>> Baptiste Daroussin wrote:
> > >>>>>> Is it possible to still show the dialog if one of those
> > >>>>>> options implies additional dependencies?
> > >>>>>>
> > >>>>>> If not, what should those of us who do not want them
> > >>>>>> installed do?
> > >>>>>
> > >>>>> make config will always show those options so you can always
> > >>>>> tune them.
> > >>>>>
> > >>>>> just make config-conditional will not fireup a new dialog
> > >>>>> automatically if the defined options are only those from the
> > >>>>> global options.
> > >>>>
> > >>>> I see. As far as I can tell though, and correct me if I'm
> > >>>> wrong, but 'make install' doesn't show those options. It also
> > >>>> does not show those options for dependent ports. Neither does
> > >>>> 'make config-recursive'.
> > >>>>
> > >>>> Tools like portmaster will now ignore those as well during
> > >>>> install and reinstall.
> > >>>>
> > >>>> So, again, what are my options if I don't want dependencies to
> > >>>> be pulled in silently?
> > >>>
> > >>> You have no options and you never had one in the ports tree
> > >>> sorry.
> > >>>
> > >>> If you have a way to implement that cleanly, I'll be happy to
> > >>> push such features in the ports but really I see a way to do
> > >>> what you ask for.
> > >>
> > >> How about only suppressing the dialog if the options have been
> > >> explicitly set or unset in make.conf?
> > >
> > > That would be easy but is that a really desired feature?
> > 
> > I can only speak for myself, but I don't see DOCS as a global
> > option. For some ports I want documentation, for others I don't, so
> > I want the dialog to show up even if DOCS is the only option.
> > 
> > There doesn't seem to be a clear cut line between global and per
> > port options and different users have different opinions about it.
> > 
> > Can you make it such that config-conditional suppresses the dialog
> > if all options have been explicitly set or unset either through
> > command line, make.conf or optionsfile? Or in other words only show
> > the dialog if one of the options falls back to a default value (e.g.
> > when a new option has been added to a port and that option has not
> > been set globally).
> > 
> > I think that would allow anyone to set/unset any option globally and
> > not be bothered by dialogs without enforcing that view on everybody
> > else. You wouldn't need GLOBAL_OPTIONS any more then.
> > 
> 
> Ok so I misunderstood at first.
> 
> That looks not easy to do, and I'm a bit borred with hacking the
> options.
> 
> If someone do something in that direction, I'll be happy to review
> and help, but honnestly I don't plan to do it myself.
> 
> regads,
> Bapt

I can feel your pain, Bapt :)

Anyway, I think the problem with those options (especially DOCS) is that
they are not really "global" in that you want to set them for all
ports, but more like "general" as in well-known. So many ports provide
them and the user has a good idea what they're supposed to mean, but
ultimately you don't want to set them to the same value for all ports.

Regardless of implementation details I would like to see something like
the following at least for DOCS, either through config-recursive or -
maybe more likely - through a tool like portmaster:

After starting the build process and collecting dependencies, an ncurses
dialog should be shown that says "The following ports provide
documentation" and a check-box list showing all packages as well as a
"All" and "None" options on top of the list. That way the user can
easily select which port documentation to install and at the same time
can easily set it for all affected ports, e.g.

# portmaster shells/bash

+------ Install documentation -----+
+ [ ] All                          +
+ [X] None                         +     
+ [ ] converters/libiconv          +
+ [ ] devel/gettext                +
+ [ ] shells/bash                  +
+----------------------------------+
+      < OK >   < Cancel >         +
+----------------------------------+

I have no idea what it would take to implement this in a sane way
within the current framework, but IMHO this would provide a pretty good
user experience.

Cheers,
Michael

p.s. - If you wanted to provide this for more than one "general"
option, dialog4ports' section feature might become handy, e.g.:

+-------- General options ---------+
+ [ ] All                          +
+ [X] None                         +     
+ -------- Documentation ----------+
+ [ ] converters/libiconv          +
+ [ ] devel/gettext                +
+ [ ] shells/bash                  +
+ ---- Native Language Support ----+
+ [ ] devel/gettext                +
+ [ ] shells/bash                  +
+----------------------------------+
+      < OK >   < Cancel >         +
+----------------------------------+

-- 
Michael Gmelin


More information about the freebsd-ports mailing list