<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://git.reviewboard.kde.org/r/127169/">https://git.reviewboard.kde.org/r/127169/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On February 24th, 2016, 8:06 p.m. CET, <b>Stephen Kelly</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Hi Aleix,</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I'm not familiar with the 'tiny mess'. Can you say what it is? I would expect the libs go in the same place, but maybe the plugins are affected by this? Can you be more specific?</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Thanks,</p></pre>
</blockquote>
<p>On February 25th, 2016, 1:32 a.m. CET, <b>Aleix Pol Gonzalez</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Well, Qt might be installing things in <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">$prefix/lib</code> and cmake in <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">$prefix/lib64</code>. In fact, Qt by default installs plugins in <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">$prefix/plugins</code> (which looks really odd, I agree).
In any case, if it's meant to go to the same place, let's just ask Qt where to go.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">As you can see, all of the distros are already specifying this: (and they don't need to in fact, because it's the same prefix)
https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/kcoreaddons
http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/wily/pkg-kde-tools/wily/view/head:/datalib/kf5_flags
https://pkgs.fedoraproject.org/cgit/rpms/kf5.git/tree/macros.kf5</p></pre>
</blockquote>
<p>On February 25th, 2016, 1:44 a.m. CET, <b>Nicolás Alvarez</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I don't think "all distros set it" is a valid argument for changing a default, otherwise we would be setting <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">CMAKE_INSTALL_PREFIX=/usr</code> by default too.</p></pre>
</blockquote>
<p>On February 25th, 2016, 9:51 p.m. CET, <b>Stephen Kelly</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I agree with Nicolás that this seems wierd. Are packagers complaining about having to set this?</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Also, I don't think I've seen enough specifics about the impact this has. What moves where etc.</p></pre>
</blockquote>
<p>On February 26th, 2016, 12:01 a.m. CET, <b>Aleix Pol Gonzalez</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">99% of our users use a setting that we don't enable by default? It's definitely something to take into account.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">In fact, if the creator of a system decided that Qt plugins go to /usr/heaven/plugins, I don't really see why we should override the decision and ask the user to configure each project specifically. I understand this wouldn't make sense if they weren't sharing a prefix, as it's a complete different thing.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">An example is my installation. Qt decided to put the plugins in <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">$prefix/lib/plugins</code>, cmake/ecm decides to put them in <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">$prefix/lib64/plugins</code>. I get 2 Qt plugin directories for no reason.</p></pre>
</blockquote>
<p>On February 26th, 2016, 12:31 a.m. CET, <b>Stephen Kelly</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Sorry, just so I understand - The '99%' is referring to packagers creating distro packages? </p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Do we want to make 'create a distro package' the primary/default case in kde buildsystems? Genuine question. Otherwise I don't understand your point here I'm afraid. That would indeed mean we should set CMAKE_INSTALL_PREFIX=/usr. Perhaps there are other things we should set too. If you're suggesting we should do that, then maybe we really should. Is that the suggestion?</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I'd still like to see a list of what changes. What moves where etc, as a result of this. You mentioned $prefix/lib/plugins to $prefix/lib64/plugins . Is that everything? It's only plugins that are affected?</p></pre>
</blockquote>
<p>On February 26th, 2016, 12:56 a.m. CET, <b>Aleix Pol Gonzalez</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;"><code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">CMAKE_INSTALL_PREFIX=/usr</code> would be a whole different story, because we'd be deciding on where the project is installed. The important thing is that if the user decides that his project and Qt share the same prefix, those should get plugins (and FWIW, anything that will be looked-up afterwards by Qt) in the same place, by default.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Namely, that is that we're making sure is the same:</p>
<ul style="padding: 0;text-rendering: inherit;margin: 0 0 0 1em;line-height: inherit;white-space: normal;">
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">KDE_INSTALL_QTPLUGINDIR: <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">qmake -query QT_INSTALL_PLUGINS</code></li>
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">KDE_INSTALL_QMLDIR: <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">qmake -query QT_INSTALL_QML</code></li>
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">KDE_INSTALL_QTQUICKIMPORTSDIR: <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">qmake -query IMPORTS_INSTALL_DIR</code></li>
</ul></pre>
</blockquote>
<p>On February 26th, 2016, 1 a.m. CET, <b>Nicolás Alvarez</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Oh, what if the user <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">doesn't</em> have his project and Qt in the same prefix? Eg. Qt in /usr (system-provided) and his project in ~/local?</p></pre>
</blockquote>
<p>On February 26th, 2016, 1:02 a.m. CET, <b>Stephen Kelly</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;"><blockquote style="text-rendering: inherit;padding: 0 0 0 1em;border-left: 1px solid #bbb;white-space: normal;margin: 0 0 0 0.5em;line-height: inherit;">
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Namely, that is that we're making sure is the same:
KDE_INSTALL_QTPLUGINDIR: qmake -query QT_INSTALL_PLUGINS
KDE_INSTALL_QMLDIR: qmake -query QT_INSTALL_QML
KDE_INSTALL_QTQUICKIMPORTSDIR: qmake -query IMPORTS_INSTALL_DIR</p>
</blockquote>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Thanks. This is specific and we can have a discussion about them. Too late in this evening for me now though.</p></pre>
</blockquote>
<p>On February 27th, 2016, 12:33 p.m. CET, <b>Stephen Kelly</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I tried to figure out what the differences are in terms of paths, but I couldn't figure out what KDE_INSTALL_QTPLUGINDIR, KDE_INSTALL_QMLDIR, KDE_INSTALL_QTQUICKIMPORTSDIR resolve to and how that changes.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Also, my question about whether packagers are complaining about having to set that variable wasn't answered.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I think it would be good to have changes be better understood, otherwise we end up with lots of mess. However, it looks like several people really want this, and I don't want to stand in the way.</p></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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I don't mind spending some time to explain it better.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Currently what we're doing from ECM, by default, is to <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">guess</em> where Qt will have placed things. Nowadays, <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">KDE_INSTALL_QTQUICKIMPORTSDIR</code> points to <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">${KDE_INSTALL_QTPLUGINDIR}/imports</code>. See <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">KDEInstallDirs.cmake:440</code>.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">If the Qt installation is configured to get the Qt imports to go to <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">/usr/lib/IKnowBetter/imports</code> and we don't change our guess, we'll get both the Qt directory and a <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">/usr/lib64/plugins/imports</code> directory where the cmake projects will naïvely place the plugins.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">An example of a case where we can see people suffering this (I found over a fast google search) is this:
https://forum.kde.org/viewtopic.php?f=25&t=130498</p></pre>
<br />
<p>- Aleix</p>
<br />
<p>On February 24th, 2016, 6:09 p.m. CET, Aleix Pol Gonzalez wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
<tr>
<td>
<div>Review request for Extra Cmake Modules, KDE Frameworks and Albert Vaca Cintora.</div>
<div>By Aleix Pol Gonzalez.</div>
<p style="color: grey;"><i>Updated Feb. 24, 2016, 6:09 p.m.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
extra-cmake-modules
</div>
<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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Make Qt and ECM-based projects use the same directory sctructure (i.e. where plugins are, libs, etc.) by default. Otherwise it creates a tiny mess that might be controlled but usually won't.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">In the end, otherwise, people need to keep adapting their systems with environment variables anyway. All distros end up setting always this setting as ON, as well as brave developers who don't have separate prefixes for Qt and KDE.</p></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>kde-modules/KDEInstallDirs.cmake <span style="color: grey">(ebd48fa)</span></li>
</ul>
<p><a href="https://git.reviewboard.kde.org/r/127169/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>