User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:126.96.36.199) Gecko/2008102014 Fedora/3.0.2-1.fc9 Firefox/3.0.2 Build Identifier: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:188.8.131.52) Gecko/2008102014 Fedora/3.0.2-1.fc9 Firefox/3.0.2 Executable flag for particular data files. Reproducible: Always Steps to Reproduce: 1. ls -l dist/bin/icons ls -l layout/generic/folder.png ls -l dist/bin/chrome/icons/default ls -l dist/bin/LICENSE dist/bin/README.txt 2. 3.
Created attachment 344456 [details] [diff] [review] Fix for data files installation Fix changes Makefile.in to use SYSINSTALL and IFLAGS1 variables for installing affected data files.
Comment on attachment 344456 [details] [diff] [review] Fix for data files installation I confess to not being knowledgeable of the difference between $(INSTALL) and $(SYSINSTALL), but I trust you've done your homework. (Also, you're just installing icons and other non-code files, so differences shouldn't matter all that much.)
Why are you fixing it this way, instead of changing the permissions in the hg repository? ted, the major difference between INSTALL and SYSINSTALL is that INSTALL will symlink-by-default, while SYSINSTALL always copies.
Comment on attachment 344456 [details] [diff] [review] Fix for data files installation Let's play with this after the beta
The (partial, incomplete) answer to bsmedberg's question in comment 4 is "because the perms in the repo aren't broken." The app/Makefile.ins both set NSDISTMODE = copy, which is a subtle way of saying "$(INSTALL) will be $(SYSINSTALL) from now on" and unless you pass mode flags, $(SYSINSTALL) gives you 755. Whether we do it straight up, with $(SYSINSTALL) $(IFLAGS1), or with a twist with $(INSTALL) $(IFLAGS1), everything in an app/Makefile.in that shouldn't be 755 (including all the things not covered here, but mentioned in various of the bugs this is a duplicate of, including blocklist.xml and defaults/profile/prefs.js) needs to say it doesn't want to be. The folder.png bit, though, I don't get: I don't see any reason why it would get bogus perms, and at least for me (building non-XULRunner Fx), it doesn't, it winds up 644. Were it me, I'd want an explanation of that bit before taking it.
Created attachment 348918 [details] [diff] [review] Fix v.2 Stealing; the first patch was an awesome prod for me to learn how nsinstall actually works, but it's missing some things, doing others in a suboptimal way, and has one bogus bit. This patch drops the hunk about folder.png, which is (for some reason) 755 in CVS, but 644 and not a problem in mozilla-central. It also uses $(INSTALL) rather than $(SYSINSTALL) for libs::, because we don't actually *want* to copy these things so much as just want to deal with it happening as a result of whatever caused someone to use that NSDISTMODE. If that goes away, or if someone copy-pastes them out to some other makefile, they ought to revert to symlinks rather than staying copied. Doing so reverts bug 418601, which is fine, since there's no way that actually worked.