Blob Blame History Raw
2017-11-14  Colin Watson  <>

	Version: 1.5.0.

	* lib/ (libpipeline_la_LDFLAGS): Bump -version-info to 6:0:5.

2017-11-14  Colin Watson  <>

	Add pipecmd_pre_exec function

	* lib/pipeline-private.h (struct pipecmd): Add pre_exec_func,
	pre_exec_free_func, and pre_exec_data.
	* lib/pipeline.c (pipecmd_new, pipecmd_new_function,
	pipecmd_new_sequencev): Initialise cmd->pre_exec_func,
	cmd->pre_exec_free_func, and cmd->pre_exec_data.
	(pipecmd_dup): Copy cmd->pre_exec_func, cmd->pre_exec_free_func, and
	cmd->pre_exec_data if necessary.
	(pipecmd_pre_exec): New function.
	(pipecmd_exec): If cmd->pre_exec_func is set, call it immediately before
	calling execvp or cmd->func.
	* lib/pipeline.h (pipecmd_pre_exec): Add prototype.
	(pipeline_install_post_fork): Cross-reference pipecmd_pre_exec in
	* man/ (FUNCTIONS): Add pipecmd_pre_exec.
	* man/libpipeline.3 (Functions to build individual commands): Document
	(Functions to run pipelines and handle signals): Cross-reference
	pipecmd_pre_exec from pipeline_install_post_fork.
	* tests/basic.c (test_basic_pre_exec): Test pipecmd_pre_exec.
	* NEWS: Document this.
	* README: Update copyright years.

2017-07-10  Colin Watson  <>

	tests/read.c: Update program_name

2017-07-10  Colin Watson  <>

	Version: 1.4.2.

	* lib/ (libpipeline_la_LDFLAGS): Bump -version-info to 5:2:4.

2017-07-10  Colin Watson  <>

	Fix EOF detection in get_line

	* lib/pipeline.c (get_line): A short read isn't a reliable way to detect
	end-of-file.  Instead, keep track of the previous buffer length returned
	by get_block; if we get the same length twice in a row then that
	indicates EOF.
	* tests/reading_long_line.c: Rename to ...
	* tests/read.c: ... this.  Update build system and test names to match.
	(slow_line_helper, test_read_readline_slow): New test.

2017-07-10  Colin Watson  <>

	Various autotools upgrades

	Upgrade to Automake 1.15.1, config.guess 2016-10-02, config.sub
	2016-11-04, and Libtool 2.4.6-2 (from Debian).

2016-10-13  Colin Watson  <>

	Add home page URL to README

	Suggested by Christopher Yeleighton.

2015-08-17  Colin Watson  <>

	Version: 1.4.1.

	* lib/ (libpipeline_la_LDFLAGS): Bump -version-info to

2015-08-17  Colin Watson  <>

	Upgrade to Automake 1:1.15-3 (from Debian).

2015-08-16  Colin Watson  <>

	Fix test failure with Check 0.10.0

	Reported by Bruce Dubbs.

	* tests/inspect.c (pid_helper): Set SIGTERM back to SIG_DFL, in case
	Check installed its own handler for that.
	* NEWS: Document this.

2015-08-06  Colin Watson  <>

	Upgrade to Automake 1.15.

2015-06-18  Colin Watson  <>

	Various autotools upgrades

	* aclocal.m4: Upgrade to Gettext 0.19.4.
	* build-aux/ Upgrade to Libtool 2.4.2-1.11 (from Debian).

2014-10-26  Colin Watson  <>

	Version: 1.4.0.

	* lib/ (libpipeline_la_LDFLAGS): Bump -version-info to

2014-10-26  Colin Watson  <>

	Remove generated gnulib/lib/fcntl.h, added by accident

	* gnulib/lib/fcntl.h: Remove.
	* .gitignore: Add gnulib/lib/fcntl.h.

2014-10-24  Colin Watson  <>

	Add pipecmd_fchdir function

	* lib/pipeline-private.h (struct pipecmd): Add cwd_fd.
	* lib/pipeline.c (pipecmd_new, pipecmd_new_function,
	pipecmd_new_sequencev): Initialise cmd->cwd_fd.
	(pipecmd_dup): Copy cmd->cwd_fd if necessary.
	(pipecmd_fchdir): New function.
	(pipecmd_dump, pipecmd_tostring): Serialise cmd->cwd_fd as "(cd <fd
	%d> && ...)" if necessary.
	(pipecmd_exec): If cmd->cwd_fd is set, fchdir to it.
	* lib/pipeline.h (pipecmd_fchdir): Add prototype.
	* man/ (FUNCTIONS): Add pipecmd_fchdir.
	* man/libpipeline.3 (Functions to build individual commands):
	Document pipecmd_fchdir.
	* tests/basic.c (test_basic_fchdir): Test pipecmd_fchdir.
	* NEWS: Document this.

2014-10-23  Colin Watson  <>

	NEWS: Document recent Solaris portability changes

2014-10-23  Colin Watson  <>

	Add a cleaner way to suppress "Terminated" errors in tests

	* lib/pipeline.c (pipecmd_exec, pipeline_wait_all): If
	PIPELINE_QUIET is set, don't emit an error message when a subprocess
	is terminated by a signal.
	* man/libpipeline.3 (ENVIRONMENT): Document this.
	* tests/inspect.c (test_inspect_pid): Use this rather than assigning
	to stderr, which is not portable to Solaris.  Reported by Peter

2014-10-22  Colin Watson  <> Avoid "export VARIABLE=value" syntax

	Older Solaris shells do not support this.  Patch by Peter Bray.

2014-10-22  Colin Watson  <>

	gnulib: Import mkdtemp module.

	Suggested by Peter Bray.

2014-09-22  Colin Watson  <>

	Version: 1.3.1.

	* lib/ (libpipeline_la_LDFLAGS): Bump -version-info to

2014-09-22  Colin Watson  <>

	Fix build on systems with neither setenv nor clearenv

	Fixes Savannah bug #43265.

	* lib/pipeline.c (clearenv): Don't define if defined(HAVE_SETENV),
	as in that case gnulib will provide this symbol.
	* lib/pipeline-private.h (clearenv): Likewise.
	* NEWS: Document this.

2014-09-17  Colin Watson  <>

	Make sure that the generated shared library has no undefined symbols

	Based on a change found in

	* lib/ (libpipeline_la_LDFLAGS): Add -no-undefined.

2014-09-15  Colin Watson  <>

	Various autotools upgrades

	* aclocal.m4: Upgrade to pkg-config 0.28 and Gettext 0.19.2.
	* build-aux/config.sub: Upgrade to 2014-09-11.
	* build-aux/ Upgrade to Libtool 2.4.2-1.10 (from Debian).

2014-08-03  Colin Watson  <>

	Update to config.guess 2014-03-23 and config.sub 2014-05-01.

2014-04-24  Colin Watson  <>

	Fix test failures on Cygwin.

	Reported by Chris J. Breisch.

	* Define SHELL as a C preprocessor symbol.
	* tests/basic.c (test_basic_wait_all, test_basic_setenv,
	test_basic_unsetenv, test_basic_clearenv): Execute SHELL rather than
	* tests/exec.c (test_exec_process): Likewise.

	* tests/basic.c (test_basic_args, test_basic_pipeline,
	test_basic_unsetenv, test_basic_clearenv, test_basic_chdir,
	test_basic_sequence): Check for pipeline_readline returning NULL.
	* tests/inspect.c (test_inspect_pid): Likewise.
	* tests/redirect.c (test_redirect_files): Likewise.

	* NEWS: Document this.

2014-03-26  Colin Watson  <>

	Version: 1.3.0.

	* lib/ (libpipeline_la_LDFLAGS): Bump -version-info to

2014-03-26  Colin Watson  <>

	* NEWS: Set next version to 1.3.0, due to new API.

	* lib/pipeline.c (pipecmd_dump): Simplify one fprintf to fputs.

	Upgrade to Automake 1:1.14.1-3 (from Debian).

2014-03-26  Colin Watson  <>

	Add pipecmd_chdir function

	* lib/pipeline-private.h (struct pipecmd): Add cwd.
	* lib/pipeline.c (pipecmd_new, pipecmd_new_function,
	pipecmd_new_sequencev): Initialise cmd->cwd.
	(pipecmd_dup): Copy cmd->cwd if necessary.
	(pipecmd_chdir): New function.
	(pipecmd_dump, pipecmd_tostring): Serialise cmd->cwd as "(cd %s &&
	...)" if necessary.
	(pipecmd_exec): If cmd->cwd is set, chdir to it.
	(pipecmd_free): Free cmd->cwd.
	* lib/pipeline.h (pipecmd_chdir): Add prototype.
	* man/ (FUNCTIONS): Add pipecmd_chdir.
	* man/libpipeline.3 (Functions to build individual commands):
	Document pipecmd_chdir.
	* tests/basic.c (test_basic_chdir): Test pipecmd_chdir.
	* NEWS: Document this.

2014-02-20  Colin Watson  <>

	Move Autotools auxiliary build files from tools to build-aux.

	"build-aux" is a more conventional location for the Autotools files.

2014-02-18  Colin Watson  <>

	Upgrade to Gnulib 20140202 and Libtool 2.4.2-1.7 (from Debian).

2014-02-06  Colin Watson  <>

	Upgrade to Automake 1.14.1 and Libtool 2.4.2-1.6 (from Debian).

2013-12-18  Colin Watson  <>

	Version: 1.2.6.

	* lib/ (libpipeline_la_LDFLAGS): Bump -version-info to

2013-12-18  Colin Watson  <>

	Fix occasional failure in test_pump_tee

	* tests/pump.c (test_pump_tee): Wait for child processes before
	testing output.
	* NEWS: Document this.

2013-12-18  Colin Watson  <>

	Clarify pipeline_wait's return value

	* man/libpipeline.3 (pipeline_wait): Synchronise description of
	return value with pipeline.h.

2013-12-03  Colin Watson  <>

	Version: 1.2.5.

	* lib/ (libpipeline_la_LDFLAGS): Bump -version-info to

2013-12-03  Colin Watson  <>

	gnulib: Import gnupload module.

2013-12-03  Colin Watson  <>

	Build with large file support where available

	* gnulib: Import largefile module.
	* NEWS: Document this.

2013-12-03  Colin Watson  <>

	Automatically generate ChangeLog from git

	* ChangeLog: Move to ...
	* ChangeLog-2013: ... here.
	* (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.