[Slackbuilds-users] OPTIONAL field [was: qemu/spice-gtk and usbredir]

Franzen slackbuilds at schoepfer.info
Tue Nov 8 00:13:03 UTC 2016

> This is why we have such a long thread.
> Everybody has a different idea of OPTIONAL in their own mind, that
> solves different problems.

So here is something like a draft, to make clear what and what for  the 
OPTIONAL= field could be, from my point of view.

=== OPTIONAL= field for .info files on SBo ===

== Purpose ==

It's all about dependencies at compiletime.
After REQUIRED, optional buildtime deps are the next thing
to know if one want to build a package utilizing SBo.
Similar to the REQUIRED field, these optional dependencies should be
rendered as links on https://slackbuilds.org, to make navigation to
the optional dependencies/READMEs more joyful.
Side effect, 3rd-party-tools may parse this new field as easy as the
required-field to improve automation.

== How to implement ==

The README stays as it is, as one still need to know
if the optional deps have to be enabled, or
if these are autodetected.
OPTIONAL= may contain nothing, or one, or more packages that have to 
exist on SBo.
Currently, About 15% of all READMEs/packages contain infos about 
optional packages,
these infos need to be added(most likely by hand, as the READMEs are 
hardly parseabel)
to the corresponding .info-file.
No further optional dependencies have to be researched.
Package maintainers have to keep track, that the new field has correct 
For new submissions, the new field is mandatory.

== example ==

# example for flowblade
OPTIONAL="swh-plugins calf jack-audio-connection-kit"
# website "Optional deps: swh-plugins, calf, jack-audio-connection-kit"

=== OPTIONAL= field for .info-files on SBo (Extended) ===

Like above, but with extended syntax, to give a better overview when 
packages get
a littler more complicated. Also invoking REQUIRED as it might benefit 
from the new syntax by forcing minimum features of the required dep:

== syntax ==

# package needs to be build against further optional package

# Optional package makes sense only in conjunction with another package

== example ==

# example spice-gtk # compiling against usbredir makes sense only when 
qemu enabled usbredir.
-> OPTIONAL="usbredir,qemu:usbredir libcacard phodav opus"
# website "Optional deps: usbredir and qemu built at least with 
usbredir, libcacard,  phodav, opus"

# example audacious-ffmpeg # have at least opus, celt and lame included 
in ffmpeg
-> REQUIRED="ffmpeg:opus,celt,lame"
# website "This requires: ffmpeg built at least with opus and celt and 

More information about the SlackBuilds-users mailing list