[Zope3-dev] Re: Zope 3.0, and why I won't use it

Tim Peters tim.peters at gmail.com
Tue Nov 16 12:12:04 EST 2004


[Jim Fulton]
> ...
> It seems to me that this would be a useful feature of distrutils.  That
> is, when distutils installs scripts, it should create start menu entries
> for them.

This is one thing a typical Windows user expects from a Windows
installer, but doesn't get from a disutils-built Windows installer.

But even just this much is more involved than it sounds.  While there
is a single UI for "the start menu", it actually contains two sets of
menus:  the "all users" menu, and the "current user" menu.  They're
not the same, and it's *also* typical for a Windows installer to let
the user choose whether its new start menu entries go in the "all
users" or "current user" portion.

So then distutils also needs to generate installation-time UI to allow
making that choice, and support command-line arguments to force that
choice in silent install.

The code supporting all this also needs to be aware of that the
ability to add things to either of these menus requires permissions
that the current user may not have.  A good installer won't, for
example, offer the "all users" choice if the current user doesn't have
permission to change that part of the start menu.  A good
Windows-installer builder (like InnoSetup) makes this easier by
automatically falling back to variants of actions the user does have
permission to perform (e.g., if they don't have permission to write to
the HKEY_LOCAL_MACHINE portion of the registry, it automatically falls
back to writing the same stuff under the HKEY_CURRENT_USER portion,
which is generally less restricted).

It also needs to be aware of that subtle but crucial installation
details vary across Windows flavors.

So it's easy to wish for "just add a start menu entry", but for
distutils to actually do it would require that bona fide Windows
installation experts contribute major new code.  I think it's more
likely that such people (assuming any exist <0.5 wink>) would rather
work on new code to teach distutils how to build input for InnoSetup,
or for an MSI installer-builder.  The chance that distutils will learn
how to do it all itself looks close to 0 to me.


More information about the Zope3-dev mailing list