[GRASS-dev] question about icons in GRASS 7

Glynn Clements glynn at gclements.plus.com
Wed Aug 6 00:16:48 EDT 2008


Hamish wrote:

> > Martin and I agree that all the icons should be put into one place.  
> > The question is where. The original place identified for GUI icon sets  
> > was $GISBASE/etc/gui/icons. However, Martin points out that there is a  
> > real convenience factor for doc page creation to have them in $GISBASE/ 
> > docs/html/icons. In either place, we should probably have a structure  
> > like ../icons/grass; ../icons/silk; ../icons/newgrass; etc.
> > 
> > I have no problem with the $GISBASE/docs/html/icons location but  
> > wanted to see if there are any other considerations we should keep in  
> > mind as to where the GRASS 7 icon archive should live.
> 
> 
> IMO $GISBASE/docs/html/icons seems very a strange place to put them,
> while $GISBASE/etc/icons seems very natural. Their primary reason for
> existence is for the GUI program, the docs are reactionary to that..
> 
> note that some packagers (Debian...) will, for large softwares, split
> the docs from the main program package into a new -docs package. this
> is for a couple reasons- one is that some people (eg embedded, old
> hardware) want to save the disk space by not installing unneeded docs;
> another is to avoid redundancy on the package download servers by
> pushing as much platform-neutral data into a single "-any" package and
> then have a series of smaller -i386, -arm, -mips, etc. binary
> packages. Storing 11 copies of the same docs adds up when you support
> 11 hardware platforms.
> 
> The icons are platform neutral so not a problem for the server-space
> reason, but very much a problem for the user wants "core only" reason.

IOW, the icons should really be installed into both docs/html/icons
(for the documentation) and etc/icons (for the GUI itself).

This would also help to facilitate making GRASS behave more like a
normal Unix package, with various components installed in
subdirectories of /usr (or /usr/local), rather than everything going
into a single directory.

In that regard, I would expect something like:

	old			new

	<gisbase>		/usr/lib/grass-<version>
	<gisbase>/bwidget	/usr/lib/grass-<version>/bwidget
	<gisbase>/driver	/usr/lib/grass-<version>/driver
	<gisbase>/etc		/usr/lib/grass-<version>/etc
	<gisbase>/fonts		/usr/lib/grass-<version>/fonts
	<gisbase>/bin/*		/usr/bin/*
	<gisbase>/scripts/*	/usr/bin/*
	<gisbase>/lib/*		/usr/lib/*
	<gisbase>/docs/html	/usr/share/doc/grass-<version>/html
	<gisbase>/include/grass	/usr/include/grass
	<gisbase>/locale/*	/usr/share/locale/*
	<gisbase>/man/man1/*	/usr/share/man/man1/*

If GISBASE points at /usr/lib/grass-<version>, then it's probably just
a case of finding the documentation (HTML and man), and not explicitly
specifying $GISBASE/bin (or $GISBASE/scripts) when running GRASS
modules.

Finding the HTML documentation could be as simple as making
$GISBASE/docs a symlink to GRASS' document directory if it's outside
of $GISBASE. For the manpages, g.manual can just specify the name
rather than a complete path, and rely upon MANPATH being set for the
case where everything is under $GISBASE.

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


More information about the grass-dev mailing list