To update on this, I spent some time yesterday playing around with our old obsolete rpm spec file, and ultimately ended up creating a totally new one from scratch. I've not committed this back to subversion yet because there is still some minor things to address (and decide upon). The end result of this will be a .spec file that anybody will then be able to use in order to create a set of RPM packages. I've gone for a set of packages because this way we can support various CEGUI options without burdening the main CEGUI package by pulling in lots of unnecessary dependency packages.
Basically the .spec file that we will now support will produce the following 15(!) packages:
- CEGUI: Contains the main shared libraries configured with Expat and SILLY as default loadable modules. Basically contains: CEGUIBase, CEGUIFalagardWRBase, CEGUIExpatParser and CEGUISILLYImageCodec.
- CEGUI-devel: Contains the headers and libs required for development.
- CEGUI-opengl: Contains the CEGUIOpenGLRenderer shared library.
- CEGUI-opengl-devel: Contains the development lib for the above.
- CEGUI-ogre: Contains the CEGUIOgreRenderer shared library.
- CEGUI-ogre-devel: Contains the development lib for the above.
- CEGUI-irrlicht: Contains the CEGUIIrrlichtRenderer shared library.
- CEGUI-irrlicht-devel: Contains the development lib for the above.
- CEGUI-lua: Contains the Lua script module shared library.
- CEGUI-lua-devel: Contains the development lib for the above.
- CEGUI-devil: Contains the DevIL based image codec module.
- CEGUI-freeimage: Contains the FreeImage based image codec module.
- CEGUI-xerces-c: Contains the Xerces-C++ based XML parser module.
- CEGUI-libxml: Contains the libxml2 based XML parser module.
- CEGUI-tinyxml: Contains the TinyXML based XML parser module.
While producing 15 packages might seem slightly over the top, I feel this allows us (or downstream packagers if they follow suit) to more accurately reflect the granularity of CEGUI - as opposed to a single monolithic package that either brings in dependencies that the user might not want or does not provide the module(s) that they do want. Typically an end user would install some app that uses CEGUI which will correctly bring in only the modules needed - which in 99% of cases will be the CEGUI package and one of the renderer packages. For a developer, again you will typically need the CEGUI-devel package and a -devel package of the renderer you're going to be using. The lua support package is probably one that could get used quite a bit. I only anticipate rare cases when the other packages would ever be needed in reality.
The spec file that we commit will have been produced on a fedora 12 installation, so there may be minor alterations required for support in other distros. Also of note is that the first version of this new .spec that gets committed will not be the 'final' version, because we'll be adding some missing bits (documentation) and probably making the overall process more configurable.
I have a view to commit the .spec file tomorrow, comments before and after the commit are very welcome
CE.