aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* when picking a default dependency dir, look for lib/ firstfix-1041Hisham 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".
* admin: remove now works with the file protocol (#1536)Pavel Balaev2023-10-311-3/+11
| | | | | | | `admin add` can add rockspec using the file protocol without any problems: ./bin/luarocks-admin add testapp-scm-1.rockspec --server '/tmp/rocks/orig' But deletion only works using the rsync protocol. This patch adds deletion via file protocol.
* Fix problems in path normalisation algorithm (#1541)Aleksei Volkov2023-10-302-4/+15
| | | | | | | | Current implementation of path normalisation contains various flaws: - Trailing `.` and `..` at the end of path don't get normalised, - Path `/` turns into an empty string after normalisation. This patch changes implementation of normalisation to fix these.
* update domain name of mirror (luafr.org -> loadk.com) (#1517)Pierre Chapuis2023-07-261-1/+1
|
* upload.api: using CURLNOCERTFLAG in curl_cmd instead of hardcoded -k (#1490)Sebastian Hübner2023-03-021-1/+1
|
* CHANGELOG: update for 3.9.2Hisham Muhammad2022-12-081-0/+20
|
* Merge branch '3.9.2'Hisham Muhammad2022-12-080-0/+0
|\
| * Windows binary build tweaksv3.9.2Hisham Muhammad2022-12-083-2/+138
| |
| * Windows binary: update zlib to 1.2.13Hisham Muhammad2022-12-081-1/+1
| |
| * Release 3.9.2Hisham Muhammad2022-12-085-6/+7
|/
* build.builtin: added support for clang on Windows (#1466)Apoorv Sachan2022-12-081-2/+10
|
* path.path_to_module: accept custom extensions in package.(c)path (#1468)Hisham Muhammad2022-12-071-13/+18
|
* Create SECURITY.mdHisham Muhammad2022-12-011-0/+21
|
* Do not auto-add "bug" labels to new issuesHisham Muhammad2022-11-282-5/+4
|
* fix `test --prepare` with non-busted rocks (#1453)Pierre Chapuis2022-11-282-1/+14
| | | * fix `test --prepare` with non-busted rocks
* update CHANGELOGHisham Muhammad2022-09-271-0/+33
| | | | Closes #1437
* Fix badge in the READMESergey Bronnikov2022-09-091-1/+1
|