[GRASS5] GRASS make system oddities

Glynn Clements glynn at gclements.plus.com
Thu Mar 16 10:14:40 EST 2006


benducke at compuserve.de wrote:

> just noticed two things that I find strange:
> 
> 1. All include files are now in $GISBASE/include/grass which
> is neat, but GDAL 1.3.1 does not seem to know about this yet?
> I had to link the *.h files to $GISBASE/include to get it
> to compile.
> 
> 2. What makes me a little nervous is this:
> make install creates grass-6.1.cvs with ownership set
> to root. But: all files in that dir get ownership set
> to the user who compiled the source code.
> Is this intended behaviour?

It isn't exactly intended; it's a consequence of the way that the
build and install processes work.

The build process puts everything into a staging directory,
dist.<arch>, along with a version of the grass61 script in bin.<arch>
which sets $GISBASE to the dist.<arch> directory. This allows you to
run the compiled version in-place without having to install it.

"make install" simply copies the staging directory to the final
location (e.g. /usr/local/grass-6.1.cvs) using a pair of tar commands. 
When run as root, the default behaviour of "tar x ..." is to preserve
the owner and permissions on the extracted files.

The GNU tar program has the --no-same-owner (-o) option which inhibits
this behaviour; extracted files will be owned by the user running tar
(i.e. root; for non-root users, files will always be owned by the user
running tar). However, I don't know if this option is portable to
other tar programs. Hence it isn't used at present.

-- 
Glynn Clements <glynn at gclements.plus.com>




More information about the grass-dev mailing list