Bower: Strange permissions when installing components

Created on 12 Mar 2015  路  6Comments  路  Source: bower/bower

I'm running into a weird issue, I asked on #bower, and looked around the open, and closed issues and didn't find anything related, this was the closest, but also not applicable here I don't think.

Problem Statement

Two packages (from ~26) are cloned/copied with the file mode drwx------, where all the others have drwxr-xr-x. The problem exists on two filesystems, and from a parital, or complete clean-slate (i.e not having any bower_components at all, or switching branches and re-running it)

The logs

$ ls -lah bower_components
total 0
drwxr-xr-x  28 leehambley  staff   952B 12 Mar 18:13 .
drwxr-xr-x  23 leehambley  staff   782B 12 Mar 18:13 ..
drwxr-xr-x  26 leehambley  staff   884B 12 Mar 18:13 Bootflat
drwx------  15 leehambley  staff   510B 12 Mar 18:13 ace-builds
drwxr-xr-x  12 leehambley  staff   408B 12 Mar 18:13 angular
drwxr-xr-x  10 leehambley  staff   340B 12 Mar 18:13 angular-animate
drwxr-xr-x  14 leehambley  staff   476B 12 Mar 18:13 angular-flash
drwxr-xr-x  11 leehambley  staff   374B 12 Mar 18:13 angular-gravatar
drwxr-xr-x  10 leehambley  staff   340B 12 Mar 18:13 angular-messages
drwxr-xr-x  10 leehambley  staff   340B 12 Mar 18:13 angular-mocks
drwxr-xr-x  19 leehambley  staff   646B 12 Mar 18:13 angular-moment
drwxr-xr-x  10 leehambley  staff   340B 12 Mar 18:13 angular-resource
drwxr-xr-x   7 leehambley  staff   238B 12 Mar 18:13 angular-translate
drwxr-xr-x   7 leehambley  staff   238B 12 Mar 18:13 angular-translate-interpolation-messageformat
drwxr-xr-x   7 leehambley  staff   238B 12 Mar 18:13 angular-translate-loader-static-files
drwx------   8 leehambley  staff   272B 12 Mar 18:13 angular-ui-ace
drwxr-xr-x  11 leehambley  staff   374B 12 Mar 18:13 angular-ui-router
drwxr-xr-x   8 leehambley  staff   272B 12 Mar 18:13 devicons
drwxr-xr-x  18 leehambley  staff   612B 12 Mar 18:13 es5-shim
drwxr-xr-x  12 leehambley  staff   408B 12 Mar 18:13 font-mfizz
drwxr-xr-x  10 leehambley  staff   340B 12 Mar 18:13 fontawesome
drwxr-xr-x   7 leehambley  staff   238B 12 Mar 18:13 jquery
drwxr-xr-x   9 leehambley  staff   306B 12 Mar 18:13 json3
drwxr-xr-x  16 leehambley  staff   544B 12 Mar 18:13 messageformat
drwxr-xr-x  12 leehambley  staff   408B 12 Mar 18:13 moment
drwxr-xr-x   9 leehambley  staff   306B 12 Mar 18:13 qrcode.js
drwxr-xr-x  18 leehambley  staff   612B 12 Mar 18:13 sockjs-client-bower
drwxr-xr-x   9 leehambley  staff   306B 12 Mar 18:13 window-location-origin

$ ls -lah bower_components/ace-builds
total 80
drwx------   15 leehambley  staff   510B 12 Mar 18:13 .
drwxr-xr-x   28 leehambley  staff   952B 12 Mar 18:13 ..
-rw-------    1 leehambley  staff   361B 12 Mar 18:13 .bower.json
-rw-------    1 leehambley  staff    10K  8 Nov 20:37 ChangeLog.txt
-rw-------    1 leehambley  staff   1.5K  8 Nov 20:37 LICENSE
-rw-------    1 leehambley  staff   1.1K  8 Nov 20:37 README.md
drwx------   18 leehambley  staff   612B  8 Nov 20:37 demo
-rw-------    1 leehambley  staff   809B  8 Nov 20:37 editor.html
-rw-------    1 leehambley  staff   7.3K  8 Nov 20:37 kitchen-sink.html
-rw-------    1 leehambley  staff   502B  8 Nov 20:37 package.json
drwx------  184 leehambley  staff   6.1K  8 Nov 20:37 src
drwx------  184 leehambley  staff   6.1K  8 Nov 20:37 src-min
drwx------  184 leehambley  staff   6.1K  8 Nov 20:37 src-min-noconflict
drwx------  184 leehambley  staff   6.1K  8 Nov 20:37 src-noconflict
drwx------    3 leehambley  staff   102B  5 Mar 15:42 textarea

$ history | tail -10
10131 pwd
10132  ls -l bower_components
10133  umask
10135  touch afile
10136  mkdir adir
10138  nvm use 0.10
10139  bower install
10140  ls -lah
10141  ls -lah bower_components
10142  ls -lah bower_components/ace-builds

Broken file modes in upstream projects?

This doesn't seem to be a problem with ui-ace or similar:

$ git clone https://github.com/angular-ui/ui-ace.git
Cloning into 'ui-ace'...
remote: Counting objects: 885, done.
remote: Total 885 (delta 0), reused 0 (delta 0), pack-reused 885
Receiving objects: 100% (885/885), 1.03 MiB | 990.00 KiB/s, done.
Resolving deltas: 100% (400/400), done.
Checking connectivity... done.

$ ls -lah ui-ace
total 96
drwxr-xr-x   16 leehambley  staff   544B 12 Mar 18:43 .
drwxr-xr-x+ 138 leehambley  staff   4.6K 12 Mar 18:44 ..
drwxr-xr-x   12 leehambley  staff   408B 12 Mar 18:43 .git
-rw-r--r--    1 leehambley  staff    53B 12 Mar 18:43 .gitignore
-rw-r--r--    1 leehambley  staff   376B 12 Mar 18:43 .jshintrc
-rw-r--r--    1 leehambley  staff   5.1K 12 Mar 18:43 .travis.yml
-rw-r--r--    1 leehambley  staff   3.9K 12 Mar 18:43 CHANGELOG.md
-rw-r--r--    1 leehambley  staff   1.1K 12 Mar 18:43 LICENSE
-rw-r--r--    1 leehambley  staff   6.3K 12 Mar 18:43 README.md
-rw-r--r--    1 leehambley  staff   562B 12 Mar 18:43 bower.json
drwxr-xr-x    5 leehambley  staff   170B 12 Mar 18:43 demo
-rw-r--r--    1 leehambley  staff   3.7K 12 Mar 18:43 gruntFile.js
-rw-r--r--    1 leehambley  staff   1.1K 12 Mar 18:43 package.json
-rw-r--r--    1 leehambley  staff   971B 12 Mar 18:43 publish.js
drwxr-xr-x    3 leehambley  staff   102B 12 Mar 18:43 src
drwxr-xr-x    4 leehambley  staff   136B 12 Mar 18:43 test

For the sake of argument, I tried to change the umask and repeat the installation thusly umask 000 && bower install, and the modes of the output files were the same.

Versions, etc

Bower: v1.3.12
Node.js: v0.10.36 / v0.11.14
uname: Darwin mbp.local 14.3.0 Darwin Kernel Version 14.3.0: Thu Feb 12 18:38:33 PST 2015; root:xnu-2782.20.34~3/RELEASE_X86_64 x86_64

I'm sorry I can't add more information, I checked the bower.json of the projects, and checked to the best of my ability in the internet, I can't see that Bower takes _any_ care of umasks at all, I also can't explain why the umask seems to be ignored when I explicitly set it. I can't rule out weird sticky file dirmodes/etc on OSX, either. I hope the issue is somehow useful, and at least is kinda in the right place.

Most helpful comment

Unfortunately not, sorry. I solved the problem by revaluating my life choices and deciding never to touch Javascript again. ;-)

All 6 comments

Update, seems to be an OSX or mac filesystem problem:

[vagrant@vm frontend]$ ls -lah bower_components/
total 0
drwxr-xr-x 1 vagrant vagrant 952 Mar 12 18:07 .
drwxr-xr-x 1 vagrant vagrant 850 Mar 12 18:07 ..
drwxr-xr-x 1 vagrant vagrant 510 Mar 12 18:08 ace-builds
drwxr-xr-x 1 vagrant vagrant 408 Mar 12 18:07 angular
drwxr-xr-x 1 vagrant vagrant 340 Mar 12 18:07 angular-animate
drwxr-xr-x 1 vagrant vagrant 476 Mar 12 18:07 angular-flash
drwxr-xr-x 1 vagrant vagrant 374 Mar 12 18:07 angular-gravatar
drwxr-xr-x 1 vagrant vagrant 340 Mar 12 18:07 angular-messages
drwxr-xr-x 1 vagrant vagrant 340 Mar 12 18:07 angular-mocks
drwxr-xr-x 1 vagrant vagrant 646 Mar 12 18:07 angular-moment
drwxr-xr-x 1 vagrant vagrant 340 Mar 12 18:07 angular-resource
drwxr-xr-x 1 vagrant vagrant 238 Mar 12 18:07 angular-translate
drwxr-xr-x 1 vagrant vagrant 238 Mar 12 18:07 angular-translate-interpolation-messageformat
drwxr-xr-x 1 vagrant vagrant 238 Mar 12 18:07 angular-translate-loader-static-files
drwxr-xr-x 1 vagrant vagrant 272 Mar 12 18:07 angular-ui-ace
drwxr-xr-x 1 vagrant vagrant 374 Mar 12 18:07 angular-ui-router
drwxr-xr-x 1 vagrant vagrant 884 Mar 12 18:07 Bootflat
drwxr-xr-x 1 vagrant vagrant 272 Mar 12 18:07 devicons
drwxr-xr-x 1 vagrant vagrant 612 Mar 12 18:07 es5-shim
drwxr-xr-x 1 vagrant vagrant 340 Mar 12 18:07 fontawesome
drwxr-xr-x 1 vagrant vagrant 408 Mar 12 18:07 font-mfizz
drwxr-xr-x 1 vagrant vagrant 238 Mar 12 18:07 jquery
drwxr-xr-x 1 vagrant vagrant 306 Mar 12 18:07 json3
drwxr-xr-x 1 vagrant vagrant 544 Mar 12 18:07 messageformat
drwxr-xr-x 1 vagrant vagrant 408 Mar 12 18:07 moment
drwxr-xr-x 1 vagrant vagrant 306 Mar 12 18:07 qrcode.js
drwxr-xr-x 1 vagrant vagrant 612 Mar 12 18:07 sockjs-client-bower
drwxr-xr-x 1 vagrant vagrant 306 Mar 12 18:07 window-location-origin
[vagrant@vm frontend]$ node -v
v0.10.37
[vagrant@vm frontend]$ bower -v
1.3.12
[vagrant@vm frontend]$ uname -a
Linux vm 3.10.0-123.20.1.el7.x86_64 #1 SMP Thu Jan 29 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Still investigating.

@leehambley Since it seems to be a problem, apparently, to the Mac OS I'll be closing the issue. If you thinks it is a Bower specific problem, feel free to re-open the issue.

@leehambley we're getting bit by this same issue right now - did you ever find the cause?

Unfortunately not, sorry. I solved the problem by revaluating my life choices and deciding never to touch Javascript again. ;-)

You are wise, sir.

I ran into this as well. The problem is that bower will cache all of the repositories it downloaded to ~/.cache/bower and prefers to copy libs over instead of re-downloading.

To fix, you just need to rm -rf ~/.cache/bower and run bower install again to get a fresh copy of all the libraries after setting your umask.

Was this page helpful?
0 / 5 - 0 ratings