<table><tr><td style="">rjvbb edited the summary of this revision. <a href="https://phabricator.kde.org/transactions/detail/PHID-XACT-DREV-xskrdw374dlqz5r/">(Show Details)</a><br />rjvbb edited the test plan for this revision. <a href="https://phabricator.kde.org/transactions/detail/PHID-XACT-DREV-frnm6b6ycpleeyh/">(Show Details)</a><br />rjvbb set the repository for this revision to R34 Marble.<br />rjvbb removed a subscriber: kaning.<br />Herald added subscribers: kde-edu, marble-devel.<br />Herald added a project: KDE Edu.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D1420">View Revision</a></tr></table><br /><div><strong>CHANGES TO REVISION SUMMARY</strong><div><div style="white-space: pre-wrap; color: #74777D;"><span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">Disclaimer: the patch as presented is currently a hack that only shows what is done,</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Marble currently aims to build 1 or 2 more or less standalone app bundles when being built on Mac OS X. There is nothing wrong with that, but it presents a problem for distribution systems like MacPorts or Fink or HomeBrew that aim to share libraries among packages and to remain as close as possible to the runtime context for which packages were designed (i.e. XDG/Freedesktop).</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">not how to do it properly.</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Just like AppImage builds are possible but optional on other Unix variants,</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">I'll clean it up if there is interest in incorporating this as a selectable option</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">standalone app bundle builds should be optional on Mac too</span>.<br />
<br />
Th<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">at being said, here's the point</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">e patch achieves this by separating all APPLE-specific things in the CMake files into for required things like frameworks and build-type related things that is controlled by the APPLE_STANDALONE_BUNDLE option (ON by default)</span>.<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">Marble currently aims to build 1 or 2 more or less standalone app bundles when being built on Mac OS X. There is nothing wrong with that, but it presents a problem for distribution systems like MacPorts or Fink or HomeBrew that aim to share libraries among packages and to remain as close as possible to the runtime context for which packages were designed (i.e. XDG/Freedesktop). Evidently the goal is not to replace the OS X desktop with a Plasma shell; rather, the idea is that the feature set will be most complete and maintenance will be easiest when differences like where resources are to be found are as small as possible. Think of it as running KDE applications installed with their dependencies in some separate prefix, under e.g. a Gnome, XFCE or even a "bare-bones X11" desktop environment.<br />
<br />
The patch achieves this by disabling all APPLE-specific things in the CMake files except for the required frameworks (Apple's</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">The result when the option is turned off is that there is still an app bundle that is created</span>, <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">not</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">for the</span> KF5<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">),</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">-based marble (but not for marble-qt though that ought to be possible too).</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">currently by replacing APPLE with the unknown APPEL token</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Everything else is installed in its usual location under the prefix</span>.<br />
The <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">result is that there is still an app bundle that is created, for the KF5-based marble (but not for marble-qt though that ought to be possible too). A few additional lines create and install an application icon for marble.app .</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">patch also creates and installs an application icon for marble.app with the official ECM function,</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">Everything else is installed in its usual location under the prefix.<br />
<br />
I would assume that this is more or less a prerequisite to build a package like digiKam which can use libMarble ...</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">and ensures that the .ini format is used for settings files,</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">which would be a lot less evident if that library is hidden in a relocatable app bundle</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">for maximum compatibility with other Unix desktops</span>.<br />
<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">If there is a chance that this patch is accepted I'd propose replacing the APPEL hack with a variable like option(BUILD_APPLE_APPBUNDLE,"build app bundle(s)" YES)</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">See also T10112 </span>.</div></div></div><br /><div><strong>CHANGES TO TEST PLAN</strong><div><div style="white-space: pre-wrap; color: #74777D;">On OS X 10.9.5, with Qt 5.6 <span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">- 5.9.7 </span>and FWs 5.20.<span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">0 - 5.52.</span>0,<span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);"> installed under /opt/local.</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">installed under /opt/local</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Also confirmed on Linux.</span></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R34 Marble</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D1420">https://phabricator.kde.org/D1420</a></div></div><br /><div><strong>To: </strong>rjvbb, Marble<br /><strong>Cc: </strong>marble-devel, kde-edu, kde-mac, rahn, nienhueser, torhamzed, jalvarez, mnafees, shentey, chaz6, dkolozsvari, narvaez, cmihalache, apol, kaning<br /></div>