<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">More notes -<div class=""><br class=""></div><div class="">There may be some terminology confusion here - packaging as I see it is making a distributable installation, either an installer or a simple drag-n-drop, on a disk image or zipped.</div><div class=""><br class=""></div><div class="">The install step of the build process is where the bundling happens.  Since this is part of the make install step, bundling needs to be done with cmake.  It can be customized per build with a user cmake script with the QGIS_MACAPP_BUNDLE_USER option, that's what I do for bundling GRASS and SAGA and a couple other extra libs.  If cmake is not enough, the user cmake can run some other script (sh or python or whatever) and pass on needed cmake variables to it.</div><div class=""><br class=""></div><div class="">Adding more bundling options would have to be flexible enough to not be stuck on a specific distribution of external stuff (ie I prefer the standard Python distribution, others may want Anaconda or something else).  Note that Python bundling would also have to cover extra modules needed by built-in plugins.</div><div class=""><br class=""></div><div class=""><div class="">Packaging is not covered in the build process.  It's really a personal preference thing, but I suppose there could be an official script.  My main suggestion here is that it should be a standard Apple installer package, not a 3rd party installer system, and especially not as an executable.  Non-Apple installers may use a proprietary or obscured storage/compression system, and I know what the Apple installer executable is doing.  There are tools to extract files from packages if I want to look at the guts before installing.</div></div><div class=""><br class=""></div><div class="">Side rant - it's unfortunate that Apple is pushing people into the app store mindset.  That's not a good comparison for QGIS, since the QGIS license doesn't work for the Apple app store, and there are many external compenents of QGIS that are usable on their own and in different combinations that would be harder (and more confusing) if combined into a single app.  Also, comparing different systems is not fair either, Linux and Windows and macOS are very different.  Just because others do it shouldn't be the main reason to do something (does Linux have an "all in one" installer, or does it just seem like it because of the packaging system?).</div><div class=""><br class=""></div><div class="">Also note, a single "pkg" installer can still install components outside the main app, though App Store apps are restricted from this, I think.</div><div class=""><br class=""></div><div class="">One option could be to still have separate external components (GDAL, Python, maybe GRASS), but merge them into one mega-installer.  I think it may be possible with the Apple installer packages but it may need a 3rd-party solution or a script (Applescript or Automator might work, so it's a double-clickable app).</div><div class=""><br class=""></div><div class="">One more note: building for older macOS versions is a bit tricky. I'm doing some hackery to use an older SDK than is available in the Xcode on my system (on my 10.12, Xcode only has the 10.12 SDK, but I'm building for 10.10 using an old Xcode 10.10 SDK).  Building with a stock Xcode has only the latest SDK, so building for an earlier system might be a problem.</div><div class=""><br class=""></div><div class="">It used to be a problem, with different system versions having some different symbol names, but this was because Apple was updating their POSIX support, and I think that's all done.  I've heard that you can build for an earlier target than the SDK version now, but I haven't tried it.  And it still might be tricky if a library forces a SDK version (ie Qt 5.11 adds in a 10.11 SDK deployment target)</div><div class=""><br class=""></div><div class="">So, after all that, my suggestions:</div><div class=""><br class=""></div><div class="">- expand the current cmake bundling options to more external libraries, but leave the big items like Python (complex, many choices) and GRASS (complex, normally it's own app) to packager's user bundle scripts</div><div class=""><br class=""></div><div class="">- work on an actual "packaging" script - purpose is to package QGIS app (with whatever is bundled in the app) into an Apple installer package, this would be an all-in-one if user bundling includes EVERYTHING</div><div class=""><br class=""></div><div class="">- consider a mega-packaging script/app to handle separate external companion installers, in the case where separate external component installations are desired</div><div class=""><br class=""></div><div class=""><div><blockquote type="cite" class=""><div class="">On Oct 26, 2018, at 6:53 PM, William Kyngesburye <<a href="mailto:woklist@kyngchaos.com" class="">woklist@kyngchaos.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I created the Mac app bundle option.  I never fully extended it to 3rd party libraries because I don't have much interest in hiding the GDAL stuff.  Rather than do something new, I think this should be expanded.<div class=""><br class=""></div><div class="">Also, there is the problem of extra GDAL formats.  I include everything non-GPL or commercial that I can in my GDAL Complete, with extra plugins for the GPL and commercial stuff - ECW, MrSID, GRASS (not completely sure about that one, GPL-wise), FileGDB, GeoPDF (Poppler).</div><div class=""><br class=""></div><div class="">In a full bundled QGIS, I don't think bundling ECW or MrSID would work.  So you'd still need a plugin installer (not a QGIS plugin) to add those to QGIS in some sort of global application support location like I do with GDAL now.</div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Oct 26, 2018, at 10:56 AM, Denis Rouzaud <<a href="mailto:denis.rouzaud@gmail.com" class="">denis.rouzaud@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hi Peter,<div class=""><br class=""></div><div class="">This is great news!</div><div class=""><br class=""></div><div class=""><div class="gmail_quote"><div dir="ltr" class="">Le ven. 26 oct. 2018 à 11:26, Peter Petrik <<a href="mailto:peter.petrik@lutraconsulting.co.uk" target="_blank" class="">peter.petrik@lutraconsulting.co.uk</a>> a écrit :<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class="">Hello,<div class=""><br class=""></div><div class="">we have been asked to create standalone QGIS package for MacOS. By standalone I mean that there will be a single package (.pkg) file that will be extracted to /Application folder and will contain all dependencies (GDAL, Python3, PyQT, Qt libraries, ...) and will be working without any additional installation steps (similar to any application you install via App Store). </div><div class=""><br class=""></div><div class="">As there is no such open-sourced solution I could use or enhance, I started some prototyping here: <a href="https://github.com/lutraconsulting/qgis-mac-packager" target="_blank" class="">https://github.com/lutraconsulting/qgis-mac-packager</a> . I hope I can wrap the last bits next week and be able to produce QGIS 3.4 release and QGIS master nightlies on some Mac Cloud server. I used osgeo4mac homebrew for dependencies, since it looks like it is the most maintained package manager with osgeo libraries for MacOS. Usage of Conda packages could be better, but the number of downloads and the activity in any available repositories is not convincing.</div></div></div></div></div></div></div></div></blockquote><div class=""><br class=""></div><div class="">Is Qt Mac Deploy of any help here?</div><div class=""><a href="http://doc.qt.io/qt-5/osx-deployment.html#macdeploy" class="">http://doc.qt.io/qt-5/osx-deployment.html#macdeploy</a></div><div class=""> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class=""><br class=""></div><div class=""><div class="">The aim is to eventually have QGIS bundled and shipped similar to Linux and Windows. Once we finish the work, we will send an email to the PSC and see if this is something they'd be happy to bring it under their umbrella.</div><div class=""><br class=""></div></div><div class="">I am open to any suggestions or cooperation for either packaging or distribution. Feel free to  </div><div class="">write me PM or reply here. Thanks<br class=""></div></div></div></div></div></div></div></div></blockquote><div class=""><br class=""></div><div class="">I'd be happy to take part of the effort. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class=""></div><div class=""><br class=""></div><div class="">Now its time to celebrate new QGIS release during weekend! </div><div class=""><br class=""></div><div class="">Cheers,</div><div class="">Peter</div><div class=""><br class=""></div><div class="">Note: CMAKE scripts try to achieve similar tasks (qgis/mac/cmake/*.in). But it seems to me that only bundling of Qt libraries is actively maintained [<span style="font-family: Menlo; font-size: 9pt;" class="">QGIS_MACAPP_BUNDLE=1]</span>and bundling of rest of libs (gdal, libzip, geos, etc.. ) [<span style="font-family: Menlo; font-size: 9pt;" class="">QGIS_MACAPP_BUNDLE=2 and 3]</span> is not implemented/maintained. Also I am not convinced that CMake scripting language is best tool for such task. (due to reconfiguration on change, syntax/readability compared to python, tools available for path handling, ...)</div></div></div></div></div></div></div></div></blockquote><div class=""><br class=""></div><div class="">CMake syntax is not really nice to read (maybe it's personal), but the point is that all the logic is already written and accessible there, mainly in terms of dependancy and library location.</div><div class="">I think it makes sense to try to keep the logic in a single place if reasonably possible.</div><div class=""><br class=""></div><div class="">The QGIS_MACAPP_BUNDLE is indeed an non completed work from Larry. But as pointed out, he's also working on something lately.</div><div class=""><br class=""></div><div class="">More generally speaking, and even though nothing is written in QGIS source code yet, I think that this project is a very good candidate for a QEP. </div><div class="">Do you have any intention to do one?</div><div class="">Is the decision to go for Python and not CMake definitive for your project or was it more a first quick try?</div><div class=""><br class=""></div><div class="">I hope my message did not sound too pessimistic. Moving towards a solution to get a complete package for QGIS that is openly maintained in the community is really great and I'm really glad you started this!</div><div class=""><br class=""></div><div class="">Cheers,</div><div class="">Denis</div><br class=""></div>
</div></div>-- <br class=""><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr" class=""><p class="inbox-inbox-inbox-inbox-p1"><span style="font-family: Verdana, sans-serif; font-size: 10pt;" class="">Denis Rouzaud</span><br style="font-family: Times; font-size: inherit;" class=""><a href="mailto:denis@opengis.ch" target="_blank" style="font-family: Times; font-size: inherit;" class=""><span style="font-family: Verdana, sans-serif; font-size: 8pt;" class="">denis@opengis.ch</span> </a><br style="font-family: Times; font-size: inherit;" class=""><span style="font-family: Verdana, sans-serif; font-size: 8pt;" class=""><a class="">+41 76 370 21 22</a></span></p><p class="inbox-inbox-inbox-inbox-p1"><span style="font-family: Verdana, sans-serif; font-size: 8pt;" class=""><a class=""><br class=""></a></span></p></div></div>
_______________________________________________<br class="">QGIS-Developer mailing list<br class=""><a href="mailto:QGIS-Developer@lists.osgeo.org" class="">QGIS-Developer@lists.osgeo.org</a><br class="">List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" class="">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br class="">Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" class="">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a></div></blockquote></div><br class=""><div class="">
<span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px; font-family: Helvetica; font-size: 14px; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; line-height: normal;"><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px; font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-position: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px;"><div class="">-----</div><div class="">William Kyngesburye <kyngchaos*at*kyngchaos*dot*com></div><div class=""><a href="http://www.kyngchaos.com/" class="">http://www.kyngchaos.com/</a></div><div class=""><br class=""></div><div class="">"Time is an illusion - lunchtime doubly so."</div><div class=""><br class=""></div><div class="">- Ford Prefect</div><br class="Apple-interchange-newline"></span></span>
</div>
<br class=""></div></div>_______________________________________________<br class="">QGIS-Developer mailing list<br class=""><a href="mailto:QGIS-Developer@lists.osgeo.org" class="">QGIS-Developer@lists.osgeo.org</a><br class="">List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer<br class="">Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer</div></blockquote></div><br class=""><div class="">
<span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div class="">-----</div><div class="">William Kyngesburye <kyngchaos*at*kyngchaos*dot*com></div><div class=""><a href="http://www.kyngchaos.com/" class="">http://www.kyngchaos.com/</a></div><div class=""><br class=""></div><div class="">"History is an illusion caused by the passage of time, and time is an illusion caused by the passage of history."</div><div class=""><br class=""></div><div class="">- Hitchhiker's Guide to the Galaxy</div><br class="Apple-interchange-newline"></span></span>
</div>
<br class=""></div></body></html>