Subject: CVS commit: pkgsrc/pkgtools/pkg_install/files
To: None <>
From: Ben Collver <>
List: pkgsrc-changes
Date: 11/22/2005 15:45:00
Module Name:	pkgsrc
Committed By:	ben
Date:		Tue Nov 22 15:45:00 UTC 2005

Modified Files:
	pkgsrc/pkgtools/pkg_install/files/add: add.h extract.c
	    futil.c perform.c
	pkgsrc/pkgtools/pkg_install/files/create: perform.c
	pkgsrc/pkgtools/pkg_install/files/info: perform.c
	pkgsrc/pkgtools/pkg_install/files/lib: fexec.c file.c lib.h
Added Files:
	pkgsrc/pkgtools/pkg_install/files/lib: pexec.c

Log Message:
Reduce the use of the system() function in pkg_install to avoid quoting
problems.  Instead, use exec*() functions.

Replace PUSHOUT() macro and string buffers with a function that
operates on data structures.

If it is necessary to copy files into place from staging area, then use
pax to copy them.

Add functions in pexec.c to create a pipe for sending data to a child
process.  Replace pipe code in create/perform.c with these functions.
Use these functions instead of command-line arguments when copying files
into place from staging area.

Three system() references remain: @exec, @unexec, and vsystem().

To generate a diff of this commit:
cvs rdiff -r1.12 -r1.13 pkgsrc/pkgtools/pkg_install/files/add/ \
cvs rdiff -r1.5 -r1.6 pkgsrc/pkgtools/pkg_install/files/add/add.h
cvs rdiff -r1.6 -r1.7 pkgsrc/pkgtools/pkg_install/files/add/futil.c
cvs rdiff -r1.34 -r1.35 pkgsrc/pkgtools/pkg_install/files/add/perform.c
cvs rdiff -r1.11 -r1.12 pkgsrc/pkgtools/pkg_install/files/create/
cvs rdiff -r1.9 -r1.10 pkgsrc/pkgtools/pkg_install/files/create/perform.c
cvs rdiff -r1.25 -r1.26 pkgsrc/pkgtools/pkg_install/files/info/perform.c
cvs rdiff -r1.10 -r1.11 pkgsrc/pkgtools/pkg_install/files/lib/
cvs rdiff -r1.5 -r1.6 pkgsrc/pkgtools/pkg_install/files/lib/fexec.c
cvs rdiff -r1.14 -r1.15 pkgsrc/pkgtools/pkg_install/files/lib/file.c
cvs rdiff -r1.17 -r1.18 pkgsrc/pkgtools/pkg_install/files/lib/lib.h
cvs rdiff -r0 -r1.1 pkgsrc/pkgtools/pkg_install/files/lib/pexec.c
cvs rdiff -r1.51 -r1.52 pkgsrc/pkgtools/pkg_install/files/lib/version.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.