[GRASSLIST:7375] Re: r.terraflow fails to build

Hamish hamish_nospam at yahoo.com
Wed Jun 29 10:11:32 EDT 2005

> > > [root at localhost r.terraflow]# make

As a general rule it's probably a bad idea to run "make" as root.. 
if something goes nuts during the build process you can do all sorts of 
damage. Only need to be root for "make install".

> > > ./IOStream/include/replacementHeap.h:155: error: invalid use of
> > > constructor as a tem plate
> > > ./IOStream/include/replacementHeap.h:155: note: use _ReplacementHeap<T,
> > > Compare>::Re placementHeap_ instead of _ReplacementHeap<T,
> > > Compare>::ReplacementHeap<T, Compare>_  to name the constructor in a
> > > qualified name
> > I see 64 bitness; is this GCC 4.0?
> > 
> > a patch was already posted:
> >   
> >   http://grass.itc.it/pipermail/grass5/2005-June/018638.html
> How does one apply this (and other) patches? 
> [root at localhost r.terraflow]# patch IOStream/include/replacementHeap.h
> r.terraflow.pat
> patching file IOStream/include/replacementHeap.h
> Hunk #1 FAILED at 152.
> 1 out of 1 hunk FAILED -- saving rejects to file
> IOStream/include/replacementHeap.h.rej
> can't find file to patch at input line 34
> Perhaps you should have used the -p or --strip option?
> The text leading up to this was:
> --------------------------

Method 1:
If it is small and you are an accurate type, just make the change by 
hand in a text editor. Negative lines are what's removed, positive 
is what needs to be added.

Method 2:
You need to get the -p level correct. Study the "patch" man page or if 
you are an experimentalist just try -p levels 0-5 and see if one works.

general method:

patch -p0 < r.terraflow.patch

It gets the files to patch from inside the patch itself so you only have 
to pipe in the "from" diff file.

bonus hint 1:

You make patches with the "diff -u" command, e.g.:

diff -u oldfile.txt newfile.txt > patch.diff

or if it's from a CVS snapshot & you've already logged in (anonymously),

cvs diff changed_file.txt > patch.diff

bonus hint 2:

make a ~/.cvsrc file containing the following:
diff -u
update -dP

This will take care of adding the -u when you do a cvs diff and other
helpful things.


More information about the grass-user mailing list