
Yaroslav Dynnikov
authored
I. Fixes tarantoolctl rocks install hanging in resctricted networks corner-case. A customer configured two rocks servers: 1. offline (file:///path/to/rocks) 2. and default online (rocks.tarantool.org) He tries to do `rocks install http 1.0.5-1`. Online server is unavailable due to his local network policy, but the rock is available offline. Despite anything, luarocks still tries to fetch manifest online, which results in 30 sec hang since network access is restricted. This change aborts scanning when exact match is found II. Remove cyclic dependencies This is required to embed luarocks into tarantool, as current tarantool preloader can't preload cyclic dependencies. There should be a unidirectional dependency graph and predictable order. Note: as a consequence of this patch, operating systems other that unix-compatible ones are no longer supported. This is because I had to manually resolve dependency graph for predictable require() order. III. Use digest.md5_hex to compute md5 digests instead of openssl luarocks has support for calculating md5 with 'md5' rock if it's present, but we don't have it in tarantool, and instead have the 'digest' module. That's why luarocks falls back to 'openssl' binary to calculate md5 digests. This patch will allow luarocks to use our internal digests module.