Policy for Dependencies
Christoph Cullmann
cullmann at absint.com
Sun Oct 18 08:53:08 UTC 2015
Hi,
I have now all my patches in frameworks to build some KWrite/Kate application
bundle that doesn't instantly crash (and windows builds seem to be nicer, too,
without that many problems to locate assets).
My last patch missing makes still stuff optional:
https://git.reviewboard.kde.org/r/125616/
Could we come up with some "have a global switch in ECM or not" and if not,
how to do such things?
Greetings
Christoph
----- Am 14. Okt 2015 um 16:03 schrieb Alex Merry alex.merry at kde.org:
> On 2015-10-13 16:54, Christoph Cullmann wrote:
>> 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.
>
> I'm not a fan of the variable names - in particular, I think your
> original idea for an option name was better than
> "KDE_SKIP_FULL_DEPENDENCIES" - the existing KDE_SKIP_* variables are
> meant as things project authors define if they only want part of the
> module functionality, rather than as something for users/packagers to
> set. KDE_FIND_REQUIRED_OR_OPTIONAL also tells me essentially nothing
> about *why* it might be REQUIRED or optional when I'm reading the
> source.
>
> That said, I'm on board with the overall idea.
>
> Alex
>
> _______________________________________________
> Kde-frameworks-devel mailing list
> Kde-frameworks-devel at kde.org
> https://mail.kde.org/mailman/listinfo/kde-frameworks-devel
--
----------------------------- 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