For the past weeks, I have been working on a stand-alone program
that allows for compilation and installation of GRASS 6 modules
and libs, called GRASSS Extensions Manager ('gem').
Gem will allow GRASS users to download, compile and install
additional GRASS commands and libraries without the need
to have a complete GRASS 6 source tree or know a lot
about C source code configuration and compilation.
An extension may contain:
- source code written for GRASS 6
- any number of binary sets for specific architectures
- scripts
- ASCII files that describe the contents and dependencies
of the extension
'gem' can do the following things for the user:
- compile and install extensions from within a directory
or a compressed archive (tar.gz, tar.bz2, zip) provided
that tar, gzip and friends are available
- install pre-compiled binaries and scripts
- retrieve extension packages from http and ftp sources,
provided that wget is available
- query extensions and display information and license
files
- upgrade extensions
- remove extensions from the system
- manage dependencies on other extensions and specific
GRASS versions
It is really easy for extension authors to get their source
code into a form that works with 'gem'. I will provide
an extension skeleton with commented ASCII files that extension
authors just need to fill in. Other than that, it should be
possible to keep Makefile and source structure untouched
as 'gem' uses a simplified copy of the original GRASS 6 make
system.
I am going to release a version of 'gem', as well as a
few usefull extensions sometime next month and would like
everyone with some time to spare to try and download and
install some of those on their systems. Otherwise, I will
never be able to know if the simplified compilation scheme
works reliably on different systems.
Before I release 'gem' for testing, I would like to complete
its functionality. For this, I need some help with the following
two items that should also be stored inside an extension package:
- HTML documentation
- Hooks for the GIS manager
My questions are:
- what is the best way to merge an extension's HTML docs into
the GRASS 6 installation? I think it would be important
to register the new pages in 'index.html', perhaps in a
separate paragraph so that the user can quickly see which
additional commands an extension has added to the system.
- how are we going to make new commands available in the
GIS manager?
Should the extension author be able to register them
in any of GIS manager's menus?
Or would it be better to have a menu 'Extensions' under
which every extension registers its commands?
Cheers,
Benjamin