Policy for Dependencies

Christoph Cullmann cullmann at absint.com
Tue Oct 13 21:59:33 UTC 2015


Hi,

>> Ok, after the reasonable criticisms of making the sound stuff optional in
>> knotifications per default:
>> 
>> Could we have some ECM switch like (name is just an example):
>> 
>> option(KDE_ENABLE_MINIMAL_DEPENDENCIES "Will switch as many dependencies
>> from required to optional as possible, this might lead to a loss of
>> functionality." OFF)
>> 
>> Based on that option, we can make stuff optional and we will have best of
>> two worlds:
>> 
>> 1) no by accident loss of functionality and bug reports (like feared by
>> some, and I must confess that might be realistic) 2) an easy to use
>> solution for people wanting minimal dependencies as this is "one" switch
>> and it will work on all operating systems
> 
> Why a global one and not one switch per posible optional dependency?
> 
> cmake -DMAKE_PHONON_OPTIONAL=true
A global switch would make it easy.

You just can switch that one for all your frameworks builds and be done.
Otherwise, you again need to scan in each framework which thing "can" be turned off
and which thing is a real hard dependency if the cmake fails.

That doesn't sound very friendly to people trying out our stuff for their 3rdparty tools.

With such a global switch, we can advocate:

1) default cmake config: all things as it should be with all features
2) you want minimal dependencies, turn this on and compile, if something is still required,
it is required, unless you start to patch the stuff

Beside: That will make it easy to implement for me and others, if something can be made optional,
one can use that globally exported vars to do so without inventing for everything yet an other
switch. That does not prevent that people add additional more fine grained switches to their
frameworks, as long as the global one still works, IMHO.

Actually I am a bit confused that this is such a controverse thing, btw.

At the moment, the situation is a mess, for all things != Linux. People start to fork the stuff
and strip it down, people have their homebrew/macports/windows patches located everywhere
to patch out things.

As Jaroslaw said, ATM it is a bit strange that you need libxml/xslt just to build anything non-trivial,
because of doctools. I made that already optional and I am happy to guard that with the global switch,
too, to avoid people missing docs by accident on Linux.

I am willing to implement the (rather trivial) extension for ECM and redo all my current patches with
that thingy and all future ones, too. It will fix the issue for != Linux ports and it will still provide
the safety missed by my premature patch for e.g. knotifications that Martin complained about (and yeah,
he is right, he/we might get bugreports because of it, that is bad).

But I am not really willing to advocate a solution where the default is again that one needs
to fiddle around with various CMake command line arguments just to have the same effect one argument
could have just for the "fine grained" making stuff optional thingy, which IMHO is not that great,
we don't disable stuff globally, we just make it optional, you still can compile everything like you like,
if you provide it.

Greetings
Christoph

-- 
----------------------------- Dr.-Ing. Christoph Cullmann ---------
AbsInt Angewandte Informatik GmbH      Email: cullmann at AbsInt.com
Science Park 1                         Tel:   +49-681-38360-22
66123 Saarbrücken                      Fax:   +49-681-38360-20
GERMANY                                WWW:   http://www.AbsInt.com
--------------------------------------------------------------------
Geschäftsführung: Dr.-Ing. Christian Ferdinand
Eingetragen im Handelsregister des Amtsgerichts Saarbrücken, HRB 11234


More information about the Kde-frameworks-devel mailing list