Subject: Re: X11 R6 fix-11 explodes ... loose shrapnel inflicts many casualties
To: Greg Earle <earle@isolar.Tujunga.CA.US>
From: Kaleb S. KEITHLEY <kaleb@x.org>
List: port-sparc
Date: 02/20/1995 09:40:00
>As far as I can determine, of the NetBSD/SPARC through-fix-05 patches, here
>are the remaining ones which were not implemented by fix-11.  If anyone wants
>to clarify or correct me on these - i.e., say why they weren't implemented, or
>how they really were, but in a different way somewhere else that I'm just not
>seeing, etc. - please drop me a line or followup.  [Blatant Kaleb troll  (-: ]

I'm not that hard to get an answer out of.

Greg said:
>In particular, I'm interested in (a) the rgb patch; the NetBSD patch says "Yes,
>use the DBM files instead of rgb.txt, and call them rgb.db", whereas the
>fix-11 patch tries to say "No, use only rgb.txt", but it even botches that by
>sticking a "UseRGBTxt YES" in NetBSD.cf instead of "UseRgbTxt" - note typo;

Matthieu said:
>I am the one who integrated the NetBSD/sparc fixes to XFree86. My goal
>was to be able to build the XFree86 tree on all NetBSD architectures I
>have access to (for now only i386 and sun4c) with maximum
>compatibility between architectures. In fact I only kept Dennis
>Ferguson and Matthew Green's patches to hw/sun. All other OS problems
>were already adressed by XFree86 for NetBSD/i386.

I think Matthieu is on the right track.

>I dropped the use of rgb.db since XFree86 doesn't use it anymore on
>i386 platform. I'm also responsible for the UseRGBTxt typo in
>NetBSD.cf. For i386, it's defined in xfree86.cf so it doesn't hurt,
>but you're right.

That explains that. File a bug-report to get it fixed.

>And also (b) the xdm Imakefile patch; the fix-11 version only adds crypt
>support - "SYS_LIBRARIES = -lcrypt" - if "XFree86Version" is defined ... and
>obviously that's not true on !i386 NetBSD architectures, but some of us have
>-lcrypt nonetheless ...  

I would merely say that we don't have any machine running NetBSD, Intel
or SPARC, so we have to rely on what we get from our members and from
bug-reports. Implement a generic solution and submit it in a bug-report.

>The rest I just plain don't understand why they were
>omitted; for example, the xterm main.c patch wasn't picked up, and without it
>we don't get proper utmp[/wtmp/lastlog] entries written because the default
>filenames are wrong for NetBSD (see the NetBSD <utmp.h>) ...

I don't remember that there was anything in the patch from XFree86 about
this. Perhaps there was. Submit a bug-report.

>*** 1.1	1994/07/22 10:06:18
>--- xc/programs/xdm/dm.h	1994/07/22 10:07:20
>***************
>*** 352,358 ****
>  #define SIGVAL void
>  #endif
>  
>! #ifdef X_NOT_POSIX
>  #ifdef SYSV
>  #define SIGNALS_RESET_WHEN_CAUGHT
>  #define UNRELIABLE_SIGNALS
>--- 352,358 ----
>  #define SIGVAL void
>  #endif
>  
>! #if defined(X_NOT_POSIX) || defined(__NetBSD__)
>  #ifdef SYSV
>  #define SIGNALS_RESET_WHEN_CAUGHT
>  #define UNRELIABLE_SIGNALS

Does NetBSD really not have sigsetjmp? FreeBSD 1.x and 2.x have it, that's
why I'm skeptical that NetBSD needs this change. If it has them but you
don't want to use them for some reason then the rationale for it needs
to be documented in a bug-report.

>*** 1.1	1994/07/20 00:07:11
>--- xc/programs/twm/lex.l	1994/07/20 00:10:46
>***************
>*** 67,73 ****
>  extern char *ProgramName;
>  
>  extern int ParseError;
>! #ifdef __bsdi__
>  int yylineno;
>  
>  #undef YY_INPUT
>--- 67,73 ----
>  extern char *ProgramName;
>  
>  extern int ParseError;
>! #if defined(__bsdi__) || defined(__NetBSD__)
>  int yylineno;
>  
>  #undef YY_INPUT

Your patch didn't apply or something. This was fixed in fix-11. Did
XFree86 3.1.1 undo it?

>*** 1.1	1994/07/21 22:47:47
>--- fonts/PEX/Imakefile	1994/07/21 22:53:12
>***************
>*** 33,38 ****
>--- 33,42 ----
>  #define PexFontDefines 
>  #endif
>  
>+ #ifdef	NetBSDArchitecture	/* big hack here */
>+ LEX = lex -l
>+ #endif
>+ 
>  .SUFFIXES: $(SUFFIXES) .src .phont
>  
>  CDEBUGFLAGS = PexFontCDebugFlags

This should not be necessary. LEX is defined in Imake.tmpl as LexCmd, 
which in turn could be defined in NetBSD.cf, site.def, or host.def 
as 'lex -l'. Since '-l' is only valid in later versions of flex (
versions not shipped until after NetBSD 0.9) it's perfectly appropriate
that LexCmd should be set in site.def or host.def files, and/or since
XFree86 is supporting a later version of NetBSD than the X Consortium
is, it could be in the XFree86 NetBSD.cf file.