[GRASS5] Status of 5.0.0 release

Hi developers,

as it becomes rather siltent in CVS, I suggest to release
GRASS 5.0.0 *now*.

We have three RC tagged bugs left in BUGS and a few in
RT-service. However, I don't see that they get fixed in
reasonable time.

My proposal is:

- start the definite release branch later this day
- extract sources package from this branch
- publish it a pre-release candidate
- build binaries from it
- let the testers test this
- eventually fix severe bugs, release next pre-release then
- cyle, cycle....
- get out the stable version before Eastern.

In case of no objections, let's go ahead. I am keen on 5.1 :slight_smile:

Regards

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Markus Neteler wrote:

as it becomes rather siltent in CVS, I suggest to release
GRASS 5.0.0 *now*.

We have three RC tagged bugs left in BUGS and a few in
RT-service. However, I don't see that they get fixed in
reasonable time.

Is [bug #229] applicable to the release candidate? (I'm using the
bleeding-edge version, so I don't know).

If it is, it should be fixed (I can provide a patch if necessary). If
developers haven't been bitten by this, maybe it's because they have
write permission on their PERMANENT mapset(s). End users are more
likely to be bitten by it.

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

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

On Mon, Apr 09, 2001 at 10:01:33AM +0100, Markus Neteler wrote:

as it becomes rather siltent in CVS, I suggest to release
GRASS 5.0.0 *now*.

- start the definite release branch later this day

I had hoped that we had the release branch already tagged.
(just curious).

- extract sources package from this branch
- publish it a pre-release candidate

Yes.

- build binaries from it
- let the testers test this
- eventually fix severe bugs, release next pre-release then
- cyle, cycle....
- get out the stable version before Eastern.

In case of no objections, let's go ahead. I am keen on 5.1 :slight_smile:

Go.

--
Professional Service around Free Software (intevation.net)
The FreeGIS Project (freegis.org)
Association for a Free Informational Infrastructure (ffii.org)
FSF Europe (fsfeurope.org)

On Mon, Apr 09, 2001 at 11:51:06AM +0200, Bernhard Reiter wrote:

On Mon, Apr 09, 2001 at 10:01:33AM +0100, Markus Neteler wrote:
> as it becomes rather siltent in CVS, I suggest to release
> GRASS 5.0.0 *now*.

> - start the definite release branch later this day

I had hoped that we had the release branch already tagged.
(just curious).

.. as it was completely ignored, it will be easier to make a new
branch. Otherwise we have to merge multiple fixes which is more
work than starting a new branch.

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

On Mon, Apr 09, 2001 at 10:07:33AM +0100, Glynn Clements wrote:

Markus Neteler wrote:

> as it becomes rather siltent in CVS, I suggest to release
> GRASS 5.0.0 *now*.
>
> We have three RC tagged bugs left in BUGS and a few in
> RT-service. However, I don't see that they get fixed in
> reasonable time.

Is [bug #229] applicable to the release candidate? (I'm using the
bleeding-edge version, so I don't know).

If it is, it should be fixed (I can provide a patch if necessary). If
developers haven't been bitten by this, maybe it's because they have
write permission on their PERMANENT mapset(s). End users are more
likely to be bitten by it.

Hi Glynn,

thanks for fixing it (I assume it was #229 as RT is still down).

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Markus Neteler wrote:

> > as it becomes rather siltent in CVS, I suggest to release
> > GRASS 5.0.0 *now*.
> >
> > We have three RC tagged bugs left in BUGS and a few in
> > RT-service. However, I don't see that they get fixed in
> > reasonable time.
>
> Is [bug #229] applicable to the release candidate? (I'm using the
> bleeding-edge version, so I don't know).
>
> If it is, it should be fixed (I can provide a patch if necessary). If
> developers haven't been bitten by this, maybe it's because they have
> write permission on their PERMANENT mapset(s). End users are more
> likely to be bitten by it.

Hi Glynn,

thanks for fixing it (I assume it was #229 as RT is still down).

Yes, it was #229.

BTW, I have the CVS "head" checked out, not the release branch; I
don't know if or how this affects the release (I've never managed to
get to grips with CVS branches; I'm still not quite sure whether I
really understand how non-branch tags work).

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

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

On Mon, Apr 09, 2001 at 03:50:04PM +0100, Glynn Clements wrote:

Markus Neteler wrote:

> > > as it becomes rather siltent in CVS, I suggest to release
> > > GRASS 5.0.0 *now*.
> > >
> > > We have three RC tagged bugs left in BUGS and a few in
> > > RT-service. However, I don't see that they get fixed in
> > > reasonable time.
> >
> > Is [bug #229] applicable to the release candidate? (I'm using the
> > bleeding-edge version, so I don't know).
> >
> > If it is, it should be fixed (I can provide a patch if necessary). If
> > developers haven't been bitten by this, maybe it's because they have
> > write permission on their PERMANENT mapset(s). End users are more
> > likely to be bitten by it.
>
> Hi Glynn,
>
> thanks for fixing it (I assume it was #229 as RT is still down).

Yes, it was #229.

BTW, I have the CVS "head" checked out, not the release branch; I
don't know if or how this affects the release (I've never managed to
get to grips with CVS branches; I'm still not quite sure whether I
really understand how non-branch tags work).

By tomorrow, when the new branch is applied, we all have the pleasure
to learn it... I hope only a few fixes are required to be applied to
the branch.

Regards

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hi Glynn,

(cc to grass5)

thanks for your various fixes!

Concerning the qsort warnings:

On Mon, Apr 09, 2001 at 07:58:22PM +0100, Glynn Clements wrote:
[...]

Do you want the qsort() warnings fixed? AFAICT, all of these arise
from comparison functions taking pointers to the actual object type,
but qsort() having a fixed prototype with a fixed 4th parameter.

Fixing them is basically a choice of either:

a) changing e.g.:

  int compare(foo *a, foo *b)
  {
    return CMP(*a, *b);
  }
to
  int compare(void *aa, void *bb)
  {
    foo *a = (foo*) aa;
    foo *b = (foo*) bb;
    return CMP(*a, *b);
  }

or:

b) explicitly casting the 4th argument to qsort()

If you want this fixed, which approach would you prefer?

OTOH, the "fixed" code is possibly uglier than the code which
generates warnings, due to the explicit typecasts.

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

this I would like to put into general discussion. Maybe we can silently
ignore the qsort warnings (no problems in past)?

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Markus Neteler wrote:
[...]

On Mon, Apr 09, 2001 at 07:58:22PM +0100, Glynn Clements wrote:
[...]
> Do you want the qsort() warnings fixed? AFAICT, all of these arise
> from comparison functions taking pointers to the actual object type,
> but qsort() having a fixed prototype with a fixed 4th parameter.
>
> Fixing them is basically a choice of either:
>
> a) changing e.g.:
>
> int compare(foo *a, foo *b)
> {
> return CMP(*a, *b);
> }
> to
> int compare(void *aa, void *bb)
> {
> foo *a = (foo*) aa;
> foo *b = (foo*) bb;
> return CMP(*a, *b);
> }
>
> or:
>
> b) explicitly casting the 4th argument to qsort()

[...]

this I would like to put into general discussion. Maybe we can silently
ignore the qsort warnings (no problems in past)?

I like a compile process without warning... The b) solution seems easier,
and probably more understandable (even more with a comment line ;-),
but does it really suppress warnings ?

--
Michel WURTZ - DIG - Maison de la télédétection
               500, rue J.F. Breton
               34093 MONTPELLIER Cedex 5

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Michel Wurtz wrote:

> > Do you want the qsort() warnings fixed? AFAICT, all of these arise
> > from comparison functions taking pointers to the actual object type,
> > but qsort() having a fixed prototype with a fixed 4th parameter.
> >
> > Fixing them is basically a choice of either:
> >
> > a) changing e.g.:
> >
> > int compare(foo *a, foo *b)
> > {
> > return CMP(*a, *b);
> > }
> > to
> > int compare(void *aa, void *bb)
> > {
> > foo *a = (foo*) aa;
> > foo *b = (foo*) bb;
> > return CMP(*a, *b);
> > }
> >
> > or:
> >
> > b) explicitly casting the 4th argument to qsort()
[...]
> this I would like to put into general discussion. Maybe we can silently
> ignore the qsort warnings (no problems in past)?

I like a compile process without warning... The b) solution seems easier,
and probably more understandable (even more with a comment line ;-),
but does it really suppress warnings ?

Good point. IIRC, casting function pointers (either explicitly or
implicitly) isn't 100% legal.

Also, many people seem to have problems reading function types (Linux'
signal(2) manpage even includes an explanation of how to read the
declaration of the second parameter).

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

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hi all,

I have realised that a few files where missing in the release
branch. So I have added them. So don't be surprised if you
receive them during your next cvs update.
If you still miss a file/directory in the release branch, please
let me know.

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hello all

Glynn Clements wrote:

Michel Wurtz wrote:

> > > Do you want the qsort() warnings fixed? AFAICT, all of these
> > > arise from comparison functions taking pointers to the actual
> > > object type, but qsort() having a fixed prototype with a fixed
> > > 4th parameter.
> > >
> > > Fixing them is basically a choice of either:
> > >
> > > a) changing e.g.:
> > >
> > > int compare(foo *a, foo *b)
> > > {
> > > return CMP(*a, *b);
> > > }
> > > to
> > > int compare(void *aa, void *bb)
> > > {
> > > foo *a = (foo*) aa;
> > > foo *b = (foo*) bb;
> > > return CMP(*a, *b);
> > > }
> > >
> > > or:
> > >
> > > b) explicitly casting the 4th argument to qsort()
> [...]
> I like a compile process without warning...

So do I.

> The b) solution seems easier, and probably more understandable
> (even more with a comment line ;-), but does it really suppress
> warnings ?

Good point. IIRC, casting function pointers (either explicitly or
implicitly) isn't 100% legal.

Also, many people seem to have problems reading function types
(Linux' signal(2) manpage even includes an explanation of how to read
the declaration of the second parameter).

The a) option is the correct way to fix this. The compare function
should take void pointers as parameters and cast them to the proper type
inside the function. I consider the b) option a hack. But that's just my
opinion.

--
Sincerely,

Jazzman (a.k.a. Justin Hickey) e-mail: jhickey@hpcc.nectec.or.th
High Performance Computing Center
National Electronics and Computer Technology Center (NECTEC)
Bangkok, Thailand

People who think they know everything are very irritating to those
of us who do. ---Anonymous

Jazz and Trek Rule!!!

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

> > > > Do you want the qsort() warnings fixed? AFAICT, all of these
> > > > arise from comparison functions taking pointers to the actual
> > > > object type, but qsort() having a fixed prototype with a fixed
> > > > 4th parameter.
> > > >
> > > > Fixing them is basically a choice of either:
> > > >
> > > > a) changing e.g.:
> > > >
> > > > int compare(foo *a, foo *b)
> > > > {
> > > > return CMP(*a, *b);
> > > > }
> > > > to
> > > > int compare(void *aa, void *bb)
> > > > {
> > > > foo *a = (foo*) aa;
> > > > foo *b = (foo*) bb;
> > > > return CMP(*a, *b);
> > > > }
> > > >
> > > > or:
> > > >
> > > > b) explicitly casting the 4th argument to qsort()

[snip]

The a) option is the correct way to fix this. The compare function
should take void pointers as parameters and cast them to the proper type
inside the function.

Well, in the course of fixing these, I've been reminded (by gcc) that
the arguments to the compare function are "const void *", not "void *".

This turns out to be a bit of a nuisance, as some of the comparison
functions call GRASS library functions, which generally omit the
"const".

There are two specific cases of library functions having the wrong
prototype:

1. src/raster/r.neighbors/cmd/sort_cell.c calls G_is_d_null_value(),
which omits the "const"; here I just discarded the const with an
explicit cast.

2. G_site_[cds]_cmp(), defined in src/libes/gis/sites.c and declared
in src/include/P_site.h. These are specifically intended to be passed
to qsort(), so I fixed the prototype.

However, even more weird than any of this is the comparison function
in do_v_stats(), in src.contrib/SCS/vector/v.report/cmd/do_v_stats.c:

  static int cmp (const void *a,const void *b)
  {
    if(a < b)
      return -1;
    if(a > b)
      return 1;
    return 0;
  }

Does anyone know if this is meant to be a placeholder for a
not-yet-written comparison function? Or should the qsort()s just be
removed?

One final point: some brain-dead compilers are known to have trouble
with non-trivial uses of the "const" qualifier. If anyone has "const"
trouble, let me know.

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

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'