diff options
author | Denys Dmytriyenko <denis@denix.org> | 2009-03-17 14:32:59 -0400 |
---|---|---|
committer | Denys Dmytriyenko <denis@denix.org> | 2009-03-17 14:32:59 -0400 |
commit | 709c4d66e0b107ca606941b988bad717c0b45d9b (patch) | |
tree | 37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/busybox/files/install-should-unlink-dest-if-it-exists.patch | |
parent | fa6cd5a3b993f16c27de4ff82b42684516d433ba (diff) |
rename packages/ to recipes/ per earlier agreement
See links below for more details:
http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326
http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816
Signed-off-by: Denys Dmytriyenko <denis@denix.org>
Acked-by: Mike Westerhof <mwester@dls.net>
Acked-by: Philip Balister <philip@balister.org>
Acked-by: Khem Raj <raj.khem@gmail.com>
Acked-by: Marcin Juszkiewicz <hrw@openembedded.org>
Acked-by: Koen Kooi <koen@openembedded.org>
Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/busybox/files/install-should-unlink-dest-if-it-exists.patch')
-rw-r--r-- | recipes/busybox/files/install-should-unlink-dest-if-it-exists.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/recipes/busybox/files/install-should-unlink-dest-if-it-exists.patch b/recipes/busybox/files/install-should-unlink-dest-if-it-exists.patch new file mode 100644 index 0000000000..4bec313f0e --- /dev/null +++ b/recipes/busybox/files/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)) { |