diff options
| author | Koen Kooi <koen@openembedded.org> | 2007-09-14 07:43:03 +0000 |
|---|---|---|
| committer | Koen Kooi <koen@openembedded.org> | 2007-09-14 07:43:03 +0000 |
| commit | 2019b37bac10cff32469452eb3061e6e8e8aaad4 (patch) | |
| tree | 79aa76f03f001988977386a9c13e59cebfe7c57b /packages/busybox/busybox-1.2.1/install-should-unlink-dest-if-it-exists.patch | |
| parent | 7a5c873a58cdc4130eb4a14c5af0960f8ec6d81a (diff) | |
| parent | a50f3c05fc84d7d914e6a8287c82581462302bbe (diff) | |
propagate from branch 'org.openembedded.dev' (head bbdff51149f19a443ea4c897e2b4eb81eec6283a)
to branch 'org.openembedded.dev.avr32' (head ef59785d9aa6d25f6cf33266a65b61426e620f71)
Diffstat (limited to 'packages/busybox/busybox-1.2.1/install-should-unlink-dest-if-it-exists.patch')
| -rw-r--r-- | packages/busybox/busybox-1.2.1/install-should-unlink-dest-if-it-exists.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/packages/busybox/busybox-1.2.1/install-should-unlink-dest-if-it-exists.patch b/packages/busybox/busybox-1.2.1/install-should-unlink-dest-if-it-exists.patch new file mode 100644 index 0000000000..4bec313f0e --- /dev/null +++ b/packages/busybox/busybox-1.2.1/install-should-unlink-dest-if-it-exists.patch @@ -0,0 +1,53 @@ +--- + coreutils/install.c | 2 +- + include/libbb.h | 3 ++- + libbb/copy_file.c | 9 +++++++++ + 3 files changed, 12 insertions(+), 2 deletions(-) + +Index: busybox-1.2.1/coreutils/install.c +=================================================================== +--- busybox-1.2.1.orig/coreutils/install.c 2006-10-19 16:33:48.000000000 +0200 ++++ busybox-1.2.1/coreutils/install.c 2006-10-19 16:35:58.000000000 +0200 +@@ -59,7 +59,7 @@ int install_main(int argc, char **argv) + char *gid_str = "-1"; + char *uid_str = "-1"; + char *mode_str = "0755"; +- int copy_flags = FILEUTILS_DEREFERENCE | FILEUTILS_FORCE; ++ int copy_flags = FILEUTILS_DEREFERENCE | FILEUTILS_FORCE | FILEUTILS_NO_TRUNC; + int ret = EXIT_SUCCESS, flags, i, isdir; + + #if ENABLE_FEATURE_INSTALL_LONG_OPTIONS +Index: busybox-1.2.1/include/libbb.h +=================================================================== +--- busybox-1.2.1.orig/include/libbb.h 2006-10-19 16:24:50.000000000 +0200 ++++ busybox-1.2.1/include/libbb.h 2006-10-19 16:32:40.000000000 +0200 +@@ -345,7 +345,8 @@ enum { /* DO NOT CHANGE THESE VALUES! c + FILEUTILS_DEREFERENCE = 2, + FILEUTILS_RECUR = 4, + FILEUTILS_FORCE = 8, +- FILEUTILS_INTERACTIVE = 16 ++ FILEUTILS_INTERACTIVE = 16, ++ FILEUTILS_NO_TRUNC = 32 + }; + + extern const char *bb_applet_name; +Index: busybox-1.2.1/libbb/copy_file.c +=================================================================== +--- busybox-1.2.1.orig/libbb/copy_file.c 2006-10-19 16:26:53.000000000 +0200 ++++ busybox-1.2.1/libbb/copy_file.c 2006-10-19 16:32:28.000000000 +0200 +@@ -136,6 +136,15 @@ int copy_file(const char *source, const + } + } + ++ if (flags & FILEUTILS_NO_TRUNC) { ++ if (unlink(dest) < 0) { ++ bb_perror_msg("unable to remove `%s'", dest); ++ close(src_fd); ++ return -1; ++ } ++ goto dest_removed; ++ } ++ + dst_fd = open(dest, O_WRONLY|O_TRUNC); + if (dst_fd == -1) { + if (!(flags & FILEUTILS_FORCE)) { |
