aboutsummaryrefslogtreecommitdiff
path: root/src/luarocks/deps.lua (follow)
Commit message (Collapse)AuthorAgeFilesLines
* improve dependency match messageimprove-dep-messageHisham Muhammad2024-02-191-1/+1
|
* silence warning which only appears when rebuilding manifestHisham Muhammad2024-02-191-1/+0
| | | | Fixes #1446.
* refactor: reduce some aliasingHisham Muhammad2024-02-171-8/+6
| | | | | | | Reduce some variable aliasing, just in case this is what is triggering possible LuaJIT bugs on the MIPS-based LoongArch architecture. See #1553.
* Don't use floats to parse the Lua version (#1552)Michael Savage2023-12-111-4/+2
|
* deps: sanity check on luajitverHisham Muhammad2022-06-061-1/+1
|
* fix error message when Lua library is not foundHisham Muhammad2022-05-181-1/+1
|
* deps: be more lenient in library version checkHisham Muhammad2022-04-161-8/+18
|
* deps: verify version mismatch when checking for Lua libraryHisham Muhammad2022-04-161-2/+11
|
* deps: better error message when lua.h version mismatchesHisham Muhammad2022-04-161-7/+15
|
* Makes a variable localarichard2021-11-031-1/+1
|
* respect existing LUALIB if given (#1358)Hisham Muhammad2021-10-161-1/+8
| | | Fixes #1357.
* fix check_external_dependency_at (#1355)erw72021-09-231-6/+7
| | | | Fix a problem where 'files' were being sorted even though they should have been inspected in the order of external_deps_patterns.
* deps: remove redundant argsgerrard2021-05-101-1/+1
|
* use skip_set terminology + code cleanupsHisham Muhammad2021-04-131-18/+17
|
* editorconfig: trim trailing whitespaceHisham Muhammad2021-03-161-20/+20
|
* Add error messages to lua_h_existsequa2020-11-271-0/+4
| | | | | | | Previously, if LUA_INCDIR was specified but invalid, install and other commands would error without a message, eventually causing a failed assertion in cmd.lua and leaving a hard-to-troubleshoot situation with no information.
* add CLI variable DEPS_DIRFrancois Perrad2020-08-171-0/+2
|
* Check version of lua.h to ensure it matchesHisham Muhammad2020-04-221-5/+14
|
* Print more info about the location of LuaHisham Muhammad2020-04-221-9/+19
|
* Add OpenBSD specific dependency paths.Jan S2020-02-021-0/+1
| | | | This commit enables luarocks to be configured and build on OpenBSD.
* Windows: force .lib for LUALIBHisham Muhammad2020-01-251-0/+4
|
* speed up external dependency checkHisham Muhammad2020-01-251-20/+39
|
* Refactor command line handling of namespacesPaul Ouellette2019-12-021-9/+10
|
* dependency pinning: luarocks.lock file and --pin flagHisham Muhammad2019-11-291-100/+216
| | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for pinning dependencies in projects and rocks: * Adds a new flag called `--pin` which creates a `luarocks.lock` when building a rock with `luarocks build` or `luarocks make`. This lock file contains the exact version numbers of every direct or indirect dependency of the rock (in other words, it is the transitive closure of the dependencies.) For `make`, the `luarocks.lock` file is created in the current directory. The lock file is also installed as part of the rock in its metadata directory alongside its rockspec. When using `--pin`, if a lock file already exists, it is ignored and overwritten. * When building a rock with `luarocks make`, if there is a `luarocks.lock` file in the current directory, the exact versions specified there will be used for resolving dependencies. * When building a rock with `luarocks build`, if there is a `luarocks.lock` file in root of its sources, the exact versions specified there will be used for resolving dependencies. * When installing a `.rock` file with `luarocks install`, if the rock contains a `luarocks.lock` file (i.e., if its dependencies were pinned with `--pin` when the rock was built), the exact versions specified there will be used for resolving dependencies.
* Add --check-lua-versions flag (#1115)Hisham Muhammad2019-11-231-1/+1
| | | | Only check for availability of a rock for other Lua versions if the user explicitly requests so.
* Simplify deps.get_deps_modePaul Ouellette2019-08-171-5/+1
|
* args["foo"] --> args.foo, flags --> argsPaul Ouellette2019-08-011-3/+3
|
* Move remaining commands to argparsePaul Ouellette2019-08-011-2/+3
|
* Move build command to argparsePaul Ouellette2019-07-291-13/+2
|
* cfg: avoid setting LUA_LIBDIR and LUA_INCDIR too earlyHisham Muhammad2019-07-261-23/+25
|
* only check for LUA_LIBDIR in platforms that need itHisham Muhammad2019-07-261-23/+27
|
* detect LuaJIT dynamicallyHisham Muhammad2019-07-261-3/+4
| | | | | | | | This reduces the complexity of the interaction between build-time configuration, run-time auto-detection, and overrides via CLI flags. The LuaJIT version is now always auto-detected at run-time based on the Lua interpreter currently configured, based on the values of configuration options `variables.LUA_BINDIR` and `lua_interpreter`.
* fix: handle all-negative supported_platforms rockspec fieldLeo P2019-04-161-1/+3
|
* search: add report and opt-out for checking other Lua versionsHisham Muhammad2019-04-091-1/+1
|
* install, build, make: add --verify and --sign optionsHisham Muhammad2019-04-011-5/+18
| | | | | | The --verify options of build and make check the signature of rockspec and src.rock files; the --sign option is meant to be used alongside --pack-binary-rock.
* deps: improve performance of external dependency checksHisham Muhammad2019-03-151-16/+33
| | | | | This is especially important now that the Lua library paths are detected using the dependency check machinery.
* Fix dependency pattern matching for patterns including "+"Hisham Muhammad2018-10-011-1/+1
|
* deps: detect include/lua5x/lua.h (FreeBSD-style LUA_INCDIR)Hisham Muhammad2018-08-131-0/+2
| | | | This matches the change done in #872.
* deps: nicer message with Lua headers are not foundHisham Muhammad2018-07-041-0/+5
|
* Let LuaRocks find LUA_LIBDIR and LUA_INCDIR by itselfHisham Muhammad2018-07-011-5/+38
|
* mingw32: do not link Lua staticallyHisham Muhammad2018-07-011-0/+6
|
* build: resolve LUALIB at runtimeHisham Muhammad2018-07-011-135/+166
| | | | | | Move logic from install.bat for resolving LUALIB (the name of the Lua library) reusing the standard LuaRocks functionality for finding external dependency libraries.
* cfg, cmd: major reorganizationHisham Muhammad2018-07-011-12/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * `--lua-dir` flag, specifying a prefix for the Lua installation to be used. This reconfigures LuaRocks entirely, including allowing a LuaRocks which is itself running using one Lua 5.x version to manage packages for a different Lua 5.y version. The resulting configuration can be checked with `luarocks config --lua-dir=<path>`. * requiring `luarocks.core.cfg` no longer has side-effects * configuration now needs to be initialized with `cfg.init([lua_data])`, where `lua_data` is a table with the configuration of the VM: * `lua_version` - e.g. `"5.3"` * `luajit_version` - e.g. `"2.1.0-beta3"` * `lua_interpreter` - e.g. `"lua5.3"` * `lua_bindir` - e.g. `"/usr/local/bin"` * `lua_libdir` - e.g. `"/usr/local/lib"` * `lua_incdir` - e.g. `"/usr/local/include/lua-5.3"` * `cfg.init` can be called multiple times, reconfiguring the global state. This is important since `luarocks.loader` now calls it, and the `--lua-dir` command line can override the configuration and reconfigure LuaRocks. * `site_config_*` is no more: LuaRocks is no longer dependent on a properly-written site_config file. Instead, it can *optionally* use `luarocks.core.hardcoded` for hardcoded values, or detect its configuration at runtime, based on OS detection, arg[-1] or command-line flags. * reduction of moving parts in the configuration: * `cfg.platforms` is no longer a globally-visible table; instead, `cfg` provides an API of read-only functions: `is_platform`, `each_platform`, `print_platforms`. * `cfg.*_proxy` options are no longer configured via the config files, but rather via the standard `*_proxy` environment variables. * `"windows"` is now the more general platform name of the Windows family. This is technically a breaking change but I don't expect it to cause problems with real-world rockspecs. * internal code reorganization in `luarocks.cmd` module
* builtin: if "libraries" is used but "external_dependencies" is not given, ↵Hisham Muhammad2018-06-141-0/+4
| | | | | | | | autogenerate it The approach is slightly ugly since it adds builtin-specific knowledge to `luarocks.deps`, but I don't think any other build backends will support this behavior any time soon.
* General refactor introducing Rockspec and Build.Opts objectsHisham Muhammad2018-06-061-21/+20
| | | | | | | | | | Adds a Rockspec object responsible for constructing all Rockspec tables in the manner of the Queries and Results objects, and a type-checked Build.Opts tables for build options, since the number of attributes passed around was getting out of hand. This allowed a major cleanup in the luarocks.build, luarocks.fetch and luarocks.cmd.write_rockspec modules.
* deps: add fulfill_dependency for resolving a single dependencyHisham Muhammad2018-05-071-39/+60
|
* check types in report_missing_dependenciesHisham Muhammad2018-04-131-0/+6
|
* Add support for build-only dependenciesHisham Muhammad2018-04-131-3/+4
| | | | | | | | Adds the `build_dependencies` key to the rockspec format, for dependencies that are only triggered when building from source (e.g. via `luarocks build` or running `luarocks install` on a rockspec) and not when building from a packaged `.rock` file using `luarocks install`.
* Try to isolate uses of namespaced name stringsHisham Muhammad2018-04-111-1/+1
| | | | | | | | | | | | | Add asserts to uses of `name` arguments to check that they are not namespaced; rename namespace-able name arguments to `ns_name` and avoid some unrelated uses of the `name` argument that don't represent rock names (there are still others around, to be fixed eventually). This may cause some failures in some untested code paths with namespaced packages, but we hope to catch them with better testing. Better to be safe here than to perform filesystem operations on incorrect paths.
* Add support for namespaces.Hisham Muhammad2018-04-111-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For details of the new feature, see https://github.com/luarocks/luarocks/wiki/Namespaces This ended up being a huge commit because of some major refactoring motivated by the new feature: * new modules for some object types: * `luarocks.queries` - all functions that look for rocks in local or remote repositories now use objects constructed by this module: query objects contain the name, namespace and query constraints. Dependencies in a rockspec are also stored as query objects. * `luarocks.results` - all individual results produces from queries are returned in this format: result objects contain the name, namespace, version, arch and repo. * the `results` object was renamed to `result_tree`, to better reflect that it is not an array of `result` objects. * `luarocks.vers` was removed, its functionality was moved to better locations. Specifically on namespaces: * Commands that take a rock `name` can now take `namespace/name` (and alternately `--flags=namespace` so that URLs can be also installed with a nominal namespace). * Rocks installed from a namespace now create a `rock_namespace` file alongside `rock_manifest`, which is used when matching namespaced dependencies against locally-installed rocks. * Using namespaced dependencies in a rockspec, requires `rockspec_format = "3.0"`. * Tests under the `#namespaces` hashtag, all using a local repository.