[GRASS-dev] Automatic/CI compilation on macOS

Nicklas Larsson n_larsson at yahoo.com
Wed Aug 12 09:14:34 PDT 2020


Hi!

Just want to give you an update on the issue. I managed to get CI build working for Mac [1, 2].

In addition I’m working on a bash script-package [3] (based on Michael’s excellent instructions on grasswiki [4]) which uses conda too, for a very simplified procedure to build an app bundle. It is working, but needs testing.

Best,
Nicklas


[1] https://github.com/nilason/grass-gis-experimental-ci/tree/conda-updates
[2] https://github.com/GRASS-GIS/grass-gis-experimental-ci/pull/3
[3] https://github.com/nilason/grass-conda
[4] https://grasswiki.osgeo.org/wiki/Compiling_on_macOS_using_Anaconda

> On 31 Mar 2020, at 14:53, Rainer M Krug <Rainer at krugs.de> wrote:
> 
> Thanks Vaclav
> 
> I will wait and see.If you could please post here if something happens, as I am not following grass-user?
> 
> Thanks,
> 
> Rainer
> 
> 
> 
>> On 31 Mar 2020, at 03:50, Vaclav Petras <wenzeslaus at gmail.com <mailto:wenzeslaus at gmail.com>> wrote:
>> 
>> Hi Rainer,
>> 
>> Unfortunately, I don't have any update for this, but I thought I will (inter-)link a detailed analysis on grass-user by Veronika and related PR:
>> 
>> [GRASS-user] Problems on MacOS Catalina Installation via Homebrew "Cannot find proj.db"
>> https://lists.osgeo.org/pipermail/grass-user/2020-March/081377.html <https://lists.osgeo.org/pipermail/grass-user/2020-March/081377.html>
>> 
>> [Bug] Update build GRASS as macOS application #457 (linked comment and below)
>> https://github.com/OSGeo/grass/issues/457#issuecomment-603575140 <https://github.com/OSGeo/grass/issues/457#issuecomment-603575140>
>> 
>> Vaclav
>> 
>> On Sun, Mar 8, 2020 at 12:35 PM Rainer M Krug <Rainer at krugs.de <mailto:Rainer at krugs.de>> wrote:
>> 
>> 
>>> On 6 Mar 2020, at 18:40, Markus Metz <markus.metz.giswork at gmail.com <mailto:markus.metz.giswork at gmail.com>> wrote:
>>> 
>>> 
>>> 
>>> On Fri, Mar 6, 2020 at 8:50 AM Rainer M Krug <Rainer at krugs.de <mailto:Rainer at krugs.de>> wrote:
>>> >
>>> > OK. Looking at the parameters GRASS is compiled with (grass78 —config), I get the following proj related parameter (the complete output at the end of the email):
>>> >
>>> > --with-proj-includes=/usr/local/opt/osgeo-proj/include
>>> > --with-proj-libs=/usr/local/opt/osgeo-proj/lib
>>> > --with-proj-share=/usr/local/opt/osgeo-proj/share/proj
>>> >
>>> > Which seem to be correct, and proj.db is in the proj-share directory.
>>> >
>>> >
>>> > 08:37 $ ls -la /usr/local/opt/osgeo-proj/share/proj
>>> > total 12408
>>> > drwxr-xr-x  15 rainerkrug  staff      480 Feb 10 11:16 .
>>> > drwxr-xr-x   4 rainerkrug  staff      128 Feb 10 11:16 ..
>>> > -rw-r--r--   1 rainerkrug  staff     1183 Feb 10 11:16 CH
>>> > -rw-r--r--   1 rainerkrug  staff      728 Feb 10 11:16 GL27
>>> > -rw-r--r--   1 rainerkrug  staff     2099 Feb 10 11:16 ITRF2000
>>> > -rw-r--r--   1 rainerkrug  staff     3660 Feb 10 11:16 ITRF2008
>>> > -rw-r--r--   1 rainerkrug  staff     3468 Feb 10 11:16 ITRF2014
>>> > -rw-r--r--   1 rainerkrug  staff     6385 Feb 10 11:16 nad.lst
>>> > -rw-r--r--   1 rainerkrug  staff    19535 Feb 10 11:16 nad27
>>> > -rw-r--r--   1 rainerkrug  staff    16593 Feb 10 11:16 nad83
>>> > -rw-r--r--   1 rainerkrug  staff      232 Feb 10 11:16 null
>>> > -rw-r--r--   1 rainerkrug  staff     3915 Feb 10 11:16 other.extra
>>> > -rw-r--r--   1 rainerkrug  staff  6234112 Feb 10 11:16 proj.db
>>> > -rw-r--r--   1 rainerkrug  staff    32060 Feb 10 11:16 projjson.schema.json
>>> > -rw-r--r--   1 rainerkrug  staff     7079 Feb 10 11:16 world
>>> >
>>> >
>>> > So it looks fine, but I, even locally, get the following error when running the simple test:
>>> >
>>> > 08:40 $ grass78 --tmp-location EPSG:4326 --exec g.region res=0.1 -p
>>> > Starting GRASS GIS...
>>> > Creating new GRASS GIS location <tmploc>...
>>> > ERROR: b'proj_get_authorities_from_database: Cannot find proj.db
>>> 
>>> This error comes directly from PROJ.
>>> Try
>>> export PROJ_LIB="usr/local/opt/osgeo-proj/share/proj"
>>> 
>>> before starting GRASS. This will tell PROJ where its own share data are.
>> 
>> 
>> 
>> Does not work:
>> 
>> 17:03 $ export PROJ_LIB="/usr/local/opt/osgeo-proj/share/proj"
>> ✔ ~
>> 17:03 $ grass78 --tmp-location EPSG:4326 --exec g.region res=0.1 -p
>> Starting GRASS GIS...
>> Creating new GRASS GIS location <tmploc>...
>> ERROR: b'proj_get_authorities_from_database: Cannot find proj.db
>> 
>> Exiting...
>> ✘-1 ~
>> 17:03 $ ls -la /usr/local/opt/osgeo-proj/share/proj
>> total 12408
>> drwxr-xr-x  15 rainerkrug  staff      480 Feb 10 11:16 .
>> drwxr-xr-x   4 rainerkrug  staff      128 Feb 10 11:16 ..
>> -rw-r--r--   1 rainerkrug  staff     1183 Feb 10 11:16 CH
>> -rw-r--r--   1 rainerkrug  staff      728 Feb 10 11:16 GL27
>> -rw-r--r--   1 rainerkrug  staff     2099 Feb 10 11:16 ITRF2000
>> -rw-r--r--   1 rainerkrug  staff     3660 Feb 10 11:16 ITRF2008
>> -rw-r--r--   1 rainerkrug  staff     3468 Feb 10 11:16 ITRF2014
>> -rw-r--r--   1 rainerkrug  staff     6385 Feb 10 11:16 nad.lst
>> -rw-r--r--   1 rainerkrug  staff    19535 Feb 10 11:16 nad27
>> -rw-r--r--   1 rainerkrug  staff    16593 Feb 10 11:16 nad83
>> -rw-r--r--   1 rainerkrug  staff      232 Feb 10 11:16 null
>> -rw-r--r--   1 rainerkrug  staff     3915 Feb 10 11:16 other.extra
>> -rw-r--r--   1 rainerkrug  staff  6234112 Feb 10 11:16 proj.db
>> -rw-r--r--   1 rainerkrug  staff    32060 Feb 10 11:16 projjson.schema.json
>> -rw-r--r--   1 rainerkrug  staff     7079 Feb 10 11:16 world
>> 
>> Any other suggestion?
>> 
>> 
>> 
>>> 
>>> Markus M
>>> 
>>> >
>>> >
>>> >
>>> > Here is the complete output from --config:
>>> >
>>> > 08:35 $ grass78 --config
>>> > x86_64-apple-darwin17.7.0
>>> > ./configure  --prefix=/usr/local/Cellar/osgeo-grass/7.8.2_3 --with-cxx --enable-shared --enable-largefile --with-nls --with-includes=/usr/local/include --with-libs=/usr/local/LIB --with-python=/usr/local/Cellar/osgeo-grass/7.8.2_3/libexec/vendor/bin/python-config --with-tcltk --with-netcdf=/usr/local/opt/osgeo-netcdf/bin/nc-config --with-zstd --with-zstd-includes=/usr/local/opt/zstd/include --with-zstd-libs=/usr/local/opt/zstd/lib --with-readline --with-readline-includes=/usr/local/opt/readline/include --with-readline-libs=/usr/local/opt/readline/lib --with-blas --with-blas-includes=/usr/local/opt/openblas/include --with-blas-libs=/usr/local/opt/openblas/lib --with-lapack --with-lapack-includes=/usr/local/opt/lapack/include --with-lapack-libs=/usr/local/opt/lapack/lib --with-geos=/usr/local/opt/geos/bin/geos-config --with-geos-includes=/usr/local/opt/geos/include --with-geos-libs=/usr/local/opt/geos/lib --with-odbc --with-odbc-includes=/usr/local/opt/unixodbc/include --with-odbc-libs=/usr/local/opt/unixodbc/lib --with-gdal=/usr/local/opt/osgeo-gdal/bin/gdal-config --with-zlib-includes=/usr/local/opt/zlib/include --with-zlib-libs=/usr/local/opt/zlib/lib --with-bzlib --with-bzlib-includes=/usr/local/opt/bzip2/include --with-bzlib-libs=/usr/local/opt/bzip2/lib --with-cairo --with-cairo-includes=/usr/local/opt/cairo/include/cairo --with-cairo-libs=/usr/local/opt/cairo/lib --with-cairo-ldflags=-lfontconfig --with-freetype --with-freetype-includes=/usr/local/opt/freetype/include/freetype2 --with-freetype-libs=/usr/local/opt/freetype/lib --with-proj-includes=/usr/local/opt/osgeo-proj/include --with-proj-libs=/usr/local/opt/osgeo-proj/lib --with-proj-share=/usr/local/opt/osgeo-proj/share/proj --with-tiff --with-tiff-includes=/usr/local/opt/libtiff/include --with-tiff-libs=/usr/local/opt/libtiff/lib --with-png --with-png-includes=/usr/local/opt/libpng/include --with-png-libs=/usr/local/opt/libpng/lib --with-regex --with-fftw --with-fftw-includes=/usr/local/opt/fftw/include --with-fftw-libs=/usr/local/opt/fftw/lib --with-sqlite --with-sqlite-includes=/usr/local/opt/sqlite/include --with-sqlite-libs=/usr/local/opt/sqlite/lib --with-liblas=/usr/local/opt/osgeo-liblas/bin/liblas-config --with-postgres --with-postgres-includes=/usr/local/opt/osgeo-postgresql/include --with-postgres-libs=/usr/local/opt/osgeo-postgresql/lib --with-mysql --with-mysql-includes=/usr/local/opt/mysql/include/mysql --with-mysql-libs=/usr/local/opt/mysql/lib --with-pthread --with-pthread-includes=/usr/local/opt/boost/include/boost/thread --with-pthread-libs=/usr/local/opt/boost/lib --with-macosx-sdk=/Applications/Xcode-10.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk --with-macosx-archs=x86_64 --with-opengl-includes=/Applications/Xcode-10.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers --with-wxwidgets=/usr/local/opt/wxmac/bin/wx-config
>>> > clang
>>> > /usr/local/Cellar/osgeo-grass/7.8.2_3/grass78
>>> > Traceback (most recent call last):
>>> >   File "/usr/local/Cellar/osgeo-grass/7.8.2_3/libexec/bin/grass78", line 2025, in main
>>> >     index = sys.argv.index(batch_exec_param)
>>> > ValueError: '--exec' is not in list
>>> >
>>> > During handling of the above exception, another exception occurred:
>>> >
>>> > Traceback (most recent call last):
>>> >   File "/usr/local/Cellar/osgeo-grass/7.8.2_3/libexec/bin/grass78", line 2216, in <module>
>>> >     main()
>>> >   File "/usr/local/Cellar/osgeo-grass/7.8.2_3/libexec/bin/grass78", line 2030, in main
>>> >     params = parse_cmdline(sys.argv[1:], default_gui=default_gui)
>>> >   File "/usr/local/Cellar/osgeo-grass/7.8.2_3/libexec/bin/grass78", line 1951, in parse_cmdline
>>> >     print_params()
>>> >   File "/usr/local/Cellar/osgeo-grass/7.8.2_3/libexec/bin/grass78", line 1862, in print_params
>>> >     "%s\n" % val[0].split(':')[1].rstrip('$"\n').strip())
>>> > IndexError: list index out of range
>>> >
>>> >
>>> > Any suggestions what the problem is?
>>> >
>>> > Rainer
>>> >
>>> >  
>>> >
>>> > On 5 Mar 2020, at 21:38, Vaclav Petras <wenzeslaus at gmail.com <mailto:wenzeslaus at gmail.com>> wrote:
>>> >
>>> >
>>> >
>>> > On Thu, Mar 5, 2020 at 1:52 PM Rainer M Krug <Rainer at krugs.de <mailto:Rainer at krugs.de>> wrote:
>>> >>
>>> >>
>>> >>
>>> >> On 5 Mar 2020, at 17:53, Vaclav Petras <wenzeslaus at gmail.com <mailto:wenzeslaus at gmail.com>> wrote:
>>> >>
>>> >>
>>> >>
>>> >> On Thu, Mar 5, 2020 at 11:37 AM Rainer M Krug <Rainer at krugs.de <mailto:Rainer at krugs.de>> wrote:
>>> >>>
>>> >>> OK - one step closer to success. Now I just have to know the location where the data for the tests can be downloaded from (I guess).
>>> >>
>>> >>
>>> >> Everything is in the repo, well, it needs to be, I guess the only question is where in the repo, so:
>>> >>
>>> >> https://github.com/GRASS-GIS/grass-gis-experimental-ci/blob/homebrew-osgeo4mac/test_thorough.sh <https://github.com/GRASS-GIS/grass-gis-experimental-ci/blob/homebrew-osgeo4mac/test_thorough.sh>
>>> >>  
>>> >>>
>>> >>> Please check the log to at https://github.com/GRASS-GIS/grass-gis-experimental-ci/runs/487969965?check_suite_focus=true <https://github.com/GRASS-GIS/grass-gis-experimental-ci/runs/487969965?check_suite_focus=true> for the Basic test and the Thorough test. I will look at the return code later, when the tests are running.
>>> >>
>>> >>
>>> >> The problem there is probably a bad/missing path to PROJ db. I think it complains during the configuration already, so perhaps correct --with-proj-share will fix it. The runtime way of setting it is PROJ_LIB environmental variable. You can try something along these lines.
>>> >>
>>> >>
>>> >> I am trying to find the file `proj.db` but can’t find it - can you give me any indication, where it can be found in Linux (home-brew should use similar locations)?
>>> >
>>> >
>>> > Often it is in `/usr/share/proj`. Now you can find things like that in the Docker/Singularity/Vagrant configurations included in GRASS GIS source code or in the CIs, e.g., here:
>>> >
>>> > https://github.com/GRASS-GIS/grass-gis-experimental-ci/blob/master/build.sh#L39 <https://github.com/GRASS-GIS/grass-gis-experimental-ci/blob/master/build.sh#L39>
>>> >
>>> >  
>>> >>
>>> >>
>>> >>
>>> >>  
>>> >>>
>>> >>>
>>> >>> Rainer
>>> >>>
>>> >>>
>>> >>>
>>> >>> On 5 Mar 2020, at 16:28, Rainer M Krug <Rainer at krugs.de <mailto:Rainer at krugs.de>> wrote:
>>> >>>
>>> >>>
>>> >>>
>>> >>> On 5 Mar 2020, at 16:22, Rainer M Krug <Rainer at krugs.de <mailto:Rainer at krugs.de>> wrote:
>>> >>>
>>> >>>
>>> >>>
>>> >>> On 5 Mar 2020, at 14:52, Vaclav Petras <wenzeslaus at gmail.com <mailto:wenzeslaus at gmail.com>> wrote:
>>> >>>
>>> >>>
>>> >>>
>>> >>> On Thu, Mar 5, 2020 at 4:27 AM Rainer M Krug <Rainer at krugs.de <mailto:Rainer at krugs.de>> wrote:
>>> >>>>
>>> >>>> OK - found the ci.
>>> >>>>
>>> >>>> The formula installs, but I get a warning at the end, which results in a warning, which is than interpreted as an error. The warning (which I also get locally) is the following:
>>> >>>>
>>> >>>> If it is the case that you can change the shebang at the beginning of
>>> >>>>
>>> >>>> he script to enforce Python 3 usage.
>>> >>>>
>>> >>>>   #!/usr/bin/env python
>>> >>>>
>>> >>>> Should be changed into
>>> >>>>
>>> >>>>   #!/usr/bin/env python3
>>> >>>>
>>> >>>>
>>> >>>> I suspect that this needs to be done in GRASS itself?
>>> >>>
>>> >>>
>>> >>> Hi, thanks for looking into this. 7.8.2 (and also above) has python3 everywhere in shebang. See e.g.:
>>> >>>
>>> >>> $ grep -Irn "/usr/bin/env python[^3]"
>>> >>> scripts/g.extension/g.extension.py:1059 <http://g.extension.py:1059/>:                    "#!/usr/bin/env python\n",
>>> >>> scripts/g.extension/g.extension.py:1308 <http://g.extension.py:1308/>:                    "#!/usr/bin/env python\n",
>>> >>> # (these two are in fact code which is doing the replacement to python3)
>>> >>>
>>> >>> Can you please investigate locally where the message coming from?
>>> >>>
>>> >>>
>>> >>> The message comes from the formula as a Caveat. I *think* it is always displayed. But at the moment, I am not to sure where the error code comes from, as I get an error code at the end of the brew command of 0 locally.
>>> >>>
>>> >>> I will look into this.
>>> >>>
>>> >>>
>>> >>> Please ignore the following about the checkout.
>>> >>>
>>> >>> Found it.
>>> >>>
>>> >>>
>>> >>> Do you know, why there is a
>>> >>>
>>> >>> - uses: actions/checkout at v2
>>> >>>
>>> >>> In the action?
>>> >>>
>>> >>> It seems, that it will be executed last, and there is no checkout needed.
>>> >>>
>>> >>> Rainer
>>> >>>
>>> >>>
>>> >>>
>>> >>> Vaclav
>>> >>>
>>> >>>
>>> >>> --
>>> >>> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)
>>> >>>
>>> >>> Orcid ID: 0000-0002-7490-0066
>>> >>>
>>> >>> Department of Evolutionary Biology and Environmental Studies
>>> >>> University of Zürich
>>> >>> Office Y34-J-74
>>> >>> Winterthurerstrasse 190
>>> >>> 8075 Zürich
>>> >>> Switzerland
>>> >>>
>>> >>> Office: +41 (0)44 635 47 64
>>> >>> Cell:        +41 (0)78 630 66 57
>>> >>> email:      Rainer.Krug at uzh.ch <mailto:Rainer.Krug at uzh.ch>
>>> >>> Rainer at krugs.de <mailto:Rainer at krugs.de>
>>> >>> Skype:     RMkrug
>>> >>>
>>> >>> PGP: 0x0F52F982
>>> >>>
>>> >>>
>>> >>>
>>> >>>
>>> >>> --
>>> >>> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)
>>> >>>
>>> >>> Orcid ID: 0000-0002-7490-0066
>>> >>>
>>> >>> Department of Evolutionary Biology and Environmental Studies
>>> >>> University of Zürich
>>> >>> Office Y34-J-74
>>> >>> Winterthurerstrasse 190
>>> >>> 8075 Zürich
>>> >>> Switzerland
>>> >>>
>>> >>> Office: +41 (0)44 635 47 64
>>> >>> Cell:        +41 (0)78 630 66 57
>>> >>> email:      Rainer.Krug at uzh.ch <mailto:Rainer.Krug at uzh.ch>
>>> >>> Rainer at krugs.de <mailto:Rainer at krugs.de>
>>> >>> Skype:     RMkrug
>>> >>>
>>> >>> PGP: 0x0F52F982
>>> >>>
>>> >>>
>>> >>> --
>>> >>> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)
>>> >>>
>>> >>> Orcid ID: 0000-0002-7490-0066
>>> >>>
>>> >>> Department of Evolutionary Biology and Environmental Studies
>>> >>> University of Zürich
>>> >>> Office Y34-J-74
>>> >>> Winterthurerstrasse 190
>>> >>> 8075 Zürich
>>> >>> Switzerland
>>> >>>
>>> >>> Office: +41 (0)44 635 47 64
>>> >>> Cell:        +41 (0)78 630 66 57
>>> >>> email:      Rainer.Krug at uzh.ch <mailto:Rainer.Krug at uzh.ch>
>>> >>> Rainer at krugs.de <mailto:Rainer at krugs.de>
>>> >>> Skype:     RMkrug
>>> >>>
>>> >>> PGP: 0x0F52F982
>>> >>>
>>> >>>
>>> >>>
>>> >>
>>> >> --
>>> >> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)
>>> >>
>>> >> Orcid ID: 0000-0002-7490-0066
>>> >>
>>> >> Department of Evolutionary Biology and Environmental Studies
>>> >> University of Zürich
>>> >> Office Y34-J-74
>>> >> Winterthurerstrasse 190
>>> >> 8075 Zürich
>>> >> Switzerland
>>> >>
>>> >> Office: +41 (0)44 635 47 64
>>> >> Cell:        +41 (0)78 630 66 57
>>> >> email:      Rainer.Krug at uzh.ch <mailto:Rainer.Krug at uzh.ch>
>>> >> Rainer at krugs.de <mailto:Rainer at krugs.de>
>>> >> Skype:     RMkrug
>>> >>
>>> >> PGP: 0x0F52F982
>>> >
>>> >
>>> > --
>>> > Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)
>>> >
>>> > Orcid ID: 0000-0002-7490-0066
>>> >
>>> > Department of Evolutionary Biology and Environmental Studies
>>> > University of Zürich
>>> > Office Y34-J-74
>>> > Winterthurerstrasse 190
>>> > 8075 Zürich
>>> > Switzerland
>>> >
>>> > Office: +41 (0)44 635 47 64
>>> > Cell:        +41 (0)78 630 66 57
>>> > email:      Rainer.Krug at uzh.ch <mailto:Rainer.Krug at uzh.ch>
>>> > Rainer at krugs.de <mailto:Rainer at krugs.de>
>>> > Skype:     RMkrug
>>> >
>>> > PGP: 0x0F52F982
>>> >
>>> >
>>> >
>>> > _______________________________________________
>>> > grass-dev mailing list
>>> > grass-dev at lists.osgeo.org <mailto:grass-dev at lists.osgeo.org>
>>> > https://lists.osgeo.org/mailman/listinfo/grass-dev <https://lists.osgeo.org/mailman/listinfo/grass-dev>
>> --
>> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)
>> 
>> Orcid ID: 0000-0002-7490-0066
>> 
>> Department of Evolutionary Biology and Environmental Studies
>> University of Zürich
>> Office Y34-J-74
>> Winterthurerstrasse 190
>> 8075 Zürich
>> Switzerland
>> 
>> Office:	+41 (0)44 635 47 64
>> Cell:       	+41 (0)78 630 66 57
>> email:      Rainer.Krug at uzh.ch <mailto:Rainer.Krug at uzh.ch>
>> 		Rainer at krugs.de <mailto:Rainer at krugs.de>
>> Skype:     RMkrug
>> 
>> PGP: 0x0F52F982
>> 
>> 
>> 
> 
> --
> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)
> 
> Orcid ID: 0000-0002-7490-0066
> 
> Department of Evolutionary Biology and Environmental Studies
> University of Zürich
> Office Y34-J-74
> Winterthurerstrasse 190
> 8075 Zürich
> Switzerland
> 
> Office:	+41 (0)44 635 47 64
> Cell:       	+41 (0)78 630 66 57
> email:      Rainer.Krug at uzh.ch <mailto:Rainer.Krug at uzh.ch>
> 		Rainer at krugs.de <mailto:Rainer at krugs.de>
> Skype:     RMkrug
> 
> PGP: 0x0F52F982
> 
> 
> 
> _______________________________________________
> grass-dev mailing list
> grass-dev at lists.osgeo.org <mailto:grass-dev at lists.osgeo.org>
> https://lists.osgeo.org/mailman/listinfo/grass-dev <https://lists.osgeo.org/mailman/listinfo/grass-dev>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20200812/ff6333f9/attachment-0001.html>


More information about the grass-dev mailing list