Search for versions within a library directory, instead of searching
across library directories for a version. That way, user-specific libraries
can take precedence generally.
Fix the construction of library names with versions to match `ffi-lib`.
Specifically, put the version after the suffix on platforms other than
Mac OS X.
Put the code to resolve 'so specs in one place.
Add `find-dll-dir` to the end, not the beginning, so that it doesn't
override the user's directory. Improve checking for whether the DLL
directory is already covered by the library directories.
A `zip` archive normally holds timestamps in local time; a new option
records/interprets a UTC time instead. (Use the option both to zip and
unzip.) Also, add an option to round the 2-second resolution of time
to the past instead of the future (to avoid files with timestamps in
the future) when zipping.
Calling the default module name resolver with three arguments logs an
error message. The intent is that 3-argument support will be removed,
eventually.
When an archive used as a package source has all of its content
within a single top-level directory, then treat that directory's
content as the package content, instead of treating the directory
itself as the package content.
The change makes "x.zip" created with
zip -r x.zip x
work the same as "x" as a package source. It also makes a ".zip"
for a package's GitHub repository (from clicking the "Download ZIP"
button) work the same as the repository.
This change is backward incompatible, but it's unlikely to break
any working package (since that would be a single-collection package
that provides only a subcollection).
Fix when installing from a non-directory in `--source` or
`--binary` mode, and fix clean up of a GitHub-generated archive
when using a path within the archive.
Allow `{binary,source}-keep-files` to override omission of an
enclosing directory. Also, adjust the default for binary mode to
keep "doc" and "info.rkt" within "scribblings" and not "tests".
With this change, starting with Minimal Racket and installing DrRacket
in binary mode gets you a working DrRacket with documentation. A
binary install is less than half the space of a non-binary install,
in part because the binary installation has fewer dependencies.