Subject: Re: curses strangeness, Cannot fork messages
To: Ross Harvey <>
From: Brett Lymn <>
List: current-users
Date: 06/29/1999 09:55:15
According to Ross Harvey:
>The libcurses update done on 4/13 was INCOMPATIBLE with all previous
>versions and will BREAK some old binaries.

This is a bit over the top.  Have you actually seen the diff to fix
the pr you reported?  It was a change of the WINDOW structure - moving
one int to the end to make the memory layout the same as it was
before, only longer.  The fact that vi grovels through the curses
internal data structures is somewhat of a concern to me.

>The libcurses update done today, 6/28 is INCOMPATIBLE with the update done

True, it will but you cannot have it all.

> hopefully it will restore compatibility with 1.4 and earlier,

I believe it does - it certainly fixed the problem quoted on the PR
you raised.

> but it
>will BREAK binaries compiled between 4/13 and 6/28, modulo actual installation
>of the new bits.

True but as I said you cannot have it both ways with this problem.

>	1. When you apply 3,500 lines of patches to a shared library, post
>	   a note about it here.

Ross, I put a PR in to update curses fully 6 to 9 months BEFORE this
patch was applied.  Apart from bug fixes to the original PR the code
was substantially the same.  I did post messages about the PR multiple
times over the period after I submitted the PR.  What more could I do?

>	2. If you do something like that, actually TRY IT first on old
>	   binaries.

You presume we did not.  This is not the case.  The code that was
submitted as a patch was tested by a few people prior to the import of
it into the tree.

> And don't change the field layout of structures that
>	   are implicicitly part of the API.

This is true  - mea culpa.

>	   Vi(1) breaks immediately in an obvious way, it wouldn't have
>	   been hard to uncover this botch.

Vi broke because of a habit you have that I do not share.  I rarely ^Z
out of vi because I either use X or virtual consoles.  It was not an
obvious test to me, one of the other people on the curses team did
spot the problem and we were working on a solution.  The problem was
hardly a show stopper - if you went forward a page the screen would
update properly.

>	3. When you discover/verify a serious incompatibility, post a note
>	   about it here.

Ummmmm serious?  I do admit to the lack of update being a problem and
we were all working hard to track the problem down but serious?  If
you never saw an update again or vi died totally I would call that
serious - there was a work around or two which meant you were not
totally hosed which, to my mind, does not give the problem the gravity
you seem to be giving it.

>	4. When you intentionally introduce an incompatibility, even if it's
>	   to correct a previous incompatibility, post a note about it here.

I shall talk to the other guys about this - I found the bug last
night, stomped it and sent a message to the curses development guys
about it.  I was not expecting it to hit current quite that quickly.

Brett Lymn, Computer Systems Administrator, British Aerospace Australia