In busybox 1.14.1, the 'install' program does not default to making
installed files executable like GNU install does. This breaks the
build for a particular app that expects its machine-generated shell
scripts to become executable when 'install' copies them.
For example here is the behavior of the normal GNU 'install':
ld-1:~$ rm -f foo foo2
ld-1:~$ touch foo
ld-1:~$ ls -l foo
-rw-r--r-- 1 mhostetter users 0 Jun 15 09:38 foo
ld-1:~$ install foo foo2
ld-1:~$ ls -l foo2
-rwxr-xr-x 1 mhostetter users 0 Jun 15 09:38 foo2
and here is relevant documentation from the GNU install man page:
-m, --mode=MODE
set permission mode (as in chmod), instead of rwxr-xr-x
GNU install does not appear to pay attention to 'umask'.
This patch makes busybox 'install' set the executable bits when no
explicit mode is specified, to match GNU install:
--- busybox.orig/coreutils/install.c 2009-05-27 12:00:23.000000000 -0400
+++ busybox/coreutils/install.c 2009-06-14 09:35:32.479951000 -0400
@@ -129,7 +129,7 @@
if (opts & OPT_PRESERVE_TIME) {
copy_flags |= FILEUTILS_PRESERVE_STATUS;
}
- mode = 0666;
+ mode = 0755;
if (opts & OPT_MODE)
bb_parse_mode(mode_str, &mode);
uid = (opts & OPT_OWNER) ? get_ug_id(uid_str, xuname2uid) : getuid();
@@ -176,7 +176,7 @@
}
/* Set the file mode */
- if ((opts & OPT_MODE) && chmod(dest, mode) == -1) {
+ if (chmod(dest, mode) == -1) {
bb_perror_msg("can't change %s of %s", "permissions",
dest);
ret = EXIT_FAILURE;
}
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox