-$Id: NEWS,v 1.11 2016/07/07 23:46:36 schwarze Exp $
+$Id: NEWS,v 1.22 2017/06/23 15:58:14 schwarze Exp $
-This file lists the most important changes in the mdocml.bsd.lv distribution.
+This file lists the most important changes in the mandoc.bsd.lv distribution.
-Changes in version 1.13.4, to be released on July XXX, 2016
+Changes in version 1.14.1, released on February 21, 2017
+
+ --- MAJOR NEW FEATURES ---
+ * apropos(1): Reimplement complete semantic search functionality
+ without the dependency on SQLite3, using only POSIX APIs.
+ This comes with a completely new mandoc.db(5) file format.
+ * man(1): Support more than one tag entry for the same search term,
+ plus some minor improvements to the less(1) :t support.
+ * -Thtml: Use real macro names for CSS classes.
+ Systematic cleanup of and many improvements to mandoc.css.
+ * -Thtml: Produce human readable HTML code by using indentation
+ and better line breaks. Improve various HTML elements,
+ and trim several useless ones.
+ * New catman(8) utility, still somewhat experimental.
+ * Now includes a portable version of the OpenBSD mandoc regression
+ suite, see regress/regress.pl.1 for details.
+ --- REMOVED FUNCTIONALITY ---
+ * Operating systems that don't provide mmap(3) are no longer supported.
+ * Drop support for manpath(1). Even if your system has manpath(1),
+ it is simpler to use MANPATH_DEFAULT in configure.local for
+ operating system defaults, man.conf(5) for machine-specific
+ modifications, and ${MANPATH}, -m, and -M for user preferences
+ than to bother with the complexity of manpath(1).
+ * makewhatis(8) -p: No longer warn about missing MLINKS since these
+ are no longer needed for anything.
+ --- MINOR NEW FEATURES ---
+ * mdoc(7): Warn about invalid punctuation and content below NAME.
+ * mdoc(7): Warn about .Xr lacking the second argument (section).
+ * mdoc(7): Warn about violations of the rule "new sentence, new line".
+ * roff(7): Warn about trailing whitespace at the end of comments.
+ * mdoc(7): Improve rendering of double quotes.
+ * mdoc(7): Always do text production in the validator, never in the
+ formatters. Cleaner, simpler, shorter, helps NetBSD apropos(1)
+ and also makes -Ttree output more useful.
+ * -Ttree: Show metadata and some additional node flags.
+ New -Onoval output option to show the unvalidated tree.
+ --- RELIABILITY BUGFIXES ---
+ * man(1): Make "man -l" work with standard input from a pipe or file,
+ as long as standard output is a terminal.
+ * man(7): Fix out of bounds read access if a text node immediately
+ preceded the first .SH header.
+ * mdoc(7): Fix out of bounds read access for .Bl without a type
+ but with a width.
+ * mdoc(7): Fix out of bounds read access for .Bl -column starting
+ with a tab character instead of a child .It macro.
+ * mdoc(7): Fix syntax tree corruption leading to segfaults caused
+ by stray block end macros in nested blocks of mismatching type.
+ * man(1): Fix NULL dereference when the first of multiple pages
+ shown was preformatted.
+ * mdoc(7): Fix syntax tree corruption leading to NULL dereference
+ caused by partial implicit macros inside .Bl -column table cells.
+ * mdoc(7): Fix syntax tree corruption leading to NULL dereference
+ for macro sequences like .Bl .Bl .It Bo .El .It.
+ * mdoc(7): Fix syntax tree corruption leading to NULL dereference
+ caused by .Ta following a nested .Bl -column breaking another block.
+ * mdoc(7): Fix syntax tree corruption sometimes leading to NULL
+ dereference caused by indirectly broken .Nd or .Nm blocks.
+ * mdoc(7) -Thtml: Fix a NULL dereference for .Bl -column with 0 columns.
+ * mdoc(7): Fix NULL dereference in some specific cases of a
+ block-end macro calling another block-end macro.
+ * mdoc(7): Fix NULL dereference if the only child of the head
+ of the first .Sh was an empty in-line macro.
+ * eqn(7): Fix NULL dereference in the terminal formatter
+ for empty matrices and empty square roots.
+ * mdoc(7): Fix an assertion failure for a .Bd without a type that
+ breaks another block.
+ * mdoc(7): Fix an assertion failure that happened for some .Bl -column
+ lists containing a column width of "-4n", "-3n", or "-2n".
+ * mdoc(7): Fix an assertion failure caused by .Bl -column without .It
+ but containing eqn(7) or tbl(7) code.
+ * roff(7): Fix an assertion failure caused by \z\[u00FF] with -Tps/-Tpdf.
+ * roff(7): Fix an assertion failures caused by whitespace inside \o''
+ (overstrike) sequences.
+ * -Thtml: Fix an assertion failure caused by -Oman or -Oincludes of
+ excessive length.
+ --- PORTABILITY IMPROVEMENTS ---
+ * man(1): Do not mix stdio narrow and wide stream orientation
+ on stdout, which could cause output corruption on glibc.
+ * mandoc(1): Autodetect a suitable locale for -Tutf8 mode.
+ * ./configure: Autodetect whether PATH_MAX and O_DIRECTORY are defined.
+ * ./configure: Autodetect if nanosleep(3) needs -lrt.
+ * ./configure: Provide an ${LN} configuration variable.
+ * ./configure: Put compiler arguments that may contain -l at the end.
+ --- MINOR BUGFIXES ---
+ * mdoc(7): Fix SYNOPSIS output if the first child of .Nm is a macro.
+ * mdoc(7) -Thtml: Improve formatting of .Bl -tag with short tags.
+ * man(7) -Thtml: Preserve whitespace in .nf (nofill) mode.
+ * mandoc(1): Error out on invalid output options on the command line.
+ --- STRUCTURAL CHANGES, no functional change ---
+ * Redesign part of the mandoc_html(3) interfaces, making them much
+ easier to use and reducing the amount of code by a few hundred lines.
+ --- THANKS TO ---
+ * Michael Stapelberg (Debian) for designing the new mandocd(8)
+ and parts of the new catman(8), for release testing, and for a
+ number of patches and bug reports.
+ * Baptiste Daroussin (FreeBSD) for profiling the new makewhatis(8)
+ implementation and suggesting an algorithmic improvement which
+ more than doubled performance, and for a few bug reports.
+ * Ed Maste (FreeBSD) for an important patch improving reproducibility
+ of builds in makewhatis(8), and for a few bug reports.
+ * Theo Buehler (OpenBSD) for almost twenty important bug reports,
+ most of them found by systematic afl(1) fuzzing.
+ * Benny Lofgren, David Dahlberg, and in particular Vadim Zhukov
+ for crucial help in getting .Bl -tag CSS formatting fixed.
+ * Svyatoslav Mishyn (Crux Linux) for an initial version of the
+ patch to autodetect a suitable locale for -Tutf8 mode
+ and for release testing.
+ * Jason McIntyre (OpenBSD) for multiple useful discussions
+ and a number of bug reports.
+ * Sevan Janiyan (NetBSD) for extensive release testing and multiple
+ bug reports.
+ * Thomas Klausner and Christos Zoulas (NetBSD), Yuri Pankov (illumos),
+ and Leah Neukirchen (Void Linux) for release testing and bug reports.
+ * Ulrich Spoerlein (FreeBSD) for release testing.
+ * Alexander Bluhm, Andrew Fresh, Antoine Jacoutot, Antony Bentley,
+ Christian Weisgerber, Jonathan Gray, Marc Espie, Martijn van Duren,
+ Stuart Henderson, Ted Unangst, Theo de Raadt (OpenBSD), Abhinav
+ Upadhyay, Kamil Rytarowski (NetBSD), Aaron M. Ucko, Bdale Garbee,
+ Reiner Herrmann, Shane Kerr (Debian), Daniel Sabogal (Alpine Linux),
+ Carsten Kunze (Heirloom roff), Kristaps Dzonsons (bsd.lv),
+ Anton Lindqvist, Jan Stary, Jeremy A. Mates, Mark Patruck,
+ Pavan Maddamsetti, Sean Levy <attila@stalphonsos.com>, and
+ Tiago Silva for bug reports.
+ * Brent Cook, Marc Espie, Philip Guenther, Todd Miller (OpenBSD)
+ and Markus Waldeck for useful discussions.
+ * And as usual, OpenCSW for providing me with a Solaris 9/10/11
+ testing environment.
+
+Changes in version 1.13.4, released on July 14, 2016
--- MAJOR NEW FEATURES ---
* man.conf(5): Design and implement a simpler configuration file format.
* man(1): Leverage less(1) -T and :t in a way resembling ctags(1)
to jump to the definitions of various terms inside manual pages.
* soelim(1): New implementation by Baptiste Daroussin.
- * pledge(2): Use the OpenBSD privilege limitation syscall when available.
- * man.cgi(8): Support short URIs.
+ * privilege limitation: Use OpenBSD pledge(2) or OS X sandbox_init(3)
+ when available.
+ * man.cgi(8): Support short URIs like http://man.openbsd.org/mdoc .
* mandoc.css: Use one unified stylesheet rather than three different ones.
--- MAJOR FUNCTIONALLY RELEVANT BUGFIXES ---
* mdoc(7): Fix multiple aspects of SYNOPSIS .Nm formatting.
even when building without SQLite support.
* Add compat glue for building on Solaris 9 and 10.
* Let ./configure select a supported RE syntax for word boundaries.
+ * Support LDFLAGS, to be used for example for hardening options.
+ * Avoid mixing putchar(3) and putwchar(3) on the same file descriptor,
+ it resulted in output corruption on some platforms.
* Avoid reusing va_lists, use va_copy(3) for better portability.
* Do not hardcode the path to the more(1) program.
--- MINOR NEW FEATURES ---
* man.cgi(8): Support "header.html" and "footer.html".
* man.cgi(8): Set the "autofocus" attribute on the query text box.
* man.cgi(8): Simplify the search form, drop two useless buttons.
+ * man.cgi(8): Delete the pseudo-manpath "mandoc", assume that
+ apropos(1) and man.cgi(8) are installed in the default manpath.
--- RELIABILITY BUGFIXES ---
* mdoc(7): Avoid a use after free and an assertion failure when nodes
are deleted during validation.
* mdoc(7): Avoid an assertion when .Ta<tab> occurs in .Bl -column.
* mdoc(7): Avoid an assertion when a body gets broken and has a tail.
* roff(7): Avoid an assertion caused by blanks inside \o.
+ * roff(7): Make .so links to gziped manuals work without mandoc.db(5).
* tbl(7): Avoid a use after free when the last line of a layout is empty.
* eqn(7): Avoid an infinite loop caused by recursive "define".
* makewhatis(8): Avoid a segfault caused by unusual directory structures.
* HTML output: Render ASCII_NBRSP as " ", not "-".
* man(1): Do not match the first part of a name if it continues with a dot.
* man(1): Keep working even if the current directory is unusable.
- * man(1): Handle SIGPIPE to avoid ugly "Broken pipe" messages.
* man(1): Better error message when $PAGER is invalid.
* makewhatis(8): Improve handling of .Va and .Vt macros.
* apropos(1): Print "nothing appropriate" to stderr when appropriate.
* mdoc(7) and man(7): Unified data structures struct roff_node etc.
* mdoc(7) and man(7): Unified node handling library in roff.c.
* mdoc(7) and man(7): Seperate validation phase from parsing.
- * Replace all hand-rolled hash tables with ohash(3).
+ * roff(7): Major character table cleanup.
* Link with libz rather than forking gunzip(1).
--- THANKS TO ---
- * Baptiste Daroussin (FreeBSD) for the new soelim(1).
+ * Baptiste Daroussin (FreeBSD) for the new soelim(1)
+ and for release testing.
* Anthony Bentley (OpenBSD) for unifying mandoc.css, two nice
patches for man.cgi(8), some documentation patches, some bug
reports, and various useful discussions.
discussions.
* Jonathan Gray (OpenBSD) for yet more testing with afl(1)
again resulting in more than half a dozen important bug reports.
+ * Svyatoslav Mishyn (Crux Linux) for some patches, several bug
+ reports, and extensive release testing.
+ * Leah Neukirchen (Void Linux) for a number of compatibility
+ patches and suggestions and several bug reports.
* Christos Zoulas (NetBSD) for a bug fix patch and some useful
suggestions for cleanup.
* Florian Obser (OpenBSD) for a bugfix patch and some bug reports.
- * Sevan Janiyan and Jan Holzhueter for help with Solaris compatibility,
- and to OpenCSW in general for providing me with a Solaris 9/10/11
- testing environment.
- * Christian Neukirchen for a number of compatibility patches and
- several bug reports.
- * Svyatoslav Mishyn (Crux Linux) for a compatibility patch
- and a number of bug reports.
+ * Sevan Janiyan for help with Solaris compatibility and release
+ testing on many platforms.
+ * Jan Holzhueter and OpenCSW in general for help with Solaris
+ compatibility, and for providing me with a Solaris 9/10/11 testing
+ environment.
* Michael McConville (OpenBSD) for some simple cleanup patches.
+ * Thomas Klausner (NetBSD) for some bug reports and release testing.
* Christian Weisgerber, Dmitrij Czarkoff, Igor Sobrado,
- Ken Westerback, Marc Espie, Mike Belopuhov, Ted Unangst,
- Tim van der Molen, Theo Buehler, Theo de Raadt (OpenBSD),
- Thomas Klausner (NetBSD), Kurt Jaeger, Dag Erling Smoergrav
- (FreeBSD), Carsten Kunze (Heirloom troff), Daniel Levai,
- Fabian Raetz, Jan Stary, Jean-Yves Migeon, Joerg Sonnenberger,
+ Ken Westerback, Marc Espie, Mike Belopuhov, Rafael Neves,
+ Ted Unangst, Tim van der Molen, Theo Buehler, Theo de Raadt
+ (OpenBSD), Kurt Jaeger, Dag Erling Smoergrav (FreeBSD),
+ Joerg Sonnenberger (NetBSD), Carsten Kunze (Heirloom troff),
+ Daniel Levai, Fabian Raetz, Jan Stary, Jean-Yves Migeon,
Lorenzo Beretta, Markus Waldeck, Maxim Belooussov, Michael Reed,
Peter Bray, and Serguey Parkhomovsky for bug reports and feature
suggestions.
* New -Wunsupp message level.
--- POTENTIONALLY SECURITY RELEVANT BUGFIXES ---
* Fix a potential write buffer overrun on incomplete string conditionals.
- http://mdocml.bsd.lv/cgi-bin/cvsweb/roff.c#rev1.241
+ http://mandoc.bsd.lv/cgi-bin/cvsweb/roff.c#rev1.241
* Fix a potential write buffer overrun on backslash at EOF in a conditional.
- http://mdocml.bsd.lv/cgi-bin/cvsweb/roff.c#rev1.247
+ http://mandoc.bsd.lv/cgi-bin/cvsweb/roff.c#rev1.247
* Fix a use after free sometimes hit when validation deletes a block.
- http://mdocml.bsd.lv/cgi-bin/cvsweb/mdoc_macro.c#rev1.180
+ http://mandoc.bsd.lv/cgi-bin/cvsweb/mdoc_macro.c#rev1.180
--- MAJOR FUNCTIONALLY RELEVANT BUGFIXES ---
* Let man(1) show manuals for the current architecture by default,
and support the MACHINE environment variable.
* and column lengths handled correctly.
For older releases, see the ChangeLog files
-in http://mdocml.bsd.lv/snapshots/ .
+in http://mandoc.bsd.lv/snapshots/ .