| Commit message (Collapse) | Author | Age |
|\ |
|
|\| |
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This makes more sense as a home for plain file name manipulation
utilities. I also merged `include/comp_src.h.in` into
`lib/compression.c`, because structure definitions (as opposed to
declarations) don't belong in header files.
* src/compression.c: Move to ...
* lib/compression.c: ... here. Remove unnecessary `pipeline.h` include.
* src/compression.h: Move to ...
* lib/compression.h: ... here. Update positioning of all includes.
* lib/Makefile.am (libman_la_SOURCES): Add `compression.c` and
`compression.h`.
* lib/README: Add `compression.*`.
* src/Makefile.am (lexgrog_SOURCES, man_SOURCES, man_recode_SOURCES,
mandb_SOURCES): Remove `compression.c` and `compression.h`.
* include/comp_src.h (comp_list): Move to ...
* lib/compression.c (comp_list): ... here. Update all references.
* include/manconfig.h (struct compression, comp_list): Move to ...
* lib/compression.h (struct compression, comp_list): ... here. Add
includes where necessary.
* Makefile.am (noinst_HEADERS): Remove `include/comp_src.h`.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
GitLab uses https://github.com/licensee/licensee to detect the project's
licence, and if that finds multiple matching files then it throws up its
hands and refuses to make a licence assertion, with no apparent way to
override it.
To avoid this problem, move the secondary licence files (those that
apply only to some files, rather than to the project as a whole) back
into a subdirectory, so that `licensee` doesn't notice them.
* COPYING.GPLv2: Move to ...
* docs/COPYING.GPLv2: ... here. Update all references.
* COPYING.LIB: Move to ...
* docs/COPYING.LIB: ... here. Update all references.
* Makefile.am (dist_noinst_DATA): Remove COPYING.GPLv2.
* docs/Makefile.am (dist_noinst_DATA): Add COPYING.GPLv2 and
COPYING.LIB.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
While man-db's own files are individually licensed under GPLv2 (or in a
few cases LGPLv2.1), the project as a whole is effectively GPLv3 due to
Gnulib. This was already explained in README.md, but make it a bit
clearer by having the top-level COPYING file be a copy of GPLv3.
* COPYING: Move to ...
* COPYING.GPLv2: ... here.
* COPYING: New file.
* Makefile.am (dist_noinst_DATA): Add COPYING.GPLv2.
* lib/README, man/it/man1/apropos.man1, man/it/man1/man.man1,
man/it/man1/manpath.man1, man/it/man1/whatis.man1,
man/it/man1/zsoelim.man1, man/it/man5/manpath.man5,
man/it/man8/accessdb.man8, man/it/man8/catman.man8,
man/it/man8/mandb.man8, 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, manual/comp.me, manual/db.me, manual/files.me,
manual/format.me, manual/glossary.me, manual/intro.me, manual/leader.me,
manual/man_db.me, manual/misc.me, manual/sec.me: Refer to COPYING.GPLv2
rather than COPYING.
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* manual/print-options: Explicitly set `LANGUAGE=''` rather than
`LANGUAGE=`, pacifying shellcheck SC1007 which notes that this
construction might otherwise be misread.
* src/tests/manconv-odd-combinations: Use `printf %b` to pacify
shellcheck SC2059.
* src/tests/testlib.sh: Tell shellcheck which shell syntax to assume,
since this file has no `#!` line.
(run): Disable shellcheck SC2154; `abs_top_builddir` is always set by
the test runner.
(report): Remove unnecessary `$` before variable in arithmetic context.
(tools/checkman): Use `$(...)` for command substitution. Quote
variables properly where possible, and ignore shellcheck SC2068 in a
couple of other places.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Inspired by a patch from B. Wiedemann, but implemented differently.
* manual/Makefile.am (version): Set "td" string to the package's release
date, since otherwise groff's me package will use the current date.
* NEWS.md: Document this.
|
|\| |
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* .pre-commit-config.yaml: New file.
* .gitlab-ci.yml (stages): Add bootstrap.
(pre-commit): New job.
(bootstrap): Move to bootstrap stage.
Remove trailing whitespace from all files.
|
|\| |
|
|\| |
|
|\| |
|
|\| |
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Nowadays "on-line" tends to be understood as "on the internet" rather
than "on a screen", so avoid the term.
Reported by Dan Jacobson. Fixes Debian bug #774402.
* docs/man-db.lsm: Say "system help files" rather than "on-line help
files".
* man/man1/man.man1 (NAME): Say "system reference manuals" rather than
"on-line reference manuals".
* manual/intro.me (Introduction): Say "information" rather than "online
information".
* manual/man_db.me: Say "manual page system" rather than "online manual
page system".
* man/man1/lexgrog.man1 (EXAMPLES): Update examples quoting man(1)'s
description.
* manual/db.me (Example database): Likewise.
* manual/intro.me (Introduction): Likewise.
* src/tests/man-mandatory-manpath: Update test quoting man(1)'s
description.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This was a minor optimisation that wasn't worth the extra code
complexity.
* configure.ac (COMP_SRC): Remove.
* include/comp_src.h.in: Remove COMP_SRC conditional. comp_list will
simply contain only the terminal entry if no compressors are configured.
* include/manconfig.h.in: Remove COMP_SRC conditional and comment.
* manual/comp.me (Compressed manual pages): Remove documentation of
COMP_SRC; explain that support depends on the decompressors available at
configure time.
* src/compression.c: Remove COMP_SRC conditional.
(comp_info): Only do the HP-UX check if gunzip is available.
* src/filenames.c (make_filename): Remove parenthetical comment about
COMP_SRC.
(filename_info): Remove COMP_SRC conditionals.
* src/man.c (convert_name): Likewise.
* src/straycats.c (check_for_stray): Likewise.
* src/ult_src.c (ult_src): Likewise.
* NEWS: Document this.
|
|\| |
|
|\| |
|
|\| |
|
| |
| |
| |
| |
| |
| | |
* manual/Makefile.am ($(MANUAL).pp, .pp.dvi, .pp.ps, .pp.tdvi,
.tdvi.tps, .pp.cat, .pp.html): Use "mv -f" rather than just "mv", since
Automake seems to prefer that for its own rules.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes Savannah bug #56254.
* manual/Makefile.am ($(MANUAL).pp, .pp.dvi, .pp.ps, .pp.tdvi,
.tdvi.tps, .pp.cat, .pp.html): Write output to *.new files and rename
into place, so that failures are properly retried in future runs.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* m4/man-arg-manual.m4: New file.
* configure.ac: Add MAN_ARG_MANUAL.
* manual/Makefile.am: Perform most rules only if BUILD_MANUAL is true.
* manual/intro.me (Arguments to configure): Add --disable-manual.
* README (Non-generic arguments to configure): Update.
* NEWS: Document this.
|
|\| |
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* manual/intro.me (Arguments to configure): Add --enable-cache-owner and
--disable-cache-owner. Remove --enable-setuid[=ARG]. Adjust
description of --disable-setuid.
* manual/misc.me (Modes of operation): Add --disable-cache-owner to the
non-setuid modes. Mention --enable-setuid rather than
--enable-setuid=USER.
* README (Non-generic arguments to configure): Update.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
|
| |
nroff's UTF-8 output is a bit wonky in this case, but ASCII will do
fine.
* manual/Makefile.am (.pp.cat): Set LC_ALL=C.
|
| |
|
|
|
|
| |
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.
|
|
|
|
|
| |
* manual/db.me (Contents of an index database): Insert several
zero-width break points in descriptions of entry formats.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|