For number fields, strings are accepted and converted using tonumber().
Dependencies are represented in LuaRocks through strings with a package name followed by a comma-separated list of constraints. Each constraint consists of an operator and a version number. In this string format, version numbers are represented as naturally as possible, like they are used by upstream projects (e.g. "2.0beta3"). Internally, LuaRocks converts them to a purely numeric representation, allowing comparison following some common sense heuristics. The precise specification of the comparison criteria is the source code of the luarocks.deps module, but the test/test_deps.lua file included with LuaRocks provides some insights on what these criteria are.
Build back-ends indicate how to build a package. Fields of the build table other than build.type, build.platforms and build.install are specific to the given type.
This is a mode for packages distributing pure Lua or simple C modules. All pathnames used are relative to source.dir. The goal is to allow module authors to specify compilation of their C code in a clean, simple and portable way.
Indicates the package uses a Makefile.
Indicates the package uses CMake for building.
cmake -Dkey1=value1 -Dkey2=value2 ...
A simple backend called "command" is also provided, in which build commands are typed in directly in the rockspec file.
A null build back-end. Indicates that there is no build to perform.