summaryrefslogtreecommitdiff
path: root/.gitignore
Commit message (Collapse)AuthorAge
* Ensure that .gitignore and po/LINGUAS remain sortedColin Watson2023-01-14
| | | | | | * .pre-commit-config.yaml (pre-commit-hooks): Add `file-contents-sorter` for `.gitignore` and `po/LINGUAS`. * .gitignore: Sort.
* Add Korean manual page translationColin Watson2022-11-05
| | | | | | | | | | | | | * man/po4a/po/ko.po: New from Translation Project (thanks, Seong-ho Cho). * configure.ac (AC_CONFIG_FILES): Add man/ko/Makefile. * man/LINGUAS.po4a: Add ko. * man/Makefile.am (DIST_SUBDIRS): Add ko. * man/ko/Makefile.am, man/ko/translator.add: New files. * man/po4a/Makefile.am (POFILES): Add po/ko.po. * man/po4a/po4a.cfg (po4a_langs): Add ko. * man/THANKS: Update translator credit. * .gitignore: Add man/ko/man1, man/ko/man5, and man/ko/man8.
* mandb: Don't modify DB without changing its mtimeColin Watson2022-01-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In d9ebedad15 (man-db 2.7.0), mandb started relying on the modification times of database files themselves rather than using a special row, in order to make databases reproducible between otherwise-identical installations (subject to predictable behaviour from the underlying database). There was a difficulty with this change. Because purging deleted pages from the database opened and closed the database in a separate phase before the main phase of looking for updated manual pages, and because the main phase relies on comparing against the mtime of the database to find changed files, I had to arrange to restore the original mtime at the end of the purge phase in order to avoid confusing the main phase into being a no-op. However, in some cases (perhaps due to other bugs, but nevertheless), it's possible for the purge phase to find work to do without the main phase ever finding any modified directories, which meant that the net effect of mandb would be to modify its database without changing its mtime. This is bad form, and confused some backup systems into believing that the filesystem had been corrupted, since files having their contents changed without updating their mtime is indeed a likely symptom of filesystem corruption. To avoid this, restructure our database-handling code so that a given mandb run opens any given database at most once. This means that we no longer need to modify mtimes manually, so the usual filesystem rules apply. Fixes Debian bug #1004355 and Ubuntu bug #1411633. * bootstrap.conf (gnulib_modules): Remove futimens. * libdb/db_btree.c (man_btree_close): Rename to ... (man_btree_free): ... this. Check whether wrap->file is set. Free wrap->mtime. (man_btree_new): New function. (man_btree_open): Convert to running on the result of man_btree_new. (man_btree_get_time): Cache return value in wrap->mtime. (man_btree_set_time): Remove. * libdb/db_gdbm.c (man_gdbm_new): New function. (man_gdbm_open_wrapper): Convert to running on the result of man_gdbm_new. (man_gdbm_get_time): Cache return value in wrap->mtime. (man_gdbm_set_time): Remove. (raw_close): Check whether wrap->file is set. (man_gdbm_close): Rename to ... (man_gdbm_free): ... this. * libdb/db_ndbm.c (raw_close): Check whether wrap->file is set. (man_ndbm_close): Rename to ... (man_ndbm_free): ... this. (man_ndbm_new): New function. (man_ndbm_open): Convert to running on the result of man_ndbm_new. (man_ndbm_get_time): Cache return value in wrap->mtime. (man_ndbm_set_time): Remove. * libdb/db_xdbm.c (man_xdbm_close): Rename to ... (man_xdbm_free): ... this. Update all callers. Free dbf->mtime. * libdb/db_xdbm.h (man_xdbm_close): Rename to ... (man_xdbm_free): ... this. * libdb/mydbm.h (man_gdbm_wrapper, man_ndbm_wrapper, man_btree_wrapper): Add mtime. (man_gdbm_new, man_ndbm_new, man_btree_new): Add prototypes. (man_gdbm_open_wrapper, man_ndbm_open, man_btree_open): Update prototypes. (man_gdbm_set_time, man_ndbm_set_time, man_btree_set_time): Remove prototypes. (man_gdbm_close, man_ndbm_close, man_btree_close): Rename to ... (man_gdbm_free, man_ndbm_free, man_btree_free): ... these, respectively. (MYDBM_NEW): New macro. (MYDBM_CTRWOPEN, MYDBM_RWOPEN, MYDBM_RDOPEN): Rename file argument to wrap. (MYDBM_CLOSE): Rename to ... (MYDBM_FREE): ... this. (MYDBM_SET_TIME): Remove macro. * src/catman.c (parse_for_sec): Take a MYDBM_FILE argument rather than a database path. * src/check_mandirs.c (gripe_rwopen_failed, testmandirs, create_db, update_db, purge_missing): Likewise. * src/mandb.c (update_one_file, update_db_wrapper): Likewise. * src/straycats.c (straycats): Likewise. * src/check_mandirs.h (create_db, update_db, purge_missing): Update prototypes. * src/straycats.h (straycats): Likewise. * src/check_mandirs.c (ensure_db_open): New function. (testmandirs): Only open the database if it wasn't already open, and don't close it. (update_db, purge_missing): Likewise. * src/mandb.c (update_one_file): Likewise. * src/straycats.c (straycats): Assert that the database is already open, and don't close it. * src/accessdb.c (main): Update database opening code. * src/catman.c (post_fork): Update database closing code. (parse_for_sec): Move database opening and closing code to ... (main): ... here, and update it. * src/man.c (dbdelete_wrapper): Update database opening and closing code. * src/whatis.c (search): Update database opening and closing code. * src/check_mandirs.c (purge_missing): Don't reorganize the database. * src/mandb.c (mandb): Create a MYDBM_FILE from the database path, and close and free it before returning. Rearrange purging so that it runs on the temporary database copy, which we close and remove if purge_missing finds a consistency problem requiring us to rescan from scratch. Unless purging requires a rescan, all of the purge, main, and stray cats phases now run on the same open database file. Reorganize the database before closing it if the purge phase did any work. (process_manpath): Rename the temporary database into place if either of the purge or stray cats phases did any work, even if the main phase didn't. * src/check_mandirs.c (update_db_time): Remove. (create_db): Don't manually update the database mtime. (update_db, purge_missing): Likewise. * src/tests/Makefile.am (ALL_TESTS): Add mandb-purge-updates-timestamp. (check_PROGRAMS): Add get-mtime. (get_mtime_SOURCES, get_mtime_LDADD): Add. * src/tests/get-mtime.c: New file: test helper to get a file's mtime portably. * src/tests/mandb-purge-updates-timestamp: New file. * .gitignore: Add src/tests/get-mtime. * NEWS: Document this.
* Stop generating include/*.h from configureColin Watson2022-01-16
| | | | | | | | | | | | | | | | | This was inconvenient when making changes to those central header files. All `configure`-generated preprocessor symbols are now in `config.h`. * configure.ac: Define various PROG_* symbols. Remove AC_SUBST calls for compressors and decompressors. (AC_CONFIG_FILES): Remove include/comp_src.h and include/manconfig.h. * m4/man-arg-override-dir.m4: Define OVERRIDE_DIR symbol. * include/manconfig.h.in: Rename to ... * include/manconfig.h: ... this. Remove PROG_*, OVERRIDE_DIR, and COMPRESS_EXT definitions. * include/comp_src.h.in: Rename to ... * include/comp_src.h: ... this. * README.md: Update references to include/manconfig.h. * .gitignore: Remove include/*.h.
* Trim down direct Gnulib dependencies a littleColin Watson2022-01-02
| | | | | | | | | * bootstrap.conf (gnulib_modules): Add c99 (already used indirectly, but seems like a good idea to request directly now). Remove getopt-gnu, lock, and unsetenv, none of which we use directly. Replace fcntl with fcntl-h and signal with signal-h, since we use the corresponding header files directly but not the corresponding functions. * .gitignore: Remove lib/getopt.h.
* Add Romanian manual page translationColin Watson2020-07-04
| | | | | | | | | | | | | * man/po4a/po/ro.po: New from Translation Project (thanks, Florentina Mușat). * configure.ac (AC_CONFIG_FILES): Add man/ro/Makefile. * man/LINGUAS.po4a: Add ro. * man/Makefile.am (DIST_SUBDIRS): Add ro. * man/ro/Makefile.am, man/ro/translator.add: New files. * man/po4a/Makefile.am (POFILES): Add po/ro.po. * man/po4a/po4a.cfg (po4a_langs): Add ro. * man/THANKS: Update translator credit. * .gitignore: Add man/ro/man1, man/ro/man5, and man/ro/man8.
* Add a new man-recode programColin Watson2019-09-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This has an interface designed for bulk conversion, and so can be much faster than running "man --recode" on each page. Fixes Debian bug #933576. * bootstrap.conf (gnulib_modules): Add renameat, tempname, and unlinkat. * src/man-recode.c: New file. * src/Makefile.am (bin_PROGRAMS): Add man-recode. (man_recode_LDADD, man_recode_SOURCES): Add. * src/tests/man-recode-in-place, src/tests/man-recode-suffix: New files. * src/tests/Makefile.am (ALL_TESTS): Add man-recode-in-place and man-recode-suffix. * .gitignore: Add src/man-recode. * po/POTFILES.in: Add src/man-recode.c. * m4/man-trans-subst.m4 (MAN_TRANS_SUBST): Adjust to support program names containing dashes. * configure.ac: Add substitutions for man-recode. * man/man1/man-recode.man1: New file. * man/man1/man.man1 (Main modes of operation): Add a note to the description of --recode suggesting man-recode instead. * man/man1/manconv.man1 (SEE ALSO): Add reference to man-recode(1). * man/Makefile.am (man1_MANS): Add man1/man-recode.1. * man/da/Makefile.am (man1_MANS): Likewise. * man/de/Makefile.am (man1_MANS): Likewise. * man/es/Makefile.am (man1_MANS): Likewise. * man/fr/Makefile.am (man1_MANS): Likewise. * man/id/Makefile.am (man1_MANS): Likewise. * man/ja/Makefile.am (man1_MANS): Likewise. * man/nl/Makefile.am (man1_MANS): Likewise. * man/pl/Makefile.am (man1_MANS): Likewise. * man/pt/Makefile.am (man1_MANS): Likewise. * man/pt_BR/Makefile.am (man1_MANS): Likewise. * man/ru/Makefile.am (man1_MANS): Likewise. * man/sr/Makefile.am (man1_MANS): Likewise. * man/sv/Makefile.am (man1_MANS): Likewise. * man/tr/Makefile.am (man1_MANS): Likewise. * man/zh_CN/Makefile.am (man1_MANS): Likewise. * man/po4a/po4a.cfg: Add support for man-recode. * man/replace.sin.in: Substitute %man_recode% and %thman_recode%. * NEWS: Document this.
* Ship a systemd timer for daily DB maintenanceColin Watson2018-12-06
| | | | | | | | | | | | | | | Thanks to Christian Göttsche. Fixes Debian bug #858022. * m4/man-arg-systemdsystemunitdir.m4: New file. * configure.ac: Accept --with-systemdsystemunitdir option. * init/systemd/Makefile.am (EXTRA_DIST): Add man-db.service.in. (CLEANFILES): Add man-db.service. (systemdsystemunit_DATA): Install man-db.timer. (nodist_systemdsystemunit_DATA): Install man-db.service. (man-db.service): New rule. * init/systemd/man-db.service.in, init/systemd/man-db.timer: New files. * .gitignore: Add init/systemd/man-db.service. * NEWS: Document this.
* Add Portuguese manual page translationColin Watson2018-10-21
| | | | | | | | | | | | | * man/po4a/po/pt.po: New from Translation Project (thanks, Pedro Albuquerque). * configure.ac (AC_CONFIG_FILES): Add man/pt/Makefile. * man/LINGUAS.po4a: Add pt. * man/Makefile.am (DIST_SUBDIRS): Add pt. * man/pt/Makefile.am, man/pt/translator.add: New files. * man/po4a/Makefile.am (POFILES): Add po/pt.po. * man/po4a/po4a.cfg (po4a_langs): Add pt. * man/THANKS: Add translator credit. * .gitignore: Add man/pt/man1, man/pt/man5, and man/pt/man8.
* Add po4a-based Spanish manual page translationColin Watson2018-05-29
| | | | | | | | | | | | | | | | | | | | | | This supersedes the previous whole-file translations, which had not been properly updated in many years. * man/po4a/po/es.po: New from Translation Project (thanks, Francisco Javier Serrador). * man/LINGUAS: Remove es. * man/LINGUAS.po4a: Add es. * man/es/Makefile.am (PO4A_LINGUA): Set to yes. (man1_MANS): Add man1/lexgrog.1 and man1/manconv.1. (man8_MANS): Add man8/accessdb.8. * man/es/man1/apropos.man1, man/es/man1/man.man1, man/es/man1/manpath.man1, man/es/man1/whatis.man1, man/es/man1/zsoelim.man1, man/es/man5/manpath.man5, man/es/man8/catman.man8, man/es/man8/mandb.man8: Remove. * man/es/translator.add: New file. * man/po4a/Makefile.am (POFILES): Add po/es.po. * man/po4a/po4a.cfg (po4a_langs): Add es. * man/THANKS: Update translator credit. * .gitignore: Add man/es/man1, man/es/man5, and man/es/man8.
* Switch to bootstrapColin Watson2018-05-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We no longer keep autogenerated files in git. * .gitignore: Add **/Makefile, **/Makefile.in, /ABOUT-NLS, /aclocal.m4, /build-aux, /config.h.in, /configure, /gl, /gnulib, docs/INSTALL.autoconf, po/Makefile.in.in, po/Makevars, po/Rules-quot, po/boldquot.sed, po/en@boldquot.header, po/en@quot.header, po/insert-header.sin, po/quot.sed, and po/remove-potcdate.sin. Remove docs/Makefile, gnulib/*, init/Makefile, init/systemd/Makefile, lib/Makefile, libdb/Makefile, man/Makefile, man/*/Makefile, manual/Makefile, po/Makefile, po/Makefile.in, src/Makefile, src/tests/Makefile, and tools/Makefile. * ABOUT-NLS, Makefile.in, aclocal.m4, autogen.sh, build-aux, config.h.in, configure, docs/INSTALL.autoconf, docs/Makefile.in, gnulib, init/Makefile.in, init/systemd/Makefile.in, lib/Makefile.in, libdb/Makefile.in, man/Makefile.in, man/da/Makefile.in, man/de/Makefile.in, man/es/Makefile.in, man/fr/Makefile.in, man/id/Makefile.in, man/it/Makefile.in, man/ja/Makefile.in, man/nl/Makefile.in, man/pl/Makefile.in, man/po4a/Makefile.in, man/pt_BR/Makefile.in, man/ru/Makefile.in, man/sr/Makefile.in, man/sv/Makefile.in, man/tr/Makefile.in, man/zh_CN/Makefile.in, manual/Makefile.in, po/Makefile.in.in, po/Makevars, po/Rules-quot, po/boldquot.sed, po/en@boldquot.header, po/en@quot.header, po/insert-header.sin, po/quot.sed, po/remove-potcdate.sin, src/Makefile.in, src/tests/Makefile.in, tools/Makefile.in: Remove. * bootstrap, bootstrap.conf: New files. * Makefile.am (GNULIB_PO, SUBDIRS, EXTRA_DIST, ACLOCAL_AMFLAGS): Refer to gl/ rather than gnulib/ (gnulib/ now contains pristine source). (EXTRA_DIST): Replace autogen.sh with bootstrap and bootstrap.conf. Replace gnulib/argp-domain.patch with patches/argp-domain.patch. Add patches/fdutimens-hurd.patch. Remove gnulib/m4/gnulib-cache.m4 and gnulib/m4/gnulib-tool.m4. * gnulib/argp-domain.patch: Rename to ... * patches/argp-domain.patch: ... this. Update target paths. * gnulib/fdutimens-hurd.patch: Rename to ... * patches/fdutimens-hurd.patch: ... this. Update target paths. * configure.ac (AM_GNU_GETTEXT_VERSION): Upgrade to 0.18.3, for compatibility with current Automake. (HAVE_GNULIB_PO, AC_CONFIG_FILES): Refer to gl/ rather than gnulib/. * lib/Makefile.am (libman_la_CPPFLAGS, libman_la_LIBADD): Likewise. * libdb/Makefile.am (libmandb_la_CPPFLAGS): Likewise. * src/Makefile.am (AM_CPPFLAGS, LIBMAN): Likewise. * src/tests/Makefile.am (AM_CPPFLAGS, fspause_LDADD): Likewise. * docs/HACKING: Describe new policy. * release.sh: Call ./bootstrap rather than ./autogen.sh.
* Add Turkish manual page translationColin Watson2017-07-11
| | | | | | | | | | | | | * man/po4a/po/tr.po: New from Translation Project (thanks, Volkan Gezer and Mesutcan Kurt). * configure.ac (AC_CONFIG_FILES): Add man/tr/Makefile. * man/LINGUAS.po4a: Add tr. * man/Makefile.am (DIST_SUBDIRS): Add tr. * man/tr/Makefile.am, man/tr/translator.add: New files. * man/po4a/Makefile.am (POFILES): Add po/tr.po. * man/po4a/po4a.cfg (po4a_langs): Add tr. * man/THANKS: Add translator credit. * .gitignore: Add man/tr/man1, man/tr/man5, and man/tr/man8.
* Add Brazilian Portuguese manual page translationColin Watson2017-01-04
| | | | | | | | | | | | | * man/po4a/po/pt_BR.po: New from Translation Project (thanks, Rafael Fontenelle). * configure.ac (AC_CONFIG_FILES): Add man/pt_BR/Makefile. * man/LINGUAS.po4a: Add pt_BR. * man/Makefile.am (DIST_SUBDIRS): Add pt_BR. * man/pt_BR/Makefile.am, man/pt_BR/translator.add: New files. * man/po4a/Makefile.am (POFILES): Add po/pt_BR.po. * man/po4a/po4a.cfg (po4a_langs): Add pt_BR. * man/THANKS: Add translator credit. * .gitignore: Add man/pt_BR/man1, man/pt_BR/man5, and man/pt_BR/man8.
* Add Serbian manual page translationColin Watson2016-12-19
| | | | | | | | | | | | | * man/po4a/po/sr.po: New from Translation Project (thanks, Мирослав Николић). * configure.ac (AC_CONFIG_FILES): Add man/sr/Makefile. * man/LINGUAS.po4a: Add sr. * man/Makefile.am (DIST_SUBDIRS): Add sr. * man/sr/Makefile.am, man/sr/translator.add: New files. * man/po4a/Makefile.am (POFILES): Add po/sr.po. * man/po4a/po4a.cfg (po4a_langs): Add sr. * man/THANKS: Add translator credit. * .gitignore: Add man/sr/man1, man/sr/man5, and man/sr/man8.
* Generate tmpfiles snippet based on cache ownerColin Watson2016-12-13
| | | | | | | | | | | man-db.conf should honour --enable-cache-owner rather than hardcoding "man". * init/systemd/man-db.conf: Rename to ... * init/systemd/man-db.conf.in: ... this. Replace "man" with "@man_owner@". * init/systemd/Makefile.am: Generate man-db.conf at build time. * .gitignore: Add init/systemd/man-db.conf.
* Add Swedish manual page translationColin Watson2016-01-02
| | | | | | | | | | | | | * man/po4a/po/sv.po: New from Translation Project (thanks, Sebastian Rasmussen). * configure.ac (AC_CONFIG_FILES): Add man/sv/Makefile. * man/LINGUAS.po4a: Add sv. * man/Makefile.am (DIST_SUBDIRS): Add sv. * man/sv/Makefile.am, man/sv/translator.add: New files. * man/po4a/Makefile.am (POFILES): Add po/sv.po. * man/po4a/po4a.cfg (po4a_langs): Add sv. * man/THANKS: Add translator credit. * .gitignore: Add man/sv/man1, man/sv/man5, and man/sv/man8.
* Fix tests when build fs does not support high-precision timestampsColin Watson2014-09-24
| | | | | | | | | | | | | | | * gnulib: Import nanosleep module. * configure.ac: Remove STAT_HAS_NSEC substitution. * src/tests/Makefile.am (TESTS_ENVIRONMENT): Stop exporting STAT_HAS_NSEC. (AM_CPPFLAGS, AM_CFLAGS, check_PROGRAMS, fspause_SOURCES, fspause_LDADD): Add. * src/tests/fspause.c: New file. * src/tests/mandb-2, src/tests/mandb-3, src/tests/mandb-4, src/tests/mandb-5: Call ./fspause rather than next_second. * src/tests/testlib.sh (next_second): Remove. * .gitignore: Add src/tests/.deps and src/tests/fspause. * NEWS: Document this.
* Add systemd tmpfiles snippet to clean up old cat files after a weekColin Watson2014-06-17
| | | | | | | | | | | | Fixes Fedora bug #1110274. * configure.ac: Accept --with-systemdtmpfilesdir option. (AC_CONFIG_FILES): Add init/Makefile and init/systemd/Makefile. * Makefile.am (SUBDIRS): Add init. * init/Makefile.am: New file. * init/systemd/Makefile.am: New file. * init/systemd/man-db.conf: New file. * .gitignore: Add init/Makefile and init/systemd/Makefile.
* * .bzrignore: Move to ...Colin Watson2013-12-09
* .gitignore: ... here, adjusting for differences between bzr and git. * Makefile.am (EXTRA_DIST): Replace .bzrignore with .gitignore. * gnulib: Add --no-vc-files.