Development Review
Goal
This page is meant to provide information on the Development Review process for Howto's and Contribs. The goal of this is to improve the quality of Howto's and Contribs and provide safe instructions and contribs that can be installed on production systems.
Review points
Contribs
To make sure that contribs are save to install for all users packages are reviews on a list of points.
No binary content
A package should not contain binary content, this is in violation with SME Server Development standards and the license under which it is developed.
Do not include source that is already available as RPM
Since a lot of software is already packaged by others we do not need to do so ourself. Since SME Server has an additional internal configuration systems thos packages will not run on SME Server out of the box. The best way to have thos packages integrate smoothly into SME Server is to write a so-called integration RPM, which contains the neccessary files and instructions that are needed to install the package on SME Server. This integrational RPM should have a rquirement for the original package. SME Server has approved the use of a few repositories for this purpose, those are RPMForge (Dag, Dries and ATrpms), Fedora EPEL and Centos repositories.
%pre and %post macros
The package should not contain any %post and %postun macros and should make minimal use of %pre and %preun scripts. Most of the instructions usually written in those sections can be implemented using a better, more robust way. Developers please have a look at the SME Server Developer's Guide and if still unclear feel free to ask on the Development Information mailing list.
Removal of files
All files in a contrib should be owned by that contrib and included in the package. As the installer takes care of removing those files contrib authors should not need to add removal instructions to the macro sections of the SPEC file.
Database initialization
Some contribs need to make entries to or even generate complete databases for the internal configuration system, of done so this should not be done in the SPEC file but should be placed as files in the source tree of the RPM.