> On June 15, 2013, 7:06 p.m., Albert Astals Cid wrote:
> > Is this some kind of joke?
> >
> > Honestly upstreaming patches is good, but when they make sense, and adding
> > billions of "If #SUSE" to our code does not make any sense. Please discard
> > this review, break stuff in separate patches and if they make sense we can
> > discuss adding them upstream without the "IF SUSE".
>
> Johannes Obermayr wrote:
> Do you remember on
> http://tsdgeos.blogspot.de/2010/05/complex-systems-are-complex.html and how
> long I had to study openSUSE's kdelibs4 package which of the patches were
> applied and which not, rebuilding packages, installing -debuginfo, etc.? Last
> sentence is one of the reasons for my wish to get also distro specific
> patches upstream - not only openSUSE's.
> If I remember right there were and should be some distro specific bug
> reports on bko: The more people have easy access to source code in "Complex
> systems [which] are complex" the likelier reasons for specific bugs can be
> tracked down ...
>
> Yes, binding upstream developers to downstream changes/problems is not
> really nice but could also mean a win-win-situation for both: downstream devs
> will do more upstream work and upstream devs can review downstream work,
> better find distro specific bugs and assign them to downstream devs.
>
> Intention of this review request is to start a discussion ...
>
> Martin Gräßlin wrote:
> Upstreaming the patches with if #SUSE doesn't solve the problem: one
> still doesn't know which code is run by a user's setup. Even worse: the
> chances for bitrot increase. The current system of downstream patches mean
> that the distribution has to ensure that the patches apply on new versions. A
> human has to look at each of them. That's the cost of having downstream
> patches. If you currently not do that (e.g. debug areas for non shipped
> software) you should rethink whether you have too many patches.
>
> For downstream patches there are the following possible solutions:
> * Try to upstream them: if upstream accepts them you get rid of the
> patch, if upstream doesn't accept you should best drop the patch, too
> * For distro-specific behavior: add abstraction with plugin system and
> upstream
> * keep patches for build issues (common example: compile errors with non
> C++ compliant compilers)
>
> Personally I would go so far that we as upstream say that we don't accept
> bug reports in case the distributions carries downstream patches.
>
> Luca Beltrame wrote:
> [Johannes]
> > Intention of this review request is to start a discussion ...
>
> Use the mailing list, not a review request, to start a discussion (and do
> not upload a broken patch).
>
> > how long I had to study openSUSE's kdelibs4 package which of the patches
>
> Then you should have contacted the openSUSE community KDE team first,
> since we had already started a patch review of the distro-shipped patches. I
> reiterate that the rest of the team is absolutely against this RR. And you
> should have noticed by now that we strive already to push things upstream.
>
> [Martin]
> > * Try to upstream them: if upstream accepts them you get rid of the
> patch, if upstream doesn't accept you should best drop the patch, too
>
> For some case, it is not possible as desirable functionality will not be
> integrated upstream in some cases (e.g. KDM with plymouth, to make an
> example).
@Martin:
> Upstreaming the patches with if #SUSE doesn't solve the problem: one still
> doesn't know which code is run by a user's setup.
I don't understand this. If an user tells (s)he uses openSUSE's RPM which are
compiled with code within "#if defined(DISTRO_SUSE) ... #endif" you should be
able to say which code is running.
> Even worse: the chances for bitrot increase. [...] * For distro-specific
> behavior: add abstraction with plugin system and upstream
Can't bitrot increase also happen on an abstraction layer?
I think the preprocessor solution is the better one because it results in
faster and smaller binaries without binding other distributions to code they
don't use:
if (access ("/etc/SuSE-release", R_OK) != 0) {
openSUSE_specific_code
}
takes more CPU cycles in binary than
Add -DDISTRO_SUSE=1 to FLAGS
#if defined(DISTRO_SUSE)
openSUSE_specific_code
#endif
Also this patch could be upstreamed only with preprocessor solution:
https://build.opensuse.org/package/view_file?expand=1&file=add-suse-translations.diff&package=kdelibs4&project=KDE:Distro:Factory
> Personally I would go so far that we as upstream say that we don't accept bug
> reports in case the distributions carries downstream patches.
So sb. must adapt drkonqi to deny sending bug reports from openSUSE RPMs to bko.
@Luca:
> - ksuseinstall is actually on its way to be *killed* in future openSUSE
> versions.
> - Stuff like YMP handlers (one-click installs)
> - The patch is *broken* in many ways, including adding debug areas for non
> shipped software (kupdateapplet), a lot of needless compatibility layers
> (KDE3) etc. It's just a wholesale port made without any serious efforts at
> reviewing.
Why don't you drop obsolete patches and waste binaries then?
[Off-topic] Grumble and then don't change anything (e. g.
kdebug-areas-update.diff is still applied in KDF - it takes <30 seconds to
remove it). That's my long experience with elitist openSUSE KDE maintainers who
cannot accept new maintainers for KDE: projects because of missing rules for
that [1] (or maybe my accepted requests [2] were insufficient and nobody wants
to say this).[/Off-topic]
>> Intention of this review request is to start a discussion ...
> Use the mailing list, not a review request, to start a discussion (and do not
> upload a broken patch).
This way the [final] code can be easily reviewed and commented. I will upload a
patch series and close this review request if a solutions is found ...
[1] https://bugzilla.novell.com/show_bug.cgi?id=706813#c16
[2] https://build.opensuse.org/home/requests?user=jobermayr (please change to
"accepted")
- Johannes
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/111042/#review34388
-----------------------------------------------------------
On June 15, 2013, 6:27 p.m., Johannes Obermayr wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/111042/
> -----------------------------------------------------------
>
> (Updated June 15, 2013, 6:27 p.m.)
>
>
> Review request for kdelibs.
>
>
> Description
> -------
>
> Distributions should upstream their patches / changes:
> - Upstream / other distributions can easily see distro specific changes and
> enable them by default by removing "#if defined(DISTRO_xxx)"
> - Maybe duplicate work can be avoided and other distributions can easily use
> them by "|| defined(DISTRO_xxx)"
> - Less adaptions of downstream patches ...
>
>
> Diffs
> -----
>
> CMakeLists.txt 705c84e
> kdecore/config/kconfig.cpp 048605d
> kdecore/config/kconfig_p.h 7751242
> kdecore/config/kconfigdata.h e5dd7da
> kdecore/config/kconfiggroup.h 8eddfd5
> kdecore/config/kconfiggroup.cpp 9e73eb7
> kdecore/config/kdesktopfile.h 1c4eae6
> kdecore/config/kdesktopfile.cpp 54e5910
> kdecore/kdebug.areas 29a4415
> kdecore/localization/klocale_kde.cpp b010e74
> kdecore/services/kservice.h 3843bad
> kdecore/services/kservice.cpp e2cc86f
> kdecore/services/kservicegroup.h 9fdf2b0
> kdecore/services/kservicegroup.cpp 08bc587
> kdecore/services/kservicegroup_p.h 5f21497
> kded/vfolder_menu.cpp f0b0b35
> kdesu/defaults.h 706a088
> kdeui/kernel/kglobalsettings.cpp 2e3a7eb
> khtml/html/html_objectimpl.cpp f0f590d
> kio/CMakeLists.txt 4854829
> kio/kio/kprotocolmanager.cpp 05bb547
> kio/kio/krun.cpp ad5656e
> kjs/collector.cpp cdd8421
> plasma/containment.h e725a99
> plasma/containment.cpp fc2ca70
> plasma/private/containment_p.h 75a6f80
> plasma/theme.cpp 4554de7
> suseinstall/CMakeLists.txt PRE-CREATION
> suseinstall/kbuildsycocaprogressdialog.h PRE-CREATION
> suseinstall/kbuildsycocaprogressdialog.cpp PRE-CREATION
> suseinstall/ksuseinstall.h PRE-CREATION
> suseinstall/ksuseinstall.cpp PRE-CREATION
> suseinstall/ksuseinstall_export.h PRE-CREATION
>
> Diff: http://git.reviewboard.kde.org/r/111042/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Johannes Obermayr
>
>