[prev in list] [next in list] [prev in thread] [next in thread] 

List:       calligra-devel
Subject:    Re: Review Request 129800: [Mac] : prepare for "linuxy" vs. standalone app bundle builds
From:       Dag Andersen <danders () get2net ! dk>
Date:       2017-01-17 10:36:33
Message-ID: 20170117103633.31352.97397 () mimi ! kde ! org
[Download RAW message or body]

--===============3186261429390452704==
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit



> On Jan. 10, 2017, 8:28 p.m., Anthony Fieroni wrote:
> > So when Karbon works, i'm +1, please try words / sheets are they worked as well as Karbon?
> 
> René J.V. Bertin wrote:
> I cannot tell yet, but I'm not expecting any issues because of this patch. As you can see it only \
> touches common/shared code at the moment, and I am NOT building with `-DAPPLE_STANDALONE_BUILD`. 
> I *think* I should have most external dependencies installed for Words and Sheets, so I'll be looking \
> at building them in the near future, and update this ticket accordingly. 
> I'm my point of view that's icing on the cake that can come after we've reached feature parity with \
> Linux. I can imagine others think different (that's what Macs are for ;)). Hence this patch, it'll make \
> it easier to follow both approaches simultaneously. 
> René J.V. Bertin wrote:
> BTW: I do hope for some collaborative brainstorming w.r.t. using info from KoResourcePaths.h more \
> widely, instead of using QStandardPaths types directly. That's a rather delicate intervention which I'd \
> prefer not to take the sole responsibility for. 
> René J.V. Bertin wrote:
> I can confirm Words works too with this patch.
> 
> (I did have to fix a small issue in the words-odf filter, I've taken the liberty to push the fix: \
> https://cgit.kde.org/calligra.git/commit/?id=a8fd10d8b0a24e581eeb4754b458ba98ddbf0167) 
> René J.V. Bertin wrote:
> Sheets works nicely too!
> 
> Anthony Fieroni wrote:
> I response for only Karbon, wait for Camilla and Dag Andersen.
> 
> René J.V. Bertin wrote:
> Evidently.
> 
> Plan also works as far as I can tell (I never used it before).
> 
> There is an issue with `calligraplanwork` however, but given the error I think it has nothing to do \
> with my changes. If anything, I may have missed a location where a change is required, for instance to \
> install required DBus service files. 
> Dag Andersen wrote:
> Afaics this should be ok.
> The defines in KoResourcePaths.h doesn't seem to be used?
> Can't comment on apple stuff, never seen one close up ;)
> 
> René J.V. Bertin wrote:
> > The defines in KoResourcePaths.h doesn't seem to be used?
> 
> No indeed. As I tried to explain in the description, they're more a proposal:
> 
> > the change to KoResourcePathsImpl::mapTypeToQStandardPaths() only has a real interest if it's used \
> > throughout the code to replace the explicit use of QStandardPaths locations. For now I have set this \
> > up through build-type specific preprocessor macros in KoResourcePaths.h [...]
> 
> I don't want to start changing a huge amount of unknown code to use those macros because there are lots \
> of places that would have to be changed, and I don't think it can be done by a few simple \
> search-and-replace runs in an editor. Above all, I want to be sure that you agree about this approach. 
> And let me repeat: this isn't necessary for the kind of build that interests me on Mac, so there's no \
> hurry as far as I'm concerned ;)

Afaik KoResourcePaths is used in all calligra.
There are issues and I have a patch waiting (https://phabricator.kde.org/D2577) that didn't get into 3.0.
It's fairly big so I'm waiting for 3.1 to look at it again.

Different thing: in KoApplication line 242 you added a comment:
// add the paths that Krita5 sets in XDG_DATA_DIRS
Krita is not using any calligra libs anymore, so this could possibly be removed but I don't know if any \
other app depends on this, so...


- Dag


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/129800/#review101926
-----------------------------------------------------------


On Jan. 10, 2017, 4:34 p.m., René J.V. Bertin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/129800/
> -----------------------------------------------------------
> 
> (Updated Jan. 10, 2017, 4:34 p.m.)
> 
> 
> Review request for Calligra and Camilla Boemann.
> 
> 
> Repository: calligra
> 
> 
> Description
> -------
> 
> This proposal is an initial implementation of things discussed on the ML a short while back.
> 
> Building KF5 software on Mac as if on any Unix variant (with "Cocoa" instead of X11) is possible and is \
> what you get without specific changes to the build system. With a few tweaks to Qt's QStandardPaths \
> (provided by MacPorts) this kind of build works flawlessly and with an identical feature set as on \
> Linux c.s. 
> NB: this build also puts applications in an app bundle "wrapper", but one that contains just the \
> minimal resources (executable, app icon and Info.plist). 
> One can also tweak the build so that a relocatable and standalone app bundle results which contains the \
> application and all its 3rd-party dependencies (Qt5, KF5 frameworks, etc.). This works with a stock Qt5 \
> build but still requires patches throughout KF5 code and build systems. Several projects already \
> provide "official" builds of this type for Mac: Kate, KDevelop, Marble and Krita to name a few. 
> The current patch prepares for allowing a choice for either a standalone app bundle build or a more \
> traditional build via a CMake option `APPLE_STANDALONE_BUNDLE` and preprocessor token of the same name. \
> This makes it easy to dissociate the Apple build types from general Apple build requirements. Testing \
> for build flavour is done by checking `APPLE_STANDALONE_BUNDLE`, testing for build platform by checking \
> `APPLE` (CMake) or `Q_OS_MACOS` (Qt/C++) (or `__APPLE__` in code not using Qt). 
> In addition to the introduction of the CMake option, the patch
> 
> - updates `KoApplication::start()`. Judging from Kate's approach it shouldnt' be necessary on Mac to \
> set `XDG_DATA_DIRS`, which isn't used anywhere in code (except in MacPorts tweaked QStandardPaths!). \
> The `PATH` env. variable also shouldn't be *re*set and only needs changing (potentially!) in a \
> standalone app bundle build. I don't have a MS Windows dev. system so I've merged Krita's way of \
> setting `XDG_DATA_DIRS` with Calligra's current code. Note that Qt/Win also doesn't seem to use that \
>                 variable in `QStandardPaths`.
> - rewrites `KoResourcePathsImpl::mapTypeToQStandardPaths()` to use a much more efficient static `QHash` \
> table. *A priori* it should be possible to use `QStandardPaths::AppDataLocation` to obtain the location \
> of the app bundle resources directory; it could be populated with symlinks into \
> `/path/to/foo.app/Contents/share` so resources can be found with minimum changes to the build system \
> (install locations). This will need to be established going forward (knowing that my own main interest \
>                 is with "linuxy builds").
> - the change to `KoResourcePathsImpl::mapTypeToQStandardPaths()` only has a real interest if it's used \
> throughout the code instead of explicit use of QStandardPaths locations. For now I have set this up \
> through build-type specific preprocessor macros in KoResourcePaths.h (because an enum would probably \
> have to be cast to work with the QSP methods). I haven't changed any code to use those macros. 
> Not yet incorporated: tweaks to the `ecm_add_app_icon` calls to use its new capability to generate an \
> app icon from an SVG file (currently tested with Karbon). 
> 
> Diffs
> -----
> 
> CMakeLists.txt 13ac88f 
> libs/main/KoApplication.cpp 7b23f8d 
> libs/widgets/KoResourcePaths.h 8830a5a 
> libs/widgets/KoResourcePaths.cpp 7df9dc6 
> 
> Diff: https://git.reviewboard.kde.org/r/129800/diff/
> 
> 
> Testing
> -------
> 
> Karbon works as expected with this patch on Mac OS X 10.9.5 (and Linux) with Qt 5.7.1 and KF5 5.29.0 \
> installed under /opt/local .  
> Without the patch Karbon crashes or aborts immediately on Mac because it doesn't find a single resource \
> in the locations indicated by the inappropriate `XDG_DATA_DIRS` value. 
> 
> Thanks,
> 
> René J.V. Bertin
> 
> 


--===============3186261429390452704==
MIME-Version: 1.0
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: 8bit




<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/129800/">https://git.reviewboard.kde.org/r/129800/</a>
     </td>
    </tr>
   </table>
   <br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On January 10th, 2017, 8:28 p.m. UTC, <b>Anthony Fieroni</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;">So when Karbon works, i'm +1, please try words / sheets are they worked as \
well as Karbon?</p></pre>  </blockquote>




 <p>On January 10th, 2017, 9 p.m. UTC, <b>René J.V. Bertin</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 cannot tell yet, but I'm not expecting any issues because of this patch. \
As you can see it only touches common/shared code at the moment, and I am NOT building with <code \
style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: \
inherit;">-DAPPLE_STANDALONE_BUILD</code>.</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">I <em style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: normal;">think</em> I should have most external dependencies \
installed for Words and Sheets, so I'll be looking at building them in the near future, and update this \
ticket accordingly.</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">I'm my point of view that's icing on the cake that can come after we've \
reached feature parity with Linux. I can imagine others think different (that's what Macs are for ;)). \
Hence this patch, it'll make it easier to follow both approaches simultaneously.</p></pre>  </blockquote>





 <p>On January 10th, 2017, 9:03 p.m. UTC, <b>René J.V. Bertin</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;">BTW: I do hope for some collaborative brainstorming w.r.t. using info from \
KoResourcePaths.h more widely, instead of using QStandardPaths types directly. That's a rather delicate \
intervention which I'd prefer not to take the sole responsibility for.</p></pre>  </blockquote>





 <p>On January 11th, 2017, 3:54 p.m. UTC, <b>René J.V. Bertin</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 can confirm Words works too with this patch.</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">(I did have to fix a \
small issue in the words-odf filter, I've taken the liberty to push the fix: \
https://cgit.kde.org/calligra.git/commit/?id=a8fd10d8b0a24e581eeb4754b458ba98ddbf0167)</p></pre>  \
</blockquote>





 <p>On January 14th, 2017, 2:22 p.m. UTC, <b>René J.V. Bertin</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;">Sheets works nicely too!</p></pre>  </blockquote>





 <p>On January 14th, 2017, 2:45 p.m. UTC, <b>Anthony Fieroni</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 response for only Karbon, wait for Camilla and Dag Andersen.</p></pre>  \
</blockquote>





 <p>On January 14th, 2017, 7:43 p.m. UTC, <b>René J.V. Bertin</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;">Evidently.</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">Plan also works as far as I can tell (I never used it \
before).</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">There is an issue with <code style="text-rendering: inherit;color: #4444cc;padding: \
0;white-space: normal;margin: 0;line-height: inherit;">calligraplanwork</code> however, but given the \
error I think it has nothing to do with my changes. If anything, I may have missed a location where a \
change is required, for instance to install required DBus service files.</p></pre>  </blockquote>





 <p>On January 16th, 2017, 12:38 p.m. UTC, <b>Dag Andersen</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;">Afaics this should be ok. The defines in KoResourcePaths.h doesn't seem to \
be used? Can't comment on apple stuff, never seen one close up ;)</p></pre>
 </blockquote>





 <p>On January 16th, 2017, 5:06 p.m. UTC, <b>René J.V. Bertin</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;">The \
defines in KoResourcePaths.h doesn't seem to be used?</p> </blockquote>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">No \
indeed. As I tried to explain in the description, they're more a proposal:</p> <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;">the change to KoResourcePathsImpl::mapTypeToQStandardPaths() only has a \
real interest if it's used throughout the code to replace the explicit use of QStandardPaths locations. \
For now I have set this up through build-type specific preprocessor macros in KoResourcePaths.h [...]</p> \
</blockquote> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">I don't want to start changing a huge amount of unknown code to use those macros because there \
are lots of places that would have to be changed, and I don't think it can be done by a few simple \
search-and-replace runs in an editor. Above all, I want to be sure that you agree about this \
approach.</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">And let me repeat: this isn't necessary for the kind of build that interests me on Mac, so \
there's no hurry as far as I'm concerned ;)</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;">Afaik KoResourcePaths is used in all calligra. There are issues and I have \
a patch waiting (https://phabricator.kde.org/D2577) that didn't get into 3.0. It's fairly big so I'm \
waiting for 3.1 to look at it again.</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">Different thing: in KoApplication line 242 you added a \
comment: // add the paths that Krita5 sets in XDG_DATA_DIRS
Krita is not using any calligra libs anymore, so this could possibly be removed but I don't know if any \
other app depends on this, so...</p></pre> <br />










<p>- Dag</p>


<br />
<p>On January 10th, 2017, 4:34 p.m. UTC, René J.V. Bertin 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 Calligra and Camilla Boemann.</div>
<div>By René J.V. Bertin.</div>


<p style="color: grey;"><i>Updated Jan. 10, 2017, 4:34 p.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
calligra
</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;">This proposal is an initial implementation \
of things discussed on the ML a short while back.</p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;">Building KF5 software on Mac as if on any \
Unix variant (with "Cocoa" instead of X11) is possible and is what you get without specific changes to \
the build system. With a few tweaks to Qt's QStandardPaths (provided by MacPorts) this kind of build \
works flawlessly and with an identical feature set as on Linux c.s.</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">NB: this build also puts \
applications in an app bundle "wrapper", but one that contains just the minimal resources (executable, \
app icon and Info.plist).</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">One can also tweak the build so that a relocatable and standalone app \
bundle results which contains the application and all its 3rd-party dependencies (Qt5, KF5 frameworks, \
etc.). This works with a stock Qt5 build but still requires patches throughout KF5 code and build \
systems. Several projects already provide "official" builds of this type for Mac: Kate, KDevelop, Marble \
and Krita to name a few.</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">The current patch prepares for allowing a choice for either a standalone \
app bundle build or a more traditional build via a CMake option <code style="text-rendering: \
inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: \
inherit;">APPLE_STANDALONE_BUNDLE</code> and preprocessor token of the same name. This makes it easy to \
dissociate the Apple build types from general Apple build requirements. Testing for build flavour is done \
by checking <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: \
0;line-height: inherit;">APPLE_STANDALONE_BUNDLE</code>, testing for build platform by checking <code \
style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: \
inherit;">APPLE</code> (CMake) or <code style="text-rendering: inherit;color: #4444cc;padding: \
0;white-space: normal;margin: 0;line-height: i  nherit;">Q_OS_MACOS</code> (Qt/C++) (or <code \
style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: \
inherit;">__APPLE__</code> in code not using Qt).</p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;">In addition to the introduction of the \
CMake option, the patch</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;">updates <code style="text-rendering: inherit;color: #4444cc;padding: \
0;white-space: normal;margin: 0;line-height: inherit;">KoApplication::start()</code>. Judging from Kate's \
approach it shouldnt' be necessary on Mac to set <code style="text-rendering: inherit;color: \
#4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">XDG_DATA_DIRS</code>, which isn't \
used anywhere in code (except in MacPorts tweaked QStandardPaths!). The <code style="text-rendering: \
inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">PATH</code> env. \
variable also shouldn't be <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: normal;">re</em>set and only needs changing (potentially!) in a standalone app \
bundle build. I don't have a MS Windows dev. system so I've merged Krita's way of setting <code \
style="text-rendering: inher  it;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: \
inherit;">XDG_DATA_DIRS</code> with Calligra's current code. Note that Qt/Win also doesn't seem to use \
that variable in <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: \
normal;margin: 0;line-height: inherit;">QStandardPaths</code>.</li> <li style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: normal;">rewrites <code style="text-rendering: \
inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: \
inherit;">KoResourcePathsImpl::mapTypeToQStandardPaths()</code> to use a much more efficient static <code \
style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: \
inherit;">QHash</code> table. <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: normal;">A priori</em> it should be possible to use <code style="text-rendering: \
inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: \
inherit;">QStandardPaths::AppDataLocation</code> to obtain the location of the app bundle resources \
directory; it could be populated with symlinks into <code style="text-rendering: inherit;color: \
#4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">/path/to/foo.app/Contents/share<  \
/code> so resources can be found with minimum changes to the build system (install locations). This will \
need to be established going forward (knowing that my own main interest is with "linuxy builds").</li> \
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">the \
change to <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: \
0;line-height: inherit;">KoResourcePathsImpl::mapTypeToQStandardPaths()</code> only has a real interest \
if it's used throughout the code instead of explicit use of QStandardPaths locations. For now I have set \
this up through build-type specific preprocessor macros in KoResourcePaths.h (because an enum would \
probably have to be cast to work with the QSP methods). I haven't changed any code to use those \
macros.</li> </ul>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Not \
yet incorporated: tweaks to the <code style="text-rendering: inherit;color: #4444cc;padding: \
0;white-space: normal;margin: 0;line-height: inherit;">ecm_add_app_icon</code> calls to use its new \
capability to generate an app icon from an SVG file (currently tested with Karbon).</p></pre>  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </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;">Karbon works as expected with this patch on \
Mac OS X 10.9.5 (and Linux) with Qt 5.7.1 and KF5 5.29.0 installed under /opt/local . </p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Without \
the patch Karbon crashes or aborts immediately on Mac because it doesn't find a single resource in the \
locations indicated by the inappropriate <code style="text-rendering: inherit;color: #4444cc;padding: \
0;white-space: normal;margin: 0;line-height: inherit;">XDG_DATA_DIRS</code> value.</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>CMakeLists.txt <span style="color: grey">(13ac88f)</span></li>

 <li>libs/main/KoApplication.cpp <span style="color: grey">(7b23f8d)</span></li>

 <li>libs/widgets/KoResourcePaths.h <span style="color: grey">(8830a5a)</span></li>

 <li>libs/widgets/KoResourcePaths.cpp <span style="color: grey">(7df9dc6)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/129800/diff/" style="margin-left: 3em;">View Diff</a></p>






  </td>
 </tr>
</table>







  </div>
 </body>
</html>


--===============3186261429390452704==--


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic