[racket-dev] package install mode

From: Eli Barzilay (eli at barzilay.org)
Date: Sun Jan 6 11:42:52 EST 2013

Yesterday, Matthew Flatt wrote:
> I have been thinking about how developers who build their own Racket
> are more likely to want installation-wide packages instead of user-
> and version-specific packages. This is particularly true for those
> of us who work from the git respository.

(Another situation which I think is popular is to have an installation
that is close to what your students would have, so you'd want to
minimize such things.)

> Maybe the default for a build `configure'd without `--prefix' (or, more
> generally, for a non-Unix-style build) should be installation-wide
> package installs, while the default for our pre-built distributions
> should be user- and version-specific installs.

I'm not following this completely: what about a build that does use a
`--prefix'?  Assuming that it would have a default of user-specific,
then I think that it can be problematic -- at least as far as things
went so far, I encouraged people to do the simple build and then move
the directory around -- and there are lots of schools etc where such a
setup makes a lot of sense.  An extreme example is doing a `--prefix'
build but doing so with the "stow" thing that eventually does a
per-project directory that has its own layout -- such uses could just
as well avoid the `--prefix' and get the same single-directory

So making some decision based on `--prefix' seems like a bad idea in
this light, since it's yet another small quirk to remember about
building things.

I'm also saying that based on the possibly wrong guess that the goal
of this is to get defaults that "just work" for everyone, assuming
that we can do whatever magic is needed to get user/version-specific
packages in the resulting distributions, and assuming that `--prefix'
is used only by 3rd-party packagers.  I think that such an assumption
is wrong, and there are lots of people who build from source using
`--prefix', and these people would have that extra tweak to keep in
mind.  (And and bear in mind that a non-`--prefix' build is so much
more convenient yet people still use it: it means that people only
prefer it out of habit and other project conventions, so these people
are unlikely to remember the extra tweak.)

So assuming that I got everything right (which is highly
questionable), I think that it's best to have the same default for all
setups, and use an installation-wide installs by default only when
asked explicitly.

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the dev mailing list.