[Zope-dev] Windows Installer for Zope 2.9+

Sidnei da Silva sidnei at enfoldsystems.com
Fri Dec 9 07:27:57 EST 2005


On Tue, Dec 06, 2005 at 01:22:23PM -0500, Tim Peters wrote:
| [Sidnei]
| > Indeed. From reading around, seems like the saner thing is to make it
| > a bold warning in the installer that the said dll is required instead
| > of shipping it.
|
| [Tim]
| If you go the Zope3-route, it becomes a non-issue:  the Windows Python
| installer will install msvcr71.dll if needed.  Redistribution there
| isn't a problem because the PSF builds the binaries using a duly
| licensed Microsoft compiler.  It's much fuzzier for "derivative works"
| (do the PSF's redistribution rights pass through to them?  ask two
| lawyers, get four answers).  Zope Corp could presumably invoke the
| same rights because parts of Zope are compiled with a legitimately
| licensed VC 7.1 -- but that might depend on who does the compliing.

I've discussed with Mark a bit, and we came to a couple
conclusions.

Looks like the MSI installer has some support for 'multiple instance
transforms' (not sure that's the term used in MS docs), but apparently
that requires some build-time tweaking to be enabled.

Another idea is to include the full Python2.4 installer, make the
installer detect a existing Python2.4 install and if not existing then
run the python installer silently.

| [Tim]
| >| Another:  I have no idea how the new zpkg-based build process will
| >| work with a Zope2-style installer.  A Zope3-style installer is
| >| different in many ways (it's a "plain" distutils-based installer, and
| >| requires that the end user get and install Python & pywin32 first).
| >| Plan on pain-time here.
| 
| > That's something I can play with :)
| 
| Feedback from users hasn't been exactly glowing, but it's much easier
| to build an installer that way (no externals, no makefiles, no Cygwin
| involved, ...).  Here's how it's done for Zope3; I don't know / can't
| guess what would need to change for Zope2:
| 
| <http://www.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/ZopeWindowsRelease>

Simplifying a lot what the existing Zope 2 installer does, it
basically creates a 'software home', a default 'instance home' and
registers the services. All but the first part is done manually for
Zope 3, so I can see the lack of glow there.

Supposing there is a existing python installation, how difficult is it
to get a distutils-based windows installer to be extracted to a random
directory outside site-packages? My guess is that it's basically unzip
it. If that's the case, we can simplify the Zope 2 inno installer to:

1. include a distutils-based windows installer for the Zope 2 source
2. include some setup scripts

Then on installation

1. find or install according python
2. unpack the distutils-based windows installer into Program
   Files\Zope
3. create a default 'instance home', pointing to the installed python
4. register the services

Steps 2-4 are reasonably simple to me, the tricky one is 1.

-- 
Sidnei da Silva
Enfold Systems, LLC.
http://enfoldsystems.com


More information about the Zope-Dev mailing list