diff options
author | Colin Watson <cjwatson@debian.org> | 2014-09-08 23:55:19 +0100 |
---|---|---|
committer | Colin Watson <cjwatson@debian.org> | 2014-09-10 22:44:11 +0100 |
commit | d9ebedad152816ea2ee8725a0ee1b0f80f7aeb46 (patch) | |
tree | 9280ed3f23f125ee13cfaed30f7f6727a580f75e /tools | |
parent | cfd69ae971f1b23887ace7806b4fcd8281be1d2c (diff) |
Move database mtime out of the database into file metadata
This makes the database reproducible between installations, as long
as the underlying database has predictable behaviour and the set of
installed manual pages (including their timestamps) remains
identical. As a bonus, we now use high-precision times in several
places.
Fixes Debian bug #760895.
* gnulib: Import futimens and timespec modules.
* libdb/db_btree.c (btree_get_time, btree_set_time): New functions.
* libdb/db_gdbm.c (man_gdbm_get_time, man_gdbm_set_time): New
functions.
* libdb/db_ndbm.c (ndbm_get_time, ndbm_set_time): New functions.
* libdb/mydbm.h (man_gdbm_get_time, man_gdbm_set_time,
ndbm_get_time, ndbm_set_time, btree_get_time, btree_set_time): Add
prototypes.
(MYDBM_GET_TIME, MYDBM_SET_TIME): New macros.
* src/check_mandirs.c (testmandirs, create_db, count_glob_matches,
purge_normal, purge_whatis, purge_missing): Use high-precision
times.
(update_db_time): Set file modification times rather than updating a
database row.
(create_db, purge_missing): Get database file modification times
rather than fetching a database row.
(purge_missing): If the new will_run_mandb argument is true, reset
the database mtime to its value before purging; this ensures that
mandb will still run as expected afterwards.
* src/check_mandirs.h (purge_missing): Update prototype.
* src/mandb.c (xcopy): Copy access and modification times.
(process_manpath): Work out in advance of purging whether we will
need to run mandb, and pass that to purge_missing.
* include/manconfig.h.in (VER_ID): Bump to 2.5.0.
(KEY): Remove.
* man/man8/accessdb.man8 (DESCRIPTION), man/it/man8/accessdb.man8
(DESCRIZIONE): Remove sample output, as it is of limited usefulness
compared to how awkward it is to maintain, especially in text
intended for translation.
* man/po4a/po/man-db-manpages.pot, man/po4a/po/*.po: Update.
* manual/db.me (Contents of an index database): Remove mention of
$mtime$.
(Example database): Remove $mtime$. Update $version.
* NEWS: Document this. Bump version to 2.7.0 to correspond to the
database version change.
Diffstat (limited to 'tools')
-rw-r--r-- | tools/Makefile.in | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/Makefile.in b/tools/Makefile.in index 3917d8ed..264b0ec9 100644 --- a/tools/Makefile.in +++ b/tools/Makefile.in @@ -126,6 +126,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-bdb.m4 \ $(top_srcdir)/gnulib/m4/fnmatch.m4 \ $(top_srcdir)/gnulib/m4/fstat.m4 \ $(top_srcdir)/gnulib/m4/fstatat.m4 \ + $(top_srcdir)/gnulib/m4/futimens.m4 \ $(top_srcdir)/gnulib/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/gnulib/m4/getcwd-path-max.m4 \ $(top_srcdir)/gnulib/m4/getcwd.m4 \ |