man-db-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Man-db-devel] man-db does not work on Solaris 11


From: Clark J. Wang
Subject: Re: [Man-db-devel] man-db does not work on Solaris 11
Date: Mon, 6 Feb 2012 14:34:12 -0700

On Sat, Feb 4, 2012 at 17:09, Colin Watson <address@hidden> wrote:
On Thu, Oct 27, 2011 at 11:39:53AM +0800, Clark J. Wang wrote:
> On Thu, Oct 20, 2011 at 3:59 PM, Clark J. Wang <address@hidden> wrote:
> > Sorry I did not found a man-db-users mailing list so I post here.

My apologies for the slow response.

> > I compiled libpipeline-1.2.0 and man-db-2.6.0.2 from source on a Solaris 11
> > system, then I useradd'ed a user named "man", then I ran mandb which really
> > took some time. But after that "man ls" outputted nothing.

I think you may be the first person to test man-db on Solaris (at least
to my knowledge) in quite some time, so a certain amount of bitrot
wouldn't surprise me too much.

Does 'make check' pass for you in both libpipeline and man-db?  If not,
what does it output?  (man-db's test suite is mostly just integration
and regression tests and could be a lot better, but libpipeline's test
suite is a fairly decent set of unit tests.)

> [bash-4.2] # /usr/local/man-db-2.6.0.2/bin/man ls | cat
> man: iconv_open ("ANSI_X3.4-1968//IGNORE", "UTF-8"): Invalid argument
> man: iconv_open ("ANSI_X3.4-1968//IGNORE", "UTF-8"): Invalid argument

That might indicate that you need to link man-db against an external GNU
libiconv, unless you can suggest a replacement for the //IGNORE GNUism
that works with your system's iconv.

It works fine with GNU libiconv, thanks. But there's some compilation problem:

make[3]: Entering directory `/root/tmp/man-db-2.6.0.2/src'
  CC     catman.o
  CC     manp.o
  CCLD   catman
ld: warning: file ../lib/.libs/libman.so: linked to /root/tmp/man-db-2.6.0.2/lib/.libs/libman.so: attempted multiple inclusion of file
  CC     compression.o
  CC     descriptions.o
  CC     filenames.o
  CC     lexgrog.o
In file included from ../gnulib/lib/unistd.h:110:0,
                 from ../gnulib/lib/stdlib.h:89,
                 from lexgrog.c:22:
../gnulib/lib/getopt.h:196:8: error: redefinition of 'struct option'
/usr/include/getopt.h:27:8: note: originally defined here
../gnulib/lib/getopt.h:245:12: error: conflicting types for 'getopt_long'
/usr/include/getopt.h:47:12: note: previous declaration of 'getopt_long' was here
../gnulib/lib/getopt.h:249:12: error: conflicting types for 'getopt_long_only'
/usr/include/getopt.h:49:12: note: previous declaration of 'getopt_long_only' was here
In file included from lexgrog.l:34:0:
../config.h:1744:0: warning: "_FILE_OFFSET_BITS" redefined
/usr/include/sys/feature_tests.h:204:0: note: this is the location of the previous definition
lexgrog.c:4239:16: warning: 'input' defined but not used
make[3]: *** [lexgrog.o] Error 1
make[3]: Leaving directory `/root/tmp/man-db-2.6.0.2/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/tmp/man-db-2.6.0.2/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/tmp/man-db-2.6.0.2'
make: *** [all] Error 2

I worked that around by commenting out the `# include <getopt.h>' line.

      //IGNORE
             When  the  string  "//IGNORE"  is  appended  to  tocode,
             characters  that  cannot  be  represented  in the target
             character set will be silently discarded.

> gtroff: fatal error: can't find macro file g

This suggests that man-db has somehow misdetected your system as using
the Heirloom Documentation Tools when you're in fact using groff.  Could
you post the output of man-db's configure script?

Thanks,

--
Colin Watson                                       [address@hidden]


reply via email to

[Prev in Thread] Current Thread [Next in Thread]