aboutsummaryrefslogtreecommitdiff
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Release 2.4.2v2.4.2Hisham2016-11-301-2/+2
|
* Merge pull request #644 from mpeterv/fix-conflict-resolveHisham Muhammad2016-11-032-183/+205
|\ | | | | Fix conflict resolution on deploy/remove w.r.t. C/Lua modules with same name
| * Fix and refactor conflict resolution on deploy/deletePeter Melnichenko2016-11-012-183/+205
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor repos.deploy_files and repos.delete_version to make relationships between properties of deployed files clearer and to avoid converting back and forth between related properties. Location of each deployable file in its rock manifest is pair deploy_type - the first subtree name ("bin", "lib", or "lua") and file_path - remaining path from the subtree to the file. These components determine where each file is physically located. Conflicts are considered based on two other properties: type and name of an item a file provides. Type can be "command" or "module". For items deployed using non-versioned names pairs (type, name) should be unique. Conversion from (deploy_type, file_path) to (item_type, item_name) is obvious, using path.path_to_module() for modules. Reversing this conversion is necessary for moving files between versioned and non-versioned locations on conflicts, and also for path.which function used in luarocks.show. However, rock tree manifest only allows to get file_path, which is not enough for modules - deploy_type can be both "lua" and "lib". Currently path.which infers deploy_type based on extension, falling back to "lib" if it's unknown, causing luarocks.show to display wrong paths (#424). This commit does not address that but adds relevant funcionality. Currently conflict resolution assumes that both files in conflict have same deploy_type and errors on conflict between a C module and a Lua module. This commit fixes that, inferring deploy_type for files with unknown extension using rock manifest.
* | Use ("%q"):format() for quoting in persistPeter Melnichenko2016-11-021-1/+1
| |
* | Fix persist for multiline strings ending with closing bracket prefixPeter Melnichenko2016-11-021-1/+2
|/
* Use optional lpeg feature when available.Hisham2016-11-011-0/+1
|
* Remove dead codeHisham2016-11-011-3/+0
|
* Get rid of repeated missing deps checksPeter Melnichenko2016-10-306-52/+87
| | | | | | | | | | | Do not report missing dependencies on manifest update, which is now done more often. Instead do it at the end of commands that may alter manifest (install, build, make, remove - excluding purge). For reporting reuse format used when showing missing deps to be installed. Do not report missing indirect dependencies, only direct ones.
* Merge pull request #638 from mpeterv/remove-without-manifest-rebuildHisham Muhammad2016-10-292-64/+122
|\ | | | | Remove packages without manifest rebuild
| * Update manifest after removal without rebuildingPeter Melnichenko2016-10-282-9/+84
| | | | | | | | | | | | | | Rename `manif.update_manifest` to `manif.add_to_manifest`. Add `manif.remove_from_manifest` that performs reverse action. Use it in `repos.delete_version` to avoid rebuilding manifest everytime a package is removed.
| * manif.update_manifest: do not update manifest if rebuiltPeter Melnichenko2016-10-281-8/+4
| |
| * manif.update_manifest: load manifest as localPeter Melnichenko2016-10-281-1/+1
| |
| * Rename a variable in manif.update_manifestPeter Melnichenko2016-10-281-6/+6
| | | | | | | | | | `repo` sometimes means root dir and sometimes means rock dir. At least do not reuse the same variable for both.
| * Refactor store_results in luarocks.manif (2)Peter Melnichenko2016-10-281-21/+8
| | | | | | | | | | Do not accept a hook function to call after storing results. Simply call it on the outside after calling store_results.
| * Refactor store_results in luarocks.manifPeter Melnichenko2016-10-281-22/+22
| | | | | | | | | | | | Instead of passing a function and its arguments to a helper function for it to call it, make a copy of result, and return it, call the function on the outer level and pass the result to helper.
* | Improve performance of manif_core.get_versionsPeter Melnichenko2016-10-291-11/+10
|/ | | | | | | | | | To get all installed versions of a package using deps_mode, instead of deeply merging all manifests of corresponding trees, shallowly merge only tables related to that package. This affects speed of manifest manipulation and dependency resolution. Minimal performance testing suggests 3x-4x speed-up on reinstallation of a package using `luarocks make`.
* Fix absolute path detection on WindowsPeter Melnichenko2016-10-281-8/+31
| | | | | | Do not use "^[%.a-zA-Z]?:?[\\/]" as a pattern when checking if a path is absolute on Windows. Check if there is a directory separator after an optional drive letter instead.
* Refactor windows argument quoting functionsPeter Melnichenko2016-10-281-21/+9
| | | | Use string replacements instead of functions in calls to gsub.
* Move Unix-specific fs.Q implementation into luarocks.fs.unixPeter Melnichenko2016-10-282-11/+9
|
* Support user-defined platforms array.Hisham2016-10-261-30/+57
| | | | | Let the user set their own custom platform entries, but also provide fallbacks to make sure things work.
* Merge branch 'master' of https://github.com/keplerproject/luarocksHisham2016-10-2613-15/+11
|\
| * Treat rock name arguments in case insensitive wayPeter Melnichenko2016-10-268-6/+9
| | | | | | | | | | | | | | | | | | | | Internally package names are lowercased, however, rockspec may contain a name with uppercase letters, which will be displayed by `luarocks show`. Some commands, like `luarocks search`, `luarocks install` and `luarocks build`, support this and convert input name to lowercase before passing it to interanl functions. Do the same thing in other commands accepting rock names.
| * Remove some unused locals and importsPeter Melnichenko2016-10-206-9/+2
| |
* | Add link_lua_explicitly option.Hisham2016-10-252-1/+3
| | | | | | | | | | Remove explicit reference to cygwin, and make option available for custom environments.
* | Check rockspec_version before running type check.Hisham2016-10-251-6/+6
|/
* Show traceback for errors in scheduled functionsPeter Melnichenko2016-10-201-9/+15
|
* Slightly improve error messages in deploy/removePeter Melnichenko2016-10-201-5/+7
|
* Fix backup of wrapped scripts on deployPeter Melnichenko2016-10-201-26/+25
| | | | | When deploying script to bin/script.bat, check and back up bin/script.bat, not bin/script.
* Fix conflict resolution on deploy/deletePeter Melnichenko2016-10-192-78/+146
| | | | | | | | When deploying or deleting files, resolve conflicts purely based on module names and command names, not file names. Also, don't assume that in case of a conflict both packages have the same file providing the module or command; it can be false due to binary wrappers and `path_to_module("mod/init.lua")` == `path_to_module("mod.lua").
* Remove some useless code in luarocks.buildPeter Melnichenko2016-10-191-4/+1
| | | | Same as 6639022.
* Fix installation of modules from files ending with "init.lua"Peter Melnichenko2016-10-191-1/+1
| | | | | | | | | | In builtin backend, when figuring out where to install a module and checking for special "init.lua" logic, trigger it only when the whole basename is "init.lua", not when it merely ends with it. Fixes incorrect installation when build.modules contains pairs like `["kainit"] = "kainit.lua"` - the module used to go to `kainit/kainit.lua` instead of just `kainit.lua`.
* Remove some useless code in build.builtinPeter Melnichenko2016-10-191-4/+1
| | | | | | | If `basename` is equal to `baseinfo` then, as `filename` is `baseinfo` plus ".lua", assignment `filename = basename..".lua"` has no effect and the if statement can be removed. Then `baseinfo` can be removed as unused.
* Run manif.update_manifest in repos.deploy_filesPeter Melnichenko2016-10-193-13/+26
| | | | | | | | Similarly to repos.delete_version, it's a good idea to update manifest immediately after altering what's deployed, even though in this case manifest was always updated by the caller. Also added more doc comments for repos functions.
* Regenerate manifest every time we delete a version.Hisham2016-10-186-14/+24
| | | | | | | This is a naive implementation of the solution suggested by @mpeterv for #268. I'm merging this since it does produce more correct behavior, at the cost of a performance regression. We need a function akin to update_manifest for removing packages from a manifest.
* Relax Lua version detection to support RaviPeter Melnichenko2016-10-141-1/+1
| | | | | Ravi has "Ravi 5.3" as _VERSION. Don't use _VERSION:sub(5) to get Lua version, match " (5%.[123])$" instead.
* Fix manif.find_{current,next}_provider returning "untracked" incorrectlyPeter Melnichenko2016-10-121-3/+8
| | | | | | | | | | | | | | | | | | | | `find_providers` function used by `manif.find_current_provider` and `manif.find_next_provider` needs relative path from a directory an installed file is deployed in (bin dir, lua dir, or lib dir) to the file. It then uses that path as key in manifest, converting it to module name beforehand for lua files and lib files. It happened to leave a leading slash in this relative path for lua and lib files. `path.path_to_module` has a workaround stripping leading dots caused by leading slashes. However, if the file doesn't have `.lua` extension, slashes are not converted to dots and the workaround doesn't trigger. The issue results in files falsely considered "untracked" and backed-up when reinstalling a different version of a rock, see sailorproject/sailor#138. The fix is to use correct relative paths without leading slashes.
* Merge branch 'master' of https://github.com/keplerproject/luarocksHisham2016-10-061-36/+43
|\
| * Rewrite util.sortedpairs to avoid using coroutinesPeter Melnichenko2016-10-061-36/+43
| | | | | | | | | | | | | | | | | | | | util.sortedpairs is used in luarocks loader since @6dc745a. Openresty does not like coroutines being used from inside `require`, resulting in "attempt to yield across C-call boundary" error. New version of util.sortedpairs uses a prepared array of ordered keys instead of coroutines. Ref #620.
* | Make the workaround for older LuaRocks versions more robust.Hisham2016-10-061-0/+24
|/
* Simulate module() for older wrappers.Hisham2016-10-051-0/+5
| | | | | | | | | | | | | | | Older versions of LuaRocks (e.g. 2.1.0) install script wrappers that assume that `luarocks.loader` is available in the global namespace (this is from the module() era). This workaround detects this (because site_config.lua files written by these old versions use module(), and therefore create a `luarocks` global. To reproduce this issue, make a clean install of LuaRocks 2.1.0, then run `luarocks install luarocks`. Installation succeds, but running `luarocks` produces `attempt to index field 'loader' (a nil value)`. Bug reported by @tomasguisasola.
* Fix pack-binary-rock operation.Hisham2016-09-081-1/+1
|
* Make `pack` use the same logic as `show` for finding a rock.Hisham2016-09-084-64/+46
|
* Use Unix makefile by default on MinGW;Hisham2016-08-221-0/+1
| | | | | Makefile.win is a leftover from Kepler days, and those are usually NMAKE makefiles for MSVC.
* Make behavior of config files on Windows more consistentHisham2016-08-111-4/+3
| | | | | with that on Unix. This was detected during the port of the new testsuite to Windows by @robooo.
* Closes #595. Fixes placement of rockspec when unpacking a git:// rock.Hisham2016-07-281-1/+0
|
* Check for invalid server response.Hisham2016-07-141-0/+3
|
* Merge pull request #587 from xpol/win32-unique-paths-in-bin-scriptsHisham Muhammad2016-07-112-1/+3
|\ | | | | Make package.path and package.cpath unique in win32 bin scripts.
| * Make package.path and package.cpath unique in win32 bin scripts.Xpol Wan2016-07-112-1/+3
| |
* | Merge branch 'master' of https://github.com/keplerproject/luarocksHisham2016-07-112-3/+6
|\|
| * Fix implicit number-to-string coversion in luarocks.helpPeter Melnichenko2016-07-051-1/+1
| |