[Zope] Proposed installation changes for review

Edward Muller edwardam@interlix.com
10 Mar 2003 21:13:55 -0600


Hopefully I'll get to play with this later on in the week..

But here are the things I know I need as part of my business:

-The ability to specify which python to use to build, install and run
zope with. Our production machines have various version 1.5.2, 2.1.X,
2.2.X, etc installed. I must be able to specify the location.

-The ability for each instance to have separate Product directories.
Some users want plone, some don't. Some develop their own software.

-The ability to start/stop zope without access to /proc (or the
equivalent on other unices) on Linux.

I don't know if the changes made affect any of the above ... but it
would suck major #$W%% if it did. Oh, and part of my business if hosting
zope ... if you are wondering where the above (off the top of my head
list) comes from. Other than that it looks like the changes will be good
for me.

Oh and some way to have multiple zope versions installed at the same
time would be great as well. :-)

On Mon, 2003-03-10 at 15:41, Chris McDonough wrote:
> Hi folks,
> 
> An effort to improve Zope 2 installation, startup, and configuration for
> Zope 2.7 has been ongoing for some time now (see
> http://dev.zope.org/Wikis/DevSite/Proposals/InstallationAndConfiguration).  
> The effort has reached a point where we believe it is reasonable to
> merge its fruits to the Zope trunk.  Before doing so, however, we want
> to gather input from people who care deeply about Zope configuration and
> installation; particularly those who have significant investments in the
> existing behaviors of Zope 2 configuration and installation.  A bunch of
> stuff is changed (most notably Zope no longer uses environment variables
> as configuration, and instead defers to command-line arguments and
> config file values).
> 
> What follows is a summary of changes, a walk-through of a Zope 2
> installation under this regime, and a list of the configuration-file
> changeable parameters exposed by the current Zope configuration schema.
> 
> Please provide your feedback before this Friday, March 14.  If possible,
> check out and try the new software.  If there are showstopper issues for
> a lot of people, we will consider not performing the merge directly
> after that date.  Otherwise, the merge will be performed at any time
> after the 14th.
> 
> Thanks!
> 
> - C
> 
> -----
> Major changes in Zope 2.7
> =========================
> 
> Zope 2.7 will contain a number of changes related to the build process
> and configuration.  The scripts used to start Zope will also be
> substantially changed.  The implementation of these changes is not yet
> complete, but a substantial portion has been done and is expected to
> be merged into the Zope 2 trunk in the near future.
> 
> The exact schedule for merging these changes has not been determined;
> additional notice will be provided.  These changes are substantially
> based on efforts by Chris McDonough on the "chrism-install-branch".
> 
> Major changes
> -------------
> 
> The following are the most important and user-visible changes compared
> to Zope 2.6 and the current CVS HEAD:
> 
> - Configuration is normally done by editing a config file instead of
>   passing command line options.  The configuration file is handled by
>   the ZConfig package.
> 
> - Environment variables are no longer used for configuration.
> 
> - Building and installing the software have become more clearly
>   distinct; the installation can be separate from the build.
> 
> - Zope 2.7 uses the "instance home" model in the normal case: a script
>   in the installed software is used to create new "instances" of Zope.
>   Each instance is defined by a directory tree containing
>   configuration, scripts, and data.  (For convenience, the instance
>   and the installation can be located in the same directory, and the
>   build area may be used in lieu of an installation if desired.)
> 
> - The z2.py, start, and stop scripts have been replaced by the runzope
>   and zopectl scripts.
> 
> - The runzope/zopectl scripts do not accept the same command-line
>   arguments as z2.py used to accept.
> 
> - The wo_pcgi.py script used to build Zope without PCGI support has
>   been replaced by the common Unix build sequence of configure, make.
> 
> - The pcgi/ directory and the w_pcgi.py script have been removed from
>   the top of the source tree.  The pcgi/ directory may be made
>   available as a separate distribution.  (The application server still
>   has support to allow connections from a PCGI-capable Web server.)
> 
> - The ZServer package has been moved from the top of the source tree
>   into the lib/python/ directory.
> 
> 
> Getting the code today
> ----------------------
> 
> The implementation lives in the "new-install-branch", which is a
> "partial" branch rather than a complete branch: only the files and
> directories which need to be changed have been placed on the branch;
> all other files are used from the CVS HEAD.  The current state of this
> code can be checked out from CVS using the command:
> 
>     cvs -d :pserver:anonymous@cvs.zope.org:/cvs-repository co \
>         -r new-install-branch -f Zope
> 
> The installation instructions in doc/INSTALL.txt has been updated on
> the branch; that file provides detailed information on creating an
> installation and instance.  (A copy has been attached for convenience.)
> 
> A sample installation/startup runthrough
> ---------------------------------------
> 
> The below is the output from a sample install session.  During this
> session, we install the Zope software to /tmp/zopehome and install an
> instance home to /tmp/insthome.
> 
>   [chrism@james software]$ cd NewInstallBranch/
>   [chrism@james NewInstallBranch]$ ./configure --prefix=/tmp/zopehome
> 
>   Configuring Zope installation
> 
>   Testing for an acceptable Python interpreter...
> 
>     Python version 2.1.3 found at /home/chrism/bin/python
>     Python version 2.1.3 found at /home/chrism/bin/python2.1
>     Python version 2.2.2 found at /home/chrism/bin/python2.2
> 
>     The optimimum Python version (2.2.2) was found at
> /home/chrism/bin/python2.2.
> 
>     - Zope top-level binary directory will be /tmp/zopehome.
>     - Makefile written.
> 
>     Next, run make.
> 
>   [chrism@james NewInstallBranch]$ make
>   "/home/chrism/bin/python2.2" inst/setup.py -q build_ext -i
>   <... compilation output elided ...>
> 
>   Zope built. Next, do 'make install' (or 'make instance'
>   to run a Zope instance directly from the build directory).
> 
>   [chrism@james NewInstallBranch]$ make install
>   <... installation output elided ...>
> 
>   Zope binaries installed successfully.
>   Now run '/tmp/zopehome/bin/mkzopeinstance'
> 
>   [chrism@james NewInstallBranch]$ /tmp/zopehome/bin/mkzopeinstance
>   mkzopeinstance requires exactly one argument
> 
>   mkzopeinstance:  Create a Zope instance home.
> 
>   usage:  mkzopeinstance [options] directory
> 
>   Options:
> 
>   -h/--help -- print this help text
>   -u/--user NAME:PASSWORD -- set the user name and password of the
> initial user
> 
>   [chrism@james NewInstallBranch]$ /tmp/zopehome/bin/mkzopeinstance \
>       --user=admin:123 /tmp/inst
>   [chrism@james NewInstallBranch]$ cd /tmp/inst/
>   [chrism@james inst]$ ls
>   bin  etc  Extensions  import  inituser  log  Products  README.txt  var
>   [chrism@james inst]$ bin/zopectl start
>   . daemon process started, pid=2947
>   [chrism@james inst]$ bin/zopectl stop
>   . daemon process stopped
> 
> Changing the configuration via the config file
> ----------------------------------------------
> 
> The Zope configuration file uses the ZConfig API and file format.  See
> the ZConfig documentation PDF at
> http://cvs.zope.org/Packages/ZConfig/doc/zconfig.pdf for more
> information.
> 
> The default Zope configuration file will live in the instance_home's
> /etc directory and will be named 'zope.conf'.  The Zope configuration
> file allows you to change the following configuration variables:
> 
>   instance home
>   client home
>   debug mode
>   effective user
>   production installation (on/off)
>   locale
>   number of zserver threads
>   the python "check interval" (thread switch timing)
>   zserver read only mode
>   pid file name
>   lock file name
>   structured text header level
>   publisher profile file (debugging)
>   cgi environment
>   dns server (hostname resolving in logfiles)
>   ip address (for zserver bindings)
>   http realm
>   automatic quotation of dtml request data
>   security manager stack size
>   security policy implementation (C, Python)
>   skip authentication checking
>   skip ownership checking
>   max number of session objects
>   session "add notify" script path
>   session "delete notify" script path
>   session timeout minutes
>   access rule suppress
>   site root suppression
>   database quota size
>   read only database
>   zeo client name
>   logging (access, event, debug, filenames, to syslog, etc).
>   network servers (http, dav, ftp, monitor, etc)
>   databases (storages, database classes, etc.)
> 
> 
> 
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://mail.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists - 
>  http://mail.zope.org/mailman/listinfo/zope-announce
>  http://mail.zope.org/mailman/listinfo/zope-dev )
-- 
Edward Muller

Interlix - President

Web Hosting - PC Service & Support
Custom Programming - Network Service & Support

Phone: 417-862-0573
 Cell: 417-844-2435
  Fax: 417-862-0572

http://www.interlix.com