summaryrefslogtreecommitdiff
path: root/src/install.c
AgeCommit message (Collapse)Author
2006-10-06Fix bug reported today by Mike Frysinger: mkdir -pv is logging thePaul Eggert
wrong file name in some cases. * src/install.c (struct install_options): New type. (install_file_in_file_parents, main): Use it instead of struct cp_options. (process_dir): Remember the full name. (announce_mkdir, make_ancestor): Use the full name in announcements. * src/mkdir.c (struct mkdir_options): Add full_name member. (make_ancestor): Use the full name in announcements. (process_dir): Remember the full name. * tests/mkdir/Makefile.am (TESTS): Add p-v. * tests/mkdir/p-v: New file, to test this bug.
2006-09-16* NEWS: Document that mkdir -p and install -d now fork on occasion.Paul Eggert
* bootstrap.conf (gnulib_modules): Add savewd. * src/install.c: Include savewd.h. (process_dir): New function. (main, install_file_in_file_parents): Use it, along with the new savewd module, to avoid some race conditions. * src/mkdir.c: Include savewd.h. (struct mkdir_options): New members make_ancestor_function, mode, mode_bits. (make_ancestor): Return 1 if the resulting directory is not readable. (process_dir): New function. (main): Use it, along with new savewd module, to avoid some race conditions. Fill in new slots of struct mkdir_options, so that callees get the values. * tests/install/basic-1: Test for coreutils 5.97 bug that was fixed in coreutils 6.0, and which should still be fixed with this change. * tests/mkdir/p-3: Likewise.
2006-09-03Don't include dirname.h, since system.h does it now.Paul Eggert
2006-07-17Include mkancesdirs.h.Paul Eggert
(announce_mkdir, make_ancestor): New functions. (DEFAULT_MODE): New macro, specifying initial value of 'mode'. (mode): Use it. (dir_mode, dir_mode_bits): New vars. (main): Set dir modes separately from nondir, so that the X op of -m works correctly. (main): Remove cwd_errno cruft, since make_dir_parents no longer affects cwd. Adjust to new make_dir_parents API. (install_file_in_file_parents): 2nd arg is now char *, not char const *. Use mkancesdirs instead of rolling our own code. (change_attributes): Don't worry about AFS, since that kludge should not be needed any more.
2006-03-26(target_directory_operand, install_file_in_dir): Use new last_component, in ↵Jim Meyering
place of base_name.
2006-02-18(usage): Use two spaces (not one) to separate theJim Meyering
--first-only option string from its description, so help2man formats the derived man page properly.
2005-12-17(cp_option_init): Don't set umask_kill member.Jim Meyering
2005-09-23(install_file_in_file): Be more conservative about the previous patch:Paul Eggert
set time stamps on all non-regular files.
2005-09-23(change_timestamps): First arg is sourcePaul Eggert
struct stat, not file name. All uses changed. (install_file_in_file): Stat the source file if necessary. Don't try to change time stamps if copy_file did it.
2005-09-16Include stat-time.h, and use its functions instead of the obsoletePaul Eggert
TIMESPEC_NS macro.
2005-06-16Finally remove support for --version-control=S (-V).Jim Meyering
It was deprecated nearly 6 years ago and has been warning users to switch to --backup=S since fileutils-4.0j.
2005-06-15(main): Fix my typo: s/argv[optind]/file[i]/.Jim Meyering
2005-06-14(main): Standardize on a diagnostic forPaul Eggert
restore_cwd failure, and report errno. (install_file_in_file_parents): Fail if restore_cwd fails and one of the files is relative. This fixes a bug (albeit unlikely).
2005-06-14(main): Adjust to new make_dir_parents convention.Paul Eggert
2005-06-14tweak diagnostic wording: Use `... return to working directory', ratherJim Meyering
than `... restore working directory'.
2005-06-14remove obsolete FIXMEJim Meyering
2005-06-13(main): When make_dir_parents changes the current workingJim Meyering
directory, give a diagnostic about each subsequent failure to create a dot-relative directory. (install_file_in_file_parents): Update make_dir_parents caller.
2005-06-02Don't use "path" or "filename".Paul Eggert
(install_file_in_file_parents): Renamed from install_file_to_path. All uses changed.
2005-05-31(cp_options_init): Use chown_privileges rather than geteuid.Paul Eggert
2005-05-30(getpwnam, getgrnam): Remove decl.Paul Eggert
(getuid, getgid) [!defined _POSIX_VERSION]: Remove decls.
2005-05-14Update FSF postal mail address.Jim Meyering
2005-05-14Update FSF postal mail address.Jim Meyering
2005-05-01mode_free -> freePaul Eggert
2005-04-28(main): Adjust to new modechange API.Paul Eggert
Also, free the mode_change object when done.
2004-11-26(stat): Remove decl.Paul Eggert
2004-11-21(usage): Avoid usage that runs afoul of DocbookPaul Eggert
translation. Problem reported by Eric S. Raymond.
2004-09-21Remove unused "case 0".Paul Eggert
2004-09-13Adjust to backup file rename.Paul Eggert
2004-08-11Further fix for -d regression.Paul Eggert
2004-08-11(main): Fix -d regression introduced withPaul Eggert
--target-directory support at 2004-06-25.
2004-08-10(change_timestamps): Fix int->bool conversionPaul Eggert
bugs introduced on 2004-07-29.
2004-08-02(isdir): Remove decl.Paul Eggert
(install_file_to_path): Rely on make_path to fail if the destination is not a directory, by passing preserve_existing==true to it. Hence we no longer need to call isdir. Free dest_dir immediately when it's no longer needed, rather than waiting until the end of the function. (copy_file): Don't bother calling isdir, as copy will do the right thing if the destination is a directory.
2004-07-30(isdir, change_timestamps, change_attributes,Paul Eggert
copy_file, install_file_to_path, install_file_in_dir, install_file_in_file, strip_files, dir_arg, cp_option_init, main, change_attributes, change_timestamps): Likewise.
2004-07-02Add short names -t and -T for --target-directoryJim Meyering
and --no-target-directory options, respectively. (NO_TARGET_DIRECTORY_OPTION, TARGET_DIRECTORY_OPTION): Remove. All uses changed to 'T' and 't', respectively. (long_options, main, usage): Add -t and -T as aliases for --target-directory and --no-target-directory, respectively.
2004-06-30Add support for --no-target-directory option.Jim Meyering
(NO_TARGET_DIRECTORY_OPTION): New constant. (long_options, usage, main): Add support for
2004-06-29Add support for 'install --target-directory', an optionJim Meyering
that has been documented for years but not implemented (!). (TARGET_DIRECTORY_OPTION): New var. (long_options, main, usage): Add --target-directory. (target_directory_operand): New function, stolen from mv.c. (main): Use it. Check for -d and --target-directory. Alter wording of diagnostics to match other programs.
2004-06-21(main): Standardize on the diagnostics given when someone givesJim Meyering
too few operands ("missing operand after `xxx'") or too many operands ("extra operand `xxx'"). Include "quote.h" and/or "error.h" if it wasn't already being included.
2004-04-21install -s failed on System V if SIGCHLD was ignored.Jim Meyering
Include <signal.h>. (main) [defined SIGCHLD]: Set SIGCHLD handler to the default, if -s is given, since System V fork+wait does not work if SIGCHLD is ignored.
2004-02-07(cp_option_init): Likewise.Jim Meyering
2004-01-21(usage): Use EXIT_SUCCESS, not 0, for clarity.Jim Meyering
(usage): Don't bother normalizing exit status since the arg is already the correct exit status now.
2003-10-18Most .c files (AUTHORS): Revert the WRITTEN_BY/AUTHORS changeJim Meyering
of 2003-09-19. Now, AUTHORS is a comma-separated list of strings. Update the call to parse_long_options so that `AUTHORS, NULL' are the last parameters. * src/true.c (main): Append NULL to version_etc argument list. * src/sys2.h (case_GETOPT_VERSION_CHAR): Likewise.
2003-09-18(WRITTEN_BY): Rename from AUTHORS.Jim Meyering
Begin each WRITTEN_BY string with `Written by ' and end it with `.'. Mark each WRITTEN_BY string as translatable.
2003-08-09Include utimens.h.Jim Meyering
(change_timestamps): Set file timestamps with utimens, not utime.
2003-07-12It appears that the `#pragma alloca' included via "system.h" isJim Meyering
adequate, since join.c uses alloca, yet lacked an in-file #pragma. Remove `#pragma alloca'.
2003-07-11(change_attributes): Enclose diagnostic in _(...).Jim Meyering
2003-06-17(main): Call initialize_main.Jim Meyering
2003-05-10(main): Handle argc < optind.Jim Meyering
2002-12-15Remove all uses of `PARAMS'.Jim Meyering
2002-09-26(get_ids): Use strtoul, not strtol. Remove some casts.Jim Meyering
2002-09-21No longer include values.h.Jim Meyering
It was required solely for now-removed reference to BITSPERBYTE.