[GRASS-dev] GRASS module version strictness (libgrass_gis)

Benjamin Ducke benducke at fastmail.fm
Fri Mar 5 11:23:47 PST 2021


Dear Devs,

I am trying to find a way to inject GRASS modules (C code)
compiled  in a GRASS 7 source tree into an already installed
version of GRASS. Even if I compile in a GRASS 7.8.5 tree and
then copy into a GRASS 7.8.5 (i.e. exact version match)
installation, I get this:

ERROR: Module built against version 2021-03-04T21:51:47+00:00 but trying to
        use version 2021-01-01T10:33:43+00:00. You need to rebuild GRASS GIS
        or untangle multiple installations.

This is coming from 'libgrass_gis'.

Apparently, GRASS keeps exact timestamps of the binaries and
won't allow any mixing.

Is it really necessary to be this strict about build versions?
Would it be possible to relax this, so that a module compiled with
GRASS 7.8.a can be run under GRASS 7.8.b?

I worked around this issue with some LD_LIBRARY_PATH "magic",
and even running 7.8.1 binaries in a 7.8.5 installation seems
to work flawlessly.

Background: I am trying to find a way to provide sets of
additional modules, that are not part of the GRASS base
distribution, for injection into an existing GRASS installation.
This is exceedingly hard if all dependencies have to be
exact matches; especially if the modules are to be injected
into a version of GRASS bundled with QGIS.

Best,

Ben



More information about the grass-dev mailing list