[Zope-dev] Zope RPMs/debs and Linux FHS

Adam Manock abmanock@earthlink.net
13 Oct 2002 12:15:42 -0400


Looks good, 

I was planning to start from scratch with building a RPM for 2.6 
that would work on at least RedHat 8.x AND 7.x.. Coincidentally,
this is something I planned to start on tomorrow! :-)

Instead, I'll take a few hours tomorrow to test your spec on 
RedHat 8.0, it would be *really* good if this could be the basis
of and future 2.6 / 2.7 packaging efforts...

> - anybody has opinions on the packaging layout.  Why is it advantageous
>   to have many packages rather than one?

Zope, Zope-zserver and Zope-PCGI packages seem like a good idea.
Most RPM dists seem to have at least a "-server" sub package if they
provide a daemon (eg postgresql). Init scripts, the "data" dir, etc 
all go in the "-server" subcomponent

[adam@blackbox adam]$ rpm -qa | grep postgresql
postgresql-7.2.2-1
postgresql-server-7.2.2-1
postgresql-libs-7.2.2-1
[adam@blackbox adam]$ rpm -ql postgresql-server
/etc/rc.d/init.d/postgresql
/usr/bin/initdb
/usr/bin/initlocation
/usr/bin/ipcclean
/usr/bin/pg_ctl
/usr/bin/pg_passwd
/usr/bin/postgres
/usr/bin/postmaster
/usr/lib/pgsql
/usr/lib/pgsql/backup
/usr/lib/pgsql/backup/pg_dumpall_new
/usr/lib/pgsql/plpgsql.so
/usr/share/locale/cs/LC_MESSAGES/postgres.mo
/usr/share/locale/de/LC_MESSAGES/postgres.mo
/usr/share/locale/hu/LC_MESSAGES/postgres.mo
/usr/share/locale/ru/LC_MESSAGES/postgres.mo
/usr/share/locale/zh_CN/LC_MESSAGES/postgres.mo
/usr/share/locale/zh_TW/LC_MESSAGES/postgres.mo
/usr/share/man/man1/initdb.1.gz
/usr/share/man/man1/initlocation.1.gz
/usr/share/man/man1/ipcclean.1.gz
/usr/share/man/man1/pg_ctl.1.gz
/usr/share/man/man1/pg_passwd.1.gz
/usr/share/man/man1/postgres.1.gz
/usr/share/man/man1/postmaster.1.gz
/usr/share/pgsql
/usr/share/pgsql/pg_hba.conf.sample
/usr/share/pgsql/pg_ident.conf.sample
/usr/share/pgsql/postgres.bki
/usr/share/pgsql/postgres.description
/usr/share/pgsql/postgresql.conf.sample
/var/lib/pgsql
/var/lib/pgsql/.bash_profile
/var/lib/pgsql/backups
/var/lib/pgsql/data

> - anybody has any opinions of where Zope files distributed via RPMs and
>   debs should really go, especially wrt to the Linux FHS.  I'm not sure
>   there is a right answer, but I don't know beans about this, so I 
>   figure I'll ask.  A file named 'Zope.spec.in' is attached to this 
>   email which is the input file to create a Zope RPM spec file during 
>   the make process, to give a better idea of how this works.

AFAIK on RedHat /opt or "mixed in" (/usr/bin etc) is fine, the argument
goes "if RPM tracks all the files for you, why use /usr/local or /opt?"
/opt is used too, the only problem being that it isn't often created
separate from the "/" partition, so there often isn't alot of space
there! 

One "trick" to note is for creating the inituser (from 2.5.1):

# Declare the Superuser of the Default Zope Project
  rm $RPM_BUILD_ROOT/usr/share/zope/inituser
  %{PYTHONAPP} $RPM_BUILD_ROOT/usr/bin/zpasswd -u admin -p 123
$RPM_BUILD_ROOT/var/zope/inituser
  chmod 0640 $RPM_BUILD_ROOT/var/zope/inituser
 
Adam