diff options
| author | Hisham Muhammad <hisham@gobolinux.org> | 2013-09-20 22:51:57 -0300 |
|---|---|---|
| committer | Hisham Muhammad <hisham@gobolinux.org> | 2013-09-20 22:51:57 -0300 |
| commit | 612024db9c963cb7d73eb35e26f81c4835b7c72b (patch) | |
| tree | 7f875c5928bcd2bba6e361989b63bea69088d607 /src | |
| parent | 2e999a15fa6de929cf7640054554844d27a20174 (diff) | |
| download | luarocks-612024db9c963cb7d73eb35e26f81c4835b7c72b.tar.gz luarocks-612024db9c963cb7d73eb35e26f81c4835b7c72b.tar.bz2 luarocks-612024db9c963cb7d73eb35e26f81c4835b7c72b.zip | |
Whitelist bit32 as a pre-satisfied dependency when running Lua 5.2.
Diffstat (limited to 'src')
| -rw-r--r-- | src/luarocks/deps.lua | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/src/luarocks/deps.lua b/src/luarocks/deps.lua index e0b8a42d..f24dc507 100644 --- a/src/luarocks/deps.lua +++ b/src/luarocks/deps.lua | |||
| @@ -360,6 +360,11 @@ local function match_dep(dep, blacklist, deps_mode) | |||
| 360 | end | 360 | end |
| 361 | end | 361 | end |
| 362 | 362 | ||
| 363 | local whitelist = {} | ||
| 364 | if cfg.lua_version == "5.2" then | ||
| 365 | whitelist["bit32"] = true | ||
| 366 | end | ||
| 367 | |||
| 363 | --- Attempt to match dependencies of a rockspec to installed rocks. | 368 | --- Attempt to match dependencies of a rockspec to installed rocks. |
| 364 | -- @param rockspec table: The rockspec loaded as a table. | 369 | -- @param rockspec table: The rockspec loaded as a table. |
| 365 | -- @param blacklist table or nil: Program versions to not use as valid matches. | 370 | -- @param blacklist table or nil: Program versions to not use as valid matches. |
| @@ -367,24 +372,28 @@ end | |||
| 367 | -- are program versions and values are 'true'. | 372 | -- are program versions and values are 'true'. |
| 368 | -- @return table, table: A table where keys are dependencies parsed | 373 | -- @return table, table: A table where keys are dependencies parsed |
| 369 | -- in table format and values are tables containing fields 'name' and | 374 | -- in table format and values are tables containing fields 'name' and |
| 370 | -- version' representing matches, and a table of missing dependencies | 375 | -- version' representing matches; a table of missing dependencies |
| 371 | -- parsed as tables. | 376 | -- parsed as tables; and a table of "no-upgrade" missing dependencies |
| 377 | -- (to be used in plugin modules so that a plugin does not force upgrade of | ||
| 378 | -- its parent application). | ||
| 372 | function match_deps(rockspec, blacklist, deps_mode) | 379 | function match_deps(rockspec, blacklist, deps_mode) |
| 373 | assert(type(rockspec) == "table") | 380 | assert(type(rockspec) == "table") |
| 374 | assert(type(blacklist) == "table" or not blacklist) | 381 | assert(type(blacklist) == "table" or not blacklist) |
| 375 | local matched, missing, no_upgrade = {}, {}, {} | 382 | local matched, missing, no_upgrade = {}, {}, {} |
| 376 | 383 | ||
| 377 | for _, dep in ipairs(rockspec.dependencies) do | 384 | for _, dep in ipairs(rockspec.dependencies) do |
| 378 | local found = match_dep(dep, blacklist and blacklist[dep.name] or nil, deps_mode) | 385 | if not whitelist[dep.name] then |
| 379 | if found then | 386 | local found = match_dep(dep, blacklist and blacklist[dep.name] or nil, deps_mode) |
| 380 | if dep.name ~= "lua" then | 387 | if found then |
| 381 | matched[dep] = found | 388 | if dep.name ~= "lua" then |
| 382 | end | 389 | matched[dep] = found |
| 383 | else | 390 | end |
| 384 | if dep.constraints[1] and dep.constraints[1].no_upgrade then | ||
| 385 | no_upgrade[dep.name] = dep | ||
| 386 | else | 391 | else |
| 387 | missing[dep.name] = dep | 392 | if dep.constraints[1] and dep.constraints[1].no_upgrade then |
| 393 | no_upgrade[dep.name] = dep | ||
| 394 | else | ||
| 395 | missing[dep.name] = dep | ||
| 396 | end | ||
| 388 | end | 397 | end |
| 389 | end | 398 | end |
| 390 | end | 399 | end |
| @@ -441,7 +450,7 @@ function fulfill_dependencies(rockspec, deps_mode) | |||
| 441 | end | 450 | end |
| 442 | end | 451 | end |
| 443 | 452 | ||
| 444 | local matched, missing, no_upgrade = match_deps(rockspec, nil, deps_mode) | 453 | local _, missing, no_upgrade = match_deps(rockspec, nil, deps_mode) |
| 445 | 454 | ||
| 446 | if next(no_upgrade) then | 455 | if next(no_upgrade) then |
| 447 | util.printerr("Missing dependencies for "..rockspec.name.." "..rockspec.version..":") | 456 | util.printerr("Missing dependencies for "..rockspec.name.." "..rockspec.version..":") |
