# Idea for Addition to the Ports System



## Ruler2112 (Apr 13, 2010)

I recently had confusion about the requirements for the new version of a port.  It turns out that it was caused by an option that was added since the last version, defaulted to on, and pulled in a couple other large ports as build dependencies.  This gave me an idea for something that would be very nice.  I've wished for something like this in the past, but have not been frustrated enough to bother writing a message about it until now.  I'd like to suggest an addition to the ports system.

Most software, when you are presented with a variety of options, allows you to get extended help for a given option.  This is usually done via an F-key, popping up a text window over the option, allowing you to scroll up and down reading about the option and what it does, then requiring you to press a certain key to close the popup window.  I've seen this in both GUI interfaces like X and non-GUI (text-based) interfaces very similar to the ports.  Heck, even the BIOS of most computers allows something like this, even if it's just a split off window to the side that expounds on the option, what it does, what ramifications it has, anything else that's required for it, etc.

I believe that something like this would be a great addition to the ports system.

Instead of being limited to a single short line of text, why not have an options file included with the port and define an F-key which, if pressed on an option line, would pop up a window like described above?  It could include text added by the port maintainer, the version of the port the option was added in (if known), and programmatically pull information about any additional dependencies that the option requires (probably using the same internal mechanism that the ports system itself uses).  All of this could then be displayed in a smaller pop-up window that you could scroll with the Page Up, Page Down, Home, End, or arrow keys; have Enter or Escape close the window and return to the list of options.  If no options file exists, or a section for the given option does not exist within the options file, a simple message saying that there is no detailed description available could be shown.  The dependency information pulled from (I think) the INDEX and/or Makefile files could still be shown.

Initially, there would be the work of adding the F-key binding and framework to display the information.  Also, the program to pull the dependency information would need to be done in short order, but if the code that already exists (used by [cmd=]make build-depends-list[/cmd] and [cmd=]make run-depends-list[/cmd]) can be reused as I suspect, this shouldn't take much.  (A crude way would be to write the config file with the option enabled and store the depends-list for build and run, then save the config file with the option disabled and do the same thing, then run diff on the files and display the results.  I'm certain that somebody with a knowledge of the inner workings of the system could whip up a far more elegant solution with relative ease.)  After that, the options files could be added to gradually.

Once the options files are built up over time to be relatively comprehensive, this would be a very convenient feature and of use to quite a few people IMO.  It would make getting a limited amount of additional information on a given option much faster, more convenient, and user friendly.



I'm interested in hearing the opinions of other people on this idea.


----------



## phoenix (Apr 13, 2010)

Search the archives of the freebsd-ports mailing list.  This comes up at least once a year.    However, no one has sat down to actually come up with a proof-of-concept.  Thus, the discussions always fizzle out and nothing happens.


----------



## Ruler2112 (Apr 13, 2010)

I found the archives and tried to search.  Every time I put something in the search box and hit search, I get the following:


```
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, www@freebsd.org and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
```

Somebody might want to look at it.




(Trying to learn from my last experience) could you suggest a keyword or phrase to look for?  I searched for 'help' using my browser's find feature in every archive from current back to the beginning of 2007 and found nothing related.

Depending on what the 'proof of concept' is and if I'm able, I'm willing to work on it.


----------



## aragon (Apr 13, 2010)

It's a nice idea which I've also seen come up before.  I think part of the problem might be the reliance on dialog(1) which doesn't provide such functionality.


----------

