SER's configuration files can be quite complex, both to understand as a newcomer and to manage for experts. The challenge is to make getting started easy, while keeping the power of the configuration language. Thus, as an example, some would like to simplify ser.cfg so they can use: if(nated) { fix_nating() } while others need a lot more control.
The SER - Getting Started configuration files and document quickly became a starting point for newcomers. Also, as you normally modify and add to your first configuration, the Getting Started files have formed the basis for many configuration files in production.
We realized that updating and adding functionality to the Getting Started configurations quickly became time-consuming. So, we needed a better way of managing and improving these reference configurations.
The result of these needs is a new build system for SER configuration files where you use a configure script to generate your basic configurations and run make to create the ser.cfg configuration file. Once you have run configure, you can edit some (simple) configuration files to change how ser.cfg is created. You can also add code snippets of your own.
In order to make this system something people can grow with (and something experts would like to migrate their configs to), the build system is built around a generic splitting of ser.cfg into smaller pieces, so that different logical parts of your SER config can be managed in separate files. In its simplest form, the build system is just an empty structure of files you can use to manage your ser.cfg code. In its most advanced form, you can use code from the Getting Started files and add your own code and even modify the way things work (this last part is not yet ready in the initial version of the build system). The idea is that migration of your ser.cfg will become easier if you use the build system.
Finally, a logging system has been included. It offers a powerful way to unify your logging across your ser.cfg, as well as multiple ways of controlling when logging is done (you can for example turn off logging for a production server, both by removing logging code and by dynamically turning it on and off).
Well, I think that's enough for an introduction. The announcement can be found here: http://www.iptel.org/finally_making_ser_accessible_to_newcomers_while_keepin...
while the build system documentation (and actual code until it gets into CVS) can be found at: http://iptel.org/ser/doc/buildsystem
Play with it, test it, and please send your comments, ideas, suggestions to serdev or serusers! g-)