| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
| |
This commit consolidates the work that has been ongoing over the
last few weeks in producing the single-binary builds of LuaRocks
based on the new distribution model described in
https://github.com/luarocks/luarocks/wiki/Project:-LuaRocks-new-distribution-model
The single-binary build is in a good shape for Linux,
it's a work-in-progress for Windows (binaries do build,
but some work on the dependencies is still necessary),
and is untested in macOS.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* luarocks/type_check.lua:
* fix expansion of platforms
* luarocks/type/rockspec.lua:
* when a version fails checking, try with a later
version to produce a hint in the error message.
See #823.
|
|
|
|
|
| |
* reverse_in: reverse table in-place
* sort_in: sort table in-place
|
|
|
|
|
| |
Remove regression test for #304 because LuaRocks no longer
conflates foo and foo.init as the same module.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Reworked configure script
* Now passes shellcheck
* New Makefile for Unix
* Simplified `make` and `make install` targets
* Simplified `make bootstrap` target
* New targets `make binary` and `make install-binary`
build and install an all-in-one binary of LuaRocks
|
| |
|
|
|
|
|
|
|
|
| |
LuaRocks used to conflate in its manifest two modules whose names only
differed by ".init" (e.g. "foo.bar" and "foo.bar.init"). With this change,
`path.path_to_modules` treats them as distinct modules, and `luarocks.loader`
handles them correctly (given `require("foo.bar")`, it looks for
`foo.bar` first and then `foo.bar.init` next).
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Avoid relying on the order that cfg and fs are required.
This is not strictly required in regular operation, but it
allows us to mock cfg and use fs.
|
|
|
|
|
|
| |
Move logic from install.bat for resolving LUALIB (the name of the Lua
library) reusing the standard LuaRocks functionality for finding
external dependency libraries.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
/lib
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This implemention the ugly side-effect of "exposing" some Unix-specific
utility functions to the public API, so they can be shared by
`luarocks.fs.lua` and `luarocks.fs.unix.tools`. I named those functions
`_unix_*` (with a Python-style `_` at the beginning) to clarify that they
should not be used publicly.
|
|
|
|
| |
This version can run on Windows using lfs alone.
|
|
|
|
|
| |
get_providing_file was always loading the rock_manifest from the
default repo.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* `--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
|
| |
|
| |
|
| |
|