The mrlib/terminal library fits in the mrlib collection in that it is
a random library that uses our GUI system that doesn't belong in
racket/gui somewhere.
It also doesn't really fit into the framework as the framework is
supposed to be a colleciton of useful mixins for our racket/gui
classes.
It does, however, benefit from using the framework (and the string
constants library) so the best option seems to be to think of mrlib as
consisting of separate libraries that fit into two different layers
of the dependency hierarchy. So that's what this commit does.
* The all-versions page has a docs column with html/pdf links, and also
two links in the nightly builds footer.
* Specific version download pages have a link to the docs for that
version. (Only html, to save space.)
This move moves a library from the plt distribution into the
mr distribution, which is a direction we do not generally
like to go, but the pict library is more core than slideshow
and the dependency that triggered this change is that the
2htdp/image library now interoperates with picts (hopefully
2htdp/universe will also work with them at some point).
So this teases out the pict part of slideshow (mostly,
but not completely the texpict collection) and moves only
that part to the mr distribution.
* Remove lots of sudoing, and instead use one to change the contents (of
non-simple DMGs). Perhaps that's not needed too. (I think that there
used to be some problem when the owner was a specific user in the
installer script days, perhaps it caused some mess in the pre/post
flight scripts. Maybe it's safe to not do this anymore.)
* There was a fundamental weakness in the Finder script -- it tweaks the
DMG by openning its mount, but the way to specify a disk is via its
displayed name which is not unique. This can be problematic if there
is already a mount that has the same name, and given that the DMG
machine can be used by PLT people, it's even likely to happen. It is
tricky to solve this, since there is no way that I see to refer to the
disk by its mount point or device in the Finder, and no way to find
out the name in the shell.
I spent a ton of time searching the webs for a solution, but it seems
that practically nobody is concerned (or even aware of this problem).
Eventually, the hack I did is to mount the image onto a randomly named
directory, then iterate over all disks and look for one whose `name'
property is that directory name (apparently the `name' property is the
name of the last component of the mount point). For safety, throw an
error if no such disk is found, or if more than one is found.
Incidentally, using a known mount point also simplifies things since
there is no need to know the device name of the mount.
* Use UDBZ instead of UDZO for the compressed image. The savings are
not as big as I expected them to be for some reason, but the
compatibility issues should be all gone now (UDBZ works only from 10.4
and up).
* Unset $LD_LIBRARY_PATH to avoid some 10.8 bug.
* Switch the build to happen on dublin, running 10.8. At least
code-signing is broken on the 10.5.8 machine, and possibly also the
osascript to identify the desired image disk.
"dmg" is now the layout-enabled usual DMGs, since they will soon have
more functionality around them (signed applications). "sdmg" is for the
simple (or "source") DMGs, which are just plain containers for a
directory. Also use a flag to avoid the stupid dynamic scope hack.