[GRASS-dev] New attempt to update GRASS for Mac

Michael Barton Michael.Barton at asu.edu
Thu Jul 27 10:54:01 PDT 2017


Here is a report on this effort, including identifying several items that will need to be changed by others for this to be successful.

I've successfully compiled GRASS 7 64bit, with wxPython 3.0.2.0 under the current OS (Sierra = OS X 10.12.x). I'm using the most current Kyngesburye frameworks for GDAL, Numpy, and MatPlotLib.

No binaries or bundled dependencies yet.

Issues that need to be resolved.

1. the 'python_wrapper' bash script in ../macosx/app needs to be updated to allow for full 64bit compiling with wxPython. It currently tries to force 32bit Python if wxPython is present. I've done a hack but it is probably not the right thing for the long term.

 2. wxGUI needs a several fixes to run correctly with wxPython 3.

2.1 When switching from 3D to 2D, the 'rotate 3D' and 'airplane' buttons are not destroyed. They overprint the zoom to map extents button of 2D mode and will crash the GUI if pressed.

2.2 A custom control needs to be updated or replaced because it does not recognize mouse clicks. It is used in a number of different places, including in the bivariate histogram tool where it is used to select pairs of maps for histogramming. You can navigate this control (a pulldown) with arrow keys but not a mouse.

2.3 selecting g.gui.iclass will crash the GUI. I cannot get any error to come up on the console before the crash, and there is nothing in the terminal.

That's all I've hit so far. I hope to start working on bundling for a binary next week.

Michael
____________________
C. Michael Barton
Director, Center for Social Dynamics & Complexity
Professor of Anthropology, School of Human Evolution & Social Change
Head, Graduate Faculty in Complex Adaptive Systems Science
Arizona State University

voice:  480-965-6262 (SHESC), 480-965-8130/727-9746 (CSDC)
fax: 480-965-7671 (SHESC),  480-727-0709 (CSDC)
www: http://www.public.asu.edu/~cmbarton, http://csdc.asu.edu




On Jul 18, 2017, at 2:26 PM, Michael Barton <michael.barton at asu.edu<mailto:michael.barton at asu.edu>> wrote:

Yesterday, I sent this message off-list to Anna and Vaclav. Anna asked if I could repost to the dev list. So I'm doing so here.

I have some time (I hope) on an upcoming research trip to NCAR, along with some promised help of software engineers at the CSDMS NSF facility. So I'm going to try again to come up with a new GRASS compiling and binary creation protocol.

I think this will involve the following components:

1. Switch from the outdated PackageMaker.app to the current way of making Mac packages. This requires changes to the current binary bundling scripts.

2. Bundle all dependencies (including the current, separate frameworks) into the new package distribution so that everything needed is in the grass7.app Can this be done with binary "framework" installations of dependencies or is it necessary to compile all from scratch to do this?

3. As part of 2, make sure that all dependencies are compiled outside of the /usr folders on the Mac to avoid SIP conflicts

4. To accomplish #2 and #3 for wxPython, we probably need to switch to wxPython 3 (or the new wxPython Phoenix if it is working correctly). This would also permit compiling ALL GRASS 64 bit, alleviating additional issues.

5. Because of recent change to GRASS GUI and a bug in Mac system Python 2.7.10, it may be necessary to also bundle an updated Python (2.7.11 or higher) with the new grass7.app. This (and #2) would make the installation package significantly larger, but would avoid mismatched versions of Python and wxPython. It would also avoid potential conflicts between Mac system Python and other versions a user might have installed (e.g., with Anaconda).

Last fall, I was stuck on gettext. I will try again with bundline it, but this may not be solvable by me because it involves a hard-coded path in the build files that point to gettext files in /usr/local and no way to send an alternate path (e.g., a configure argument like '--with_gettext_libs='. This will need to be fixed by whoever manages the build system. Otherwise, I'll have to drop internationalization support for the Mac, which would be a shame.

An additional thing to note. While it may be possible for some to get GRASS compiled on the Mac using Homebrew, Macports, etc., the goal here is to create a normal DMG binary that any Mac user can download and install, without having to compile GRASS--or to install Linux like package managers first.

If anyone has experience in creating Mac DMGs, with bundled dependencies, I'd love to hear from you. Any other suggestions are welcome too.


Cheers
Michael
____________________
C. Michael Barton
Director, Center for Social Dynamics & Complexity
Professor of Anthropology, School of Human Evolution & Social Change
Head, Graduate Faculty in Complex Adaptive Systems Science
Arizona State University

voice:  480-965-6262 (SHESC), 480-965-8130/727-9746 (CSDC)
fax: 480-965-7671 (SHESC),  480-727-0709 (CSDC)
www: http://www.public.asu.edu/~cmbarton, http://csdc.asu.edu<http://csdc.asu.edu/>


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20170727/cefe6d76/attachment-0001.html>


More information about the grass-dev mailing list