Re: Policy for Dependencies

2016-03-24 Thread Martin Graesslin
On Tuesday, October 13, 2015 8:42:43 AM CEST Christoph Cullmann wrote:
> Hi,

thanks for raising this topic. I think it's very important that we have a 
general strategy for frameworks and not have thousands of micro-fixes in 
various frameworks.

> 1) "Normal" deployment like we do in on Linux => just installing it with all
> features if possible. 2) "Application Bundles/Installer" like we will have
> to do it on Win/Mac and 3rdparty Linux people will need to do.
> 
> I think the easiest solution is to make stuff optional. That will avoid ugly
> "if (WIN OR APPLE OR ANDROID)".. hacks in CMake and allow people to still
> build stuff with that deps on that operating systems if really wanted.

Given from the no-X11 fixes I think that we should avoid all if (WIN OR APPLE) 
as that:
a) is hard to maintain
b) doesn't scale
c) not testable for the devs working on Linux

Given that it should be feature based and we should make as much usage of the 
built in CMake features we have. I really like the approach we have now found 
for X11 on OSX: disable certain find modules at a global level.

I think that is something which could be applied for more things. Control 
through global ECM settings. This could if we don't want to have global 
changes also through convenient command switches:

e.g. cmake -DECM_BUILD_FOR_OSX_APPBUNDLE

which then implies e.g. no phonon and no dbus and ...

Cheers
Martin

signature.asc
Description: This is a digitally signed message part.
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-20 Thread Kevin Ottens
Hello,

On Thursday 15 October 2015 02:04:45 Aleix Pol wrote:
> On Wed, Oct 14, 2015 at 10:28 PM, Kevin Ottens  wrote:
> > Hello,
> > 
> > On Wednesday 14 October 2015 21:20:33 Christoph Cullmann wrote:
> >> Therefore my goal for frameworks is to make them actually as easy usable
> >> for people in that situation. We advertise that a lot everywhere but at
> >> the
> >> moment that is just not true beside for really simple stuff like
> >> "karchive".> 
> > Just to put some historical perspective into this particular point. It
> > *is*
> > true, but for tier 1 and tier 2 frameworks only. That's why the dependency
> > rules of the tier system were designed the way they are.
> > 
> > So if you are "people in that situation" as described by Christoph in his
> > email: stay away from anything which is above tier 2 or make it an
> > optional dependency. You still have more than 30 frameworks to pick from
> > for the other ones YMMV, you should be warned headaches might or might not
> > be ahead with tier 3.
> > 
> > If you are someone working on a given framework and you are just content
> > of having it in KF5's tier 3, but did no refactoring or API work to get it
> > to tier 2 or tier 1: you're missing the point of KF5's tier and type
> > organization. You are also prematurely shrinking its potential user base
> > and that should bother you, really.
> > 
> > If you remember the talk I gave back in the days about KF5, I mentioned
> > that the tier and type matrix is also a *maturity* system. It is our
> > responsibility to push the frameworks down the stack as much as possible.
> > Since then, I see lots of frameworks appearing, I don't see many of them
> > lowering their tier...
> 
> Would it make sense then to define as part of the tier only the
> mandatory dependencies?

Perhaps that's what should happen indeed. I guess there's some potential 
problems hiding though and it should be carefully evaluated. I also consider 
that as the lesser path to be honest.

I much prefer some of the things we did back then with runtime detection 
instead for soft-dependencies. What we did to get KMessageBox down the stack 
is IMO what should be done at more places. Of course that can't be done 
everywhere (especially if API is involved).

So instead of bending the rules or "just" providing compile time options to go 
fast, I'd rather see real thinking put into reducing the dependencies when 
problems arise. But hey, it's not like I'm going to do the work anyway. :-)

> Then the variable could be, instead of what Christoph proposed,
> something like KDE_ENFORCE_ALL_FRAMEWORKS.

Orthogonal aspect IMO. See David's summary on the build system knobs.

Regards.
-- 
Kévin Ottens, http://ervin.ipsquad.net

KDAB - proud supporter of KDE, http://www.kdab.com


signature.asc
Description: This is a digitally signed message part.
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-19 Thread Alex Merry

On 2015-10-19 17:53, Christoph Cullmann wrote:

On Sunday, 18 October 2015 14:45:43 BST David Faure wrote:
2) A global switch "everything that can be optional, is now optional" 
sounds
strange to me too. If it's optional, it's optional. (The description 
for
the suggested KDE_ENABLE_MINIMAL_DEPENDENCIES added "this might lead 
to a

loss of functionality". Well, that is *always* true when an optional
dependency isn't found - otherwise it would be useless). Really, is 
there

any sense in saying that a dependency is optionally optional?

2.1) I can see how the purpose was to let the default build be "with 
as many
dependencies as possible". But for that maybe we can have a global 
switch
for "fail if something optional was not found", for distros (and CI) 
to
make sure they have *everything* enabled. Would this actually work 
for

distro packagers? Do they have *all* the dependencies available?


I think it's more about the distinction (vague as it may be) between
"optional" and "recommended" dependencies (FeatureSummary provides 
this
distinction, but we very rarely use it). I think the idea is to be 
able to

distinguish between "if this exists on your system, we will attempt to
integrate with it" dependencies and "if we don't make use of this, a 
feature

might be missing that users would expect to be there".

(As a side note, we may have that package A depends on package B *with
optional feature C*. In particular, bits of Plasma may well require or
recommend that certain Frameworks are built with certain features 
enabled that
rely on optional dependencies. This is fine - see 
KArchiveConfig.cmake.in for

how to deal with that.)

I think the idea was essentially to have an easy way to cause a build 
failure
if the recommended dependencies weren't found (possibly with the 
default being

the failure mode).

I'm fairly on the fence about the usefulness of that, TBH, 
particularly if
your idea below solves the "bug reports from feature-deprived builds" 
issue.


An argument was made that optional deps create more work for 
maintainers,
who can't know, in bug reports, whether the dep was enabled or 
disabled
(i.e. more configurations to handle). That is true. The solution 
isn't

however to make everything mandatory. So we should solve this, after
accepting the existence of optional deps. One random idea could be
(automatically) installing a file, from each framework, with the list 
of
optional deps that were found. Then when handling bug reports you can 
ask
for that file -- or drkonqi could grab them all and concatenate them 
in a

readable way.


This seems like a useful thing to do, especially when automating it 
via

DrKonqi.

The way KArchive does that is interesting.
Would this be e.g. a way to say: Ok, we can compile configwidgets 
without KAuth

if we skip the KCM part and then write that inside our config?


Yes, you could do that, and then Plasma, for example, could check the 
variable that was set and complain if KConfigWidgets had been compiled 
without the KCM. Downstream packages could also use FeatureSummary to 
say something like "KFoo wasn't compiled with feature X, therefore 
feature Y will be disabled for this package".


Atm e.g xmlgui has tremendous many dependencies that are often not 
needed.

Boudewijn made a request to make more stuff optional which is imho a
bit too intrusive
but with not that much work some stuff could be removed:

https://git.reviewboard.kde.org/r/125530/

I would in addition see value in a "this is recommended" switch, that 
leads

to compile failure if recommended stuff is not there or the switch is
toggled off.

That way, even without David's proposed improvements for the bug
reporting, I and
others could make more stuff optional, like audio in notifications,
without it leading
to bugs for the "standard" case of distro packages.


Well, this is the question: is it worth the extra complexity of 
supporting such a switch (and it will introduce a reasonable amount of 
complexity) if we have a way of including feature/dependency information 
in bug reports?


3) A global switch for a dependency, like "don't even look for 
dependency A
in any of the frameworks" brings nothing IMHO. If it's optional and 
not

found, we compile without.


As in my note in (1), I don't think this is something we should be 
setting,
but rather than builders should be setting if necessary - CMake 
provides all
that infrastructure, so we don't need to do anything (with the 
exceptional

case of X11 on Mac, as you noted).
Yep, and btw., the way we do that at the moment for Mac is very 
strange.
If you pass CMake no arguments, you get a strange warning that you 
compile

without X11 support and might either turn this warning of or X11 on.
I would prefer no such info at all, given non-X11 is there the only 
official way
to go, Qt not even ships any X11 backend per default. (that you can 
turn it on

with the var is nice, but should not be promoted)



I was playing it safe, given the beha

Re: Policy for Dependencies

2015-10-19 Thread Christoph Cullmann
Hi,

> On Sunday, 18 October 2015 14:45:43 BST David Faure wrote:
>> On Wednesday 14 October 2015 00:33:17 Christoph Cullmann wrote:
>> > Lets see what David thinks about all that.
>> 
>> First: thanks everyone for waiting for my input, I appreciate that (I'm just
>> one more voice though, no dictatorship here).
> 
> But a well-respected voice :-). Also, you're the closest thing we have to a
> "frameworks co-ordinator", in your role as release manager.
Yeah ;=)

> 
>> The various global switches that have been suggested had unintuitive naming,
>> so I will describe my thinking about them by using descriptions instead of
>> actual names:
>> 
>> 1) A global switch "skip anything marked as optional" would be a very bad
>> idea, it would even skip stuff that *is* available. I *think* this wasn't
>> suggested, but I wanted to mention it just in case.
> 
> There may be a certain temptation to view it as an easy solution for those who
> want to build a stripped-down version of (part of) Frameworks without
> accidentally dragging in deps that happen to be on the builder's system. In
> practice, however, anyone doing this would probably want close control over
> the deps (rather than stripping out everything optional), and CMake already
> provides that via some magic variables to disable searching for packages.
+1
Such a switch is not needed, if stuff is optional there are enough ways
to ensure it is not used in a sane way.

> 
>> 2) A global switch "everything that can be optional, is now optional" sounds
>> strange to me too. If it's optional, it's optional. (The description for
>> the suggested KDE_ENABLE_MINIMAL_DEPENDENCIES added "this might lead to a
>> loss of functionality". Well, that is *always* true when an optional
>> dependency isn't found - otherwise it would be useless). Really, is there
>> any sense in saying that a dependency is optionally optional?
>> 
>> 2.1) I can see how the purpose was to let the default build be "with as many
>> dependencies as possible". But for that maybe we can have a global switch
>> for "fail if something optional was not found", for distros (and CI) to
>> make sure they have *everything* enabled. Would this actually work for
>> distro packagers? Do they have *all* the dependencies available?
> 
> I think it's more about the distinction (vague as it may be) between
> "optional" and "recommended" dependencies (FeatureSummary provides this
> distinction, but we very rarely use it). I think the idea is to be able to
> distinguish between "if this exists on your system, we will attempt to
> integrate with it" dependencies and "if we don't make use of this, a feature
> might be missing that users would expect to be there".
> 
> (As a side note, we may have that package A depends on package B *with
> optional feature C*. In particular, bits of Plasma may well require or
> recommend that certain Frameworks are built with certain features enabled that
> rely on optional dependencies. This is fine - see KArchiveConfig.cmake.in for
> how to deal with that.)
> 
> I think the idea was essentially to have an easy way to cause a build failure
> if the recommended dependencies weren't found (possibly with the default being
> the failure mode).
> 
> I'm fairly on the fence about the usefulness of that, TBH, particularly if
> your idea below solves the "bug reports from feature-deprived builds" issue.
> 
>> An argument was made that optional deps create more work for maintainers,
>> who can't know, in bug reports, whether the dep was enabled or disabled
>> (i.e. more configurations to handle). That is true. The solution isn't
>> however to make everything mandatory. So we should solve this, after
>> accepting the existence of optional deps. One random idea could be
>> (automatically) installing a file, from each framework, with the list of
>> optional deps that were found. Then when handling bug reports you can ask
>> for that file -- or drkonqi could grab them all and concatenate them in a
>> readable way.
> 
> This seems like a useful thing to do, especially when automating it via
> DrKonqi.
The way KArchive does that is interesting.
Would this be e.g. a way to say: Ok, we can compile configwidgets without KAuth
if we skip the KCM part and then write that inside our config?

Atm e.g xmlgui has tremendous many dependencies that are often not needed.
Boudewijn made a request to make more stuff optional which is imho a bit too 
intrusive
but with not that much work some stuff could be removed:

https://git.reviewboard.kde.org/r/125530/

I would in addition see value in a "this is recommended" switch, that leads
to compile failure if recommended stuff is not there or the switch is toggled 
off.

That way, even without David's proposed improvements for the bug reporting, I 
and
others could make more stuff optional, like audio in notifications, without it 
leading
to bugs for the "standard" case of distro packages.

> 
>> 3) A global switch for a dependency, like "don't even look for depend

Re: Policy for Dependencies

2015-10-18 Thread Alex Merry
On Sunday, 18 October 2015 14:45:43 BST David Faure wrote:
> On Wednesday 14 October 2015 00:33:17 Christoph Cullmann wrote:
> > Lets see what David thinks about all that.
> 
> First: thanks everyone for waiting for my input, I appreciate that (I'm just
> one more voice though, no dictatorship here).

But a well-respected voice :-). Also, you're the closest thing we have to a 
"frameworks co-ordinator", in your role as release manager.

> The various global switches that have been suggested had unintuitive naming,
> so I will describe my thinking about them by using descriptions instead of
> actual names:
> 
> 1) A global switch "skip anything marked as optional" would be a very bad
> idea, it would even skip stuff that *is* available. I *think* this wasn't
> suggested, but I wanted to mention it just in case.

There may be a certain temptation to view it as an easy solution for those who 
want to build a stripped-down version of (part of) Frameworks without 
accidentally dragging in deps that happen to be on the builder's system. In 
practice, however, anyone doing this would probably want close control over 
the deps (rather than stripping out everything optional), and CMake already 
provides that via some magic variables to disable searching for packages.

> 2) A global switch "everything that can be optional, is now optional" sounds
> strange to me too. If it's optional, it's optional. (The description for
> the suggested KDE_ENABLE_MINIMAL_DEPENDENCIES added "this might lead to a
> loss of functionality". Well, that is *always* true when an optional
> dependency isn't found - otherwise it would be useless). Really, is there
> any sense in saying that a dependency is optionally optional? 
> 
> 2.1) I can see how the purpose was to let the default build be "with as many
> dependencies as possible". But for that maybe we can have a global switch
> for "fail if something optional was not found", for distros (and CI) to
> make sure they have *everything* enabled. Would this actually work for
> distro packagers? Do they have *all* the dependencies available?

I think it's more about the distinction (vague as it may be) between 
"optional" and "recommended" dependencies (FeatureSummary provides this 
distinction, but we very rarely use it). I think the idea is to be able to 
distinguish between "if this exists on your system, we will attempt to 
integrate with it" dependencies and "if we don't make use of this, a feature 
might be missing that users would expect to be there".

(As a side note, we may have that package A depends on package B *with 
optional feature C*. In particular, bits of Plasma may well require or 
recommend that certain Frameworks are built with certain features enabled that 
rely on optional dependencies. This is fine - see KArchiveConfig.cmake.in for 
how to deal with that.)

I think the idea was essentially to have an easy way to cause a build failure 
if the recommended dependencies weren't found (possibly with the default being 
the failure mode).

I'm fairly on the fence about the usefulness of that, TBH, particularly if 
your idea below solves the "bug reports from feature-deprived builds" issue.

> An argument was made that optional deps create more work for maintainers,
> who can't know, in bug reports, whether the dep was enabled or disabled
> (i.e. more configurations to handle). That is true. The solution isn't
> however to make everything mandatory. So we should solve this, after
> accepting the existence of optional deps. One random idea could be
> (automatically) installing a file, from each framework, with the list of
> optional deps that were found. Then when handling bug reports you can ask
> for that file -- or drkonqi could grab them all and concatenate them in a
> readable way.

This seems like a useful thing to do, especially when automating it via 
DrKonqi.

> 3) A global switch for a dependency, like "don't even look for dependency A
> in any of the frameworks" brings nothing IMHO. If it's optional and not
> found, we compile without.

As in my note in (1), I don't think this is something we should be setting, 
but rather than builders should be setting if necessary - CMake provides all 
that infrastructure, so we don't need to do anything (with the exceptional 
case of X11 on Mac, as you noted).

Alex
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-18 Thread David Faure
On Wednesday 14 October 2015 00:33:17 Christoph Cullmann wrote:
> 
> Lets see what David thinks about all that.

First: thanks everyone for waiting for my input, I appreciate that (I'm just 
one more voice though, no dictatorship here).

The various global switches that have been suggested had unintuitive naming, so 
I will describe
my thinking about them by using descriptions instead of actual names:

1) A global switch "skip anything marked as optional" would be a very bad idea, 
it would even skip stuff that *is* available.
I *think* this wasn't suggested, but I wanted to mention it just in case.

2) A global switch "everything that can be optional, is now optional" sounds 
strange to me too. If it's optional, it's optional.
(The description for the suggested KDE_ENABLE_MINIMAL_DEPENDENCIES added "this 
might lead to a loss of functionality".
Well, that is *always* true when an optional dependency isn't found - otherwise 
it would be useless).
Really, is there any sense in saying that a dependency is optionally optional? 
:-P

2.1) I can see how the purpose was to let the default build be "with as many 
dependencies as possible".
But for that maybe we can have a global switch for "fail if something optional 
was not found", for distros (and CI) to make sure they have *everything* 
enabled.
Would this actually work for distro packagers? Do they have *all* the 
dependencies available?

The discussion on 2) vs 2.1) is almost like discussing the default value of the 
same option,
except that with 2) every framework would still be able to have 
always-required, required-or-optional, and always-optional dependencies.
You could say that's extremely flexible, on the other hand I wonder if it's not 
too much choice (i.e. too much complexity).
E.g. the kwallet dependency in KIO now is optional, therefore it's optional, 
end of story. Yet we don't want distros compiling KIO without KWallet,
but aren't we optimizing for the wrong thing? I mean, I didn't hear about KF5 
packages being wrong because of missing deps
(i.e. if it happened, it must have been fixed pretty quickly). So unless 
someone proves the contrary to me, I would say this whole
2/2.1 discussion is moot, the tools that we have (to express optional 
dependencies) do work, we just need to work towards
making more stuff optional, like Christoph is doing.

An argument was made that optional deps create more work for maintainers, who 
can't know, in bug reports,
whether the dep was enabled or disabled (i.e. more configurations to handle). 
That is true. The solution isn't however
to make everything mandatory. So we should solve this, after accepting the 
existence of optional deps. One random idea
could be (automatically) installing a file, from each framework, with the list 
of optional deps that were found. Then
when handling bug reports you can ask for that file -- or drkonqi could grab 
them all and concatenate them in a readable way.

3) A global switch for a dependency, like "don't even look for dependency A in 
any of the frameworks" brings nothing IMHO.
If it's optional and not found, we compile without.

3.1) As a special case of that, I do however see the usefulness of "don't even 
look for X11" as a global switch, because of the OSX case where
it might be lying around and we don't want to use it. It's a special case 
because it's an exclusive switch (AFAIK you either use cocoa or X11, not both),
unlike most of our other dependencies.
3.2) More generally *if* distributors want a way to express "don't even look 
for dependency A, because I might have it installed
but I don't want my packages to depend on it", then I have nothing against 
that. And then the X11 case can be just one instance of that.

I'm not replying here to the part of the thread around packaging for Windows 
and Mac, that's a separate discussion.
I note, however, that Christoph's patches which make more use of .qrc files, 
are the best way to solve some of these issues.

-- 
David Faure, fa...@kde.org, http://www.davidfaure.fr
Working on KDE Frameworks 5

___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-18 Thread Christoph Cullmann
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.me...@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
>>> (g...@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@kde.org
> https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

-- 
- Dr.-Ing. Christoph Cullmann -
AbsInt Angewandte Informatik GmbH  Email: cullm...@absint.com
Science Park 1 Tel:   +49-681-38360-22
66123 Saarbrücken  Fax:   +49-681-38360-20
GERMANYWWW:   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@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-15 Thread Jaroslaw Staniek
On 14 October 2015 at 20:55, Boudewijn Rempt  wrote:
> On Wed, 14 Oct 2015, Martin Klapetek wrote:
>
>> On Wed, Oct 14, 2015 at 1:38 PM, Christoph Cullmann 
>> wrote:
>>
>>   Given that lot opposition was here for a 5 lines change which does
>> break nothing
>>   if packagers don't skrew up.
>>
>>
>> Not to be disrespectful, but history has proven that the assumption
>> above unfortunately doesn't always hold up. So it's just better not
>> to count on it. Hence so much of the opposition.
>>
>
> Well, sure, stuff can break. However, without changes like this, KDE's
> Frameworks libraries are _not fit for purpose_. These libraries _can not
> be used_ by the intended user group, that is application developers,
> except for the tiny minority that only targets Linux, and only cares
> about having their applications packaged by distributions. As for Krita,
> we currently maintain builds for three distributions, and I can't wait
> for the day we can have a generic linux build like Blender and Firefox.
>

And LO.

Yes, I hope it's easy to see the pattern. And some of us may remember
the internal thread from this month about challenges Calligra faces to
win users.
Deployment is rather important part of this.

Let me CC kde-windows too. The topic seems to fit to many places.

When Ubuntu introduced the LTS it started to beat us heavily. "I am
not using your software because for ${some} reason I am bound to LTS"

See just the newest request as a sample:
http://permalink.gmane.org/gmane.comp.kde.users.kexi/833

Customers^w Users are always right.

So yes, a practical approach to deployment on Linux is not too
different than the one on the Windows/Mac/99.(9)% of mobile.
People that are forced to use given app will even install a VM to do
so. Compare size of the copied libs to the size of VM...
Compare to the size of the apps installed on your smartphone...

One way how we could "integrate" deployment of apps is for the case
when multiple apps are keeping their KF5 stuff in one place such as:

C:\ProgramFiles\Common Files\KDE\KF5\{some-timestamp}

Speculation: Multiple versions could be present there, identified by a
strong {some-timestamp} ID. And installers shall be in a form of Qt
Installer ("web" installers able to add shared components). It would
be then up to people manage deployments of a given application to
manage KF5 version that is known to work the app. Technical challenge
is here that the KF5\{some-timestamp} dir belongs to application. And
that one app may just install, say, 30% of KF5, another may install
70% of it. That looks like too complex and boring to manage by us,
volunteers.

So for Windows, having the C:\ProgramFiles\Common Files\KDE\ used for
a root dir of private copies of KDE stuff (including KF5) would be
better than nothing.
But on the risk side is that someone would think the subdirs are there
to reuse. That's not true because back/forward compatibility is not
part of these components. They are bound to given app(s) (one app or
entire Calligra for example).

No clear solution here then. Being a fan of native solutions (services
native to the OS), and sp the principle of the least-surprise, I am
thus not fan of exposing of software collections via the KDE-Installer
on Windows or equivalents on Mac. I'd like to make sure that anyone
who wants to package a KF5/Qt app separately can do that freely,
strip-down things conveniently in a way we accept, and there won't be
conflict with other installations. And that the packaged app won't be
perceived as "unofficial" because of the way of deployment. Freedom of
deploying alternatives away of the official channel - that IMHO boosts
competition and non-forced cooperation - something many of us see
missing in iOS.

I trust that whenever contributors discover it's "cheaper" to join KDE
than staying on the custom side, they will be joining. I see that
would be a big win-win.

-- 
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
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Christoph Cullmann
Hi,

- Aleix Pol  schrieb:
> On We
> Would it make sense then to define as part of the tier only the
> mandatory dependencies?
> 
> Then the variable could be, instead of what Christoph proposed,
> something like KDE_ENFORCE_ALL_FRAMEWORKS.
For my usecase that wont help, as i want to make non-framework dependencies 
optional, too, like phonon.

Greetings
Christoph


> 
> Aleix
> ___
> Kde-frameworks-devel mailing list
> Kde-frameworks-devel@kde.org
> https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

-- 
- Dr.-Ing. Christoph Cullmann -
AbsInt Angewandte Informatik GmbH  Email: cullm...@absint.com
Science Park 1 Tel:   +49-681-38360-22
66123 Saarbrücken  Fax:   +49-681-38360-20
GERMANYWWW:   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@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Aleix Pol
On Wed, Oct 14, 2015 at 10:28 PM, Kevin Ottens  wrote:
> Hello,
>
> On Wednesday 14 October 2015 21:20:33 Christoph Cullmann wrote:
>> Therefore my goal for frameworks is to make them actually as easy usable
>> for people in that situation. We advertise that a lot everywhere but at the
>> moment that is just not true beside for really simple stuff like "karchive".
>
> Just to put some historical perspective into this particular point. It *is*
> true, but for tier 1 and tier 2 frameworks only. That's why the dependency
> rules of the tier system were designed the way they are.
>
> So if you are "people in that situation" as described by Christoph in his
> email: stay away from anything which is above tier 2 or make it an optional
> dependency. You still have more than 30 frameworks to pick from for the other
> ones YMMV, you should be warned headaches might or might not be ahead with
> tier 3.
>
> If you are someone working on a given framework and you are just content of
> having it in KF5's tier 3, but did no refactoring or API work to get it to
> tier 2 or tier 1: you're missing the point of KF5's tier and type
> organization. You are also prematurely shrinking its potential user base and
> that should bother you, really.
>
> If you remember the talk I gave back in the days about KF5, I mentioned that
> the tier and type matrix is also a *maturity* system. It is our responsibility
> to push the frameworks down the stack as much as possible. Since then, I see
> lots of frameworks appearing, I don't see many of them lowering their tier...
>
> Regards.

Would it make sense then to define as part of the tier only the
mandatory dependencies?

Then the variable could be, instead of what Christoph proposed,
something like KDE_ENFORCE_ALL_FRAMEWORKS.

Aleix
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Kevin Ottens
Hello,

On Wednesday 14 October 2015 21:20:33 Christoph Cullmann wrote:
> Therefore my goal for frameworks is to make them actually as easy usable
> for people in that situation. We advertise that a lot everywhere but at the
> moment that is just not true beside for really simple stuff like "karchive".

Just to put some historical perspective into this particular point. It *is* 
true, but for tier 1 and tier 2 frameworks only. That's why the dependency 
rules of the tier system were designed the way they are.

So if you are "people in that situation" as described by Christoph in his 
email: stay away from anything which is above tier 2 or make it an optional 
dependency. You still have more than 30 frameworks to pick from for the other 
ones YMMV, you should be warned headaches might or might not be ahead with 
tier 3.

If you are someone working on a given framework and you are just content of 
having it in KF5's tier 3, but did no refactoring or API work to get it to 
tier 2 or tier 1: you're missing the point of KF5's tier and type 
organization. You are also prematurely shrinking its potential user base and 
that should bother you, really.

If you remember the talk I gave back in the days about KF5, I mentioned that 
the tier and type matrix is also a *maturity* system. It is our responsibility 
to push the frameworks down the stack as much as possible. Since then, I see 
lots of frameworks appearing, I don't see many of them lowering their tier...

Regards.
-- 
Kévin Ottens, http://ervin.ipsquad.net

KDAB - proud supporter of KDE, http://www.kdab.com



signature.asc
Description: This is a digitally signed message part.
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Jeremy Whiting
I'd like to weigh in a bit here too. I agree with Boud and Christoph,
most users (developers of applications) of KF5 that aren't KDE
community members will be building the frameworks themselves. At my
last job we built Qt ourselves on all the platforms we targetted and
shipped shared libraries with the application like Boud has said. We
even had scripts that would set LD_LIBRARY_PATH to the application
folder so our Qt was preferred over any system Qt for linux.

I also agree with what Martin said a few emails ago. Applications we
are distributing on non kde platforms (or maybe even when running them
on GNOME?) should probably not use knotifications, etc. Though that
would remove a bit of their functionality. Personally I'd like to see
stuff like knewstuff working on windows/mac, but can't imagine it will
since it uses kio heavily (and thus needs kdeinit, etc.). I think the
more modular we can get the KDE Frameworks the better.

BR,
Jeremy


On Wed, Oct 14, 2015 at 1:51 PM, Boudewijn Rempt  wrote:
> On Wed, 14 Oct 2015, Martin Klapetek wrote:
>
>> I have to agree with Harald here though, I would also expect
>> the frameworks to be bunch of pre-built dlls you just install
>> system-wide and build on top of that, not create your own
>> custom builds of everything, for every app with different features
>> combo. At which point this all wouldn't be so much of a problem
>> I believe.
>
>
> Erm... The very _idea_ that you'd install a bunch of dll's system-wide
> on Windows or OSX or Android is... Words, at least, polite words, fail
> me. It's not just not done, it's actively wrong. (Note that ministro's
> way of doing shared Qt libraries no longer works in the most recent Android
> either, it's not a counter example.)
>
> I've been trying to get this point across at least since the desktop
> summit in berlin, and I guess I'm just congenitally incapable of stringing
> words together into an intelligible narrative because I'm failing _hard_.
>
> Fink, macports, emerge, cygwin and all the other refuges for Linux
> developers who have to use Windows or decide to defect to OSX are totally
> and utterly irrelevant. If you want to make a library that's used for a
> cross-platform application, that is.
>
> There is _one_ way to package your application for Windows, and that is
> create an installer that packages everything, every dependency that the
> application needs _including_ the msv c runtime dll. Everything else
> will not get your application in your user's hands.
>
> There are _two_ ways to package your application for OSX: as an app bundle
> in a disk image or as an app bundle in an installer. The app bundle
> contains all dependencies, everything, except for the stuff Apple puts
> on the system.  Everything else will not get your application in your
> user's hands.
>
> Any approach that dreams of sharing libraries, configuration locations or
> _any_ other resource not provided by the OS among multiple applications
> will not get that library used by applications that target Windows or OSX.
>
> Now, re-using and re-packaging pre-built dll's _is_ possible. It's
> sometimes, as with fftw3, even the only realistic option. But it would
> still put that dll in the exe dir of every application that uses it. And,
> with complex libraries, it's still not going to work. I use a bunch of
> cmake external projects to build all the deps, so I can cut down on what's
> in there, for instance, and I should cut even more than I'm already doing.
>
> Boudewijn
>
> Ps: there are three ways of packaging an app on Linux: let the distribution
> do it, and fight with your users because they cannot get the latest version,
> package it yourself for each popular distro (in my case, *buntu, CentOS and
> OpenSUSE) or make a distro-independent package, which every big open source
> project does, like Blender or Firefox. In the last case, you'll again have
> to package everything, like on Windows and OSX.
>
> ___
> Kde-frameworks-devel mailing list
> Kde-frameworks-devel@kde.org
> https://mail.kde.org/mailman/listinfo/kde-frameworks-devel
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Boudewijn Rempt

On Wed, 14 Oct 2015, Martin Klapetek wrote:


I have to agree with Harald here though, I would also expect
the frameworks to be bunch of pre-built dlls you just install
system-wide and build on top of that, not create your own
custom builds of everything, for every app with different features
combo. At which point this all wouldn't be so much of a problem
I believe.


Erm... The very _idea_ that you'd install a bunch of dll's system-wide
on Windows or OSX or Android is... Words, at least, polite words, fail
me. It's not just not done, it's actively wrong. (Note that ministro's
way of doing shared Qt libraries no longer works in the most recent 
Android either, it's not a counter example.)


I've been trying to get this point across at least since the desktop
summit in berlin, and I guess I'm just congenitally incapable of stringing
words together into an intelligible narrative because I'm failing _hard_.

Fink, macports, emerge, cygwin and all the other refuges for Linux
developers who have to use Windows or decide to defect to OSX are totally
and utterly irrelevant. If you want to make a library that's used for a
cross-platform application, that is.

There is _one_ way to package your application for Windows, and that is
create an installer that packages everything, every dependency that the
application needs _including_ the msv c runtime dll. Everything else
will not get your application in your user's hands.

There are _two_ ways to package your application for OSX: as an app bundle
in a disk image or as an app bundle in an installer. The app bundle
contains all dependencies, everything, except for the stuff Apple puts
on the system.  Everything else will not get your application in your
user's hands.

Any approach that dreams of sharing libraries, configuration locations or
_any_ other resource not provided by the OS among multiple applications
will not get that library used by applications that target Windows or OSX.

Now, re-using and re-packaging pre-built dll's _is_ possible. It's
sometimes, as with fftw3, even the only realistic option. But it would
still put that dll in the exe dir of every application that uses it. And,
with complex libraries, it's still not going to work. I use a bunch of
cmake external projects to build all the deps, so I can cut down on what's
in there, for instance, and I should cut even more than I'm already doing.

Boudewijn

Ps: there are three ways of packaging an app on Linux: let the distribution
do it, and fight with your users because they cannot get the latest version,
package it yourself for each popular distro (in my case, *buntu, CentOS and
OpenSUSE) or make a distro-independent package, which every big open source
project does, like Blender or Firefox. In the last case, you'll again have
to package everything, like on Windows and OSX.
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Christoph Cullmann
Hi,
> Well, sure, stuff can break. However, without changes like this, KDE's
> Frameworks libraries are _not fit for purpose_. These libraries _can not
> be used_ by the intended user group, that is application developers,
> except for the tiny minority that only targets Linux, and only cares
> about having their applications packaged by distributions. As for Krita,
> we currently maintain builds for three distributions, and I can't wait
> for the day we can have a generic linux build like Blender and Firefox.
> 
> I've talked myself hoarse selling frameworks to dozens of interested
> people at the QtWS in Berlin, none of whom cared about how Linux
> distributions would package their software, but I'm honestly going to have
> to copy a bunch of code and cut it down, instead of using the libraries
> them- selves. Claiming, as people have done in the past, that that's
> because my attitude is bad or because I refuse to do the right thing
> is wrong-headed. People who make a library must make it fit for use,
> and not demand that their target users adapt or skip using it.
> 
> I have to agree with Harald here though, I would also expect
> the frameworks to be bunch of pre-built dlls you just install
> system-wide and build on top of that, not create your own
> custom builds of everything, for every app with different features
> combo. At which point this all wouldn't be so much of a problem
> I believe.
Sorry, that is more than unrealistic ;=)

I am now around 10 years maintaining both the continous integration system
and the packaging of our applications at the company for Linux + Windows and no,
you can't even rely on having a global Qt around on your target and you install
no libraries system wide, that just cries for problems.

Any non-distro package will need to ship the libs on its own and it will need
to compile them on its own, as you need to have the right libs around
for exactly your compiler (on windows even more so than on mac, no, no visual
studio version is compatible and you actually want even to use the same patch
level/hotfix/CTP/...)

That might be not nice, but that is the reality. If the current trend of "we use
containers for everything" continues, you will even more or less ship half
a system with your thingy in that container ;=)

At the moment for us that means, we ship a own shared library Qt.

If we want to use some frameworks, we will need to build + ship them, too.

Same hold for other people doing "standalone" applications, even free ones like 
Krita.
And yes, it is a hassle and it is work I could really be happy to get off my
hands but I doubt a magic solution will arrive.

Therefore my goal for frameworks is to make them actually as easy usable
for people in that situation. We advertise that a lot everywhere but at the
moment that is just not true beside for really simple stuff like "karchive".

But back to my proposal.

Alex Merry seems to be ok with the idea, thought my variable name choice is bad 
;=)
Lets see if David agrees, too, then I would like to move forward with this,
if that would be alright.

Greetings
Christoph

-- 
- Dr.-Ing. Christoph Cullmann -
AbsInt Angewandte Informatik GmbH  Email: cullm...@absint.com
Science Park 1 Tel:   +49-681-38360-22
66123 Saarbrücken  Fax:   +49-681-38360-20
GERMANYWWW:   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@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Martin Klapetek
On Wed, Oct 14, 2015 at 2:55 PM, Boudewijn Rempt  wrote:

>
> Well, sure, stuff can break. However, without changes like this, KDE's
> Frameworks libraries are _not fit for purpose_. These libraries _can not
> be used_ by the intended user group, that is application developers,
> except for the tiny minority that only targets Linux, and only cares
> about having their applications packaged by distributions. As for Krita,
> we currently maintain builds for three distributions, and I can't wait
> for the day we can have a generic linux build like Blender and Firefox.
>
> I've talked myself hoarse selling frameworks to dozens of interested
> people at the QtWS in Berlin, none of whom cared about how Linux
> distributions would package their software, but I'm honestly going to have
> to copy a bunch of code and cut it down, instead of using the libraries
> them- selves. Claiming, as people have done in the past, that that's
> because my attitude is bad or because I refuse to do the right thing
> is wrong-headed. People who make a library must make it fit for use,
> and not demand that their target users adapt or skip using it.


I have to agree with Harald here though, I would also expect
the frameworks to be bunch of pre-built dlls you just install
system-wide and build on top of that, not create your own
custom builds of everything, for every app with different features
combo. At which point this all wouldn't be so much of a problem
I believe.

Cheers
-- 
Martin Klapetek | KDE Developer
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Boudewijn Rempt

On Wed, 14 Oct 2015, Martin Klapetek wrote:


On Wed, Oct 14, 2015 at 1:38 PM, Christoph Cullmann  wrote:

  Given that lot opposition was here for a 5 lines change which does break 
nothing
  if packagers don't skrew up.


Not to be disrespectful, but history has proven that the assumption
above unfortunately doesn't always hold up. So it's just better not
to count on it. Hence so much of the opposition.



Well, sure, stuff can break. However, without changes like this, KDE's
Frameworks libraries are _not fit for purpose_. These libraries _can not
be used_ by the intended user group, that is application developers,
except for the tiny minority that only targets Linux, and only cares
about having their applications packaged by distributions. As for Krita,
we currently maintain builds for three distributions, and I can't wait
for the day we can have a generic linux build like Blender and Firefox.

I've talked myself hoarse selling frameworks to dozens of interested
people at the QtWS in Berlin, none of whom cared about how Linux
distributions would package their software, but I'm honestly going to have
to copy a bunch of code and cut it down, instead of using the libraries
them- selves. Claiming, as people have done in the past, that that's
because my attitude is bad or because I refuse to do the right thing
is wrong-headed. People who make a library must make it fit for use,
and not demand that their target users adapt or skip using it.

Boudewijn
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Albert Astals Cid
El Wednesday 14 October 2015, a les 16:44:12, Boudewijn Rempt va escriure:
> On Tue, 13 Oct 2015, Albert Astals Cid wrote:
> > I disagree, phonon and dbus are available on OSX and could be made to work
> > so having a ECM_BUILD_FOR_OSX_APPBUNDLE that disables perfectly valid
> > features doesn't make sense to me.
> 
> But what if those things don't add any feature to a particularly app?
> There's nothing that phonon or dbus or openssl actually add to an
> application like Krita.

As I already explained in a different email, if you want to disable them cool, 
that's not what i was arguing against, please see the other email for what i 
was trying to say.

Cheers,
  Albert

> 
> Boudewijn
> ___
> Kde-frameworks-devel mailing list
> Kde-frameworks-devel@kde.org
> https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Martin Klapetek
On Wed, Oct 14, 2015 at 1:38 PM, Christoph Cullmann 
wrote:

>
> Given that lot opposition was here for a 5 lines change which does break
> nothing
> if packagers don't skrew up.
>

Not to be disrespectful, but history has proven that the assumption
above unfortunately doesn't always hold up. So it's just better not
to count on it. Hence so much of the opposition.

Cheers
-- 
Martin Klapetek | KDE Developer
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Christoph Cullmann
Hi,

> Fwiw, KNotification+Phonon is used for KDialog sounds if frameworkintegration
> is present (iirc). So in theory, it should play a sound in Krita/Kate if you 
> eg.
> close
> the window with unsaved content. If that adds anything to your app, I can't 
> say.
> 
> 
> ^That's supposed to be KMessageBox, not KDialog, sorry.
> 
> Well, no, nothing materially useful, sorry. If all messageboxes on
> Windows or OSX would beep, then Krita's message boxes should beep,
> much as I feel that computers shoulds be seen, not heard, but then,
> that would be the responsibility of Qt, as the cross-platform layer.
> It should be part of QMessageBox, not be added through an optional
> extra library.
> 
> But then it makes me wonder if you actually need KNotifications altogether.
> I'm not aware of anyone actually testing KNotificaitons on win/mac and I
> personally wouldn't guarantee it works at all on !linux.
> 
> Same for Kate - do you actually need KNotifications at all on win/mac?
> If not, it would be better to just drop that dep from Kate/Krita/whatever
> than split KNotifications package which isn't used anyway.
yeah, perhaps that is the next step, but not Kate depends on it but KParts.

And yeah, there is a lot of stuff that could be made optional there, too.

But I want first to have the "how to do it right", then I will do it.

Given that lot opposition was here for a 5 lines change which does break nothing
if packagers don't skrew up.

I am more than happy to  try to minimize the deps even more, but first, I 
really would like
to have a base line that works.

e.g. dbus: ATM I don't even try to compile without it, but just try to make 
things not crash
if we compile with it but have no dbus server running.

Greetings
Christoph

-- 
- Dr.-Ing. Christoph Cullmann -
AbsInt Angewandte Informatik GmbH  Email: cullm...@absint.com
Science Park 1 Tel:   +49-681-38360-22
66123 Saarbrücken  Fax:   +49-681-38360-20
GERMANYWWW:   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@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Boudewijn Rempt

On Wed, 14 Oct 2015, Martin Klapetek wrote:



But then it makes me wonder if you actually need KNotifications altogether.
I'm not aware of anyone actually testing KNotificaitons on win/mac and I
personally wouldn't guarantee it works at all on !linux.

Same for Kate - do you actually need KNotifications at all on win/mac?
If not, it would be better to just drop that dep from Kate/Krita/whatever
than split KNotifications package which isn't used anyway.


Well, there's that, and I don't think we build against knotifications
at the moment, and in any case, our windows/osx build is pretty immature.
My own bete noir at the moment is kxmlgui, which needs kconfigwidgets, 
which needs kauth and codecs, but it's kind of the general way of things:

if there's a library I need that links to knotification, either that
link should be optional, or knotification should be more modular.

Boudewijn
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Martin Klapetek
On Wed, Oct 14, 2015 at 1:27 PM, Boudewijn Rempt  wrote:

> On Wed, 14 Oct 2015, Martin Klapetek wrote:
>
> Fwiw, KNotification+Phonon is used for KDialog sounds if
>> frameworkintegration
>> is present (iirc). So in theory, it should play a sound in Krita/Kate if
>> you eg. close
>> the window with unsaved content. If that adds anything to your app, I
>> can't say.
>>
>>
>> ^That's supposed to be KMessageBox, not KDialog, sorry.
>>
>
> Well, no, nothing materially useful, sorry. If all messageboxes on
> Windows or OSX would beep, then Krita's message boxes should beep,
> much as I feel that computers shoulds be seen, not heard, but then,
> that would be the responsibility of Qt, as the cross-platform layer.
> It should be part of QMessageBox, not be added through an optional
> extra library.


But then it makes me wonder if you actually need KNotifications altogether.
I'm not aware of anyone actually testing KNotificaitons on win/mac and I
personally wouldn't guarantee it works at all on !linux.

Same for Kate - do you actually need KNotifications at all on win/mac?
If not, it would be better to just drop that dep from Kate/Krita/whatever
than split KNotifications package which isn't used anyway.

Cheers
-- 
Martin Klapetek | KDE Developer
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Boudewijn Rempt

On Wed, 14 Oct 2015, Martin Klapetek wrote:


Fwiw, KNotification+Phonon is used for KDialog sounds if frameworkintegration
is present (iirc). So in theory, it should play a sound in Krita/Kate if you 
eg. close
the window with unsaved content. If that adds anything to your app, I can't say.


^That's supposed to be KMessageBox, not KDialog, sorry.


Well, no, nothing materially useful, sorry. If all messageboxes on
Windows or OSX would beep, then Krita's message boxes should beep,
much as I feel that computers shoulds be seen, not heard, but then,
that would be the responsibility of Qt, as the cross-platform layer.
It should be part of QMessageBox, not be added through an optional
extra library.

Boudewijn
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Martin Klapetek
On Wed, Oct 14, 2015 at 10:44 AM, Boudewijn Rempt  wrote:

> On Tue, 13 Oct 2015, Albert Astals Cid wrote:
>
> I disagree, phonon and dbus are available on OSX and could be made to work
>> so having a ECM_BUILD_FOR_OSX_APPBUNDLE that disables perfectly valid
>> features doesn't make sense to me.
>>
>
> But what if those things don't add any feature to a particularly app?
> There's
> nothing that phonon or dbus or openssl actually add to an application like
> Krita.


Fwiw, KNotification+Phonon is used for KDialog sounds if
frameworkintegration
is present (iirc). So in theory, it should play a sound in Krita/Kate if
you eg. close
the window with unsaved content. If that adds anything to your app, I can't
say.

Cheers
-- 
Martin Klapetek | KDE Developer
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Christoph Cullmann
Hi,

> I disagree, phonon and dbus are available on OSX and could be made to work so
> having a ECM_BUILD_FOR_OSX_APPBUNDLE that disables perfectly valid features
> doesn't make sense to me.
> 
> But what if those things don't add any feature to a particularly app? There's
> nothing that phonon or dbus or openssl actually add to an application like
> Krita.
> 
> Fwiw, KNotification+Phonon is used for KDialog sounds if frameworkintegration
> is present (iirc). So in theory, it should play a sound in Krita/Kate if you 
> eg.
> close
> the window with unsaved content. If that adds anything to your app, I can't 
> say.
> 
> ^That's supposed to be KMessageBox, not KDialog, sorry.
;=)

Yeah, and thats a valid thing to have.
Therefore I don't want to hard "forbid audio for bundling or for mac/win" but 
just an
weak "make it optional" to make it easy for people that want that audio 
feedback to
build it with and bundle it with such support.
Like people can just bundle QtSpeech stuff just fine, if they want, but are not 
required to
do so ;=)

Greetings
Christoph

-- 
- Dr.-Ing. Christoph Cullmann -
AbsInt Angewandte Informatik GmbH  Email: cullm...@absint.com
Science Park 1 Tel:   +49-681-38360-22
66123 Saarbrücken  Fax:   +49-681-38360-20
GERMANYWWW:   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@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Martin Klapetek
On Wed, Oct 14, 2015 at 10:49 AM, Martin Klapetek  wrote:

> On Wed, Oct 14, 2015 at 10:44 AM, Boudewijn Rempt 
> wrote:
>
>> On Tue, 13 Oct 2015, Albert Astals Cid wrote:
>>
>> I disagree, phonon and dbus are available on OSX and could be made to
>>> work so having a ECM_BUILD_FOR_OSX_APPBUNDLE that disables perfectly valid
>>> features doesn't make sense to me.
>>>
>>
>> But what if those things don't add any feature to a particularly app?
>> There's
>> nothing that phonon or dbus or openssl actually add to an application like
>> Krita.
>
>
> Fwiw, KNotification+Phonon is used for KDialog sounds if
> frameworkintegration
> is present (iirc). So in theory, it should play a sound in Krita/Kate if
> you eg. close
> the window with unsaved content. If that adds anything to your app, I
> can't say.
>

^That's supposed to be KMessageBox, not KDialog, sorry.

Cheers
-- 
Martin Klapetek | KDE Developer
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Boudewijn Rempt

On Tue, 13 Oct 2015, Albert Astals Cid wrote:

I disagree, phonon and dbus are available on OSX and could be made to work so 
having a ECM_BUILD_FOR_OSX_APPBUNDLE that disables perfectly valid features 
doesn't make sense to me.


But what if those things don't add any feature to a particularly app? There's
nothing that phonon or dbus or openssl actually add to an application like
Krita.

Boudewijn
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Boudewijn Rempt

On Tue, 13 Oct 2015, Christoph Cullmann wrote:


I think we must accept, that on neither Windows nor Mac we will have all 
dependencies available
and that for many applications not all features are needed. There is no 
"packagers" for
that operating systems, you need to provide the stuff you use yourself, just 
like you
would do on Android/iOS.

E.g. no, I doubt that Krita or Kate will suffer a lot, if we have no sound, nor 
will
many 3rdparty applications. We can make the knotifications usage more optional, 
e.g.
in kparts, or we can make the knotifications dependencies more optional.


I'll go further, and say that I simply don't want any dll's that aren't actually
adding a feature to Krita in my packages. I'm even building Qt myself to get rid
of things like dbus and openssl.



Therefore I think less dependencies are needed to be called "portable" in that 
case.

But that a side, for the dependencies itself, no matter if we target just one 
os or multiple,
would the KDE_ENABLE_MINIMAL_DEPENDENCIES switch be a solution for the 
criticism raised?


That's really close to what I used to do with kdelibs4 and koffice/calligra. I
created a switch like that and had it cut out everything that wasn't needed.
The kdelibs always remained in my fork; I never tried to upstream it since it
was really hacky.

The calligra switch was public. In practice, it didn't give problems for
Linux because distributions always build with all dependencies enabled,
they wouldn't go and add -DTINY=ON.

Boudewijn
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-14 Thread Alex Merry

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
(g...@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@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: phonon hassle to build WAS: Re: Policy for Dependencies

2015-10-14 Thread Harald Sitter
On Wed, Oct 14, 2015 at 9:11 AM, Christoph Cullmann  wrote:
> Hi,
>
 but why would you want to build a backend if you need no sound anyway?
>>> Thats the point, if I don't build a backend, I don't need phonon and I can
>>> save building + shipping it with just making phonon optional for 
>>> knotifications,
>>> which internally already is build in a way to have it optional.
>>
>> So what's the hassle with phonon then? Building? Maybe I am being daft
>> today but it seems to me that testing/supporting an entire alternate
>> build configuration for knotification is a greater effort than
>> building a library that has zero requirements on top of what
>> knotification already requires and already does the same thing the
>> alternate build configuration would do - i.e. abstract away things you
>> might not need.
> KNotifications already has that abstraction.
> All output things are internal plugins.
> And that abstraction is already in use there, for e.g. QtSpeech.
> Why build and ship phonon for exactly no gain?
> The knotifications change is 5 lines.
> If we want to make frameworks attractive for 3rdparty devs, I don't 
> understand the issue here.

Maybe I am thinking of the wrong type of 3rd party dev then. I was
under the impression that one shouldn't need to build frameworks
themself but rather get a bunch of prebuilt framework bins of which
they can choose the ones they need and then build their application on
top.
Ah well. whatever.
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: phonon hassle to build WAS: Re: Policy for Dependencies

2015-10-14 Thread Christoph Cullmann
Hi,

>>> but why would you want to build a backend if you need no sound anyway?
>> Thats the point, if I don't build a backend, I don't need phonon and I can
>> save building + shipping it with just making phonon optional for 
>> knotifications,
>> which internally already is build in a way to have it optional.
> 
> So what's the hassle with phonon then? Building? Maybe I am being daft
> today but it seems to me that testing/supporting an entire alternate
> build configuration for knotification is a greater effort than
> building a library that has zero requirements on top of what
> knotification already requires and already does the same thing the
> alternate build configuration would do - i.e. abstract away things you
> might not need.
KNotifications already has that abstraction.
All output things are internal plugins.
And that abstraction is already in use there, for e.g. QtSpeech.
Why build and ship phonon for exactly no gain?
The knotifications change is 5 lines.
If we want to make frameworks attractive for 3rdparty devs, I don't understand 
the issue here.

Greetings
Christoph

-- 
- Dr.-Ing. Christoph Cullmann -
AbsInt Angewandte Informatik GmbH  Email: cullm...@absint.com
Science Park 1 Tel:   +49-681-38360-22
66123 Saarbrücken  Fax:   +49-681-38360-20
GERMANYWWW:   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@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: phonon hassle to build WAS: Re: Policy for Dependencies

2015-10-14 Thread Harald Sitter
On Wed, Oct 14, 2015 at 8:58 AM, Christoph Cullmann  wrote:
> Hi,
>
>> On Wed, Oct 14, 2015 at 8:47 AM, Christoph Cullmann  
>> wrote:
 On Tue, Oct 13, 2015 at 8:42 AM, Christoph Cullmann  
 wrote:
> phonon is a hassle on both win/mac (if you don't require audio, like most
> applications won't)

 Oo

 explain please?
>>> Hi,
>>>
>>> to build phonon with an usable backends is work on mac and win
>>
>> but why would you want to build a backend if you need no sound anyway?
> Thats the point, if I don't build a backend, I don't need phonon and I can
> save building + shipping it with just making phonon optional for 
> knotifications,
> which internally already is build in a way to have it optional.

So what's the hassle with phonon then? Building? Maybe I am being daft
today but it seems to me that testing/supporting an entire alternate
build configuration for knotification is a greater effort than
building a library that has zero requirements on top of what
knotification already requires and already does the same thing the
alternate build configuration would do - i.e. abstract away things you
might not need.
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: phonon hassle to build WAS: Re: Policy for Dependencies

2015-10-13 Thread Christoph Cullmann
Hi,

> On Wed, Oct 14, 2015 at 8:47 AM, Christoph Cullmann  
> wrote:
>>> On Tue, Oct 13, 2015 at 8:42 AM, Christoph Cullmann  
>>> wrote:
 phonon is a hassle on both win/mac (if you don't require audio, like most
 applications won't)
>>>
>>> Oo
>>>
>>> explain please?
>> Hi,
>>
>> to build phonon with an usable backends is work on mac and win
> 
> but why would you want to build a backend if you need no sound anyway?
Thats the point, if I don't build a backend, I don't need phonon and I can
save building + shipping it with just making phonon optional for knotifications,
which internally already is build in a way to have it optional.

Greetings
Christoph

-- 
- Dr.-Ing. Christoph Cullmann -
AbsInt Angewandte Informatik GmbH  Email: cullm...@absint.com
Science Park 1 Tel:   +49-681-38360-22
66123 Saarbrücken  Fax:   +49-681-38360-20
GERMANYWWW:   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@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: phonon hassle to build WAS: Re: Policy for Dependencies

2015-10-13 Thread Harald Sitter
On Wed, Oct 14, 2015 at 8:47 AM, Christoph Cullmann  wrote:
>> On Tue, Oct 13, 2015 at 8:42 AM, Christoph Cullmann  
>> wrote:
>>> phonon is a hassle on both win/mac (if you don't require audio, like most
>>> applications won't)
>>
>> Oo
>>
>> explain please?
> Hi,
>
> to build phonon with an usable backends is work on mac and win

but why would you want to build a backend if you need no sound anyway?
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: phonon hassle to build WAS: Re: Policy for Dependencies

2015-10-13 Thread Christoph Cullmann
> On Tue, Oct 13, 2015 at 8:42 AM, Christoph Cullmann  
> wrote:
>> phonon is a hassle on both win/mac (if you don't require audio, like most
>> applications won't)
> 
> Oo
> 
> explain please?
Hi,

to build phonon with an usable backends is work on mac and win and e.g. Kate 
uses no
sounds at all normally. That doesn't mean that phonon has any special problems 
on that architecture,
just that it is for many use cases not needed and making it optional in 
knotifications is 4 lines
of code ;=) (beside that it avoids to ship the phonon libs without need in the 
bundle)

I hope I did not offend you ;=) Phonon is for sure buildable there, if you want.

Greetings
Christoph

-- 
- Dr.-Ing. Christoph Cullmann -
AbsInt Angewandte Informatik GmbH  Email: cullm...@absint.com
Science Park 1 Tel:   +49-681-38360-22
66123 Saarbrücken  Fax:   +49-681-38360-20
GERMANYWWW:   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@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


phonon hassle to build WAS: Re: Policy for Dependencies

2015-10-13 Thread Harald Sitter
On Tue, Oct 13, 2015 at 8:42 AM, Christoph Cullmann  wrote:
> phonon is a hassle on both win/mac (if you don't require audio, like most 
> applications won't)

Oo

explain please?
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Martin Graesslin
On Tuesday, October 13, 2015 10:07:18 PM CEST Jaroslaw Staniek wrote:
> 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

I hope that's not done anywhere as kdecoration is a kde-workspace library 
which should only be used by styles and KWin.

Cheers
Martin

signature.asc
Description: This is a digitally signed message part.
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Martin Klapetek
Hey,

On Tue, Oct 13, 2015 at 6:20 PM, Christoph Cullmann 
wrote:

>
> I hope I didn't upset anybody, just got a bit frustrated by the current
> state of
> the art. Alone how many patches for all our stuff are floating around in
> the net
> to make it somehow buildable instead of some solution inside frameworks
> made
> me really sad :/ And the amount of work that went into patching Qt to
> behave like
> on Linux on non-linux makes me even more sad, given the effort of the
> people
> at the Qt Company to make Qt more native and attractive for these
> platforms.
>

Just for the record, I'm not upset about the KNotification change, I just
don't think it's a correct one. That said, I very much support the idea of
allowing to build in an essentials-only way. I'm not entirely sure about
which approach (per framework or global) is better though. I tend to
agree about having per-framework switches and let it up to the integrator
to decide what is wanted/needed (in API/ABI limits of course). On the
other hand, I can see that going through ~60+ frameworks, reading all
the options and setting many of them manually, can be quite tiresome.

But as long as specifying such flag is explicit and not on-by-default, I'm
happy to look in KNotification framework and see what all can be made
non-essential.

One other thing that came to my mind, albeit a bit too soon, is the
framework's tier. Let's say that in the essentials-only build the tier is
actually one or two level above its normal tier; should that be reflected
somehow somewhere? Or would tiers just loose their meanings then?

Cheers
-- 
Martin Klapetek | KDE Developer
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Christoph Cullmann
Hi,

>> > I disagree, phonon and dbus are available on OSX and could be made to work
>> > so having a ECM_BUILD_FOR_OSX_APPBUNDLE that disables perfectly valid
>> > features doesn't make sense to me.
>> 
>> Albert,
>> From the fact that some foreign solution (dbus is foreign to OSX and
>> for that matter Windows) is available on these OSes one cannot
>> conclude that having option not to include/use them in my OSX/Windows
>> app makes no sense.
> 
> That's not what i said.
> 
>> These OSes have own solutions for sound system and desktop IPC.
>> 
>> Just like explorer.exe shell is perfectly valid feature delivered by a
>> FOSS project wine on Linux. This does not mean I have to base file
>> browsing experience for my Linux users on explorer.exe.
>> 
>> And have you actually read what the APPBUNDLE would mean? An OS with
>> dozen of instances of dbus, each installed by one app, fighting for
>> user's attention is a quite possible scenario.
>> 
>> Albert, if you want dbus-based workspace, there are OSes where it's
>> native. I bet you can use them.
>> We're talking about portable code, not portable runtimes (like Java,
>> .NET, Chrome) that feel foreign/superficial on every OS.
>> 
>> Let's drop the desktop/workspace hat when talking about frameworks.
>> Otherwise it's hard to hope that people will think about employing KF5
>> to the outside world tasks -- numerous dependencies still remind them
>> the "kdelibs" times of a kitchen sink approach. That wouldn't be
>> honest to KF5 contributors because of man-years of great work
>> invested.
>> 
>> Please don't stop maturing of KF5.
> 
> I hope you're not suggesting I'm against the maturing of KF5.
> 
>> 
>> Christoph doing a real native port, presents a rare use case close to
>> real outside world.
>> 
>> PS: Accept the fact that there are OSes without *rc files but
>> registry. Quite close, this includes Linux+GNOME. Most probably even
>> more users will uses/will use KDE software on such OSes than on the
>> traditional one. I am convinced there are more Qt apps on these other
>> OSes than under Linux.
>> 
>> Your view may be different, more workspace-related, your definition of
>> portability may be different too. I am looking at code that uses KF5
>> as a Qt code in the first place. Qt does not ignore design decisions
>> of supported OSes, why would KF5 do this?
> 
> dbus here was just an example, as was phonon.
> 
> What i was trying to say is that having a global ECM_BUILD_FOR_OSX_APPBUNDLE
> in a framework is a bad idea since it makes the decision about the things i
> want to include in the framework binary, you either get all the features or
> none.
> 
> I should be able to decide if i want to go the extra mile adding features to
> my bundle or not in feature by feature basis, by either making things optional
> directly, or via a cmake switch.
I am all with Albert here, such a global switch that "randomly" deactivates 
features
globally just because e.g. I was to lame to build phonon on some OS is bad.

Both the "one global switch to make stuff optional" or "multiple switches to 
make stuff optional"
is a much better route to got that enables people to pick the things they want 
to
have on any OS.

Lets see what David thinks about all that.

Greetings
Christoph

-- 
- Dr.-Ing. Christoph Cullmann -
AbsInt Angewandte Informatik GmbH  Email: cullm...@absint.com
Science Park 1 Tel:   +49-681-38360-22
66123 Saarbrücken  Fax:   +49-681-38360-20
GERMANYWWW:   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@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Luigi Toscano
Albert Astals Cid ha scritto:
> El Wednesday 14 October 2015, a les 00:07:10, Jaroslaw Staniek va escriure:

>>
>> Your view may be different, more workspace-related, your definition of
>> portability may be different too. I am looking at code that uses KF5
>> as a Qt code in the first place. Qt does not ignore design decisions
>> of supported OSes, why would KF5 do this?
> 
> dbus here was just an example, as was phonon.
> 
> What i was trying to say is that having a global ECM_BUILD_FOR_OSX_APPBUNDLE 
> in a framework is a bad idea since it makes the decision about the things i 
> want to include in the framework binary, you either get all the features or 
> none.

Exactly, it's the same for kdoctools itself. One thing is disable it in each
Frameworks to not build the bundled documentation. If you remove it globally,
you kill the possibility of having functional help (which is *not* a workspace
thing, despite khelpcenter being distributed with Plasma, but it should really
be outside).

Ciao
-- 
Luigi

___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Albert Astals Cid
El Wednesday 14 October 2015, a les 00:07:10, Jaroslaw Staniek va escriure:
> On 13 October 2015 at 23:22, Albert Astals Cid  wrote:
> > El Tuesday 13 October 2015, a les 08:55:27, Martin Graesslin va escriure:
> > > On Tuesday, October 13, 2015 8:42:43 AM CEST Christoph Cullmann wrote:
> > > > Hi,
> > > 
> > > thanks for raising this topic. I think it's very important that we have
> > > a
> > > general strategy for frameworks and not have thousands of micro-fixes in
> > > various frameworks.
> > > 
> > > > 1) "Normal" deployment like we do in on Linux => just installing it
> > > > with
> > > > all features if possible. 2) "Application Bundles/Installer" like we
> > > > will
> > > > have to do it on Win/Mac and 3rdparty Linux people will need to do.
> > > > 
> > > > I think the easiest solution is to make stuff optional. That will
> > > > avoid
> > > > ugly "if (WIN OR APPLE OR ANDROID)".. hacks in CMake and allow people
> > > > to
> > > > still build stuff with that deps on that operating systems if really
> > > > wanted.
> > > 
> > > Given from the no-X11 fixes I think that we should avoid all if (WIN OR
> > > APPLE) as that:
> > > a) is hard to maintain
> > > b) doesn't scale
> > > c) not testable for the devs working on Linux
> > > 
> > > Given that it should be feature based and we should make as much usage
> > > of
> > > the built in CMake features we have. I really like the approach we have
> > > now
> > > found for X11 on OSX: disable certain find modules at a global level.
> > > 
> > > I think that is something which could be applied for more things.
> > > Control
> > > through global ECM settings. This could if we don't want to have global
> > > changes also through convenient command switches:
> > > 
> > > e.g. cmake -DECM_BUILD_FOR_OSX_APPBUNDLE
> > > 
> > > which then implies e.g. no phonon and no dbus and ...
> > 
> > I disagree, phonon and dbus are available on OSX and could be made to work
> > so having a ECM_BUILD_FOR_OSX_APPBUNDLE that disables perfectly valid
> > features doesn't make sense to me.
> 
> Albert,
> From the fact that some foreign solution (dbus is foreign to OSX and
> for that matter Windows) is available on these OSes one cannot
> conclude that having option not to include/use them in my OSX/Windows
> app makes no sense.

That's not what i said.

> These OSes have own solutions for sound system and desktop IPC.
> 
> Just like explorer.exe shell is perfectly valid feature delivered by a
> FOSS project wine on Linux. This does not mean I have to base file
> browsing experience for my Linux users on explorer.exe.
> 
> And have you actually read what the APPBUNDLE would mean? An OS with
> dozen of instances of dbus, each installed by one app, fighting for
> user's attention is a quite possible scenario.
> 
> Albert, if you want dbus-based workspace, there are OSes where it's
> native. I bet you can use them.
> We're talking about portable code, not portable runtimes (like Java,
> .NET, Chrome) that feel foreign/superficial on every OS.
> 
> Let's drop the desktop/workspace hat when talking about frameworks.
> Otherwise it's hard to hope that people will think about employing KF5
> to the outside world tasks -- numerous dependencies still remind them
> the "kdelibs" times of a kitchen sink approach. That wouldn't be
> honest to KF5 contributors because of man-years of great work
> invested.
> 
> Please don't stop maturing of KF5.

I hope you're not suggesting I'm against the maturing of KF5.

> 
> Christoph doing a real native port, presents a rare use case close to
> real outside world.
> 
> PS: Accept the fact that there are OSes without *rc files but
> registry. Quite close, this includes Linux+GNOME. Most probably even
> more users will uses/will use KDE software on such OSes than on the
> traditional one. I am convinced there are more Qt apps on these other
> OSes than under Linux.
> 
> Your view may be different, more workspace-related, your definition of
> portability may be different too. I am looking at code that uses KF5
> as a Qt code in the first place. Qt does not ignore design decisions
> of supported OSes, why would KF5 do this?

dbus here was just an example, as was phonon.

What i was trying to say is that having a global ECM_BUILD_FOR_OSX_APPBUNDLE 
in a framework is a bad idea since it makes the decision about the things i 
want to include in the framework binary, you either get all the features or 
none.

I should be able to decide if i want to go the extra mile adding features to 
my bundle or not in feature by feature basis, by either making things optional 
directly, or via a cmake switch.

Albert
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Christoph Cullmann
Hi,

> El Tuesday 13 October 2015, a les 23:59:33, Christoph Cullmann va escriure:
>> 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.
> 
> Before going any route, please wait for dfaure to come back from his trip, I'm
> sure we all agree he's opinion is very valuable on the matter.
OK,

that is true, David should get a chance to give his opinion, perhaps he has
even some better idea how to tackle that problem.

I hope I didn't upset anybody, just got a bit frustrated by the current state of
the art. Alone how many patches for all our stuff are floating around in the net
to make it somehow buildable instead of some solution inside frameworks made
me really sad :/ And the amount of work that went into patching Qt to behave 
like
on Linux on non-linux makes me even more sad, given the effort of the people
at the Qt Company to make Qt more native and attractive for these platforms.

Greetings
Christoph

-- 
- Dr.-Ing. Christoph Cullmann -
AbsInt Angewandte Informatik GmbH  Email: cullm...@absint.com
Science Park 1 Tel:   +49-681-38360-22
66123 Saarbrücken  Fax:   +49-681-38360-20
GERMANYWWW:   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@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Albert Astals Cid
El Tuesday 13 October 2015, a les 23:59:33, Christoph Cullmann va escriure:
> 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.

Before going any route, please wait for dfaure to come back from his trip, I'm 
sure we all agree he's opinion is very valuable on the matter.

Cheers,
  Albert

> 
> Greetings
> Christoph

___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Jaroslaw Staniek
On 13 October 2015 at 23:22, Albert Astals Cid  wrote:
>
> El Tuesday 13 October 2015, a les 08:55:27, Martin Graesslin va escriure:
> > On Tuesday, October 13, 2015 8:42:43 AM CEST Christoph Cullmann wrote:
> > > Hi,
> >
> > thanks for raising this topic. I think it's very important that we have a
> > general strategy for frameworks and not have thousands of micro-fixes in
> > various frameworks.
> >
> > > 1) "Normal" deployment like we do in on Linux => just installing it with
> > > all features if possible. 2) "Application Bundles/Installer" like we will
> > > have to do it on Win/Mac and 3rdparty Linux people will need to do.
> > >
> > > I think the easiest solution is to make stuff optional. That will avoid
> > > ugly "if (WIN OR APPLE OR ANDROID)".. hacks in CMake and allow people to
> > > still build stuff with that deps on that operating systems if really
> > > wanted.
> > Given from the no-X11 fixes I think that we should avoid all if (WIN OR
> > APPLE) as that:
> > a) is hard to maintain
> > b) doesn't scale
> > c) not testable for the devs working on Linux
> >
> > Given that it should be feature based and we should make as much usage of
> > the built in CMake features we have. I really like the approach we have now
> > found for X11 on OSX: disable certain find modules at a global level.
> >
> > I think that is something which could be applied for more things. Control
> > through global ECM settings. This could if we don't want to have global
> > changes also through convenient command switches:
> >
> > e.g. cmake -DECM_BUILD_FOR_OSX_APPBUNDLE
> >
> > which then implies e.g. no phonon and no dbus and ...
>
> I disagree, phonon and dbus are available on OSX and could be made to work so
> having a ECM_BUILD_FOR_OSX_APPBUNDLE that disables perfectly valid features
> doesn't make sense to me.

Albert,
From the fact that some foreign solution (dbus is foreign to OSX and
for that matter Windows) is available on these OSes one cannot
conclude that having option not to include/use them in my OSX/Windows
app makes no sense.

These OSes have own solutions for sound system and desktop IPC.

Just like explorer.exe shell is perfectly valid feature delivered by a
FOSS project wine on Linux. This does not mean I have to base file
browsing experience for my Linux users on explorer.exe.

And have you actually read what the APPBUNDLE would mean? An OS with
dozen of instances of dbus, each installed by one app, fighting for
user's attention is a quite possible scenario.

Albert, if you want dbus-based workspace, there are OSes where it's
native. I bet you can use them.
We're talking about portable code, not portable runtimes (like Java,
.NET, Chrome) that feel foreign/superficial on every OS.

Let's drop the desktop/workspace hat when talking about frameworks.
Otherwise it's hard to hope that people will think about employing KF5
to the outside world tasks -- numerous dependencies still remind them
the "kdelibs" times of a kitchen sink approach. That wouldn't be
honest to KF5 contributors because of man-years of great work
invested.

Please don't stop maturing of KF5.

Christoph doing a real native port, presents a rare use case close to
real outside world.

PS: Accept the fact that there are OSes without *rc files but
registry. Quite close, this includes Linux+GNOME. Most probably even
more users will uses/will use KDE software on such OSes than on the
traditional one. I am convinced there are more Qt apps on these other
OSes than under Linux.

Your view may be different, more workspace-related, your definition of
portability may be different too. I am looking at code that uses KF5
as a Qt code in the first place. Qt does not ignore design decisions
of supported OSes, why would KF5 do this?
-- 
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
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Christoph Cullmann
Hi,

> On 2015-10-13, Martin Graesslin  wrote:
>> 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.
> 
> I do think that such packagers should be slapped around with a large
> trout. Or something.
> 
>> 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.
> 
> There is also another angle to the dependencies. What dependencies can
> be enabled/disabled without requiring changes to users of the library.
> 
> Or put it another way. Is the enabling/disabling of a given feature ABI
> and API compatible.
> 
> I do think that for features that doesn't impact the API/ABI we should
> make it very easy to enable/disable them. Like based on having things
> present on the system or not.
> 
> But for things that affects the API/ABI of the library, people should be
> explicit about it.
At the moment I am only talking about dependencies that would not change the 
API/ABI
but just remove some internal parts to be build or tools to be shipped.

I agree, that if the API/ABI is modified, it should be made explicit, to not
introduce incompatibilties too easily.

Greetings
Christoph

-- 
- Dr.-Ing. Christoph Cullmann -
AbsInt Angewandte Informatik GmbH  Email: cullm...@absint.com
Science Park 1 Tel:   +49-681-38360-22
66123 Saarbrücken  Fax:   +49-681-38360-20
GERMANYWWW:   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@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Christoph Cullmann
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: cullm...@absint.com
Science Park 1 Tel:   +49-681-38360-22
66123 Saarbrücken  Fax:   +49-681-38360-20
GERMANYWWW:   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@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Albert Astals Cid
El Tuesday 13 October 2015, a les 14:20:31, Christoph Cullmann va escriure:
> Hi,
> 
> different take on that below:
> > Hi,
> > 
> >> On Tuesday, October 13, 2015 8:42:43 AM CEST Christoph Cullmann wrote:
> >>> Hi,
> >> 
> >> thanks for raising this topic. I think it's very important that we have a
> >> general strategy for frameworks and not have thousands of micro-fixes in
> >> various frameworks.
> > 
> > ;=)
> > 
> >>> 1) "Normal" deployment like we do in on Linux => just installing it with
> >>> all features if possible. 2) "Application Bundles/Installer" like we
> >>> will have to do it on Win/Mac and 3rdparty Linux people will need to
> >>> do.
> >>> 
> >>> I think the easiest solution is to make stuff optional. That will avoid
> >>> ugly "if (WIN OR APPLE OR ANDROID)".. hacks in CMake and allow people
> >>> to still build stuff with that deps on that operating systems if really
> >>> wanted.>> 
> >> Given from the no-X11 fixes I think that we should avoid all if (WIN OR
> >> APPLE) as that:
> >> a) is hard to maintain
> >> b) doesn't scale
> >> c) not testable for the devs working on Linux
> >> 
> >> Given that it should be feature based and we should make as much usage of
> >> the built in CMake features we have. I really like the approach we have
> >> now found for X11 on OSX: disable certain find modules at a global
> >> level.
> >> 
> >> I think that is something which could be applied for more things. Control
> >> through global ECM settings. This could if we don't want to have global
> >> changes also through convenient command switches:
> >> 
> >> e.g. cmake -DECM_BUILD_FOR_OSX_APPBUNDLE
> >> 
> >> which then implies e.g. no phonon and no dbus and ...
> > 
> > For X11 that might cut it, as it is non-sense to compile it on mac, but I
> > doubt such
> > global magic will cut it for other stuff like phonon or dbus.
> > 
> > You might want to have both on mac and windows, too.
> > 
> > If we start to make this global disabled, we will annoy people, too.
> > In addition: If we want to have 3rdparty devs use our stuff, it must be
> > possible to avoid these dependencies on Linux, too.
> > 
> > I really would like to have the normal CMake strategy: non-required stuff
> > is optional.
> > 
> > For KNotifications thats even obvious, given its internals are build in a
> > ways that this
> > stuff is an internal "plugin".
> > 
> > I don't think we need yet an other level of magic, beside things like "X11
> > on Mac/Win are non-brainers",
> > which is not much more than we do with other global compiler/cmake flags
> > specific for OSes.
> 
> 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

Cheers,
  Albert

> 
> Greetings
> Christoph

___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Albert Astals Cid
El Tuesday 13 October 2015, a les 08:55:27, Martin Graesslin va escriure:
> On Tuesday, October 13, 2015 8:42:43 AM CEST Christoph Cullmann wrote:
> > Hi,
> 
> thanks for raising this topic. I think it's very important that we have a
> general strategy for frameworks and not have thousands of micro-fixes in
> various frameworks.
> 
> > 1) "Normal" deployment like we do in on Linux => just installing it with
> > all features if possible. 2) "Application Bundles/Installer" like we will
> > have to do it on Win/Mac and 3rdparty Linux people will need to do.
> > 
> > I think the easiest solution is to make stuff optional. That will avoid
> > ugly "if (WIN OR APPLE OR ANDROID)".. hacks in CMake and allow people to
> > still build stuff with that deps on that operating systems if really
> > wanted.
> Given from the no-X11 fixes I think that we should avoid all if (WIN OR
> APPLE) as that:
> a) is hard to maintain
> b) doesn't scale
> c) not testable for the devs working on Linux
> 
> Given that it should be feature based and we should make as much usage of
> the built in CMake features we have. I really like the approach we have now
> found for X11 on OSX: disable certain find modules at a global level.
> 
> I think that is something which could be applied for more things. Control
> through global ECM settings. This could if we don't want to have global
> changes also through convenient command switches:
> 
> e.g. cmake -DECM_BUILD_FOR_OSX_APPBUNDLE
> 
> which then implies e.g. no phonon and no dbus and ...

I disagree, phonon and dbus are available on OSX and could be made to work so 
having a ECM_BUILD_FOR_OSX_APPBUNDLE that disables perfectly valid features 
doesn't make sense to me.

Cheers,
  Albert

> 
> Cheers
> Martin

___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Jaroslaw Staniek
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  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
> > (g...@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: cullm...@absint.com
> Science Park 1 Tel:   +49-681-38360-22
> 66123 Saarbrücken  Fax:   +49-681-38360-20
> GERMANYWWW:   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@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 

Re: Policy for Dependencies

2015-10-13 Thread Sune Vuorela
On 2015-10-13, Martin Graesslin  wrote:
> 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.

I do think that such packagers should be slapped around with a large
trout. Or something.

> 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.

There is also another angle to the dependencies. What dependencies can
be enabled/disabled without requiring changes to users of the library.

Or put it another way. Is the enabling/disabling of a given feature ABI
and API compatible.

I do think that for features that doesn't impact the API/ABI we should
make it very easy to enable/disable them. Like based on having things
present on the system or not.

But for things that affects the API/ABI of the library, people should be
explicit about it.

/Sune

___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Christoph Cullmann
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
> (g...@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: cullm...@absint.com
Science Park 1 Tel:   +49-681-38360-22
66123 Saarbrücken  Fax:   +49-681-38360-20
GERMANYWWW:   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@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Christoph Cullmann
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
> 
> 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 
(g...@git.kde.org:scratch/sars/kate-windows),
which IMHO is sad.

Greetings
Christoph

-- 
- Dr.-Ing. Christoph Cullmann -
AbsInt Angewandte Informatik GmbH  Email: cullm...@absint.com
Science Park 1 Tel:   +49-681-38360-22
66123 Saarbrücken  Fax:   +49-681-38360-20
GERMANYWWW:   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@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Martin Graesslin
On Tuesday, October 13, 2015 2:20:31 PM CEST Christoph Cullmann wrote:
> Hi,
> 
> different take on that below:
> > Hi,
> > 
> >> On Tuesday, October 13, 2015 8:42:43 AM CEST Christoph Cullmann wrote:
> >>> Hi,
> >> 
> >> thanks for raising this topic. I think it's very important that we have a
> >> general strategy for frameworks and not have thousands of micro-fixes in
> >> various frameworks.
> > 
> > ;=)
> > 
> >>> 1) "Normal" deployment like we do in on Linux => just installing it with
> >>> all features if possible. 2) "Application Bundles/Installer" like we
> >>> will have to do it on Win/Mac and 3rdparty Linux people will need to
> >>> do.
> >>> 
> >>> I think the easiest solution is to make stuff optional. That will avoid
> >>> ugly "if (WIN OR APPLE OR ANDROID)".. hacks in CMake and allow people
> >>> to still build stuff with that deps on that operating systems if really
> >>> wanted.>> 
> >> Given from the no-X11 fixes I think that we should avoid all if (WIN OR
> >> APPLE) as that:
> >> a) is hard to maintain
> >> b) doesn't scale
> >> c) not testable for the devs working on Linux
> >> 
> >> Given that it should be feature based and we should make as much usage of
> >> the built in CMake features we have. I really like the approach we have
> >> now found for X11 on OSX: disable certain find modules at a global
> >> level.
> >> 
> >> I think that is something which could be applied for more things. Control
> >> through global ECM settings. This could if we don't want to have global
> >> changes also through convenient command switches:
> >> 
> >> e.g. cmake -DECM_BUILD_FOR_OSX_APPBUNDLE
> >> 
> >> which then implies e.g. no phonon and no dbus and ...
> > 
> > For X11 that might cut it, as it is non-sense to compile it on mac, but I
> > doubt such
> > global magic will cut it for other stuff like phonon or dbus.
> > 
> > You might want to have both on mac and windows, too.
> > 
> > If we start to make this global disabled, we will annoy people, too.
> > In addition: If we want to have 3rdparty devs use our stuff, it must be
> > possible to avoid these dependencies on Linux, too.
> > 
> > I really would like to have the normal CMake strategy: non-required stuff
> > is optional.
> > 
> > For KNotifications thats even obvious, given its internals are build in a
> > ways that this
> > stuff is an internal "plugin".
> > 
> > I don't think we need yet an other level of magic, beside things like "X11
> > on Mac/Win are non-brainers",
> > which is not much more than we do with other global compiler/cmake flags
> > specific for OSes.
> 
> 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

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.

Cheers
Martin

signature.asc
Description: This is a digitally signed message part.
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Christoph Cullmann
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
> 
> I think we're mixing different subjects here. One thing is being able
> to be as portable as possible and another thing is to have few
> dependencies. Dependencies are a portability problem as they make the
> process a bit more complex, but also this process needs to be
> standardized. The reason why dependencies are a problem when we port,
> is because these pop when we as humble developers try to play the
> packager role, and we're not used it it.
> 
> My proposal is that we should make sure which frameworks are viable on
> each platform. If a framework is not viable on a platform (be it
> because it's not an abstraction or because it doesn't make sense) then
> other frameworks must either inherit the non-viability or make the
> framework usage optional. And so should do applications that aspire to
> be portable, which is by no means required.
> 
> I'm not sure though how acceptable is to drop functionality in favor
> of just reducing the dependency list.
I don't really think that this is mixing things.

I think we must accept, that on neither Windows nor Mac we will have all 
dependencies available
and that for many applications not all features are needed. There is no 
"packagers" for
that operating systems, you need to provide the stuff you use yourself, just 
like you
would do on Android/iOS.

E.g. no, I doubt that Krita or Kate will suffer a lot, if we have no sound, nor 
will
many 3rdparty applications. We can make the knotifications usage more optional, 
e.g.
in kparts, or we can make the knotifications dependencies more optional.

Therefore I think less dependencies are needed to be called "portable" in that 
case.

But that a side, for the dependencies itself, no matter if we target just one 
os or multiple,
would the KDE_ENABLE_MINIMAL_DEPENDENCIES switch be a solution for the 
criticism raised?

It at least would provide some generic and "opt-in" way for people compiling 
our stuff
to say "I want to have minimal dependencies and are aware of loss of 
functionality if stuff is missing"
opposed to my/our current approach to make things optional per default.

With that variable available, I could e.g. make even libgit2 required for 
KTextEditor to ensure
per default I have good git integration and make it optional with that var to 
still allow
people to build it if the really want to loose that. Same for Kate with its 
plugins.
Would save me bug reports about missing things, too.

Greetings
Christoph

-- 
- Dr.-Ing. Christoph Cullmann -
AbsInt Angewandte Informatik GmbH  Email: cullm...@absint.com
Science Park 1 Tel:   +49-681-38360-22
66123 Saarbrücken  Fax:   +49-681-38360-20
GERMANYWWW:   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@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Aleix Pol
On Tue, Oct 13, 2015 at 2:20 PM, Christoph Cullmann  wrote:
> Hi,
>
> different take on that below:
>
>> Hi,
>>
>>> On Tuesday, October 13, 2015 8:42:43 AM CEST Christoph Cullmann wrote:
 Hi,
>>>
>>> thanks for raising this topic. I think it's very important that we have a
>>> general strategy for frameworks and not have thousands of micro-fixes in
>>> various frameworks.
>> ;=)
>>
>>>
 1) "Normal" deployment like we do in on Linux => just installing it with 
 all
 features if possible. 2) "Application Bundles/Installer" like we will have
 to do it on Win/Mac and 3rdparty Linux people will need to do.

 I think the easiest solution is to make stuff optional. That will avoid 
 ugly
 "if (WIN OR APPLE OR ANDROID)".. hacks in CMake and allow people to still
 build stuff with that deps on that operating systems if really wanted.
>>>
>>> Given from the no-X11 fixes I think that we should avoid all if (WIN OR 
>>> APPLE)
>>> as that:
>>> a) is hard to maintain
>>> b) doesn't scale
>>> c) not testable for the devs working on Linux
>>>
>>> Given that it should be feature based and we should make as much usage of 
>>> the
>>> built in CMake features we have. I really like the approach we have now 
>>> found
>>> for X11 on OSX: disable certain find modules at a global level.
>>>
>>> I think that is something which could be applied for more things. Control
>>> through global ECM settings. This could if we don't want to have global
>>> changes also through convenient command switches:
>>>
>>> e.g. cmake -DECM_BUILD_FOR_OSX_APPBUNDLE
>>>
>>> which then implies e.g. no phonon and no dbus and ...
>>
>> For X11 that might cut it, as it is non-sense to compile it on mac, but I 
>> doubt
>> such
>> global magic will cut it for other stuff like phonon or dbus.
>>
>> You might want to have both on mac and windows, too.
>>
>> If we start to make this global disabled, we will annoy people, too.
>> In addition: If we want to have 3rdparty devs use our stuff, it must be 
>> possible
>> to avoid these dependencies on Linux, too.
>>
>> I really would like to have the normal CMake strategy: non-required stuff is
>> optional.
>>
>> For KNotifications thats even obvious, given its internals are build in a 
>> ways
>> that this
>> stuff is an internal "plugin".
>>
>> I don't think we need yet an other level of magic, beside things like "X11 on
>> Mac/Win are non-brainers",
>> which is not much more than we do with other global compiler/cmake flags
>> specific for OSes.
>
> 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

I think we're mixing different subjects here. One thing is being able
to be as portable as possible and another thing is to have few
dependencies. Dependencies are a portability problem as they make the
process a bit more complex, but also this process needs to be
standardized. The reason why dependencies are a problem when we port,
is because these pop when we as humble developers try to play the
packager role, and we're not used it it.

My proposal is that we should make sure which frameworks are viable on
each platform. If a framework is not viable on a platform (be it
because it's not an abstraction or because it doesn't make sense) then
other frameworks must either inherit the non-viability or make the
framework usage optional. And so should do applications that aspire to
be portable, which is by no means required.

I'm not sure though how acceptable is to drop functionality in favor
of just reducing the dependency list.

Aleix
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Christoph Cullmann
Hi,

different take on that below:

> Hi,
> 
>> On Tuesday, October 13, 2015 8:42:43 AM CEST Christoph Cullmann wrote:
>>> Hi,
>> 
>> thanks for raising this topic. I think it's very important that we have a
>> general strategy for frameworks and not have thousands of micro-fixes in
>> various frameworks.
> ;=)
> 
>> 
>>> 1) "Normal" deployment like we do in on Linux => just installing it with all
>>> features if possible. 2) "Application Bundles/Installer" like we will have
>>> to do it on Win/Mac and 3rdparty Linux people will need to do.
>>> 
>>> I think the easiest solution is to make stuff optional. That will avoid ugly
>>> "if (WIN OR APPLE OR ANDROID)".. hacks in CMake and allow people to still
>>> build stuff with that deps on that operating systems if really wanted.
>> 
>> Given from the no-X11 fixes I think that we should avoid all if (WIN OR 
>> APPLE)
>> as that:
>> a) is hard to maintain
>> b) doesn't scale
>> c) not testable for the devs working on Linux
>> 
>> Given that it should be feature based and we should make as much usage of the
>> built in CMake features we have. I really like the approach we have now found
>> for X11 on OSX: disable certain find modules at a global level.
>> 
>> I think that is something which could be applied for more things. Control
>> through global ECM settings. This could if we don't want to have global
>> changes also through convenient command switches:
>> 
>> e.g. cmake -DECM_BUILD_FOR_OSX_APPBUNDLE
>> 
>> which then implies e.g. no phonon and no dbus and ...
> 
> For X11 that might cut it, as it is non-sense to compile it on mac, but I 
> doubt
> such
> global magic will cut it for other stuff like phonon or dbus.
> 
> You might want to have both on mac and windows, too.
> 
> If we start to make this global disabled, we will annoy people, too.
> In addition: If we want to have 3rdparty devs use our stuff, it must be 
> possible
> to avoid these dependencies on Linux, too.
> 
> I really would like to have the normal CMake strategy: non-required stuff is
> optional.
> 
> For KNotifications thats even obvious, given its internals are build in a ways
> that this
> stuff is an internal "plugin".
> 
> I don't think we need yet an other level of magic, beside things like "X11 on
> Mac/Win are non-brainers",
> which is not much more than we do with other global compiler/cmake flags
> specific for OSes.

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

Greetings
Christoph

-- 
- Dr.-Ing. Christoph Cullmann -
AbsInt Angewandte Informatik GmbH  Email: cullm...@absint.com
Science Park 1 Tel:   +49-681-38360-22
66123 Saarbrücken  Fax:   +49-681-38360-20
GERMANYWWW:   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@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-13 Thread Christoph Cullmann
Hi,

> On Tuesday, October 13, 2015 8:42:43 AM CEST Christoph Cullmann wrote:
>> Hi,
> 
> thanks for raising this topic. I think it's very important that we have a
> general strategy for frameworks and not have thousands of micro-fixes in
> various frameworks.
;=)

> 
>> 1) "Normal" deployment like we do in on Linux => just installing it with all
>> features if possible. 2) "Application Bundles/Installer" like we will have
>> to do it on Win/Mac and 3rdparty Linux people will need to do.
>> 
>> I think the easiest solution is to make stuff optional. That will avoid ugly
>> "if (WIN OR APPLE OR ANDROID)".. hacks in CMake and allow people to still
>> build stuff with that deps on that operating systems if really wanted.
> 
> Given from the no-X11 fixes I think that we should avoid all if (WIN OR APPLE)
> as that:
> a) is hard to maintain
> b) doesn't scale
> c) not testable for the devs working on Linux
> 
> Given that it should be feature based and we should make as much usage of the
> built in CMake features we have. I really like the approach we have now found
> for X11 on OSX: disable certain find modules at a global level.
> 
> I think that is something which could be applied for more things. Control
> through global ECM settings. This could if we don't want to have global
> changes also through convenient command switches:
> 
> e.g. cmake -DECM_BUILD_FOR_OSX_APPBUNDLE
> 
> which then implies e.g. no phonon and no dbus and ...

For X11 that might cut it, as it is non-sense to compile it on mac, but I doubt 
such
global magic will cut it for other stuff like phonon or dbus.

You might want to have both on mac and windows, too.

If we start to make this global disabled, we will annoy people, too.
In addition: If we want to have 3rdparty devs use our stuff, it must be possible
to avoid these dependencies on Linux, too.

I really would like to have the normal CMake strategy: non-required stuff is 
optional.

For KNotifications thats even obvious, given its internals are build in a ways 
that this
stuff is an internal "plugin".

I don't think we need yet an other level of magic, beside things like "X11 on 
Mac/Win are non-brainers",
which is not much more than we do with other global compiler/cmake flags 
specific for OSes.

Greetings
Christoph

-- 
- Dr.-Ing. Christoph Cullmann -
AbsInt Angewandte Informatik GmbH  Email: cullm...@absint.com
Science Park 1 Tel:   +49-681-38360-22
66123 Saarbrücken  Fax:   +49-681-38360-20
GERMANYWWW:   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@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


Re: Policy for Dependencies

2015-10-12 Thread Martin Graesslin
On Tuesday, October 13, 2015 8:42:43 AM CEST Christoph Cullmann wrote:
> Hi,

thanks for raising this topic. I think it's very important that we have a 
general strategy for frameworks and not have thousands of micro-fixes in 
various frameworks.

> 1) "Normal" deployment like we do in on Linux => just installing it with all
> features if possible. 2) "Application Bundles/Installer" like we will have
> to do it on Win/Mac and 3rdparty Linux people will need to do.
> 
> I think the easiest solution is to make stuff optional. That will avoid ugly
> "if (WIN OR APPLE OR ANDROID)".. hacks in CMake and allow people to still
> build stuff with that deps on that operating systems if really wanted.

Given from the no-X11 fixes I think that we should avoid all if (WIN OR APPLE) 
as that:
a) is hard to maintain
b) doesn't scale
c) not testable for the devs working on Linux

Given that it should be feature based and we should make as much usage of the 
built in CMake features we have. I really like the approach we have now found 
for X11 on OSX: disable certain find modules at a global level.

I think that is something which could be applied for more things. Control 
through global ECM settings. This could if we don't want to have global 
changes also through convenient command switches:

e.g. cmake -DECM_BUILD_FOR_OSX_APPBUNDLE

which then implies e.g. no phonon and no dbus and ...

Cheers
Martin

signature.asc
Description: This is a digitally signed message part.
___
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel