[Slackbuilds-users] OPTIONAL field [was: qemu/spice-gtk and usbredir]
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
these infos need to be added(most likely by hand, as the READMEs are
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
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
# website "This requires: ffmpeg built at least with opus and celt and
More information about the SlackBuilds-users