Re: [Devel] Time for another point release? [lengthy]

2005-11-30 Thread Loïc Minier
Hi,

On Wed, Nov 30, 2005, Stipe Tolj wrote:
> The issue about config directives that are used explicetly for Mbuni should 
> go also into the direction of an add-on API config mechanism, in order to 
> let add-on extentions configure and build without the explicite need on 
> patching Kannel's source tree.

 That would be good.

> Something like:
>   $ cd gateway
>   $ ./configure  --with-add-on=../mbuni
> then Mbuni's configure would be triggered after Kannel's configure runs and 
> Kannel would proive a mechanism to "incorporate" the "new" config 
> directives into it's gwlib/cfg.c module.

 That would be bad.  That seems to expect the Mbuni sources are available
 when building a Mbuni aware Kannel.  That's particularly bad for
 creating packages, and if Kannel and Mbuni have separate release
 cycles... unless you plan to merge both projects in one big source
 tree.

> At least an approach, if you come up with a better one, please shout, we're 
> open for ideas in this section.

 Please correct me if I'm missing something, but here's what I think is
 happening currently:
 [ Kannel source ]
 - Kannel tree has a config file grammar which describes the possible
   sections, the possible parameters of each section, and the type of
   the parameters
 - a parser is generated at build time to parse the Kannel configuration
 - at run time, some additional checks are performed
 [ Mbuni ]
 - Mbuni patches the grammar file to add its own sections, parameters in
   these sections, and the type of the parameters
 - Kannel needs to be rebuilt, but you only need Mbuni's Kannel patch to
   build (not the full Mbuni source) and the resulting Kannel can be run
   without Mbuni installed
 - binaries from Kannel and Mbuni are built with a Kannel lib which can
   parse the configuration

 What you'd like to do is something in the lines of keeping more grammar
 definitions from different projects in Kannel, and including them
 conditionnally.

 I'm not sure that's the way to go, for multiple reasons:
 - this whole discussion sounds like reinventing the wheel (whats more
   basic than parsing a configuration file?), I'm surprized that Kannel
   isn't based on some general library providing the service (I can only
   think of license issues, or maybe portability?)
 - having a grammar *and* runtime checks seems a bit of duplication to
   me, especially since the grammar isn't very rich (eg IP addresses are
   defined as OCTSTR(), URLs are defined as OCTSTR(), hostnames are
   defined as OCTSTR()), and hence renders the grammar maintenance a bit
   useless
 - having to rebuild Kannel each time a third party config items change
   is quite bad (each time one Kannel based project releases, Kannel
   needs a rebuild, think of package distributions)

 Again, this is from an external eye, so I hope you will correct the
 mistakes in my remarks, and in the following suggestions:
 - you could use a very simple syntax, and a very stupid parser, which
   simply ignores things it doesn't know about, and move all checks at
   runtime, this permits implementing "foo is deprecated" parameters,
   and this lets each application bark about things it knows about
 - you could use a schema system, similar to the current one, but with a
   runtime component based schema validation, for example "GConf"
   applications drop a schema describing their configuration parameters,
   types, and default values, and then request values to the gconf
   library
 - you could pass whole configuration file sections to dynamic modules
   or let the modules extend the syntax when they're present at runtime
   (eg what Apache does), but this is complicated and heavy to implement
 - you could use another configuration library, if you find one that
   fits your license, and is available on the platforms you target, and
   use its model

 At all rates, please keep configuration handling quite separated from
 Kannel and make sure third party modules can build out of tree.

   Cheers,
-- 
Loïc Minier <[EMAIL PROTECTED]>

___
Devel mailing list
Devel@mbuni.org
http://mbuni.org/mailman/listinfo/devel_mbuni.org


Re: [Devel] Time for another point release?

2005-11-30 Thread Paul Bagyenda
Your ideas sounds just about right. Let me know what we'd need to do  
on the mbuni side of things to (finally) get Kannel + Mbuni builds  
behaving right.

On Nov 30, 2005, at 15:32, Stipe Tolj wrote:


Paul Bagyenda wrote:


Sounds good.
 FYI: The only points in the mbuni patch that are not of general   
interest have to do with the config params. All else should really  
be  in Kannel.


yep, agree... I'm currently reviewing the patch and will commit  
changes to Kannel's CVS.


The issue about config directives that are used explicetly for  
Mbuni should go also into the direction of an add-on API config  
mechanism, in order to let add-on extentions configure and build  
without the explicite need on patching Kannel's source tree.


Something like:

  $ cd gateway
  $ ./configure  --with-add-on=../mbuni

then Mbuni's configure would be triggered after Kannel's configure  
runs and Kannel would proive a mechanism to "incorporate" the "new"  
config directives into it's gwlib/cfg.c module.


At least an approach, if you come up with a better one, please  
shout, we're open for ideas in this section.


Stipe

mailto:stolj_{at}_wapme-group.de
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf, NRW, Germany

phone: +49.211.74845.0
fax: +49.211.74845.299

mailto:info_{at}_wapme-systems.de
http://www.wapme-systems.de/
---

___
Devel mailing list
Devel@mbuni.org
http://mbuni.org/mailman/listinfo/devel_mbuni.org



___
Devel mailing list
Devel@mbuni.org
http://mbuni.org/mailman/listinfo/devel_mbuni.org


Re: [Devel] Time for another point release?

2005-11-30 Thread Stipe Tolj

Paul Bagyenda wrote:


Sounds good.

 FYI: The only points in the mbuni patch that are not of general  
interest have to do with the config params. All else should really be  
in Kannel.


yep, agree... I'm currently reviewing the patch and will commit changes to 
Kannel's CVS.


The issue about config directives that are used explicetly for Mbuni should go 
also into the direction of an add-on API config mechanism, in order to let 
add-on extentions configure and build without the explicite need on patching 
Kannel's source tree.


Something like:

  $ cd gateway
  $ ./configure  --with-add-on=../mbuni

then Mbuni's configure would be triggered after Kannel's configure runs and 
Kannel would proive a mechanism to "incorporate" the "new" config directives 
into it's gwlib/cfg.c module.


At least an approach, if you come up with a better one, please shout, we're open 
for ideas in this section.


Stipe

mailto:stolj_{at}_wapme-group.de
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf, NRW, Germany

phone: +49.211.74845.0
fax: +49.211.74845.299

mailto:info_{at}_wapme-systems.de
http://www.wapme-systems.de/
---

___
Devel mailing list
Devel@mbuni.org
http://mbuni.org/mailman/listinfo/devel_mbuni.org