Forum OpenACS Development: Re: moving the default SERVERHOME. Again.

Collapse
Posted by Lamar Owen on
Some good ideas here in this thread thus far.

For RPMs, if I were building them to full LSB compliance as if they would become OS standard, I would use a slightly different structure.  Understand that installing an RPM implies root access for the installer, which implies the users will have root's ear later.

/etc/openacs/$servicename for the tcl, certs, etc configuration. (or /etc/aolserver)
/usr/lib/aolserver for aolserver shared objects
/usr/bin/nsd or /usr/lib/aolserver/nsd (there is precedent for both)
/var/www/$servicename for web data (alternatively, /var/lib/aolserver/$servicename)

AOLserver RPM would use all of these; OpenACS RPM could be a relocatable RPM that installation would place into the right area (or a non-relocateable one that would put the ready-to-install template into, say, /usr/share/openacs, with an installer script that would create the instance directory, initial tcl configuration, and place the template into the /var/www area).

There may be good reason to use some other directories in addition to these.  Scripts to create additional instances  should be included, as should proper initscripts.  Editing inittab from an RPM scriptlet would not be a good thing, though.  If AOLserver gets its own supervisory capability ala daemontools, then that allows a more straightforward, standard, LSB-compliant initscript.  Daemontools probably never will meet LSB, so we can't count on it.

There is no reason to touch /home or /usr/local -- in fact, an LSB-compliant distribution cannot touch /usr/local in distribution packages.  If our packages got into a distribution, they would be changing these anyway.

These are distribution standard locations, learned the hard way maintaining a distribution-included RPM for four years.
Collapse
Posted by Jonathan Marsden on
Lamar wrote:
/etc/openacs/$servicename for the tcl, certs, etc configuration. (or /etc/aolserver)
/usr/lib/aolserver for aolserver shared objects
/usr/bin/nsd or /usr/lib/aolserver/nsd (there is precedent for both)
/var/www/$servicename for web data (alternatively, /var/lib/aolserver/$servicename)

Since we'd like the AOLserver RPM to work for people who want AOLserver but not OpenACS, I'd suggest /etc/aolserver rather than /etc/openacs. (My OpenACS 3.2.5 RPMs used /etc/nsd, but /etc/aolserver is easier for newcomers to remember).

Since some installations may want to run Apache and AOLserver on the same machine (bound to different ports or different IP addresses), re-using /var/www might lead to conflicts? So /var/lib/aolserver is preferable IMO. (And it is what my 3.2.5 RPMs used).

I'd opt for /usr/bin/nsd rather than /usr/lib/aolserver/nsd for the binary, but I don't have a solid reason for prefering one over the other (my older AOLserver RPMs used /usr/bin/nsd).

We're now starting to use OpenACS "for real" at my work, so that gives me hope that I might actually be able to find time to build a releaseable set of RPMs for AOLserver and OpenACS 4.6.3 sometime... but given the long delay, if someone else wants to do the work, feel free -- just let me know, please, so that we don't accidentally duplicate our efforts!

Jonathan