History log of /src/bin/pax/pax.c |
Revision | | Date | Author | Comments |
1.52 |
| 05-Aug-2024 |
riastradh | pax(1): Nix trailing whitespace.
No functional change intended.
|
1.51 |
| 05-Aug-2024 |
riastradh | pax(1): Only require getcwd if we're reading without --insecure.
No other paths use the result of getcwd.
PR bin/44498: tar(1) unnecessarily demands that getcwd() work
|
1.50 |
| 05-Aug-2024 |
riastradh | pax(1): Don't require open(".") or getcwd to work for list operation.
PR 44498: tar(1) unnecessarily demands that getcwd() work
|
1.49 |
| 24-Apr-2019 |
cheusov | branches: 1.49.2; 1.49.10; 1.49.12; Fix compilation failure with gcc-8. Equal pointers to 'struct sigaction' should not be passed to sigaction(2). So, we pass NULL as an "old sigaction" structure.
|
1.48 |
| 02-Oct-2017 |
joerg | branches: 1.48.4; Include time.h for time(2). Sort.
|
1.47 |
| 29-Aug-2011 |
joerg | static + __dead
|
1.46 |
| 18-Jun-2011 |
christos | add --xz
|
1.45 |
| 20-Jul-2008 |
lukem | branches: 1.45.18; Remove the \n and tabs from the __COPYRIGHT() strings.
|
1.44 |
| 05-Oct-2007 |
lukem | branches: 1.44.8; Convert to using raise_default_signal(3).
|
1.43 |
| 03-Jul-2007 |
lukem | branches: 1.43.4; In sig_cleanup(), attempt to reset the signal handler to the default and raise the appropriate signal, so the correct wait status is returned to the parent.
|
1.42 |
| 29-Apr-2007 |
msaitoh | fix typos
|
1.41 |
| 23-Apr-2007 |
christos | PR/36194: Greg A. Woods: add a '-V' flag to pax for verbose summary without listing (and other minor fixes)
|
1.40 |
| 11-Feb-2006 |
dsl | Ensure we exit with an error if we don't actually do anything. There are a lot of tty_warn(0,...) and syswarn(0,...) which probably ought to be tty_warn/syswarn(1,...) to force an error exit. However some are used in interactive parts (eg opening a continuation archive) where there is a separate retry loop. So we just pass a failure code out to main() - how quaint! This should now cause the NetBSD build to fail when gzip tries to write to a non-existant directory. (I suspect there are still many errors that don't get reported correctly.)
|
1.39 |
| 11-Feb-2006 |
dsl | Change all the 'return(x)' to 'return c'. Makes some other searches I want to do a bit easier.
|
1.38 |
| 11-Feb-2006 |
dsl | Actually exit with error if we cannot open("."), make it more obvious that we exit with error on signals.
|
1.37 |
| 24-Apr-2005 |
christos | PR/18759: FUKAUMI Naoki: pax/tar dot-dot handling broken PR/18840: Frederick Bruckman: Fix for PR/18663 incomplete pax symlink handling
This patch makes ``--insecure'' do something. Now if ``--insecure'' is not set (the default) we do a realpath(3) in all the pathnames that we are trying to create and if either realpath fails, or the path is outside our working directory, we print a warning and die. This maybe too strict and might fail on valid archives that create symlinks and directories in the wrong order.
|
1.36 |
| 10-Oct-2004 |
christos | PR/27208: Greg A. Woods: pax must call options() before using syswarn() or tty_warn()
|
1.35 |
| 20-Jun-2004 |
jmc | Completely rework how tools/compat is done. Purge all uses/references to _NETBSD_SOURCE as this makes cross building from older/newer versions of NetBSD harder, not easier (and also makes the resulting tools 'different')
Wrap all required code with the inclusion of nbtool_config.h, attempt to only use POSIX code in all places (or when reasonable test w. configure and provide definitions: ala u_int, etc).
Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86 NetBSD current (x86 and amd64) and Solaris 9.
Fixes PR's: PR#17762 PR#25944
|
1.34 |
| 11-May-2004 |
christos | Welcome to WARNS=3
|
1.33 |
| 13-Feb-2004 |
matt | branches: 1.33.2; When pax catches a signal and cleans up, make sure to remove any temporary file that was being extracted to. This will prevent pax from leaving droppings when you hit ^C.
|
1.32 |
| 13-Feb-2004 |
wiz | Uppercase CPU, plural is CPUs.
|
1.31 |
| 27-Oct-2003 |
lukem | Overhaul how `build.sh tools' are used:
* Rename "config.h" to "nbtool_config.h" and HAVE_CONFIG_H to HAVE_NBTOOL_CONFIG_H. This makes in more obvious in the source when we're using tools/compat/config.h versus "standard autoconf" config.h
* Consistently move the inclusion of nbtool_config.h to before <sys/cdefs.h> so that the former can provide __RCSID() (et al), and there's no need to protect those macros any more.
These changes should make it easier to "tool-ify" a program by adding: #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif to the top of the source files (for the general case).
|
1.30 |
| 13-Oct-2003 |
agc | Move Keith Muller's code from a 4-clause to a 3-clause licence by removing the advertising clause. Diffs provided in PR 22397 by Joel Baker, confirmed to the board by Keith Muller.
|
1.29 |
| 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22249, verified by myself.
|
1.28 |
| 08-Jul-2003 |
simonb | Add support for gnutar's -O "extract to stdout" option.
|
1.27 |
| 23-Jun-2003 |
grant | consistently use "cannot" instead of "can not".
|
1.26 |
| 03-Mar-2003 |
grant | call setprogname()
|
1.25 |
| 25-Feb-2003 |
wiz | Add support for '-j' to create (and extract, but -z already did that) bzip2 compressed tar files, for GNU tar compatibility. Patch from Soren Jacobsen in PR 19467, okayed by christos. Sync usage with options while here.
|
1.24 |
| 12-Dec-2002 |
christos | fix horrible side effect introduced by changing the append mode into archive. The append mode already did that, so we always ended up overwriting the archive.
|
1.23 |
| 10-Dec-2002 |
christos | PR/19339: Martin Weber: Tar fails to append on empty files and exits with 0. Revert previous change for PR/18689. We always want to exit with an error if we could not determine the archive format. Instead, treat empty files specially. On list/extract we turn into no/op. On append, we turn into archive.
|
1.22 |
| 20-Oct-2002 |
christos | PR/18733: Jed Davis: stderr is not constant under linux and this is a host tool.
|
1.21 |
| 17-Oct-2002 |
christos | Fix DEFOP botch. DEFOP == LIST so tar -tvf stopped working. (hi soren)
|
1.20 |
| 15-Oct-2002 |
christos | PR/18663: Jeremy Reed: pax/tar/cpio allows ".." in names. We now disallow it by default on both archive creation and extraction. Add --insecure option to override.
|
1.19 |
| 13-Oct-2002 |
mrg | include <string.h> for mem* and str*
|
1.18 |
| 12-Oct-2002 |
christos | merge OpenBSD changes: - correct -C processing - add ability to read filenames and flags from a file - don't print dangerous escape sequences to the terminal - use strlcpy/strncpy properly. - handle tmpfile creation better. - improve documentation of options. - handle stdout/stderr list selection correctly. - kill gzip when we get interrupted. - simplify gzip setup. - add more flags to programs.
additional changes: - librmt processing. - set POSIXLY_CORRECT in options parsing. - prevent more string overruns. - support -T
we don't turn the switch on to replace tar and cpio yet.
|
1.17 |
| 31-Jan-2002 |
tv | branches: 1.17.2; Protect __RCSID and __COPYRIGHT from being invoked if not defined.
|
1.16 |
| 29-Jan-2002 |
tv | Make almost all tools compile and run properly on non-NetBSD hosts. (In particular, most tools now run correctly on Solaris 7.)
|
1.15 |
| 25-Oct-2001 |
lukem | Implement -M flag: During a write or copy operation, treat the list of files on standard input as an mtree(8) `specfile' specification, and write or copy only those items in the specfile.
If the file exists in the underlying file system, its permissions and modification time will be used unless specifically overridden by the specfile. An error will be raised if the type of entry in the specfile conflicts with that of an existing file.
Otherwise, it is necessary to specify at least the following parameters in the specfile: type, mode, gname or gid, and uname or uid, device (in the case of block or character devices), and link (in the case of symbolic links). If time isn't provided, the current time will be used.
|
1.14 |
| 25-Oct-2001 |
lukem | - ansi KNF (just remove all the #ifndef __STDC__ prototype junk, leaving the ansi stuff) - use longlong_t instead of quad_t (etc), and rename *uqd*() -> *ull*() - clean up the NET2_STAT stuff similar to ftpd; provide #defines and macros which select which cast to use, etc - clean up the NET2_FTS and NET2_REGEX #define use
|
1.13 |
| 22-Oct-2000 |
kleink | LC_TIME holds a locale name, which isn't a strftime() format string.
|
1.12 |
| 17-Feb-2000 |
itohy | branches: 1.12.4; Cleanup and fix typos. Partially from FreeBSD.
|
1.11 |
| 01-Nov-1999 |
mrg | add a new -p subflag: 'f' to preserve 4.4BSD fileflags. this only really works for `pax -rw' but that's where it is most useful.
|
1.10 |
| 24-Aug-1999 |
tron | branches: 1.10.2; Strip leading slashes from filenames by default, add new "A" option to disable this behaviour. Patches supplied by Peter Seebach in PR bin/8233.
|
1.9 |
| 03-Mar-1999 |
christos | Add SIGINFO support.
|
1.8 |
| 28-Jul-1998 |
mycroft | Delint.
|
1.7 |
| 27-Jul-1998 |
mycroft | __AUDIT__ cleanup.
|
1.6 |
| 20-Jul-1997 |
christos | - Rename local warn so tty_warn that we can include <err.h> since this program uses err() and errx(). - Fix printf format strings. - Added WARNS=1; note - Added missing prototypes. - Split overloaded trail function into trail() and subtrail().
|
1.5 |
| 26-Mar-1996 |
mrg | impliment -z (gzip) in pax and tar, and -Z (compress) in tar.
|
1.4 |
| 21-Mar-1995 |
cgd | convert to new RCS id conventions.
|
1.3 |
| 14-Jun-1994 |
mycroft | Fix up RCS ids.
|
1.2 |
| 13-Jun-1994 |
jtc | Add RCS ID's
|
1.1 |
| 13-Jun-1994 |
jtc | branches: 1.1.1; Initial revision
|
1.1.1.1 |
| 13-Jun-1994 |
jtc | From 4.4 lite
|
1.10.2.1 |
| 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
1.12.4.1 |
| 25-Oct-2000 |
tv | Pullup 1.13 [kleink]: Don't abuse LC_TIME for strftime(3) format strings.
|
1.17.2.2 |
| 16-Jun-2004 |
jmc | fix botched pullup from ticket #1021 and make sure this compiles on non-NetBSD hosts again. Also fixes PR#24481
|
1.17.2.1 |
| 07-Apr-2004 |
jmc | Pullup rev 1.18-1.33 (requested by rafal in ticket #1021)
Pullup pax to current version on trunk. Includes many fixes.
|
1.33.2.1 |
| 22-Jun-2004 |
tron | branches: 1.33.2.1.2; Pull up revision 1.35 (requested by jmc in ticket #527): Completely rework how tools/compat is done. Purge all uses/references to _NETBSD_SOURCE as this makes cross building from older/newer versions of NetBSD harder, not easier (and also makes the resulting tools 'different') Wrap all required code with the inclusion of nbtool_config.h, attempt to only use POSIX code in all places (or when reasonable test w. configure and provide definitions: ala u_int, etc). Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86 NetBSD current (x86 and amd64) and Solaris 9. Fixes PR's: PR#17762 PR#25944
|
1.33.2.1.2.1 |
| 23-Jul-2005 |
snj | Apply patch (requested by riz in ticket #5512): Sync pax with HEAD of 2005-07-22.
|
1.43.4.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.44.8.1 |
| 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
1.45.18.1 |
| 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
1.48.4.3 |
| 21-Apr-2020 |
martin | Ooops, restore accidently removed files from merge mishap
|
1.48.4.2 |
| 21-Apr-2020 |
martin | Sync with HEAD
|
1.48.4.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.49.12.1 |
| 02-Aug-2025 |
perseant | Sync with HEAD
|
1.49.10.1 |
| 07-Aug-2024 |
martin | Pull up following revision(s) (requested by riastradh in ticket #776):
bin/pax/buf_subs.c: revision 1.31 tests/bin/pax/t_pax.sh: revision 1.3 tests/bin/pax/t_pax.sh: revision 1.4 tests/bin/pax/t_pax.sh: revision 1.5 tests/bin/pax/t_pax.sh: revision 1.6 tests/bin/pax/t_pax.sh: revision 1.7 bin/pax/extern.h: revision 1.61 bin/pax/pax.c: revision 1.50 bin/pax/pax.c: revision 1.51 bin/pax/file_subs.c: revision 1.65 bin/pax/ftree.c: revision 1.43 bin/pax/ar_subs.c: revision 1.58
pax: exit 0 if stdin filelist is used and empty
If copying a list of files from stdin, exit zero instead of non-zero if there are no files supplied.
AFAICT, POSIX doesn't require a non-zero an error in this situation, since there are no files to not match.
Fix from PR bin/41736 by Lloyd Parkes.
pax: don't overwrite destination if -r -w copy fails
Add more error handling to pax -r -w so that any failure during the copy to the temporary file (including a failed flush) prevents any existing destination file from being replaced with the partial (including possibly empty) temporary file.
The partial temporary file is removed. pax still exists non-zero. Thanks to Michael van Elst (mlelstv@) for the analysis of the problem in the PR. Should fix PR misc/33753.
tests/bin/pax: Add test for pax list in an ungettable cwd. The list operation has no need to touch the file system, so it should have no need for open(".") or getcwd() to succeed.
PR bin/44498: tar(1) unnecessarily demands that getcwd() work (The PR was filed about tar(1), which is now bsdtar by default, but the issue applies to pax(1) too and would continue to apply to tar(1) if you set MKBSDTAR=no.) pax(1): Don't require open(".") or getcwd to work for list operation.
PR 44498: tar(1) unnecessarily demands that getcwd() work tests/bin/pax: Test pax(1) succeeds with empty file list on stdin.
PR bin/41736: pax reports an error when copying zero files tests/bin/pax: Add some more cwd-related test cases.
PR bin/44498: tar(1) unnecessarily demands that getcwd() work pax(1): Only require getcwd if we're reading without --insecure.
No other paths use the result of getcwd.
PR bin/44498: tar(1) unnecessarily demands that getcwd() work
|
1.49.2.1 |
| 07-Aug-2024 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1863):
bin/pax/buf_subs.c: revision 1.31 tests/bin/pax/t_pax.sh: revision 1.3 tests/bin/pax/t_pax.sh: revision 1.4 tests/bin/pax/t_pax.sh: revision 1.5 tests/bin/pax/t_pax.sh: revision 1.6 tests/bin/pax/t_pax.sh: revision 1.7 bin/pax/extern.h: revision 1.61 bin/pax/pax.c: revision 1.50 bin/pax/pax.c: revision 1.51 bin/pax/file_subs.c: revision 1.65 bin/pax/ftree.c: revision 1.43 bin/pax/ar_subs.c: revision 1.58
pax: exit 0 if stdin filelist is used and empty
If copying a list of files from stdin, exit zero instead of non-zero if there are no files supplied.
AFAICT, POSIX doesn't require a non-zero an error in this situation, since there are no files to not match.
Fix from PR bin/41736 by Lloyd Parkes.
pax: don't overwrite destination if -r -w copy fails
Add more error handling to pax -r -w so that any failure during the copy to the temporary file (including a failed flush) prevents any existing destination file from being replaced with the partial (including possibly empty) temporary file.
The partial temporary file is removed. pax still exists non-zero. Thanks to Michael van Elst (mlelstv@) for the analysis of the problem in the PR. Should fix PR misc/33753.
tests/bin/pax: Add test for pax list in an ungettable cwd. The list operation has no need to touch the file system, so it should have no need for open(".") or getcwd() to succeed.
PR bin/44498: tar(1) unnecessarily demands that getcwd() work (The PR was filed about tar(1), which is now bsdtar by default, but the issue applies to pax(1) too and would continue to apply to tar(1) if you set MKBSDTAR=no.) pax(1): Don't require open(".") or getcwd to work for list operation.
PR 44498: tar(1) unnecessarily demands that getcwd() work tests/bin/pax: Test pax(1) succeeds with empty file list on stdin.
PR bin/41736: pax reports an error when copying zero files tests/bin/pax: Add some more cwd-related test cases.
PR bin/44498: tar(1) unnecessarily demands that getcwd() work pax(1): Only require getcwd if we're reading without --insecure.
No other paths use the result of getcwd.
PR bin/44498: tar(1) unnecessarily demands that getcwd() work
|