<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="http://git.reviewboard.kde.org/r/111042/">http://git.reviewboard.kde.org/r/111042/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On June 15th, 2013, 7:06 p.m. CEST, <b>Albert Astals Cid</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">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".</pre>
</blockquote>
<p>On June 15th, 2013, 11:02 p.m. CEST, <b>Johannes Obermayr</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">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 ...</pre>
</blockquote>
</blockquote>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">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.</pre>
<br />
<p>- Martin</p>
<br />
<p>On June 15th, 2013, 6:27 p.m. CEST, Johannes Obermayr wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for kdelibs.</div>
<div>By Johannes Obermayr.</div>
<p style="color: grey;"><i>Updated June 15, 2013, 6:27 p.m.</i></p>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">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 ...</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>CMakeLists.txt <span style="color: grey">(705c84e)</span></li>
<li>kdecore/config/kconfig.cpp <span style="color: grey">(048605d)</span></li>
<li>kdecore/config/kconfig_p.h <span style="color: grey">(7751242)</span></li>
<li>kdecore/config/kconfigdata.h <span style="color: grey">(e5dd7da)</span></li>
<li>kdecore/config/kconfiggroup.h <span style="color: grey">(8eddfd5)</span></li>
<li>kdecore/config/kconfiggroup.cpp <span style="color: grey">(9e73eb7)</span></li>
<li>kdecore/config/kdesktopfile.h <span style="color: grey">(1c4eae6)</span></li>
<li>kdecore/config/kdesktopfile.cpp <span style="color: grey">(54e5910)</span></li>
<li>kdecore/kdebug.areas <span style="color: grey">(29a4415)</span></li>
<li>kdecore/localization/klocale_kde.cpp <span style="color: grey">(b010e74)</span></li>
<li>kdecore/services/kservice.h <span style="color: grey">(3843bad)</span></li>
<li>kdecore/services/kservice.cpp <span style="color: grey">(e2cc86f)</span></li>
<li>kdecore/services/kservicegroup.h <span style="color: grey">(9fdf2b0)</span></li>
<li>kdecore/services/kservicegroup.cpp <span style="color: grey">(08bc587)</span></li>
<li>kdecore/services/kservicegroup_p.h <span style="color: grey">(5f21497)</span></li>
<li>kded/vfolder_menu.cpp <span style="color: grey">(f0b0b35)</span></li>
<li>kdesu/defaults.h <span style="color: grey">(706a088)</span></li>
<li>kdeui/kernel/kglobalsettings.cpp <span style="color: grey">(2e3a7eb)</span></li>
<li>khtml/html/html_objectimpl.cpp <span style="color: grey">(f0f590d)</span></li>
<li>kio/CMakeLists.txt <span style="color: grey">(4854829)</span></li>
<li>kio/kio/kprotocolmanager.cpp <span style="color: grey">(05bb547)</span></li>
<li>kio/kio/krun.cpp <span style="color: grey">(ad5656e)</span></li>
<li>kjs/collector.cpp <span style="color: grey">(cdd8421)</span></li>
<li>plasma/containment.h <span style="color: grey">(e725a99)</span></li>
<li>plasma/containment.cpp <span style="color: grey">(fc2ca70)</span></li>
<li>plasma/private/containment_p.h <span style="color: grey">(75a6f80)</span></li>
<li>plasma/theme.cpp <span style="color: grey">(4554de7)</span></li>
<li>suseinstall/CMakeLists.txt <span style="color: grey">(PRE-CREATION)</span></li>
<li>suseinstall/kbuildsycocaprogressdialog.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>suseinstall/kbuildsycocaprogressdialog.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>suseinstall/ksuseinstall.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>suseinstall/ksuseinstall.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>suseinstall/ksuseinstall_export.h <span style="color: grey">(PRE-CREATION)</span></li>
</ul>
<p><a href="http://git.reviewboard.kde.org/r/111042/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>