[GRASS-dev] Makefiles: tar failure on Solaris

Glynn Clements glynn at gclements.plus.com
Tue Nov 21 14:59:28 EST 2006

Hamish wrote:

> GC:
> > > > Yes, but it still suffers from the issue that it installs every
> > > > file in the directory; there is no way to omit individual files
> > > > from installation.
> HB:
> > > for $GISBASE/etc/symbol/ I don't think that's a problem as it is
> > > specifically a file repository.
> GC:
> > Does anything enumerate the directory contents?
> e.g. icon_files() for "d.vect icon=" and rules_files() in r.colors.

Right, the icon= option has a list of valid options generated by
scanning that directory.

> > If so, having extraneous files will offer choices which shouldn't be
> > there.
> ..
> > The most common cause of problems is backup files, as these are
> > normally based upon the original filename (e.g. (X)Emacs will back-up
> > "foo" as "foo~") and don't contain a leading dot. These are excluded
> > from CVS by default, but could end up in tarballs if they are made
> > from a developer's working copy rather than a fresh checkout.
> > 
> > Another potential issue is README files. If a module provides a switch
> > to list available files, you don't want invalid files showing up in
> > the list.
> yes, but extraneous files (committed emacs backups, whatever) are bugs.

Having them end up in the dist.<arch> directory is a bug. Having
additional files in the source tree is part of the development

Corollary: blindly copying all files from a source directory to the
destination directory is a bug.

> README, et cetera, would (and does) go into lib/symbol/ not
> lib/symbol/symbol/

That's fine until you start adding third-party symbol libraries with
their own READMEs and similar. If you have to keep these in an
unrelated directory because having them in the same directory
conflicts with the installation mechanism, that suggests that you got
the installation mechanism wrong.

> My main concern is that it is set up in a way that makes it as easy as
> possible for users (and devels) to add new symbols to the system. (You
> can put custom icons into $MAPSET/symbol/group/, but then use is
> restricted to that one location) Having to keep a Makefile in sync is
> much more error prone- a noisy bug is better than a silent one.

One option is to check for VERSION at the beginning of the file, so
that d.vect only lists valid symbol files as options to the icon=

Glynn Clements <glynn at gclements.plus.com>

More information about the grass-dev mailing list