diff options
author | G. Branden Robinson <g.branden.robinson@gmail.com> | 2023-04-16 04:00:29 -0500 |
---|---|---|
committer | G. Branden Robinson <g.branden.robinson@gmail.com> | 2023-04-16 20:00:47 -0500 |
commit | 16deaeb7d2866a008e9e1d862874b96ede47a07e (patch) | |
tree | b5e0df86685bea929c97311ad2963cee9b6c72a5 /PROBLEMS | |
parent | b6f9f9634d099b45f6875bcbdae79988670c32fd (diff) | |
download | groff-git-16deaeb7d2866a008e9e1d862874b96ede47a07e.tar.gz |
PROBLEMS: Resequence file.
Explain the order that it's in, to aid readers and, I hope, help
maintainers keep it in order.
Still to do: replace Git commit info with groff release info.
Diffstat (limited to 'PROBLEMS')
-rw-r--r-- | PROBLEMS | 1090 |
1 files changed, 588 insertions, 502 deletions
@@ -17,60 +17,43 @@ Problems are organized into categories underscored with equals signs. * Platform-Dependent Macro Problems * Compilation Problems +Within each category, items are organized in reverse chronological order +(that is, with the most recent first). groff version numbers +corresponding to their inclusion in this file are included as +guideposts. Entries have been revised for clarity in the years since. + General Problems ================ +[groff 405fe32847a598962dc3ad8469b9ed0bac4c50ba 2023-03-06] -* Displaying a man page on a terminal with/without my favorite pager - shows garbage. - -groff's terminal output driver, grotty, by default uses ISO 6429/ECMA-48 -escape sequences understood by video terminals and their emulators, -rather than the overstriking sequences implemented for typewriter-like -terminals used in the 1960s and 1970s. These escape sequences control -display attributes like bold and italic or oblique typefaces, -underlining, foreground and background color selection, and hyperlink -marking. Terminal emulators that claim compatibility with the DEC -VT100, Linux console driver, or xterm should ignore well-formed escape -sequences that they are not able to support, but some implementations -are buggy. - -Furthermore, the popular "less" pager by default assumes that its input -will use overstriking sequences. (This is a surprising choice, as users -of paper terminals had no need for pager programs; to "scroll back", the -operator would simply physically pull up the spool of ejected paper to -read it.) less(1) must instead be given the '-R' option to interpret -escape sequences used by video terminals. Be aware that the -overstriking convention is inescapably ambiguous in some output -sequences. See the grotty(1) man page. - -Hyperlink support in terminal emulators is a relatively new initiative -(as of 2022) employing a sequence known as "OSC 8". - https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda +* gdiffmk doesn't work on FreeBSD; I get errors from "expr". -Due to the feature's young age, the man and mdoc macro packages have a -configuration switch for hyperlink support, and it may be disabled in -your site's man.local and mdoc.local files. Use a command like - printf '\033]8;;man:grotty(1)\033\\grotty(1)\033]8;;\033\\\n' | more -to check your terminal and pager for OSC 8 support. If you see -"grotty(1)" and no additional garbage characters, then you may wish to -edit those site files to remove any lines that disable this feature. +gdiffmk uses the expr(1) command to parse its arguments. FreeBSD has +extended the syntax of its expr command in a non-backward compatible way +that it claims better conforms with POSIX's utility syntax guidelines +with respect to option processing: however, POSIX mandates no options +for expr. Other implementations of expr do not support traditional +Unix-style options ('-a', '-b', ...), and perhaps as a consequence do +not follow FreeBSD's interpretation of the guidelines. You way want to +set $EXPR_COMPAT in your shell environment. We hope to have a +workaround for this behavior in a future release. -There are a couple of workarounds if you prefer or require overstriking -sequences rather than ISO 6429/ECMA-48 escape sequences. +---------------------------------------------------------------------- - 1. Set the GROFF_NO_SGR environment variable to any value. +[groff 10274fb69e517b2c4b10fcd0ba3347e5bd0eefd7 2023-02-11] - 2. Pass option '-c' to grotty (that is, add '-P-c' to groff's - command-line options). +* gdiffmk doesn't work / its automated test fails. -The third and probably best option is to use terminal and pager programs -that handle standardized video terminal escape sequences well. +A defect in GNU diffutils 3.9 (January 2023) causes gdiffmk to +malfunction. See <https://debbugs.gnu.org/db/61/61193.html>. ---------------------------------------------------------------------- +[groff 5195c5d7bf8df5478fce6714ea89844e9e228175 2003-07-21] + * When viewing man pages, some characters on my UTF-8 terminal emulator look funny or copy-and-paste wrong. Why? @@ -108,27 +91,58 @@ character escape sequences '\(mi' or '\[mi]'. ---------------------------------------------------------------------- -* gdiffmk doesn't work / its automated test fails. +[groff 5c1dfd65245b5769d514c4b6f78e6272f132e229 2003-07-18] -A defect in GNU diffutils 3.9 (January 2023) causes gdiffmk to -malfunction. See <https://debbugs.gnu.org/db/61/61193.html>. +* Displaying a man page on a terminal with/without my favorite pager + shows garbage. ----------------------------------------------------------------------- +groff's terminal output driver, grotty, by default uses ISO 6429/ECMA-48 +escape sequences understood by video terminals and their emulators, +rather than the overstriking sequences implemented for typewriter-like +terminals used in the 1960s and 1970s. These escape sequences control +display attributes like bold and italic or oblique typefaces, +underlining, foreground and background color selection, and hyperlink +marking. Terminal emulators that claim compatibility with the DEC +VT100, Linux console driver, or xterm should ignore well-formed escape +sequences that they are not able to support, but some implementations +are buggy. -* gdiffmk doesn't work on FreeBSD; I get errors from "expr". +Furthermore, the popular "less" pager by default assumes that its input +will use overstriking sequences. (This is a surprising choice, as users +of paper terminals had no need for pager programs; to "scroll back", the +operator would simply physically pull up the spool of ejected paper to +read it.) less(1) must instead be given the '-R' option to interpret +escape sequences used by video terminals. Be aware that the +overstriking convention is inescapably ambiguous in some output +sequences. See the grotty(1) man page. -gdiffmk uses the expr(1) command to parse its arguments. FreeBSD has -extended the syntax of its expr command in a non-backward compatible way -that it claims better conforms with POSIX's utility syntax guidelines -with respect to option processing: however, POSIX mandates no options -for expr. Other implementations of expr do not support traditional -Unix-style options ('-a', '-b', ...), and perhaps as a consequence do -not follow FreeBSD's interpretation of the guidelines. You way want to -set $EXPR_COMPAT in your shell environment. We hope to have a -workaround for this behavior in a future release. +Hyperlink support in terminal emulators is a relatively new initiative +(as of 2022) employing a sequence known as "OSC 8". + https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda + +Due to the feature's young age, the man and mdoc macro packages have a +configuration switch for hyperlink support, and it may be disabled in +your site's man.local and mdoc.local files. Use a command like + printf '\033]8;;man:grotty(1)\033\\grotty(1)\033]8;;\033\\\n' | more +to check your terminal and pager for OSC 8 support. If you see +"grotty(1)" and no additional garbage characters, then you may wish to +edit those site files to remove any lines that disable this feature. + +There are a couple of workarounds if you prefer or require overstriking +sequences rather than ISO 6429/ECMA-48 escape sequences. + + 1. Set the GROFF_NO_SGR environment variable to any value. + + 2. Pass option '-c' to grotty (that is, add '-P-c' to groff's + command-line options). + +The third and probably best option is to use terminal and pager programs +that handle standardized video terminal escape sequences well. ---------------------------------------------------------------------- +[groff 1.16] + * My document says that the current year is 19100, not 2000. In groff, as in traditional troff, the yr number register yields the @@ -153,94 +167,7 @@ or, if you want to be portable to older troff versions, as follows: ---------------------------------------------------------------------- -* groff can't handle my troff document. It works fine with AT&T - troff. - -Read the section on incompatibilities in groff_diff(7). Try using the --C option. Alternatively there's the sed script `tmac/fixmacros.sed' -which attempts to edit a file of macros so that it can be used with -groff without the -C flag. - ----------------------------------------------------------------------- - -* gtroff doesn't understand lines like `.ce99' with no space between - the name of the request or macro and the arguments. - -gtroff requires a space between macro or request and its arguments -because it allows the use of long names for macros and requests. You -can use the -C option or the `cp' request to put gtroff into a -compatibility mode in which it is not possible to use long names for -macros but in which no space is required between macros and their -arguments. The use of compatibility mode is strongly discouraged. - ----------------------------------------------------------------------- - -* groff -Tdvi produces dvi files that use fonts at weird - magnifications. - -Yes, it does. You may need to compile fonts with Metafont at these -magnifications. The CompileFonts script in the devdvi/generate -directory may help you to do this. (It takes a *long* time on slow -computers.) - ----------------------------------------------------------------------- - -* Groff doesn't use the font names I'm used to. - -Use the `ftr' request. See groff_diff(7). - ----------------------------------------------------------------------- - -* gpic output is not centered horizontally; pictures sometimes run off - the bottom of the page. - -The macro package you are using is not supplying appropriate -definitions of PS and PE. Give groff a -mpic option. - ----------------------------------------------------------------------- - -* gpic doesn't accept the syntax `chop N M' for chopping both ends of - a line. - -The correct syntax is `chop N chop M'. - ----------------------------------------------------------------------- - -* With gpic -t, when I print `line ->; box' using a dvi to ps program, - the arrow head sticks through into the inside of the box. - -The dvi to ps program should be modified to set the line cap and line -join parameters to 1 while printing tpic specials. - ----------------------------------------------------------------------- - -* gtroff gives warnings about lines like - .ev \" a comment - (with a tab after the .ev). - -A tab character cannot be used as a substitute for a space character -(except in one case: between a control character at the beginning of a -line and the name of a macro or request). For example, in Unix troff - - .ps \" restore the previous point size - -(with a tab after the .ps) does NOT restore the previous point-size; -instead it is silently ignored. Since this is very likely to be an -error, gtroff can give a warning about it. If you want to align -comments, you can do it like this: - - .ev\" \" a comment - ----------------------------------------------------------------------- - -* I don't like the page headers and footers produced by groff -man. - -There seem to be many different styles of page header and footer -produced by different versions of the -man macros. You need to put -modified macros from tmac/an.tmac into man.local. More information is -available in groff_man(7). - ----------------------------------------------------------------------- +[groff 1.09] * Where can I get grap? @@ -274,33 +201,7 @@ in the \n[rst] and \n[rsb] registers; these are groff extensions. ---------------------------------------------------------------------- -* While formatting a manual page, groff complains about not being able - to break lines. A line like the following seems to cause this. - .TP \w'label'+2 - -The groff_man(7) man page says that the default scaling unit for the -`TP` macro is 'n' (ens), and that is how the groff man macros are -implemented. Consequently, the macro argument above is evaluated -equivalently to this expression. - - \w'label'n+2n - -AT&T troff's man macros don't implement this correctly (probably because -it's hard to do in that troff); instead, they append 'n' to the entire -argument, so that it is evaluated as if it were written as follows. - - \w'label'u+2n - -The solution is to fix the manual page. - - .TP \w'label'u+2 - -It might be better still to avoid such computations in macro arguments, -however; programs that are not *roff formatters that attempt to -interpret man pages can lack the ability to interpret numeric -expressions. See section "Portability" of groff_man_style(7). - ----------------------------------------------------------------------- +[groff 1.08] * I'm having problems formatting man pages produced by the perl wrapman script. @@ -383,6 +284,8 @@ following patch: ---------------------------------------------------------------------- +[groff 1.07] + * groff uses up an enormous amount of memory processing large files. I'm using 386BSD 0.1. @@ -418,6 +321,156 @@ and recompile groff: else exprstmt = 0; +---------------------------------------------------------------------- + +[groff 1.06] + +* groff can't handle my troff document. It works fine with AT&T + troff. + +Read the section on incompatibilities in groff_diff(7). Try using the +-C option. Alternatively there's the sed script `tmac/fixmacros.sed' +which attempts to edit a file of macros so that it can be used with +groff without the -C flag. + +---------------------------------------------------------------------- + +* groff -Tdvi produces dvi files that use fonts at weird + magnifications. + +Yes, it does. You may need to compile fonts with Metafont at these +magnifications. The CompileFonts script in the devdvi/generate +directory may help you to do this. (It takes a *long* time on slow +computers.) + +---------------------------------------------------------------------- + +[groff 1.01] + +* gpic output is not centered horizontally; pictures sometimes run off + the bottom of the page. + +The macro package you are using is not supplying appropriate +definitions of PS and PE. Give groff a -mpic option. + +---------------------------------------------------------------------- + +* Groff doesn't use the font names I'm used to. + +Use the `ftr' request. See groff_diff(7). + +---------------------------------------------------------------------- + +* I get errors using the Unix -ms macros with groff -e -C. + +Apply this change: + +*** /usr/lib/ms/ms.eqn Tue Apr 25 02:14:28 1989 +--- ms.eqn Sun Nov 11 10:33:59 1990 +*************** +*** 22,29 **** + .. + . \" EN - end of a displayed equation + .de EN +! .if !\\*(10 .br + .di + .rm EZ + .nr ZN \\n(dn + .if \\n(ZN>0 .if \\n(YE=0 .LP +--- 22,30 ---- + .. + . \" EN - end of a displayed equation + .de EN +! .if \\n(.k>0 .br + .di ++ .ds 10 \\*(EZ\\ + .rm EZ + .nr ZN \\n(dn + .if \\n(ZN>0 .if \\n(YE=0 .LP + +---------------------------------------------------------------------- + +* gpic doesn't accept the syntax `chop N M' for chopping both ends of + a line. + +The correct syntax is `chop N chop M'. + +---------------------------------------------------------------------- + +* With gpic -t, when I print `line ->; box' using a dvi to ps program, + the arrow head sticks through into the inside of the box. + +The dvi to ps program should be modified to set the line cap and line +join parameters to 1 while printing tpic specials. + +---------------------------------------------------------------------- + +* gtroff doesn't understand lines like `.ce99' with no space between + the name of the request or macro and the arguments. + +gtroff requires a space between macro or request and its arguments +because it allows the use of long names for macros and requests. You +can use the -C option or the `cp' request to put gtroff into a +compatibility mode in which it is not possible to use long names for +macros but in which no space is required between macros and their +arguments. The use of compatibility mode is strongly discouraged. + +---------------------------------------------------------------------- + +* gtroff gives warnings about lines like + .ev \" a comment + (with a tab after the .ev). + +A tab character cannot be used as a substitute for a space character +(except in one case: between a control character at the beginning of a +line and the name of a macro or request). For example, in Unix troff + + .ps \" restore the previous point size + +(with a tab after the .ps) does NOT restore the previous point-size; +instead it is silently ignored. Since this is very likely to be an +error, gtroff can give a warning about it. If you want to align +comments, you can do it like this: + + .ev\" \" a comment + +---------------------------------------------------------------------- + +* I don't like the page headers and footers produced by groff -man. + +There seem to be many different styles of page header and footer +produced by different versions of the -man macros. You need to put +modified macros from tmac/an.tmac into man.local. More information is +available in groff_man(7). + +---------------------------------------------------------------------- + +* While formatting a manual page, groff complains about not being able + to break lines. A line like the following seems to cause this. + .TP \w'label'+2 + +The groff_man(7) man page says that the default scaling unit for the +`TP` macro is 'n' (ens), and that is how the groff man macros are +implemented. Consequently, the macro argument above is evaluated +equivalently to this expression. + + \w'label'n+2n + +AT&T troff's man macros don't implement this correctly (probably because +it's hard to do in that troff); instead, they append 'n' to the entire +argument, so that it is evaluated as if it were written as follows. + + \w'label'u+2n + +The solution is to fix the manual page. + + .TP \w'label'u+2 + +It might be better still to avoid such computations in macro arguments, +however; programs that are not *roff formatters that attempt to +interpret man pages can lack the ability to interpret numeric +expressions. See section "Portability" of groff_man_style(7). + Printing and Display Problems @@ -425,6 +478,56 @@ Printing and Display Problems +[groff 1.09] + +* How can I use groff with an old LaserJet printer that doesn't work + with groff -Tlj4? + +You have at least 3 options: + +- use groff -Tps with GNU Ghostscript; + +- use groff -Tdvi with a TeX .dvi to LaserJet driver; + +- use groff with the LaserJet driver in Chris Lewis' psroff package + (available for ftp from: + ftp.uunet.ca:/distrib/chris_lewis/psroff3.0pl17). + +---------------------------------------------------------------------- + +* Groff seems to generate level 3 Postscript, but my printer is only a + level 1 or 2 PostScript printer. + +In fact groff generates only level 2 PostScript (or rather level 1 +with some extensions; see grops(1) for more information how to disable +them). The `%!PS-Adobe-3.0' comment at the beginning of PostScript +output generated by groff indicates that the file conforms to version +3.0 of the Adobe Document Structuring Conventions. The output +generated by groff should be printable on any PostScript printer. +Problems with groff output's not printing are most often caused by the +spooling system. + +---------------------------------------------------------------------- + +[groff 1.04] + +* When I try to run gxditview, I get the error: + Error: Widget viewport has zero width and/or height + +This error means you haven't correctly installed the application +defaults file, GXditview.ad; `make install' does this for you +automatically, so either you didn't do `make install', or you haven't +passed a good `--appdefdir=<DIR>' argument to groff's configure +script. + +See the X(7) man page for information how and where application +defaults files have to be located. Look for the XAPPLRESDIR and +XUSERFILESEARCHPATH environment variables. + +---------------------------------------------------------------------- + +[groff 1.01] + * I'm having problems including PostScript illustrations (EPS) using the PSPIC macro and/or \X'ps: import ...'. @@ -484,29 +587,6 @@ Make sure that the paper format is "letter". See groff_tmac(5). ---------------------------------------------------------------------- -* When I try to run gxditview, I get the error: - Error: Widget viewport has zero width and/or height - -This error means you haven't correctly installed the application -defaults file, GXditview.ad; `make install' does this for you -automatically, so either you didn't do `make install', or you haven't -passed a good `--appdefdir=<DIR>' argument to groff's configure -script. - -See the X(7) man page for information how and where application -defaults files have to be located. Look for the XAPPLRESDIR and -XUSERFILESEARCHPATH environment variables. - ----------------------------------------------------------------------- - -* When I preview documents using -TX75 or -TX100, the layout is not - the same as when I print the document with -Tps: the line and page - breaks come in different places. - -Use `groff -X -Tps'. - ----------------------------------------------------------------------- - * When I try to print the output of groff -Tps, I get no output at all from the printer, and the log file shows the error %%[ error: undefined; offendingcommand: BP ]%% @@ -543,32 +623,11 @@ files produced by TeX. Try getting a more up to date driver. ---------------------------------------------------------------------- -* How can I use groff with an old LaserJet printer that doesn't work - with groff -Tlj4? - -You have at least 3 options: - -- use groff -Tps with GNU Ghostscript; - -- use groff -Tdvi with a TeX .dvi to LaserJet driver; - -- use groff with the LaserJet driver in Chris Lewis' psroff package - (available for ftp from: - ftp.uunet.ca:/distrib/chris_lewis/psroff3.0pl17). - ----------------------------------------------------------------------- - -* Groff seems to generate level 3 Postscript, but my printer is only a - level 1 or 2 PostScript printer. +* When I preview documents using -TX75 or -TX100, the layout is not + the same as when I print the document with -Tps: the line and page + breaks come in different places. -In fact groff generates only level 2 PostScript (or rather level 1 -with some extensions; see grops(1) for more information how to disable -them). The `%!PS-Adobe-3.0' comment at the beginning of PostScript -output generated by groff indicates that the file conforms to version -3.0 of the Adobe Document Structuring Conventions. The output -generated by groff should be printable on any PostScript printer. -Problems with groff output's not printing are most often caused by the -spooling system. +Use `groff -X -Tps'. @@ -577,11 +636,7 @@ Platform-Dependent Macro Problems -* I get lots of errors when I use groff with the AT&T -mm macros. - -Use the groff -mm macros. - ----------------------------------------------------------------------- +[groff 92feb549bb17ba935188f5a3f123ce30ced54311 2001-04-13] * groff produces wrapper macros for `ms' and friends which call the system's original macros. Then, to get groff's ms macro package I @@ -596,75 +651,7 @@ macros. ---------------------------------------------------------------------- -* I'm having problems formatting HP-UX 9.0 man pages with groff -man. - -Copy HP's tmac.an into /usr/local/share/groff/site-tmac/an.tmac, and -either put `.cp 1' at the beginning or filter it (and any files it -.so's) through tmac/fixmacros.sed. - ----------------------------------------------------------------------- - -* I get errors using the Unix -ms macros with groff -e -C. - -Apply this change: - -*** /usr/lib/ms/ms.eqn Tue Apr 25 02:14:28 1989 ---- ms.eqn Sun Nov 11 10:33:59 1990 -*************** -*** 22,29 **** - .. - . \" EN - end of a displayed equation - .de EN -! .if !\\*(10 .br - .di - .rm EZ - .nr ZN \\n(dn - .if \\n(ZN>0 .if \\n(YE=0 .LP ---- 22,30 ---- - .. - . \" EN - end of a displayed equation - .de EN -! .if \\n(.k>0 .br - .di -+ .ds 10 \\*(EZ\\ - .rm EZ - .nr ZN \\n(dn - .if \\n(ZN>0 .if \\n(YE=0 .LP - ----------------------------------------------------------------------- - -* I'm having problems formatting Ultrix man pages with groff -man. - -The Ultrix man pages use a number of non-standard extensions to the -Unix man macros. One solution is to use the Ultrix -man macros with -groff. Copy /usr/lib/tmac/tmac.an to -/usr/local/share/groff/site-tmac/an.tmac and apply the following patch -(from Frank Wortner): - -*** /usr/local/lib/groff/tmac/tmac.an Wed Sep 9 12:29:28 1992 ---- /usr/lib/tmac/tmac.an Fri Jul 24 19:58:19 1992 -*************** -*** 489,495 **** - . \" make special case of shift out of italic - .de }S - .ds ]F -! .if \\$12 .if !\\$5 .ds ]F \^ - .ie !\\$4 .}S \\$2 \\$1 "\\$3\f\\$1\\$4\\*(]F" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9" - .el \\$3 - .}f ---- 489,495 ---- - . \" make special case of shift out of italic - .de }S - .ds ]F -! .if \\$12 .if !\\$5 .ds ]F\^ - .ie !\\$4 .}S \\$2 \\$1 "\\$3\f\\$1\\$4\\*(]F" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9" - .el \\$3 - .}f - -Another possible solution is to install tmac/man.ultrix as -/usr/local/share/groff/site-tmac/man.local. - ----------------------------------------------------------------------- +[groff 1.09] * On an SGI system, how can I make the man command use groff? @@ -743,86 +730,95 @@ To get PostScript output from `man -t', you also need to create a ! # probably not wanted. ! exec groff -Wall $T $opts $rest +---------------------------------------------------------------------- +[groff 1.08] -Compilation Problems -==================== +* I'm having problems formatting HP-UX 9.0 man pages with groff -man. +Copy HP's tmac.an into /usr/local/share/groff/site-tmac/an.tmac, and +either put `.cp 1' at the beginning or filter it (and any files it +.so's) through tmac/fixmacros.sed. +---------------------------------------------------------------------- -* I get warnings from afmtodit about names already being mapped. +[groff 1.07] -afmtodit: AGL name 'Delta' already mapped to groff name '*D'; ignoring AGL name 'uni0394' +* I'm having problems formatting Ultrix man pages with groff -man. -You can ignore these if they're in the form shown above, where the -ignored AGL name is 'uniXXXX' and 'XXXX' is four hexadecimal digits. -The Adobe Glyph List (AGL) has its own names for glyphs; they are often -different from groff's special character names. The afmtodit program is -constructing a mapping from groff special character names to AGL names; -this can be a one-to-one or many-to-one mapping, but one-to-many will -not work, so afmtodit discards the excessive mappings. The example you -see above is telling you that the groff font description that afmtodit -is writing cannot map the groff special character '*D' to both 'Delta' -and 'uni0394'. +The Ultrix man pages use a number of non-standard extensions to the +Unix man macros. One solution is to use the Ultrix -man macros with +groff. Copy /usr/lib/tmac/tmac.an to +/usr/local/share/groff/site-tmac/an.tmac and apply the following patch +(from Frank Wortner): -Which, if any, such warnings you see depends on the version of the URW -fonts you are building groff against. See the '--with-urw-fonts-dir' -option to the "configure" script, and the afmtodit(1) and groff_char(7) -man pages for more background. +*** /usr/local/lib/groff/tmac/tmac.an Wed Sep 9 12:29:28 1992 +--- /usr/lib/tmac/tmac.an Fri Jul 24 19:58:19 1992 +*************** +*** 489,495 **** + . \" make special case of shift out of italic + .de }S + .ds ]F +! .if \\$12 .if !\\$5 .ds ]F \^ + .ie !\\$4 .}S \\$2 \\$1 "\\$3\f\\$1\\$4\\*(]F" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9" + .el \\$3 + .}f +--- 489,495 ---- + . \" make special case of shift out of italic + .de }S + .ds ]F +! .if \\$12 .if !\\$5 .ds ]F\^ + .ie !\\$4 .}S \\$2 \\$1 "\\$3\f\\$1\\$4\\*(]F" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9" + .el \\$3 + .}f + +Another possible solution is to install tmac/man.ultrix as +/usr/local/share/groff/site-tmac/man.local. ---------------------------------------------------------------------- -* I get warnings about special characters in the groff_char(7) man page. +[groff 1.01] -troff:man/groff_char.7:1000: warning: can't find special character '.j' -troff:man/groff_char.7:1407: warning: can't find special character 'vA' -troff:man/groff_char.7:1531: warning: can't find special character 'bs' -troff:man/groff_char.7:1697: warning: can't find special character '-+' -troff:man/groff_char.7:1746: warning: can't find special character 'coproduct' -troff:man/groff_char.7:1839: warning: can't find special character '+e' +* I get lots of errors when I use groff with the AT&T -mm macros. -You can ignore these. groff defines a handful of special characters for -which historical PostScript fonts usually did not possess glyphs. -Except for 'bs' (the Bell System logo), we hope to provide fallbacks or -a supplementary PostScript font in groff in the future (as was done for -the Euro glyph). +Use the groff -mm macros. ----------------------------------------------------------------------- -* I get warnings about the "vasnprintf" function. -lib/vasnprintf.c: In function 'vasnprintf': -lib/vasnprintf.c:5268:27: warning: format not a string literal, argument types not checked [-Wformat-nonliteral] -(and similar) +Compilation Problems +==================== -The groff source tree includes gnulib, the GNU portability library -<https://www.gnu.org/software/gnulib/>. These warnings are about its -source code and that project's responsibility to resolve. We expect a -future release of gnulib to do so. ----------------------------------------------------------------------- -* I get a lot of warnings about "sprintf" on macOS. +[groff c70e3c4bfbb202f9f6a2ae1426637550ed8de023 2023-03-06] -Apple has decided to treat the sprintf() standard C library function as -deprecated even though the C standard itself has not. +* The "initialization_is_quiet" test fails on my GNU/Hurd or NetBSD box. -https://developer.apple.com/forums/thread/714675 +This is a known problem. We haven't tracked down the cause yet, but +have improved the reporting of the test output in hopes that we can +isolate it in a future release. ---------------------------------------------------------------------- -* I get a make(1) failure involving grep and the groff_man.7.man.in file - on Solaris 11. +[groff 4fecf105c34ee7e3ed24f494bd4217b7237c5859 2023-02-25] -Solaris make(1) has a bug easily exhibited by the following Makefile. +* I get a build failure on Cygwin / a system using newlib and GCC 11. -all: - ! false + "newlib" defines a function called "utoa" which conflicts with a + static (file scope-local) function in src/libs/libxutil/XFontName.c. -Use GNU make instead; it may be available in /opt/csw/bin/gmake. + We expect to fix this in the near future; in the meantime, you can + patch the file to rename the function (and update its call sites) or, + if you don't require the "gxditview" output previewer or "xtotroff" + utility, you can build groff without X11 support. + + $ make distclean + $ ./configure --without-x ---------------------------------------------------------------------- +[groff 434e2b0606ade1736437d8a9be43e8852895c71d 2023-02-22] + * The "check-default-foundry" test fails when I run "make check". Your Ghostscript installation may have its fonts embedded in the @@ -840,14 +836,31 @@ overcome this problem. ---------------------------------------------------------------------- -* The "initialization_is_quiet" test fails on my GNU/Hurd or NetBSD box. +[groff 3b04beb92e63cb9d108256ca37cc92446966c89a 2023-02-19] -This is a known problem. We haven't tracked down the cause yet, but -have improved the reporting of the test output in hopes that we can -isolate it in a future release. +* I get a lot of warnings about "sprintf" on macOS. + +Apple has decided to treat the sprintf() standard C library function as +deprecated even though the C standard itself has not. + +https://developer.apple.com/forums/thread/714675 ---------------------------------------------------------------------- +* I get a make(1) failure involving grep and the groff_man.7.man.in file + on Solaris 11. + +Solaris make(1) has a bug easily exhibited by the following Makefile. + +all: + ! false + +Use GNU make instead; it may be available in /opt/csw/bin/gmake. + +---------------------------------------------------------------------- + +[groff 19afc98d213c86504a5475786987c6f86c6817fa 2023-02-09] + * Tests fail when I run "make check" on Solaris 10 or 11. The test suite expects a POSIX-conforming shell and utilities. Solaris @@ -922,21 +935,32 @@ Some test failures remain expected on Solaris 10. ---------------------------------------------------------------------- -* I get a build failure on Cygwin / a system using newlib and GCC 11. +[groff 1f4817f375354f062d3b4fdfbc0c52e2676e267b 2022-07-15] - "newlib" defines a function called "utoa" which conflicts with a - static (file scope-local) function in src/libs/libxutil/XFontName.c. +* I get warnings from afmtodit about names already being mapped. - We expect to fix this in the near future; in the meantime, you can - patch the file to rename the function (and update its call sites) or, - if you don't require the "gxditview" output previewer or "xtotroff" - utility, you can build groff without X11 support. +afmtodit: AGL name 'Delta' already mapped to groff name '*D'; ignoring AGL name 'uni0394' - $ make distclean - $ ./configure --without-x +You can ignore these if they're in the form shown above, where the +ignored AGL name is 'uniXXXX' and 'XXXX' is four hexadecimal digits. +The Adobe Glyph List (AGL) has its own names for glyphs; they are often +different from groff's special character names. The afmtodit program is +constructing a mapping from groff special character names to AGL names; +this can be a one-to-one or many-to-one mapping, but one-to-many will +not work, so afmtodit discards the excessive mappings. The example you +see above is telling you that the groff font description that afmtodit +is writing cannot map the groff special character '*D' to both 'Delta' +and 'uni0394'. + +Which, if any, such warnings you see depends on the version of the URW +fonts you are building groff against. See the '--with-urw-fonts-dir' +option to the "configure" script, and the afmtodit(1) and groff_char(7) +man pages for more background. ---------------------------------------------------------------------- +[groff 49b611f1135cbf7f18b656bb445a291d48dd5c86 2022-05-22] + * I am building from the Git repository, using 'autoreconf' from a GNU Autoconf release earlier than 2.69, and I get this. @@ -951,6 +975,152 @@ Ignore this. It doesn't occur in more recent versions of 'autoreconf'. ---------------------------------------------------------------------- +[groff 0d371991136a081c57131cad87380cc4aef64169 2022-05-15] + +* I get warnings about special characters in the groff_char(7) man page. + +troff:man/groff_char.7:1000: warning: can't find special character '.j' +troff:man/groff_char.7:1407: warning: can't find special character 'vA' +troff:man/groff_char.7:1531: warning: can't find special character 'bs' +troff:man/groff_char.7:1697: warning: can't find special character '-+' +troff:man/groff_char.7:1746: warning: can't find special character 'coproduct' +troff:man/groff_char.7:1839: warning: can't find special character '+e' + +You can ignore these. groff defines a handful of special characters for +which historical PostScript fonts usually did not possess glyphs. +Except for 'bs' (the Bell System logo), we hope to provide fallbacks or +a supplementary PostScript font in groff in the future (as was done for +the Euro glyph). + +---------------------------------------------------------------------- + +* I get warnings about the "vasnprintf" function. + +lib/vasnprintf.c: In function 'vasnprintf': +lib/vasnprintf.c:5268:27: warning: format not a string literal, argument types not checked [-Wformat-nonliteral] +(and similar) + +The groff source tree includes gnulib, the GNU portability library +<https://www.gnu.org/software/gnulib/>. These warnings are about its +source code and that project's responsibility to resolve. We expect a +future release of gnulib to do so. + +---------------------------------------------------------------------- + +[groff 8a4d69839faa14deb1a5a204e7c28fd85806511c 2015-12-26] + +* When compiling on NetBSD, make issues warnings like + + Warning: line 28: Unable to locate font(s) + URWGothicL-Demi,a010015l.pfb on the given path(s) + + and + + Warning: line 77: Failed to create groff font 'U-AB' by running + afmtodit + +In this case install the package "urw-fonts": + + pkgin install urw-fonts + +and make the font path known to ghostscript, e.g. with (ksh): + + export GS_LIB=/usr/pkg/share/fonts/urw + +---------------------------------------------------------------------- + +* Currently (December 2015) building groff fails on NetBSD and + FreeBSD with the message: + + make[1]: don't know how to make contrib/chem/chem.1. Stop + +The reason is a bug in the make(1) tool used on those systems related +to .SUFFIXES lines. + +A temporary workaround is to change the Makefile line + + .SUFFIXES: .roff .in .ps .mom .pdf .me .ms .ps .html .txt .texi \ + .dvi .pdf .xhtml .man .c .cpp .log .o .obj .sed .sin \ + .test .test$(EXEEXT) .trs .ypp + +into + + .SUFFIXES: .man .roff .in .ps .mom .pdf .me .ms .ps .html .txt \ + .texi .dvi .pdf .xhtml .c .cpp .log .o .obj .sed .sin \ + .test .test$(EXEEXT) .trs .ypp + +(put .man at begin of the list). + +The bug is reported to the maintainer of the make(1) tool of those +systems. + +---------------------------------------------------------------------- + +[groff dfdf0c0bb887010bd0047409c954e5d7a6d55d05 2014-09-04] + +* Configuration on MacOS X 10.6 doesn't succeed. + +Use + + ./configure CXX=g++-4.2 + +---------------------------------------------------------------------- + +[groff 6b3c51ebb4e3dbcb294f9c23d9ec0624b5beb4ee 2010-01-23] + +* In MacOS X, I want to completely replace the groff that came with + the system. + +Use + + ./configure --prefix=/usr --mandir=/usr/share/man + +then + + make + make install + +Note that subsequent system updates may replace your groff. + +---------------------------------------------------------------------- + +[groff 26f1dfcd080e834617302c7a94423d02d17e15a7 2004-05-25] + +* I get warnings from the Sun linker while using gcc 3.4.0: + + ld: warning: relocation error: R_SPARC_UA32: + file groff/src/libs/libgroff/libgroff.a(getopt.o): symbol optarg: + external symbolic relocation against non-allocatable + section .debug_info; cannot be processed at runtime: + relocation ignored + +This seems to be a known problem (Sun bugs #4910101 and #4910810, +filed in September 2003; gcc bug #15599, filed May 2004) without a +public fix as of this writing. A work-around is to use option +`-gstabs+' instead of `-g' (and a high probability that the output is +only debuggable with gdb but not with Sun's debuggers). + +---------------------------------------------------------------------- + +[groff ee83e4fd48e50d10967b02e06f128a1452f183b7 2002-11-07] + +* When compiling on MacOS X 10.2, groff compiles but does not run + well, especially `eqn', causing many `can't break line' messages. + +Use + + ./configure CXX=g++2 + +then + + make + +as usual. + +---------------------------------------------------------------------- + +[groff 3371324496b9ba0efb65e0c66340ca7f99a8bb56 2002-02-07] + * Compilation dies with y.tab.c: In function `int yyparse()': @@ -965,11 +1135,7 @@ byacc. ---------------------------------------------------------------------- -* There are many empty `Makefile.dep' files. Is this a bug? - -No. Real dependency files are created with a `make depend' call. - ----------------------------------------------------------------------- +[groff e73d5afff5595b13052180c8cc5f402bff39131e 2000-12-06] * On HP-UX, the compiler complains about missing symbol `alloca'. @@ -981,6 +1147,39 @@ before starting the configure script. ---------------------------------------------------------------------- +[groff 2e836ac7d3d9264efb9ae5a06bfe8c7149e22eac 2000-07-21] + +* On a host using Unix make (e.g. Solaris), if you are compiling for + multiple architectures by building in a subdirectory, the make stops + with a message like this: + + make: Fatal error: Don't know how to make target `assert.o' + + or like this: + + make: Fatal error: Can't find /u/src/groff/src/include/Makefile.sub': No such file or directory + +This occurs because GNU make and Unix make handle VPATH differently, +and the groff build relies on GNU make's VPATH handling. + +Use GNU make <http://www.gnu.org/software/make/> to work around this. +In Solaris 8 and 9, GNU make is on the Software Companion CD in +package SFWgmake and is installed as /opt/sfw/bin/gmake. Prebuilt +versions of GNU make for Solaris are also available from +sunfreeware.com. + +---------------------------------------------------------------------- + +[groff 5af19087eef2de233075c39a1479e11c8fcbe3e9 2000-05-28] + +* There are many empty `Makefile.dep' files. Is this a bug? + +No. Real dependency files are created with a `make depend' call. + +---------------------------------------------------------------------- + +[groff fbd6cbb8ac7a42fdf219ff087b5b1e98cdeb7c68 2000-04-30] + * The configure script fails on OS/390 (z/OS) Unix. [This has been fixed in z/OS V1R3 (aka OS/390 R13).] @@ -1019,46 +1218,17 @@ destructors do actually work properly): ---------------------------------------------------------------------- -* I get errors when I try to compile groff with DEC C++. - -Fix the declaration of write() in <unistd.h> so that the second -argument is a const char *. Fix the declaration of open() in -<sys/file.h> so that the first argument is a const char *. - ----------------------------------------------------------------------- +[groff 1.15] -* On a host using Unix make (e.g. Solaris), if you are compiling for - multiple architectures by building in a subdirectory, the make stops - with a message like this: - - make: Fatal error: Don't know how to make target `assert.o' - - or like this: - - make: Fatal error: Can't find /u/src/groff/src/include/Makefile.sub': No such file or directory - -This occurs because GNU make and Unix make handle VPATH differently, -and the groff build relies on GNU make's VPATH handling. +* I get errors when I try to compile groff with Forte Development 6 + or 6u1, or Sun C++ version 5.0 through 5.2. -Use GNU make <http://www.gnu.org/software/make/> to work around this. -In Solaris 8 and 9, GNU make is on the Software Companion CD in -package SFWgmake and is installed as /opt/sfw/bin/gmake. Prebuilt -versions of GNU make for Solaris are also available from -sunfreeware.com. +This is a known problem; see Sun bug #4301919. See Sun patches +109482, 109490, 109508, and 109509 for fixes. ---------------------------------------------------------------------- -* On Ultrix, the make program stops with the message - - *** Error code 1 - - Stop. - - for no apparent reason. - -Use GNU make. - ----------------------------------------------------------------------- +[groff 1.08] * I'm having problems compiling groff on 386BSD 0.1. @@ -1098,6 +1268,30 @@ instead. ---------------------------------------------------------------------- +[groff 1.07] + +* I get errors when I try to compile groff with DEC C++. + +Fix the declaration of write() in <unistd.h> so that the second +argument is a const char *. Fix the declaration of open() in +<sys/file.h> so that the first argument is a const char *. + +---------------------------------------------------------------------- + +* On Ultrix, the make program stops with the message + + *** Error code 1 + + Stop. + + for no apparent reason. + +Use GNU make. + +---------------------------------------------------------------------- + +[groff 1.01] + * I get errors when I try to compile groff with Sun C++ version 3 or earlier. @@ -1117,115 +1311,7 @@ to be `void (*)(int)'. You can either change them in place, or copy them to some other directory and include that directory with a -I option. ----------------------------------------------------------------------- - -* I get errors when I try to compile groff with Forte Development 6 - or 6u1, or Sun C++ version 5.0 through 5.2. - -This is a known problem; see Sun bug #4301919. See Sun patches -109482, 109490, 109508, and 109509 for fixes. - ----------------------------------------------------------------------- - -* I get warnings from the Sun linker while using gcc 3.4.0: - - ld: warning: relocation error: R_SPARC_UA32: - file groff/src/libs/libgroff/libgroff.a(getopt.o): symbol optarg: - external symbolic relocation against non-allocatable - section .debug_info; cannot be processed at runtime: - relocation ignored - -This seems to be a known problem (Sun bugs #4910101 and #4910810, -filed in September 2003; gcc bug #15599, filed May 2004) without a -public fix as of this writing. A work-around is to use option -`-gstabs+' instead of `-g' (and a high probability that the output is -only debuggable with gdb but not with Sun's debuggers). - ----------------------------------------------------------------------- - -* In MacOS X, I want to completely replace the groff that came with - the system. - -Use - - ./configure --prefix=/usr --mandir=/usr/share/man - -then - - make - make install - -Note that subsequent system updates may replace your groff. - ----------------------------------------------------------------------- - -* When compiling on MacOS X 10.2, groff compiles but does not run - well, especially `eqn', causing many `can't break line' messages. - -Use - - ./configure CXX=g++2 - -then - - make - -as usual. - ----------------------------------------------------------------------- - -* Configuration on MacOS X 10.6 doesn't succeed. - -Use - - ./configure CXX=g++-4.2 - ----------------------------------------------------------------------- - -* When compiling on NetBSD, make issues warnings like - - Warning: line 28: Unable to locate font(s) - URWGothicL-Demi,a010015l.pfb on the given path(s) - - and - - Warning: line 77: Failed to create groff font 'U-AB' by running - afmtodit - -In this case install the package "urw-fonts": - pkgin install urw-fonts - -and make the font path known to ghostscript, e.g. with (ksh): - - export GS_LIB=/usr/pkg/share/fonts/urw - ----------------------------------------------------------------------- - -* Currently (December 2015) building groff fails on NetBSD and - FreeBSD with the message: - - make[1]: don't know how to make contrib/chem/chem.1. Stop - -The reason is a bug in the make(1) tool used on those systems related -to .SUFFIXES lines. - -A temporary workaround is to change the Makefile line - - .SUFFIXES: .roff .in .ps .mom .pdf .me .ms .ps .html .txt .texi \ - .dvi .pdf .xhtml .man .c .cpp .log .o .obj .sed .sin \ - .test .test$(EXEEXT) .trs .ypp - -into - - .SUFFIXES: .man .roff .in .ps .mom .pdf .me .ms .ps .html .txt \ - .texi .dvi .pdf .xhtml .c .cpp .log .o .obj .sed .sin \ - .test .test$(EXEEXT) .trs .ypp - -(put .man at begin of the list). - -The bug is reported to the maintainer of the make(1) tool of those -systems. ##### Editor settings Local Variables: |