summaryrefslogtreecommitdiff
path: root/gnulib/lib
Commit message (Collapse)AuthorAge
* 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.
* Fix invalid man-db.conf with --disable-cache-ownerColin Watson2018-04-06
| | | | | | | | | | 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.
* man: Only change directory in child processesColin Watson2018-04-05
| | | | | | | | | | | | | | | | | | This avoids failures due to being unable to change back to the original working directory. Fixes Debian bug #894792. * gnulib/m4/gnulib-cache.m4 (gl_MODULES): Remove save-cwd. * src/man.c (make_display_command): Remove now-unnecessary code to run the pager in the original working directory. (chdir_commands): New function. (format_display): Change directory just for format_cmd and disp_cmd rather than in-process. (display): Change directory just for format_cmd rather than in-process. (main): Remove now-unnecessary code to save and restore the current working directory. * NEWS: Document this.
* Confine most untrusted data handling using seccompColin Watson2017-12-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* gnulib: Import memmem moduleColin Watson2017-07-10
| | | | Needed to make the previous commit portable.
* Upgrade to Automake 1.15.1.Colin Watson2017-07-10
|
* Separate cache owner from --enable-setuid optionColin Watson2016-12-09
| | | | | | | | | | | | | | 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).
* Upgrade to Libtool 2.4.6-2 (from Debian)Colin Watson2016-11-21
|
* Upgrade to Automake 1.15.Colin Watson2015-08-02
|
* Make man run correctly from a deleted directoryColin Watson2014-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | 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 strcasestr module.Colin Watson2014-10-23
| | | | Suggested by Peter Bray.
* Work around lack of UTIME_* on GNU/HurdColin Watson2014-09-28
| | | | | | * gnulib/fdutimens-hurd.patch: New file. * autogen.sh: Apply gnulib/fdutimens-hurd.patch. * NEWS: Document this.
* 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.
* Order files by first physical extent before readingColin Watson2014-09-16
| | | | | | | | | | | | | | | | | | | | | 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.
* Move argument handling out of configure to new MAN_ARG_* macrosColin Watson2014-09-15
| | | | | | | | | | | * 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.
* Simplify <dirent.h> handling using GnulibColin Watson2014-09-13
| | | | | | | | | * 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.
* Speed up the test suite if we have high-precision file timestampsColin Watson2014-09-11
| | | | | | | | | * 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".
* Move database mtime out of the database into file metadataColin Watson2014-09-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Switch away from obsolescent utime functionColin Watson2014-09-09
| | | | | | | | | | | | 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.
* 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.
* Move Autotools auxiliary build files from tools to build-aux.Colin Watson2014-02-20
| | | | | This keeps man-db's own tools separate, reducing confusion, and "build-aux" is a more conventional location for the Autotools files.
* Upgrade to Gnulib 20140202 and Libtool 2.4.2-1.7 (from Debian).Colin Watson2014-02-18
|
* Add support for override directory in search pathPeter Schiffer2014-01-23
| | | | | | | | | | | | * 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.
* Upgrade to Automake 1.14.1 and Libtool 2.4.2-1.6 (from Debian).Colin Watson2014-01-23
|
* Fix domain handling in argpColin Watson2014-01-13
| | | | | | * gnulib/argp-domain.patch: New file. * autogen.sh: Apply gnulib/argp-domain.patch. * NEWS: Document this.
* gnulib: Import gnupload module.Colin Watson2013-12-09
|
* Automatically generate ChangeLog from gitColin Watson2013-12-09
| | | | | | | | | * ChangeLog: Move to ... * ChangeLog-2013: ... here. * Makefile.am (EXTRA_DIST): Add ChangeLog-2013. (dist-hook): Add gen-ChangeLog. (gen-ChangeLog): New rule, based on that in coreutils. * gnulib: Import gitlog-to-changelog module.
* * .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.
* Upgrade to Automake 1.14 and Gnulib 20130805.Colin Watson2013-11-27
|
* Upgrade to Gnulib 20130623.Colin Watson2013-06-23
|
* Upgrade to Automake 1.13.3.Colin Watson2013-06-23
|
* * configure.ac: Check whether tbl supports the 'x' format characterColin Watson2013-06-06
| | | | | | (e.g. versions of groff before 1.20), and substitute TBL_X_FORMAT accordingly. * man/replace.sin.in: Replace "l lx." with "l l." if tbl does not support the 'x' format character.
* * configure.ac: Set MANDIR_LAYOUT using AC_SUBST as well asColin Watson2013-06-06
| | | | | | AC_DEFINE/AC_DEFINE_UNQUOTED. * src/tests/Makefile.am (TESTS_ENVIRONMENT): Export MANDIR_LAYOUT. * src/tests/testlib.sh (skip): New function. * src/tests/man-3: Skip unless the GNU layout is in use.
* Quieten most warnings from compiling Gnulib (Debian bug #668429).Colin Watson2013-06-03
| | | | | | | | * configure.ac: Add gl_WARN_ADD results to WARN_CFLAGS rather than CFLAGS. * lib/Makefile.am (AM_CFLAGS): Add $(WARN_CFLAGS). * libdb/Makefile.am (AM_CFLAGS): Likewise. * src/Makefile.am (AM_CFLAGS): Likewise. Move $(libpipeline_CFLAGS) here from AM_CPPFLAGS.
* Upgrade to Automake 1.13.2 and Gnulib 20130529.Colin Watson2013-05-30
| | | | | | | | | | | | | * .bzrignore: Add gnulib/lib/locale.h, man/**/*.log, man/**/*.trs, src/tests/*.log, and src/tests/*.trs. * autogen.sh: Drop gnulib/gets.patch backport. * gnulib/gets.patch: Remove. * configure.ac (AM_INIT_AUTOMAKE): Set minimum Automake version to 1.11. Add parallel-tests option for compatibility with 1.11. * man/Rules.man (TESTS_ENVIRONMENT): Move to ... (LOG_COMPILER): ... this. * src/tests/Makefile.am (TESTS_ENVIRONMENT): Rewrite as a list of variable exports rather than as a command prefix, for compatibility with parallel-tests.
* Backport Gnulib commit 66712c23388e93e5c518ebc8515140fa0c807348 toColin Watson2012-09-17
| | | | | | stop assuming gets. * gnulib/gets.patch: New file. * autogen.sh: Apply gnulib/gets.patch. * NEWS: Document this.
* Upgrade to Automake 1.11.6.Colin Watson2012-09-17
|
* Upgrade to Autoconf 2.69, Automake 1.11.5, and GnulibColin Watson2012-06-18
| | | 20120404-stable.
* Upgrade to Automake 1.11.3.Colin Watson2012-02-09
|
* Add support for Lzip-compressed manual pages.Matias A. Fonzo2012-02-02
| | | | | | | * configure.ac: Check for lzip. Don't test for lzma if lzip is present, as was already the case for xz. * include/comp_src.h.in (comp_list): Add lzip. * include/manconfig.h.in: Define UNLZIP. * NEWS: Document this.
* Upgrade to Automake 1.11.2 and Gnulib 20111211-stable.Colin Watson2012-02-01
| | | * gnulib: Import closedir, fstat, and opendir modules.
* * gnulib: Import getline module (used in lib/encodings.c).Colin Watson2011-10-09
|
* Upgrade to Gnulib 20110908-stable.Colin Watson2011-10-09
|
* Upgrade to Gnulib 20110609-stable.Colin Watson2011-07-08
|
* Upgrade to Autoconf 2.68 and Gnulib 20110412-stable.Colin Watson2011-04-23
|
* Upgrade to Libtool 2.4.Colin Watson2011-04-09
|
* * gnulib: Import flock module.Colin Watson2011-03-28
| | | | | * lib/Makefile.am (libman_la_SOURCES): Remove flock.h. * lib/README: Remove flock.*. * lib/flock.c, lib/flock.h: Remove.
* * m4/man-gcc-warning.m4: Remove.Colin Watson2011-03-28
| | | | * gnulib: Import warnings module. * configure.ac: Replace MAN_GCC_WARNING with gl_WARN_ADD.
* Rewrite all remaining subprocess handling in terms of libpipeline.Colin Watson2011-03-24
| | | | | | | | | | | | | | | | | | | | | | | * lib/security.c (do_system_drop_privs_child): New function. (do_system_drop_privs): Rewrite using libpipeline. * src/catman.c (post_fork): New function. (catman): Rewrite using libpipeline. (add_arg): Rewrite as a wrapper around pipecmd_arg. (do_catman): Remove. (reset_cursor): Remove. (parse_for_sec): Use libpipeline for subprocess handling. (main): Install custom post-fork handler. * src/man.c (gripe_no_man) [_AIX || __sgi]: Rewrite vendor fallback using libpipeline. * src/Makefile.am (catman_LDADD): Add $(libpipeline_LIBS). * src/catman.c (main): Duplicate the output of setlocale if non-NULL. * configure.ac (AC_FUNC_VFORK): Remove. (AC_REPLACE_FUNCS): Remove waitpid. * gnulib: Remove waitpid module. * lib/README: Remove waitpid.c. * lib/waitpid.c: Remove.
* Remove the need for our patched version of xstrdup.Colin Watson2011-03-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lib/encodings.c (get_locale_charset): Check return value of setlocale before passing to xstrdup. (find_charset_locale): Likewise. * lib/pathsearch.c (pathsearch): Check return value of getenv before passing to xstrdup. (pathsearch_executable): Likewise. * lib/tempfile.c (create_tempdir): Adjust appendstr call to avoid needing to pass return value of path_search to xstrdup. * src/check_mandirs.c (test_manfile): Don't pass NULL lg.whatis to xstrdup. * src/descriptions.c (parse_descriptions): Don't pass NULL head->whatis to xstrdup. * src/man.c (main): Check return value of setlocale before passing to xstrdup. (add_col): Only call find_charset_locale if locale_charset is non-NULL. (add_candidate): Don't pass NULL ult to xstrdup. * src/manp.c (read_config_file): Adjust appendstr call to avoid needing to pass return value of getenv to xstrdup. * src/whatis.c (do_apropos): Don't pass NULL info.whatis to xstrdup. (main): Check return value of setlocale before passing to xstrdup. * src/zsoelim.l (zsoelim_stdin_data_new): Don't pass NULL path to xstrdup. * Makefile.am (EXTRA_DIST): Remove gnulib/lib/xmalloc.c.orig and gnulib/lib/xmalloc.patch. * autogen.sh: Stop applying gnulib/lib/xmalloc.patch. * gnulib/lib/xmalloc.c.orig, gnulib/lib/xmalloc.patch: Remove.