| Commit message (Collapse) | Author | Age |
|\ |
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes Debian bug #913351.
* src/lexgrog.l (MAN_NAME): Split into MAN_NAME (left-hand side) and
MAN_DESC (right-hand side). Most rules remain as before, except that \-
and similar are only handled specially in MAN_NAME and transition to
MAN_DESC, and rules that add a 0x11 marker (indicating the start of a
new whatis definition) transition to MAN_NAME.
(MAN_NAME_AT, MAN_NAME_BSX, MAN_NAME_BX, MAN_NAME_BX_RELEASE,
MAN_NAME_DQ, MAN_NAME_FX, MAN_NAME_NX, MAN_NAME_OX): Rename to
MAN_DESC_*.
(mdoc_text): Transition to MAN_DESC rather than MAN_NAME.
(newline_found): If adding 0x11, transition to MAN_NAME.
* src/tests/lexgrog-3: New file.
* src/tests/Makefile.am (ALL_TESTS): Add lexgrog-3.
* NEWS: Document this.
|
| |
| |
| |
| |
| | |
* src/tests/lexgrog-2: New file.
* src/tests/Makefile.am (ALL_TESTS): Add lexgrog-2.
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This lets us produce more accurate error messages when programs are
invoked with an absolute path.
* bootstrap.conf (gnulib_modules): Add progname.
* include/manconfig.h.in (program_name): Remove.
* src/accessdb.c (main): Call set_program_name rather than similar
hand-rolled code.
* src/catman.c (main): Likewise. Don't free program_name.
* src/globbing_test.c (main): Likewise.
* src/lexgrog_test.c (main): Likewise.
* src/man.c (main): Likewise. Don't free program_name.
* src/manconv_main.c (main): Likewise.
* src/mandb.c (main): Likewise. Don't free program_name.
* src/manpath.c (main): Likewise.
* src/tests/fspause.c (main): Likewise.
* src/whatis.c (main): Likewise.
* src/zsoelim_main.c (main): Likewise.
* src/man.c (manopt_to_env): Run program_name through base_name, since
that's no longer necessarily done up-front.
* src/whatis.c (main): Run program_name through base_name before
comparing it to APROPOS_NAME, since that's no longer necessarily done
up-front.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* bootstrap.conf (GNULIB_URL): Remove.
(GNULIB_REVISION): Set to 90f289f249a266b1afb9c63e182f5d979d17df5f.
(gnulib_modules): Replace gettext with gettext-h.
(gnulib_tool_option_extras): Remove --no-cache-modules (accidental
leftover from earlier testing).
(local_gl_dir): Set to 'gnulib-local' to avoid confusion with 'gl' as
the local output directory. Remove 'rm -rf gl' hack, now superseded.
(buildreq): Bump minimum autopoint and gettext versions to 0.18.3,
matching previous change to configure.ac.
* configure.ac (AM_PROG_AR, LT_INIT): Move below gl_EARLY.
* patches/argp-domain.patch: Rebase.
* src/tests/Makefile.am (TESTS_ENVIRONMENT): Remove use of
@LOCALCHARSET_TESTS_ENVIRONMENT@, which is no longer needed by Gnulib.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
|
|
|
|
|
|
| |
Fixes Savannah bug #53575.
* m4/man-arg-cache-owner.m4: Set and substitute cache_top_owner.
* init/systemd/man-db.conf.in: Substitute cache_top_owner rather than
man_owner.
* init/systemd/Makefile.am (man-db.conf): Likewise.
* NEWS: Document this.
|
|
|
|
|
| |
* src/tests/man-8: Fix expected output to account for recent change to
locale_macros.
|
|
|
|
|
|
|
|
|
| |
* Makefile.am, NEWS, README, docs/HACKING, docs/INSTALL.quick,
lib/sandbox.c, manual/misc.me, src/check_mandirs.c, src/man.c,
src/manconv.c, src/tests/man-1, src/tests/man-2, src/tests/mandb-2,
src/tests/mandb-4, src/tests/mandb-5, src/tests/zsoelim-1: Replace
http:// links with https:// equivalents.
* docs/HACKING: Replace git:// link with an https:// equivalent.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes Debian bug #877199.
* configure.ac: Require libpipeline >= 1.5.0. Call MAN_LIBSECCOMP.
* docs/INSTALL.quick: Bump minimum libpipeline version to 1.5.0. List
libseccomp as recommended.
* lib/Makefile.am (libman_la_CPPFLAGS): Add $(libseccomp_CFLAGS).
(libman_la_SOURCES): Add sandbox.c and sandbox.h.
(libman_la_LDFLAGS): Add $(libseccomp_LIBS).
* lib/sandbox.c: New file.
* lib/sandbox.h: New file.
* m4/man-libseccomp.m4: New file.
* src/man.c (set_term): Check that process ID matches original before
calling tcsetattr.
(get_term): Record original process ID to work around an arguable bug in
pipecmd_exec.
* src/lexgrog_test.c (main), src/man.c (main), src/manconv_main.c
(main), src/mandb.c (main), src/zsoelim_main.c (main): Initialise
sandbox.
* lib/decompress.c (decompress_open, decompress_fdopen): Attach sandbox
to decompression commands.
* src/lexgrog.l (find_name): Attach sandbox to 'col'.
* src/man.c (add_col): Attach sandbox to 'col'.
(make_roff_command): Attach sandbox to 'zsoelim' and to groff-related
programs.
(add_output_iconv): Attach sandbox to 'iconv'.
(make_display_command): Attach sandbox to 'tr'.
(open_cat_stream, display_catman): Attach sandbox to compression
commands.
* src/manconv_client.c (add_manconv): Attach sandbox to manconv_stdin.
* src/straycats.c (check_for_stray): Attach sandbox to 'col'.
* src/whatis.c (use_grep): Attach sandbox to 'grep'.
* src/accessdb.c, src/catman.c, src/globbing_test.c, src/manpath.c:
Define stub sandbox variable.
* docs/NEWS: Document this.
|
|
|
|
| |
Needed to make the previous commit portable.
|
| |
|
|
|
|
|
|
| |
Reduces disk reads/writes made by 'make check -C src'.
Fall back to ./tmp-* if 'mktemp -d' fails.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's useful to have a notion of the cache owner even when man is not
installed setuid. --enable-setuid no longer takes an argument, and the
owner is now set by the --enable-cache-owner option instead.
* m4/man-arg-cache-owner.m4: New file.
* m4/man-arg-setuid.m4: Stop accepting an argument. Only set man_mode,
not man_owner.
* configure.ac: Call MAN_ARG_CACHE_OWNER.
* src/Makefile.am (install-exec-hook): Only chown man and mandb if
man_mode is 4755 (as well as the existing test for man_owner being
non-empty).
|
| |
|
|
|
|
| |
* src/tests/man-9: Set MANPATH.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`man chmod.2` is now the same as `man 2 chmod`
* src/man.c (split_page_name): New function.
(locate_page_in_manpath): New function.
(man): Factor out common locate_page loop into locate_page_in_manpath.
Add name/section splitting logic.
* src/tests/man-11: New file.
* src/tests/Makefile.am (ALL_TESTS): Add man-11.
* man/man1/man.man1 (SYNOPSIS): Document <page>.<section> form.
(EXAMPLES): Likewise.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes Debian bug #764384.
* gnulib: Import save-cwd module.
* src/man.c (make_display_command): Use pipecmd_fchdir rather than
pipecmd_chdir if the working directory was saved using a file
descriptor.
(format_display, main): Save current working directory using
save_cwd rather than xgetcwd.
(format_display, local_man_loop, main): Restore previous working
directory using restore_cwd rather than chdir.
* src/tests/man-10: New file.
* src/tests/Makefile.am (TESTS_ENVIRONMENT): Insert the parent
directory into $PATH using an absolute path rather than a relative
one. Export abs_top_builddir rather than top_builddir.
(ALL_TESTS): Add man-10.
* src/tests/testlib.sh (init): Set abstmpdir. Adjust tests to use
this where applicable.
(run): Call libtool using an absolute path.
(skip): Remove abstmpdir.
(finish): Remove abstmpdir rather than tmpdir.
* configure.ac: Require libpipeline >= 1.4.0.
* NEWS: Document this.
|
|
|
|
| |
* src/tests/fspause.c (main): Set program_name. Patch by Peter Bray.
|
|
|
|
| |
Suggested by Peter Bray.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Inspired by a similar change in dpkg. This takes 'mandb -c' from
104 to 32 seconds in a test installation, and 'man -K' from 74 to 38
seconds. On non-Linux systems where FIEMAP is not available, use
posix_fadvise instead to preload files.
Fixes Debian bug #574410.
* gnulib: Import nonblocking and openat modules.
* configure.ac: Check for <linux/fiemap.h> and posix_fadvise.
* lib/orderfiles.c: New file.
* lib/orderfiles.h: New file.
* lib/Makefile.am (libman_la_SOURCES): Add orderfiles.c and
orderfiles.h.
* src/check_mandirs.c (add_dir_entries): Order files before reading
them.
* src/man.c (try_section, do_global_apropos_section): Likewise.
* src/straycats.c (check_for_stray): Likewise.
* NEWS: Document this.
|
|
|
|
|
|
|
|
|
|
|
| |
* m4/man-arg-automatic-create.m4, m4/man-arg-automatic-update.m4,
m4/man-arg-cats.m4, m4/man-arg-config-file.m4, m4/man-arg-db.m4,
m4/man-arg-device.m4, m4/man-arg-mandirs.m4,
m4/man-arg-override-dir.m4, m4/man-arg-sections.m4,
m4/man-arg-setuid.m4, m4/man-arg-systemdtmpfilesdir.m4,
m4/man-arg-undoc.m4: New files.
* configure.ac: Call new macros rather than inlining argument
handling.
|
|
|
|
|
|
|
|
|
| |
* configure.ac: Substitute STAT_HAS_NSEC as "yes" or "no" depending
on whether high-precision file timestamps are available.
* src/tests/Makefile.am (TESTS_ENVIRONMENT): Export STAT_HAS_NSEC to
tests.
* src/tests/testlib.sh (next_second): Do nothing if STAT_HAS_NSEC is
"yes".
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lib/util.c (is_changed): Compare high-precision timestamps.
* libdb/db_storage.h (FIELDS): Increment to 10.
(struct mandata): Change "time_t _st_mtime" to "struct timespec
mtime".
* libdb/db_lookup.c (dbprintf): Update mtime display.
(split_content): Store two fields for the mtime (seconds and
nanoseconds).
(make_content): Expect two fields for the mtime.
* libdb/db_store.c (replace_if_necessary): Compare high-precision
timestamps.
* src/check_mandirs.c (test_manfile): Likewise.
* src/man.c (maybe_update_file): Likewise.
* src/straycats.c (check_for_stray): Update initialisation of struct
mandata.
* src/tests/testlib.sh (accessdb_filter): Adjust for new format.
* manual/db.me (Contents of an index database): Describe new format.
(Example database): Update example output.
* NEWS: Document this.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
POSIX.1-2008 marks utime as obsolescent. Switch to variants of the
futimens/utimensat family instead, via Gnulib. Use higher-precision
times for cat pages.
* gnulib: Import stat-time and utimens modules.
* src/man.c (man_modtime): Change type to struct timespec.
(commit_tmp_cat): Use utimens rather than utime.
(display): Store a higher-precision modification timestamp for
man_file.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
* src/tests/mandb-7: Prepend "$(pwd -P)/" to $tmpdir in
configuration files rather than calling realpath.
* NEWS: Document this.
|
|
|
|
|
|
|
|
| |
* src/mandb.c (mandb): Don't create CACHEDIR.TAG if the catpath is
equal to the manpath.
* src/tests/mandb-7: New file.
* src/tests/Makefile.am (ALL_TESTS): Add mandb-7.
* NEWS: Document this.
|
|
|
|
|
| |
This keeps man-db's own tools separate, reducing confusion, and
"build-aux" is a more conventional location for the Autotools files.
|
| |
|
|
|
|
|
|
|
|
| |
* src/tests/man-5: Assign and export shell variables in two steps,
for improved compatibility with some archaic shells.
* src/tests/man-7: Likewise.
* src/tests/man-8: Likewise.
* src/tests/zsoelim-1: Likewise.
|
|
|
|
|
|
|
| |
* src/man.c (gripe_no_man): Don't print "See ... for help" message
when MAN_TEST_DISABLE_UNDOCUMENTED is set in the environment.
* src/tests/man-7: Export MAN_TEST_DISABLE_UNDOCUMENTED=1.
* NEWS: Document this.
|
|
|
|
|
|
|
| |
* src/manp.c (insert_override_dir): Drop braces.
(get_manpath_from_path): Standardise whitespace.
* src/tests/Makefile.am (TESTS_ENVIRONMENT): Use Automake-generated
substitution rather than substituting @override_dir@ again.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* configure.ac: Add --with-override-dir option.
* include/manconfig.h.in (OVERRIDE_DIR): New definition.
* src/manp.c (insert_override_dir): New function.
(get_manpath_from_path): Call it before add_dir_to_list.
* src/tests/man-9: New file.
* src/tests/Makefile.am (TESTS_ENVIRONMENT): Set and export
OVERRIDE_DIR.
(ALL_TESTS): Add man-9.
* NEWS: Document this.
|
| |
|
|
|
|
|
|
|
|
| |
* src/man.c (display): Don't free page_lang if it's going to be used
by locale_macros.
* src/tests/man-8: New file.
* src/tests/Makefile.am (ALL_TESTS): Add man-8.
* NEWS: Document this.
|
|
|
|
|
|
|
|
| |
* src/filenames.c (make_filename): Return NULL if the resulting file
is not readable. Update all callers to handle NULL returns.
* src/tests/man-7: New file.
* src/tests/Makefile.am (ALL_TESTS): Add man-7.
* NEWS: Document this.
|
| |
|
| |
|
|
|
| |
by TheSin.
|
|
|
|
|
|
|
|
| |
en_US.UTF-8 if /usr/share/i18n/SUPPORTED does not exist, the
requested character set is UTF-8, and the current LC_CTYPE locale
is not UTF-8 (Fedora bug #657409).
* src/tests/man-6: New file.
* src/tests/Makefile.am (ALL_TESTS): Add man-6.
* NEWS: Document this.
|
|
|
|
|
|
|
|
|
|
| |
only of a .so directive (Fedora bug #693458).
* src/ult_src.c (find_include): New function, handling manpath
search where necessary.
(ult_src): Call it when a .so directive is found.
* src/Makefile.am (lexgrog_SOURCES): Add globbing.c and globbing.h.
* src/tests/man-5: New file.
* src/tests/Makefile.am (ALL_TESTS): Add man-5.
* NEWS: Document this.
|
| |
|
|
|
|
|
|
|
|
|
| |
environment variable, allowing the test suite to disable PATH
handling. (May change without notice.)
(read_config_file): Honour MAN_TEST_DISABLE_SYSTEM_CONFIG
environment variable, allowing the test suite to disable reading
the system configuration file. (May change without notice.)
* src/tests/testlib.sh: Set MAN_TEST_DISABLE_SYSTEM_CONFIG=1.
* src/tests/man-4: Set MAN_TEST_DISABLE_PATH=1.
|
| |
|