# Map interpreter to installation placement (and optionally
# the dependency relation required to obtain the interpreter)
#
# Entries in this file are generally used for versioned interpreters,
# but can also be used for unversioned ones (when there is no
# definition in scripts/interpreters).
# syntax:
#   <interpreter> => <path>, <regex>, <dependency-template>, <version-list>[, <dependency-relation>]
#
# <interpreter> is the "unversioned base name" of the interpreter.  It is computed by
# stripping any trailing dashes ("-"), digits ([0-9]) and dots (".").  As an example,
# the unversioned base name for:
#   python2.6 is python
#   guile-1.6 is guile
#
# NB: If the <interpreter> is not listed in scripts/interpreters, the unversioned
# ones are also looked up in this data file.  For cases where this is undesired,
# please use @SKIP_UNVERSIONED@ (as described below).
#
# <path> is the path in which the interpreter is installed (usually /usr/bin).
#
# <regex> is a regex for matching the full name of the interpreter *and* extracting
# the version of it.  It should have exactly one capture group, which captures the
# version.  If the regex does not match the interpreter or does not capture a version
# in the <version-list>, the entry is assumed not to apply to this interpreter.
# NB: The regex will be achored and must match the /entire/ interpreter with version.
#   (e.g. guile-([\d\.]*) is matched as m/^guile-([\d\.]*)$/)
#
# <dependency-template> is a dependency template that will generate the dependency
# relation from a version.  The token "$1" is replaced with the version of the
# interpreter.  The template cannot contain commas (and therefore can only contain
# predicates or "OR" relations).
#
# <version-list> is a space-separated list of known interpreter versions.  It is used
# both to generate the dependency relation for uses of the unversioned interpreter and
# (together with <regex>) for ensuring the entry applies to the interpreter.
#
# If <dependency-relation> is left out, its value is assumed to
# be the same as the interpreter itself (saves some typing).
#
# NB: <dependency-relation> can be one of the following magic values:
#   * @NO_DEFAULT_DEPS@
#     - The interpreter has no "unversioned" dependency package.  (See below)
#   * @SKIP_UNVERSIONED@
#     - Do not use this entry for unversioned interpreters.  The common usage case
#       for this is when the interpreter is also listed in scripts/interpreters.
#
# When used on a versioned interpreter, Lintian will check for a dependency satisfying
# the dependency generated by applying the version to the <dependency-template>.
# Example:
#   Interpreter pike7.6 and template "pike$1 | pike$1-core" will make Lintian check
#   for the dependency:
#      "pike7.6 | pike7.6-core"
#
# When used on an unversionde interpreter, Lintian will check for a dependency satisfying
# ANY of the versioned dependencies that can be generated from applying the versions from
# <version-list> to <dependency-template>.  Furthermore, also check for the dependency on
# the <dependency-relation> (assuming it is not one of the magic values).
# Example:
#   Interpreter guile, template guile-$1, version list 1.6 1.8 and the dependency relation
#   guile will make Lintian check for the dependency:
#       "guile | guile-1.6 | guile-1.8"
#
#   If the dependency relation had been @NO_DEFAULT_DEPS@, then the dependency check would
#   have been for:
#       "guile-1.6 | guile-1.8"
#
# Manually maintained table - please keep it sorted (by key)!
#


guile   => /usr/bin, guile-([\d.]+), guile-$1, 1.6 1.8,
jruby   => /usr/bin, jruby([\d.]+), jruby$1, 1.0 1.1 1.2
lua     => /usr/bin, lua([\d.]+), lua$1, 40 50 5.1
octave  => /usr/bin, octave([\d.]+), octave$1, 3.0 3.2
php     => /usr/bin, php(\d+), php$1-cli, 5, @NO_DEFAULT_DEPS@
pike    => /usr/bin, pike([\d.]+), pike$1 | pike$1-core, 7.6 7.8, @NO_DEFAULT_DEPS@
python  => /usr/bin, python([\d.]+), python$1 | python$1-minimal, 2.4 2.5 2.6, @SKIP_UNVERSIONED@
rackup  => /usr/bin, rackup([\d.]+), librack-ruby$1, 1.8 1.9, @NO_DEFAULT_DEPS@
ruby    => /usr/bin, ruby([\d.]+), ruby$1, 1.8 1.9, @SKIP_UNVERSIONED@
runghc  => /usr/bin, runghc(\d+), ghc$1, 6, ghc
scsh    => /usr/bin, scsh-([\d.]+), scsh-$1, 0.6
tclsh   => /usr/bin, tclsh([\d.]+), tcl$1, 8.3 8.4 8.5 8.6, tclsh | tcl
wish    => /usr/bin, wish([\d.]+), tk$1, 8.3 8.4 8.5 8.6, wish | tk

