| Commit message (Collapse) | Author | Age |
... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In line with Gnulib, we now require Autoconf 2.63 and Automake 1.11.2.
* bootstrap: Sync to Gnulib d271f868a8df9bbec29049d01e056481b7a1a263.
* bootstrap.conf (GNULIB_REVISION): Set to
d271f868a8df9bbec29049d01e056481b7a1a263.
(buildreq): Bump required autoconf version to 2.63 and required automake
version to 1.11.2.
* configure.ac (AM_SILENT_RULES, AM_PROG_AR): Remove conditionals, which
were there for Automake 1.10 support.
(AC_PREREQ): Bump to 2.63.
* NEWS: Document this.
|
|
|
|
|
| |
* m4/man-tar-sort-name.m4: New file.
* configure.ac: Call MAN_TAR_SORT_NAME.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
| |
Fixes Savannah bug #54541.
* configure.ac: Issue an error if AC_PROG_LEX didn't find a lexer
generator and either src/lexgrog.c or src/zsoelim.c is missing (as may
be the case when building from a git clone rather than a released
tarball).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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 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.
|
|
|
|
|
|
|
| |
* m4/man-arg-systemdtmpfilesdir.m4: Get tmpfiles directory location from
pkg-config.
* configure.ac: Call PKG_PROG_PKG_CONFIG early to avoid problems with
conditional use of PKG_* macros.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
man-db has created its cache directories as setgid root for nearly 20
years. This seems to have originated in https://bugs.debian.org/26002.
However, this has some dangerous consequences, such as:
http://www.halfdog.net/Security/2015/SetgidDirectoryPrivilegeEscalation/
It seems best to arrange for cache files and directories to be man:man
rather than man:root. To do this reliably, as well as adjusting various
chown and chmod calls, we make man and mandb be setgid man as well as
setuid man (except in the --disable-setuid case). This is a much
simpler and safer solution to the original problem, and doesn't
introduce any interesting new privilege since the man group's only real
purpose is to be the man user's primary group and nothing in cache
directories is group-writeable.
* configure.ac (AC_CHECK_FUNCS): Add lchown.
* lib/security.c (init_security): Record initial real and effective
group IDs as well as user IDs.
(drop_effective_privs, regain_effective_privs): Update gid.
* lib/xchown.c (xlchown) [HAVE_LCHOWN]: New function.
* lib/xchown.c (xlchown) [HAVE_LCHOWN]: Add prototype.
* m4/man-arg-setuid.m4: Set man_mode to 6755 rather than 4755 in the
--enable-setuid case.
* src/Makefile.am (install-exec-hook): Check for man_mode being 6755
rather than 4755. Set the group of man and mandb as well as their
owner.
* src/check_mandirs.c (chown_if_possible): New function. This is
somewhat more careful than previous implementations, changes the group
as well as the user if possible, and prefers lchown if it is available.
(mkcatdirs): Drop S_ISGID from cat directories. Use chown_if_possible.
(fix_permissions, fix_permissions_tree): New functions to remove setgid
bit from existing cat directories.
(testmandirs): Call fix_permissions_tree.
* src/check_mandirs.h (chown_if_possible): Add prototype.
* src/man.c (commit_tmp_cat): Set cat file group as well as owner.
* src/mandb.c (check_chown): Remove.
(do_chown): Stop taking a uid parameter. Use chown_if_possible.
(mandb): Use chown_if_possible for CACHEDIR.TAG. Set ownership and
permissions of CACHEDIR.TAG even if it already exists.
(process_manpath): Set ownership of database files even if they have not
been changed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a pipecmd in make_display_command to combine multiple blank lines in
the output into one, which is what e.g. less -s does.
Stop automatically appending -s to pager command in configure.
Fixes Debian bug #796584.
* configure.ac: Stop automatically appending -s to pager command.
* src/man.c (squeeze_blank_lines): New function.
(make_display_command): Add squeeze_blank_lines to display pipeline.
|
| |
|
|
|
|
|
|
|
| |
This isn't very useful in practice since anyone using this could just
use GDBM directly instead, but it's helpful for testing.
* configure.ac: Check for gdbm-ndbm.h and libgdbm_compat.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since we don't want to keep Gnulib translations in revision control,
we need gnulib-tool on $PATH when generating the build system in
order to fetch them, but it's unnecessarily awkward to require
everyone to have this just in order to build man-db from git. Allow
building without this, although it is still required for "make
dist".
* configure.ac: No longer issue an error if gnulib/po/Makefile.in.in
is missing. Instead, set the Automake conditional HAVE_GNULIB_PO to
true if and only if gnulib/po/POTFILES.in exists, and only create
gnulib/po/Makefile.in if gnulib/po/Makefile.in.in exists.
* Makefile.am (SUBDIRS): Only include gnulib/po if HAVE_GNULIB_PO is
true.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
| |
* gnulib: Import dirent module.
* configure.ac: Remove obsolescent AC_HEADER_DIRENT macro.
* src/check_mandirs.c: Simplify a large conditional block to
"#include <dirent.h>".
* src/straycats.c: Likewise.
* src/ult_src.c: Likewise.
|
|
|
|
|
|
|
|
|
| |
* 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".
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Reported by Peng Yu.
* src/man.c (make_display_command): Set pager_cmd's working
directory to man's original working directory.
* configure.ac: Require libpipeline >= 1.3.0.
* 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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|