aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* tests: introduce quick testsHisham Muhammad2024-02-2313-68/+706
|
* fix: handle error if test.command is not a string.Hisham Muhammad2024-02-212-0/+57
| | | | Fixes #1055.
* fix(init): do not write spurious .gitignore entriesHisham Muhammad2024-02-211-2/+2
|
* Makefile: make install target phonyHisham Muhammad2024-02-201-32/+30
| | | | Fixes #1038.
* ci: don't run luacheck twice on pull requestsHisham Muhammad2024-02-201-1/+5
|
* ci: run main tests on master branch as wellHisham Muhammad2024-02-201-1/+1
|
* fix: let runtime detection handle LUALIB filenameHisham Muhammad2024-02-202-5/+2
| | | | | | | | This should be more flexible than hardcoding a value that may become incorrect once people reconfigure their LuaRocks to point to another Lua distribution, especially on Windows. Fixes #905.
* improve and simplify Lua interpreter searchHisham Muhammad2024-02-206-41/+50
| | | | | | | * do not proceed with commands if interpreter is not found * begin retiring LUA_DIR and LUA_BINDIR, and promote LUA as the main way to setup the interpreter location (from which we derive the rest)
* fix: don't show "no downloader" error for every mirrorHisham Muhammad2024-02-194-7/+10
|
* fix(init): inject project's package.(c)path in lua wrapper scriptHisham Muhammad2024-02-191-1/+20
| | | | Fixes #924.
* fix(init): use absolute paths when deletingHisham Muhammad2024-02-191-2/+2
| | | | Thanks to @imolein for pointing it out!
* fix(config): print boolean values correctly on Lua 5.1Hisham Muhammad2024-02-192-1/+19
|
* fix(lint): don't crash when missing descriptionHisham Muhammad2024-02-192-2/+16
|
* fix(build): don't look for Lua headers when installing pure-Lua rocksHisham Muhammad2024-02-196-174/+228
| | | | | | | This only applies to 'builtin' as we can't know about other modes, but this should be good enough. Fixes #1275.
* improve dependency match messageHisham Muhammad2024-02-191-1/+1
|
* fix(config): ensure directory exists when saving config fileHisham Muhammad2024-02-191-3/+10
| | | | Fixes #1261.
* when picking a default dependency dir, look for lib/ firstHisham Muhammad2024-02-192-9/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a rockspec specifies `external_dependencies` but those don't define a `library` entry, we don't have a way to check for the various possible `external_deps_subdirs` to find the one that contains the library. (But people really should specify a `library` entry there if they're linking the library!) Previously, we were just picking the first one from the list. On Windows, this meant that sometimes setting `MY_DEPENDENCY_DIR` would not be sufficient if the library was under `$MY_DEPENDENCY_DIR/lib`, because "" was picked first. We now improve the heuristic by putting "lib" first on the list and checking if it exists. I'm still keeping "bin" in the end of the list, because I think this is less common that a flat directory structure on Windows, so "lib" covers the Unix-like trees and "" covers flat trees (I don't remember why have "bin" as a library subdir on Windows, but if it's there then we must have seen it in the wild!) This means that "bin" will never get auto-picked by this heuristic, but it will be available for the cases where `library` _is_ set. While I'm at it, I also flipped the order of some Unix entries, so that this heuristic for these kind of rockspecs gets a nicer behavior on Unix systems that have things like `/usr/lib64` and `/usr/lib/<platform>` as well. Fixes #1041.
* fix(builtin): compile C modules in a temp directoryHisham Muhammad2024-02-192-6/+34
| | | | Fixes #1492.
* vendor in the dkjson dependencyHisham Muhammad2024-02-196-47/+750
| | | | | | Fixes #1243. Fixes #1168. Fixes #559.
* silence warning which only appears when rebuilding manifestHisham Muhammad2024-02-191-1/+0
| | | | Fixes #1446.
* normalize project dirHisham Muhammad2024-02-191-1/+1
| | | | | Avoid showing things like `/foo/bar/../.././lua_modules` when running `luarocks path`.
* feat(path): add --full flag for --lr-path and --lr-cpathHisham Muhammad2024-02-191-14/+26
| | | | | | | | | | | By default, `--lr-path` and `--lr-cpath` only include the paths derived by the LuaRocks rocks_trees. Using `--full` includes any other components defined in your system's package.(c)path, either via the running interpreter's default paths or via `LUA_(C)PATH(_5_x)` environment variables (in short, using `--full` produces the same lists as shown in the shell outputs of `luarocks path`. Closes #1351.
* fix program search when using absolute paths and .exe extensionsHisham Muhammad2024-02-192-1/+25
| | | | | | Fixes #1001. Thanks @badrazizi for the suggestion!
* fix: do not attempt setting exec permissions for folders on WindowsHisham Muhammad2024-02-181-3/+5
| | | | | | | | | Not sure of what are the circumstances that make this cause problems on Windows, but running this shouldn't be necessary on Windows, since the concept of "execute permissions for directories means traversal permissions" is a Unixism. Fixes #991.
* drop cfg.lua_interpreter, use cfg.variables.LUAHisham Muhammad2024-02-1815-134/+189
|
* ci: bump actions/checkout in luacheck.ymlHisham Muhammad2024-02-181-1/+1
| | | | ...to get rid of the GitHub Actions warning about Node.js 16
* feat(builtin): inherit inc and libdirs from external_dependenciesHisham Muhammad2024-02-171-4/+5
| | | | | | | | | | | | If a rockspec has external_dependencies but the module entry does not specify incdirs or libdirs, then autoextract those values from external_dependencies and apply it to the module entry. Hopefully this will improve compatibility of existing rockspecs that did not fully specify their incdirs and libdirs, such as https://github.com/brimworks/lua-yajl/blob/078e48147e89d34b8224a07129675aa9b5820630/rockspecs/lua-yajl-2.0-1.rockspec Fixes #1239.
* fix: catch the failure to setup LUA_BINDIR early.Hisham Muhammad2024-02-171-0/+6
| | | | Fixes #1202.
* fix(show): print commands correctly in --porcelain modeHisham Muhammad2024-02-171-2/+1
|
* fix(build): report if zip is unavailable for --pack-binary-rockHisham Muhammad2024-02-171-2/+3
| | | | Fixes #1414.
* fix(build): add some validation to the build tableHisham Muhammad2024-02-171-0/+6
| | | | | | | | | | LuaRocks does not validate the contents of the build table because each backend defines it on this own. These validations should be enough to address #1477, but ideally each bundled `build` backend should have its own validator like the one on `luarocks.type.rockspec`. Fixes #1477.
* fix: install build_dependencies on the correct Lua versionHisham Muhammad2024-02-172-6/+37
| | | | | | | | | | | | | | | | | When installing build dependencies, do so for the Lua version on which the LuaRocks program is actually running, and not the one selected by the user via config or `--lua-version`. To do that, we temporarily flip the user-selected Lua version. It's a hacky approach because we have to do this by flipping a bunch of global config settings, and we may be missing some entries. This definitely needs a better solution, but this is what can be done somewhat easily in the current architecture. A full solution needs to address have several complications (e.g. if you have a build dependency that needs to be compiled, it will require C headers for another version of LuaRocks, and the binary might be compiled with a different Lua version than the one the developer has set up in their machine.)
* fix(config): update system config by default with local_by_default = falseRoman Orekhov2024-02-171-1/+1
| | | | Fixes #1512.
* feat(init): add --no-gitignore, --no-wrapper-scripts, --wrapper-dirHisham Muhammad2024-02-172-32/+129
| | | | Closes #1513.
* fix: handle error when failing to create local_cacheHisham Muhammad2024-02-171-1/+6
| | | | | | Closes #1514. Co-Authored-By: FractalU <r.beckmann@protonmail.com>
* fix: sysdetect: prefer interpreter to avoid multiarch shell on macOSHisham Muhammad2024-02-171-1/+1
| | | | | | Thanks @RunsFor for the suggested workaround! Fixes #1529.
* refactor: reduce some aliasingHisham Muhammad2024-02-172-11/+13
| | | | | | | Reduce some variable aliasing, just in case this is what is triggering possible LuaJIT bugs on the MIPS-based LoongArch architecture. See #1553.
* fix: avoid cross-device linksHisham Muhammad2024-02-171-4/+1
| | | | Fixes #1559
* fix: `build.install_command` doesn't execute on windowsSewbacca2024-02-162-6/+16
|
* fix: build_dependencies can use a dependency found anywhereHisham Muhammad2024-02-161-1/+1
|
* fix: avoid nil crash if config_files is not fully filledHisham Muhammad2024-02-151-1/+6
| | | | | | | | I couldn't track down which scenarios cause this, but it has happened on Windows: See: https://github.com/lunarmodules/luasystem/pull/17 See: https://github.com/lunarmodules/luasystem/actions/runs/7907096563/job/21583369125?pr=17
* Introduce locking for concurrent access control (#1557)Hisham Muhammad2023-12-1312-10/+100
| | | Fixes #1540
* improve rockspec.source.dir detection by moving it later (#1555)Hisham Muhammad2023-12-125-43/+88
|
* fs.tools: do not cd to initial directoryHisham Muhammad2023-12-121-3/+5
| | | | Fixes #1545
* fix: Add value specified via --tree to cfg.rocks_trees (#1549)leso-kn2023-12-111-0/+3
| | | | * Fixes a crash in `fulfill_dependency()` on musl
* Don't use floats to parse the Lua version (#1552)Michael Savage2023-12-111-4/+2
|
* feat: auto-add luarocks-build-<build.type> build dependency (#1542)Hisham Muhammad2023-10-312-0/+156
|
* tests: auto-find interpreter at /usr/bin/lua (#1544)Hisham Muhammad2023-10-311-16/+33
|
* Strip quotes for tools in paths on Windows (#1498)dundargoc2023-10-311-1/+2
| | | | | | | | | | | | As mentioned by @erw7 in https://github.com/luarocks/luarocks/issues/1443#issuecomment-1483816481, quotes is required when using io.popen but causes problems when using io.iopen. This makes luarocks unable to find its own md5sum.exe it is shipped with. Fixes https://github.com/luarocks/luarocks/issues/1443 Fixes https://github.com/neovim/neovim/issues/22752 Co-authored-by: erw7 <erw7.github@gmail.com>
* luajit: ignore extra version info in jit.version (#1519)wojas2023-10-311-1/+2
| | | | | | | | | | | Ignore any extra version info in jit.version when separated by a space. A normal LuaJIT jit.version string looks like "LuaJIT 2.1.0-beta3". Since official LuaJIT releases have all but stopped, various forks continue to use the same version for all forks. This change allows forks and patched rebuilds to add additional version information at the end of the string without breaking luarocks version detection, e.g. "LuaJIT 2.1.0-beta3 some-extra-version-info".