Contrary to what the commit message of 5b13e99 says, setting CHICKEN_PREFIX is not enough to prevent eggs like setup-helper to install Scheme files in (chicken-home). 5b13e99 can't actually set CHICKEN_PREFIX to tmp-repo-dir (and it didn't), because the CHICKEN tools are not there. 5b13e99 sets CHICKEN_PREFIX to chicken-installation-prefix, complementary to what "chicken-install -p" does, but that's still ineffective to prevent the installation of Scheme files in (chicken-home), since (chicken-home) will still point to <chicken-installation-prefix>/share/chicken. Preventing the installation of files to (chicken-home) can't be easily implemented. So it's easier to let eggs install files in (chicken-home), then remove them. Since <chicken-installation-prefix> is out of salmonella's tmp-repo-dir, it can't just remove files from there. This commit introduces a new command line option, --clear-chicken-home, to specify that salmonella can actually remove files from <chicken-installation-prefix>/share/chicken. This option must be used with care.
Show the Scheme files and their corresponding eggs, in case they are known (at the moment only files installed by setup-helper and check-errors are known).
This fixes a bug related to the fact that (chicken-home) is in the include path. (chicken-home) would pick C_INSTALL_SHARE_HOME if CHICKEN_PREFIX is not set. Some eggs like setup-helper and check-errors install files under (chicken-home), and that causes problems because those files are not removed by clear-repo!. So, eggs that depend on setup-helper, for example, but not specify it on their dependencies list, may be successfully installed if setup-helper had been previously installed. We fix that by copying setup.defaults to salmonella's private repository and setting CHICKEN_PREFIX. By setting CHICKEN_PREFIX, (chicken-home) will now point to salmonella's private repository, and will be removed when clear-repo! is called.
On unix, apply `qs' to the command. Windows doesn't seem to play well with the result of `qs' on commands. Explicitly quote Scheme expressions given as arguments to csi. Handle the output of close-input-pipe on Windows. salmonella-epidemy is still not supported, since it still uses process-fork (not available on Windows).
Also document it.
`meta-data' returns an alist or #f. alist-ref in chickens >= 4.9.0 will raise an error when given #f instead of an alist.
The use of receive there is to silent the scrutinizer. Thanks to Moritz Heidkamp for the tip.
check-version now parses setup-info files to determine installed versions, instead of simply asking csi to determine them via extension-information (which, in the end, gets that information from setup-info files too). While at it, check-version also checks if a single egg installs multiple modules with different versions, and emits a warning if so.
…ith older salmonellas