Policy for Dependencies

Jaroslaw Staniek staniek at kde.org
Tue Oct 13 20:07:18 UTC 2015


Hi,
Just wanted to say I'd like to minimize dependencies for Kexi on Windows
too, among other things.

With my realistic hat on, risky ideas are like:
- depending on kdecoration to just have default icons
- build-time depending on xml/docbook processing tools to just have core
KF5 libs built
- depending on solution like dbus when native solution on given platform
exist (it's a bit like linking to wine libs to use MS DDE)

I am afraid that unless building is easy and dependencies are reasonably
minimal ('small but not smaller than possible'), quite a few 3rd-party
developers will skip the 'official' KF5 and will go with forking to make it
work quickly. In the best case we'd notice that code on GitHub or so. This
is likely - people rarely have time to do things right; we evangelizing
them to re-create feature-packed subsystem that mimics Linux infra wouldn't
help. It's not _this_ kind of interest that made them interested in KF5.

Christoph mentioned the example with sound, which sincely belongs to this
group too.

In kdelibs4 times even "KDE's outside world" crown jewels like Krita or
Nokia mobile ports of Calligra apps had to fork/cut off large portions of
kdelibs. Let's avoid that...


On 13 October 2015 at 17:54, Christoph Cullmann <cullmann at absint.com> 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.
>
> 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
> _______________________________________________
> Kde-frameworks-devel mailing list
> Kde-frameworks-devel at kde.org
> https://mail.kde.org/mailman/listinfo/kde-frameworks-devel
>



-- 
regards, Jaroslaw Staniek

KDE:
: A world-wide network of software engineers, artists, writers, translators
: and facilitators committed to Free Software development - http://kde.org
Calligra Suite:
: A graphic art and office suite - http://calligra.org
Kexi:
: A visual database apps builder - http://calligra.org/kexi
Qt Certified Specialist:
: http://www.linkedin.com/in/jstaniek
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20151013/cc2d7cce/attachment.html>


More information about the Kde-frameworks-devel mailing list