[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