HomeFreeBSD

makewhatis: make output reproducible

Description

makewhatis: make output reproducible

The mandoc search database generation uses each page's inode number as
a hash key to index hard linked pages only once. However, it also
processed the pages ordered by hash key resulting in effectively non-
deterministic output.

Instead:

  1. provide fts_open() with a comparison function to process directories and files in a deterministic order
  2. in addition to the existing hash, insert pages into a linked list which will be sorted (by virtue of 1)
  3. iterate over pages by the list in 2, instead of hash order

I will work on upstreaming this change.

Reviewed by: bapt
MFC after: 1 month
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D8213

Details

Provenance
emasteAuthored on
Reviewer
bapt
Differential Revision
D8213: makewhatis: make output reproducible
Parents
rS307002: FreeBSD 11.0 release date added.
Branches
Unknown
Tags
Unknown