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