[GRASS5] ANN: GRASS on iPAQ/Linux available

GRASS on handhelds

Jan Stankovic and me may announce that (baby)GRASS is
running now on iPAQ/Linux:

http://grass.itc.it/grasshandheld.html

With kind help of Nick Duffek <nick.duffek@compaq.com> we
got binaries compiled on ipaq3.handhelds.org (this are
new machines, in parallel to the Skiff cluster).

The code (not stripped) needs 2.4MB and currently includes:

d.erase d.measure d.mon d.pan d.rast d.sites d.vect d.what.rast d.what.sites
d.what.vect d.zoom g.copy g.gisenv g.list g.region g.remove g.rename
r.in.ascii s.in.ascii
XDRIVER

More modules can be easily added in
handheld/babyGRASS_packagingsrc.sh

For compilation (GRASS shared libs) there is
handheld/babyGRASS_compile.sh

Notes:
- The flag to gcc "-gstabs" made it binary compliant (I don't know why
  but it works).
- the src/libes/dig_atts/ compiles now without problems, subsequently
  all vector modules are compilable
- we have to look again at d.zoom to get the 1-button mode working
  (it runs on iX86/Linux, but not on iPAQ)
- the gcc on ipaq3.handhelds.org is very sensitive to warnings,
  even if indicated as warning during compile time, linking will fail.
  Means: ipaq3.handhelds.org is a platform to find such warnings...
- we still do not get "debugging symbols" present, but anyway - GRASS
  is working now

Kudos to Glynn Clements for his efforts on shared libraries.

Enjoy

Markus

On May 7, Markus Neteler wrote:
> Jan Stankovic and me may announce that (baby)GRASS is
> running now on iPAQ/Linux:
>
> http://grass.itc.it/grasshandheld.html

I'll follow that up by announcing that I've packaged up these same
binaries and contributed them to the Familiar distribution.

This means, that iPAQ users running Familiar can now simply do:

  ipkg install grass

to download and install grass. This will currently work as long as the
user is pointing at Familiar's "unstable" feed[*]. By the time
Familiar 0.5.3 is released, grass will be available as part of the
standard distribution.

If someone would like to install the package without pointing at the
unstable feed, then the following command will also work:

  ipkg install http://familiar.handhelds.org/familiar/feeds/unstable/packages/armv4l/grass_5.0.0-20020507-1_arm.ipk

A few notes on the package I made:

  o It installs its binary as /usr/bin/grass5

  o All other files are in /usr/share/grass/,
  (eg. /usr/share/grass/bin, /usr/share/grass/etc, etc.) This
  layout matches standard (FHS) practice and is cleaner than
  installing directories such as
  dist.armv4l-unknown-linux-gnu. Perhaps I should change it to
  /usr/share/grass5 though?

  o There is a bug in ipkg preventing it from installing
  packages with hard links correctly. So I expanded all the
  files in /usr/share/grass/bin into separate files. This bloats
  the package a bit, but I also stripped all the libraries which
  compensates almost exactly. (I plan to fix the bug in ipkg
  soon *blush*).

Things I would like to do next include making all of GRASS available
in separate packages, creating a better mechanism for doing partial
builds of grass, and adding package creation targets to the GRASS
makefiles.

> Notes:
> - we have to look again at d.zoom to get the 1-button mode working
> (it runs on iX86/Linux, but not on iPAQ)

I'll be looking into this right away.

> - we still do not get "debugging symbols" present, but anyway - GRASS
> is working now

Markus, you asked for this. Your script passes "-s" to ld which
removes the debugging symbols, (although strip can shrink the
libraries you generated a bit more).

-Carl

[*] A user can point to Familiar's unstable feed by adding the
following line to /etc/ipkg.conf:

  src familiar-unstable http://familiar.handhelds.org/familiar/feeds/unstable/pack ages/armv4l

--
Carl Worth
USC Information Sciences Institute cworth@east.isi.edu
3811 N. Fairfax Dr. #200, Arlington VA 22203 703-812-3725

On Tue, May 07, 2002 at 03:39:13PM +0000, Carl Worth wrote:

On May 7, Markus Neteler wrote:
> Jan Stankovic and me may announce that (baby)GRASS is
> running now on iPAQ/Linux:
>
> http://grass.itc.it/grasshandheld.html

I'll follow that up by announcing that I've packaged up these same
binaries and contributed them to the Familiar distribution.

This means, that iPAQ users running Familiar can now simply do:

  ipkg install grass

to download and install grass. This will currently work as long as the
user is pointing at Familiar's "unstable" feed[*]. By the time
Familiar 0.5.3 is released, grass will be available as part of the
standard distribution.

If someone would like to install the package without pointing at the
unstable feed, then the following command will also work:

  ipkg install http://familiar.handhelds.org/familiar/feeds/unstable/packages/armv4l/grass_5.0.0-20020507-1_arm.ipk

Congrats, Carl!

A few notes on the package I made:

  o It installs its binary as /usr/bin/grass5

  o All other files are in /usr/share/grass/,
  (eg. /usr/share/grass/bin, /usr/share/grass/etc, etc.) This
  layout matches standard (FHS) practice and is cleaner than
  installing directories such as
  dist.armv4l-unknown-linux-gnu. Perhaps I should change it to
  /usr/share/grass5 though?

  o There is a bug in ipkg preventing it from installing
  packages with hard links correctly. So I expanded all the
  files in /usr/share/grass/bin into separate files. This bloats
  the package a bit, but I also stripped all the libraries which
  compensates almost exactly. (I plan to fix the bug in ipkg
  soon *blush*).

Things I would like to do next include making all of GRASS available
in separate packages, creating a better mechanism for doing partial
builds of grass, and adding package creation targets to the GRASS
makefiles.

Yes - my scripts are pretty rough. We need a more conventient method.

Carl, may I ask you to add your notes to
web/grasshandheld.html
?
cvs -z3 co web
will get the pages to you.

> Notes:
> - we have to look again at d.zoom to get the 1-button mode working
> (it runs on iX86/Linux, but not on iPAQ)

I'll be looking into this right away.

Perfect.

> - we still do not get "debugging symbols" present, but anyway - GRASS
> is working now

Markus, you asked for this. Your script passes "-s" to ld which
removes the debugging symbols, (although strip can shrink the
libraries you generated a bit more).

I am not sure - I had disabled LDFLAGS="". In the head file is written
src/CMD/head/head
CC = gcc
FC =
LEX = flex
[...]
COMPILE_FLAGS = -g -gstabs
LINK_FLAGS =

There is no "-s", also not in the script (see latest CVS version):
[...]
CFLAGS="-g -gstabs" LDFLAGS="" ./configure --prefix=...
[...]

Still there are no debugging symbols.
cd dist.armv4l-unknown-linux-gnu/etc/bin/cmd
gdb d.vect
GNU gdb 2002-04-01-cvs
[...]
This GDB was configured as "arm-linux"...(no debugging symbols found)...
(gdb)

There must be another trick.

Markus

Carl Worth wrote:

  o All other files are in /usr/share/grass/,
  (eg. /usr/share/grass/bin, /usr/share/grass/etc, etc.) This
  layout matches standard (FHS) practice and is cleaner than
  installing directories such as
  dist.armv4l-unknown-linux-gnu. Perhaps I should change it to
  /usr/share/grass5 though?

/usr/share is supposed to be for files which are shareable across
architectures, i.e. not executables or libraries. I suggest using
/opt.

Basically, the GISBASE concept (i.e. all of GRASS residing within a
single directory) is at odds with the conventional Unix directory
structure (files grouped by type rather than by package) of FHS.

  o There is a bug in ipkg preventing it from installing
  packages with hard links correctly. So I expanded all the
  files in /usr/share/grass/bin into separate files. This bloats
  the package a bit, but I also stripped all the libraries which
  compensates almost exactly. (I plan to fix the bug in ipkg
  soon *blush*).

Rather than making lots of copies of front.end, either use symlinks,
or generate the links with an installation script.

--
Glynn Clements <glynn.clements@virgin.net>

On Wed, May 08, 2002 at 01:33:14AM +0100, Glynn Clements wrote:

Carl Worth wrote:

> o All other files are in /usr/share/grass/,
> (eg. /usr/share/grass/bin, /usr/share/grass/etc, etc.) This
> layout matches standard (FHS) practice and is cleaner than
> installing directories such as
> dist.armv4l-unknown-linux-gnu. Perhaps I should change it to
> /usr/share/grass5 though?

/usr/share is supposed to be for files which are shareable across
architectures, i.e. not executables or libraries. I suggest using
/opt.

I agree as /opt also fits FHS and suites GRASS better.

On May 8, Bernhard Reiter wrote:
> On Wed, May 08, 2002 at 01:33:14AM +0100, Glynn Clements wrote:
>
> > /usr/share is supposed to be for files which are shareable across
> > architectures, i.e. not executables or libraries. I suggest using
> > /opt.
>
> I agree as /opt also fits FHS and suites GRASS better.

Good points. I'll switch to /opt/grass5 then.

Now, to start looking at why d.zoom doesn't work on my iPAQ...

-Carl

--
Carl Worth
USC Information Sciences Institute cworth@east.isi.edu
3811 N. Fairfax Dr. #200, Arlington VA 22203 703-812-3725

On Tuesday 07 May 2002 05:39 pm, Carl Worth wrote:

> Notes:
> - we have to look again at d.zoom to get the 1-button mode working
> (it runs on iX86/Linux, but not on iPAQ)

I'll be looking into this right away.

Fixed.

Radim

On Thu, May 09, 2002 at 05:50:54PM +0200, Radim Blazek wrote:

On Tuesday 07 May 2002 05:39 pm, Carl Worth wrote:
> > Notes:
> > - we have to look again at d.zoom to get the 1-button mode working
> > (it runs on iX86/Linux, but not on iPAQ)
>
> I'll be looking into this right away.

Fixed.

Also
http://grass.itc.it/grass5/binary/ipaq_linux/iPAQ_linuxbins.tar.gz
is updated accordingly.

Markus

On Tue, May 07, 2002 at 03:39:13PM +0000, Carl Worth wrote:

On May 7, Markus Neteler wrote:
> Jan Stankovic and me may announce that (baby)GRASS is
> running now on iPAQ/Linux:
>
> http://grass.itc.it/grasshandheld.html

I'll follow that up by announcing that I've packaged up these same
binaries and contributed them to the Familiar distribution.

Just another follow-up: With a few trivial hacks to gui.tcl
we got "tcltkgrass" running on the iPAQ. Of course it is not
really convenient, but just an indicator that a better GUI is
needed (maybe an upcoming handhelds GUI can inspire the desktop
version of a GUI).

Markus