On Mon, Jun 15, 2009 at 3:48 PM, Mat Hostetter<[email protected]> wrote: > 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; > }
Thanks, applied. -- vda _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
