Compiling on macOS using MacPorts: Difference between revisions

From GRASS-Wiki
Jump to navigation Jump to search
(Update reflecting port changes)
(Update with example from version 8.4.2)
 
Line 12: Line 12:
port info grass
port info grass


grass @8.3.0_4 (gis)
grass @8.4.2 (gis)
Sub-ports:            grass-gui
Variants:            debug, debugoptimized, gui, mysql57, mysql8, openblas,
Variants:            debug, debugoptimized, gui, mysql57, mysql8, openblas,
                       openmpi, postgresql10, postgresql11, postgresql12,
                       openmp, postgresql12, postgresql13, postgresql14,
                       postgresql13, postgresql14, [+]postgresql15, proj6, proj7,
                       postgresql15, postgresql16, [+]postgresql17, python310,
                       proj8, [+]proj9, python310, [+]python311, python37,
                       python311, python312, [+]python313, universal
                      python38, python39, universal


Description:          GRASS is a Geographic Information System (GIS) used for
Description:          GRASS offers powerful raster, vector, and geospatial
                       geospatial data management and analysis.
                      processing engines in a single integrated software suite.
Homepage:            https://grass.osgeo.org/
                      It includes tools for terrain and ecosystem modeling,
                      hydrology, visualization of raster and vector data,
                       management and analysis of geospatial data, and the
                      processing of satellite and aerial imagery. It comes with
                      a temporal framework for advanced time series processing
                      and a Python API for rapid geospatial programming. GRASS
                      has been optimized for performance and large geospatial
                      data analysis. Install the port `grass-gui` to enable
                      graphical user interface.
Homepage:            https://grass.osgeo.org


Build Dependencies:  pkgconfig
Build Dependencies:  bison, flex, pkgconfig
Library Dependencies: bzip2, freetype, fftw-3, gdal, pdal, geos, tiff, libpng,
Library Dependencies: bzip2, cairo, fftw-3, freetype, gdal, geos, liblas, libpng,
                       liblas, cairo, zlib, sqlite3, readline, python311,
                       libsvm, pdal, proj, readline, sqlite3, tiff, zlib,
                       py311-Pillow, py311-numpy, py311-six, proj9, postgresql15
                       postgresql17, python313, py313-Pillow, py313-numpy,
Runtime Dependencies: py311-psycopg2
                      py313-six
Runtime Dependencies: py313-psycopg2
Platforms:            darwin
Platforms:            darwin
License:              GPL-2+
License:              GPL-2+
Line 40: Line 50:
sudo port install grass
sudo port install grass
</pre>
</pre>
will download, compile and install GRASS with dependencies ''postgresql15'', ''proj9'' and ''python311''.
will download, compile and install GRASS with dependencies ''postgresql17'' and ''python313''.


However, a customized installation may look like:
However, a customized installation may look like:
<pre>
<pre>
sudo port install grass +gui +python39
sudo port install grass +python312 +postgresql16
</pre>
which will replace the default ''python313'' with ''python312''. The default variants ''postgresql16'' will in this case also be included.
 
'''Note:''' you need to add '''grass-gui''' port to install wxPython for GRASS graphical user interface, this in not included by default:
<pre>
sudo port install grass-gui
</pre>
</pre>
which will replace the default ''python311'' with ''python39'' and include also the ''gui'' dependency. The default variants ''postgresql14'' and ''proj8'' will in this case also be included.


'''Note:''' you need to add '''+gui''' to install wxPython for GRASS graphical user interface, this in not included by default.


To check if any of the installed ports (or dependencies) have been updated:
To check if any of the installed ports (or dependencies) have been updated:
Line 68: Line 82:
</pre>
</pre>


Installation with the variant ''+gui'' will also install an app bundle at:
Installation with the port ''grass-gui'' will also install an app bundle at:
<pre>
<pre>
/Applications/MacPorts/GRASS-8.3.app
/Applications/MacPorts/GRASS-8.4.app
</pre>
</pre>



Latest revision as of 17:48, 28 January 2026

Installing GRASS GIS with MacPorts

MacPorts is a package management system for macOS. It makes it easy to install and update any supported software — dependencies (that can be either executables or libraries) are installed and updated automatically. It is recommended to install the MacPort base software with the package installer available at macports.org where also detailed installation and usage instructions can be found. Note that Xcode is a prerequisite and that MacPorts is controlled through the Terminal with the port command.

Assuming you succeeded with the installation of the MacPorts base, the base software can be updated with:

sudo port selfupdate

Information on software, i.e. ports, that can be installed can be retrieved with the info action, this is an example with the port grass (which is the latest version):

port info grass

grass @8.4.2 (gis)
Sub-ports:            grass-gui
Variants:             debug, debugoptimized, gui, mysql57, mysql8, openblas,
                      openmp, postgresql12, postgresql13, postgresql14,
                      postgresql15, postgresql16, [+]postgresql17, python310,
                      python311, python312, [+]python313, universal

Description:          GRASS offers powerful raster, vector, and geospatial
                      processing engines in a single integrated software suite.
                      It includes tools for terrain and ecosystem modeling,
                      hydrology, visualization of raster and vector data,
                      management and analysis of geospatial data, and the
                      processing of satellite and aerial imagery. It comes with
                      a temporal framework for advanced time series processing
                      and a Python API for rapid geospatial programming. GRASS
                      has been optimized for performance and large geospatial
                      data analysis. Install the port `grass-gui` to enable
                      graphical user interface.
Homepage:             https://grass.osgeo.org

Build Dependencies:   bison, flex, pkgconfig
Library Dependencies: bzip2, cairo, fftw-3, freetype, gdal, geos, liblas, libpng,
                      libsvm, pdal, proj, readline, sqlite3, tiff, zlib,
                      postgresql17, python313, py313-Pillow, py313-numpy,
                      py313-six
Runtime Dependencies: py313-psycopg2
Platforms:            darwin
License:              GPL-2+
Maintainers:          Email: n_larsson yahoo com, GitHub: nilason
                      Policy: openmaintainer

The variants are options for a port that can be chosen at installation. The variants marked with a +, are included by default.

Installing GRASS with default variants:

sudo port install grass

will download, compile and install GRASS with dependencies postgresql17 and python313.

However, a customized installation may look like:

sudo port install grass +python312 +postgresql16

which will replace the default python313 with python312. The default variants postgresql16 will in this case also be included.

Note: you need to add grass-gui port to install wxPython for GRASS graphical user interface, this in not included by default:

sudo port install grass-gui


To check if any of the installed ports (or dependencies) have been updated:

sudo port selfupdate
port outdated

To update outdated ports:

sudo port upgrade outdated

Using GRASS GIS installed with MacPorts

A standard installation of MacPorts will install ports at:

/opt/local/

Installation with the port grass-gui will also install an app bundle at:

/Applications/MacPorts/GRASS-8.4.app

You can start GRASS GIS from terminal with command:

grass

or

/opt/local/bin/grass