summaryrefslogtreecommitdiff
path: root/NEWS.md
Commit message (Collapse)AuthorAge
* Release man-db 2.12.0Colin Watson2023-09-23
|
* systemd: Avoid duplicate cleanup of old cat pagesColin Watson2023-09-19
| | | | | | | | | | Thanks to Ferenc Wágner. Fixes https://bugs.debian.org/1052221. * init/systemd/man-db.service.in: Remove call to `find`; this is already handled equivalently by `init/systemd/man-db.conf.in`, and having both can result in error messages due to the two cleanups running concurrently. * NEWS.md: Document this.
* Update URLs for libpipeline and flexColin Watson2023-08-07
| | | | | | | * NEWS.md, docs/INSTALL.quick: Update libpipeline URLs to <https://libpipeline.gitlab.io/libpipeline/>. * docs/INSTALL.quick: Update flex URL to <https://github.com/westes/flex>.
* man(1): Document handling of file names without -l more accuratelyColin Watson2023-08-06
| | | | | | | | | Fixes https://gitlab.com/man-db/man-db/-/issues/18. * man/man1/man.man1: Without `-l`, we only fall back to interpreting arguments as local file names if they contain a slash. Explain this more accurately. * NEWS.md: Document this.
* man: Allow disabling warnings enabled by default in groffColin Watson2023-08-06
|
* Fixed add_man_subdirs to correctly add PATH elements with trailing pathsJan Seeger2023-08-06
|
* Release man-db 2.12.0-pre1Colin Watson2023-08-06
| | | | | | * man/po4a/po/*.pot, man/po4a/po/*.po, po/man-db.pot, po/*.po: Update. * NEWS.md: Bump next version to 2.12.0. * configure.ac: Update version and date.
* Always pass a line length to nroffColin Watson2023-08-06
| | | | | | | | Fixes https://bugs.debian.org/1041704. * src/man.c (get_roff_line_length): Remove `line_length != 80` condition. * NEWS.md: Document this.
* Ensure that time_t can go past 2038Colin Watson2023-07-22
| | | | | * bootstrap.conf (gnulib_modules): Add `year2038-recommended`. * NEWS.md: Document this.
* man: Pass --regex/--wildcard on to whatis/aproposColin Watson2023-07-22
| | | | | | | | | | | Fixes https://gitlab.com/man-db/man-db/-/issues/13. * src/man.c (do_extern): Pass `-r` or `-w` options to the external program if necessary. * man/man1/man.man1 (Main modes of operation): Document that `-f` and `-k` are still only approximately equivalent to `whatis` and `apropos` respectively (since `man` accepts slightly different options). * NEWS.md: Document this.
* Upgrade to Gnulib stable-202307Colin Watson2023-07-22
| | | | | | | | | * bootstrap: Sync to Gnulib b7f7ed06961454cdf77b93c6c00c3e3f26202663. * bootstrap.conf (GNULIB_REVISION): Set to b7f7ed06961454cdf77b93c6c00c3e3f26202663. * src/tests/Makefile.am (fspause_LDADD): Link with `$(NANOSLEEP_LIB)` instead of `$(LIB_NANOSLEEP)`. * NEWS.md: Document this.
* Take advantage of groff's AD string and HY registerColin Watson2023-07-20
| | | | | | | | | | | | | | | | | | Fixes https://gitlab.com/man-db/man-db/-/issues/23. Thanks to G. Branden Robinson for assistance. * src/man.c (make_roff_command) [TROFF_IS_GROFF]: Implement `--no-hyphenation` using `-rHY=0`. This requires groff >= 1.19, released in 2003. (disable_hyphenation): Only define if `TROFF_IS_GROFF` is not defined. (display): Only use the more complex hyphenation-control mechanism if `TROFF_IS_GROFF` is not defined. * src/man.c (disable_justification): Implement using `.ds AD l` if groff is at least version 1.23.0. (display): Adjust debugging output to reflect this (more or less). * NEWS.md: Document this.
* Document false negatives from "man -K"Colin Watson2023-07-20
| | | | | | | | Fixes https://gitlab.com/man-db/man-db/-/issues/14. * man/man1/man.man1 (Main modes of operation): Document false negatives due to things like `\-`. * NEWS.md: Document this.
* man(1): Add a STANDARDS sectionColin Watson2023-07-20
| | | | | | | Fixes https://gitlab.com/man-db/man-db/-/issues/20. * man/man1/man.man1 (STANDARDS): New section. * NEWS.md: Document this.
* Change "CONFORMING TO" to "STANDARDS"Colin Watson2023-07-20
| | | | | | | | | | This is in line with `man-pages(7)`. See https://gitlab.com/man-db/man-db/-/issues/20. * man/man1/man.man1 (DESCRIPTION): Recommend `STANDARDS` rather than `CONFORMING TO`. * NEWS.md: Document this.
* Fix test failures when a working iconv is not availableColin Watson2023-07-20
| | | | | | | | | | | | | | | | Part of https://gitlab.com/man-db/man-db/-/issues/25. * configure.ac: Substitute `HAVE_ICONV`. * src/tests/Makefile.am (TESTS_ENVIRONMENT): Export `HAVE_ICONV`. * src/tests/testlib.sh (report_skip): New function to skip an individual test out of several in a file. (skip): Refactor slightly to call `report_skip`. * src/tests/man-recode-in-place, src/tests/man-recode-suffix, src/tests/manconv-coding-tags, src/tests/manconv-guess-from-encoding, src/tests/manconv-incomplete-char-at-eof, src/tests/manconv-odd-combinations: Skip several tests if `HAVE_ICONV` is not `yes`. * NEWS.md: Document this.
* NEWS.md: Document some recent commitsColin Watson2023-07-20
|
* mandb: Warn if not running as cache ownerColin Watson2023-04-09
| | | | | | | | | Fixes https://gitlab.com/man-db/man-db/-/issues/17. * src/mandb.c (main): If effective user ID doesn't match the configured cache owner (if any), and the `--quiet` option wasn't used, then issue a warning. * NEWS.md: Document this.
* Deduplicate search results from "man -K"Colin Watson2023-04-09
| | | | | | | | | Reported by Alejandro Colomar. * src/man.c (do_global_apropos_section): Skip entries whose ultimate source path have already been seen. (do_global_apropos): Create/free set used to track seen entries. * NEWS.md: Document this.
* sandbox: Work around FirebuildColin Watson2023-03-10
| | | | | | | | Fixes https://gitlab.com/man-db/man-db/-/issues/15. * lib/sandbox.c (make_seccomp_filter): Allow some socket-related system calls if libfirebuild.so is preloaded. * NEWS.md: Document this.
* Upgrade to Gnulib stable-202301Colin Watson2023-01-14
| | | | | | | * bootstrap: Sync to Gnulib 32a72f45374c9a36afa574d1a08bb98090270012. * bootstrap.conf (GNULIB_REVISION): Set to 32a72f45374c9a36afa574d1a08bb98090270012. * NEWS.md: Document this.
* Update syscall lists from systemd fc2a0bc05eColin Watson2023-01-14
| | | | | | | | | | | * lib/sandbox.c (make_seccomp_filter): Add `cacheflush`, `clock_getres_time64`, `clock_nanosleep_time64`, `close_range`, `clone3`, `epoll_pwait2`, `faccessat2`, `futex_time64`, `pidfd_open`, `pidfd_send_signal`, `ppoll_time64`, `pselect6_time64`, `riscv_flush_icache`, `rt_sigtimedwait_time64`, and `utimensat_time64`. Reorganize positions of some other syscalls according to their positions in systemd's sets. * NEWS.md: Document this.
* Release man-db 2.11.2Colin Watson2023-01-08
|
* mandb: Check for stray cats even if the manpath is unchangedColin Watson2023-01-01
| | | | | | | | * src/mandb.c (mandb): Require the database file to be open before calling `straycats`, but don't require `create_db` or `update_db_wrapper` to have made any changes to it. * src/tests/mandb-whatis-broken-link-changes: Update expected output. * NEWS.md: Document this.
* mandb: Fix crash when processing stray catsColin Watson2023-01-01
| | | | | | | | | Regression introduced in man-db 2.11.0. Fixes Debian bug #1027487. * src/straycats.c (check_for_stray): Pass a basic trace list to `store_descriptions`, since that's required as of commit d3e4b5522ae8152f10db0bb98e6873c9cc17ed59. * NEWS.md: Document this.
* Fix segfault when nroff is not installedColin Watson2022-12-31
| | | | | | | * src/man.c (try_section): Only free the `names` list if it is non-NULL due to `NROFF_MISSING` being defined, and return early if options are set such that cat files cannot be used either. * NEWS.md: Document this.
* Fix compile and test failures when troff is not groffColin Watson2022-12-31
| | | | | | | | | | | | | | | | | Fixes https://gitlab.com/man-db/man-db/-/issues/12. * src/man.c (ONLY_TROFF_IS_GROFF): Only define if `HAS_TROFF` is defined. (init_html_pager): Only define if `TROFF_IS_GROFF` is defined. (format_display): Mark `man_file` as unused if `TROFF_IS_GROFF` is not defined. * configure.ac: Substitute `troff_is_groff`. * src/tests/Makefile.am (TESTS_ENVIRONMENT): Export `troff_is_groff`. * src/tests/man-language-specific-requests: Adjust expected language-specific requests if `troff_is_groff` is not `yes`. * NEWS.md: Document this.
* Release man-db 2.11.1Colin Watson2022-11-15
|
* Transfer Git repository to new groupColin Watson2022-11-14
| | | | | | | | | | * README.md, docs/HACKING.md, man/man1/apropos.man1, man/man1/lexgrog.man1, man/man1/man-recode.man1, man/man1/man.man1, man/man1/manconv.man1, man/man1/manpath.man1, man/man1/whatis.man1, man/man1/zsoelim.man1, man/man5/manpath.man5, man/man8/accessdb.man8, man/man8/catman.man8, man/man8/mandb.man8: Change GitLab URL to https://gitlab.com/man-db/man-db. * NEWS.md: Document this.
* Replace $ in page names rather than trying to escape itColin Watson2022-11-05
| | | | | | | | | | | Jakub Wilk points out in Debian bug #1021951 that attempting to use the `--use-backslash` option has a number of complications. Just replace dollar signs with question marks instead. * include/manconfig.h (LESS_OPTS): Revert addition of `--use-backslash`. * src/man.c: Replace `$` characters with `?` rather than trying to escape them. * NEWS.md: Document this.
* Recognize more Hungarian translations of the NAME sectionColin Watson2022-10-18
| | | | | | * src/lexgrog.l (hu_name): Handle the case where "É" or "é" is written as "\('E" or "\('e". * NEWS.md: Document this.
* Sort whatis references below real pages more aggressivelyColin Watson2022-10-18
| | | | | | | | | | I think this makes more sense in most cases, and it definitely fixes some observed odd behaviour. Fixes Debian bug #780235. * src/man.c (compare_candidates): Compare IDs before comparing sections. * NEWS.md: Document this.
* Silence error for empty mandir with missing catdirColin Watson2022-10-18
| | | | | | | | | | Fixes https://gitlab.com/cjwatson/man-db/-/issues/8. * src/check_mandirs.c (ensure_db_open): Don't call `gripe_rwopen_failed` before returning false (since it only makes sense for one of the two callers). (testmandirs): Call `gripe_rwopen_failed` if `ensure_db_open` returns false.
* Add 3type to default section listColin Watson2022-10-18
| | | | | | | | | | | | | | | This is used by the Linux man-pages package, and should be lower priority than section 2. Suggested by Alejandro Colomar. Fixes https://gitlab.com/cjwatson/man-db/-/issues/5. * include/manconfig.h (STD_SECTIONS): Add `3type` between sections `2` and `5`. * m4/man-arg-sections.m4 (MAN_ARG_SECTIONS): Likewise. * man/man5/manpath.man5 (FORMAT): Update documentation of SECTION. * src/tests/man-exact-section-matches: Update default section order. * src/man_db.conf.in (SECTION): Update documentation. * NEWS.md: Document this.
* Escape $ in page names when constructing less promptsColin Watson2022-10-18
| | | | | | | | Fixes Debian bug #1021951. * include/manconfig.h (LESS_OPTS): Add `--use-backslash`. * src/man.c (escape_less): Also escape `$` characters. * NEWS.md: Document this.
* Release man-db 2.11.0Colin Watson2022-10-15
|
* Fix installation on systems with non-empty EXEEXTColin Watson2022-10-07
| | | | | | * src/Makefile.am (install-exec-hook): Add `$(EXEEXT)` to `chown`/`chmod` calls. * NEWS.md: Document MinGW portability work.
* Run preprocessors in the correct orderColin Watson2022-10-06
| | | | | | | | | | | | | | | | | | We have no particular reason to trust the order of filters in a preprocessor string specified in a page; it's easy for authors to get this wrong by accident. Do as groff(1) does and run them in a canonicalized order. Fixes Debian bug #1012078. * src/man.c (add_filter): New function, split out from `make_roff_command`. (make_roff_command): Iterate through possible preprocessors and add each one depending on whether it's present in the preprocessor string, rather than iterating through the preprocessor string and acting on each of its characters. Turn several `int` variables into `bool` variables in passing. * NEWS.md: Document this.
* Bump next version to 2.11.0Colin Watson2022-10-02
| | | | | | | There are quite a few substantial changes here that I think justify an updated minor number. * NEWS.md: Bump to 2.11.0.
* mandb: Fully reorganize databasesColin Watson2022-10-02
| | | | | | | | | | | | | | | | | | | | This allows us to produce bitwise-identical databases regardless of the order in which pages were scanned (at least with GDBM). `gdbm_reorganize` isn't enough for this, probably because entries end up in different positions in hash buckets depending on insertion order; but reading in the entire database and writing it back out in sorted order seems to do the job with negligible cost. Fixes Debian bug #1010957. * src/mandb.c (reorganize): New function: read all the items from a database in sorted order and write them back out. (mandb): Stop calling `MYDBM_REORG`, which saved space after deletions but didn't help with reproducibility. (process_manpath): Call `reorganize` if any changes were made to a database. * libdb/mydbm.h (MYDBM_REORG): Remove macro. * NEWS.md: Document this.
* test_manfile: Remove "already exists" checkColin Watson2022-10-01
| | | | | | | | | | | | | | | | | | This produced inconsistent results in some unusual cases. For example, if `/usr/share/man/man5/inetd.conf.5.gz` was a symlink to `/usr/share/man/man8/inetd.8.gz` and had `NAME` entries for both `inetd` and `inetd.conf`, then if `inetd.8.gz` was scanned first we would include a `WHATIS_MAN` entry in section 8 for `inetd.conf`, while if `inetd.conf.5.gz` was scanned first we'd skip that due to hitting the already-exists check when scanning `inetd.8.gz`. This was originally a performance optimization. Now that we cache the results of `ult_src` and `find_name`, this optimization no longer helps us much, so it can go. * src/check_mandirs.c (test_manfile): Don't return early if the page already exists with matching details. * NEWS.md: Document this.
* Don't skip adding a database entry due to SO_MANColin Watson2022-09-25
| | | | | | | | | | | An existing `SO_MAN` entry shouldn't stop us considering a page for insertion into the database, because until we run `ult_src` we don't yet know whether that page will be `ULT_MAN` (which should replace the existing entry) or `SO_MAN` (which shouldn't). * src/check_mandirs.c (test_manfile): Don't return early due to an existing matching `SO_MAN` entry, but only due to an `ULT_MAN` entry. * NEWS.md: Document this.
* Extend database entry replacement rulesColin Watson2022-09-24
| | | | | | | | | | | | | These rules were previously ambiguous such that the targets of whatis entries depended on the order in which files were scanned. * libdb/db_store.c (enum replace_action): Add. (replace_if_necessary): Extend rules for greater stability. We now also take mtimes and pointers into account, as well as including a case for when the new ID is weaker than the old one (there was already a case for when it was stronger). (dbstore): Use `replace_if_necessary` when considering replacing multi keys.
* Fix section/extension for links in databaseColin Watson2022-09-24
| | | | | | | | | | | | | In some cases this resulted in spurious database entries. For example, if `man5/inetd.conf.5` was a symlink to `man8/inetd.8` and that page had a `NAME` entry for `inetd`, then as well as entries for `inetd` in section 8 and `inetd.conf` in section 5, we would also store a spurious entry for `inetd` in section 5. We no longer do that. * src/descriptions_store.c (store_descriptions): For names corresponding to entries in the ultimate source trace and not to the base name of the file, use the section and extension of the trace entry rather than of the ultimate source.
* Pick a more consistent name for whatis targetsColin Watson2022-09-24
| | | | | | | | | | | We don't want the targets of whatis entries in the database to depend on the order in which files were scanned. Prefer the first name in the trace out of those that have the best ID. * src/descriptions_store.c (store_descriptions): Defer adding names that don't appear in the ultimate source trace (i.e. whatis entries) until we know the best name to use as the target, and use that best name as the pointer for each of them.
* Fix stored ID for linksColin Watson2022-09-24
| | | | | | | | | | | | Database entries for links were often incorrectly stored as `ULT_MAN`, depending on the exact order in which pages were scanned. They are now stored more consistently as `SO_MAN`. * src/descriptions_store.c (store_descriptions): Override the ID from `ULT_MAN` to `SO_MAN` if the name is not the last entry in the trace. (Previously we overrode from `SO_MAN` to `ULT_MAN` if the name was the last entry in the trace, but not the converse.) * NEWS.md: Document this.
* Maintain multi key references in sorted orderColin Watson2022-09-19
| | | | | | | | | | | | | | | | | This is a step towards being able to reproduce the same database given the same manual page tree. * bootstrap.conf (gnulib_modules): Add stpcpy. * libdb/db_lookup.c (name_ext_equals): Remove static; add pure attribute. (name_ext_compare): New function. (list_extensions): Add entries in sorted order. * libdb/db_storage.h (name_ext_equals, name_ext_compare): Add prototypes. * libdb/db_store.c (make_extensions_reference): New function. (dbstore): When building or updating multi key references, maintain them in sorted order. * NEWS.md: Document this.
* Make CATWIDTH override MINCATWIDTH/MAXCATWIDTHColin Watson2022-08-11
| | | | | | | | | | | | | | Otherwise setting `CATWIDTH` to something larger than 80 confusingly doesn't work unless you also set `MAXCATWIDTH`. Fixes https://gitlab.com/cjwatson/man-db/-/issues/9. * src/man.c (add_roff_line_length): Skip terminal width range check if `cat_width` is set. * man/man5/manpath.man5 (FORMAT): Remove note that `CATWIDTH` should be within the range set by `MINCATWIDTH` and `MAXCATWIDTH`, and instead say that it overrides them. * NEWS.md: Document this.
* Add more case variants of localized versions of NAMEColin Watson2022-07-22
| | | | | | * src/lexgrog.l (bg_name, lt_name, ru_name, sr_name, srlatin_name, tr_name, uk_name, vi_name): Add more case variants. * NEWS.md: Document this.
* Update to Gnulib 20220717Colin Watson2022-07-18
| | | | | | | | | Fixes https://gitlab.com/cjwatson/man-db/-/issues/6. * bootstrap: Sync to Gnulib df336dc1ae60d8ad9f452f2234951133fe617bb0. * bootstrap.conf (GNULIB_REVISION): Set to df336dc1ae60d8ad9f452f2234951133fe617bb0. * NEWS.md: Document build fix.