Bug#218131: 3 glibc LSB RC bugs filed

2003-11-03 Thread Jeff Licquia
On Mon, 2003-11-03 at 11:49, Daniel Jacobowitz wrote:
> Red Hat already has a local patch for this, by the way.  I can not tell
> offhand if they are equivalent - they're structured very differently. 
> I recommend you grab the Rawhide glibc SRPM from a Red Hat mirror, and
> take a look at glibc-redhat.patch.

There may be value in the Red Hat patch (in particular, the check for
TCSETS).  In the main, however, the patch is still incorrect.

POSIX tcsetattr needs to handle three conditions correctly:

 - If all changes are successful, return success (0).
 - If some changes are successful and some aren't, return success.
 - If no changes are successful, return error (-1, errno=EINVAL).

The problem occurs when setting certain flags (PARENB, CREAD, or one of
the CSIZE parameters) on a pty.  The kernel silently ignores those
settings, so libc is responsible for doing the right thing.

Ancient glibc, pristine upstream glibc from February on, and Debian
sarge/sid glibc fail the third condition in this case.  2.2 versions of
glibc, woody glibc, 2.3 glibc up to February, and RawHide glibc fail the
second condition.  My patch, so far as I can tell, covers all three
conditions.

Note that as far as the LSB is concerned, failing the second condition
does not result in test failures, but it has been known to create
problems with applications.  Application problems were what prompted
Ulrich Drepper to drop the patch.

The problems with setlocale seem utterly unrelated.  Given the lack of
feedback on that issue, I think I'm going to rebuild my sarge test box
and try to reproduce the exact conditions which trigger it.



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Bug#218131: 3 glibc LSB RC bugs filed

2003-11-03 Thread Daniel Jacobowitz
On Mon, Nov 03, 2003 at 11:22:19AM -0500, Jeff Licquia wrote:
> On Fri, 2003-10-31 at 11:16, Jeff Licquia wrote:
> > The trick now is to get the patch to produce correct POSIX behavior. 
> > Essentially, we need to figure out if any setting change was successful,
> > and return success if it was.
> 
> I've added some code that does this, and have confirmed that the patch
> does resolve the tcgetattr and c_iflag problems.  Unfortunately, I seem
> to have broken something else; locale handling seems totally broken on
> my test machine, even when I downgrade to sarge's libc.
> 
> My patch is here:
> 
>   
> http://hackers.progeny.com/~licquia/lsb/patches/sarge/glibc_2.3.2-9/tcsetattr.dpatch
> 
> The broken report and journal are here:
> 
>   http://hackers.progeny.com/~licquia/lsb/journal-sarge.200311022311
>   http://hackers.progeny.com/~licquia/lsb/tjreport-sarge.200311022311.txt
> 
> Review, insight into the setlocale problem, or other comments would be
> appreciated.

Red Hat already has a local patch for this, by the way.  I can not tell
offhand if they are equivalent - they're structured very differently. 
I recommend you grab the Rawhide glibc SRPM from a Red Hat mirror, and
take a look at glibc-redhat.patch.

-- 
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Bug#218131: 3 glibc LSB RC bugs filed

2003-11-03 Thread Jeff Licquia
On Fri, 2003-10-31 at 11:16, Jeff Licquia wrote:
> The trick now is to get the patch to produce correct POSIX behavior. 
> Essentially, we need to figure out if any setting change was successful,
> and return success if it was.

I've added some code that does this, and have confirmed that the patch
does resolve the tcgetattr and c_iflag problems.  Unfortunately, I seem
to have broken something else; locale handling seems totally broken on
my test machine, even when I downgrade to sarge's libc.

My patch is here:

  http://hackers.progeny.com/~licquia/lsb/patches/sarge/glibc_2.3.2-9/tcsetattr.dpatch

The broken report and journal are here:

  http://hackers.progeny.com/~licquia/lsb/journal-sarge.200311022311
  http://hackers.progeny.com/~licquia/lsb/tjreport-sarge.200311022311.txt

Review, insight into the setlocale problem, or other comments would be
appreciated.



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Bug#218131: 3 glibc LSB RC bugs filed

2003-10-31 Thread Jeff Licquia
On Wed, 2003-10-29 at 14:31, Jeff Licquia wrote:
> On Wed, 2003-10-29 at 04:13, Matt Taggart wrote:
> > #218131
> >  ia64/i386: /tset/POSIX.os/devclass/tcgetattr/T.tcgetattr 1 FAIL
> >  ia64/i386: /tset/POSIX.os/devclass/tcgetattr/T.tcgetattr 2 FAIL
> 
> In reference to that bug, the following mailing list messages might be
> useful:
> 
> http://sources.redhat.com/ml/libc-alpha/2003-02/msg00117.html
> http://sources.redhat.com/ml/libc-hacker/1998-12/msg00076.html

More information.

I have been able to confirm that reapplying the H. J. Lu patch resolves
the tcgetattr LSB test failures.  It also seems to resolve the c_iflag
failures.

The trick now is to get the patch to produce correct POSIX behavior. 
Essentially, we need to figure out if any setting change was successful,
and return success if it was.



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Bug#218131: 3 glibc LSB RC bugs filed

2003-10-29 Thread Jeff Licquia
On Wed, 2003-10-29 at 04:13, Matt Taggart wrote:
> #218131
>  ia64/i386: /tset/POSIX.os/devclass/tcgetattr/T.tcgetattr 1 FAIL
>  ia64/i386: /tset/POSIX.os/devclass/tcgetattr/T.tcgetattr 2 FAIL

In reference to that bug, the following mailing list messages might be
useful:

http://sources.redhat.com/ml/libc-alpha/2003-02/msg00117.html
http://sources.redhat.com/ml/libc-hacker/1998-12/msg00076.html

Upon closer analysis, it would seem that the current behavior is
slightly more correct than the behavior in woody, but still not 100%
correct.  

Roland McGrath, in a followup to the former message, is partially right.
The patch introduced in the latter message is incorrect when it reports
any kernel jiggering of c_cflag to be incorrect.  However, removing the
patch entirely is also incorrect.  In glibc as delivered, setting PARENB
alone on a pty will return success, which is also incorrect according to
Roland.  (I haven't looked at what POSIX really says yet.)

So it would seem that we need to restore the old patch, but modify it to
only trigger if no valid settings are changed.



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]