nmh-workers
[Top] [All Lists]

Re: [Nmh-workers] Garbage collection

2013-01-02 09:27:57
I mentioned that utmpx is not required by POSIX, and you replied that it's
more complicated than that. Could you expand on that? I'm interested to
hear more, because I personally am not very familiar with this stuff.

Okay.  In short, when when you say utmpx isn't required by POSIX, it all
depends on what you MEAN by "POSIX".

The getutxent() functions are part of the X/Open System Interface extension
(XSI).  That includes things like c99, locale support, mmap(), and other
stuff that modern systems have.  So does that mean that they're REQUIRED
by POSIX?  Depends if by POSIX you mean XSI or not.

But whether or not something is REQUIRED by POSIX isn't really the issue
here.  The real issue in my mind is portability.  The older style utmp
functionality was never standardized and different operating systems
had different structure members with slightly different meanings.
Application writers had to deal with this mess.  With utmpx this mess
got cleaned up and you were guaranteed a minimum set of structure
members and their meanings were defined clearly.  This situation is
vastly improved for application writers.  There may be some legitimate
griping about whether or not it was worth it to transition from utmp to
utmpx, but for me as an application developer it's clearly a win.

And here's my real beef with the situation - as far as I can tell,
literally EVERY OTHER Unix has gotten on the utmpx bandwagon (I don't
count the one random C library implementation you mentioned earlier).
If there was some legitimate technical reason that it couldn't be
implemented, or it was implemented in -current but hadn't made it into
a release yet, ok, fine, I'd be up for meeting OpenBSD halfway on
this.  But that's not really the situation, is it?  I think Paul Vixie
accurately summarized the situation and that really doesn't motivate me
to compromise here.  You'll make the case that the changes are small,
and I will agree that they're not huge ... but nmh is a gigantic mess of
#ifdefs and one of my long-term goals is to reduce that mess.  You have
to draw a line somewhere, and this is where I've decided to draw it.
Is it arbitrary?  Well, yeah.  But if those lines didn't get drawn
then we'd never get rid of any old code at all and I'd be working around
a bunch of #ifdef statements for sgtty support.

The patch William mentioned adds only 15 lines; it's reproduced below.
Would you consider committing it?

Me?  No, for the reasons stated above.  Also, I was under the impression
that OpenBSD still supported the older getutent() functions; if it doesn't
then the situation is even worse than I thought.

--Ken

_______________________________________________
Nmh-workers mailing list
Nmh-workers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/nmh-workers

<Prev in Thread] Current Thread [Next in Thread>