In a recent thread in debian-devel, it was suggested that
        lintian could call man(1) in such a way that the groff(1),
        called by `man', will emit warnings for every undefined macro,
        which is useful in catching the bugs like this:

.B foo
.  Note: ...

        Below is the patch that implements the suggestion.  Since `man'
        doesn't allow the `-wmac' option to be passed to `groff' by any
        other means, I've had to introduce two new files -- `mdoc.local'
        and `man.local' (to override the files in groff/site-tmac/), and
        the ${LINTIAN_ROOT}/groff-hack directory to hold them.

--- lintian-1.23.36/checks/manpages     2007-10-16 10:40:04.000000000 +0700
+++ lintian-1.23.36-groff-hack/checks/manpages  2007-11-16 00:16:11.000000000 
+0600
@@ -253,10 +253,12 @@
        # processed properly.  (Yes, there are man pages that include other
        # pages with .so but aren't simple links; rbash, for instance.)
        my $cmd;
+       my $groff_dir = "$ENV{'LINTIAN_ROOT'}/groff-hack/";
+       my $man_cmd = "GROFF_TMAC_PATH='$groff_dir' man -l";
        if ($file =~ m,^(.*)/(man\d/.*)$,) {
-           $cmd = "cd unpacked/\Q$1\E && man -l \Q$2\E";
+           $cmd = ("cd unpacked/\Q$1\E && $man_cmd \Q$2\E");
        } else {
-           $cmd = "man -l unpacked/\Q$file\E";
+           $cmd = "$man_cmd unpacked/\Q$file\E";
        }
        my $pid = open MANERRS, '-|';
        if (not defined $pid) {
diff -drHuN --exclude='*~' lintian-1.23.36/debian/rules 
lintian-1.23.36-groff-hack/debian/rules
--- lintian-1.23.36/debian/rules        2006-11-19 07:11:32.000000000 +0600
+++ lintian-1.23.36-groff-hack/debian/rules     2007-11-16 00:11:37.000000000 
+0600
@@ -45,7 +45,7 @@
        install -m 755 frontend/lintian-info $(tmp)/usr/bin/
 # library files
        @echo .... install library files ....
-       for d in checks collection lib unpack; do \
+       for d in checks collection lib unpack groff-hacks; do \
          install -d $(usl)/$$d; \
          find $$d -type f ! -path '*/CVS/*' ! -path '*/.svn/*' \
                | xargs -iFILE cp -p FILE $(usl)/$$d/; \
diff -drHuN --exclude='*~' lintian-1.23.36/groff-hacks/man.local 
lintian-1.23.36-groff-hack/groff-hacks/man.local
--- lintian-1.23.36/groff-hacks/man.local       1970-01-01 07:00:00.000000000 
+0700
+++ lintian-1.23.36-groff-hack/groff-hacks/man.local    2007-11-14 
23:09:47.000000000 +0600
@@ -0,0 +1,2 @@
+.warn 512
+.mso /usr/share/groff/site-tmac/man.local
diff -drHuN --exclude='*~' lintian-1.23.36/groff-hacks/mdoc.local 
lintian-1.23.36-groff-hack/groff-hacks/mdoc.local
--- lintian-1.23.36/groff-hacks/mdoc.local      1970-01-01 07:00:00.000000000 
+0700
+++ lintian-1.23.36-groff-hack/groff-hacks/mdoc.local   2007-11-14 
23:09:48.000000000 +0600
@@ -0,0 +1,2 @@
+.warn 512
+.mso /usr/share/groff/site-tmac/mdoc.local




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

Reply via email to