Policy for Dependencies

Christoph Cullmann cullmann at absint.com
Tue Oct 13 15:54:43 UTC 2015


Hi,

>> I'm not sure whether it's the best solution. The problem you try to fix with
>> it is distros breaking packaging. I agree with Martin K that this is a huge
>> problem and that it will happen - since the automation of packages I also
>> experienced that nobody looks at the output of optional dependencies and the
>> packaging breaks.
>> 
>> Given that I don't think we want an ENABLE_MINIMAL_DEPENDENCIES switch, but
>> rather a mode which will break if not found during distro builds.
>> 
>> Something like a "STRONGLY_RECOMMENDED" which is turned into "REQUIRED" if
>> distros build (and maybe also kdesrc-build), but is optional if anybody else
>> builds.
>> 
>> But I'm not sure how this could be done. Anyway, long story short: I think we
>> need the other way around. It should be optional by default, but should be
>> turned into stricter requirements on the linux distro case.
> I would be happy with such an solution, too.
> But I am not that optimistic that this is easy to achieve, how to ensure all
> distros
> turn this magic on?
> 
> The opposite direction at least would avoid the distro breakage and still allow
> optional compiles for the "3rd party wants less dependencies" or "other platform
> wants
> less dependencies" use case.
> 
> Even if not optimal, some ENABLE_MINIMAL_DEPENDENCIES would in my eyes still
> better than
> the current situation, were either we have optional stuff that will make us
> unhappy because
> of broken distro packages or the devs unhappy that need to patch dependencies
> out on their own.
> 
> e.g. Kåre did in most cases exactly that for the Windows build
> (git at git.kde.org:scratch/sars/kate-windows),
> which IMHO is sad.

My ECM proposal would be the following:

1) add to KDECMakeSettings.cmake:

################ Dependencies mode ####################################

if(KDE_SKIP_FULL_DEPENDENCIES)
    unset(KDE_FIND_REQUIRED_OR_OPTIONAL)
    set(KDE_TYPE_REQUIRED_OR_OPTIONAL "OPTIONAL")
else()
    set(KDE_FIND_REQUIRED_OR_OPTIONAL "REQUIRED")
    set(KDE_FTYPE_REQUIRED_OR_OPTIONAL "REQUIRED")
endif()

2) use that e.g. in knotifications:

find_package(Phonon4Qt5 4.6.60 ${KDE_FIND_REQUIRED_OR_OPTIONAL} NO_MODULE)
set_package_properties(Phonon4Qt5 PROPERTIES
   DESCRIPTION "Qt-based audio library"
   TYPE ${KDE_TYPE_REQUIRED_OR_OPTIONAL}
   PURPOSE "Required to build audio notification support")

That would at least make people happy that want no missing features and allow
me and others to work on minimizing the dependencies without annoying others.

If there is some magic way to set KDE_SKIP_FULL_DEPENDENCIES for non-distro builds,
that could be added later inside KDECMakeSettings.

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