[Nas] Malformed man pages

Jon Trulson jon at radscan.com
Wed Oct 12 19:00:00 MDT 2011


On Wed, 12 Oct 2011, Steve McIntyre wrote:

> On Sun, Oct 09, 2011 at 12:45:58PM -0600, Jon Trulson wrote:
>> On Sun, 9 Oct 2011, Erik Auerswald wrote:
>>
>>> Hi,
>>>
>>> On 10/09/2011 07:50 PM, Steve McIntyre wrote:
>>>> I've had a weird bug reported (http://bugs.debian.org/639543) against
>
> I've just done exactly that and looked again. Looking right at the end
> of the build process, I'm seeing:
>
> ========================================================================
> .....
> if test -z "true" ; then \
>           cd `dirname SoWrFile` && \
>           ln -s `basename SoWrFile.man` `basename SoWrFile._man`; \
>        else \
>                     cpp -undef -traditional
>-D__apploaddir__=/etc/X11/app-def
[...]

I think you are right Steve something is wrong here.  I do not see you
symptoms, but I see other oddities.  For reference, I will include a
snippet that I see:

=============
if test -z "true" ; then \
            cd `dirname Sound` && \
            ln -s `basename Sound.man` `basename Sound._man`; \
         else \
                      cpp -undef -traditional  -D__apploaddir__=/etc/X11/app-defaults -D__filemansuffix__=5x -D__osfilemansuffix__=5 -D__libmansuffix__=3x -D__oslibmansuffix__=3 -D__mansuffix__=1x -D__osmansuffix__=1 -D__syscallmansuffix__=2x -D__ossysmansuffix__=2 -D__gamemansuffix__=6x -D__osgamemansuffix__=6 -D__miscmansuffix__=7x -D__osmiscmansuffix__=7 -D__admmansuffix__=8x -D__osadmmansuffix__=8 -D__miscmansuffix__=7x -D__osmiscmansuffix__=7 -D__drivermansuffix__=4x -D__osdrivermansuffix__=4 -D__adminmansuffix__=8 -D__projectroot__=/usr -D__xconfigfile__=xorg.conf -D__xconfigdir__=/usr/lib/X11 -D__xlogfile__=Xorg -D__xservername__=Xorg -D__appmansuffix__=1x -D__xorgversion__="\"`echo 7 6 0 | sed -e 's/ /./g' -e 's/^/Version\\\ /'`\" \"X Version 11\"" -D__vendorversion__="`echo 7 6 0 | sed -e 's/ /./g' -e 's/^/Version\\\ /'` X.Org"  \
              < Sound.man | sed -e '/^#  *[0-9][0-9]*  *.*$/d'                   -e '/^#line  *[0-9][0-9]*  *.*$/d'                        -e '/^[         ]*XCOMM$/s/XCOMM/#/'     -e '/^[  ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/#/'                        -e '/^[         ]*XHASH/s/XHASH/#/'                       -e '/\@\@$/s/\@\@$/\\/' >Sound._man; \
         fi
make[4]: Leaving directory `/home/jon/src/nas/doc/man/lib'
rm -f nas._man
if test -z "true" ; then \
            cd `dirname nas` && \
            ln -s `basename nas.man` `basename nas._man`; \
         else \
                      cpp -undef -traditional  -D__apploaddir__=/etc/X11/app-defaults -D__filemansuffix__=5x -D__osfilemansuffix__=5 -D__libmansuffix__=3x -D__oslibmansuffix__=3 -D__mansuffix__=1x -D__osmansuffix__=1 -D__syscallmansuffix__=2x -D__ossysmansuffix__=2 -D__gamemansuffix__=6x -D__osgamemansuffix__=6 -D__miscmansuffix__=7x -D__osmiscmansuffix__=7 -D__admmansuffix__=8x -D__osadmmansuffix__=8 -D__miscmansuffix__=7x -D__osmiscmansuffix__=7 -D__drivermansuffix__=4x -D__osdrivermansuffix__=4 -D__adminmansuffix__=8 -D__projectroot__=/usr -D__xconfigfile__=xorg.conf -D__xconfigdir__=/usr/lib/X11 -D__xlogfile__=Xorg -D__xservername__=Xorg -D__appmansuffix__=1x -D__xorgversion__="\"`echo 7 6 0 | sed -e 's/ /./g' -e 's/^/Version\\\ /'`\" \"X Version 11\"" -D__vendorversion__="`echo 7 6 0 | sed -e 's/ /./g' -e 's/^/Version\\\ /'` X.Org"  \
              < nas.man | sed -e '/^#  *[0-9][0-9]*  *.*$/d'                     -e '/^#line  *[0-9][0-9]*  *.*$/d'                        -e '/^[         ]*XCOMM$/s/XCOMM/#/'     -e '/^[  ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/#/'                        -e '/^[         ]*XHASH/s/XHASH/#/'                       -e '/\@\@$/s/\@\@$/\\/' >nas._man; \
         fi

=============

An indeed, looking at doc/man/lib/AuStFlow._man shows the included
header file (i have the dev bits installed of course).

A 'man AuStartFlow' (after a 'make install.man' shows just this:

===============
AuStartFlow(3)                                                           AuStartFlow(3)



Name
        AuStartFlow - start a flow.

Synopsis
audioutil                                 1.2                            AuStartFlow(3)

===============

And that's it.

So, yes, sonething is screwed up.  This is a new machine, so I will
try it on an older one to compare.  To be honest, I am not quite sure
why we bother running the man pages through the preprocessor anyway.
It's not like the API changes depending on what kind of system you
build for.

Also, during the make install.man, I see this:

....
install -c -m 0444 SoRwFile._man /usr/share/man/man3/SoundRewindFile.3x
mv -f tmp.man SoRwFile.man
install -c -m 0444 SoSkFile._man /usr/share/man/man3/SoundSeekFile.3x
mv -f tmp.man SoSkFile.man
install -c -m 0444 SoStrTFF._man /usr/share/man/man3/SoundStringToFileFormat.3x
mv -f tmp.man SoStrTFF.man
install -c -m 0444 SoTlFile._man /usr/share/man/man3/SoundTellFile.3x
mv -f tmp.man SoTlFile.man
install -c -m 0444 SoWrFile._man /usr/share/man/man3/SoundWriteFile.3x
mv -f tmp.man SoWrFile.man
install -c -m 0444 Sound._man /usr/share/man/man3/Sound.3x
mv -f tmp.man Sound.man
.....

WTF is going on there? Specifically with these 'mv -f tmp.man
Sound.man' commands?  So, some investigation is needed.  Might not get
to it this week, maybe the weekend, if you'd like me to take a look at
it.  Imake makes my eyes bleed. :)


>
> Looking through the Makefiles, the 'test -z "true"' is coming from lines like
>
>   if test -z "$(PREPROCESSMANPAGES)" ; then
>
> so the files *._man are being created by pre-processing the man
> pages. Unfortunately, later on if I run "make install.man" I can see
> that those *._man files are what's installed into place:

   Yep.  Perhaps some new xorg Imake changes?  I'm on an up to date
   kubuntu 11.04 on x86_64.

[...]
>
> Checking those files, I can see the truncated / broken man pages I
> mentioned. Does nobody else see this at all?
>
>

I do now.  Anyone else?

-- 
Jon Trulson

Q:  How many IBM CPU's does it take to do a logical right shift?
A:  33.  1 to hold the bits and 32 to push the register.


More information about the Nas mailing list