[GRASS-dev] OSGeo4W winGRASS 7.8.2 needs rebuild due to PROJ upgrade? or a python issue?

Hi,

just opened OSGeo4W winGRASS 7.8.2 in the OSGeo4W environment. it just
worked up to a few days ago.

build information:

###############
C:\>g.version -breg
version=7.8.2
date=2019
revision=3900fb114
build_date=2019-12-11
build_platform=x86_64-w64-mingw32
build_off_t_size=8

./configure --host=x86_64-w64-mingw32 '--with-libs=C:\OS3944~1/lib'
--with-includes=/c/OSGeo4W64/include --libexecdir=/c/OSGeo4W64/bin
--prefix=/c/OSGeo4W64/apps/grass --bindir=/c/OSGeo4W64/bin
--includedir=/c/OSGeo4W64/include --without-x --with-cxx --enable-shared
--enable-largefile --with-fftw --with-freetype
--with-freetype-includes=/mingw64/include/freetype2
--with-proj-share=/c/OSGeo4W64/share/proj
--with-proj-includes=/c/OSGeo4W64/include
--with-proj-libs=/usr/src/grass782/mswindows/osgeo4w/lib --with-postgres
--with-postgres-includes=/c/OSGeo4W64/include
--with-postgres-libs=/usr/src/grass782/mswindows/osgeo4w/lib
--with-gdal=/usr/src/grass782/mswindows/osgeo4w/gdal-config
--with-geos=/usr/src/grass782/mswindows/osgeo4w/geos-config --with-sqlite
--with-sqlite-includes=/c/OSGeo4W64/include
--with-sqlite-libs=/usr/src/grass782/mswindows/osgeo4w/lib --with-regex
--with-nls --with-zstd --with-odbc --with-cairo --with-opengl=windows
--with-bzlib --with-liblas=/usr/src/grass782/mswindows/osgeo4w/liblas-config
libgis_revision=00000
libgis_date="?"
proj=6.2.1 <=
gdal=3.0.2
geos=3.8.0
sqlite=3.29.0
###############

PROJ was upgraded in the OSGeo4W framework a few days ago:

C:\>proj --version
Rel. 6.3.1, February 10th, 2020

not sure it's the reason for following error in the console:

###########
C:\>Traceback (most recent call last):
  File "C:\OSGEO4~1\apps\Python37\lib\ctypes\__init__.py", line 97, in
CFUNCTYPE
    return _c_functype_cache[(restype, argtypes, flags)]
KeyError: (<class 'ctypes.c_long'>, (<class
'grass.lib.ctypes_preamble.String'>,), 1)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\wxgui.py", line 105, in
OnInit
    from lmgr.frame import GMFrame
  File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\lmgr\frame.py", line 51,
in <module>
    from lmgr.layertree import LayerTree, LMIcons
  File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\lmgr\layertree.py", line
38, in <module>
    from mapdisp.frame import MapFrame
  File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\mapdisp\frame.py", line
33, in <module>
    from mapdisp.toolbars import MapToolbar, NvizIcons
  File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\mapdisp\toolbars.py",
line 22, in <module>
    from nviz.main import haveNviz
  File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\nviz\main.py", line 24,
in <module>
    from nviz import mapwindow
  File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\nviz\mapwindow.py", line
42, in <module>
    from nviz.workspace import NvizSettings
  File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\nviz\workspace.py", line
23, in <module>
    from nviz import wxnviz
  File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\nviz\wxnviz.py", line
51, in <module>
    from grass.lib.gis import *
  File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\lib\gis.py", line
475, in <module>
    ('checker', CFUNCTYPE(UNCHECKED(c_int), String)),
  File "C:\OSGEO4~1\apps\Python37\lib\ctypes\__init__.py", line 99, in
CFUNCTYPE
    class CFunctionType(_CFuncPtr):
TypeError: item 1 in _argtypes_ passes a union by value, which is
unsupported.
OnInit returned false, exiting...
###########

or it could be a python 3 update yesterday:

http://download.osgeo.org/osgeo4w/x86_64/release/python3/python3-core/?C=M&O=A

python3-core-3.7.6-1.tar.bz2 10M 2020-Feb-29 23:07

C:\>python
Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64
bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

-----
best regards
Helmut
--
Sent from: http://osgeo-org.1560.x6.nabble.com/Grass-Dev-f3991897.html

Helmut Kudrnovsky wrote

Hi,

just opened OSGeo4W winGRASS 7.8.2 in the OSGeo4W environment. it just
worked up to a few days ago.

build information:

###############
C:\>g.version -breg
version=7.8.2
date=2019
revision=3900fb114
build_date=2019-12-11
build_platform=x86_64-w64-mingw32
build_off_t_size=8

./configure --host=x86_64-w64-mingw32 '--with-libs=C:\OS3944~1/lib'
--with-includes=/c/OSGeo4W64/include --libexecdir=/c/OSGeo4W64/bin
--prefix=/c/OSGeo4W64/apps/grass --bindir=/c/OSGeo4W64/bin
--includedir=/c/OSGeo4W64/include --without-x --with-cxx --enable-shared
--enable-largefile --with-fftw --with-freetype
--with-freetype-includes=/mingw64/include/freetype2
--with-proj-share=/c/OSGeo4W64/share/proj
--with-proj-includes=/c/OSGeo4W64/include
--with-proj-libs=/usr/src/grass782/mswindows/osgeo4w/lib --with-postgres
--with-postgres-includes=/c/OSGeo4W64/include
--with-postgres-libs=/usr/src/grass782/mswindows/osgeo4w/lib
--with-gdal=/usr/src/grass782/mswindows/osgeo4w/gdal-config
--with-geos=/usr/src/grass782/mswindows/osgeo4w/geos-config --with-sqlite
--with-sqlite-includes=/c/OSGeo4W64/include
--with-sqlite-libs=/usr/src/grass782/mswindows/osgeo4w/lib --with-regex
--with-nls --with-zstd --with-odbc --with-cairo --with-opengl=windows
--with-bzlib
--with-liblas=/usr/src/grass782/mswindows/osgeo4w/liblas-config
libgis_revision=00000
libgis_date="?"
proj=6.2.1 <=
gdal=3.0.2
geos=3.8.0
sqlite=3.29.0
###############

PROJ was upgraded in the OSGeo4W framework a few days ago:

C:\>proj --version
Rel. 6.3.1, February 10th, 2020

not sure it's the reason for following error in the console:

###########
C:\>Traceback (most recent call last):
  File "C:\OSGEO4~1\apps\Python37\lib\ctypes\__init__.py", line 97, in
CFUNCTYPE
    return _c_functype_cache[(restype, argtypes, flags)]
KeyError: (
<class 'ctypes.c_long'>
, (
<class
'grass.lib.ctypes_preamble.String'>
,), 1)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\wxgui.py", line 105,
in
OnInit
    from lmgr.frame import GMFrame
  File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\lmgr\frame.py", line
51,
in
<module>
    from lmgr.layertree import LayerTree, LMIcons
  File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\lmgr\layertree.py",
line
38, in
<module>
    from mapdisp.frame import MapFrame
  File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\mapdisp\frame.py",
line
33, in
<module>
    from mapdisp.toolbars import MapToolbar, NvizIcons
  File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\mapdisp\toolbars.py",
line 22, in
<module>
    from nviz.main import haveNviz
  File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\nviz\main.py", line
24,
in
<module>
    from nviz import mapwindow
  File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\nviz\mapwindow.py",
line
42, in
<module>
    from nviz.workspace import NvizSettings
  File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\nviz\workspace.py",
line
23, in
<module>
    from nviz import wxnviz
  File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\nviz\wxnviz.py", line
51, in
<module>
    from grass.lib.gis import *
  File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\lib\gis.py", line
475, in
<module>
    ('checker', CFUNCTYPE(UNCHECKED(c_int), String)),
  File "C:\OSGEO4~1\apps\Python37\lib\ctypes\__init__.py", line 99, in
CFUNCTYPE
    class CFunctionType(_CFuncPtr):
TypeError: item 1 in _argtypes_ passes a union by value, which is
unsupported.
OnInit returned false, exiting...
###########

or it could be a python 3 update yesterday:

http://download.osgeo.org/osgeo4w/x86_64/release/python3/python3-core/?C=M&O=A

python3-core-3.7.6-1.tar.bz2 10M 2020-Feb-29 23:07

C:\>python
Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916
64
bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

or just

https://github.com/davidjamesca/ctypesgen/issues/77#issuecomment-593023266

also now in winGRASS?

-----
best regards
Helmut
--
Sent from: http://osgeo-org.1560.x6.nabble.com/Grass-Dev-f3991897.html

Hi,

It’s the Python version.

Helmut Kudrnovsky <hellik@web.de> schrieb am So., 1. März 2020, 10:13:

Helmut Kudrnovsky wrote

Hi,

C:>python
Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916
64
bit (AMD64)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.

or just

https://github.com/davidjamesca/ctypesgen/issues/77#issuecomment-593023266

also now in winGRASS?

Yes.

Python 3.7.6 - 3.8.1 are broken if unpatched.

In Fedora, the fix of the upcoming 3.8.2 has recently been backported [1]. But it requires the recompilation of Python.

The easiest is to downgrade the Python version.

Markus

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1794572