[Zope-dev] Opinions wanted: clean distribution

Behrens Matt - Grand Rapids Matt.Behrens@Kohler.Com
Mon, 05 Nov 2001 15:33:20 -0500


I'm experimenting with a few ideas for a "clean distribution" of Zope; 
i.e. one that builds on the INSTANCE_HOME concept to produce a 
production-ready layout for UNIX-like systems.  My hope is that it will 
someday make life a hell of a lot easier for Zope packagers (such as 
myself) as well as end-users.  I'd love for the Zope install script to 
create this layout by default, and am certainly willing to dedicate code 
to the effort.

I'm looking at a software home directory like this:

BINDIR 
	zopectl
		zopeinst

LIBEXECDIR 
pcgi-wrapper

LIBDIR 
	zope	(eveything from lib/python)
			Products
			Extensions [1]
			ZServer [1]
			inst [1]
			utilities [1]

ETCDIR 
	zope	access
			inituser
			instances [2]

VARDIR 
	zope	INSTANCE [2]	db [3]	Data.fs (et al.)
					run [4]	*.pid
					gadfly [3]
					[5]
					

[1]  I am not sure if putting these folders here clashes with anything. 
  Extensions, especially, I am worried about.

[2]  Instances should be named and built by 'zopeinst', which takes care 
of reasonably secure default permissions.  The 'instances' file would 
list these along with start parameters and flags that zopectl 
understands; zopectl could be used to shutdown/startup zope instances in 
system startup/shutdown scripts this way.

[3]  These directories should be readable and writable only by the user 
who runs Zope.

[4]  This directory, if Zope is started as root, should be writable only 
by root.

[5]  Other instance-specific files such as Zope.cgi would live here. 
start/stop duties would be taken over by zopectl.

The top level directories (BINDIR, LIBEXECDIR, LIBDIR, ETCDIR, VARDIR) 
would be configured at install time but would probably default to 
/usr/local/bin, /usr/local/libexec (or sbin for non-BSDers), 
/usr/local/lib, /usr/local/etc, /usr/local/var.

I'm really looking for compatibility issues that anyone has or any 
suggestions for improvement.  I plan to make a proposal out of this 
eventually.  Please make sure you cc me at home (matt@zigg.com) on replies.

-- 
Matt Behrens <matt.behrens@kohler.com>
System Analyst, Baker Furniture